Я хотел бы преобразовать текстовый файл в mp3 файл с помощью espeak. Действительно ли возможно сделать это? Я пытаюсь использовать espeak для создания сценария оболочки синтеза песни, который может преобразовать текст в песню.
Существует два способа сделать это; если Вы просто хотите a wav
файл, посмотрите первый пример, и для mp3
преобразование видит второе.
1) Канал espeak
Ваш текстовый файл с помощью -f
опция, затем используйте --stdout
опция и перенаправление ее поток данных в файл для создания допустимого wav
файл, который играет правильно в любом аудиоплеере.
espeak -f mytext --stdout > myaudio
Результат, с которым сверяются file
команда (file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) Если Вы хотите mp3 преобразование, необходимо будет использовать программу для преобразования файла (или просто сохранить его в audacity
и экспортируйте его как mp3). Я использовал ffmpeg
(версия мерзавца), но можно использовать любую программу и просто изменить опции:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
С результатом сверяются file final.mp3
:
final.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
Я на самом деле записал сценарий, достигающий этого..., и он закончил тем, что работал вполне хорошо.
https://пример github.com/divVerent/ecantorix
: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
--stdout
опция к espeak скажет этому писать аудиоданные в stdout вместо того, чтобы провести его через аудиоустройство. Оттуда можно передать его по каналу в, например, ffmpeg для преобразования в соответствующий формат.
espeak теперь имеет-w опцию, какие выводы к wav
(Это все еще должно было бы быть преобразовано в mp3 впоследствии.)
espeak -f foo.txt -w foo.wav