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

发布于 2024-11-04 01:13:45 字数 2150 浏览 9 评论 0 原文

2007 年,在 Windows Vista 中包含 DRM 的热潮期间,Windows Vista 团队博客的创建是为了回应许多担忧。其中一个问题涉及 VoIP 软件在 Windows Vista 上运行时执行回声消除的能力。

这是尼克·怀特在常见问题解答中所说的:

回声消除对于优质内容的效果会较差吗?

我们相信 Windows Vista 使应用程序能够访问足够的信息,以成功构建高质量的回声消除功能。

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

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

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

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

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

大概这意味着使用 环回模式 并不是提供回声消除服务的预期方法。

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

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

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

或者 Windows 团队是否暗示“对于大多数情况来说足够了,但在用户听歌曲或播放电影时就不够了” - 事实上不可能成功构建高质量的回声消除功能?


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

In 2007, during the fever over DRM being included in Windows Vista, a Windows Vista Team blog was created to respond to a lot of the concerns. One of the questions responded to the ability of VoIP software to perform echo cancellation when running on Windows Vista.

This is what Nick White had to say by way of an FAQ:

Will echo cancellation work less well for premium content?

We believe that Windows Vista provides applications with access to sufficient information to successfully build high quality echo cancellation functionality.

What information does Windows Vista provide to allow applications to build high quality echo cancellation functionality?

Note: Reading that statement, i get the impression that Windows Vista provides sufficient information to allow applications to successfully build high-quality echo cancellation functionality. Presumably the way Windows provides this information is through an API.

Echo cancellation works by sampling the playing output, and "subtracting it" from the recorded microphone input.

Unfortunately, as MSDN notes, one cannot always sample playing output:

Windows Vista provides digital rights
management (DRM). Content providers
rely on DRM to protect their
proprietary music or other content
from unauthorized copying and other
illegal uses. WASAPI does not permit
loopback recording of digital streams
that contain DRM-protected content.
Similarly, a trusted audio driver does
not permit a loopback device to
capture digital streams that contain
protected content. Windows Vista
allows only trusted drivers to play
protected content. For more
information about trusted drivers and
DRM, see the Windows DDK
documentation.

Presumably that means that using Loopback Mode from WASAPI is not the intended method to provide echo-cancellation services.

What is the intended API to allow the implementation of high quality echo cancellation?

Note: This is related to, but separate from, another question i asked: How to sample output audio mix?. This question is specifically looking for an expansion of the response by the Window Vista team that echo-cancellation is possible in Windows. This question is looking for the API; it can be a separate question of how to use it.

Googling for an answer, i get the impression that (while performing echo-cancellation) an application is allowed to sample DRM protected content, but the content will be degraded (i.e. "sufficient information"). This would make any echo-cancellation worse, but still possible.

Or was the Windows team implying "sufficient for most cases, but not while the user is listening to a song or playing a movie" - and that it is in fact not possible to successfully build high quality echo cancellation functionality?


Update: It should be noted i'm not looking for an echo-cancellation API, i'm looking for an API to sample the playing output - which is what's required to implement echo cancellation. Unless of course Windows Vista provides an echo-cancellation API (which is how they continue to protect Premium content). But i've not seen an echo-cancellation API either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黄昏下泛黄的笔记 2024-11-11 01:13:45

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

如果您正在寻找一个 API 来消除回声,它看起来像语音capture DSP 内置了对声学回声消除的支持。

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

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

If you are looking for an API to do echo cancellation, it looks like the voice capture dsp has built in support for acoustic echo cancellation.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文