2025年图灵机器人快速接入教程

图灵机器人快速接入教程图灵机器人快速接入 Android APP 教程 修改日期 急用的直接下项目 TulingDemo 准备 0 创建安卓或 ios 项目 让开发工具先编译环境 利用这段时间打开浏览器完成注册什么的 1 注册登录 创建机器人 2 在机器人昵称右侧 有个 查看详情

大家好,我是讯享网,很高兴认识大家。

图灵机器人快速接入Android APP教程

准备:

0、创建安卓或ios项目,让开发工具先编译环境,利用这段时间打开浏览器完成注册什么的
1、注册登录,创建机器人
2、在机器人昵称右侧 有个“查看详情” ,进去按电脑键盘“end”键,到页面末尾,下载安卓或者ios文档;
3、解压缩下载的文件。苹果的我不清楚,安卓的解压缩,把libs这个文件夹复制到项目中,位置自己决定,能把各种jar包添加依赖即可
4、添加好以后,让他编译,利用这段时间,进入百度语音 创建应用,把三个key值保存到项目常量类中 ;对照官方文档之后的操作请对照官方文档吧,他们说不定啥时候会更新 这是文档 ,一步一步走;添加权限,添加代码什么的(文档中有纰漏,权限没写好,直接复制我的吧
<uses-ermissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /> </br> 

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
//如果需要使用蓝牙设备作为输入源, 需要额外在AndroidManifest.xml 文件添加下列权限:-
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> </br> 

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
请在程序清单添加上)
5、注意:配置分为语音识别、语义理解、语音合成三大模块
6、我在application中完成了三部分的初始化,包括监听,然后懵逼的发现他们没有解耦…………

注意事项


