splitting audio in a frames

5 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2011-12-26
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 个评论
Walter Roberson
Walter Roberson 2011-12-30
An additional command that I often forget about is http://www.mathworks.com/help/toolbox/signal/ref/buffer.html

请先登录,再进行评论。

更多回答(2 个)

Wayne King
Wayne King 2011-12-26
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 个评论
Walter Roberson
Walter Roberson 2011-12-26
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.

请先登录,再进行评论。


vijay rao
vijay rao 2011-12-29
Thank you very much sir.

类别

Help CenterFile Exchange 中查找有关 Multirate Signal Processing 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by