web-dev-qa-db-fra.com

Générer un fichier mp3 à partir d'espeak

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.

10
Anderson Green

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
14
user76204

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

6
Rudolf Polzer

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é.

2

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
2
SamGoody