NEW 앱인벤터2 강좌29. 컴포넌트 탐구 – 음성인식(SpeechRecognizer)

이 글은 읽는데 약 4분이 걸립니다.

전체 강좌 목록:
http://semicolon1.kr/appinventor.html


0. 개요

디바이스의 마이크를 이용하여 사용자가 말하는 것을 듣고 인식하여 결과를 텍스트로 반환합니다.

1. 형태

보이지 않는 컴포넌트이므로 화면상에 직접적으로 보이지 않고, 보이지 않는 컴포넌트 영역에 배치됩니다.

2. 속성

음성인식(SpeechRecognizer) 속성

속성명

설명

UseLegacy

음성인식 기능의 레거시 모드 사용 여부를 지정합니다.

참이면(기본값) 인식하는데 인식중을 알리는 대화창이 떠있습니다.

이 경우 인식 결과를 한번에 반환합니다.

거짓이면 변화없이 배경에서 인식이 진행됩니다.

이 경우 인식결과가 실시간으로 반환됩니다.

이 부분은 아래에서 따로 설명하겠습니다.

3. 블록

음성인식(SpeechRecognizer) 이벤트 블록

블록

설명

ㄴ 결과 [텍스트]

ㄴ partial[논리]

인식 결과가 반환될 때 실행됩니다.

매개변수 결과에는 인식결과가 텍스트로,

partial에는 현재 결과가 부분적인지 아닌지 여부를 나타냅니다.

마찬가지로 아래에 자세히 설명되어있습니다.

텍스트를 가져오기 전에 실행됩니다.

음성인식(SpeechRecognizer) 함수 블록

블록

설명

음성 인식을 시작합니다.

음성 인식을 종료합니다.

음성인식(SpeechRecognizer) 속성 지정 블록

블록

입력형식

설명

논리

useLegacy 여부를 지정합니다.

음성인식(SpeechRecognizer) 속성 블록

블록

반환형식

텍스트

논리

컴포넌트

4. useLegacy 속성에 대해 알아보자

음성인식 컴포넌트에는 인식 방식이 useLegacy에 따라 크게 두가지로 나뉩니다.

1. useLegacy가 참일 때 (기본값)
이 설정이 기본입니다.
이 경우 음성 인식이 시작되면 별도의 인식 대화창이 뜬 상태로 인식이 진행됩니다.

이 대화창이 떠 있는 동안만 인식이 진행되며, 사용자가 말을 끝냈다고 판단될 때, 대화창이 사라짐과 동시에 언제 음성인식. 텍스트 가져온 후에이벤트가 실행되며, 인식 결과가 한번에 반환됩니다.
이 때, partial값은 false 입니다.

2. useLegacy가 거짓일 때
이 경우에는 음성인식중에 별다른 알림 없이 앱의 배경에서 인식이 진행됩니다.
또한 인식 결과가 인식 종료 후 한번에 가져와지는것이 아니라 말하는 도중에 수시로 언제 음성인식. 텍스트 가져온 후에이벤트가 실행되며, 그때그때 말하는 내용이 덧붙여져서 결과로 반환되며, 사용자가 말하는 도중 partial의 값은 참입니다.
만약 말을 다 했다고 판단되면 자동으로 인식이 멈추며(블록으로 직접 멈출수 도 있습니다.), 최종적으로 이벤트가 실행되는데, 이 때 전체 결과가 반환되고, partial은 거짓으로 반환됩니다.

위 영상에서 상단 레이블은 언제 음성인식. 텍스트 가져온 후에 이벤트의 매개변수 중 결과가,
하단 레이블은 partial값을 표시하는 것입니다.

보시다시피 useLegacy가 거짓일 때는 별도의 창이 안뜨고 배경에서 말하는 것이 실시간으로 처리되고 있으며, 언제 음성인식. 텍스트 가져온 후에 이벤트도 수시로 발생하고 있습니다.

:: 요약 ::

useLegacy

내용

참 (기본값)

ㆍ인식 중에 대화창이 뜬다.

ㆍ결과는 인식 종료후 인식된 글자 전체가 한번에 반환된다.

언제 음성인식. 텍스트 가져온 후에 이벤트는 인식 종료시 한번만 발생됩니다.

ㆍpartial값은 항상 false(거짓)입니다.

거짓

ㆍ인식이 시작되도 기본적으로 따로 알려주는 것이 없습니다.

ㆍ결과는 말하는 동안 지속적으로 부분부분 반환됩니다.

언제 음성인식. 텍스트 가져온 후에 이벤트는 말을 부분부분 인식하는 동안 수시로 발생합니다.

ㆍpartial값은 말하는 도중에 반환된 경우는 true(참), 말이 끝났다고 생각되어 인식을 종료하고 반환된 경우(마지막으로 반환되는 경우)는 false(거짓)입니다.


5. 예제

참고로 예제 내의 읽을거리 예시 문장은 유엔 세계 인권선언문 앞부분입니다.


댓글

제목과 URL을 복사했습니다