Me gustaría convertir un archivo de texto a un archivo mp3 usando espeak. ¿Es posible hacer esto? Estoy tratando de usar espeak para crear un script de shell de síntesis de canción que pueda convertir texto en una canción.
Me gustaría convertir un archivo de texto a un archivo mp3 usando espeak. ¿Es posible hacer esto? Estoy tratando de usar espeak para crear un script de shell de síntesis de canción que pueda convertir texto en una canción.
Respuestas:
Hay dos formas de hacer esto; si solo quiere un wav
archivo, vea el primer ejemplo, y para una mp3
conversión vea el segundo.
1) Alimente espeak
su archivo de texto usando la -f
opción, luego use la --stdout
opción y redirija su flujo de datos a un archivo para crear un wav
archivo válido que se reproduzca correctamente en cualquier reproductor de audio.
espeak -f mytext --stdout > myaudio
Resultado verificado con el file
comando ( file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) Si desea una conversión de mp3, deberá usar un programa para convertir su archivo (o simplemente guardarlo audacity
y exportarlo como mp3). He usado ffmpeg
(la versión git), pero puedes usar cualquier programa y simplemente cambiar las opciones:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
Resultado verificado con 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
De hecho, escribí un guión para lograr esto ... y terminó funcionando bastante bien.
https://github.com/divVerent/ecantorix
Ejemplo: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
La --stdout
opción de espeak le indicará que escriba los datos de audio en stdout en lugar de pasarlos por el dispositivo de audio. Desde allí puede canalizarlo, por ejemplo, a ffmpeg para convertirlo al formato adecuado.