音频文件处理方法

2024-06-25

音频文件处理方法(通用4篇)

音频文件处理方法 篇1

广西人民广播电台广播节目信号传输链路复杂、信号源多,所有节目信号分别传送到网络公司、地球站和104台。随着通讯设备的多元化及受众对节目的要求日益提高,广播节目信号的接收端也呈现多元化,信号格式也出现多样化,其中,数据格式包括音频、视频、图文以及网络数据等格式的传输。针对如此多元化的数据格式,必须做到既要保证数据传输的完整性、安全性、稳定性外,还要综合考虑信号的高传输率等问题。并且,在整个传输链路的过程中,尽可能对各节点进行随时监听监视,从而最大程度保证信号可以安全有效传送到发射台、站,确保安全播出。

为了使数据可以稳定传输,并且充分利用传输带宽,提高传输率,在信号传输系统中,我们必须对信号进行编码,然后对数据流进行相应的处理,使信号传输系统具有一定的纠错能力和抗干扰能力,提高数据传输率,降低误码率,从而保证安全播出。

1 音频编码

随着广西电台数字化改造系统的完善和网络公司、调频台等发射台、站传输系统的升级,我台使用的多用途数字通路传输系统是采用E1线路进行传输的一种综合复用设备。这一系统是建立在物理层保障带宽的一种时隙分割技术,其在物理层中将一条E1线路分割为多个通道(N个),从而可以分别同时传输数据、电话、时钟以及音频等多个业务。每一个传输通道的基本带宽单位设计为64 Kbit/s,总带宽为N×64Kbit/s,可确保数据、电话、音频等多个业务在传输时不会出现带宽拥挤、独占情况,保障了不同数据能实现匀速、独立传输,还能有效解决多个数据经过IP网络过程中发生的带宽竞争情况,有效解决了带宽不能确保实时业务的问题。

广西电台音频信号传输流程中的编码器使用示意图如图1所示。

音频信号进行数字化之后,所面临的一个问题就是巨大的数据量,这为存储和传输带来了压力。为使编码后的音频信息可以被广泛使用,在进行音频信息编码时,需要采用标准算法。我台使用的编码器,其编码格式是MPEG-2标准的广播级高品质数字压缩编码,输出码率在32~384Kbps,支持模拟音频和数字音频接口(AES/EBU),音频编码支持单声道/双单声道;解码卡符合MPEG-2标准的广播级高品质音频解码,支持ISO/MPEG-1&MPEG-2、Layer1&所有采样频率、所有编码速率和所有编码方式的数据;支持ES格式的MPEG数据;具有模拟音频和数字音频输出。由于该编码标准采用可降低数码率、提高传输效率的信源编码,所以,可用相对较少的存储空间来存储音频信息,并能较好地恢复原始音、视频信号,所支持的图像分辩率最高。所支持的应用最为广泛,包括存储媒体中的DVD、广播电视中的数字广播电视、HDTV可应用于交互式(端对端)的点播视频(VOD)和准点播视频(NVOD),能够适配于ATM这种新兴的宽带通信网。

MPEG-2编码标准压缩的原理如下。

第一,去除冗余信息,只保留少量非相关信息进行传输,可以大大节省传输频带;

第二,接收机利用这些非相关信息,按照一定的解码算法,可以在保证一定的音、视频信号质量的前提下恢复原始信号;

第三,能够最大限度地去除信息中的冗余信息。

2 音频编码后出现的异常现象

信号编码的最终目的是增加信号传输系统的安全性、可靠性、高效性。然而,信号经过编码后,同时也会出现一些其他的弊端,比如信号编码会减少有用信息数据的传输。因为在信号编码过程中,会在原始的数据码流中加插一些码元,如此便可以达到在接收端对所传送的信号进行判断和纠错的目的,如此可见,信号编码的目的是为了保证信号的同步和避免信号在信道传输过程中的干扰。

