1、音频概述
音频是指频率在20Hz~20kHz的声音信号,具体可分为波形信号、语音和音乐三种形式。其中波形声音就是自然界中的所有声音,是声音数字化的基础;语音也可以表示
为波形声音,当波形声音表示不出语言、语音学的内涵。音乐是符号化了的语音,比语音更加规范。
2、音频信号数字化
音频信号数字化是指将模拟的(连续的)声音波形数字化(离散化),变成所谓的数字音频,以便于计算机处理。数字化主要包括信号采样和量化两个方面内容。数字
音频的质量取决于采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的重要因素。
3、音频格式:
音频文件通常分为声音文件和乐器数字接口(MIDI)文件两类。
(1)声音文件的格式
a、WAVE文件--*.WAV
b、AIFF文件--AIF/AIFF
c、Audio文件--*.Audio
d、MPEG文件--*.MP1、*.MP2、*.MP3
e、RealAudio文件--*.MID/*.RMI
(2)MIDI文件--*.MID/*.RMI
4、语音压缩编码:
语音压缩编码中的数据量=(采样频率*量化位数)/8(字节数)*声道数目
常见的音频压缩编码:
(1)波形编码
(2)参数编码
(3)混合编码
5、语音的合成分为两个档次:一是有限词汇的计算机语音输出;二是基于语音合成技术的从文字到语言(Test-to-Speech)的合成。按照人类语言功能的不同层次,
语音合成又分为三个层次。
1)从文字到语音(Test-to-Speech)的合成
2)从概念到语音(Concept-to-Speech)的合成
3)从意向到语音(Intention-to-Speech)的合成
6、语音辨识技术有三大研究范围:口音独立;连续语音;可辨识词汇数量
7、凌阳常用音频形式和压缩算法
1)波形编码(SACM_A2000)
特点:高质量、高码率,适于高保真语音/音乐
2)参数编码(SACM_S240)
特点:压缩比大,计算最大,廉价但音质不高
3)混合编码(SACM_S480)
提点:综合参数编码和波形编码的优点
除此之外,还有FM(调频)音乐的合成方式,即SACM_MS01
8、单片机对语音的控制入录音放音、合成记辨识也广泛应用到现实生活中。语音处理大致可以分为A/D转换、编码处理、存储、解码以及D/A转换等。
9、凌阳语音压缩算法有SACM_A2000、SACM_S480和SACM_S240三种格式。其中,SACM_A2000音频压缩算法的压缩比较小(8:1),编码速率课选择16kbit/s、20bit/s
、24bit/s三种之一,具有高质量、高编码速率的特点,适用于高保真的音乐和语音;SACM_S480语音压缩算法的压缩比较大(80:3),编码速率可选择1.8kbit/s、
7.2kbit/s两种之一,较为节省存储容量,音质介于SACM_A2000和SACM_S240之间,适用于语音播放(如“文曲星”词库等)。SACM_S240压缩算法的压缩比较大
(80:1.5),价格也最低,编码速率只能选2.4kbit/s,适用于对保真度要求不高的场所(如电子类产品)。
10、语音播放应用程序接口函数
1)void SACM_A2000/S480/S240_Initial(int Init_Index)
SACM_A2000/S480/S240语音播放之前对定时器、中断和DAC等初始化
2)void SACM_A2000/S480/S240_ServiceLoop(void)
从资源文件中获取SACM_A2000/S480/S240语音资料,并将其填入译码队列中。该函数在自动方式下使用,实现取数据、填充语音队列和解压缩三步操作(在手动方式下
需要用三个函数分别完成)
Ramp_Set)
Speech_Index:语音索引号;Channel的值及意义:1-DAC1通道播放;2-DAC2通
道播放;3-DAC1和DAC2双通道播放。Ramp_Set的值及意义:0-禁止语音增/减调节;1-仅允许音量增加;2-只允许音量减少;3-允许音量增/减调节。
停止播放SACM_A2000/S480/S240语音或乐曲。
5)void SACM_A2000/S480/S240_Pause(void)
暂停播放SACM_A2000/S480/S240语音或乐曲
6)void SACM_A2000/S480/S240_Resume(void)
恢复暂停播放的SACM_A2000/S480/S240语音或乐曲
7)void SACM_A2000/S480/S240_Volume(viod)
在播放SACM_A2000/S480/S240语音或乐曲时改变主音量
8)unsigned int SACM_A2000/S480/S240_Status(void)
[返回值]当RI的bit0=0时,表示语音播放结束;bit0=1时,表示语音在播放中。
获取SACM_A2000/S480/S240语音播放的状态
9)Call F_FIQ_Service_SACM_A2000/S480/S240
用作SACM_A2000/S480/S240语音背景程序的中断服务子程序。通过前台子程序(自动方式的SACM_A2000/S480/S240_ServiceLoop及手动方式的SACM_A2000/S480/S240_Decode)对语音资料进行解码,然后将其送入DAC通道播放。
10)void SACM_A2000/S480/S240_InitDecode(int Channel)
[参数]Channel=1,2,3,分别表示使用DAC1、DAC2、DAC3通道及DAC1和DAC2双通道
该函数用于手动方式对语音资料解压缩。
11)void SACM_A2000/S480/S240_Decode(void)
从语音队列里获取SACM_A2000/S480/S240语音资料,并进行译码,然后通过中断服务子程序将其送入DAC通道播放。
[说明]该函数用于手动方式对语音资料进行译码
12)void SACM_A2000/S480/S240_FillQueue(void)
将从用户存储区获取SACM_A2000/S480/S240语音编码资料,然后将其填入语音队列中等译码处理
[说明]该函数用于手动方式对语音资料进行译码
13)unsigned int SACM_A2000/S480/S240_TestQueue(void)
[返回值]RI=0、1、2,分别表示语音队列“不空不满”、语音队列“满”和语音队列“空”
获取语音队列的状态
[说明]该函数用于手动方式对语音资料进行译码