【问题标题】:determining user's preferred AVSpeechSynthesisVoice for a given language确定给定语言的用户首选 AVSpeechSynthesisVoice
【发布时间】:2018-12-12 05:01:32
【问题描述】:

我的 iOS 应用程序提供多种语言的AVSpeechSynthesizer 支持(不仅仅是设备的当前语言)。
Settings->General->Accessibility->Speech->Voices->Spanish 中,用户可以将首选语音设置为“西班牙语(西班牙)” 或 "Spanish (Mexico)"(分别对应于 es-ESes-MX)。
同样葡萄牙语(pt-PT、pt-BR)、法语(fr-FR、fr-CA)等

如果我的一位用户想让我的应用使用西班牙语短语,我如何确定用户在“设置”中选择了哪些可用的西班牙语语音?

我测试了[AVSpeechSynthesisVoice speechVoices],看看当用户偏好发生变化时声音的顺序是否会发生变化,但答案似乎是否定的。
[AVSpeechSynthesisVoice voiceWithLanguage:] 需要完整的语言环境字符串,因此即使默认情况下有两个西班牙语语音可用,传入“es”也会使您为零。
我扫描了[NSUserDefaults standardUserDefaults] 中的所有键,但那里没有任何相关信息。我浏览了UIAccessibility 文档,但没有找到我需要的东西。

【问题讨论】:

    标签: ios text-to-speech avspeechsynthesizer


    【解决方案1】:

    对我来说工作的方法如下:

    let defVoice = AVSpeechSynthesisVoice(language: NSLocale.current.languageCode)
    

    我测试过英语,其中有很多变体。它返回用户在“设置”中选择的语音作为他们当前区域设置的首选语音。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-18
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 2020-12-21
      • 2013-09-15
      相关资源
      最近更新 更多