Carina1025 commited on
Commit
2b42ef6
·
verified ·
1 Parent(s): a5dc095

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -0
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()