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”