Recognize Users Voice for Authentication

I want to create a system that recognize to unique users voice. The system may be used to authenticate user based on his/her voice. In short I want to create a voice signature. Is it possible using edge Impulse? If yes, how reliable the model will be? What will be requirements? Any help on idea is much appreciated. Thanks

Hi Timothy,

There’s two ways this could go based on how you need to integrate it…

Firstly, if it’s for an authentication of a single user you can treat this as a classifier and follow along with the Responding to your voice - Edge Impulse Documentation tutorial

things to be aware of

  • you’d get best performance from authenticating with a fixed word; in which case you want to have positive examples of the user saying the word and have negative examples include other people saying the same word. i.e. it’s not just about detecting that word, but detecting a specific person saying it.
  • it’s likely you’ll want to tune the model with respect to ways it might fail; allowing the wrong user in vs not allowing the right user in.

A more general way to approach these kinds of signature-like problems is with the idea of embeddings; we collect large amounts of speech from various people and then train a model to map these snippets of speech to points on a sphere such that different areas of the sphere correspond to different users. However, we haven’t had a focus on these classes of models at Edge Impulse yet so, though it’s totally doable with various parts of the platform, it’s not an out-of-the-box thing.

Let me know your thoughts; this second piece is something we can help with, but it’ll require a non trivial amount of work

Cheers, Mat

2 Likes

@matkelcey I want to create a model to authenticate a single user saying a word and restrict other users saying same word. A voice signature. But you said model might fail. Any other way we can make the model functional?

It might fail, but it might be good enough too. I’d definitely try first since, if nothing else, it’ll force you to build you a good evaluation set to iterate on. Cheers, Mat

1 Like

Thanks @matkelcey please post update here.