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