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

10

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.

Anderson Green
la source
1
Je pense que cette page explique comment générer des fichiers mp3 (au moins partiellement): npmjs.org/package/espeak
Anderson Green
Et voici une explication de la façon de procéder à l'aide d'un script shell: eceppda.github.com/nerdterm/2011/11/23/ESPEAK.html
Anderson Green
De plus, il est possible de faire un pitch shifting en utilisant un programme appelé rubberband.
Anderson Green

Réponses:

15

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
mivk
la source
6

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

Rudolf Polzer
la source
1
Je ne peux pas dire si c'est la meilleure chose ou la chose la plus effrayante que j'ai entendue aujourd'hui. Bon travail.
Oli
Ce n'est pas une réponse directe à la question, mais elle est tellement folle qu'elle mérite quand même un vote positif!
mivk
3

espeak a maintenant une option -w qui sort en wav
(il devra encore être converti en mp3 par la suite.)

espeak -f foo.txt -w foo.wav
SamGoody
la source
2

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

Ignacio Vazquez-Abrams
la source
Pouvez-vous montrer des exemples de ce que vous avez trouvé?
Anderson Green
1
Je n'en ai pas trouvé; Je comprends simplement comment fonctionnent les programmes.
Ignacio Vazquez-Abrams
Cette question est peut-être également pertinente: stackoverflow.com/questions/2762164/how-to-make-computer-sing
Anderson Green