How can I use Kaldi to create a speaker recognition system ?

1,105 views
Skip to first unread message

abhishek...@quantiphi.com

unread,
Jul 5, 2017, 8:33:28 AM7/5/17
to kaldi-help
Hi,

This will be a big description, please be patient.

So, I have a personal project on speaker recognition. I was looking around for a deep learning approach but its hard to find any. Since, I have trained speech model in Kaldi I thought about giving Speaker Recognition in Kaldi a try. The problem is, how do I create dataflow pipeline.

e.g, I train UBM, ivector extractor and get eer, then I want to create a system that lets me record enrollment speech in real time, creates the speaker model and then I can test the system real time too. The output being Accept or Reject. I wish to use Python for this. 

So, Is this possible? and How long will it take to build this system ?

David Snyder

unread,
Jul 6, 2017, 11:35:48 AM7/6/17
to kaldi-help
It's not clear to me what you mean by real-time. 

The Kaldi speaker recognition recipes perform verification in batches. I.e., we produce an archive of ivectors for enrollment and test recordings, and then compute a set of verification scores (usually PLDA) between them. Given the list of scores, we can compute an error metric like equal error rate or min DCF.

Is your goal to perform verification one-by-one instead of in batches? If so, this shouldn't be too hard to do. The simplest approach involves using the binaries Kaldi already provides, and calling them in the same way the recipes do. Instead of the input archives containing a large number of utterances,  it could contain a single entry, corresponding to the utterance you want to process at that time. These single-entry archives could be created by your python code on demand, e.g., as your system receives recordings. Other options, are possibly better, but require more work. For example, you can use the Kaldi library directly (e.g., the code in src/ivector/ instead of src/ivectorbin/) and create your own wrappers around them (either in C++ or python). The wrappers will connect the different objects together, and process it all in memory, instead of saving intermediary representations to the disk. 

abhishek...@quantiphi.com

unread,
Jul 19, 2017, 7:19:29 AM7/19/17
to kaldi-help
Thank you David, Do you know of any python wrapper of kaldi made for speaker recognition ?

David Snyder

unread,
Jul 19, 2017, 12:08:58 PM7/19/17
to kaldi-help
Thank you David, Do you know of any python wrapper of kaldi made for speaker recognition ?

I'm not aware of anything.

Daniel Povey

unread,
Jul 19, 2017, 12:17:01 PM7/19/17
to kaldi-help
Actually there is something called bob.kaldi
http://pythonhosted.org/bob.kaldi/
but I haven't used it.
> --
> Go to http://kaldi-asr.org/forums.html find out how to join
> ---
> You received this message because you are subscribed to the Google Groups
> "kaldi-help" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to kaldi-help+...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Abhishek Dandona

unread,
Jul 19, 2017, 2:04:12 PM7/19/17
to kaldi...@googlegroups.com
Thank you David and Dan :)


> For more options, visit https://groups.google.com/d/optout.

--
Go to http://kaldi-asr.org/forums.html find out how to join
---
You received this message because you are subscribed to a topic in the Google Groups "kaldi-help" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kaldi-help/5qkIuvPTHnU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kaldi-help+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

This message contains information that may be privileged or confidential and is the property of the Quantiphi Inc and/or its affiliates. It is intended only for the person to whom it is addressed. If you are not the intended recipient, any review, dissemination, distribution, copying, storage or other use of all or any portion of this message is strictly prohibited. If you received this message in error, please immediately notify the sender by reply e-mail and delete this message in its entirety.

Reply all
Reply to author
Forward
0 new messages