Как начать тест PESQ на качество голоса? - PullRequest
6 голосов
/ 24 февраля 2010

Я пытаюсь сделать тест качества голоса (pesq), но я не понимаю, с чего начать. Я пытаюсь скомпилировать общедоступный исходный код (http://www.itu.int/itu-t/recommendations/index.aspx?ser=P (с.862)), но не могу запустить тест. Может быть, кто-нибудь работает с этим?

Ответы [ 5 ]

18 голосов
/ 22 октября 2012

Вам понадобится компилятор 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 Гц.

5 голосов
/ 03 февраля 2014

В последних версиях GCC вам, возможно, придется использовать этот код для компиляции:

gcc -o PESQ *.c -lm

BR

3 голосов
/ 13 июня 2018

В дополнение к ответу от staticfloat и, основываясь на ответе от AntoineF, некоторые версии gcc могут выдавать следующие предупреждения:

pesqmain.c: In function 'main':
pesqmain.c:322:17: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long int' [-Wformat=]
     printf ("An error of type %d ", Error_Flag);
             ^
pesqmain.c: In function 'pesq_measure':
pesqmain.c:629:35: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
         fprintf (resultsFile, "%d\t", Fs);
                               ^
pesqmain.c:636:34: warning: too many arguments for format [-Wformat-extra-args]
        fprintf (resultsFile, "\n", Fs);

Чтобы решить эту проблему, вы можете явно проигнорировать эти предупреждения, выполнив:

gcc -Wno-format -Wno-format-extra-args -o pesq *.c -lm  # works on Ubuntu 16.04, gcc 5.4.0

Надеюсь, что это может помочь некоторым людям, не знакомым с компиляцией кода C, таким как я!

1 голос
/ 28 июня 2010

Попробуйте программное обеспечение AQuA, оно не является стандартом ITU-T, но очень хорошо решает тестирование качества речи VoIP:

http://www.sevana.fi/voice_quality_testing_measurement_analysis.php

0 голосов
/ 31 марта 2010
  • Unrar установочный файл
  • Удалите оба файла (оригинальный и деформированный файл) в соответствующую папку выполнить файл
  • вы получите результаты в блокноте
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...