ScreenSubtitleReader 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. ScreenSubtitleReader/__init__.py +1 -0
  2. ScreenSubtitleReader/__main__.py +10 -0
  3. ScreenSubtitleReader/core/__init__.py +0 -0
  4. ScreenSubtitleReader/core/__main__.py +10 -0
  5. ScreenSubtitleReader/core/ocr_fither.py +72 -0
  6. ScreenSubtitleReader/core/screen_reader.py +32 -0
  7. ScreenSubtitleReader/core/string_fither.py +5 -0
  8. ScreenSubtitleReader/ocr_module/__init__.py +1 -0
  9. ScreenSubtitleReader/ocr_module/angnet/__init__.py +1 -0
  10. ScreenSubtitleReader/ocr_module/angnet/angle.py +59 -0
  11. ScreenSubtitleReader/ocr_module/config.py +34 -0
  12. ScreenSubtitleReader/ocr_module/crnn/CRNN.py +102 -0
  13. ScreenSubtitleReader/ocr_module/crnn/__init__.py +1 -0
  14. ScreenSubtitleReader/ocr_module/crnn/keys.py +1 -0
  15. ScreenSubtitleReader/ocr_module/crnn/util.py +89 -0
  16. ScreenSubtitleReader/ocr_module/dbnet/dbnet_infer.py +97 -0
  17. ScreenSubtitleReader/ocr_module/dbnet/decode.py +125 -0
  18. ScreenSubtitleReader/ocr_module/model.py +128 -0
  19. ScreenSubtitleReader/ocr_module/models/__init__.py +1 -0
  20. ScreenSubtitleReader/ocr_module/models/angle_net.onnx +0 -0
  21. ScreenSubtitleReader/ocr_module/models/crnn_lite_lstm.onnx +0 -0
  22. ScreenSubtitleReader/ocr_module/models/dbnet.onnx +0 -0
  23. ScreenSubtitleReader/ocr_module/utils.py +173 -0
  24. ScreenSubtitleReader/setting/setting.py +98 -0
  25. ScreenSubtitleReader/speaker/speaker.py +60 -0
  26. ScreenSubtitleReader/ui/ui.py +101 -0
  27. screensubtitlereader-0.1.3.dist-info/METADATA +21 -0
  28. screensubtitlereader-0.1.3.dist-info/RECORD +31 -0
  29. screensubtitlereader-0.1.3.dist-info/WHEEL +5 -0
  30. screensubtitlereader-0.1.3.dist-info/entry_points.txt +2 -0
  31. screensubtitlereader-0.1.3.dist-info/top_level.txt +1 -0
