Re: [kttsd] Deutscher Sprecher
- From: "Malte J. Wetz" <spamcan@xxxxxxxxxxxxx>
- Date: Mon, 28 Nov 2005 16:54:45 +0100
* praetor <nomail@xxxxxx> wrote:
> Allein es gibt noch ein Problem mit Abkürzungen wie "z.B.", "ggf.",
> "usw". Sie sind alle in der
> Datei /usr/local/txt2pho/preproc/Hadifix.abk angegeben.
> [...]
> Trotzdem habe spricht der Sprecher die Abkürzungen nicht aus, sondern
> liest sie so, wie sie dastehen.
Das Phänomen kann ich auf Shell-Ebene ebenfalls beobachten, wenngleich
nur eingeschränkt.
Folgender Test zeigt das Problem:
,----
| mjw@triton:~/bin$ echo "usw. ggf. z.B. usw." \
| | /usr/local/txt2pho/preproc/preproc \
| /usr/local/txt2pho/preproc/Rules.lst \
| /usr/local/txt2pho/preproc/Hadifix.abk
| usw .
| gegebenenfalls zum Beispiel und so weiter
`----
Man sieht also, dass das Problem die erste Abkürzung betrifft, der der
Präprozessor von txt2pho begegnet. Und auch nur dann, wenn sie
ausschließlich aus Buchstaben mit einem abschließenden Punkt besteht.
Das heißt, "ggf.", "usw.", "etc." werden vermurkst, wenn sie am Anfang
stehen, "z.B.", "a.D.", "z.T." aber nicht.
Ich habe mir das jetzt nicht weiter angesehen, um eine Lösung dafür zu
finden. Vermutlich hängt es irgendwie an der Rules.lst und ist evtl.
sogar Absicht, weil Abkürzungen nicht am Satzanfang auftauchen
können/sollen/dürfen?!
Eine schnelle Lösung besteht darin, einen zusätzlichen Filter
davorzuhängen, der alle Abkürzungen bereits korrekt ersetzt und den
preproc von txt2pho nur noch für Zahlwörter und ähnliches einzusetzen.
,----
| mjw@triton:~/bin$ echo "usw. ggf. z.B. usw." | ./preproc.sh
| und so weiter gegebenenfalls zum Beispiel und so weiter
`----
Ein solcher Filter ist mit einfachen Shell-Mitteln recht schnell
gestrickt und man braucht nicht mal eine eigene Abkürzungsliste,
sondern kann die von preproc verwenden. Mein erster Entwurf sieht so
aus:
,----[ preproc.sh ]
| #!/bin/sh
|
| # some parameters
| LIST="/usr/local/txt2pho/preproc/Hadifix.abk"
|
| # go through abbrevations list and build sed-statement
| stmt=`awk -F "\t" '{gsub(/\./,"\\\."); print "s#"$1"#"$2"#g"}' \
| < "$LIST"`
|
| # make replacements
| sed -e "$stmt"
`----
Mit Hilfe der Jungs aus dcous ließe sich das bestimmt noch etwas
optimieren, aber im Prinzip geht's.
Ein passender Patch gegen mein speak-Skript wäre dann:
,----
| --- /usr/local/bin/speak 2005-11-15 01:34:37.000000000 +0100
| +++ speak.test 2005-11-28 16:46:55.000000000 +0100
| @@ -46,7 +46,7 @@
| TXT2PHO=/usr/local/bin/txt2pho
|
| # Full path of preproc binary (which is part of txt2pho)
| -PREPROC=/usr/local/txt2pho/preproc/preproc
| +PREPROC="preproc.sh | /usr/local/txt2pho/preproc/preproc"
|
| # Parameters for preproc. Specify Rules and abbreviations files
| # (both are part of txt2pho).
`----
Womit dann, zumindest von 'speak' *jede* Abkürzung korrekt ausgesprochen
werden sollte.
Wie man das ganze nun auf kttsd überträgt, sei dem Leser als
Übungsaufgabe überlassen. ;-)
Ich verwende es nämlich nicht, was ich aber IIRC schon schrub.
--
http://www.malte-wetz.de (Linux: ISDN-Anrufbeantworter, Text-To-Speech,
ISDN-Inhaltsdatenkomprimierung, yapsrc für alle dt. Netze, Sondertasten
von Multimedia-Tastaturen; Allgemein: Rechnersicherheit)
.
- References:
- [kttsd] Deutscher Sprecher
- From: praetor
- Re: [kttsd] Deutscher Sprecher
- From: Erik Neun
- Re: [kttsd] Deutscher Sprecher
- From: praetor
- Re: [kttsd] Deutscher Sprecher
- From: praetor
- [kttsd] Deutscher Sprecher
- Prev by Date: Re: Fehlende Icons in der Toolbar
- Next by Date: QT ./configure Probleme SUSE 10.0
- Previous by thread: Re: [kttsd] Deutscher Sprecher
- Next by thread: [KMail]History der Adressen editieren?
- Index(es):
Relevant Pages
|