0
$\begingroup$

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.).

$\endgroup$
0
$\begingroup$

This is not an easy task since its a classification problem. A while back at work I used time-frequency-domain transformations like STFT (Short Time Fourier Transformation), IWT (Integral Wavelet Transformation), DWT (Discrete Wavelet Transformation) STCEP (Short Time Cepstrum), WVD (Wigner Ville Distribution) to create images/matrices from voice recordings which were then classified using a convolutional neural network as classifier. This is a common approach for this task. You could try that or you could try setting certain limits, e.g. if in a certain frequency range a certain energy is exceeded for a certain time, the file is classified as a speech file.

| improve this answer | |
$\endgroup$
  • $\begingroup$ I just need to verify if audio data is present in the sink (recorded file). Window/frame wise analysis is not required as of now. Could you give any pointers or sources which demonstrate on which method would be effective? Cross-correlation, LPC or MFCC or anything else? $\endgroup$ – skrowten_hermit Sep 2 at 14:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.