I'd like to convert an text file to an mp3 file using espeak. Is it possible to do this? I'm trying to use espeak to create a song synthesis shell script that can convert text to a song.
I'd like to convert an text file to an mp3 file using espeak. Is it possible to do this? I'm trying to use espeak to create a song synthesis shell script that can convert text to a song.
There's two ways of doing this; if you just want a wav
file, see the first example, and for an mp3
conversion see the second.
1) Feed espeak
your text file using the -f
option, then use the --stdout
option and redirect its data stream to file to create a valid wav
file that plays correctly in any audio player.
espeak -f mytext --stdout > myaudio
Result checked with the file
command (file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) If you want an mp3 conversion you will have to use a program to convert your file (or simply save it in audacity
and export it as mp3). I have used ffmpeg
(the git version), but you can use any program and just change the options:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
Result checked with 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