我想写一个改变麦克风输入声音的应用程序,让它像机器人或一些有趣的人的声音。它必须支持将改变的声音发送到所有应用程序,如 IM 软件或游戏客户端。我应该采用哪种技术?Windows 波形 API?直连?音频驱动?
非常感谢!
有一篇 MSDN Coding4Fun 文章解释了如何在 C# (.NET) 中创建通过 Skype 运行的语音转换器。完整的源代码也作为项目托管在CodePlex上。此外,对音频进行其他操作应该相当容易(而不是通过 Skype 流式传输),因为该项目基于NAudio框架,该框架包含良好的抽象级别。无论如何,这是一个相当完整(且稳定)的示例 - 在我看来绝对值得一试。
如果你想/需要使用 C++ 或其他语言进行开发,那么这个项目至少应该给你一些关于如何去做的想法。不过,如果您可以使用 .NET,那么我认为您很幸运。
您正在寻求支持 VSTi 或 DXi 插件。
有很多也可以充当声码器,甚至是免费的。
您只需要编写主机应用程序。看看这里:)
现在这是一个好主意,尤其是对于移动应用程序。
我可能会通过使用 .wav 文件作为输入来离线开始,以使效果按我想要的方式工作。您可以为此使用任何高级语言,但您可能想要一些可以很好地映射到 C/C++ 中的东西。
就生产版本而言,我会使用原生版本并使用 C 或 C++ 执行此操作。你想要一些快速的实时音频处理,我喜欢避免依赖于 .net 之类的东西进行分发。(并不是说我反对 .net,它对于公司内的服务器和分发非常有用,但我并不热衷于将其作为收缩包装软件的依赖项。)
Windows DirectShow 将是一个诱人的选项 - 如果您将语音变形器实现为直接显示过滤器,您也可以使用多媒体制作一些有趣的效果。
您正在寻找的是vocoder。我不知道上面列出的任何技术是否具有声码器效果,但最好的机会是 DirectX。
试试这个示例应用程序。我认为它对你有用。关联