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 wavplik, zobacz pierwszy przykład, a mp3konwersję - drugi.
1) Podaj espeakplik tekstowy za pomocą -fopcji, a następnie użyj --stdoutopcji i przekieruj strumień danych do pliku, aby utworzyć prawidłowy wavplik, który będzie odtwarzany poprawnie w dowolnym odtwarzaczu audio.
espeak -f mytext --stdout > myaudio
Wynik sprawdzany za pomocą filepolecenia ( 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 audacityi 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
--stdoutOpcja 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.