由于音频编码器对信号进行数据压缩编码时,会对数据中存在的空间冗余、时间冗余、结构冗余等进行压缩处理,虽然目前的音频压缩技术已经非常成熟,基本可以满足各种音频处理的需求,但是,再完美的压缩技术,也都是对原始信号进行有损计算,已达到减少传输数据量、提高传输效率、提高数据压缩时间和减小延时的目的。在这个过程中,就会引起一些由于编码压缩而导致的一些问题,现就我们在使用过程中积累的一些问题及经验做出分析并给出相应的解决方案。

2.1 编码后的信号有不连续、卡壳的现象

经过ACS1380多路音频编码器编码后的信号,传输到发射台、站后,听众听到不连续、卡壳等噪音很大的现象,导致信号出现劣播。

2.2 数字输入出现卡壳现象

AES信号通过ACS1380多路音频编码器后,经解码器解码出来的信号有不连续、卡壳的现象。

2.3 解码后的音频信号出现的问题

信号经过解码器解码后,出现其他异常问题造成播出信号劣播情况。

3 异常情况的处理方案

在我们使用过程中发现,虽然经过编码器编码后的信号传输较未经编码器编码的信号传输,抗干扰能力明显增强了很多,也增加了可靠性和安全性。但是,我们同时也发现了因编码器设备而导致的一些问题,我们对出现的问题进行归纳分析后,给出的解决处理方案如下。

3.1 编码后的信号有不连续、卡壳的现象

问题现象:AES数字信号输入ACS1380多路音频编码器编码后,经总控传输设备传送到发射台、站发射后,听众使用接收终端接收到信号出现不连续、卡壳等现象,导致信号出现劣播。

解决方案如下。

第一,从编码器的E1输出口输出的编码信号,使之接到E1解码器,监听解码后的信号是否与原信号一致而且音质不变;

第二,如果音质出现严重的不连续、卡壳等影响音质的现象,则先检查前端AES信号输入源是否正常,如果正常,则排除信号源的问题,可推断是编码器编码出现了问题;

第三,先把信号源变成模拟信号输入,然后把编码器信号输入源参数设置切换到模拟信号输入;

第四,把AES信号输入卡侬头拔下,稍等几分钟后再接上,无AES信号输入时,可让芯片进行复位恢复,重新同步;

第五,然后把编码器信号输入源参数设置切换到数字信号,即可把所出现的不连续、卡壳的现象消除。

总结:该音频信号出现的异常现象,是由于编码器编码过程中出现了不同步编码,让编码器重新同步即可恢复正常。

3.2 数字输入出现卡壳现象

问题现象:AES信号通过ACS1380多路音频编码器后,经解码器解码出来的信号出现不清晰、模糊、有背景噪音的现象。

解决方案如下。

第一,该问题有可能跟AES信号受干扰有关系,应检查相关输入信号的前端设备是否正常接地,并确定信号接地是否接牢;

第二,输入信号设备开关机的冲击也会导致音频信号出现上述现象。

总结:要保证信号设备正常接地并且接地牢固,可避免该类问题。

3.3 解码后的音频信号出现的问题

问题现象:经编码器编码后的信号经过解码器解码后,出现的其他异常问题造成的播出信号劣播情况。

解决法案如下。

第一,确认编码器的编码信号是否正常,可通过前端解码设备监听和监听该编码信号,区分是前端还是解码端出现问题;

第二,若前端有问题,将输入信号切换为模拟输入,如此可以区分是编码问题还是前端输入信号的问题;

第三,若编码器端没有问题,再检查E1线路及E1解码器是否有问题,如此便可以逐一排除故障。

总结:在音频信息出现异常时,需要分段逐一排查,方可确定是在前端、后端还是编码器本身出现问题,进而解决问题。

4 避免异常情况的措施

每个音频编、解码器在数据进行编码、解码并发出去之前,都会形成一定的内部延时,传统的编码器已检测到高达50ms的编解码器延时。技术人员在解决这个问题时,通常会在降低数据传输的稳定性和增加传输延时时间这两者之间进行权衡。所以,在正常情况下,编码器在设计的时候,已经可以达到比较稳定的信号编码效果。那么,偶然出现的一些音频异常情况时,我们应该如何更好地避免呢?

