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>

猜你喜欢

转载自mushme.iteye.com/blog/2243944