麦克风阵列录音要求
本文档介绍了音频数据采集的相关基础知识,对科大讯飞麦克风阵列SDK的录音数据格式要求进行了说明,用于协助开发人员快速进行阵列算法集成。
#音频基础知识
(1) 采样率(Samplerate)
采样就是把模拟信号数字化的过程,不仅仅是音频需要采样,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号,示意图如图2-1所示:
图2-1 声音的采样和量化
蓝色代表模拟音频信号,红色的点代表采样得到的量化数值。采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。
(2) 采样精度(位宽)
图2-1中,每一个红色的采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit等等,位数越多,表示的就越精细,声音质量自然就越好,当然,数据量也会成倍增大。
(3) 声道数(Channels)
由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。单声道(Mono)和双声道(Stereo)比较常见,顾名思义,前者的声道数为1,后者为2。
#麦克风阵列SDK录音数据格式
(1) 两麦克阵列数据格式要求如下:
图3-1 二麦音频数据格式
两麦克风阵列SDK要求输入2路麦克音频,2路参考参考信号,其中两路麦克数据要求采样点同步。原始音频共有4个通道,mic与参考信号分别对应4通道中的某一路(具体对应哪一路需要根据固件与硬件连线确定)。
(2) 六麦克阵列数据格式要求如下:
图3-2 六麦音频数据格式
六麦克风阵列SDK要求输入6路麦克音频,2路参考参考信号,其中6通道麦克数据要求采样点同步。原始音频共有8个通道,mic与参考信号分别对应8通道中的某一路(具体对应哪一路需要根据固件与硬件连线确定)。
图3-1、图3-2可以看到:红色字段为通道号码,绿色字段为有效音频数据,录到的原始音频有效位为20位。用户可以通过UltraEdit之类的软件以16进制方式打开录到的原始音频文件,对所录取的音频进行查看,是否符合格式要求。
#音频检测
对采集到的原始音频数据文件,需要进一步检测录音的有效性。
#截幅检测
降噪算法的运行,需要送入算法引擎的音频没有截幅现象出现。用户需要把录取到的多通道原始音频拆分为多个标准的16k、16bit-LE单通道音频。
测试需求
(1) 录制的原始音频文件
(2) Cool Editor
测试步骤
(1) 多通道原始音频拆分为多个标准的16k、16bit-LE单通道音频;
(2) 利用Cool Editor工具打开拆分后音频文件。
图4-1显示为截幅音频。通过Cool Editor打开可以看到截幅位置图中红框部分几个波谷处连续多个采样点都达到最大幅值,近似一条横线了的,可以得出此处音频出现了截幅(在波峰处同样判断)。
图4-1 截幅示意图
#同步性检测
多个麦克之间的音频不同步,会导致声源定位不准,降噪质量差。针对某些客户出现声源定位不准,降噪质量较差的问题,建议用户先检查音频同步性问题。
同步性的检测需要准备以下内容:
(1) 附件中提供的check_synchronous.pcm(48k,16bit-le,Stereo),用户也可自行生成扫频波推荐0~8k;
(2) Cool Editor软件。
同步性的检测需要对硬件电路进行一定改造。如图4-2所示,通过ADC到音频lineout的直连保证ADC采样端的同步。
图4-2 硬件电路改造
具体的操作步骤如下:
(1) 用Cool Editor打开提供的扫频音频check_synchronous.pcm其频谱图如图4-3准备播放。
图4-3 扫频音频
(2) 连接好硬件电路,如图4-4所示,ADC的麦克插入接口全部接在lineout输出上的一个通道。
图4-4 硬件连线
(3) 播放音频并开始录音。
(4) 多通道原始音频拆分为多个标准的16k、16bit-LE单通道音频。
(5) 同步性分析。
同步性分析
利用Cool Editor工具对拆分后的音频进行同步性分析,用CoolEditor将拆分后的音频全部打开,注意使能Option(选项)->Synchronize Cursor Across Windows(播放指针同步化)。图4-5与图4-6分别展示不同步和同步的波形。对比可以看出,不同步的音频在相同的采样点会有相位差存在,而同步音频基本没有相位差(在高频位置看到的现象更明显)。
图4-5 不同步
图4-6 同步