该示例使用MMDevice、WASAPI、DeviceTopology和EndpointVolume API来捕获高质量的音频流。该示例通过使用回声消除(AEC) DMO(也称为Microsoft提供的语言捕获DSP)支持声学回声消除(AEC)和麦克风阵列处理。
描述
该示例演示了如下功能:
·MMDevice:多媒体设备枚举和选择;
·WASAPI:流管理操作,例如流的启动、停止、切换;
·DeviceTopology:列举音频适配器;
·EndpointVolume:控制音频会话的音量级别
前置条件
下载示例
构建示例
构建AecSDKDemo,需要按照下面的步骤:
1.打开一个SDK命令窗口;
2.跳转目录:cd %MSSDK%Setup;
3.运行 VCIntegrate.exe,至此,命令窗口将具备适当的环境来构建使用SDK的应用程序。
4.构建
运行示例
如果你成功构建了演示程序,则会生成一个i额可执行文件AecSDKDemo.exe。要运行它,需要在命令窗口中输入AecSDKDemo,后跟必需参数或可选参数,如下所示:
AecSDKDemo -out mic_out.pcm -mod system_mode [-option value]
参数如下表所示:
参数 |
描述
|
-out
(必需) 指定输出文件名称.
-mod
(必需) 指定语音捕获系统模式.
-feat
(可选) 打开(1)或关闭(0)功能模式.
-ns
(可选) 打开(1)或关闭(0)的噪音抑制。要指定此功能,功能模式必须打开(-feat 1)。
-agc
(可选) 打开(1)或关闭(0)数字AGC。要指定此功能,功能模式必须打开(-feat 1).
-cntrclip
(可选)打开(1)或关闭(0)中心裁剪功能。要指定此功能,功能模式必须打开(-feat 1).
-spkdev
(可选) 指定扬声器设备索引。如果未指定,则会要求用户选择
-micdev
(可选) 指定麦克风设备索引。 如果未指定,则会要求用户选择。
-duration
(可选)指定应用程序运行多长时间。
此示例应用程序不播放任何信号。 要正确运行演示以启用AEC模式(模式0和4),用户必须通过为DMO指定的扬声器设备(即,“-spkdev”选项指定的设备)播放一些音频信号,该设备模拟 双向聊天场景中的远端语音。 用户可以使用任何播放器播放任何音频信号。 如果所选扬声器设备上没有活动的渲染流,则DMO将无法处理。
参考:
https://www.yuque.com/docs/share/2fcec0bb-6f58-4122-8703-c4d48818ec59