作者:goJhou

语音识别极速版 API
将60秒以内的完整音频文件识别为文字,适用于近场短语音交互,如手机语音搜索、聊天输入等场景。输入完整音频文件,输出识别结果文字。

采用流式多级截断注意力模型SMLTA,专有GPU服务集群,识别响应速度及识别准确率极大提升。按调用量计费,免费赠送5万次调用。详情见产品定价文档。

任意操作系统,任意编程语言,只要可以对百度语音服务器发起http请求的,均可以使用本接口!

那废话不多说啦,直接开始开荒啦!

step 0! 检查权限!

首先打开极速版链接,https://ai.baidu.com/tech/speech/asrpro

如果是新用户的话第一步创建自己的应用喔~

已经创建过应用的各位小主进入自己的应用列表,编辑一下应用,看看极速版是否勾选上啦?

Step 1!获取accesstoken!

万事找入口,ak第一步!

HttpClient client = new HttpClient();List> paraList = new List>
{new KeyValuePair("grant_type", "client_credentials"),
new KeyValuePair("client_id", client_id),
new KeyValuePair("client_secret", client_secret)
};
HttpResponseMessage response = client.PostAsync(AKRequestURL, new FormUrlEncodedContent(paraList)).Result;
JObject result = JObject.Parse(response.Content.ReadAsStringAsync().Result);

拿到了鉴权的答复后,记得保存accessToken喔~

Step 2!鉴权确认!

这次的鉴权比较特别喔,建议各位多做几次权限确认工作呢~

因为 scope中含有audio_voice_assistant_get 表示有语音识别能力,没有该audio_tts_post 的token调用识别接口会有3302错误。

List scopeList = result["scope"].ToString().Split(' ').ToList();
//语音识别权限判定 Check your Asr
if (!scopeList.Contains("audio_voice_assistant_get"))
{throw new Exception("该AccessToken不具备语音识别权限。请至应用列表修改权限");
}
//语音合成权限判定 Check your Tts
if (!scopeList.Contains("audio_tts_post"))
{throw new Exception("没有该audio_tts_post 的token调用识别接口会有3302错误");
}//通过权限判定 pass the check
accessToken = result["access_token"].ToString();

Step 3!读入PCM文件!

ak第一步!IO不过三!来!
byte[] pcmFile = File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + “16k.pcm”);

Step 4!是时候抉择了!

这次的调用接口支持两种调用

一种是基于json的封装调用,要求将字节流进行base64编码。带来的负面影响是,数据量将扩充三分之一,但开发效率高。

另一种是基于Raw方式提交的Http请求,该请求对请求包的头(header)和身(body)进行分别管理,开发有一定门槛。

这边勾勾我把两种方式都写好啦,各位尽情使用吧~

注意喔,json方式如果用HttpClient的话一定要参照我这样进行content转化喔,像上方获取ak的时候的form转化会导致URL超长呢~

//JSON方式上传 base64编码后,数据会增大1/3
client = new HttpClient();
string base64 = Convert.ToBase64String(pcmFile);
JObject json = new JObject();
json["format"] = "pcm";
json["rate"] = 16000;
json["channel"] = 1;
json["cuid"] = GetMacAddress();
json["token"] = accessToken;
json["len"] = pcmFile.Length;
json["speech"] = base64;
json["dev_pid"] = 80001;var content = new StringContent(json.ToString(), Encoding.UTF8, "application/json");response = client.PostAsync(AsrInterfaceURL, content).Result;result = JObject.Parse(response.Content.ReadAsStringAsync().Result);

Raw:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(AsrInterfaceURL + $"?dev_pid=80001&cuid={GetMacAddress().Replace(":","")}&token={accessToken}");request.ContentType = "audio/pcm;rate=16000";
request.Method = "POST";using (Stream str = request.GetRequestStream())
{str.Write(pcmFile, 0, pcmFile.Length);
}HttpWebResponse resp = (HttpWebResponse)request.GetResponse();Stream receiveStream = resp.GetResponseStream();
string res = new StreamReader(receiveStream).ReadToEnd();return;

当当!


祝小主们看了本攻略可在5分钟内顺利调通无bug!

本demo项目基于.net 4.5. 依赖newtonsoft.json

项目地址:https://gitee.com/Jack.Zhou/Baidu.FastASR

