Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
|
3 |
+
def check_transcript(transcript, threshold=10):
|
4 |
+
"""
|
5 |
+
檢查逐字稿中的時間段是否有漏掉的部分。
|
6 |
+
|
7 |
+
Parameters:
|
8 |
+
- transcript: 逐字稿文本,格式為 "開始時間 - 結束時間\n文字內容"
|
9 |
+
- threshold: 判斷時間間隔的閾值,單位為秒(默認為 10 秒)
|
10 |
+
|
11 |
+
Returns:
|
12 |
+
- 輸出是否存在時間段遺漏的提示信息。
|
13 |
+
"""
|
14 |
+
# 將逐字稿文本分割成行
|
15 |
+
lines = transcript.split('\n')
|
16 |
+
# 初始化變量以儲存時間戳
|
17 |
+
end_times = []
|
18 |
+
|
19 |
+
for line in lines:
|
20 |
+
if " - " in line:
|
21 |
+
# 提取結束時間部分
|
22 |
+
time_str = line.split(" - ")[1].strip()
|
23 |
+
# 將時間戳轉換為秒數
|
24 |
+
h, m, s = map(float, time_str.split(":"))
|
25 |
+
total_seconds = h * 3600 + m * 60 + s
|
26 |
+
end_times.append(total_seconds)
|
27 |
+
|
28 |
+
# 檢查時間戳之間的間隔
|
29 |
+
gaps = []
|
30 |
+
for i in range(1, len(end_times)):
|
31 |
+
gap = end_times[i] - end_times[i-1]
|
32 |
+
if gap > threshold:
|
33 |
+
gaps.append(f"發現時間間隔過長: {gap:.2f} 秒,發生於第 {i} 段至第 {i+1} 段之間。")
|
34 |
+
|
35 |
+
if not gaps:
|
36 |
+
return "逐字稿無漏掉部分。"
|
37 |
+
else:
|
38 |
+
return "\n".join(gaps)
|
39 |
+
|
40 |
+
# 建立 Gradio 界面
|
41 |
+
iface = gr.Interface(
|
42 |
+
fn=check_transcript,
|
43 |
+
inputs=[
|
44 |
+
gr.Textbox(lines=10, label="逐字稿文本"),
|
45 |
+
gr.Number(default=10, label="時間間隔閾值(秒數)")
|
46 |
+
],
|
47 |
+
outputs="text",
|
48 |
+
title="逐字稿漏掉檢查工具",
|
49 |
+
description="輸入逐字稿文本,檢查時間週是否有漏掉的部分。格式為 '開始時間 - 結束時間\n文字內容',例如 '00:00:01 - 00:00:03\n書局舉辦週年慶'"
|
50 |
+
)
|
51 |
+
|
52 |
+
# 啟動 Gradio 應用
|
53 |
+
iface.launch()
|