论文部分内容阅读
语音合成技术,简称TTS (Text-to-Speech)是一种把输入文本转换为语音输出的数字语音技术。随着社会发展和科技水平不断提升,人机交互发展成为一项热门技术,语音合成和语音识别成为了数字语音领域的研究热点。随着嵌入式设备的系统性能提升、容量扩大、价格降低,嵌入式语音合成技术也逐渐走进了主流应用场合。FPGA(Field Programmable Gate Array),即现场可编程门阵列,以其灵活性好、功能强大、使用范围广、硬件可重构性强而成为了时下最热门的嵌入式平台。目前基于计算机的语音合成算法已经十分成熟,在语音的自然度、流畅性上都有卓越的表现,合成后的语音质量较好。但是,由于嵌入式设备的存储容量和系统资源有限,导致了这些系统开销大的算法,无法很好地移植到硬件平台上。本文针对此问题,结合FPGA的硬件特性,提出了一种占用系统资源小,易于实现的TTS系统。本文首先阐述了语音合成技术的发展历史、国内外研究现状,在理解语音合成原理的基础上,绘制出系统框图,给出了基于FPGA的TTS系统设计的方案,并在MATLAB下进行相关仿真实验,在文章最后验证了该方案在FPGA上可行。文中重点分析了基音同步叠加PSOLA (Pitch Synchronous Over Lap-and-Add)算法的合成原理。本TTS系统硬件平台选用Micro semi公司的SmartFusion评估板A2F-EVAL-KIT。由于FPGA自身存储空间有限,故外接一块SD卡接口模块作为扩展,利用扩展的SD卡存储汉字字典及语音库文件。通过移植、布署FatFs文件系统实现对语音库中音频文件读取,FPGA上所移植的FatFs文件系统的版本为0.07e。系统采用中国国家标准简体字符集核准的汉字表作为字典文件,语音库内的语音基元均存储为WAV (wave)格式。通过读取字典文件,建立起汉字到语音库中WAV文件相对应的索引表。该语音合成系统输入部分通过PC机上开发的简单人机交互界面完成,获取了输入文本信息后,通过UART0把数据传送到FPGA上,系统通过索引表查找到与输入文本相匹配的语音,在对该WAV文件进行解析,提取出其中的PCM (Pulse-code Modulation)数据,送入D/A,通过扬声器播放出声音,实现文语转换功能。最后,运用MATLAB对合成前后的语音波形做了详细的分析。示波器采集的扬声器端的语音波形,较好的保存了原始语音的特色。经过人耳听辨音实验,本TTS系统具有极高的准确性,输出语音清晰,可懂度高,在语音的流畅性和自然度上仍需改善。