iPhone – 用于文本到语音的APIfunction

我想知道如果iPhone有任何支持文本到语音function的API? 我环顾四周,却找不到任何东西,所以只想确认一下。

感谢预期。

我一度碰到这个问题,并且把Flite(festival lite)文本发送到在iPhone上运行的语音引擎。 我最近为它做了一个API类。 我试图简化(和免费)添加到新的和现有的项目。 它可以在这里下载。

iPhone 3G S具有可以做到这一点的专用VoiceServices框架。 Steve Troughton-Smith介绍了如何在这里使用私有类VSSpeechSynthesizer,但是你很less有机会使用它到App Store中。

对于iOS 5或6 – 没有任何内置的。 您需要使用第三方库。

对于iOS 7,有一个AVSpeechSynthesizer API。

这是一个简单的例子:

AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Hello world"]; AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init]; [synth speakUtterance:utterance]; 

OpenEars是一个开源的iOS库,用于在iPhone和iPad上实现往返英语语音识别和文本到语音的转换,该应用程序使用CMU Pocketsphinx,CMU Flite和MITLM库。

我发现这个,但我还没有尝试过。

API文档会提示该API不可用。

你可能也想看看这个 。

它使用Flite。 它不包含具体的说明,但它可以给你的想法。

对于iOS 5或6 – 没有任何内置的。 您需要使用第三方库 。

对于iOS 7,有一个AVSpeechSynthesizer API。

源代码也可在Github中find

参考下面的链接

这是可能的,但你将不得不推出自己的。 我看到一个应用程序做到这一点。

在iPhone 2.0出现之前,我是通过将平台移植到iPhone上的。 我用它作为一个命令行实用程序,但它应该有可能成为一个图书馆。

Google TTS限制为100个字元。

所以你应该把你的长句分成100个小块,然后传给Google TTS方法。

您可以通过执行以下步骤来实现这一点。

  • 把你的长句分成小块100个字符。
  • 使用第一个分隔100个字符的string呼叫Google TTS。
  • 使用Google TTS和AVAudioPlayer播放
  • 实现AVAudioPlayer audioPlayerDidFinishPlaying委托。
  • 在该代表中,使用第二个分隔100个字符的string调用Google TTS。
  • 调用过程recursion直到到达最后一个字符。

这里最好给我一个Google-TTS-Library-For-iOS库试试吧:)

有一个Iphone应用程序直接TTS,在iTunes上search“TTSMessenger”