Limitations of audio processing in R
Or if people want to do it the R way: Use the tuneR package and its readWave function that supports reading parts of Wave files if the whole file is not relevant. You can specify it in many units, see its help page. tuneR has also the tools to cut, merge etc. Wave files and analyse it with basic tools. If you want to deal with the whole thing in R: In CD quality this is roughly 2GB: 3 hours x 60 minutes x 60 seconds x 44100 samples x 2 channels x 2 bytes and you need at least 6 GB to do sensible things with it. Best, Uwe Ligges
On 22.09.2011 00:26, Ulisses Camargo wrote:
Dear Ted, Thank you very much about your answer, it really helped. Now I am working on the function that will do all the job with sox help. All the best, Ulisses 2011/9/21 Ted Harding<ted.harding at wlandres.net>
Hi Ulisses! Yes, "get more creative" -- or "get more memory"! On the "creative" side, it may be worth thinking about using an independent (non-R) audio file editor. I'm writing from the standpoint of a Linux/Unixoid user here -- I wouldn;t know how to set ebout this in WIndows. You could use R to create a shell script which would run the editor in such a way as to extract your 6 random samples, and save them, where the script would be fed with the randomly-chosen 5-minute intervals decided by R. This could be done under the control of R, so you could set it up for your 1500 or so sets of samples, which (with the right editing program) could be done quite quickly. On Linux (also available for Windows) a flexible audio editor is 'sox' -- see: http://en.wikipedia.org/wiki/SoX To take, say, a 5-minute sample starting at 1 hour, 10 min and 35sec into the audio file "infile.wav", and save this as "outfile.wav", you can execute sox infile.wav outfile.wav trim 01:10:35 00:05:00 and such a command could easily be generated by R and fed to a shell script (or simply executed from R by using the system() command). My test just now with a 5-minute long sample from a .wav file was completed in about 5 seconds, so it is quite efficient. There is a huge number of options for 'sox', allowing you to manipulate almost any aspect of the editing. Hoping this helps, Ted. On 21-Sep-11 19:55:22, R. Michael Weylandt wrote:
If you are running Windows it may be as simple as using memory.limit() to allow R more memory -- if you are on another OS, it may be possible to get the needed memory by deleting various things in your workspace and running gc() Of course, if your computer's memory is<3GB, you are probably going to have trouble with R's keeping all objects in memory and will have to get more creative. Michael On Wed, Sep 21, 2011 at 3:43 PM, Ulisses.Camargo< moliterno.camargo at gmail.com> wrote:
Hello everybody I am trying to process audio files in R and had some problems with files size. I??? using R packages 'audio' and 'sound'. I??? trying a really simple thing and it is working well with small sized .wav files. When I try to open huge audio files I received this error message: "cannot allocate vector of size 2.7 Gb". My job is open in R a 3-hour .wav file, make six 5-minute random audio subsamples, and than save these new files. I have to do the same process +1500 times. My problems is not in build the function to do the job, but in oppening the 3-hour files. Does anybody knows how to handle big audio files in R? Another package that allows me to do this work? I believe this is a really simple thing, but I really don??? know what to do to solve that memory problem. Thank you very much for your answers, all the best! Ulisses
-------------------------------------------------------------------- E-Mail: (Ted Harding)<ted.harding at wlandres.net> Fax-to-email: +44 (0)870 094 0861 Date: 21-Sep-11 Time: 22:05:55 ------------------------------ XFMail ------------------------------
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.