6

I want to develop an android app.

One feature of the app is recognize 2 people's voice.

It will be kike this - when the app will open, 2 people will talk in front of it. App will detect 2 persons speaking and will calculate how much % (let 2 persons are A and B) person A spoke and same for person B.

So, say, after 1 minute the app will tell A talks 80% and B talks 20%.

So, what I need is how to differentiate 2 people's voice.

I have tried SpeechRecognizer and android.speech.tts . But I can't make it working.

Is it possible in android to differentiate 2 people's voice?

Thanks in advance for helping.

Abrar Jahin
  • 13,970
  • 24
  • 112
  • 161
  • I think there is a way. I also need it's solution –  Nov 23 '14 at 07:24
  • Can anyone help? Please? – Abrar Jahin Nov 23 '14 at 07:26
  • 1
    SpeechRecognizer is used to run automatic speech recognition (ASR), while TTS stands for "Test to Speech". You need to recognize speaker, not speech. So both are just to wrong way. On a non android environment you should look at LIUM_SpkDiarization or Alize. I have no idea how to emulate these to software in android. – lCapp Nov 24 '14 at 10:16
  • 1
    have a look at this, so you can have a better understanding of what you want to do. http://stackoverflow.com/questions/4837511/speaker-recognition – lCapp Nov 24 '14 at 10:19
  • did you make this app? If so link plz, I want to buy it :-) – Freedom_Ben Jun 03 '17 at 00:21

1 Answers1

4

SpeechRecognizer or TTS will not help you as they have designed to recognize speech. You have to use DSP technology, in order to recognize the speaker. Due to the complexity, i don't think you can achieve this within the device itself. You can save your audio (using something like AudioRecord in Android) and then send it to a server. in the server side you can run a speaker recognition program. ALIZE is a quite popular open source tool for this.

Asanka Senavirathna
  • 4,570
  • 4
  • 18
  • 20