splitting audio in a frames
9 views (last 30 days)
Show older comments
Thanks for your reply sir and sorry for asking you again that will you please temme is there any function or procedure through which i can directly break my wav audio file because after partitioning wav file into many frames i have to perform spectral analysis,please reply me
Thank you sir.
0 Comments
Accepted Answer
Walter Roberson
on 26 Dec 2011
Sorry, there is no method to "directly break your wav audio file into frames". You will either have to read one frame at a time using wavread and a range of indices, such as I showed in the previous reply, or else you will have to read the file in all at once and break it in to frames once it is read in (in which case the breaking process is no longer direct and is independent of the fact that it is a wav audio file.)
If it turns out that you are interested in the mechanisms to break a signal into frames after it has been completely read in, then go to the main MATLAB Answers page ("Home") and in the box near the top that is marked "Search MATLAB Answers" type in
frames
and press return; and look through the results.
1 Comment
Walter Roberson
on 30 Dec 2011
An additional command that I often forget about is http://www.mathworks.com/help/toolbox/signal/ref/buffer.html
More Answers (2)
Wayne King
on 26 Dec 2011
Hi Vijay, do you the DSP System Toolbox? You can use dsp.AudioFileReader to read the wav file one frame at a time, which you can store in a matrix.
nn = 1;
hmfr = dsp.AudioFileReader('speech_dft.avi');
while ~isDone(hmfr)
audio(:,nn) = step(hmfr);
nn = nn+1;
end
release(hmfr);
I'm not sure if this is a better solution for you, or not.
1 Comment
Walter Roberson
on 26 Dec 2011
The above will default to 1024 samples per frame, and it offers no method to split in to frames of particular signal time without already knowing the Fs.
It is not clear that this would offer any benefits over using wavread() with a frame index range, other than perhaps efficiency. Vijay, in this Question, is saying that that mechanism is not "direct" enough for his needs.
Regardless of whether "direct" means "splits the .wav file into a number of .wav file each of a particular time", or "requires only a single call to a single built in function", the answer is NO, there is no routine to split .wav files into a set of smaller .wav files, and there is no single built-in call that will do the splitting.
See Also
Categories
Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!