From 488781cf10e63fc62ad618a764e7aa7d390acfcb Mon Sep 17 00:00:00 2001
From: zhaomingwork <61895407+zhaomingwork@users.noreply.github.com>
Date: 星期三, 28 六月 2023 14:34:54 +0800
Subject: [PATCH] make some changes for html5 (#674)

---
 funasr/runtime/html5/static/wsconnecter.js |   11 ++---
 funasr/runtime/html5/static/main.js        |  104 +++++++++++++++++++++++++++++-----------------------
 2 files changed, 62 insertions(+), 53 deletions(-)

diff --git a/funasr/runtime/html5/static/main.js b/funasr/runtime/html5/static/main.js
index 35e533a..04d22a9 100644
--- a/funasr/runtime/html5/static/main.js
+++ b/funasr/runtime/html5/static/main.js
@@ -42,9 +42,16 @@
 
 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;
  
+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++) {
@@ -54,7 +61,7 @@
                  var audioblob= fileAudio.result;
 				 file_data_array=audioblob;
 				 console.log(audioblob);
-                 btnConnect.disabled = false;
+                  
                  info_div.innerHTML='璇风偣鍑昏繛鎺ヨ繘琛岃瘑鍒�';
                
                 }
@@ -87,7 +94,7 @@
 		    sendBuf=sampleBuf.slice(0,chunk_size);
 			totalsend=totalsend+sampleBuf.length;
 			sampleBuf=sampleBuf.slice(chunk_size,sampleBuf.length);
-			wsconnecter.wsSend(sendBuf,false);
+			wsconnecter.wsSend(sendBuf);
  
 		 
 		}
@@ -97,24 +104,7 @@
  
 
 }
-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()
 {
@@ -133,14 +123,20 @@
 				document.getElementById("mic_mode_div").style.display = 'block';
 				document.getElementById("rec_mode_div").style.display = 'none';
  
-				btnConnect.disabled=false;
+ 
+		        btnStart.disabled = true;
+		        btnStop.disabled = true;
+		        btnConnect.disabled=false;
 				isfilemode=false;
 			}
 			else
 			{
 				document.getElementById("mic_mode_div").style.display = 'none';
 				document.getElementById("rec_mode_div").style.display = 'block';
-                btnConnect.disabled = true;
+ 
+		        btnStart.disabled = true;
+		        btnStop.disabled = true;
+		        btnConnect.disabled=true;
 			    isfilemode=true;
 				info_div.innerHTML='璇风偣鍑婚�夋嫨鏂囦欢';
 			    
@@ -195,7 +191,7 @@
 		wsconnecter.wsStop();
         
 		info_div.innerHTML="璇风偣鍑昏繛鎺�";
-		isconnected=0;
+ 
 		btnStart.disabled = true;
 		btnStop.disabled = true;
 		btnConnect.disabled=false;
@@ -207,12 +203,19 @@
 
 // 杩炴帴鐘舵�佸搷搴�
 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();
@@ -222,7 +225,9 @@
 		 
 		alert("杩炴帴鍦板潃"+document.getElementById('wssip').value+"澶辫触,璇锋鏌sr鍦板潃鍜岀鍙o紝骞剁‘淇漢5鏈嶅姟鍜宎sr鏈嶅姟鍦ㄥ悓涓�涓煙鍐呫�傛垨鎹釜娴忚鍣ㄨ瘯璇曘��");
 		btnStart.disabled = true;
-		isconnected=0;
+		btnStop.disabled = true;
+		btnConnect.disabled=false;
+ 
  
 		info_div.innerHTML='璇风偣鍑昏繛鎺�';
 	}
@@ -234,7 +239,9 @@
 		 rec.open( function(){
 		 rec.start();
 		 console.log("寮�濮�");
-		 btnStart.disabled = true;
+			btnStart.disabled = true;
+			btnStop.disabled = false;
+			btnConnect.disabled=true;
 		 });
  
 }
@@ -247,27 +254,29 @@
 	// 娓呴櫎鏄剧ず
 	clear();
 	//鎺т欢鐘舵�佹洿鏂�
- 	console.log("isfilemode"+isfilemode+","+isconnected);
-    info_div.innerHTML="姝e湪杩炴帴asr鏈嶅姟鍣紝璇风瓑寰�...";
+ 	console.log("isfilemode"+isfilemode);
+    
 	//鍚姩杩炴帴
 	var ret=wsconnecter.wsStart();
+	// 1 is ok, 0 is error
 	if(ret==1){
+		info_div.innerHTML="姝e湪杩炴帴asr鏈嶅姟鍣紝璇风瓑寰�...";
 		isRec = true;
-		btnStart.disabled = false;
-		btnStop.disabled = false;
+		btnStart.disabled = true;
+		btnStop.disabled = true;
 		btnConnect.disabled=true;
-		if (isfilemode)
-		{
-                 console.log("start file now");
-			     start_file_offline();
  
-				 btnStart.disabled = true;
-		         btnStop.disabled = true;
-		         btnConnect.disabled = true;
-		}
         return 1;
 	}
-	return 0;
+	else
+	{
+		info_div.innerHTML="璇风偣鍑诲紑濮�";
+		btnStart.disabled = true;
+		btnStop.disabled = true;
+		btnConnect.disabled=false;
+ 
+		return 0;
+	}
 }
 
  
@@ -282,17 +291,17 @@
 		};
 		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;
@@ -301,12 +310,15 @@
    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){
   
@@ -361,7 +373,7 @@
 		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);
 			
 			
 		 
diff --git a/funasr/runtime/html5/static/wsconnecter.js b/funasr/runtime/html5/static/wsconnecter.js
index b9098bb..2873022 100644
--- a/funasr/runtime/html5/static/wsconnecter.js
+++ b/funasr/runtime/html5/static/wsconnecter.js
@@ -30,7 +30,7 @@
 			speechSokt.onopen = function(e){onOpen(e);}; // 瀹氫箟鍝嶅簲鍑芥暟
 			speechSokt.onclose = function(e){
 			    console.log("onclose ws!");
-			    speechSokt.close();
+			    //speechSokt.close();
 				onClose(e);
 				};
 			speechSokt.onmessage = function(e){onMessage(e);};
@@ -51,16 +51,13 @@
 		}
 	};
 	
-	this.wsSend = function ( oneData,stop ) {
+	this.wsSend = function ( oneData ) {
  
 		if(speechSokt == undefined) return;
 		if ( speechSokt.readyState === 1 ) { // 0:CONNECTING, 1:OPEN, 2:CLOSING, 3:CLOSED
  
 			speechSokt.send( oneData );
-			if(stop){
-				setTimeout(speechSokt.close(), 3000 );
  
-			}
 			
 		}
 	};
@@ -80,7 +77,7 @@
 		speechSokt.send( JSON.stringify(request) );
 		console.log("杩炴帴鎴愬姛");
 		stateHandle(0);
-		isconnected=1;
+ 
 	}
 	
 	function onClose( e ) {
@@ -93,7 +90,7 @@
 	}
 	
 	function onError( e ) {
-		isconnected=-1;
+ 
 		info_div.innerHTML="杩炴帴"+e;
 		console.log(e);
 		stateHandle(2);

--
Gitblit v1.9.1