`
modabobo
  • 浏览: 508368 次
文章分类
社区版块
存档分类
最新评论

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



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics