Generiere eine MP3-Datei aus espeak

10

Ich möchte eine Textdatei mit espeak in eine MP3-Datei konvertieren. Ist das möglich? Ich versuche, mit espeak ein Shell-Skript für die Songsynthese zu erstellen, mit dem Text in einen Song konvertiert werden kann.

Anderson Green
quelle
1
Ich denke, diese Seite erklärt, wie man MP3-Dateien (zumindest teilweise) generiert
Anderson Green
Und hier ist eine Erklärung, wie dies mit einem Shell-Skript gemacht wird: eceppda.github.com/nerdterm/2011/11/23/ESPEAK.html
Anderson Green
Es ist auch möglich, eine Tonhöhenverschiebung mit einem Programm namens Gummiband durchzuführen.
Anderson Green

Antworten:

15

Es gibt zwei Möglichkeiten, dies zu tun. Wenn Sie nur eine wavDatei möchten , sehen Sie sich das erste Beispiel und eine mp3Konvertierung das zweite an.

1) Geben Sie espeakIhre Textdatei mit der -fOption ein, verwenden Sie dann die --stdoutOption und leiten Sie den Datenstrom in die Datei um, um eine gültige wavDatei zu erstellen , die in jedem Audio-Player korrekt wiedergegeben wird.

espeak -f mytext --stdout > myaudio

Ergebnis mit dem fileBefehl ( file myaudio) überprüft :

myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz

2) Wenn Sie eine MP3-Konvertierung wünschen, müssen Sie Ihre Datei mit einem Programm konvertieren (oder einfach speichern audacityund als MP3 exportieren). Ich habe ffmpeg(die Git-Version) verwendet, aber Sie können jedes Programm verwenden und einfach die Optionen ändern:

espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3

Ergebnis geprüft mit 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
quelle
6

Ich habe tatsächlich ein Skript geschrieben, um dies zu erreichen ... und es hat ziemlich gut funktioniert.

https://github.com/divVerent/ecantorix

Beispiel: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg

Rudolf Polzer
quelle
1
Ich kann nicht sagen, ob das das Beste oder das Gruseligste ist, was ich heute gehört habe. Gute Arbeit.
Oli
Dies ist keine direkte Antwort auf die Frage, aber es ist so verrückt, dass es trotzdem eine positive Bewertung verdient!
Mivk
3

espeak hat jetzt eine -w-Option, die in wav ausgibt
(sie müsste danach noch in mp3 konvertiert werden.)

espeak -f foo.txt -w foo.wav
SamGoody
quelle
2

Die --stdoutOption zum Sprechen weist es an, die Audiodaten in stdout zu schreiben, anstatt sie über das Audiogerät zu übertragen. Von dort aus können Sie es in z. B. ffmpeg weiterleiten, um es in das richtige Format zu konvertieren.

Ignacio Vazquez-Abrams
quelle
Können Sie Beispiele dafür zeigen, die Sie gefunden haben?
Anderson Green
1
Ich habe keine gefunden; Ich verstehe nur, wie Programme funktionieren.
Ignacio Vazquez-Abrams
Diese Frage ist vielleicht auch relevant: stackoverflow.com/questions/2762164/how-to-make-computer-sing
Anderson Green