Commit f628f8db authored by helinlin's avatar helinlin

添加阿里云音频识别接口

parent 5ebb50c4
...@@ -11,6 +11,7 @@ import java.io.IOException; ...@@ -11,6 +11,7 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.ServerSocket; import java.net.ServerSocket;
import java.net.Socket; import java.net.Socket;
import java.util.Timer;
/** /**
...@@ -24,6 +25,7 @@ public class AppSpeechTranscriber { ...@@ -24,6 +25,7 @@ public class AppSpeechTranscriber {
private static final Logger logger = LoggerFactory.getLogger(AppSpeechTranscriber.class); private static final Logger logger = LoggerFactory.getLogger(AppSpeechTranscriber.class);
private final SpeechTranscriberListener listener; private final SpeechTranscriberListener listener;
private final ServerSocket serverSocket; private final ServerSocket serverSocket;
//private Timer serverSocketTimeoutTimer;
public AppSpeechTranscriber(SpeechTranscriberListener listener, ServerSocket serverSocket) { public AppSpeechTranscriber(SpeechTranscriberListener listener, ServerSocket serverSocket) {
this.listener = listener; this.listener = listener;
...@@ -39,7 +41,9 @@ public class AppSpeechTranscriber { ...@@ -39,7 +41,9 @@ public class AppSpeechTranscriber {
//启动ServerSocket等待接收音频数据,只接受一次请求 //启动ServerSocket等待接收音频数据,只接受一次请求
logger.warn("serverSocket已启动,地址:" + serverSocket.getInetAddress().getHostAddress() logger.warn("serverSocket已启动,地址:" + serverSocket.getInetAddress().getHostAddress()
+ "监听端口:" + serverSocket.getLocalPort() + " 等待语音融合系统推送数据..."); + "监听端口:" + serverSocket.getLocalPort() + " 等待语音融合系统推送数据...");
Socket socket = serverSocket.accept(); Socket socket = serverSocket.accept();
logger.warn("收到用户连接请求,开始读取数据"); logger.warn("收到用户连接请求,开始读取数据");
//创建实例、建立连接。 //创建实例、建立连接。
transcriber = new SpeechTranscriber(AppNslClient.instance(), listener); transcriber = new SpeechTranscriber(AppNslClient.instance(), listener);
...@@ -64,13 +68,19 @@ public class AppSpeechTranscriber { ...@@ -64,13 +68,19 @@ public class AppSpeechTranscriber {
if (null != transcriber) { if (null != transcriber) {
transcriber.close(); transcriber.close();
} }
if (!serverSocket.isClosed()) { closeServerSocket();
try { }
serverSocket.close(); }
} catch (IOException exception) {
exception.printStackTrace(); /**
logger.error(exception.getMessage()); * 关闭Serversocket
} */
public void closeServerSocket() {
if (serverSocket != null && !serverSocket.isClosed()) {
try {
serverSocket.close();
} catch (IOException exception) {
exception.printStackTrace();
} }
} }
} }
......
...@@ -123,7 +123,7 @@ public class SpeechApplicationTests { ...@@ -123,7 +123,7 @@ public class SpeechApplicationTests {
*/ */
@Test @Test
void testSpeechFlashRecognizer() { void testSpeechFlashRecognizer() {
//String fileName = SpeechRecognizerRestfulDemo.class.getClassLoader().getResource("./nls-sample-16k.wav").getPath(); /* //String fileName = SpeechRecognizerRestfulDemo.class.getClassLoader().getResource("./nls-sample-16k.wav").getPath();
// 重要:此处用一个本地文件来模拟发送实时流数据,实际使用时,您可以从某处实时采集或接收语音流并发送到ASR服务端。 // 重要:此处用一个本地文件来模拟发送实时流数据,实际使用时,您可以从某处实时采集或接收语音流并发送到ASR服务端。
String fileName = "D:\\ffmpeg-4.4-full_build-shared\\bin\\test.mp3"; String fileName = "D:\\ffmpeg-4.4-full_build-shared\\bin\\test.mp3";
String format = "mp3"; String format = "mp3";
...@@ -140,7 +140,7 @@ public class SpeechApplicationTests { ...@@ -140,7 +140,7 @@ public class SpeechApplicationTests {
logger.warn("语音识别结果:" + response.body().string()); logger.warn("语音识别结果:" + response.body().string());
} }
}); });
speechFlashRecognizer.process(); speechFlashRecognizer.process();*/
} }
/** /**
...@@ -148,7 +148,7 @@ public class SpeechApplicationTests { ...@@ -148,7 +148,7 @@ public class SpeechApplicationTests {
*/ */
@Test @Test
void testSpeechRecognizer() { void testSpeechRecognizer() {
String fileLink = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav"; /* String fileLink = "https://gw.alipayobjects.com/os/bmw-prod/0574ee2e-f494-45a5-820f-63aee583045a.wav";
SpeechRecognizer speechRecognizer = new SpeechRecognizer(); SpeechRecognizer speechRecognizer = new SpeechRecognizer();
// 第一步:提交录音文件识别请求,获取任务ID用于后续的识别结果轮询。 // 第一步:提交录音文件识别请求,获取任务ID用于后续的识别结果轮询。
String taskId = speechRecognizer.submitFileTransRequest(fileLink); String taskId = speechRecognizer.submitFileTransRequest(fileLink);
...@@ -164,6 +164,6 @@ public class SpeechApplicationTests { ...@@ -164,6 +164,6 @@ public class SpeechApplicationTests {
logger.info("录音文件识别结果查询成功:" + result); logger.info("录音文件识别结果查询成功:" + result);
} else { } else {
logger.error("录音文件识别结果查询失败!"); logger.error("录音文件识别结果查询失败!");
} }*/
} }
} }
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