音频压缩
- 格式:pdf
- 大小:259.03 KB
- 文档页数:5
声音压缩典型方法及原理1. 声音压缩是一种音频信号处理技术,用于减少音频信号的动态范围并增加整体响度。
2. 动态范围是指音频信号中最大和最小幅度之间的差异。
声音压缩通过减小这种差异来提高音频信号的可听性。
3. 声音压缩的主要原理是对音频信号进行自动增益控制(AGC),根据信号的幅度变化调整增益。
4. 自动增益控制通过设置阈值来确定何时启动增益调整。
当信号的幅度超过阈值时,增益被降低以减小动态范围。
5. 增益的调整是通过压缩比来实现的,压缩比是指输入信号的变化与输出信号变化之间的比例关系。
6. 压缩比越高,输出信号的动态范围就越小,音频信号的差异也就越小。
7. 压缩比通常以分贝(dB)为单位进行表达,比如 4:1 的压缩比表示输出信号每增加 4 分贝,输入信号只增加 1 分贝。
8. 压缩比大于 1:1 的情况下,被压缩的音频信号通常会失去部分动态范围,从而产生所谓的“压缩效果”。
9. 压缩效果可以使音频信号更具聚焦性,使细节更加清晰,但过度压缩可能导致音频信号变得平淡无力或产生副作用,如失真或噪音增加。
10. 声音压缩常用的算法之一是均衡压缩算法,它根据输入信号的频谱特征自适应地调整增益。
11. 均衡压缩算法将输入信号分成多个频带,并在每个频带上应用独立的压缩参数。
12. 这种算法可确保在音频信号的各个频段上获得更平衡的增益调整,从而提供更好的音频质量。
13. 另一种常见的压缩方法是峰值限制器,它主要用于防止音频信号过载。
14. 峰值限制器通过将超过某个设定阈值的信号限制在该阈值以内,从而防止信号超载,并保持输出信号处于可接受的范围内。
15. 除了阈值和压缩比,声音压缩中常用的参数还包括攻击时间、释放时间和输出增益等。
16. 攻击时间指的是从输入信号超过阈值到压缩开始生效的时间,攻击时间越短,压缩器的反应越快。
17. 释放时间指的是当输入信号低于阈值时,压缩器停止工作并返回到原始增益水平所需的时间。
第7章凌阳音频压缩算法261第7章凌阳音频压缩算法7.1背景介绍7.1.1音频的概述(特点,分类)我们所说的音频是指频率在20Hz~20kHz的声音信号,分为:波形声音,语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础.语音也可以表示为波形声音,但波形声音表示不出语言,语音学的内涵.语音是对讲话声音的一次抽象.是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号.音乐与语音相比更规范一些,是符号化了的声音.但音乐不能对所有的声音进行符号化.乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容. 7.1.2数字音频的采样和量化将模拟的(连续的)声音波形数字元化(离散化),以便利数字计算机进行处理的过程,主要包括采样和量化两个方面.数字音频的质量取决于:采样频率和量化位数这两个重要参数.此外,声道的数目,相应的音频设备也是影响音频质量的原因.7.1.3音频格式的介绍音频文件通常分为两类:声音文件和MIDI文件(1)声音文件:指的是通过声音录入设备录制的原始声音,直接记录了真实声音的二进制采样数据,通常文件较大;(2)MIDI文件:它是一种音乐演奏指令序列,相当于乐谱,可以利用声音输出设备或与计算机相连的电子乐器进行演奏,由于不包含声音数据,其文件尺寸较小.1)声音文件的格式WAVE文件——*.WAVWAVE文件使用三个参数来表示声音,它们是:采样位数,采样频率和声道数.在计算机中采样位数一般有8位和16位两种,而采样频率一般有11025Hz(11KHz),22050Hz(22KHz),44100Hz(44KHz)三种.我们以单声道为例,则一般WAVE文件的比特率可达到88K~704Kbps.具体介绍如下:(1)WAVE格式是Microsoft公司开发的一种声音文件格式,它符合RIFF(Resource InterchangeFileFormat)文件规范;第7章凌阳音频压缩算法262(2)用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持.(3)WAVE格式支持MSADPCM,CCITTALaw,CCITTLaw和其它压缩算法,支持多种音频位数,采样频率和声道,是PC机上最为流行的声音文件格式. (4)但其文件尺寸较大,多用于存储简短的声音片段.AIFF文件——AIF/AIFF(1)AIFF是音频交换文件格式(AudioInterchangeFileFormat)的英文缩写,是苹果计算机公司开发的一种声音文件格式;(2)被Macintosh平台及其应用程序所支持,NetscapeNavigator浏览器中的LiveAudio也支持AIFF格式,SGI及其它专业音频软件包同样支持这种格式. (3)AIFF支持ACE2,ACE8,MAC3和MAC6压缩,支持16位44.1Kz立体声.Audio文件——*.Audio(1)Audio文件是SunMicrosystems公司推出的一种经过压缩的数字声音格式,是Internet中常用的声音文件格式;(2)NetscapeNavigator浏览器中的LiveAudio也支持Audio格式的声音文件. MPEG文件——*.MP1/*.MP2/*.MP3(1)MPEG是运动图像专家组(MovingPictureExpertsGroup)的英文缩写,代表MPEG标准中的音频部分,即MPEG音频层(MPEGAudioLayer);(2)MPEG音频文件的压缩是一种有损压缩,根据压缩质量和编码复杂程度的不同可分为三层(MPEGAudioLayer1/2/3),分别对应MP1,MP2和MP3这三种声音文件;(3)MPEG音频编码具有很高的压缩率,MP1和MP2的压缩率分别为4:1和6:1~8:1,而MP3的压缩率则高达10:1~12:1,也就是说一分钟CD音质的音乐,未经压缩需要10MB存储空间,而经过MP3压缩编码后只有1MB左右,同时其音质基本保持不失真,因此,目前使用最多的是MP3文件格式. RealAudio文件——*.RA/*.RM/*.RAM(1)RealAudio文件是RealNerworks公司开发的一种新型流式音频(Streaming Audio)文件格式;(2)它包含在RealMedia中,主要用于在低速的广域网上实时传输音频信息;(3)网络连接速率不同,客户端所获得的声音质量也不尽相同:对于28.8Kbps的连接,可以达到广播级的声音质量;如果拥有ISDN或更快的线路连接,则可获得CD音质的声音.2)MIDI文件——*.MID/*.RMI(1)MIDI是乐器数字接口(MusicalInstrumentDigitalInterface)的英文缩写,是数字音乐/电子合成乐器的统一国际标准;(2)它定义了计算机音乐程序,合成器及其它电子设备交换音乐信号的方式,还规第7章凌阳音频压缩算法263定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可用于为不同乐器创建数字声音,可以模拟大提琴,小提琴,钢琴等常见乐器;(3)在MIDI文件中,只包含产生某种声音的指令,这些指令包括使用什么MIDI 设备的音色,声音的强弱,声音持续多长时间等,计算机将这些指令发送给声卡,声卡按照指令将声音合成出来,MIDI在重放时可以有不同的效果,这取决于音乐合成器的质量;(4)相对于保存真实采样资料的声音文件,MIDI文件显得更加紧凑,其文件尺寸通常比声音文件小得多.7.1.4语音压缩编码基础语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数)×声道数目.压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息.压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的.所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息.举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量来存储.如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压缩一半,5.5MB就可以完全还原效果.而在实际操作中,可以依需要来选择合适的算法.常见的几种音频压缩编码:1)波形编码:将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状.波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示.译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号.如:脉冲编码调制(PulseCodeModulation,PCM),差分脉冲编码调制(DPCM),增量调制(DM)以及它们的各种改进型,如自适应差分脉冲编码调制(ADPCM),自适应增量调制(ADM),自适应传输编码(AdaptiveTransferCoding,ATC)和子带编码(SBC)等都属于波形编码技术.波形编码特点:高话音质量,高码率,适于高保真音乐及语音.2)参数编码:参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输.译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号.具体说,参数编码是通过对语音信号特征参数的提取和编码,力图使重建语音信号具有尽可能高的准确性,但重建信号的波形同原语音信号的波形可能会有相当大的差别.第7章凌阳音频压缩算法264如:线性预测编码(LPC)及其它各种改进型都属于参数编码.该编码比特率可压缩到2Kbit/s-4.8Kbit/s,甚至更低,但语音质量只能达到中等,特别是自然度较低.参数编码特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:混合编码使用参数编码技术和波形编码技术,计算机的发展为语音编码技术的研究提供了强有力的工具,大规模,超大规模集成电路的出现,则为语音编码的实现提供了基础.80年代以来,语音编码技术有了实质性的进展,产生了新一代的编码算法,这就是混合编码.它将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,力图保持波形编码的高质量和参数编码的低速率.如:多脉冲激励线性预测编码(MPLPC),规划脉冲激励线性预测编码(KPELPC), 码本激励线性预测编码(CELP)等都是属于混合编码技术.其数据率和音质介于参数和波形编码之间.总之,音频压缩技术之趋势有两个:1)降低资料率,提高压缩比,用于廉价,低保真场合(如:电话).2)追求高保真度,复杂的压缩技术(如:CD).语音合成,辨识技术的介绍:按照实现的功能来分,语音合成可分两个档次:(1)有限词汇的计算机语音输出(2)基于语音合成技术的文字语音转换(TTS:Text-to-Speech)按照人类语言功能的不同层次,语音合成可分为三个层次:(1)从文字到语音的合成(Text-to-Speech)(2)从概念到语音的合成(Concept-to-Speech)(3)从意向到语音的合成(Intention-to-Speech)图7.1是文本到语音的转换过程:文本处理语音合成韵律处理语音数据库词典及语言规范合成语音输出文本输入图7.1从文本到语音转换过程示意语音辨识:语音辨识技术有三大研究范围:口音独立,连续语音及可辨认字词数量.口音独立:1)早期只能辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),作简单快速的训第7章凌阳音频压缩算法265练纪录使用者的声音特性来加以辨认.随着技术的成熟,进入语音适应阶段SA(speakeradaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率.2)非特定语者模式(SpeakerIndependent,SI),使用者无需训练即可使用,并进行辨认.任何人皆可随时使用此技术,不限定语者即男性,女性,小孩,老人皆可. 连续语音:1)单字音辨认:为了确保每个字音可以正确地切割出来,必须一个字一个字分开来念,非常不自然,与我们平常说话的连续方式,还是有点不同.2)整个句子辨识:只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及正确率,虽然效果还不错但仍需再提高.然而,中文字有太多的同音字,因此目前所有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字.可辨认词汇数量:内建的词汇数据库的多寡,也直接影响其辨识能力.因此就语音辨识的词汇数量来说亦可分为三种:1)小词汇量(10-100)2)中词汇量(100-1000)3)无限词汇量(即听写机)图7.2是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块.复杂声学,言语条件下的语音输入语音模型声学模式训练语音匹配语音模式训练语音处理识别结果,理解结果语言模型图7.2语音识别原理简图第7章凌阳音频压缩算法2667.2凌阳音频简介7.2.1凌阳音频压缩算法的编码标准表7.1是不同音频质量等级的编码技术标准(频响):表7.1信号类型频率范围(Hz)采样率(kHz)量化精度(位)电话话音200~340088宽带音频(AM质量)50~70001616调频广播(FM质量)20~15k37.816高质量音频(CD质量)20~20k44.116凌阳音频压缩算法处理的语音信号的范围是200Hz-3.4KHz的电话话音.7.2.2压缩分类压缩分无损压缩和有损压缩.无损压缩一般指:磁盘文件,压缩比低:2:1~4:1.而有损压缩则是指:音/视频文件,压缩比可高达100:1.凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):SACM-A2000:压缩比为8:1,8:1.25,8:1.5SACM-S480:压缩比为80:3,80:4.5SACM-S240:压缩比为80:1.5按音质排序:A2000>S480>S2407.2.3凌阳常用的音频形式和压缩算法1)波形编码:sub-band即SACM-A2000特点:高质量,高码率,适于高保真语音/音乐.2)参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码.如: SACM-S240.特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:CELP即SACM-S480特点:综合参数和波形编码之优点.除此之外,还具有FM音乐合成方式即SACM-MS01.第7章凌阳音频压缩算法2677.2.4分别介绍凌阳语音的播放,录制,合成和辨识凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放,录放,合成及辨识提供了条件.凌阳压缩算法中SACM_A2000,SACM_S480,SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录放音.对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论,配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了解相关内容,这里只给出它的API函数介绍及程序代码的范例,仅供参考.对于语音辨识主要有以下两种:1)特定发音人识别SD(SpeakerDependent):是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别.2)非特定发音人识别SI(SpeakerIndependent):是指语音样板由不同年龄,不同性别,不同口音的人进行训练,可以识别一群人的命令.语音识别电路基本结构如图7.3所示:滤除噪音预加重滤波器组PARCOR系数线性预测系数过零次数能量相关函数等模式匹配词典语音分析语音识别结果输出图7.3语音识别电路结构具体应用及程序代码可参考7.3.47.3常用的应用程序接口API的功能介绍及应用7.3.1概述表7.2所列出的是凌阳音频的几种算法:表7.2SACM-lib库中模块及其算法类型模块名称(Model-Index)语音压缩编码率类型资料采样率SACM_A200016Kbit/s,20Kbit/s,24Kbit/s16KHzSACM_S480/S7204.8Kbit/s,7.2Kbit/s16KHz第7章凌阳音频压缩算法268SACM_S2402.4Kbit/s24KHzSACM_MS01音乐合成(16Kbits/s,20Kbits/s,24Kbits/s)16KHzSACM_DVR(A2000)16Kbit/s的资料率,8K的采样率,用于ADC通道录音功能16KHz 语音和音乐与我们的生活有着非常密切的关系,而单片机对语音的控制如录放音,合成及辨识也广泛应用在现实生活中.我们知道对于语音处理大致可以分为A/D,编码处理,存储,解码处理以及D/A等见图7.4所示.然而,通过前面介绍我们知道麦克风输入所生成的WAVE文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然是不可能的,而凌阳的SPCE061A提出了解决的方法,即SACM-LIB, 该库将A/D,编码,解码,存储及D/A作成相应的模块,对于每个模块都有其应用程序接口API,所以您只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现该功能,例如在程序中插入语音提示,或连续播放一段语音或音乐,也可以根据自己需要的空间或使用范围选择适合自己的算法如表7.2所示.麦克风A/D转换存储喇叭编解码处理D/A转换图7.4单片机对语音处理过程以下就不同的算法具体介绍各自的API函数的格式,功能,参数,返回值,备注及应用范例.7.3.2SACM_A2000该压缩算法压缩比较小(8:1)所以具有高质量,高码率的特点适用于高保真音乐和语音.其相关API函数如下所示:voidSACM_A2000_Initial(intInit_Index)//初始化voidSACM_A2000_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set)//播放voidSACM_A2000_Stop(void)//停止播放voidSACM_A2000_Pause(void)//暂停播放voidSACM_A2000_Resume(void)//暂停后恢复voidSACM_A2000_Volume(Volume_Index)//音量控制unsignedintSACM_A2000_Status(void)//获取模块状态第7章凌阳音频压缩算法269voidSACM_A2000_InitDecode(intChannel)//译码初始化voidSACM_A2000_Decode(void)//译码voidSACM_A2000_FillQueue(unsignedintencoded-data)//填充队列unsignedintSACM_A2000_TestQueue(void)//测试队列CallF_FIQ_Service_SACM_A2000//中断服务函数下面对各个函数进行具体介绍:1)【API格式】C:voidSACM_A2000_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_A2000_Initial【功能说明】SACM_A2000语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】无【备注】该函数用于对定时器,中断和DAC等的初始化.2)【API格式】C:voidSACM_A2000_ServiceLoop(void)ASM:CallF_SACM_A2000_ServiceLoop【功能说明】从资源中获取SACM_A2000语音资料,并将其填入译码队列中. 【参数】无.【返回值】无.3)【API格式】C:voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_A2000_Play【功能说明】播放资源中SACM_A2000语音或乐曲.【参数】Speech_Index:表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节.【返回值】无.【备注】①SACM_A2000的数据率有16Kbps\20Kbps\24Kbps三种,可在同一模块的几种算法中自动选择一种.第7章凌阳音频压缩算法270②Speech_Index是定义在resource.inc文件中资源表(T_SACM_A2000_SpeechTable)的偏移地址.③中断服务子程序F_FIQ_Service_SACM_A2000必须安置在TMA_FIQ中断向量上(参见第五章中断系统内容).函数允许TimerA以所选的的数据采样率(计数溢出)中断.程序7-1以自动方式播放一段SACM_A2000语音,并自动结束.(见光盘) SACM_A2000自动方式主程序流程图:SACM_A2000放音SACM_A2000压缩播放获取语音数据并解码等待中断播放图7.5A2000自动方式主程序流程前台程序:#defineSpeech_10#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_Up_On1#defineRamp_Dn_On2#defineRamp_UpDn_On3Main(){SACM_A2000_Initial(1);SACM_A2000_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);//放音while(SACM_A2000_Status()&0x01){SACM_A2000_ServiceLoop();}}背景程序:.TEXT第7章凌阳音频压缩算法271.INCLUDEhardware.inc.INCLUDEA2000.inc.INCLUDEResource.inc//======================================================== //函数:FIQ()//语法:voidFIQ(void)//描述:FIQ中服务断函数//参数:无//返回:无//======================================================== .PUBLIC_FIQ;_FIQ:PUSHR1,R4TO[sp];//入栈保护R1=0x2000;TESTR1,[P_INT_Ctrl];//是否为定时器A中断JNZL_FIQ_TimerA;R1=0x0800;TESTR1,[P_INT_Ctrl];//是否为定时器B中断JNZL_FIQ_TimerB;R1=C_FIQ_PWM;[P_INT_Clear]=R1;//清中断POPR1,R4from[sp];//恢复现场RETI;L_FIQ_TimerA://定时器A中断处理[P_INT_Clear]=R1;//清中断CALLF_FIQ_Service_SACM_A2000;//调用A2000中断服务函数POPR1,R4FROM[sp];//恢复现场RETI;L_FIQ_TimerB://定时器B中断处理[P_INT_Clear]=R1;//清中断POPR1,R4FROM[sp];//恢复现场RETI;//中断返回/******************************************************************** ********/注:播放语音文件中数据,当出现FFFFFFH数据时便停止播放.4)【API格式】C:voidSACM_A2000_Stop(void);ASM:CallF_SACM_A2000_Stop【功能说明】停止播放SACM_A2000语音或乐曲.【参数】无.【返回值】无.5)【API格式】C:voidSACM_A2000_Pause(void);ASM:CallF_SACM_A2000_Pause【功能说明】暂停播放SACM_A2000语音或乐曲.第7章凌阳音频压缩算法272【参数】无.【返回值】无.6)【API格式】C:voidSACM_A2000_Resume(void);ASM:CallF_SACM_A2000_Resume【功能说明】恢复暂停播放的SACM_A2000语音或乐曲.【参数】无.【返回值】无.7)【API格式】C:voidSACM_A2000_Volume(Volume_Index);ASM:R1=[Volume_Index]CallF_SACM_A2000_Volume【功能说明】在播放SACM_A2000语音或乐曲时改变主音量.【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择.【返回值】无.8)【API格式】C:unsignedintSACM_A2000_Status(void);ASM:CallF_SACM_A2000_Status[返回值]=R1【功能说明】获取SACM_A2000语音播放的状态.【参数】无.【返回值】当R1的bit0=0,表示语音播放结束;bit0=1,表示语音在播放中. 9)【API格式】ASM:CallF_FIQ_Service_SACM_A2000【功能说明】用作SACM_A2000语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_A2000_ServiceLoop及手动方式的SACM_A2000_Decode) 对语音资料进行解码,然后将其送入DAC通道播放.【参数】无.【返回值】无.【备注】SACM_A2000语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ中断源上.10)【API格式】C:voidSACM_A2000_InitDecode(intChannel);ASM:CallF_SACM_A2000_Decode【功能说明】开始对SACM_A2000语音资料以非自动方式(编程控制)进行译码. 【参数】Channel=1,2,3;分别表示使用DAC1,DAC2通道以及DAC1和DAC2双通道.【返回值】无.【备注】用户只能通过非自动方式对语音资料解压缩.11)【API格式】C:voidSACM_A2000_Decode(void);ASM:CallF_SACM_A2000_Decode第7章凌阳音频压缩算法273【功能说明】从语音队列里获取的SACM_A2000语音资料,并进行译码,然后通过中断服务子程序将其送入DAC通道播放.【参数】无.【返回值】无.【备注】用户仅能通过非自动方式对语音资料进行译码.12)【API格式】C:voidSACM_A2000_FillQueue(unsignedintencoded-data); ASM:R1=[语音编码资料]CallF_SACM_A2000_FillQueue【功能说明】将从用户存储区里获取SACM_A2000语音编码资料,然后将其填入语音队列中等候译码处理.【参数】encoded-data为语音编码资料.【返回值】无.【备注】用户仅能通过非自动方式对语音资料进行译码.13)【API格式】C:unsignedintSACM_A2000_TestQueue(void);ASM:CallF_SACM_A2000_TestQueue[返回值]=R1【功能说明】获取语音队列的状态.【参数】无.【返回值】R1=0,1,2;分别表示语音队列不空不满,语音队列满及语音队列空.【备注】用户仅能通过非自动方式测试语音队列状态.程序7-2SACM_A2000非自动方式(编程控制)播放语音.(见光盘)SACM_A2000非自动方式主程序流程见图7.6:第7章凌阳音频压缩算法274A2000播放初始化获取语音资源并填充语音队列解码获取数据并播放判断语音队列是否满判断是否到语音的结束地址放音结束结束开始是否否是图7.6SACM_A2000非自动方式主程序流程中断服务子程序流程见图7.7:FIQ是TimerA中断吗填充语音队列清中断状态否是中断返回寄存器组出栈开始图7.7SACM_A2000中断服务子程序流程前台程序:第7章凌阳音频压缩算法275#defineManual0#defineAuto1#defineFull1#defineEmpty2#defineDAC11#defineDAC22Main(){Addr=RES_A32_SA;//长整型资源地址SACM_A2000_Initial(Manual);//选择非自动方式SACM_A2000_InitDecode(DAC1+DAC2);//使用双通道While(SACM_A2000_TestQueue()!=Full)//若队列不满,填入资料{Ret=GetResource(Addr);//从ROM中取语音资料SACM_A2000_FillQueue(Ret);//将语音资料填入队列Addr++;//指向下一个资料地址}While(1){If(SACM_A2000_TestQueue()!=Full)//继续填资料到队列中{Ret=GetResource(Addr);SACM_A2000_FillQueue(Ret);Addr++;}if(Addr<RES_A32_EA)SACM_A2000_Decode();//对语音资料进行译码elseSACM_A2000_Stop();//地址结束,停止播放}}注:1)文件的结束是由用户位址变量控制的.2)在非自动方式播放语音,其音量的增/减是通过外部子程序(SP_Ramp_Up,SP_Ramp_Dn)控制的.7.3.3SACM_S480该压缩算法压缩比较大80:3,存储容量大,音质介于A2000和S240之间,适用于语音播放,如"文曲星"词库.其相关API函数如下所示:intSACM_S480_Initial(intInit_Index)//初始化voidSACM_S480_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌阳音频压缩算法276//播放voidSACM_S480_Stop(void)//停止播放voidSACM_S480_Pause(void)//暂停播放voidSACM_S480_Resume(void)//暂停后恢复voidSACM_S480_Volume(Volume_Index)//音量的控制unsignedintSACM_S480_Status(void)//获取模块的状态CallF_FIQ_Service_SACM_S480//中断服务函数各函数具体内容如下:1)【API格式】C:intSACM_S480_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_S480_Initial【功能说明】SACM_S480语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】0:代表语音模块初始化失败1:代表初始化成功.【备注】该函数用于对定时器,中断和DAC等的初始化.2)【API格式】C:voidSACM_S480_ServiceLoop(void)ASM:CallF_SACM_S480_ServiceLoop【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中.【参数】无.【返回值】无.【备注】播放语音文件中数据,当出现FFFFFFH数据时便停止播放.3)【API格式】C:intSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_S480_Play【功能说明】播放资源中SACM_S480语音.【参数】Speech_Index表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节.【返回值】无.第7章凌阳音频压缩算法277【备注】①SACM_S480的数据率有4.8Kbps\7.2Kbps三种,可在同一模块的几种算法中自动选择一种.②Speech_Index是定义在resource.inc文件中资源表(T_SACM_S480_SpeechTable)的偏移地址.③中断服务子程序中F_FIQ_Service_SACM_S480必须放在TMA_FIQ中断向量上(参见SPCE的中断系统).④函数允许TimerA以所选的的数据采样率(计数溢出)中断.程序7-3以自动方式播放一段SACM_S480语音,并自动结束.(见光盘)SACM_S480自动方式主程序流程见图7.8:SACM_S480放音的初始化SACM_S480压缩播放获取语音数据并解码等待中断播放图7.8SACM_S480自动方式主程序流程中断流程同上.前台程序://******************************************************************* ************************///描述:s480只有自动播放方式,在中断FIQ的FIQ_TMA中断源中通过//主程序的SACM_S480_ServiceLoop()对语音数据进行解码,然后将其//送入DAC通道播放//******************************************************************* ************************/#include"s480.h"#defineSpeech_10#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_UpDn_On3#defineAuto1//=================================================================== ==//函数:main()第7章凌阳音频压缩算法278//=================================================================== ==main(){SACM_S480_Initial(1);//自动方式播放初始化SACM_S480_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号,播放通道,允许音量增/减调节while(SACM_S480_Status()&0x01)//是否播放结束SACM_S480_ServiceLoop();//获取语音数据并将其填入解码队列}背景程序:.TEXT.INCLUDEhardware.inc.INCLUDES480.inc.PUBLIC_FIQ;_FIQ:PUSHR1,R4TO[sp];//入栈保护R1=0x2000;TESTR1,[P_INT_Ctrl];//是否为定时器A中断JNZL_FIQ_TimerA;R1=0x0800;TESTR1,[P_INT_Ctrl];//是否为定时器B中断JNZL_FIQ_TimerB;L_FIQ_PWM:R1=C_FIQ_PWM;[P_INT_Clear]=R1;//清中断POPR1,R4from[SP];//恢复现场RETI;L_FIQ_TimerA://定时器A中断处理[P_INT_Clear]=R1;//清中断CALLF_FIQ_Service_SACM_S480;//调用S480中断服务函数POPR1,R4FROM[SP];//恢复现场RETI;L_FIQ_TimerB://定时器B中断处理[P_INT_Clear]=R1;//清中断POPR1,R4FROM[SP];//恢复现场RETI;//中断返回注:自动放音时,当语音资源文件中的资料为FFFFFFH时便停止播放.4)【API格式】C:voidSACM_S480_Stop(void);ASM:CallF_SACM_S480_Stop【功能说明】停止播放SACM_S480语音.【参数】无.【返回值】无.第7章凌阳音频压缩算法2795)【API格式】C:voidSACM_S480_Pause(void);ASM:CallF_SACM_S480_Pause【功能说明】暂停播放SACM_S480语音.【参数】无.【返回值】无.6)【API格式】C:voidSACM_S480_Resume(void);ASM:CallF_SACM_S480_Resume【功能说明】恢复暂停播放的SACM_S480语音.【参数】无.【返回值】无.7)【API格式】C:voidSACM_S480_Volume(Volume_Index);ASM:R1=[Volume_Index]CallF_Model-Index_Volume【功能说明】在播放SACM_S480语音时改变主音量.【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择. 【返回值】无.8)【API格式】C:unsignedintSACM_S480_Status(void);ASM:CallF_SACM_S480_Status[返回值]=R1【功能说明】获取SACM_S480语音播放的状态.【参数】无.【返回值】当R1的值bit0=0,表示语音播放结束;bit0=1,表示语音在播放中.9)【API格式】ASM:CallF_FIQ_Service_SACM_S480【功能说明】用作SACM_S480语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_S480_ServiceLoop及手动方式的SACM_S480_Decode)对语音资料进行解码,然后将其送入DAC通道播放.【参数】无.【返回值】无.【备注】SACM_S480语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ中断源上.7.3.4SACM_S240该压缩算法的压缩比较大80:1.5,价格低,适用于对保真度要求不高的场合,如玩具类产品的批量生产,编码率仅为2.4Kbps.其相关API函数如下所示:intSACM_S240_Initial(intInit_Index)//初始化voidSACM_S240_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌阳音频压缩算法280//播放voidSACM_S240_Stop(void)//停止播放voidSACM_S240_Pause(void)//暂停播放voidSACM_S240_Resume(void)//暂停后恢复voidSACM_S240_Volume(Volume_Index)//音量控制unsignedintSACM_S240_Status(void)//获取模块状态CallF_FIQ_Service_SACM_S240//中断服务函数下面具体介绍一下各个函数:1)【API格式】C:intSACM_S240_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_S240_Initial【功能说明】SACM_S240语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】0:代表语音模块初始化失败1:代表初始化成功.【备注】函数用于S240语音译码的初始化以及相关设备的初始化.2)【API格式】C:voidSACM_S240_ServiceLoop(void)ASM:CallF_SACM_S240_ServiceLoop【功能说明】从资源中获取SACM_S240语音资料,并将其填入解码队列中. 【参数】无.【返回值】无.3)【API格式】C:intSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_S240_Play【功能说明】播放资源中SACM_S240语音.【参数】Speech_Index表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;。
mp3压缩编码标准
MP3(MPEG-1 Audio Layer III)是一种数字音频压缩编码标准,它是MPEG(Moving Picture Experts Group)制定的音频压缩标准
之一。
MP3编码标准使用了一种称为“感知编码”的技术,它利用
人耳对声音的感知特性来去除音频信号中的冗余信息,从而实现高
效的压缩。
MP3编码标准的主要特点包括以下几个方面:
1. 压缩比,MP3编码可以实现相对较高的压缩比,通常可以将
原始音频数据压缩到其约1/10至1/12的大小,而且在保持相对较
高的音质的同时实现了这一压缩比。
2. 损失压缩,MP3是一种损失压缩技术,这意味着在压缩过程
中会丢失一些音频信息,但通常这些丢失的信息对于人耳来说是难
以察觉的,因此可以接受这种损失以换取更高的压缩比。
3. 采样率和比特率,MP3编码标准支持不同的采样率和比特率,用户可以根据需要选择不同的设置来平衡音质和文件大小之间的关系。
常见的比特率有128kbps、192kbps、256kbps等,而常见的采
样率有44.1kHz、48kHz等。
4. 广泛应用,由于MP3编码标准具有较高的压缩比和良好的音质表现,因此在互联网上广泛应用于音乐下载、在线音乐流媒体等领域,成为了数字音频传输和存储的重要标准之一。
总的来说,MP3是一种高效的音频压缩编码标准,它在保证相对较高音质的同时实现了较高的压缩比,因此被广泛应用于音频领域。
m4a压缩方法M4A压缩方法随着数字音频的广泛应用,音频文件的压缩变得越来越重要。
M4A 是一种常见的音频格式,它具有较高的音质和较小的文件大小,因此备受欢迎。
本文将介绍M4A的压缩方法,帮助您更好地利用该格式。
一、选择适当的压缩工具要对M4A文件进行压缩,首先需要选择合适的压缩工具。
市面上有很多音频压缩软件可供选择,如Adobe Audition、Audacity、iTunes等。
根据个人需求和操作习惯,选择一个适合自己的工具。
二、调整音频参数在压缩M4A文件之前,可以通过调整音频参数来控制文件大小和音质。
常见的参数包括比特率、采样率和声道数。
1. 比特率(Bitrate)是指每秒钟传输的比特数,它决定了音频的质量和文件大小。
较高的比特率通常意味着更好的音质但较大的文件大小,而较低的比特率则会导致音质损失但文件大小更小。
根据需要可以适当调整比特率,平衡音质和文件大小的关系。
2. 采样率(Sample Rate)是指每秒钟对声音进行采样的次数,它也会影响音频的质量和文件大小。
常见的采样率有44.1kHz和48kHz,前者是CD音质的标准,后者是DVD音质的标准。
一般情况下,较高的采样率会产生更好的音质但文件大小更大。
3. 声道数(Channels)决定了音频的声道数,常见的有单声道(Mono)和立体声(Stereo)。
立体声可以提供更丰富的音频效果,但相应地会增加文件大小。
根据实际需求,可以针对不同的音频文件进行参数调整,以达到更好的压缩效果。
三、利用压缩编码格式M4A文件是一种基于MPEG-4标准的音频文件格式,它支持多种压缩编码格式,如AAC、ALAC等。
选择合适的压缩编码格式也是进行M4A压缩的重要一步。
1. AAC(Advanced Audio Coding)是一种高级音频编码格式,它能够在保持音质的同时实现较高的压缩比。
因此,大部分M4A 文件都是使用AAC进行压缩编码的。
如果您追求更小的文件大小,可以选择较高的AAC压缩比,但可能会牺牲一定的音质。
如何使用Final Cut Pro进行音频的压缩和限幅处理Final Cut Pro是一款功能强大的视频编辑软件,除了视频处理之外,它也提供了一些高级的音频处理功能。
本教程将介绍如何使用FinalCut Pro进行音频的压缩和限幅处理,帮助你提升音频质量和完善你的视频制作。
步骤1:导入视频素材和音频文件首先,在Final Cut Pro中创建一个新的项目。
点击文件菜单并选择新建项目。
然后点击文件菜单中的导入,将你的视频素材和音频文件导入到Final Cut Pro的素材库中。
步骤2:将音频素材拖入时间线在素材库中,找到你想要处理的音频素材,并拖动到时间线上。
确保你选择了正确的音频轨道,因为你只能在音频轨道上进行音频处理。
步骤3:打开音频效果浏览器点击Window菜单并选择音频效果浏览器。
音频效果浏览器将出现在界面的左侧边栏上。
步骤4:选择压缩效果在音频效果浏览器中,找到压缩效果。
你可以通过在搜索栏中输入“压缩”来快速找到它。
选择合适的压缩效果,并将其拖动到你的音频素材上。
步骤5:调整压缩设置选中你的音频素材,点击Inspector面板中的音频标签。
在这个面板中,你可以调整压缩效果的设置。
通常,你需要调整压缩比、阈值和输出增益等参数,以达到你想要的音频效果。
你可以尝试不同的设置,直到找到最适合你的音频素材的效果。
步骤6:应用限幅效果限幅效果可以帮助你控制音频的最大振幅,防止出现音频裂音或失真。
在音频效果浏览器中,找到限幅效果,并将其拖动到你的音频素材上。
步骤7:调整限幅设置选中你的音频素材,点击Inspector面板中的音频标签。
在这个面板中,你可以调整限幅效果的设置。
通常,你需要调整限幅的阈值和输出增益等参数,以确保音频在不失真的情况下达到所需的音量水平。
步骤8:预览和导出完成音频处理后,你可以点击播放按钮预览效果。
如果满意,你可以导出你的视频项目,将其保存为新的文件。
总结通过使用Final Cut Pro的音频压缩和限幅处理功能,你可以改善音频的质量并提升视频的制作效果。
音频压缩算法压缩第7章凌阳音频压缩算法261第7章凌阳音频压缩算法7.1背景介绍7.1.1音频的概述(特点,分类)我们所说的音频是指频率在20Hz~20kHz的声音信号,分为:波形声音,语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础.语音也可以表示为波形声音,但波形声音表示不出语言,语音学的内涵.语音是对讲话声音的一次抽象.是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号.音乐与语音相比更规范一些,是符号化了的声音.但音乐不能对所有的声音进行符号化.乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容.7.1.2数字音频的采样和量化将模拟的(连续的)声音波形数字元化(离散化),以便利数字计算机进行处理的过程,主要包括采样和量化两个方面.数字音频的质量取决于:采样频率和量化位数这两个重要参数.此外,声道的数目,相应的音频设备也是影响音频质量的原因.7.1.3音频格式的介绍音频文件通常分为两类:声音文件和MIDI文件(1)声音文件:指的是通过声音录入设备录制的原始声音,直接记录了真实声音的二进制采样数据,通常文件较大;(2)MIDI文件:它是一种音乐演奏指令序列,相当于乐谱,可以利用声音输出设备或与计算机相连的电子乐器进行演奏,由于不包含声音数据,其文件尺寸较小.1)声音文件的格式WAVE文件――*.WAVWAVE文件使用三个参数来表示声音,它们是:采样位数,采样频率和声道数. 在计算机中采样位数一般有8位和16位两种,而采样频率一般有__Hz(11KHz),__Hz(22KHz),__Hz(44KHz)三种.我们以单声道为例,则一般WAVE文件的比特率可达到88K~704Kbps.具体介绍如下:(1)WAVE格式是Microsoft公司开发的一种声音文件格式,它符合RIFF(Resource InterchangeFileFormat)文件规范;第7章凌阳音频压缩算法262(2)用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持.(3)WAVE格式支持__,__aw,CCITTLaw和其它压缩算法,支持多种音频位数,采样频率和声道,是PC机上最为流行的声音文件格式.(4)但其文件尺寸较大,多用于存储简短的声音片段.AIFF文件――AIF/AIFF(1)AIFF是音频交换文件格式(AudioInterchangeFileFormat)的英文缩写,是苹果计算机公司开发的一种声音文件格式;压缩(2)被Macintosh平台及其应用程序所支持,NetscapeNavigator浏览器中的LiveAudio也支持AIFF格式,SGI及其它专业音频软件包同样支持这种格式.(3)AIFF支持ACE2,ACE8,MAC3和MAC6压缩,支持16位44.1Kz立体声. Audio文件――*.Audio(1)Audio文件是SunMicrosystems公司推出的一种经过压缩的数字声音格式,是Internet中常用的声音文件格式;(2)NetscapeNavigator浏览器中的LiveAudio也支持Audio格式的声音文件. MPEG文件――*.MP1/*.MP2/*.MP3(1)MPEG是运动图像专家组(MovingPictureExpertsGroup)的英文缩写,代表MPEG标准中的音频部分,即MPEG音频层(MPEGAudioLayer);(2)MPEG音频文件的压缩是一种有损压缩,根据压缩质量和编码复杂程度的不同可分为三层(MPEGAudioLayer1/2/3),分别对应MP1,MP2和MP3这三种声音文件;(3)MPEG音频编码具有很高的压缩率,MP1和MP2的压缩率分别为4:1和6: 1~8:1,而MP3的压缩率则高达10:1~12:1,也就是说一分钟CD音质的音乐,未经压缩需要10MB存储空间,而经过MP3压缩编码后只有1MB左右, 同时其音质基本保持不失真,因此,目前使用最多的是MP3文件格式.RealAudio文件――*.RA/*.RM/*.RAM(1)RealAudio文件是RealNerworks公司开发的一种新型流式音频(Streaming Audio)文件格式;(2)它包含在RealMedia中,主要用于在低速的广域网上实时传输音频信息;(3)网络连接速率不同,客户端所获得的声音质量也不尽相同:对于28.8Kbps的连接,可以达到广播级的声音质量;如果拥有ISDN或更快的线路连接,则可获得CD音质的声音.2)MIDI文件――*.MID/*.RMI(1)MIDI是乐器数字接口(MusicalInstrumentDigitalInterface)的英文缩写,是数字音乐/电子合成乐器的统一国际标准;(2)它定义了计算机音乐程序,合成器及其它电子设备交换音乐信号的方式,还规第7章凌阳音频压缩算法263定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可用于为不同乐器创建数字声音,可以模拟大提琴,小提琴,钢琴等常见乐器;(3)在MIDI文件中,只包含产生某种声音的指令,这些指令包括使用什么MIDI 设备的音色,声音的强弱,声音持续多长时间等,计算机将这些指令发送给声卡,声卡按照指令将声音合成出来,MIDI在重放时可以有不同的效果,这取决于音乐合成器的质量;(4)相对于保存真实采样资料的声音文件,MIDI文件显得更加紧凑,其文件尺寸通常比声音文件小得多.7.1.4语音压缩编码基础语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数)×声道数目.压缩压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息.压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的.所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息.举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量来存储.如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压缩一半,5.5MB就可以完全还原效果.而在实际操作中,可以依需要来选择合适的算法.常见的几种音频压缩编码:1)波形编码:将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状.波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示.译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号.如:脉冲编码调制(PulseCodeModulation,PCM),差分脉冲编码调制(DPCM), 增量调制(DM)以及它们的各种改进型,如自适应差分脉冲编码调制(ADPCM),自适应增量调制(ADM),自适应传输编码(AdaptiveTransferCoding,ATC)和子带编码(SBC)等都属于波形编码技术.波形编码特点:高话音质量,高码率,适于高保真音乐及语音.2)参数编码:参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输.译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号.具体说,参数编码是通过对语音信号特征参数的提取和编码,力图使重建语音信号具有尽可能高的准确性,但重建信号的波形同原语音信号的波形可能会有相当大的差别.第7章凌阳音频压缩算法264如:线性预测编码(LPC)及其它各种改进型都属于参数编码.该编码比特率可压缩到2Kbit/s-4.8Kbit/s,甚至更低,但语音质量只能达到中等,特别是自然度较低.参数编码特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:混合编码使用参数编码技术和波形编码技术,计算机的发展为语音编码技术的研究提供了强有力的工具,大规模,超大规模集成电路的出现,则为语音编码的实现提供了基础.80年代以来,语音编码技术有了实质性的进展,产生了新一代的编码算法,这就是混合编码.它将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,力图保持波形编码的高质量和参数编码的低速率.如:多脉冲激励线性预测编码(MPLPC),规划脉冲激励线性预测编码(KPELPC), 码本激励线性预测编码(CELP)等都是属于混合编码技术.其数据率和音质介于参数和波形编码之间.总之,音频压缩技术之趋势有两个:压缩1)降低资料率,提高压缩比,用于廉价,低保真场合(如:电话).2)追求高保真度,复杂的压缩技术(如:CD).语音合成,辨识技术的介绍: 按照实现的功能来分,语音合成可分两个档次:(1)有限词汇的计算机语音输出(2)基于语音合成技术的文字语音转换(TTS:Text-to-Speech)按照人类语言功能的不同层次,语音合成可分为三个层次:(1)从文字到语音的合成(Text-to-Speech)(2)从概念到语音的合成(Concept-to-Speech)(3)从意向到语音的合成(Intention-to-Speech)图7.1是文本到语音的转换过程:文本处理语音合成韵律处理语音数据库词典及语言规范合成语音输出文本输入图7.1从文本到语音转换过程示意语音辨识:语音辨识技术有三大研究范围:口音独立,连续语音及可辨认字词数量. 口音独立:1)早期只能辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),作简单快速的训第7章凌阳音频压缩算法265练纪录使用者的声音特性来加以辨认.随着技术的成熟,进入语音适应阶段SA(speakeradaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率.2)非特定语者模式(SpeakerIndependent,SI),使用者无需训练即可使用,并进行辨认.任何人皆可随时使用此技术,不限定语者即男性,女性,小孩,老人皆可. 连续语音:1)单字音辨认:为了确保每个字音可以正确地切割出来,必须一个字一个字分开来念,非常不自然,与我们平常说话的连续方式,还是有点不同.2)整个句子辨识:只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及正确率,虽然效果还不错但仍需再提高.然而,中文字有太多的同音字,因此目前所有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字.可辨认词汇数量:内建的词汇数据库的多寡,也直接影响其辨识能力.因此就语音辨识的词汇数量来说亦可分为三种:1)小词汇量(10-100)2)中词汇量(100-1000)3)无限词汇量(即听写机)图7.2是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别压缩模块.复杂声学,言语条件下的语音输入语音模型声学模式训练语音匹配语音模式训练语音处理识别结果,理解结果语言模型图7.2语音识别原理简图第7章凌阳音频压缩算法2667.2凌阳音频简介7.2.1凌阳音频压缩算法的编码标准表7.1是不同音频质量等级的编码技术标准(频响): 表7.1信号类型频率范围(Hz)采样率(kHz)量化精度(位) 电话话音200~__宽带音频(AM质量)50~__-__调频广播(FM质量)20~15k37.816高质量音频(CD质量)20~20k44.116凌阳音频压缩算法处理的语音信号的范围是200Hz-3.4KHz的电话话音.7.2.2压缩分类压缩分无损压缩和有损压缩.无损压缩一般指:磁盘文件,压缩比低:2:1~4:1. 而有损压缩则是指:音/视频文件,压缩比可高达100:1.凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):SACM-A2022年:压缩比为8:1,8:1.25,8:1.5SACM-S480:压缩比为80:3,80:4.5SACM-S240:压缩比为80:1.5按音质排序:A2022年S480S2407.2.3凌阳常用的音频形式和压缩算法1)波形编码:sub-band即SACM-A2022年特点:高质量,高码率,适于高保真语音/音乐.压缩2)参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码.如: SACM-S240.特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:CELP即SACM-S480特点:综合参数和波形编码之优点.除此之外,还具有FM音乐合成方式即SACM-MS01.第7章凌阳音频压缩算法2677.2.4分别介绍凌阳语音的播放,录制,合成和辨识凌阳的__A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放,录放,合成及辨识提供了条件.凌阳压缩算法中SACM_A2022年,SACM_S480,SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录放音.对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论,配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了。
无损音频压缩技术详解一、何为无损压缩格式?所谓无损压缩格式,顾名思义,就是毫无损失地将声音信号进行压缩的音频格式。
常见的像MP3、WMA等格式都是有损压缩格式,相比于作为源的WAV文件,它们都有相当大程度的信号丢失,这也是它们能达到10%的压缩率的根本原因。
而无损压缩格式,就好比用Zip或RAR这样的压缩软件去压缩音频信号,得到的压缩格式还原成WAV文件,和作为源的WAV文件是一模一样的!但是如果用Zip或RAR 来压缩WAV文件的话,必须将压缩包解压后才能播放。
而无损压缩格式则能直接通过播放软件实现实时播放,使用起来和MP3等有损格式一模一样。
总而言之,无损压缩格式就是能在不牺牲任何音频信号的前提下,减少WAV文件体积的格式。
二、无损压缩格式VS 有损压缩格式比起有损压缩格式,无损压缩格式有何优势,又存在哪些弱点呢?下面的比较应该能让你对无损压缩格式有一个清楚的认识。
无损压缩的优势:1、100%的保存、没有任何信号丢失正如之前所说,无损压缩格式就如同用Zip压缩文件一样,能100%的保存WAV文件的全部数据,这一点我们可以通过EAC的“WAV比较”功能来证明。
将U2乐队的一首《BeautifulDay》抓轨保存成WAV 格式,作为我们的原始文件。
将这个WAV文件压缩成APE格式,再将APE文件解压缩成WAV格式。
用EAC的“WAV比较”功能对这两个WAV文件进行数据对比,结果EAC没有报告有任何不一致!而如果是压缩成MP3再解压得到的WAV文件,对比原始WAV文件,则是从头到尾都不一致!有不少朋友希望能最大限度地能将CD“原版”拷贝到硬盘上,同时又想减少空间占用量,这在以前似乎只有320KbpsCBRMP3这一种解决途径了,不过那样也远不能做到100%!而现在,无损压缩格式的出现提供了一个几乎完美的解决方案。
2、音质高,不受信号源的影响既然是100%的保存了原始音频信号,无损压缩格式的音质毫无疑问和原始CD是一样的!同样,实际聆听也不可能有任何的不同!而有损压缩格式由于其先天的设计(需要丢失一部分信号),所以音质再好,也只能是无限接近于原声CD,要想真正达到CD的水准是不可能!而且由于有损压缩格式算法的局限性,在压缩交响乐等类型动态范围大的音乐时,其音质表现差强人意。
音频压缩技术指的是对原始数字音频信号流(PCM编码)运用适当的数字信号处理技术,在不损失有用信息量,或所引入损失可忽略的条件下,降低(压缩)其码率,也称为压缩编码。
它必须具有相应的逆变换,称为解压缩或解码。
音频信号在通过一个编解码系统后可能引入大量的噪声和一定的失真。
、音频压缩算法的主要分类及典型代表一般来讲,可以将音频压缩技术分为无损(lossless)压缩及有损(lossy)压缩两大类,而按照压缩方案的不同,又可将其划分为时域压缩、变换压缩、子带压缩,以及多种技术相互融合的混合压缩等等。
各种不同的压缩技术,其算法的复杂程度(包括时间复杂度和空间复杂度)、音频质量、算法效率(即压缩比例),以及编解码延时等都有很大的不同。
各种压缩技术的应用场合也因之而各不相同。
(1)时域压缩(或称为波形编码)技术是指直接针对音频PCM码流的样值进行处理,通过静音检测、非线性量化、差分等手段对码流进行压缩。
此类压缩技术的共同特点是算法复杂度低,声音质量一般,压缩比小(CD音质> 400kbps),编解码延时最短(相对其它技术)。
此类压缩技术一般多用于语音压缩,低码率应用(源信号带宽小)的场合。
时域压缩技术主要包括G.711、ADPCM、LPC、CELP,以及在这些技术上发展起来的块压扩技术如NICAM、子带ADPCM(SB-ADPCM)技术如G.721、G.722、Apt-X等。
(2)子带压缩技术是以子带编码理论为基础的一种编码方法。
子带编码理论最早是由Crochiere等于1976年提出的。
其基本思想是将信号分解为若干子频带内的分量之和,然后对各子带分量根据其不同的分布特性采取不同的压缩策略以降低码率。
通常的子带压缩技术和下面介绍的变换压缩技术都是根据人对声音信号的感知模型(心理声学模型),通过对信号频谱的分析来决定子带样值或频域样值的量化阶数和其它参数选择的,因此又可称为感知型(Perceptual)压缩编码。
压缩音频教程视频免费版压缩音频是一种常见的技术,可以减小音频文件的大小,节省存储空间,并且有助于在网络上快速传输和共享。
在本教程中,我将介绍一些常见的免费压缩音频的方法。
首先,我们来介绍一个受欢迎的免费音频压缩软件- Audacity。
Audacity是一款开源的音频编辑软件,提供了一系列实用的功能,包括音频压缩。
您可以在官方网站上下载和安装Audacity,然后按照以下步骤进行操作:1. 打开Audacity并导入您想要压缩的音频文件。
2. 选择要压缩的音轨,可以通过点击轨道上的标题栏来选择音轨。
3. 在菜单栏中找到“效果”选项,然后选择“压缩”。
4. 在弹出的压缩对话框中,您可以调整压缩器的参数,如阀值、比例、攻击时间和释放时间。
不同的参数设置会产生不同的效果,您可以根据自己的需求进行调整。
5. 确定参数设置后,点击“应用”按钮进行压缩。
6. 最后,您可以选择导出压缩后的音频文件,以便在其他设备上播放或分享。
除了Audacity,还有一些其他免费的音频压缩工具可以使用。
例如,iTunes是一款常见的音频播放器,也提供了音频压缩功能。
您可以按照以下步骤使用iTunes进行音频压缩:1. 打开iTunes并导入您要压缩的音频文件。
2. 在音乐库中选择要压缩的音频文件,然后右键点击并选择“创建版本”> “较低的比特率版本”。
3. iTunes将自动创建一个压缩后的副本,您可以在音乐库中找到它。
4. 最后,您可以将压缩后的音频文件导出到其他设备上使用。
除了这些软件,您还可以尝试使用在线音频压缩工具。
这些工具通常允许您直接在网页上上传音频文件,并提供了简单的压缩选项。
例如,Online Audio Converter是一款流行的在线音频转换工具,它也提供了音频压缩功能。
您只需打开网页,上传音频文件,然后选择压缩选项即可。
总结而言,压缩音频是一种常见的操作,可以帮助我们节省存储空间并方便地分享和传输音频文件。
使用Adobe Premiere Pro进行音频均衡与压缩处理在视频编辑过程中,音频处理是至关重要的一环。
Adobe Premiere Pro是一款强大的视频编辑软件,不仅可以对视频进行剪辑和调整,还可以对音频进行细致的处理和增强。
本教程将向您介绍如何使用Adobe Premiere Pro进行音频均衡与压缩处理。
音频均衡是一种调整音频频率响应的方法,可以改善音频的整体音质,并消除不必要的频率偏差。
在Adobe Premiere Pro中,您可以使用“均衡器”效果来实现音频均衡。
第一步是导入您想要处理的视频素材。
在Adobe Premiere Pro的导入面板中点击“导入”,然后选择您的音频文件。
将音频文件拖放到序列窗口中。
一旦您的音频文件在序列窗口中,您可以执行音频均衡处理。
选择您想要处理的音频轨道,在程序监视器中单击“效果控制”选项卡。
在“效果控制”窗口中,可以找到“均衡器”效果。
将其拖放到音频轨道上的音频剪辑上。
现在,您可以开始调整音频均衡。
在“效果控制”窗口中,您将看到“均衡器”效果的参数选项。
您可以调整不同频率带上的增益,以匹配您的需求。
请记住,适度的音频均衡是关键。
过度增益可能会导致音频失真或不自然的音质。
根据您的需求,调整频率带上的增益,并在实时预览下进行听觉测试,直到获得满意的效果。
除了音频均衡,音频压缩也是常用的音频处理技术。
音频压缩可以减少音频的动态范围,使音频更加平衡和稳定。
在Adobe Premiere Pro中,您可以使用“压缩器”效果来实现音频压缩。
选择您想要处理的音频轨道,在程序监视器中单击“效果控制”选项卡。
在“效果控制”窗口中,找到“压缩器”效果。
将其拖放到音频轨道上的音频剪辑上。
一旦“压缩器”效果被添加到音频剪辑上,您可以开始调整它的参数。
首先,您需要设置阈值。
阈值是指压缩开始生效的音量水平。
将阈值设置为适当的水平,以确保只在需要时进行压缩。
接下来,调整其他参数,如压缩比、释放时间和增益。
第7章凌阳音频压缩算法261第7章凌阳音频压缩算法7.1背景介绍7.1.1音频的概述(特点,分类)我们所说的音频是指频率在20Hz~20kHz的声音信号,分为:波形声音,语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础.语音也可以表示为波形声音,但波形声音表示不出语言,语音学的内涵.语音是对讲话声音的一次抽象.是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号.音乐与语音相比更规范一些,是符号化了的声音.但音乐不能对所有的声音进行符号化.乐谱是符号化声音的符号组,表示比单个符号更复杂的声音信息内容. 7.1.2数字音频的采样和量化将模拟的(连续的)声音波形数字元化(离散化),以便利数字计算机进行处理的过程,主要包括采样和量化两个方面.数字音频的质量取决于:采样频率和量化位数这两个重要参数.此外,声道的数目,相应的音频设备也是影响音频质量的原因.7.1.3音频格式的介绍音频文件通常分为两类:声音文件和MIDI文件(1)声音文件:指的是通过声音录入设备录制的原始声音,直接记录了真实声音的二进制采样数据,通常文件较大;(2)MIDI文件:它是一种音乐演奏指令序列,相当于乐谱,可以利用声音输出设备或与计算机相连的电子乐器进行演奏,由于不包含声音数据,其文件尺寸较小.1)声音文件的格式WAVE文件——*.WAVWAVE文件使用三个参数来表示声音,它们是:采样位数,采样频率和声道数.在计算机中采样位数一般有8位和16位两种,而采样频率一般有11025Hz(11KHz),22050Hz(22KHz),44100Hz(44KHz)三种.我们以单声道为例,则一般WAVE文件的比特率可达到88K~704Kbps.具体介绍如下:(1)WAVE格式是Microsoft公司开发的一种声音文件格式,它符合RIFF(Resource InterchangeFileFormat)文件规范;第7章凌阳音频压缩算法262(2)用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持.(3)WAVE格式支持MSADPCM,CCITTALaw,CCITTLaw和其它压缩算法,支持多种音频位数,采样频率和声道,是PC机上最为流行的声音文件格式. (4)但其文件尺寸较大,多用于存储简短的声音片段.AIFF文件——AIF/AIFF(1)AIFF是音频交换文件格式(AudioInterchangeFileFormat)的英文缩写,是苹果计算机公司开发的一种声音文件格式;(2)被Macintosh平台及其应用程序所支持,NetscapeNavigator浏览器中的LiveAudio也支持AIFF格式,SGI及其它专业音频软件包同样支持这种格式. (3)AIFF支持ACE2,ACE8,MAC3和MAC6压缩,支持16位44.1Kz立体声.Audio文件——*.Audio(1)Audio文件是SunMicrosystems公司推出的一种经过压缩的数字声音格式,是Internet中常用的声音文件格式;(2)NetscapeNavigator浏览器中的LiveAudio也支持Audio格式的声音文件. MPEG文件——*.MP1/*.MP2/*.MP3(1)MPEG是运动图像专家组(MovingPictureExpertsGroup)的英文缩写,代表MPEG标准中的音频部分,即MPEG音频层(MPEGAudioLayer);(2)MPEG音频文件的压缩是一种有损压缩,根据压缩质量和编码复杂程度的不同可分为三层(MPEGAudioLayer1/2/3),分别对应MP1,MP2和MP3这三种声音文件;(3)MPEG音频编码具有很高的压缩率,MP1和MP2的压缩率分别为4:1和6:1~8:1,而MP3的压缩率则高达10:1~12:1,也就是说一分钟CD音质的音乐,未经压缩需要10MB存储空间,而经过MP3压缩编码后只有1MB左右,同时其音质基本保持不失真,因此,目前使用最多的是MP3文件格式. RealAudio文件——*.RA/*.RM/*.RAM(1)RealAudio文件是RealNerworks公司开发的一种新型流式音频(Streaming Audio)文件格式;(2)它包含在RealMedia中,主要用于在低速的广域网上实时传输音频信息;(3)网络连接速率不同,客户端所获得的声音质量也不尽相同:对于28.8Kbps的连接,可以达到广播级的声音质量;如果拥有ISDN或更快的线路连接,则可获得CD音质的声音.2)MIDI文件——*.MID/*.RMI(1)MIDI是乐器数字接口(MusicalInstrumentDigitalInterface)的英文缩写,是数字音乐/电子合成乐器的统一国际标准;(2)它定义了计算机音乐程序,合成器及其它电子设备交换音乐信号的方式,还规第7章凌阳音频压缩算法263定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可用于为不同乐器创建数字声音,可以模拟大提琴,小提琴,钢琴等常见乐器;(3)在MIDI文件中,只包含产生某种声音的指令,这些指令包括使用什么MIDI 设备的音色,声音的强弱,声音持续多长时间等,计算机将这些指令发送给声卡,声卡按照指令将声音合成出来,MIDI在重放时可以有不同的效果,这取决于音乐合成器的质量;(4)相对于保存真实采样资料的声音文件,MIDI文件显得更加紧凑,其文件尺寸通常比声音文件小得多.7.1.4语音压缩编码基础语音压缩编码中的数据量是指:数据量=(采样频率×量化位数)/8(字节数)×声道数目.压缩编码的目的:通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息.压缩编码的必要性:实际应用中,未经压缩编码的音频资料量很大,进行传输或存储是不现实的.所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息.举个例子,没有压缩过的CD品质的资料,一分钟的内容需要11MB的内存容量来存储.如果将原始资料进行压缩处理,在确保声音品质不失真的前提下,将数据压缩一半,5.5MB就可以完全还原效果.而在实际操作中,可以依需要来选择合适的算法.常见的几种音频压缩编码:1)波形编码:将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状.波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示.译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号.如:脉冲编码调制(PulseCodeModulation,PCM),差分脉冲编码调制(DPCM),增量调制(DM)以及它们的各种改进型,如自适应差分脉冲编码调制(ADPCM),自适应增量调制(ADM),自适应传输编码(AdaptiveTransferCoding,ATC)和子带编码(SBC)等都属于波形编码技术.波形编码特点:高话音质量,高码率,适于高保真音乐及语音.2)参数编码:参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输.译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号.具体说,参数编码是通过对语音信号特征参数的提取和编码,力图使重建语音信号具有尽可能高的准确性,但重建信号的波形同原语音信号的波形可能会有相当大的差别.第7章凌阳音频压缩算法264如:线性预测编码(LPC)及其它各种改进型都属于参数编码.该编码比特率可压缩到2Kbit/s-4.8Kbit/s,甚至更低,但语音质量只能达到中等,特别是自然度较低.参数编码特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:混合编码使用参数编码技术和波形编码技术,计算机的发展为语音编码技术的研究提供了强有力的工具,大规模,超大规模集成电路的出现,则为语音编码的实现提供了基础.80年代以来,语音编码技术有了实质性的进展,产生了新一代的编码算法,这就是混合编码.它将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,力图保持波形编码的高质量和参数编码的低速率.如:多脉冲激励线性预测编码(MPLPC),规划脉冲激励线性预测编码(KPELPC), 码本激励线性预测编码(CELP)等都是属于混合编码技术.其数据率和音质介于参数和波形编码之间.总之,音频压缩技术之趋势有两个:1)降低资料率,提高压缩比,用于廉价,低保真场合(如:电话).2)追求高保真度,复杂的压缩技术(如:CD).语音合成,辨识技术的介绍:按照实现的功能来分,语音合成可分两个档次:(1)有限词汇的计算机语音输出(2)基于语音合成技术的文字语音转换(TTS:Text-to-Speech)按照人类语言功能的不同层次,语音合成可分为三个层次:(1)从文字到语音的合成(Text-to-Speech)(2)从概念到语音的合成(Concept-to-Speech)(3)从意向到语音的合成(Intention-to-Speech)图7.1是文本到语音的转换过程:文本处理语音合成韵律处理语音数据库词典及语言规范合成语音输出文本输入图7.1从文本到语音转换过程示意语音辨识:语音辨识技术有三大研究范围:口音独立,连续语音及可辨认字词数量.口音独立:1)早期只能辨认特定的使用者即特定语者(SpeakerDependent,SD)模式,使用者可针对特定语者辨认词汇(可由使用者自行定义,如人名声控拨号),作简单快速的训第7章凌阳音频压缩算法265练纪录使用者的声音特性来加以辨认.随着技术的成熟,进入语音适应阶段SA(speakeradaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率.2)非特定语者模式(SpeakerIndependent,SI),使用者无需训练即可使用,并进行辨认.任何人皆可随时使用此技术,不限定语者即男性,女性,小孩,老人皆可. 连续语音:1)单字音辨认:为了确保每个字音可以正确地切割出来,必须一个字一个字分开来念,非常不自然,与我们平常说话的连续方式,还是有点不同.2)整个句子辨识:只要按照你正常说话的速度,直接将要表达的说出来,中间并不需要停顿,这种方式是最直接最自然的,难度也最高,现阶段连续语音的辨识率及正确率,虽然效果还不错但仍需再提高.然而,中文字有太多的同音字,因此目前所有的中文语音辨识系统,几乎都是以词为依据,来判断正确的同音字.可辨认词汇数量:内建的词汇数据库的多寡,也直接影响其辨识能力.因此就语音辨识的词汇数量来说亦可分为三种:1)小词汇量(10-100)2)中词汇量(100-1000)3)无限词汇量(即听写机)图7.2是简化的语音识别原理图,其中实线部分成为训练模块,虚线部分为识别模块.复杂声学,言语条件下的语音输入语音模型声学模式训练语音匹配语音模式训练语音处理识别结果,理解结果语言模型图7.2语音识别原理简图第7章凌阳音频压缩算法2667.2凌阳音频简介7.2.1凌阳音频压缩算法的编码标准表7.1是不同音频质量等级的编码技术标准(频响):表7.1信号类型频率范围(Hz)采样率(kHz)量化精度(位)电话话音200~340088宽带音频(AM质量)50~70001616调频广播(FM质量)20~15k37.816高质量音频(CD质量)20~20k44.116凌阳音频压缩算法处理的语音信号的范围是200Hz-3.4KHz的电话话音.7.2.2压缩分类压缩分无损压缩和有损压缩.无损压缩一般指:磁盘文件,压缩比低:2:1~4:1.而有损压缩则是指:音/视频文件,压缩比可高达100:1.凌阳音频压缩算法根据不同的压缩比分为以下几种(具体可参见语音压缩工具一节内容):SACM-A2000:压缩比为8:1,8:1.25,8:1.5SACM-S480:压缩比为80:3,80:4.5SACM-S240:压缩比为80:1.5按音质排序:A2000>S480>S2407.2.3凌阳常用的音频形式和压缩算法1)波形编码:sub-band即SACM-A2000特点:高质量,高码率,适于高保真语音/音乐.2)参数编码:声码器(vocoder)模型表达,抽取参数与激励信号进行编码.如: SACM-S240.特点:压缩比大,计算量大,音质不高,廉价!3)混合编码:CELP即SACM-S480特点:综合参数和波形编码之优点.除此之外,还具有FM音乐合成方式即SACM-MS01.第7章凌阳音频压缩算法2677.2.4分别介绍凌阳语音的播放,录制,合成和辨识凌阳的SPCE061A是16位单片机,具有DSP功能,有很强的信息处理能力,最高时钟频率可达到49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放,录放,合成及辨识提供了条件.凌阳压缩算法中SACM_A2000,SACM_S480,SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录放音.对于音乐合成MS01,该算法较繁琐,而且需要具备音乐理论,配器法及和声学知识,所以对于特别爱好者可以到我们的网站去了解相关内容,这里只给出它的API函数介绍及程序代码的范例,仅供参考.对于语音辨识主要有以下两种:1)特定发音人识别SD(SpeakerDependent):是指语音样板由单个人训练,也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别.2)非特定发音人识别SI(SpeakerIndependent):是指语音样板由不同年龄,不同性别,不同口音的人进行训练,可以识别一群人的命令.语音识别电路基本结构如图7.3所示:滤除噪音预加重滤波器组PARCOR系数线性预测系数过零次数能量相关函数等模式匹配词典语音分析语音识别结果输出图7.3语音识别电路结构具体应用及程序代码可参考7.3.47.3常用的应用程序接口API的功能介绍及应用7.3.1概述表7.2所列出的是凌阳音频的几种算法:表7.2SACM-lib库中模块及其算法类型模块名称(Model-Index)语音压缩编码率类型资料采样率SACM_A200016Kbit/s,20Kbit/s,24Kbit/s16KHzSACM_S480/S7204.8Kbit/s,7.2Kbit/s16KHz第7章凌阳音频压缩算法268SACM_S2402.4Kbit/s24KHzSACM_MS01音乐合成(16Kbits/s,20Kbits/s,24Kbits/s)16KHzSACM_DVR(A2000)16Kbit/s的资料率,8K的采样率,用于ADC通道录音功能16KHz 语音和音乐与我们的生活有着非常密切的关系,而单片机对语音的控制如录放音,合成及辨识也广泛应用在现实生活中.我们知道对于语音处理大致可以分为A/D,编码处理,存储,解码处理以及D/A等见图7.4所示.然而,通过前面介绍我们知道麦克风输入所生成的WAVE文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然是不可能的,而凌阳的SPCE061A提出了解决的方法,即SACM-LIB, 该库将A/D,编码,解码,存储及D/A作成相应的模块,对于每个模块都有其应用程序接口API,所以您只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可实现该功能,例如在程序中插入语音提示,或连续播放一段语音或音乐,也可以根据自己需要的空间或使用范围选择适合自己的算法如表7.2所示.麦克风A/D转换存储喇叭编解码处理D/A转换图7.4单片机对语音处理过程以下就不同的算法具体介绍各自的API函数的格式,功能,参数,返回值,备注及应用范例.7.3.2SACM_A2000该压缩算法压缩比较小(8:1)所以具有高质量,高码率的特点适用于高保真音乐和语音.其相关API函数如下所示:voidSACM_A2000_Initial(intInit_Index)//初始化voidSACM_A2000_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set)//播放voidSACM_A2000_Stop(void)//停止播放voidSACM_A2000_Pause(void)//暂停播放voidSACM_A2000_Resume(void)//暂停后恢复voidSACM_A2000_Volume(Volume_Index)//音量控制unsignedintSACM_A2000_Status(void)//获取模块状态第7章凌阳音频压缩算法269voidSACM_A2000_InitDecode(intChannel)//译码初始化voidSACM_A2000_Decode(void)//译码voidSACM_A2000_FillQueue(unsignedintencoded-data)//填充队列unsignedintSACM_A2000_TestQueue(void)//测试队列CallF_FIQ_Service_SACM_A2000//中断服务函数下面对各个函数进行具体介绍:1)【API格式】C:voidSACM_A2000_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_A2000_Initial【功能说明】SACM_A2000语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】无【备注】该函数用于对定时器,中断和DAC等的初始化.2)【API格式】C:voidSACM_A2000_ServiceLoop(void)ASM:CallF_SACM_A2000_ServiceLoop【功能说明】从资源中获取SACM_A2000语音资料,并将其填入译码队列中. 【参数】无.【返回值】无.3)【API格式】C:voidSACM_A2000_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_A2000_Play【功能说明】播放资源中SACM_A2000语音或乐曲.【参数】Speech_Index:表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节.【返回值】无.【备注】①SACM_A2000的数据率有16Kbps\20Kbps\24Kbps三种,可在同一模块的几种算法中自动选择一种.第7章凌阳音频压缩算法270②Speech_Index是定义在resource.inc文件中资源表(T_SACM_A2000_SpeechTable)的偏移地址.③中断服务子程序F_FIQ_Service_SACM_A2000必须安置在TMA_FIQ中断向量上(参见第五章中断系统内容).函数允许TimerA以所选的的数据采样率(计数溢出)中断.程序7-1以自动方式播放一段SACM_A2000语音,并自动结束.(见光盘) SACM_A2000自动方式主程序流程图:SACM_A2000放音SACM_A2000压缩播放获取语音数据并解码等待中断播放图7.5A2000自动方式主程序流程前台程序:#defineSpeech_10#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_Up_On1#defineRamp_Dn_On2#defineRamp_UpDn_On3Main(){SACM_A2000_Initial(1);SACM_A2000_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);//放音while(SACM_A2000_Status()&0x01){SACM_A2000_ServiceLoop();}}背景程序:.TEXT第7章凌阳音频压缩算法271.INCLUDEhardware.inc.INCLUDEA2000.inc.INCLUDEResource.inc//======================================================== //函数:FIQ()//语法:voidFIQ(void)//描述:FIQ中服务断函数//参数:无//返回:无//======================================================== .PUBLIC_FIQ;_FIQ:PUSHR1,R4TO[sp];//入栈保护R1=0x2000;TESTR1,[P_INT_Ctrl];//是否为定时器A中断JNZL_FIQ_TimerA;R1=0x0800;TESTR1,[P_INT_Ctrl];//是否为定时器B中断JNZL_FIQ_TimerB;R1=C_FIQ_PWM;[P_INT_Clear]=R1;//清中断POPR1,R4from[sp];//恢复现场RETI;L_FIQ_TimerA://定时器A中断处理[P_INT_Clear]=R1;//清中断CALLF_FIQ_Service_SACM_A2000;//调用A2000中断服务函数POPR1,R4FROM[sp];//恢复现场RETI;L_FIQ_TimerB://定时器B中断处理[P_INT_Clear]=R1;//清中断POPR1,R4FROM[sp];//恢复现场RETI;//中断返回/******************************************************************** ********/注:播放语音文件中数据,当出现FFFFFFH数据时便停止播放.4)【API格式】C:voidSACM_A2000_Stop(void);ASM:CallF_SACM_A2000_Stop【功能说明】停止播放SACM_A2000语音或乐曲.【参数】无.【返回值】无.5)【API格式】C:voidSACM_A2000_Pause(void);ASM:CallF_SACM_A2000_Pause【功能说明】暂停播放SACM_A2000语音或乐曲.第7章凌阳音频压缩算法272【参数】无.【返回值】无.6)【API格式】C:voidSACM_A2000_Resume(void);ASM:CallF_SACM_A2000_Resume【功能说明】恢复暂停播放的SACM_A2000语音或乐曲.【参数】无.【返回值】无.7)【API格式】C:voidSACM_A2000_Volume(Volume_Index);ASM:R1=[Volume_Index]CallF_SACM_A2000_Volume【功能说明】在播放SACM_A2000语音或乐曲时改变主音量.【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择.【返回值】无.8)【API格式】C:unsignedintSACM_A2000_Status(void);ASM:CallF_SACM_A2000_Status[返回值]=R1【功能说明】获取SACM_A2000语音播放的状态.【参数】无.【返回值】当R1的bit0=0,表示语音播放结束;bit0=1,表示语音在播放中. 9)【API格式】ASM:CallF_FIQ_Service_SACM_A2000【功能说明】用作SACM_A2000语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_A2000_ServiceLoop及手动方式的SACM_A2000_Decode) 对语音资料进行解码,然后将其送入DAC通道播放.【参数】无.【返回值】无.【备注】SACM_A2000语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ中断源上.10)【API格式】C:voidSACM_A2000_InitDecode(intChannel);ASM:CallF_SACM_A2000_Decode【功能说明】开始对SACM_A2000语音资料以非自动方式(编程控制)进行译码. 【参数】Channel=1,2,3;分别表示使用DAC1,DAC2通道以及DAC1和DAC2双通道.【返回值】无.【备注】用户只能通过非自动方式对语音资料解压缩.11)【API格式】C:voidSACM_A2000_Decode(void);ASM:CallF_SACM_A2000_Decode第7章凌阳音频压缩算法273【功能说明】从语音队列里获取的SACM_A2000语音资料,并进行译码,然后通过中断服务子程序将其送入DAC通道播放.【参数】无.【返回值】无.【备注】用户仅能通过非自动方式对语音资料进行译码.12)【API格式】C:voidSACM_A2000_FillQueue(unsignedintencoded-data); ASM:R1=[语音编码资料]CallF_SACM_A2000_FillQueue【功能说明】将从用户存储区里获取SACM_A2000语音编码资料,然后将其填入语音队列中等候译码处理.【参数】encoded-data为语音编码资料.【返回值】无.【备注】用户仅能通过非自动方式对语音资料进行译码.13)【API格式】C:unsignedintSACM_A2000_TestQueue(void);ASM:CallF_SACM_A2000_TestQueue[返回值]=R1【功能说明】获取语音队列的状态.【参数】无.【返回值】R1=0,1,2;分别表示语音队列不空不满,语音队列满及语音队列空.【备注】用户仅能通过非自动方式测试语音队列状态.程序7-2SACM_A2000非自动方式(编程控制)播放语音.(见光盘)SACM_A2000非自动方式主程序流程见图7.6:第7章凌阳音频压缩算法274A2000播放初始化获取语音资源并填充语音队列解码获取数据并播放判断语音队列是否满判断是否到语音的结束地址放音结束结束开始是否否是图7.6SACM_A2000非自动方式主程序流程中断服务子程序流程见图7.7:FIQ是TimerA中断吗填充语音队列清中断状态否是中断返回寄存器组出栈开始图7.7SACM_A2000中断服务子程序流程前台程序:第7章凌阳音频压缩算法275#defineManual0#defineAuto1#defineFull1#defineEmpty2#defineDAC11#defineDAC22Main(){Addr=RES_A32_SA;//长整型资源地址SACM_A2000_Initial(Manual);//选择非自动方式SACM_A2000_InitDecode(DAC1+DAC2);//使用双通道While(SACM_A2000_TestQueue()!=Full)//若队列不满,填入资料{Ret=GetResource(Addr);//从ROM中取语音资料SACM_A2000_FillQueue(Ret);//将语音资料填入队列Addr++;//指向下一个资料地址}While(1){If(SACM_A2000_TestQueue()!=Full)//继续填资料到队列中{Ret=GetResource(Addr);SACM_A2000_FillQueue(Ret);Addr++;}if(Addr<RES_A32_EA)SACM_A2000_Decode();//对语音资料进行译码elseSACM_A2000_Stop();//地址结束,停止播放}}注:1)文件的结束是由用户位址变量控制的.2)在非自动方式播放语音,其音量的增/减是通过外部子程序(SP_Ramp_Up,SP_Ramp_Dn)控制的.7.3.3SACM_S480该压缩算法压缩比较大80:3,存储容量大,音质介于A2000和S240之间,适用于语音播放,如"文曲星"词库.其相关API函数如下所示:intSACM_S480_Initial(intInit_Index)//初始化voidSACM_S480_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌阳音频压缩算法276//播放voidSACM_S480_Stop(void)//停止播放voidSACM_S480_Pause(void)//暂停播放voidSACM_S480_Resume(void)//暂停后恢复voidSACM_S480_Volume(Volume_Index)//音量的控制unsignedintSACM_S480_Status(void)//获取模块的状态CallF_FIQ_Service_SACM_S480//中断服务函数各函数具体内容如下:1)【API格式】C:intSACM_S480_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_S480_Initial【功能说明】SACM_S480语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】0:代表语音模块初始化失败1:代表初始化成功.【备注】该函数用于对定时器,中断和DAC等的初始化.2)【API格式】C:voidSACM_S480_ServiceLoop(void)ASM:CallF_SACM_S480_ServiceLoop【功能说明】从资源中获取SACM_S480语音资料,并将其填入解码队列中.【参数】无.【返回值】无.【备注】播放语音文件中数据,当出现FFFFFFH数据时便停止播放.3)【API格式】C:intSACM_S480_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_S480_Play【功能说明】播放资源中SACM_S480语音.【参数】Speech_Index表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;2.仅允许音量减调节;3.允许音量增/减调节.【返回值】无.第7章凌阳音频压缩算法277【备注】①SACM_S480的数据率有4.8Kbps\7.2Kbps三种,可在同一模块的几种算法中自动选择一种.②Speech_Index是定义在resource.inc文件中资源表(T_SACM_S480_SpeechTable)的偏移地址.③中断服务子程序中F_FIQ_Service_SACM_S480必须放在TMA_FIQ中断向量上(参见SPCE的中断系统).④函数允许TimerA以所选的的数据采样率(计数溢出)中断.程序7-3以自动方式播放一段SACM_S480语音,并自动结束.(见光盘)SACM_S480自动方式主程序流程见图7.8:SACM_S480放音的初始化SACM_S480压缩播放获取语音数据并解码等待中断播放图7.8SACM_S480自动方式主程序流程中断流程同上.前台程序://******************************************************************* ************************///描述:s480只有自动播放方式,在中断FIQ的FIQ_TMA中断源中通过//主程序的SACM_S480_ServiceLoop()对语音数据进行解码,然后将其//送入DAC通道播放//******************************************************************* ************************/#include"s480.h"#defineSpeech_10#defineDAC11#defineDAC22#defineRamp_UpDn_Off0#defineRamp_UpDn_On3#defineAuto1//=================================================================== ==//函数:main()第7章凌阳音频压缩算法278//=================================================================== ==main(){SACM_S480_Initial(1);//自动方式播放初始化SACM_S480_Play(Speech_1,DAC1+DAC2,Ramp_UpDn_On);//定义语音索引号,播放通道,允许音量增/减调节while(SACM_S480_Status()&0x01)//是否播放结束SACM_S480_ServiceLoop();//获取语音数据并将其填入解码队列}背景程序:.TEXT.INCLUDEhardware.inc.INCLUDES480.inc.PUBLIC_FIQ;_FIQ:PUSHR1,R4TO[sp];//入栈保护R1=0x2000;TESTR1,[P_INT_Ctrl];//是否为定时器A中断JNZL_FIQ_TimerA;R1=0x0800;TESTR1,[P_INT_Ctrl];//是否为定时器B中断JNZL_FIQ_TimerB;L_FIQ_PWM:R1=C_FIQ_PWM;[P_INT_Clear]=R1;//清中断POPR1,R4from[SP];//恢复现场RETI;L_FIQ_TimerA://定时器A中断处理[P_INT_Clear]=R1;//清中断CALLF_FIQ_Service_SACM_S480;//调用S480中断服务函数POPR1,R4FROM[SP];//恢复现场RETI;L_FIQ_TimerB://定时器B中断处理[P_INT_Clear]=R1;//清中断POPR1,R4FROM[SP];//恢复现场RETI;//中断返回注:自动放音时,当语音资源文件中的资料为FFFFFFH时便停止播放.4)【API格式】C:voidSACM_S480_Stop(void);ASM:CallF_SACM_S480_Stop【功能说明】停止播放SACM_S480语音.【参数】无.【返回值】无.第7章凌阳音频压缩算法2795)【API格式】C:voidSACM_S480_Pause(void);ASM:CallF_SACM_S480_Pause【功能说明】暂停播放SACM_S480语音.【参数】无.【返回值】无.6)【API格式】C:voidSACM_S480_Resume(void);ASM:CallF_SACM_S480_Resume【功能说明】恢复暂停播放的SACM_S480语音.【参数】无.【返回值】无.7)【API格式】C:voidSACM_S480_Volume(Volume_Index);ASM:R1=[Volume_Index]CallF_Model-Index_Volume【功能说明】在播放SACM_S480语音时改变主音量.【参数】Volume_Index为音量数,音量从最小到最大可在0~15之间选择. 【返回值】无.8)【API格式】C:unsignedintSACM_S480_Status(void);ASM:CallF_SACM_S480_Status[返回值]=R1【功能说明】获取SACM_S480语音播放的状态.【参数】无.【返回值】当R1的值bit0=0,表示语音播放结束;bit0=1,表示语音在播放中.9)【API格式】ASM:CallF_FIQ_Service_SACM_S480【功能说明】用作SACM_S480语音背景程序的中断服务子程序.通过前台子程序(自动方式的SACM_S480_ServiceLoop及手动方式的SACM_S480_Decode)对语音资料进行解码,然后将其送入DAC通道播放.【参数】无.【返回值】无.【备注】SACM_S480语音背景子程序只有汇编指令形式,且应将此子程序安置在TMA_FIQ中断源上.7.3.4SACM_S240该压缩算法的压缩比较大80:1.5,价格低,适用于对保真度要求不高的场合,如玩具类产品的批量生产,编码率仅为2.4Kbps.其相关API函数如下所示:intSACM_S240_Initial(intInit_Index)//初始化voidSACM_S240_ServiceLoop(void)//获取语音资料,填入译码队列voidSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set)第7章凌阳音频压缩算法280//播放voidSACM_S240_Stop(void)//停止播放voidSACM_S240_Pause(void)//暂停播放voidSACM_S240_Resume(void)//暂停后恢复voidSACM_S240_Volume(Volume_Index)//音量控制unsignedintSACM_S240_Status(void)//获取模块状态CallF_FIQ_Service_SACM_S240//中断服务函数下面具体介绍一下各个函数:1)【API格式】C:intSACM_S240_Initial(intInit_Index)ASM:R1=[Init_Index]CallF_SACM_S240_Initial【功能说明】SACM_S240语音播放之前的初始化.【参数】Init_Index=0表示手动方式;Init_Index=1则表示自动方式.【返回值】0:代表语音模块初始化失败1:代表初始化成功.【备注】函数用于S240语音译码的初始化以及相关设备的初始化.2)【API格式】C:voidSACM_S240_ServiceLoop(void)ASM:CallF_SACM_S240_ServiceLoop【功能说明】从资源中获取SACM_S240语音资料,并将其填入解码队列中. 【参数】无.【返回值】无.3)【API格式】C:intSACM_S240_Play(intSpeech_Index,intChannel,intRamp_Set);ASM:R1=[Speech_Index]R2=[Channel]R3=[Ramp_Set]CallSACM_S240_Play【功能说明】播放资源中SACM_S240语音.【参数】Speech_Index表示语音索引号.Channel:1.通过DAC1通道播放;2.通过DAC2通道播放;3.通过DAC1和DAC2双通道播放.Ramp_Set:0.禁止音量增/减调节;1.仅允许音量增调节;。
声音压缩原理下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!声音压缩是一种常用的音频处理技术,在现代通信、音乐制作、音频存储等领域都有着广泛的应用。
音频文件批量压缩变小的图文教程
处理音频文件的时候,如果遇到大小问题了,那么可以用以下方法来对音频进行压缩使其变小。
不管是什么格式的文件,只要体积变大了都会影响使用,所以压缩文件的技巧可一定要掌握,下面分享一个可以轻松压缩音频文件的方法,比较适合新手使用,一起来看看吧!
推荐使用:闪电音频格式转换器
操作方法:
第一步、点击选择左侧音频压缩,然后点击添加文件,将需要压缩的音频批量添加进来;
第二步、在右侧设置中选择压缩等级,数值越高,文件压缩得越小;
第三步、这里支持压缩多种格式的音频文件,可以选择原音频格式压缩,也可以选择统一转成MP3格式;
第四步、最后,点击右上角的“开始压缩”就可以了;
第五步、压缩完成后,单击弹窗的“前往导出文件夹”浏览文件;
第六步、打开其中一个文件查看属性,音频文件就被压缩得很小了。
mp3压缩原理MP3压缩原理。
MP3是一种非常流行的音频格式,它可以将音频文件进行高效的压缩,使得文件大小大大减小,而音质却能够保持得相当不错。
那么,MP3是如何进行这种高效的压缩的呢?接下来,我们将详细介绍MP3的压缩原理。
首先,MP3的压缩原理基于人耳对声音的听觉特性。
人耳对声音的感知并不是均匀的,对于不同频率的声音,人耳的敏感度也是不同的。
MP3利用了这一特点,将对人耳不敏感的声音进行压缩,而对人耳敏感的声音则保留更多的细节,从而达到高效压缩的目的。
其次,MP3的压缩原理还涉及到了信号处理和数据压缩技术。
在信号处理方面,MP3通过对音频信号进行采样、量化和编码,将连续的模拟信号转换成数字信号,并且利用哈夫曼编码等技术对数字信号进行编码,从而降低了数据的冗余度,实现了对音频数据的高效压缩。
此外,MP3还采用了分帧处理和掩蔽效应原理。
在分帧处理中,MP3将音频数据分割成短小的帧,每一帧包含了一定时间内的音频信号。
而掩蔽效应原理则是指在一定条件下,较强的声音信号会掩盖掉较弱的声音信号,人耳对后者的感知会减弱。
MP3利用这一原理,对音频信号进行掩蔽效应分析,将被掩盖的信号进行丢弃或者减少编码精度,从而实现了对音频数据的压缩。
最后,MP3的压缩原理还涉及到了压缩比特率的选择。
在压缩时,MP3可以根据不同的音频信号特性和压缩需求,动态地选择不同的压缩比特率,以实现对不同音频信号的高效压缩。
总的来说,MP3的压缩原理是基于人耳听觉特性、信号处理和数据压缩技术、分帧处理和掩蔽效应原理以及压缩比特率的选择。
通过这些原理的综合运用,MP3实现了对音频数据的高效压缩,成为了广泛应用的音频格式之一。
希望本文能够帮助大家更好地理解MP3的压缩原理,对音频技术有所启发。
mp3压缩标准MP3压缩标准。
在音频文件的压缩领域,MP3格式无疑是最为常见和广泛使用的一种格式。
MP3格式的文件不仅在音乐播放器、手机等设备上得到了广泛应用,而且也成为了互联网上音乐传播的主流格式。
而MP3文件之所以能够在保证音质的同时实现较小的文件大小,主要得益于其采用了一系列的压缩标准和算法。
本文将对MP3压缩标准进行详细介绍,以便读者对MP3格式有一个更深入的了解。
首先,MP3格式的压缩标准主要采用了人类听觉系统的特性。
人类的听觉系统对不同频率的声音有不同的敏感度,对于高频声音的感知要远远不如低频声音。
因此,MP3格式在进行压缩时会根据不同频率的声音进行有损压缩,即在保证听觉效果的前提下,舍弃一些不易被人耳察觉的声音信息,从而实现了对音频文件的压缩。
其次,MP3格式的压缩标准还采用了分层压缩的技术。
这种技术将音频信号分为不同的频率层,然后对每一层进行独立的压缩处理。
这样做的好处是可以根据不同频率层的特性进行更为精细的压缩,从而在保证音质的同时实现更高的压缩比。
同时,分层压缩也为MP3格式的可变比特率(VBR)提供了技术基础,使得在不同音频内容的情况下,可以动态调整压缩比,从而更好地平衡了音质和文件大小。
此外,MP3格式的压缩标准还采用了哈夫曼编码和MDCT (Modified Discrete Cosine Transform)等技术。
哈夫曼编码可以根据不同声音信号的出现概率,对其进行不等长编码,从而实现了对声音信号的更高效压缩。
而MDCT技术则可以将音频信号从时域变换到频域,进而实现更为精细的频域压缩。
总的来说,MP3格式的压缩标准在保证音质的前提下,实现了较高的压缩比。
这使得MP3格式成为了音频文件传输和存储的首选格式之一。
当然,随着科技的发展,现在已经出现了更为先进的音频压缩格式,如AAC、WMA等。
但MP3作为音频压缩领域的先驱和开拓者,其压缩标准的技术思想和方法仍然对后来的音频格式产生了深远的影响。
音频压缩技术指的是对原始数字音频信号流(PCM编码)运用适当的数字信号处理技术,在不损失有用信息量,或所引入损失可忽略的条件下,降低(压缩)其码率,也称为压缩编码。
它必须具有相应的逆变换,称为解压缩或解码。
音频信号在通过一个编解码系统后可能引入大量的噪声和一定的失真。
、音频压缩算法的主要分类及典型代表一般来讲,可以将音频压缩技术分为无损(lossless)压缩及有损(lossy)压缩两大类,而按照压缩方案的不同,又可将其划分为时域压缩、变换压缩、子带压缩,以及多种技术相互融合的混合压缩等等。
各种不同的压缩技术,其算法的复杂程度(包括时间复杂度和空间复杂度)、音频质量、算法效率(即压缩比例),以及编解码延时等都有很大的不同。
各种压缩技术的应用场合也因之而各不相同。
(1)时域压缩(或称为波形编码)技术是指直接针对音频PCM码流的样值进行处理,通过静音检测、非线性量化、差分等手段对码流进行压缩。
此类压缩技术的共同特点是算法复杂度低,声音质量一般,压缩比小(CD音质> 400kbps),编解码延时最短(相对其它技术)。
此类压缩技术一般多用于语音压缩,低码率应用(源信号带宽小)的场合。
时域压缩技术主要包括G.711、ADPCM、LPC、CELP,以及在这些技术上发展起来的块压扩技术如NICAM、子带ADPCM(SB-ADPCM)技术如G.721、G.722、Apt-X等。
(2)子带压缩技术是以子带编码理论为基础的一种编码方法。
子带编码理论最早是由Crochiere等于1976年提出的。
其基本思想是将信号分解为若干子频带内的分量之和,然后对各子带分量根据其不同的分布特性采取不同的压缩策略以降低码率。
通常的子带压缩技术和下面介绍的变换压缩技术都是根据人对声音信号的感知模型(心理声学模型),通过对信号频谱的分析来决定子带样值或频域样值的量化阶数和其它参数选择的,因此又可称为感知型(Perceptual)压缩编码。
这两种压缩方式相对时域压缩技术而言要复杂得多,同时编码效率、声音质量也大幅提高,编码延时相应增加。
一般来讲,子带编码的复杂度要略低于变换编码,编码延时也相对较短。
由于在子带压缩技术中主要应用了心理声学中的声音掩蔽模型,因而在对信号进行压缩时引入了大量的量化噪声。
然而,根据人类的听觉掩蔽曲线,在解码后,这些噪声被有用的声音信号掩蔽掉了,人耳无法察觉;同时由于子带分析的运用,各频带内的噪声将被限制在频带内,不会对其它频带的信号产生影响。
因而在编码时各子带的量化阶数不同,采用了动态比特分配技术,这也正是此类技术压缩效率高的主要原因。
在一定的码率条件下,此类技术可以达到“完全透明”的声音质量(EBU音质标准)。
子带压缩技术目前广泛应用于数字声音节目的存储与制作和数字化广播中。
典型的代表有著名的MPEG-1层Ⅰ、层Ⅱ(MUSICAM),以及用于Philips DCC 中的PASC(Precision Adaptive Subband Coding,精确自适应子带编码)等。
(3)变换压缩技术与子带压缩技术的不同之处在于该技术对一段音频数据进行“线性”的变换,对所获得的变换域参数进行量化、传输,而不是把信号分解为几个子频段。
通常使用的变换有DFT、DCT(离散余弦变换)、MDCT等。
根据信号的短时功率谱对变换域参数进行合理的动态比特分配可以使音频质量获得显著改善,而相应付出的代价则是计算复杂度的提高。
变换域压缩具有一些不完善之处,如块边界影响、预回响、低码率时声音质量严重下降等。
然而随着技术的不断进步,这些缺陷正逐步被消除,同时在许多新的压缩编码技术中也大量采用了传统变换编码的某些技术。
有代表性的变换压缩编码技术有DolbyAC-2、AT&T的ASPEC(Audio Spectral Perceptual Entropy Coding)、PAC(PerceptualAudioCoder)等。
为什么要使用音频压缩技术要算一个PCM音频流的码率是一件很轻松的事情,采样率值×采样大小值×声道数bps。
一个采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的WAV文件,它的数据速率则为44.1K×16×2 =1411.2 Kb ps。
我们常说128K的MP3,对应的WAV的参数,就是这个1411.2 Kbps,这个参数也被称为数据带宽,它和ADSL中的带宽是一个概念。
将码率除以8,就可以得到这个WAV的数据速率,即176.4KB/s。
这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M,这对大部分用户是不可接受的,尤其是喜欢在电脑上听音乐的朋友,要降低磁盘占用,只有2种方法,降低采样指标或者压缩。
降低指标是不可取的,因此专家们研发了各种压缩方案。
由于用途和针对的目标市场不一样,各种音频压缩编码所达到的音质和压缩比都不一样,在后面的文章中我们都会一一提到。
有一点是可以肯定的,他们都压缩过。
音频压缩标准音频信号是多媒体信息的重要组成部分.音频信号可分为电话质量的语言、调幅广播质量的音频信号和高保真立体声信号(如调频广播信号、激光唱片音盘信号等)数字音频压缩技术标准分为电话语音压缩、调幅广播语音压缩和调频广播及cd音质的宽带音频压缩3种。
在语音编码技术领域,各个厂家都在大力开发与推广自己的编码技术,使得在语音编码领域编码技术产品种类繁多,兼容性差,各厂家的技术也难于尽快得到推广。
所以,需要综合现有的编码技术,制定出全球统一的语言编码标准。
自20世纪70年代起,ccett下第十五究组和国际标准化组织(iso)已先后推出了一系列的语音编码技术标准。
其中,ccitt推出了g系列标准,而iso则推出了h系列标准。
1电话(200hz-3.4khz)语音压缩标准主要有itu的g.722(64kb/s)、g721(32kb/s)、g.728(16kb/s)和g.729(8kb/s)等建议,用于数字电话通信。
2调幅广播(50hz-7khz)语音压缩标准主要采用itu的g.722(64kb/s)建议,用于优质语音、音乐、音频会议和视频会议等。
3调频广播(20hz-15khz)及cd音质(20hz-20khz)的宽带音频压缩标准主要采用mpeg-1或mpeg-2双杜比ac-3等建议,用于cd、md、mpc、vcd、dvd、hdtv和电影配音等。
PCM编码的最大的优点就是音质好,最大的缺点就是体积大。
常见的音频压缩编码格式~~CD格式当今世界上音质最好的音频格式是什么?当然是CD了。
在大多数播放软件的“打开文件类型”中,都可以看到.cda格式,这就是CD音轨了。
标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此他的声音是非常接近原声的。
CD光盘可以在CD唱机中播放,也能用电脑里的各种播放软件来重放。
一个CD 音频文件是一个.cda文件,这只是一个索引信息,并不是真正的包含的声音信息,所以不论CD音乐的长短,在电脑上看到的.cda文件都是44字节长。
WAV格式WAV是微软公司开发的一种声音文件格式,他符合PIFF Resource Interchange File Format文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所支持。
.WAV格式支持MSADPCM,CCITT ALAW等多种压缩算法,支持多种音频位数、采样频率和声道,标准格式的WAV文件和CD格式一样,也是44.1K的采样频率,速率88K/秒,16位量化位数。
WAV格式的声音文件质量和CD相差无几,也是目前PC机上广为流行的声音文件格式,几乎所有的音频编辑软件都认识WAV格式。
还有就是由苹果公司开发的AIFF(Audio Interchange File Format)格式和为UNIX系统开发的AU格式,他们都和WAV非常相像,在大多数的音频编辑软件中也都支持他们这几种常见的音乐格式。
MP3MP3格式诞生于80年代的德国,所谓的MP3指的是MPEG标准中的音频部分,也就是MPEG音频层。
根据压缩质量和编码处理的不同分为三层,分别对应.mp1 .mp2 .mp3这三种声音文件。
相同长度的音乐文件,用mp3格式来存储,一般只有wav格式的十分之一,而音质要次于CD格式或者WAV格式的声音文件。
但是MP3音乐的版权问题一直是找不到办法解决,因为MP3没有版权保护技术,说白了也就是谁都可以用。
MP3格式压缩音乐的采样频率有很多种,可以用64Kbps或更低的采样频率节省空间,也可以320Kbps的标准达到更高的音质。
用装有Fraunhofer IIS Mpeg Lyaer3的MP3编码器(现在效果最好的编码器)Nysuc Natcg Jukebox6.0在128Kbps的频率下编码一首3分钟的歌曲,得到2.82M的MP3文件。
采用缺省的CBR(固定采样频率)技术可以以固定的inlv采样一首歌曲,而VBR (可变采样频率)则可以在音乐“忙”的时候加大采样的频率获取更高的音质,不过产生的MP3文件可能在某些播放器上不能播放。
MIDIMIDI(Musical Instrument Digital Interface)文件格式格式由MIDI继承而来,他允许数字合成器和其他设备交换数据。
MID文件并不是一段录制好的声音,而是记录声音的信息,然后再告诉声卡如何再现音乐的一组指令。
这样一个MID 文件每存一分钟的音乐只用大约5到10KBMID文件主要用于原乐器作品,流行歌曲的业余表演,游戏音轨以及电子贺卡等。
.mid文件重放的效果完全以来声卡的档次。
.mid格式的最大用处是在电脑作曲领域。
.mid文件可以用作曲软件写出,也可以通过声卡的MIDI口把外界音序器演奏的乐曲输入电脑里,制成.mid文件。
WMAWMA(Windows Media Audio)音质要强于MP3格式,更远胜于RA格式,他和**本YAMAHA公司开发的VQF格式一样,是以减少数据量但保持音质的方法来达到比MP3压缩率更高的目的,WMA的压缩率一般都可以达到1:18左右。
WMA的另一个优点是内容提供商可以通过DRM(Digital Rights Management)方案如WindowsMedias Rights Manager7假如防拷贝保护。
这种内置了版权保护技术可以限制播放时间和播放次数甚至于播放的机器等等。
这对被盗版搅得焦头烂额的音乐公司来说可是一个福音,另外WMA还支持音频流(Stream)技术,设和网络上的在线播放。
WMA这种格式在录制是可以对音质进行调节。