以下是录音转文本示例:
依赖
<!-- 腾讯语音识别依赖-->
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-common</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-asr</artifactId>
<version>LATEST</version>
</dependency>
处理方法:
public void createTask(FtTxvoiceReq tv) {
try{
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential(TxConstant.secretId, TxConstant.secretKey);
// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("asr.tencentcloudapi.com");
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
AsrClient client = new AsrClient(cred, "ap-guangzhou", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象 该对象的参数说明见官网
CreateRecTaskRequest req = new CreateRecTaskRequest();
req.setEngineModelType("16k_en");
req.setChannelNum(1L);
req.setResTextFormat(0L);
req.setSourceType(0L);
req.setUrl(tv.getUrl());
req.setConvertNumMode(1l);
req.setCallbackUrl("");//你的回调地址
// 返回的resp是一个CreateRecTaskResponse的实例,与请求对象对应
CreateRecTaskResponse resp = client.CreateRecTask(req);
// 输出json格式的字符串回包
//这是我本地保存到了数据库
tv.setTaskId(resp.getData().getTaskId());
tv.setReqId(resp.getRequestId());
this.save(tv);
} catch (TencentCloudSDKException e) {
e.printStackTrace();
}
}
回调方法:通过回调来更新文本内容
@PostMapping("/callback")
public String callback(@RequestBody String body) {
// 解码 Body 中的数据
String decodedBody = decodeUrlEncoded(body);
if(StrUtil.isBlank(decodedBody)){
return null;
}
//你自己的业务逻辑处理
...
// 返回成功响应
Respvo vo = new Respvo();
vo.setCode(0);
vo.setMessage("success");
return JSON.toJSONString(vo);
}