人类能够听到的所有声音都称之为音频。在互联网科技高度发展的今天,各类设备和软件层出不穷,而其中大部分都可以以文件的形式对声音进行传输和保存,对于这些存储声音的文件称之为音频文件。 在效率源协助的案件调查中,如果能够直接提取到手机音频文件,如通话录音、手机录音、微信语音、QQ语音等,对于案件推进可能起到决定性作用。 不同的音频文件编码方式不同,生成的文件结构也各不相同,采用的数据修复方法自然也有差异。当我们想要对这些音频文件进行修复时,需要根据它们的编码方式采用不同的修复方法。本期效率源工程师就来聊聊多种音频编码格式的原理及其数据恢复解决方案。 PCM编码 一.PCM编码介绍 二.PCM编码运用场景 三.WAV音频文件存储结构及数据恢复 1、WAV音频文件存储结构 WAV音频文件中的音频数据编码方式有PCM、Microsoft ADPCM、IEEE float、ITU G.711 ɑ-law、ITU G.711 µ-law、GSM 6.10、ITU G.721 ADPCM等几种常见的压缩编码格式。 WAV格式音频文件存储结构 2、WAV音频文件数据恢复 在对WAV文件进行修复时,其中最关键的信息就是“fmt”块中记录的音频压缩编码格式信息(如下表)。根据各种编码方式可以在“data”块中提取出有效的音频数据,并按照wav的结构对文件进行修复。 WAV文件中fmt块包含编码信息 四.WAV音频文件修复注意事项 WAV文件修复需要分为两种情况来考虑: 一是有同设备生成的能正常播放的wav音频文件作为参考样本文件进行修复; 二是没有参考样本文件,则需要根据音频数据的特征自定义压缩编码方式、音频采样率、音频通道数、音频数据传输速率,通过自定义信息对音频文件进行修复。 这里以WAV文件采用PCM编码音频数据为例: MP3编码 一.MP3编码介绍 MP3编码流程 二.MP3编码运用场景 三.MP3音频文件存储结构及数据恢复 1、MP3文件存储结构 MP3文件是由帧(frame)构成的,帧是 MP3 文件最小的组成单位。 MP3文件大体分为三部分:TAG_V2(ID3V2),音频数据,TAG_V1(ID3V1),详细文件结构如下所示。 MP3文件结构 MP3音频文件中每帧音频数据之间相互独立,所以根据帧头结构可以确定每帧数据的长度,因此只要获取了帧头结构的参数信息,就可以确定每帧的帧长度。Mp3文件存储结构如下图。 Mp3文件存储结构 2、MP3音频文件数据修复 因为MP3文件中音频帧之间的独立性,MP3音频文件的修复通过音频帧的4字节帧头来确定音频帧数据。 OGG编码 一.OGG编码介绍 Ogg Vorbis编解码流程图 二.OGG编码运用场景 三.OGG音频文件存储结构及数据恢复 1、OGG音频文件存储结构 OGG是以页(page)为单位将逻辑流组织链接起来,每个页都有页头和页数据两部分。每页的页头中都有页标识“OggS”。OGG格式音频文件存储结构如下图。 OGG格式音频文件存储结构 2、OGG音频文件数据恢复 在OGG音频文件中,OGG Vorbis比特流是以三个数据包头开始的。这些头数据包按顺序依次是:标识标题、注释标题和设置数据包。这些都与解码Vorbis音频文件密切相关的,每个数据包都是以同样的头结构“vorbis”开始,如果一个ogg音频文件缺失了其中三个数据包中任意一个数据包内容,则该音频文件不能正常播放。 四.OGG音频文件数据修复注意事项 1、OGG音频文件是否缺失标识标题、注释标题和音频设置这三个数据包。 若缺失,要实现OGG文件修复则需要提供同设备生成的能够正常播放的OGG音频文件作为参考样本文件,再将受损文件中的音频数据按页提取出来,组成新的可播放的OGG音频文件。 2、OGG音频文件页校验码是否正确。 在OGG文件每页都有一个4字节页校验码, AMR编码 一.AMR编码介绍 AMR编解码流程 Payload Parse模块-----解码出编码语音数据; 二.AMR编码运用场景 三.AMR音频文件存储结构及数据修复 1、AMR音频文件存储结构 AMR音频编码分为两类分别为AMR-NB和AMR-WB。这两类AMR音频编码的区别主要在于帧类型和对应的传输比特率不同。AMR音频文件由文件头+若干语音帧构成,如图所示。 AMR音频帧1字节帧头结构 在每个语音帧的第一个字节为该语音帧的帧头,根据帧头中包含的帧类型值以及文件头结构确定每个语音帧的字节长度。AMR音频文件存储结构如下所示。 AMR音频文件存储结构 在计算AMR文件每个语音帧的字节长度,需要知道帧类型对应的编码方式,具体详情如下所示。 AMR帧编码方式 以上图(AMR音频文件存储结构图)的语音帧为例,其中一帧音频帧的帧头值为0x14=0b00010100,AMR文件的文件头为“AMR-WB”,帧头值0x14中包含参数内容有:帧类型为0010=2;帧质量为1,表示该帧为good frame;结合AMR帧编码方式表中数据可知,该音频帧的数据传输速率为12.65kBit/s。 2、AMR音频文件数据修复 在AMR文件中,每个语音帧的时长为20毫秒,因此在对AMR文件进行修复时:首先需要确定AMR文件的分类;然后根据每帧数据的帧头确定每帧数据的字节长度;再根据传输速率和每帧时长可计算出一帧音频帧的字节长度=传输比特率/每秒帧数/8位+1字节帧头,从而实现AMR文件修复。 四.AMR音频文件修复注意事项 针对AMR音频文件的数据恢复需分为两种情况考虑: 1、有参考样本文件的情况 首先,根据同设备生成的AMR文件的文件头确定AMR的分类; 2、无参考样本文件的情况 首先,根据语音帧帧头结构和两种AMR文件类型,反推出一帧语音数据的字节长度; 在日常工作生活中对于音频文件的运用无处不在,本文我们针对当前主流的几种音频格式,基于其音频编码方式原理提出的音频文件数据恢复方案,希望能够帮助您高效且快速的解决音频文件的数据修复问题。 如对文中的操作、描述有任何疑问,或者有任何取证需求,欢迎拨打热线电话028-85211099或关注“效率源科技”微信号给我们留言,我们会尽快联系您。 |