How can I resample wav file

后端 未结 4 443
青春惊慌失措
青春惊慌失措 2021-01-03 17:24

Currently I\'m recording an audio signal with following specs:

  • Channels: 1
  • SamplesPerSecond: 8000
  • BitsPerSample: 16

How can I

4条回答
  •  梦谈多话
    2021-01-03 17:31

    AS3 function for resampling. You can easy change to convert this code to C#:

        private function resampling(fromSampleRate:int, toSampleRate:int, quality:int = 10):void
        {
            var samples:Vector. = new Vector.;
    
            var srcLength:uint = this._samples.length;
            var destLength:uint = this._samples.length*toSampleRate/fromSampleRate;
            var dx:Number = srcLength/destLength;
    
            // fmax : nyqist half of destination sampleRate
            // fmax / fsr = 0.5;
            var fmaxDivSR:Number = 0.5;
            var r_g:Number = 2 * fmaxDivSR;
    
            // Quality is half the window width
            var wndWidth2:int = quality;
            var wndWidth:int = quality*2;
    
            var x:Number = 0;
            var i:uint, j:uint;
            var r_y:Number;
            var tau:int;
            var r_w:Number;
            var r_a:Number;
            var r_snc:Number;
            for (i=0;i= 0) && (j < srcLength))
                    {
                        r_y += r_g * r_w * r_snc * this._samples[j];
                    }
                }
                samples[i] = r_y;
                x += dx;
            }
    
            this._samples = samples.concat();
            samples.length = 0;
        }
    

提交回复
热议问题