Я хотел бы преобразовать текстовый файл в mp3-файл, используя espeak. Можно ли это сделать? Я пытаюсь использовать espeak для создания сценария оболочки синтеза песен, который может преобразовывать текст в песню.
Я хотел бы преобразовать текстовый файл в mp3-файл, используя espeak. Можно ли это сделать? Я пытаюсь использовать espeak для создания сценария оболочки синтеза песен, который может преобразовывать текст в песню.
Ответы:
Есть два способа сделать это; если вы просто хотите 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
--stdout
Вариант озвучки будет сказать ему , чтобы записать аудио данные на стандартный вывод вместо того , чтобы его через звуковое устройство. Оттуда вы можете передать его, например, в ffmpeg для преобразования в нужный формат.