| | |
| | |
|
| | | var isfilemode=false; // if it is in file mode
|
| | | var file_data_array; // array to save file data
|
| | | var isconnected=0; // for file rec, 0 is not begin, 1 is connected, -1 is error
|
| | | |
| | | var totalsend=0;
|
| | |
|
| | | upfile.onclick=function()
|
| | | {
|
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | | |
| | | }
|
| | | upfile.onchange = function () {
|
| | | var len = this.files.length;
|
| | | for(let i = 0; i < len; i++) {
|
| | |
| | | var audioblob= fileAudio.result;
|
| | | file_data_array=audioblob;
|
| | | console.log(audioblob);
|
| | | btnConnect.disabled = false;
|
| | | |
| | | info_div.innerHTML='请点击连接进行识别';
|
| | |
|
| | | }
|
| | |
| | | sendBuf=sampleBuf.slice(0,chunk_size);
|
| | | totalsend=totalsend+sampleBuf.length;
|
| | | sampleBuf=sampleBuf.slice(chunk_size,sampleBuf.length);
|
| | | wsconnecter.wsSend(sendBuf,false);
|
| | | wsconnecter.wsSend(sendBuf);
|
| | |
|
| | |
|
| | | }
|
| | |
| | |
|
| | |
|
| | | }
|
| | | function start_file_offline()
|
| | | { |
| | | console.log("start_file_offline",isconnected); |
| | | if(isconnected==-1)
|
| | | {
|
| | | return;
|
| | | }
|
| | | if(isconnected==0){
|
| | |
|
| | | setTimeout(start_file_offline, 1000);
|
| | | return;
|
| | | }
|
| | | start_file_send();
|
| | | |
| | | |
| | |
|
| | | |
| | | }
|
| | |
|
| | | function on_recoder_mode_change()
|
| | | {
|
| | |
| | | document.getElementById("mic_mode_div").style.display = 'block';
|
| | | document.getElementById("rec_mode_div").style.display = 'none';
|
| | |
|
| | | |
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | | isfilemode=false;
|
| | | }
|
| | |
| | | {
|
| | | document.getElementById("mic_mode_div").style.display = 'none';
|
| | | document.getElementById("rec_mode_div").style.display = 'block';
|
| | | |
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled = true;
|
| | | isfilemode=true;
|
| | | info_div.innerHTML='请点击选择文件';
|
| | |
| | | wsconnecter.wsStop();
|
| | |
|
| | | info_div.innerHTML="请点击连接";
|
| | | isconnected=0;
|
| | | |
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | |
| | |
|
| | | // 连接状态响应
|
| | | function getConnState( connState ) {
|
| | | if ( connState === 0 ) {
|
| | | if ( connState === 0 ) { //on open
|
| | |
|
| | |
|
| | | info_div.innerHTML='连接成功!请点击开始';
|
| | | if (isfilemode==true){
|
| | | info_div.innerHTML='请耐心等待,大文件等待时间更长';
|
| | | start_file_send();
|
| | | }
|
| | | else
|
| | | {
|
| | | btnStart.disabled = false;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=true;
|
| | | }
|
| | | } else if ( connState === 1 ) {
|
| | | //stop();
|
| | |
| | |
|
| | | alert("连接地址"+document.getElementById('wssip').value+"失败,请检查asr地址和端口,并确保h5服务和asr服务在同一个域内。或换个浏览器试试。");
|
| | | btnStart.disabled = true;
|
| | | isconnected=0;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | | |
| | |
|
| | | info_div.innerHTML='请点击连接';
|
| | | }
|
| | |
| | | rec.start();
|
| | | console.log("开始");
|
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = false;
|
| | | btnConnect.disabled=true;
|
| | | });
|
| | |
|
| | | }
|
| | |
| | | // 清除显示
|
| | | clear();
|
| | | //控件状态更新
|
| | | console.log("isfilemode"+isfilemode+","+isconnected);
|
| | | info_div.innerHTML="正在连接asr服务器,请等待...";
|
| | | console.log("isfilemode"+isfilemode);
|
| | | |
| | | //启动连接
|
| | | var ret=wsconnecter.wsStart();
|
| | | // 1 is ok, 0 is error
|
| | | if(ret==1){
|
| | | info_div.innerHTML="正在连接asr服务器,请等待...";
|
| | | isRec = true;
|
| | | btnStart.disabled = false;
|
| | | btnStop.disabled = false;
|
| | | btnConnect.disabled=true;
|
| | | if (isfilemode)
|
| | | {
|
| | | console.log("start file now");
|
| | | start_file_offline();
|
| | | |
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled = true;
|
| | | }
|
| | | |
| | | return 1;
|
| | | }
|
| | | else
|
| | | {
|
| | | info_div.innerHTML="请点击开始";
|
| | | btnStart.disabled = true;
|
| | | btnStop.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | | |
| | | return 0;
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
| | | };
|
| | | console.log(request);
|
| | | if(sampleBuf.length>0){
|
| | | wsconnecter.wsSend(sampleBuf,false);
|
| | | wsconnecter.wsSend(sampleBuf);
|
| | | console.log("sampleBuf.length"+sampleBuf.length);
|
| | | sampleBuf=new Int16Array();
|
| | | }
|
| | | wsconnecter.wsSend( JSON.stringify(request) ,false);
|
| | | wsconnecter.wsSend( JSON.stringify(request) );
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | //isconnected=0;
|
| | | |
| | | // 控件状态更新
|
| | |
|
| | | isRec = false;
|
| | |
| | | if(isfilemode==false){
|
| | | btnStop.disabled = true;
|
| | | btnStart.disabled = true;
|
| | | btnConnect.disabled=false;
|
| | | btnConnect.disabled=true;
|
| | | //wait 3s for asr result
|
| | | setTimeout(function(){
|
| | | console.log("call stop ws!");
|
| | | wsconnecter.wsStop();
|
| | | isconnected=0;
|
| | | btnConnect.disabled=false;
|
| | | info_div.innerHTML="请点击连接";}, 3000 );
|
| | | |
| | | |
| | |
|
| | | rec.stop(function(blob,duration){
|
| | |
|
| | |
| | | while(sampleBuf.length>=chunk_size){
|
| | | sendBuf=sampleBuf.slice(0,chunk_size);
|
| | | sampleBuf=sampleBuf.slice(chunk_size,sampleBuf.length);
|
| | | wsconnecter.wsSend(sendBuf,false);
|
| | | wsconnecter.wsSend(sendBuf);
|
| | |
|
| | |
|
| | |
|