Mbrola oder hier spricht mein Computer



MBrola : Text-Stimmen-Syntese

Installationanleitung Mbrola, 03.12.02 Jörn Eisenkrätzer


Quelle:

http://tcts.fpms.ac.be/synthesis/mbrola


1. Benötigte Dateien:


mbrola: Stimmen-Syntesizer (z.Zt. Version 3.01)

txt2pho: Tool, zum Wandeln von Text-Dateien zu pho-Dateien,

versorgt den Syntesizer mit phonetische Informationen.

de[n]: spezif. Sprachdatei z.B de3-000307 oder de5 (etwas besser in Qualität)


Vorbedingung: Installation eines wav-Dateien-Abspielers, z.B. 'play'



2. Installation


Lege mbrola-Verzeichnis an, (/usr/local/mbrola) und entpacke die

mbrola-, Sprach- und text2pho-Datei dort:


$ su

Password:

# mkdir /usr/local/mbrola

# unzip -d /usr/local/mbrola/ mbr301h.zip

Archive: mbr301h.zip

inflating: .....


# unzip -d /usr/local/mbrola/ de3-000307.zip

Archive: de3-000307.zip

creating: .....

inflating: .....


# unzip -d /usr/local/mbrola/ txt2pho.zip

Archive: txt2pho.zip

inflating: .....

extracting: ....

inflating: .....




3. Nacharbeit



Die Stimmendatei muss von txt2pho/data-Verzeichnis ansprechbar sein,

deshalb Verlinken:


# ln -s /usr/local/mbrola/de3/de3 /usr/local/mbrola/txt2pho/data/de3


Ein paar weitere Links, damit diese Dateien vom Standart-Pfad ansprechbar sind:


# ln -s /usr/local/mbrola/mbrola-linux-i386 /usr/bin/mbrola

# ln -s /usr/local/mbrola/txt2pho/txt2pho /usr/bin/txt2pho

# ln -s /usr/local/mbrola/txt2pho/pipefilt /usr/bin/pipefilt


# exit

$


Kopieren der txt2phorc in als Konfigurationsdatei in's Home-Verzeichnis, sowie

Öffnen der Datei in einem Editor und Konfigurieren folgender Angaben:


$ cp /usr/local/mbrola/txt2pho/txt2phorc $HOME/.txt2phorc


DATAPFATH=/usr/local/mbrola/txt2pho/data/data

INVPATH=/usr/local/mbrola/txt2pho/data/

INVENTORY=female



4. Test


Test 1: Umwandlung einer vorhandenen Beispiel-pho-Datei in eine wav-Datei nach Syntax :


mbrola de-Stimmdatei pho-Datei.pho Ausgabedatei.wav


$ mbrola /usr/local/mbrola/txt2pho/data/de3 /usr/local/mbrola/de3/TEST/wetter.pho wetter.wav

$/var/home/joern$ play wetter.wav

playing wetter.wav


Optionen: mbrola -f 1.2 -t 1.1 /usr..(usw.) => höhere Stimme, geringere Sprechgeschwindigkeit



Test 2. Final


  1. Einen beliebigen Text im Editoe erstellen und abspeichern, z.B. hallo.txt .

  2. Text in eine pho-Datei wandeln: txt2pho -i hallo.txt -o hallo.pho

  3. pho-Datei in wav-Datei wandeln: mbrola /usr/local/mbrola/txt2pho/data/de3 hallo.pho hallo.wav

  4. Abspielen: play hallo.wav



5. optionale Scripte



5.1 Einfache Textdatei-Wiedergabe


------------- schnipp ----------------------

#!/bin/bash

# txt2sound

#

txt2pho -i $1 -o textsend.pho

mbrola -f 0.8 -t 1.1 /usr/local/mbrola/txt2pho/data/de5 textsend.pho textsend.wav

play textsend.wav


rm textsend.pho

rm textsend.pho

------------- schnapp ----------------------


- > Abspeichern unter txt2sound

