How to find the highest peaks in an audio signal?
6 次查看(过去 30 天)
显示 更早的评论
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 个评论
Star Strider
2015-2-16
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...
采纳的回答
Greg Dionne
2015-3-24
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 个评论
更多回答(1 个)
Image Analyst
2015-2-15
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 个评论
Image Analyst
2015-2-17
Type "ver" to see if you have it. If you want it, you'll have to contact the Mathworks.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 AI for Signals 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!