首先,应该在编码器输出端,同时与一台解码器进行连接,通过监听输出,可以达到实时监听的效果;其次,编码器本身有自己的监控液晶显示屏,如果出现异常,显示屏则会出现红色,并有声音报警;最后,可以利用音频比对技术,将编码器解码出来的信号以及卫星接收调频台信号,分别与源信号进行音频实时音频比对,如果出现信号不一致或者波形不一致,则出现音频报警。通过以上几种方式,可以对编码器的编码信息在出现噪音或者音质出现异常的情况下进行实时监听。这种方式可以更有效地发现问题,进而解决问题。如图2所示。

5 结语

广西人民广播电台数据传输系统中,音频编码是很关键的一个环节,编码的主要目的就是要把我台的七个频率的信号进行编码打包后,能更好地适应信道的传输,满足数字数据传输的各种要求。一个好的编码器,会针对数据的传输率、信号传输的延时以及尽可能提高数据压缩率这三者之间进行权衡和设计,以满足客户不同的需求,所以,在选择编码器的时候,如果根据实际情况进行选择,就可以使编码器在传输系统中起到很好的编码效果,最大化优化数据链路,但是,在使用过程中,只要对有可能出现的编码问题做好预先的监听监测等防防工作,才可能避免可能发生的音频编码异常情况,从而达到安全播出。我们还可以使用编码器自带的监听管理功能,实现与发射台的互补监测,这极大地方便了技术人员了解编码后的信号与直播室输出信号内容的输出情况,直观掌控安全播出节点,大大提高了安全播出水平,加强了广播安全防范系统的安全性。故该系统完全能够实现将信号从广西电台播控中心安全、高效、稳定传输到发射台、站的目的。

摘要:音频传输中巨大的数据量,给存储和传输带来了很大的压力,而这些数字音频信号中存在着大量的冗余:频域冗余、时域冗余以及听觉冗余。随着数字化编码技术的高速发展,技术人员利用声音压缩编码的声学原理及心理学模型,设计了信号压缩编码的各种标准,使我们在传输信号前,可以对庞大的数据压缩后再进行传输,以达到符合传输信道的要求,从而实现信号的高效率传输。然而,在这个过程中,音频信号编码后,一些异常问题也时有发生,比如,信号不连续、卡壳等,本文对这些异常情况的处理方法做了一个简单的介绍。

关键词:音频编码,信号异常,编码异常,处理方法

音频文件处理方法 篇2

《标准施工招标文件》第二章第3.7.2条规定:“投标文件应当对招标文件有关工期、投标有效期、质量要求、技术标准和要求、招标范围等实质性内容作出响应”。[1]《招标投标法实施条例》第五十一条规定:“有下列情形之一的, 评标委员会应当否决其投标:…… (六) 投标文件没有对招标文件的实质性要求和条件作出响应”。[2]《评标委员会和评标方法暂行规定》第二十三条规定:“评标委员会应当审查每一投标文件是否对招标文件提出的所有实质性要求和条件作出响应。未能在实质上响应的投标, 应当予以否决”。[3]

以上法律法规的相关要求及规定具体而明确。一个严格按照规范及程序完成的招投标活动, 其中标人投标文件与招标文件发生某些不一致的情况, 是不合逻辑的, 但现实中却偏偏会发出这种情况。其原因或是招标文件某些实质性内容不清, 或是投标文件无意失误碰巧评审的疏漏。再纠其原因是在于人, 因为没有人能保证做事绝对不会失误和疏漏。因此, 非要在杜绝中标人投标文件与招标文件的某些不一致情况上下功夫, 显然是徒劳的。不如面对已经出现的“不一致情况”, 积极寻找科学合理的解决方法。

