Je voudrais convertir un fichier texte en fichier MP3 en utilisant espeak. Est-il possible de faire cela? J'essaie d'utiliser Espeak pour créer un script Shell de synthèse de chanson capable de convertir du texte en chanson.
Il y a deux façons de faire cela. si vous voulez juste un fichier wav
, voyez le premier exemple, et pour une conversion mp3
, voyez le second.
1) Chargez espeak
votre fichier texte à l’aide de l’option -f
, puis utilisez l’option --stdout
et redirigez son flux de données vers un fichier afin de créer un fichier wav
valide qui sera lu correctement dans n'importe quel lecteur audio.
espeak -f mytext --stdout > myaudio
Résultat vérifié avec la commande file
(file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) Si vous voulez une conversion mp3, vous devrez utiliser un programme pour convertir votre fichier (ou tout simplement l'enregistrer dans audacity
et l'exporter au format mp3). J'ai utilisé ffmpeg
(la version git), mais vous pouvez utiliser n'importe quel programme et simplement changer les options:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
Résultat vérifié avec 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
En fait, j’ai écrit un scénario pour y parvenir ... et cela a fini par bien fonctionner.
https://github.com/divVerent/ecantorix
Exemple: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
L'option --stdout
à spécifier lui indiquera d'écrire les données audio sur la sortie standard au lieu de les transférer via le périphérique audio. À partir de là, vous pouvez y accéder, par exemple. ffmpeg pour la conversion au format approprié.
espeak a maintenant une option -w qui permet d'afficher wav
(Il faudrait quand même le convertir en mp3 après.)
espeak -f foo.txt -w foo.wav