fdp 1 year ago
parent
commit
505f5b8692
  1. 45
      lib/modules/translation/controllers/translation_controller.dart

45
lib/modules/translation/controllers/translation_controller.dart

@ -539,14 +539,14 @@ class TranslationController extends GetxController {
); );
if (currentMode.value == 'faceToFace' && activeSpeaker.value == 0) { if (currentMode.value == 'faceToFace' && activeSpeaker.value == 0) {
_asrService.setPause(); _asrService.setPause();
} else { } //else {
translationHistory.add(newItem); translationHistory.add(newItem);
translationHistory.refresh(); translationHistory.refresh();
_scrollToBottom(); _scrollToBottom();
saveTranslationHistory(); saveTranslationHistory();
// 使用新项目的时间戳进行翻译 // 使用新项目的时间戳进行翻译
translateText(text, newItem.timestamp, isFinal: true); translateText(text, newItem.timestamp, isFinal: true);
} // }
} }
} }
@ -612,20 +612,20 @@ class TranslationController extends GetxController {
// 更新后滚动到底部 // 更新后滚动到底部
_scrollToBottom(); _scrollToBottom();
// 播放TTS - 只在最终结果时播放 // 播放TTS - 只在最终结果时播放
if (isTtsEnabled.value && if (isFinal) {
isFinal && if (isTtsEnabled.value && currentMode.value != 'faceToFace') {
currentMode.value != 'faceToFace') { await playTranslatedText(translationResult);
await playTranslatedText(translationResult); } else {
} else { fTFTranslationResult =
fTFTranslationResult = (fTFTranslationResult ?? '') + translationResult;
(fTFTranslationResult ?? '') + translationResult; print("translationResult=$translationResult");
if (activeSpeaker.value == 0 && !isPlayback) {
if (activeSpeaker.value == 0 && !isPlayback) { isPlayback = true;
isPlayback = true; await _ttsService.setAudioOutputDevice(lastActiveSpeaker.value);
await _ttsService.setAudioOutputDevice(lastActiveSpeaker.value); await Future.delayed(const Duration(milliseconds: 1300));
await Future.delayed(const Duration(milliseconds: 1300)); await playTranslatedText(fTFTranslationResult!);
await playTranslatedText(fTFTranslationResult!); fTFTranslationResult = '';
fTFTranslationResult = ''; }
} }
} }
} else { } else {
@ -653,6 +653,7 @@ class TranslationController extends GetxController {
final voiceName = _languageManager final voiceName = _languageManager
.getTtsVoiceNameByAsrCode(detectedTargetLanguageCode) ?? .getTtsVoiceNameByAsrCode(detectedTargetLanguageCode) ??
'en-US-AriaNeural'; 'en-US-AriaNeural';
print("voiceName=$voiceName,text$text");
await _ttsService.setVoice(voiceName); await _ttsService.setVoice(voiceName);
await _ttsService.speakOnce(text); await _ttsService.speakOnce(text);
} catch (e) { } catch (e) {

Loading…
Cancel
Save