Windows平台音频采集技术介绍

音频处理的相关技术:

  • 采集麦克风输入
  • 采集声卡输出
  • 将音频数据送入声卡进行播放
  • 对多路音频输入进行混音处理

在Windows操作系统上,音频处理技术主要是采用微软提供的相关API:Wave系列API函数、DirectSound、Core Audio。

我们简单的对以上接口从对操作系统版本的支持,是否支持声卡录音等方面加以说明

WaveIn系列API函数

是在32位的Windows上的一种老旧且过时,用来播放数字音讯的应用程序接 口,功能有所局限 ,它无法支持「混和多重音讯流」的功能。主要是用来实现对麦克风输入的采集(使用WaveIn系列API函数)和控制声音的播放(使用后WaveOut系列函数)。

支持XP及之后的Windows系统,支持麦克风输入的采集和控制声音的播放,不支持声卡的采集。

DirectSound

可实现多个声音的混合播放。DirectSound可充分使用声卡的内存资源,同时也提供了3D声效算法,模拟出真实的3D立体声。基于directx框架,directx 10之就没有了对directsound的支持,已经将directsound封装到directshow里面去了

支持XP及之后的Windows系统,支持麦克风,声卡的采集, 控制声音播放。

Core Audio

Windows Vista、Windows 7、Windows server 2008等系统音频系统相比之前的系统有很大的变化,产生了一套新的底层API即Core Audio APIs。该低层API为高层API( 如Media Foundation(将要取代DirectShow等高层API)等 )提供服务。相比之前版本的API有如下优势:

1. 具有低延时、故障恢复能力的音频流。

2. 提高可靠性 ( 将很多音频函数从核心态移到了用户态 )

3. 提高了安全性 (在安全的,低优先级别的线程处理被保护的音频内容)

4. 为单独的音频设备分配了特定的系统级别的规则 (console, multimedia, communications) 。

5. 用户可以直接操作相应音频终端设备(Audio Endpoint Devices 如:扬声器、耳机、麦克风、CD播放器)的软件抽象。

Core Audio APIs的组成

1. Multimedia Device (MMDevice) API    该API用于枚举系统中的音频终端设备(Audio Endpoint Devices)。告诉音频客户端程序有哪些音频终端设备以及它们的性能,并且为这些设备创建驱动实例(driver instances)。是最基本的Core Audio API,为其他三个API提供服务。

2. EndpointVolume API      使客户端程序能够操作音频终端设备。

3. Windows Audio Session API (WASAPI)      使客户端程序能够管理介于程序和音频终端设备之间的音频数据。

4. DeviceTopology API 客户端程序使用这个API可直接沿着音频适配器(audio adapters)的硬件设备里的数据通道进入布局特征。是最底层的音频API,可以通过适配器设备(adapter devices)的布局来查看和管理设备中的音频控制。下图为DeviceTopology API的作用范围

支持Vista及之后的Windows系统,支持麦克风,声卡输出的采集, 控制声音播放。

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/2435.html

(1)

相关推荐

发表回复

登录后才能评论