问题 如何实现语音转换器?


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

非常感谢你!


1339
2018-06-06 13:21


起源

凯文 - 这是一个商业项目吗? - billmcc
这取决于。我现在不确定。


答案:


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

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


7
2018-06-06 13:52





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


3
2018-06-06 14:01





您希望支持VSTi或DXi插件。
有些吨也可以作为声码器,即使是免费的。
您只需要编写主机应用程序。 看一看 这里 :)


1
2018-06-06 13:53



没问题。接受正确答案顺便说一句。我想知道你认为谁是对的。 - the_drow


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

我可能会通过使用.wav文件作为输入来启动离线,以使效果按照我想要的方式工作。你可以使用任何高级语言,但你可能想要一些能够很好地映射到C / C ++的东西。

就生产版本而言,我会使用C或C ++进行本地化。你想要快速实时的音频处理,我喜欢避免依赖.net这样的东西进行分发。 (并不是说我有任何针对.net的东西,它对公司内部的服务器和分发很有用,但我并不热衷于将它作为收缩包装软件的依赖。)

Windows DirectShow将是一个诱人的选择 - 如果您将语音变形器实现为直接显示过滤器,您可以使用多媒体做一些有趣的效果。


0
2018-06-06 13:38





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


0
2018-06-06 13:40





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


0
2018-03-30 08:15