Создать mp3-файл из espeak
Я хотел бы преобразовать текстовый файл в mp3-файл, используя espeak. Можно ли сделать это? Я пытаюсь использовать espeak для создания сценария оболочки синтеза песен, который может конвертировать текст в песню.
4 ответа
Есть два способа сделать это; если вы просто хотите 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
(версия git), но вы можете использовать любую программу и просто изменить параметры:
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
У espeak теперь есть опция -w, которая выводит в wav
(Это все еще должно было бы быть преобразовано в mp3 позже.)
espeak -f foo.txt -w foo.wav
--stdout
опция espeak скажет ему записать аудиоданные на стандартный вывод вместо того, чтобы пропустить их через аудиоустройство. Оттуда вы можете передать его, например, в ffmpeg для преобразования в нужный формат.