首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本到语音转换

文本到语音转换
EN

Stack Overflow用户
提问于 2014-03-05 11:04:46
回答 3查看 1.6K关注 0票数 2

我们正在制作的iPhone应用程序,客户想要提醒作为语音信息。

需求是用户会设置他们想要的时间和文本作为提醒。

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

为此,我计划使用google服务。

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

tts?tl=en&q=helloE%20friend

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

代码语言:javascript
复制
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所做的那样)?

任何有关这方面的信息都会很好。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-05 11:49:41

这只适用于iOS 7继续工作。

下面是我使用的代码。

代码语言:javascript
复制
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];

使用的进口产品如下

代码语言:javascript
复制
#import <AVFoundation/AVFoundation.h>
#import <QuartzCore/QuartzCore.h>

支持的语言如下。

代码语言:javascript
复制
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

参考文献

票数 5
EN

Stack Overflow用户

发布于 2014-03-05 11:08:45

使用AVSpeechSynthesizer

代码语言:javascript
复制
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];

参考文献

票数 6
EN

Stack Overflow用户

发布于 2014-03-05 11:08:02

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

苹果文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22195902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档