讯享网

 sourceSets { main { jniLibs.srcDirs = ['src/main/java/jniLibs'] jni.srcDirs = [] // This prevents the auto generation of Android.mk }} 

讯享网

原文解决方案点击这里
识别返回码处理
{“code”:40002,”text”:”亲爱的,不明白你说的什么意思。”}
{“code”:,”text”:”亲,已帮你找到图片”,”url”:”http:\/\/m.image.so.com\/i?q=%E7%BE%8E%E5%A5%B3”}

近期上代码,今天没时间了
:添加代码,如果想免去自己写代码的麻烦,快速出效果,请复制代码:
布局文件
<?xml version="1.0" encoding="utf-8"?> <br><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.MainActivity">

讯享网<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="reqVoice" android:text="开始识别" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="stopVoice" android:text="结束识别" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="introduce" android:text="介绍晨之晖" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="bequiet" android:text="一键静音" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="cover" android:text="恢复音量" /> 

</LinearLayout>
activity :

/* * @desc 改包名 com.czh.myrob * 1 语义识别解析 :requestTuringAPI(String requestInfo) * 2 语音合成播报:TTSManager.startTTS(String ttsContent) * 3 * @auther LiJianfei * @time 2016/8/6 9:41 / public class MainActivity extends BaseActivity { private InitListener initListener; private TuringApiManager m; private TTSListener ttsListener; private TTSManager ttsManager; private VoiceRecognizeManager voiceRecognizeManager; private String ttsString;// 将要播报的语音 private AudioManager audioManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 5, 0); setRecognize(); } / * 启动语音识别 * * @param v */ public void reqVoice(View v) { voiceRecognizeManager.startRecognize();// 开始收集语音 showSnack(v, "语音识别已启动"); } public void stopVoice(View v) { voiceRecognizeManager.stopRecognize(); showSnack(v, "语音识别已关闭"); } public void introduce(View v) { m.requestTuringAPI("晨之晖"); // showSnack(v, "语音识别已关闭"); } public void bequiet(View v) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); // showSnack(v, "语音识别已关闭"); } public void cover(View v) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 5, 0); // showSnack(v, "语音识别已关闭"); } private void initTuling() { / *E 初始化图灵组件 */ SDKInitBuilder sdkInitBuilder = new SDKInitBuilder(this); sdkInitBuilder.context = this; sdkInitBuilder.setTuringKey(Constant.TULING_KEY); sdkInitBuilder.setSecret(Constant.TULING_SECRET); sdkInitBuilder.setUniqueId(Constant.UniqueId); SDKInit.init(sdkInitBuilder, initListener); } private void setRecognize() { // A 初始化ASR语音识别状态监听 VoiceRecognizeListener listener = new VoiceRecognizeListener() { @Override public void onStartRecognize() { // DebugLogUtil.getInstance().Info("onStartRecognize="); } @Override public void onRecordStart() { // DebugLogUtil.getInstance().Info("onRecordStart="); } @Override public void onRecordEnd() { DebugLogUtil.getInstance().Info("onRecordEnd="); } @Override public void onRecognizeResult(String s) { // 获取识别结果,在步骤2里listener的回调方法onRecognizeResult中获取识别结果。然后传入语义解析 m.requestTuringAPI(s); DebugLogUtil.getInstance().Info("onRecognizeResult 获取语音识别结果=" + s); } @Override public void onRecognizeError(String s) { // TODO 这里应该做人性化判断 提醒用户说话 if (s == null || s.equals("") || s.equals("没有说话")) { ttsManager.startTTS("亲,说两句呗"); } DebugLogUtil.getInstance().Info("onRecognizeError=" + s); } @Override public void onVolumeChange(int i) { DebugLogUtil.getInstance().Info("onVolumeChange=" + i); } }; // 初始化百度语音 voiceRecognizeManager = new VoiceRecognizeManager(this, Constant.BDtuisongAPIKey, Constant.BDtuisongSecret_Key); // 设定ASR状态监听 voiceRecognizeManager.setVoiceRecognizeListener(listener); /*B 网络请求状态监听*/ final HttpConnectionListener httpConnectionListener = new HttpConnectionListener() { @Override public void onError(ErrorMessage errorMessage) { DebugLogUtil.getInstance().Info("网络请求监听onError"); } @Override public void onSuccess(RequestResult requestResult) { // TODO 在这里应该做解析和判断 ttsString = requestResult.getContent().toString(); String text; String code; String url; JSONObject object = (JSONObject) requestResult.getContent(); try { code = object.getString("code"); if (code.equals()) {// 解析图片和其他生活帮助等信息返回的页面 url = object.getString("url"); } text = object.getString("text"); ttsManager.startTTS(text);// 合成 播报 } catch (JSONException e) { e.printStackTrace(); DebugLogUtil.getInstance().Info("objec解析失败"); } DebugLogUtil.getInstance().Info(requestResult.getType() + "网络请求成功" + requestResult.getContent()); } }; /*C 组件状态监听*/ initListener = new InitListener() { @Override public void onComplete() { // 实例化TuringApiManager类 m = new TuringApiManager(App.getInstance()); m.setHttpListener(httpConnectionListener); } @Override public void onFail(String s) { DebugLogUtil.getInstance().Error("图灵初始化onFail"); } }; initTTSListner(); } / * 2 初始化语音识别 */ private void initTTSListner() { /*D 初始化语音合成监听*/ ttsListener = new TTSListener() { @Override public void onSpeechStart() { DebugLogUtil.getInstance().Error("语音识别onSpeechStart"); } @Override public void onSpeechProgressChanged() { // DebugLogUtil.getInstance().Error("语音识别onSpeechProgressChanged"); } @Override public void onSpeechPause() { DebugLogUtil.getInstance().Error("语音识别onSpeechPause"); } @Override public void onSpeechFinish() { /*语音合成后,就会触发onSpeechFinish(),这样即可在其方法中添加相应的逻辑。*/ DebugLogUtil.getInstance().Error("语音识别结束Finish"); // TODO 能在这里调用语音识别 不用再按启动语音识别吗 能! voiceRecognizeManager.startRecognize();// 重新开始收集语音 } @Override public void onSpeechError(int i) { DebugLogUtil.getInstance().Error("语音识别onSpeechError" + i); } @Override public void onSpeechCancel() { DebugLogUtil.getInstance().Error("语音识别 onSpeechCancel"); } }; ttsManager = new TTSManager(this, Constant.BDtuisongAPIKey, Constant.BDtuisongSecret_Key); ttsManager.setTTSListener(ttsListener); initTuling();// 最后调用这里 } @Override protected void onPause() { // 退出界面要提升系统音量 最完美的应该是进入时判断目前音量 退出app时 恢复这个音量! audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 5, 0); super.onPause(); } } 
小讯
上一篇 2025-02-10 18:17
下一篇 2025-02-24 07:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/21004.html