讯飞语音包实现Android语音理解①
语音语义理解
您可以通过后台配置出一套您专属的语义结果,详见
http://osp.voicecloud.cn/
核心代码如下:
public class MainActivity extends Activity implements OnClickListener {
private Button button;
private TextView textView;
private SpeechUnderstander understander;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// SpeechUtility.createUtility(this, SpeechConstant.APPID+"=12345678");
SpeechUtility.createUtility(this, "appid=12345678");
understander = SpeechUnderstander.createUnderstander(this, null);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.bt);
textView = (TextView) findViewById(R.id.tv);
textView.setMovementMethod(ScrollingMovementMethod.getInstance());
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bt:
textView.setText("");
// SpeechUnderstander understander
// =SpeechUnderstander.createUnderstander(this, null);
// 2.设置参数,语义场景配置请登录 http://osp.voicecloud.cn/
understander.setParameter(SpeechConstant.LANGUAGE, "zh_cn");// 语言
understander.setParameter(SpeechConstant.DOMAIN, "iat");// 应用领域
understander.setParameter(SpeechConstant.NLP_VERSION, "2.0");// 开放语义协议版本号,如需使用请在http://osp.voicecloud.cn/上进行业务配置
understander.setParameter(SpeechConstant.RESULT_TYPE, "json");// 返回结果类型
// 。
if (understander.isUnderstanding()) {
understander.stopUnderstanding();
}
understander.startUnderstanding(listener);
break;
default:
break;
}
}
private SpeechUnderstanderListener listener = new SpeechUnderstanderListener() {
@Override
public void onVolumeChanged(int arg0, byte[] arg1) {
// TODO Auto-generated method stub
}
@Override
public void onResult(UnderstanderResult arg0) {
// TODO Auto-generated method stub
String text = arg0.getResultString();
XmlParser.parseNluResult(text);
textView.append(text);
Log.i("fffff", XmlParser.parseNluResult(text));
}
@Override
public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
// TODO Auto-generated method stub
}
@Override
public void onError(SpeechError arg0) {
// TODO Auto-generated method stub
}
@Override
public void onEndOfSpeech() {
// TODO Auto-generated method stub
}
@Override
public void onBeginOfSpeech() {
// TODO Auto-generated method stub
}
};
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
understander.cancel();
}
}
日拱一卒百无有尽,功不唐捐终入海
浙公网安备 33010602011771号