前不久项目中用到了语音识别技术,因此就研究了一下语音识别技术在项目中的集成。由于我是在公司的设备上运行的,所以没有截图,为了直观方便的看一下效果,所以就在网上找了两张和我的项目运行后差不多的图片。
市场上的语音技术应用最广泛的有两种,一种是百度的语音识别,一种是科大讯飞的语音识别。两者之间的不同之处在于,前者是完全免费的,后者在离线状态识别语音是收费的。今天先记录一下科大讯飞在线的语音识别,等有机会在记录一下百度的语音识别。
首先需要在科大讯飞的开放平台上申请一个账号,申请的过程就不再描述。申请成功以后,平台会发放一个APPID号。这个ID号留待使用。 然后平台会让你创建一个应用,这时候你把自己的应用信息填好以后,选择SDK下载。
当SDK下载完以后,会得到一个ZIP压缩包,解开这个压缩包,会看到如下的文件:
其中assets目录里是资源文件,主要是语音识别的弹出框图片,可以原封不动拷过来。如果只是单纯的识别,还需要拷贝两个文件,一个是libs下的armeabi文件夹,一个是libs下的Msc.jar。拷贝完以后,放到项目的libs文件夹下。
准备工作完成以后,就可以进行代码的编写了,一般是在点击某个按钮以后,进入语音识别的情景。在这里假设点击了某个按钮的场景
package com.szh.speechdemo.activity;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;