Android科大讯飞语音听写实现
2017-04-04 10:42
621 查看
首先去讯飞平台注册一个应用,因为要用到APPID这个字符串。其实查看一下官方文档更好,每个接口都有很详细的准备工作和代码使用说明。链接:https://www.xfyun.cn/
在这里我就把准备工作再赘述一遍,已结做好准备工作的同学可以直接看使用代码。
工作环境:AndroidStudio
1、导入文件
将两个jar文件放入工程libs文件夹下。
两个jar文件上的7个文件夹里面含有so文件,全部放入工程:在main文件夹下新建jniLibs文件夹,然后将7个文件夹全部放入即可。
还有一些其他的资源文件,比如官方sdk下的assets文件夹下的资源,也需要放入工程:在main文件夹下新建assets文件夹,然后将官方sdk下的assets文件夹里的资源放入即可。
2、添加用户权限
在proguard-rules.pro里添加混淆规则:
3、初始化
在使用语音听写之前,还需先创建语音配置对象,建议放在oncreate方法中,且一定要放在其他语音功能实现之前。
接下来是语音听写的实现
布局文件中我只使用了一个button和一个edittext,就不贴出来了。button用来响应语音听写的实现,edittext用来显示语音识别的结果。
附:在代码中用到了Gson类,我是通过添加依赖的方法解决的,以下是过程:
(1)在File工具栏中找到Project Structure
(2)切换至app下的Dependencies
(3)点击右边的加号添加依赖,选择第二个添加即可
在这里我就把准备工作再赘述一遍,已结做好准备工作的同学可以直接看使用代码。
工作环境:AndroidStudio
1、导入文件
将两个jar文件放入工程libs文件夹下。
两个jar文件上的7个文件夹里面含有so文件,全部放入工程:在main文件夹下新建jniLibs文件夹,然后将7个文件夹全部放入即可。
还有一些其他的资源文件,比如官方sdk下的assets文件夹下的资源,也需要放入工程:在main文件夹下新建assets文件夹,然后将官方sdk下的assets文件夹里的资源放入即可。
2、添加用户权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.W 4000 RITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
在proguard-rules.pro里添加混淆规则:
-keep class com.iflytek.**{*;} -keepattributes Signature
3、初始化
在使用语音听写之前,还需先创建语音配置对象,建议放在oncreate方法中,且一定要放在其他语音功能实现之前。
SpeechUtility.createUtility(this,SpeechConstant.APPID+"="+APPID);
接下来是语音听写的实现
private void initSpeech(){ //1、初始化窗口 RecognizerDialog dialog=new RecognizerDialog(MainActivity.this,null); //2、设置听写参数,详见官方文档 //识别中文听写可设置为"zh_cn",此处为设置英文听写 dialog.setParameter(SpeechConstant.LANGUAGE,"en_us"); dialog.setParameter(SpeechConstant.ACCENT,"mandarin"); //3、开始听写 dialog.setListener(new RecognizerDialogListener() { @Override public void onResult(RecognizerResult recognizerResult, boolean b) { if(!b){ String result=parseVoice(recognizerResult.getResultString()); editText.setText(result); //Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show(); } } @Override public void onError(SpeechError speechError) { } }); dialog.show(); } //解析Gson对象 public String parseVoice(String resultString) { Gson gson = new Gson(); Voice voiceBean = gson.fromJson(resultString, Voice.class); StringBuffer sb = new StringBuffer(); ArrayList<Voice.WSBean> ws = voiceBean.ws; for (Voice.WSBean wsBean : ws) { String word = wsBean.cw.get(0).w; sb.append(word); } return sb.toString(); } /** * 语音对象封装 */ public class Voice { public ArrayList<WSBean> ws; public class WSBean { public ArrayList<CWBean> cw; } public class CWBean { public String w; } }
布局文件中我只使用了一个button和一个edittext,就不贴出来了。button用来响应语音听写的实现,edittext用来显示语音识别的结果。
附:在代码中用到了Gson类,我是通过添加依赖的方法解决的,以下是过程:
(1)在File工具栏中找到Project Structure
(2)切换至app下的Dependencies
(3)点击右边的加号添加依赖,选择第二个添加即可
相关文章推荐
- Android实战——科大讯飞语音听写SDK的使用,实现语音识别功能
- Android实战——科大讯飞语音听写SDK的使用,实现语音识别功能
- 科大讯飞语音实现Android拨号之二
- 科大讯飞语音听写 - Android
- iOS 使用科大讯飞技术实现语音转文字(语音听写)
- Android 科大讯飞 在线和离线语音听写
- Android 科大讯飞 语音听写
- Android开发 语音识别技术之科大讯飞语音识别(一) — 语音听写
- android集成科大讯飞语音听写和语音合成
- 科大讯飞语音实现Android拨号之一
- 【从零单排】利用科大讯飞语音包实现Android语音识别Demo
- android 融云 + 科大讯飞 实现仿微信语音消息转换为文字
- Android P2P语音通话实现(思路探讨)
- Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行
- Android通过JUV+Red5+Speex实现网络语音聊天(一)
- Android P2P语音通话实现 【转】http://macleo.iteye.com/blog/1707455
- Android P2P语音通话实现(思路探讨)【转】http://www.cnblogs.com/milospooner/archive/2012/07/13/2590950.html
- Android P2P语音通话实现(思路探讨)
- android自学之TextToSpeech例子实现将文字转化为语音功能
- android语音识别之科大讯飞语音API的使用