《中华人民共和国招标投标法实施条例》第五十二条规定:“投标文件中有含义不明确的内容、明显文字或者计算错误, 评标委员会认为需要投标人作出必要澄清、说明的, 应当书面通知该投标人。投标人的澄清、说明应当采用书面形式, 并不得超出投标文件的范围或者改变投标文件的实质性内容”。该条文从一个侧面承认, 招标投标文件内容的疏漏、失误是难免的, 评标阶段可以给投标人一定的、有条件的纠正机会。

解决“不一致情况”的途径

1.合同组成添加招标文件

将招标文件列入合同文件的构成, 并在专用合同条款的合同文件组成及优先顺序中, 将其优先顺序排在投标函及其附录之前, 合同履行期间随时发现及时纠正, 即可解决技术标和商务标中“不一致情况”。这种做法在实践中比较常见, 但饱受专家学者们的非议, 双方的观点也是各执一词, 其深层次的原因与目前对招标 (投标) 文件的某些法律性质的观点不一致有关。

2.设置响应承诺条款

《标准施工招标文件》第二章第3.7.1条关于投标文件的编制要求中, 允许投标人的“投标函附录在满足招标文件实质性要求的基础上, 可以提出比招标文件要求更有利于招标人的承诺”。因此, 从公平、公正、诚信及职业道德要求考虑, 应在招标文件的投标人须知前附表中, 补充须投标人更全面完整的响应承诺条款, 即凡属投标人有能力响应的招标文件实质性要求, 若投标文件的相关内容描述为对其不予以响应时, 且项 (处) 数少于一定的数量, 招标人可认为投标文件的相关内容描述是一种无意失误, 投标人同意招标人在评标时或中标后及合同履行期间, 将其修正为响应招标文件要求, 并且不改变投标文件的实质性内容。否则, 其投标作废标处理。

对投标文件中出现“有限的”“失误 (错误) ”可以认为是偶然的、无意的和难免的, 可称之为:有限容纠失误。为了保证投标文件的编制质量, 对失误数量应设置一个限度, 比如:评标时可容忍的失误数≤3项 (处) , 评标打分设计为:无失误得3分, 失误1项 (处) 扣1分, ……失误4项 (处) 及以上的, 认为投标文件编制质量极差, 其投标作废标处理。合同履行期间才发现有4处及以上失误的, 除按承诺进行修正外, 还可约定一定的经济赔偿。

该承诺是基于“响应推定”而提出的, 至少在形式上表明投标人是带着诚信参与招投标, 显然不承诺的诚信、动机、企图都将受到质疑, 其投标将被拒绝。对于一个合格的投标人投入大量的人力物力参与一个招投标活动, 目的就是希望中标, 对于招标文件中的合法合理的要求条件无疑是接受的, 为了避免一处“无辜”的失误导致投标失败, 这样的承诺投标人也一定乐意接受。有了此承诺, 面对几十万字的投标文件, 评标人员不必把大量的时间精力无谓地消耗在找出几个“错别字”上, 乃至轻易就把一个投标文件否决了。

解决“不一致情况”的方法

技术标中的不一致情况解决方法较简单, 只需将不一致的文字或描述进行修改即可。解决商务标的不一致情况, 主要是对于一个具体的已标价工程量清单而言, 投标总报价与待修正数值之间存在着确定的对应关系, 投标总报价就是合同价, 是投标文件中最重要的实质性内容, 投标总报价组成中的某个数据或算术错误的修正, 会导致一系列的数据的变动, 加之数据量大, 评标时没有充足时间进行核对, 往往到竣工结算时问题才会暴露。因此, 探究合理的对这类不一致情况的修正方法, 是本文着重讨论的主要问题之一。

1.修正对象和修正原则

(1) 修正对象。工程量、单价及合价等。

