2024年4月19日发(作者:)
龙源期刊网
用易语言实现WAVE格式语音文件的合成
作者:孙庆川 李可一 竹雪梅
来源:《现代农业科技》2010年第06期
摘要结合WAVE格式的语音文件存储结构分析,提出了语音合成的方法,并通过易语言平台
实现了语音合成。
关键词易语言;WAVE语音文件;合成
中图分类号TP31文献标识码A文章编号 1007-5739(2010)06-0033-01
SynthesisofWAVEFormatAudioFilesUsingEasyLanguage
SUN Qing-chuan 1LI Ke-yi 2ZHU Xue-mei 3
(1 Chengde Meteorological Bureau of Hebei Province,Chengde Hebei 067000; 2 Technical
College,Beijing Forestry Univerdity; 3Middle school Affiliated to Chengde Normal College)
AbstractAnalyzing storage structure of WAVE format audio files,a methed of audio synthesis
was put on it,audio synthesis was achieved through the platform of easy language.
Keywordseasy language;WAVE format audio files;synthesis
WAVE格式文件是Microsoft公司的音频文件格式,它来源于对声音模拟波形的采样[1-2]。
用不同的采样频率对声音的模拟波形进行采样可以得到一系列离散的采样点,以不同的量化位
数(8位或16位)把这些采样点的值转换成二进制数,然后存入磁盘生成的语音文件。该格式记录
声音的波形采样率高、采样字节长、机器速度快,利用该格式记录的声音文件能够和原声基本
一致,质量非常高,但文件太大,不利于快速连接或传输。
在电视天气预报节目制作过程中,语音合成技术是一种常用的方法。经常要把几个预先录
制好的WAVE格式语音文件,合并成一个文件来播放。这就涉及到如何将几个事先录制好的
WAVE文件合并成一个文件的问题。易语言是全中文全可视跨平台编程语言,其操作界面与主
流软件相似,能与常用的编程语言互相调用,操作简单,全汉字编程,可支持程序界面设计和程序流
程编码[3-4]。用易语言开发软件,很好地解决了这个问题。
1WAVE文件存储结构分析
龙源期刊网
WAVE文件数据存储结构主要由2部分组成,一是文件头,二是语音数据。WAVE文件作为
多媒体中使用的声波文件格式之一,它是以RIFF(Resource Interchange File Format)格式为标准
的。WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE
Chunk,Format Chunk,Fact Chunk,Data Chunk(图1)。其中除了Fact Chunk可选外,其他3个
Chunk是必须的。每个Chunk有各自的ID,位于Chunk最开始位置,作为标示,而且均为4个字节,
紧跟在ID后面的是Chunk的大小(去除ID和Size所占的字节数后剩下的其他字节数目),用4
个字节表示,低字节表示数值低位,高字节表示数值高位。
标准WAVE文件的文件头共有44个字节,其中最前面的12个字节用来说明文件是属于哪
种类型,剩下的32个字节分为2个部分。从12~35字节是用来说明文件结构的,从36~43字节
是用来说明数据的大小,44字节开始到最后,是存放实际声音数据的地方。具体说明如下:
0~3字节,存放“RIFF”4个字符。一般的.wav声音文件和.avi动画文件都使用此种格式。
4~7字节,存放一个整型的数值,此值为文件总长度减去固定标记(4字节),再减去数据大小标记
(4字节)。如声音文件总长度为352 844字节,此数值大小为352 836。8~11字节,存放“WAVE”4
个字符,表示此文件是Wave格式。12~15字节,存放“fmt ”4个字符(fmt后面必须有一空格),告知
此WAVE文件是属于哪种格式,若是Windows系统都是属于WAVE_FORMAT_PCM格式。
16~19字节,为一长整型,说明数据结构 PCMWAVE-FORMAT的大小,值为16。20~21字节,代表
此WAVE文件的格式,如为WAVE_FORMAT_PCM格式,即音频数据是怎样编码的,此值通常为
1。22~23字节,代表声音的通道数,如单声道为1,立体声为2。24~27字节,代表每秒的采样数,即
采样率。典型值为11025(电话质量)、22050(FM质量)、44100(CD质量)。28~31字节,代表每秒
的传输速率。32~33字节,代表一次输出的字节数。在PCM格式中,此值等于每次采样的字节数
乘以通道数。34~35字节,代表每个采样所需要的位数,通常为8或16。36~39字节,存放“data”4
个字符,说明数据部分的开始。40~43字节,为一长整型,此值为文件总长度减去文件头长度(44字
节)。例如一个WAVE文件的大小为352 844字节,此数值大小为352 800,其中44为文件头长
度。44字节到文件结尾处,为真正声音数据存放处。
2语音文件的合成
一个语音文件主要由文件头和语音数据两部分组成,而语音合成的关键就是如何正确地生
成文件头中的相关数据。
对于相同格式的WAVE文件,只需修改文件头中的文件长度和语音数据长度,即4~7字节和
40~43字节的值,其他字节处内容保持不变。例如要把加到后面形成新的文
件,此功能可用易语言编写的2个子程序来实现,具体操作方法如下:
首先读入,去掉文件头中的44个字节,把余下的字节加到文件后,形成新的
文件。其次,修改新的文件头,即修改4~7字节和40~43字节的内容,实现2个文件的
合成。4~7字节内容为文件长度减去8,40~43字节的内容为文件长度减去44,所得
龙源期刊网
数值转换成十六进制后,写到相应位置。至此,2个语音文件就合并成了1个。此处4~7字节和
40~43字节的数据要用十六进制形式写入。
3小结
对于语音合成技术,以往的方法需要借助一些音频处理软件,如CoolEdit、SoundEdit等,费时
费力,不利于业务化操作。该文通过对WAV文件存储结构的分析,利用易语言开发平台,开发语
音合成软件,很好地解决了这个难题,在实际应用中,取得了很好的效果,并得到推广。
4参考文献
[1] 舒广,张晓明.RIFF WAVE文件的结构与应用[J].电声技术,2001(1):49-51.
[2] 董玉岩,张万江,张玲.基于WAVE格式音乐文件的音乐喷泉控制方法研究[J].现代农业科
技,2008(22):331.
[3] 梁晓嘉.语言实验的启示:介绍一种简易语言教学系统[J].广西教育学院学报,1994(1):112-
113.
[4] 鲍永刚,杨华民.WAVE文件波形编辑方法[J].小型微型计算机系统,1997,18(1):72-75.


发布评论