android 讯飞语义开发的一点见解

本文介绍如何集成科大讯飞的语义SDK,实现文本到语义的理解及应用场景,如菜谱查询和音乐播放等,并展示了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  这几天在弄讯飞语义的这一块,就是发送字段给服务器,然后返回响应的信息,根据返回的信息进行相应筛选

语义也就是智能应答,集成讯飞语义开发的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也可以
   



评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值