Giter Club home page Giter Club logo

yeyupiaoling / voiceprintrecognition-pytorch Goto Github PK

View Code? Open in Web Editor NEW
696.0 10.0 112.0 1.81 MB

This project uses a variety of advanced voiceprint recognition models such as EcapaTdnn, ResNetSE, ERes2Net, CAM++, etc. It is not excluded that more models will be supported in the future. At the same time, this project also supports MelSpectrogram, Spectrogram data preprocessing methods

License: Apache License 2.0

Python 100.00%
pytorch voice-recognition arcface speaker-recognition ecapa-tdnn

voiceprintrecognition-pytorch's People

Contributors

yeyupiaoling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

voiceprintrecognition-pytorch's Issues

关于代码

你好博主,可以请教一下metric.py这部分的代码吗?方便的话可以加一个联系方式吗q1374128447

博主大大你好,有关特征值和对角余弦问题

$QQD2S 0H}2~JGFOVQK6B37
$D9R R2957OT180$PI)3KC5
博主你好,目前出现了这样一个问题:运行infer_recognition.py时实验最终结果进行声纹识别时无论说话与否都对应的是第一个注册者,开始怀疑模型调用的问题,但是运行infer_contrast.py的时候结果正常,所以排除模型调用及路径问题,又使用pycharm进行分布调试,在代码进行到声纹识别的步骤时,最终dist值没有计算正确,直接显示了1,出现问题的代码如下
feature = infer(path)[0]
for i, person_f in enumerate(person_feature):
dist = np.dot(feature, person_f) / (np.linalg.norm(feature) * np.linalg.norm(person_f))
所以怀疑是否是特征提取的问题或者是dist值计算出错了,请问博主具体的问题出现在哪以及如何去解决,万分感谢!

训练模型

您好,Git这一边您好像没有上传预训练模型权重,只有一个csdn的链接.csdn那边是要收费吗?

关于测试

我发现您的这个项目中训练时,在验证的时候用的时test list,但是在eval的时候也是用的test去测试模型的效果,是不是在train的时候验证的时候用dev集比较好

去除噪音干扰

非常感谢分享。
由于训练数据是相对安静,噪音很少的环境中生成的。使用训练的模型进行推理时,噪声干扰影响感觉还是比较大的
想请教一下这个问题应该怎样处理。我的想法是训练时把随机随机加入分贝数不同的各种环境噪音。不知道是否有用?或者还要结合降噪的算法吗?
另外:如果多个人同时说话,有没有什么方法能将不同人的声音进行分离,然后在依次进行识别。
还望不吝赐教!
再次感谢

训练数据

博主你好,请问是否可以只截取音频的某一特定频率范围的数据去训练呢?

训练数据

是拿zhvoice下的所有数据来训练的?检查数据错误速度好慢,
对识别音频去静音处理是怎么实现的?

关于训练

您好打扰一下,我想用这个模型在公开数据集上面测试一下效果,但是我在voxcelb1数据集上进行训练的时候train/loss 波动比较大,并且test/acc一直是0,请问是什么原因,voxcelb1说话人好像是有1121个,因为是公开数据集我没有做删除错误音频的操作

采样率

训练数据和模型的采样率16k。我要推理的数据是电话语音,采样率是8k,我重采样到16k后,发现声纹对比效果很差,不论怎样的两段语音,声纹相似度都比较大,男女对比的相似度有的都能达到0.4。
请问会是什么原因呢?

打扰了,小白请假一个问题

大佬晚上好,我根据require文档安装visualdl2.1.1失败,在网上也没有找到法子,这该怎么办啊?用的Python3.7,pytorch框架

多卡训练错误

我已经更新到develop分支最新版本,但是多卡训练会报错,单卡训练没问题

CUDA_VISIBLE_DEVICES=0,1 torchrun --standalone --nnodes=1 --nproc_per_node=2 train.py

截屏2023-03-09 00 30 59

模型加载问题

请问我用您gpu训练好的模型,在我本地部署(有gpu环境)时能正常加载模型,代码跑的通。
但是把项目代码换到一台无gpu环境的电脑上运行,就出了模型加载问题,与cuda有关。 但是在加载模型之前特地把device改为了cpu,还是出现了一样的保存信息。

