语言代码
各接口推荐使用同一套语言短代码。
zh、yue、en、ja。各接口还接受哪些写法、如何归一,见下文;播报示例筛选和声音库是例外。本页讲的是音频或文本本身的语言,与 App、CLI 的界面语言无关,也不是语言模型。
代码写法
以下规则适用于转录、对齐、文本归一化、播报合成与 Realtime,以及调用它们的 MCP 工具和 CLI 选项。两处不做归一的例外见例外。
- 推荐写法:ISO 639-1 两字母代码。唯一的三字母代码是粤语
yue。 - 大小写与分隔符:匹配时忽略大小写和首尾空白,
_与-等价。ZH、en_US、ja都有效。 - 地区与文字子标签:可以传完整的 BCP-47 标签,会落到对应语言:
en-US、en-GB→en,pt-BR→pt,zh-CN、zh-Hans、zh-TW、zh-Hant-TW→zh。 - 其他写法:ISO 639-3 代码(
eng、deu、cmn、fil)和英文名称(English、Mandarin、Cantonese)同样能识别。新接入建议统一用短代码。 - 响应:转录、对齐、文本归一化返回的
language字段是解析后的代码,例如zh或yue。
| 传入 | 解析为 |
|---|---|
zh、zh-CN、zh-Hans、zh-TW、zh-HK、zh-Hant、cmn、Mandarin | zh |
yue、zh-yue、Cantonese | yue |
en、en-US、en-GB、eng、English | en |
pt、pt-BR、pt-PT | pt |
tl、fil、Filipino | tl |
nb、nob、nor、Norwegian | nb |
zh-HK 和 zh-TW 表示中文(普通话),不是粤语。粤语音频或文本请传 yue。中文的繁简不算单独的语言。转录和对齐把 zh-Hant 当作 zh;文本归一化在 tn 方向会按显式中文标签决定新生成读法的字形:zh-Hant,或地区为 TW、HK、MO 时输出繁体;文字子标签优先于地区,所以 zh-Hans-TW 仍是简体;原文保留的部分不做字形转换,itn 不受影响;翻译则把繁体中文作为独立目标语言 zh-hant。
省略、und 与 auto
代码写法是统一的;不传 language 时怎么处理、有哪些特殊取值,按能力而定:
| 能力 | 省略 | und | auto |
|---|---|---|---|
| 转录 | 从音频自动检测 | 拒绝 | 拒绝 |
| 对齐 | 从参考文本判定语言;判定不出时按不带语言对齐 | 不提供语言信息:逐词在所有语言里匹配,归一化按文本逐段选读法 | 拒绝 |
| 文本归一化 | 拒绝,language 必填 | 不提供语言信息:按文本逐段选读法 | 拒绝 |
| 播报 | 自动选择 | 不是播报取值 | 与省略相同 |
und 是 BCP-47 中「未确定」的标签,UND、und-Latn 都按 und 处理。
各接口的 language 参数
| 接口 | 参数 | 必填 | 省略时 | 不支持的取值 |
|---|---|---|---|---|
POST /v1/audio/transcriptions | language(multipart) | 否 | 从音频检测 | 400 asr_language_unsupported,param=language |
POST /v1/audio/alignments | language(multipart) | 否 | 从参考文本判定 | 标签格式不对返回 400 bad_request;所选模型不覆盖该语言返回 422 language_unsupported;都带 param=language |
POST /v1/text/normalizations | language(JSON) | 是 | 400 normalization_invalid_request | 无法识别的标签返回 400 normalization_invalid_request;没有归一化规则的语言返回 422 normalization_language_unsupported |
POST /v1/audio/speech | language、segments[].language | 否 | 自动选择 | 422 language_unsupported |
POST /v1/audio/voices | language(multipart) | 否 | 按 zh-CN 保存 | — |
GET /v1/audio/speech/examples | language(查询参数) | 否 | 不筛选 | — |
WS /v1/realtime | session.audio.input.transcription.language | 否 | 从音频检测 | — |
WS /v1/realtime | session.audio.output.language | 否 | 使用识别出的说话语言 | — |
Realtime 的 session.audio.output.language 是对话语言:识别出说话语言之前,内置音色按它选择参考 profile;识别出之后以识别结果为准。/v1/text/segmentations 和说话人相关接口不接收语言。声音库按传入的标签保存,见例外。
MCP 工具与 CLI 选项把同样的取值交给同样的能力:
| MCP 工具 | CLI 选项 | 能力 |
|---|---|---|
edgespeak_transcribe、edgespeak_transcribe_file:language | edgespeak-cli transcribe --language | 转录 |
edgespeak_align:language | edgespeak-cli align --language | 对齐 |
edgespeak_create_speech:language | edgespeak-cli speech --language | 播报 |
edgespeak_add_voice:language | edgespeak-cli voices add --language | 声音库,默认 zh-CN |
edgespeak_speech_examples:language | edgespeak-cli speech-examples --language | 示例筛选 |
edgespeak-cli transcribe --language 需要能连上网关(桌面 App 或 edgespeak-cli serve)。连不上时命令直接报错退出,不会忽略这个选项。
例外
- 播报示例筛选(
GET /v1/audio/speech/examples、edgespeak_speech_examples、edgespeak-cli speech-examples):只判断第一个子标签是不是zh,其余取值一律返回英文示例,包括cmn、Mandarin、yue以及带首尾空格的zh。请传zh或en。 - 声音库(
POST /v1/audio/voices、edgespeak_add_voice、edgespeak-cli voices add):只去掉首尾空白,按传入的标签原样保存为音色的locale和names的键,English不会被转成en或en-US。请传zh-CN、en-US这类 locale。
常用语言速查
使用默认对齐模型时,表中所有语言都支持对齐。
| 语言 | 代码 | 也可传 | 转录 | 归一化 | 翻译 |
|---|---|---|---|---|---|
| 中文(普通话) | zh | zh-CN、zh-TW、zh-Hans、zh-Hant、cmn | ✓ | ✓ | ✓ |
| 粤语 | yue | zh-yue | ✓ | — | ✓ |
| 英语 | en | en-US、en-GB | ✓ | ✓ | ✓ |
| 日语 | ja | ja-JP | ✓ | ✓ | ✓ |
| 韩语 | ko | ko-KR | ✓ | ✓ | ✓ |
| 法语 | fr | fr-FR、fr-CA | ✓ | ✓ | ✓ |
| 德语 | de | de-DE | ✓ | ✓ | ✓ |
| 西班牙语 | es | es-ES、es-MX | ✓ | ✓ | ✓ |
| 葡萄牙语 | pt | pt-BR、pt-PT | ✓ | ✓ | ✓ |
| 俄语 | ru | ru-RU | ✓ | ✓ | ✓ |
| 阿拉伯语 | ar | ar-SA | ✓ | ✓ | ✓ |
| 意大利语 | it | it-IT | ✓ | ✓ | ✓ |
| 越南语 | vi | vi-VN | ✓ | ✓ | ✓ |
| 泰语 | th | th-TH | ✓ | ✓ | ✓ |
| 印尼语 | id | id-ID | ✓ | ✓ | ✓ |
| 印地语 | hi | hi-IN | ✓ | ✓ | ✓ |
播报支持哪些语言取决于模型,见播报。
各能力支持的语言
各能力覆盖的语言范围不同。请按实际调用的能力核对,不要默认所有语言处处可用。
转录
30 种语言:zh en yue ar de fr es pt id it ko ru th vi ja tr hi ms nl sv da fi pl cs tl fa el hu mk ro。
所有转录模型使用同一份列表。
对齐
| 模型 | 语言 |
|---|---|
EdgeSpeak/Lattice-2(默认) | 语言目录中的全部语言、混合语言文本、und,以及 nan、wuu 这类格式合法的其他标签(后者没有词典读法,效果弱于 und) |
EdgeSpeak/Lattice-1 | 仅 zh、en、de。und 和目录外标签返回 400 bad_request;目录内的其他语言返回 422 language_unsupported |
目录外的标签会保留文字与地区子标签,例如 nan-Hant。对齐如何应用文本归一化见强制对齐。
文本归一化
55 种语言,tn 与 itn 相同:ar az bg bs ca cs da de el en es et fa fi fr he hi hr hu hy id is it ja ka kk km ko lo lt lv mk mn mr ms my nb nl pl pt ro ru sk sl sq sr sv sw ta th tl tr uk vi zh。
粤语 yue 没有归一化规则。运行中服务的实际列表和各语言可用类别见 GET /v1/models 中 EdgeSpeak/Skylark 条目的 x_edgespeak.normalization.languages_by_mode 与 classes_by_language。
播报
每个播报模型支持的语言各不相同。以 GET /v1/models 中该模型的 supported_languages 为准;x_edgespeak.speech_language.open_set 为 true 时,模型还接受列表以外的 ISO 639 代码。列表内语言的地区和文字变体(如 zh-TW、en-US)同样可用,auto 总是可用。
| 模型 | 语言 |
|---|---|
k2-fsa/OmniVoice | 开放集合:语言目录全部语言及其他 ISO 639 代码 |
Qwen/Qwen3-TTS-* | zh en de fr es pt it ko ru ja |
IndexTeam/IndexTTS-2.5 | zh en ja es ar |
FireRedTeam/FireRedTTS3 | zh yue en de fr es it pt ru ja ko ar cs nl fi el hi id pl ro th tr uk vi,另有 21 种写作 zh-x-<name> 的汉语方言,如 zh-x-sichuan |
FireRedTeam/FireRedTTS3-Instruct | 同样 24 种语言,不含方言 |
openbmb/VoxCPM2 | zh en de ja |
BreezeBlue/Breeze-TTS-2 | zh en |
FireRedTTS3-Instruct、VoxCPM2 和 Breeze-TTS-2 本身不接收语言输入:对它们来说,language 用来挑选对应的参考音,并且仍会按列表校验。从运行中的服务列出每个模型的语言:
curl --fail-with-body "$EDGESPEAK_BASE_URL/models" \
| jq '.data[] | select(.supported_languages) | {id, supported_languages}'翻译
38 种目标语言:语言目录中标记的 36 种,外加繁体中文 zh-hant 和维吾尔语 ug。翻译标签一律小写保存,如 JSON 导出里的 target_langs 字段。翻译的用法见翻译要求怎么写。
语言目录
EdgeSpeak 识别 82 种语言。表中的代码、ISO 639-3 代码都可以作为输入;默认对齐模型覆盖全部语言。后三列标出其他能力支持哪些语言。
| 代码 | 语言 | ISO 639-3 | 转录 | 归一化 | 翻译 |
|---|---|---|---|---|---|
af | 南非荷兰语 | afr | |||
ar | 阿拉伯语 | ara arb | ✓ | ✓ | ✓ |
az | 阿塞拜疆语 | aze azj | ✓ | ||
be | 白俄罗斯语 | bel | |||
bg | 保加利亚语 | bul | ✓ | ||
bn | 孟加拉语 | ben | ✓ | ||
bo | 藏语 | bod tib | ✓ | ||
bs | 波斯尼亚语 | bos | ✓ | ||
ca | 加泰罗尼亚语 | cat | ✓ | ||
cs | 捷克语 | ces cze | ✓ | ✓ | ✓ |
cy | 威尔士语 | cym wel | |||
da | 丹麦语 | dan | ✓ | ✓ | |
de | 德语 | deu ger | ✓ | ✓ | ✓ |
el | 希腊语 | ell gre | ✓ | ✓ | |
en | 英语 | eng | ✓ | ✓ | ✓ |
es | 西班牙语 | spa | ✓ | ✓ | ✓ |
et | 爱沙尼亚语 | est ekk | ✓ | ||
eu | 巴斯克语 | eus | |||
fa | 波斯语 | fas pes | ✓ | ✓ | ✓ |
fi | 芬兰语 | fin | ✓ | ✓ | |
fr | 法语 | fra fre | ✓ | ✓ | ✓ |
ga | 爱尔兰语 | gle | |||
gu | 古吉拉特语 | guj | ✓ | ||
he | 希伯来语 | heb | ✓ | ✓ | |
hi | 印地语 | hin | ✓ | ✓ | ✓ |
hr | 克罗地亚语 | hrv | ✓ | ||
hu | 匈牙利语 | hun | ✓ | ✓ | |
hy | 亚美尼亚语 | hye | ✓ | ||
id | 印尼语 | ind | ✓ | ✓ | ✓ |
is | 冰岛语 | isl ice | ✓ | ||
it | 意大利语 | ita | ✓ | ✓ | ✓ |
ja | 日语 | jpn | ✓ | ✓ | ✓ |
ka | 格鲁吉亚语 | kat geo | ✓ | ||
kk | 哈萨克语 | kaz | ✓ | ✓ | |
km | 高棉语 | khm | ✓ | ✓ | |
kn | 卡纳达语 | kan | |||
ko | 韩语 | kor | ✓ | ✓ | ✓ |
lg | 卢干达语 | lug | |||
lo | 老挝语 | lao | ✓ | ||
lt | 立陶宛语 | lit | ✓ | ||
lv | 拉脱维亚语 | lav lvs | ✓ | ||
mi | 毛利语 | mri mao | |||
mk | 马其顿语 | mkd mac | ✓ | ✓ | |
ml | 马拉雅拉姆语 | mal | |||
mn | 蒙古语 | mon khk | ✓ | ✓ | |
mr | 马拉地语 | mar | ✓ | ✓ | |
ms | 马来语 | msa zsm | ✓ | ✓ | ✓ |
my | 缅甸语 | mya bur | ✓ | ✓ | |
nb | 书面挪威语 | nob nor | ✓ | ||
nl | 荷兰语 | nld dut | ✓ | ✓ | ✓ |
nn | 新挪威语 | nno | |||
or | 奥里亚语 | ori ory | |||
pa | 旁遮普语 | pan | |||
pl | 波兰语 | pol | ✓ | ✓ | ✓ |
pt | 葡萄牙语 | por | ✓ | ✓ | ✓ |
ro | 罗马尼亚语 | ron rum | ✓ | ✓ | |
ru | 俄语 | rus | ✓ | ✓ | ✓ |
si | 僧伽罗语 | sin | |||
sk | 斯洛伐克语 | slk slo | ✓ | ||
sl | 斯洛文尼亚语 | slv | ✓ | ||
sn | 绍纳语 | sna | |||
so | 索马里语 | som | |||
sq | 阿尔巴尼亚语 | sqi als | ✓ | ||
sr | 塞尔维亚语 | srp | ✓ | ||
st | 南索托语 | sot | |||
sv | 瑞典语 | swe | ✓ | ✓ | |
sw | 斯瓦希里语 | swa swh | ✓ | ||
ta | 泰米尔语 | tam | ✓ | ✓ | |
te | 泰卢固语 | tel | ✓ | ||
th | 泰语 | tha | ✓ | ✓ | ✓ |
tl | 他加禄语(菲律宾语) | tgl fil | ✓ | ✓ | ✓ |
tn | 茨瓦纳语 | tsn | |||
tr | 土耳其语 | tur | ✓ | ✓ | ✓ |
ts | 聪加语 | tso | |||
uk | 乌克兰语 | ukr | ✓ | ✓ | |
ur | 乌尔都语 | urd | ✓ | ||
vi | 越南语 | vie | ✓ | ✓ | ✓ |
xh | 科萨语 | xho | |||
yo | 约鲁巴语 | yor | |||
yue | 粤语 | ✓ | ✓ | ||
zh | 中文(普通话) | zho cmn | ✓ | ✓ | ✓ |
zu | 祖鲁语 | zul |
对齐:已知语言时请显式传入
不传 language 时,对齐只根据参考文本判定语言。书写系统相同的语言可能因此被混淆:例如用汉字写成的粤语文本可能被当成普通话,结果只有少数字能对上音频。显式传 language=yue 可以避免自动语言判定造成的这类偏差。
已知语言时请显式传入。und 只用于混合语言、音译文本,或没有对应代码的语言。
示例
转录粤语音频:
curl --fail-with-body "$EDGESPEAK_BASE_URL/audio/transcriptions" \
-F file=@cantonese.wav -F language=yue -F response_format=json把已知的粤语文稿对齐到同一段音频:
curl --fail-with-body "$EDGESPEAK_BASE_URL/audio/alignments" \
-F file=@cantonese.wav -F text="今日天氣好好。" -F language=yue把书面文本归一化为繁体中文读法:
curl --fail-with-body "$EDGESPEAK_BASE_URL/text/normalizations" \
-H "Content-Type: application/json" \
-d '{"text":"8:15","language":"zh-TW","mode":"tn","top_k":1}'输出示例(节选):
{
"task": "normalize",
"language": "zh",
"mode": "tn",
"alternatives": [{ "rank": 0, "text": "八點十五分" }]
}响应里返回的是解析后的代码 zh;zh-TW 标签只决定了输出繁体字。
转录语言不受支持时返回稳定错误码。请按 error.code 分支处理,不要解析 message:
{"error":{"message":"unsupported language: 'tlh'","type":"invalid_request_error","code":"asr_language_unsupported","param":"language"}}message 回显你传入的值,仅供诊断。