En esta ocasión les presento un programa que sirve para leer en voz alta un texto cualquiera.
Al leer el texto el programa comprueba el lenguaje del dispositivo por lo que un texto en español leído desde un dispositivo en español lo leerá sin problemas.
En mi caso, hasta ahora utilizaba el componente AndroidTTS realizado por Jim McKeeth, muy fácil de usar y que me daba un resultado estupendo en mis apps.
Últimamente al actualizar a la última versión de Delphi, la 11.2 la cual orienta las apps compiladas hacia el sdk de versión 32, me encontré con el problema que al iniciarse las apps se quedaban con la pantalla en negro y eso era debido al componente anterior.
Para solucionarlo he encontrado en la red este programa TextToSpeech que forma parte de un conjunto de utilidades llamadas "JustAddCode" obtenidas de la página web de Grijjy
- Para todas las plataformas hay que hacer lo siguiente:
1) Añadir en el bloque uses de la unit principal
Grijjy.TextToSpeech
2) Definir una nueva variable privada (p.ej. FTextToSpeech):
public
....
private
....
FTextToSpeech: IgoTextToSpeech;
3) En el evento Oncreate añadir lo siguiente:
FTextToSpeech := TgoTextToSpeech.Create;
- Cambios que hay que hacer en las apps orientadas a Android:
En el archivo AndroidManifestTemplate.xml hay que:
1) Añadir
action android:name="android.intent.action.TTS_SERVICE
en el bloque "queries" (antes del bloque application)
Ya que en la última actualización de Android obliga a hacerlo en las apps que tengan como objetivo Android 11.
2) Añadir
android:exported="true"
en el bloque "activity"
3) Para leer un texto sólo tienen que hacer:
FTextToSpeech.Speak('este es el texto que quiero leer en voz alta')
Si quieren hacer su propia app no olviden incluir los siguientes archivos en la ruta donde se encuentre su app.
-Grijjy.TextToSpeech.Android.pas
-Grijjy.TextoToSpeech.Base.pas
-Grijjy.TextoToSpeech.IOS.pas
-Grijjy.TextoToSpeech.macOS.pas
-Grijjy.TextoToSpeech.pas
-Grijjy.TextoToSpeech.Windows.pas
Al final el resultado es el siguiente:
Aquí tienen el código fuente que incluye las modificaciones anteriores:
No hay comentarios:
Publicar un comentario