GameSentenceMiner 2.7.1__py3-none-any.whl → 2.7.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.
- GameSentenceMiner/electron_config.py +315 -0
- GameSentenceMiner/ocr/owocr_helper.py +3 -2
- GameSentenceMiner/owocr/owocr/run.py +9 -0
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/METADATA +1 -1
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/RECORD +9 -8
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.7.1.dist-info → gamesentenceminer-2.7.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,315 @@
|
|
1
|
+
import json
|
2
|
+
import os
|
3
|
+
from dataclasses import dataclass, field
|
4
|
+
from typing import List, Optional
|
5
|
+
from dataclasses_json import dataclass_json
|
6
|
+
|
7
|
+
from GameSentenceMiner.configuration import get_app_directory
|
8
|
+
|
9
|
+
|
10
|
+
@dataclass_json
|
11
|
+
@dataclass
|
12
|
+
class SteamGame:
|
13
|
+
id: int
|
14
|
+
name: str
|
15
|
+
processName: str
|
16
|
+
script: str
|
17
|
+
|
18
|
+
@dataclass_json
|
19
|
+
@dataclass
|
20
|
+
class YuzuConfig:
|
21
|
+
emuPath: str = "C:\\Emulation\\Emulators\\yuzu-windows-msvc\\yuzu.exe"
|
22
|
+
romsPath: str = "C:\\Emulation\\Yuzu\\Games"
|
23
|
+
launchGameOnStart: str = ""
|
24
|
+
lastGameLaunched: str = ""
|
25
|
+
|
26
|
+
@dataclass_json
|
27
|
+
@dataclass
|
28
|
+
class VNConfig:
|
29
|
+
vns: List[str] = field(default_factory=list)
|
30
|
+
textractorPath: str = ""
|
31
|
+
launchVNOnStart: str = ""
|
32
|
+
lastVNLaunched: str = ""
|
33
|
+
|
34
|
+
@dataclass_json
|
35
|
+
@dataclass
|
36
|
+
class SteamConfig:
|
37
|
+
steamPath: str = ""
|
38
|
+
steamGames: List[SteamGame] = field(default_factory=list)
|
39
|
+
launchSteamOnStart: int = 0
|
40
|
+
lastGameLaunched: int = 0
|
41
|
+
|
42
|
+
@dataclass_json
|
43
|
+
@dataclass
|
44
|
+
class OCRConfig:
|
45
|
+
twoPassOCR: bool = False
|
46
|
+
ocr1: str = "oneOCR"
|
47
|
+
ocr2: str = "glens"
|
48
|
+
window_name: str = ""
|
49
|
+
requiresOpenWindow: Optional[bool] = None
|
50
|
+
scanRate: Optional[float] = None
|
51
|
+
|
52
|
+
@dataclass_json
|
53
|
+
@dataclass
|
54
|
+
class StoreConfig:
|
55
|
+
yuzu: YuzuConfig = field(default_factory=YuzuConfig)
|
56
|
+
agentScriptsPath: str = "E:\\Japanese Stuff\\agent-v0.1.4-win32-x64\\data\\scripts"
|
57
|
+
textractorPath: str = "E:\\Japanese Stuff\\Textractor\\Textractor.exe"
|
58
|
+
startConsoleMinimized: bool = False
|
59
|
+
autoUpdateElectron: bool = True
|
60
|
+
autoUpdateGSMApp: bool = False
|
61
|
+
pythonPath: str = ""
|
62
|
+
VN: VNConfig = field(default_factory=VNConfig)
|
63
|
+
steam: SteamConfig = field(default_factory=SteamConfig)
|
64
|
+
agentPath: str = ""
|
65
|
+
OCR: OCRConfig = field(default_factory=OCRConfig)
|
66
|
+
|
67
|
+
class Store:
|
68
|
+
def __init__(self, config_path=os.path.join(get_app_directory(), "electron", "config.json"), defaults: Optional[StoreConfig] = None):
|
69
|
+
self.config_path = config_path
|
70
|
+
self.defaults = defaults if defaults is not None else StoreConfig()
|
71
|
+
self._load_config()
|
72
|
+
|
73
|
+
def _load_config(self):
|
74
|
+
if os.path.exists(self.config_path):
|
75
|
+
with open(self.config_path, 'r', encoding='utf-8') as f:
|
76
|
+
data = json.load(f)
|
77
|
+
self.data = StoreConfig.from_dict(data)
|
78
|
+
else:
|
79
|
+
self.data = self.defaults
|
80
|
+
self._save_config()
|
81
|
+
|
82
|
+
def _save_config(self):
|
83
|
+
with open(self.config_path, 'w', encoding='utf-8') as f:
|
84
|
+
json.dump(self.data.to_dict(), f, indent=4)
|
85
|
+
|
86
|
+
def get(self, key, default=None):
|
87
|
+
keys = key.split('.')
|
88
|
+
value = self.data
|
89
|
+
for k in keys:
|
90
|
+
if hasattr(value, '__dataclass_fields__') and k in value.__dataclass_fields__:
|
91
|
+
value = getattr(value, k)
|
92
|
+
else:
|
93
|
+
return default
|
94
|
+
return value
|
95
|
+
|
96
|
+
def set(self, key, value):
|
97
|
+
keys = key.split('.')
|
98
|
+
current = self.data
|
99
|
+
for i, k in enumerate(keys):
|
100
|
+
if i == len(keys) - 1:
|
101
|
+
setattr(current, k, value)
|
102
|
+
else:
|
103
|
+
if not hasattr(current, '__dataclass_fields__') or k not in current.__dataclass_fields__:
|
104
|
+
return # Key doesn't exist in the dataclass structure
|
105
|
+
if not hasattr(getattr(current, k), '__dataclass_fields__'):
|
106
|
+
setattr(current, k, object()) # Create a new object if it's not a dataclass instance yet
|
107
|
+
current = getattr(current, k)
|
108
|
+
self._save_config()
|
109
|
+
|
110
|
+
def delete(self, key):
|
111
|
+
keys = key.split('.')
|
112
|
+
if not keys:
|
113
|
+
return False
|
114
|
+
current = self.data
|
115
|
+
for i, k in enumerate(keys[:-1]):
|
116
|
+
if not hasattr(current, '__dataclass_fields__') or k not in current.__dataclass_fields__:
|
117
|
+
return False
|
118
|
+
current = getattr(current, k)
|
119
|
+
if hasattr(current, keys[-1]):
|
120
|
+
delattr(current, keys[-1])
|
121
|
+
self._save_config()
|
122
|
+
return True
|
123
|
+
return False
|
124
|
+
|
125
|
+
def print_store(self):
|
126
|
+
"""Prints the entire contents of the store in a readable JSON format."""
|
127
|
+
print(json.dumps(self.data.to_dict(), indent=4))
|
128
|
+
|
129
|
+
# Initialize the store
|
130
|
+
store = Store(config_path=os.path.join(get_app_directory(), "electron", "config.json"), defaults=StoreConfig())
|
131
|
+
|
132
|
+
# --- Convenience functions ---
|
133
|
+
|
134
|
+
def get_auto_update_gsm_app() -> bool:
|
135
|
+
return store.get("autoUpdateGSMApp")
|
136
|
+
|
137
|
+
def set_auto_update_gsm_app(auto_update: bool):
|
138
|
+
store.set("autoUpdateGSMApp", auto_update)
|
139
|
+
|
140
|
+
def get_auto_update_electron() -> bool:
|
141
|
+
return store.get("autoUpdateElectron")
|
142
|
+
|
143
|
+
def set_auto_update_electron(auto_update: bool):
|
144
|
+
store.set("autoUpdateElectron", auto_update)
|
145
|
+
|
146
|
+
def get_python_path() -> str:
|
147
|
+
return store.get("pythonPath")
|
148
|
+
|
149
|
+
def set_python_path(path: str):
|
150
|
+
store.set("pythonPath", path)
|
151
|
+
|
152
|
+
# OCR
|
153
|
+
|
154
|
+
def get_ocr_config() -> OCRConfig:
|
155
|
+
ocr_data = store.get("OCR")
|
156
|
+
return ocr_data if isinstance(ocr_data, OCRConfig) else OCRConfig.from_dict(ocr_data) if isinstance(ocr_data, dict) else OCRConfig()
|
157
|
+
|
158
|
+
def set_ocr_config(config: OCRConfig):
|
159
|
+
store.set("OCR", config)
|
160
|
+
|
161
|
+
def get_two_pass_ocr() -> bool:
|
162
|
+
return store.get("OCR.twoPassOCR")
|
163
|
+
|
164
|
+
def set_two_pass_ocr(two_pass: bool):
|
165
|
+
store.set("OCR.twoPassOCR", two_pass)
|
166
|
+
|
167
|
+
def get_ocr1() -> str:
|
168
|
+
return store.get("OCR.ocr1")
|
169
|
+
|
170
|
+
def set_ocr1(ocr: str):
|
171
|
+
store.set("OCR.ocr1", ocr)
|
172
|
+
|
173
|
+
def get_ocr2() -> str:
|
174
|
+
return store.get("OCR.ocr2")
|
175
|
+
|
176
|
+
def set_ocr2(ocr: str):
|
177
|
+
store.set("OCR.ocr2", ocr)
|
178
|
+
|
179
|
+
def get_window_name() -> str:
|
180
|
+
return store.get("OCR.window_name")
|
181
|
+
|
182
|
+
def set_window_name(name: str):
|
183
|
+
store.set("OCR.window_name", name)
|
184
|
+
|
185
|
+
def get_requires_open_window() -> Optional[bool]:
|
186
|
+
return store.get("OCR.requiresOpenWindow")
|
187
|
+
|
188
|
+
def set_requires_open_window(requires_open_window: Optional[bool]):
|
189
|
+
store.set("OCR.requiresOpenWindow", requires_open_window)
|
190
|
+
|
191
|
+
def get_ocr_scan_rate() -> Optional[int]:
|
192
|
+
return store.get("OCR.scanRate")
|
193
|
+
|
194
|
+
def set_ocr_scan_rate(scan_rate: Optional[int]):
|
195
|
+
store.set("OCR.scanRate", scan_rate)
|
196
|
+
|
197
|
+
# Yuzu config getters and setters
|
198
|
+
def get_yuzu_config() -> YuzuConfig:
|
199
|
+
yuzu_data = store.get('yuzu')
|
200
|
+
return yuzu_data if isinstance(yuzu_data, YuzuConfig) else YuzuConfig.from_dict(yuzu_data) if isinstance(yuzu_data, dict) else YuzuConfig()
|
201
|
+
|
202
|
+
def set_yuzu_config(config: YuzuConfig):
|
203
|
+
store.set('yuzu', config)
|
204
|
+
|
205
|
+
|
206
|
+
# Yuzu emulator path getters and setters
|
207
|
+
def get_yuzu_emu_path() -> str:
|
208
|
+
return store.get('yuzu.emuPath')
|
209
|
+
|
210
|
+
def set_yuzu_emu_path(path: str):
|
211
|
+
store.set('yuzu.emuPath', path)
|
212
|
+
|
213
|
+
# Yuzu ROMs path getters and setters
|
214
|
+
def get_yuzu_roms_path() -> str:
|
215
|
+
return store.get('yuzu.romsPath')
|
216
|
+
|
217
|
+
def set_yuzu_roms_path(path: str):
|
218
|
+
store.set('yuzu.romsPath', path)
|
219
|
+
|
220
|
+
def get_launch_yuzu_game_on_start() -> str:
|
221
|
+
return store.get("yuzu.launchGameOnStart")
|
222
|
+
|
223
|
+
def set_launch_yuzu_game_on_start(path: str):
|
224
|
+
store.set("yuzu.launchGameOnStart", path)
|
225
|
+
|
226
|
+
def get_last_yuzu_game_launched() -> str:
|
227
|
+
return store.get("yuzu.lastGameLaunched")
|
228
|
+
|
229
|
+
def set_last_yuzu_game_launched(path: str):
|
230
|
+
store.set("yuzu.lastGameLaunched", path)
|
231
|
+
|
232
|
+
# Agent scripts path getters and setters
|
233
|
+
def get_agent_scripts_path() -> str:
|
234
|
+
return store.get('agentScriptsPath')
|
235
|
+
|
236
|
+
def set_agent_scripts_path(path: str):
|
237
|
+
store.set('agentScriptsPath', path)
|
238
|
+
|
239
|
+
def set_agent_path(path: str):
|
240
|
+
store.set('agentPath', path)
|
241
|
+
|
242
|
+
def get_agent_path() -> str:
|
243
|
+
return store.get('agentPath')
|
244
|
+
|
245
|
+
def get_start_console_minimized() -> bool:
|
246
|
+
return store.get("startConsoleMinimized")
|
247
|
+
|
248
|
+
def set_start_console_minimized(should_minimize: bool):
|
249
|
+
store.set("startConsoleMinimized", should_minimize)
|
250
|
+
|
251
|
+
def get_vns() -> List[str]:
|
252
|
+
return store.get('VN.vns')
|
253
|
+
|
254
|
+
def set_vns(vns: List[str]):
|
255
|
+
store.set('VN.vns', vns)
|
256
|
+
|
257
|
+
def get_textractor_path() -> str:
|
258
|
+
return store.get("VN.textractorPath")
|
259
|
+
|
260
|
+
def set_textractor_path(path: str):
|
261
|
+
store.set("VN.textractorPath", path)
|
262
|
+
|
263
|
+
def get_launch_vn_on_start() -> str:
|
264
|
+
return store.get("VN.launchVNOnStart")
|
265
|
+
|
266
|
+
def set_launch_vn_on_start(vn: str):
|
267
|
+
store.set("VN.launchVNOnStart", vn)
|
268
|
+
|
269
|
+
def get_last_vn_launched() -> str:
|
270
|
+
return store.get("VN.lastVNLaunched")
|
271
|
+
|
272
|
+
def set_last_vn_launched(vn: str):
|
273
|
+
store.set("VN.lastVNLaunched", vn)
|
274
|
+
|
275
|
+
def get_steam_path() -> str:
|
276
|
+
return store.get('steam.steamPath')
|
277
|
+
|
278
|
+
def set_steam_path(path: str):
|
279
|
+
store.set('steam.steamPath', path)
|
280
|
+
|
281
|
+
def get_launch_steam_on_start() -> int:
|
282
|
+
return store.get('steam.launchSteamOnStart')
|
283
|
+
|
284
|
+
def set_launch_steam_on_start(game_id: int):
|
285
|
+
store.set('steam.launchSteamOnStart', game_id)
|
286
|
+
|
287
|
+
def get_last_steam_game_launched() -> int:
|
288
|
+
return store.get('steam.lastGameLaunched')
|
289
|
+
|
290
|
+
def set_last_steam_game_launched(game_id: int):
|
291
|
+
store.set('steam.lastGameLaunched', game_id)
|
292
|
+
|
293
|
+
def get_steam_games() -> List[SteamGame]:
|
294
|
+
steam_games_data = store.get('steam.steamGames')
|
295
|
+
return [SteamGame.from_dict(game_data) for game_data in steam_games_data] if isinstance(steam_games_data, list) else []
|
296
|
+
|
297
|
+
def set_steam_games(games: List[SteamGame]):
|
298
|
+
store.set('steam.steamGames', [game.to_dict() for game in games])
|
299
|
+
|
300
|
+
# if __name__ == "__main__":
|
301
|
+
# # Example usage:
|
302
|
+
# print(f"Initial Yuzu Emulator Path: {get_yuzu_emu_path()}")
|
303
|
+
# set_yuzu_emu_path("D:\\NewEmulators\\yuzu\\yuzu.exe")
|
304
|
+
# print(f"Updated Yuzu Emulator Path: {get_yuzu_emu_path()}")
|
305
|
+
#
|
306
|
+
# ocr_config = get_ocr_config()
|
307
|
+
# print(f"Initial Two-Pass OCR: {ocr_config.twoPassOCR}")
|
308
|
+
# set_two_pass_ocr(True)
|
309
|
+
# print(f"Updated Two-Pass OCR: {get_two_pass_ocr()}")
|
310
|
+
#
|
311
|
+
# steam_games = get_steam_games()
|
312
|
+
# print(f"Initial Steam Games: {[game.name for game in steam_games]}")
|
313
|
+
# new_games = [SteamGame(123, "Game One"), SteamGame(456, "Game Two")]
|
314
|
+
# set_steam_games(new_games)
|
315
|
+
# print(f"Updated Steam Games: {[game.name for game in get_steam_games()]}")
|
@@ -22,6 +22,7 @@ from GameSentenceMiner.configuration import get_config, get_app_directory
|
|
22
22
|
from GameSentenceMiner.gametext import get_line_history
|
23
23
|
from GameSentenceMiner.owocr.owocr import screen_coordinate_picker, run
|
24
24
|
from GameSentenceMiner.owocr.owocr.run import TextFiltering
|
25
|
+
from GameSentenceMiner.electron_config import store, get_ocr_scan_rate, get_requires_open_window
|
25
26
|
|
26
27
|
CONFIG_FILE = Path("ocr_config.json")
|
27
28
|
DEFAULT_IMAGE_PATH = r"C:\Users\Beangate\Pictures\msedge_acbl8GL7Ax.jpg" # CHANGE THIS
|
@@ -201,8 +202,8 @@ def run_oneocr(ocr_config, i):
|
|
201
202
|
run.run(read_from="screencapture", write_to="callback",
|
202
203
|
screen_capture_area=",".join(str(c) for c in ocr_config['rectangles'][i]) if ocr_config['rectangles'] else 'screen_1',
|
203
204
|
screen_capture_window=ocr_config.get("window", None),
|
204
|
-
screen_capture_only_active_windows=
|
205
|
-
screen_capture_delay_secs
|
205
|
+
screen_capture_only_active_windows=get_requires_open_window(),
|
206
|
+
screen_capture_delay_secs=get_ocr_scan_rate(), engine=ocr1,
|
206
207
|
text_callback=text_callback,
|
207
208
|
screen_capture_exclusions=ocr_config.get('excluded_rectangles', None),
|
208
209
|
rectangle=i)
|
@@ -782,6 +782,8 @@ def run(read_from=None,
|
|
782
782
|
else:
|
783
783
|
screencapture_mode = 2
|
784
784
|
screen_capture_window = screen_capture_area
|
785
|
+
if screen_capture_window:
|
786
|
+
screencapture_mode = 2
|
785
787
|
|
786
788
|
if screencapture_mode != 2:
|
787
789
|
sct = mss.mss()
|
@@ -815,6 +817,7 @@ def run(read_from=None,
|
|
815
817
|
|
816
818
|
sct_params = {'top': coord_top, 'left': coord_left, 'width': coord_width, 'height': coord_height}
|
817
819
|
logger.opt(ansi=True).info(f'Selected coordinates: {coord_left},{coord_top},{coord_width},{coord_height}')
|
820
|
+
custom_left, custom_top, custom_width, custom_height = [int(c.strip()) for c in screen_capture_area.split(',')]
|
818
821
|
if screencapture_mode == 2 or screen_capture_window:
|
819
822
|
area_invalid_error = '"screen_capture_area" must be empty, "screen_N" where N is a screen number starting from 1, a valid set of coordinates, or a valid window name'
|
820
823
|
if sys.platform == 'darwin':
|
@@ -1025,8 +1028,14 @@ def run(read_from=None,
|
|
1025
1028
|
except pywintypes.error:
|
1026
1029
|
on_window_closed(False)
|
1027
1030
|
break
|
1031
|
+
|
1032
|
+
rand = random.randint(1, 10)
|
1033
|
+
|
1028
1034
|
img = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1)
|
1029
1035
|
|
1036
|
+
if custom_left:
|
1037
|
+
img = img.crop((custom_left, custom_top, custom_width, custom_height))
|
1038
|
+
|
1030
1039
|
win32gui.DeleteObject(save_bitmap.GetHandle())
|
1031
1040
|
save_dc.DeleteDC()
|
1032
1041
|
mfc_dc.DeleteDC()
|
@@ -2,6 +2,7 @@ GameSentenceMiner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
2
2
|
GameSentenceMiner/anki.py,sha256=9E9GRR2zylW3Gp4PNlwYS_Nn-mhojZkjFqfYlTazte8,14068
|
3
3
|
GameSentenceMiner/config_gui.py,sha256=-1PanqdtTKiwItxeyt0piXrWo7lGMWwrC4iSo4NiPz4,67521
|
4
4
|
GameSentenceMiner/configuration.py,sha256=TIL8yCr-FOScCA4OJt-BAtjEb50wtqFFrpmN-UlaQh4,20405
|
5
|
+
GameSentenceMiner/electron_config.py,sha256=dGcPYCISPehXubYSzsDuI2Gl092MYK0u3bTnkL9Jh1Y,9787
|
5
6
|
GameSentenceMiner/ffmpeg.py,sha256=iUj-1uLLJla6jjGDKuc1FbcXjMogYpoDhrQqCbQFcWA,13359
|
6
7
|
GameSentenceMiner/gametext.py,sha256=brybSe7hRy13JAUwuSs6WqOPFH6to0detbIPVhnkinA,9062
|
7
8
|
GameSentenceMiner/gsm.py,sha256=fcczDPDcC0vDLAPZtIY64mU3Di3RZjR40tuLIiwB5lE,24827
|
@@ -22,21 +23,21 @@ GameSentenceMiner/downloader/download_tools.py,sha256=mI1u_FGBmBqDIpCH3jOv8DOoZ3
|
|
22
23
|
GameSentenceMiner/ocr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
24
|
GameSentenceMiner/ocr/ocrconfig.py,sha256=hTROOZ3On2HngXKxwQFZvnr5AxlmlMV0mPxv-F3NbMg,6476
|
24
25
|
GameSentenceMiner/ocr/owocr_area_selector.py,sha256=6MQPCSAhuyOSEDEgc-w6jVdsELjxstzI2Zhz0JBkG8g,11703
|
25
|
-
GameSentenceMiner/ocr/owocr_helper.py,sha256=
|
26
|
+
GameSentenceMiner/ocr/owocr_helper.py,sha256=e4WMFAl_tgE6AxofxghfrvisdZO3HmKa_3z-WmkdYYE,11798
|
26
27
|
GameSentenceMiner/owocr/owocr/__init__.py,sha256=opjBOyGGyEqZCE6YdZPnyt7nVfiwyELHsXA0jAsjm14,25
|
27
28
|
GameSentenceMiner/owocr/owocr/__main__.py,sha256=nkaZGTCZsPDKcej2O0S1SHkyzHJEboTUBc9izyGPvqw,92
|
28
29
|
GameSentenceMiner/owocr/owocr/config.py,sha256=738QCJHEWpFhMh966plOcXYWwcshSiRsxjjIwldeTtI,7461
|
29
30
|
GameSentenceMiner/owocr/owocr/lens_betterproto.py,sha256=oNoISsPilVVRBBPVDtb4-roJtAhp8ZAuFTci3TGXtMc,39141
|
30
31
|
GameSentenceMiner/owocr/owocr/ocr.py,sha256=d0uLAQotZ6xhUSWWEXW07c0-EYjeTmumHxIEsT01Iuo,36604
|
31
|
-
GameSentenceMiner/owocr/owocr/run.py,sha256=
|
32
|
+
GameSentenceMiner/owocr/owocr/run.py,sha256=S-eb8wFC-LQLiibHVORTyTKTuPaOM2Uj6awoJxGyInQ,46549
|
32
33
|
GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py,sha256=f_YIV4-2OEZ21CAEZ_pbqeTb5D28PS82Tig4ZSnkY4Q,3096
|
33
34
|
GameSentenceMiner/vad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
35
|
GameSentenceMiner/vad/silero_trim.py,sha256=ULf3zwS-JMsY82cKF7gZxREHw8L6lgpWF2U1YqgE9Oc,1681
|
35
36
|
GameSentenceMiner/vad/vosk_helper.py,sha256=125X8C9NxFPlWWpoNsbOnEqKx8RCjXN109zNx_QXhyg,6070
|
36
37
|
GameSentenceMiner/vad/whisper_helper.py,sha256=JJ-iltCh813XdjyEw0Wn5DaErf6PDqfH0Efu1Md8cIY,3543
|
37
|
-
gamesentenceminer-2.7.
|
38
|
-
gamesentenceminer-2.7.
|
39
|
-
gamesentenceminer-2.7.
|
40
|
-
gamesentenceminer-2.7.
|
41
|
-
gamesentenceminer-2.7.
|
42
|
-
gamesentenceminer-2.7.
|
38
|
+
gamesentenceminer-2.7.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
39
|
+
gamesentenceminer-2.7.3.dist-info/METADATA,sha256=18F6DexdMo-dYWQCtWl_caEy5vo2B7E5Lkfyq4JOdwA,5839
|
40
|
+
gamesentenceminer-2.7.3.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
41
|
+
gamesentenceminer-2.7.3.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
|
42
|
+
gamesentenceminer-2.7.3.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
|
43
|
+
gamesentenceminer-2.7.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|