如何以编程方式使用iOS语音合成器? (文字转语音)

iOS设备已经embedded了用于辅助function的VoiceOverfunction的语音合成器。 有没有一种方法可以使用这些合成器以编程方式生成基于文本的声音?

我的问题是:我正在做一个简单的应用程序,让孩子们学习颜色,而不是logging我想要支持的每种语言的颜色名称,并将它们存储为audio文件,我宁愿在运行时生成声音一些文字转语音function。

谢谢

[编辑:这个问题被问到iOS7之前,所以你应该真的考虑投票的答案,忽略旧的,除非你是一个软件考古学家]

从iOS 7开始,Apple提供了这个 API。

看到这个答案。

Objective-C的

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

迅速

 import AVFoundation … let utterance = AVSpeechUtterance(string: "Hello World!") let synth = AVSpeechSynthesizer() synth.speakUtterance(utterance) 
 #import <AVFoundation/AVFoundation.h> AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc] init]; AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Text to say"]; [av speakUtterance:utterance]; 

不幸的是,iOS不公开用于编程生成语音的公共API。

如果您没有提交到App Store,则可以使用私人API 。

否则,请参阅针对您可以使用的许多第三方库的此问题的回复。

这个代码在模拟器和iPhone 6上都能用Swift和iOS 8工作。我需要添加标准的AVFoundation库:

 import AVFoundation // ... func onSayMeSomething() { let utterance = AVSpeechUtterance(string: "Wow! I can speak!") utterance.pitchMultiplier = 1.3 utterance.rate = AVSpeechUtteranceMinimumSpeechRate * 1.5 let synth = AVSpeechSynthesizer() synth.speakUtterance(utterance) } 

你可以find这个有用的让你的iPhone应用程序可访问

如“iPhone Accessibility API和工具”中所述,标准的UIKit控件和视图是可以自动访问的。 如果只使用标准的UIKit控件,则可能不需要额外的工作来确保应用程序可访问。 在这种情况下,下一步是确保这些控件提供的默认属性信息在您的应用程序中是有意义的。 要了解如何执行此操作,请参阅“提供准确有用的属性信息”。

您可以尝试这些第三方API: iSpeech或OpenEars