GameSentenceMiner 2.2.0__tar.gz → 2.2.2__tar.gz

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 (35) hide show
  1. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/anki.py +12 -12
  2. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/config_gui.py +3 -3
  3. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/configuration.py +2 -4
  4. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/downloader/download_tools.py +2 -2
  5. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/ffmpeg.py +9 -5
  6. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/gametext.py +6 -6
  7. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/gsm.py +19 -20
  8. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/notification.py +5 -3
  9. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/obs.py +14 -23
  10. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/package_updater.py +1 -1
  11. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/util.py +9 -6
  12. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/vad/silero_trim.py +2 -2
  13. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/vad/vosk_helper.py +2 -2
  14. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/vad/whisper_helper.py +2 -2
  15. gamesentenceminer-2.2.2/GameSentenceMiner.egg-info/PKG-INFO +229 -0
  16. gamesentenceminer-2.2.2/GameSentenceMiner.egg-info/SOURCES.txt +27 -0
  17. gamesentenceminer-2.2.2/GameSentenceMiner.egg-info/entry_points.txt +2 -0
  18. gamesentenceminer-2.2.2/GameSentenceMiner.egg-info/top_level.txt +1 -0
  19. gamesentenceminer-2.2.2/PKG-INFO +229 -0
  20. gamesentenceminer-2.2.2/README.md +195 -0
  21. {gamesentenceminer-2.2.0 → gamesentenceminer-2.2.2}/pyproject.toml +4 -4
  22. gamesentenceminer-2.2.0/GameSentenceMiner.egg-info/PKG-INFO +0 -348
  23. gamesentenceminer-2.2.0/GameSentenceMiner.egg-info/SOURCES.txt +0 -27
  24. gamesentenceminer-2.2.0/GameSentenceMiner.egg-info/entry_points.txt +0 -2
  25. gamesentenceminer-2.2.0/GameSentenceMiner.egg-info/top_level.txt +0 -1
  26. gamesentenceminer-2.2.0/PKG-INFO +0 -348
  27. gamesentenceminer-2.2.0/README.md +0 -314
  28. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/__init__.py +0 -0
  29. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/downloader/Untitled_json.py +0 -0
  30. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/downloader/__init__.py +0 -0
  31. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/model.py +0 -0
  32. {gamesentenceminer-2.2.0/src → gamesentenceminer-2.2.2/GameSentenceMiner}/vad/__init__.py +0 -0
  33. {gamesentenceminer-2.2.0 → gamesentenceminer-2.2.2}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  34. {gamesentenceminer-2.2.0 → gamesentenceminer-2.2.2}/GameSentenceMiner.egg-info/requires.txt +0 -0
  35. {gamesentenceminer-2.2.0 → gamesentenceminer-2.2.2}/setup.cfg +0 -0
@@ -6,12 +6,12 @@ import urllib.request
6
6
 
7
7
  import requests as req
8
8
 
9
- from src import obs, util, notification, ffmpeg
9
+ from GameSentenceMiner import obs, util, notification, ffmpeg
10
10
 
11
- from src.configuration import *
12
- from src.configuration import get_config
13
- from src.gametext import get_last_two_sentences
14
- from src.obs import get_current_game
11
+ from GameSentenceMiner.configuration import *
12
+ from GameSentenceMiner.configuration import get_config
13
+ from GameSentenceMiner.gametext import get_last_two_sentences
14
+ from GameSentenceMiner.obs import get_current_game
15
15
 
16
16
  audio_in_anki = None
17
17
  screenshot_in_anki = None
@@ -168,15 +168,15 @@ def get_cards_by_sentence(sentence):
168
168
  card_ids = invoke("findCards", query=query)
169
169
 
170
170
  if not card_ids:
171
- print(f"Didn't find any cards matching query:\n{query}")
171
+ logger.warning(f"Didn't find any cards matching query:\n{query}")
172
172
  return {}
173
173
  if len(card_ids) > 1:
174
- print(f'Found more than 1, and not updating cards for query: \n{query}')
174
+ logger.warning(f'Found more than 1, and not updating cards for query: \n{query}')
175
175
  return {}
176
176
 
