I have an original speech .wav
file and a few recorded samples of the same file. Each recorded version has some differences wrt the original file. For example, The source speech file has the following MFCC (computed using standard_mfcc.cpp
from essentia library) values:
metadata:
version:
essentia: "2.1-beta6-dev"
lowlevel:
mfcc:
max: [-815.906616211, 261.080718994, 55.8852043152, 58.5018157959, 97.9889144897, 22.7372055054, 7.1145324707, 42.8783988953, 5.8247795105, 12.6973991394, 41.5943908691, 13.7462425232, 21.8554534912]
mean: [-1094.59521484, 94.8362884521, -64.420249939, -14.4568548203, 18.2156829834, -33.5658378601, -22.6203632355, -0.735072553158, -24.6681880951, -15.3760185242, 4.62109327316, -9.22693252563, -5.10794448853]
min: [-1264.91162109, -9.69033813477, -207.295608521, -90.1357574463, -26.3243675232, -98.8004074097, -81.369758606, -44.3498458862, -73.2340698242, -59.4465103149, -45.6098747253, -38.3572883606, -30.6068172455]
var: [23133.2421875, 9150.67089844, 3670.29907227, 766.523193359, 540.077148438, 836.65435791, 640.330993652, 188.692565918, 372.184112549, 317.102050781, 196.87197876, 93.9122772217, 86.7228469849]
And a recorded (and possibly attenuated) has the following values:
metadata:
version:
essentia: "2.1-beta6-dev"
lowlevel:
mfcc:
max: [-1007.13189697, 167.29095459, 48.0226707458, 46.847869873, 64.3429641724, 24.0410232544, 12.3777160645, 24.6854515076, 5.59940719604, 16.611164093, 32.369430542, 13.1455497742, 16.1519126892]
mean: [-1196.24389648, 38.9406547546, -22.5868453979, -0.782599449158, 10.1974363327, -13.4281816483, -13.1851472855, -10.4098329544, -18.1054363251, -4.89717817307, 5.46759843826, -4.75768613815, -4.09277105331]
min: [-1264.91162109, -12.7568664551, -97.3894882202, -63.6558418274, -49.6770133972, -70.0298690796, -74.5334091187, -68.8318328857, -63.4356994629, -43.8183059692, -36.5579185486, -32.2571372986, -31.0356960297]
var: [4940.57275391, 2740.14135742, 694.35736084, 336.185546875, 274.917053223, 243.030929565, 388.90625, 407.297821045, 279.655334473, 121.326026917, 107.581237793, 49.6084022522, 42.7065734863]
Now I need to compare the above 2 files and verify if speech exists in the recorded file using a C++ program. By plain manual analysis, by considering the mean values of either files above, other than the fact that there are no zero values, there doesn't seem to have any direct relation between them. Can MFCC be used in any way to verify speech (from a source)? Can any other tool/method/algorithm (LPC?) be used to achieve this effectively? Spectral or temporal domain, doesn't matter (temporal method would be ideal, but doesn't really matter if results are accurate enough). Nor does the presence of any problems (gaps, noise etc.).