(2) 修正原则。第一, 投标总报价不得修正;第二, 未填写单价和合价 (以下简称“漏价”) 项目的单价采用招标控制价中的相应单价 (或其余投标人该项单价的平均值) 替代;第三, 纠正算术错误, 合价金额与依据单价计算出的结果不一致的, 以单价金额为准修正合价;第四, 项目编码、项目名称、特征描述、计量单位、工程量等按招标文件纠正。

2.修正方法

其中, Qi为工程量 (规定计取的费率从计算形式上可看做广义的工程量) ;Pi为单价 (与费率相乘的部分其本质就是价值。因此, 从计算形式上也可看做广义的单价) ;α为修正系数。

公式 (1) 必须消除了原投标总报价组成所有的算术和形式上的缺陷, 并且确定为结算调整的依据。以下通过一个简化的报价数据对比加以说明 (见表1、表2) 。

在表1、表2中有意设置以下几处错误:杯子的合价计算结果错误, 如110×15≠1485;托盘为漏报单价, 替代值20;合计错误, 如1485+500≠1886。

对表1、表2的对比分析是:表1的合价经调整后完全消除了算术错误, 而表2合价调整值的列合计没有错误, 但其中1485这个数值本身的错误并未消除, 必然导致修正系数的不同 (表1:α=80.24%;表2:α=86.30%) 。

同一结算如果分别按照表1、表2计算结果显然不同, 1978=80.24%×2465, 2127=86.30%×2465。对两个简化表的数据很容易找出原因, 但是真实投标总报价组成的计算表的子目有几百甚至上千项, 不同的计算结果和差异是不易被察觉的。这就是为什么要求计算修正系数时, 一定要消除了原投标总报价组成的所有算术和形式上的错误的原因。

结论

《建设工程工程量清单计价规范》GB50500-2013第6.2.7条规定:“……未填写单价和合价的项目, 视为此项费用已包含在已标价工程量清单中其他项目的单价和合价之中。当竣工结算时, 此项不得重新组价予以调整”。[4]第8.2.2条规定:“施工中进行工程计量, 当发现招标工程量清单中出现缺项、工程量偏差, 或因工程变更引起工程量增减时, 应按承包人在履行合同义务中完成的工程量计算”。如果“漏价”项目因工程变更引起工程量增减时, 显然“漏价”项目增减部分的工程量应当调整, 这是个无法回避的现实问题。

摘要:笔者通过“合同组成添加招标文件”和“响应承诺”两个途径, 探索建设工程在发包、实施阶段出现的招标与投标文件不一致问题的处理方法。

关键词:招标文件,投标文件,不一致问题,处理方法

参考文献

[1]《标准文件》编制组.中华人民共和国标准施工招标文件 (2007年版) [M].北京:中国计划出版社, 2007.

[2]中华人民共和国国务院.中华人民共和国招标投标法实施条例[Z].2011-12-20.

[3]中华人民共和国国家发展和改革委员会.评标委员会和评标方法暂行规定[Z].2013.

音频文件处理方法 篇3

语言是人们之间进行通讯和交流必不可少的手段。语音由人的发音器官发出,语音信号是连续的模拟信号,在用计算机来处理时,需要进行数字化,包括采样、量化等过程,转换成离散的数字信号,保存在音频文件中。现在很多领域要求对语音信号中的音频数据进行进一步的加工和处理。例如,利用读出的音频信号数据,进行语音信号时域和频域分析、语音压缩、语音编码、解码、语音合成、语音识别、语音增强等,并通过波形观察比较不同编码效果。另外,利用多媒体语音系统我们还可以用语音数据和波形方便地进行噪声模拟分析,语音特征提取研究,以及语音识别和训练等应用方面的实验。又如:在人工智能领域,通过设计软件和硬件电路,用声音去控制计算机工作,还有机器人通过语音与人进行简单的对话交流等等。这些都要求我们对数字语音信号进行一些必要的加工处理。

