iPhone - 文字转语音功能的API

32
我想知道iPhone是否有支持文本转语音功能的API?我搜索过但没找到,所以只是想确认一下。
提前感谢。

这里是列表... https://dev59.com/A2nWa4cB1Zd3GeqP03m2#12839821 - Shamsudheen TK
13个回答

29

我曾经遇到过这个问题,成功在 iPhone 上运行了 Flite(节日语音合成引擎)。最近我为它创建了一个 API 类。我试图使其易于(且免费)添加到新项目和现有项目中。可以在这里下载。


它在朗读小文本方面表现出色。你知道有没有适用于阅读整个文档等大块数据的工具? - Arpit Raniwala
这个很好用,但声音听起来非常“机械”。他们制作了一些新的高质量语音,http://www.cstr.ed.ac.uk/projects/festival/onlinedemo.html。我猜你使用了双音节语音。你是如何将它们转换为.c文件的? - WYS
我从许可证中理解的是,该项目也可以用于商业应用程序,我的理解是否正确? - syntagma
这个库在设备上存在缺陷,而且非常慢(听到语音之前有很长的延迟)。它可能不是你要寻找的答案。 - Undistraction
它支持多少种语言? - quangkid

11

iPhone 3G S拥有私有的VoiceServices框架,可以实现此功能。Steve Troughton-Smith在这里描述了如何使用私有类VSSpeechSynthesizer,但您很难将使用此功能的应用程序放入App Store中。


啊... 这就是我在找的。但如果它的用途如此有限,并且(关于应用商店的接受)值得怀疑,那么它就不是很有用 :(谢谢。 - Mustafa

7

iOS 5或6没有内置的语音合成功能,您需要使用第三方库。

iOS 7中有一个AVSpeechSynthesizer API。

以下是一个简单的示例:

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

5

OpenEars 是一个开源的iOS库,用于在iPhone和iPad上实现英语语音识别和文本转语音的往返功能,它使用了CMU Pocketsphinx, CMU Flite和MITLM库。


3

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


iSpeech是商业使用非常不错且价格实惠的解决方案。我自己在使用它,也可以向大家推荐。 - Anders Sewerin Johansen
这只是云解决方案。只是一句话题外话。 - Guntis Treulands

2
API文档表明该API不可用。

2

你也可以看看这个,它使用了Flite。虽然没有具体的指令,但它可以给你一些想法。


我曾试图测试它,但出现了一堆编译器错误,两个小时后,我放弃了 :) - Mustafa

1

iOS 5或6没有内置功能。您需要使用第三方

iOS 7有AVSpeechSynthesizer API。

源代码也可在Github上获得

请参考以下链接


0

Google TTS仅限于100个字符。

因此,您应该将长句子分成小的100个字符块,并将其传递给Google TTS方法。

您可以通过实施以下步骤来实现此目标。

  • 将长句子分成小的100个字符块。
  • 使用第一个分割的100个字符字符串调用Google TTS。
  • 使用Google TTS和AVAudioPlayer播放它
  • 实现AVAudioPlayer audioPlayerDidFinishPlaying委托。
  • 在该委托中,使用第二个分割的100个字符字符串调用Google TTS。
  • 递归调用该过程,直到达到最后一个字符。

这是最适合我的Google-TTS-Library-For-iOS库,试试吧 :)


0

这是可能的,但你必须自己编写代码。我曾经见过一个应用程序可以实现这个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接