这几天在弄讯飞语义的这一块,就是发送字段给服务器,然后返回响应的信息,根据返回的信息进行相应筛选
语义也就是智能应答,集成讯飞语义开发的SDK,首先要在下载SDK勾选《开放语义》这个选项,这样才能享受这项服务的相关内容,然后可以在应用管理里面选择你要接入的服务类型(如下图所示)
在这里面可以根据自己的需要进行选择 完成之后我们看相关文档
相关参数配置,请参考本博第二和第三篇文章 接下来上代码
我采用的是文本语义开发,就是将语音转化为文本,或者直接采用文本
首先需要定义文本理解对象
private TextUnderstander mTextUnderstander;
然后初始化
//初始化文本语义对象
mTextUnderstander = TextUnderstander.createTextUnderstander(MainActivity.this, mTextUdrlnitListener);
然后在合适的地方调用智能是我自定义的一个方法text就是要理解的语义文本
int ret = 0;// 函数调用返回值
private void zhineng(String text) {
ret = mTextUnderstander.understandText(text, mTextUnderstanderstanderListener);
if(ret != 0)
{
}
// TODO Auto-generated method stub
}
});
}
///
//
/
/
private TextUnderstanderListener mTextUnderstanderListener = new TextUnderstanderListener() {
public void onResult(final UnderstanderResult result) {
if (null != result) {
// 显示
//下面的sss就是返回的json字段信息,我们需要进行解析 下面给出了两个例子
String text = result.getResultString();
if (!TextUtils.isEmpty(text)) {
JSONObject sss = null;
JSONObject aaa = null;
JSONArray eee=null;
try {
sss = new JSONObject(text);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String eeestring=null;
try {
eeestring=(String)sss.getString("service");
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//这种类似的判断 判断是菜谱
if (eeestring.equals("cookbook")) {
try {
eee=sss.getJSONObject("data").getJSONArray("result");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
aaa = (JSONObject)eee.opt(1);
String oooString = null;
try {
oooString=(String)aaa.getString("url");
Intent openUrlIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(oooString));
startActivity(openUrlIntent);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(MainActivity.this, eeestring+"这是菜谱111111",0).show();
}
//判断查询的是音乐
if (eeestring.equals("music")) {
Toast.makeText(MainActivity.this, eeestring+"播放音乐111111",0).show();
try {
eee=sss.getJSONObject("data").getJSONArray("result");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
aaa = (JSONObject)eee.opt(1);
String oooString = null;
try {
oooString=(String)aaa.getString("downloadUrl");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
playmusic(oooString);
Toast.makeText(MainActivity.this, oooString,0).show();
}
}
} else {
}
}
好了,基本就是这样,有什么疑问可以留言交流,要demo也可以