私は、TTSに大きく依存する視力の低い人々のためのアプリを持っています。しかし、何らかの理由でspeakメソッドを使用すると、TTSは文の最初の数文字をスキップしたり、最初の少数の文字をver低い音量で、残りは通常の音量で話します。TTSは文章の最初の文字を無作為にスキップします
なぜこのようなことが起こるのでしょうか?
これは私の現在のコードです:
public class SpeechHelper implements TextToSpeech.OnInitListener {
private Context context = null;
private TextToSpeech tts;
public SpeechHelper(Context context)
{
this.context = context;
try {
tts = new TextToSpeech(context, this);
} catch(Exception e) {
Log.e("Phone Features Exception","Couldn't initiate TTS", e);
}
}
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
tts.setLanguage(Locale.getDefault());
}
}
public void speak(String s, int mode, String messageID) {
Log.d("VOLUME", "getStreamVolume " + am.getStreamVolume(AudioManager.STREAM_MUSIC)); // Always 15
Log.d("VOLUME", "isMusicActive " + (am.isMusicActive() ? "true" : "false")); // Always false
Log.d("VOLUME", "isVolumeFixed " + (am.isVolumeFixed() ? "true" : "false")); // Always false
Log.d("VOLUME", "isSpeakerphoneOn: " + (am.isSpeakerphoneOn() ? "true" : "false")); // Always false
Log.d("VOLUME", "getMode: " + am.getMode()); // Always 0
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, messageID);
tts.speak(s, mode, params);
}
}
私はこの問題は、常に電話をかけるか、アプリへの電話のロックを解除するとき後に、次の5秒に起こる気づきました。
あなたはどのエンジンをテストしていますか? – ozbek
私はこれがいつも電話をした後に起こることに気付きました。すべての手がかりは?どのエンジンがどういう意味ですか? – lisovaccaro
@ozbek com.google.android.ttsを使用しています – lisovaccaro