关于matlab实现变声器的程序问题

关于matlab实现变声器的程序问题,第1张

楼主其实代码没有什么问题,知识在最后450000的值设置太大了,所以超出范围。但是最后实现的效果好像有点不太符合,比如实现童声的时候,出来的是老人的声音

在移动直播中, 声音是主播和观众互动的重要途径之一, 为了丰富直播的内容,大家都会想要在声音上做一些文章, 在采集录音的基础上玩一些花样。比如演唱类的直播间中, 主播伴随着背景音乐演唱。这时有些主播就会希望能够给自己声音增加混响的效果, 营造出在舞台剧场等环境下演唱的氛围。再比如有些搞笑类的直播间, 主播会希望给自己的声音添加变声的效果, 女变男,男变女或者变成机器人等等。

以下内容为金山云视频云技术团队提供:

变声效果主要是在频域上对人的声音进行一定的处理,我们知道男声一般比较低沉,女声比较尖锐,这个主要说的是音调。通过对声音音调的调整,可以 让低沉的男声听上去像尖锐女声。

iOS 提供了 kAudioUnitSubType_NewTimePitch 的 unit 来实现音调的调整。值得注意的是 kAudioUnitSubType_NewTimePitch 不是输入 Effect 类的,而是属于 FormatConverter 类的。 通过设置 TimePitch unit 的 kNewTimePitchParam_Pitch 属性即可。

/// pitchShift 为具体数值(0 表示不变,负数表明调低沉,正数调尖锐) AudioUnitSetParameter(pitchUnit, kNewTimePitchParam_Pitch, kAudioUnitScope_Global, 0, pitchShift, 0)

•变男声,需要强化突出低沉的特点,将音调调低,设置负数参数即可;

•变女声,需要强化突出尖锐的特点,将音调调高,设置正数即可;

•机器人音效,机器人的音效是一个组合效果,我们印象中的机器人音效都是老电影中的那种,音调比较高,而且有重音。所以我们采用的是 TimePitch unit + Delay unit 的方式。Delay unit 也是 iOS 提供的一个将声音延时叠加的 unit,但是比混音要简单很多,只有单次叠加;

•庄严宏大音效,想象一下佛祖之类的声音,一般都是自带回声,而且比较男性化,所以我们选择的是 TimePitch unit + Reverb unit 的方式来实现。

这里推荐一个自己调音效的参考软件 voxal voice changer。 大家可以在这个软件上自己将不同的工具组件组合起来,调试参数,实时听到参数对应的结果。当效果满意后再移植到 AudioUnit 中。

变声程序就是把一个男声变为女声,代码也是网上找的,运行之后出现这种错误 ??? Error using ==>eig NaN or Inf prevents convergence. Error in ==>r…


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11130682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存