[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ibmtts speech rate (was: Re: [Fwd: Re: [orca-list] gnome-speech seems to
From: |
Gilles Casse |
Subject: |
ibmtts speech rate (was: Re: [Fwd: Re: [orca-list] gnome-speech seems to block orca]) |
Date: |
Fri, 13 Jun 2008 23:01:49 +0200 |
> -------- Original Message --------
> Subject: Re: [orca-list] gnome-speech seems to block orca
> Date: Fri, 13 Jun 2008 13:22:12 +0100
> Trom: Michael Whapples <mwhapples at aim.com>
> To: orca-list <orca-list at gnome.org>
>
> [...]
>
> The other problem, possibly more of a general speech-dispatcher problem,
> is that I need to set orca's rate to maximum when using
> speech-dispatcher and IBMtts,
Speech-dispatcher source (ibmtts.c, ibmtts_set_rate) converts the ssip
speech rate from -100, 100 to the eci speed 0,100 so that the average
rate 0 is converted to speed 50.
The max range of speed could be reached using for example:
speed = (5*rate + 500)/4
The current code, copied below, is more elaborated. Is it wished to
simplify it?
Gilles
/* Setting rate to midpoint is too fast. An eci value of 50 is
"normal".
...
/* Possible ECI range is 0 to 250. */
/* Map -100 to 100 onto 0 to 100. */
if (rate < 0)
/* Map -100 to 0 onto 0 to ibmtts_voice_speed */
speed = ((float)(rate + 100) * ibmtts_voice_speed) / (float)100;
else
/* Map 0 to 100 onto ibmtts_voice_speed to 100 */
speed = (((float)rate * (100 - ibmtts_voice_speed)) / (float)100)
+ ibmtts_voice_speed;
/* speed = (rate + 100) / 2; */
assert(speed >= 0 && speed <= 100);