From eef1c2a5b885ebc045373a98cb5d3f66019c65b7 Mon Sep 17 00:00:00 2001
From: Hui Wang <86783925+wanghuii1@users.noreply.github.com>
Date: 星期二, 09 四月 2024 09:58:50 +0800
Subject: [PATCH] Update cluster_backend.py

---
 funasr/models/sense_voice/model.py |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/funasr/models/sense_voice/model.py b/funasr/models/sense_voice/model.py
index 2822fc7..521dec8 100644
--- a/funasr/models/sense_voice/model.py
+++ b/funasr/models/sense_voice/model.py
@@ -73,19 +73,29 @@
 
         speech = speech.to(device=kwargs["device"])[0, :, :]
         speech_lengths = speech_lengths.to(device=kwargs["device"])
-
+        
+        task = kwargs.get("task", "ASR")
+        if isinstance(task, str):
+            task = [task]
+        task = "".join([f"<|{x}|>" for x in task])
+        initial_prompt = kwargs.get("initial_prompt", f"<|startoftranscript|>{task}")
         language = kwargs.get("language", None)
-        initial_prompt = kwargs.get("initial_prompt", "<|startoftranscript|><|ASR|>")
-        # # detect the spoken language
-        # _, probs = self.model.detect_language(speech, initial_prompt=initial_prompt)
-        # print(f"Detected language: {max(probs, key=probs.get)}")
-        # language = max(probs, key=probs.get)
-        # language = language if kwargs.get("language", None) is None else kwargs.get("language")
+        language = None if language == "auto" else language
+        # if language is None:
+        #     # detect the spoken language
+        #     _, probs = self.model.detect_language(speech, initial_prompt=initial_prompt)
+        #     print(f"Detected language: {max(probs, key=probs.get)}")
+        #     language = max(probs, key=probs.get)
+        #     language = language if kwargs.get("language", None) is None else kwargs.get("language")
         
         # decode the audio
-        prompt = ""
-        initial_prompt = kwargs.get("initial_prompt", "<|startoftranscript|><|ASR|>")
-        options = whisper.DecodingOptions(language=language, fp16=False, without_timestamps=True, initial_prompt=initial_prompt)
+        
+        # initial_prompt = kwargs.get("initial_prompt", "<|startoftranscript|><|ASR|>")
+        
+        vocab_path = kwargs.get("vocab_path", None)
+        options = whisper.DecodingOptions(language=language, fp16=False, without_timestamps=True, initial_prompt=initial_prompt, vocab_path=vocab_path)
+
+        
         result = whisper.decode(self.model, speech, options)
 
         results = []

--
Gitblit v1.9.1