Text to Speech on iOS

2019-03-11 13:25发布

问题:

I'd like to add text to speech on the iOS, but noticed that NSSpeechSynthesizer seems to be missing from Cocoa-Touch.

Are there any third party, commercial or FOSS, libraries that you would recommend? Will Apple reject an app that contains a third party library?

回答1:

I've heard that OpenEars is good, but I don't really know too much about it. As for Apple accepting an app with third-party libraries, it all depends on whether or not the third-party library uses private frameworks or not. I'm sure that information is available on the OpenEars website.



回答2:

How to programmatically use iOS voice synthesizers? (text to speech)

Starting from iOS 7 Apple provides the following API...

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVSpeechSynthesizer_Ref/Reference/Reference.html

#import <AVFoundation/AVFoundation.h>
…
AVSpeechUtterance *utterance = [AVSpeechUtterance 
                            speechUtteranceWithString:@"Hello world"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];


回答3:

Have a look a CMU's Flite TTS engine.

There are a few iOS ports of Flite, for example

  • https://github.com/KingOfBrian/VocalKit
  • https://github.com/jonbarlo/iPhoneTTSSampleApp
  • https://bitbucket.org/sfoster/iphone-tts/ (not working)
  • http://wiki.monotouch.net/HowTo/Interop/Interopping_with_Open_Source_Text-to-Speech_(TTS)_C_libraries__for_iPhone.


回答4:

If you are not releasing your app on the App store, I recommend VoiceService API. It is a private API. But it is easy to use and outputs high quality sounds.