集成百度语音sdk到智能家居平台中

简介:

今天,周六,晚上有约会。不过有些任务必须逼迫自己赶紧完成。要构造一个完善的系统不是三天打鱼两天晒网能够完成的,必须严格按计划执行下去,持之以恒。终有一日会形成规模效应。做Demo很容易,做产品,很难。


百度SDK的集成在它 的官网有完整的教材。

1 申请,你首先需要通过百度的验证,给你开放。

2 集成,集成分为深度定制和使用百度提供的UI快速集成。

具体step-by-step的东西,参考它的手册即可。

我这里只记录一些个人认为有价值的东西。

1 语义理解

“SDK 还支持语义理解能力,可以将用户的语音直接转换成需求意图。语义具有领域性特征,不
属于任何领域的语义是不存在的。同样的语言,在不同的领域中所代表的含义可能截然不同。语义
理解就是把语言在特定领域所代表语义通过计算机可处理的表示方式理解出来。”

这个非常重要,如果我们要深度定制智能家居的语义,我们必须进行定制。

不过暂时,我们先简单集成。

i

1在我们的聊天窗口中加一个按钮“语音”

2 当点击按钮的时候生成一个BaiduASRDigitalDialog,具体参数见其说明文档或者Demo源码,从经验来看,最好是用demo的源码,因为文档的那几行会跑出意想不到的东西。

3 设置回调,在回调中把结果取出来然后设置到输入框中。


部分源码如下:

成员变量:

private Button speechBtn=null;
	private final static String API_KEY="XYNj1ulsExdUaHv8QhnlqXT9";
	private final static String SECRET_KEY="5TY9Q3d3jF0zVXorjXs5o9LGrcN04lUA";
	private BaiduASRDigitalDialog mDialog = null;
	private DialogRecognitionListener mRecognitionListener=null;

在oncreate中初始化相关对象和监听器:

//add for speech
		speechBtn=(Button)findViewById(R.id.chat_speechbtn);
		speechBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				loadBdSpeechDialog();
			}
		});
		mRecognitionListener = new DialogRecognitionListener() {
			
			@Override
			public void onResults(Bundle result) {
				// TODO Auto-generated method stub
				Log.d(LOG_TAG, "onResult");
				ArrayList<String> rs = result!=null?result.getStringArrayList(RESULTS_RECOGNITION):null;
				if(rs!=null&&rs.size()>0)
				{
					 Log.d(LOG_TAG,"result:"+rs.get(0));
					messageInput.setText(rs.get(0));
				}
			}
		};

其中loadBdSpeechDialog:

public void loadBdSpeechDialog()
	{
         ///code from demo
        messageInput.setText(null);

           if (mDialog != null) {
               mDialog.dismiss();
           }
           Bundle params = new Bundle();
           params.putString(BaiduASRDigitalDialog.PARAM_API_KEY, API_KEY);
           params.putString(BaiduASRDigitalDialog.PARAM_SECRET_KEY, SECRET_KEY);
           params.putInt(BaiduASRDigitalDialog.PARAM_DIALOG_THEME, BaiduASRDigitalDialog.THEME_BLUE_LIGHTBG);
           mDialog = new BaiduASRDigitalDialog(this, params);
           mDialog.setDialogRecognitionListener(mRecognitionListener);
//       }
       mDialog.getParams().putInt(BaiduASRDigitalDialog.PARAM_PROP,VoiceRecognitionConfig.PROP_INPUT);
       mDialog.getParams().putString(BaiduASRDigitalDialog.PARAM_LANGUAGE,
    		   VoiceRecognitionConfig.LANGUAGE_CHINESE);
     
       mDialog.getParams().putBoolean(BaiduASRDigitalDialog.PARAM_START_TONE_ENABLE, true);
       mDialog.getParams().putBoolean(BaiduASRDigitalDialog.PARAM_END_TONE_ENABLE, true);
       mDialog.getParams().putBoolean(BaiduASRDigitalDialog.PARAM_TIPS_TONE_ENABLE, true);
       mDialog.show();
        
	}

这样就最简单的集成了百度语音sdk。。。还是很好用的,下一步深度定制需要两方面的工作:1,去掉百度的UI,定制自己的;2,语义定制,使得它更好的应用于智能家居中。



















相关文章
|
3月前
|
Java API 开发工具
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
跨境支付公司和Docusign进行集成时,碰到问题时的解决方案。分别用SDK和API集成后的各自使用体验。
48 2
支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API
|
7月前
|
API 开发工具 Android开发
AppsFlyer 研究(一)AppsFlyer SDK 集成(1)
AppsFlyer 研究(一)AppsFlyer SDK 集成
932 0
|
2月前
|
网络协议 文件存储 Docker
如何搭建HomeAssistant智能家居管理平台并实现公网访问内网管理界面
如何搭建HomeAssistant智能家居管理平台并实现公网访问内网管理界面
|
3月前
|
搜索推荐 物联网 数据安全/隐私保护
智能家电设备连接语音助手集成
智能家电设备连接语音助手集成
56 1
|
3月前
|
Web App开发 前端开发 JavaScript
如何快速与呼叫中心系统CTI/API/SDK接口集成
由于呼叫中心系统涉及通信、CTI、终端设备、中继线路等技术与概念,从事信息管理系统、ERP、CRM、工单系统等的研发人员一般不是非常熟悉这部分技术,当需要提供具备呼叫中心能力的解决方案时,往往要用较多的时间来研究这些相对复杂的技术,对接过程比较长,开发调试有一定的阻力,基于此,我们提出一种更加简便高效的集成方法,可以零代码集成呼叫中心平台,实现项目快速上线。
如何快速与呼叫中心系统CTI/API/SDK接口集成
|
4月前
|
语音技术
长音频集成模型的标点结果既依赖于语音识别也依赖于语音端点检测(VAD)
长音频集成模型的标点结果既依赖于语音识别也依赖于语音端点检测(VAD)【1月更文挑战第11天】【1月更文挑战第52篇】
33 1
|
5月前
|
开发工具 数据安全/隐私保护
您需要检查并确保应用是否正确集成了EMAS的SDK
您需要检查并确保应用是否正确集成了EMAS的SDK
27 1
|
5月前
|
分布式计算 Hadoop Java
hadoop sdk 优化小结(裁剪、集成kerberos组件、定制等)
hadoop sdk 优化小结(裁剪、集成kerberos组件、定制等)
44 0
|
7月前
|
开发工具 Android开发 iOS开发
AppsFlyer 研究(一)AppsFlyer SDK 集成(2)
AppsFlyer 研究(一)AppsFlyer SDK 集成
178 0
|
13天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。