177
177
  last_notes = invoke('notesInfo', notes=[card_ids[0]])[0]
178
178
 
179
- print(f"Found Card to backfill!: {card_ids[0]}")
179
+ logger.info(f"Found Card to backfill!: {card_ids[0]}")
180
180
 
181
181
  return last_notes
182
182
 
@@ -188,7 +188,7 @@ def check_for_new_cards():
188
188
  try:
189
189
  current_note_ids = get_note_ids()
190
190
  except Exception as e:
191
- print(f"Error fetching Anki notes: {e}")
191
+ logger.error(f"Error fetching Anki notes: {e}")
192
192
  return
193
193
  new_card_ids = current_note_ids - previous_note_ids
194
194
  if new_card_ids and not first_run:
@@ -205,16 +205,16 @@ def update_new_card():
205
205
 
206
206
  use_prev_audio = util.use_previous_audio
207
207
  if util.lock.locked():
208
- print("Audio still being Trimmed, Card Queued!")
208
+ logger.info("Audio still being Trimmed, Card Queued!")
209
209
  use_prev_audio = True
210
210
  with util.lock:
211
- print(f"use previous audio: {use_prev_audio}")
211
+ logger.info(f"use previous audio: {use_prev_audio}")
212
212
  if get_config().obs.get_game_from_scene:
213
213
  obs.update_current_game()
214
214
  if use_prev_audio:
215
215
  update_anki_card(last_card, note=get_initial_card_info(last_card), reuse_audio=True)
216
216
  else:
217
- print("New card(s) detected!")
217
+ logger.info("New card(s) detected!")
218
218
  obs.save_replay_buffer()
219
219
 
220
220
 
@@ -3,9 +3,9 @@ from tkinter import filedialog, messagebox, simpledialog
3
3
 
4
4
  import ttkbootstrap as ttk
5
5
 
6
- from src.package_updater import check_for_updates, get_latest_version, update, get_current_version
7
- from src import obs, configuration
8
- from src.configuration import *
6
+ from GameSentenceMiner.package_updater import check_for_updates, get_latest_version, update, get_current_version
7
+ from GameSentenceMiner import obs, configuration
8
+ from GameSentenceMiner.configuration import *
9
9
 
10
10
  settings_saved = False
11
11
  on_save = []
@@ -305,13 +305,11 @@ def load_config():
305
305
  config = ProfileConfig.from_dict(config_file)
306
306
  new_config = Config(configs = {DEFAULT_CONFIG : config}, current_profile=DEFAULT_CONFIG)
307
307
 
308
- print(new_config)
309
-
310
308
  with open(config_path, 'w') as file:
311
309
  json.dump(new_config.to_dict(), file, indent=4)
312
310
  return new_config
313
311
  except json.JSONDecodeError as e:
314
- print(f"Error parsing config.json: {e}")
312
+ logger.error(f"Error parsing config.json: {e}")
315
313
  return None
316
314
  elif os.path.exists('config.toml'):
317
315
  config = ProfileConfig().load_from_toml('config.toml')
@@ -334,7 +332,7 @@ def get_config():
334
332
  config = config_instance.get_config()
335
333
 
336
334
  if config.features.backfill_audio and config.features.full_auto:
337
- print("Cannot have backfill_audio and obs_full_auto_mode turned on at the same time!")
335
+ logger.error("Cannot have backfill_audio and obs_full_auto_mode turned on at the same time!")
338
336
  exit(1)
339
337
 
340
338
  # print(config_instance.get_config())
@@ -6,8 +6,8 @@ import urllib.request
6
6
  import platform
7
7
  import zipfile
8
8
 
9
- from src.downloader.Untitled_json import scenes
10
- from src.configuration import get_app_directory, logger
9
+ from GameSentenceMiner.downloader.Untitled_json import scenes
10
+ from GameSentenceMiner.configuration import get_app_directory, logger
11
11
 
12
12
  script_dir = os.path.dirname(os.path.abspath(__file__))
13
13
 
@@ -2,13 +2,16 @@ import subprocess
2
2
  import tempfile
3
3
  import time
4
4
 
