有关我们这个项目:智能自然语言交流系统,所借鉴的技术有:
第一:我们使用了科大讯飞的在线语音转换,涉及的有文本传给云端服务器的文字转换成语音和本地的语音上传给服务器转换成文字。
涉及的相关的代码有:
private void showReconigizerDialog() {
//setEngine(String engine,String params,String grammar);
/**
* 识别引擎选择,目前支持以下五种
“sms”:普通文本转写
“poi”:地名搜索
“vsearch”:热词搜索
“vsearch”:热词搜索
“video”:视频音乐搜索
“asr”:命令词识别
params 引擎参数配置列表
附加参数列表,每项中间以逗号分隔,如在地图搜索时可指定搜索区域:“area=安徽省合肥市”,无附加参数传null
*/
rd.setEngine("sms", null, null);
//设置采样频率,默认是16k,android手机一般只支持8k、16k.为了更好的识别,直接弄成16k即可。
rd.setSampleRate(RATE.rate16k);
final StringBuilder sb = new StringBuilder();
Log.i(TAG, "识别准备开始.............");
//设置识别后的回调结果
rd.setListener(new RecognizerDialogListener() {
@Override
public void onResults(ArrayList<RecognizerResult> result, boolean isLast) {
for (RecognizerResult recognizerResult : result) {
sb.append(recognizerResult.text);
Log.i(TAG, "识别一条结果为::"+recognizerResult.text);
}
}
@Override
public void onEnd(SpeechError error) {
Log.i(TAG, "识别完成.............");
txt_result.setText(sb.toString());
Log.i(TAG, "识别完成:"+txt_result.getText().toString());
}
});
txt_result.setText(""); //先设置为空,等识别完成后设置内容
rd.show();
}
}
借鉴使用了科大讯飞的语音包,使用了科大讯飞的在线语音转换。