2007 年,在 Windows Vista 中包含 DRM 的热潮中,创建了一个Windows Vista 团队博客来回应很多担忧。其中一个问题是针对 VoIP 软件在 Windows Vista 上运行时执行回声消除的能力。
这就是尼克·怀特在常见问题解答中所说的:
回声消除对优质内容的效果会较差吗?
我们相信 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。