¿Cómo puedo controlar cómo Android TTS reproduce audio?

Tengo una clase que utiliza la API TTS de Android para transcribir texto a audio. Puedo controlar el tono y la velocidad; Pero me di cuenta de que el motor requiere una cadena de texto y también un objeto hash. Noté que algunas palabras se pronuncian demasiado rápido para ser fácilmente reconocidas, y la inflexión parece demasiado antinatural. ¿Hay alguna manera de controlar estas dos cosas? Posiblemente a través del HashMap ? Lo siguiente es cómo estoy usando el motor:

  mTts = new TextToSpeech(Globals.context, this); // context, listener } @Override public void onInit(int status) { HashMap<String, String> myHashRender = new HashMap(); myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, speech); mTts.setPitch(0.8f); mTts.setSpeechRate(0.6f); mTts.synthesizeToFile(speech, myHashRender, fileOutPath); while (mTts.isSpeaking()) try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } mTts.stop(); mTts.shutdown(); 

Google TTS no lo admite actualmente, pero aquí es lo que puede hacer: Durante el análisis de su texto, puede cambiar partes de él para obtener la entonación y la inflexión que desea.

Por ejemplo, si encuentras la palabra 'Hey', vuelve a escribirla antes de enviarla al motor TTS para obtener una pronunciación diferente.

No es bonito, pero es una solución.

En la actualidad, Google TTS no admite la modificación de la inflexión ni admite etiquetas de prosodia incorporadas como se definen en SSML . – alanv Jun 5 a las 20:30

En la actualidad, Google TTS no admite la modificación de la inflexión ni admite etiquetas de prosodia incorporadas como se definen en SSML . Aunque hay parámetros que puede establecer, ninguno de ellos controla la inflexión o la prosodia por palabra.

Puede haber otros motores que soportan estas características. ESpeak , por ejemplo, soporta etiquetas SSML y tiene un puerto Android disponible en Play Store.

  • Cómo cambiar la voz de un motor TTS
  • Ampliación del paquete de idiomas de texto a voz (TTS) de Android
  • ¿Por qué no se llama a UtteranceProgress Listener a Text to Speach?
  • TextToSpeech, playEarcon y archivos .wav
  • Manejo de múltiples idiomas sin demora en el TTS de Android
  • Android "speak fallado: no está vinculado al motor tts"
  • ¿Por qué UtteranceProgressListener no es una interfaz?
  • Texto a voz en android
  • ¿Cómo configurar el volumen para el método de "hablar" de texto a voz?
  • Cómo utilizar TTS (TextToSpeech) mientras que la cadena tiene más de 4000 caracteres en Android
  • Problema de STOP de texto a voz
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.