Recognito for Android

559 views
Skip to first unread message

Abhishek Malik

unread,
Jul 16, 2015, 4:03:24 AM7/16/15
to reco...@googlegroups.com
Hi Amaury,

Firstly I am highly impressed with this library. Very fine work.

I have evaluated it on desktop platforms and it looks promising. My trouble arises with the fact that everything is moving towards mobility and I was hoping to use this on the android platform. I have been reading stuff here on the group around this topic but havent found anything concrete apart from 2 things:

1). Port javax.sound to android
2). Remove file io operations

I believe with considerable effort it might be feasible, but would be difficult for someone like me with very limited knowledge of speech processing. Do you have any update on
an Android version? Has any one on the group been able to achieve this?

A few more questions:

a). Somewhere you mentioned the introduction of MFCC/GMM. Is it on the cards?
b). My sue case is of user authentication. So I propose to record a users sample voice print and then check the euclidean distance to be less than 0.25 for an accurate match?
c). For training the system how long a recording should be good? As in, should I use one long recording, or should I use multiple short recordings and merge them using the mergeVoiceSample function.

Looking forward to some promising answers. thanks!

Abhishek

Amaury Crickx

unread,
Sep 11, 2015, 7:38:50 PM9/11/15
to Recognito
Hello Abhishek


On Thursday, July 16, 2015 at 10:03:24 AM UTC+2, Abhishek Malik wrote:
Hi Amaury,

Firstly I am highly impressed with this library. Very fine work.
Thanks!
 

I have evaluated it on desktop platforms and it looks promising. My trouble arises with the fact that everything is moving towards mobility and I was hoping to use this on the android platform. I have been reading stuff here on the group around this topic but havent found anything concrete apart from 2 things:

1). Port javax.sound to android
2). Remove file io operations

I believe with considerable effort it might be feasible, but would be difficult for someone like me with very limited knowledge of speech processing. Do you have any update on
an Android version? Has any one on the group been able to achieve this?
I'm afraid not. I also have serious doubts about sound quality while on-the-go. Some research should be done to improve preprocessing.
 

A few more questions:

a). Somewhere you mentioned the introduction of MFCC/GMM. Is it on the cards?
Maybe someday :s
 
b). My sue case is of user authentication. So I propose to record a users sample voice print and then check the euclidean distance to be less than 0.25 for an accurate match?
I'm not sure the current state of Recognito is sufficient for authentication purposes
 
c). For training the system how long a recording should be good? As in, should I use one long recording, or should I use multiple short recordings and merge them using the mergeVoiceSample function.
About 30 sec to 1 minute should be good, guts feeling. 

There would be no difference if you'd cut the original long sample and cut it into smaller parts. But you might consider having multiple valid voice print and link them to locations? Since location usually determines the background sound, it might help.

krishnas...@gmail.com

unread,
Mar 22, 2017, 6:31:10 AM3/22/17
to Recognito
hi abhishek,

can u help m to create the speaker identification application and one more thing can you please tell me that how can i execute the github recoginito code by eclipse.

Thanks in advance

Urvi gola

unread,
Jun 8, 2017, 4:56:37 AM6/8/17
to Recognito

Hi Abhishek,
Were you able to resolve 

1). Port javax.sound to android
2). Remove file io operations
this for android? alternative for these classes as they are not supported in android..


On Thursday, July 16, 2015 at 1:33:24 PM UTC+5:30, Abhishek Malik wrote:

Bibhudendu Mohapatra

unread,
Mar 10, 2018, 9:32:47 PM3/10/18
to Recognito
I can point you to how to get it working for simple 16K, PCM_16bit, mono. Take a look at this https://github.com/Semantive/waveform-android/blob/master/library/src/main/java/com/semantive/waveformandroid/waveform/soundfile/WavFile.java.
Create a function like this in the WavFile.java. 
public double[] readAudioInputStream()
            throws IOException {

double[] audioSample = new double[(int)numFrames];
byte[] buffer = new byte[8192];
int bytesRead = 0;
int offset = 0;

while((bytesRead = iStream.read(buffer)) > -1) {
int wordCount = (bytesRead / 2) + (bytesRead % 2);
for (int i = 0; i < wordCount; i++) {
double d = (double) byteArrayToShort(buffer, 2 * i) / 32768;
audioSample[offset + i] = d;
}
offset += wordCount;
}
return audioSample;
}
2) Copy the byteArrayToShort from FileHelper to WavFile.java and use little endian.
3) In Recognito.java's method convertFileToDoubleArray, replace call to FileHelper with WavFile.openWaveFile(voiceSampleFile) and return wavFile.readAudioInputStream

That should get you started.

Chellapandi Murugan

unread,
May 21, 2020, 5:18:27 AM5/21/20
to Recognito
Hi All,

I am getting this exception when I integrate recognito into my Android App. 

cannot access UnsupportedAudioFileException
            VoicePrint print = recognito.createVoicePrint("user", file);
                                        ^
  class file for javax.sound.sampled.UnsupportedAudioFileException not found.

When I googled, they say javax is not supported. Is there any alternative approach?
Reply all
Reply to author
Forward
0 new messages