文本到语音转换

我们正在iPhone应用程序客户端需要提醒作为语音信息。

要求是用户会设置他们想要提醒的时间和文字。

使用文本,我将转换为语音,并在提醒被触发时播放audio文件。

为此,我计划使用谷歌服务

http://www.translate.google.com/translate_tts?tl=ar&q=%D9%85%D8%B1%D8%AD%D8%A8%D8%A7%20%D8%B5%D8%AF%D9 %8A%D9%82%D8%8C%20%D9%83%D9%8A%D9%81%20%D8%AD%D8%A7%D9%84%D9%83%D8%9F

http://www.translate.google.com/translate_tts?tl=en&q=helloE%20friend

播放这些文本并下载相同的audio文件。

NSString* userAgent = @"Mozilla/5.0"; NSURL *url = [NSURL URLWithString:[@"http://www.translate.google.com/translate_tts?tl=en&q=helloE%20friend" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease]; [request setValue:userAgent forHTTPHeaderField:@"User-Agent"]; NSURLResponse* response = nil; NSError* error = nil; NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; [data writeToFile:@"/var/tmp/tts.mp3" atomically:YES]; 

我可以使用这些代码,但客户端不想上网。

有没有任何图书馆可以做文字到语音转换没有互联网(如siri正在做)?

任何有关这方面的信息将是伟大的。

使用AVSpeechSynthesizer

 AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init]; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Some random text that you want to be spoken"]; [utterance setRate:0.7]; [synthesizer speakUtterance:utterance]; 

参考

这仅适用于iOS 7以上版本

以下是我使用的代码。

 NSString *myStr; // myStr = @"Hello friend, how are you?"; myStr = @"مرحبا صديق، كيف حالك؟"; AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc]init]; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:myStr]; [utterance setRate:0.2f]; // utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-us"]; utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"ar-SA"]; [synthesizer speakUtterance:utterance]; 

使用的import是

 #import <AVFoundation/AVFoundation.h> #import <QuartzCore/QuartzCore.h> 

支持的语言如下。

 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 Finnish (Finland) - fi-FI French (Canada) - fr-CA French (France) - fr-FR German (Germany) - de-DE Greek (Greece) - el-GR 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 Polish (Poland) - pl-PL Portuguese (Brazil) - pt-BR Portuguese (Portugal) - pt-PT Romanian (Romania) - ro-RO Russian (Russia) - ru-RU Slovak (Slovakia) - sk-SK Spanish (Mexico) - es-MX Spanish (Spain) - es-ES Swedish (Sweden) - sv-SE Thai (Thailand) - th-TH Turkish (Turkey) - tr-TR 

参考

从iOS7开始,苹果已经在其SDK中提供了如下的内容:

苹果文档