|
From: Doug C. <idi...@us...> - 2009-10-06 09:10:38
|
> > I'm using speex to record & distribute seminar audio. > > It lets you get really high quality voice recording at very low file > size. (I've never heard file based AMR, but suspect the quality is > not the best) I haven't done any quality comparisons with AMR, but it seems to work ok. Main problem is that it AMR still covered by patents. > It also sounds to me like it really cleans up noisy audio - I assume > it drops out sounds that the human voice cannot make, so sounds of > trains and buses and construction crews outside the venue get cleaned > up. The audio sounds much cleaner, I'm just guessing at reasons why > this would be the case. > The speex codec package includes several optional preprocessing steps to clean up audio. Some of these might be useful on their own, perhaps even worth exposing as effects in SoX. These include noise reduction, automatic gain control, and voice activity detection. > Having sox be able to process this stuff would be great. The tempo > effect, for example, would be a useful thing that few other programs > provide. > You can combine the speex and sox tools to make them work together. For example, this will play a mono wideband speex file through SoX: speexdec a.spx - | sox -t s16 --rate 16000 -c 1 - -d (effects ...) The speexdec parameters say that the output from the file should be sent to sox via stdout. The parameters to sox specify input of type s16 at 16000 Hz and one channel from stdin. (Note that you'll need different parameters to sox for different speex files, as they might be encoded at 8000 or 32000 Hz or with 2 channels.) You could similarly encode a file from sox to speexenc: sox (input file spec) -t s16 --rate 16000 -c 1 - (effects ... ) | speexenc --rate 16000 - a.spx It probably wouldn't be a lot of work to add speex to SoX, but it would take some time. One of the main issues is how to set all of the speex options when encoding the file since SoX doesn't currently have a good way to control more than one encoder setting, and speex has 4 or 5 important encoder settings that people might need to set. > > BY THE WAY - speex is in ffmpeg, and the ffplay program (I think it's > part of ffmpeg) plays speex files, but when I try this > > sox -t ffmpeg *spx -t pulseaudio > > > I get this: > > sox WARN mp3-duration: recoverable MAD error > sox WARN mp3-duration: MAD lost sync > I'm not sure exactly what happened here, but what happens when you use it with just one file named instead of using *? You can also play speex files through ffmpeg like this: ffmpeg -i myfile.spx -f sox - | sox -p -d (effects ...) |