首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云一句话识别接口调用

腾讯云一句话识别接口调用

原创
作者头像
向东平
修改2025-05-09 00:21:22
修改2025-05-09 00:21:22
4280
举报
文章被收录于专栏:AI知识AI知识

一、开通语音识别服务

使用主账号登录语音识别控制台(https://console.cloud.tencent.com/asr),开通语音识别服务。

如需要子账号调用接口,需要主账号给子账号授权语音识别的策略权限。

二、接口介绍

腾讯云一句话识别接口属于语音识别服务下的一个接口,主要用于对60秒以内的短音频文件进行识别。

接口文档:https://cloud.tencent.com/document/product/1093/35646

三、SDK说明

官网提供的都是后端代码SDK,不支持前端直接调用,会有跨域问题。

点击对应代码的SDK链接进入,这里以Java为例,进入GitHub,参考README中的说明进行集成。

https://github.com/TencentCloud/tencentcloud-sdk-java/tree/master

四、集成SDK

在自己的工程pom.xml中引用最新版本的公共包和语音识别包

代码语言:txt
复制
<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代码,包体更大)

代码语言:txt
复制
<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

复制代码如下:

代码语言:txt
复制

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代码参考:

代码语言:txt
复制
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的引用

代码语言:txt
复制
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.9</version>
</dependency>

代码中的req.setData("base64")修改为:

代码语言:txt
复制
req.setData(fileToBase64ByLocal("C:\\Users\\Administrator\\Desktop\\腾讯云语音识别.wav"));

转base64方法的参数为本地音频文件路径。

其他开发语言代码转base64的方法请自行查阅,注意转码后的数据不要带base64头部信息。

七、运行代码

返回识别结果如下

代码语言:txt
复制
{"Result":"腾讯云语音识别。","AudioDuration":1978,"WordSize":0,"RequestId":"74338d7e-c231-4340-ac5a-3730b5a3aa82"}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档