iOS 7 AVSpeechSynthesisVoice 可用的 BCP-47 语音代码有哪些?

7

今天我对iOS7中的语音合成功能感到非常兴奋。

我想选择男性声音(在OSX中默认为alex)。

我不知道他的BCP-47代码是什么,顺便问一下如何获取所有语音代码的完整列表。


你知道是否可以添加自定义语音,或标准语音的模型存储在文件系统的哪里吗?想知道是否有一种方法可以破解自定义语音。 - Crashalot
3个回答

10

iOS 8 增加了希伯来语,但在 iOS 9 到 12 中没有增加新的语言:

ar-SA       Arabic      Saudi Arabia
cs-CZ       Czech       Czech Republic
da-DK       Danish      Denmark
de-DE       German      Germany
el-GR       Modern Greek        Greece
en-AU       English     Australia
en-GB       English     United Kingdom
en-IE       English     Ireland
en-US       English     United States
en-ZA       English     South Africa
es-ES       Spanish     Spain
es-MX       Spanish     Mexico
fi-FI       Finnish     Finland
fr-CA       French      Canada
fr-FR       French      France
he-IL       Hebrew      Israel
hi-IN       Hindi       India
hu-HU       Hungarian       Hungary
id-ID       Indonesian      Indonesia
it-IT       Italian     Italy
ja-JP       Japanese        Japan
ko-KR       Korean      Republic of Korea
nl-BE       Dutch       Belgium
nl-NL       Dutch       Netherlands
no-NO       Norwegian       Norway
pl-PL       Polish      Poland
pt-BR       Portuguese      Brazil
pt-PT       Portuguese      Portugal
ro-RO       Romanian        Romania
ru-RU       Russian     Russian Federation
sk-SK       Slovak      Slovakia
sv-SE       Swedish     Sweden
th-TH       Thai        Thailand
tr-TR       Turkish     Turkey
zh-CN       Chinese     China
zh-HK       Chinese     Hong Kong
zh-TW       Chinese     Taiwan

编辑:以下是在Swift中打印上述内容的方法:

func printLanguages() {
    AVSpeechSynthesisVoice.speechVoices().forEach { (voice) in
        let language = Locale.current.localizedString(forLanguageCode: voice.language)!
        let components = Locale.components(fromIdentifier: voice.language)
        let country = Locale.current.localizedString(forRegionCode: components["kCFLocaleCountryCodeKey"]!)!
        print("\(voice.language) \t \(language) \t\t \(country)")
    }
}

你需要导入AVFoundation。

如何获取与您上面编写的相同列表 - Anil

9
以下是获取可用语音的BCP-47代码的方法:
```html

以下是获取可用语音的BCP-47代码的方法:

```
for (AVSpeechSynthesisVoice *voice in [AVSpeechSynthesisVoice speechVoices]) {
    NSLog(@"%@", voice.language);
}

Alex的语言环境为"英语 - 美国"(en-US),你可以在OS X的语音与听写控制面板中看到此设置(点击"系统语音"下拉框中的"自定义...")。


你知道是否可以添加自定义语音,或标准语音模型存储在文件系统的哪个位置吗?想知道是否有办法破解自定义语音。 - Crashalot

5

iOS 7.1版本开始,以下BCP-47代码有36种语音:

ar-SA
cs-CZ
da-DK
de-DE
el-GR
en-AU
en-GB
en-IE
en-US
en-ZA
es-ES
es-MX
fi-FI
fr-CA
fr-FR
hi-IN
hu-HU
id-ID
it-IT
ja-JP
ko-KR
nl-BE
nl-NL
no-NO
pl-PL
pt-BR
pt-PT
ro-RO
ru-RU
sk-SK
sv-SE
th-TH
tr-TR
zh-CN
zh-HK
zh-TW

你知道是否可以添加自定义语音,或者标准语音模型存储在文件系统的哪里吗?想知道是否有一种方法来黑客自定义语音。 - Crashalot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接