百度API调用(五)——语音识别之使用Android SDK(超详细)

一、功能说明

  通过Android studio 将sdk功能写入Android 设备(用自己的手机就可以玩儿了),语音识别、实时语音识别、唤醒词、离线命令词等功能。
  本文使用Android studio 从一个新建项目开始 完成百度API的调用

二、开通百度语音技术接口服务

详细步骤见:https://blog.csdn.net/weixin_45386875/article/details/113482662?spm=1001.2014.3001.5502

三、操作步骤

(一)集成在线识别功能

1、新建空项目(Android studio)

(1)点击New project
在这里插入图片描述
(2)选择Empty Activity 后点击next
在这里插入图片描述
在这里插入图片描述
注意,红框画出的是包名。 在项目测试成功后,您可以将您自己的包名填写在官网申请的应用里。并且该应用开通了语音识别能力。(在应用列表->管理—>编辑里查看修改)
在这里插入图片描述
可以“暂时”用demo的示例的应用信息。

APP_ID  10674398
API_KEY a8aZUvtoQjsrsVKy7UolPtUe
SECRET_KEY d14094ef8273855e1736f6ddc7b487c0
包名ApplicationId:com.baidu.speech.recognizerdemo

上面的appId等信息您可以在demo的core\src\main\AndroidManifest.xml下找到。包名ApplicationId在app\build.gradle中找到

2、导入core 模块(demo的core module)

需要用到的core文件再文末的链接中(免费下载)
在这里插入图片描述
选择demo的core目录
在这里插入图片描述
此时查看项目目录下的settings.gradle, 可以看见core module已经被加载同时可以看见core目录的图标
在这里插入图片描述

3、配置app依赖core

右击app目录选择Open Module Settings
在这里插入图片描述
在打开的界面选择Dependencies.然后选择app-+号-选择3 Module Dependency
在这里插入图片描述
在这里插入图片描述
在弹出的界面勾选core后点击OK
在这里插入图片描述
在这里插入图片描述
此时观察build.gradle(module :app)文件,发现自动添加了如下一行
implementation project(path: ‘:core’)
在这里插入图片描述

4、并根据core/build.gradle(module :core)更改app/build.gradle(module :app)部分版本号

在这里插入图片描述

5、集成相应的功能

Eg:集成精简版的在线识别功能
修改app/java/com.baidu.speech.recognizerdemo/MainActivity.java:

import com.baidu.aip.asrwakeup3.core.mini.ActivityMiniRecog;
public class MainActivity extends ActivityMiniRecog {
    
    

}

在这里插入图片描述
集成完毕,直接启动app即可测试。

(二)集成精简版离线命令词功能

1、修改ActivityMiniRecog.java

修改文件core\src\main\java\com\baidu\aip\asrwakeup3\core\mini\ActivityMiniRecog.java
在这里插入图片描述
public class ActivityMiniRecog 中,

protected boolean enableOffline = true; // 测试离线命令词,需要改成true

如下图
在这里插入图片描述
断网,启动后看见name: asr.ready,表示离线引擎加载成功。
此时大声说出“打电话给张三”
其中预加载离线资源保存在core\src\main\assets\baidu_speech_grammar.bsg
(官方文档中给出的内容)

2、实际操作出现问题:

在这里插入图片描述

点击开始后保存,而且对语音没有反应(断网情况下)

解决办法:
确认1、false修改为true 2、APPID、APP_KEY和APP_SECRECT信息正确
运行之后发现手机上界面提示
在这里插入图片描述
先联网测试,然后关闭网络,再次点击开始,说出“打电话给李四(张三)”,仅限这句话(如果修改需要修改那个.bsg文件)

3、修改设置.bsg文件实现自己想要的离线命令词

在语音控制台的左侧功能栏中,进入“离线词&语义设置”模块,根据页面上的引导自行定义词条和语法,并生成bsg文件。其中右侧“说法”部分,为固定语法,下载后不可更改。左侧“词条”部分,代码中可以动态定义覆盖。
如下图中我添加了一些简答的功能,测试成功
在这里插入图片描述

(三)集成精简版唤醒功能

1、修改MainActivity.java:

import com.baidu.aip.asrwakeup3.core.mini.ActivityMiniWakeUp;
public class MainActivity extends ActivityMiniWakeUp {
    
    

}

启动后,首次使用需要在线,之后可以断网测试

2、可以自定义并修改唤醒词

修改.bin文件,并替换原来core中的WakeUp.bin文件
在这里插入图片描述

3、修改方法

在官网根据要求获得相应.bin文件(注意:每月只能使用三次)
在这里插入图片描述

四、最后

参考官方文档总算是将这个整理完了,应该是非常详细了,哪里还有问题,还望大家指正,谢谢啦!

附:

Android demo下载

其他百度API 系列的调用参见https://blog.csdn.net/weixin_45386875/article/details/113705329

猜你喜欢

转载自blog.csdn.net/weixin_45386875/article/details/113736542