[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Search]
Silence with the Dectalk software
- To: emacspeak <emacspeak@xxxxxxxxxxx>
- Subject: Silence with the Dectalk software
- From: Gilles Casse <gcasse@xxxxxxxxxxx>
- Date: Thu, 13 Mar 2003 01:39:12 +0000
- In-Reply-To: <200303021156.17962.gcasse@xxxxxxxxxxx>
- Resent-Date: Wed, 12 Mar 2003 19:46:07 -0500 (EST)
- Resent-From: emacspeak@xxxxxxxxxxx
- Resent-Message-ID: <"iooriC.A.x8E.ZQ9b-"@hub>
- Resent-Sender: emacspeak-request@xxxxxxxxxxx
- User-Agent: KMail/1.4.3
Hi,
I would be very grateful to T. V. Raman and to the emacspeak ml members, to
give your opinion about the following changes related to the DECtalk
software.
These changes are aimed to fix a painful issue for the french TTS.
I would like to know if these changes do not decrease the quality of
the voice. You probably use the english TTS but it could be spanish,
german or even french.
In fact, with emacspeak and the DECtalk software, we observed a distinct
behavior between the english and the french TTS.
if the user presses the up arrow key when the current line
is said, then the voice stops and the previous line is sayed.
With the french TTS, there were nearly two seconds of silence before
starting to hear the previous line.
With the english TTS, this long silence doesn't exist.
In my opinion, here are the original calls of the DECtalk API which
work with english but cause a silence with french:
1. In file tcldtk.c, the Stop() function calls TextToSpeechReset() then
TextToSpeechSpeak() to force an inline command:
TextToSpeechReset(dtkHandle, FALSE);
TextToSpeechSpeak(dtkHandle, "[:phoneme arpabet speak on :say clause]",
TTS_FORCE);
2. In file dtk-soft, each call to the speach_task function
sends the following inline command to the DECtalk software:
say "\[_]\[:sa c]\[:np]\[:ra $r]\[:pu $mode]"
Here [:ra $r] means "the value of the rate equals $r"
For the french TTS, we only change these lines:
1. In the Stop() function (file tcldtk.c), TTS_NORMAL replaces TTS_FORCE
TextToSpeechReset(dtkHandle, FALSE);
TextToSpeechSpeak(dtkHandle, "[:phoneme arpabet speak on :say clause]",
TTS_NORMAL);
2. In the tcl file, we supply the rate only if it is actually modified.
Something like that:
if {$rate_old != $r } {
say "\[:ra $r]"
set rate_old $r
}
Here is the related <a href="http://gcasse.free.fr/dtk/dtk-soft">dtk-soft</a>
Many thanks for your notices and sorry for this verbose email,
Gilles
-----------------------------------------------------------------------------
To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
subject of "unsubscribe" or "help"
Emacspeak Files |
Subscribe |
Unsubscribe | Search