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 62460a3..120b121 100644 --- a/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java +++ b/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java @@ -120,7 +120,7 @@ public class ChatWebSocketHandler { // 合并所有分片为完整语音数据 byte[] fullVoiceData = mergeFragments(fragments); // 生成唯一文件名 - String fileName = clientId + "_" + System.currentTimeMillis() + ".wav"; + String fileName = clientId + "_" + System.currentTimeMillis() + ".webm"; String pathUrl = RuoYiConfig.getProfile()+VOICE_STORAGE_DIR + fileName; log.info("文件路径为:{}", pathUrl); log.info("文件流的大小为:{}",fullVoiceData.length); diff --git a/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java b/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java index 0919caf..4d4d4cd 100644 --- a/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java +++ b/vetti-common/src/main/java/com/vetti/common/ai/gpt/OpenAiStreamClient.java @@ -10,9 +10,7 @@ import org.springframework.stereotype.Component; import java.io.IOException; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import java.util.concurrent.TimeUnit; /** @@ -34,10 +32,7 @@ public class OpenAiStreamClient { private String role; // 定义作为分割点的标点符号集合 - private final Set punctuationSet = new HashSet<>() {{ - add('。'); add('?'); add('!'); add(';'); // 中文标点 - add('.'); add('?'); add('!'); add(';'); // 英文标点 - }}; + private final String punctuationStr = "。,?,!,;,\\.,\\?,!,;"; /** * 发送流式请求 @@ -118,7 +113,7 @@ public class OpenAiStreamClient { .getStr("content"); if (content != null && !content.isEmpty()) { - if(punctuationSet.contains(content)){ + if(punctuationStr.contains(content)){ //说明有标点啦,直接返回 bufferStr.append(content); listener.onMessage(bufferStr.toString()); diff --git a/vetti-common/src/main/java/com/vetti/common/ai/whisper/AudioToPCM.java b/vetti-common/src/main/java/com/vetti/common/ai/whisper/AudioToPCM.java index c9ad4ac..2fb1fe7 100644 --- a/vetti-common/src/main/java/com/vetti/common/ai/whisper/AudioToPCM.java +++ b/vetti-common/src/main/java/com/vetti/common/ai/whisper/AudioToPCM.java @@ -5,7 +5,7 @@ import java.io.*; public class AudioToPCM { public static void main(String[] args) { - File inputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/111123456_1760930173334.wav"); // 输入音频文件 + File inputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/3f7d2f6b-ea3d-4134-9abf-e8d8d30f91b7.wav"); // 输入音频文件 File outputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/output_pcm_audio1.pcm"); // 输出PCM格式文件 try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(inputFile); diff --git a/vetti-common/src/main/java/com/vetti/common/ai/whisper/RealtimeTranscriptionMicrophone.java b/vetti-common/src/main/java/com/vetti/common/ai/whisper/RealtimeTranscriptionMicrophone.java index fe7083e..e60803d 100644 --- a/vetti-common/src/main/java/com/vetti/common/ai/whisper/RealtimeTranscriptionMicrophone.java +++ b/vetti-common/src/main/java/com/vetti/common/ai/whisper/RealtimeTranscriptionMicrophone.java @@ -82,7 +82,7 @@ public class RealtimeTranscriptionMicrophone { // String message = "{ \"type\": \"input_audio_buffer.append\", \"audio\": \"" + base64Audio + "\" }"; // webSocket.send(message); // } - File outputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/output_pcm_audio.pcm"); // 输出PCM格式文件 + File outputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/output_pcm_audio1.pcm"); // 输出PCM格式文件 ByteBuffer byteBuffer = ByteBuffer.wrap(FileUtils.readFileToByteArray(outputFile)); byte[] bytes = new byte[byteBuffer.remaining()]; //从缓冲区中读取数据并存储到指定的字节数组中