LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

similarity of 2 audio signals

Solved!
Go to solution

Hello!

I´m trying to figure out how to get similarity of two audio signals in LabVIEW.

I read original signal from WAV file and I do some operations with it (filtering etc.). After that I want to know similarity of original and filtered signal(spectrogram).

I know about two things: correlation and cepstrum distance(don´t know how to implement).

I have tried LabVIEW CrossCorrelation.vi file to compare my two signals spectrograms, but I´m not sure how to evaluate the result (Check picture).

I get some kind of graphic information, but how can I evaluate it statistically? For example: Output is  80% similar to input....

Can you show me any direction, or give any advice?

I have LabVIEW 2013

I have also attached my VI + source WAV signal.

example.jpg

0 Kudos
Message 1 of 6
(5,122 Views)

I hope that someone will help me out.  Smiley Happy

0 Kudos
Message 2 of 6
(5,070 Views)

Tom^5,

 

Is sound "similarity" a defined term in the audio field? 

 

You need to tell us how you want to define similarity in a quantitative way.

 

With a complicated waveform such as you have in the data you posted there are many characteristics of the signal. Which of those do you want to compare?

 

Is it really the intention to low pass filter the high frequency components at 400 Hz?

 

Lynn

0 Kudos
Message 3 of 6
(5,033 Views)

Hello!

I read some stuff about sound 'similarity', and its not defined term. I just wanted to find some simple solution, but its to complex for me.

I think i will compare frequency domains - spectrograms, but i dont know how to compare them statisticaly. If its posible 😕

 

Yes, I need to low pass them, because I want to detect envelopes of that signals.

 

Thank you, I think that I will just comment the spectrograms and thats all.

0 Kudos
Message 4 of 6
(5,016 Views)
Solution
Accepted by TomTomTomTomTom

Commenting the spectrograms is probably a good start.

 

If you are able to define the characteristics which are significant later, then go back and try to implement measurements of those.

 

I think the Hilbert transform can be used to get an envelope. I have not done that and am not sure of the theory, but some searching may give you some ideas.

 

Lynn

0 Kudos
Message 5 of 6
(4,990 Views)

Hi,

 

            So, what I would suggest, is that you might want to use the autocorrelation and cross correlation features –  first, you could do an autocorrelation of the original signal, and this way you would get a reference value that you could use later – let’s call it “ACval”.  Then, you can perform a cross correlation between the original and the filtered signal: you will get some random value – again, let’s call it “CCval”. Once you’ve done this, the rest should be simple: Similarity degree = CCval/ACval*100%

 

 

Hope this helps.

0 Kudos
Message 6 of 6
(4,957 Views)