//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(); // } //}