最近换了工作,新公司现在主推人脸识别,底层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

实现百度语音识别功能相关推荐

  1. 百度语音识别java教程,Java实现的百度语音识别功能示例

    本文实例讲述了Java实现的百度语音识别功能.分享给大家供大家参考,具体如下: 最近一直在搞java,就选择了java工程.将代码拷过去.同时复制文件"test.pcm"到工程目录 ...

  2. 语音识别唤醒python_python版百度语音识别功能

    本文实例为大家分享了python版百度语音识别功能的具体代码,供大家参考,具体内容如下 环境:使用的IDE是Pycharm 1.新建工程 2.配置百度语音识别环境 "File"-- ...

  3. 百度api语音识别一直“无内容”_PHP开发语音识别功能

    语音识别的功能的应用场景 将语音实时识别为文字,适用于语音聊天.语音输入.语音搜索.语音下单.语音指令.语音问答等多种场景. 我们还是利用百度API,语音识别功能,给大家讲解如何使用.API主要就是要 ...

  4. 百度免费开放长语音识别功能

    近日,百度AI开放平台向开发者免费开放长语音识别功能,通过SDK调用服务,可将长语音转换为文字.据了解,新版本SDK解除了对时间的限制,开发者无需再将长语音切割成60秒以内的分段,进行调用,提升了转写 ...

  5. 小米,苹果,百度,三星等公司的智能语音识别功能如何测试?

    前言 现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互:另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的"小 ...

  6. 前端—基于Flask框架调用百度接口实现语音识别功能(使用蓝图blueprint)

    配合"基于Flask框架调用百度接口实现语音识别功能"使用的前端参考代码 后端代码链接 Python-基于Flask框架调用百度接口实现语音识别功能:基于Flask框架调用百度接口 ...

  7. Python—基于Flask框架调用百度接口实现语音识别功能

    一.项目简介 项目实现语音转换文字的功能. 项目前后端分离,前端(移动端/Web端)按特定参数要求录音,将录音传给后端,后端将录音上传百度服务处理,对百度返回的结果进行预处理,以JSON格式返回给前端 ...

  8. python调用百度语音搜索_python调用百度语音识别实现大音频文件语音识别功能

    本文为大家分享了python实现大音频文件语音识别功能的具体代码,供大家参考,具体内容如下 实现思路:先用ffmpeg将其他非wav格式的音频转换为wav格式,并转换音频的声道(百度支持声道为1),采 ...

  9. Android 调用百度在线语音识别功能

    换了好几个语音转文字的工具,主要跟百度上大家的方法一样,最开始用的科大讯飞的语音,真的还蛮好用的,整体来说demo的接口比较清晰吧~准确率也很高,但是量大就要收费.所以,换了第二种,Android原生 ...

  10. uni-app 百度语音识别文字并展示功能

    uni-app 使用百度语音识别文字功能 本文主要写的是 uniapp实现语音输入并展示在页面上 , 纯前端 ,不涉及后端 1. 百度语音识别申请 不啰嗦 直接点击连接进去 , 进入后点击立即使用按钮 ...

最新文章

  1. Java报表工具技巧--如何在Style Report创建用户自定义报表模板
  2. 还是贪心(结构体排序)
  3. SAP UI5 应用 XML 视图的加载逻辑分析
  4. MP 启动注入 SQL 原理分析
  5. 开源串口 Ymodem 上位机软件
  6. 心脏与阴影,求阴影部分
  7. centos 关机命令_Linux anacron命令用法详解
  8. 第一单元总结(汇编初探)
  9. putty秘钥转换成xhell支持的格式
  10. ubuntu(乌班图) 修改ip
  11. 基于SSM的酒店客房管理系统的设计(包含数据库、完美运行、可远程调试)
  12. win7系统关闭445端口批处理脚本
  13. 怎么建立局域网_用ZeroTier搭建属于自己的虚拟局域网(VLAN)
  14. 博取仪器3D产品配置
  15. ac管理器管理员密码忘记了_人们为什么不使用密码管理器
  16. 400行代码实现双人对战五子棋(适合新手入门)
  17. MYSQL——为现有字段添加自增属性
  18. 读书笔记--Java虚拟机垃圾收集算法
  19. MyBatis官方文档-日志
  20. 计算机文件名是蓝颜色,为什么有些文件名是蓝色的?

热门文章

  1. 第一章--多媒体技术概述
  2. 20210726:FLAC刻录音乐CD教程04-wav格式刻录CD
  3. 电脑如何启用屏幕键盘(OSK)方法
  4. 如何将Word转PDF?来看这几个方法
  5. 如何通俗地理解假设检验基本原理
  6. 统计学理论—假设检验
  7. 移动通信概述-架构篇
  8. IE的Internet选项“自定义级别”置灰,不能修改的问题解决
  9. java 大于或等于_java大于等于怎么表示
  10. centOS7搭建DNS服务器配置详解