我有这段代码可以在麦克风和扬声器之间建立实时连接。是否可以实时改变我的声音音调?
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);
}
);
答案 0 :(得分:2)
实际上,这是可能的。我使用粒度再合成方法在输入效果演示(https://webaudiodemos.appspot.com/input/index.html中选择“Pitch Shifter”),使用一对具有循环斜坡延迟时间的延迟节点。如果你想做更好的事情(比如相移声编码),你可能需要一个ScriptProcessor / AudioWorker。
答案 1 :(得分:0)
除非你自己在ScriptProcessorNode或即将推出的AudioWorkerNode中实现它,否则我认为WebAudio中没有任何方法可以进行音高变换。