Android 科大讯飞 在线和离线语音听写

本文介绍了在Android中使用科大讯飞进行在线和离线语音听写的实现过程,包括如何创建有UI和无UI的语音识别,并且解决了离线语音识别首次无法识别的问题。详细代码和注意事项在内容中给出。
摘要由CSDN通过智能技术生成

效果图:

这里写图片描述

参考资料

http://blog.csdn.net/imhxl/article/details/50854146

项目里要用语音听写,想到了科大讯飞,参考上面的资料完成了最简单的在线有UI的语音识别,后面想要改成离线也可以使用。参考下面的文章

http://blog.csdn.net/q4878802/article/details/47834601

下载好语记和离线资源之后,想要改成有UI的RecognizerDialog离线语音听写,但是没成功,试了一下没有UI的SpeechRecognizer,发现可以,只需在设置参数的时候加上一句

recognizer.setParameter(SpeechConstant.ENGINE_TYPE,SpeechConstant.TYPE_LOCAL);//调用语记接口

就可以使用了。可能是RecognizerDialog带有UI界面,已经默认写成在线的了吧
下面只贴出主活动的代码,其他参考上面的资料

package com.example.administrator.voicerecognition;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerListener;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechRecognizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;

public class MainActivity extends AppCompatActivity {
   
    private Button btn_voiceRec,btn_voiceRecOffline;
    private RecognizerDialog iatDialog=null;
    private SpeechRecognizer recognizer=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SpeechUtility.createUtility(this, "appid=xxx");//替换为实际的appid
        btn_voiceRec = (Button) findViewById(R.id.btn_voiceRec);
        btn_voiceRec.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (iatDialog!=null){
                    iatDialog.cancel();
                    iatDialog.destroy();
                }
                startDialogOnline();
            }
        });
        btn_voiceRecOffline= (Button) findViewById(R.id.btn_voiceRecOffline);
        btn_voiceRecOffline.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                if (recognizer!=null){
   
//                    recognizer.cancel();
//                    recognizer.destroy();
//                }
                startNoDialogOffline();
            }
        });
    }

    /**
     * 初始化监听器。
     */
    private InitListener mInitListener = new InitListener() {

        @Override
        public void onInit(int code) {
            Log.d("tag", "SpeechRecognizer init() code = " + code);
            
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值