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 wav
Datei möchten , sehen Sie sich das erste Beispiel und eine mp3
Konvertierung das zweite an.
1) Geben Sie espeak
Ihre Textdatei mit der -f
Option ein, verwenden Sie dann die --stdout
Option und leiten Sie den Datenstrom in die Datei um, um eine gültige wav
Datei zu erstellen , die in jedem Audio-Player korrekt wiedergegeben wird.
espeak -f mytext --stdout > myaudio
Ergebnis mit dem file
Befehl ( 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 audacity
und 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 --stdout
Option 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.