博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
讯飞语音识别Android-Demo
阅读量:4637 次
发布时间:2019-06-09

本文共 5879 字,大约阅读时间需要 19 分钟。

import java.io.UnsupportedEncodingException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.iflytek.cloud.ErrorCode; import com.iflytek.cloud.InitListener; import com.iflytek.cloud.LexiconListener; import com.iflytek.cloud.RecognizerListener; import com.iflytek.cloud.RecognizerResult; import com.iflytek.cloud.SpeechConstant; import com.iflytek.cloud.SpeechError; import com.iflytek.cloud.SpeechListener; import com.iflytek.cloud.SpeechRecognizer; import com.iflytek.cloud.SpeechUtility; import com.iflytek.cloud.util.ContactManager.ContactListener; import com.iflytek.cloud.util.UserWords; public class MainActivity extends Activity implements OnClickListener {     private static String TAG = "IatDemo";     // 语音听写对象     private SpeechRecognizer mIat;     // 听写结果内容     private EditText mResultText;     // 用户词表下载结果     private String mDownloadResult = "";     private Toast mToast;     private int ret;     private Button startRecording;         private String voiceResult = "";         private TextView text_result;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         mIat = SpeechRecognizer.createRecognizer(this, mInitListener);         mToast = Toast.makeText(this, "", Toast.LENGTH_SHORT);         text_result = (TextView) this.findViewById(R.id.text_result);         startRecording = (Button) this.findViewById(R.id.start_recording);         startRecording.setOnClickListener(this);     }     @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }     public void getVoice() {         SpeechUtility.createUtility(MainActivity.this, "appid=540593c3");         // 设置参数         setParam();         // 不显示听写对话框         ret = mIat.startListening(recognizerListener);     }     public void setParam() {         mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");         // 设置语音前端点         mIat.setParameter(SpeechConstant.VAD_BOS, "4000");         // 设置语音后端点         mIat.setParameter(SpeechConstant.VAD_EOS, "1000");         // 设置标点符号         mIat.setParameter(SpeechConstant.ASR_PTT, "1");         // 设置音频保存路径         mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH, Environment.getExternalStorageDirectory()+"/xunfei");     }     /**      * 初始化监听器。      */     private InitListener mInitListener = new InitListener() {         @Override         public void onInit(int code) {             Log.d(TAG, "SpeechRecognizer init() code = " + code);             if (code == ErrorCode.SUCCESS) {                 Toast.makeText(MainActivity.this, "init success", 0).show();             }         }     };     /**      * 用户词表下载监听器。      */     private SpeechListener downloadlistener = new SpeechListener() {         @Override         public void onData(byte[] data) {             try {                 if (data != null && data.length > 1)                     mDownloadResult = new String(data, "utf-8");             } catch (UnsupportedEncodingException e) {                 e.printStackTrace();             }         }         @Override         public void onCompleted(SpeechError error) {             if (error != null) {             } else if (TextUtils.isEmpty(mDownloadResult)) {             } else {                 mResultText.setText("");                 UserWords userwords = new UserWords(mDownloadResult.toString());                 if (userwords == null || userwords.getKeys() == null) {                     return;                 }                 for (String key : userwords.getKeys()) {                     mResultText.append(key + ":");                     for (String word : userwords.getWords(key)) {                         mResultText.append(word + ",");                     }                     mResultText.append("\n");                 }             }         }         @Override         public void onEvent(int eventType, Bundle params) {         }     };     /**      * 听写监听器。      */     private RecognizerListener recognizerListener = new RecognizerListener() {         @Override         public void onBeginOfSpeech() {             Toast.makeText(MainActivity.this, "begin speech", 0).show();         }         @Override         public void onError(SpeechError error) {             Toast.makeText(MainActivity.this, error.getErrorDescription(), 0).show();         }         @Override         public void onEndOfSpeech() {             Toast.makeText(MainActivity.this, "end", 0).show();         }         @Override         public void onEvent(int eventType, int arg1, int arg2, String msg) {             Toast.makeText(MainActivity.this, "on event", 0).show();         }         @Override         public void onResult(RecognizerResult results, boolean isLast) {             String text = JsonParser.parseIatResult(results.getResultString());             voiceResult = voiceResult + text;             if (isLast) {                 text_result.setText(voiceResult);             }         }         @Override         public void onVolumeChanged(int volume) {         }     };     @Override     protected void onResume() {         // SpeechUtility.getUtility().checkServiceInstalled();         super.onResume();     }     @Override     public void onClick(View v) {         switch (v.getId()) {         case R.id.start_recording:             getVoice();             break;         }     } }

转载于:https://www.cnblogs.com/jasonkent27/p/4914412.html

你可能感兴趣的文章
IAAS云计算产品畅想-云主机的产品定位
查看>>
introduction of velocity
查看>>
cassandra vs mongo (1)存储引擎
查看>>
VUE router-view 页面布局 (嵌套路由+命名视图)
查看>>
[BZOJ 1053] 反素数
查看>>
MapWinGIS介绍
查看>>
Effective C++ 读书笔记
查看>>
checkbox做全选操作
查看>>
bzoj:1692 [Usaco2007 Dec]队列变换&&1640 [Usaco2007 Nov]Best Cow Line 队列变换
查看>>
poj 2778:DNA Sequence
查看>>
GMA Round 1 双曲线与面积
查看>>
wamp环境下pear的安装和使用
查看>>
IdentityServer4结合AspNetCore.Identity实现登录认证踩坑填坑记录
查看>>
hdu 1251 统计难题
查看>>
tcpdump 抓网卡的数据包
查看>>
旅行社微信电子会员卡系统asp源码
查看>>
我希望四年前就有人告诉我的事情--创业必须知道的事情
查看>>
Dijkstra算法详解
查看>>
马尔可夫方程的解
查看>>
#敏捷个人# 第二批敏捷个人推广者实践团报名
查看>>