`
mushme
  • 浏览: 790044 次
  • 性别: 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 机器人”指的是一个基于JavaScript编写的聊天机器人项目,它的主要功能是在HipChat这款即时通讯软件中提供经典的井字游戏(Tic Tac Toe)供用户玩耍。"wobot"可能是这个机器人的...

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

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

    KUKA机器人断电移动机器人(抱闸释放).pdf,这是一份不错的文件

    KUKA机器人断电移动机器人(抱闸释放) KUKA机器人断电移动机器人(抱闸释放)是指在机器人断电的情况下,如何移动机器人轴的技术。这种技术主要用于在机器人断电或故障的情况下,为了避免机器人无法移动而造成的...

    机器人技术基础.pdf

    机器人可以根据应用领域分类为工业机器人、自助机器人、军用机器人(战士机器人)、空间机器人(空间探索)、水下机器人、管道机器人、医疗机器人、农业机器人、服务机器人、建筑机器人等。 机器人编程 机器人编程...

    杭州海康机器人产品技术手册

    本手册涵盖了机器人技术、视觉技术、机器视觉技术、工业相机、机器人控制系统、视觉传感器、机器人视觉算法、工业计算机视觉、机器人感知系统、机器人运动控制等方面的技术知识,对于机器人技术和视觉技术领域的研究...

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

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

    机器人手册 第2卷 机器人技术.pdf.zip

    《机器人手册第2卷机器人技术》共分3篇,详细介绍了机器人的传感与感知、操作与接口、移动式和分布式机器人技术。  传感与感知篇介绍用于生成机器人模型及外部环境的机器人的不同感觉形态和跨时空传感数据整合。...

    库卡机器人C2及C3机器人外部通讯配置手册

    标题和描述中提到的是关于库卡机器人C2及C3机器人的外部通讯配置手册。库卡(KUKA)是知名的工业机器人制造商,提供的机器人广泛应用于自动化生产线等领域。KUKA机器人控制系统软件(KSS)中的KRC2和KRC3是两种较早的...

    机器人机器人机器人工程 课件

    《机器人工程:开启智能时代的钥匙》 在当今科技飞速发展的时代,机器人工程已经成为一个备受瞩目的领域。机器人,这个曾经只存在于科幻小说中的概念,如今已经渗透到我们的日常生活、工业生产以及科研探索的各个...

    扫地机器人设计制作课程设计

    "扫地机器人设计制作课程设计" 扫地机器人设计制作是机器人技术和自动化领域中的一个重要方向,本课程设计报告将对扫地机器人的设计和制作进行详细的介绍和分析。 第一章 绪论 扫地机器人是一种自动化的家用...

    机器人学-蔡自兴

    本书介绍机器人学的基本原理及其应用,是一部机器人学的通用教材和系统著作,全面反映出国内外机器人学研究和应用的最新进展。全书共10章:第一章叙述机器人学的概况;第二章讨论机器人学的教学基础;第三章阐述机器人...

    哈工大机器人大作业——PUMA机器人工作空间求解

    PUMA机器人工作空间求解 PUMA机器人是一种工业机器人,广泛应用于制造、物流、医疗等领域。工作空间求解是机器人学中一个重要的问题,涉及到机器人的运动学、动力学和控制等方面。 本文主要介绍了PUMA机器人工作...

    机器人学课后习题答案

    "机器人学课后习题答案详解" 机器人学是一门交叉学科,涉及到机械工程、计算机科学、电子工程、信息工程、自动控制等领域。机器人学的主要研究对象是机器人系统,包括机器人的设计、制造、控制和应用。机器人学课后...

    机器人学.pdf

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

    机器人学导论答案

    ### 机器人学导论知识点解析 #### 一、机器人学概览 - **定义与分类**:机器人学是一门综合性的学科,它涉及到机械工程、电子工程、计算机科学等多个领域,旨在研究机器人的设计、制造及其应用。机器人可以根据其...

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

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

    NAO 机器人舞蹈程序,nao 机器人大王叫我来巡山舞蹈程序.zip

    NAO机器人是一款由法国Aldebaran Robotics公司开发的高度先进的社交机器人,被广泛应用于教育、研究和娱乐领域。这款机器人以其灵活的肢体动作和高度的人工智能能力而著名,能够执行各种复杂的任务,包括跳舞。"大王...

    机器人动力学与控制_霍伟_国内某大学机器人动力学控制_

    《机器人动力学与控制》是霍伟教授在国内某大学教授的一门重要课程,该课程深入探讨了机器人领域的核心概念——运动学、动力学以及控制策略。在这个领域,理解和掌握这些基本问题是至关重要的,因为它们构成了设计和...

    机器人技术基础课后部分习题答案(刘极封,丁继斌)

    机器人技术基础课后部分习题答案是机器人技术基础课程的习题答案,涵盖机器人技术的基本概念、机器人运动学、机器人动力学、机器人控制等方面的知识点。 机器人技术基础 机器人技术基础是机器人技术的基础知识,...

Global site tag (gtag.js) - Google Analytics