splitting audio in a frames

5 vues (au cours des 30 derniers jours)
vijay rao
vijay rao le 26 Déc 2011
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.

Réponse acceptée

Walter Roberson
Walter Roberson le 26 Déc 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 commentaire
Walter Roberson
Walter Roberson le 30 Déc 2011
An additional command that I often forget about is http://www.mathworks.com/help/toolbox/signal/ref/buffer.html

Connectez-vous pour commenter.

Plus de réponses (2)

Wayne King
Wayne King le 26 Déc 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 commentaire
Walter Roberson
Walter Roberson le 26 Déc 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.

Connectez-vous pour commenter.


vijay rao
vijay rao le 29 Déc 2011
Thank you very much sir.

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by