wav文件格式是一种重要的数字音频文件格式,是目前应用很广泛的一种音频格式。相比于其他格式如MP3、MP4、RAM等压缩效率更高的音频文件格式,wav文件没有采用压缩技术,因而其文件要大很多,一般都在几兆字节,甚至更大。但也正因为没有采用压缩技术,wav文件中声音的采样数据很容易被读出来,便于做其他处理。例如:画出声音的信号波形、作出频谱,进行时域、频域分析,提取语音信号的特征参数用于语音识别等。现在的应用程序几乎都支持wav文件格式,也有专门软件可以完成从wav文件格式向其他文件格式的转换,或者把其他格式文件转换为wav格式,例如,微软公司的Adobe Audition。因此wav文件在目前仍然有着广泛的应用价值,有很多应用程序仍然采用wav文件格式。

本文在Visual C++环境下编程实现了wav音频文件的读取,读出其中的参数和音频数据,以便进一步用于特征参数提取、说话人识别等,并对TIMIT语音库的语音文件进行了读取试验验证。

2 wav文件格式分析

2.1 wav文件格式

由于wav格式的波形文件是二进制文件,用C语言编程对该文件读取其中的数据,需要先了解它的格式。

wav格式是微软公司开发的一种声音文件格式,也叫波形文件,是最早的数字音频文件格式,它具有RIFF(Resource Interchange File Format)格式。RIFF格式的wav文件由若干个Chunk(块)组成,按顺序为RIFF WAVE Chunk、Format Chunk、Fact Chunk(可选)和Data Chunk。每个块都有固定而且类似的格式,一般第1部分是块的ID,作为标识,4个字节大小,紧跟其后的是该块的大小,也是用4个字节表示,低字节表示低位,高字节表示高位;第3部分略有差异,以下分别详细说明。

RIFF WAVE块格式如表1所示:

Wav文件最开始4个字节是ID部分,其内容为RIFF的ASCII码,紧跟的4个字节是文件大小(字节数)减去ID和Size所占字节数,共8个字节,即文件大小(字节数)减去8。然后是Type部分,其内容为WAVE的ASCII码,4个字节。

Format块要复杂得多,其格式如表2所示:

其中ID部分同样占4个字节,其内容为"fmt"(注意最后有一个空格)的ASCII码。

fact块为可选的块,有的波形文件有这个块,有的没有,其格式如表3所示:

有些wav文件是由某些软件转化来的,一般就包含该块。其ID部分为fact的ASCII码,紧跟的4个字节是存储的是4,然后是data部分,其内容为WAVE的ASCII码,4个字节。

最后一个块是Data块,其格式如表4所示:

其ID部分为data的ASCII码,紧跟的4个字节是音频数据个数,然后是data部分,存储的是具体的音频数据。

2.2 wav文件示例

我用debug调试工具把一个wav二进制文件调入内存,再用该工具的显示命令d,把其中部分内容显示出来,如图1所示。

图中,第1行的d是显示命令,第2行的“1396:0100”是内存地址,4个十六进制数据“52 49 46 46”依次是"RIFF"4个字母的ASCII码;紧跟的4个十六进制数据“06 C7 03 00”实际上是一个数值,低位在前,高位在后,因此是十六进制数0x3C706,即十进制数247558,该值等于整个wav文件大小减去8;再后面的4个十六进制数据“57 41 56 45”依次是"WAVE"4个字母的ASCII码;至此是第一个块,即RIFF WAVE块。

