Xcode Objective-C:即使iPhone设置为另一种语言,文本到语音始终是英语



我有这个代码让我的应用程序读取文本

self->myUtterance = [AVSpeechUtterance speechUtteranceWithString:@"Ciao come stai?"];
self->myUtterance.rate = 0.5;
self-> myUtterance.pitchMultiplier = 1.5;
//self-> myUtterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"it-IT"];
self->synth = [[AVSpeechSynthesizer alloc] init];
[self->synth speakUtterance:self->myUtterance];

我读到过"默认情况下,AVSpeechSynthesizer会根据用户当前的语言偏好使用语音说话。"但它不起作用。

事实上,即使我的iPhone全部设置为意大利语和地区,语音也是英语。

如果我删除对这行代码的注释

//self-> myUtterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"it-IT"];

然后语音是意大利语,但我希望根据用户的语言偏好自动设置语言。

您可以使用[[[NSBundle mainBundle] preferredLocalizations] firstObject]查找应用程序的当前语言。

(如果是nil,或者你的应用程序没有本地化,你可以使用[[NSLocale currentLocale] languageCode],但这不考虑设置中指定的语言,只要用户只更改应用程序的语言,而不是所有设备的语言(

通过这种方式,您可以使用[AVSpeechSynthesisVoice voiceWithLanguage:]指定语言,并确保您使用了应用程序语言。

否则,您可以让用户选择口语。

相关内容

  • 没有找到相关文章

最新更新