- > Datei Ausführbar machen chmod u+x txt2sound


Ausführen Version 1, Eingabe in Konsole:


./txt2sound datei.txt


Ausführen Version 2, Aufruf über Konqueror:


  1. txt2sound als root nach /usr/bin kopieren

  2. Mit rechter Maustaste im Konqueror auf Textdatei klicken

  3. wähle im Kontexmenue 'Öffnen mit' – 'sonstiges', es öffnet sich eine Maske

  4. trage in der Maske unter 'Öffnen mit' txt2sound ein und aktiviere im 'Im Terminal ausführen', sowie 'Programm diesem Dateityp fest zuordnen', damit txt2sound im Kontexmenue eingetragen wird.

  5. Eine mit der Maus selektierte Textdatei wird jetzt durch mit einem Klick auf ihr mit der rechten Maustaste und durch Auswahl von 'Öffnen mit' – 'txt2sound' vom Computer vorgelesen.



Script modifiziert zum Lesen von HTML-Dateien:


------------- schnipp ----------------------

#!/bin/bash

#

/usr/bin/html2text $1 1>/tmp/temptext.txt

txt2pho -i /tmp/temptext.txt -o /tmp/textsend.pho

mbrola -f 0.8 -t 1.1 /usr/local/mbrola/txt2pho/data/de5 /tmp/textsend.pho /tmp/textsend.wav

play /tmp/textsend.wav

rm /tmp/textsend.pho

rm /tmp/textsend.wav

rm /tmp/temptext.txt

------------- schnapp ----------------------




5.2 Textdatei-Wiedergabe über Eingabedialog


------------- schnipp ----------------------

#!/bin/bash

# txt2laut

#

echo " "

echo "Bitte Namen der Text-Datei eingeben. "

echo " "

read DATEINAMEN

echo " "

test -f $DATEINAMEN; ZUSTAND=$?


if test $ZUSTAND -gt 0

then

echo "Datei nicht gefunden"

sleep 3

exit

else

echo "Lese Datei ... "

fi


echo " "

txt2pho -i $DATEINAMEN -o /tmp/textsend.pho

mbrola /usr/local/mbrola/txt2pho/data/de3 /tmp/textsend.pho /tmp/textsend.wav

play /tmp/textsend.wav


rm /tmp/textsend.pho rm/tmp/textsend.wav

------------- schnapp ----------------------




5.3 Die Textwiedergabe der Konsoleneingabe


------------- schnipp ----------------------

#!/bin/bash

# tipp2laut

#

echo "Gebe text ein :"

echo ""

read TEXT

echo $TEXT > /tmp/tipptemp.txt

txt2pho -i /tmp/tipptemp.txt -o /tmp/tippsend.pho

mbrola /usr/local/mbrola/txt2pho/data/de3 /tmp/tippsend.pho /tmp/tippsend.wav

play /tmp/tippsend.wav

rm /tmp/tipptemp.txt

rm /tmp/tippsend.pho

rm /tmp/tippsend.wav

------------- schnapp ----------------------



5.4 Die Zeitansage


------------- schnipp ----------------------

#!/bin/bash

# tipp2laut

#

set `date`

uhrzeit=`echo $4|cut -d: -f1,2` # Hochkomma aus der Zahlenreihe

stunde=`echo $4|cut -d: -f1`

minute=`echo $4|cut -d: -f2`


echo " Es ist $stunde Uhr und $minute Minuten " > /tmp/tempzeit.txt

txt2pho -i /tmp/tempzeit.txt -o /tmp/zeitsend.pho

mbrola /usr/local/mbrola/txt2pho/data/de3 /tmp/zeitsend.pho /tmp/zeitsend.wav

play /tmp/zeitsend.wav

rm /tmp/tempzeit.txt

rm /tmp/zeitsend.pho

rm /tmp/zeitsend.wav

------------- schnapp ----------------------




- have o lot of fun -



Weitere Literatur: LinuxUser 04/2002, Seite 25