繁体   English   中英

iOS文本到语音:什么决定[AVSpeechSynthesisVoice voiceWithLanguage]返回的默认语音?

[英]iOS text to speech: What decides the default voice returned by [AVSpeechSynthesisVoice voiceWithLanguage]?

AVSpeechSynthesisVoice.voiceWithLanguage已在iOS SDK 7.0中引入。 那时,每种语言/语言环境只有一个语音。

从iOS SDK 9.0开始,为每种语言/语言环境添加了更多声音。 因此,Apple推出了一个新的API voiceWithIdentifier,以便您可以获得所需的特定语音。

我的问题是,如果我们仍然在iOS 9或更高版本中使用voiceWithLanguage会怎样。 这个API究竟返回了什么? 更重要的是,返回的语音是否在iOS版本之间甚至在不同设备之间发生了变化?

我注意到,voiceWithLanguage返回的是依赖于iOS语音设置“ettings - > General - > Accessibility - > Speech - > Voices - > English”。 但不完全匹配。 也就是说,例如英语美国,如果你设置语音“Fred”,voiceWithLanguage将返回“Fred”,这很酷。 但如果你将声音设置为“Nicky”,则voiceWithLanguage将返回“Nicky”以外的其他内容。

我问这是因为我的应用程序正在使用voiceWithLanguage。 当用户将iOS升级到iOS 12时,他们报告说他们听到了不同的声音。 我相信在升级到iOS 12之后,voiceWithLanguage会返回不同的声音。虽然我无法在相同类型的设备上重现它。

当然,我可以开始使用voiceWithIdentifier。 但只是好奇这个声音和语言。

[没有解决方案]我也遇到了同样的问题。

首先,通过设置不同的语音

Accessibility -> Speech -> Voices
or 
Accessibility -> VoiceOver -> Speech -> Voices

然后

AVSpeechSynthesisVoice(language: language)

它不会在iOS版12.0.1影响AVSpeechSynthesizer(它适用于iOS 11.x的和iOS 12.0.0)

我还在iOS 12.0.1上发现了另外两件事

首先,使用时不再提供Siri语音

AVSpeechSynthesisVoice(identifier: "com.apple.ttsbundle.siri_male_ja-JP_compact")

其次,如果我没有设置语音标识符, 那么该语言环境中的女性Siri会说出该文本。 它也不受首选语音设置的影响。 顺便说一句,我仍然无法找到男性Siri说什么,但是......哈哈

...返回的声音在iOS版本之间甚至在不同设备之间发生了变化吗?

我只在iOS 12中发现了语音合成,因此我无法向您提供有关以前版本的任何信息,但我知道默认语音是设备支持语言的内置语音。

由于在实例化AVSpeechSynthesisVoice类时仅使用BCP 47代码指定语音的语言和语言环境,因此您的代码采用可为许多用户定制的设备的默认语音

...例如英语美国,如果你设置语音“Fred”voiceWithLanguage将返回“Fred”,这很酷。 但如果你将声音设置为“Nicky”,则voiceWithLanguage将返回“Nicky”以外的其他内容。

我做了很多测试(iOS 12.3.1,Swift 5.0,iPhone X,iPhone 7 Plus),包括你提到的那个,当我改变它时它总是返回我设备支持语言的内置语音。

在此输入图像描述

我无法重现你的问题。

...当然我可以开始使用voiceWithIdentifier

这正是我推荐的,如果未安装带有标识符的指定语音,则采用默认语音:它将减少许多用户听到的可能不同的声音。

总而言之,使用BCP 47代码(“en-US”,“fr-FR”......)会产生要考虑的设备的内置语音,这可能会导致听到不同的声音。自定义设置: 决定[AVSpeechSynthesisVoice voiceWithLanguage] (ObjC) 返回的默认语音

如果需要,可以在此WWDC详细摘要中找到选择正确语音的介绍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM