Take the 2-minute tour ×

I have a question about understanding event changes in iOS when VoiceOver is enabled. I'm developing some app for blind people.

Unfortunately there is not TTS support on iOS, differently from the Mac OS SDK where you can use NSSpeechSynthesizer objects.

I found VoiceService the is not public. So, in conclusione it seems that no API for speak text is available on iOS.

The question is: How can I notify the user about data processing end?

Here is a user case: User push button, the app make some calculus/process, than should return the result. In Mac this is easy you use speakString:@"Result".

But how can I tell VoiceOver to announce the result??

Excuse me if I was too contort :-)

Thank you very much...

share|improve this question
add comment

2 Answers

up vote 3 down vote accepted

You could use this

if (UIAccessibilityIsVoiceOverRunning()) {
                                   @"Result has been computed.");
share|improve this answer
It is rrrreally coool :-) –  Altair Jones Jul 9 '12 at 12:48
@Mike is this allowed by Apple or will an app using it be rejected? –  DGund Jul 17 '12 at 4:40
@DevinGund it's listed in the public API docs so should be fine. –  Mike Jul 17 '12 at 10:03
From the looks of this it will only work if they enable accessibility. Is this correct? –  Sirens May 4 '13 at 14:44
add comment

VSSpeechSynthesizer is available for the iOS - but it is a private API and as such will likely be rejected from the app store. However you can still make apps for private consumption.

I consider it being a Private API a bug as it makes creating accessible apps for the partially sighted for instance, harder. I have filed Bug ID #: 9451650 Bug Title: VSSpeechSynthesizer is Private

You can use FliteTTS which is free and reasonably simple to integrate, and still working in iOS5+.

You could also record a generic message 'Results available' as a wav file and play that. If your message is static (or is from a short list of possible results) you do not need TTS.

iOS6 VoiceOver / Accessibility was mentioned in the WWDC2012 keynote.

See previous answers here (which I have reiterated above)

share|improve this answer
Thank you very much. I notice that Flite is english. I'm an italian research and I'd like to make app for italians low-sighted people too. Do you know if we could find Flite in other languages than english? –  Altair Jones Jul 9 '12 at 8:55
The Italian version of the desktop version of FLITE is here. www2.pd.istc.cnr.it/FESTIVAL/home/IT-Flite.htm#Top From the description of FLITE on bitbucket, FLITE for iOS it include these voices cmu_us_kal cmu_us_kal16 cmu_us_awb et cetera I imagine if you could determine the way these are packaged you could add one of the italian voices i.e. [fliteEngine setVoice:@"cmu_it_example"]; I would suggest contacting filbattaglia@libero.it for some tips! –  artaxerxes Jul 9 '12 at 10:07
add comment

Your Answer


