使用 Microsoft Audio Stack 处理音频

Microsoft音频堆栈(MAS)是针对语音处理方案(如关键字识别和语音识别)优化的一组音频处理增强功能。 语音 SDK 集成了 MAS,允许任何应用程序或产品在输入音频上使用其音频处理功能。

音频处理管道

Microsoft音频堆栈提供两个音频处理管道,每个管道针对不同的方案进行了优化:

基于 DSP 的管道(默认值)

默认管道(AUDIO_INPUT_PROCESSING_ENABLE_DEFAULT)使用传统的数字信号处理(DSP)算法,并提供一整套增强功能:波束形成、去混响、声学回声消除、自动增益控制和噪声抑制。 可以禁用单个增强功能以匹配您的场景。 此管道支持所有麦克风阵列几何图形,可在 Windows 和 Linux 上使用。

有关 DSP 增强功能和代码示例的详细信息,请参阅 DSP 的音频处理与 Microsoft 音频堆栈

基于模型的回声消除流程

基于模型的管道(AUDIO_INPUT_PROCESSING_ENABLE_V2)将基于 DSP 的回声取消器替换为机器学习模型,以改进回声抑制。 此流程专注于声学回声消除,并为回声抑制质量至关重要的场景而设计。

有关详细信息和代码示例,请参阅使用Microsoft音频堆栈的模型回声消除技术

管道比较

音频增强功能

Feature 基于 DSP (默认值) 基于模型 (V2)
声学回声消除 ✔✔
噪声抑制
Dereverberation
自动增益控制
波束形成
禁用单个增强功能

✔✔ = ML 增强 ✔ = 支持 ✘ = 不支持

平台和语言支持

Feature 基于 DSP (默认值) 基于模型 (V2)
Windows x64
Windows ARM64
Linux
C++
C#
Java

语音 SDK 集成

这两个管道都可通过语音 SDK 的 AudioProcessingOptions 类使用。 关键功能包括:

  • 实时麦克风输入和文件输入 - 音频处理可应用于实时麦克风输入、流和基于文件的输入。
  • 说话人参考通道 - 可以通过使用 SpeakerReferenceChannel.LastChannel 选项为回声消除指定说话人参考通道。

隐私和数据处理

处理是在使用语音 SDK 的纯粹本地环境中进行的。 Microsoft音频堆栈不会将音频数据流式传输到Microsoft的云服务进行处理。 唯一的例外是对话听录服务,其中原始音频发送到Microsoft云服务进行处理。