Dibiddo commited on
Commit
f9dc89f
·
verified ·
1 Parent(s): bb320d2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -37
app.py CHANGED
@@ -2,6 +2,7 @@ import torch
2
  from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
3
  from datasets import load_dataset
4
  import spacy
 
5
 
6
  # 設置設備和環境變數(如有需要)
7
  device = "cuda:0" if torch.cuda.is_available() else "cpu"
@@ -21,57 +22,57 @@ whisper_pipe = pipeline(
21
  feature_extractor=whisper_processor.feature_extractor,
22
  device=device)
23
 
24
- # 安裝必要庫並下載 spaCy 英文小模型(如果尚未安裝)
 
 
25
  try:
26
 
 
 
 
 
27
  except Exception as e:
28
 
29
- finally:
30
-
31
- spacy.cli.download("en_core_web_sm")
32
 
33
- nlp = spacy.load("en_core_web_sm")
 
34
 
35
- def process_audio(audio_file):
36
-
37
 
 
38
 
39
- # 語音轉文字
40
 
41
- result= whisper_pipe(audio_file)["text"]
 
 
 
 
42
 
 
43
 
44
- # 使用其他文本生成模型替換,因為目前無法直接加載DeepSeek-V3
45
-
46
- messages=[{"role": "user", "content": result}]
47
-
48
- deepseek_response="" # 預設回應
49
-
50
- try:
51
- from transformers import pipeline
52
-
53
- pipe=pipeline("text-generation",model="t5-base")
54
-
55
- deepseek_response=pipe(messages)[0]["generated_text"]
56
 
 
 
57
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
- # 使用 spaCy 分析文本
60
-
61
- doc=nlp(deepseek_response)
62
- entities=[(ent.text, ent.label_) for ent in doc.ents]
63
-
64
- return {
65
- "Transcription (Whisper)": result,
66
- "AI Response (T5)": deepseek_response,# 修改為 T5 回應以避免與原來不同步
67
- "Extracted Entities (spaCy)": entities}
68
-
69
- except Exception as e:
70
- return {
71
- "Transcription (Whisper)": result,# 保留原始轉錄內容
72
-
73
- }
74
-
75
 
76
 
77
  with gr.Blocks() as app:
 
2
  from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
3
  from datasets import load_dataset
4
  import spacy
5
+ import gradio as gr
6
 
7
  # 設置設備和環境變數(如有需要)
8
  device = "cuda:0" if torch.cuda.is_available() else "cpu"
 
22
  feature_extractor=whisper_processor.feature_extractor,
23
  device=device)
24
 
25
+ # DeepSeek-V3 模型初始化(文本生成)
26
+ deepseek_pipe = None # 預設值,以防模型加載失敗
27
+
28
  try:
29
 
30
+ # 這裡需要添加正確的內容以避免 IndentationError
31
+
32
+ deepseek_pipe=pipeline("text-generation",model="t5-base") # 暫時使用 T5 作為替代
33
+
34
  except Exception as e:
35
 
36
+ print(f"加載模型時出現錯誤:{e}")
 
 
37
 
38
+ # spaCy 初始化(文本分類與標籤)
39
+ nlp=None
40
 
41
+ try:
 
42
 
43
+ nlp=spacy.load("en_core_web_sm")
44
 
45
+ except Exception as e:
46
 
47
+ print(f"加載spaCy模型時出現錯誤:{e}")
48
+
49
+ def process_audio(audio_file):
50
+
51
+
52
 
53
+ result= whisper_pipe(audio_file)["text"]
54
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
+ messages=[{"role": "user", "content": result}]
57
+ deepseek_response=""
58
 
59
+ try:
60
+ if deepseek_pipe is not None:
61
+ deepseek_response=deepseek_pipe(messages)[0]["generated_text"]
62
+
63
+ doc=nlp(deepseek_response) if nlp is not None else None
64
+ entities=[(ent.text, ent.label_) for ent in doc.ents] if doc is not None else []
65
+
66
+ return {
67
+ "Transcription (Whisper)": result,
68
+ "AI Response (T5)": deepseek_response,# 修改為 T5 回應以避免與原來不同步
69
+ "Extracted Entities (spaCy)": entities}
70
 
71
+ except Exception as e:
72
+ return {
73
+ "Transcription (Whisper)": result,# 保留原始轉錄內容
74
+ }
75
+
 
 
 
 
 
 
 
 
 
 
 
76
 
77
 
78
  with gr.Blocks() as app: