Por un lado, existen las librería SAPI de Microsoft, pero no tengo claro que me vayan a servir, ya que son "demasiado modernas" para el entorno que estoy usando.
He encontrado también Flite, que es una implementación ligera de un conocido programa de sintésis de voz llamado Festival. Hay disponible una versión precompilada para PocketPC y la he instalado en el mío para probarla. Es un ejecutable que al lanzarlo muestra una ventana donde se puede escribir un texto, y a continuación la PDA lo "habla" por el altavoz, hablando eso sí muy robóticamente y con la fonética del inglés norteamericano.
El programa puede ejecutarse pasándole como parámetros de la línea de comandos la frase que se desea decir. Podría hacer una prueba quick-and-dirty ejecutando desde el programa del avatar el Flite con las frases que quiero oir, aunque solo funcionará en una PDA "de verdad", porque para que funcionara en el emulador el programa tendría que estar compilado para x86 en lugar de para ARM
Algo tan aparentemente sencillo como ejecutar un programa (el Flite) desde otro programa (el del avatar) se ha convertido en una tarea imposible. En las ayudas del Embedded Visual C no he encontrado cómo hacerlo. Las funciones de C que se usan habitualmente para esa tarea, como
exec(...), execve(...) o incluso popen(...) o system(...) no están disponibles en este entorno.Lo malo es que no he encontrado ninguna forma de hacerlo, ninguna, ni bonita ni fea, y he estado toda una tarde con ese "detalle". De paso me he enterado que el emulador que viene con el Visual Studio 2005 sí que es un emulador real de ARM, y se le pueden instalar binarios que funcionarán, como (quizás) el Flite. Lástima que tuviera que abandonarlo porque no funcionaba la librería Vincent Mobile.

No hay comentarios:
Publicar un comentario