Chciałbym przekonwertować plik tekstowy na plik mp3 za pomocą espeak. Czy można to zrobić? Próbuję użyć espeak, aby utworzyć skrypt powłoki syntezy utworów, który może konwertować tekst na utwór.
Chciałbym przekonwertować plik tekstowy na plik mp3 za pomocą espeak. Czy można to zrobić? Próbuję użyć espeak, aby utworzyć skrypt powłoki syntezy utworów, który może konwertować tekst na utwór.
Odpowiedzi:
Można to zrobić na dwa sposoby; jeśli chcesz tylko wav
plik, zobacz pierwszy przykład, a mp3
konwersję - drugi.
1) Podaj espeak
plik tekstowy za pomocą -f
opcji, a następnie użyj --stdout
opcji i przekieruj strumień danych do pliku, aby utworzyć prawidłowy wav
plik, który będzie odtwarzany poprawnie w dowolnym odtwarzaczu audio.
espeak -f mytext --stdout > myaudio
Wynik sprawdzany za pomocą file
polecenia ( file myaudio
):
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2) Jeśli chcesz przekonwertować plik mp3, będziesz musiał użyć programu do konwersji pliku (lub po prostu zapisz go audacity
i wyeksportuj jako plik mp3). Użyłem ffmpeg
(wersja git), ale możesz użyć dowolnego programu i po prostu zmienić opcje:
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
Wynik sprawdzony za pomocą 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
Napisałem skrypt, który to osiągnął ... i skończyło się to całkiem dobrze.
https://github.com/divVerent/ecantorix
Przykład: https://github.com/downloads/divVerent/ecantorix/sarastro.ogg
--stdout
Opcja eSpeak pokaże go do zapisu danych audio do stdout zamiast wprowadzenie go przez urządzenie audio. Stamtąd możesz potokować go np. Do ffmpeg w celu konwersji do odpowiedniego formatu.