ONNX 模型库
返回模型

说明文档

ML_TTS_Dataset

流程

  • 可以直接执行第5、6步。
  1. 文件重命名
    • ML_TTS_Dataset/examples/bash/rename/run_single_split.sh
  2. 转换为16kHz
    • bash ML_TTS_Dataset/examples/bash/resample/run_single_dir.sh 指定输出的音频格式和采样率
    • 当音频格式为.ogg时,python虽然能读入.ogg文件,但速度会很慢。可以先运行这个脚本把.ogg转换为.wav。
  3. 检查静音区,设置阈值去除带背景声视频
    • bash ML_TTS_Dataset/examples/bash/noise_suppression/run_single_dir_with_audio_root.sh 可跳过第2步,直接到第3步,不需要额外的转换采样率。
  4. 多说话人检测,丢弃多说话人的音频。
    • bash ML_TTS_Dataset/examples/bash/speaker_diarization/run_audio_root.sh 多说话人检测已经与ASR (WhisperX)融合。
  5. ASR (WhisperX)
    • bash ML_TTS_Dataset/examples/bash/asr_whisperx/run_demo.sh
  6. DNSMOS评测
    • bash ML_TTS_Dataset/examples/bash/dns_mos/dns_mos_local.sh

ASR (WhisperX)安装

  • WhisperX依赖于pyannote.audio的vad模型,这个要求编译torch时的cuDNN版本跟当前环境的cuDNN版本相同。当本机中cuDNN版本为8.9.2时,在conda中安装 conda install cudnn=8.9.2 -y
  • 修改环境变量,添加cuDNN库的路径。 export LD_LIBRARY_PATH=/home/lwx1339650/opt/anaconda3/envs/cuda12/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/lwx1339650/opt/anaconda3/envs/cuda12/lib echo $LD_LIBRARY_PATH
  • 本机的cudnn版本为8.5.0,安装cuda 11.8对应的torch,此时torch对应cudnn8.5.0
  • 安装faster-whisper会将torch更新至2.4.0,此时需要降级安装torch和faster-whisper依赖的推理框架ctranslate。 pip uninstall nvidia-cudnn-cu12 nvidia-nccl-cu12 conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 cudatoolkit=11.8 -c pytorch -c nvidia pip install --force-reinstall ctranslate2==3.24.0 pip uninstall numpy pip install numpy==1.23.5
  • 安装这个路径下的WhisperX: ML_TTS_Dataset/external/whisperX

checkpoint路径

https://onebox.huawei.com/p/1d76d18f71882550c9a53702ec983565 缺失的checkpoint也可以从huggingface下载。

ASR (WhisperX)参数

