androidvoice-recognition

Voice recognition for alQuran Arabic


How can we compare two audio files, or voice recorder files, according to Al-Quran.
Al-Quran has special pronunciation compared to Arabic pronunciation.
Is it possible to do the comparison between user voice and the way Al-Quran is pronounced?

I have already tried the Google Speech to Text for Arabic, but it seems it does not handle the pronunciation for Al-Quran.

For example this audio (Al-Quran's recite)

Quran1

Quran2


Solution

  • Comparing two audio files is that much easy, but if you want to analyse the Thajweed (Proper Pronunciation) of Quran according to the legal way of Arabic grammar, you have to use some kind of machine learning techniques such as Audio Classifications.

    In order to use ML you need to get more than 1000 sample voices of Quran verses recordings with proper pronunciation to compare the current voice and detect the Thajweed mistakes, I'm happy if you could build an AI to detect that, but it requires more time and resources than you expect.

    In simple: There is an Android library called musicg which you can use to compare two audio files and get the similarity percentage between them. (It may or may not give 100% accuracy in your case)

    Give file path, URI or bytes array to Wave class : in my case I've given InputStream

    Wave wave = new Wave(getAssets().open("quran_verse_25.wav"));
    Wave wave1 = new Wave(getAssets().open("test_audio.wav"));
    
    FingerprintSimilarity fingerprintSimilarity = wave.getFingerprintSimilarity(wave1);
    float score = fingerprintSimilarity.getScore();
    float similarity = fingerprintSimilarity.getSimilarity();
    
    Log.d("Similarsound", "Time Match: " + fingerprintSimilarity.getsetMostSimilarTimePosition() + " Score : " + score + " Similarity : " + similarity);
    

    The library can be download through this URL.