请问您遇到过这种问题吗?

数据

我发现我处理完的data总共类别只有2531个类,和你的不一样,可能有一些数据解压的有问题,但是类别的增长并不是连续的,请问这个是删除音频方法的原因吗
image

请教大佬

"D:\Program Files (x86)\Python\python.exe" E:/0,SHARED/WEB/VoiceprintRecognition-Pytorch-master/infer_recognition.py
Traceback (most recent call last):
File "E:/0,SHARED/WEB/VoiceprintRecognition-Pytorch-master/infer_recognition.py", line 10, in
from data_utils.reader import load_audio, CustomDataset
File "E:\0,SHARED\WEB\VoiceprintRecognition-Pytorch-master\data_utils\reader.py", line 11, in
import librosa
File "D:\Program Files (x86)\Python\lib\site-packages\librosa_init_.py", line 209, in
from . import core
File "D:\Program Files (x86)\Python\lib\site-packages\librosa\core_init_.py", line 5, in
from .convert import * # pylint: disable=wildcard-import
File "D:\Program Files (x86)\Python\lib\site-packages\librosa\core\convert.py", line 7, in
from . import notation
File "D:\Program Files (x86)\Python\lib\site-packages\librosa\core\notation.py", line 8, in
from ..util.exceptions import ParameterError
File "D:\Program Files (x86)\Python\lib\site-packages\librosa\util_init_.py", line 77, in
from .utils import * # pylint: disable=wildcard-import
File "D:\Program Files (x86)\Python\lib\site-packages\librosa\util\utils.py", line 5, in
import scipy.ndimage
File "D:\Program Files (x86)\Python\lib\site-packages\scipy_init_.py", line 119, in
from scipy._lib._ccallback import LowLevelCallable
File "D:\Program Files (x86)\Python\lib\site-packages\scipy_lib_ccallback.py", line 1, in
from . import _ccallback_c
ImportError: DLL load failed: 找不到指定的模块。

为什么我所有的第三方库都安装好了,项目是下载你的,一运行就会报错。

数据集规模

老师您好,请问超大的数据集数据量是多大呀,用了多少小时的数据,我从网上找了差不多所有的带有说话人信息的中文语音数据集,包括cn-celeb、aishell3、4和阿里开源的数据集,大约有2000+小时,想用您的模型训练一下对比一下效果

2个算法很难区分的实例,但是人能容易区分?

作者你好:
我购买了9.9yuan模型并测试了算法,发现效果挺好的。但是我遇到2个女声样本,测试后发现非常难以区分:

-----------  Configuration Arguments -----------
audio_path1: ../ysvoiceprint/voiceprint/zhou-tang/zhou3min-10-16k.wav
audio_path2: ../ysvoiceprint/voiceprint/zhou-tang/tang3min-10-16k.wav
input_shape: (1, 2000, 257)
model_path: models/resnet34.pth
threshold: 0.71
------------------------------------------------
slice: 1099 len: 257 whole: (257, 2001)
slice: 633 len: 257 whole: (257, 2001)
..//voiceprint/zhou-tang/zhou3min-10-16k.wav 和 ..//voiceprint/zhou-tang/tang3min-10-16k.wav 
不是同一个人,相似度为:0.612113

随机再取1.3s来比较:

-----------  Configuration Arguments -----------
audio_path1: ../ysvoiceprint/voiceprint/zhou-tang/zhou3min-10-16k.wav
audio_path2: ../ysvoiceprint/voiceprint/zhou-tang/tang3min-10-16k.wav
input_shape: (1, 320, 257)
model_path: models/resnet34.pth
threshold: 0.71
------------------------------------------------
slice: 381 len: 257 whole: (257, 2001)
slice: 1634 len: 257 whole: (257, 2001)
..//voiceprint/zhou-tang/zhou3min-10-16k.wav 和 ..//voiceprint/zhou-tang/tang3min-10-16k.wav 
不是同一个人,相似度为:0.685574

不管从这2个样本随机采样多少个1.3s, 发现相似度一直很高(0.6~0.7)左右。这是很奇怪的,这种困难的corner case有啥好的区分办法吗? 非常感谢。

