- Mitglied seit
- 5 Dez 2005
- Beiträge
- 1,844
- Punkte für Reaktionen
- 0
- Punkte
- 36
Dieses Howto bezieht sich im Grunde auf einige gefundene Quellen im Internet und verfolgt das Ziel "schnell zu erstellen" , wer mehr wissen will muss halt suchen. Es besteht, wie immer - kein Anspruch auf Vollständigkeit!
Voraussetzung : Debian, Linux auf x86 und bei Bedarf Asterisk
Schritt 1 - Vorbereiten, MBROLA und Komponenten besorgen
Wir erzeugen ein Verzeichnis freier Wahl, ich nehme immer ganz gerne:
Wir schauen nach ob SOX installiert ist:
Wir holen das MBROLA-BINARY
und hat man die Wahl : (mehr Auswahl hier)
männliche Stimme (meine Wahl)
weibliche Stimme
Nun holen wir uns TXT2PHO (das setzt ASCii Text in phonetischen Text um)
Die Anwendung NUMFILT setzt nun noch Zahlen in ebenso phon. Text um)
Entpacken alles und löschen die Archive...
Schritt 2 - Erstellen
Text2Pho/Pipefilt/Prepoc/Numfilt vorbereiten, wir befinden uns IM Verzeichnis MBROLA unserer Wahl, als zBsp.: "cd /usr/src/mbrola"
Jetzt erstellen wir symbolische Links zum späteren arbeiten:
Schritt 3 - Die Konfiguration
Nach entfernen aller Kommentare sieht meine so aus (zu ändernde sind FETT):
Nun können wir zBsp. so eine WAV Datei erstellen :
Das ganze kann nunmehr durch ein Shell-Skript "Speak.sh" (Achtung - Pfade einstellen!) vereinfacht werden zu diesem hier :
Der Rest ist kinderleicht und mit Asterisk machbar, Danke an die drei vorherigen Authoren [1] [2] [3] aus deren Beiträgen ich diese Zusammenfassung erstellt habe.
EDIT: Einziger Wehrmutstropfen, ich kann aktuell noch nicht direkt aus Mbrola WAV Files erstellen und in Asterisk einlesen ohne SOX zwischenzuschalten, es wäre natürlich ideal wenn dieser Weg umgangen werden könnte, MBROLA setzt per default 16khz ein, wir brauchen imho 8khz.
Es geht aktuell nur mit diesem Schritt :
Obwohl mbrola einen Schalter für die Frequenz mitbringt, nur ich habe keine Manuals für 8khz gefunden?!
LG Stefan
Voraussetzung : Debian, Linux auf x86 und bei Bedarf Asterisk
Schritt 1 - Vorbereiten, MBROLA und Komponenten besorgen
Wir erzeugen ein Verzeichnis freier Wahl, ich nehme immer ganz gerne:
Code:
cd /usr/src
mkdir mbrola
Code:
apt-get install sox
und hat man die Wahl : (mehr Auswahl hier)
männliche Stimme (meine Wahl)
weibliche Stimme
Nun holen wir uns TXT2PHO (das setzt ASCii Text in phonetischen Text um)
Die Anwendung NUMFILT setzt nun noch Zahlen in ebenso phon. Text um)
Entpacken alles und löschen die Archive...
Code:
linux: unzip de2-990106.zip
linux: unzip mbr301h.zip
linux: tar -xzf numfilt-0.1.tar.gz
linux: unzip txt2pho.zip
linux: rm *.zip
linux: rm *.tar.gz
Text2Pho/Pipefilt/Prepoc/Numfilt vorbereiten, wir befinden uns IM Verzeichnis MBROLA unserer Wahl, als zBsp.: "cd /usr/src/mbrola"
Code:
chmod a+x txt2pho/txt2pho
cd txt2pho/pipefilt
g++ -o pipefilt pipefilt.cc
cd ..
cd prepoc
make clean && make
cd ../../numfilt-0.1
gcc -o numfilt numfilt.c
Code:
ln -s /usr/src/mbrola/txt2pho/txt2phorc /etc/txt2pho
cd /usr/local/bin
ln -s /usr/src/mbrola/mbrola-linux-i386 mbrola
ln -s /usr/src/mbrola/txt2pho/txt2pho txt2pho
ln -s /usr/src/mbrola/txt2pho/numfilt-0.1/numfilt numfilt
ln -s /usr/src/mbrola/txt2pho/preproc/preproc preproc
ln -s /usr/src/mbrola/txt2pho/pipefilt/pipefilt pipefilt
Code:
nano /etc/txt2pho
Code:
DATAPATH=[B]/usr/src/mbrola/txt2pho/data/[/B]
INVPATH=[B]/usr/src/mbrola/txt2pho/data/ [/B]
TEMPPATH=/tmp/
INVENTORY=[B]male[/B]
DEBUGLEVEL=0
NEWTREE=newtree
REDUCTION=1
PROMCOMP=1
SPEECHRATE=1.15
USENET=3
Code:
echo “Lies mich vor.” | txt2pho - | mbrola /usr/src/mbrola/de2/de2 - /tmp/test.wav
Code:
echo “Endlich fertig.” | speak
Alternativ :
speak < meine_datei .txt
EDIT: Einziger Wehrmutstropfen, ich kann aktuell noch nicht direkt aus Mbrola WAV Files erstellen und in Asterisk einlesen ohne SOX zwischenzuschalten, es wäre natürlich ideal wenn dieser Weg umgangen werden könnte, MBROLA setzt per default 16khz ein, wir brauchen imho 8khz.
Es geht aktuell nur mit diesem Schritt :
Code:
[FONT=monospace]sox foo-in.wav -r 8000 -c 1 -s -w foo-out.wav resample -ql [/FONT]
Obwohl mbrola einen Schalter für die Frequenz mitbringt, nur ich habe keine Manuals für 8khz gefunden?!
LG Stefan
Zuletzt bearbeitet: