# 前言 使用环境: - Anaconda 3 - Python 3.8 - Pytorch 1.13.1 - Windows 10 or Ubuntu 18.04 # 项目特性 1. 支持模型:EcapaTdnn、TDNN、Res2Net、ResNetSE 2. 支持池化层:AttentiveStatsPool(ASP)、SelfAttentivePooling(SAP)、TemporalStatisticsPooling(TSP)、TemporalAveragePooling(TAP) 3. 支持损失函数:AAMLoss、AMLoss、ARMLoss、CELoss 4. 支持预处理方法:MelSpectrogram、Spectrogram、MFCC ## 安装环境 - 首先安装的是Pytorch的GPU版本,如果已经安装过了,请跳过。 ```shell conda install pytorch==11.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia ``` - 安装ppvector库。 使用pip安装,命令如下: ```shell python -m pip install mvector -U -i https://pypi.tuna.tsinghua.edu.cn/simple ``` # 使用指南 ## 1. 环境准备 ### 1.1 安装依赖 ```shell # 使用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 训练声纹模型 ```shell python train.py \ --config_path configs/ecapa_tdnn.yml \ --augmentation_config configs/augmentation.json \ --save_dir models/ ``` ### 2.2 声纹注册入库 ```python from mvector import MVector mvector = MVector() mvector.register_user(name="user1", audio_path="audio_db/user1.wav") ``` ### 2.3 实时声纹识别 ```shell python infer_recognition.py \ --model_path models/ecapa_tdnn.pth \ --audio_path test_audio/unknown.wav ``` ### 2.4 声纹对比验证 ```shell python infer_contrast.py \ --audio1 audio_db/user1.wav \ --audio2 test_audio/sample.wav \ --threshold 0.7 ``` ## 3. 降噪预处理 ```python from Reduction_Noise import NoiseReducer reducer = NoiseReducer("Reduction_Noise/pytorch_model.bin") clean_audio = reducer.process("noisy_audio.wav") ``` ## 4. 模型评估 ```shell python eval.py \ --model_path models/ecapa_tdnn.pth \ --test_csv eval_samples.csv \ --batch_size 32 ```