[javascript] 모바일 디바이스의 마이크와 음성 인식 기능 사용하기

이제는 모바일 디바이스를 사용하여 음성 인식 기능을 구현할 수 있습니다. 이를 통해 사용자들은 음성으로 디바이스와 상호작용할 수 있으며, 음성 명령을 통해 다양한 작업을 수행할 수 있습니다.

마이크 접근 권한 요청하기

마이크를 사용하기 위해서는 사용자의 접근 권한을 받아야 합니다. 이를 위해 getUserMedia 메소드를 사용하면 됩니다. 다음은 마이크에 접근하고 스트림을 받는 예제 코드입니다.

navigator.mediaDevices.getUserMedia({ audio: true })
    .then((stream) => {
        // 마이크 스트림을 사용하는 코드 작성
    })
    .catch((error) => {
        // 접근 권한이 거부되었거나 오류가 발생한 경우 처리하는 코드 작성
    });

위 코드에서 getUserMedia 메소드는 사용자로부터 마이크 접근 권한을 요청하고, audio 속성을 true로 설정하여 오디오 스트림을 받도록 합니다. 접근 권한이 허용되면 then 블록에서 마이크 스트림을 사용하는 코드를 작성하고, 거부되거나 오류가 발생한 경우 catch 블록에서 이에 대한 처리를 할 수 있습니다.

음성 인식 기능 구현하기

마이크로부터 스트림을 받은 후, 이를 사용하여 음성 인식 기능을 구현할 수 있습니다. 음성 인식을 위해서는 Web Speech API를 사용할 수 있습니다. 다음은 음성 인식을 시작하는 예제 코드입니다.

const recognition = new webkitSpeechRecognition();
recognition.lang = 'ko-KR';
recognition.continuous = true; // 계속해서 음성을 인식할지 여부

recognition.onresult = function(event) {
    const transcript = event.results[event.results.length - 1][0].transcript;
    // 인식된 텍스트를 사용하는 코드 작성
};

recognition.start();

위 코드에서 webkitSpeechRecognition을 사용하여 음성 인식 객체를 생성합니다. lang 속성을 ko-KR로 설정하여 한국어 인식을 수행하도록 합니다. continuous 속성을 true로 설정하여 계속해서 음성을 인식할 수 있도록 하고, onresult 이벤트 핸들러를 등록하여 인식된 텍스트를 처리할 수 있습니다. 마지막으로 start 메소드를 호출하여 음성 인식을 시작합니다.

추가적인 작업

위 코드를 기반으로 음성 인식 과정을 통해 인식된 텍스트를 활용해 다양한 작업을 수행할 수 있습니다. 예를 들어, 음성으로 전화를 걸거나 메시지를 전송하는 등의 동작을 추가할 수 있습니다. 이를 위해서는 원하는 작업에 해당하는 코드를 음성 인식 결과를 처리하는 핸들러 내에 작성하면 됩니다.

결론

이제 모바일 디바이스의 마이크와 음성 인식 기능을 활용하여 사용자와의 상호작용을 더욱 편리하게 할 수 있습니다. getUserMedia를 사용하여 마이크 접근 권한을 요청하고, webkitSpeechRecognition을 사용하여 음성 인식을 구현할 수 있습니다. 추가적인 작업을 통해 원하는 기능을 구현해보세요.