Gerar arquivo mp3 de espeak

7

Eu gostaria de converter um arquivo de texto em um arquivo mp3 usando o espeak. É possível fazer isso? Estou tentando usar o espeak para criar um script de shell de síntese de música que possa converter texto em uma música.

    
por Anderson Green 21.08.2012 / 23:42

4 respostas

11

Existem duas maneiras de fazer isso; Se você quiser apenas um arquivo wav , consulte o primeiro exemplo e, para uma conversão mp3 , consulte o segundo.

1) Alimente espeak do seu arquivo de texto usando a opção -f , use a opção --stdout e redirecione seu fluxo de dados para o arquivo para criar um arquivo wav válido que seja reproduzido corretamente em qualquer reprodutor de áudio.

espeak -f mytext --stdout > myaudio

Resultado verificado com o comando file ( file myaudio ):

myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz

2) Se você quiser uma conversão de mp3 você terá que usar um programa para converter seu arquivo (ou simplesmente salvá-lo em audacity e exportá-lo como mp3). Eu usei ffmpeg (a versão do git), mas você pode usar qualquer programa e apenas alterar as opções:

espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3

Resultado verificado com 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
    
por user76204 22.08.2012 / 01:40
5

Eu realmente escrevi um roteiro para conseguir isso ... e acabou funcionando muito bem.

link

Exemplo: link

    
por Rudolf Polzer 22.10.2012 / 12:09
2

A opção --stdout para o espeak informará para gravar os dados de áudio para stdout em vez de colocá-los no dispositivo de áudio. De lá você pode canalizá-lo para dentro ffmpeg para conversão para o formato adequado.

    
por Ignacio Vazquez-Abrams 21.08.2012 / 23:57
1

o espeak agora tem uma opção -w que é enviada para o wav
(Ainda precisaria ser convertido para mp3 depois.)

espeak -f foo.txt -w foo.wav
    
por SamGoody 24.12.2015 / 23:24