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。
答案 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