littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于Python和Pytorch的声纹识别系统

项目简介

本项目基于Python和Pytorch实现声纹识别系统。新版本支持pip安装,且将预处理使用模型算子实现,能利用GPU计算,使预处理速度大幅提升,预计可达10 - 20倍。项目采用EcapaTdnn模型进行声纹识别,未来可能支持更多模型。同时支持多种数据预处理方法,损失函数参考人脸识别项目使用了ArcFace Loss。

项目的主要特性和功能

特性

  1. 支持EcapaTdnn、TDNN、Res2Net、ResNetSE等多模型。
  2. 支持AttentiveStatsPool(ASP)、SelfAttentivePooling(SAP)、TemporalStatisticsPooling(TSP)、TemporalAveragePooling(TAP)等多样池化层。
  3. 支持AAMLoss、AMLoss、ARMLoss、CELoss等丰富损失函数。
  4. 支持MelSpectrogram、Spectrogram、MFCC等多种预处理方法。

功能

  1. 数据准备:支持创建数据列表,便于读取不同语音数据集,可将mp3格式音频转换为wav格式。
  2. 模型训练:支持单卡和多卡训练,训练过程用VisualDL保存日志,可随时查看训练结果。
  3. 数据增强:提供随机裁剪、添加背景噪声、调节语速、调节音量和SpecAugment等音频增强操作。
  4. 模型评估:训练结束后,可对预测模型进行评估,计算tpr、fpr、eer等指标。
  5. 声纹对比:输入两个语音,通过预测函数获取特征数据,计算对角余弦值得到相似度。
  6. 声纹识别:实现声纹注册和识别功能,将用户语音与声纹库中的语音对比完成识别。

安装使用步骤

安装环境

  1. 若未安装Pytorch的GPU版本,执行以下命令: shell conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
  2. 安装ppvector库:
    • 使用pip安装: shell python -m pip install mvector -U -i https://pypi.tuna.tsinghua.edu.cn/simple
    • 建议源码安装: shell cd VoiceprintRecognition_Pytorch/ python setup.py install

创建数据

使用create_data.py创建数据列表,若使用zhvoice数据集,需全部解压,可将mp3格式音频转换为wav格式(也可设置to_wav=False不转换)。 shell python create_data.py

修改预处理方法

可在配置文件中修改预处理方法,如MelSpectrogramSpectrogramMFCC,并根据需要调整对应参数。

训练模型

使用train.py训练模型,可通过configs/ecapa_tdnn.yml配置文件指定预处理方式和数据增强方式。 shell CUDA_VISIBLE_DEVICES=0 python train.py CUDA_VISIBLE_DEVICES=0,1 torchrun --standalone --nnodes=1 --nproc_per_node=2 train.py

评估模型

训练结束后,使用eval.py评估模型。 shell python eval.py

声纹对比

使用infer_contrast.py进行声纹对比。 shell python infer_contrast.py --audio_path1=audio/a_1.wav --audio_path2=audio/b_2.wav

声纹识别

使用infer_recognition.py进行声纹识别。 shell python infer_recognition.py

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】