Вам понадобится компилятор C (эталонная реализация ITU PESQ на самом деле является C, поэтому вам не нужен компилятор C ++, хотя оба должны работать нормально)
Например, в linux вы должны войти в каталог source
и скомпилировать с помощью gcc
:
$ cd Software/P862_annex_A_2005_CD/source
$ gcc -o PESQ *.c
Это скомпилирует файлы dsp.c, pesqdsp.c, pesqio.c, pesqmain.c, pesqmod.c
в двоичный файл PESQ
, который затем можно запустить с помощью ./PESQ
:
$ ./PESQ
Perceptual Evaluation of Speech Quality (PESQ)
Reference implementation for ITU-T Recommendations P.862, P.862.1 and P.862.2.
Version 2.0 October 2005.
<snip long unenlightening IP notice>
Usage:
PESQ HELP Displays this text
PESQ [options] ref deg
Run model on reference ref and degraded deg
Options: +8000 +16000 +swap +wb
Sample rate - No default. Must select either +8000 or +16000.
Swap byte order - machine native format by default. Select +swap for byteswap.
Default mode of operation is P.862 (narrowband handset listening). Select +wb
to use P.862.2 wideband extension (headphone listening).
File names may not begin with a + character.
Files with names ending .wav or .WAV are assumed to have a 44-byte header, which is automatically skipped. All other file types are assumed to have no header.
Чтобы запустить этот двоичный файл и проверить свой алгоритм, вам нужен «эталонный» файл .wav (это чистая, оригинальная речь) и «ухудшенный» файл .wav (это вывод вашего алгоритма). Просто введите оба в PESQ
, и он выдаст результаты теста. Пример работы с двумя WAV-файлами, включенными в исходный дистрибутив из МСЭ:
$ cd Software/P862_annex_A_2005_CD/conform
$ ../source/PESQ +8000 or105.wav dg105.wav
Perceptual Evaluation of Speech Quality (PESQ)
Reference implementation for ITU-T Recommendations P.862, P.862.1 and P.862.2.
Version 2.0 October 2005.
<snip IP notice>
Reading reference file or105.wav...done.
Reading degraded file dg105.wav...done.
Level normalization...
IRS filtering...
Variable delay compensation...
Acoustic model processing...
P.862 Prediction (Raw MOS, MOS-LQO): = 2.237 1.844
Где параметр +8000
обозначает, что файлы wav сэмплируются с частотой 8000 Гц.