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)
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.