1
TextToSpeechに問題があります。実際に私が「息子」という機能を呼び出すと(私が例えばクリックすると)、最初のクリックが音声で聞こえるように4秒間待たなければならないが、最初のクリック後は即座に声が聞こえる。TextToSpeechが話す前に数秒待たなければならない
しかし、時には最初のクリックから完全に機能します。それが動作するかどうAndroidのモニターでは、私が見ることができます:
I/TextToSpeech: Sucessfully bound to com.google.android.tts
I/TextToSpeech: Connected to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
I/TextToSpeech: Set up connection to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
は、だから私はそれは、Androidに依存していることを前提としたが、私はそれを修正するために何かをすることを願って...あなたは、任意のアイデアを持っていますか? さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。
ありがとう!
マイコード:
public void Son(final String texte_son){
t1=new TextToSpeech(this, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.FRENCH);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
ttsGreater21(texte_son);
} else {
ttsUnder20(texte_son);
}
}
}
});
}
@SuppressWarnings("deprecation")
private void ttsUnder20(String text) {
HashMap<String, String> map = new HashMap<>();
map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "MessageId");
t1.speak(text, TextToSpeech.QUEUE_FLUSH, map);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void ttsGreater21(String text) {
String utteranceId=this.hashCode() + "";
t1.speak(text, TextToSpeech.QUEUE_FLUSH, null, utteranceId);
}
Indedを合成する必要があるたびに作成していない、それが役に立ちませんでした毎回TextToSpeechを作成します。ありがとうございました ! しかし、私はまだ最初の話を待つことについて私の問題を抱えています。あなたはそれを修正する方法を知っていますか? – ValentinLoricourt
私はこのコードとの違いを見ることができます。私が最初のクリックをする前に十分長い間(約6秒間ですので)長く待つと、すぐに声が出てきます。私の前のコードでは、待つことは役に立たない。私はそれが助けることができるかどうかわかりません... – ValentinLoricourt
サービスを開始するには時間がかかり、ttsが初期化されていない間はボタンを非アクティブにして、ユーザに進捗状況を表示します。 –