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.
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.
Antworten:
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
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
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.