以ML_TTS_Dataset/examples/bash/asr_whisperx/run_demo.sh为例,各参数解释如下:

  • model_type=whisperx 使用whisperx模型。目前支持的模型:fasterwhisper,whisperx

  • model_dir=/mnt/northcn3/cbu-tts/checkpoint/faster_whisper/faster-whisper-large-v3 模型的文件夹路径

  • model_size=large-v3 与model_dir匹配

  • lang2align_model_yaml_path=/mnt/yuyin1/cbu-tts/model/ML_TTS_Dataset/examples/bash/asr_whisperx/lang2align_model.yaml 使用wav2vec2系列模型做对齐时的配置文件,yaml格式。 yaml示例: zh: model_name: hf_wav2vec2 model_dir: /mnt/yuyin1/cbu-tts/checkpoint/wav2vec2/jonatasgrosman--wav2vec2-large-xlsr-53-chinese-zh-cn pipeline_type: huggingface interval: 0.85 confidence: 0.95 其中每项参数的含义: zh: 语言 model_name:只支持hf_wav2vec2 model_dir:huggingface格式的wav2vec2 中文wav2vec2模型:checkpoint/wav2vec2/jonatasgrosman--wav2vec2-large-xlsr-53-chinese-zh-cn 中文的也可以从这里下载:https://huggingface.co/jonatasgrosman/wav2vec2-large-xlsr-53-chinese-zh-cn/tree/main 英语wav2vec2模型:https://huggingface.co/facebook/wav2vec2-base-960h pipeline_type: 只支持huggingface interval:每个word之间的间隔。小于这个间隔的语音会被筛掉。 confidence:每个word的置信度。小于这个置信度的语音会被筛掉。

  • available_langs=en,zh 过滤语言时,只保留英语、中文。

  • vad_model_path=/mnt/yuyin1/cbu-tts/checkpoint/whisperx/vad/pytorch_model.bin vad_model模型的路径

  • diarize_model_path=/mnt/yuyin1/cbu-tts/checkpoint/pyannote/speaker-diarization-3.1/config.yaml diarize_model模型的路径。在checkpoint/pyannote/speaker-diarization-3.1/config.yaml中,需要做如下修改: embedding的路径改成checkpoint/pyannote/wespeaker-voxceleb-resnet34-LM/pytorch_model.bin segmentation的路径改成checkpoint/pyannote/segmentation-3.0/pytorch_model.bin

  • dns_model_dir=/mnt/yuyin1/cbu-tts/checkpoint/DNSMOS/DNSMOS DNSMOS模型的文件夹

  • dns_mos_threshold=3.8 当DNSMOS的评测分数小于3.8时,会过滤掉这条语音。 建议3.8+

  • precision=float16 可选int8、float16等量化方式加载whisperx模型

  • task=transcribe 让whisperx执行转录任务。

  • initial_prompt=以下是一段语音记录。 英语的transcript默认带有标点符号,而中文的没有。 加入这个initial_prompt后,中文的transcript也会有标点。

  • target_sr=16000 输入到whisperx模型的采样率为16000

  • target_format=wav 输入到whisperx模型的音频格式为wav

  • audio_clip_backend=moivepy 使用moivepy来剪辑和保存音频。

  • device=cuda 使用cuda。可选参数:cpu,cuda

  • gpu_list=1,2,3 使用gpu id为1、2、3的卡。(gpu id从0开始计数)

  • input_audio_root=/mnt/yuyin1/cbu-tts/data_process/demo/noise_suppression 输入的音频文件夹路径

  • output_root=/mnt/yuyin1/cbu-tts/data_process/demo/asr 输出的音频文件夹路径。其输出的目录结构与input_audio_root相同。

  • error_log_dir=/mnt/yuyin1/cbu-tts/data_process/demo/log/asr 日志文件夹的路径。

  • test_times=-1 测试的音频文件数量。当test_times为正数时,处理test_times条音频。当test_times为负数时,处理所有音频。

  • n_process=3 一共运行的进程数量。

  • Q:如何在单卡上跑4个进程来处理数据?

  • A:gpu_list=0,n_process=4

  • --suppress_numerals 将中文数字转换为阿拉伯数字。

  • --filter_by_aligned_model 与lang2align_model_yaml_path搭配使用。使用wav2vec2模型检测word,并使用它来过滤低置信度的语音。

代码同步

  • 备份代码 bash /mnt/yuyin1/cbu-tts/model/ML_TTS_Dataset/examples/bash/bac.sh tar -czf ML_TTS_Dataset.tar.gz ML_TTS_Dataset --exclude .git

Wenrui/ML_TTS_Dataset

作者 Wenrui

↓ 0 ♥ 0

创建时间: 2024-06-16 16:20:35+00:00

更新时间: 2024-08-31 13:10:12+00:00

在 Hugging Face 上查看

文件 (115)

