실시간 웹 오디오 입력 사용 설정됨

크리스 윌슨
크리스 윌슨

어제 출시되었던 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'을 선택하기만 하면 됩니다. 변조기 게인과 신시사이저 레벨을 조정해야 할 수도 있습니다. 입력 지연 시간이 아니라 처리로 인해 약간의 지연이 발생합니다. 이제 라이브 오디오 입력을 갖추었으므로 조정 작업을 한 번 더 해야 합니다.

마지막으로 제 웹 오디오 데모 컬렉션을 한번 살펴보시기 바랍니다.