Installation von Mbrola für deutsche Sprachausgabe unter Linux

Mbrola alleine bringt uns nicht viel. Deshalb installieren wir auch noch ein paar andere Programme:

Die Installation erfolgt nach /usr/local. Hier gehts los:

cd /tmp
mkdir mbrola
cd mbrola
wget http://tcts.fpms.ac.be/synthesis/mbrola/bin/pclinux/mbr301h.zip
wget http://tcts.fpms.ac.be/synthesis/mbrola/dba/de3/de3-000307.zip
wget http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/txt2pho.zip
mkdir -p /usr/local/bin
mkdir -p /usr/local/mbrola/data
mkdir -p /usr/local/mbrola/txt2pho
mkdir -p /usr/local/mbrola/preproc

Nun folgt das eigentliche Mbrola binary und die Daten für die deutsche Stimme:

unzip mbr301h.zip
cp mbrola-linux-i386 /usr/local/bin/mbrola
unzip de3-000307.zip
mv de3/de3 /usr/local/mbrola/data/

Nun noch das Hilfsprogramm txt2pho, was den Text umwandelt in eine Art Phonetiksprache:

unzip txt2pho.zip
cd txt2pho
cat txt2phorc |\
  sed 's@DATAPATH=.\+@DATAPATH=/usr/local/mbrola/txt2pho/@' |\
  sed 's@INVPATH=.\+@INVPATH=/usr/local/mbrola/txt2pho/@' >\
  /etc/txt2pho
chmod +x txt2pho
cp txt2pho /usr/local/bin
cp data/* /usr/local/mbrola/txt2pho/

Pipefilt:

cd pipefilt
chmod +x pipefilt
cp pipefilt /usr/local/bin
cd ..

Preproc:

cd preproc
chmod +x preproc
cp preproc /usr/local/bin
cp Rules.lst Hadifix.abk /usr/local/mbrola/preproc/
cd ../..

Aufräumen:

cd /tmp
rm -rf /tmp/mbrola

Ein nützliches Skript, um sich Textfiles vorlesen zu lassen:

cat > /usr/local/bin/say << "EOF"
#!/bin/sh
ROOT=/usr/local/mbrola
DATA=$ROOT/data/de3
cat $1 |\
  sed 's/@/ ät /g' |\
  pipefilt |\
  preproc $ROOT/preproc/Rules.lst $ROOT/preproc/Hadifix.abk |\
  txt2pho |\
  mbrola $DATA - -.au |\
  play -t au -
EOF
chmod +x /usr/local/bin/say

Ein Skript, um Textfiles in MP3 Files umzuwandeln:

cat > /usr/local/bin/txt2mp3 << "EOF"
#!/bin/sh
ROOT=/usr/local/mbrola
DATA=$ROOT/data/de3
cat "$1" |\
  sed 's/@/ ät /g' |\
  pipefilt |\
  preproc $ROOT/preproc/Rules.lst $ROOT/preproc/Hadifix.abk |\
  txt2pho |\
  mbrola $DATA - -.au |\
  sox -t au - -t raw -r 32000 - resample |\
  lame -r -x -s 32 -m m --quiet --tt "$3" --ta "$4" - "$2" 2>/dev/null
EOF
chmod +x /usr/local/bin/txt2mp3