Update app.py
Browse files
app.py
CHANGED
@@ -19,12 +19,19 @@ def transcribe(file_upload, microphone):
|
|
19 |
model.load_state_dict(state_dict)
|
20 |
|
21 |
# 載入音訊並強制轉單聲道
|
22 |
-
x, sr = torchaudio.load(file, channels_first=True) #
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
if x.shape[0] > 1:
|
24 |
-
x = torch.mean(x, dim=0, keepdim=True)
|
25 |
|
26 |
# 執行降噪
|
27 |
-
out = model(x[None])[0]
|
28 |
|
29 |
# 後處理
|
30 |
out = out / max(out.abs().max().item(), 1)
|
|
|
19 |
model.load_state_dict(state_dict)
|
20 |
|
21 |
# 載入音訊並強制轉單聲道
|
22 |
+
x, sr = torchaudio.load(file, channels_first=True) # 載入音訊
|
23 |
+
|
24 |
+
# 新增:音訊長度檢查(插入在此處)
|
25 |
+
MAX_AUDIO_SECONDS = 600 # 10分鐘限制
|
26 |
+
if x.shape[1] / sr > MAX_AUDIO_SECONDS:
|
27 |
+
raise ValueError(f"音訊長度不可超過 {MAX_AUDIO_SECONDS} 秒,當前音訊長度:{x.shape[1]/sr:.1f} 秒")
|
28 |
+
|
29 |
+
# 單聲道轉換
|
30 |
if x.shape[0] > 1:
|
31 |
+
x = torch.mean(x, dim=0, keepdim=True)
|
32 |
|
33 |
# 執行降噪
|
34 |
+
out = model(x[None])[0]
|
35 |
|
36 |
# 後處理
|
37 |
out = out / max(out.abs().max().item(), 1)
|