WechatGroup
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package com.ruoyi.cms.handler;
|
||||
|
||||
import com.alibaba.nls.client.protocol.asr.SpeechRecognizer;
|
||||
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 = "LuvNcrddU3PH8Tau";
|
||||
String id = "LTAI5tRBahK93vPNF1JDVEPA";
|
||||
String secret = "x95OWb4cV6ccQVtbEJ2Gxm2Uwl2thJ";
|
||||
String url = System.getenv().getOrDefault("NLS_GATEWAY_URL", "wss://nls-gateway-cn-shanghai.aliyuncs.com/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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user