Android Studio讯飞语音实现语音转文字

1.在官网上下载SDK https://www.xfyun.cn/

2.在lisbs

Android Studio讯飞语音实现语音转文字

 libs里面的两个在add:

Android Studio讯飞语音实现语音转文字 

3.jinLibs下面:

Android Studio讯飞语音实现语音转文字

4.主页面




public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_click;

    private EditText mResultText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SpeechUtility.createUtility(this, SpeechConstant.APPID +"=自己的APPID");
        btn_click = (Button) findViewById(R.id.btn_click);

        mResultText = ((EditText) findViewById(R.id.result));



        btn_click.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {

            case R.id.btn_click:
                btnVoice();
                break;
        }


    }

    private void btnVoice() {
        RecognizerDialog dialog = new RecognizerDialog(this,null);

        dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");

        dialog.setParameter(SpeechConstant.ACCENT, "mandarin");

        dialog.setListener(new RecognizerDialogListener() {

            @Override

            public void onResult(RecognizerResult recognizerResult, boolean b) {

                printResult(recognizerResult);

            }

            @Override

            public void onError(SpeechError speechError) {

            }

        });

        dialog.show();

        Toast.makeText(this, "请开始说话", Toast.LENGTH_SHORT).show();

    }

    //回调结果:

    private void printResult(RecognizerResult results) {

        String text = parseIatResult(results.getResultString());

        // 自动填写地址

        mResultText.append(text);

    }

    public static String parseIatResult(String json) {

        StringBuffer ret = new StringBuffer();

        try {

            JSONTokener tokener = new JSONTokener(json);

            JSONObject joResult = new JSONObject(tokener);

            JSONArray words = joResult.getJSONArray("ws");

            for (int i = 0; i < words.length(); i++) {

                // 转写结果词,默认使用第一个结果

                JSONArray items = words.getJSONObject(i).getJSONArray("cw");

                JSONObject obj = items.getJSONObject(0);

                ret.append(obj.getString("w"));

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return ret.toString();

    }
    }





 5.布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button

        android:id="@+id/btn_click"

        android:text="点击打开讯飞语音识别"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        />

    <EditText

        android:id="@+id/result"

        android:layout_below="@id/btn_click"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:hint="此处显示你所录下的内容"

        />
</LinearLayout>

6.权限

 <!--连接网络权限,用于执行云端语音能力 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <!--读取网络信息状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!--获取当前wifi状态 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!--允许程序改变网络连接状态 -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
    <!--读取手机信息权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!--读取联系*限,上传联系人需要用到此权限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <!--外存储写权限,构建语法需要用到此权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!--外存储读权限,构建语法需要用到此权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <!--配置权限,用来记录应用配置信息 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS"
        tools:ignore="ProtectedPermissions" />
    <!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务-->
    <!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!--如需使用人脸识别,还要添加:摄相头权限,拍照需要用到 -->
    <uses-permission android:name="android.permission.CAMERA" />

点击开始

Android Studio讯飞语音实现语音转文字

效果 

Android Studio讯飞语音实现语音转文字