说说我的想法:
先把每个字(至少常用字吧)的读声分别保存成音频文件,在用一个Map把字跟读音音频文件的映射保存起来(怕内存不够也可以保存到数据库),在朗读文字时根据文字查找到对应的音频,再播放出来,不过遇到多音字有点麻烦

解决方案 »

  1.   

    原理很简单,你有从汉字字符到语音的映射也就是对应关系就行。但是复杂的是,你要如何得到这个映射呢?很不好弄吧,java是没有这样的原始api的。另外多音字问题也是一个不容易解决的问题。不过,如果是windows xp系统装有语音支持的话,可以靠JNI调用windows相关函数来实现,推荐看看windows体系编程的书籍,会有相关的介绍
      

  2.   

    Windows的话,装TTS,再装个真人语音,用JNI调用TTS的dll,以前用Qt写也是这么做的。
      

  3.   

    谢谢各位,搞定了,在Linux系统上安装了 ekho 后在java里面发送命令可以。
      

  4.   

    下载EKHO 在Linux下进行安装http://e-guidedog.sourceforge.net/ekho_cn.php
    有提示怎么用