espeak-ng/espeak-ng-ios-app

Feature request: allow changing espeak inflection setting for VoiceOver on iOS and macOS

lawrenceper opened this issue · 21 comments

On the NVDA screen reader, there is a setting that allows you to change the inflection (how much pitch change the synthesizer will use during speaking). Android users can change this setting within the app. Since VoiceOver on iOS doesn't have the ability to change the voice inflection, I'm suggesting an in-app setting that will apply when text is sent to the app via VoiceOver.

@djphoenix Any chance of implementing this for VoiceOver on iOS? Without this setting, eSpeakNG sounds rather robotic as it reaches the end of sentences. Hope it's doable.

I will review, if it is esposed as espeak parameter, that's no cost to include.

@djphoenix Thanks. That would be much appreciated.

Should be done in 1.0(9) for iOS and 1.0(4) for macOS, @amirsol81 @lawrenceper can you check that it works as expected?

@djphoenix Wonderful -- it works!
I just have a question. In the eSpeakNG app for iOS, the inflection can be altered within a range of 0 to 7, giving users 8 possible options. However, in NVDA it can be set from 0 to 100. As such, what we get in eSpeakNG's iOS app from the 0 value is much more inflected compared with NVDA's 0 value. So I'm just wondering if you're getting these numbers directly from eSpeakNG, or if the range can be altered to give more control to users similar to NVDA's 0 to 100 range.

It is just an UI to espeak-ng native settings. More complex parameters requires further work, so I prefer to delay it.

OK - this also sounds great. Ready for the App Store! 🍾🥂🎉

@lawrenceper I’m very sorry. Can you explain a little? I can’t do with espeak anything that it does not support.

Well, at least what I noticed, VoiceOver doesn't change inflection when it's set to 7 in eSpeak's app, or what I also noticed is that when you restart VoiceOver, the phrase "VoiceOver on" is announced with changed inflection, but everything else is announced like it was set to 0.

It' also doesn't work on mine. if I set it to 4, it sounds like it's reading everything like it has a question mark at the end of the sentence.

Because the code is setting the wrong parameter. In NVDA, inflection is espeakRANGE, not espeakINTONATION.

Oh, that's very interesting! Thank you for explanation! But what exactly changes now when we are refering to intonation? I hear some changes, but I cannot understand exactly what changes and how to call it. It's not an inflection change like in NVDA, but something else!

When I set the intonation setting to 4, it sounds like it's reading as if everything had a question mark at the end of everything that it speaks. I think intonation adjusts how the synthesizer speaks each sentence, like as if it had an exclamation mark, question mark, etc. at the end of each sentence. What's even more confusing to me is that on macOS, in the voiceover speech rotor, you can adjust the inflection on certain voices like Fred, Alex, and Victoria with a setting called "intonation".

inflection is espeakRANGE, not espeakINTONATION

Ah, that makes sense! I will try it.

So do I understand correctly that intonation and inflection are two different options? Or these are two words but with the same meaning? What intonation in the iOS app changes now then?

Should work in iOS 1.0(10) and macOS 1.0(5)

What was exactly changed? I don't find any changes

@sevapopov2 there is "Inflection" slider in app UI, with 0-100 range.

Oh sorry! It turned out that the app wasn't updated for some reason even if I pressed update. I think it was updated to version 1.0.9 first and then 1.10.10! That why I didn't notice! Thank you for adding the inflection control!