Web Speech API

Web Speech API를 사용하면 음성 데이터를 웹 앱에 통합할 수 있습니다. Web Speech API는 두 부분으로 구성됩니다. SpeechSynthesis (텍스트 음성 변환) 및 SpeechRecognition (비동기 음성 인식)입니다.

Web Speech API의 개념과 사용법

Web Speech API를 사용하면 웹 앱에서 음성 데이터를 처리할 수 있습니다. 이 API에는 두 가지 구성 요소가 있습니다.

  • 음성인식은 음성 입력(일반적으로 장치의 기본 음성 인식 서비스를 통해)에서 음성 맥락을 인식하고 적절하게 응답하는 기능을 제공하는 SpeechRecognition (en-US) 인터페이스를 통해 접근합니다. 일반적으로 인터페이스의 생성자를 사용하여 장치의 마이크를 통해 음성이 입력될 때, 이를 감지하는 데 사용할 수 있는 여러 이벤트 핸들러가 있는 새 SpeechRecognition (en-US) 객체를 생성합니다. SpeechGrammar (en-US) 인터페이스는 앱이 인식해야 하는 특정 문법 집합을 위한 컨테이너를 나타냅니다. 문법은 JSpeech 문법 형식(JSGF)을 사용하여 정의됩니다.
  • 음성 합성은 프로그램이 (일반적으로 장치의 기본 음성 합성기를 통해) 텍스트 콘텐츠를 읽을 수 있게 해주는 텍스트 음성 변환 컴포넌트인 SpeechSynthesis (en-US) 인터페이스를 통해 접근합니다. 다양한 음성 유형은 SpeechSynthesisVoice (en-US) 객체로 표현되고, 말하고자 하는 텍스트의 다른 부분은 SpeechSynthesisUtterance (en-US) 객체로 표현됩니다. 이러한 객체를 SpeechSynthesis.speak() (en-US) 메서드에 전달하여 음성을 가져올 수 있습니다.

이러한 기능 사용에 대한 자세한 내용은 Web Speech API 사용하기 (en-US) 문서를 참조하세요.

Web Speech API 인터페이스

음성 인식(Speech recognition)

SpeechRecognition (en-US)

인식 서비스를 위한 컨트롤러 인터페이스로, 인식 서비스에서 전송된 SpeechRecognitionEvent (en-US)도 처리합니다.

SpeechRecognitionAlternative (en-US)

음성 인식 서비스에서 인식한 단일 단어를 나타냅니다.

SpeechRecognitionErrorEvent (en-US)

인식 서비스의 오류 메시지를 표시합니다.

SpeechRecognitionEvent (en-US)

result (en-US)nomatch (en-US) 이벤트에 대한 이벤트 객체로, 중간 또는 최종 음성 인식 결과와 관련된 모든 데이터를 포함합니다.

SpeechGrammar (en-US)

인식 서비스에서 인식하기를 원하는 단어 또는 단어 패턴입니다.

SpeechGrammarList (en-US)

SpeechGrammar (en-US) 객체 목록을 나타냅니다.

SpeechRecognitionResult (en-US)

단일 인식 일치를 나타내며, 여러 개의 SpeechRecognitionAlternative (en-US) 객체를 포함할 수 있습니다.

SpeechRecognitionResultList (en-US)

continuous (en-US) 모드에서 결과를 캡처하는 경우, SpeechRecognitionResult (en-US) 객체 목록 또는 단일 객체를 나타냅니다.

음성 합성(Speech synthesis)

SpeechSynthesis (en-US)

음성 서비스를 위한 컨트롤러 인터페이스로, 기기에서 사용할 수 있는 합성 음성에 대한 정보를 검색하고, 음성을 시작 및 일시 중지하고, 기타 명령을 내리는 데 사용할 수 있습니다.

SpeechSynthesisErrorEvent (en-US)

음성 서비스에서 SpeechSynthesisUtterance (en-US) 객체를 처리하는 동안 발생하는 오류에 대한 정보가 들어있습니다.

SpeechSynthesisEvent (en-US)

음성 서비스에서 처리된 SpeechSynthesisUtterance (en-US) 객체의 현재 상태에 대한 정보가 들어 있습니다.

SpeechSynthesisUtterance (en-US)

음성 요청을 나타냅니다. 여기에는 음성 서비스가 읽어야 하는 콘텐츠와 읽기 방법에 대한 정보(e.g. 언어, 높낮이, 음량 등)가 포함됩니다.

SpeechSynthesisVoice (en-US)

시스템이 지원하는 음성을 나타냅니다. 모든 SpeechSynthesisVoice에는 언어, 이름 및 URI에 대한 정보를 포함한 고유한 상대 음성 서비스가 있습니다.

Window.speechSynthesis (en-US)

SpeechSynthesisGetter라는 [NoInterfaceObject] 인터페이스의 일부로 지정되고 Window 객체에 의해 구현되는 speechSynthesis 속성은 음성 합성 컨트롤러에 대한 접근을 제공하므로 음성 합성 기능의 진입점이 됩니다.

에러

Speech API에는 보고되는 오류(예를 들면, "language-not-supported""language-unavailable")에 대한 자세한 대용은 다음 문서를 참조하세요.

예제

Github의 Web Speech API 예제에는 음성 인식 및 합성을 설명하는 데모가 포함되어 있습니다.

명세서

Specification
Web Speech API
# speechreco-section
Web Speech API
# tts-section

브라우저 호환성

api.SpeechRecognition

BCD tables only load in the browser

api.SpeechSynthesis

BCD tables only load in the browser

같이 보기