用于支持Windows Vista/7中的回声消除的API

Ian*_*oyd 5 windows audio windows-7 wasapi

2007年,在Windows Vista中包含DRM发烧期间,创建了一个Windows Vista团队博客,以回应许多问题.其中一个问题回应了VoIP软件在Windows Vista上运行时执行回声消除的能力.

这就是Nick White通过常见问题解答所说的话:

回声消除对优质内容的影响是否会降低?

我们相信Windows Vista为应用程序提供了足够的信息,可以成功构建高质量的回声消除功能.

Windows Vista提供哪些信息以允许应用程序构建高质量的回声消除功能?

注意:阅读该声明,我得到的印象是Windows Vista提供了足够的信息,使应用程序能够成功构建高质量的回声消除功能.据推测,Windows提供此信息的方式是通过API.

回声消除的工作原理是对播放输出进行采样,并从录制的麦克风输入中" 减去 ".

不幸的是,正如MSDN所说,人们不能总是对播放输出进行采样:

Windows Vista提供数字版权管理(DRM).内容提供商依靠DRM来保护其专有音乐或其他内容免受未经授权的复制和其他非法使用.WASAPI不允许环回记录包含受DRM保护的内容的数字流.类似地,可信音频驱动程序不允许环回设备捕获包含受保护内容的数字流.Windows Vista仅允许受信任的驱动程序播放受保护的内容.有关受信任驱动程序和DRM的详细信息,请参阅Windows DDK文档.

据推测,这意味着使用WASAPI的环回模式不是提供回声消除服务的预期方法.

什么允许实现高质量回声消除的API?

注意:这与我提出的另一个问题有关,但是是分开的:如何对输出音频混合进行采样?.这个问题专门针对Window Vista团队的响应扩展,即在Windows中可以进行回声消除.这个问题正在寻求的API; 它可以是一个如何使用它的单独问题.

谷歌搜索答案,我得到的印象是(在执行回声消除时)允许应用程序对受DRM保护的内容进行采样,但内容将降级(即"足够的信息").这将使任何回声消除更糟,但仍然可能.

或者Windows团队暗示" 足以满足大多数情况,但不是在用户正在收听歌曲或播放电影时 " - 并且事实上不可能成功构建高质量的回声消除功能?


更新:应该注意我不是在寻找回声消除API,我正在寻找一个API来对播放输出进行采样 - 这是实现回声消除所需要的.除非Windows Vista提供回声消除API(这是他们继续保护高级内容的方式).但我也没见过回声消除API.

小智 1

http://msdn.microsoft.com/en-us/library/ff819492(v=VS.85).aspx

如果您正在寻找一个 API 来消除回声,那么语音捕获 DSP 似乎内置了对声学回声消除的支持。

示例: http ://msdn.microsoft.com/en-us/library/dd443455(VS.85).aspx