NSVOICELOCALOCALEIDEFIER的参考字符串在哪里



我想用swift在OSX上进行文字,而语音用与系统设定的偏好不同的语言说话。我相信这样做的正确方法是使用NSVOICELOCALOCALEIDIDER。我在API文档中看到了这一点:

NSVOICELOCALEIDENDIFIER

语音的语言。NSString

声明

nsString *const nsvoicelocaleidentifier;

讨论

典型的位置标识符字符串描述声音的语言环境。地方通常由三个部分组成订购的信息:语言代码,区域代码和变体代码。请参阅有关NSlocale类或国际化和本地化指南以获取更多信息。

我已经通过链接梳理了有关NSlocale类,国际化和本地化指南,下载的示例代码等文档的文档。有人知道这些语言,区域和变体代码是什么以及它们如何格式化?

非常感谢。

一起缝合一些事情 - 首先要在哪里应得的信用,这要归功于Eric Aya解释了如何获得Xcode Playground进行语音综合,乔治·华纳(George Warner)用于示例代码打印出示例代码可用的声音和位置,当然还有上面评论中的马特,他们将我带到了工作路径。除非我这么错误,否则看来各种声音围绕特定语言而定向。所以我相信您为位置设置了声音。

这是Xcode Playground的设置:

import Cocoa
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true

这是用西班牙语讲话的方法:

let synth = NSSpeechSynthesizer()
synth.setVoice( "com.apple.speech.synthesis.voice.paulina.premium" )
synth.startSpeaking( "Hola Mundo mañana" )

我怎么知道com.apple.speech.synthesis.voice.paulina.premium用西班牙语讲话?

for voiceIdentifierString: String in NSSpeechSynthesizer.availableVoices() {
    var voiceLocaleIdentifier = ( NSSpeechSynthesizer.attributes( forVoice: voiceIdentifierString )[ NSVoiceLocaleIdentifier ] as! String )
    print( "(voiceIdentifierString) speaks (voiceLocaleIdentifier)" )
}

如果我的假设错了,纠正我。我正在为任何可能遇到类似需求的人发布此信息。

相关内容

最新更新