语音识别是基于语音的基础之上,因此对音频有一个深入的了解可以更好的帮我们理解语音,而语音的存储格式有很多,譬如pcm/wav,mp1/mp2/mp3,amr,wma,aac,opus等等,这次仅仅来说下最常见的格式PCM跟WAVE。
PCM(Pulse Code Modulation—-脉码调制录音)是最原始的存储格式,它是一种无损的编码方式,所谓PCM录音就是将声音等模拟信号变成符号化的脉冲列,再予以记录。PCM信号是由0、1等符号构成的数字信号,而未经过任何编码和压缩处理。与模拟信号比,它不易受传送系统的杂波及失真的影响。
WAVE是在PCM的基础上添加了44个头字节,这44个头字节分别来描述这个音频的信息,当中就包含采样率,码率,单双通道等。所以要在编辑器里看PCM音频就需要指定采样率等信息。Windows下通常语音的编辑器有Adobe Audition、Cool Edit Pro、goldwave等软件,当然还有一个无比强大的软件就是格式工厂。Linux下的语音工具就是FFMPEG跟sox,FFMPEG是个万能的,很多图像跟视频的也都支持,sox称为音频处理领域的瑞士军刀。
Kaldi里的音频默认是16k采样率,16bits,单通道。如果是其他参数,需要根据配置来修改。此外,kaldi数据处理部分还有个音量跟语速的脚本,这部分在kaldi里通过sox来实现的。
Kaldi里有很大一部分数据是LDC的,比如timit,rm,wsj等。它们虽然是wave的格式,但其实不是真正的wav格式,其实是nist的sph格式,kaldi里通过sph2pipe这个来把格式转成真正的wave格式。如果有人要在windows下看这些音频,可以在linux下通过sph2pipe转换下,或者有个叫voicebox的matlab程序里有个readsph的程序来转下。此外,kaldi里librispeech其实是FLAC格式,这是一个无损的格式,也需要通过flac命令来转成wave来处理。
MP1/MP2/MP3:如果大家听音乐的话,就一定知道这个格式,在读初中那会,各种MP3播放器盛行。其实它不同于PCM,MPEG音频文件的压缩是一种有损压缩,根据压缩质量和编码复杂程度的不同可以分为三层,即大家所熟知的MP1,MP2和MP3这三种声音文件。MPEG音频编码具有很多的压缩率,MP1和MP2的压缩率分别为4:1和6:1~8:1,而MP3的压缩率则高达10:1~12:1,也就是说一分钟的CD音质的音乐,未经压缩需要10MB存储空间,而经过MP3压缩编码之后只需要1MB左右的存储空间即可,同时其音质保持不失真,这也是目前使用最多的一直文件格式。换句通俗易懂的话就是它是一堆二进制的数字,存储了一些没有太大用处的信息,我们将这些信息压缩掉,使得存储空间变小的同时不改变音质,因为人耳能感受的频率很小,只要压缩的使人耳感觉不到就可以了。
AAC: Advanced Audio Coding,高级音频编码,它也是一种有损压缩,相较于MP3,AAC的音质更佳且文件更小。AAC的压缩比通常为18:1,也有资料说为20:1,它支持多达48个轨道,15个低频(LFE)音轨,采样率最高可达96kHz,采样精度支持8,16,24,32bit,以及由多种语言的兼容能力,更高的解码效率。
Opus也是一种有损声音编码,它是一个开放格式,使用上没有任何专利或限制,且适用于网络上低延迟的即时声音传输。Opus可以无缝调节高低比特率。在编码器内部它在较低比特率时使用线性预测编码在高比特率时候使用变换编码(在高低比特率交界处也使用两者结合的编码方式)。Opus具有非常低的演算法延迟(预设为22.5 ms),非常适合用于低延迟语音通话的编码,像是网路上的即时声音串流、即时同步声音旁白等等,此外Opus也可以透过降低编码位元率,达成更低的演算法延迟,最低可以到5 ms。在多个听觉盲测中,Opus都比MP3、AAC、HE-AAC等常见格式,有更低的延迟和更好的声音压缩率。
自适应多速率音频压缩(Adaptive multi-Rate compression,简称AMR)是一个使语音编码最优化的专利。AMR被标准语音编码 3GPP在1998年10月选用,现在广泛在GSM和UMTS中使用。它使用1-8个不同的比特率编码。AMR 也是一个文件格式,存储AMR 语音编码文件. 很多手机允许用户存储短时间的AMR 格式录音,而部分开源(参看外部链接)和商业软件有和其他格式转换的程序。但是AMR是一个语音格式,并未针对其他声音进行最优化。普通文件扩展名是 .amr。微信上的语音就是这个格式。amr分为窄带跟宽带,分别对应8k采样率跟16k的采样率。
我们就介绍上面几种音频格式,其实还有很多的音频格式:
有两类主要的音频文件格式:
无损格式,例如WAV,PCM,ALS,ALAC,TAK,FLAC,APE,WavPack(WV)
至此,语音音频格式就整理完了,如果有任何问题欢迎留言交流。
