3

我想使用 SoX 库将我的声音转换为机器人声音(例如:星际争霸游戏的歌利亚声音)。

我在网上找到了机器人语音的以下序列,但它不会发出机器人语音。

过载 10 回声 0.8 0.8 5 0.7 回声 0.8 0.7 6 0.7 回声 0.8 0.7 10 0.7 回声 0.8 0.7 12 0.7 回声 0.8 0.88 12 0.7 回声 0.8 0.88 30 0.7 回声 0.6 0.6 60 0.7

发出机器人声音需要什么效果?你能告诉我一系列的效果和选项吗?

提前致谢。

4

1 回答 1

5

要实现 OP 找到的设置,您需要做的就是这样输入:

play INPUTFILE overdrive 10 echo 0.8 0.8 5 0.7 \
echo 0.8 0.7 6 0.7 echo 0.8 0.7 10 0.7 echo 0.8 0.7 12 0.7 \
echo 0.8 0.88 12 0.7 echo 0.8 0.88 30 0.7 echo 0.6 0.6 60 0.7

我对《星际迷航》一无所知,所以我不能说它在这方面是否符合要求,但它会产生一种薄薄的金属感,明显是外星人的声音。

我还尝试了一些尝试来重现 Dalek 的声音(是的,我知道,不是真正的机器人,但声音真棒!)。正如 luator 所指出的,对于正确的机器人声音,您需要使用一些文本到语音的软件,所以我也实现了它:

say -v Albert -o exterminate.aiff --data-format=BEI16@44100 \
exterminate, exterminate, exterminate!

play exterminate.aiff stretch 1.2 133.33 lin 0.2 0.4 \
overdrive 30 30 echo 0.4 0.8 15 0.8 \
synth sine fmod 30 echo 0.8 0.8 29 0.8

say命令当然只能在 OSX 中工作,但可能还有其他的,希望有更好的解决方案。所有 Apple 的声音都带有相当重的美国口音,只是从 Dalek 发出的声音听起来不太对劲。

stretch选项是故意不好实现的,尤其是133ms的窗口长度效果非常好。Overdrive给出了很多很好的非线性失真。我读到实际上 Dalek 声音是通过使用 30Hz 载波音调的 Moogerfooger 环形调制器创建的,这基本上就是我使用该synth sine fmod 30选项所做的。除此之外,还添加了一些适度短的回声,只是为了使它更加充实。

编辑:
我发现环形调制是由 VCS 3 完成的,而不是 Moogerfooger,至少在早期是这样。30Hz 载波由预先录制的磁带循环提供。
BBC 广播电台工作坊

此外,SoX 中的数字实现比您在具有二极管失真的模拟实现中获得的要干净得多。上述代码中的预调制过载在某种程度上解决了这个问题,但为了获得更真实的效果,可以使用数字模型,如Julian Parker创建的模型。

于 2015-11-14T19:34:30.093 回答