百度大脑语音识别极速版~C#开荒攻略相关推荐

  1. 三国志战略版S2开荒攻略

    三国志战略版是一款非常好玩的以三国战略为游戏题材的手游,它是由广州简悦信息科技有限公司所开发的.三国志战略版S2开荒怎么玩?S2赛季是三国志战略版中玩家的第二个赛季,也是第一个可以提前做好准备在开荒时 ...

  2. 三国志战略版:Daniel_S7赤壁_神武开荒攻略上篇_开荒

    一.开荒之前 [赛季特性] 新武将.事件战法.水战.火攻.风向,以及新的水路作战.两个新的同盟秘策,这些三天三夜也讲不完,详情可翻阅公众号前文[Daniel配将实验室->精品攻略->玩法分 ...

  3. 37镇魔曲网页版服务器状态,37镇魔曲网页版各职业攻略分析

    37镇魔曲网页版各职业攻略分析 星术虽然很强,但是这是一个需要消耗装备的职业,建议有一定经济基础的玩家选择这一职业.而且作为法师,星术在前期很容易被其他职业克制,发育缓慢.如果玩家想要星术可以有稳定的 ...

  4. 方舟手游修改服务器难度,《方舟生存进化》手机版难度怎么选 方舟生存进化手机版难度选择攻略...

    导 读 方舟生存进化手机版难度应该怎么选,在方舟生存进化手机版游戏界面中一共有三种不同的难度玩法,不少小伙伴胡乱选择进去就成盒,那么怎么样选择合适自己难度的服务器呢,接下来就让小编带着大家一起来看看方 ...

  5. 零度之下代码输入不了_鸿图之下礼包码领取方法 新手开荒攻略保护器详解

    鸿图之下礼包码怎么领?鸿图之下中很多中礼包码,很多玩家都领到了礼包码却兑换不了,那么礼包码该怎么兑换呢?下面就为大家带来礼包兑换码领取方法介绍. 礼包兑换码领取方法介绍 一展宏图口令码 口令码(一展宏 ...

  6. 零度之下代码输入不了_鸿图之下礼包码领取方法 新手开荒攻略保护器详解_游戏频道...

    鸿图之下礼包码怎么领?鸿图之下中很多中礼包码,很多玩家都领到了礼包码却兑换不了,那么礼包码该怎么兑换呢?下面就为大家带来礼包兑换码领取方法介绍. 一展宏图口令码 口令码(一展宏图)兑换途径 iOS用户 ...

  7. 百度语音识别极速版的使用例子(JAVA)

    说明: 1,百度语音极速版,需要事先保存声音文件,然后调用百度接口. 2,关于文件的上传,可以用JSON格式,上传文件的base64编码,也可以用row格式直接上传文件.下面的代码是JSON格式. 3 ...

  8. 百度地图-极速版搭建手册

    1.百度地图极速版简介 本套API是专为手机浏览器提供的API,您可使用该套API,在手机页面中展示地图.标注位置.检索poi.查询线路等. 特点: 较同时兼容PC和手机浏览器的JavaScript ...

  9. 快消零售行业核心场景痛点解决:百度大脑EasyDL零售版功能详解

    对于快消品牌商而言,许多工作都围绕着提高产品销量展开.然而,即便是在电商网购盛行的今天,线下门店的购买量仍然是产品销量的重要部分. 因此,品牌商在不断优化策略提高线下门店的产品销量.其中,洞察和提升商 ...

最新文章

  1. 「天才少年」稚晖君调戏机械臂!加上AI视觉,2小时学会抓螺母
  2. hdu2159 FATE
  3. Odoo之Field
  4. fastDFS安装及配置
  5. linux虚拟机上不了王,虚拟机上安装Linux时出现的问题及解决方法
  6. 通过错误的sql来测试推理sql的解析过程
  7. 最近做项目的一些关于重构方面的总结
  8. 使用matplotlib画图时不能同时打开太多张图
  9. ndk c调用java_使用NDK将Android转换为C,然后在C中调用Java函数
  10. [译]Ocelot - Headers Transformation
  11. [RK3288][Android6.0] StageFright解码流程小结
  12. HTML网站去色代码
  13. c语言程序实验报告范文,C语言实验报告范文
  14. Python-数据分析-常用检验-2-相关系数检验
  15. 微信小程序累计独立访客(UV)不低于 1000 是什么意思
  16. 物联网--解决ESP8266与电脑串口通讯
  17. 'Request(okhttp3.Request.Builder)' is not public in 'okhttp3.Request'. Cannot be accessed from outsi
  18. JSON与csv哪一个更自描述_徒步进藏和骑行进藏旅行,哪一个更辛苦
  19. Alpha发布PSP Daily评价总结报告
  20. 大禹电子:超声波水下通讯设备测试结论

热门文章

  1. Android Thermal Demo小记
  2. python制作英语小词典_Python爬虫之自制英汉字典
  3. 应变和变形的区别(strain deformation)
  4. gpcj-07.为什么是连锁零售类公司
  5. ISO9001质量管理体系剖析
  6. 智能养老看护系统--养老院人员定位--智能养老--新导智能
  7. 微信小程序后端mysql数据库_微信小程序后台springboot+mybatis+mysql“采坑”集锦
  8. 手动安装wincap方法
  9. Unicode编码与C语言宽字符
  10. k8s-master扩容