欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android中文TTS语音合成

程序员文章站 2022-04-30 09:24:58
...

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

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

Android中文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