[SOLVED] Perceptual Evaluation of Speech Quality [P.862] Implementation Problem with C

Status
Not open for further replies.

dss91

Junior Member level 2
Joined
Jun 2, 2010
Messages
21
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Location
kmm
Activity points
1,427
Actually i am working on a simulation which mimics the subjective analysis of MOS(Mean Opinion Score) Evaluation

My job is to compare the low bit rate codecs with ITU-T standard P.862

So i downloaded the software from the site

https://www.itu.int/rec/T-REC-P.862-200511-I!Amd2/en

Code:
$ cd Software/source
$ gcc -o PESQ *.c


it must work as
Code:
$ ./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

what am i actually getting is a linking error

Code:
/tmp/ccb7vwC7.o: In function `apply_VAD':
   pesqdsp.c:(.text+0x7be): undefined reference to `sqrtf'
   pesqdsp.c:(.text+0xe63): undefined reference to `logf'
   /tmp/ccb7vwC7.o: In function `time_align':
   pesqdsp.c:(.text+0x1263): undefined reference to `cos'
   pesqdsp.c:(.text+0x14d2): undefined reference to `pow'
   /tmp/ccb7vwC7.o: In function `split_align':
   pesqdsp.c:(.text+0x1894): undefined reference to `cos'
   pesqdsp.c:(.text+0x1da0): undefined reference to `pow'
   pesqdsp.c:(.text+0x218a): undefined reference to `pow'
   pesqdsp.c:(.text+0x2674): undefined reference to `pow'
   pesqdsp.c:(.text+0x2a41): undefined reference to `pow'
   /tmp/ccvZp6OI.o: In function `fix_power_level':
pesqmain.c:(.text+0xbbc): undefined reference to `sqrt'
/tmp/ccbSaDVw.o: In function `intensity_warping_of':
pesqmod.c:(.text+0x11d2): undefined reference to `powf'
pesqmod.c:(.text+0x1221): undefined reference to `pow'
pesqmod.c:(.text+0x124b): undefined reference to `pow'
/tmp/ccbSaDVw.o: In function `pseudo_Lp':
pesqmod.c:(.text+0x12f8): undefined reference to `powf'
pesqmod.c:(.text+0x1336): undefined reference to `pow'
/tmp/ccbSaDVw.o: In function `multiply_with_asymmetry_factor':
pesqmod.c:(.text+0x13b0): undefined reference to `powf'
/tmp/ccbSaDVw.o: In function `compute_delay':
pesqmod.c:(.text+0x153e): undefined reference to `sqrt'
/tmp/ccbSaDVw.o: In function `Lpq_weight':
pesqmod.c:(.text+0x18d4): undefined reference to `powf'
pesqmod.c:(.text+0x1910): undefined reference to `pow'
pesqmod.c:(.text+0x193b): undefined reference to `pow'
pesqmod.c:(.text+0x1966): undefined reference to `powf'
pesqmod.c:(.text+0x199b): undefined reference to `pow'
/tmp/ccbSaDVw.o: In function `set_to_sine':
pesqmod.c:(.text+0x19d9): undefined reference to `sinf'
/tmp/ccbSaDVw.o: In function `pesq_psychoacoustic_model':
pesqmod.c:(.text+0x1b38): undefined reference to `cos'
pesqmod.c:(.text+0x2b0d): undefined reference to `floor'
.....

i thought the error is due to math.h as cos and sin and some other functions which are part of tgmath.h in my /usr/include even it has not solved the problem,what may b the problem exactly moreover i have not changed the package code at all

can any one plz really help me out
,i am using this to evaluate MOS of a huge data base of original and degraded voice done by different compression codecs
 

actually the error was linking the math libraries compiling it with -lm option has done the favour
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…