STT 数据流处理-试一下合并后的格式
This commit is contained in:
@@ -120,7 +120,7 @@ public class ChatWebSocketHandler {
|
|||||||
// 合并所有分片为完整语音数据
|
// 合并所有分片为完整语音数据
|
||||||
byte[] fullVoiceData = mergeFragments(fragments);
|
byte[] fullVoiceData = mergeFragments(fragments);
|
||||||
// 生成唯一文件名
|
// 生成唯一文件名
|
||||||
String fileName = clientId + "_" + System.currentTimeMillis() + ".wav";
|
String fileName = clientId + "_" + System.currentTimeMillis() + ".webm";
|
||||||
String pathUrl = RuoYiConfig.getProfile()+VOICE_STORAGE_DIR + fileName;
|
String pathUrl = RuoYiConfig.getProfile()+VOICE_STORAGE_DIR + fileName;
|
||||||
log.info("文件路径为:{}", pathUrl);
|
log.info("文件路径为:{}", pathUrl);
|
||||||
log.info("文件流的大小为:{}",fullVoiceData.length);
|
log.info("文件流的大小为:{}",fullVoiceData.length);
|
||||||
|
|||||||
@@ -10,9 +10,7 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,10 +32,7 @@ public class OpenAiStreamClient {
|
|||||||
private String role;
|
private String role;
|
||||||
|
|
||||||
// 定义作为分割点的标点符号集合
|
// 定义作为分割点的标点符号集合
|
||||||
private final Set<Character> punctuationSet = new HashSet<>() {{
|
private final String punctuationStr = "。,?,!,;,\\.,\\?,!,;";
|
||||||
add('。'); add('?'); add('!'); add(';'); // 中文标点
|
|
||||||
add('.'); add('?'); add('!'); add(';'); // 英文标点
|
|
||||||
}};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送流式请求
|
* 发送流式请求
|
||||||
@@ -118,7 +113,7 @@ public class OpenAiStreamClient {
|
|||||||
.getStr("content");
|
.getStr("content");
|
||||||
|
|
||||||
if (content != null && !content.isEmpty()) {
|
if (content != null && !content.isEmpty()) {
|
||||||
if(punctuationSet.contains(content)){
|
if(punctuationStr.contains(content)){
|
||||||
//说明有标点啦,直接返回
|
//说明有标点啦,直接返回
|
||||||
bufferStr.append(content);
|
bufferStr.append(content);
|
||||||
listener.onMessage(bufferStr.toString());
|
listener.onMessage(bufferStr.toString());
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.io.*;
|
|||||||
|
|
||||||
public class AudioToPCM {
|
public class AudioToPCM {
|
||||||
public static void main(String[] args) {
|
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格式文件
|
File outputFile = new File("/Users/wangxiangshun/Desktop/临时文件/110/output_pcm_audio1.pcm"); // 输出PCM格式文件
|
||||||
try {
|
try {
|
||||||
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(inputFile);
|
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(inputFile);
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class RealtimeTranscriptionMicrophone {
|
|||||||
// String message = "{ \"type\": \"input_audio_buffer.append\", \"audio\": \"" + base64Audio + "\" }";
|
// String message = "{ \"type\": \"input_audio_buffer.append\", \"audio\": \"" + base64Audio + "\" }";
|
||||||
// webSocket.send(message);
|
// 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));
|
ByteBuffer byteBuffer = ByteBuffer.wrap(FileUtils.readFileToByteArray(outputFile));
|
||||||
byte[] bytes = new byte[byteBuffer.remaining()];
|
byte[] bytes = new byte[byteBuffer.remaining()];
|
||||||
//从缓冲区中读取数据并存储到指定的字节数组中
|
//从缓冲区中读取数据并存储到指定的字节数组中
|
||||||
|
|||||||
Reference in New Issue
Block a user