neverlib 0.2.2__tar.gz → 0.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {neverlib-0.2.2/neverlib.egg-info → neverlib-0.2.4}/PKG-INFO +120 -120
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011311.py +0 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011331.py +75 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011342.py +57 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011352.py +57 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011403.py +57 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011413.py +57 -0
- neverlib-0.2.4/neverlib/.history/Docs/audio_aug/test_snr_20250806011435.py +55 -0
- neverlib-0.2.4/neverlib/.history/Docs/vad/1_20250810032405.py +0 -0
- neverlib-0.2.4/neverlib/.history/Docs/vad/1_20250810032417.py +39 -0
- neverlib-0.2.2/neverlib/audio_aug/audio_aug.py → neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806010451.py +4 -5
- neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806010750.py +138 -0
- neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806010759.py +140 -0
- neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806010803.py +140 -0
- neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806010809.py +140 -0
- neverlib-0.2.4/neverlib/.history/audio_aug/audio_aug_20250806011108.py +140 -0
- neverlib-0.2.4/neverlib/.history/dataAnalyze/__init___20250805234204.py +87 -0
- neverlib-0.2.4/neverlib/.history/dataAnalyze/__init___20250806204125.py +14 -0
- neverlib-0.2.4/neverlib/.history/dataAnalyze/__init___20250806204139.py +14 -0
- neverlib-0.2.4/neverlib/.history/dataAnalyze/__init___20250806204159.py +14 -0
- neverlib-0.2.4/neverlib/.history/filter/__init___20250820103351.py +70 -0
- neverlib-0.2.4/neverlib/.history/filter/__init___20250821102348.py +70 -0
- neverlib-0.2.4/neverlib/.history/filter/__init___20250821102405.py +14 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250819213121.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102241.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102259.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102307.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102310.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102318.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/__init___20250821102507.py +36 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/de_eq_20250820103848.py +361 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/de_eq_20250821102422.py +360 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250805234206.py +75 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820140732.py +75 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820140745.py +75 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820140816.py +75 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820140938.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141003.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141006.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141019.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141049.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141211.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141227.py +77 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141311.py +78 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141340.py +78 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141712.py +78 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141733.py +78 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250820141755.py +78 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250821102434.py +76 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250821102500.py +76 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/freq_eq_20250821102502.py +76 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250820102957.py +380 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250820113054.py +380 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250820113150.py +380 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250820113520.py +385 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250820113525.py +385 -0
- neverlib-0.2.4/neverlib/.history/filter/auto_eq/ga_eq_basic_20250821102212.py +385 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250806001612.py +160 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815180659.py +160 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815180701.py +158 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181321.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181327.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181331.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181620.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181631.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181742.py +154 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181824.py +153 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181834.py +153 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815181922.py +153 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815182011.py +147 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815182036.py +144 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815182936.py +143 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815182942.py +143 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183032.py +137 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183101.py +144 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183121.py +144 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183123.py +143 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183214.py +143 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183240.py +143 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183248.py +144 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183407.py +142 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183409.py +142 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183431.py +142 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183507.py +140 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183513.py +139 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183618.py +139 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183709.py +140 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183756.py +137 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183815.py +128 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183827.py +129 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183913.py +117 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815183914.py +117 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815184003.py +118 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815184040.py +118 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815184049.py +118 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815184104.py +117 -0
- neverlib-0.2.4/neverlib/.history/metrics/dnsmos_20250815184200.py +117 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816015944.py +128 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020142.py +128 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020156.py +128 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020554.py +130 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020600.py +125 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020631.py +120 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_lsp_metric_20250816020746.py +118 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816013111.py +0 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816013129.py +121 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015430.py +103 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015535.py +96 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015542.py +96 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015636.py +97 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015658.py +104 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015703.py +100 -0
- neverlib-0.2.4/neverlib/.history/metrics/lpc_me_20250816015945.py +128 -0
- neverlib-0.2.4/neverlib/.history/metrics/snr_20250806010538.py +177 -0
- neverlib-0.2.4/neverlib/.history/metrics/snr_20250806211634.py +184 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250805234209.py +45 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816135530.py +11 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816135654.py +16 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816135736.py +68 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816135904.py +75 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816135921.py +82 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140111.py +82 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140543.py +136 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140559.py +172 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140602.py +172 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140608.py +172 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140654.py +148 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140705.py +144 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140755.py +138 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140823.py +170 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140832.py +170 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140833.py +170 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816140922.py +147 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816141148.py +107 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816141219.py +123 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816141732.py +178 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816141740.py +178 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816142030.py +178 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816142107.py +135 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816142126.py +135 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816142410.py +135 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_20250816142415.py +136 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135156.py +0 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135226.py +5 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135227.py +10 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135306.py +15 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135442.py +31 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135448.py +31 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135520.py +29 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135537.py +63 -0
- neverlib-0.2.4/neverlib/.history/metrics/spec_metric_20250816135653.py +65 -0
- neverlib-0.2.2/neverlib/vad/PreProcess.py → neverlib-0.2.4/neverlib/.history/vad/PreProcess_20250805234211.py +2 -2
- neverlib-0.2.4/neverlib/.history/vad/PreProcess_20250809232455.py +63 -0
- neverlib-0.2.4/neverlib/.history/vad/PreProcess_20250816020725.py +66 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_Silero_20250805234211.py +50 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_Silero_20250809232456.py +50 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_WebRTC_20250805234211.py +61 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_WebRTC_20250809232456.py +61 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_funasr_20250805234211.py +54 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_funasr_20250809232456.py +54 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_vadlib_20250805234211.py +70 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_vadlib_20250809232455.py +70 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_whisper_20250805234211.py +55 -0
- neverlib-0.2.4/neverlib/.history/vad/VAD_whisper_20250809232456.py +55 -0
- neverlib-0.2.4/neverlib/.specstory/.what-is-this.md +69 -0
- neverlib-0.2.4/neverlib/.specstory/history/2025-08-05_17-06Z-/350/277/231/344/270/200/346/255/245/347/232/204/347/233/256/347/232/204/346/230/257/344/273/200/344/271/210.md +424 -0
- neverlib-0.2.4/neverlib/Docs/audio_aug/test_snr.py +55 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/__init__.py +2 -2
- neverlib-0.2.4/neverlib/audio_aug/HarmonicDistortion.py +79 -0
- neverlib-0.2.4/neverlib/audio_aug/TFDrop.py +41 -0
- neverlib-0.2.4/neverlib/audio_aug/TFMask.py +56 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/audio_aug/__init__.py +1 -1
- neverlib-0.2.4/neverlib/audio_aug/audio_aug.py +140 -0
- neverlib-0.2.4/neverlib/audio_aug/clip_aug.py +41 -0
- neverlib-0.2.4/neverlib/audio_aug/coder_aug.py +209 -0
- neverlib-0.2.4/neverlib/audio_aug/coder_aug2.py +118 -0
- neverlib-0.2.4/neverlib/audio_aug/loss_packet_aug.py +103 -0
- neverlib-0.2.4/neverlib/audio_aug/quant_aug.py +78 -0
- neverlib-0.2.4/neverlib/data_analyze/README.md +234 -0
- neverlib-0.2.4/neverlib/data_analyze/__init__.py +14 -0
- neverlib-0.2.4/neverlib/data_analyze/dataset_analyzer.py +590 -0
- neverlib-0.2.4/neverlib/data_analyze/quality_metrics.py +364 -0
- neverlib-0.2.4/neverlib/data_analyze/rms_distrubution.py +62 -0
- neverlib-0.2.4/neverlib/data_analyze/spectral_analysis.py +218 -0
- neverlib-0.2.4/neverlib/data_analyze/statistics.py +406 -0
- neverlib-0.2.4/neverlib/data_analyze/temporal_features.py +126 -0
- neverlib-0.2.4/neverlib/data_analyze/visualization.py +468 -0
- neverlib-0.2.4/neverlib/filter/README.md +101 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/filter/__init__.py +7 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/README.md +165 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/__init__.py +36 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/de_eq.py +360 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/freq_eq.py +76 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/ga_eq_advanced.py +577 -0
- neverlib-0.2.4/neverlib/filter/auto_eq/ga_eq_basic.py +385 -0
- neverlib-0.2.4/neverlib/filter/biquad.py +45 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/filter/common.py +5 -6
- neverlib-0.2.4/neverlib/filter/core.py +339 -0
- neverlib-0.2.4/neverlib/metrics/dnsmos.py +117 -0
- neverlib-0.2.4/neverlib/metrics/lpc_lsp.py +118 -0
- neverlib-0.2.4/neverlib/metrics/snr.py +184 -0
- neverlib-0.2.4/neverlib/metrics/spec.py +136 -0
- neverlib-0.2.4/neverlib/metrics/test_pesq.py +35 -0
- neverlib-0.2.4/neverlib/metrics/time.py +68 -0
- neverlib-0.2.4/neverlib/tests/test_vad.py +21 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/utils/audio_split.py +2 -1
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/utils/message.py +4 -4
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/utils/utils.py +36 -16
- neverlib-0.2.4/neverlib/vad/PreProcess.py +66 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/README.md +10 -10
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_Energy.py +1 -1
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_Silero.py +2 -2
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_WebRTC.py +2 -2
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_funasr.py +2 -2
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_statistics.py +3 -3
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_vadlib.py +3 -3
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/VAD_whisper.py +2 -2
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/__init__.py +1 -1
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/class_get_speech.py +4 -4
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/vad/class_vad.py +1 -1
- neverlib-0.2.4/neverlib/vad/utils.py +67 -0
- {neverlib-0.2.2 → neverlib-0.2.4/neverlib.egg-info}/PKG-INFO +120 -120
- neverlib-0.2.4/neverlib.egg-info/SOURCES.txt +233 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/pyproject.toml +1 -1
- {neverlib-0.2.2 → neverlib-0.2.4}/setup.cfg +4 -4
- neverlib-0.2.2/neverlib/Documents/vad/VAD_Energy.ipynb +0 -159
- neverlib-0.2.2/neverlib/Documents/vad/VAD_Silero.ipynb +0 -305
- neverlib-0.2.2/neverlib/Documents/vad/VAD_WebRTC.ipynb +0 -183
- neverlib-0.2.2/neverlib/Documents/vad/VAD_funasr.ipynb +0 -179
- neverlib-0.2.2/neverlib/Documents/vad/VAD_ppasr.ipynb +0 -175
- neverlib-0.2.2/neverlib/Documents/vad/VAD_statistics.ipynb +0 -522
- neverlib-0.2.2/neverlib/Documents/vad/VAD_vadlib.ipynb +0 -184
- neverlib-0.2.2/neverlib/Documents/vad/VAD_whisper.ipynb +0 -430
- neverlib-0.2.2/neverlib/utils/waveform_analyzer.py +0 -51
- neverlib-0.2.2/neverlib/vad/utils.py +0 -25
- neverlib-0.2.2/neverlib/wav_data/000_short.wav +0 -0
- neverlib-0.2.2/neverlib.egg-info/SOURCES.txt +0 -44
- {neverlib-0.2.2 → neverlib-0.2.4}/LICENSE +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/MANIFEST.in +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/README.md +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/tests/__init__.py +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/tests/test_preprocess.py +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/utils/__init__.py +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib/utils/checkGPU.py +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib.egg-info/dependency_links.txt +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib.egg-info/requires.txt +0 -0
- {neverlib-0.2.2 → neverlib-0.2.4}/neverlib.egg-info/top_level.txt +0 -0
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: neverlib
|
|
3
|
-
Version: 0.2.
|
|
4
|
-
Summary: A successful sign for python setup
|
|
5
|
-
Author-email: "Never.Ling" <1786088386@qq.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://www.cnblogs.com/LXP-Never
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/yourusername/neverlib/issues
|
|
9
|
-
Project-URL: Documentation, https://github.com/yourusername/neverlib
|
|
10
|
-
Project-URL: Source Code, https://github.com/yourusername/neverlib
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Requires-Python: >=3.6
|
|
15
|
-
Description-Content-Type: text/markdown
|
|
16
|
-
License-File: LICENSE
|
|
17
|
-
Requires-Dist: numpy
|
|
18
|
-
Requires-Dist: noisereduce
|
|
19
|
-
Requires-Dist: soundfile
|
|
20
|
-
Requires-Dist: matplotlib
|
|
21
|
-
Requires-Dist: scipy
|
|
22
|
-
Requires-Dist: tqdm
|
|
23
|
-
Requires-Dist: joblib
|
|
24
|
-
Requires-Dist: pydub
|
|
25
|
-
Provides-Extra: vad
|
|
26
|
-
Requires-Dist: torch; extra == "vad"
|
|
27
|
-
Requires-Dist: torchaudio; extra == "vad"
|
|
28
|
-
Requires-Dist: librosa; extra == "vad"
|
|
29
|
-
Requires-Dist: webrtcvad; extra == "vad"
|
|
30
|
-
Requires-Dist: funasr; extra == "vad"
|
|
31
|
-
Requires-Dist: openai-whisper; extra == "vad"
|
|
32
|
-
Requires-Dist: transformers; extra == "vad"
|
|
33
|
-
Provides-Extra: gpu
|
|
34
|
-
Requires-Dist: GPUtil; extra == "gpu"
|
|
35
|
-
Provides-Extra: all
|
|
36
|
-
Requires-Dist: torch; extra == "all"
|
|
37
|
-
Requires-Dist: torchaudio; extra == "all"
|
|
38
|
-
Requires-Dist: librosa; extra == "all"
|
|
39
|
-
Requires-Dist: webrtcvad; extra == "all"
|
|
40
|
-
Requires-Dist: funasr; extra == "all"
|
|
41
|
-
Requires-Dist: openai-whisper; extra == "all"
|
|
42
|
-
Requires-Dist: transformers; extra == "all"
|
|
43
|
-
Requires-Dist: GPUtil; extra == "all"
|
|
44
|
-
Dynamic: license-file
|
|
45
|
-
|
|
46
|
-
# NeverLib
|
|
47
|
-
|
|
48
|
-
一个用于音频处理和VAD(语音活动检测)的Python工具库。
|
|
49
|
-
|
|
50
|
-
## 安装
|
|
51
|
-
|
|
52
|
-
### 基本安装
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
pip install neverlib
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 安装带有VAD功能的版本
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
pip install neverlib[vad]
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### 安装带有GPU支持的版本
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
pip install neverlib[gpu]
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### 安装所有功能
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
pip install neverlib[all]
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## 依赖项
|
|
77
|
-
|
|
78
|
-
基本依赖项:
|
|
79
|
-
- numpy
|
|
80
|
-
- noisereduce
|
|
81
|
-
- soundfile
|
|
82
|
-
- matplotlib
|
|
83
|
-
- scipy
|
|
84
|
-
- tqdm
|
|
85
|
-
- joblib
|
|
86
|
-
- pydub
|
|
87
|
-
|
|
88
|
-
VAD功能依赖项:
|
|
89
|
-
- torch
|
|
90
|
-
- torchaudio
|
|
91
|
-
- librosa
|
|
92
|
-
- webrtcvad
|
|
93
|
-
- funasr
|
|
94
|
-
- openai-whisper
|
|
95
|
-
- transformers
|
|
96
|
-
|
|
97
|
-
## 使用示例
|
|
98
|
-
|
|
99
|
-
```python
|
|
100
|
-
import neverlib
|
|
101
|
-
|
|
102
|
-
# 使用VAD功能
|
|
103
|
-
from neverlib import vad
|
|
104
|
-
|
|
105
|
-
# 使用工具函数
|
|
106
|
-
from neverlib import utils
|
|
107
|
-
|
|
108
|
-
# 发送邮件
|
|
109
|
-
from neverlib.message import seed_QQEmail
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## 许可证
|
|
113
|
-
|
|
114
|
-
本项目采用MIT许可证。详情请参阅LICENSE文件。
|
|
115
|
-
|
|
116
|
-
## 作者
|
|
117
|
-
|
|
118
|
-
凌逆战 | Never
|
|
119
|
-
|
|
120
|
-
博客:https://www.cnblogs.com/LXP-Never
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: neverlib
|
|
3
|
+
Version: 0.2.4
|
|
4
|
+
Summary: A successful sign for python setup
|
|
5
|
+
Author-email: "Never.Ling" <1786088386@qq.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://www.cnblogs.com/LXP-Never
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/yourusername/neverlib/issues
|
|
9
|
+
Project-URL: Documentation, https://github.com/yourusername/neverlib
|
|
10
|
+
Project-URL: Source Code, https://github.com/yourusername/neverlib
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Requires-Python: >=3.6
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE
|
|
17
|
+
Requires-Dist: numpy
|
|
18
|
+
Requires-Dist: noisereduce
|
|
19
|
+
Requires-Dist: soundfile
|
|
20
|
+
Requires-Dist: matplotlib
|
|
21
|
+
Requires-Dist: scipy
|
|
22
|
+
Requires-Dist: tqdm
|
|
23
|
+
Requires-Dist: joblib
|
|
24
|
+
Requires-Dist: pydub
|
|
25
|
+
Provides-Extra: vad
|
|
26
|
+
Requires-Dist: torch; extra == "vad"
|
|
27
|
+
Requires-Dist: torchaudio; extra == "vad"
|
|
28
|
+
Requires-Dist: librosa; extra == "vad"
|
|
29
|
+
Requires-Dist: webrtcvad; extra == "vad"
|
|
30
|
+
Requires-Dist: funasr; extra == "vad"
|
|
31
|
+
Requires-Dist: openai-whisper; extra == "vad"
|
|
32
|
+
Requires-Dist: transformers; extra == "vad"
|
|
33
|
+
Provides-Extra: gpu
|
|
34
|
+
Requires-Dist: GPUtil; extra == "gpu"
|
|
35
|
+
Provides-Extra: all
|
|
36
|
+
Requires-Dist: torch; extra == "all"
|
|
37
|
+
Requires-Dist: torchaudio; extra == "all"
|
|
38
|
+
Requires-Dist: librosa; extra == "all"
|
|
39
|
+
Requires-Dist: webrtcvad; extra == "all"
|
|
40
|
+
Requires-Dist: funasr; extra == "all"
|
|
41
|
+
Requires-Dist: openai-whisper; extra == "all"
|
|
42
|
+
Requires-Dist: transformers; extra == "all"
|
|
43
|
+
Requires-Dist: GPUtil; extra == "all"
|
|
44
|
+
Dynamic: license-file
|
|
45
|
+
|
|
46
|
+
# NeverLib
|
|
47
|
+
|
|
48
|
+
一个用于音频处理和VAD(语音活动检测)的Python工具库。
|
|
49
|
+
|
|
50
|
+
## 安装
|
|
51
|
+
|
|
52
|
+
### 基本安装
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
pip install neverlib
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 安装带有VAD功能的版本
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pip install neverlib[vad]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 安装带有GPU支持的版本
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
pip install neverlib[gpu]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 安装所有功能
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install neverlib[all]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 依赖项
|
|
77
|
+
|
|
78
|
+
基本依赖项:
|
|
79
|
+
- numpy
|
|
80
|
+
- noisereduce
|
|
81
|
+
- soundfile
|
|
82
|
+
- matplotlib
|
|
83
|
+
- scipy
|
|
84
|
+
- tqdm
|
|
85
|
+
- joblib
|
|
86
|
+
- pydub
|
|
87
|
+
|
|
88
|
+
VAD功能依赖项:
|
|
89
|
+
- torch
|
|
90
|
+
- torchaudio
|
|
91
|
+
- librosa
|
|
92
|
+
- webrtcvad
|
|
93
|
+
- funasr
|
|
94
|
+
- openai-whisper
|
|
95
|
+
- transformers
|
|
96
|
+
|
|
97
|
+
## 使用示例
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
import neverlib
|
|
101
|
+
|
|
102
|
+
# 使用VAD功能
|
|
103
|
+
from neverlib import vad
|
|
104
|
+
|
|
105
|
+
# 使用工具函数
|
|
106
|
+
from neverlib import utils
|
|
107
|
+
|
|
108
|
+
# 发送邮件
|
|
109
|
+
from neverlib.message import seed_QQEmail
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 许可证
|
|
113
|
+
|
|
114
|
+
本项目采用MIT许可证。详情请参阅LICENSE文件。
|
|
115
|
+
|
|
116
|
+
## 作者
|
|
117
|
+
|
|
118
|
+
凌逆战 | Never
|
|
119
|
+
|
|
120
|
+
博客:https://www.cnblogs.com/LXP-Never
|
|
File without changes
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def add_noise(clean, snr_range, snr_aug_rate):
|
|
21
|
+
"""
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr_range: snr范围 [min, max]
|
|
25
|
+
snr_aug_rate: snr增强率
|
|
26
|
+
Returns:
|
|
27
|
+
"""
|
|
28
|
+
if random.random() < snr_aug_rate:
|
|
29
|
+
snr = random.uniform(snr_range[0], snr_range[1])
|
|
30
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
31
|
+
noisy = snr_aug_changeNoise(clean, noise, snr)
|
|
32
|
+
else:
|
|
33
|
+
noisy = clean
|
|
34
|
+
snr = 100
|
|
35
|
+
return noisy, snr
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def snr_aug1(clean, snr):
|
|
39
|
+
""" 白噪
|
|
40
|
+
Args:
|
|
41
|
+
clean: (*, C)
|
|
42
|
+
snr: snr值
|
|
43
|
+
Returns:
|
|
44
|
+
"""
|
|
45
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
46
|
+
|
|
47
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
48
|
+
|
|
49
|
+
return noisy
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def snr_aug2(clean, snr):
|
|
53
|
+
"""
|
|
54
|
+
Args:
|
|
55
|
+
clean: (*, C)
|
|
56
|
+
snr_range: snr范围 [min, max]
|
|
57
|
+
snr_aug_rate: snr增强率
|
|
58
|
+
Returns:
|
|
59
|
+
"""
|
|
60
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
61
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
62
|
+
return noisy
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
if __name__ == "__main__":
|
|
66
|
+
clean_path = "../wav_data/TIMIT.wav"
|
|
67
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
68
|
+
|
|
69
|
+
noisy1 = snr_aug1(clean, 10)
|
|
70
|
+
noisy2 = snr_aug2(clean, 10)
|
|
71
|
+
print(clean.shape)
|
|
72
|
+
print(noisy1.shape, noisy2.shape)
|
|
73
|
+
|
|
74
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
75
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def snr_aug1(clean, snr):
|
|
21
|
+
""" 白噪
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr: snr值
|
|
25
|
+
Returns:
|
|
26
|
+
"""
|
|
27
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
28
|
+
|
|
29
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
30
|
+
|
|
31
|
+
return noisy
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def snr_aug2(clean, snr):
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
clean: (*, C)
|
|
38
|
+
snr_range: snr范围 [min, max]
|
|
39
|
+
snr_aug_rate: snr增强率
|
|
40
|
+
Returns:
|
|
41
|
+
"""
|
|
42
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
43
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
44
|
+
return noisy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
clean_path = "../wav_data/TIMIT.wav"
|
|
49
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
50
|
+
|
|
51
|
+
noisy1 = snr_aug1(clean, 10)
|
|
52
|
+
noisy2 = snr_aug2(clean, 10)
|
|
53
|
+
print(clean.shape)
|
|
54
|
+
print(noisy1.shape, noisy2.shape)
|
|
55
|
+
|
|
56
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
57
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def snr_aug1(clean, snr):
|
|
21
|
+
""" 白噪
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr: snr值
|
|
25
|
+
Returns:
|
|
26
|
+
"""
|
|
27
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
28
|
+
|
|
29
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
30
|
+
|
|
31
|
+
return noisy
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def snr_aug2(clean, snr):
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
clean: (*, C)
|
|
38
|
+
snr_range: snr范围 [min, max]
|
|
39
|
+
snr_aug_rate: snr增强率
|
|
40
|
+
Returns:
|
|
41
|
+
"""
|
|
42
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
43
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
44
|
+
return noisy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
clean_path = "../../wav_data/TIMIT.wav"
|
|
49
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
50
|
+
|
|
51
|
+
noisy1 = snr_aug1(clean, 10)
|
|
52
|
+
noisy2 = snr_aug2(clean, 10)
|
|
53
|
+
print(clean.shape)
|
|
54
|
+
print(noisy1.shape, noisy2.shape)
|
|
55
|
+
|
|
56
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
57
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def snr_aug1(clean, snr):
|
|
21
|
+
""" 白噪
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr: snr值
|
|
25
|
+
Returns:
|
|
26
|
+
"""
|
|
27
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
28
|
+
|
|
29
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
30
|
+
|
|
31
|
+
return noisy
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def snr_aug2(clean, snr):
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
clean: (*, C)
|
|
38
|
+
snr_range: snr范围 [min, max]
|
|
39
|
+
snr_aug_rate: snr增强率
|
|
40
|
+
Returns:
|
|
41
|
+
"""
|
|
42
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
43
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
44
|
+
return noisy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
clean_path = "../../data/TIMIT.wav"
|
|
49
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
50
|
+
|
|
51
|
+
noisy1 = snr_aug1(clean, 10)
|
|
52
|
+
noisy2 = snr_aug2(clean, 10)
|
|
53
|
+
print(clean.shape)
|
|
54
|
+
print(noisy1.shape, noisy2.shape)
|
|
55
|
+
|
|
56
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
57
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def snr_aug1(clean, snr):
|
|
21
|
+
""" 白噪
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr: snr值
|
|
25
|
+
Returns:
|
|
26
|
+
"""
|
|
27
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
28
|
+
|
|
29
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
30
|
+
|
|
31
|
+
return noisy
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def snr_aug2(clean, snr):
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
clean: (*, C)
|
|
38
|
+
snr_range: snr范围 [min, max]
|
|
39
|
+
snr_aug_rate: snr增强率
|
|
40
|
+
Returns:
|
|
41
|
+
"""
|
|
42
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
43
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
44
|
+
return noisy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
clean_path = "../../data/white.wav"
|
|
49
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
50
|
+
|
|
51
|
+
noisy1 = snr_aug1(clean, 10)
|
|
52
|
+
noisy2 = snr_aug2(clean, 10)
|
|
53
|
+
print(clean.shape)
|
|
54
|
+
print(noisy1.shape, noisy2.shape)
|
|
55
|
+
|
|
56
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
57
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-03-24 10:00:14
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never
|
|
8
|
+
# Date: 2024/1/29
|
|
9
|
+
"""
|
|
10
|
+
snr增强, 对安静的测试集加指定snr的白噪
|
|
11
|
+
"""
|
|
12
|
+
import numpy as np
|
|
13
|
+
import random
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
from neverlib.metrics.snr import get_snr
|
|
16
|
+
from neverlib.audio_aug import snr_aug_changeNoise, snr_aug_changeNoise_v2
|
|
17
|
+
from neverlib.utils import EPS
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def snr_aug1(clean, snr):
|
|
21
|
+
""" 白噪
|
|
22
|
+
Args:
|
|
23
|
+
clean: (*, C)
|
|
24
|
+
snr: snr值
|
|
25
|
+
Returns:
|
|
26
|
+
"""
|
|
27
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
28
|
+
|
|
29
|
+
noisy, _ = snr_aug_changeNoise(clean, noise, snr)
|
|
30
|
+
|
|
31
|
+
return noisy
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def snr_aug2(clean, snr):
|
|
35
|
+
"""
|
|
36
|
+
Args:
|
|
37
|
+
clean: (*, C)
|
|
38
|
+
snr_range: snr范围 [min, max]
|
|
39
|
+
snr_aug_rate: snr增强率
|
|
40
|
+
Returns:
|
|
41
|
+
"""
|
|
42
|
+
noise = np.random.randn(*clean.shape) # 生成和clean等长的白噪
|
|
43
|
+
noisy, _ = snr_aug_changeNoise_v2(clean, noise, snr)
|
|
44
|
+
return noisy
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
if __name__ == "__main__":
|
|
48
|
+
clean_path = "../../data/white.wav"
|
|
49
|
+
clean, fs = sf.read(clean_path, always_2d=True, dtype="float32")
|
|
50
|
+
|
|
51
|
+
noisy1 = snr_aug1(clean, 10)
|
|
52
|
+
noisy2 = snr_aug2(clean, 10)
|
|
53
|
+
|
|
54
|
+
print(get_snr(clean, noisy1 - clean)) # 10.000000000480982
|
|
55
|
+
print(get_snr(clean, noisy2 - clean)) # 9.999870642663442
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Author: 凌逆战 | Never
|
|
3
|
+
Date: 2025-08-05 23:42:06
|
|
4
|
+
Description:
|
|
5
|
+
'''
|
|
6
|
+
# -*- coding:utf-8 -*-
|
|
7
|
+
# Author:凌逆战 | Never.Ling
|
|
8
|
+
# Date: 2022/8/2
|
|
9
|
+
"""
|
|
10
|
+
案例来源:https://github.com/snakers4/silero-vad
|
|
11
|
+
API文档:https://github.com/snakers4/silero-vad/blob/master/utils_vad.py
|
|
12
|
+
"""
|
|
13
|
+
from rVADfast import rVADfast
|
|
14
|
+
import soundfile as sf
|
|
15
|
+
import numpy as np
|
|
16
|
+
import matplotlib.pyplot as plt
|
|
17
|
+
from neverlib.filter import HPFilter
|
|
18
|
+
from neverlib.audio_aug import volume_norm
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
sr = 16000
|
|
22
|
+
vad = rVADfast()
|
|
23
|
+
wav_path = "../../data/vad_example.wav"
|
|
24
|
+
wav, wav_sr = sf.read(wav_path, always_2d=False, dtype="float32") # (xxx, ch)
|
|
25
|
+
assert wav_sr == sr, f"音频采样率为{wav_sr},期望{sr}"
|
|
26
|
+
wav = HPFilter(wav, sr=16000, order=6, cutoff=100)
|
|
27
|
+
wav = volume_norm(wav)
|
|
28
|
+
|
|
29
|
+
vad_labels, vad_timestamps = vad(wav, wav_sr)
|
|
30
|
+
print(len(wav))
|
|
31
|
+
print(len(vad_labels))
|
|
32
|
+
print(len(vad_timestamps))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
@@ -8,8 +8,7 @@ import random
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import soundfile as sf
|
|
10
10
|
from scipy import signal
|
|
11
|
-
|
|
12
|
-
EPS = np.finfo(float).eps
|
|
11
|
+
from neverlib.utils import EPS
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
def volume_norm(wav):
|
|
@@ -32,14 +31,14 @@ def add_reverb(wav, rir, ratio=1, mode="same"):
|
|
|
32
31
|
"""
|
|
33
32
|
if random.random() < ratio:
|
|
34
33
|
wav = signal.fftconvolve(wav, rir, mode=mode) # (28671, 3)
|
|
35
|
-
# note:
|
|
34
|
+
# note: 建议过完添加混响后再进行归一化, 否则可能会出现溢出
|
|
36
35
|
# wav = volume_norm(wav)
|
|
37
36
|
return wav
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
def snr_aug_changeNoise(clean, noise, snr):
|
|
41
40
|
"""
|
|
42
|
-
|
|
41
|
+
保持语音不变, 改变噪声的幅度
|
|
43
42
|
snr = 10 * log10(signal_power / k*noise_power)
|
|
44
43
|
"""
|
|
45
44
|
assert clean.shape == noise.shape, "clean and noise must have the same shape"
|
|
@@ -52,7 +51,7 @@ def snr_aug_changeNoise(clean, noise, snr):
|
|
|
52
51
|
|
|
53
52
|
def snr_aug_changeClean(clean, noise, snr):
|
|
54
53
|
"""
|
|
55
|
-
|
|
54
|
+
保持噪声不变, 改变语音的幅度
|
|
56
55
|
snr = 10 * log10(k*signal_power/ noise_power)
|
|
57
56
|
"""
|
|
58
57
|
assert clean.shape == noise.shape, "clean and noise must have the same shape"
|