这个问题已经在这里有一个答案:
- 文本到语音的iPhone [关闭] 9个回答
我在建立一个应用程序,帮助学生学习外语的过程。 我注意到了iPhone可以读取的Safari外国语言文字时,我有“说话的选择”中设置辅助功能菜单开启。 是否有可能以编程方式有内置的文本到语音软件在手机上读取正显示在一个UIView一个外来词(一个NSString)?
这个问题已经在这里有一个答案:
我在建立一个应用程序,帮助学生学习外语的过程。 我注意到了iPhone可以读取的Safari外国语言文字时,我有“说话的选择”中设置辅助功能菜单开启。 是否有可能以编程方式有内置的文本到语音软件在手机上读取正显示在一个UIView一个外来词(一个NSString)?
我也试过在我的应用程序中实现TTS,我试着用一些SDK来实现它,但我不能。 我现在用谷歌翻译API [“ http://www.translate.google.com/translate_tts?tl=en&q=%@ ”,文字“。这将隐蔽你的文字,给你你需要运行一个音频文件你保存它文档目录后[或定制你喜欢]的音频文件。只要使用该代码。希望这会有所帮助。
//Conversion using Google TTS API
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"file.mp3"];
NSString *text = textToConvert.text;
NSString *urlString = [NSString stringWithFormat:@"http://www.translate.google.com/translate_tts?tl=en&q=%@",text];
NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:@"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" forHTTPHeaderField:@"User-Agent"];
NSURLResponse* response = nil;
NSError* error = nil;
NSData* data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
[data writeToFile:path atomically:YES];
NSError *err;
if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
// player = [[AVAudioPlayer alloc] initWithContentsOfURL:
// [NSURL fileURLWithPath:path] error:&err];
//// player.volume = 0.4f;
// [player prepareToPlay];
//// [player setNumberOfLoops:0];
// [player play];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err];
// player.delegate = self;
[player prepareToPlay];
[player play];
}