基于语音合成技术的多功能阅读器
技术领域
本发明涉及智能语音合成技术领域,更具体的是涉及一种基于语音合成技术的阅读器。
背景技术
随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术和人们的生活越来越紧密结合。在嵌入式设备中,例如电子书、手机、智能玩具、信息家电和车载GPS,语音合成(TTS,Text-To-Speech)技术有着越来越广泛的应用。采用全球卫星定位系统(GPS)来提供道路状况和定位信息是运输交通行业的一大趋势,几乎已成为车辆的必备设备。在车载GPS中加入TTS技术,驾驶员能够在眼忙手忙的情况下,通过语音实时收听路况动态信息及通知、公告,及时获取车主定制的个性化信息,将平面显示导航上升到立体语音导航;盲人是我们社会的一个弱势群体,他们无法阅读普通的书报,只能靠摸读厚厚的盲文书来进行学习,但盲文书体积大、成本高、信息量少,大大影响了他们获取知识和信息的效率。而在电子书中整合TTS技术,使电子书不仅可以看,还能听,为盲人阅读带来了方便;随着移动通信行业的发展,手机日益普及,需求量成倍增长。手机作为移动通信终端正朝着小型化、多功能化、个性化方向发展。带有TTS功能的手机,可以用语音播报来电号码,概述电子邮件内容,给予日程提醒,收听网络信息等。嵌入式TTS技术还能在智能语音玩具、测量仪器等众多领域得到广泛应用。从发展趋势来看,TTS技术在嵌入式设备上的全面应用已成为不可扭转的趋势。目前市面上的电子书产品虽然大多都整合了TTS功能,但这些产品只能朗读txt格式的文件,而txt格式的电子书并不多,导致TTS的应用大打折扣。而且,每本书每次都要从第一页第一行开始朗读,用户并没有选择的权利,不可以指定任何想要的内容进行朗读,设计缺乏人性化。另一方面,语音合成技术经过多年的发展,技术日趋成熟,已经具备相当高的使用价值。但随着应用领域不断扩展,对TTS技术本身也提出了更高的要求。在一些特殊领域需要不同的发音风格,某些地方还可能需要本地方言,带有某种情感的语音合成等。就TTS目前的合成效果来说,对于一般的提示用语、新闻类等比较规范的文字合成的效果比较理想,而对其他那些蕴含着升降缓急、抑扬顿挫情感的韵律信息的文本(如诗歌),其合成效果则不尽人意。也就是说,现在的TTS系统虽然在可懂度上基本满足我们的要求,但在自然度方面却离人们的要求相差甚远,合成输出的语音带有明显的机器味道。真正能够替代人来阅读的TTS系统还没有出现,从而也制约着TTS系统在更大的范围内使用。
发明内容
本发明的目的就是为了解决现有技术之不足而提供的一种结构简单,使用方便,能扩大语音合成在电子书上的使用范围的基于语音合成技术的多功能阅读器。
本发明是采用如下技术解决方案来实现上述目的:一种基于语音合成技术的多功能阅读器,其特征在于,它包括接用户客户端的电子阅读器模块、语音合成服务器模块和内嵌有Linux系统的微处理器,电子阅读器模块与语音合成服务器模块连接,电子阅读器模块、语音合成服务器模块分别连接微处理器,电子阅读器模块包括显示屏、通讯模块、UI模块、交互模块和信号处理模块,通讯模块负责和语音合成服务器模块建立连接,发送请求和接收语音数据;UI模块负责文件的显示、窗口部件的布局;交互模块执行用户的操作;信号处理模块设置信号处理函数,实现信号处理函数;语音合成服务器模块包括初始化模块、并发服务模块、处理模块、I/O模块和语音合成模块,初始化模块将服务器进程初始化为一个守护进程,然后创建一个Unix域套接字,从配置文件中读取协议地址初始化套接字,接着设置信号处理函数完成初始化;并发服务模块是在初始化完成后,服务器开始执行死循环,在循环体内调用accept函数进入睡眠状态,客户连接请求到达后, accept函数返回,主进程每个客户调用fork派生一个子进程为客户提供服务;处理模块是完成请求数据包的解析,根据不同的请求进行相应的处理,并把处理结果封装成数据包;I/O模块是负责从客户读取数据和向客户发送数据;语音合成模块由文本分析、韵律处理和语音合成三部分组成,完成文本到语音的转换。
作为上述方案的进一步说明,所述微处理设置有USB接口并配置USB外设驱动。
所述微处理器是以Linux作为主机操作系统,并搭建一个交叉编译系统。
本发明采用上述技术解决方案所能达到的有益效果是:
1、本发明以语音合成技术为基础,开发的嵌入式电子书语音阅读器,通过TTS进行朗读,用户能得到他们想要的信息,而且能通过在Windows平台下开发出RSS阅读器,能将订阅的内容朗读出来,也可以将订阅内容进行文语转换导出到wav格式的文件保存,以备用户需要。
2、电子书语音阅读器具有体积小、重量轻、能存储所需的书籍、携带方便、低耗能、节约成本、可以循环使用等优点。
3、本发明使用嵌入式Qt图形框架和自行实现的语音合成算法,开发出软硬件一体化的便携式电子书语音阅读器,能够浏览和朗读txt、pdf和html格式的文件,支持普通话,粤语和英语,相比市场上的电子书产品,最大优势在于提供了多种格式的文件朗读和选定文本朗读功能,扩大了语音合成在电子书上的使用范围,并支持粤语的阅读。
4、本发明的一大特色是在RSS阅读器中整合了TTS功能。目前主流的RSS阅读器并没有提供TTS,但TTS是非常适合在RSS阅读器中使用的,因为RSS的内容简洁,信息量大,没有广告等干扰信息,内容也是用户需要才订阅的,所以通过TTS进行朗读,用户能听到他们真正想要的信息,同时,阅读器也提供了将订阅内容进行语音合成并导出到wav文件的人性化功能,用户可以随时随地通过播放导出文件“收听”他们订阅的信息。
附图说明
图1为本发明的总体结构示意图;
图2为电子阅读器模块示意图;
图3为语音合成服务器功能模块示意图;
图4为语音合成流程图;
图5为本发明的服务器与客户端交互示意图。
附图标记说明:1、电子阅读器模块 1-1、通讯模块 1-2、UI模块 1-3、交互模块 1-4、信号处理模块 2、语音合成服务器模块 2-1、初始化模块 2-2、并发服务模块 2-3、处理模块 2-4、I/O模块 2-5、语音合成模块 3、微处理器 4、用户客户端。
具体实施方式
如图1-图5所示,本发明一种基于语音合成技术的多功能阅读器,它包括接用户客户端4的电子阅读器模块1、语音合成服务器模块2和内嵌有Linux系统的微处理器3,电子阅读器模块1与语音合成服务器模块2连接,电子阅读器模块1、语音合成服务器模块2分别连接微处理器3,实现多种格式的文件朗读和选定文本朗读功能,语音合成服务器模块能够浏览和朗读txt、pdf和html格式的文件,语音合成服务器模块能自动合成普通话,粤语和英语。电子阅读器模块包括显示屏、通讯模块1-1、UI模块1-2、交互模块1-3和信号处理模块1-4,通讯模块负责和语音合成服务器模块建立连接,发送请求和接收语音数据;UI模块负责文件的显示、窗口部件的布局;交互模块执行用户的操作;信号处理模块设置信号处理函数,实现信号处理函数;语音合成服务器模块2包括初始化模块2-1、并发服务模块2-2、处理模块2-3、I/O模块2-4和语音合成模块2-5,初始化模块将服务器进程初始化为一个守护进程,然后创建一个Unix域套接字,从配置文件中读取协议地址初始化套接字,接着设置信号处理函数完成初始化;并发服务模块是在初始化完成后,服务器开始执行死循环,在循环体内调用accept函数进入睡眠状态,客户连接请求到达后, accept函数返回,主进程每个客户调用fork派生一个子进程为客户提供服务;处理模块是完成请求数据包的解析,根据不同的请求进行相应的处理,并把处理结果封装成数据包;I/O模块是负责从客户读取数据和向客户发送数据。本实施例中,UI模块使用多平台的C++图形用户界面应用程序框架(Qt),Qt自带的字库在嵌入式环境下中文的显示效果并不好,所以阅读器使用第三方字库来支持中文的显示。Qt支持TTF、BDF、PFA/PFB和QPF这四种格式的字库。如果在嵌入式开发板中直接使用PFA/PFB,那么应用程序会在显示的时候才计算点阵,最终的效果并不理想,出现字体大小不一致的情况。而且这种字体占用非常多的FLASH和内存,加载速度也较慢;BDF字体有着相同的问题;QPF字体速度虽然加载快,但不支持字体缩放;TTF字体不但支持字体缩放,而且加载速度较快,因此在阅读器中采用TTF格式字体。
如图3和图4所示,语音合成模块2-5由文本分析、韵律处理和语音合成三部分组成,完成文本到语音的转换。这个过程的工作主要是将输入的文本按字或词分解为音素,并且对文本中的数字、货币单位、单词变形以及标点等要特殊处理的符号进行分析,以及将音素生成数字音频然后用扬声器播放出来或者存为声音文件以后用多媒体软件播放。其中,文本分析的主要任务有:1、对输入的文本进行预处理,使得文本规范化。具体的做法如去掉一些多余的空格或者换行符,把标点符号转换成一些特殊的标记,比如说将停顿时间相同的、声调变化一致的标点符号统一转换为某种特殊标记。经过规范化处理后,就能大大地方便分词。2、分词。得到规范的文本后,将文本切成若干的字和词。分词是文本分析重要的组成部分,最简单的分词方法就是查字典。使用查字典法实现分词,其实就是把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词就找最长的词匹配,遇到不认识的字串就分割成单字词,于是简单的分词就完成了。3、将分解后的文本转换为注音符号表示形式并添加控制符。对分词得到的字和词查找其对应的音标然后拼接起来,完成由字词到音标的转换过程。
文本分析的结果作为韵律处理的输入。韵律处理主要是对声调、节奏等进行处理。如当出现连续两个第三声时,就对其进行降调,使合成语音能正确表达语意,听起来更加自然。
在最后的语音合成阶段,将韵律处理模块的输出作为语音合成模块的输入。语音合成模块对于每一个注音符号在语音库中查找对应的实例,然后将文本句子对应的所有注音符号的实例拼接起来,在拼接过程中根据控制符的语义对语音实例的音长、韵律特征和停顿时间等进行调整,最后输出一个句子的完整的拼音数据流。
使用以上方法实现语音合成,需要的计算量小、合成速度快,而且合成语音自然度较高,显然比较适合于芯片性能较弱的嵌入式系统方面的应用。要实现语音合成,还需要完成几项准备工作:1、创建常用汉字Unicode码到音标的映射表;2、创建常用词组Unicode码到音标的映射表;3、创建中文声音库。声音库记录了普通话和粤语中全部音标的发音,由字和词为单位的wav格式文件组成。
用户客户端与服务器通讯采用的是Unix域协议。与客户和服务器在同一个主机上的TCP相比,Unix域字节流套接口的优势体现在性能的增长上。
所述电子阅读器模块采用QML实现用户界面,在QML嵌入JavaScript代码实现页面逻辑,语音合成通过Microsoft Speech SDK 5.1提供的语音接口实现。Microsoft Speech SDK提供关于语音处理的一套应用程序编程接口SAPI,SAPI提供了实现TTS程序的基本函数,为一个应用程序和语音引擎之间提供一个高级别的接口。SAPI 实现了所有必需的对各种语音引擎的实时的控制和管理等低级别的细节。应用程序能通过IspVoice的对象组建模型(COM)接口控制文本语音转换。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。