File size: 1,352 Bytes
215bf18
ff66686
215bf18
 
ff66686
4dfea18
215bf18
 
4dfea18
215bf18
 
b66022d
215bf18
61432ca
e35df71
215bf18
0a92ca3
215bf18
0a92ca3
215bf18
 
0a92ca3
6f40988
215bf18
0a92ca3
6f40988
215bf18
0a92ca3
6f40988
215bf18
 
 
 
0a92ca3
6f40988
215bf18
a869e37
24bad25
215bf18
74df6d5
 
215bf18
74df6d5
 
24bad25
215bf18
74df6d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 匯入必要的函式庫
import os

# 從OpenAI的GitHub儲存庫安裝Whisper函式庫
os.system("pip install git+https://github.com/openai/whisper.git")

# 匯入用於建立使用者介面的Gradio函式庫
import gradio as gr

# 匯入Whisper函式庫
import whisper

# 載入名為"base"的預先訓練Whisper模型
model = whisper.load_model("base")

# 定義使用Whisper進行語言推斷的函數
def inference(audio):
    # 使用Whisper載入音訊檔案
    audio = whisper.load_audio(audio)

    # 確保音訊已正確填充或修剪
    audio = whisper.pad_or_trim(audio)

    # 從音訊中提取對數梅爾頻譜圖並將其發送到模型的設備
    mel = whisper.log_mel_spectrogram(audio).to(model.device)

    # 使用Whisper模型檢測語言並獲取機率
    _, probs = model.detect_language(mel)

    # 設定Whisper的解碼選項
    options = whisper.DecodingOptions(fp16=False)

    # 解碼梅爾頻譜圖以獲取推斷文本
    result = whisper.decode(model, mel, options)

    # 返回推斷的文本
    return result.text

# 使用音訊輸入和文本輸出創建Gradio介面
iface = gr.Interface(
    fn=inference,
    inputs=gr.Audio(type="filepath", label="支援格式:WAV、MP3、OGG、FLAC、AAC、M4A、WMA。支援單聲道和多聲道。"),
    outputs="text"
)

# 啟動Gradio介面
iface.launch()