如何实现语音转换器?

我想写一个应用程序,改变麦克风input的声音,使它像机器人或一些有趣的人的声音。它必须支持发送改变的声音,所有的应用程序,如IM软件或游戏客户端。 我应该select哪种技术? Windows WaveForm Api? 的DirectX? audio驱动?

非常感谢你!

有一个MSDN Coding4Fun文章 ,解释如何创建一个通过Skype运行的语音转换器,在C#(.NET)。 完整的源代码也作为CodePlex上的项目托管。 另外,由于该项目基于NAudio框架,该框架包含了很好的抽象级别,所以应该相当容易地使用音频来做别的事情(而不是通过Skype进行流式传输)。 无论如何,这是一个相当完整(和稳定)的例子 – 绝对值得在我看来。

如果你想/需要使用C ++或其他语言进行开发,那么这个项目至少应该给你一些关于如何去做的想法。 尽管如此,如果你可以使用.NET,那么你很幸运,我想。

机器人的声音通常是以环形调制器的效果完成的,将声音与正弦波混合在一起 – 这样更容易。 或者使用声码器效果,将声音调制到其他波形(如矩形) – 可能会更棘手。 去看看效果如何工作,得到一个程序,你可以检查他们的声音(Audacity适用于环调制器,查找和使用声码器可能有点困难)。 然后阅读它是如何完成的,或者得到一个图书馆来处理你。

您正在寻求支持VSTi或DXi插件。
有吨也作为声码器,即使是免费的。
您只需编写主机应用程序。 看看这里 🙂

现在,这是一个很好的想法,特别是对于移动应用程序。

我可能会开始离线使用.wav文件作为输入,以得到我想要的方式效果。 你可以使用任何高级语言,但是你可能想要一些能很好地映射到C / C ++的东西。

就产品版本而言,我会选择原生的,并用C或C ++来完成。 你想快速的实时音频处理,我喜欢避免依赖像.net分发。 (并不是说我对.net有任何反对,对于公司内部的服务器和分布来说是很好的,但是我并不热衷于将它作为一个收缩包装软件的依赖项)。

Windows DirectShow将是一个诱人的选择 – 如果您将语音转换为直接显示过滤器,则可以使用多媒体进行一些有趣的效果。

你正在寻找的是一个声码器 。 我不知道上面列出的技术是否具有声码器效果,但最好的机会是使用DirectX。

试试这个示例应用程序。我认为它对你有用。 链接