STT 数据流处理-试一下合并后的格式
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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<Character> 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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()];
|
||||
//从缓冲区中读取数据并存储到指定的字节数组中
|
||||
|
||||
Reference in New Issue
Block a user