Maximize

Pitch seems to step down rather than immediately change

Comments

06/11/2015 06:34:59 AM UTC, Joanmarie: post #53476

Steps to reproduce:
1. Type 'ssSss' in a file
2. Change Orca's default and capitalization pitches to be noticeably different
3. Arrow from left to right in the text from step 1

Expected results: All of the lowercase 's' instances spoken by Orca would sound the same.

Actual results: The first, second, and final 's' sound the same. But the 's' that is immediately after the capital 'S' seems to have pitch somewhere in between the uppercase and lowercase pitch values. Or to quote an Orca user[1], "Orca sounds weird after pronouncing a capital character."

I just added some debugging output to Orca master to verify the pitches Orca is using and speech-dispatcher reports. Here are the "SPEECH DISPATCHER" lines from my full debug.out after performing the steps above:

SPEECH DISPATCHER: Speaking 's' Orca rate 60.0, pitch 0.0; SD rate 22, pitch -90
SPEECH DISPATCHER: Speaking 's' Orca rate 60.0, pitch 0.0; SD rate 22, pitch -90
SPEECH DISPATCHER: Speaking 'S' Orca rate 60.0, pitch 10.0; SD rate 22, pitch 90
SPEECH DISPATCHER: Speaking 's' Orca rate 60.0, pitch 0.0; SD rate 22, pitch -90
SPEECH DISPATCHER: Speaking 's' Orca rate 60.0, pitch 0.0; SD rate 22, pitch -90

The "SD" values are obtained by calling speech-dispatcher's get_rate() and get_pitch() methods immediately prior to calling speech-dispatcher's speak(). You'll notice that Orca is using, and more importantly speech-dispatcher is reporting, the same pitch value for all instances of lowercase 's'.

If this is an espeak bug rather than a speech-dispatcher bug, my apologies. But it doesn't seem to be an Orca bug....

[1] https://bugzilla.gnome.org/show_bug.cgi?id=743710

06/11/2015 07:06:57 AM UTC, Joanmarie: post #53477

I was just able to reproduce this without Orca in a python console:

Python 3.4.3 (default, Jun 29 2015, 12:16:01)
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import speechd
>>> client = speechd.SSIPClient("foo")
>>> client.set_pitch(-90)
>>> client.speak('s')
(225, 'OK MESSAGE QUEUED', ('2',))
>>> client.set_pitch(90)
>>> client.speak('s')
(225, 'OK MESSAGE QUEUED', ('3',))
>>> client.set_pitch(-90)
>>> client.speak('s')                <--- This one sounds "weird"
(225, 'OK MESSAGE QUEUED', ('4',))
>>> client.speak('s')
(225, 'OK MESSAGE QUEUED', ('5',))

On a different note, I just remembered I have Cepstral Swift. How pitch gets set for it is undoubtedly different than how it gets set for espeak. But the problem does not happen with Swift. All the lowercase 's' instances sound the same.

06/11/2015 07:44:49 AM UTC, coffeeking: post #53478

I can confirm this seems to be specific to espeak. My fiance has the ibmtts speech synthesizer module installed on her machine and this pitch issue doesn't happen with this module. It also doesn't appear to be specific to espeak, because espeak on it's own, used via the espeak binary or when used with clients such as espeakup don't produce the same results
Total records: 3

Note: You need to log in before you can post comments.