From 55ee71e8959173e7979cbce5cb0aaf0983a48296 Mon Sep 17 00:00:00 2001
From: zhaomingwork <61895407+zhaomingwork@users.noreply.github.com>
Date: 星期日, 20 八月 2023 14:18:52 +0800
Subject: [PATCH] add wav format for h5 and java (#875)

---
 funasr/runtime/html5/static/wsconnecter.js |    5 +++++
 funasr/runtime/java/FunasrWsClient.java    |   13 ++++++++++---
 funasr/runtime/html5/static/main.js        |    5 +++++
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/funasr/runtime/html5/static/main.js b/funasr/runtime/html5/static/main.js
index f8d3bfd..7e3573d 100644
--- a/funasr/runtime/html5/static/main.js
+++ b/funasr/runtime/html5/static/main.js
@@ -44,6 +44,7 @@
  
 
 var isfilemode=false;  // if it is in file mode
+var file_ext="";
 var file_data_array;  // array to save file data
  
 var totalsend=0;
@@ -81,6 +82,10 @@
             for(let i = 0; i < len; i++) {
                 let fileAudio = new FileReader();
                 fileAudio.readAsArrayBuffer(this.files[i]);  
+				file_ext=this.files[i].name.split('.').pop().toLowerCase();
+				if(file_ext==="wav"){
+					file_ext="pcm";
+				}
                 fileAudio.onload = function() {
                  var audioblob= fileAudio.result;
 				 file_data_array=audioblob;
diff --git a/funasr/runtime/html5/static/wsconnecter.js b/funasr/runtime/html5/static/wsconnecter.js
index 2873022..4beec83 100644
--- a/funasr/runtime/html5/static/wsconnecter.js
+++ b/funasr/runtime/html5/static/wsconnecter.js
@@ -72,7 +72,12 @@
 			"is_speaking":  true,
 			"chunk_interval":10,
 			"mode":getAsrMode(),
+			
 		};
+		if(isfilemode)
+		{
+			request.wav_format=file_ext;
+		}
 		console.log(request);
 		speechSokt.send( JSON.stringify(request) );
 		console.log("杩炴帴鎴愬姛");
diff --git a/funasr/runtime/java/FunasrWsClient.java b/funasr/runtime/java/FunasrWsClient.java
index eba85bb..43407f3 100644
--- a/funasr/runtime/java/FunasrWsClient.java
+++ b/funasr/runtime/java/FunasrWsClient.java
@@ -50,7 +50,8 @@
   }
 
   public FunasrWsClient(URI serverURI) {
-    super(serverURI);
+    
+	super(serverURI);
   }
 
   public FunasrWsClient(URI serverUri, Map<String, String> httpHeaders) {
@@ -64,7 +65,7 @@
 
   // send json at first time
   public void sendJson(
-      String mode, String strChunkSize, int chunkInterval, String wavName, boolean isSpeaking) {
+      String mode, String strChunkSize, int chunkInterval, String wavName, boolean isSpeaking,String suffix) {
     try {
 
       JSONObject obj = new JSONObject();
@@ -78,6 +79,10 @@
       obj.put("chunk_size", array);
       obj.put("chunk_interval", new Integer(chunkInterval));
       obj.put("wav_name", wavName);
+	  if(suffix.equals("wav")){
+	      suffix="pcm";
+	  }
+	  obj.put("wav_format", suffix);
       if (isSpeaking) {
         obj.put("is_speaking", new Boolean(true));
       } else {
@@ -114,7 +119,9 @@
 
   // function for rec wav file
   public void recWav() {
-    sendJson(mode, strChunkSize, chunkInterval, wavName, true);
+	String fileName=FunasrWsClient.wavPath;
+	String suffix=fileName.split("\\.")[fileName.split("\\.").length-1];
+    sendJson(mode, strChunkSize, chunkInterval, wavName, true,suffix);
     File file = new File(FunasrWsClient.wavPath);
 
     int chunkSize = sendChunkSize;

--
Gitblit v1.9.1