|
|
|
@ -588,10 +588,10 @@ class TranslationController extends GetxController with WidgetsBindingObserver { |
|
|
|
await _translationService.initialize(); |
|
|
|
|
|
|
|
// 初始化 ASR 服务时,明确指定需要支持的语言 |
|
|
|
final List<String> asrSupportedLanguages = [ |
|
|
|
sourceLanguageCode.value, |
|
|
|
targetLanguageCode.value |
|
|
|
]; |
|
|
|
// final List<String> asrSupportedLanguages = [ |
|
|
|
// sourceLanguageCode.value, |
|
|
|
// targetLanguageCode.value |
|
|
|
// ]; |
|
|
|
//Logger.info('2初始化ASR服务,支持语言: $asrSupportedLanguages'); |
|
|
|
|
|
|
|
//await _asrService.initialize(supportedLanguages: asrSupportedLanguages); |
|
|
|
@ -811,6 +811,12 @@ class TranslationController extends GetxController with WidgetsBindingObserver { |
|
|
|
|
|
|
|
/// 配置通话模式 |
|
|
|
Future<void> _configureCallMode() async { |
|
|
|
final List<String> callModeLanguages = [ |
|
|
|
sourceLanguageCode.value, |
|
|
|
targetLanguageCode.value |
|
|
|
]; |
|
|
|
Logger.info('1初始化AST服务,支持语言: $callModeLanguages'); //ast=asr+translate |
|
|
|
await _astService.initialize(supportedLanguages: callModeLanguages); |
|
|
|
bleManager.openA2DPDecoder(); |
|
|
|
_audioSourceType = true; |
|
|
|
isTtsEnabled.value = false; |
|
|
|
@ -1456,27 +1462,34 @@ class TranslationController extends GetxController with WidgetsBindingObserver { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// 重新初始化ASR服务以支持新的语言 |
|
|
|
/// 重新初始化ASR服务 |
|
|
|
Future<void> _reinitializeAsrService() async { |
|
|
|
try { |
|
|
|
//1.统一先停止旧识别 |
|
|
|
await stopRecognition(); |
|
|
|
|
|
|
|
final List<String> asrSupportedLanguages = [ |
|
|
|
sourceLanguageCode.value, |
|
|
|
targetLanguageCode.value |
|
|
|
]; |
|
|
|
|
|
|
|
Logger.info('重新初始化ASR服务,支持语言: $asrSupportedLanguages'); |
|
|
|
|
|
|
|
await _asrService.initialize(supportedLanguages: asrSupportedLanguages); |
|
|
|
late final List<String> asrSupportedLanguages; |
|
|
|
|
|
|
|
var recognitionStream = await _asrService.recognizeCallback(); |
|
|
|
_recognitionSubscription?.cancel(); |
|
|
|
_recognitionSubscription = |
|
|
|
recognitionStream.listen(_handleRecognitionEvent); |
|
|
|
if (currentMode.value == 'audioVideo') { |
|
|
|
asrSupportedLanguages = [sourceLanguageCode.value]; |
|
|
|
} else { |
|
|
|
asrSupportedLanguages = [ |
|
|
|
sourceLanguageCode.value, |
|
|
|
targetLanguageCode.value |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
if (currentMode.value == "call") { |
|
|
|
_initializeCallModeTranslationService(); |
|
|
|
} else { |
|
|
|
Logger.info('重新初始化ASR服务,支持语言: $asrSupportedLanguages'); |
|
|
|
|
|
|
|
await _asrService.initialize(supportedLanguages: asrSupportedLanguages); |
|
|
|
|
|
|
|
var recognitionStream = await _asrService.recognizeCallback(); |
|
|
|
_recognitionSubscription?.cancel(); |
|
|
|
_recognitionSubscription = |
|
|
|
recognitionStream.listen(_handleRecognitionEvent); |
|
|
|
} |
|
|
|
Logger.info('ASR服务重新初始化成功'); |
|
|
|
} catch (e) { |
|
|
|
|