5
- from src import obs, util, configuration
6
- from src.configuration import *
7
- from src.util import *
5
+ from GameSentenceMiner import obs, util, configuration
6
+ from GameSentenceMiner.configuration import *
7
+ from GameSentenceMiner.util import *
8
8
 
9
9
  def get_ffmpeg_path():
10
10
  return os.path.join(get_app_directory(), "ffmpeg", "ffmpeg.exe") if util.is_windows() else "ffmpeg"
11
11
 
12
+ def get_ffprobe_path():
13
+ return os.path.join(get_app_directory(), "ffmpeg", "ffprobe.exe") if util.is_windows() else "ffprobe"
14
+
12
15
  ffmpeg_base_command_list = [get_ffmpeg_path(), "-hide_banner", "-loglevel", "error", '-nostdin']
13
16
 
14
17
 
@@ -90,7 +93,7 @@ def process_image(image_file):
90
93
 
91
94
  def get_audio_codec(video_path):
92
95
  command = [
93
- "ffprobe",
96
+ f"{get_ffprobe_path()}",
94
97
  "-v", "error",
95
98
  "-select_streams", "a:0",
96
99
  "-show_entries", "stream=codec_name",
@@ -151,12 +154,13 @@ def get_audio_and_trim(video_path, line_time, next_line_time):
151
154
 
152
155
  def get_video_duration(file_path):
153
156
  ffprobe_command = [
154
- "ffprobe",
157
+ f"{get_ffprobe_path()}",
155
158
  "-v", "error",
156
159
  "-show_entries", "format=duration",
157
160
  "-of", "json",
158
161
  file_path
159
162
  ]
163
+ logger.debug(" ".join(ffprobe_command))
160
164
  result = subprocess.run(ffprobe_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
161
165
  duration_info = json.loads(result.stdout)
162
166
  return float(duration_info["format"]["duration"]) # Return the duration in seconds
@@ -7,10 +7,10 @@ from datetime import datetime
7
7
  import pyperclip
8
8
  import websockets
9
9
 
10
- from src import util
11
- from src.configuration import *
12
- from src.configuration import get_config, logger
13
- from src.util import remove_html_tags
10
+ from GameSentenceMiner import util
11
+ from GameSentenceMiner.configuration import *
12
+ from GameSentenceMiner.configuration import get_config, logger
13
+ from GameSentenceMiner.util import remove_html_tags
14
14
  from difflib import SequenceMatcher
15
15
 
16
16
 
@@ -51,7 +51,7 @@ async def listen_websocket():
51
51
  try:
52
52
  async with websockets.connect(f'ws://{get_config().general.websocket_uri}', ping_interval=None) as websocket:
53
53
  if reconnecting:
54
- print(f"Texthooker WebSocket connected Successfully!")
54
+ logger.info(f"Texthooker WebSocket connected Successfully!")
55
55
  reconnecting = False
56
56
  while True:
57
57
  message = await websocket.recv()
@@ -71,7 +71,7 @@ async def listen_websocket():
71
71
 
72
72
  except (websockets.ConnectionClosed, ConnectionError) as e:
73
73
  if not reconnecting:
74
- print(f"Texthooker WebSocket connection lost: {e}. Attempting to Reconnect...")
74
+ logger.warning(f"Texthooker WebSocket connection lost: {e}. Attempting to Reconnect...")
75
75
  reconnecting = True
76
76
  await asyncio.sleep(5)
77
77
 
@@ -12,20 +12,20 @@ from pystray import Icon, Menu, MenuItem
12
12
  from watchdog.events import FileSystemEventHandler
13
13
  from watchdog.observers import Observer
14
14
 
15
- from src import anki
16
- from src import config_gui
17
- from src import configuration
18
- from src import ffmpeg
19
- from src import gametext
20
- from src import notification
21
- from src import obs
22
- from src import util
23
- from src.downloader.download_tools import download_obs_if_needed, download_ffmpeg_if_needed
24
- from src.vad import vosk_helper, silero_trim, whisper_helper
25
- from src.configuration import *
26
- from src.ffmpeg import get_audio_and_trim
27
- from src.gametext import get_line_timing
28
- from src.util import *
15
+ from GameSentenceMiner import anki
16
+ from GameSentenceMiner import config_gui
17
+ from GameSentenceMiner import configuration
18
+ from GameSentenceMiner import ffmpeg
19
+ from GameSentenceMiner import gametext
20
+ from GameSentenceMiner import notification
21
+ from GameSentenceMiner import obs
22
+ from GameSentenceMiner import util
23
+ from GameSentenceMiner.downloader.download_tools import download_obs_if_needed, download_ffmpeg_if_needed
24
+ from GameSentenceMiner.vad import vosk_helper, silero_trim, whisper_helper
25
+ from GameSentenceMiner.configuration import *
26
+ from GameSentenceMiner.ffmpeg import get_audio_and_trim
27
+ from GameSentenceMiner.gametext import get_line_timing
28
+ from GameSentenceMiner.util import *
29
29
 
30
30
  obs_process: Popen
31
31
  procs_to_close = []
@@ -100,8 +100,7 @@ class VideoToAudioHandler(FileSystemEventHandler):
100
100
  except Exception as e:
101
101
  logger.error(f"Card failed to update! Maybe it was removed? {e}")
102
102
  except FileNotFoundError as f:
103
- print(f)
104
- print("Something went wrong with processing, anki card not updated")
103
+ logger.error("Something went wrong with processing, anki card not updated")
105
104
  except Exception as e:
106
105
  logger.error(f"Some error was hit catching to allow further work to be done: {e}", exc_info=1)
107
106
  if get_config().paths.remove_video and os.path.exists(video_path):
@@ -232,7 +231,7 @@ def open_log():
232
231
  """Open log file with the default application."""
233
232
  log_file_path = get_log_path()
234
233
  if not os.path.exists(log_file_path):
235
- print("Log file not found!")
234
+ logger.error("Log file not found!")
236
235
  return
237
236
 
238
237
  if sys.platform.startswith("win"): # Windows
@@ -242,13 +241,13 @@ def open_log():
242
241
  elif sys.platform.startswith("linux"): # Linux
243
242
  subprocess.call(["xdg-open", log_file_path])
244
243
  else:
245
- print("Unsupported platform!")
246
- print("Log opened.")
244
+ logger.error("Unsupported platform!")
245
+ logger.info("Log opened.")
247
246
 
248
247
 
249
248
  def exit_program(icon, item):
250
249
  """Exit the application."""
251
- print("Exiting...")
250
+ logger.info("Exiting...")
252
251
  icon.stop()
253
252
  cleanup()
254
253
 
@@ -1,6 +1,8 @@
1
1
  import requests
2
2
  from plyer import notification
3
3
 
4
+ from GameSentenceMiner.configuration import logger
5
+
4
6
 
5
7
  def open_anki_card(note_id):
6
8
  url = "http://localhost:8765"
@@ -17,11 +19,11 @@ def open_anki_card(note_id):
17
19
  try:
18
20
  response = requests.post(url, json=data, headers=headers)
19
21
  if response.status_code == 200:
20
- print(f"Opened Anki note with ID {note_id}")
22
+ logger.info(f"Opened Anki note with ID {note_id}")
21
23
  else:
22
- print(f"Failed to open Anki note with ID {note_id}")
24
+ logger.error(f"Failed to open Anki note with ID {note_id}")
23
25
  except Exception as e:
24
- print(f"Error connecting to AnkiConnect: {e}")
26
+ logger.info(f"Error connecting to AnkiConnect: {e}")
25
27
 
26
28
 
27
29
  def send_notification(tango):
@@ -3,9 +3,9 @@ import time
3
3
 
4
4
  from obswebsocket import obsws, requests
5
5
 
6
- from src import util, configuration
7
- from src.configuration import *
8
- from src.model import *
6
+ from GameSentenceMiner import util, configuration
7
+ from GameSentenceMiner.configuration import *
8
+ from GameSentenceMiner.model import *
9
9
 
10
10
  client: obsws = None
11
11
 
@@ -33,15 +33,7 @@ def start_obs():
33
33
 
34
34
 
35
35
  def get_obs_websocket_config_values():
36
- if platform == "win32":
37
- config_path = os.path.expanduser(r"~\AppData\Roaming\obs-studio\plugin_config\obs-websocket\config.json")
38
- elif platform == "darwin": # macOS
39
- config_path = os.path.expanduser(
40
- "~/Library/Application Support/obs-studio/plugin_config/obs-websocket/config.json")
41
- elif platform == "linux":
42
- config_path = os.path.expanduser("~/.config/obs-studio/plugin_config/obs-websocket/config.json")
43
- else:
44
- raise Exception("Unsupported operating system.")
36
+ config_path = os.path.join(get_app_directory(), 'obs-studio', 'config', 'obs-studio', 'plugin_config', 'obs-websocket', 'config.json')
45
37
 
46
38
  # Check if config file exists
47
39
  if not os.path.isfile(config_path):
@@ -111,9 +103,9 @@ def disconnect_from_obs():
111
103
  def toggle_replay_buffer():
112
104
  try:
113
105
  client.call(requests.ToggleReplayBuffer())
114
- print("Replay buffer Toggled.")
106
+ logger.info("Replay buffer Toggled.")
115
107
  except Exception as e:
116
- print(f"Error toggling buffer: {e}")
108
+ logger.error(f"Error toggling buffer: {e}")
117
109
 
118
110
 
119
111
  # Start replay buffer
@@ -122,16 +114,16 @@ def start_replay_buffer():
122
114
  client.call(requests.GetVersion())
123
115
  client.call(requests.StartReplayBuffer())
124
116
  except Exception as e:
125
- print(f"Error starting replay buffer: {e}")
117
+ logger.error(f"Error starting replay buffer: {e}")
126
118
 
127
119
 
128
120
  # Stop replay buffer
129
121
  def stop_replay_buffer():
130
122
  try:
131
123
  client.call(requests.StopReplayBuffer())
132
- print("Replay buffer stopped.")
124
+ logger.error("Replay buffer stopped.")
133
125
  except Exception as e:
134
- print(f"Error stopping replay buffer: {e}")
126
+ logger.error(f"Error stopping replay buffer: {e}")
135
127
 
136
128
 
137
129
  # Save the current replay buffer
@@ -144,7 +136,7 @@ def save_replay_buffer():
144
136
  else:
145
137
  logger.error("Replay Buffer is not active, could not save Replay Buffer!")
146
138
  except Exception as e:
147
- print(f"Error saving replay buffer: {e}")
139
+ logger.error(f"Error saving replay buffer: {e}")
148
140
 
149
141
 
150
142
  def get_current_scene():
@@ -153,7 +145,7 @@ def get_current_scene():
153
145
  scene_info = SceneInfo.from_dict(response.datain)
154
146
  return scene_info.sceneName
155
147
  except Exception as e:
156
- print(f"Couldn't get scene: {e}")
148
+ logger.error(f"Couldn't get scene: {e}")
157
149
  return ''
158
150
 
159
151
 
@@ -161,10 +153,9 @@ def get_source_from_scene(scene_name):
161
153
  try:
162
154
  response = client.call(requests.GetSceneItemList(sceneName=scene_name))
163
155
  scene_list = SceneItemsResponse.from_dict(response.datain)
164
- print(scene_list)
165
156
  return scene_list.sceneItems[0]
166
157
  except Exception as e:
167
- print(f"Error getting source from scene: {e}")
158
+ logger.error(f"Error getting source from scene: {e}")
168
159
  return ''
169
160
 
170
161
 
@@ -176,13 +167,13 @@ def get_screenshot():
176
167
  current_source = get_source_from_scene(get_current_game())
177
168
  current_source_name = current_source.sourceName
178
169
  if not current_source_name:
179
- print("No active scene found.")
170
+ logger.error("No active scene found.")
180
171
  return
181
172
  client.call(
182
173
  requests.SaveSourceScreenshot(sourceName=current_source_name, imageFormat='png', imageFilePath=screenshot))
183
174
  return screenshot
184
175
  except Exception as e:
185
- print(f"Error getting screenshot: {e}")
176
+ logger.error(f"Error getting screenshot: {e}")
186
177
 
187
178
 
188
179
  def update_current_game():
@@ -5,7 +5,7 @@ import sys
5
5
  import pyperclip
6
6
  import requests
7
7
 
8
- from src.configuration import logger, get_app_directory
8
+ from GameSentenceMiner.configuration import logger, get_app_directory
9
9
 
10
10
  PACKAGE_NAME = "GameSentenceMiner"
11
11
  VERSION_FILE_PATH = os.path.join(get_app_directory(), 'version.txt')
@@ -9,6 +9,8 @@ from sys import platform
9
9
 
10
10
  from rapidfuzz import process
11
11
 
12
+ from GameSentenceMiner.configuration import logger
13
+
12
14
  SCRIPTS_DIR = r"E:\Japanese Stuff\agent-v0.1.4-win32-x64\data\scripts"
13
15
 
14
16
  # Global variables to control script execution
@@ -56,7 +58,7 @@ def get_file_modification_time(file_path):
56
58
  def get_process_id_by_title(game_title):
57
59
  powershell_command = f"Get-Process | Where-Object {{$_.MainWindowTitle -like '*{game_title}*'}} | Select-Object -First 1 -ExpandProperty Id"
58
60
  process_id = subprocess.check_output(["powershell", "-Command", powershell_command], text=True).strip()
59
- print(f"Process ID for {game_title}: {process_id}")
61
+ logger.info(f"Process ID for {game_title}: {process_id}")
60
62
  return process_id
61
63
 
62
64
 
@@ -100,22 +102,23 @@ def find_script_for_game(game_title):
100
102
 
101
103
  best_script, matched_game_name, confidence = find_most_similar_script(game_title, steam_scripts)
102
104
 
105
+
103
106
  if best_script:
104
- print(f"Found Script: {best_script}")
107
+ logger.info(f"Found Script: {best_script}")
105
108
  return best_script
106
109
  else:
107
- print("No similar script found.")
110
+ logger.warning("No similar script found.")
108
111
 
109
112
 
110
113
  def run_agent_and_hook(pname, agent_script):
111
114
  command = f'agent --script=\"{agent_script}\" --pname={pname}'
112
- print("Running and Hooking Agent!")
115
+ logger.info("Running and Hooking Agent!")
113
116
  try:
114
117
  dos_process = subprocess.Popen(command, shell=True)
115
118
  dos_process.wait() # Wait for the process to complete
116
- print("Agent script finished or closed.")
119
+ logger.info("Agent script finished or closed.")
117
120
  except Exception as e:
118
- print(f"Error occurred while running agent script: {e}")
121
+ logger.error(f"Error occurred while running agent script: {e}")
119
122
 
120
123
  keep_running = False
121
124
 
@@ -2,8 +2,8 @@ import tempfile
2
2
 
3
3
  from silero_vad import load_silero_vad, read_audio, get_speech_timestamps
4
4
 
5
- from src import configuration, ffmpeg
6
- from src.configuration import *
5
+ from GameSentenceMiner import configuration, ffmpeg
6
+ from GameSentenceMiner.configuration import *
7
7
 
8
8
  # Silero VAD setup
9
9
  vad_model = load_silero_vad()
@@ -7,8 +7,8 @@ import requests
7
7
  import soundfile as sf
8
8
  import vosk
9
9
 
10
- from src import configuration, ffmpeg
11
- from src.configuration import *
10
+ from GameSentenceMiner import configuration, ffmpeg
11
+ from GameSentenceMiner.configuration import *
12
12
 
13
13
  ffmpeg_base_command_list = ["ffmpeg", "-hide_banner", "-loglevel", "error"]
14
14
  vosk.SetLogLevel(-1)
@@ -4,8 +4,8 @@ import warnings
4
4
  import stable_whisper as whisper
5
5
  from stable_whisper import WhisperResult
6
6
 
7
- from src import configuration, ffmpeg
8
- from src.configuration import *
7
+ from GameSentenceMiner import configuration, ffmpeg
8
+ from GameSentenceMiner.configuration import *
9
9
 
10
10
  ffmpeg_base_command_list = ["ffmpeg", "-hide_banner", "-loglevel", "error"]
11
11
  whisper_model = None