Je voudrais convertir un fichier texte en un 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 qui peut convertir du texte en chanson.
Je voudrais convertir un fichier texte en un 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 qui peut convertir du texte en chanson.
Réponses:
Il y a deux façons de procéder; si vous voulez juste un wav
fichier, voyez le premier exemple, et pour une mp3
conversion voyez le second.
1) Alimentez espeak
votre fichier texte en utilisant l' -f
option, puis utilisez l' --stdout
option et redirigez son flux de données vers un fichier pour créer un wav
fichier valide qui se lit correctement dans n'importe quel lecteur audio.
espeak -f mytext --stdout > myaudio
Résultat vérifié avec la file
commande ( 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 simplement l'enregistrer audacity
et l'exporter en 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 script pour y parvenir ... et cela a très bien fonctionné.
https://github.com/divVerent/ecantorix
Exemple: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
L' --stdout
option d'espeak lui dira d'écrire les données audio sur stdout au lieu de les mettre à travers le périphérique audio. De là, vous pouvez le diriger par exemple dans ffmpeg pour la conversion au format approprié.