语音识别,语义理解一站式解决之二(android,olami)

本文档介绍了如何使用Olami在Android上实现语音识别和语义理解功能,包括支持的语音指令、Demo效果展示、初始化设置、回调处理、服务器返回结果解析以及源码下载链接。
摘要由CSDN通过智能技术生成

转载请注明CSDN地址:http://blog.csdn.net/ls0609/article/details/72765789

语音在线听书demo:http://blog.csdn.net/ls0609/article/details/71519203

前言

国内语音识别技术已有多家,而olami不仅在语音识别上准确率较高,更重要的是在语义理解上十分强大,本文用olami sdk做了一个记账demo(记账部分代码参考开源代码),这个demo可以语音添加不同消费记录,查询当天,当月消费情况,删除消费列表中的记录。让我们一起来感受下olami如何实现强大的语义理解。

1.demo支持的说法

demo中实现的说法主要有如下几种(同类说法可以很多,没有全部列举):

今天餐饮开销一百元
今日交通出行五十元
本月15号日常购物一百元
这个月水电煤气两百元
查询今天的账单
查看今日的消费情况
今天的账单
今日消费
查询这个月的消费情况
查看本月消费
本月的账单
删除第一条
删除第一个记录
删除第五条消费记录

2. demo实现的效果图

这里写图片描述

这里写图片描述

3.olami的初始化和回调用法

初始化部分参考源码MainActivity.java中init()函数

     public void init()
    {
        initHandler();
        mOlamiVoiceRecognizer = new OlamiVoiceRecognizer(MainActivity.this);
        TelephonyManager telephonyManager=(TelephonyManager)this.getSystemService
                                          (this.getBaseContext().TELEPHONY_SERVICE);
        String imei=telephonyManager.getDeviceId();
        mOlamiVoiceRecognizer.init(imei);//set null if you do not want to notify olami server.

        mOlamiVoiceRecognizer.setListener(mOlamiVoiceRecognizerListener);//设置识别结果回listener
        mOlamiVoiceRecognizer.setLocalization
        (OlamiVoiceRecognizer.LANGUAGE_SIMPLIFIED_CHINESE);//设置支持的语音类型,优先选择中文简体 
        mOlamiVoiceRecognizer.setAuthorization(
        "573031596fd746fca478e5cccf6ca9e2","asr","d5307ed38df64ab6a08e467c00c81d37","nli"); 
        //注册Appkey,在olami官网注册应用后生成的appkey
        //注册api,请直接填写“asr”,标识语音识别类型
        //注册secret,在olami官网注册应用后生成的secret
        //注册seq ,请填写“nli”       
        mOlamiVoiceRecognizer.setVADTailTimeout(2000);//录音时尾音结束时间,建议填//2000ms
        mOlamiVoiceRecognizer.setLatitudeAndLongitude(31.155364678184498,121.34882432933009);
        //设置经纬度信息,不愿上传位置信息,可以填0 
    }

注册一个回调,用于各种回调,可以更新界面和处理服务器返回数据。

private class OlamiVoiceRecognizerListener implements IOlamiVoiceRecognizerListener{
   

        @Override
        public void onError(int errCode) {
  //出错回调
            mHandler.sendMessage(mHandler.obtainMessage(
                                 MessageConst.CLIENT_ACTION_ON_ERROR,errCode,0));

        }

        @Override
        public void onEndOfSpeech() {
  //录音结束回调
            mHandler.sendEmptyMessage(MessageConst.CLIENT_ACTION_STOP_RECORED);         
        }

        @Override
        public void onBeginningOfSpeech() {
  //录音开始回调
            mHandler.sendEmptyMessage(MessageConst.CLIENT_ACTION_START_RECORED);            
        }

        @Override
        public void onResult(String result, int type) {
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值