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

时间:2011-04-27 19:38:16

标签: windows windows-7 audio wasapi

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

这就是尼克怀特通过常见问题解答所说的话:

  

对于高级内容,回复取消的效果会降低吗?

     

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

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

  

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

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

不幸的是,as MSDN notes,人们不能总是采样播放输出:

  

Windows Vista提供数字版权   管理(DRM)。内容提供商   依靠DRM来保护他们的   专有音乐或其他内容   从未经授权的复制和其他   非法用途。 WASAPI不允许   环回记录数字流   包含受DRM保护的内容。   同样,可靠的音频驱动程序也可以   不允许环回设备   捕获包含的数字流   保护内容。 Windows Vista   只允许信任的司机玩   保护内容。更多   有关可信驱动程序的信息   DRM,请参阅Windows DDK   文档。

据推测,这意味着使用WASAPI中的Loopback Mode并不是提供回声消除服务的预期方法。

预期的API,以实现高质量的回声消除?

  

注意:这与我提出的另一个问题有关,但与其分开:How to sample output audio mix?。这个问题专门针对Window Vista团队的响应扩展,即在Windows中可以进行回声消除。这个问题正在寻找 API;它可以是如何使用它的单独问题。

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

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


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

1 个答案:

答案 0 :(得分: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