附上这2个音频:
2samples-hard.zip

关于训练

你好,我用ST-CMDS-20170001_1-OS这个数据集训练了5个epoch了,准确率一直为0,这是正常的吗?
[2021-09-24 14:11:23.609168] Train epoch 5, batch: 3500/5322, loss: 17.497463, accuracy: 0.000000, eta: 11:55:58
[2021-09-24 14:11:59.211179] Train epoch 5, batch: 3600/5322, loss: 21.458420, accuracy: 0.000000, eta: 11:43:53
[2021-09-24 14:12:34.664167] Train epoch 5, batch: 3700/5322, loss: 18.574211, accuracy: 0.000000, eta: 11:47:35
[2021-09-24 14:13:09.979111] Train epoch 5, batch: 3800/5322, loss: 19.353443, accuracy: 0.000000, eta: 11:51:12
[2021-09-24 14:13:45.611116] Train epoch 5, batch: 3900/5322, loss: 19.091064, accuracy: 0.000000, eta: 11:42:59
[2021-09-24 14:14:20.909075] Train epoch 5, batch: 4000/5322, loss: 24.289619, accuracy: 0.000000, eta: 11:58:24

WAV sound durations is always 4 seconds?

Hi, thanks for your work, I have one question, corpus database is always 4 seconds, can I use wav samples with different duration?

I have same samples with 4, 5 and 6 seconds of duration...

训练问题咨询

hello,我换了ubuntu机器在训练模型,目前没有异常,想问下时间的问题:
按照每条日志间隔的时间计算,执行完大概需要40+小时,这个没问题,但我想问下,Train epoch [0/30],时表示这种40+小时的训练需要进行三十次吗?还是说有别的意思?
image

Thanks.

推理预测错误

您好 我请问一下,在使用ecapa_tdnn,模型推理时候,特征提取选择spectrogram,但是得到的特征只是一个值是什么原因呢,并且对比任意两个音频相似度都是1。使用的是下面的预训练模型。
a66545f1c2a39f8ea6527f6bd6e17b2
715806fd505e065ac0ba64c5f0bd3e4

关于测试

您好,我想知道您的list放进dataloader或者是您自己的customdataset的时候有打乱顺序吗

关于test

请问声纹识别如果想要计算eer和dcf的话有什么工具包吗

想询问您关于该项目的数据集问题

笔者您好,最近在学习声纹识别,觉得您的项目和好,但是不明白您create_data.py文件中的def get_data_list(infodata_path, list_path, zhvoice_path):这行代码中的三个变量对应的数据是什么,以及不知道如何编写json文件,请问能否将您项目使用的数据集和json文件按照 get_data_list('dataset/zhvoice/text/infodata.json', 'dataset', 'dataset/zhvoice')这个传入格式发给我方便我理解学习 ,十分感谢您。我的邮箱[email protected]

提问

大佬,同一说话人说不同语言识别起来效果是不是比较差的捏

您好,我在运行这个代码时,报了这个错误,我想问下是什么原因?

