`
mushme
  • 浏览: 777666 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

wobot机器人

阅读更多
近来看一些科技博客看多了,总想做一件玩具给我儿子玩。
做一个机器人,名字暂且叫wobot吧。
这是一个语音机器人,具体用什么做还没确定,假设用单片机吧,也可能是个app或者网页。
它能够根据你的声音识别你是谁,根据你的语音命令给出合理的反馈。
如果有多个人同时在和它交谈的话,它能够分辨出重要性更高的人的命令,并做出相应。(admin-user-other)
在命令识别的时候,它可以分析出命令的准确性,如果是个模糊的命令,它可以提问来确认。
主要的功能有:播放天气预报、读诗、留言
1.播放天气预报
播放当前城市的当天天气预报(城市是我预设好的,天气数据来自公共接口)
2.读诗
根据命令,播放制定的诗
3.留言
我来录入留言,wobot在我儿子使用的时候,提示有留言,并根据命令来播放。
目前自我感觉有几个问题需要解决
1.语音识别的问题
2.语音播放的问题
3.命令匹配的精确度
4.根据语音识别用户(识别出是我,还是我儿子或者是其他人)
5.根据网络接口读取到天气数据
6.这些程序内容运行在怎样的一个环境里

先放一段上午没事,写的几个内容。
<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<input type="text" name="message" id="message"/>
<input type="button" value="send" onclick="sendMessage()"/>
<div style="height:50px;width:600px;" id="content">
</div>
<div style="height:50px;width:600px;" id="chatLog">
</div>
<script>

/**
基础问题数据设置
**/
var chatAnswer={};
var questionAliasSetting={};//问题的alias


chatAnswer["你好"]="你好,很高兴见到你。"
questionAliasSetting["你好"]=new Array("你好","hello","您好","你好啊","hi");
chatAnswer["名字"]="我是leo的小兄弟heo。"
questionAliasSetting["名字"]=new Array("名字","你叫什么","你是谁","你的名字是什么","姓名","name");
chatAnswer["日期"]=new Date().toLocaleDateString();
questionAliasSetting["日期"]=new Array("日期","当前日期","今天","date","today");
chatAnswer["时间"]=new Date().toLocaleString();
questionAliasSetting["时间"]=new Array("时间","当前时间","现在是","now","time");
chatAnswer["王洛宾鹅"]="鹅鹅鹅, 曲项向天歌。 白毛浮绿水, 红掌拨清波";
questionAliasSetting["王洛宾鹅"]=new Array("王洛宾鹅","关于鹅的诗","鹅","鹅鹅鹅","eee");


var qMap=initSetting(questionAliasSetting);//初始化问题和答案

/**
环境设置
**/
var currentUser="user";//当前人
var chatUser="user";//此次回话参与者,按照逗号分隔 admin,user,other
var noAnswer=new Array("你问的问题我不知道哪","没听明白你说的","我搞不懂你说的哪","不清楚","不知道");//没有匹配问题的回答,随机答案

var chatQHistory=new Array();//历史问题
var chatAHistory=new Array();//历史回答


function sendMessage(){
	var message=document.getElementById("message");
	var content=document.getElementById("content");
	var messageValue=message.value;
	var answerValue=getAnswer(messageValue)
	content.innerHTML=answerValue;
	logChat(messageValue,answerValue);
	
	document.getElementById("chatLog").innerHTML=getChatLog();
}
function logChat(message,answer){//记录日志,每次通话都要记录
	chatQHistory[chatQHistory.length]=message;
	chatAHistory[chatAHistory.length]=answer;
}
function getChatLog(){//返回记录的日志
	var chatQuestion="";
	for(var j=0;j<chatQHistory.length;j++){
			chatQuestion=chatQuestion+"<br />"+chatQHistory[j]+"  -> "+chatAHistory[j];
		}
	return chatQuestion;
	
}
function getAnswer(varQuestion){//获取返回内容
	var cAnswer=chatAnswer[parseContent(varQuestion)];
	if(typeof(cAnswer) == "undefined" ){
		return noAnswer[Math.floor(Math.random()*(noAnswer.length-1))];
	}else {
		return cAnswer;
	}
	
}
function parseContent(varContent){//分析传来的内容,标准化
	
	/**if(confirm("你问的是"+varContent+"吗")){
		varContent=qMap[varContent];
	}else{
		varContent=null;
	**/
	varContent=qMap[varContent];
	return varContent;
}

function initSetting(setting){
	var aliasMap={};
	for(var k in setting) { 
		for(var j=0;j<setting[k].length;j++){
			aliasMap[setting[k][j]]=k;
		}
	}
	return aliasMap;
}
</script>

</html>


<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<input type="text" name="message" id="message"/>
<input type="button" value="send" onclick="sendMessage()"/>
<div style="height:50px;width:600px;" id="content">
</div>
<div style="height:50px;width:600px;" id="chatLog">
</div>
<script>

/**
基础问题数据设置
**/
var chatAnswer={};
var questionAliasSetting={};//问题的alias



questionAliasSetting["你好,很高兴见到你"]=new Array("你好","hello","您好","你好啊","hi");
questionAliasSetting["我是leo的小兄弟heo。"]=new Array("名字","你叫什么","你是谁","你的名字是什么","姓名","name");
questionAliasSetting[new Date().toLocaleDateString()]=new Array("日期","当前日期","今天","date","today");
questionAliasSetting[new Date().toLocaleString()]=new Array("时间","当前时间","现在是","now","time");
questionAliasSetting["鹅鹅鹅, 曲项向天歌。 白毛浮绿水, 红掌拨清波"]=new Array("王洛宾鹅","关于鹅的诗","鹅","鹅鹅鹅","eee");


var qMap=initSetting(questionAliasSetting);//初始化问题和答案,qMap的结构是map["问题1-n"]="答案1-n"

/**
环境设置
**/
var currentUser="user";//当前人
var chatUser="user";//此次回话参与者,按照逗号分隔 admin,user,other
var noAnswer=new Array("你问的问题我不知道哪","没听明白你说的","我搞不懂你说的哪","不清楚","不知道");//没有匹配问题的回答,随机答案

var chatQHistory=new Array();//历史问题
var chatAHistory=new Array();//历史回答


function sendMessage(){//按钮时间
	var message=document.getElementById("message");
	var content=document.getElementById("content");
	var messageValue=message.value;
	var answerValue=getAnswer(messageValue);//1.获取答案
	content.innerHTML=answerValue;
	logChat(messageValue,answerValue);		//2.记录日志
	
	document.getElementById("chatLog").innerHTML=getChatLog();
}
function logChat(message,answer){//记录日志,每次通话都要记录
	chatQHistory[chatQHistory.length]=message;
	chatAHistory[chatAHistory.length]=answer;
}
function getChatLog(){//返回记录的日志
	var chatQuestion="";
	for(var j=0;j<chatQHistory.length;j++){
			chatQuestion=chatQuestion+"<br />"+chatQHistory[j]+"  -> "+chatAHistory[j];
		}
	return chatQuestion;
	
}
function getAnswer(varQuestion){//获取返回内容
	var cAnswer=qMap[varQuestion];
	if(typeof(cAnswer) == "undefined" ){
		return noAnswer[Math.floor(Math.random()*(noAnswer.length-1))];
	}else {
		return cAnswer;
	}
	
}

function initSetting(setting){
	var aliasMap={};
	for(var k in setting) { 
		for(var j=0;j<setting[k].length;j++){
			aliasMap[setting[k][j]]=k;
		}
	}
	return aliasMap;
}
</script>

</html>

<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<input type="text" name="message" id="message"/>
<input type="button" value="send" onclick="sendMessage()"/>
<div style="height:50px;width:600px;" id="content">
</div>
<div style="height:50px;width:600px;" id="chatLog">
</div>
<script>

/**
基础问题数据设置
**/
var chatAnswer={};
var questionAliasSetting={};//问题的alias



questionAliasSetting["你好,很高兴见到你"]=new Array("你好","hello","您好","你好啊","hi");
questionAliasSetting["我是leo的小兄弟heo。"]=new Array("名字","你叫什么","你是谁","你的名字是什么","姓名","name","我问你是谁","我问你叫什么");
questionAliasSetting[new Date().toLocaleDateString()]=new Array("日期","当前日期","今天","date","today");
questionAliasSetting[new Date().toLocaleString()]=new Array("时间","当前时间","现在是","now","time");
questionAliasSetting["鹅鹅鹅, 曲项向天歌。 白毛浮绿水, 红掌拨清波"]=new Array("王洛宾鹅","关于鹅的诗","鹅","鹅鹅鹅","eee");


var qMap=initSetting(questionAliasSetting);//初始化问题和答案,qMap的结构是map["问题1-n"]="答案1-n"

/**
环境设置
**/
var currentUser="user";//当前人
var chatUser="user";//此次回话参与者,按照逗号分隔 admin,user,other
var noAnswer=new Array("你问的问题我不知道哪","没听明白你说的","我搞不懂你说的哪","不清楚","不知道");//没有匹配问题的回答,随机答案

var chatQHistory=new Array();//历史问题
var chatAHistory=new Array();//历史回答


function sendMessage(){//按钮时间
	var message=document.getElementById("message");
	var content=document.getElementById("content");
	var messageValue=message.value;
	var answerValue=getAnswer(messageValue);//1.获取答案
	content.innerHTML=answerValue;
	logChat(messageValue,answerValue);		//2.记录日志
	
	document.getElementById("chatLog").innerHTML=getChatLog();
}
function logChat(message,answer){//记录日志,每次通话都要记录
	chatQHistory[chatQHistory.length]=message;
	chatAHistory[chatAHistory.length]=answer;
}
function getChatLog(){//返回记录的日志
	var chatQuestion="";
	for(var j=0;j<chatQHistory.length;j++){
			chatQuestion=chatQuestion+"<br />"+chatQHistory[j]+"  -> "+chatAHistory[j];
		}
	return chatQuestion;
	
}
function getAnswer(varQuestion){//获取返回内容
	var cAnswer=qMap[varQuestion];
	if(typeof(cAnswer) == "undefined" ){//没有该问题完全匹配的答案
	
	
		return noAnswer[Math.floor(Math.random()*(noAnswer.length-1))];
	}else {
		return cAnswer;
	}
	
}

function initSetting(setting){
	var aliasMap={};
	for(var k in setting) { 
		for(var j=0;j<setting[k].length;j++){
			aliasMap[setting[k][j]]=k;
		}
	}
	return aliasMap;
}
</script>

</html>

分享到:
评论

相关推荐

    wobot-tictactoe:有趣的小 HipChat 机器人

    wobot-tictactoe 有趣的小 HipChat 机器人

    工业机器人离线编程与仿真(FANUC机器人)课程教案.docx

    工业机器人离线编程与仿真(FANUC机器人)课程教案.docx工业机器人离线编程与仿真(FANUC机器人)课程教案.docx工业机器人离线编程与仿真(FANUC机器人)课程教案.docx工业机器人离线编程与仿真(FANUC机器人)课程教案.docx...

    最全的ABB机器人手册资料汇总.zip

    最全的ABB机器人手册资料汇总,包括以下内容: 一、ABB常用说明书中文版 集成视觉应用手册 系统参数 协同动作应用手册 指令功能数据 RAPID语言概览 RAPID语言内核 RS操作手册 二、ABB机器人编程及指令手册 ABB常用...

    机器人专业常见简答题.docx

    国际标准化组织(ISO)对机器人的定义是什么 工业机器人是如何定义的 按几何结构,机器人可分为那几种 机器人的参考坐标系有哪些? 什么是机器人的自由度和工作空间? 什么是机器人的操作机?分为哪几部分? 工业...

    KUKA_机器人培训PPT资料kuka机器人电气培训基础培训知识要点等资料合集.zip

    KUKA_机器人初级培训教材.pdf KUKA_机器人初级培训教材.ppt KUKA机器人Fault_Analysis.pdf KUKA机器人KCP讲解(3个) KUKA机器人TCP的测量(6个) KUKA机器人坐标系的建立(3个) KUKA机器人基础.ppt KUKA机器人基础...

    微信小程序 机器人兔兔 (源码)

    微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信小程序 机器人兔兔 (源码)微信...

    汇川机器人控制基本操作V1.0_汇川机器人_汇川机器人编程手册_汇川robotstudio_机器人_

    汇川机器人介绍,掌握汇川机器人编程,学习机器人的编程语言,以及掌握机器人坐标系的创建

    Python聊天机器人,智能问答系统.zip

    Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python聊天机器人,智能问答系统 Python...

    robot并联机器人matlab运动学代码_simmech_simmechanics_机器人_并联机器人_matlabsimul

    利用在 MATLAB Simulink 中的 SimMechanics 工具箱,在 Matlab 中搭建了机器人的机构模型,结合运动学数学模型,实现的机器人的运动模拟实验,并且通过末端执行器输入运动参数与输出运动参数的对比,验证了所建立的...

    ABB机器人涂胶调试.docx

    ABB机器人涂胶调试课程内容2涂胶泵概述机器人与胶泵通讯建立ABB机器人涂胶指令ABB机器人涂胶数据机器人涂胶轨迹调试一、涂胶泵概述3涂胶泵原理:借助设计坚固的泵座,内部装有高压活塞泵的桶形随动板在材料液位上方...

    机器人教程机器人教程机器人教程

    机器人教程种子,可以迅雷下载,机器人教程种子,可以迅雷下载,机器人教程种子,可以迅雷下载,机器人教程种子,可以迅雷下载,

    邮件机器人邮件机器人

    邮件机器人邮件机器人邮件机器人邮件机器人

    ABB机器人资料ABB机器人基础及培训手册ABB机器人编程及指令手册.zip

    ABB机器人资料ABB机器人基础及培训手册ABB机器人编程及指令手册: ABB-低压产品选型手册.pdf ABB低压断路器选型手册.pdf ABB常用机器人技术参数.pdf ABB机器人DEVICENET通信设置.pdf ABB机器人基础及培训手册 ABB...

    工业机器人课后习题.docx

    工业机器人课后习题全文共1页,当前为第1页。工业机器人课后习题全文...从结构形式上看,搬运机器人可分为龙门式搬运机器人、悬臂式搬运机器人、侧壁式搬运机器人、摆臂式搬运机器人和关节式搬运机器人 15.搬运机器人常

    安川机器人外部IO启动.docx

    安川机器人外部IO启动全文共20页,当前为第1页。安川机器人外部IO启动全文共20页,当前为第1页。安川机器人外部IO启动 安川机器人外部IO启动全文共20页,当前为第1页。 安川机器人外部IO启动全文共20页,当前为第1页...

    安川机器人培训PPT基础培训安川DX100机器人基础教育培训安川机器人操作及编程简易教程等资料(16个).zip

    MOTOMAN机器人培训教材PPT.ppt OFweek机器人网免责声明.docx 安川4天培训PPT 安川DX100机器人基础教育培训-1.ppt 安川DX100机器人基础教育培训-2.ppt 安川XRC基础培训PPT.pps 安川XRC機器人進階教育(2).ppt 安川...

    钉钉群机器人源代码呀~

    python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~python钉钉群机器人源代码~...

    ABB机器人ABB培训PPT及PDF文档(21个).zip

    ABB机器人ABB培训PPT及PDF文档(21个): ABB-IRC5培训教程PDF.pdf ABB-IRC5教育训练PPT.pptx ABB操作培训资料RobotStudio510 .pdf ABB机器人-高级编程.pdf ABB机器人CP初级培训.pdf ABB机器人S4C IRB 基本操作培训...

    机器人学.pdf

    同时,技术的不断进步一直在牵引着机器人学科的发展,使机器人的应用领域从工业机器人扩展到特种机器人和服务机器人等。机器人技术也正越来越深刻地影响着我们的生活。机器人不但将在工厂、实验室与人一起工作,还将...

    基于ADAMS和MATLAB的四足机器人联合仿真

    基于ADAMS和MATLAB的四足机器人联合仿真 基于ADAMS和MATLAB的四足机器人联合仿真 基于ADAMS和MATLAB的四足机器人联合仿真 基于ADAMS和MATLAB的四足机器人联合仿真 基于ADAMS和MATLAB的四足机器人联合仿真 基于ADAMS...

Global site tag (gtag.js) - Google Analytics