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 wavfichier, voyez le premier exemple, et pour une mp3conversion voyez le second.
1) Alimentez espeakvotre fichier texte en utilisant l' -foption, puis utilisez l' --stdoutoption et redirigez son flux de données vers un fichier pour créer un wavfichier valide qui se lit correctement dans n'importe quel lecteur audio.
espeak -f mytext --stdout > myaudio
Résultat vérifié avec la filecommande ( 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 audacityet 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' --stdoutoption 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é.