一、开通语音识别服务
使用主账号登录语音识别控制台(https://console.cloud.tencent.com/asr),开通语音识别服务。
如需要子账号调用接口,需要主账号给子账号授权语音识别的策略权限。
二、接口介绍
腾讯云一句话识别接口属于语音识别服务下的一个接口,主要用于对60秒以内的短音频文件进行识别。
接口文档:https://cloud.tencent.com/document/product/1093/35646
官网提供的都是后端代码SDK,不支持前端直接调用,会有跨域问题。
点击对应代码的SDK链接进入,这里以Java为例,进入GitHub,参考README中的说明进行集成。
https://github.com/TencentCloud/tencentcloud-sdk-java/tree/master
四、集成SDK
在自己的工程pom.xml中引用最新版本的公共包和语音识别包
<dependencies>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-common</artifactId>
<version>3.1.1256</version>
</dependency>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java-asr</artifactId>
<version>3.1.1223</version>
</dependency>
</dependencies>
也可以直接引用完整的Java SDK包(包含了腾讯云其他产品的SDK代码,包体更大)
<dependencies>
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.1256</version>
</dependency>
</dependencies>
其他开发语言参考对应的SDK Github文档说明集成即可。
五、生成代码
调用接口的代码可以直接官网的API Explorer工具进行生成,在API Explorer中找到语音识别下的一句话识别接口,在参数输入栏填写好参数,然后在“代码示例”栏选择对应的开发语言,复制下方的代码。
https://console.cloud.tencent.com/api/explorer?Product=asr&Version=2019-06-14&Action=SentenceRecognition
复制代码如下:
package com.tencent;
import com.tencentcloudapi.common.AbstractModel;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.asr.v20190614.AsrClient;
import com.tencentcloudapi.asr.v20190614.models.*;
public class Sample
{
public static void main(String [] args) {
try{
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性
// 以下代码示例仅供参考,建议采用更安全的方式来使用密钥
// 请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
Credential cred = new Credential("SecretId", "SecretKey");
// 使用临时密钥示例
// Credential cred = new Credential("SecretId", "SecretKey", "Token");
// 实例化一个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, "", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
SentenceRecognitionRequest req = new SentenceRecognitionRequest();
req.setEngSerViceType("16k_zh");
req.setSourceType(1L);
req.setVoiceFormat("wav");
req.setData("base64");
// 返回的resp是一个SentenceRecognitionResponse的实例,与请求对象对应
SentenceRecognitionResponse resp = client.SentenceRecognition(req);
// 输出json格式的字符串回包
System.out.println(AbstractModel.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
}
将代码copy到自己的工程中
六、调整参数
1.替换SecretId和SecretKey
这两个参数需要填写自己的密钥。在如下链接可以获取:
https://console.cloud.tencent.com/cam/capi
如果还没有密钥,则需要新建密钥,注意这里SecretKey只是第一次创建时可以查看,所以需要自己复制保存下来。
获取后替换代码中的SecretId和SecretKey参数。
2.音频文件参数
识别的音频数据可以传公网可以访问的url或者本地音频文件转base64后的编码,音频url直接通过“Url”参数传递即可。我们这里以传base64编码为例,音频转base64需要自己业务代码来实现。
Java中转base64代码参考:
public static String fileToBase64ByLocal(String filePath) {
InputStream in;
byte[] data = null;
try {
in = new FileInputStream(filePath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return Base64.encodeBase64String(data);// 返回Base64编码过的字节数组字符串
}
pom.xml中添加Base64的引用
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
代码中的req.setData("base64")修改为:
req.setData(fileToBase64ByLocal("C:\\Users\\Administrator\\Desktop\\腾讯云语音识别.wav"));
转base64方法的参数为本地音频文件路径。
其他开发语言代码转base64的方法请自行查阅,注意转码后的数据不要带base64头部信息。
七、运行代码
返回识别结果如下
{"Result":"腾讯云语音识别。","AudioDuration":1978,"WordSize":0,"RequestId":"74338d7e-c231-4340-ac5a-3730b5a3aa82"}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。