speechd-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Work on Generic Module


From: Hynek Hanke
Subject: Work on Generic Module
Date: Sat, 17 Feb 2007 14:04:47 +0100

Tomas Cerha writes:
> There is no point for espeak to support directly the level "some", since
> from the definition, one must pass the list of characters.  This list is
> *application* defined.  Thus the --punct="..." is exactly what
> implements the level some.

I think the problem Steve is speaking about is that we need a different
command line in case the user asks for SOME and in case the user asks
for NONE or ALL (one inclused --punct and one doesn't). Currently, the
generic module only performs variable substitution in a fixed skeleton
command line. This has little to do with eSpeak -- eSpeaks interface is
excelent IMHO. (And we should have written a shining new native module a
long time ago if only there were more people to work on it :(

I think we need a more flexible command line construction for the
generic module. The ideal would of course be some easy scripting
language for the construction of the command line in the configuration
file. This will be no problem as soon as we switch to the TTS API
Provider and Python. But since resources are so low and progress on TTS
API Provider is slower than expected, we must not rely on it for short
term.

In the meantime, I think the hack Steve proposed seems reasonable. Let
me summarize it to see if I understand it correctly:

We will have a variable $PUNCT_OPT and a mapping table in the
configuration file
        PUNCT_OPT_NONE "--punct-none"
        PUNCT_OPT_ALL  "--punct-all"
        PUNCT_OPT_SOME "--punct-some=$PUNCT_SOME"
or similar, where $PUNCT_SOME should be substituted automatically by the
generic module for the requested punctuation characters.

Care must be taken to avoid conflicts with GenericStripPunctChars.
This variable is here because some for example some synthesizers
(dectalk) will day if certain punctuation characters are passed to them
and thus it is desirable to delete them from the command line before
execution. I think for Espeak, GenericStripPunctChars can be left
empty, but the functionality should not be broken for other
synthesizers.

Also, there might appear some issues with bash escaping for punctuation
characters like doublequotes. I think $PUNCT_SOME must be escaped before
inserted into the command line.

Have a nice day,
Hynek Hanke



reply via email to

[Prev in Thread] Current Thread [Next in Thread]