Search code examples
javaandroidwavmusicg

I'm not able to use FingerprintSimilarity from musicg library


I am trying to implement musicg library in my android project. I had successfully import it to my project and try to use it for comparing two audio files and get the symilarity between them.

Here is my code :

final String rootPath = Environment.getExternalStorageDirectory().getPath() + "/Myapp/music/";
String p1 = rootPath + "outputfiles/1.wav";
String p2 = rootPath + "outputfiles/com.wav";

Wave w1 = new Wave(p1);
Wave w2 = new Wave(p2);


FingerprintSimilarity fingerprintSimilarity = w1.getFingerprintSimilarity(w2);
float score = fingerprintSimilarity.getScore();
float similarity = fingerprintSimilarity.getSimilarity();
Log.d("Similar sound :", "Score : " + score + "\n  Similarity : "+ similarity);

but when I run it my app crashed at :

  FingerprintSimilarity fingerprintSimilarity = w1.getFingerprintSimilarity(w2);

I had debugged my app also but no error is reported in debug report. Please help me. Thank You in advance


Solution

  • May be files isn't exist or not correct wave format? I recommend to add more debug information to see a problem, like:

    try {
    
        final String rootPath = Environment.getExternalStorageDirectory().getPath() + "/Myapp/music/";
        String p1 = rootPath + "outputfiles/1.wav";
        Log.d("p1 " + p1); 
        File f1 = new File(p1);
        Log.d("f1 " + f1.exists() && !f1.isDirectory());  
    
        String p2 = rootPath + "outputfiles/com.wav";
        Log.d("p2 " + p2); 
        File f2 = new File(p2);
        Log.d("f2 " + f2.exists() && !f2.isDirectory());  
    
        Wave w1 = new Wave(p1);
        Log.d("w1 " + w1); 
    
        Wave w2 = new Wave(p2);
        Log.d("w2 " + w2); 
    
        FingerprintSimilarity fingerprintSimilarity = w1.getFingerprintSimilarity(w2);
        Log.d("fingerprintSimilarity " + fingerprintSimilarity ); 
        float score = fingerprintSimilarity.getScore();
        Log.d("score " + score ); 
        float similarity = fingerprintSimilarity.getSimilarity();
        Log.d("Similar sound :", "Score : " + score + "\n  Similarity : "+ similarity);
    } catch (Exception e) {
        Log.d("Error" + e.getMessage()); 
    }