语气词处理

This commit is contained in:
2025-10-27 23:14:49 +08:00
parent 45f3357962
commit 556d33247c
2 changed files with 28 additions and 26 deletions

View File

@@ -205,31 +205,33 @@ public class ChatWebSocketHandler {
@Override @Override
public void onMessage(String content) { public void onMessage(String content) {
log.info("返回AI结果{}", content); log.info("返回AI结果{}", content);
String questionResult = cacheQuestionResult.get(session.getId()); if(StrUtil.isNotEmpty(content)){
if(StrUtil.isEmpty(questionResult)){ String questionResult = cacheQuestionResult.get(session.getId());
questionResult = content; if(StrUtil.isEmpty(questionResult)){
}else{ questionResult = content;
questionResult = questionResult + content; }else{
} questionResult = questionResult + content;
cacheQuestionResult.put(session.getId(),questionResult); }
// 实时输出内容 cacheQuestionResult.put(session.getId(),questionResult);
//开始进行语音输出-流式持续输出 // 实时输出内容
//把结果文字转成语音文件 //开始进行语音输出-流式持续输出
//生成文件 //把结果文字转成语音文件
//生成唯一文件 //生成文件
String resultFileName = clientId + "_" + System.currentTimeMillis() + ".wav"; //生成唯一文件名
String resultPathUrl = RuoYiConfig.getProfile() + VOICE_STORAGE_RESULT_DIR + resultFileName; String resultFileName = clientId + "_" + System.currentTimeMillis() + ".wav";
ElevenLabsClient elevenLabsClient = SpringUtils.getBean(ElevenLabsClient.class); String resultPathUrl = RuoYiConfig.getProfile() + VOICE_STORAGE_RESULT_DIR + resultFileName;
elevenLabsClient.handleTextToVoice(content, resultPathUrl); ElevenLabsClient elevenLabsClient = SpringUtils.getBean(ElevenLabsClient.class);
//持续返回数据流给客户端 elevenLabsClient.handleTextToVoice(content, resultPathUrl);
try { //持续返回数据流给客户端
//文件转换成文件流 try {
ByteBuffer outByteBuffer = convertFileToByteBuffer(resultPathUrl); //文件转换成文件流
//发送文件流数据 ByteBuffer outByteBuffer = convertFileToByteBuffer(resultPathUrl);
session.getBasicRemote().sendBinary(outByteBuffer); //发送文件流数据
// 发送响应确认 session.getBasicRemote().sendBinary(outByteBuffer);
} catch (IOException e) { // 发送响应确认
e.printStackTrace(); } catch (IOException e) {
e.printStackTrace();
}
} }
} }

View File

@@ -41,7 +41,7 @@ public class AiCommonController extends BaseController
{ {
//你好,我是本次的面试官Vetti,请点击开始按钮后,做一段自我介绍. //你好,我是本次的面试官Vetti,请点击开始按钮后,做一段自我介绍.
//本轮面试结束,谢谢您的配合,面试结果将稍后通知 //本轮面试结束,谢谢您的配合,面试结果将稍后通知
elevenLabsClient.handleTextToVoice("This round of interview is over. Thank you for your cooperation. The interview results will be notified later","/Users/wangxiangshun/Desktop/临时文件/end.wav"); elevenLabsClient.handleTextToVoice("Good","/Users/wangxiangshun/Desktop/临时文件/good.wav");
return success(); return success();
} }