iPhone - 用于文本到语音功能的 API [关闭]
Posted
技术标签:
【中文标题】iPhone - 用于文本到语音功能的 API [关闭]【英文标题】:iPhone - API for Text to Speech feature [closed] 【发布时间】:2010-11-09 06:57:32 【问题描述】:我想知道 iPhone 是否有任何支持文本到语音功能的 API?我环顾四周,但没有找到,所以只想确认一下。
期待中的感谢。
【问题讨论】:
这里是列表...***.com/questions/12839671/… 【参考方案1】:我曾经遇到过这个问题,并在 iPhone 上运行了 Flite (festival lite) 文本到语音引擎。我最近为它制作了一个 API 类。我试图让添加新项目和现有项目变得容易(并且免费)。可以在here下载。
【讨论】:
它适用于小文本说话。你知道任何可以处理大量数据的方法吗,比如阅读整个文档…… 这很好用,但声音非常“机器人”。他们发出了一些新的高质量声音,cstr.ed.ac.uk/projects/festival/onlinedemo.html。我想你用的是双音素的声音。您是如何将这些转换为 .c 文件的? 我是否从许可证中正确理解该项目也可以用于商业应用? 这个库有问题,在设备上速度很慢(在听到语音之前有很长的延迟)。这可能不是您要寻找的答案。 它支持多少种语言?【参考方案2】:iPhone 3G S 具有可以执行此操作的私有 VoiceServices 框架。 Steve Troughton-Smith 描述了如何使用私有类 VSSpeechSynthesizer here,但您几乎没有机会在 App Store 中使用它。
【讨论】:
啊...我在找什么。但如果它的使用如此有限且令人怀疑(w.r.t. App Store 接受度),则不是很有用:(谢谢。【参考方案3】:对于 ios 5 或 6 - 没有任何内置功能。您需要使用第三方库。
对于 iOS 7,有一个 AVSpeechSynthesizer API。
这是一个简单的例子:
AVSpeechUtterance *utterance = [AVSpeechUtterance
speechUtteranceWithString:@"Hello world"];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];
【讨论】:
【参考方案4】:OpenEars 是一个开源 iOS 库,用于在 iPhone 和 iPad 上实现往返英语语音识别和文本到语音转换,它使用 CMU Pocketsphinx、CMU Flite 和 MITLM 库。
【讨论】:
【参考方案5】:我找到了this,但我还没有尝试过。
【讨论】:
iSpeech 实际上是相当不错且价格合理的商业用途解决方案。我使用它,并且可以推荐它。 这只是云解决方案。只是一个旁注。【参考方案6】:API 文档会建议 API 不可用。
【讨论】:
【参考方案7】:您可能还想看看this。
它使用 Flite。它不包含具体说明,但可以为您提供想法。
【讨论】:
我尝试测试过一次,但出现了一大堆编译器错误,2小时后,我放弃了:)【参考方案8】:对于 iOS 5 或 6 - 没有任何内置功能。您需要使用第三方library。
对于 iOS 7,有一个 AVSpeechSynthesizer API。
Github 中也有源代码
参考以下链接
【讨论】:
【参考方案9】:这是可能的,但您必须自己动手。我见过一个应用程序这样做。
【讨论】:
【参考方案10】:我在 iPhone 2.0 出现之前通过将 espeak 移植到平台来做到这一点。我将它用作命令行实用程序,但应该可以将其制成库。
【讨论】:
【参考方案11】:你可以尝试使用google tts:
http://translate.google.com/translate_tts?tl=en&q=hello
还有其他一些人:
http://www.ispeech.org/api
http://tts-api.com/
【讨论】:
【参考方案12】:Google TTS 限制为 100 个字符。
所以你应该将你的长句子分成 100 个字符的小块,并将其传递给 Google TTS 方法。
您可以通过执行以下步骤来实现此目的。
将长句分成 100 个字符的小块。 使用前 100 个字符的字符串调用 Google TTS。 使用 Google TTS 和 AVAudioPlayer 播放 实现 AVAudioPlayer audioPlayerDidFinishPlaying 委托。 在该委托中,使用第二个拆分 100 字符调用 Google TTS 字符串。 递归调用该过程,直到到达最后一个字符。这是对我来说最好的一个Google-TTS-Library-For-iOS library试试吧:)
【讨论】:
【参考方案13】:有一个 Iphone 应用可以直接 TTS,在 Itunes 上搜索“TTSMessenger”
【讨论】:
以上是关于iPhone - 用于文本到语音功能的 API [关闭]的主要内容,如果未能解决你的问题,请参考以下文章