어제 출시되었던 Chrome Canary 빌드 (23.0.1270.0)에 새로 추가된 기능이 무척 기대됩니다. OSX의 마이크나 다른 오디오 입력을 통해 실시간 오디오에 지연 시간이 짧은 액세스를 얻는 기능입니다. 아직 Windows에서는 이 기능을 사용할 수 없습니다. 하지만 해결 중입니다.
이 기능을 사용하려면 chrome://flags/로 이동하여 하단에 있는 '웹 오디오 입력' 항목을 사용 설정하고 브라우저를 다시 실행해야 합니다. 이제 준비가 끝났습니다.
실시간 입력 비주얼라이저로 입력 스펙트럼을 확인하여 실시간 오디오 입력을 테스트할 수 있습니다.
다음은 웹 오디오 코더를 위해 오디오 입력 스트림을 요청하고 원하는 처리 그래프에 연결할 노드를 가져오는 방법입니다.
// success callback when requesting audio input stream
function gotStream(stream) {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
// Create an AudioNode from the stream.
var mediaStreamSource = audioContext.createMediaStreamSource( stream );
// Connect it to the destination to hear yourself (or any other node for processing!)
mediaStreamSource.connect( audioContext.destination );
}
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
navigator.getUserMedia( {audio:true}, gotStream );
특히 음악 공간에서는 지연 시간이 짧은 오디오 입력을 위한 다양한 가능성이 있습니다. 제가 함께 준비한 간단한 음조 감지기에서 이 기능을 활용하는 간단한 예를 확인할 수 있습니다. 기타를 연결하거나 마이크에 휘파람을 불어넣어 보세요.
또한 말씀드린 대로 라이브 오디오를 Google IO용으로 작성한 Vocoder의 입력 소스로 추가했습니다. 변조기에서 'live input'을 선택하기만 하면 됩니다. 변조기 게인과 신시사이저 레벨을 조정해야 할 수도 있습니다. 입력 지연 시간이 아니라 처리로 인해 약간의 지연이 발생합니다. 이제 라이브 오디오 입력을 갖추었으므로 조정 작업을 한 번 더 해야 합니다.
마지막으로 제 웹 오디오 데모 컬렉션을 한번 살펴보시기 바랍니다.