2026-04-01 10:43:59 +08:00
|
|
|
|
//package com.ruoyi.cms.handler;
|
|
|
|
|
|
//
|
|
|
|
|
|
//import com.ruoyi.cms.util.AliyunNlsUtils;
|
|
|
|
|
|
//import org.springframework.stereotype.Component;
|
|
|
|
|
|
//
|
|
|
|
|
|
//import javax.websocket.*;
|
|
|
|
|
|
//import javax.websocket.server.ServerEndpoint;
|
|
|
|
|
|
//import java.io.ByteArrayInputStream;
|
|
|
|
|
|
//import java.io.IOException;
|
|
|
|
|
|
//import java.nio.ByteBuffer;
|
|
|
|
|
|
//
|
|
|
|
|
|
//@Component
|
|
|
|
|
|
//@ServerEndpoint("/speech-recognition")
|
|
|
|
|
|
//public class SpeechRecognitionWebSocketHandler {
|
|
|
|
|
|
//
|
|
|
|
|
|
// private SpeechRecognizerAI recognizerDemo;
|
|
|
|
|
|
//
|
|
|
|
|
|
// public SpeechRecognitionWebSocketHandler() {
|
|
|
|
|
|
// // 初始化语音识别器
|
|
|
|
|
|
// String appKey = "4lFYn2yPsQymwGu8";
|
|
|
|
|
|
// String id = "LTAI5t9hhSqdDHqwH3RjgyYj";
|
|
|
|
|
|
// String secret = "ni5aW3vxrWouMwcGqJPfh9Uu56PBuv";
|
|
|
|
|
|
// String url = System.getenv().getOrDefault("NLS_GATEWAY_URL", AliyunNlsUtils.getNlsUrl()+"/ws/v1/");
|
|
|
|
|
|
// recognizerDemo = new SpeechRecognizerAI(appKey, id, secret, url);
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// /**
|
|
|
|
|
|
// * 连接建立成功调用的方法
|
|
|
|
|
|
// */
|
|
|
|
|
|
// @OnOpen
|
|
|
|
|
|
// public void onOpen(Session session) {
|
|
|
|
|
|
// System.out.println("WebSocket 连接建立成功,sessionId = " + session.getId());
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// /**
|
|
|
|
|
|
// * 收到客户端消息后调用的方法
|
|
|
|
|
|
// */
|
|
|
|
|
|
// @OnMessage(maxMessageSize=5242880)
|
|
|
|
|
|
// public void onMessage(ByteBuffer message, Session session) throws IOException {
|
|
|
|
|
|
// byte[] audioData = new byte[message.remaining()];
|
|
|
|
|
|
// message.get(audioData);
|
|
|
|
|
|
//
|
|
|
|
|
|
// // 处理音频数据
|
|
|
|
|
|
// recognizerDemo.processStream(session, new ByteArrayInputStream(audioData), 16000);
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
//
|
|
|
|
|
|
// /**
|
|
|
|
|
|
// * 连接关闭调用的方法
|
|
|
|
|
|
// */
|
|
|
|
|
|
// @OnClose
|
|
|
|
|
|
// public void onClose(Session session) {
|
|
|
|
|
|
// System.out.println("WebSocket 连接关闭,sessionId = " + session.getId());
|
|
|
|
|
|
// }
|
|
|
|
|
|
//
|
|
|
|
|
|
// /**
|
|
|
|
|
|
// * 发生错误时调用的方法
|
|
|
|
|
|
// */
|
|
|
|
|
|
// @OnError
|
|
|
|
|
|
// public void onError(Session session, Throwable error) {
|
|
|
|
|
|
// System.err.println("WebSocket 发生错误:" + error.getMessage());
|
|
|
|
|
|
// error.printStackTrace();
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|