Ver Fonte

update clients for 2pass

雾聪 há 2 anos atrás
pai
commit
646eda72e3

+ 7 - 0
runtime/python/websocket/funasr_wss_client.py

@@ -186,6 +186,13 @@ async def record_from_scp(chunk_begin, chunk_size):
         if wav_path.endswith(".pcm"):
             with open(wav_path, "rb") as f:
                 audio_bytes = f.read()
+        elif wav_path.endswith(".wav"):
+            import wave
+            with wave.open(wav_path, "rb") as wav_file:
+                params = wav_file.getparams()
+                sample_rate = wav_file.getframerate()
+                frames = wav_file.readframes(wav_file.getnframes())
+                audio_bytes = bytes(frames)        
         else:
             wav_format = "others"
             with open(wav_path, "rb") as f:

+ 4 - 1
runtime/websocket/bin/funasr-wss-client-2pass.cpp

@@ -192,7 +192,10 @@ class WebsocketClient {
     funasr::Audio audio(1);
     int32_t sampling_rate = audio_fs;
     std::string wav_format = "pcm";
-    if (funasr::IsTargetFile(wav_path.c_str(), "pcm")) {
+    if (funasr::IsTargetFile(wav_path.c_str(), "wav")) {
+      if (!audio.LoadWav(wav_path.c_str(), &sampling_rate, false)) 
+        return;
+    } else if (funasr::IsTargetFile(wav_path.c_str(), "pcm")) {
       if (!audio.LoadPcmwav(wav_path.c_str(), &sampling_rate, false)) return;
     } else {
       wav_format = "others";