赞
踩
在进行AD检测的模型中,原来使用的是whisper进行的语音转换,但是whisper只能实现ASR任务,并不能检测出不同说话者,所以需要学习一下SpeechBrain,实现说话者检测和情绪分类等不同的语音任务,以进一步完善当前的任务。
这里发现SpeechBrain实现起来比较费劲,自由度比较高,并不能拿来直接用。后来还是换成了pyannote,但是这中间也经过了很多异常情况。这里写一篇文章,记录一下整体过程。
出现这么多问题,是因为我的开发ide,pycharm并不能正常地科学上网,即使本地打开了vpn也不行,所以很多东西只能手动下载到本地,然后在一点点配置。
最有效的配置就是设置好pycharm的代理工具,使之能够顺利访问huggingface,下载相关的模型,而不是向网上现在说的一些,替换镜像源,这没有任何作用,毕竟有很多工具在国内的镜像上都是没有的。
这是一个开源的声音处理工具,已经广泛应用于很多公司的生产中,除此之外,这个模型的性能也很棒。这个模型可以干如下一些任务:
这里只需要使用他的说话者二分化,区分出医生和病人说话的时间段即可。
pip install pyannote.audio
from pyannote.audio import Pipeline
import utils
# 创建对应pipeline管道模型,调用预训练模型,这里是指定了调用模型的相关路径。
pipeline = Pipeline.from_pretrained(r"F:\FeatureEngineer\pyannote\speaker-diarization-3.0\config.yaml")
# run the pipeline on an audio file
diarization = pipeline("test.wav")
# dump the diarization output to disk using RTTM format
with open("audio.rttm", "w") as rttm:
diarization.write_rttm(rttm)
配置文件
version: 3.0.0 pipeline: name: pyannote.audio.pipelines.SpeakerDiarization params: clustering: AgglomerativeClustering embedding: hbredin/wespeaker-voxceleb-resnet34-LM # 提取embedding的网络模型路径 # embedding: F:\FeatureEngineer\pyannote\speaker-diarization-3.0\wespeaker-voxceleb-resnet34-LM\pytorch_model.bin # embedding: F:\FeatureEngineer\pyannote\speaker-diarization-3.0\wespeaker-voxceleb-resnet34-LM\speaker-embedding.onnx embedding_batch_size: 32 embedding_exclude_overlap: true segmentation: F:\FeatureEngineer\pyannote\pytorch_model.bin # 提取segmentation的网络模型路径 segmentation_batch_size: 32 params: clustering: method: centroid min_cluster_size: 12 threshold: 0.7045654963945799 segmentation: min_duration_off: 0.0
注意!!
将上述两个文件下载后,指定对应的路径即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。