|
|
@ -128,6 +128,8 @@ class TranslationController extends GetxController with WidgetsBindingObserver { |
|
|
|
|
|
|
|
|
if (mode == 'call') { |
|
|
if (mode == 'call') { |
|
|
await _initializeCallModeTranslationService(); |
|
|
await _initializeCallModeTranslationService(); |
|
|
|
|
|
} else { |
|
|
|
|
|
_reinitializeAsrService(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -454,6 +456,19 @@ class TranslationController extends GetxController with WidgetsBindingObserver { |
|
|
Future<void> _initializeCallModeTranslationService() async { |
|
|
Future<void> _initializeCallModeTranslationService() async { |
|
|
try { |
|
|
try { |
|
|
Logger.info('开始初始化通话模式语音翻译服务'); |
|
|
Logger.info('开始初始化通话模式语音翻译服务'); |
|
|
|
|
|
|
|
|
|
|
|
// 初始化 ASR 服务时,明确指定需要支持的语言 |
|
|
|
|
|
final List<String> 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<String> callModeLanguages = [ |
|
|
final List<String> callModeLanguages = [ |
|
|
sourceLanguageCode.value, |
|
|
sourceLanguageCode.value, |
|
|
targetLanguageCode.value |
|
|
targetLanguageCode.value |
|
|
|