之后4个十六进制数据“66 6D 74 20”依次是"fmt"3个字母加最后一个空格的ASCII码,这表示Format块开始;之后(第3行1396:0110)4个十六进制数据“10 00 00 00”实际上是一个数值,低位在前,高位在后,因此是十六进制数0x10,即十进制数16,表示该块的“Size”分布,由表2得知,该块最后没有附加信息;之后2个十六进制数据“01 00”实际上是一个数值,低位在前,高位在后,因此是十六进制数0x1,即十进制数1,根据表2,这是编码方式;之后再2个十六进制数据“01 00”同样是一个数值,低位在前,高位在后,因此是十六进制数0x1,即十进制数1,根据表2,这是声道数目,1表示单声道;之后4个十六进制数据“44 AC 00 00”是一个数值,低位在前,高位在后,因此是十六进制数0xAC44,即十进制数44100,根据表2,这是采样频率,即每秒钟采集的样本个数,单位为Hz;之后4个十六进制数据“8858 01 00”是一个数值,低位在前,高位在后,因此是十六进制数0x15888,即十进制数88200,根据表2,这是每秒所需字节数;前面采样频率为44100,即每秒有44100个样本数据,此处每秒需88200字节,显然,每个采样数据用2个字节来表示;之后2个十六进制数据“02 00”(第4行1396:0120)是一个数值,低位在前,高位在后,因此是十六进制数0x2,即十进制数2,根据表2,这是每个采样数据需要的字节数,这和前面的分析结论一致;之后2个十六进制数据“10 00”是一个数值,低位在前,高位在后,因此是十六进制数0x10,即十进制数16,根据表2,这是每个采样数据需要的二进制位数,16位即2个字节;Format块到此结束。

之后的4个十六进制数据“64 61 74 61”(第4行1396:0120)依次是"data"4个字母的ASCII码,此处是data块开始;之后4个十六进制数据“E2 C6 03 00”(第4行1396:0120)是一个数值,低位在前,高位在后,因此是十六进制数0x3C6E2,即十进制数247522,根据表4,这是采样数据大小,以字节个数为单位;再后面就是具体的采样数据,每个数据用2个字节表示,低位在前,高位在后。这个例子的wav文件没有fact块。

从图1中看出,前面的采样数据全为0,这是因为wav音频文件一开始是静音,没有声音。在进一步用debug工具的d命令继续往下显示,如图2所示。

从图2可以看出,音频文件有声音的部分,其采样数据就不是0。

3 编程实现

根据前面的分析和示例,我在Visual C++环境下用C语言编程实现了对wav音频文件的音频数据读取。

由于wav二进制文件结构较复杂,先定义一个头文件“wav.h”,在头文件除了给出定义:

以指向并打开音频文件;再分别定义四种结构体变量,文件位置指针等;再用fopen函数打开音频文件,用fread函数依次读取文件中的各个量,以及后面的音频数据。fread函数可以一次读取一个字节,也可以一次读取一个结构体的所有变量值,并自动移动文件指针,指向下一个需要读取的位置。

4 语

用C语言编程读取二进制音频文件内容,比较复杂,但代码效率高,得到音频数据后,便于后面用C语言进行进一步的处理,例如,分帧、提取语音特征参数或进行语音滤波等,这些工作在语音信号处理、语音识别中经常用到。

参考文献

[1]Haitao Luo,Local Thresholding De-noise Speech Signal,Fifth International Conference on Digital Image Processing(IC-DIP 2013),8878-48.

[2]李敏.音频文件格式WAVE的转换[J].电脑知识与技术,2005(8)73-75.

[3]徐济仁.WAV文件格式实例分析[J].微型机与应用,2002(3):50-51.

音频文件存储的理论与实践的研究 篇4

声音是通过空气传播的一种连续的波, 叫声波。话音波形的基本特征对声音数据的压缩编码、声音的识别和文本声音的转换都有很重要的意义。声音的强弱体现在声波压力的大小上, 音调的高低体现在声音的频率上。声音用电表示时, 声音信号是在时间幅度上都是连续的模拟信号, 声波具有普通波所具有的特征, 例如反射、折射和衍射等。

2 声音的存储和传输

2.1 WAVE文件

