Ho un'app per le persone ipovedenti che fanno molto affidamento su TTS. Tuttavia, per qualche motivo, quando uso il metodo speak, TTS salta in modo casuale le prime lettere di una frase o pronuncia le prime lettere in un volume basso e il resto in un volume normale.TTS salta in modo casuale le prime lettere della frase
Qualche idea del motivo per cui ciò potrebbe accadere?
Questo è il mio codice corrente:
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);
}
}
ho notato il problema si verifica sui prossimi 5 secondi dopo aver effettuato una chiamata o quando si sblocca il telefono per l'applicazione sempre.
A quale motore stai testando? – ozbek
Ho notato che ciò accade sempre dopo aver effettuato una chiamata. Qualche indizio? cosa intendi con quale motore? – lisovaccaro
@ozbek Sto utilizzando com.google.android.tts – lisovaccaro