AVSpeechSynthesisVoice。iOS SDK 7.0中引入了voiceWithLanguage。当时,每种语言/地区只有一种语音。
自iOSSDK 9.0以来,已经为每种语言/区域设置添加了更多的声音。所以苹果公司引入了一个新的应用编程接口语音识别器,这样你就可以得到你想要的特定语音。
我的问题是,如果我们仍然在iOS 9或更高版本中使用voiceWithLanguage会怎么样。这个API到底返回了什么?更重要的是,在iOS版本之间,甚至在不同的设备之间,返回的语音是否发生了变化?
我注意到,voiceWithLanguage返回的内容有点依赖于iOS语音设置的“设置”-
我这么问是因为我的应用程序正在使用voiceAnd Language。当用户将iOS升级到iOS12时,他们报告说他们听到了不同的声音。我相信voiceAnd Language在升级到iOS12后返回了不同的声音。虽然我不能在同一类型的设备上复制它。
当然,我可以开始使用voiceWithIdentifier来代替。但我只是对这种语言感到好奇。
... 在iOS版本之间,甚至在不同设备之间,返回的语音是否发生了变化?
我只在iOS 12中发现语音合成,因此我无法向您提供有关以前版本的任何信息,但我知道默认语音是设备支持语言的内置语音。
当实例化AVSpeechSynthesis Voice
类时,由于您仅使用BCP 47代码指定语音的语言和区域设置,因此您的代码采用设备的默认语音,该语音可以为许多用户定制。
...例如英语美国,如果你设置语音“弗雷德”voiceAnd Language将返回“弗雷德”,这很酷。但是如果您将语音设置为“尼基”,voiceAnd Language将返回除“尼基”以外的其他内容。
我做了很多测试(iOS 12.3.1、Swift 5.0、iPhone X、iPhone 7 Plus),包括你提到的那一个,当我更改它时,它总是返回我设备支持的语言的内置语音。
我无法重现你的问题。
...当然,我可以开始使用voiceAnd标识符
来代替。
这正是我的建议,如果没有安装带有标识符的指定语音,请使用默认语音:它将减少许多用户可能听到的不同语音。
总之,使用BCP 47代码(en-US,FR-FR...)会导致设备的内置语音被考虑,根据自定义设置可能会导致不同的声音:这决定了返回的默认语音by[AVSpeechSynthesis Voice voiceAnd Language](ObjC).
如有必要,可在本WWDC详细摘要中介绍如何选择正确的语音。
[尚无解决方案]我也遇到了同样的问题。
首先,通过设置不同的语音
Accessibility -> Speech -> Voices
or
Accessibility -> VoiceOver -> Speech -> Voices
然后
AVSpeechSynthesisVoice(language: language)
它不会影响iOS 12.0中的AVSpeechSynthesizer。1(它在iOS 11.x上工作
我在iOS 12.0上还发现了另外两个东西。1.
首先,使用Siri语音时不再可用
AVSpeechSynthesisVoice(identifier: "com.apple.ttsbundle.siri_male_ja-JP_compact")
其次,如果我不设置语音标识符,该区域的女性Siri将说文本。它也不受偏好中的语音设置的影响。顺便说一句,我还是找不到让男Siri说话的方法,哈哈
我似乎在这上面找不到任何东西。iOS7中是否有任何Siri类或API允许您进行文本到语音转换?我所要做的就是如下所示: 然后让Siri从我的应用程序中说出来。 看来我们应该有能力做到这一点,不是吗?似乎是一件微不足道的事情。
我是快速和iOS应用程序开发的新手。我正在使用AVSpeechSynthesiser创建一个文本到语音应用程序。我想设置一个字符串说在英语,但我希望它把那个特定的字符串翻译成语音,但在不同的语言,如阿拉伯语。我是否能够使用AVSpeechSynthesizer做到这一点,或者我需要使用翻译API来做到这一点。 谢谢你
有没有任何开源项目或库(在java或c),我可以用来将文本转换为用户语音。
我正在iOS应用程序中使用进行文本到语音转换。 语音合成器在所有设备上都运行良好,除了运行iOS9.0.2的iPad 2(型号A1395)。我使用Xcode 7.0.1。 问题是,在播放文本时说"希望"字母"p"要么真的很安静,要么不播放,用户只能听到"ho"。如果文本是“希望”,那么它播放正确。 有没有办法解决这个问题?
带有en-us语音的AVSpeechsynthesizer是“A”的发音,是“大写字母A”,但只想要“A”,怎么能做到呢?
我试图调用google speech to text api,但它总是返回空结果。我从这个答案中得到了实现提示:在dart、FLATTER中使用gcloud语音api进行实时语音识别 我使用的是颤振声(https://pub.dev/packages/flutter_sound)打包以录制音频,然后将base64编码的音频发送到语音API 录音代码 音频文件android。aac带。从上述代码成功