vBaiCai / python-pesq

A python package for calculating the PESQ.
MIT License
353 stars 69 forks source link

wrong score for wideband signal #8

Closed boeddeker closed 5 years ago

boeddeker commented 5 years ago

I tested this code with the audio files from https://github.com/ludlows/python-pesq (i.e. speech.wav vs speech_bab_0dB.wav) and got the score 1.9688572883605957. There was said, the score should be 1.0832337141036987 for wide band pesq and 1.6072081327438354 for narrow band pesq.

Looking at the examples in https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/47333/versions/3/previews/test_pesq2_mtlb.m/index.html there are 3 values that can be calculated:

    %    NB PESQ MOS = 1.969
    %    NB MOS LQO  = 1.607
    %    WB MOS LQO  = 1.083

I would expect to get the MOS LQO without downsampling.

Is it intended to always return the NB PESQ MOS? If yes, do you have a reason for that?

vBaiCai commented 5 years ago

PESQ is widely used in speech enhancement. In this task, PESQ often refers to NB PESQ MOS. So, my implementation always returns the NB PESQ MOS.

boeddeker commented 5 years ago

Thanks for the explanation. I also work on speech enhancement and in case of wideband signals, we prefer the WB score, otherwise some information in the signal are ignored.

Can you add a hint to the readme, that this repo calculates the Raw MOS for narrowband handset listening and not the MOS-LQO? And that wideband extension (headphone listening) is not supported? (I took the names from the pesq help text)

vBaiCai commented 5 years ago

Thanks for your suggestions! I will add the hint to the readme.

boeddeker commented 5 years ago

Thanks

turian commented 3 years ago

Any option to support the wideband score in the future?