diff --git a/lib/modules/translation/controllers/translation_controller.dart b/lib/modules/translation/controllers/translation_controller.dart index e0af016e1..f20d097ac 100644 --- a/lib/modules/translation/controllers/translation_controller.dart +++ b/lib/modules/translation/controllers/translation_controller.dart @@ -128,6 +128,8 @@ class TranslationController extends GetxController with WidgetsBindingObserver { if (mode == 'call') { await _initializeCallModeTranslationService(); + } else { + _reinitializeAsrService(); } } @@ -454,6 +456,19 @@ class TranslationController extends GetxController with WidgetsBindingObserver { Future _initializeCallModeTranslationService() async { try { Logger.info('开始初始化通话模式语音翻译服务'); + + // 初始化 ASR 服务时,明确指定需要支持的语言 + final List asrSupportedLanguages = [targetLanguageCode.value]; + Logger.info('初始化ASR服务,支持语言: $asrSupportedLanguages'); + + await _asrService.initialize(supportedLanguages: asrSupportedLanguages); + + // 获取识别事件流 + var recognitionStream = await _asrService.recognizeCallback(); + _recognitionSubscription?.cancel(); + _recognitionSubscription = + recognitionStream.listen(_handleRecognitionEvent); + final List callModeLanguages = [ sourceLanguageCode.value, targetLanguageCode.value