AIUIConfiguration.java 1.93 KB
package com.ys.yslibrary.aiui;


import android.content.Context;

import androidx.annotation.NonNull;

import java.io.IOException;
import java.io.InputStream;

public class AIUIConfiguration {
    static final String ASSETS_CONFIG_PATH = "cfg/aiui_phone.cfg";
    private Context context;
    private static String currentAssetConfig;
    public static final String CONFIG_STOP_RECORD_PARAMS = "data_type=audio,sample_rate=16000";
    //包含流式识别
    public static final String CONFIG_START_RECORD_AND_PROGRESSIVE_PARAMS = "data_type=audio,sample_rate=16000,dwa=wpgs";
    public static final String CONFIG_START_RECORD_PARAMS = "data_type=audio,sample_rate=16000";
    //pers_param用于启用动态实体和所见即可说功能
    public static final String CONFIG_WRITE_PARAMS = "data_type=text,pers_param={\"appid\":\"\",\"uid\":\"\"}";

    public static final long TIME_CHECK_NOT_SPEAK = 2 * 1000;//8s
    public static final long TIME_CHECK_FIRST_NOT_SPEAK = 5 * 1000;//首次不说话

    public AIUIConfiguration(Context context) {
        this.context = context;
        if (currentAssetConfig == null) {
            currentAssetConfig = readAssetFile(context, ASSETS_CONFIG_PATH);
        }
    }

    public String getCurrentAssetConfig() {
        return currentAssetConfig;
    }

    public String readAssetFile(Context mContext, String filename) {
        try {
            InputStream input = mContext.getAssets().open(filename);
            return readStringFromStream(input);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }


    @NonNull
    private String readStringFromStream(InputStream input) throws IOException {
        StringBuilder result = new StringBuilder();
        byte[] buffer = new byte[1024];
        int read;
        while ((read = input.read(buffer)) > 0) {
            result.append(new String(buffer, 0, read));
        }

        return result.toString();
    }
}