[2023-05-02 14:34:01.811351 INFO ] utils:print_arguments:28 - max_epoch: 50 [2023-05-02 14:34:01.811389 INFO ] utils:print_arguments:30 - use_loss: AAMLoss [2023-05-02 14:34:01.811427 INFO ] utils:print_arguments:30 - use_model: Res2Net [2023-05-02 14:34:01.811465 INFO ] utils:print_arguments:31 - ------------------------------------------------ /home/hao/anaconda3/envs/tdnn/lib/python3.8/site-packages/torchaudio/functional/functional.py:594: UserWarning: At least one mel filterbank has all zero values. The value for n_mels(64) may be set too high. Or, the value forn_freqs` (513) may be set too low.
warnings.warn(
[2023-05-02 14:34:04.088952 INFO ] augmentation:_parse_pipeline_from:94 - 数据增强配置:{'type': 'noise', 'aug_type': 'audio', 'params': {'min_snr_dB': 10, 'max_snr_dB': 50, 'repetition': 2, 'noise_dir': 'dataset/noise/'}, 'prob': 0.0}
[2023-05-02 14:34:04.089046 INFO ] augmentation:_parse_pipeline_from:94 - 数据增强配置:{'type': 'resample', 'aug_type': 'audio', 'params': {'new_sample_rate': [8000, 32000, 44100, 48000]}, 'prob': 0.0}
[2023-05-02 14:34:04.089107 INFO ] augmentation:_parse_pipeline_from:94 - 数据增强配置:{'type': 'speed', 'aug_type': 'audio', 'params': {'min_speed_rate': 0.9, 'max_speed_rate': 1.1, 'num_rates': 3}, 'prob': 0.5}
[2023-05-02 14:34:04.089164 INFO ] augmentation:_parse_pipeline_from:94 - 数据增强配置:{'type': 'shift', 'aug_type': 'audio', 'params': {'min_shift_ms': -5, 'max_shift_ms': 5}, 'prob': 0.0}
[2023-05-02 14:34:04.089218 INFO ] augmentation:_parse_pipeline_from:94 - 数据增强配置:{'type': 'volume', 'aug_type': 'audio', 'params': {'min_gain_dBFS': -15, 'max_gain_dBFS': 15}, 'prob': 0.5}
Traceback (most recent call last):
File "/home/hao/VoiceprintRecognition-Pytorch-develop/train.py", line 22, in
trainer.train(save_model_path=args.save_model_path,
File "/home/hao/VoiceprintRecognition-Pytorch-develop/mvector/trainer.py", line 334, in train
self.__setup_model(input_size=self.audio_featurizer.feature_dim, is_train=True)
File "/home/hao/VoiceprintRecognition-Pytorch-develop/mvector/trainer.py", line 119, in __setup_model
backbone = Res2Net(input_size=input_size, **self.configs.model_conf)
TypeError: init() got an unexpected keyword argument 'channels'

Process finished with exit code 1`

打扰了,问一个问题

我在训练的时候发现数据加载得非常慢,具体来说是每一个num_workers加载需要的时间远远大于训练用时,我不知道是哪里出现了问题,谢谢大佬

咨询

非常棒的开源工作!想请问一下,工业界内成熟的声纹识别方案大概是怎么做的呀

about load audio problem

hello, I have two questions.

  1. why choose librosa.stft() and magphase() as input features? why not MFCC?
  2. why choose '257' as spectrum length? I want to train voxceleb dataset, can you give me some advice on data processing and parameter selection?
    Looking forward to reply.

关于ARCNET

请问RESNET34后面接的那个ARCnet的做法有相关文献资料吗?有点看不明白里面的做法。

博主,您好

您好,我想问下那个训练的图train/loss这个图的横坐标代表的什么?

create_data出现问题

好像是在MP3转wav的时候报错,wav = AudioSegment.from_mp3(audio_path)这步,网上查了半天没找出办法,不知道作者是否知道解决办法,谢谢!
错误代码:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

识别问题

输入一个为注册用户的语音,但是匹配到了声纹库中的一个已注册用户,而且还给出相似度0.998...(情况如下图)。

说明:addio_db中的声纹音频内容都是以注册用户名称开头的,例如 123.wav 表示 注册时录音 “123456” ;机器人识别.wav 表示 注册时录音 "机器人识别"
前提1:只用了2000条音频数据训练+测试,而且更改了训练模型的几个参数,learning_rate=0.1, batch_size=8,num_epoch=10
前提2:我也出现了issue中“关于训练”中 “loss: 17.497463, accuracy: 0.000000”,loss正常但是accuracy全部为0的情况
疑问:请问是什么原因导致这种声纹匹配错误的情况下(明明是一个从未在注册库中的陌生说话人录音,但却匹配到了声纹库中的一个注册用户,还给出了0.99的相似度评价),还给出了0.99的相似度评价?

image

预测自己的采集的语音

你好,请问预测自己采集的语音时,需要做什么预处理吗,现在直接用模型预测自己采集的语音时,效果不好

关于声音输入的问题

有几个地方想请教下您:

  1. 对声音拼接随机取反这个操作的作用是什么?
  2. 我看了下数据集中,最长的声音11秒多,最短的1秒多,算法中都是随机截取一段2.6秒长的部分,对于较长的输入,利用率是否过低?
  3. 能不能通过让STFT窗口长度和步长自适应输入,从而让STFT输出的维度相同

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.