嘿,我需要为Voice Changer应用程序更改音频文件。我需要像机器人或外星人的效果。因此,我必须实现一个环形调制器http://en.wikipedia.org/wiki/Ring_modulation

您有什么想法如何实现吗?还是您有其他更轻松的建议?
我可以更改文件的音高,速度和回声。

谢谢你的帮助

最佳答案

原则上,环形调制器只是将输入信号乘以载波,例如低频正弦波:

f - input signal
g - carrier
h - output

h[i] = f[i] * g[i], for all i

正如MSalters所建议的那样,h只是fg的内在产物,使用C++函数可能比自己计算它更快。

但是,我们习惯听到的环形调制器是模拟环形调制器,它们引入的失真比数字环形调制器大得多。如果要在数字域中模拟模拟环形调制器,则要做的工作要比这里描述的要多得多。但是,这里有一个很好的引用,其中包含用javascript编写的示例代码以及对一篇不错的论文的引用:

http://webaudio.prototyping.bbc.co.uk/ring-modulator/

如果您想要那种邪恶的达力克音效,那是要走的路。我不知道该如何简单地将数字方法与语音“机器人程序”进行比较,但是我怀疑如果您不是专门尝试模仿达克犬,它们都很好。

当然,还有许多其他方法可以使声音“机器人化”,但是环形调制器非常经典。另一个“经典”类是channel vocoder,但是正确实现要复杂得多。

关于java - 声音效果的环形调制器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18815966/

10-09 13:12