Commit 949022bd authored by helinlin's avatar helinlin

对接语音数据

parent dd4a552c
......@@ -64,8 +64,8 @@ public class RealTimeStream2Text {
Thread thread1 =
new Thread(() -> {
new AppSpeechTranscriber(
new RealTimeSpeechTranscriberListener(myNumber, myNumber, emqKeeper, audioRecords, audioKeyWord)
, serverSocket1, localIpAddress)
new RealTimeSpeechTranscriberListener(myNumber, myNumber, emqKeeper, audioRecords, audioKeyWord),
serverSocket1, localIpAddress)
.process();
}, "我的语音流");
//呼入的语音流
......
......@@ -9,7 +9,6 @@ import org.slf4j.LoggerFactory;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Timer;
import java.util.TimerTask;
......@@ -29,6 +28,7 @@ public class AppSpeechTranscriber {
private final Timer serverSocketTimeoutTimer;
private final TimerTask timerTask;
private final String localIpAddress;
private int idleTime = 0;
public AppSpeechTranscriber(SpeechTranscriberListener listener, DatagramSocket serverSocket, String localIpAddress) {
this.localIpAddress = localIpAddress;
......@@ -39,11 +39,14 @@ public class AppSpeechTranscriber {
timerTask = new TimerTask() {
@Override
public void run() {
logger.warn("serverSocket,port:" + serverSocket.getLocalPort() + " 等待60s无数据回复即将自动关闭!");
closeServerSocket();
idleTime++;
if (idleTime > 60) {
logger.warn("serverSocket,port:" + serverSocket.getLocalPort() + " 等待60s无数据回复即将自动关闭!");
closeServerSocket();
}
}
};
serverSocketTimeoutTimer.schedule(timerTask, 1000 * 60);
serverSocketTimeoutTimer.schedule(timerTask, 0, 1000);
}
/**
......@@ -66,11 +69,10 @@ public class AppSpeechTranscriber {
setParam(transcriber);
transcriber.start();
}
serverSocketTimeoutTimer.cancel();
idleTime = 0;
logger.warn("收到数据包:" + b.length);
//去掉前12个字节的rtp包头,后面的332字节为语音数据
transcriber.send(Arrays.copyOfRange(b, 12, b.length));
serverSocketTimeoutTimer.schedule(timerTask, 1000 * 60);
}
} catch (Exception e) {
logger.error(e.getMessage());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment