admin 管理员组文章数量: 887006
一、腾讯语音识别—一句话语音识别
1、账号申请
(1)搜索腾讯云官网
https://cloud.tencent/?fromSource=gwzcw.2212127.2212127.2212127&utm_medium=cpd&utm_id=gwzcw.2212127.2212127.2212127
(2)打开语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)为开发者提供语音转文字服务的最佳体验。经公司内部微信、QQ 、腾讯视频、王者荣耀等大体量业务落地验证,日服务亿级用户,性能稳定。腾讯语音识别技术开放实时语音识别、一句话识别和录音文件识别服务,满足不同类型开发者需求。除公有云接入外,腾讯语音识别技术也支持私有化部署。
小编:微信和王者荣耀的语音识别还是很强大的,其它的虽然并不清楚
(3)先来看下语音识别的接口文档
![1552371855329](C:\Users\lichuanran\AppData\Roaming\Typora\typora-user-images\15523718
1>通过post请求来发送语音数据,从而得到结果
2>请求大小不能超过600k
超过600k不会报错,但是识别时长会有点长
3>音频时长不可超过60s
4>支持音频格式 wav 、mp3
5>比特率128k或者256k
256k比128k保存的数据更具体,对应的文件大小也更大
6>音频流的采样率8000或者16000 (单位时间内有多少数据来描述采样点)
分别对应接口文档的EngSerViceType(引擎类型)的8K或者16k
16000的采样率识别准确率比8000采样率更高
7>请求频率25次/s
使用多线程进行死循环发现,达到25次/s会把请求延迟一点,并不会报错
8>单声道
注:下文小编会介绍怎么把 任意一个音频文件 转换为一个 符合腾讯云识别标准 的音频文件
2、java 实现语音识别
(1)下载SDK
https://cloud.tencent/document/product/441/19814
1>打开SDK会发现有两个类 SASRsdk 和 SASRtest 一个wav格式的语音文件
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.File;
import java.io.FileInputStream;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.Map;
import java.util.Random;
import java.util.TreeMap;
import java.net.URLEncoder;
import java.io.OutputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.net.URL;
import java.net.HttpURLConnection;
import java.io.InputStreamReader;
public class SASRsdk {
private static String SecretId, SecretKey, EngSerViceType, SourceType, VoiceFormat, fileURI;
public static String formSignstr(String serverUrl, Map<String, String> mapReq) {
StringBuilder strBuilder = new StringBuilder(serverUrl);
// to make that all the parameters are sorted by ASC order
TreeMap<String, String> sortedMap = new TreeMap(mapReq);
for (Map.Entry<String, String> entry : sortedMap.entrySet()) {
strBuilder.append(entry.getKey());
strBuilder.append('=');
strBuilder.append(entry.getValue());
strBuilder.append('&');
}
if (mapReq.size() > 0) {
strBuilder.setLength(strBuilder.length() - 1);
}
//System.out.println("sign str: " + strBuilder);
return strBuilder.toString();
}
public static String formPostbody(Map<String, String> mapReq) {
StringBuilder stringBuilder = new StringBuilder();
// to make that all the parameters are sorted by ASC order
TreeMap<String, String> sortedMap = new TreeMap(mapReq);
for (Map.Entry<String, String> entry : sortedMap.entrySet()) {
try {
stringBuilder.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
stringBuilder.append('=');
stringBuilder.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
stringBuilder.append('&');
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return stringBuilder.toString();
}
public static String base64_hmac_sha1(String value, String keyStr) {
String encoded = "";
String type = "HmacSHA1";
try {
byte[] key = (keyStr).getBytes("UTF-8");
byte[] Sequence = (value).getBytes("UTF-8");
Mac HMAC = Mac.getInstance(type);
SecretKeySpec secretKey = new SecretKeySpec(key, type);
HMAC.init(secretKey);
byte[] Hash = HMAC.doFinal(Sequence)
版权声明:本文标题:腾讯、百度、讯飞 语音识别 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1734008457h1654032.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论