Создать 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 для преобразования в нужный формат.

Другие вопросы по тегам