模拟变声基础版

news/2024/11/14 13:26:04/

前段时间做了一个变声软件,思路是麦克风录入声音保存到本地,然后把声音转化成与之对应类型的声音。
做的时候在网上看了好多博客,也去做语音识别大厂官网去查阅了相关资料,然后利用这个插件VoiceChangerFilter简单的完成了一些基础功能,如果想要完全智能化,推荐还是购买对接(例如:科大讯飞等),官网上边都有试用版本也可以接入SDK尝试一下。

    //字节化成音频public AudioClip ConvertBytesToClip(byte[] _bs){//clip.length;float[] samples = new float[_bs.Length / 2];float rescaleFactor = 32767;short st = 0;float ft = 0;for (int i = 0; i < _bs.Length; i += 2){st = BitConverter.ToInt16(_bs, i);ft = st / rescaleFactor;samples[i / 2] = ft;}AudioClip cp = AudioClip.Create("clip", samples.Length, 1, audioFrequency, false);cp.SetData(samples, 0);return cp;}
  //开始录音IEnumerator InitStart(){yield return null;canRecord = true;source.clip = null;if (Microphone.devices.Length == 0){canRecord = false;//print("没有声音输入设备");Debug.LogWarning("没有声音输入设备");yield break;}sendt = 1.0f / SendRate;recording = Microphone.Start(null, false, recordLengh, audioFrequency);}
    //停止录音public void stopLuYin(){if (_IsStartRecord){_IsStartRecord = false;Microphone.End(null);List<byte> lss = new List<byte>();sendBuffer.ForEach((s) =>{lss.AddRange(s);print(s);});if (lss.Count <= 0) return;source.clip = ConvertBytesToClip(lss.ToArray());//source.clip = recording;SavWav.Save("test11", source.clip);//MediaCtr.OBJS["变声按钮"].SetActive(true);
#if UNITY_IOS// ... iOS项目编译
#elif UNITY_ANDROID// ... apk 或 iOS项目编译
#elif UNITY_EDITORAssetDatabase.Refresh();
#endifsendBuffer.Clear();VoiceChangerDemoScene.instance.sampleVoiceClip = source.clip;print("停止录音");//MediaCtr.instance.OverLuYin();}else{print("已经停止录音了");return;}MediaCtr.instance.OverLuYin();}

效果图:
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/544985.html

相关文章

这三个音频变声编辑软件教你怎么给音频变声

现如今随着我们生活的节奏越来越快&#xff0c;大家都爱上了短视频&#xff0c;每天也都有大量的短视频被创作出来。在这样的背景下&#xff0c;不知道有没有小伙伴也充满创意的想去尝试&#xff0c;但是却因为不知道怎么调整音频变声而阻挡了创作的步伐呢&#xff1f;其实这些…

fmod 变频变声

#include <stdlib.h> #include <unistd.h> #include <iostream> #include "fmod.h" #include "fmod.hpp"using namespace std; using namespace FMOD;static const int EFFECTS_NORMAL 0; // 原声 static const int EFFECTS_LUOLI 1; …

OBS直播影视使用虚拟声卡

如何在电影直播时使用虚拟声道保留电影声音去除其余杂音 原文地址 VB下载地址 第一步&#xff1a;安装VB-Audio虚拟声道插件&#xff08;这个很简单&#xff0c;就不写了安装过程了&#xff09; 第二步&#xff1a;打开PotPlayer播放器&#xff0c;在窗口画面右键弹出快捷菜…

虚拟麦克风变声

场景: 实现微信、腾讯会议等语音电话变声 方案描述 需要安装虚拟声卡,设置当前采集端为虚拟mic。然后通过输入端向虚拟mic里头写入数据,其他应用从虚拟mic里头采集的声音就为修改后的声音。 方案实施: 1.https://vb-audio.com/Cable/VirtualCables.htm 虚拟声卡,很便…

FFmpeg进阶: 音频变声滤镜

声音最重要的两个元素就是语速和语调&#xff0c;改变声音的辨识度主要也是从这两方面入手。我们可以通过对音频数据进行插值或者抽值修改&#xff0c;以达到降低语速和增加语速的目的。同时我们也可以通过对数据进行线性拉伸来调节音调。语速调整语调调整&#xff0c;就可以让…

2306d5月会议

原文 结构化并行,这里. Walter,对该项目很兴奋,觉得这是件大事,对D来说也是件大事. 重构了graphqld 如果项目的增量编译时间少于一秒,则D在语言中会更具竞争力. 沃尔特注意到,一些指定标准库模板非常花时间,他已可用新实现来加快其中一些模板.有时,配置文件时,可能只是少数模板…

IOS音频变成之变声处理

IOS音频编程之变声处理 需求耳塞Mic实时录音变声处理后实时输出 初始化 程序使用44100HZ的频率对原始的音频数据进行采样并在音频输入的回调中处理采样的数据 音频处理 预备知识音频输入输出回调函数处理 IOS音频编程之变声处理 需求&#xff1a;耳塞Mic实时录音&#xff0c…

仿QQ语言变声功能

仿QQ语言变声功能 这次写的是QQ语言变声功能&#xff0c;这个功能想必大家都使用过&#xff0c;那么这个功能是怎么实现的呢&#xff1f; 在开发中一边触及和语音&#xff0c;视频&#xff0c;算法等等都和c/c相关&#xff0c;我们这里也是使用的NDK&#xff0c;链接第三方动…