一、官网地址
语音识别 SDK 概览 - SDK 文档 - 文档中心 - 腾讯云
需要对接的朋友们,需要咨仔细的看一下文档,主要是一些重要参数,但是小编觉得,腾讯的这个SDK 真的不太友好,demo给的也不是很直接,需要我们自己再次封装,并且SDK不能从中央 仓库直接获取,需要我们自己下载源码,自己搞。。。。
二、对接流程
2.1 先搞jar
我们需要从官网地址下载SDK源码,然后将源码导入我们的IDE中,将out文件夹中的real_asr_sdk_1.6.jar 核心jar包导入到我们自己项目中,如果你的项目是maven方式的话,可以参考小编的文档《maven手动将本地jar包加入到本地maven仓库》。然后还需要引入一下辅助jar,也就是 源码中lib文件夹下面的jar,如果项目中已经有对应的jar,可以直接使用,这些jar可以在中央仓库直接下载。
2.2 代码
我才用的是异步回传结果的方式,因为我的上游是一个ws接口,这个接口不断的接受到语音流,然后我调用腾讯的识别接口,将需要识别的语音流添加到任务中,然后在回调函数中获得识别结果。
任务类:
package com.jack.chat.asrtencent.service;
import com.tencent.cloud.asr.realtime.sdk.asyn_sender.ReceiverEntrance;
import com.jack.chat.fs.service.FsService;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import javax.sound.midi.Soundbank;
public class VoiceTask {
private ReceiverEntrance receiverEntrance;
private String taskId;
public VoiceTask(String taskId) {
this.taskId = taskId;
}
/**
* @Description:
* @author: zhenghao
* @date: 2020/8/13 19:00
*/
public void init(FsService fsService,String tel) {
System.out.println("初始化成功");
// 新建一个服务
this.receiverEntrance = new ReceiverEntrance(Integer.parseInt(taskId));
// 启动服务
this.receiverEntrance.start();
// 注册N个回调Handler
this.receiverEntrance.registerReponseHandler(new MyResponseHandler(this.taskId,tel,fsService));
System.out.println("初始化完成");
}
/**
* 创建和启动服务线程。包括:数据添加线程、发送线程、通知线程。
*/
public void start(byte[] contentStream) {
receiverEntrance.add(contentStream);
// 开始添加数据
// this.voiceAddingTask = new VoiceAddingTask(this.receiverEntrance,contentStream );
// this.voiceAddingTask.start();
// 10秒后停止任务/关闭服务。如需一直使用,则不要调用它。
/*this.sleepSomeTime(10000);
this.stop();*/
}
public void stop() {
this.receiverEntrance.stopService();
}
}
核心类:每一个通道我们都需要new 一个核心类
package com.jack.chat.asrtencent.service;