2012-03-15 7 views
8

Ho cercato quasi ovunque di cercare un modo per salvare il mio output di android tts in un file audio. Ho guardato questi posti:Come posso salvare il mio output di android tts in un file wav?

ma non ho trovato/capire le risposte. Sto usando synthesizeToFile() come questo:

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); 

Così sto reinserire la stessa domanda. Ogni aiuto è molto apprezzato.

Grazie, mounika

risposta

4

Il metodo importante è synthesizeToFile. Scriverà l'audio in un file sul dispositivo specificato. È quindi possibile riprodurre il file con un MediaPlayer oppure si può tirare fuori il dispositivo sul vostro sistema di sviluppo con lo strumento adb da riga di comando utilizzando il comando

adb pull <path-to-file> 
+1

Grazie per la risposta. Ma non riesco a trovare il file dopo aver eseguito synthesizeToFile(). Ottengo l'output come SUCCESS ma non riesco a vedere il file nella directory che si suppone di salvare. – mnc

+0

@MounikaNamburu - Penso che il problema sia il nome del file che stai usando. Devi scrivere in una cartella in cui la tua app ha i permessi di scrittura. Prova a utilizzare la cartella restituita da 'getExternalFilesDir()' oppure 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC)'. È inoltre necessario il permesso WRITE_EXTERNAL_STORAGE dichiarato nel manifest. –

-2

TextToSpeech.synthesizeToFile() non funziona in dispositivi reali. Funziona solo su AVD.

ho avuto modo di sperimentare con questo, anche, utilizzando sia il motore originale Pico TTS e un motore TTS di terze parti, cercando di scrivere sia al sdcard o la memoria interna (su un dispositivo radicata):

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

Ma, come hai notato, il metodo restituisce TextToSpeech.SUCCESS senza effettivamente creare il file.

Se è necessario registrare l'uscita TTS in un file WAV, collegare l'uscita dell'auricolare all'ingresso Aux in una scheda audio del PC e utilizzare qualsiasi software di registrazione per acquisirlo.

+1

TextToSpeech.synthesizeToFile() funziona sul mio dispositivo (Nexus 4 con OS 4.2.2). Sintetizza il testo specificato in un file .wav nella directory/sdcard/Android/data/ della mia applicazione. – gregS

0

Potrebbe non essere che non funzioni su dispositivi reali. Il problema potrebbe essere che si sta testando un dispositivo reale con il cavo USB collegato al computer in modalità di debug. Potrebbe non essere possibile salvare i file sul telefono.

Environment.getExternalStorageDirectory()

restituire la directory di memorizzazione esterna primaria. Questa directory potrebbe non essere attualmente accessibile se è stata montata dall'utente sul proprio computer, è stata rimossa dal dispositivo o si è verificato un altro problema. È possibile determinare il suo stato corrente con getExternalStorageState().

Problemi correlati