1

我写信是想问你一个关于 NSSpeechSynthesizer 的问题。真的很适合我,我看到的唯一奇怪的事情(对我来说)是可用的声音都是高级声音。

    NSArray* voices;
    voices = [NSpeechSynthesizer availableVoices];

例如,当我打印数组中的所有声音时,我可以看到 Silvia 和 Paolo,但看不到 Silvia Compact 和 Paolo Compact。

不幸的是,对于意大利语来说,高级版的说话方式有很多紧凑的声音没有的错误。所以我希望能够选择 Compact 版本...你们中的任何人都知道我怎样才能使它们可用吗?

非常感谢你...

4

2 回答 2

0

您可以使用availableVoices,每当声音以“.premium”结尾时,请尝试将“.premium”替换为“.compact”。这仅适用于用户已安装的声音,但这对用户来说应该不足为奇。

于 2012-06-24T21:16:31.663 回答
-1

您可以使用标识符设置(爱丽丝是紧凑的意大利语音):

let voiceId : String = "com.apple.ttsbundle.Alice-compact"

speechUtterL1 = AVSpeechUtterance(string: "dì qualcosa in italiano")
speechUtter.voice = AVSpeechSynthesisVoice(identifier: voiceId)

将语音放在文本之后,因为我发现在语音之前设置语音参数时会出现问题。

于 2018-05-09T11:51:29.123 回答