neverlib 0.2.9__py3-none-any.whl → 0.3.0__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/Docs/audio_aug/test_volume.ipynb +8 -8
- neverlib/Docs/filter/biquad.ipynb +1 -1
- neverlib/Docs/filter/filter_family.ipynb +4 -4
- neverlib/Docs/vad/VAD_WebRTC.ipynb +4 -4
- neverlib/Docs/vad/VAD_whisper.ipynb +2 -2
- neverlib/LLM/__init__.py +37 -0
- neverlib/LLM/bailian.py +342 -0
- neverlib/LLM/image.py +73 -0
- neverlib/LLM/text.py +32 -0
- neverlib/QA/ImpactNoiseRejection.py +4 -4
- neverlib/QA/gen_init.py +13 -16
- neverlib/__init__.py +5 -5
- neverlib/audio_aug/HarmonicDistortion.py +11 -11
- neverlib/audio_aug/__init__.py +54 -0
- neverlib/audio_aug/audio_aug.py +18 -18
- neverlib/audio_aug/coder_aug.py +25 -25
- neverlib/audio_aug/coder_aug2.py +10 -10
- neverlib/audio_aug/loss_packet_aug.py +16 -16
- neverlib/audio_aug/quant_aug.py +7 -7
- neverlib/data_analyze/README.md +1 -1
- neverlib/data_analyze/__init__.py +44 -0
- neverlib/data_analyze/dataset_analyzer.py +2 -2
- neverlib/data_analyze/quality_metrics.py +12 -12
- neverlib/data_analyze/statistics.py +1 -1
- neverlib/data_analyze/visualization.py +1 -1
- neverlib/filter/README.md +3 -3
- neverlib/filter/__init__.py +23 -0
- neverlib/filter/auto_eq/README.md +2 -2
- neverlib/filter/auto_eq/__init__.py +36 -0
- neverlib/filter/auto_eq/de_eq.py +1 -1
- neverlib/filter/auto_eq/ga_eq_advanced.py +2 -2
- neverlib/filter/auto_eq/ga_eq_basic.py +1 -1
- neverlib/filter/biquad.py +1 -1
- neverlib/metrics/__init__.py +36 -0
- neverlib/metrics/dnsmos.py +2 -2
- neverlib/metrics/lpc_lsp.py +8 -8
- neverlib/metrics/snr.py +5 -5
- neverlib/metrics/spec.py +23 -23
- neverlib/metrics/test_pesq.py +3 -3
- neverlib/tests/__init__.py +17 -0
- neverlib/tests/test_imports.py +1 -1
- neverlib/utils/README.md +1 -1
- neverlib/utils/__init__.py +53 -1
- neverlib/utils/audio_split.py +1 -1
- neverlib/utils/checkGPU.py +2 -2
- neverlib/utils/floder.py +6 -6
- neverlib/utils/lazy_expose.py +1 -1
- neverlib/utils/lazy_module.py +6 -6
- neverlib/utils/message.py +2 -3
- neverlib/utils/utils.py +108 -2
- neverlib/vad/README.md +5 -5
- neverlib/vad/__init__.py +38 -0
- neverlib/vad/utils.py +1 -1
- {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/METADATA +3 -3
- {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/RECORD +58 -57
- neverlib/QA/impact_noise_rejection.png +0 -0
- neverlib/QA/out.pcm +0 -0
- neverlib/QA/out.wav +0 -0
- {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/WHEEL +0 -0
- {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/licenses/LICENSE +0 -0
- {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/top_level.txt +0 -0
neverlib/utils/checkGPU.py
CHANGED
|
@@ -65,7 +65,7 @@ def monitor_gpu_utilization(check_interval=600, duration_limit=1800, threshold=2
|
|
|
65
65
|
|
|
66
66
|
while True:
|
|
67
67
|
utilization_mean = [] # 平均利用率
|
|
68
|
-
for i in range(duration_limit // check_interval): # 30
|
|
68
|
+
for i in range(duration_limit // check_interval): # 30分钟平均一次, 每10分钟检查一次
|
|
69
69
|
utilization = get_gpu_utilization2(MonitorGPUs)
|
|
70
70
|
utilization = np.array(utilization)
|
|
71
71
|
utilization_mean.append(utilization)
|
|
@@ -74,7 +74,7 @@ def monitor_gpu_utilization(check_interval=600, duration_limit=1800, threshold=2
|
|
|
74
74
|
t_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
|
|
75
75
|
print(f"{t_now} GPU Utilization: {utilization}") # [95. 50. 91. 83. 84. 65. 95. 82.]
|
|
76
76
|
|
|
77
|
-
# 如果有GPU
|
|
77
|
+
# 如果有GPU利用率低于阈值, 则发送邮件
|
|
78
78
|
if np.any(utilization_mean < threshold):
|
|
79
79
|
send_QQEmail(title=f"GPU利用率警告",
|
|
80
80
|
content=f"服务器: {host_ip}\n {t_now} GPU利用率为:{utilization}. 低于阈值 {threshold}% \n",
|
neverlib/utils/floder.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'''
|
|
2
2
|
Author: 凌逆战 | Never
|
|
3
3
|
Date: 2025-03-26 22:13:21
|
|
4
|
-
Description:
|
|
4
|
+
Description: 路径层级互换(支持 Windows / Linux / macOS)
|
|
5
5
|
'''
|
|
6
6
|
|
|
7
7
|
import os
|
|
@@ -54,7 +54,7 @@ def del_empty_folders(path):
|
|
|
54
54
|
for subfolder in subfolders:
|
|
55
55
|
del_empty_folders(subfolder)
|
|
56
56
|
|
|
57
|
-
#
|
|
57
|
+
# 如果文件夹为空, 则删除
|
|
58
58
|
if not os.listdir(path):
|
|
59
59
|
os.rmdir(path)
|
|
60
60
|
print(f"删除空文件夹: {path}")
|
|
@@ -65,7 +65,7 @@ def change_path(source_dir, idx_1, idx_2):
|
|
|
65
65
|
source_dir = Path(source_dir)
|
|
66
66
|
path_list = [Path(p) for p in get_path_list(str(source_dir), end="*.*")]
|
|
67
67
|
|
|
68
|
-
print("\n📂
|
|
68
|
+
print("\n📂 文件路径变更预览(前 5 个):\n")
|
|
69
69
|
preview_count = min(5, len(path_list))
|
|
70
70
|
|
|
71
71
|
for i in range(preview_count):
|
|
@@ -85,7 +85,7 @@ def change_path(source_dir, idx_1, idx_2):
|
|
|
85
85
|
# 交互确认
|
|
86
86
|
user_input = input("是否确认对所有文件进行以上变更? (y/n): ").strip().lower()
|
|
87
87
|
if user_input != "y":
|
|
88
|
-
print("❌
|
|
88
|
+
print("❌ 操作已取消. ")
|
|
89
89
|
return
|
|
90
90
|
|
|
91
91
|
print("\n🚀 开始批量处理文件...")
|
|
@@ -106,10 +106,10 @@ def change_path(source_dir, idx_1, idx_2):
|
|
|
106
106
|
|
|
107
107
|
print("\n✅ 所有文件处理完成!")
|
|
108
108
|
del_empty_folders(str(source_dir)) # 清理空文件夹
|
|
109
|
-
print("🧹
|
|
109
|
+
print("🧹 已清空空目录. ")
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
if __name__ == "__main__":
|
|
113
|
-
#
|
|
113
|
+
# 示例路径(自动根据系统适配)
|
|
114
114
|
source_dir = Path("/data01/never/Dataset/kws_data/Command_Word_NN_wrong_high/Crowdsourcing_wash/zh_kws/train/RealPerson")
|
|
115
115
|
change_path(source_dir, 10, 11)
|
neverlib/utils/lazy_expose.py
CHANGED
neverlib/utils/lazy_module.py
CHANGED
|
@@ -10,7 +10,7 @@ from typing import Dict, Tuple, Union, Iterable
|
|
|
10
10
|
|
|
11
11
|
class LazyModule(ModuleType):
|
|
12
12
|
"""
|
|
13
|
-
|
|
13
|
+
一个懒加载模块, 可以按需导入子模块或对象.
|
|
14
14
|
- 支持 name -> 'pkg.subpkg.module' 的懒导入(返回模块对象)
|
|
15
15
|
- 支持 name -> ('pkg.subpkg.module', 'attr') 的懒导入(返回模块内的对象)
|
|
16
16
|
- 透传 __spec__/__path__/__all__ 以兼容 import 系统和 IDE 补全
|
|
@@ -35,7 +35,7 @@ class LazyModule(ModuleType):
|
|
|
35
35
|
self.__dict__["__spec__"] = module_spec
|
|
36
36
|
if module_path is not None:
|
|
37
37
|
self.__dict__["__path__"] = list(module_path)
|
|
38
|
-
#
|
|
38
|
+
# 若存在代理模块, 则不预设 __all__, 避免阻断 import * 的 dir() 行为
|
|
39
39
|
if not proxy_modules:
|
|
40
40
|
self.__dict__["__all__"] = sorted(list(import_structure.keys()))
|
|
41
41
|
|
|
@@ -56,7 +56,7 @@ class LazyModule(ModuleType):
|
|
|
56
56
|
obj = getattr(module, attr_name)
|
|
57
57
|
setattr(self, name, obj)
|
|
58
58
|
return obj
|
|
59
|
-
#
|
|
59
|
+
# 若未在显式映射中, 尝试到代理模块中查找公开符号
|
|
60
60
|
for proxy_name in self.__dict__.get("_proxy_modules", []):
|
|
61
61
|
mod_cache_key = f"__proxy__::{proxy_name}"
|
|
62
62
|
module = self.__dict__["_modules"].get(mod_cache_key)
|
|
@@ -67,12 +67,12 @@ class LazyModule(ModuleType):
|
|
|
67
67
|
obj = getattr(module, name)
|
|
68
68
|
setattr(self, name, obj)
|
|
69
69
|
return obj
|
|
70
|
-
raise AttributeError(f"Module {self.__name__} has no attribute {name}") #
|
|
70
|
+
raise AttributeError(f"Module {self.__name__} has no attribute {name}") # 如果模块没有属性, 则抛出异常
|
|
71
71
|
|
|
72
72
|
def __dir__(self):
|
|
73
|
-
#
|
|
73
|
+
# 将懒加载键与现有属性合并, 便于 IDE 补全
|
|
74
74
|
keys = set(self.__dict__.keys()) | set(self.__dict__.get("_import_structure", {}).keys())
|
|
75
|
-
#
|
|
75
|
+
# 若配置了代理模块, 将其公开符号加入补全(会触发代理模块导入)
|
|
76
76
|
for proxy_name in self.__dict__.get("_proxy_modules", []):
|
|
77
77
|
module = importlib.import_module(proxy_name)
|
|
78
78
|
for n in dir(module):
|
neverlib/utils/message.py
CHANGED
|
@@ -26,10 +26,9 @@ def send_QQEmail(title, content, from_name, from_email, from_password, to_email)
|
|
|
26
26
|
HOST = "smtp.qq.com"
|
|
27
27
|
|
|
28
28
|
# 设置邮件正文
|
|
29
|
-
message = MIMEText(content, "
|
|
29
|
+
message = MIMEText(content, "html", "utf-8")
|
|
30
30
|
message["Subject"] = Header(title, charset="utf-8")
|
|
31
31
|
message["From"] = formataddr((from_name, from_email))
|
|
32
|
-
# message["From"] = Header(from_email)
|
|
33
32
|
message["To"] = Header(to_email)
|
|
34
33
|
|
|
35
34
|
try:
|
|
@@ -48,7 +47,7 @@ def send_QQEmail_with_images(title, content, from_name, from_email, from_passwor
|
|
|
48
47
|
"""
|
|
49
48
|
发送包含多张PNG图片附件的QQ邮件
|
|
50
49
|
:param title: 邮件标题
|
|
51
|
-
:param content:
|
|
50
|
+
:param content: 邮件正文内容(支持HTML格式)
|
|
52
51
|
:param from_email: 发件人邮箱
|
|
53
52
|
:param from_password: 发件人邮箱SMTP授权码
|
|
54
53
|
:param to_email: 收件人邮箱
|
neverlib/utils/utils.py
CHANGED
|
@@ -160,7 +160,7 @@ def DatasetSubfloderSplit(source_dir, split_dirs, percentage=None):
|
|
|
160
160
|
Args:
|
|
161
161
|
source_dir (str): 源数据集目录
|
|
162
162
|
split_dirs (list): 目标目录列表, 如 [train_dir, val_dir] 或 [train_dir, val_dir, test_dir]
|
|
163
|
-
percentage (list, optional): 分割比例, 如 [0.9, 0.1] 或 [0.8, 0.1, 0.1]
|
|
163
|
+
percentage (list, optional): 分割比例, 如 [0.9, 0.1] 或 [0.8, 0.1, 0.1]. 默认为 None, 此时:
|
|
164
164
|
- 如果是两路分割, 默认为 [0.9, 0.1]
|
|
165
165
|
- 如果是三路分割, 默认为 [0.8, 0.1, 0.1]
|
|
166
166
|
Example:
|
|
@@ -189,7 +189,7 @@ def DatasetSubfloderSplit(source_dir, split_dirs, percentage=None):
|
|
|
189
189
|
|
|
190
190
|
# 验证输入参数
|
|
191
191
|
if len(split_dirs) not in [2, 3]:
|
|
192
|
-
raise ValueError("只支持2路或3
|
|
192
|
+
raise ValueError("只支持2路或3路分割(训练集/验证集 或 训练集/验证集/测试集)")
|
|
193
193
|
if len(percentage) != len(split_dirs):
|
|
194
194
|
raise ValueError("分割比例数量必须与目标目录数量相同")
|
|
195
195
|
if sum(percentage) != 1.0:
|
|
@@ -311,3 +311,109 @@ def save_weight_histogram(model,
|
|
|
311
311
|
plt.hist(buffer, bins=bins)
|
|
312
312
|
plt.savefig(os.path.join(save_dir, "buffer", f"{name}.png"))
|
|
313
313
|
plt.close()
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def merge_tensorboard(event_dir, start_step: int = None, skip_item: str = None):
|
|
317
|
+
try:
|
|
318
|
+
from torch.utils.tensorboard import SummaryWriter
|
|
319
|
+
from tensorboard.backend.event_processing import event_accumulator
|
|
320
|
+
from collections import defaultdict
|
|
321
|
+
except ImportError:
|
|
322
|
+
raise ImportError("请安装torch和tensorboard")
|
|
323
|
+
|
|
324
|
+
event_path_list = get_path_list(event_dir, "*events.out.tfevents.*")
|
|
325
|
+
|
|
326
|
+
# 1. 汇总所有数据
|
|
327
|
+
all_data = defaultdict(list)
|
|
328
|
+
for event_path in event_path_list:
|
|
329
|
+
print(f"Loading {os.path.basename(event_path)}")
|
|
330
|
+
ea = event_accumulator.EventAccumulator(event_path)
|
|
331
|
+
ea.Reload()
|
|
332
|
+
tags = ea.scalars.Keys()
|
|
333
|
+
for tag in tags:
|
|
334
|
+
all_data[tag].extend(ea.scalars.Items(tag))
|
|
335
|
+
|
|
336
|
+
# 2. 写入数据
|
|
337
|
+
writer = SummaryWriter(log_dir=event_dir)
|
|
338
|
+
for tag, items in all_data.items():
|
|
339
|
+
unique_items = {item.step: item for item in sorted(items, key=lambda x: x.wall_time)} # 按wall_time排序
|
|
340
|
+
sorted_items = sorted(unique_items.values(), key=lambda x: x.step) # 按step排序
|
|
341
|
+
|
|
342
|
+
if skip_item is not None and skip_item in tag:
|
|
343
|
+
continue
|
|
344
|
+
for item in sorted_items:
|
|
345
|
+
if start_step is not None and item.step < start_step:
|
|
346
|
+
continue
|
|
347
|
+
writer.add_scalar(tag, item.value, item.step, walltime=item.wall_time)
|
|
348
|
+
|
|
349
|
+
# 确保数据写入磁盘
|
|
350
|
+
writer.flush()
|
|
351
|
+
writer.close()
|
|
352
|
+
print("所有数据已写入TensorBoard, 请刷新TensorBoard页面查看")
|
|
353
|
+
for event_path in event_path_list:
|
|
354
|
+
os.remove(event_path)
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
def log_time(log_path):
|
|
358
|
+
import re
|
|
359
|
+
from datetime import datetime, timedelta
|
|
360
|
+
|
|
361
|
+
with open(log_path, "r", encoding="utf-8") as f:
|
|
362
|
+
log_data = f.read()
|
|
363
|
+
|
|
364
|
+
# 使用正则表达式提取 "train" 前面的时间戳
|
|
365
|
+
train_times = re.findall(r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) - train', log_data)
|
|
366
|
+
|
|
367
|
+
# 将字符串转换为 datetime 对象
|
|
368
|
+
train_times_dt = [datetime.strptime(time, '%Y-%m-%d %H:%M:%S,%f') for time in train_times]
|
|
369
|
+
# train_times_dt = train_times_dt[10:]
|
|
370
|
+
|
|
371
|
+
# 计算每段时间之间的时间差
|
|
372
|
+
for i in range(1, len(train_times_dt)):
|
|
373
|
+
time_diff = train_times_dt[i] - train_times_dt[i - 1]
|
|
374
|
+
print(f"时间间隔 {i}: {time_diff}")
|
|
375
|
+
# train_times_dt= train_times_dt[-10:]
|
|
376
|
+
# 计算每段时间之间的时间差, 并存储在列表中
|
|
377
|
+
time_diffs = [train_times_dt[i] - train_times_dt[i - 1] for i in range(1, len(train_times_dt))]
|
|
378
|
+
|
|
379
|
+
# 计算时间间隔的总和
|
|
380
|
+
total_time_diff = sum(time_diffs, timedelta())
|
|
381
|
+
|
|
382
|
+
# 计算平均时间间隔
|
|
383
|
+
average_time_diff = total_time_diff / len(time_diffs)
|
|
384
|
+
|
|
385
|
+
# 输出平均时间间隔
|
|
386
|
+
print(f"平均时间间隔: {average_time_diff}")
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
# 删除重复的路径
|
|
390
|
+
def del_duplicate_path(file_path_list):
|
|
391
|
+
for file_path in file_path_list:
|
|
392
|
+
file_dir, file_name = os.path.dirname(file_path), os.path.basename(file_path)
|
|
393
|
+
itemID = file_dir.split("/")[-1]
|
|
394
|
+
if itemID in file_name:
|
|
395
|
+
file_name_new = file_name.replace(itemID + "_", "")
|
|
396
|
+
os.rename(file_path, os.path.join(file_dir, file_name_new))
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
def remove_parent_dir_prefix(wav_path_list):
|
|
400
|
+
for wav_path in wav_path_list:
|
|
401
|
+
path = Path(wav_path)
|
|
402
|
+
|
|
403
|
+
if not path.exists():
|
|
404
|
+
continue
|
|
405
|
+
|
|
406
|
+
# path.parent.name 自动获取父目录名
|
|
407
|
+
parent_name = path.parent.name
|
|
408
|
+
prefix = parent_name + "_"
|
|
409
|
+
|
|
410
|
+
if path.name.startswith(prefix):
|
|
411
|
+
# 移除前缀
|
|
412
|
+
new_name = path.name.replace(prefix, "", 1) # 只替换第一个匹配项
|
|
413
|
+
target_path = path.with_name(new_name)
|
|
414
|
+
|
|
415
|
+
if not target_path.exists():
|
|
416
|
+
path.rename(target_path)
|
|
417
|
+
else:
|
|
418
|
+
print(f"Target exists: {target_path}")
|
|
419
|
+
|
neverlib/vad/README.md
CHANGED
|
@@ -40,16 +40,16 @@ mode 0~3
|
|
|
40
40
|
|
|
41
41
|
0: 最低的语音检测敏感度,
|
|
42
42
|
|
|
43
|
-
- 认为背景噪声不是语音, 适合环境较安静,
|
|
44
|
-
- 适合环境较安静,
|
|
43
|
+
- 认为背景噪声不是语音, 适合环境较安静, 背景噪声少的情况.
|
|
44
|
+
- 适合环境较安静, 背景噪声少的情况.
|
|
45
45
|
|
|
46
46
|
3: 最高的语音检测敏感度,
|
|
47
47
|
|
|
48
|
-
- VAD 会非常积极地尝试将任何噪声过滤掉,
|
|
49
|
-
- 适合环境较吵,
|
|
48
|
+
- VAD 会非常积极地尝试将任何噪声过滤掉, 只有明确的语音才会被认为是语音.
|
|
49
|
+
- 适合环境较吵, 背景噪声多的情况.
|
|
50
50
|
|
|
51
51
|
## whisper
|
|
52
52
|
|
|
53
|
-
whisper 检测的 词与词之间的VAD
|
|
53
|
+
whisper 检测的 词与词之间的VAD 都是连着的. 但其实音频不是
|
|
54
54
|
|
|
55
55
|
而且Whisper的VAD并没有直接提供调参接口, 所以无法调整VAD的参数
|
neverlib/vad/__init__.py
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# This file is auto-generated. Do NOT edit manually.
|
|
2
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
|
+
# 运行时使用懒加载
|
|
3
21
|
from lazy_loader import attach
|
|
4
22
|
|
|
5
23
|
__getattr__, __dir__, __all__ = attach(
|
|
@@ -31,3 +49,23 @@ __getattr__, __dir__, __all__ = attach(
|
|
|
31
49
|
"utils": ['from_vadArray_to_vadEndpoint', 'vad2nad', 'vad_smooth'],
|
|
32
50
|
}
|
|
33
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/utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: neverlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: A successful sign for python setup
|
|
5
5
|
Author-email: "Never.Ling" <1786088386@qq.com>
|
|
6
6
|
License: MIT
|
|
@@ -57,7 +57,7 @@ Dynamic: license-file
|
|
|
57
57
|
-->
|
|
58
58
|
# NeverLib
|
|
59
59
|
|
|
60
|
-
一个用于音频处理和VAD
|
|
60
|
+
一个用于音频处理和VAD(语音活动检测)的Python工具库.
|
|
61
61
|
|
|
62
62
|
## 安装
|
|
63
63
|
|
|
@@ -129,7 +129,7 @@ from neverlib.message import seed_QQEmail
|
|
|
129
129
|
|
|
130
130
|
## 许可证
|
|
131
131
|
|
|
132
|
-
本项目采用MIT
|
|
132
|
+
本项目采用MIT许可证. 详情请参阅LICENSE文件.
|
|
133
133
|
|
|
134
134
|
## 作者
|
|
135
135
|
|
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
neverlib/__init__.py,sha256=
|
|
2
|
-
neverlib/Docs/audio_aug/test_volume.ipynb,sha256=
|
|
1
|
+
neverlib/__init__.py,sha256=hPhtK8OM3gp9Jlu8VRP1etTi4-iOCCf3jlmQ4gS85wE,2041
|
|
2
|
+
neverlib/Docs/audio_aug/test_volume.ipynb,sha256=mSTB_1R2b8t5IEiifpTuyV-HKOmW4Q2Z7QMgeRkp2B8,18366
|
|
3
3
|
neverlib/Docs/audio_aug_test/test_snr.py,sha256=1BRUzTYL37pblvhHNB0ORtrbNyxTFWytAxlJ8CDSwfM,1317
|
|
4
4
|
neverlib/Docs/audio_aug_test/test_volume.ipynb,sha256=ZKDPm7Dr8ooZvO6nItshiVIY7jkh2a5AcmUw4wqsB0k,1843460
|
|
5
5
|
neverlib/Docs/audio_aug_test/test_volume.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
neverlib/Docs/filter/biquad.ipynb,sha256=
|
|
7
|
-
neverlib/Docs/filter/filter_family.ipynb,sha256=
|
|
6
|
+
neverlib/Docs/filter/biquad.ipynb,sha256=vSAbUSvPUuCEtrO1tHzEyrtuRW0s_bCG38ZUornOVck,3087
|
|
7
|
+
neverlib/Docs/filter/filter_family.ipynb,sha256=cisPF1iMUAArSpUxuzzqsuCywCslLMozFeZtDb5VUfI,1135210
|
|
8
8
|
neverlib/Docs/filter/highpass.ipynb,sha256=-sT6-xH9zV7mR6wWZ9Jnqt9lbUEajGafbhGvUVY98IY,40181
|
|
9
9
|
neverlib/Docs/filter/scipy_filter_family.ipynb,sha256=dLhf4BG3KF6jlfiPKeq6Rl5DrUnx0jDx74an4J7ktGk,79092
|
|
10
10
|
neverlib/Docs/vad/VAD_Energy.ipynb,sha256=qqw6_YwRGAbMcU2_F-1XXomU-y42HDY9WYCMxQVvD58,317091
|
|
11
11
|
neverlib/Docs/vad/VAD_Silero.ipynb,sha256=LREAdVkgdKW_XB5N6SFkHHCRqTkkQxigWOFH9Vhxops,303837
|
|
12
|
-
neverlib/Docs/vad/VAD_WebRTC.ipynb,sha256=
|
|
12
|
+
neverlib/Docs/vad/VAD_WebRTC.ipynb,sha256=jK_L2_JuKGoVX0xQL5UKJzxHnc9ndLYwA6DHJSO-egs,324759
|
|
13
13
|
neverlib/Docs/vad/VAD_funasr.ipynb,sha256=-4KVReX7IqKfufBHk0oTEYNfzaqlJE5mDuYC8TGhv7U,251035
|
|
14
14
|
neverlib/Docs/vad/VAD_rvADfast.ipynb,sha256=YszYIEG_qVUU2hzvbraY4y5fdMToT--50Za1A3IBozc,252432
|
|
15
15
|
neverlib/Docs/vad/VAD_statistics.ipynb,sha256=wT0k_91YUpLLIt6LZMKrjvJLk4kz8g-fZdBvVH07O2k,346246
|
|
16
16
|
neverlib/Docs/vad/VAD_tenVAD.ipynb,sha256=w8oOBVeabW44Fw7TF6CSxIqa3u1gGydoMuWSxE7slaA,351893
|
|
17
17
|
neverlib/Docs/vad/VAD_vadlib.ipynb,sha256=m55oKqOGeMOSgmQlbMkOR6zVh5_Hn6SIocHi6mOtg1k,300998
|
|
18
|
-
neverlib/Docs/vad/VAD_whisper.ipynb,sha256=
|
|
19
|
-
neverlib/
|
|
20
|
-
neverlib/
|
|
18
|
+
neverlib/Docs/vad/VAD_whisper.ipynb,sha256=MsHzjFiD6sLGiyOQeVM4ec9HHfUwdMN-HP4c08-Q7xo,364205
|
|
19
|
+
neverlib/LLM/__init__.py,sha256=jXxWbqG9AXcBaSMj1m29FkDgfzMX55JcJD2xsiCMXe0,909
|
|
20
|
+
neverlib/LLM/bailian.py,sha256=GrUix-OyM1HqVQOQx4HMYuXwEdEd8znUucXJROwQSms,11673
|
|
21
|
+
neverlib/LLM/image.py,sha256=kI1hzGBToLygbsfWnMJjSnrEEONKjV_qU-WBswZHoFk,2501
|
|
22
|
+
neverlib/LLM/text.py,sha256=2G4NT4sbbcwyVCyHQ7jvAy9EbToDZUaUlpogvX5Kd7c,1003
|
|
23
|
+
neverlib/QA/ImpactNoiseRejection.py,sha256=8kCNR-O8_2YtLBAAuh01SFfoptJtHFuliHxhcTBe73Q,3877
|
|
24
|
+
neverlib/QA/gen_init.py,sha256=pVXJoThVMIygijkPIYg6wHcDiCwWAkoioFP7qzY7Flc,7993
|
|
21
25
|
neverlib/QA/get_fun.py,sha256=-UP2FOm3jB_138ntpbsW0eG1S0tJ0d90NqI6f95ryYg,541
|
|
22
26
|
neverlib/QA/html2markdown.py,sha256=ZiXvpwcJ_QBhIR6aetaMOmktWHtd_F7Ed07Deo3qM4c,669
|
|
23
|
-
neverlib/
|
|
24
|
-
neverlib/QA/out.pcm,sha256=Uai-io9uBrzrdAaKIUH9xVvzxmw9MtuPcn0BUvDhIvM,10698240
|
|
25
|
-
neverlib/QA/out.wav,sha256=gcRjIe5qDExDryfgy1L6LLRFdttmnAFKQcQOtfXowAo,10698284
|
|
26
|
-
neverlib/audio_aug/HarmonicDistortion.py,sha256=MqbfcdWJLtl_WGloQYDa6fIB6QCgukYdjoxsj8X03kk,2706
|
|
27
|
+
neverlib/audio_aug/HarmonicDistortion.py,sha256=6VlM7YHwM-Bg-f6bNLsuIIXELRrbbfu3TEySorM5KPo,2684
|
|
27
28
|
neverlib/audio_aug/README.md,sha256=hoYtGNUSMXrPA3GUs1TZVwELxTf7nuQRyt_bpW6F95I,130
|
|
28
29
|
neverlib/audio_aug/TFDrop.py,sha256=HDLf5qfqMT73-dxKder0v0AT7b0FYsSlexbbh3sL2iM,987
|
|
29
30
|
neverlib/audio_aug/TFMask.py,sha256=Fakx5YTj88bZEdj_w3aH9Z9AhEGzGq01TZcnjF4v4BU,1769
|
|
30
|
-
neverlib/audio_aug/__init__.py,sha256=
|
|
31
|
-
neverlib/audio_aug/audio_aug.py,sha256=
|
|
31
|
+
neverlib/audio_aug/__init__.py,sha256=t-m5D4u7gZMEE7xNGDi4hZMi7HINCk7DQ23c2JRToNY,3311
|
|
32
|
+
neverlib/audio_aug/audio_aug.py,sha256=h_UjBnTvX7hVeRMDsQbyAIOyMLft-GWMRenGPfjFmdU,16607
|
|
32
33
|
neverlib/audio_aug/clip_aug.py,sha256=xZi89AtdOgUpX7W4x4_UiZFeK-oCWktueoWSEAY19hU,1041
|
|
33
|
-
neverlib/audio_aug/coder_aug.py,sha256=
|
|
34
|
-
neverlib/audio_aug/coder_aug2.py,sha256=
|
|
35
|
-
neverlib/audio_aug/loss_packet_aug.py,sha256=
|
|
36
|
-
neverlib/audio_aug/quant_aug.py,sha256=
|
|
34
|
+
neverlib/audio_aug/coder_aug.py,sha256=BPoEg96EDRMzK6cvkYrWTL6dOyX6YKpjbx5nURZcOWg,8314
|
|
35
|
+
neverlib/audio_aug/coder_aug2.py,sha256=EVhzzYPSEUq-XYiu_jGaDLK2PtxgK0jFXsPPSzk2-ac,4713
|
|
36
|
+
neverlib/audio_aug/loss_packet_aug.py,sha256=pQu3PIJVpFJVyyxs7dmLG0N3GBMiQDAAtjmIdl7CaTw,4824
|
|
37
|
+
neverlib/audio_aug/quant_aug.py,sha256=q9BehCXz7HZhiZFW35iZ0fPChEdo-dE8ArJ-DJMDtA8,2601
|
|
37
38
|
neverlib/data/000_short_enhance.wav,sha256=TUZSjHareIY3BFlgZiDuffzirpxnEKagnQDVwDYLdgk,216356
|
|
38
39
|
neverlib/data/3956_speech.wav,sha256=wehCr85ITMOmkQWi1DnjRzb2ggC-XJUftZ3_9sARvS8,2977476
|
|
39
40
|
neverlib/data/3956_sweep.wav,sha256=DoLnlIkYGSuraIE7nWK4nAvmgGWWW4VuhI7xDoMrLys,813832
|
|
@@ -41,33 +42,33 @@ neverlib/data/vad_example.wav,sha256=xvcEvjmdjeZO-1fT7u0m0EuiJAqeXUWjBWewDWd8guY
|
|
|
41
42
|
neverlib/data/white.wav,sha256=JJ3aaPx8v7WakYU7U--m0kO1qUkDSMOrOrPKi6RqAA0,325086
|
|
42
43
|
neverlib/data/white_EQ.wav,sha256=UN1W0hH_4JInnye9vIsQlagVXM-rnJPd1j7A_RIia8c,325086
|
|
43
44
|
neverlib/data/white_matched.wav,sha256=h9vD-2q1eKw9s8pVUoIeXXjeKEC-VRiNABCY-CYcUQ0,115514
|
|
44
|
-
neverlib/data_analyze/README.md,sha256=
|
|
45
|
-
neverlib/data_analyze/__init__.py,sha256=
|
|
46
|
-
neverlib/data_analyze/dataset_analyzer.py,sha256=
|
|
47
|
-
neverlib/data_analyze/quality_metrics.py,sha256=
|
|
45
|
+
neverlib/data_analyze/README.md,sha256=UoqrTIaMQiPQvAYrOk7Trw53YQNQXn2Vl6DSTEp3mos,6050
|
|
46
|
+
neverlib/data_analyze/__init__.py,sha256=f992HttF5K3CActULLsJPlEIQKkzEOWnCllOIhHezw0,2779
|
|
47
|
+
neverlib/data_analyze/dataset_analyzer.py,sha256=spB6zWru0oW8qP_zDGxkuj43cdf12izfN_BCSTS5CmU,21894
|
|
48
|
+
neverlib/data_analyze/quality_metrics.py,sha256=Rv4xmxdQZDc0oUAPg8ec8a2RoobPa7DcqHnad7PdcFc,11678
|
|
48
49
|
neverlib/data_analyze/rms_distrubution.py,sha256=EpK9s7WJLtJHXd1xD8SvuiyPVTguouYVHyS7Lha2Qag,1526
|
|
49
50
|
neverlib/data_analyze/spectral_analysis.py,sha256=-QZGSvopovLaSh7OcJLYKFH9YLIp_THXUEV3uOreHz0,5894
|
|
50
|
-
neverlib/data_analyze/statistics.py,sha256=
|
|
51
|
+
neverlib/data_analyze/statistics.py,sha256=2yCUZ5-B1vzocl-X3NYC5lBk3kshNp9jHyRrktYaIls,12953
|
|
51
52
|
neverlib/data_analyze/temporal_features.py,sha256=qrxA0Uh-DxRPbuILQle66AAgv4SgwiLoPTIR9Q2_Jz4,3065
|
|
52
|
-
neverlib/data_analyze/visualization.py,sha256=
|
|
53
|
-
neverlib/filter/README.md,sha256=
|
|
54
|
-
neverlib/filter/__init__.py,sha256=
|
|
55
|
-
neverlib/filter/biquad.py,sha256=
|
|
53
|
+
neverlib/data_analyze/visualization.py,sha256=uvHO_PnzlaKtSFoUhDhRZyqR9uxSBM71PnBqBBPcGCA,16435
|
|
54
|
+
neverlib/filter/README.md,sha256=AYbW2v5Z4WVA6CFwQ11EuR9GYjzoentQPWGh48htK7M,3792
|
|
55
|
+
neverlib/filter/__init__.py,sha256=5vVwbjUitVG9aBZ13qWsXVt7QcG8d0k4uWz6fmUPdvc,1017
|
|
56
|
+
neverlib/filter/biquad.py,sha256=_9hJWI3TY9zEdMkkOWAFJlbyJ4Rm46teezVt90o9fGM,1434
|
|
56
57
|
neverlib/filter/common.py,sha256=9FD3VKwRpe_IdQujt2AJjlMJ_WR-YNEY8OmhOQUDDO8,1953
|
|
57
58
|
neverlib/filter/core.py,sha256=JGNZugcMu9y1VLt5o3a7E-UDiI4PMUi9-NikNHR7i1s,13152
|
|
58
|
-
neverlib/filter/auto_eq/README.md,sha256
|
|
59
|
-
neverlib/filter/auto_eq/__init__.py,sha256=
|
|
60
|
-
neverlib/filter/auto_eq/de_eq.py,sha256=
|
|
59
|
+
neverlib/filter/auto_eq/README.md,sha256=Bhu9QthugB-RvEFZKYnv2C6_BYg43o1t1Yp_WBBWmg8,4966
|
|
60
|
+
neverlib/filter/auto_eq/__init__.py,sha256=KOaiZjGti3SQsS0ogKqlxNR4jNACHICeFBVT_8ZBIU0,2188
|
|
61
|
+
neverlib/filter/auto_eq/de_eq.py,sha256=AhAvSb8mMy2IyYDquERkphTzGRVvPv8bNluybTN427Y,16410
|
|
61
62
|
neverlib/filter/auto_eq/freq_eq.py,sha256=1b5hnoqUy1zxVd2WSNqhpokAgJo0xTRwR5AyVPaMr3E,3494
|
|
62
|
-
neverlib/filter/auto_eq/ga_eq_advanced.py,sha256=
|
|
63
|
-
neverlib/filter/auto_eq/ga_eq_basic.py,sha256=
|
|
63
|
+
neverlib/filter/auto_eq/ga_eq_advanced.py,sha256=MCEujrRwPXn9Heu6RYTUBJuEYFDYNrkarvBJTo_WHiw,23450
|
|
64
|
+
neverlib/filter/auto_eq/ga_eq_basic.py,sha256=QiA0Tp_rjD3hgA8oaUh2u8o8Co1FobKs_5ojgEuL2BE,15427
|
|
64
65
|
neverlib/metrics/README.md,sha256=n6Z4AgrRVOhQfxz8wT1i-oHWFuSvUCwzCcZI6FXO4HI,621
|
|
65
|
-
neverlib/metrics/__init__.py,sha256
|
|
66
|
-
neverlib/metrics/dnsmos.py,sha256=
|
|
67
|
-
neverlib/metrics/lpc_lsp.py,sha256=
|
|
68
|
-
neverlib/metrics/snr.py,sha256=
|
|
69
|
-
neverlib/metrics/spec.py,sha256=
|
|
70
|
-
neverlib/metrics/test_pesq.py,sha256=
|
|
66
|
+
neverlib/metrics/__init__.py,sha256=-547hL2cr5d-EyLhbKBom0fH_ONdfKOF8XGMOaAoiwA,1626
|
|
67
|
+
neverlib/metrics/dnsmos.py,sha256=BGCNoWI3gCNPPPyMWSVyWqqGYQk-6agJA7CVnWyZJ_k,4582
|
|
68
|
+
neverlib/metrics/lpc_lsp.py,sha256=Bd8ngYbdiPekkSnuc57wRF8bPZLRFhvzsxXdsQshyT0,3686
|
|
69
|
+
neverlib/metrics/snr.py,sha256=Oopu9jKEAeoBL7v0ClAPD20XTnAoM8UG9ey33NVhjkk,6355
|
|
70
|
+
neverlib/metrics/spec.py,sha256=rvr7zXi5JnU0rKZn49Pa_M84atIaYlDLSzTgZOQ7YsA,5415
|
|
71
|
+
neverlib/metrics/test_pesq.py,sha256=NldkQ_s99L-p747046gMtIUqc8fdYYhhH8jmvLmRFus,1207
|
|
71
72
|
neverlib/metrics/time.py,sha256=MSUdaT3WvFRnL_wvjZEGjwcVrsy7KwArz3hLkYcXF7s,1292
|
|
72
73
|
neverlib/metrics/DNSMOS/bak_ovr.onnx,sha256=XzNckJlGGBUBkqZWpHS8-KnLztvEeWVJS6jaeWBdEwg,742375
|
|
73
74
|
neverlib/metrics/DNSMOS/model_v8.onnx,sha256=kkZIDFhWe8av_UIAk4537vSUaMi8ftN3bRCcB0VvbpE,224860
|
|
@@ -84,22 +85,22 @@ neverlib/metrics/pesq_c/pesqmain.c,sha256=NaANjEDJrCFwJBbXErX51ZKtE86SHKdrXLhS0P
|
|
|
84
85
|
neverlib/metrics/pesq_c/pesqmod.c,sha256=9stYhCLUShFAd6Zc85nQn57RUKDbS2Q8MrhQFB_-ySA,52999
|
|
85
86
|
neverlib/metrics/pesq_c/pesqpar.h,sha256=XZkwXcwycL8ekK6LQy_PT9Ih2K0zirSPHCMhGKyJExs,20986
|
|
86
87
|
neverlib/signal_gen/babble_noise_generate.py,sha256=GFPAFyGHRAZiXzIvWEVlbPJZHfdbQBt1wg6dX7cPYzM,4077
|
|
87
|
-
neverlib/tests/__init__.py,sha256=
|
|
88
|
-
neverlib/tests/test_imports.py,sha256=
|
|
88
|
+
neverlib/tests/__init__.py,sha256=dQb_TDs8wv81tk9Xctx6V8a9QPRVdBPjgz3aDjD1Za4,809
|
|
89
|
+
neverlib/tests/test_imports.py,sha256=Pqkywv553AdpVDPbtNZAZhdW0GyaZgLo54xtE2XGNGQ,546
|
|
89
90
|
neverlib/tests/test_preprocess.py,sha256=GHj2PvlG8chJlV-zpRfy8IYlTXzGkn5heO9ipy6Xe20,1003
|
|
90
91
|
neverlib/tests/test_vad.py,sha256=TjBuB_qPooflrjkkvoy19HySdBo-MiVeb5yTmLGBJvM,415
|
|
91
|
-
neverlib/utils/README.md,sha256=
|
|
92
|
-
neverlib/utils/__init__.py,sha256=
|
|
93
|
-
neverlib/utils/audio_split.py,sha256=
|
|
94
|
-
neverlib/utils/checkGPU.py,sha256=
|
|
95
|
-
neverlib/utils/floder.py,sha256=
|
|
96
|
-
neverlib/utils/lazy_expose.py,sha256=
|
|
97
|
-
neverlib/utils/lazy_module.py,sha256=
|
|
98
|
-
neverlib/utils/message.py,sha256=
|
|
92
|
+
neverlib/utils/README.md,sha256=dQWGObpcfC4cDpM0b4zpTY8dC1JwUJQ06VSr-CRrFuI,934
|
|
93
|
+
neverlib/utils/__init__.py,sha256=Gr4WQip3tXuMz9ePEp6C3ug3AWntP2h-GDcIBFHOQ24,3134
|
|
94
|
+
neverlib/utils/audio_split.py,sha256=ww_xpHagTO3vBVgHqTYGwBVWLnOl_4tP--2w97uFXXI,12339
|
|
95
|
+
neverlib/utils/checkGPU.py,sha256=zwROBGeVFrnsXQTcX9iYgd-Zbj0XbRwVqTZei8oznzY,3790
|
|
96
|
+
neverlib/utils/floder.py,sha256=vF44wOfWvGK8-NDCs-CCnzgASCHcxksToIN5K0HDdjo,3805
|
|
97
|
+
neverlib/utils/lazy_expose.py,sha256=IZmexcrg6Bu0RvzZREj-al7TXVl6qEvLDYS4A2NX6sg,1026
|
|
98
|
+
neverlib/utils/lazy_module.py,sha256=RmaBa5dzUsGOQWushSDHtPUZ2IyWXeXi5RsESiFRZXM,3987
|
|
99
|
+
neverlib/utils/message.py,sha256=0pjThmNA8gDnMFf-viGboiSwE-2p5XBZxM3tkmoOxE0,4072
|
|
99
100
|
neverlib/utils/pcm.py,sha256=N50JboAKJK7hIRW7SiXK0MLDsfTun8Xpee7JPJO9BEQ,1240
|
|
100
|
-
neverlib/utils/utils.py,sha256
|
|
101
|
+
neverlib/utils/utils.py,sha256=-EuEHlNHK_IIlXidbzy3Giz7AbD2xfvkJ3CxQXPy1TU,16136
|
|
101
102
|
neverlib/vad/PreProcess.py,sha256=oib4iRfsUXp5U67pKzJF8k53rqjo8NopK_9LW4O8Mqk,2045
|
|
102
|
-
neverlib/vad/README.md,sha256=
|
|
103
|
+
neverlib/vad/README.md,sha256=rhEyxiuM-i78_eTfsbCZGOEoIltWE7TcempePHfp7oQ,1485
|
|
103
104
|
neverlib/vad/VAD_Energy.py,sha256=ErsiDxn4mH_EOiFBRcoBBRqTUsFfEsvEvRELrdZflkw,2135
|
|
104
105
|
neverlib/vad/VAD_Silero.py,sha256=L9_eO94VQcO3TBdOWypJxnjMl5ZZBYTkL5DR_6APfs4,2324
|
|
105
106
|
neverlib/vad/VAD_WebRTC.py,sha256=3A2GY6AoJhdPeXKrYXFpDXF3Ln__CK0yYFKDtMTU6ps,1919
|
|
@@ -107,13 +108,13 @@ neverlib/vad/VAD_funasr.py,sha256=oJqU3VOFT-KXmFV2g8kvT64nHIo5-PxcB4tdb-Ap3Bw,15
|
|
|
107
108
|
neverlib/vad/VAD_statistics.py,sha256=o310LKoMECBHO6LcqU3vb-uirF6PM2fHbaRautT2w-w,16663
|
|
108
109
|
neverlib/vad/VAD_vadlib.py,sha256=5reZ7blu0BsqqO9WJn8YPIvPQVn8VcFPcJnH1scgEzQ,2228
|
|
109
110
|
neverlib/vad/VAD_whisper.py,sha256=GhBFV-EIS865c-rj2RvM4IUKKG8ZsoD9LCTwrx1Fx2c,1792
|
|
110
|
-
neverlib/vad/__init__.py,sha256=
|
|
111
|
+
neverlib/vad/__init__.py,sha256=H2Kn5HDwAv4A4QwmOsvQzhOFvcMP3XBGU4OuCBGcGDU,2033
|
|
111
112
|
neverlib/vad/class_get_speech.py,sha256=s1n24I4P4aTFaQSiyXrh_xAmOChuFZ-wWgrYEE6eCHs,2074
|
|
112
113
|
neverlib/vad/class_vad.py,sha256=ao_20-vyzcI8CxEcvcA_-HoRPTiPEtfuKor2_YWEbz0,5212
|
|
113
114
|
neverlib/vad/img.png,sha256=eLlaUgDnJNyleWZwW8sNv3eXaeaGoXwhFUZCCDJh9u8,179778
|
|
114
|
-
neverlib/vad/utils.py,sha256=
|
|
115
|
-
neverlib-0.
|
|
116
|
-
neverlib-0.
|
|
117
|
-
neverlib-0.
|
|
118
|
-
neverlib-0.
|
|
119
|
-
neverlib-0.
|
|
115
|
+
neverlib/vad/utils.py,sha256=sEwZtl2Q9sR1FajumpL4XOPAR6A5KT9qH_9F-tnzpYE,3045
|
|
116
|
+
neverlib-0.3.0.dist-info/licenses/LICENSE,sha256=h-U7vhFdQhieyaNCiA_utrRNMk1rjfrBAUJVodgkfsw,1096
|
|
117
|
+
neverlib-0.3.0.dist-info/METADATA,sha256=QkWsOJuRGJAopvbjc3MG1MesXTeDTMlmu1jDPH2Ssag,3367
|
|
118
|
+
neverlib-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
119
|
+
neverlib-0.3.0.dist-info/top_level.txt,sha256=QqwYFuDiY_iFTz0Kx8av6zKCP_s4M5NiMTNsIXOy8Po,9
|
|
120
|
+
neverlib-0.3.0.dist-info/RECORD,,
|
|
Binary file
|
neverlib/QA/out.pcm
DELETED
|
Binary file
|
neverlib/QA/out.wav
DELETED
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|