XNA | C#:录制和更改声音
我的目标是编写一个记录人类声音并改变它(带有效果)的项目。 例如:一个人将通过麦克风录制声音(说一会儿),然后程序使其像婴儿的声音。
这应该有效且快速地运行(同时记录更改操作也必须运行)
最好的方法是什么?
谢谢
My aim is code a project which records human sound and changes it (with effects).
e.g : a person will record its sound over microphone (speak for a while) and than the program makes its like a baby sound.
This shall run effectively and fast (while recording the altering operation must run, too)
What is the optimum way to do it ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您正在寻找 XNA 或 DirectX 来为您执行此操作,我敢肯定您会不走运(我对 DirectSound 没有太多经验;也许有人可以纠正我)。听起来您想要做的是实时数字信号处理,这意味着您要么需要编写自己的代码来操作原始波形,要么找到其他人已经编写过给你的代码。
如果您没有编写此类内容的经验,那么最好使用其他人的信号处理库,因为此类内容很快就会变得复杂。由于您正在为 PC 进行开发,因此您很幸运;您可以使用 P/Invoke 使用任何您喜欢的库。您可以尝试此处和此处。
If you're looking for either XNA or DirectX to do this for you, I'm pretty sure you're going to be out of luck (I don't have much experience with DirectSound; maybe somebody can correct me). What it sounds like you want to do is realtime digital signal processing, which means that you're either going to need to write your own code to manipulate the raw waveform, or find somebody else who's already written the code for you.
If you don't have experience writing this sort of thing, it's probably best to use somebody else's signal processing library, because this sort of thing can quickly get complicated. Since you're developing for the PC, you're in luck; you can use any library you like using P/Invoke. You might try out some of the solutions suggested here and here.
MSDN 有一些有关 XNA 中的音频命名空间以及版本 4 中引入的音频录制的信息:
请记住记录的数据以PCM格式返回。
MSDN has some info about the Audio namespace from XNA, and the audio recording introduced in version 4:
Keep in mind that recorded data is returned in PCM format.