小编tri*_*jia的帖子

将PCM音频从44100下采样到8000

我一直在研究音频识别演示,而api需要我传递一个800016000的采样率的.wav文件,所以我必须对它进行下采样.我尝试了2种算法如下.虽然它们都没有按我的意愿解决问题,但结果存在一些差异,我希望这会使它更加清晰.

这是我的第一次尝试,当sampleRate%outputSampleRate = 0时它工作正常,但是当outputSampleRate = 8000或1600时,结果音频文件是静默的(这意味着输出数组的每个元素的值为0):

function interleave(inputL){
  var compression = sampleRate / outputSampleRate;
  var length = inputL.length / compression;
  var result = new Float32Array(length);

  var index = 0,
  inputIndex = 0;

  while (index < length){
    result[index++] = inputL[inputIndex];
    inputIndex += compression;
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

所以这是我的第二次尝试,它来自一家大公司,它也不起作用.更重要的是,当我设置sampleRate%outputSampleRate = 0时,它仍然输出一个静默文件:

function interleave(e){
  var t = e.length;
  var n = new Float32Array(t),
    r = 0,
    i;
  for (i …
Run Code Online (Sandbox Code Playgroud)

javascript audio downsampling pcm

7
推荐指数
1
解决办法
4681
查看次数

标签 统计

audio ×1

downsampling ×1

javascript ×1

pcm ×1