'Can we integrate POLQA (perceptual objective listening quality assessment), to Check Voice Quality of Call?

I have requirement to Check Voice quality Rate out of 5 , 5 indicate excellent and 1 is bad.

i have research POLQA can do it. but can not find any reference for Android Integration.

I found visQol library in Python.

But i need it in Android E2E.

POLQA trademarks - POLQA VisQOL in Python

Please help



Solution 1:[1]

As far as I know, you need a license to use POLQA. You could use PESQ instead, which is its predecessor. PESQ is not as good as other state of the art metrics but the source code is on ITU-T website and there is also a python implementation on https://github.com/ludlows/python-pesq

The use of PESQ is not recommended since it is outdated, but can be useful if you have no other choice.

I also found this library which is supposed to calculate POLQA but it is in python, and I haven't tried it. https://pypi.org/project/AlgorithmLib/

Solution 2:[2]

You can also use Sevana AQUA library. It's another algorithm, but MOS scores match in most of the cases.

Solution 3:[3]

@Nadim Ansari, I have a similar requirement where I am recording audio/speech and I need to verify if it is same as the reference(original) audio. I am in the process of implementing Visqol, which for my purposes works well. This is how I started implementing it on Mac:

  1. Download Visqol and all the dependencies, compile it according to the gitHub instructions
  2. Prepare 2 files, reference and degraded, ideally 5-10sek each, silence at most 0.5 sec from each side (with ffmpeg)
  3. Convert files to .wav (with ffmpeg)
  4. Change sample rate (with ffmpeg) to 16000kHZ, as required by Visqol for speech testing, just for audio there is other sample rate
  5. Place prepared files into the project
  6. Compare the original and degraded file, pipe the results into a file
  7. Read the results from the file
  8. Decide on the score, e.g. when it's < 4, fail the test scenario

Command used for comparing 2 speech files:

./bazel-bin/visqol --reference_file out_trimmed.wav --degraded_file different_file_sample_rate_changed.wav --use_speech_mode --verbose (use speech mode for comparing speech)

With the same samples it was 4.7 With a slightly different sample it was 1 so for me it looks good so far.

Currently I'm at the point where I am comparing files using the Terminal and it works very well so I am going to implement it further, probably also changing the approach so that there are fewer steps.

Solution 4:[4]

Just to state it very clearly and to avoid misunderstandings: The fact that source code for eg. PESQ is available on the ITU web site does not mean that you can use it freely. Any use of PESQ or POLQA is subject to a valid license agreement with OPTICOM. The Pypi "AlgorithmLib" is also no legal option and it definitely does not implement POLQA despite stating so. It would never pass a conformance test. We did also compare the difference between POLQA, ViSQOL and AQUA scores to many thousand subjective scores and the difference in accuracy between the three is HUGE. POLQA is standardized, independently validated and well documented by the ITU. It has excellent performance. ViSQOL is already far worse, even worse than PESQ and AQUA is even worse.

Don't let anybody fool you by showing the performance of a voice quality measurement algorithm for a small number of subjective databases. POLQA was validated on 64 and trained on >100.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Eugenio Massolo
Solution 2 Sevana Ou
Solution 3
Solution 4 Chris