2012-03-15 5 views
8

Я искал почти всюду, пытаясь найти способ сохранить выход Android в аудиофайл. Я смотрел на эти посты:Как я могу сохранить вывод andtts troid в файле wav?

но не смог найти/понять ответы. Я использую synthesizeToFile() так:

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

Так я перепроведении тот же вопрос. Буду признателен за любую оказанную помощь.

Спасибо, мауника

ответ

4

Важный метод synthesizeToFile. Он будет записывать аудио в файл на указанном устройстве. Вы можете играть этот файл с MediaPlayer или вы можете вытащить устройство на вашу систему разработки с помощью инструмента adb командной строки с помощью команды

adb pull <path-to-file> 
+1

Спасибо за ответ. Но я не могу найти файл после запуска synthesizeToFile(). Я получаю вывод как SUCCESS, но я не могу видеть файл в каталоге, который он должен сохранить. – mnc

+0

@MounikaNamburu - Я думаю, что проблема заключается в имени файла, который вы используете. Вам нужно написать в папку, в которой у вашего приложения есть разрешение на запись. Попробуйте использовать папку, возвращенную функцией 'getExternalFilesDir()' вашей деятельности, или иначе 'Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_MUSIC)'. Вам также потребуется разрешение WRITE_EXTERNAL_STORAGE, объявленное в манифесте. –

-2

TextToSpeech.synthesizeToFile() не работает в реальных устройствах. Он работает только в AVD.

Я экспериментировал с этим, тоже, используя как оригинальный двигатель Pico TTS и TTS двигатель третьей стороной, пытаясь написать либо SDCard или внутренней памяти (на корневое устройство):

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

Но, как вы отметили, метод возвращает TextToSpeech.SUCCESS без фактического создания файла.

Если вы должны записать свой вывод TTS в WAV-файл, подключите выход гарнитуры к входу aux на звуковой карте на вашем ПК и используйте любое программное обеспечение для записи, чтобы зафиксировать это.

+1

TextToSpeech.synthesizeToFile() работает на моем устройстве (Nexus 4 работает под управлением ОС 4.2.2). Он синтезирует указанный текст в файле .wav в каталоге моего приложения/sdcard/Android/data/. – gregS

0

Возможно, это не работает на реальных устройствах. Проблема может заключаться в том, что вы тестируете реальное устройство с подключенным USB-кабелем к компьютеру в режиме отладки. Это может привести к отключению сохранения файлов на телефоне.

Environment.getExternalStorageDirectory()

Возврат основной внешний каталог хранения. Этот каталог в настоящее время недоступен, если он был установлен пользователем на своем компьютере, был удален с устройства или возникла какая-то другая проблема. Вы можете определить его текущее состояние с помощью getExternalStorageState().

Смежные вопросы