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

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

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

谢谢

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

6 Solutions collect form web for “如何以编程方式使用iOS语音合成器? (文字转语音)”

从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

  • Swift 3 - 比较date对象
  • Swift 3.0调用结果未使用
  • 什么时候应该在 - (void)viewDidUnload而不是在-dealloc中释放对象?
  • UIImageView上的UIGestureRecognizer
  • 如何在iPhone中编程复制/粘贴function?
  • 我可以在UITableviewCell中使用viewDidLoad方法吗?
  • 奥特莱斯不能连接到重复的内容iOS
  • 如何样式UITextview喜欢圆angular矩形文本字段?
  • 更改UITextField占位符字体
  • 从父iOS访问容器视图控制器
  • 模糊图像的特定部分(矩形,圆形)?