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.
Files changed (61) hide show
  1. neverlib/Docs/audio_aug/test_volume.ipynb +8 -8
  2. neverlib/Docs/filter/biquad.ipynb +1 -1
  3. neverlib/Docs/filter/filter_family.ipynb +4 -4
  4. neverlib/Docs/vad/VAD_WebRTC.ipynb +4 -4
  5. neverlib/Docs/vad/VAD_whisper.ipynb +2 -2
  6. neverlib/LLM/__init__.py +37 -0
  7. neverlib/LLM/bailian.py +342 -0
  8. neverlib/LLM/image.py +73 -0
  9. neverlib/LLM/text.py +32 -0
  10. neverlib/QA/ImpactNoiseRejection.py +4 -4
  11. neverlib/QA/gen_init.py +13 -16
  12. neverlib/__init__.py +5 -5
  13. neverlib/audio_aug/HarmonicDistortion.py +11 -11
  14. neverlib/audio_aug/__init__.py +54 -0
  15. neverlib/audio_aug/audio_aug.py +18 -18
  16. neverlib/audio_aug/coder_aug.py +25 -25
  17. neverlib/audio_aug/coder_aug2.py +10 -10
  18. neverlib/audio_aug/loss_packet_aug.py +16 -16
  19. neverlib/audio_aug/quant_aug.py +7 -7
  20. neverlib/data_analyze/README.md +1 -1
  21. neverlib/data_analyze/__init__.py +44 -0
  22. neverlib/data_analyze/dataset_analyzer.py +2 -2
  23. neverlib/data_analyze/quality_metrics.py +12 -12
  24. neverlib/data_analyze/statistics.py +1 -1
  25. neverlib/data_analyze/visualization.py +1 -1
  26. neverlib/filter/README.md +3 -3
  27. neverlib/filter/__init__.py +23 -0
  28. neverlib/filter/auto_eq/README.md +2 -2
  29. neverlib/filter/auto_eq/__init__.py +36 -0
  30. neverlib/filter/auto_eq/de_eq.py +1 -1
  31. neverlib/filter/auto_eq/ga_eq_advanced.py +2 -2
  32. neverlib/filter/auto_eq/ga_eq_basic.py +1 -1
  33. neverlib/filter/biquad.py +1 -1
  34. neverlib/metrics/__init__.py +36 -0
  35. neverlib/metrics/dnsmos.py +2 -2
  36. neverlib/metrics/lpc_lsp.py +8 -8
  37. neverlib/metrics/snr.py +5 -5
  38. neverlib/metrics/spec.py +23 -23
  39. neverlib/metrics/test_pesq.py +3 -3
  40. neverlib/tests/__init__.py +17 -0
  41. neverlib/tests/test_imports.py +1 -1
  42. neverlib/utils/README.md +1 -1
  43. neverlib/utils/__init__.py +53 -1
  44. neverlib/utils/audio_split.py +1 -1
  45. neverlib/utils/checkGPU.py +2 -2
  46. neverlib/utils/floder.py +6 -6
  47. neverlib/utils/lazy_expose.py +1 -1
  48. neverlib/utils/lazy_module.py +6 -6
  49. neverlib/utils/message.py +2 -3
  50. neverlib/utils/utils.py +108 -2
  51. neverlib/vad/README.md +5 -5
  52. neverlib/vad/__init__.py +38 -0
  53. neverlib/vad/utils.py +1 -1
  54. {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/METADATA +3 -3
  55. {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/RECORD +58 -57
  56. neverlib/QA/impact_noise_rejection.png +0 -0
  57. neverlib/QA/out.pcm +0 -0
  58. neverlib/QA/out.wav +0 -0
  59. {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/WHEEL +0 -0
  60. {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/licenses/LICENSE +0 -0
  61. {neverlib-0.2.9.dist-info → neverlib-0.3.0.dist-info}/top_level.txt +0 -0
@@ -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分钟平均一次,每10分钟检查一次
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: 路径层级互换(支持 Windows / Linux / macOS
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📂 文件路径变更预览(前 5 个):\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)
@@ -21,7 +21,7 @@ def attach_and_expose_all(pkg_name: str, g: dict, submodules, submod_attrs=None)
21
21
  raise
22
22
 
23
23
  def __dir__():
24
- # 避免为补全而导入所有子模块,保持冷启动轻量
24
+ # 避免为补全而导入所有子模块, 保持冷启动轻量
25
25
  # 仅返回 attach 提供的名称 + 已经懒暴露过的名称
26
26
  return sorted(set(_dir()) | _all_set)
27
27
 
@@ -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
- # 若存在代理模块,则不预设 __all__,避免阻断 import * 的 dir() 行为
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
- # 将懒加载键与现有属性合并,便于 IDE 补全
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, "plain", "utf-8")
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: 邮件正文内容(支持HTML格式)
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]。默认为 None, 此时:
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
@@ -38,7 +38,7 @@ def vad2nad(vad, total_length):
38
38
  """根据语音时间戳, 提取噪声时间戳 (优化版)
39
39
  Args:
40
40
  vad: [{start:xxx, end:xxx}, ...]
41
- total_length: 音频总长度(样本数)
41
+ total_length: 音频总长度(样本数)
42
42
  Returns:
43
43
  nad: [{start:xxx, end:xxx}, ...] 噪声时间戳列表
44
44
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: neverlib
3
- Version: 0.2.9
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(语音活动检测)的Python工具库。
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许可证。详情请参阅LICENSE文件。
132
+ 本项目采用MIT许可证. 详情请参阅LICENSE文件.
133
133
 
134
134
  ## 作者
135
135
 
@@ -1,39 +1,40 @@
1
- neverlib/__init__.py,sha256=Kq_ZWgw8gFiqQIN2gPzXkgti_zXUi2DYx0CD-88ExZU,2048
2
- neverlib/Docs/audio_aug/test_volume.ipynb,sha256=K2qXRe8Md8rfiKsOhsGqAuEzxj2EPvAdRGaXDl0YrYY,18375
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=CRKHXUozpTaZXpdZSBRas3776SONAOUrWbkjYlMbvgY,3091
7
- neverlib/Docs/filter/filter_family.ipynb,sha256=EgXqDgP52KpdXkU_gPROb6ks5vZPzUVNf9Swrry0RRk,1135214
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=n5lmmFEnrr5ESigMq_yAwTdVz6jaD84fHwEIf5JnOUg,324763
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=P78NqxCfwbbEJYQsqA1NV8vpxQxWNxy2lDX85zO_yD4,364207
19
- neverlib/QA/ImpactNoiseRejection.py,sha256=n9-Rpgbi8AL6EC8tu98duiBeOV1Jz86g-t7qkjUVyU0,3885
20
- neverlib/QA/gen_init.py,sha256=9QysSB2vk1OR9FmuuKcFtShtiJeCTnvvg6RBlxOUcQU,8127
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/QA/impact_noise_rejection.png,sha256=oWQ_7mJkc8Qs5htDlShIbZn92CpLSaS7sRSw5zqKR3Q,62425
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=aTJupEjzlmSzmHcdp-gb1cQd-o9rnnT2J29-IZD8SYQ,1301
31
- neverlib/audio_aug/audio_aug.py,sha256=5Eqtx_v2RLtNEwh1gTyfqSHBirwz1JCgDrjgt4WYBlY,16674
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=1JtNadfUVbOw8Xg3vpp0cTl87HHuDedHZ3zbUZ2fWW0,8347
34
- neverlib/audio_aug/coder_aug2.py,sha256=wniOuOWb3vLqgi8N-oDEfTHuEtQtWZ5O4HhmUfflIlM,4733
35
- neverlib/audio_aug/loss_packet_aug.py,sha256=z0H6u4ug6FAd2beVYeUQR24GiDg-dfdeEhOTPpGiMms,4862
36
- neverlib/audio_aug/quant_aug.py,sha256=yUH28tED-oYJxrD3z4rjitDKM6S1ZDtkHtjM2-NSSZY,2608
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=jqPmD--kinoTqlcpu51teospu9p_ijjtjLdFGTMnBc8,6051
45
- neverlib/data_analyze/__init__.py,sha256=PTobY-7N40PzfZiZ5-2JaU_VUVktb5xw6HgD0s-eXEg,1138
46
- neverlib/data_analyze/dataset_analyzer.py,sha256=JawpMrahP2YD9mX6kIGJrBRtC7sqYJJdY1R5pGBUDDY,21902
47
- neverlib/data_analyze/quality_metrics.py,sha256=wOivyQ4JXdyiq1STLCSdBDtoW8Kju-Zc1RZMyPNmNjY,11726
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=9b9S_7eBoklNfz9cRAs8oWlRnDSjuark4SwTrdFkAGw,12957
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=kaJBfh1ixlGeVfr4yNRfZlzTvfhbdnIW4LOhbGqwYKM,16439
53
- neverlib/filter/README.md,sha256=X1VQRnSxzjkeR_16ylbAqRbYLAlf4c5stkHzmWlCzlo,3801
54
- neverlib/filter/__init__.py,sha256=7787a3wwVkSdeuDEuEeU6Q1CLg1wp6r8lPqURkpV_zY,450
55
- neverlib/filter/biquad.py,sha256=EEGAqGwTQGG5O49Q855hb475WVX0oOu3zq-Gn_ppIto,1438
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=-qcqLxIQPo31YfzABHK-_tcqksLdOTHz8ZG3izz46Ug,4968
59
- neverlib/filter/auto_eq/__init__.py,sha256=LQkDdkHYbwusic8xkP1a6MKswm96INlxYgkizqvmsBY,849
60
- neverlib/filter/auto_eq/de_eq.py,sha256=XlbFWDPOdGHI97fbU9wXd4h3Aiosv1T5k_e-VEUcDMQ,16411
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=qu9J5ugWeEAcXboV9Fv1g60bMOkIebw9ZwYT_zQq5pI,23458
63
- neverlib/filter/auto_eq/ga_eq_basic.py,sha256=gbPqJcimrThzhCjgWkg4DuWpeswRRqxNKMC4I07rp6g,15431
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=36KYCcXeQWyAed9XnCox-2fx7pjTXy42GPdXf4TmurU,685
66
- neverlib/metrics/dnsmos.py,sha256=xfrKxYR9mMDkr2HQ7AT_7V-TtdRpy2MybjsJ2AuLXus,4590
67
- neverlib/metrics/lpc_lsp.py,sha256=OXKfillGKo55M2aa7LzyvDGcjtOxdOJquWgqC1yV4Ho,3710
68
- neverlib/metrics/snr.py,sha256=l8cYOUuEYeKc5LzQ3q5n4-wql3PcuJfEYcsjBAEQt5w,6360
69
- neverlib/metrics/spec.py,sha256=OtiHaoHzRuxHtLSS5HVmaisJsD2SPi13T3MphGyeUHc,5442
70
- neverlib/metrics/test_pesq.py,sha256=nrvd5p3JnMO5jgAuFwmm4rNoZ7riczsB8iFu1Jx8Gxs,1211
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=MypwYrdK9VKF34s8Pl4jmxDh93L1yZqbxKcRR4TJL-Q,402
88
- neverlib/tests/test_imports.py,sha256=3LGZaHZLAz2oJq2ewfRbnWNeAKikHih6d9CIdyqhb0E,547
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=bzYPuJ-IgpOTBJCzG_XcMX6yLl4oOuq55kRqS1--pxw,939
92
- neverlib/utils/__init__.py,sha256=c6DFln8YcPD0-AXyoYSjh0OOhOqKDwtLkI-DCsRi_GA,1129
93
- neverlib/utils/audio_split.py,sha256=otV8Ysk2pQsvNiM-gO5nTMnS1AAzHX0CFKT6VfPRaDA,12340
94
- neverlib/utils/checkGPU.py,sha256=2yduamduF083HR_OH9yXxI84D_p0NID-3Ip1Djd1Rl4,3792
95
- neverlib/utils/floder.py,sha256=Qcuw0xLzRZzsgptAkk9jcow1qRgVWiujdPIQq9KRWgc,3820
96
- neverlib/utils/lazy_expose.py,sha256=3h1LidRoab_ylv574-dOBjnJpOKWgLFgXpTWrvqce9E,1027
97
- neverlib/utils/lazy_module.py,sha256=JdEdAYnbHmolB-hktrcuOlzR4Ee5jgu6V0XjDNqioVM,3995
98
- neverlib/utils/message.py,sha256=XV7m0yUsR7Zq-olS-vL1oUEatSgh-Am8pyB_QPLzQok,4121
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=mP74au7PboUllHhWhvdQ0gFspECi3U-gIBrKG7v4P28,12175
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=3aFnGmz3uhg-kQVOGei40Ei3Lx5P71r2rk0Xl8-JZXI,1490
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=MgQXDgeqFZN9MqLrYn0hS9Dz5OqY0nTjHW5fQoZ5LGk,967
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=rEWEzGv2E_iTHIdQxY361iEW4Hq9MRDwkMBQMTA9mGw,3049
115
- neverlib-0.2.9.dist-info/licenses/LICENSE,sha256=h-U7vhFdQhieyaNCiA_utrRNMk1rjfrBAUJVodgkfsw,1096
116
- neverlib-0.2.9.dist-info/METADATA,sha256=9DqFSXqBctOApNvdoaKcX2MviFhU7sgGfCA51ah3Ex4,3374
117
- neverlib-0.2.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
- neverlib-0.2.9.dist-info/top_level.txt,sha256=QqwYFuDiY_iFTz0Kx8av6zKCP_s4M5NiMTNsIXOy8Po,9
119
- neverlib-0.2.9.dist-info/RECORD,,
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