diff --git a/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java b/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java index dd69962..28f5457 100644 --- a/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java +++ b/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java @@ -114,6 +114,11 @@ public class ChatWebSocketHandler { Map mapResult = JSONUtil.toBean(JSONUtil.parseObj(message),Map.class); String resultFlag = mapResult.get("msg"); if("done".equals(resultFlag)){ + //发送消息 + WebSocket webSocket = cacheWebSocket.get(clientId); + if(webSocket != null){ + webSocket.close(1000,null); + } //语音结束,开始进行回答解析 String cacheResultText = cacheClientTts.get(clientId); log.info("1、开始进行AI回答时间:{}",System.currentTimeMillis()/1000); @@ -192,6 +197,8 @@ public class ChatWebSocketHandler { //发送消息 WebSocket webSocket = cacheWebSocket.get(clientId); if(webSocket != null){ + // 1. 启动音频缓冲 + webSocket.send("{\"type\": \"input_audio_buffer.start\"}"); log.info("3.1 开始发送数据音频流啦"); // 将音频数据转换为 Base64 编码的字符串 String base64Audio = Base64.getEncoder().encodeToString(bytes); @@ -318,8 +325,6 @@ public class ChatWebSocketHandler { config.put("type", "transcription_session.update"); config.put("session", sessionConfig); webSocket.send(config.toString()); - // 1. 启动音频缓冲 - webSocket.send("{\"type\": \"input_audio_buffer.start\"}"); //存储客户端webSocket对象,对数据进行隔离处理 cacheWebSocket.put(clientId,webSocket); }