テキスト音声放送

1981 ワード

音声を飛ばさない理由は、オフライン音声が少し高いからです.次の方法が優雅ではなく、いくつかの固定された音声を再生すると、システムを使用してオーディオファイルを再生する方法が使用できます.
もしシステムの中でただ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; } } }