//语音识别
public void voiceRecognition() {
//创建一个AsrClient对象
AsrClient asrClient = AsrClient.createAsrClient(this).orElse(null);
//设置引擎参数
AsrIntent initIntent = new AsrIntent();
initIntent.setAudioSourceType(AsrIntent.AsrAudioSrcType.ASR_SRC_TYPE_PCM);
// 将FilePath修改为正确的地址,且文件路径需要给com.huawei.hiai进程授予可访问权限。
initIntent.setFilePath("/data/data/com.jiakejian/voice");
asrClient.init(initIntent, new AsrListener() {
@Override
public void onInit(PacMap pacMap) {
HiLog.info(LABEL_LOG, "pacMap:" + pacMap);
AsrIntent asrIntent = new AsrIntent();
asrClient.startListening(asrIntent);
}
@Override
public void onBeginningOfSpeech() {
HiLog.info(LABEL_LOG, "开始讲话:===============");
}
@Override
public void onRmsChanged(float v) {
HiLog.info(LABEL_LOG, "声音改变:===============");
}
@Override
public void onBufferReceived(byte[] bytes) {
asrClient.writePcm(bytes, 1280);
}
@Override
public void onEndOfSpeech() {
HiLog.info(LABEL_LOG, "声音停止:===============");
}
@Override
public void onError(int i) {
HiLog.info(LABEL_LOG, "错误:===============" + i);
}
@Override
public void onResults(PacMap pacMap) {
String result = pacMap.getString(AsrResultKey.RESULTS_INTERMEDIATE);
HiLog.info(LABEL_LOG, "result:" + result);
}
@Override
public void onIntermediateResults(PacMap pacMap) {
String result = pacMap.getString(AsrResultKey.RESULTS_INTERMEDIATE);
HiLog.info(LABEL_LOG, "result:" + result);
}
@Override
public void onEnd() {
}
@Override
public void onEvent(int i, PacMap pacMap) {
}
@Override
public void onAudioStart() {
}
@Override
public void onAudioEnd() {
}
});
}