.gitattributes
LICENSE
ML_TTS_Dataset.egg-info/PKG-INFO
ML_TTS_Dataset.egg-info/SOURCES.txt
ML_TTS_Dataset.egg-info/dependency_links.txt
ML_TTS_Dataset.egg-info/top_level.txt
ML_TTS_Dataset/preprocess/asr/DNSMOS/DNSMOS/bak_ovr.onnx ONNX
ML_TTS_Dataset/preprocess/asr/DNSMOS/DNSMOS/model_v8.onnx ONNX
ML_TTS_Dataset/preprocess/asr/DNSMOS/DNSMOS/sig.onnx ONNX
ML_TTS_Dataset/preprocess/asr/DNSMOS/DNSMOS/sig_bak_ovr.onnx ONNX
ML_TTS_Dataset/preprocess/asr/DNSMOS/README.md
ML_TTS_Dataset/preprocess/asr/DNSMOS/dnsmos_local.py
ML_TTS_Dataset/preprocess/asr/DNSMOS/pDNSMOS/.DS_Store
ML_TTS_Dataset/preprocess/asr/DNSMOS/pDNSMOS/sig_bak_ovr.onnx ONNX
ML_TTS_Dataset/preprocess/asr/filter_utils.py
ML_TTS_Dataset/preprocess/asr/pipeline.py
ML_TTS_Dataset/preprocess/asr/whisperx_pipeline.py
ML_TTS_Dataset/preprocess/asr/whisperx_wrapper/align_model.py
ML_TTS_Dataset/preprocess/dereverb/configuration_dereverb.py
ML_TTS_Dataset/preprocess/dereverb/mdxnet.py
ML_TTS_Dataset/preprocess/dereverb/process.py
ML_TTS_Dataset/preprocess/dereverb/vr.py
ML_TTS_Dataset/preprocess/merge_process/stage1.py
ML_TTS_Dataset/preprocess/mos/base_mos.py
ML_TTS_Dataset/preprocess/mos/dns_mos.py
ML_TTS_Dataset/preprocess/mos/dnsmos_local.py
ML_TTS_Dataset/preprocess/mos/filter_multi_speaker.py
ML_TTS_Dataset/preprocess/mos/pipeline.py
ML_TTS_Dataset/preprocess/noise_suppression/pipeline.py
ML_TTS_Dataset/preprocess/rename/pipeline.py
ML_TTS_Dataset/preprocess/resample/pipeline.py
ML_TTS_Dataset/preprocess/slice/configuration_slice.py
ML_TTS_Dataset/preprocess/slice/pipeline.py
ML_TTS_Dataset/preprocess/slice/pipeline_for_rttm.py
ML_TTS_Dataset/preprocess/slice/pipeline_for_rttm_slice.py
ML_TTS_Dataset/preprocess/slice/pipeline_for_rttm_slice_2.py
ML_TTS_Dataset/preprocess/slice/slicer.py
ML_TTS_Dataset/preprocess/speaker_diarization/pipeline.py
ML_TTS_Dataset/preprocess/statistic/pipeline.py
ML_TTS_Dataset/utils/audio.py
ML_TTS_Dataset/utils/log.py
README.md
_tools/ASR.py
dist/ML_TTS_Dataset-1.0-py3-none-any.whl
downlinks.md
examples/badcase
examples/bash/asr/load_model.py
examples/bash/asr/run_single_split.sh
examples/bash/asr/run_single_split_2.sh
examples/bash/asr_whisperx/lang2align_model.yaml
examples/bash/asr_whisperx/run_demo.sh
examples/bash/asr_whisperx/run_single_split.sh
examples/bash/bac.sh
examples/bash/batch_killer.sh
examples/bash/dns_mos/dns_mos_local.sh
examples/bash/mfa/text_grid.sh
examples/bash/noise_suppression/run_single_dir.sh
examples/bash/noise_suppression/run_single_dir_with_audio_root.sh
examples/bash/noise_suppression/run_single_dir_with_log.sh
examples/bash/noise_suppression/run_single_dir_with_scp_2.sh
examples/bash/rename/rename_after_speaker_diarization.py
examples/bash/rename/run_single_split.sh
examples/bash/resample/read_audio.py
examples/bash/resample/run_single_dir.sh
examples/bash/resample/run_single_dir_with_scp.sh
examples/bash/rttm_slice/run_single_split.sh
examples/bash/slice_fasterwhisper/run_single_dir.sh
examples/bash/statistic/print_tsv.py
examples/bash/statistic/rename_files.py
examples/bash/statistic/run_audio_roots_root.sh
examples/bash/statistic/walk.py
examples/bash/tree_struct_list.sh
examples/bash/vad_energy/pipeline.sh
examples/dereverb.py
examples/en_demo/20100309-8.wav
examples/en_demo/20120424-11.wav
examples/en_demo/20200120-1.wav
examples/en_demo/20200218-20.wav
examples/tar.sh
examples/whisperx/vad_link.txt
examples/whisperx/whisperx_asr.py
examples/whisperx/whisperx_trim.py
external/conda.yml
external/whisperX/.github/FUNDING.yml
external/whisperX/.gitignore
external/whisperX/=2.0
external/whisperX/EXAMPLES.md
external/whisperX/LICENSE
external/whisperX/MANIFEST.in
external/whisperX/README.md
external/whisperX/figures/pipeline.png
external/whisperX/requirements.txt
external/whisperX/setup.py
external/whisperX/whisperx.egg-info/PKG-INFO
external/whisperX/whisperx.egg-info/SOURCES.txt
external/whisperX/whisperx.egg-info/dependency_links.txt
external/whisperX/whisperx.egg-info/entry_points.txt
external/whisperX/whisperx.egg-info/requires.txt
external/whisperX/whisperx.egg-info/top_level.txt
external/whisperX/whisperx/SubtitlesProcessor.py
external/whisperX/whisperx/__init__.py
external/whisperX/whisperx/__main__.py
external/whisperX/whisperx/alignment.py
external/whisperX/whisperx/asr.py
external/whisperX/whisperx/assets/mel_filters.npz
external/whisperX/whisperx/audio.py
external/whisperX/whisperx/conjunctions.py
external/whisperX/whisperx/diarize.py
external/whisperX/whisperx/transcribe.py
external/whisperX/whisperx/types.py
external/whisperX/whisperx/utils.py
external/whisperX/whisperx/vad.py
requirements.txt
setup.py
split/README.md