当前位置: 代码迷 >> Android >> Android汉语言TTS语音合成
  详细解决方案

Android汉语言TTS语音合成

热度:33   发布时间:2016-04-28 06:09:35.0
Android中文TTS语音合成

Android系统提供了5中语言的语音合成German,English,Spanish,French,Italian支持,其中不包括对中文的支持,但是Android系统允许第三方提供中文的TTS支持,因此我们只需要安装一款合适的第三方TTS应用,在系统中设置一下即可。

提供TTS的工具也有好几个,其实我们不必纠结选哪个,目前最好用的是”讯飞语音+“,语音流畅度很好,可选语速,而且该软件还在不断更新中。对于有些Android 4.0后的系统在设置中可能检查不到讯飞的TTS选项,只需要安装最新版的讯飞语音+即可。


之后只需调用系统提供的TextToSpeech类并实现相应的接口即可。

这里做了一个简单的语音合成控制类,只要创建一个对象,就可以直接将文本进行语音合成播放了。


代码如下:

package cn.com.bfyb;import java.util.Locale;import android.content.Context;import android.speech.tts.TextToSpeech;import android.widget.Toast;public class TextSpeaker {	private Context context;	private TextToSpeech tts;		public TextSpeaker(final Context context) {		// TODO Auto-generated constructor stub		this.context = context;		tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() {			@Override			public void onInit(int status) {				// TODO Auto-generated method stub				if (status == TextToSpeech.SUCCESS)				{					int result = tts.setLanguage(Locale.CHINA);					if (result == TextToSpeech.LANG_MISSING_DATA							|| result == TextToSpeech.LANG_NOT_SUPPORTED)					{						Toast.makeText(context, "Language is not available.",								Toast.LENGTH_SHORT).show();					}				}			}		});	}		public void speak(String text) {		tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);	}}

代码下载地址:http://pan.baidu.com/s/1gdtErQF

讯飞语音+官网下载:http://open.voicecloud.cn/speechservice



  相关解决方案