AsrRecognizer asrRecognizer = AsrRecognizer.createAsrRecognizer(this);
asrRecognizer.init(initIntent, mMyAsrListener);
asrRecognizer.startListening(intent);
JSONObject result = new JSONObject(json);
JSONArray items = result.getJSONArray("result");
{
"confidence": 0.95,
"word":"请问明天天气怎么样"
}
开发者可以将获取到的语音数据通过writePcm()方法写入到引擎中,引擎通过识别解码,将语音转化为相应的文本。同时引擎支持自录音和从文件读取的方式进行识别,初始化引擎时可以通过配置ASR_AUDIO_SRC_TYPE参数来实现。文件读取的方式可以进行批量的文件测试。
当用户已经启动了识别后,即识别的过程中,突然想停止上述两种方法都可以停下来,差别是: cancel()停止但是不上报当前已经识别的结果; stopListening()停止且会把当前的结果刷新上报显示。
HUAWEI HiAI Engine 不支持同一应用使用多线程调用同一接口,这样会导致某一线程调用release方法后,卸载模型,导致正在运行的另一些线程出错。故多线程执行同一功能达不到并行的效果。另外,由于Android同一时刻只能有一个录音线程在,故语音识别本身不支持多线程的并发。但是引擎支持使用多线程调用不同接口,如开启两个线程同时使用美学评分和ASR接口。