注意,本项目经过测试,只能用于无背景音乐下的声纹识别,背景音乐会对结果有很大影响
YouTube:https://youtu.be/XV9NwpnLPGo
自己下载下来后,把里面所有的压缩文件都进行解压,解压后结构如下,test_list.txt 和 train_list.txt 是后面生成的,先不管,注意这些训练数据要放到 data 文件夹下。
├── info
├── metadata.csv
├── readme.md
├── sample
├── test_list.txt
├── text
├── train_list.txt
├── zhaidatatang
├── zhaishell
├── zhbznsyp
├── zhmagicdata
├── zhprimewords
├── zhspeechocean
├── zhstcmds
└── zhthchs30
然后我们可以输入 python create_data.py 来对数据集进行处理,这里主要会进行两个操作,第一个是把mp3转换为wav的格式(这个操作比较耗时,可能需要几天),并生成对应的训练数据集文本和测试数据集的文本。第二个是会把一些没用的音频数据删除。
所有的配置信息都在 train.py 里面,自己看着改就可以了,默认情况下不需要改动。
使用 python train.py 就可以开始训练了(RTX3060大概要训练6天时间)
使用 python eval.py 可以计算阈值信息,因为我们是通过余铉距离来计算的进行对比时会得出一个分数,当大于这个分数的时候才可以认为是同一个人。运行后输出的结果如下:
开始提取全部的音频特征...
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5332/5332 [02:02<00:00, 43.48it/s]
开始两两对比音频特征...
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5332/5332 [01:52<00:00, 47.41it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 100/100 [00:05<00:00, 19.94it/s]
当阈值为0.660000, 准确率最大,为:0.999952
python main.pyubuntu20.4 可以参考
sudo apt install portaudio19-dev python3-pyaudio
