2012-03-15 10 views
8

He buscado en casi todas partes tratando de encontrar una manera de guardar mi salida android tts en un archivo de audio. Miré a estos mensajes:¿Cómo puedo guardar mi resultado de android tts en un archivo wav?

pero no pudo encontrar/entender las respuestas. Estoy usando synthesizeToFile() así:

HashMap<String, String> myHashRender = new HashMap<String, String>(); 
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, result); 
String fileName = "/Android/data/com.android.voicelanglearning.vll/ttsfile1.wav"; 
tts.synthesizeToFile(result, myHashRender, fileName); 

así que estoy de volver a colocar la misma pregunta. Cualquier ayuda es muy apreciada.

Gracias, mounika

Respuesta

4

El método importante es synthesizeToFile. Escribirá el audio en un archivo en el dispositivo que especifique. A continuación, puede reproducir ese archivo con un MediaPlayer o puede llevarlo a cabo el dispositivo en su sistema de desarrollo con la herramienta adb de línea de comandos con el comando

adb pull <path-to-file> 
+1

Gracias por la respuesta. Pero no puedo encontrar el archivo después de ejecutar synthesizeToFile(). Obtengo el resultado como SUCCESS pero no puedo ver el archivo en el directorio que supuestamente guarda. – mnc

+0

@MounikaNamburu - Creo que el problema es el nombre de archivo que está utilizando. Debe escribir en una carpeta donde su aplicación tenga permiso de escritura. Intente utilizar la carpeta devuelta por 'getExternalFilesDir()' de su actividad o bien 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC)'. También necesita el permiso WRITE_EXTERNAL_STORAGE declarado en el manifiesto. –

-2

TextToSpeech.synthesizeToFile() no funciona en dispositivos reales. Solo funciona en AVD.

He estado experimentando con esto, también, utilizando tanto el motor original de Pico TTS y un motor TTS tercero, tratando de escribir ya sea a la sdcard o la memoria interna (en un dispositivo arraigado):

context.getDir("soundfiles", Context.MODE_WORLD_WRITEABLE); 

Pero, como ha notado, el método devuelve TextToSpeech.SUCCESS sin realmente crear el archivo.

Si debe grabar su salida TTS en un archivo WAV, conecte la salida del auricular a la entrada auxiliar en una tarjeta de sonido en su PC y utilice cualquier software de grabación para capturar eso.

+1

TextToSpeech.synthesizeToFile() está trabajando en mi dispositivo (Nexus 4 ejecuta SO 4.2.2). Está sintetizando el texto especificado en un archivo .wav en el directorio/sdcard/Android/data/ de mi aplicación. – gregS

0

Es posible que no funcione en dispositivos reales. El problema podría ser que está probando un dispositivo real con el cable USB conectado a la computadora en modo de depuración. Esto podría estar deshabilitando guardar archivos en el teléfono.

Environment.getExternalStorageDirectory()

Volver al directorio primario de almacenamiento externo. Es posible que este directorio no esté actualmente accesible si el usuario lo ha montado en su computadora, si se lo ha eliminado del dispositivo o si se ha producido algún otro problema. Puede determinar su estado actual con getExternalStorageState().

Cuestiones relacionadas