How to find the highest peaks in an audio signal?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
RamSum
le 14 Fév 2015
Réponse apportée : Greg Dionne
le 24 Mar 2015
Hi,
I have a set of audio files(.wav). Each audio file is the recording of a user typing a 8 letter word. Each letter when typed produces two sounds 1. when key is pressed, 2. when key is released. Total 16 sounds are produced for one complete typing. My question is, How can I find the highest peak of each press and release and how can I extract the timing information when a peak is occurred?
To simply my question, How to extract the timing information when a sound is produced?
How can i solve this problem. Please anyone guide me on this.
Thanks in advance.
4 commentaires
Star Strider
le 16 Fév 2015
I was hoping for the .wav file, not the image. I would have done a spectrogram of it to see if the key-press and key-release had different (and ideally repeatable) spectra, then if they did, design appropriate digital filters to detect them.
Oh, well...
Réponse acceptée
Greg Dionne
le 24 Mar 2015
Try something like this to get you started:
y = audioread('U1_S1_T1.wav')
yLeft = y(:,1);
yrmsenvLeft = sqrt(conv(yLeft.^2,ones(200,1)/200,'same'))
plot([yLeft yrmsenvLeft])
0 commentaires
Plus de réponses (1)
Image Analyst
le 15 Fév 2015
I know it seems obvious, but how about just thresholding??
loudElements = signal > someValue; % Logical vector.
loudIndexes = find(loudElements); % Linear indexes - actual index numbers.
Anyway, it's a start. If you need something more robust and sophisticated, you'll have to tweak it and develop something better.
9 commentaires
Image Analyst
le 17 Fév 2015
Type "ver" to see if you have it. If you want it, you'll have to contact the Mathworks.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
