请选择 进入手机版 | 继续访问电脑版

UBAINS

 找回密码
 立即注册
搜索
热搜: UBAINS
查看: 883|回复: 0

[程序方法] _SPEECH原型继承方法使用说明

[复制链接]

66

主题

70

帖子

647

积分

公司员工

积分
647
发表于 2018-12-6 10:23:29 | 显示全部楼层 |阅读模式
应用于语音识别控制
应用示例可查看_MATRIX 和_AUDIO方法,可自行修改相关方法属性及添加方法属性。有任何问题建议可在下方留言,功能持续改进更新
附:
function _SPEECH(vPort,fnGetData)
{
        this.port = vPort;
        if(vPort.indexOf('MOD')!=-1)
        {
                this.port = GetCurrentIOName();
        }
        this.startWord = ["小薇","小微","小V","小v","小唯","小魏","小威","晓薇"];
        this.endWord = ["再见"];
        this.action = false;
        this.noWordLen = 8;
        this.enterId = 0;
        this.countMax =10;
        this.count = 0;
        this.mainLanguage = "zh-CN";
        this.tranLaugage = "en";
        this.speechText = "";
        this.connectCount  = 0;
        this.match = function(aStr)
        {
                for(i=0;i<aStr.length;i++){
                        if(this.speechText.indexOf(setU2G(aStr[i]))!=-1){
                                return aStr[i];
                        }
                }
                return "";
        }
        this.dataProcess = function(vStr)
        {
                fnGetData(vStr)
        }
        this.getRev = function(vData)
        {
                 if(vData.indexOf("language")!=-1)
                 {
                         //sendLog("vData",vData);
                         var strRevJson = JSON.parse(vData);
                         if(strRevJson.cmd == '2')
                         {
                                 fnGetData(strRevJson.language);
                         }
                 }
        }
        this.connect = function(vSec)
        {
                this.connectCount++;
                if(this.connectCount>vSec)
                {
                        this.connectCount =0;
                        sendCodeString(this.port,"{\"method\":\"heartbeat\"}\r\n");
                }
               
        }
        this.noAction = function(vStr)
        {
                if(this.action == false)  
                {
                        if(this.find(this.startWord)==false && this.speechText.length>=this.noWordLen)
                        {
                                this.play(vStr);
                        }
                }
                else
                {
                        this.action = false;
                }
               
        }
        if(arguments.length>=2)
        {
                sendCodeString(this.port,"{\"method\":\"heart\"}\r\n");
                setStringReceive(this.port,this.getRev);
        }
        this.setActive = function(vEnable)
        {
                var strText = "";
                if(vEnable==true)
                {
                        this.count = this.countMax;
                        this.action = true;
                    strText = {"cmd":4,"voice":{"cmd":1,"inputLanguage":"1737","translate":"en"},"unit":{"cmd":2,"inputLanguage":"zh","startUnit":true,"endUnit":false},"speech":{"cmd":3,"words":"播报内容"},"lineColor":{"cmd":4,"color":"#ADFF2F","image":"voice2"}}
               
               
                }else
                {
                         this.count = 0;
                         this.action = false;
                         strText = {"cmd":4,"voice":{"cmd":1,"inputLanguage":"1737","translate":"en"},"unit":{"cmd":2,"inputLanguage":"zh","startUnit":true,"endUnit":false},"speech":{"cmd":3,"words":"播报内容"},"lineColor":{"cmd":4,"color":"#FFFFFF","image":"voice1"}}
                }
                var strjson = JSON.stringify(strText);
                sendCodeString(this.port,strjson+"\r\n");
        }
        this.play = function(vSec,vStr)
        {
               
                if(arguments.length>=2)
                {
                        var strText = {"cmd":3,"speech":{"cmd":3,"words":setU2G(vStr)}};
                        var strjson = JSON.stringify(strText);
                        delayCodeString(vSec,this.port,strjson+"\r\n");
                }
                else
                {
                        var strText = {"cmd":3,"speech":{"cmd":3,"words":setU2G(vSec)}};
                        var strjson = JSON.stringify(strText);
                        delayCodeString(0.2,this.port,strjson+"\r\n");
                }
        }
        this.setName = function(vStr1,vStr2)
        {
                sendLog("v1",vStr1);
                var vCnName = " ";
                var vEnName = " "
                if(vStr1)
                {
                        vCnName = vStr1;
                }
                else
                {
                        vCnName = " ";
                }
                if(vStr2)
                {
                        vEnName = vStr2;
                }
                else
                {
                        vEnName = " ";
                }
                var vStr3 = "#ffffff";
                if(arguments.length>=3)
                {
                        vStr3 = arguments[2];
                }                       
                var strText = {"cmd":6,"changeName":{"cmd":6,"chineseName":vCnName,"englishName":vEnName,"textColor":vStr3,"textSize":30}};
                var strjson = JSON.stringify(strText);
                sendCodeString(this.port,strjson+"\r\n");
        }
    this.playGBK = function(vSec,vStr)
        {
               
                if(arguments.length>=2)
                {
                        var strText = {"cmd":3,"speech":{"cmd":3,"words":vStr}};
                        var strjson = JSON.stringify(strText);
                        delayCodeString(vSec,this.port,strjson+"\r\n");
                }
                else
                {
                        var strText = {"cmd":3,"speech":{"cmd":3,"words":vSec}};
                        var strjson = JSON.stringify(strText);
                        delayCodeString(0.2,this.port,strjson+"\r\n");
                }
        }
        this.find = function(aStr1,aStr2)
        {
                var findCount =0;
                for(var i=0;i<arguments.length;i++)
                {
                        for(j=0;j<arguments[i].length;j++){
                                if(this.speechText.indexOf(setU2G(arguments[i][j]))!=-1){
                                        findCount++;
                                        break;
                                }
                        }
                }
                if(findCount==arguments.length)
                {
                        return true;
                }
                else
                {
                        return false;
                }
        }
               
}       

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

Archiver|手机版|小黑屋|BBS.UBAINSYUN.COM

GMT+8, 2021-6-20 14:07 , Processed in 0.039192 second(s), 18 queries .

Powered by UBAINS! X3.4

© 2001-2017 UBAINS Inc.

快速回复 返回顶部 返回列表