Создать mp3-файл из espeak

10

Я хотел бы преобразовать текстовый файл в mp3-файл, используя espeak. Можно ли это сделать? Я пытаюсь использовать espeak для создания сценария оболочки синтеза песен, который может преобразовывать текст в песню.

Андерсон Грин
источник
1
Я думаю, что эта страница объясняет, как генерировать mp3 файлы (по крайней мере, частично): npmjs.org/package/espeak
Андерсон Грин
А вот объяснение того, как это сделать с помощью сценария оболочки: eceppda.github.com/nerdterm/2011/11/23/ESPEAK.html
Андерсон Грин,
Кроме того, можно сделать смещение высоты тона, используя программу с резиновой лентой.
Андерсон Грин

Ответы:

15

Есть два способа сделать это; если вы просто хотите 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
mivk
источник
6

Я на самом деле написал сценарий для достижения этого ... и в итоге он работал довольно хорошо.

https://github.com/divVerent/ecantorix

Пример: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg

Рудольф Ползер
источник
1
Я не могу сказать, лучшая или самая жуткая вещь, которую я слышал сегодня. Хорошая работа.
Оли
Это не прямой ответ на вопрос, но он настолько сумасшедший, что в любом случае заслуживает одобрения!
mivk
3

В espeak теперь есть опция -w, которая выводит в wav
(потом все равно нужно будет конвертировать в mp3.)

espeak -f foo.txt -w foo.wav
SamGoody
источник
2

--stdoutВариант озвучки будет сказать ему , чтобы записать аудио данные на стандартный вывод вместо того , чтобы его через звуковое устройство. Оттуда вы можете передать его, например, в ffmpeg для преобразования в нужный формат.

Игнасио Васкес-Абрамс
источник
Можете ли вы показать какие-либо примеры этого, которые вы нашли?
Андерсон Грин
1
Я не нашел ни одного; Я просто понимаю, как работают программы.
Игнасио Васкес-Абрамс
Этот вопрос, возможно, также актуален: stackoverflow.com/questions/2762164/how-to-make-computer-sing
Андерсон Грин