|
|
@ -1134,13 +1134,31 @@ object AgentService : CoroutineScope { |
|
|
Log.i(TAG, "设置支持的语言: ${languages.joinToString(", ")}") |
|
|
Log.i(TAG, "设置支持的语言: ${languages.joinToString(", ")}") |
|
|
|
|
|
|
|
|
// 重新初始化ASR服务以应用新的语言设置 |
|
|
// 重新初始化ASR服务以应用新的语言设置 |
|
|
val asrSuccess = azureAsrHelper?.initialize( |
|
|
val asrSuccess = AzureAsrHelper(context).apply { |
|
|
subscriptionKey = this.azureSpeechKey, |
|
|
// 使用协程处理异步初始化 |
|
|
region = this.azureSpeechRegion, |
|
|
CoroutineScope(Dispatchers.IO).launch { |
|
|
supportedLanguages = languages.toTypedArray(), |
|
|
//获取语音识别的语种 |
|
|
audioSourceType = audioSourceType |
|
|
val supportedLanguagesConfig = config["supportedLanguages"] as? List<String> |
|
|
) ?: false |
|
|
val supportedLanguages = supportedLanguagesConfig?.toTypedArray() |
|
|
|
|
|
?: arrayOf("zh-CN") // 默认支持多语言 |
|
|
|
|
|
language = supportedLanguages[0] |
|
|
|
|
|
val asrInitSuccess = initialize( |
|
|
|
|
|
subscriptionKey = config["azureSpeechKey"]?.toString() ?: "", |
|
|
|
|
|
region = config["azureSpeechRegion"]?.toString() ?: "", |
|
|
|
|
|
supportedLanguages = supportedLanguages, |
|
|
|
|
|
audioSourceType = if (isExternalActive) AzureAsrHelper.AudioSourceType.EXTERNAL |
|
|
|
|
|
else AzureAsrHelper.AudioSourceType.MICROPHONE |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if (asrInitSuccess) { |
|
|
|
|
|
withContext(Dispatchers.Main) { |
|
|
|
|
|
recognizeCallback() |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
Log.w(TAG, "Azure ASR初始化失败") |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
// 同时更新TTS语言设置 |
|
|
// 同时更新TTS语言设置 |
|
|
val ttsSuccess = updateTtsLanguage(languages.first()) // 使用第一个语言作为TTS语言 |
|
|
val ttsSuccess = updateTtsLanguage(languages.first()) // 使用第一个语言作为TTS语言 |
|
|
|
|
|
|
|
|
|