【发布时间】:2013-12-17 12:28:43
【问题描述】:
【问题讨论】:
标签: c# c++ audio real-time signal-processing
【问题讨论】:
标签: c# c++ audio real-time signal-processing
虽然可能不像使用预建库那么容易,但您可以从制造商处为您的声卡获取 C++ SDK。我会先浏览他们的网站或联系支持人员。
如果这不是一个选项,您还可以使用 DirectX 系列产品中的 DirectSound。学习曲线相当陡峭,但我相信它应该可以做任何你想做的事情。
最后一个选择是查看最喜欢的工具(例如 sound forge)。其中许多工具支持自动化,这意味着您可以点击应用程序,决定您想要什么,然后自动化该事件序列(例如See this)。
希望对您有所帮助,祝您好运!
旁注:我已经开发了许多硬件接口,根据我的经验,最好从一个至少可以完成您正在寻找的事情的示例开始,然后从那里修改代码.如果任何特定选项没有这样的示例,我可能会跳过它以支持有示例的示例。
示例
Direct Sound - Microsoft 有一个 Direct Sound 学习网站,您可以 find here。我还找到了this blog article,它有一个使用直接声音录制音频的示例。
Sound Forge - 如果您下载“脚本开发者工具包”,则脚本文件夹中的 C# 示例应该可以帮助您入门。我相信这个特殊的工具更专注于编辑和效果,但我猜应该有自动化录制。
【讨论】:
要实时录制音频,任何 API 都可以。请注意,WASAPI 是主要 API(自 Vista 以来),WaveIn API、DirectSound 等传统 API 作为兼容性层在 WASAPI 之上实现。
常规 API 假设您可以接受特定的处理延迟/开销,大约为几十毫秒。
如果您要比这更快,并且您需要实时性能,例如处理数据并尽快返回以进行回放,您需要所谓的exclusive mode streams,您可以在其中实现延迟几毫秒的数量级,与专业音频开发套件相当。
Windows SDK 在\Samples\multimedia\audio (C++) 中有一些录音示例
【讨论】:
我喜欢Fmod API,它支持录制(Sound recording with FMOD library)和实时效果。
【讨论】: