# speechd mit deutscher Sprachausgabe :D

## LGW

letzte Nacht hatte ich einen Anfall von Wahn und wollte gerne #gentoo-de per Sprachausgabe verfolgen. Da das speechd-ebuild hier aus dem Forum (inzwischen auch im tree) mit festival und mbrola aber keine Deutsche Sprachausgabe unterstützt, und ich für festival auch nichts "leicht zu installierendes" als PlugIn gefunden habe, hier meine Lösung (etwas krasser hack, aber nu...  :Evil or Very Mad:  )

1. mbrola installieren (sollte mit emerge media-sound/mbrola getan sein)

2. speechd-0.56 installieren (emerge media-sound/speechd)

3. hier:

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

eine beliebige deutsche (Frauen)Stimme herunterladen und irgendwo entpacken, am besten im Homeverzeichnis des speechd-users. Ich habe de3 genommen.

4. hier:

http://www.ikp.uni-bonn.de/dt/forsch/phonetik/hadifix/HADIFIXforMBROLA.html

txt2pho.zip (für LINUX) runterladen, entpacken (zum Beispiel nach /usr/lib/txt2pho), und die mitgelieferte Datei .txt2phorc ins Homeverzeichnis des Users legen, das nachher den speechd ausführt (!!). Achtung, das ist ein binary.

5. hier:

http://lars.netside.de/marleen/japanisch/calltxt2pho.sh

runterladen (wrapper-startscript für den txt2pho), in ein Verzeichnis im Pfad legen (z.B. /usr/bin) 

6. in eben runtergeladenen script die beiden Variablen anpassen (Position von txt2pho und der mbrola-stimme)

7. sicherstellen das "play" aus dem sox-paket installiert ist. Sonst "emerge sox". Alternativ kann auch das speechd-programm weiter unten noch geändert werden, das play aufruft (z.B. so das es wavplay benutzt)

und jetzt wirds schmutzig  :Smile: 

8. Das Tool txt2pho konvertiert Texte in mbrola-formatierte Eingabedaten. Um dieses mit dem speechd nutzen zu können, muss dieser entsprechend erweitert werden. Ich habe keine Ahnung von Perl, habe also ins blaue gehacked. Zunächst also den speechd patchen:

hier ist der patch:

http://lars.netside.de/marleen/japanisch/speechd-txt2pho.diff

runterladen, speechd-0.56.tar.gz entpacken (sollte sich noch in /usr/portage/distfiles befinden) und patchen (in speechd-verzeichnis)

patch -p1 < speechd-txt2pho.diff

mit

perl -w speechd -f -s txt2pho

wird der (neue) speechd im Vordergrund gestartet, so kann man Fehlermeldungen sehen - könnte hier von vorteil sein.

solange der so gestartete speechd läuft, einen Text nach /dev/speech schicken:

echo "Hallo Welt" > /dev/speech

Der speechd sollte dann zum einen "Hallo Welt" auf der Console und zum anderen per play die temporär angelegte /tmp/txt2pho.wav abspielen.

9. wenn soweit alles funktioniert, den neuen speechd mit make compilieren und die neue Datei bin/speechd nach /usr/bin/speechd kopieren. chmod a+x /usr/bin/speechd nicht vergessen. "make install" wuerde auch gehen, das legt den speechd aber im Gegensatz zu gentoo in /usr/local/bin ab.

Wichtig ist, das die .txt2phorc im Home-Verzeichnis des users liegt, der das ganze ausfuehrt!

Ich hoffe ich habe das alles richtig zusammengekriegt. Wenn jemand Fragen oder Probleme hat, hier melden  :Very Happy: 

----------

## xraver

Einfacher wäre es mbrola,txt2pho und scripte nach dieser Anleitung zu installieren. http://www.mathematik.uni-marburg.de/~wetzmj/index.php?viewPage=tts.html

Ich benutze die Lösung schon seid längeren und habe keine probs.

----------

## LGW

schade das ich die Anleitung gestern Nacht nicht hatte  :Smile: 

Im Grunde in ausführlicher Form das, was hier auch steht. Also gut zum Nachschlagen und vergleichen  :Very Happy: 

allerdings wird dort nicht der "echte" speechd verwendet... funktioniert aber vermutlich genauso gut.

suchts euch aus  :Smile: 

----------

## xraver

 *LGW wrote:*   

> schade das ich die Anleitung gestern Nacht nicht hatte 
> 
> Im Grunde in ausführlicher Form das, was hier auch steht. Also gut zum Nachschlagen und vergleichen 
> 
> 

 

 :Wink:  sorry, google war schneller.

 *LGW wrote:*   

> 
> 
> allerdings wird dort nicht der "echte" speechd verwendet... funktioniert aber vermutlich genauso gut.
> 
> suchts euch aus 

 

Der echte speechd isses nicht, aber genausogut brauchbar.

festival wollte damals bei mir nicht und die Lösung mit mbrola ist auch kleiner und leichter zu handhaben.

Falls jemand noch interessante scripte zu dem Thema hatt, plz posten.

----------

## LGW

ich hab mich wirklich blöd gesucht... aber vielleicht habe ich auch zu sehr nach festival-optionen gesucht dabei. Wobei ja dann auch meine Lösung ohne festival auskommt, eigentlich. Weiss garnicht ob das in den deps vom speechd-ebuild drin ist...

----------

## error26

Kann mir jemand sagen warum KDE speechd blockiert?

irgenwie sitzt der ganze text in der queue bis ich mich auslogge.

dann wird vorgelesen.  :Crying or Very sad: 

----------

## LGW

vielleicht blockt der KDE-Sounddaemon (arts?) ja die Soundausgabe?

----------

## Vyper

```
killall artsd
```

... ist unter KDE leider die einzige Lösung für zahlreiche Soundprobleme. Bin am Überlegen, ob ich arts komplett deinstalliere, denn KDE geht angeblich auch ohne.

Gute Anleitung, btw.!

----------

## beejay

Obwohl ich ja kein Freund von solchen Spielereien bin  :Wink:  habe ich es gestern einmal ausprobiert. Irgendwie funtioniert es nicht so wie es soll - mal nimmt er immer nur die englische originalstimme (mit englischen Phonems), mal gibt mir der Dämon nur den Text aus -- bloss die nette Stimme der Radioansagerin mit der deutschen Stimme ist nie zu hören.

Nunja  ich werde heute Abend mal die anderen beiden Anleitungen probieren - vielleicht klappt das ja  :Smile: 

----------

## xraver

 *beejay wrote:*   

> 
> 
> Nunja  ich werde heute Abend mal die anderen beiden Anleitungen probieren - vielleicht klappt das ja 

 

Hallo,

du solltest mal die 2 Einleiung (link oben irgentwo) antesten.

Vor kurzen gab ich dem Autor einen Tip. Er sagte mir dann das mbrola und co bei ihm eh zur Zeit nicht laufen weill die glibc bei ihm suckt. Tja, debian sid eben   :Twisted Evil:  .

Zu den Soundproblemen. Ich bastele gerade an dem script rum (erwäge sogar ein neues zu schreiben) damit man sich das Sound-System aussuchen kann(arts,alsa,oss).

----------

## b3rT

noch eine weiter anmerkung zu den soundproblemen: jede halbwegs moderne soundcard hat mindestens 2 soundkanäle, sodass man artsd auf dsp1 laufen lassen kann und weiterhin programme, die unbedingt /dev/dsp bzw dsp0 haben wollen, darauf auch zugreifen können.

----------

## Niko_K

Hi,

ich versuche grad meinem PC das Sprechen beizubringen (und auch das Verstehen).

Jetzt habe ich soweit speechd (und festival) installiert...

... das funktioniert mit englischen Texten ganz ok, aber bei deutschen kann man das Prog "auf den Müll werfen"!

Jetzt hab ich hier den Post gefunden und bin positiv überrascht.

Ich habe zwar noch keine Installation versucht, aber schon jetzt muss ich mich wundern, dass es zu so einer genialen Idee noch kein ebuild gibt...

Eine Frage hätte ich da aber noch:

Wenn ich jetzt das "deutsche speechd" installiere, kann ich dann noch über den "alten" Speechd englische Texte wedergeben??

Hätte nicht jemand mit etwas mehr Ahnung als ich (und mehr Zeit) Lust, ein speech-de ebuild zu basteln, das dann auf /dev/speech arbeitet??

Niko

----------

## Phlogiston

 *Niko_K wrote:*   

> Hi,
> 
> Hätte nicht jemand mit etwas mehr Ahnung als ich (und mehr Zeit) Lust, ein speech-de ebuild zu basteln, das dann auf /dev/speech arbeitet??
> 
> Niko

 

Ja das würde mich auch freuen   :Smile: 

----------

## AngelM

Hallo Ihrs...

Irgendwie klappt das bei mir nicht. Ich habe das forum und google von unten nach oben durchgewühlt aber:

```
echo "Hello World" > /dev/speech
```

gibt bei mir nichts als unendliche Stille. Was kann ich denn vergessen oder übersehen haben?

Gruß Michael.

----------

## Runlevel 3

So hier mal nen gutes HOWTO das bei mir auf anhieb funktionierte  :Wink: 

http://de.gentoo-wiki.com/HOWTO_Gentoo_deutsch_sprechen_lassen_mit_mbrola

Hoffe es hilft!!!!

Bis dahin

----------

## Phlogiston

das howto macht einen guten eindruck, aber wo kann ich die die stimme wählen? man enpackt ja einfach mal ein paar de pakete, aber wo kann ich festlegen, welche ich will???

----------

## DeathAngel

Im Script calltxt2pho.sh von ^^oben schauen und einstellen:

```

#!/bin/bash

# die deutsche Stimme fuer mbrola:

MBROLA_STIMME=/home/large/downloads/de3/de3  # <-------

# das txt2pho-binary (kompletter Pfad)

TXT2PHO_BIN=/home/large/downloads/txt2pho/txt2pho

echo $1 | $TXT2PHO_BIN | mbrola $MBROLA_STIMME - /tmp/txt2pho.wav

```

und im Script von dem Wiki-howto ist es die Zeile

```
VOICE=$ROOT/de3/de3             # Path to the mbrola-voice
```

die geändert werden "müsste" ... wenn du ein anderes Sprachpaket installiert hast.

----------

## Phlogiston

ja habs dann auch gefunden, besten dank!

----------

