为什么AVSpeechUtterance.language骗我?

Why AVSpeechUtterance.language cheating me?

我正在开发一款具有文本转语音功能的应用程序。我还让用户通过更改 AVSpeechUtterancevoice 来选择他们想要的语言。语言是美式英语 (en-us) 或英式英语 (en-uk)。

我通过综合测试了应用程序

Stack Overflow is a question and answer site for professional and enthusiast programmers

在演讲中,我能清楚地听到"answer"中的-er。所以这是美式英语。但是我居然选了英式英语!

然后我选择了美式英语,同样的,准确的声音出现了!

我认为这是因为我实际上并没有将 voice 属性 设置为 en-uk。所以我添加了一些断点并检查。原来我did设置为en-uk!

这是为什么?是英式英语不可用吗?还是我输入的语言环境有误? en-uk 不对吗?

尝试使用en-gb。根据 ISO 3166-1,"UK" 是已弃用的国家/地区代码。