前言
使用环境:
- Anaconda 3
- Python 3.8
- Pytorch 1.13.1
- Windows 10 or Ubuntu 18.04
项目特性
- 支持模型:EcapaTdnn、TDNN、Res2Net、ResNetSE
- 支持池化层:AttentiveStatsPool(ASP)、SelfAttentivePooling(SAP)、TemporalStatisticsPooling(TSP)、TemporalAveragePooling(TAP)
- 支持损失函数:AAMLoss、AMLoss、ARMLoss、CELoss
- 支持预处理方法:MelSpectrogram、Spectrogram、MFCC
安装环境
- 首先安装的是Pytorch的GPU版本,如果已经安装过了,请跳过。
conda install pytorch==11.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
- 安装ppvector库。
使用pip安装,命令如下:
python -m pip install mvector -U -i https://pypi.tuna.tsinghua.edu.cn/simple
使用指南
1. 环境准备
1.1 安装依赖
# 使用conda创建环境(可选)
conda create -n voiceprint python=3.8
conda activate voiceprint
# 安装项目依赖
pip install -r requirements.txt
1.2 准备音频数据
- 在
audio_db/目录存放注册语音(建议16kHz单通道wav格式) - 测试音频建议存放至
test_audio/目录
2. 核心功能使用
2.1 训练声纹模型
python train.py \
--config_path configs/ecapa_tdnn.yml \
--augmentation_config configs/augmentation.json \
--save_dir models/
2.2 声纹注册入库
from mvector import MVector
mvector = MVector()
mvector.register_user(name="user1", audio_path="audio_db/user1.wav")
2.3 实时声纹识别
python infer_recognition.py \
--model_path models/ecapa_tdnn.pth \
--audio_path test_audio/unknown.wav
2.4 声纹对比验证
python infer_contrast.py \
--audio1 audio_db/user1.wav \
--audio2 test_audio/sample.wav \
--threshold 0.7
3. 降噪预处理
from Reduction_Noise import NoiseReducer
reducer = NoiseReducer("Reduction_Noise/pytorch_model.bin")
clean_audio = reducer.process("noisy_audio.wav")
4. 模型评估
python eval.py \
--model_path models/ecapa_tdnn.pth \
--test_csv eval_samples.csv \
--batch_size 32
Description
Languages
Python
100%