实现百度语音识别功能
最近换了工作,新公司现在主推人脸识别,底层C++大神们写好算法打包so文件给前端使用,我大部分的工作是处理逻辑业务和调用。所以最近都没怎么记录用到的技术,闲暇时间看了下语音识别的功能,写了个demo给记录一下。
好了,废话不多说,开始今天的工作。
首先平台注册账号,有百度账号的可以直接登陆。http://yuyin.baidu.com/
登陆成功后到应用管理中创建一个新应用,绑定包名等就不再说了,然后开通语音识别功能。
到sdk页面下载对应的语音识别demo。
导入依赖架包和so文件
然后根据官网的步骤,导入权限和设置APP_ID,APP_KEY和SECRET_KEY。
接下来就正式开始敲代码,我这里写了一个方法,包含了6.0权限动态申请,语音识别结果回掉等方法,初始化后可直接调用。
public class OnLineUtils implements EventListener {private EventManager asr; private OnLineCallBack onLineCallBack; public OnLineUtils (Context context, OnLineCallBack onLineCallBack){asr = EventManagerFactory.create(context,"asr"); asr.registerListener(this); this.onLineCallBack = onLineCallBack; initPermission(context); }/* * android 6.0 以上需要动态申请权限 */ private void initPermission(Context context) {String permissions[] = {Manifest.permission.RECORD_AUDIO, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.INTERNET, Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; ArrayList<String> toApplyList = new ArrayList<String>(); for (String perm : permissions) {if (PackageManager.PERMISSION_GRANTED != ContextCompat.checkSelfPermission(context, perm)) {toApplyList.add(perm); // 进入到这里代表没有权限. }}String tmpList[] = new String[toApplyList.size()]; if (!toApplyList.isEmpty()) {ActivityCompat.requestPermissions((Activity) context, toApplyList.toArray(tmpList), 123); }}@Override public void onEvent(String name, String params, byte[] data, int offset, int length) {if (params != null && !params.isEmpty()) {if (name.equals(SpeechConstant.CALLBACK_EVENT_ASR_PARTIAL)) {try {JSONObject jsonObject = new JSONObject(params); String resultType = jsonObject.getString("result_type"); if (resultType.equals("final_result")){String finalResult = jsonObject.getString("best_result"); onLineCallBack.onSuccess(finalResult); }} catch (JSONException e) {e.printStackTrace(); }}}}public interface OnLineCallBack{void onSuccess(String result); }/** * 开始识别 */ public void start(){Map<String,Object> params = new LinkedHashMap<>(); String event = SpeechConstant.ASR_START; params.put(SpeechConstant.ACCEPT_AUDIO_VOLUME,false); String json = new JSONObject(params).toString(); asr.send(event,json,null,0,0); }/** * 停止识别 */ public void stop() {asr.send(SpeechConstant.ASR_STOP,null,null,0,0); } }
https://github.com/XW837156540/StandYunyinDemo
实现百度语音识别功能相关推荐
- 百度语音识别java教程,Java实现的百度语音识别功能示例
本文实例讲述了Java实现的百度语音识别功能.分享给大家供大家参考,具体如下: 最近一直在搞java,就选择了java工程.将代码拷过去.同时复制文件"test.pcm"到工程目录 ...
- 语音识别唤醒python_python版百度语音识别功能
本文实例为大家分享了python版百度语音识别功能的具体代码,供大家参考,具体内容如下 环境:使用的IDE是Pycharm 1.新建工程 2.配置百度语音识别环境 "File"-- ...
- 百度api语音识别一直“无内容”_PHP开发语音识别功能
语音识别的功能的应用场景 将语音实时识别为文字,适用于语音聊天.语音输入.语音搜索.语音下单.语音指令.语音问答等多种场景. 我们还是利用百度API,语音识别功能,给大家讲解如何使用.API主要就是要 ...
- 百度免费开放长语音识别功能
近日,百度AI开放平台向开发者免费开放长语音识别功能,通过SDK调用服务,可将长语音转换为文字.据了解,新版本SDK解除了对时间的限制,开发者无需再将长语音切割成60秒以内的分段,进行调用,提升了转写 ...
- 小米,苹果,百度,三星等公司的智能语音识别功能如何测试?
前言 现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互:另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的"小 ...
- 前端—基于Flask框架调用百度接口实现语音识别功能(使用蓝图blueprint)
配合"基于Flask框架调用百度接口实现语音识别功能"使用的前端参考代码 后端代码链接 Python-基于Flask框架调用百度接口实现语音识别功能:基于Flask框架调用百度接口 ...
- Python—基于Flask框架调用百度接口实现语音识别功能
一.项目简介 项目实现语音转换文字的功能. 项目前后端分离,前端(移动端/Web端)按特定参数要求录音,将录音传给后端,后端将录音上传百度服务处理,对百度返回的结果进行预处理,以JSON格式返回给前端 ...
- python调用百度语音搜索_python调用百度语音识别实现大音频文件语音识别功能
本文为大家分享了python实现大音频文件语音识别功能的具体代码,供大家参考,具体内容如下 实现思路:先用ffmpeg将其他非wav格式的音频转换为wav格式,并转换音频的声道(百度支持声道为1),采 ...
- Android 调用百度在线语音识别功能
换了好几个语音转文字的工具,主要跟百度上大家的方法一样,最开始用的科大讯飞的语音,真的还蛮好用的,整体来说demo的接口比较清晰吧~准确率也很高,但是量大就要收费.所以,换了第二种,Android原生 ...
- uni-app 百度语音识别文字并展示功能
uni-app 使用百度语音识别文字功能 本文主要写的是 uniapp实现语音输入并展示在页面上 , 纯前端 ,不涉及后端 1. 百度语音识别申请 不啰嗦 直接点击连接进去 , 进入后点击立即使用按钮 ...
最新文章
- Java报表工具技巧--如何在Style Report创建用户自定义报表模板
- 还是贪心(结构体排序)
- SAP UI5 应用 XML 视图的加载逻辑分析
- MP 启动注入 SQL 原理分析
- 开源串口 Ymodem 上位机软件
- 心脏与阴影,求阴影部分
- centos 关机命令_Linux anacron命令用法详解
- 第一单元总结(汇编初探)
- putty秘钥转换成xhell支持的格式
- ubuntu(乌班图) 修改ip
- 基于SSM的酒店客房管理系统的设计(包含数据库、完美运行、可远程调试)
- win7系统关闭445端口批处理脚本
- 怎么建立局域网_用ZeroTier搭建属于自己的虚拟局域网(VLAN)
- 博取仪器3D产品配置
- ac管理器管理员密码忘记了_人们为什么不使用密码管理器
- 400行代码实现双人对战五子棋(适合新手入门)
- MYSQL——为现有字段添加自增属性
- 读书笔记--Java虚拟机垃圾收集算法
- MyBatis官方文档-日志
- 计算机文件名是蓝颜色,为什么有些文件名是蓝色的?