@@ -0,0 +1,101 @@
1
+ import tkinter as tk
2
+ from ..setting.setting import AppConfig
3
+ from ..speaker.speaker import Speaker
4
+ from ..core.__main__ import main as main_ocr_loop
5
+
6
+ class APP(tk.Tk):
7
+ def __init__(self):
8
+ super().__init__()
9
+
10
+ self.sp = Speaker()
11
+ self.config_manager = AppConfig()
12
+
13
+ # 1. 启动默认全屏
14
+ self.attributes("-fullscreen", True)
15
+
16
+ # 绑定 ESC 键退出程序(强烈建议保留,防止全屏后无法退出)
17
+ self.bind("<Escape>", lambda event: self.destroy())
18
+
19
+ # 2. 配置网格布局,使 2x3 的网格均匀填满整个窗口
20
+ self.grid_rowconfigure(0, weight=1)
21
+ self.grid_rowconfigure(1, weight=1)
22
+ self.grid_columnconfigure(0, weight=1)
23
+ self.grid_columnconfigure(1, weight=1)
24
+ self.grid_columnconfigure(2, weight=1)
25
+
26
+ # 3. 设置超大字体与统一样式
27
+ huge_font = ("SimHei", 160, "bold")
28
+
29
+ # 使用字典统一定义按钮样式,方便维护
30
+ btn_style = {
31
+ "font": huge_font,
32
+ "bg": "#E0E0E0", # 常态背景颜色 (浅灰色)
33
+ "activebackground": "#000000", # 按下时的背景颜色 (亮蓝色,体现按下效果)
34
+ "fg": "#333333", # 常态文字颜色
35
+ "activeforeground": "#FFFFFF" # 按下时的文字颜色
36
+ }
37
+
38
+ # 4. 创建并放置六个按钮
39
+ # 增加了 padx 和 pady 留下按钮间隙,让按下时的颜色变化更加分明
40
+
41
+ # 左上角:语速+
42
+ self.btn_speed_add = tk.Button(self, text="语速+", command=self.on_speed_add, **btn_style)
43
+ self.btn_speed_add.grid(row=0, column=0, sticky="nsew", padx=5, pady=5)
44
+
45
+ # 中上角:音量+
46
+ self.btn_vol_add = tk.Button(self, text="音量+", command=self.on_volume_add, **btn_style)
47
+ self.btn_vol_add.grid(row=0, column=1, sticky="nsew", padx=5, pady=5)
48
+
49
+ # 右上角:开始
50
+ self.btn_start = tk.Button(self, text="开始", command=self.on_start, **btn_style)
51
+ self.btn_start.grid(row=0, column=2, sticky="nsew", padx=5, pady=5)
52
+
53
+ # 左下角:语速-
54
+ self.btn_speed_sub = tk.Button(self, text="语速-", command=self.on_speed_sub, **btn_style)
55
+ self.btn_speed_sub.grid(row=1, column=0, sticky="nsew", padx=5, pady=5)
56
+
57
+ # 中下角:音量-
58
+ self.btn_vol_sub = tk.Button(self, text="音量-", command=self.on_volume_sub, **btn_style)
59
+ self.btn_vol_sub.grid(row=1, column=1, sticky="nsew", padx=5, pady=5)
60
+
61
+ # 右下角:退出 (直接调用自带的 self.destroy 方法关闭窗口)
62
+ self.btn_exit = tk.Button(self, text="重置", command=self.on_reset, **btn_style)
63
+ self.btn_exit.grid(row=1, column=2, sticky="nsew", padx=5, pady=5)
64
+ self.sp.add_sentence(f"当前参数(音量{self.config_manager.volume},速度{self.config_manager.speed})")
65
+ self.sp.add_sentence("注意,更改后的语速在重新启动后生效,设置过程中读出的语音提示并没有反映实时设置的语速")
66
+
67
+ # --- 按钮对应的功能回调函数 ---
68
+
69
+ def on_speed_add(self):
70
+ self.config_manager.speed += 5
71
+ self.sp.add_sentence(f"设置语速: {self.config_manager.speed}")
72
+
73
+ def on_speed_sub(self):
74
+ self.config_manager.speed -= 5
75
+ self.sp.add_sentence(f"设置语速: {self.config_manager.speed}")
76
+
77
+ def on_volume_add(self):
78
+ self.config_manager.volume += 5
79
+ self.sp.add_sentence(f"设置音量: {self.config_manager.volume}")
80
+
81
+ def on_volume_sub(self):
82
+ self.config_manager.volume -= 5
83
+ self.sp.add_sentence(f"设置音量: {self.config_manager.volume}")
84
+
85
+ def on_start(self):
86
+ # 此处可以替换为实际的启动逻辑
87
+ self.sp.add_sentence("5秒钟后开始")
88
+ self.destroy()
89
+
90
+ def on_reset(self):
91
+ self.config_manager.volume = 100
92
+ self.config_manager.speed = 200
93
+ self.sp.add_sentence(f"参数重设(音量{self.config_manager.volume},速度{self.config_manager.speed})")
94
+
95
+
96
+
97
+
98
+ if __name__ == "__main__":
99
+ app = APP()
100
+ app.mainloop()
101
+ main_ocr_loop()
@@ -0,0 +1,21 @@
1
+ Metadata-Version: 2.4
2
+ Name: ScreenSubtitleReader
3
+ Version: 0.1.3
4
+ Summary: 自动识别屏幕上正在放映视频的字幕并读出来
5
+ Requires-Python: >=3.12
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: numpy>=2.4.4
8
+ Requires-Dist: onnxruntime>=1.26.0
9
+ Requires-Dist: opencv-python>=4.13.0.92
10
+ Requires-Dist: pillow>=12.2.0
11
+ Requires-Dist: platformdirs>=4.10.0
12
+ Requires-Dist: pyclipper>=1.4.0
13
+ Requires-Dist: python-levenshtein>=0.27.3
14
+ Requires-Dist: pyttsx3==2.91
15
+ Requires-Dist: shapely>=2.1.2
16
+ Requires-Dist: tornado>=6.5.5
17
+
18
+ ## 一个自动阅读字幕的小工具
19
+
20
+ 先安装:`uv tool install --upgrade screenreaderhyt`
21
+ 之后用`scsrt`启动
@@ -0,0 +1,31 @@
1
+ ScreenSubtitleReader/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
2
+ ScreenSubtitleReader/__main__.py,sha256=yxKs0CCpbO9P08JiYfbl2e1NMBmFfSbKsKRf3cKRVy0,190
3
+ ScreenSubtitleReader/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ ScreenSubtitleReader/core/__main__.py,sha256=T7mftf9YojD7plMWnNTRX93IWjCUkiFZD9rxk-ylfOU,178
5
+ ScreenSubtitleReader/core/ocr_fither.py,sha256=6HJNpZC3pYzcInRnMlWZvow1VECnLVvlkLkyLG6StE4,2421
6
+ ScreenSubtitleReader/core/screen_reader.py,sha256=3wZBp65Q1RPXsQrbkbbPnA2Dkyj0f6zbz6V1p64ngBI,935
7
+ ScreenSubtitleReader/core/string_fither.py,sha256=2FsrufUZbJkfuRKPp-9ELt9zRnNIJmS3RfosLu5qLWg,126
8
+ ScreenSubtitleReader/ocr_module/__init__.py,sha256=V_rlM4OMG-TwO2W6KuHelNZK9PORY4tg8fJvfT_aJJg,28
9
+ ScreenSubtitleReader/ocr_module/config.py,sha256=BORGUXsz2ppDBF_uxmAsdKv9sVgHlZRZnvFi7hVOLqk,764
10
+ ScreenSubtitleReader/ocr_module/model.py,sha256=KTtvYtEodstF8_PZqrSFbKWbYmUUimqXPt6T1EEoZ5Q,4329
11
+ ScreenSubtitleReader/ocr_module/utils.py,sha256=l6ILMdwYs27eOX-H-_1fG8V38dgJeKVcGiR4tZwQErE,6257
12
+ ScreenSubtitleReader/ocr_module/angnet/__init__.py,sha256=kOv159o_x3qifFGVdtMNv7Cj-O9MtDymlRZC8RaZ8uA,35
13
+ ScreenSubtitleReader/ocr_module/angnet/angle.py,sha256=fIAdfpKWBWk8X35V4ORzllUd_xABBNvj6YPMqu_gbk8,1731
14
+ ScreenSubtitleReader/ocr_module/crnn/CRNN.py,sha256=FnJD5P3XA9wbYmwRIKjfJSMNsIQ9J67MUG9aYGQ-6Ls,2592
15
+ ScreenSubtitleReader/ocr_module/crnn/__init__.py,sha256=yMl-1JLBPKu3rx5VfgDI6CE5jr6W71GAkSVZm2gURK4,30
16
+ ScreenSubtitleReader/ocr_module/crnn/keys.py,sha256=zG-pKIG5Ius2uP6-7sWEecBZMYNpsSlTms3MnjOGHh4,16418
17
+ ScreenSubtitleReader/ocr_module/crnn/util.py,sha256=6vsc0-ZV8GuVUJiKrizljvIuS6SEdKGnVQxSY-8XSuE,2244
18
+ ScreenSubtitleReader/ocr_module/dbnet/dbnet_infer.py,sha256=6NaDMNKesTpf5A4dxmoVAZuV3mTIBroZtNei_FspsJI,2902
19
+ ScreenSubtitleReader/ocr_module/dbnet/decode.py,sha256=c3pNpoo_jMI75GjajYdBJTD95XqqarG1fHyegXzIqnY,5156
20
+ ScreenSubtitleReader/ocr_module/models/__init__.py,sha256=IWPxtc05aEZId3L0wHo8BiSN-8l7klTu6MnYUQAynzI,54
21
+ ScreenSubtitleReader/ocr_module/models/angle_net.onnx,sha256=PHD3hzPITJzAiBTlX-5RzxX74z4jRgua8DAuCoTZ9uA,778127
22
+ ScreenSubtitleReader/ocr_module/models/crnn_lite_lstm.onnx,sha256=l8-dzbekcGO-pCByN66SIjH1EihSn_UZjZWKyZ4oBOg,5293632
23
+ ScreenSubtitleReader/ocr_module/models/dbnet.onnx,sha256=7DHrK32qOcTgMH67KQBF3uzVFfTpZW1dmH64IUiuqGc,3637234
24
+ ScreenSubtitleReader/setting/setting.py,sha256=ZBznPw62c-QYwuuUgxjo0EIeFwI2W5tQSW1x5Hireys,3606
25
+ ScreenSubtitleReader/speaker/speaker.py,sha256=OBI625tWokKQcT-HUVqECDRmqQzj_VmBgevc2vJings,2103
26
+ ScreenSubtitleReader/ui/ui.py,sha256=LMq7_1AxXk81VsKmh3Dkyzec5GT3YXr3hONfG5WlHjI,4334
27
+ screensubtitlereader-0.1.3.dist-info/METADATA,sha256=pxpX2TEc-DtEUcPUyv1behLb3uUimvhYWLGojWWlZbo,674
28
+ screensubtitlereader-0.1.3.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
29
+ screensubtitlereader-0.1.3.dist-info/entry_points.txt,sha256=nGgF4IKkgNoGMkSPlKDf3Rz916i3l8DPIYAbKNi3f2I,61
30
+ screensubtitlereader-0.1.3.dist-info/top_level.txt,sha256=k6OvgrAxmjczfuISVFPI1Gw81ttC_KCvTBosP8uW_eI,21
31
+ screensubtitlereader-0.1.3.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ scsrt = ScreenSubtitleReader.__main__:main
@@ -0,0 +1 @@
1
+ ScreenSubtitleReader