Gere arquivo mp3 de espeak

10

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.

Anderson Green
fonte
1
Eu acho que esta página explica como gerar arquivos mp3 (pelo menos parcialmente): npmjs.org/package/espeak
Anderson Verde
E aqui está uma explicação de como fazer isso usando um script de shell: eceppda.github.com/nerdterm/2011/11/23/ESPEAK.html
Anderson Green
Além disso, é possível fazer a mudança de pitch usando um programa chamado rubberband.
Anderson Green

Respostas:

15

Existem duas maneiras de fazer isso; se você quiser apenas um wavarquivo, veja o primeiro exemplo e, para uma mp3conversão, veja o segundo.

1) Alimente espeakseu arquivo de texto usando a -fopção, use a --stdoutopção e redirecione seu fluxo de dados para arquivo para criar um wavarquivo válido que seja reproduzido corretamente em qualquer reprodutor de áudio.

espeak -f mytext --stdout > myaudio

Resultado verificado com o filecomando ( 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, precisará usar um programa para converter seu arquivo (ou simplesmente salvá-lo audacitye exportá-lo como mp3). Eu usei ffmpeg(a versão 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
mivk
fonte
3

O espeak agora possui uma opção -w que gera para wav
(ainda precisaria ser convertido para mp3 posteriormente).

espeak -f foo.txt -w foo.wav
SamGoody
fonte
2

A --stdoutopção de falar diz para gravar os dados de áudio no stdout, em vez de colocá-los no dispositivo de áudio. A partir daí, você pode canalizá-lo para, por exemplo, ffmpeg para conversão para o formato correto.

Ignacio Vazquez-Abrams
fonte
Você pode mostrar algum exemplo disso que encontrou?
Anderson Green
1
Eu não encontrei nenhum; Eu só entendo como os programas funcionam.
Ignacio Vazquez-Abrams
Esta questão é talvez relevante, bem como: stackoverflow.com/questions/2762164/how-to-make-computer-sing
Verde Anderson