GameSentenceMiner 2.9.25__py3-none-any.whl → 2.9.26__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/vad.py +18 -7
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/METADATA +1 -1
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/RECORD +7 -7
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.9.25.dist-info → gamesentenceminer-2.9.26.dist-info}/top_level.txt +0 -0
GameSentenceMiner/vad.py
CHANGED
@@ -93,15 +93,26 @@ class VADProcessor(ABC):
|
|
93
93
|
return float(result.stdout.strip())
|
94
94
|
|
95
95
|
@staticmethod
|
96
|
-
def extract_audio_and_combine_segments(input_audio, segments, output_audio, padding=0.
|
96
|
+
def extract_audio_and_combine_segments(input_audio, segments, output_audio, padding=0.1):
|
97
97
|
files = []
|
98
98
|
ffmpeg_threads = []
|
99
99
|
logger.info(f"Extracting {len(segments)} segments from {input_audio} with padding {padding} seconds.")
|
100
|
-
|
100
|
+
|
101
|
+
current_start = None
|
102
|
+
for i in range(len(segments)):
|
103
|
+
segment = segments[i]
|
101
104
|
logger.info(segment)
|
102
|
-
|
105
|
+
if i < len(segments) - 1 and (segments[i + 1]['start'] - segment['end']) < padding * 2:
|
106
|
+
logger.info(f"Adjusting segment {segments[i + 1]} due to insufficient padding.")
|
107
|
+
current_start = segment['start'] if current_start is None else current_start
|
108
|
+
continue
|
109
|
+
temp_file = make_unique_file_name(
|
110
|
+
os.path.join(get_temporary_directory(), "segment." + get_config().audio.extension))
|
103
111
|
files.append(temp_file)
|
104
|
-
ffmpeg_threads.append(run_new_thread(
|
112
|
+
ffmpeg_threads.append(run_new_thread(
|
113
|
+
lambda: ffmpeg.trim_audio(input_audio, (current_start if current_start else segment['start']) - padding, segment['end'] + padding, temp_file,
|
114
|
+
trim_beginning=True)))
|
115
|
+
current_start = None
|
105
116
|
time.sleep(0.1) # Small delay to ensure unique file names
|
106
117
|
|
107
118
|
for thread in ffmpeg_threads:
|
@@ -109,8 +120,8 @@ class VADProcessor(ABC):
|
|
109
120
|
|
110
121
|
if len(files) > 1:
|
111
122
|
ffmpeg.combine_audio_files(files, output_audio)
|
112
|
-
|
113
|
-
|
123
|
+
for file in files:
|
124
|
+
os.remove(file)
|
114
125
|
else:
|
115
126
|
shutil.move(files[0], output_audio)
|
116
127
|
|
@@ -361,7 +372,7 @@ class GroqVADProcessor(VADProcessor):
|
|
361
372
|
vad_processor = VADSystem()
|
362
373
|
|
363
374
|
# test_vad = SileroVADProcessor()
|
364
|
-
#
|
375
|
+
# #
|
365
376
|
# if os.path.exists(r"C:\Users\Beangate\GSM\Electron App\test\after_splice.opus"):
|
366
377
|
# os.remove(r"C:\Users\Beangate\GSM\Electron App\test\after_splice.opus")
|
367
378
|
# test_vad.process_audio(r"C:\Users\Beangate\GSM\Electron App\test\before_splice.opus", r"C:\Users\Beangate\GSM\Electron App\test\after_splice.opus", None)
|
@@ -4,7 +4,7 @@ GameSentenceMiner/config_gui.py,sha256=xQXFrDfsjbWxuX0PwGn2jjv0mfRZEZ_MdUU3iMASi
|
|
4
4
|
GameSentenceMiner/gametext.py,sha256=nAwGMQSrmc6sUAw-OAURK2n6MG5Ecm6psJ7YF9q5KTA,6623
|
5
5
|
GameSentenceMiner/gsm.py,sha256=oM4l0UP6_h66AVEZqdIShs264A3LEgmSDTlp-gp048o,24167
|
6
6
|
GameSentenceMiner/obs.py,sha256=YG8LwBf9BTsGbROm_Uq6LhFDSrbf3jgogp78rBbJq94,14728
|
7
|
-
GameSentenceMiner/vad.py,sha256=
|
7
|
+
GameSentenceMiner/vad.py,sha256=PATjcvpxkieaujDtqHBaVyRMkStWbphqmkfBPJeDuOE,16678
|
8
8
|
GameSentenceMiner/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
GameSentenceMiner/ai/ai_prompting.py,sha256=0jBAnngNwmc3dqJiVWe_QRy4Syr-muV-ML2rq0FiUtU,10215
|
10
10
|
GameSentenceMiner/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -61,9 +61,9 @@ GameSentenceMiner/web/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
61
61
|
GameSentenceMiner/web/templates/index.html,sha256=HZKiIjiGJV8PGQ9T2aLDUNSfJn71qOwbYCjbRuSIjpY,213583
|
62
62
|
GameSentenceMiner/web/templates/text_replacements.html,sha256=tV5c8mCaWSt_vKuUpbdbLAzXZ3ATZeDvQ9PnnAfqY0M,8598
|
63
63
|
GameSentenceMiner/web/templates/utility.html,sha256=3flZinKNqUJ7pvrZk6xu__v67z44rXnaK7UTZ303R-8,16946
|
64
|
-
gamesentenceminer-2.9.
|
65
|
-
gamesentenceminer-2.9.
|
66
|
-
gamesentenceminer-2.9.
|
67
|
-
gamesentenceminer-2.9.
|
68
|
-
gamesentenceminer-2.9.
|
69
|
-
gamesentenceminer-2.9.
|
64
|
+
gamesentenceminer-2.9.26.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
65
|
+
gamesentenceminer-2.9.26.dist-info/METADATA,sha256=zzFPI8lHQRvkEfTKNSaWRC5EGiGLxzk1jsE1KzgvZX8,7276
|
66
|
+
gamesentenceminer-2.9.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
67
|
+
gamesentenceminer-2.9.26.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
|
68
|
+
gamesentenceminer-2.9.26.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
|
69
|
+
gamesentenceminer-2.9.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|