讯飞语音包实现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();
	}
}



posted @ 2016-04-15 14:20  稻香鱼  阅读(194)  评论(0)    收藏  举报