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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值