目前存在多种非压缩数据格式, 最流行的是WAV格式。WAV文件的格式灵活, 可以存储多种类型的音频数据, 对于保存原始的录音数据是一个好的选择。WAV格式是基于RIFF文件格式, RIFF格式与AIFF和IFF格式类似。RIFF (ResourceInterchangeFileFormat) 中文名称是“资源交互文件格式”, 是发展多媒体资源文件的一类标记文件结构。它是微软专门为Windows系统定义的波形文件结构, RIFF本身并不是文件格式 (因为它不代表一类确定的信息) , 但是它的名字包括“交互文件格式”说明是来源于IFF, 常见的WAVE语音文件主要有两种, 分别对应于单声道 (11.025KHz采样率、8Bit的采样值) 和双声道 (44.1KHz采样率、16Bit的采样值) 。这里的采样率是指声音信号在进行“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。对于单声道声音文件, 采样数据为八位的短整数 (shortint00H-FFH) ;而对于双声道立体声声音文件, 每次采样数据为一个16位的整数 (int) , 高八位和低八位分别代表左右两个声道。WAVE文件数据块包含以脉冲编码调制 (PCM) 格式表示的样本。

2.2 流媒体文件格式

流媒体简单地说就是应用流技术在网络上传输的多媒体文件, 而流技术就是把连续的影像和声音信息经过压缩处理后放到网络服务器上, 让用户一边下载一边观看、收听, 而不需要等整个文件下载完毕后才可以观看, 使时间延迟大大减少的网络传输技术。

2.2.1 流媒体文件

与非流格式的音频文件相比, 这种对多媒体文件边下载边播放的流式传输方式具有以下优点:启动延时大幅度地缩短;对系统缓存容量的需求大大降低;流式传输的实现有特定的实时传输协议

流格式音频文件一般都有以下的几点特征:把声音分成了一些小的帧, 每个帧都能解压出一定数量的PCM数据;帧与帧之间是独立的, 所以一帧如果出现错误, 不会影响别的帧;帧都从一个对应的标志数据开始, 只要找到这个标志, 就可以确认一个帧的开始;每个帧都有独立的信息头, 对这个帧所带有的数据进行描述, 从而保证不论从哪里开始都能正确地对帧进行解码;帧内带有CRC校验数据, 可以独立对帧传输的正确性进行校验。

2.2.2 MP3文件

MP3的全称是MPEGAudioLayerIII, MPEG的音频文件是由一些称为帧的部分组成的。帧和帧之间是相互独立的, 它拥有头部和音频信息, 没有头文件, 因此可以将其任意部分删除掉, 仍可以正确播放。若要读取MPEG文件的信息时, 找到第一个帧是非常简单的, 读它的头部, 设想其它的帧都是一样的。帧的头部是由帧的前4个字节 (32位) 来指定的, 帧的头部的前11位通常是由“帧同步”来设定。因此可以通过对最先出现的11位数据的设置来查找文件。如果已经读了整个文件的头部, 检查其值是正确的, 在接下来的表格中, 可以看到头部每一位的准确含义, 它们的值将会被检查是否有效, 每一个值在头部被有效地指定, 包括存储格式、是否有效、毁坏或不被允许。帧有时会有一个CRC循环冗余码校验, 但这种情况比较少见。下面的图表展现了头文件的内容, 不同的字母用来表示不同的区域。在表中, 可以看到每个区域所代表的详细含义:

AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM

2.3 VBR、CBR、ABR

上面介绍Mp3格式时, 我们假设每个帧的帧头都是一样的。不过每帧根据需要选择合适的比特率才是帧格式最优秀的特点之一。声音在时间上也有一定的相关性, 利用这个特性让编码器尝试保持整首歌都大致达到我们的品质要求, 对每个数据段选择最适合的比特率来进行编码。这样做可以在保持一定音质下进一步缩小文件的大小。现在越来越多的播放器支持已经支持VBR技术。

摘要:声音存储, 可以将人的声音或者音乐保存下来。声音保存的目的是用较少的数据保存尽量多的声音, 并且保证声音的质量。

关键词:资源交互文件格式,流媒体,动态比特率

参考文献

[1]Sadaoki Furui.Digital Speech Processing, Synthesis, and Recognition.Marcle Dekker, INC., 1989.

[2]姜楠等编著.常用多媒体文件格式与压缩标准解析[M].电子工业出版社.

上一篇:学士下一篇:室内植物墙