讯飞语音听写Demo

导语

自从上次看了锤子M1发布会之后,一直对发布会上大放光彩的讯飞语音识别很感兴趣,最近正好有时间,便做了一个小Demo与大家分享一下。


效果演示

讯飞语音听写Demo_第1张图片

下载SDK

我们的Demo开发需要借助讯飞开放平台提供的SDK,所以第一步我们需要先下载SDK

首先我们需要先创建一个应用

讯飞语音听写Demo_第2张图片

应用创建完成后,我们再次来到SDK下载页面,选择相应的服务

讯飞语音听写Demo_第3张图片

选中刚才创建的应用(该应用会和下载的SDK进行绑定)

讯飞语音听写Demo_第4张图片

导入SDK

将下载的SDK文件解压

讯飞语音听写Demo_第5张图片

libs 里面的jar文件和so库文件拷贝到项目的 libs 目录

讯飞语音听写Demo_第6张图片
讯飞语音听写Demo_第7张图片

选中两个jar文件右键选择“Add As Libary”,将jar文件添加到库

接下来就是导入assets目录里面的资源文件,Android Studio默认并没有创建该目录,所以我们需要自己手动创建,在项目的app目录上面右键 New/Folder/Assets Folder

讯飞语音听写Demo_第8张图片

最后,我们打开Module的 build.gradle 文件在 android 标签下添加如下代码,指定so库的位置

sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
}

添加用户权限

在工程AndroidManifest.xml 文件中添加如下权限





初始化

进入我的应用,复制自己的id

讯飞语音听写Demo_第9张图片

初始化即创建语音配置对象,只有初始化后才可以使用MSC 的各项服务。建议将初始化放在程序入口处(如Application、Activity 的 onCreate 方法),初始化代码如下:

//将“12345678”替换成您申请的APPID
SpeechUtility.createUtility(this,SpeechConstant.APPID+"=12345678");

按钮监听

//按钮监听
   public void startListener(View view){
       //1.创建RecognizerDialog对象
       RecognizerDialog mDialog = new RecognizerDialog(this,null);
       //2.设置accent、language等参数
       mDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
       mDialog.setParameter(SpeechConstant.ACCENT, "mandarin");
       // 3.设置回调接口
       mDialog.setListener(new RecognizerDialogListener() {
            //识别结果的回调接口,会进行多次回调
            //当isLast为true时,识别结束
           @Override
           public void onResult(RecognizerResult result, boolean isLast) {
               //System.out.println("识别结果:"+result);
               mBuffer.append(parseDatd(result.getResultString()));
               if (isLast){
                   editText.setText(mBuffer.toString());
               }
           }
           @Override
           public void onError(SpeechError speechError) {

           }
       });
       //4.显示dialog,接收语音输入
       mDialog.show();
   }

解析数据

由于识别结果返回的是json格式的数据,我们并不能直接使用,此时需要将json转换为普通的String数据

我们可以借助一个开源的类库 GSON 添加方法如下:

按快捷键Ctrl + Shift + Alt + S 打开 项目结构 对话框,切换到 依赖 选项卡,点击右上角“+”号,搜索 gson ,如下图:

讯飞语音听写Demo_第10张图片
2109064-07cc4e2d6cf3f718.gif

或者直接在项目的 build.gradle 文件的 dependencies 标签下,添加如下代码:

compile 'com.google.code.gson:gson:2.8.0'

解析json数据时,我们需要创建一个Bean类,可以借助Android Studio的一个插件 GsonFormat 帮我们快速生成,安装步骤如下:

按快捷键Ctrl + Alt + S 打开 Settings 对话框,选择 Plugins

讯飞语音听写Demo_第11张图片

1.编写Bean类

我们可以先运行程序进行测试,将结果打印出来

新建一个VoiceBean类,在该类的编辑界面 按Alt + S 快捷键,打开GsonFormat插件,复制刚才打印的json数据

讯飞语音听写Demo_第12张图片

从打印出的json中发现,我们只需要 “w” 对应的数据

讯飞语音听写Demo_第13张图片

点击 OK 即可创建完成

2.解析代码

//解析数据
private String parseDatd(String json) {
    //创建Gson对象
    Gson gson = new Gson();
    VoiceBean voiceBean = gson.fromJson(json,VoiceBean.class);
    StringBuffer sb = new StringBuffer();
    List ws = voiceBean.getWs();
    for (VoiceBean.WsBean wsBean : ws){
        String word = wsBean.getCw().get(0).getW();
        sb.append(word);
    }
    return sb.toString();
}

项目文件下载

你可能感兴趣的:(讯飞语音听写Demo)