You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.4 KiB
157 lines
4.4 KiB
package echomeet
|
|
|
|
const (
|
|
MaxShortAudioProcess = 10
|
|
MaxLongAudioProcess = 10
|
|
MaxAIAwaitProcess = 10
|
|
TaskTypeShortAudioAwait = "Echomeet:short_audio_await"
|
|
TaskTypeShortAudioProcess = "Echomeet:short_audio_process"
|
|
TaskTypeAIAwait = "Echomeet:ai_await"
|
|
TaskTypeAIAwaitProcess = "Echomeet:ai_process"
|
|
// TranscribeQueryMinInterval 主动查询第三方转写服务的最小间隔(秒)
|
|
TranscribeQueryMinInterval int64 = 10
|
|
// TranscribePollConcurrency 轮询第三方查询的并发度,避免 for 串行被单条慢请求拖住整轮
|
|
TranscribePollConcurrency = 10
|
|
)
|
|
|
|
// toByteDanceLang 将内部 BCP-47 语言码转换为字节跳动 audomodel 支持的格式。
|
|
// 不在支持列表内返回空字符串,调用方应路由到其他引擎。
|
|
var bcp47ToByteDance = map[string]string{
|
|
"": "",
|
|
"zh-CN": "zh", "zh-TW": "zh", "zh-HK": "zh",
|
|
"en-US": "en-US", "en-GB": "en-US",
|
|
"ja-JP": "ja-JP",
|
|
"ko-KR": "ko-KR",
|
|
"id-ID": "id-ID",
|
|
"es-MX": "es-MX", "es-ES": "es-MX",
|
|
"pt-BR": "pt-BR", "pt-PT": "pt-BR",
|
|
"de-DE": "de-DE",
|
|
"fr-FR": "fr-FR",
|
|
"fil-PH": "fil-PH",
|
|
"ms-MY": "ms-MY",
|
|
"th-TH": "th-TH",
|
|
"ar-SA": "ar-SA",
|
|
}
|
|
|
|
func toByteDanceLang(bcp47 string) (lang string, supported bool) {
|
|
lang, supported = bcp47ToByteDance[bcp47]
|
|
return
|
|
}
|
|
|
|
// toDashScopeLang 将内部 BCP-47 语言码转换为 DashScope Paraformer-v2 支持的 language_hints 格式。
|
|
// 返回空字符串表示该语言不传 hints,由 DashScope 自动检测。
|
|
var bcp47ToDashScope = map[string]string{
|
|
"zh-CN": "zh", "zh-TW": "zh", "zh-HK": "zh",
|
|
"yue-HK": "yue",
|
|
"en-US": "en", "en-GB": "en",
|
|
"ja-JP": "ja",
|
|
"ko-KR": "ko",
|
|
"ru-RU": "ru", "ru-UA": "ru",
|
|
"vi-VN": "vi",
|
|
"tr-TR": "tr",
|
|
"pl-PL": "pl",
|
|
"nl-NL": "nl",
|
|
"it-IT": "it",
|
|
"uk-UA": "uk",
|
|
"de-DE": "de",
|
|
"fr-FR": "fr",
|
|
"es-ES": "es", "es-MX": "es",
|
|
"pt-BR": "pt", "pt-PT": "pt",
|
|
"ar-SA": "ar",
|
|
"id-ID": "id",
|
|
"ms-MY": "ms",
|
|
"th-TH": "th",
|
|
"fil-PH": "fil",
|
|
}
|
|
|
|
// toDashScopeLang 返回 DashScope language_hints 值,空字符串表示自动检测
|
|
func toDashScopeLang(bcp47 string) string {
|
|
return bcp47ToDashScope[bcp47] // 不在 map 中自动返回 ""
|
|
}
|
|
|
|
// ============== 翻译平台语言码转换 ==============
|
|
// 输入统一是客户端的 BCP-47 码(如 zh-CN / en-US / ja-JP);
|
|
// 每个平台有自己的接受格式,逐家做映射。未识别一律返回原值,让平台自己决定是否报错,
|
|
// 绝对不要 fallback 成 "zh"——那会让"未知语言→中文"出现在调用栈深处难以发现。
|
|
|
|
// 火山翻译 / 阿里 MT:短码 zh / en / ja / ...
|
|
var bcp47ToShortLang = map[string]string{
|
|
"zh-CN": "zh", "zh-TW": "zh", "zh-HK": "zh",
|
|
"en-US": "en", "en-GB": "en",
|
|
"ja-JP": "ja",
|
|
"ko-KR": "ko",
|
|
"id-ID": "id",
|
|
"es-MX": "es", "es-ES": "es",
|
|
"pt-BR": "pt", "pt-PT": "pt",
|
|
"de-DE": "de",
|
|
"fr-FR": "fr",
|
|
"fil-PH": "fil",
|
|
"ms-MY": "ms",
|
|
"th-TH": "th",
|
|
"ar-SA": "ar",
|
|
"ru-RU": "ru", "ru-UA": "ru",
|
|
"vi-VN": "vi",
|
|
"tr-TR": "tr",
|
|
"pl-PL": "pl",
|
|
"nl-NL": "nl",
|
|
"it-IT": "it",
|
|
"uk-UA": "uk",
|
|
}
|
|
|
|
// 火山翻译:BCP-47 → 短码(zh / en / ja ...)
|
|
func toByteDanceTranslateLang(bcp47 string) string {
|
|
if v, ok := bcp47ToShortLang[bcp47]; ok {
|
|
return v
|
|
}
|
|
return bcp47
|
|
}
|
|
|
|
// 阿里 MT:与火山相同的短码体系
|
|
func toAliTranslateLang(bcp47 string) string {
|
|
if v, ok := bcp47ToShortLang[bcp47]; ok {
|
|
return v
|
|
}
|
|
return bcp47
|
|
}
|
|
|
|
// Google Cloud Translation:直接接受 BCP-47(en / en-US / zh-CN 都支持),原样透传
|
|
func toGoogleTranslateLang(bcp47 string) string {
|
|
return bcp47
|
|
}
|
|
|
|
// Azure Translator:中文要 zh-Hans / zh-Hant,其他用短 ISO(en / ja / ko ...)
|
|
var bcp47ToMicrosoft = map[string]string{
|
|
"zh-CN": "zh-Hans", "zh-TW": "zh-Hant", "zh-HK": "zh-Hant",
|
|
"en-US": "en", "en-GB": "en",
|
|
"ja-JP": "ja",
|
|
"ko-KR": "ko",
|
|
"id-ID": "id",
|
|
"es-MX": "es", "es-ES": "es",
|
|
"pt-BR": "pt", "pt-PT": "pt",
|
|
"de-DE": "de",
|
|
"fr-FR": "fr",
|
|
"fil-PH": "fil",
|
|
"ms-MY": "ms",
|
|
"th-TH": "th",
|
|
"ar-SA": "ar",
|
|
"ru-RU": "ru", "ru-UA": "ru",
|
|
"vi-VN": "vi",
|
|
"tr-TR": "tr",
|
|
"pl-PL": "pl",
|
|
"nl-NL": "nl",
|
|
"it-IT": "it",
|
|
"uk-UA": "uk",
|
|
}
|
|
|
|
func toMicrosoftTranslateLang(bcp47 string) string {
|
|
if v, ok := bcp47ToMicrosoft[bcp47]; ok {
|
|
return v
|
|
}
|
|
return bcp47
|
|
}
|
|
|
|
// isByteDanceSupported 判断 BCP-47 语言是否被字节跳动支持
|
|
func isByteDanceSupported(bcp47 string) bool {
|
|
_, ok := bcp47ToByteDance[bcp47]
|
|
return ok
|
|
}
|
|
|