多媒体技术与网页设计 主 编 : 陈 新 龙
第二章 数字音频处理 读者学习本章应重点理解波形音频、MIDI等常见数字音频的含义、特点及其在计算机中的实现方法;理解音频格式的种类、音频卡的原理;了解WAV音频低级格式分析,能利用GoldWave进行简单的音频处理;理解音频编码的一般原理。 本章建议学时数:6学时。学时数较少时可将WAV音频低级格式分析不讲。纯应用专业音频编码也可不讲。
第 1 课 在本次课中,我们将从数字音频的概念出发结合声音的特点介绍数字音频在计算机中的实现,音频卡的工作原理。
1.上一课回顾 2 .授课内容 本次授课内容属于: 第二章 1、2、3节
一、声音媒体的特征 自然界的声音信号究其本质是一种机械振动,是一种在空气中随时间而变化的压力信号。 二、语音媒体 1 概述 一般认为,人的声音是由声道产生,当人说话时,在声道里会产生两种类型声音;
第一种类型声音为浊音,为准周期脉冲,各股空气之间的间隔称为音调周期; 第二种类型为清音,它是由空气通过声道时,受声道某些部分的压缩而引起,具有更大的随机性
理想化的话音波形及频谱如下:
人的听觉范围最低可达20Hz,最高可达20kHz 2.结论 语音包含三要素:音调、音强、音色 音调与语音的频率有关,音强即声音的大小,取决于声波的幅度,音色则是由混入基音的泛音所决定 人的听觉范围最低可达20Hz,最高可达20kHz
人的听觉具有掩蔽效应。这便是强音掩蔽弱音,包括同时掩蔽和异时掩蔽两种类型; 三.人的听觉感知机理特征: 人的听觉具有掩蔽效应。这便是强音掩蔽弱音,包括同时掩蔽和异时掩蔽两种类型; 人耳对不同频段的声音的敏感程度不同; 人耳对语音信号的相位变化不敏感。
四、数字音频 自然界的声音信号究其本质是一种机械振动,对信号进行处理一般需进行变换,对声音信号主要有两种变换器:麦克风,将声音的压力变化信号转换成电压信号;喇叭,将电压信号转换成声音的压力变化信号。
传统电子技术采用模拟音频电子技术处理声音信号:它以模拟电压的幅度表示声音的强弱,但计算机只认识数字信号 在计算机中,所有信息均以数字表示。声音信号也用一系列的数字表示,称为数字音频。 将模拟音频转换为数字音频需经采样、量化两个步骤。
把模拟音频信号转换成有限个数字表示的离散序列,即音频数字化。 音频数字化需经历采样、量化、编码三个过程 五 音频数字化原理 把模拟音频信号转换成有限个数字表示的离散序列,即音频数字化。 音频数字化需经历采样、量化、编码三个过程
1.采样 音频信号事实上是连续信号,或称连续时间函数x(t)。用计算机处理这些信号首先必须先对连续信号进行采样,即按一定的时间间隔(T)取值,得到x(nT)(n为整数)。T称为采样周期,1/T称为采样频率。称x(nT)为离散信号,其过程如图2-2-3所示。 采样过程事实上是一个抽样过程。离散信号x(nT)是从连续信号x(t)上取出一部分,那么用x(nT) 能够唯一地恢复出x(t)吗?
则可以由离散信号x(nT)唯一地恢复出x(t)。 采样定理告诉我们,若连续信号x(t)的频谱为x(f),按采样时间间隔T采样取值得到x(nT),如果满足: 当|f|≤fc时,fc是截止频率 T ≤1/(2fc) 或 fc ≤1/(2T) 则可以由离散信号x(nT)唯一地恢复出x(t)。 常用音频采样频率有:8kHz,11.025kHz,22.05kHz,16kHz,37.8kHz,44.1kHz,48kHz
2.量化 由于计算机中只能用0和1两个数值表示数据,连续信号x(t)经采样变成离散信号x(nT)仍需用有限个0和1的序列来表示x(nT)的幅度。我们把用有限个数字0和1表示某一电平范围的模拟离散电压信号称为量化。
量化过程是一个A/D转换的过程。在量化过程中,一个重要的参数便是量化位数,这不仅决定着声音数据经数字化后的失真度,更决定着声音数据数据量的大小。存储数字音频数据的比特率为: I=B·fs(比特/秒) (2-2-1) fs是采样频率 B是每个样值的比特数
如果量化值是均匀的,则称为均匀量化,反之,则为非均匀量化。 在实际使用上,常常采用均匀量化。对非均匀量化,可先均匀量化然后用软件进行变换。 一般而言,量化将产生一定的失真,因此,量化过程中每个样值的比特数直接决定着量化的精度。 声卡的位数事实上便是指量化过程中每个样值的比特位数,主要有8位、16位、32位 几个等级。
3 .编码并格式化 有格式的数据才能表达信息的含义。 在实际使用中,主要有Microsoft公司为Windows操作系统定义的数字音频格式---Wave文件格式,Creative公司为Dos操作系统定义的数字音频格式---Voc文件格式,MIDI规范定义的MIDI标准等 由于音频数据数据量极大(MIDI音频例外),因此,在格式化前总是对其进行编码。
六、数字音频的输出 音频信号经数字化以后以文件形式存放于计算机中,当需要声音时计算机将其反格式化并输出。 在计算机中,数字音频可分为波形音频、语音和音乐。 何为波形音频? 对声音进行直接数字化处理所得到的结果称为波形音频,是对外界连续声音波形进行采样并量化的结果。
在计算机中,声音产生有两种方法:一是录音/重放,二是声音合成。 若采用第一种方法,首先要把模拟语音信号转换成数字序列,编码后,暂存于存储设备中(录音),需要时,再经解码,重建声音信号(重放)。用这种方法处理产生的声音称为波形音频,可获得高音质的声音,并能保留特定人或乐器的特色。美中不足是所需的存储空间较大。
第二种方法是一种基于声音合成的声音产生技术,包括语音合成、音乐合成两大类。 语音合成亦称文-语转换,它能把计算机中的文字转换成连续自然的语音流。
第二种方法是解决计算机声音输出的最佳方案,但第二种方法涉及多个科技领域,走向实用有很多难点。 若采用这种方法进行语音输出,应先建立语音参数数据库、发音规则库,需要输出语音时,系统按需求先合成语音单元,再按语音学规则或语言学规则,连接成自然的语流。 第二种方法是解决计算机声音输出的最佳方案,但第二种方法涉及多个科技领域,走向实用有很多难点。 目前普遍应用的是音乐合成
综上所述,数字音频在计算机中实现需经历音频数字化、数字音频在计算机中输出两个过程。在这个实现过程中,音频卡是完成此过程的关键。
七 音频卡工作原理简介 处理音频信号的PC插卡是音频卡(Audio Card),又称声音卡(简称声卡)。 音频卡分类有多种方法,根据数据采样量化的位数来分,通常可分为8位、16位、32位等几个等级。
(一)音频卡的主要功能有: 1. 音频的录制与播放 2. 音频文件的编辑与合成 3. MIDI接口和音乐合成 4. 文语转换和语音识别
(二) 音频卡的原理与组成
八.本课重点与难点 重点:数字音频在计算机中实现 难点:音频数字化原理 九 习题 2-2 4、5 2-4 1
下 课
第 2 课 本次课主要介绍计算机中的三种常见声音,WAV波形音频格式及其处理技术。 学时数较少时可不介绍WAV波形音频格式。
一 计算机中的三种常见声音 目前,计算机中主要有三种常见声音:WAVE波形音频、MIDI音频和CD音频。 波形音频是应用最广泛的一种数字音频形式,流行的格式有:WAV文件格式、VOC文件格式及MP3, WMA, OGG, MP3pro, AAC, VQF, ASF等有损压缩编码格式。
WAV波形音频是Microsoft公司为Windows操作系统定义的数字音频格式,VOC文件是Creative公司为Dos操作系统定义的数字音频格式。 WAV文件、VOC文件均是声音录制完成后的原始音频格式,一般不压缩,因此所占存储空间较大,尤其不适合于网络传输与发布。
其数据量计算公式如下(单位:字节/秒): 如1分钟的CD音质、16位立体声音频数据,其数据量为:
MP3全称是MPEG Audio Laye-3,具有较高的压缩效率。VBR(可变编码率)和ABR(平均编码率)压缩编码方式引入后,MP3文件已具有较理想的音质。 WMA全称Windows Media Audio,相对于MP3的最大特点就是有极强的可保护性。 MP3、WMA均是目前网络上流行的声音媒体格式。
CD音频具有悠久的历史和丰富的资源,以光盘为载体,按照音轨组织声音数据。CD音频记录的依旧是声音的波形,不过它不是按照文件方式存储组织。
MIDI是Musical Instrument Digitial Interface的缩写,是音乐与计算机结合的产物,是一项工业产品的产物,泛指数字音乐的国际标准。 MIDI给出了在计算机中得到音乐声音的另外一种方法,且这种方法极为节省空间,但关键是MIDI音乐作为一种媒体应能记录这些音乐的符号,相应的设备能够产生和解释这些符号。
必须指出的是,虽然波形音频能够实现全部的声音,但MIDI音频、CD音频亦是不可代替,这是由其本质差异所决定的。
二 WAV声音及其应用 WAV 声音是Microsoft公司为Windows操作系统定义的数字音频格式,它是波形音频的一种; 要理解WAV文件格式,首先应了解Windows操作系统RIFF文件格式。 RIFF(Resource Interexchange File Format)文件格式是IBM/Microsoft公司为Windows操作系统定义的资源交换文件 格式。
在Windows操作系统中,绝大多数文件均符合RIFF文件格式,WAV文件便是其中之一。
【例2.4.1】 分析“Windows XP 登录音.wav”文件的头数十字节数据内容? 00000000h: 52 49 46 46 F8 E6 02 00 57 41 56 45 66 6D 74 20 00000010h: 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 00000020h: 04 00 10 00 64 61 74 61 D4 E6 02 00 00 00 00 00 00000030h: 00 00 00 00 03 00 01 00 07 00 05 00 0F
(1) 最左边的8个数字表示数据在文件中的位置,每个数据占1个字节,数据中的每个字母占4个二进制位。具体分析时,对照2. 4 (1) 最左边的8个数字表示数据在文件中的位置,每个数据占1个字节,数据中的每个字母占4个二进制位。具体分析时,对照2.4.1小节定义的表格及C结构,逐组分析上面数据的含义。
对照表2.4.1: 52 49 46 46表示块名,数据类型为字符,用ASCⅡ码表示为“RIFF” F8 E6 02 00为“RIFF”块长度,数据类型为long int,用十进制表示为190,200 (对数值型数据,计算机中的存储顺序为:低位在前,高位在后,F8 E6 02 00表示16进制数:2E6 F8),190,200+8=190,208为“Windows XP 登录音.wav”文件实际长度;紧接其后为“RIFF”块数据。
(2)“RIFF”块数据前四个字节57 41 56 45用ASCⅡ码表示为“WAVE”, 紧接其后有两个RIFF格式数据块,其块名分别为:“fmt ”、“data”。 (3)第一个块为“fmt ”块,66 6D 74 20用ASCⅡ码表示为“fmt ”,10 00 00 00为“fmt ”块长度(“fmt”块名后的4个字节许多实际WAV文件并不严格按照“fmt”块长度定义),用十进制表示为16,它表示后面16字节为“fmt ”块数据。
(4)“fmt ”块数据具体含义定义见WAVEFORMAT,对照着WAVEFORMAT结构,可以看出,“Windows XP 登录音 (4)“fmt ”块数据具体含义定义见WAVEFORMAT,对照着WAVEFORMAT结构,可以看出,“Windows XP 登录音.wav”为PCM 编码格式,22.050 kHz,16 位, 立体声WAV声音格式文件。 (5)该WAV文件没有“fact”块,“fmt ”块数据后面为“data”块,64 61 74 61用ASCⅡ码表示为“data”,D4 E6 02 00为“data”块长度,用十进制表示为190164。
必须指出的是,“data”块包含的数字化波形声音数据,其存放格式依赖于“fmt ”块指定的格式种类,单声道样本一般连续存放,多声道样本一般交替存放,存放实例如表2.4.3所示。
有了WAV文件最低级的格式分析,便可以编程访问WAV文件的数据块并进行相应的数据处理,此处不再另举实例。 三 通过MCI接口使用WAV文件 有了WAV文件最低级的格式分析,便可以编程访问WAV文件的数据块并进行相应的数据处理,此处不再另举实例。 对多媒体程序开发,Windows操作系统将低级驱动与高级编程相分离,将各种常见媒体定义为多媒体设备,为其编写了低级驱动程序(或由所对应的多媒体设备厂商提供),并在低级驱动程序的基础上定义了诸如open、stop、end等类似的高级函数接口,称为MCI(Media Control Interface)多媒体控制接口。
对MCI高级函数的调用,Windows系统为其定义了两种方式: 1.多媒体设备消息方式 在具体实现上,通过调用Windows API 在Windows系统中,WAV文件的多媒体设备名为waveaudio,可以通过阅读system.ini文件的mci段得到验证。 对MCI高级函数的调用,Windows系统为其定义了两种方式: 1.多媒体设备消息方式 在具体实现上,通过调用Windows API mciSendCommand函数来实现。 2.多媒体设备命令字符串方式 mciSendString函数来实现。
sndPlaySound ("sounder.wav", SND_SYNC); 3. 为方便编程,Windows提供了一种更为简洁的方式,其播放SOUNDER.WAV文件的程序如下: sndPlaySound ("sounder.wav", SND_SYNC); 4.高级控件方法
四 WAV声音的编辑与处理 WAV文件为常用音频格式文件,得到了几乎所有音频处理软件(如MediaStudio、WaveStudio、GoldWave、CoolEdit等)的支持。 下面以GoldWave 5.12汉化版为例介绍数字音频编辑与处理的基本知识
GoldWave是一个功能强大的专业数字音频编辑软件,支持几乎所有的数字音频格式,具有精密的过滤器、多种专业的音频效果,通过表达式求值程序,理论上可以制造任意声音,支持从简单的声调到复杂的过滤器,内置的表达式有电话拨号音的声调、波形和效果等,其工作界面如图2-4-1所示
1.格式转换 GoldWave支持几乎所有的数字音频文件格式,可完成不同类型文件之间的转换,如将WAV文件转换为mp3格式;也可完成同一类型文件不同制作格式之间的转换。具体实现方法如下: 启动GoldWave,打开待进行格式转换的文件并单击“文件”->“另存为”,在弹出的“另存为”任务窗格中,选择你的目标文件保存类型及属性即可。 演示CD抓音轨、mp3制作等
2.波形编辑 在图2-4-2所示GoldWave工作界面中,屏幕中央的上下波形便是打开的数字音频文件的具体的数据波形,上面区域对应左声道波形,下面区域对应右声道波形,可利用GoldWave直接对声音波形进行编辑,以达到所需要的效果。
(1)波形选择 选择要进行操作的波形是波形编辑的第一步。 选择具体波形的方法有多种,如鼠标拖动选择。也可在波形图上用鼠标右键确定选择波形的开始和结束标记,参考界面如图2-4-3所示。 图中,选中的波形以较亮的颜色并配以蓝色底色显示,未选中的波形以较淡的颜色并配以黑色底色显示
(2)波形的插入与混入 波形的插入是指在当前打开的音频文件的当前位置前插入另一段音频波形。波形的混入是指把当前打开的音频文件的当前位置之后的音频数据段与另一个音频数据段二者合成一个音频数据段。
在GoldWave中实现方法如下: 选择用于插入的音频数据段,将其复制到剪贴板。打开需要插入的音频文件,选择某个需要插入的波形段,将复制到剪贴板的音频数据段粘贴到当前段即可。 在上面的操作中,选择快捷图标混音,实现的是两个音频数据段的混音操作。
(3)其它编辑功能 常见的音频波形编辑方法有:回音、反向、剪裁等。在GoldWave中实现这些操作也是非常简单,选择具体的波形段,选择相应快捷图标即可。 利用上面的编辑操作,不难想象,将一段录制好的人的说话声音经GoldWave编辑处理之后,达到与说话人本来含义完全相反的效果并非不可能的。
(4) 其它效果 利用GoldWave对声音做诸如拷贝、删除、剪裁等处理当然是最常用的编辑操作,但如果你想对一段声音进行更精密的处理的时候,这些功能显然是远远不够的。GoldWave还具有强大的非线性编辑能力,可实现对波形的特殊效果,其效果菜单如图2-4-4所示
上机应用题 1. 请用UltraEdit-32文字/HEX编辑软件对照【例2.4.1】分析光盘N2目录下的“Windows XP 登录音.wav”文件 2. 请用GoldWave编辑“Windows XP 登录音.wav”声音文件,具体要求如下: (1) 将其音频波形平坦处音量加大到与非平坦处可以比拟 (2) 只保留左声道音频数据,右声道复制一些背景音乐 (3) 适当剪裁
下 课
第3 课 本次课介绍PCM编码原理及其实现。 纯应用专业本课也可不讲,以保证网页设计内容的学时数
上一课回顾 授课内容 本次授课内容属于:第二章 5、6节
引言: 1. 时域信息具有较大冗余 2. 频域信息存在冗余 3. 人的听觉具有其自身的特点 编码的目的总是在于压缩数据,而音频数据存在压缩的基础。这主要体现在以下几个方面: 1. 时域信息具有较大冗余 2. 频域信息存在冗余 3. 人的听觉具有其自身的特点
(1)基于音频数据的统计特性进行编码,其典型技术是波形编码; (2)基于音频数据的声学参数进行编码。 (3)基于人的听觉特性进行编码。 音频编码的分类如下: (1)基于音频数据的统计特性进行编码,其典型技术是波形编码; (2)基于音频数据的声学参数进行编码。 (3)基于人的听觉特性进行编码。
一、PCM编码的含义 PCM编码原理在第二节数字音频在计算机中的实现已经涉及过,PCM编码的过程事实上是将连续模拟信号变成离散的幅度信号、再把离散的幅度信号变成离散的数字信号的过程,这也就是音频数字化的过程。 其原理如图。
在上述PCM编码过程中,若以大于两倍的信号最大频率采样,在采样过程中不产生失真。 在量化过程中,有一定数量的误差或失真引入到样本中,这种误差称为量化噪声。 一般情况下,我们总是希望量化噪声尽量小,输入信号的动态范围应予以保证。在这种情况下,我们总是采用增加量化位数来实现。从这个角度,16位声卡的信噪比接近90dB,可达到高保真的要求。
二、PCM编码量化的两种方式 (1) 均匀量化: 无论对大信号还是小信号,一律都采用相同的量化间隔 问题:为适应输入信号的动态范围变化大,而又要求量化噪声小,解决的办法之一就是增加样本的量化位数。 PCM编码系统就没有得到充分的利用
(2)不均匀量化 根据输入样本的幅度大小去改变量化间隔。 比如,可以采用量化间隔与量化幅度成正比的线性量化器,输入信号幅度越大,量化间隔越大。这样,在满足信号及量化噪声比的情况下,对小信号和大信号,就可以使用较少的位数来表示每个样本的值。
(3)压扩编码 在某些应用中,对于不同分布的信源使用不同的量化器不大现实,人们宁可选用那些对输入信号概率分布的变化相对不敏感的量化特性。如先用一个非线性函数进行压缩变换,然后再均匀量化。 一个典型的压缩和扩展的特性如图
三、μ律压扩算法 μ律压扩特性按下式确定 式中,sgn(x)为符号函数,x为输入信号幅度,归一化值为-1≤x≤1; μ为确定压缩量的参数,一般来说, 100≤μ≤500。
μ律压扩的逆特性按下式确定 式中,sgn(y)为符号函数,y为压缩值,归一化值为-1≤y≤1; μ为压扩参数。
当选择μ=255时,压扩特性可用8条折线来表示,这就大大简化了计算过程。 其前四条折线如图2-5-3所示。
这八条折线还有一个好处:第一条折线斜率为1/2,相邻两条折线的斜率相差一半,依次为1/4、1/8 ·····,这八条折线的终点依次为31、95、223、479、991、2015、4063、8159。 于是,对13位二进制码进行μ律PCM编码(8位),其编码格式如下:
在上面格式中,P为符号;S折线代号;Q为折线区间量化代码。于是,μ律PCM编码直接编码表如表2.5.2示。
例2.5.1 某一样本值量化后的值为+1513,求μ=255的 PCM码 由表2-4,991<x=1513<2015 → S=101 在S=101折线段中,量化间隔为64,Q=(1513-991)/64=8.15≌8 μ=255的 PCM码为: 0 101 1000(二进制),用十进制表示为88 PCM码88,最高位为0,所以其解码值为1535,为1503和1567的中点。
四、A律压扩算法 A律压扩算法特性由下列公式确定。 式中,sgn(x)为符号函数,x为输入信号幅度,A为确定压缩量的参数,y为压缩值。
A律特性可类似于μ律压扩算法用折线来表示。 当A=87.56时,8位A律的八条折线端点为: 32、64、128、256、512、1024、2048、4096。 其PCM编码(8位)格式如下:
其解码符号位由PCM码的最高位决定,其余可按下式计算。
例2.6.2 某一样本值量化后的值为+1513,求A=87.56的 PCM码 解: 该样本值量化后的值为+1513,故 P=0。 由表2-6,1024< x =1513<2048 → S=1102=610 在S=110折线段中,量化间隔为64 Q=(1513-1024)/64=7.64≌710=01112 A=87.56的 PCM码为:0 110 0111(二进制),用十进制表示为103 其解码值为: 1504
人类对语音学的研究主要包括以下几个方面: 五、汉语语音处理技术 计算机能听懂人的话语,能用语音控制各种自动化系统,成为人类的一种更高的追求,从而也诞生一门新的学科---计算机语音学(computer phonetics)。 人类对语音学的研究主要包括以下几个方面: 语音编码(speech coding)、语音合成(speech synthesis)、语音识别(speech recognition)、语言鉴别(language identification)、说话人识别(speaker recognition)、说话人确认(speaker verification)等。
1.语音识别概述 主要有以下几种分类: (1)依可识别词汇量多少,语音识别系统可分为大、中、小词汇量三种。 (2)依语音的输入方式,语音识别系统可分为孤立词、连接词、连续语音识别三种。 (3)依发音人可分为特定人、限定人和非特定人语音识别三种。 当然,也有其它分类方法,如说话人识别、关键词识别、语音命令识别等,这些是根据语音识别系统的功能进行分类的方法。
2.汉语语音识别 汉语识别优点主要体现在以下几个方面: (1)汉语音节性很强,每个字均以单音节为单位。 (2)汉语音节的构成比较简单和规整,一般是由声母和韵母组成,有利于计算机进行识别。 (3)汉语是一个有调语言,每个音节的发音时间较长,且有较稳定的有调段,这有利于计算机识别与纠错。 (4)汉语的协同发音及音变问题不如英语等其它语种普遍,这有利于计算机识别。
汉语识别难点主要体现在以下几个方面: (1)汉语的同音字太多,平均每个音节拥有的同音字大约为7至8个。我国地域辽阔,各地发音差异较大,这不利于计算机识别与纠错。 (2)汉语是一种内涵语言,实际上下文环境甚至语气、语调都对意义的理解起决定性的作用。这使得计算机精确识别连续汉语语音存在着很多技术难点。
理想的语音识别系统应该是: 不存在对说话人的限制,即非特定人; 不存在对词汇量的限制;即基于大词汇表; 不存在对发音方式的限制; 系统整体识别能力应该相当高,接近人类对自然语言的识别能力。
六、本章小结
下 课!