Reputation: 1697
I am developing an application in which I have to play string as an audio.
I am using http://translate.google.com/translate_tts?tl=en&q=Hello API to speak the string but it is a little bit slow.
Is there any library in objective-c to play string as an audio "Text To Speech".
Upvotes: 7
Views: 12172
Reputation: 1541
import frameworks :
#import <AVFoundation/AVFoundation.h>
#import <QuartzCore/QuartzCore.h>
.m file code
NSString *str = @"Hello friend, how are you?";
AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init];
AVSpeechUtterance *speechutt = [AVSpeechUtterance speechUtteranceWithString:strtext];
speechutt.volume=90.0f;
speechutt.rate=0.50f;
speechutt.pitchMultiplier=0.80f;
[speechutt setRate:0.3f];
speechutt.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-us"];
[synthesizer speakUtterance:speechutt];
voiceWithLanguage option in any language to speek supported that.
Arabic (Saudi Arabia) - ar-SA
Chinese (China) - zh-CN
Chinese (Hong Kong SAR China) - zh-HK
Chinese (Taiwan) - zh-TW
Czech (Czech Republic) - cs-CZ
Danish (Denmark) - da-DK
Dutch (Belgium) - nl-BE
Dutch (Netherlands) - nl-NL
English (Australia) - en-AU
English (Ireland) - en-IE
English (South Africa) - en-ZA
English (United Kingdom) - en-GB
English (United States) - en-US
French (Canada) - fr-CA
French (France) - fr-FR
Finnish (Finland) - fi-FI
German (Germany) - de-DE
Hindi (India) - hi-IN
Hungarian (Hungary) - hu-HU
Indonesian (Indonesia) - id-ID
Italian (Italy) - it-IT
Japanese (Japan) - ja-JP
Korean (South Korea) - ko-KR
Norwegian (Norway) - no-NO
Romanian (Romania) - ro-RO
Russian (Russia) - ru-RU
Slovak (Slovakia) - sk-SK
Spanish (Mexico) - es-MX
Swedish (Sweden) - sv-SE
Turkish (Turkey) - tr-TR
Upvotes: 11
Reputation: 234
Look at the classes AVSpeechUtterance and AVSpeechSynthesizer in io7. Basically you can just do the following.
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:text];
AVSpeechSynthesizer *syn = [[[AVSpeechSynthesizer alloc] init]autorelease];
[syn speakUtterance:utterance];
Upvotes: 21
Reputation: 4205
The Nuance NDEV Mobile iOS SDK could be your best bet, in terms of quality and performance, but unlike OpenEars is not free. That said, we've got 40 different languages and 61 different voices available, and the library has a subsystem that doesn't rely on HTTP (and is still network based) that you can play with.
Once you've signed up for an account..
SpeechKit
with that informationVocalizer
instance, specifying the language or voiceVocalizer
instance to speakString
with the text you want to synthesizewillBeginSpeakingString:(NSString *)text
didFinishSpeakingString:(NSString *)text
Note: The Vocalizer API also supports SSML.
Upvotes: 0