テキスト音声放送
1981 ワード
音声を飛ばさない理由は、オフライン音声が少し高いからです.次の方法が優雅ではなく、いくつかの固定された音声を再生すると、システムを使用してオーディオファイルを再生する方法が使用できます.
もしシステムの中でただ1つの音声エンジンpico TTsがあればそれでは中国語のを支持しないことを表して、1つのメッセージをダウンロードして覚えてインストールしてシステムTTSの出力エンジンを変更して使うことができます
もしシステムの中でただ1つの音声エンジンpico TTsがあればそれでは中国語のを支持しないことを表して、1つのメッセージをダウンロードして覚えてインストールしてシステムTTSの出力エンジンを変更して使うことができます
/**
* :
* :
* :2018/5/10 09:39
*/
public class SpeechUtils {
private static SpeechUtils singleton;
private TextToSpeech textToSpeech; // TTS
public static SpeechUtils getInstance() {
if (singleton == null) {
synchronized (SpeechUtils.class) {
if (singleton == null) {
singleton = new SpeechUtils();
}
}
}
return singleton;
}
public SpeechUtils() {
textToSpeech = new TextToSpeech(MyApplication.getContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int i) {
if (i == TextToSpeech.SUCCESS) {
int result = textToSpeech.setLanguage(Locale.CHINESE);
if (result != TextToSpeech.LANG_AVAILABLE && result != TextToSpeech.LANG_COUNTRY_AVAILABLE) {
CommonUtil.debug("123===", " ");
}
textToSpeech.setPitch(1.0f);// , ( ), ,1.0
textToSpeech.setSpeechRate(1.0f);
}
}
});
}
public void speakText(String text) {
if (textToSpeech != null) {
/*
TextToSpeech.QUEUE_FLUSH: ,
TextToSpeech.QUEUE_ADD: ,
*/
textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
}
public void shutDown(){
if (textToSpeech != null) {
textToSpeech.stop();
textToSpeech.shutdown();
textToSpeech = null;
}
}
}