添加了 TTS 相关服务并更新了设置

This commit is contained in:
1600822305 2025-04-11 17:06:39 +08:00
parent fa4dfecfe1
commit b4f602e00d
5 changed files with 58 additions and 8 deletions

View File

@ -59,7 +59,7 @@ const DraggableVoiceCallWindow: React.FC<Props> = ({
// 启动语音通话
await VoiceCallService.startCall({
onTranscript: (text) => setTranscript(text),
onResponse: (text) => {
onResponse: (_) => {
// 这里不设置response因为响应会显示在聊天界面中
},
onListeningStateChange: setIsListening,

View File

@ -1475,6 +1475,18 @@
"title": "[to be translated]:语音功能",
"help": "[to be translated]:语音功能包括文本转语音(TTS)和语音识别(ASR)。",
"learn_more": "[to be translated]:了解更多"
},
"voice_call": {
"tab_title": "[to be translated]:通话功能",
"enable": "[to be translated]:启用语音通话",
"enable.help": "[to be translated]:启用后可以使用语音通话功能与AI进行对话",
"model": "[to be translated]:通话模型",
"model.select": "[to be translated]:选择模型",
"model.current": "[to be translated]:当前模型: {{model}}",
"model.info": "[to be translated]:选择用于语音通话的AI模型不同模型可能有不同的语音交互体验",
"asr_tts_info": "[to be translated]:语音通话使用上面的语音识别(ASR)和语音合成(TTS)设置",
"test": "[to be translated]:测试通话",
"test_info": "[to be translated]:请使用输入框右侧的语音通话按钮进行测试"
}
},
"translate": {
@ -1529,7 +1541,9 @@
"press_to_talk": "[to be translated]:长按说话",
"release_to_send": "[to be translated]:松开发送",
"initialization_failed": "[to be translated]:初始化语音通话失败",
"error": "[to be translated]:语音通话出错"
"error": "[to be translated]:语音通话出错",
"initializing": "[to be translated]:正在初始化语音通话...",
"ready": "[to be translated]:语音通话已就绪"
}
}
}

View File

@ -1475,6 +1475,18 @@
"start_failed": "[to be translated]:开始录音失败",
"transcribe_failed": "[to be translated]:语音识别失败"
}
},
"voice_call": {
"tab_title": "[to be translated]:通话功能",
"enable": "[to be translated]:启用语音通话",
"enable.help": "[to be translated]:启用后可以使用语音通话功能与AI进行对话",
"model": "[to be translated]:通话模型",
"model.select": "[to be translated]:选择模型",
"model.current": "[to be translated]:当前模型: {{model}}",
"model.info": "[to be translated]:选择用于语音通话的AI模型不同模型可能有不同的语音交互体验",
"asr_tts_info": "[to be translated]:语音通话使用上面的语音识别(ASR)和语音合成(TTS)设置",
"test": "[to be translated]:测试通话",
"test_info": "[to be translated]:请使用输入框右侧的语音通话按钮进行测试"
}
},
"translate": {
@ -1529,7 +1541,9 @@
"press_to_talk": "[to be translated]:长按说话",
"release_to_send": "[to be translated]:松开发送",
"initialization_failed": "[to be translated]:初始化语音通话失败",
"error": "[to be translated]:语音通话出错"
"error": "[to be translated]:语音通话出错",
"initializing": "[to be translated]:正在初始化语音通话...",
"ready": "[to be translated]:语音通话已就绪"
}
}
}

View File

@ -1475,6 +1475,18 @@
"start_failed": "[to be translated]:开始录音失败",
"transcribe_failed": "[to be translated]:语音识别失败"
}
},
"voice_call": {
"tab_title": "[to be translated]:通话功能",
"enable": "[to be translated]:启用语音通话",
"enable.help": "[to be translated]:启用后可以使用语音通话功能与AI进行对话",
"model": "[to be translated]:通话模型",
"model.select": "[to be translated]:选择模型",
"model.current": "[to be translated]:当前模型: {{model}}",
"model.info": "[to be translated]:选择用于语音通话的AI模型不同模型可能有不同的语音交互体验",
"asr_tts_info": "[to be translated]:语音通话使用上面的语音识别(ASR)和语音合成(TTS)设置",
"test": "[to be translated]:测试通话",
"test_info": "[to be translated]:请使用输入框右侧的语音通话按钮进行测试"
}
},
"translate": {
@ -1529,7 +1541,9 @@
"press_to_talk": "[to be translated]:长按说话",
"release_to_send": "[to be translated]:松开发送",
"initialization_failed": "[to be translated]:初始化语音通话失败",
"error": "[to be translated]:语音通话出错"
"error": "[to be translated]:语音通话出错",
"initializing": "[to be translated]:正在初始化语音通话...",
"ready": "[to be translated]:语音通话已就绪"
}
}
}

View File

@ -721,8 +721,12 @@ const Inputbar: FC<Props> = ({ assistant: _assistant, setActiveTopic, topic }) =
setText(data.text);
// 如果有指定模型,切换到该模型
if (data.model && data.model !== model) {
setModel(data.model);
if (data.model) {
// 查找对应的模型对象
const modelObj = assistant.model?.id === data.model ? assistant.model : undefined;
if (modelObj) {
setModel(modelObj);
}
}
// 使用延时确保文本已经设置到输入框
@ -740,8 +744,12 @@ const Inputbar: FC<Props> = ({ assistant: _assistant, setActiveTopic, topic }) =
});
// 如果有指定模型,设置模型
if (data.model && data.model !== model) {
userMessage.model = { id: data.model };
if (data.model) {
// 查找对应的模型对象
const modelObj = assistant.model?.id === data.model ? assistant.model : undefined;
if (modelObj) {
userMessage.model = modelObj;
}
}
// 分发发送消息的action