网络音频 - 改变现场麦克风的音高

时间:2015-12-16 23:23:09

标签: javascript html5 web-audio

我有这段代码可以在麦克风和扬声器之间建立实时连接。是否可以实时改变我的声音音调?

navigator.getUserMedia(
  { audio: true },
  function(stream) {
    window.AudioContext = window.AudioContext || window.webkitAudioContext;
     var ctx= new AudioContext();

     // Create an AudioNode from the stream.
     var mediaStreamSource = ctx.createMediaStreamSource( stream );

     // Connect it to the destination to hear yourself (or any other node for processing!)
     mediaStreamSource.connect( ctx.destination );

  },
  function(err) {
    console.log(err);
  }
);

2 个答案:

答案 0 :(得分:2)

实际上,这是可能的。我使用粒度再合成方法在输入效果演示(https://webaudiodemos.appspot.com/input/index.html中选择“Pitch Shifter”),使用一对具有循环斜坡延迟时间的延迟节点。如果你想做更好的事情(比如相移声编码),你可能需要一个ScriptProcessor / AudioWorker。

答案 1 :(得分:0)

除非你自己在ScriptProcessorNode或即将推出的AudioWorkerNode中实现它,否则我认为WebAudio中没有任何方法可以进行音高变换。