neverlib 0.2.6__py3-none-any.whl → 0.2.8__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.
- neverlib/.claude/settings.local.json +9 -0
- neverlib/Docs/audio_aug/test_volume.ipynb +416 -0
- neverlib/Docs/audio_aug_test/test_volume.ipynb +289 -0
- neverlib/Docs/filter/biquad.ipynb +129 -0
- neverlib/Docs/filter/filter_family.ipynb +450 -0
- neverlib/Docs/filter/highpass.ipynb +139 -0
- neverlib/Docs/filter/scipy_filter_family.ipynb +110 -0
- neverlib/Docs/vad/VAD_Energy.ipynb +167 -0
- neverlib/Docs/vad/VAD_Silero.ipynb +325 -0
- neverlib/Docs/vad/VAD_WebRTC.ipynb +189 -0
- neverlib/Docs/vad/VAD_funasr.ipynb +192 -0
- neverlib/Docs/vad/VAD_rvADfast.ipynb +162 -0
- neverlib/Docs/vad/VAD_statistics.ipynb +532 -0
- neverlib/Docs/vad/VAD_tenVAD.ipynb +292 -0
- neverlib/Docs/vad/VAD_vadlib.ipynb +168 -0
- neverlib/Docs/vad/VAD_whisper.ipynb +404 -0
- neverlib/QA/gen_init.py +218 -0
- neverlib/QA/get_fun.py +19 -0
- neverlib/__init__.py +40 -4
- neverlib/audio_aug/HarmonicDistortion.py +19 -13
- neverlib/audio_aug/__init__.py +82 -12
- neverlib/audio_aug/audio_aug.py +19 -14
- neverlib/audio_aug/clip_aug.py +15 -18
- neverlib/audio_aug/coder_aug.py +44 -24
- neverlib/audio_aug/coder_aug2.py +54 -37
- neverlib/audio_aug/loss_packet_aug.py +7 -7
- neverlib/audio_aug/quant_aug.py +19 -17
- neverlib/data/000_short_enhance.wav +0 -0
- neverlib/data/3956_speech.wav +0 -0
- neverlib/data/3956_sweep.wav +0 -0
- neverlib/data/vad_example.wav +0 -0
- neverlib/data/white.wav +0 -0
- neverlib/data/white_EQ.wav +0 -0
- neverlib/data/white_matched.wav +0 -0
- neverlib/data_analyze/__init__.py +69 -20
- neverlib/data_analyze/dataset_analyzer.py +109 -114
- neverlib/data_analyze/quality_metrics.py +87 -89
- neverlib/data_analyze/rms_distrubution.py +23 -42
- neverlib/data_analyze/spectral_analysis.py +43 -46
- neverlib/data_analyze/statistics.py +76 -76
- neverlib/data_analyze/temporal_features.py +15 -6
- neverlib/data_analyze/visualization.py +208 -144
- neverlib/filter/__init__.py +40 -20
- neverlib/filter/auto_eq/__init__.py +50 -31
- neverlib/filter/auto_eq/de_eq.py +0 -2
- neverlib/filter/common.py +24 -5
- neverlib/metrics/DNSMOS/bak_ovr.onnx +0 -0
- neverlib/metrics/DNSMOS/model_v8.onnx +0 -0
- neverlib/metrics/DNSMOS/sig.onnx +0 -0
- neverlib/metrics/DNSMOS/sig_bak_ovr.onnx +0 -0
- neverlib/metrics/__init__.py +59 -0
- neverlib/metrics/dnsmos.py +4 -15
- neverlib/metrics/pDNSMOS/sig_bak_ovr.onnx +0 -0
- neverlib/metrics/pesq_c/PESQ +0 -0
- neverlib/metrics/pesq_c/dsp.c +553 -0
- neverlib/metrics/pesq_c/dsp.h +138 -0
- neverlib/metrics/pesq_c/pesq.h +294 -0
- neverlib/metrics/pesq_c/pesqdsp.c +1047 -0
- neverlib/metrics/pesq_c/pesqio.c +392 -0
- neverlib/metrics/pesq_c/pesqmain.c +610 -0
- neverlib/metrics/pesq_c/pesqmod.c +1417 -0
- neverlib/metrics/pesq_c/pesqpar.h +297 -0
- neverlib/metrics/snr.py +5 -1
- neverlib/metrics/spec.py +31 -21
- neverlib/metrics/test_pesq.py +0 -4
- neverlib/tests/__init__.py +33 -1
- neverlib/tests/test_imports.py +19 -0
- neverlib/utils/__init__.py +71 -15
- neverlib/utils/audio_split.py +6 -1
- neverlib/utils/checkGPU.py +17 -9
- neverlib/utils/lazy_expose.py +29 -0
- neverlib/utils/utils.py +55 -12
- neverlib/vad/PreProcess.py +66 -66
- neverlib/vad/__init__.py +71 -25
- neverlib/vad/class_get_speech.py +1 -1
- neverlib/vad/class_vad.py +3 -3
- neverlib/vad/img.png +0 -0
- {neverlib-0.2.6.dist-info → neverlib-0.2.8.dist-info}/METADATA +1 -1
- {neverlib-0.2.6.dist-info → neverlib-0.2.8.dist-info}/RECORD +82 -39
- {neverlib-0.2.6.dist-info → neverlib-0.2.8.dist-info}/WHEEL +0 -0
- {neverlib-0.2.6.dist-info → neverlib-0.2.8.dist-info}/licenses/LICENSE +0 -0
- {neverlib-0.2.6.dist-info → neverlib-0.2.8.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from lazy_loader import attach
|
|
2
|
+
import importlib
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def attach_and_expose_all(pkg_name: str, g: dict, submodules, submod_attrs=None):
|
|
6
|
+
submod_attrs = submod_attrs or {}
|
|
7
|
+
_getattr, _dir, _all = attach(pkg_name, submodules=submodules, submod_attrs=submod_attrs)
|
|
8
|
+
_all_set = set(_all)
|
|
9
|
+
|
|
10
|
+
def __getattr__(name: str):
|
|
11
|
+
try:
|
|
12
|
+
return _getattr(name)
|
|
13
|
+
except AttributeError:
|
|
14
|
+
for mod in submodules:
|
|
15
|
+
m = importlib.import_module(f"{pkg_name}.{mod}")
|
|
16
|
+
if hasattr(m, name) and not name.startswith("_"):
|
|
17
|
+
obj = getattr(m, name)
|
|
18
|
+
g[name] = obj
|
|
19
|
+
_all_set.add(name)
|
|
20
|
+
return obj
|
|
21
|
+
raise
|
|
22
|
+
|
|
23
|
+
def __dir__():
|
|
24
|
+
# 避免为补全而导入所有子模块,保持冷启动轻量
|
|
25
|
+
# 仅返回 attach 提供的名称 + 已经懒暴露过的名称
|
|
26
|
+
return sorted(set(_dir()) | _all_set)
|
|
27
|
+
|
|
28
|
+
g["__all__"] = sorted(_all_set)
|
|
29
|
+
return __getattr__, __dir__, g["__all__"]
|
neverlib/utils/utils.py
CHANGED
|
@@ -12,6 +12,7 @@ from tqdm import tqdm
|
|
|
12
12
|
from datetime import datetime
|
|
13
13
|
import soundfile as sf
|
|
14
14
|
import numpy as np
|
|
15
|
+
|
|
15
16
|
EPS = np.finfo(float).eps
|
|
16
17
|
|
|
17
18
|
|
|
@@ -28,7 +29,10 @@ def get_path_list(source_path, end="*.wav", shuffle=False):
|
|
|
28
29
|
return wav_list
|
|
29
30
|
|
|
30
31
|
|
|
31
|
-
def get_audio_segments(sentence_len,
|
|
32
|
+
def get_audio_segments(sentence_len,
|
|
33
|
+
wav_path_list,
|
|
34
|
+
sr=16000,
|
|
35
|
+
insert_silence=None):
|
|
32
36
|
"""
|
|
33
37
|
从音频列表中随机拼接指定长度音频
|
|
34
38
|
Args:
|
|
@@ -102,7 +106,8 @@ def TrainValSplit(dataset_dir, train_dir, val_dir, percentage=0.9):
|
|
|
102
106
|
total_wav_num = len(wav_path_list)
|
|
103
107
|
# 计算训练集和验证集的分割点
|
|
104
108
|
split_idx = int(total_wav_num * percentage)
|
|
105
|
-
train_path_list, val_path_list = wav_path_list[:split_idx], wav_path_list[
|
|
109
|
+
train_path_list, val_path_list = wav_path_list[:split_idx], wav_path_list[
|
|
110
|
+
split_idx:]
|
|
106
111
|
|
|
107
112
|
for train_wavpath in tqdm(train_path_list, desc="Copying train wav"):
|
|
108
113
|
target_path = train_wavpath.replace(dataset_dir, train_dir)
|
|
@@ -119,7 +124,11 @@ def TrainValSplit(dataset_dir, train_dir, val_dir, percentage=0.9):
|
|
|
119
124
|
print("Done!")
|
|
120
125
|
|
|
121
126
|
|
|
122
|
-
def TrainValTestSplit(dataset_dir,
|
|
127
|
+
def TrainValTestSplit(dataset_dir,
|
|
128
|
+
train_dir,
|
|
129
|
+
val_dir,
|
|
130
|
+
test_dir,
|
|
131
|
+
percentage=[0.8, 0.1, 0.1]):
|
|
123
132
|
""" 分割数据集为训练集、验证集和测试集
|
|
124
133
|
:param dataset_dir: 源数据集地址
|
|
125
134
|
:param train_dir: 训练集地址
|
|
@@ -160,7 +169,9 @@ def TrainValTestSplit(dataset_dir, train_dir, val_dir, test_dir, percentage=[0.8
|
|
|
160
169
|
os.makedirs(os.path.split(target_path)[0])
|
|
161
170
|
shutil.copy(test_wavpath, target_path)
|
|
162
171
|
|
|
163
|
-
print(
|
|
172
|
+
print(
|
|
173
|
+
f"完成! 训练集: {len(train_path_list)}个文件, 验证集: {len(val_path_list)}个文件, 测试集: {len(test_path_list)}个文件"
|
|
174
|
+
)
|
|
164
175
|
|
|
165
176
|
|
|
166
177
|
def get_leaf_folders(directory):
|
|
@@ -178,7 +189,10 @@ def del_empty_folders(path):
|
|
|
178
189
|
return
|
|
179
190
|
|
|
180
191
|
# 获取子文件夹
|
|
181
|
-
subfolders = [
|
|
192
|
+
subfolders = [
|
|
193
|
+
os.path.join(path, d) for d in os.listdir(path)
|
|
194
|
+
if os.path.isdir(os.path.join(path, d))
|
|
195
|
+
]
|
|
182
196
|
|
|
183
197
|
# 递归处理子文件夹
|
|
184
198
|
for subfolder in subfolders:
|
|
@@ -254,7 +268,8 @@ def DatasetSubfloderSplit(source_dir, split_dirs, percentage=None):
|
|
|
254
268
|
|
|
255
269
|
# 复制文件夹
|
|
256
270
|
split_names = ['train', 'val', 'test']
|
|
257
|
-
for folders, target_dir, split_name in zip(split_folder_lists, split_dirs,
|
|
271
|
+
for folders, target_dir, split_name in zip(split_folder_lists, split_dirs,
|
|
272
|
+
split_names[:len(split_dirs)]):
|
|
258
273
|
for folder in tqdm(folders, desc=f"Copying {split_name} folders"):
|
|
259
274
|
target_folder = folder.replace(source_dir, target_dir)
|
|
260
275
|
os.makedirs(os.path.dirname(target_folder), exist_ok=True)
|
|
@@ -262,7 +277,8 @@ def DatasetSubfloderSplit(source_dir, split_dirs, percentage=None):
|
|
|
262
277
|
|
|
263
278
|
# 打印统计信息
|
|
264
279
|
print(f"Total folders: {total_folder_num}")
|
|
265
|
-
for folders, split_name in zip(split_folder_lists,
|
|
280
|
+
for folders, split_name in zip(split_folder_lists,
|
|
281
|
+
split_names[:len(split_dirs)]):
|
|
266
282
|
print(f"{split_name.capitalize()} folders: {len(folders)}")
|
|
267
283
|
|
|
268
284
|
|
|
@@ -290,7 +306,11 @@ def wav2pcm(wav_path, pcm_path):
|
|
|
290
306
|
data.tofile(pcm_path)
|
|
291
307
|
|
|
292
308
|
|
|
293
|
-
def save_weight_histogram(model,
|
|
309
|
+
def save_weight_histogram(model,
|
|
310
|
+
save_dir,
|
|
311
|
+
mode=["params", "buffers"],
|
|
312
|
+
ignore_name=["scale", "bias"],
|
|
313
|
+
bins=100):
|
|
294
314
|
"""
|
|
295
315
|
保存模型权重分布直方图
|
|
296
316
|
Args:
|
|
@@ -322,11 +342,15 @@ def save_weight_histogram(model, save_dir, mode=["params", "buffers"], ignore_na
|
|
|
322
342
|
plt.ylabel("count")
|
|
323
343
|
plt.grid(alpha=0.5)
|
|
324
344
|
# 在右上角添加统计信息
|
|
325
|
-
plt.text(1,
|
|
345
|
+
plt.text(1,
|
|
346
|
+
1,
|
|
347
|
+
f"max: {param_max:.2f}\n \
|
|
326
348
|
min: {param_min:.2f}\n \
|
|
327
349
|
mean: {param_mean:.2f}\n \
|
|
328
350
|
std: {param_std:.2f}",
|
|
329
|
-
ha='right',
|
|
351
|
+
ha='right',
|
|
352
|
+
va='top',
|
|
353
|
+
transform=plt.gca().transAxes)
|
|
330
354
|
plt.hist(param, bins=bins)
|
|
331
355
|
plt.savefig(os.path.join(save_dir, "param", f"{name}.png"))
|
|
332
356
|
plt.close()
|
|
@@ -349,11 +373,30 @@ def save_weight_histogram(model, save_dir, mode=["params", "buffers"], ignore_na
|
|
|
349
373
|
plt.ylabel("count")
|
|
350
374
|
plt.grid(alpha=0.5)
|
|
351
375
|
# 在右上角添加统计信息
|
|
352
|
-
plt.text(1,
|
|
376
|
+
plt.text(1,
|
|
377
|
+
1,
|
|
378
|
+
f"max: {buffer_max:.2f}\n \
|
|
353
379
|
min: {buffer_min:.2f}\n \
|
|
354
380
|
mean: {buffer_mean:.2f}\n \
|
|
355
381
|
std: {buffer_std:.2f}",
|
|
356
|
-
ha='right',
|
|
382
|
+
ha='right',
|
|
383
|
+
va='top',
|
|
384
|
+
transform=plt.gca().transAxes)
|
|
357
385
|
plt.hist(buffer, bins=bins)
|
|
358
386
|
plt.savefig(os.path.join(save_dir, "buffer", f"{name}.png"))
|
|
359
387
|
plt.close()
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
def read_pcm(file_path, channels=5, sample_rate=16000, sample_width=2):
|
|
391
|
+
# Read raw binary data from the PCM file
|
|
392
|
+
with open(file_path, 'rb') as f:
|
|
393
|
+
raw_data = f.read()
|
|
394
|
+
|
|
395
|
+
# Convert binary data to numpy array of the correct dtype
|
|
396
|
+
audio_data = np.frombuffer(raw_data, dtype=np.int16)
|
|
397
|
+
|
|
398
|
+
# Reshape the data into a 2D array with shape (num_frames, channels)
|
|
399
|
+
num_frames = len(audio_data) // channels
|
|
400
|
+
audio_data = audio_data.reshape((num_frames, channels))
|
|
401
|
+
|
|
402
|
+
return audio_data
|
neverlib/vad/PreProcess.py
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
'''
|
|
2
|
-
Author: 凌逆战 | Never
|
|
3
|
-
Date: 2025-02-13 20:06:07
|
|
4
|
-
LastEditTime: 2025-08-16 02:07:24
|
|
5
|
-
FilePath:
|
|
6
|
-
Description:
|
|
7
|
-
'''
|
|
8
|
-
# -*- coding:utf-8 -*-
|
|
9
|
-
# Author:凌逆战 | Never
|
|
10
|
-
# Date: 2024/9/14
|
|
11
|
-
"""
|
|
12
|
-
通过一些预处理方法, 来提高VAD的准确率
|
|
13
|
-
"""
|
|
14
|
-
import numpy as np
|
|
15
|
-
import noisereduce as nr
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def pre_emphasis(audio_data, alpha=0.97):
|
|
19
|
-
"""
|
|
20
|
-
预加重
|
|
21
|
-
"""
|
|
22
|
-
# y(n)=x(n)−α⋅x(n−1)
|
|
23
|
-
emphasized_audio = np.append(audio_data[0], audio_data[1:] - alpha * audio_data[:-1])
|
|
24
|
-
return emphasized_audio
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def NS(wav, sr=16000, stationary=True, prop_decrease=1.):
|
|
28
|
-
""" 传统降噪 Doc: https://pypi.org/project/noisereduce/
|
|
29
|
-
:param wav: (xxx,) or (channels, xxx)
|
|
30
|
-
:param sr: 采样率
|
|
31
|
-
:param stationary: 平稳降噪还是非平稳降噪
|
|
32
|
-
:param prop_decrease: 0~1, 降噪噪声百分比
|
|
33
|
-
:return:
|
|
34
|
-
"""
|
|
35
|
-
if stationary:
|
|
36
|
-
# 平稳噪声抑制 stationary=True
|
|
37
|
-
reduced_noise = nr.reduce_noise(y=wav, sr=sr, stationary=True,
|
|
38
|
-
prop_decrease=prop_decrease, # 降噪噪声的比例
|
|
39
|
-
)
|
|
40
|
-
else:
|
|
41
|
-
# 非平稳噪声抑制 stationary=False
|
|
42
|
-
reduced_noise = nr.reduce_noise(y=wav, sr=sr, stationary=False,
|
|
43
|
-
prop_decrease=prop_decrease,
|
|
44
|
-
)
|
|
45
|
-
return reduced_noise
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def NS_test():
|
|
49
|
-
import soundfile as sf
|
|
50
|
-
sr = 16000
|
|
51
|
-
wav_path = "../../data/vad_example.wav"
|
|
52
|
-
wav, wav_sr = sf.read(wav_path, always_2d=False, dtype="float32")
|
|
53
|
-
wav_NS = NS(wav, sr=sr, stationary=True, prop_decrease=0.6)
|
|
54
|
-
sf.write("../../wav_data/000_short_NS.wav", wav_NS, samplerate=sr)
|
|
55
|
-
|
|
56
|
-
# 绘制降噪后的频谱图
|
|
57
|
-
import matplotlib.pyplot as plt
|
|
58
|
-
plt.subplot(211)
|
|
59
|
-
plt.specgram(wav, Fs=sr, scale_by_freq=True, sides='default', cmap="jet")
|
|
60
|
-
plt.subplot(212)
|
|
61
|
-
plt.specgram(wav_NS, Fs=sr, scale_by_freq=True, sides='default', cmap="jet")
|
|
62
|
-
plt.show()
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if __name__ == "__main__":
|
|
66
|
-
NS_test()
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-02-13 20:06:07
|
|
4
|
+
LastEditTime: 2025-08-16 02:07:24
|
|
5
|
+
FilePath: \\neverlib\\vad\\PreProcess.py
|
|
6
|
+
Description:
|
|
7
|
+
'''
|
|
8
|
+
# -*- coding:utf-8 -*-
|
|
9
|
+
# Author:凌逆战 | Never
|
|
10
|
+
# Date: 2024/9/14
|
|
11
|
+
"""
|
|
12
|
+
通过一些预处理方法, 来提高VAD的准确率
|
|
13
|
+
"""
|
|
14
|
+
import numpy as np
|
|
15
|
+
import noisereduce as nr
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def pre_emphasis(audio_data, alpha=0.97):
|
|
19
|
+
"""
|
|
20
|
+
预加重
|
|
21
|
+
"""
|
|
22
|
+
# y(n)=x(n)−α⋅x(n−1)
|
|
23
|
+
emphasized_audio = np.append(audio_data[0], audio_data[1:] - alpha * audio_data[:-1])
|
|
24
|
+
return emphasized_audio
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def NS(wav, sr=16000, stationary=True, prop_decrease=1.):
|
|
28
|
+
""" 传统降噪 Doc: https://pypi.org/project/noisereduce/
|
|
29
|
+
:param wav: (xxx,) or (channels, xxx)
|
|
30
|
+
:param sr: 采样率
|
|
31
|
+
:param stationary: 平稳降噪还是非平稳降噪
|
|
32
|
+
:param prop_decrease: 0~1, 降噪噪声百分比
|
|
33
|
+
:return:
|
|
34
|
+
"""
|
|
35
|
+
if stationary:
|
|
36
|
+
# 平稳噪声抑制 stationary=True
|
|
37
|
+
reduced_noise = nr.reduce_noise(y=wav, sr=sr, stationary=True,
|
|
38
|
+
prop_decrease=prop_decrease, # 降噪噪声的比例
|
|
39
|
+
)
|
|
40
|
+
else:
|
|
41
|
+
# 非平稳噪声抑制 stationary=False
|
|
42
|
+
reduced_noise = nr.reduce_noise(y=wav, sr=sr, stationary=False,
|
|
43
|
+
prop_decrease=prop_decrease,
|
|
44
|
+
)
|
|
45
|
+
return reduced_noise
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def NS_test():
|
|
49
|
+
import soundfile as sf
|
|
50
|
+
sr = 16000
|
|
51
|
+
wav_path = "../../data/vad_example.wav"
|
|
52
|
+
wav, wav_sr = sf.read(wav_path, always_2d=False, dtype="float32")
|
|
53
|
+
wav_NS = NS(wav, sr=sr, stationary=True, prop_decrease=0.6)
|
|
54
|
+
sf.write("../../wav_data/000_short_NS.wav", wav_NS, samplerate=sr)
|
|
55
|
+
|
|
56
|
+
# 绘制降噪后的频谱图
|
|
57
|
+
import matplotlib.pyplot as plt
|
|
58
|
+
plt.subplot(211)
|
|
59
|
+
plt.specgram(wav, Fs=sr, scale_by_freq=True, sides='default', cmap="jet")
|
|
60
|
+
plt.subplot(212)
|
|
61
|
+
plt.specgram(wav_NS, Fs=sr, scale_by_freq=True, sides='default', cmap="jet")
|
|
62
|
+
plt.show()
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
if __name__ == "__main__":
|
|
66
|
+
NS_test()
|
neverlib/vad/__init__.py
CHANGED
|
@@ -1,25 +1,71 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
from
|
|
9
|
-
|
|
10
|
-
from
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
1
|
+
# This file is auto-generated. Do NOT edit manually.
|
|
2
|
+
# Generated by neverlib.QA.gen_init
|
|
3
|
+
|
|
4
|
+
from typing import TYPE_CHECKING, Any
|
|
5
|
+
|
|
6
|
+
if TYPE_CHECKING:
|
|
7
|
+
# 仅在类型检查时导入,提供IDE补全支持
|
|
8
|
+
from .PreProcess import NS, NS_test, pre_emphasis
|
|
9
|
+
from .VAD_Energy import EnergyVad_C
|
|
10
|
+
from .VAD_Silero import Silero_VAD_C
|
|
11
|
+
from .VAD_WebRTC import WebRTC_VAD_C
|
|
12
|
+
from .VAD_funasr import FunASR_VAD_C
|
|
13
|
+
from .VAD_statistics import Statistics_VAD
|
|
14
|
+
from .VAD_vadlib import Vadlib_C
|
|
15
|
+
from .VAD_whisper import Whisper_VAD_C
|
|
16
|
+
from .class_get_speech import getSpeech
|
|
17
|
+
from .class_vad import VADClass
|
|
18
|
+
from .utils import from_vadArray_to_vadEndpoint, vad2nad, vad_smooth
|
|
19
|
+
|
|
20
|
+
# 运行时使用懒加载
|
|
21
|
+
from lazy_loader import attach
|
|
22
|
+
|
|
23
|
+
__getattr__, __dir__, __all__ = attach(
|
|
24
|
+
__name__,
|
|
25
|
+
submodules=[
|
|
26
|
+
"PreProcess",
|
|
27
|
+
"VAD_Energy",
|
|
28
|
+
"VAD_Silero",
|
|
29
|
+
"VAD_WebRTC",
|
|
30
|
+
"VAD_funasr",
|
|
31
|
+
"VAD_statistics",
|
|
32
|
+
"VAD_vadlib",
|
|
33
|
+
"VAD_whisper",
|
|
34
|
+
"class_get_speech",
|
|
35
|
+
"class_vad",
|
|
36
|
+
"utils",
|
|
37
|
+
],
|
|
38
|
+
submod_attrs={
|
|
39
|
+
"PreProcess": ['NS', 'NS_test', 'pre_emphasis'],
|
|
40
|
+
"VAD_Energy": ['EnergyVad_C'],
|
|
41
|
+
"VAD_Silero": ['Silero_VAD_C'],
|
|
42
|
+
"VAD_WebRTC": ['WebRTC_VAD_C'],
|
|
43
|
+
"VAD_funasr": ['FunASR_VAD_C'],
|
|
44
|
+
"VAD_statistics": ['Statistics_VAD'],
|
|
45
|
+
"VAD_vadlib": ['Vadlib_C'],
|
|
46
|
+
"VAD_whisper": ['Whisper_VAD_C'],
|
|
47
|
+
"class_get_speech": ['getSpeech'],
|
|
48
|
+
"class_vad": ['VADClass'],
|
|
49
|
+
"utils": ['from_vadArray_to_vadEndpoint', 'vad2nad', 'vad_smooth'],
|
|
50
|
+
}
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
# 显式声明 __all__ 以便 IDE 识别
|
|
54
|
+
if TYPE_CHECKING:
|
|
55
|
+
__all__ = [
|
|
56
|
+
'NS',
|
|
57
|
+
'NS_test',
|
|
58
|
+
'pre_emphasis',
|
|
59
|
+
'EnergyVad_C',
|
|
60
|
+
'Silero_VAD_C',
|
|
61
|
+
'WebRTC_VAD_C',
|
|
62
|
+
'FunASR_VAD_C',
|
|
63
|
+
'Statistics_VAD',
|
|
64
|
+
'Vadlib_C',
|
|
65
|
+
'Whisper_VAD_C',
|
|
66
|
+
'getSpeech',
|
|
67
|
+
'VADClass',
|
|
68
|
+
'from_vadArray_to_vadEndpoint',
|
|
69
|
+
'vad2nad',
|
|
70
|
+
'vad_smooth',
|
|
71
|
+
]
|
neverlib/vad/class_get_speech.py
CHANGED
neverlib/vad/class_vad.py
CHANGED
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
一个包含众多VAD方法的类
|
|
6
6
|
来源参考README
|
|
7
7
|
"""
|
|
8
|
-
import numpy as np
|
|
9
|
-
import soundfile as sf
|
|
10
8
|
import torch
|
|
9
|
+
import soundfile as sf
|
|
11
10
|
|
|
12
11
|
|
|
13
12
|
class VADClass():
|
|
@@ -94,7 +93,8 @@ class VADClass():
|
|
|
94
93
|
timestamps = []
|
|
95
94
|
for chunk in result['chunks']:
|
|
96
95
|
word_start, word_end = chunk['timestamp'][0], chunk['timestamp'][1]
|
|
97
|
-
if word_end == None:
|
|
96
|
+
if word_end == None:
|
|
97
|
+
word_end = len(wav) / self.sr
|
|
98
98
|
timestamps.append({"start": int(word_start * self.sr), "end": int(word_end * self.sr)})
|
|
99
99
|
return timestamps
|
|
100
100
|
|
neverlib/vad/img.png
ADDED
|
Binary file
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
neverlib/__init__.py,sha256=
|
|
1
|
+
neverlib/__init__.py,sha256=Kq_ZWgw8gFiqQIN2gPzXkgti_zXUi2DYx0CD-88ExZU,2048
|
|
2
|
+
neverlib/.claude/settings.local.json,sha256=nBol-eXbiZ3FMr1a7e6ls6CO9nwz5f3quPjEQzMkTyQ,126
|
|
2
3
|
neverlib/.history/__init___20250805234212.py,sha256=RuVTeJiZfStZ12eMlEfTZ8ZjiC5RBaIQFht-bzMWdTs,1158
|
|
3
4
|
neverlib/.history/__init___20250904102635.py,sha256=7G8jWnR8puUua7yvH63_AKM6rWGq0IvwgrincgrEs58,1081
|
|
4
5
|
neverlib/.history/__init___20250904102836.py,sha256=R97n26izUmzFvB1K1e3Z4RA3-g0e6SBt_mI3YfsopO8,1002
|
|
@@ -399,55 +400,96 @@ neverlib/.specstory/history/2025-08-26_11-54Z-oserror-missing-shared-object-file
|
|
|
399
400
|
neverlib/.specstory/history/2025-08-27_08-07Z-完善测试文档的讨论.md,sha256=1QlRvAsGRy11OvTjRbXj1Pd5ndaYku4gZL-yscFghZQ,9812
|
|
400
401
|
neverlib/.specstory/history/2025-08-27_08-29Z-delete-python-file-command.md,sha256=rP1_LF0NhulirxWVgovUTOw7nu57LOg9ze4zMW-m21E,22061
|
|
401
402
|
neverlib/.specstory/history/2025-08-27_09-05Z-在jupyter中播放音频的代码修改.md,sha256=87oxKHccYOlALgF9L7WW860Cjb_xjToCxDzAG4CXuQg,11587
|
|
403
|
+
neverlib/Docs/audio_aug/test_volume.ipynb,sha256=K2qXRe8Md8rfiKsOhsGqAuEzxj2EPvAdRGaXDl0YrYY,18375
|
|
402
404
|
neverlib/Docs/audio_aug_test/test_snr.py,sha256=1BRUzTYL37pblvhHNB0ORtrbNyxTFWytAxlJ8CDSwfM,1317
|
|
405
|
+
neverlib/Docs/audio_aug_test/test_volume.ipynb,sha256=ZKDPm7Dr8ooZvO6nItshiVIY7jkh2a5AcmUw4wqsB0k,1843460
|
|
403
406
|
neverlib/Docs/audio_aug_test/test_volume.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
407
|
+
neverlib/Docs/filter/biquad.ipynb,sha256=CRKHXUozpTaZXpdZSBRas3776SONAOUrWbkjYlMbvgY,3091
|
|
408
|
+
neverlib/Docs/filter/filter_family.ipynb,sha256=EgXqDgP52KpdXkU_gPROb6ks5vZPzUVNf9Swrry0RRk,1135214
|
|
409
|
+
neverlib/Docs/filter/highpass.ipynb,sha256=-sT6-xH9zV7mR6wWZ9Jnqt9lbUEajGafbhGvUVY98IY,40181
|
|
410
|
+
neverlib/Docs/filter/scipy_filter_family.ipynb,sha256=dLhf4BG3KF6jlfiPKeq6Rl5DrUnx0jDx74an4J7ktGk,79092
|
|
411
|
+
neverlib/Docs/vad/VAD_Energy.ipynb,sha256=qqw6_YwRGAbMcU2_F-1XXomU-y42HDY9WYCMxQVvD58,317091
|
|
412
|
+
neverlib/Docs/vad/VAD_Silero.ipynb,sha256=LREAdVkgdKW_XB5N6SFkHHCRqTkkQxigWOFH9Vhxops,303837
|
|
413
|
+
neverlib/Docs/vad/VAD_WebRTC.ipynb,sha256=n5lmmFEnrr5ESigMq_yAwTdVz6jaD84fHwEIf5JnOUg,324763
|
|
414
|
+
neverlib/Docs/vad/VAD_funasr.ipynb,sha256=-4KVReX7IqKfufBHk0oTEYNfzaqlJE5mDuYC8TGhv7U,251035
|
|
415
|
+
neverlib/Docs/vad/VAD_rvADfast.ipynb,sha256=YszYIEG_qVUU2hzvbraY4y5fdMToT--50Za1A3IBozc,252432
|
|
416
|
+
neverlib/Docs/vad/VAD_statistics.ipynb,sha256=wT0k_91YUpLLIt6LZMKrjvJLk4kz8g-fZdBvVH07O2k,346246
|
|
417
|
+
neverlib/Docs/vad/VAD_tenVAD.ipynb,sha256=w8oOBVeabW44Fw7TF6CSxIqa3u1gGydoMuWSxE7slaA,351893
|
|
418
|
+
neverlib/Docs/vad/VAD_vadlib.ipynb,sha256=m55oKqOGeMOSgmQlbMkOR6zVh5_Hn6SIocHi6mOtg1k,300998
|
|
419
|
+
neverlib/Docs/vad/VAD_whisper.ipynb,sha256=P78NqxCfwbbEJYQsqA1NV8vpxQxWNxy2lDX85zO_yD4,364207
|
|
420
|
+
neverlib/QA/gen_init.py,sha256=9QysSB2vk1OR9FmuuKcFtShtiJeCTnvvg6RBlxOUcQU,8127
|
|
421
|
+
neverlib/QA/get_fun.py,sha256=-UP2FOm3jB_138ntpbsW0eG1S0tJ0d90NqI6f95ryYg,541
|
|
404
422
|
neverlib/QA/html2markdown.py,sha256=ZiXvpwcJ_QBhIR6aetaMOmktWHtd_F7Ed07Deo3qM4c,669
|
|
405
|
-
neverlib/audio_aug/HarmonicDistortion.py,sha256=
|
|
423
|
+
neverlib/audio_aug/HarmonicDistortion.py,sha256=MqbfcdWJLtl_WGloQYDa6fIB6QCgukYdjoxsj8X03kk,2706
|
|
406
424
|
neverlib/audio_aug/TFDrop.py,sha256=HDLf5qfqMT73-dxKder0v0AT7b0FYsSlexbbh3sL2iM,987
|
|
407
425
|
neverlib/audio_aug/TFMask.py,sha256=Fakx5YTj88bZEdj_w3aH9Z9AhEGzGq01TZcnjF4v4BU,1769
|
|
408
|
-
neverlib/audio_aug/__init__.py,sha256=
|
|
409
|
-
neverlib/audio_aug/audio_aug.py,sha256=
|
|
410
|
-
neverlib/audio_aug/clip_aug.py,sha256=
|
|
411
|
-
neverlib/audio_aug/coder_aug.py,sha256=
|
|
412
|
-
neverlib/audio_aug/coder_aug2.py,sha256=
|
|
413
|
-
neverlib/audio_aug/loss_packet_aug.py,sha256=
|
|
414
|
-
neverlib/audio_aug/quant_aug.py,sha256=
|
|
426
|
+
neverlib/audio_aug/__init__.py,sha256=5mBg5p8aDHvOPlRSmR-ojGhtxaJTFCmCZUltaj2RPAs,3313
|
|
427
|
+
neverlib/audio_aug/audio_aug.py,sha256=5Eqtx_v2RLtNEwh1gTyfqSHBirwz1JCgDrjgt4WYBlY,16674
|
|
428
|
+
neverlib/audio_aug/clip_aug.py,sha256=xZi89AtdOgUpX7W4x4_UiZFeK-oCWktueoWSEAY19hU,1041
|
|
429
|
+
neverlib/audio_aug/coder_aug.py,sha256=1JtNadfUVbOw8Xg3vpp0cTl87HHuDedHZ3zbUZ2fWW0,8347
|
|
430
|
+
neverlib/audio_aug/coder_aug2.py,sha256=wniOuOWb3vLqgi8N-oDEfTHuEtQtWZ5O4HhmUfflIlM,4733
|
|
431
|
+
neverlib/audio_aug/loss_packet_aug.py,sha256=z0H6u4ug6FAd2beVYeUQR24GiDg-dfdeEhOTPpGiMms,4862
|
|
432
|
+
neverlib/audio_aug/quant_aug.py,sha256=yUH28tED-oYJxrD3z4rjitDKM6S1ZDtkHtjM2-NSSZY,2608
|
|
433
|
+
neverlib/data/000_short_enhance.wav,sha256=TUZSjHareIY3BFlgZiDuffzirpxnEKagnQDVwDYLdgk,216356
|
|
434
|
+
neverlib/data/3956_speech.wav,sha256=wehCr85ITMOmkQWi1DnjRzb2ggC-XJUftZ3_9sARvS8,2977476
|
|
435
|
+
neverlib/data/3956_sweep.wav,sha256=DoLnlIkYGSuraIE7nWK4nAvmgGWWW4VuhI7xDoMrLys,813832
|
|
436
|
+
neverlib/data/vad_example.wav,sha256=xvcEvjmdjeZO-1fT7u0m0EuiJAqeXUWjBWewDWd8guY,216812
|
|
437
|
+
neverlib/data/white.wav,sha256=JJ3aaPx8v7WakYU7U--m0kO1qUkDSMOrOrPKi6RqAA0,325086
|
|
438
|
+
neverlib/data/white_EQ.wav,sha256=UN1W0hH_4JInnye9vIsQlagVXM-rnJPd1j7A_RIia8c,325086
|
|
439
|
+
neverlib/data/white_matched.wav,sha256=h9vD-2q1eKw9s8pVUoIeXXjeKEC-VRiNABCY-CYcUQ0,115514
|
|
415
440
|
neverlib/data_analyze/README.md,sha256=jqPmD--kinoTqlcpu51teospu9p_ijjtjLdFGTMnBc8,6051
|
|
416
|
-
neverlib/data_analyze/__init__.py,sha256=
|
|
417
|
-
neverlib/data_analyze/dataset_analyzer.py,sha256=
|
|
418
|
-
neverlib/data_analyze/quality_metrics.py,sha256=
|
|
419
|
-
neverlib/data_analyze/rms_distrubution.py,sha256=
|
|
420
|
-
neverlib/data_analyze/spectral_analysis.py,sha256
|
|
421
|
-
neverlib/data_analyze/statistics.py,sha256=
|
|
422
|
-
neverlib/data_analyze/temporal_features.py,sha256=
|
|
423
|
-
neverlib/data_analyze/visualization.py,sha256=
|
|
441
|
+
neverlib/data_analyze/__init__.py,sha256=3Gl_o2s9OYmy1r7UZLxKZGwwOXJYuQ__F1RM578lvAI,2781
|
|
442
|
+
neverlib/data_analyze/dataset_analyzer.py,sha256=JawpMrahP2YD9mX6kIGJrBRtC7sqYJJdY1R5pGBUDDY,21902
|
|
443
|
+
neverlib/data_analyze/quality_metrics.py,sha256=wOivyQ4JXdyiq1STLCSdBDtoW8Kju-Zc1RZMyPNmNjY,11726
|
|
444
|
+
neverlib/data_analyze/rms_distrubution.py,sha256=EpK9s7WJLtJHXd1xD8SvuiyPVTguouYVHyS7Lha2Qag,1526
|
|
445
|
+
neverlib/data_analyze/spectral_analysis.py,sha256=-QZGSvopovLaSh7OcJLYKFH9YLIp_THXUEV3uOreHz0,5894
|
|
446
|
+
neverlib/data_analyze/statistics.py,sha256=9b9S_7eBoklNfz9cRAs8oWlRnDSjuark4SwTrdFkAGw,12957
|
|
447
|
+
neverlib/data_analyze/temporal_features.py,sha256=qrxA0Uh-DxRPbuILQle66AAgv4SgwiLoPTIR9Q2_Jz4,3065
|
|
448
|
+
neverlib/data_analyze/visualization.py,sha256=kaJBfh1ixlGeVfr4yNRfZlzTvfhbdnIW4LOhbGqwYKM,16439
|
|
424
449
|
neverlib/filter/README.md,sha256=X1VQRnSxzjkeR_16ylbAqRbYLAlf4c5stkHzmWlCzlo,3801
|
|
425
|
-
neverlib/filter/__init__.py,sha256=
|
|
450
|
+
neverlib/filter/__init__.py,sha256=oQJLBqxGpC1T-DmHbcSceY9Ir31VXqknzoRNQRAGChI,1019
|
|
426
451
|
neverlib/filter/biquad.py,sha256=EEGAqGwTQGG5O49Q855hb475WVX0oOu3zq-Gn_ppIto,1438
|
|
427
|
-
neverlib/filter/common.py,sha256=
|
|
452
|
+
neverlib/filter/common.py,sha256=9FD3VKwRpe_IdQujt2AJjlMJ_WR-YNEY8OmhOQUDDO8,1953
|
|
428
453
|
neverlib/filter/core.py,sha256=qr-0IGEEpiSUFgo_uVOXJLLZeaSDFlALzg_b8mEivrY,13091
|
|
429
454
|
neverlib/filter/auto_eq/README.md,sha256=-qcqLxIQPo31YfzABHK-_tcqksLdOTHz8ZG3izz46Ug,4968
|
|
430
|
-
neverlib/filter/auto_eq/__init__.py,sha256=
|
|
431
|
-
neverlib/filter/auto_eq/de_eq.py,sha256=
|
|
455
|
+
neverlib/filter/auto_eq/__init__.py,sha256=RWgAXvBWBDboBxzlPBQJWwQLPctniIAZBXZRQAC_QFw,2190
|
|
456
|
+
neverlib/filter/auto_eq/de_eq.py,sha256=XlbFWDPOdGHI97fbU9wXd4h3Aiosv1T5k_e-VEUcDMQ,16411
|
|
432
457
|
neverlib/filter/auto_eq/freq_eq.py,sha256=1b5hnoqUy1zxVd2WSNqhpokAgJo0xTRwR5AyVPaMr3E,3494
|
|
433
458
|
neverlib/filter/auto_eq/ga_eq_advanced.py,sha256=qu9J5ugWeEAcXboV9Fv1g60bMOkIebw9ZwYT_zQq5pI,23458
|
|
434
459
|
neverlib/filter/auto_eq/ga_eq_basic.py,sha256=gbPqJcimrThzhCjgWkg4DuWpeswRRqxNKMC4I07rp6g,15431
|
|
435
|
-
neverlib/metrics/
|
|
460
|
+
neverlib/metrics/__init__.py,sha256=NCE7SOoA2UXu4aVmiF0oWvvdS9RaqR9tSY7PZjzDNew,1628
|
|
461
|
+
neverlib/metrics/dnsmos.py,sha256=xfrKxYR9mMDkr2HQ7AT_7V-TtdRpy2MybjsJ2AuLXus,4590
|
|
436
462
|
neverlib/metrics/lpc_lsp.py,sha256=OXKfillGKo55M2aa7LzyvDGcjtOxdOJquWgqC1yV4Ho,3710
|
|
437
|
-
neverlib/metrics/snr.py,sha256=
|
|
438
|
-
neverlib/metrics/spec.py,sha256=
|
|
439
|
-
neverlib/metrics/test_pesq.py,sha256=
|
|
463
|
+
neverlib/metrics/snr.py,sha256=l8cYOUuEYeKc5LzQ3q5n4-wql3PcuJfEYcsjBAEQt5w,6360
|
|
464
|
+
neverlib/metrics/spec.py,sha256=OtiHaoHzRuxHtLSS5HVmaisJsD2SPi13T3MphGyeUHc,5442
|
|
465
|
+
neverlib/metrics/test_pesq.py,sha256=nrvd5p3JnMO5jgAuFwmm4rNoZ7riczsB8iFu1Jx8Gxs,1211
|
|
440
466
|
neverlib/metrics/time.py,sha256=MSUdaT3WvFRnL_wvjZEGjwcVrsy7KwArz3hLkYcXF7s,1292
|
|
441
|
-
neverlib/
|
|
467
|
+
neverlib/metrics/DNSMOS/bak_ovr.onnx,sha256=XzNckJlGGBUBkqZWpHS8-KnLztvEeWVJS6jaeWBdEwg,742375
|
|
468
|
+
neverlib/metrics/DNSMOS/model_v8.onnx,sha256=kkZIDFhWe8av_UIAk4537vSUaMi8ftN3bRCcB0VvbpE,224860
|
|
469
|
+
neverlib/metrics/DNSMOS/sig.onnx,sha256=0vvbKTvCNm37rit0d8SQ-YHSSotEBe_TwReHVpxlSdc,742203
|
|
470
|
+
neverlib/metrics/DNSMOS/sig_bak_ovr.onnx,sha256=Jp--vbUTqiPN37tZNULsxUAoSpGEmsUFFocOGsePbt0,1157965
|
|
471
|
+
neverlib/metrics/pDNSMOS/sig_bak_ovr.onnx,sha256=njoZdEnKIXfwmXr-w71riQEXzi8XuJ1u6n-g1HJyyBw,1157962
|
|
472
|
+
neverlib/metrics/pesq_c/PESQ,sha256=f8qbES1y_94XvHgddOpVqOu0aJBym0z2FXvwq1egBGQ,89400
|
|
473
|
+
neverlib/metrics/pesq_c/dsp.c,sha256=N81r8Hdt-xCUW69ALvECknZHThEhah4okjnxIi1T8Ug,15233
|
|
474
|
+
neverlib/metrics/pesq_c/dsp.h,sha256=I1mOP3JsTNqyEdhI3W3FRBAOltDJnJpXG0ShXbVXM2E,5457
|
|
475
|
+
neverlib/metrics/pesq_c/pesq.h,sha256=wkqE2Vf6EB4QnP16c8jXM-cTBO2SVvmc9JiRNvbHLNs,9430
|
|
476
|
+
neverlib/metrics/pesq_c/pesqdsp.c,sha256=YlGSRes0qJgCyPwe1Zb5bShjGQnDzRE08Ecpv5y0A1E,33879
|
|
477
|
+
neverlib/metrics/pesq_c/pesqio.c,sha256=S8PLwBfx0oHHVLfZ1jUsGbwwMniFhHNNV8X6bcUxFYU,12930
|
|
478
|
+
neverlib/metrics/pesq_c/pesqmain.c,sha256=NaANjEDJrCFwJBbXErX51ZKtE86SHKdrXLhS0P3TbT0,27322
|
|
479
|
+
neverlib/metrics/pesq_c/pesqmod.c,sha256=9stYhCLUShFAd6Zc85nQn57RUKDbS2Q8MrhQFB_-ySA,52999
|
|
480
|
+
neverlib/metrics/pesq_c/pesqpar.h,sha256=XZkwXcwycL8ekK6LQy_PT9Ih2K0zirSPHCMhGKyJExs,20986
|
|
481
|
+
neverlib/tests/__init__.py,sha256=kCV9FZWa7j9g_i6bqb-hEq7pvmWmDz2EMnGX15n7YmE,811
|
|
482
|
+
neverlib/tests/test_imports.py,sha256=3LGZaHZLAz2oJq2ewfRbnWNeAKikHih6d9CIdyqhb0E,547
|
|
442
483
|
neverlib/tests/test_preprocess.py,sha256=GHj2PvlG8chJlV-zpRfy8IYlTXzGkn5heO9ipy6Xe20,1003
|
|
443
484
|
neverlib/tests/test_vad.py,sha256=TjBuB_qPooflrjkkvoy19HySdBo-MiVeb5yTmLGBJvM,415
|
|
444
|
-
neverlib/utils/__init__.py,sha256=
|
|
445
|
-
neverlib/utils/audio_split.py,sha256=
|
|
446
|
-
neverlib/utils/checkGPU.py,sha256=
|
|
485
|
+
neverlib/utils/__init__.py,sha256=A969zG3BBrSVtoZFsm60PolCaH0BI0PflUUubqfVT8M,2727
|
|
486
|
+
neverlib/utils/audio_split.py,sha256=tDWw36FXMIVOZ08PC9KQTYB3Zz_doFcP1ugYdpLkQjQ,12368
|
|
487
|
+
neverlib/utils/checkGPU.py,sha256=OkztJZJxncqSSIttxISpLSgfqa9xjXOaHIuMlRNwX-4,4393
|
|
488
|
+
neverlib/utils/lazy_expose.py,sha256=3h1LidRoab_ylv574-dOBjnJpOKWgLFgXpTWrvqce9E,1027
|
|
447
489
|
neverlib/utils/lazy_module.py,sha256=JdEdAYnbHmolB-hktrcuOlzR4Ee5jgu6V0XjDNqioVM,3995
|
|
448
490
|
neverlib/utils/message.py,sha256=XV7m0yUsR7Zq-olS-vL1oUEatSgh-Am8pyB_QPLzQok,4121
|
|
449
|
-
neverlib/utils/utils.py,sha256=
|
|
450
|
-
neverlib/vad/PreProcess.py,sha256=
|
|
491
|
+
neverlib/utils/utils.py,sha256=rsKSOuo__ISdmTe1AQhNqFD8ENHl8A60aDEoGUTiBlE,15179
|
|
492
|
+
neverlib/vad/PreProcess.py,sha256=oib4iRfsUXp5U67pKzJF8k53rqjo8NopK_9LW4O8Mqk,2045
|
|
451
493
|
neverlib/vad/README.md,sha256=3aFnGmz3uhg-kQVOGei40Ei3Lx5P71r2rk0Xl8-JZXI,1490
|
|
452
494
|
neverlib/vad/VAD_Energy.py,sha256=ErsiDxn4mH_EOiFBRcoBBRqTUsFfEsvEvRELrdZflkw,2135
|
|
453
495
|
neverlib/vad/VAD_Silero.py,sha256=L9_eO94VQcO3TBdOWypJxnjMl5ZZBYTkL5DR_6APfs4,2324
|
|
@@ -456,12 +498,13 @@ neverlib/vad/VAD_funasr.py,sha256=oJqU3VOFT-KXmFV2g8kvT64nHIo5-PxcB4tdb-Ap3Bw,15
|
|
|
456
498
|
neverlib/vad/VAD_statistics.py,sha256=o310LKoMECBHO6LcqU3vb-uirF6PM2fHbaRautT2w-w,16663
|
|
457
499
|
neverlib/vad/VAD_vadlib.py,sha256=5reZ7blu0BsqqO9WJn8YPIvPQVn8VcFPcJnH1scgEzQ,2228
|
|
458
500
|
neverlib/vad/VAD_whisper.py,sha256=GhBFV-EIS865c-rj2RvM4IUKKG8ZsoD9LCTwrx1Fx2c,1792
|
|
459
|
-
neverlib/vad/__init__.py,sha256=
|
|
460
|
-
neverlib/vad/class_get_speech.py,sha256=
|
|
461
|
-
neverlib/vad/class_vad.py,sha256=
|
|
501
|
+
neverlib/vad/__init__.py,sha256=UflLGnBIUyqIoIuGLThF4vHeKD6pPRMy3mRyXMiUCAk,2035
|
|
502
|
+
neverlib/vad/class_get_speech.py,sha256=s1n24I4P4aTFaQSiyXrh_xAmOChuFZ-wWgrYEE6eCHs,2074
|
|
503
|
+
neverlib/vad/class_vad.py,sha256=ao_20-vyzcI8CxEcvcA_-HoRPTiPEtfuKor2_YWEbz0,5212
|
|
504
|
+
neverlib/vad/img.png,sha256=eLlaUgDnJNyleWZwW8sNv3eXaeaGoXwhFUZCCDJh9u8,179778
|
|
462
505
|
neverlib/vad/utils.py,sha256=rEWEzGv2E_iTHIdQxY361iEW4Hq9MRDwkMBQMTA9mGw,3049
|
|
463
|
-
neverlib-0.2.
|
|
464
|
-
neverlib-0.2.
|
|
465
|
-
neverlib-0.2.
|
|
466
|
-
neverlib-0.2.
|
|
467
|
-
neverlib-0.2.
|
|
506
|
+
neverlib-0.2.8.dist-info/licenses/LICENSE,sha256=h-U7vhFdQhieyaNCiA_utrRNMk1rjfrBAUJVodgkfsw,1096
|
|
507
|
+
neverlib-0.2.8.dist-info/METADATA,sha256=8PeHX6no4CgyTvP8c44NjGA4mclVM_22uKbafKoJO9w,2811
|
|
508
|
+
neverlib-0.2.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
509
|
+
neverlib-0.2.8.dist-info/top_level.txt,sha256=QqwYFuDiY_iFTz0Kx8av6zKCP_s4M5NiMTNsIXOy8Po,9
|
|
510
|
+
neverlib-0.2.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|