探索一个非常不错的中文语音阅读引擎
最近看到浙江日报的站点提供了新闻朗读功能,如下
http://zjdaily.zjol.com.cn/epaper/zjrb/html/2006-03/21/content_61049.htm
在正文结束的地方,有一个“朗读”的链接。听了以后,比较震撼,这个阅读引擎是我听到过的最出色的,比Microsoft的TTS引擎要出色的多,大家用过金山词霸的都知道,金山词霸试用了Windows的TTS阅读引擎,在朗读单词、短句和中文的时候,感觉非常的僵硬。而这里朗读如果不注意听,感觉就像央视新闻联播一样,对很多语速处理非常逼真。
TTS对中文的阅读应该是采用最基本的单词合成方式,所以可以实时播放,不需要上下文的计算,所以用TTS引擎播放文字内容的时候,只要有很好的单音查找算法,应该总体效率比较稳定。
这里听到的朗读,事实上是在点击朗读后,由服务端服务程序根据Post的文字内容,动态生成声音文件,然后被Web浏览者Get回来,而且支持流媒体播放,因为如果文字内容很长的话,我用HttpLock监视过回馈的HTTP数据包,在开始播放的时候,数据还处在接受的状态。动态生成的声音文件是用时间命名的,所以同一篇文章,每次朗读,都要生成一个新的文件,服务器还会有一个定期清除旧文件的机制。
利用这个原理,我写了一个简单的模型,负责把文字Post给该服务器,并且接收生成的声音文件名,在线播放,并且下载保存到本地C:\sound.wav。
由于时间不多,就用.Net快速构建,如果有兴趣运行这个程序,请先确定安装了.Net framework1.1包括以上版本,然后再运行这个程序。


最近评论