본문 바로가기

Hacked Brain/embeddedland.net

MSRS VPL 을 이용한 SpeechRecognizer 음성인식기 사용 예제




출처 : http://cafe.naver.com/msrskorea archegos
공개용 음성출력 및 음성인식기 TTSAgent.exe(한국어 및 기타 언어 지원) 및 SpeechRecognizer.exe를 이용하는 방법 중 두번째인 VPL을 이용한 음성인식 예제입니다. SpeechRec&TTS.zip에 포함 된 화자종속형 음성기인 SpeechRecognizer.exe를 실행합니다.
이 프로그램은 원하는 음성명령을 명령어 [명령어 등록]버튼 위의 텍스트 박스에 입력한 뒤
[명령어 등록]버튼을 누른 후 마이크로 두번 명령어를 입력받아 해당 명령을 등록합니다.
인식을 위해서는 Enable Recognition 체크박스를 선택한 뒤 [시작]버튼을 눌러 인식모드를 동작시킵니다. 인식된 결과는 오른쪽의 인식결과 아래의 텍스트 박스에 출력됩니다.
이프로그램은 MSRS의 Windows Message서비스로 WM_COPYDATA 메세지를 통해 인식된 명령을 보냅니다. 아래는 SpeechRecognizer의 실행화면 입니다.

사용자 삽입 이미지

이제 음성인식 결과를 받은 Windows Message 서비스를 이용한 VPL예제를 만들어 보겠습니다.
이전 예제와 마찬가지로 Windows Message를 Services 툴박스에서 검색해 다이어그램에 추가합니다. 이후 Windows Message서비스의 알림결과를 받기 위해 Calculate Activity를 추가하여 아래와 같이 연결을 선택합니다.

사용자 삽입 이미지


Windows Message 서비스의 알림결과를 Calculate에 연결할 때 나타나는 Connections 다이얼 로그에서 아래 그림과 같이 ReceiveMessage를 선택합니다.

사용자 삽입 이미지

이후 Calculate에 인식결과가 출력되는 StringData를 입력합니다(Calculate 입력박스에 왼쪽 버튼을 누르면 사용가능한 데이터들이 나타납니다. 이중 StringData를 선택합니다).
그 다음 Windows Message를 통해 입력된 인식결과를 출력하기 위해 SimpleDialog를 추가한뒤 결과를 AlertDialog로 출력하고, 이와 더불어 다시 이전 게시물과 같이 TTSAgent를 통해 인식된 결과를 음성으로 출력해 봅니다. TTSAgent로 인식결과 텍스트를 보낼 때 이번 예제에서는 다음과 같이 Data Connections를 직접 편집하여 사용합니다.
Calculate Activity에서 Windows Message로의 Data Connections는 다음과 같습니다.
이제 작성된 VPL예제를 F5를 눌러 실행하면 아래와 같이 음성인식기의 인식결과가 다이얼로그 박스에 출력되고 TTSAgent를 이용해 다시 음성으로 출력되는 것을 확인할 수 있습니다.
출력된 결과는 다음과 같습니다.이번 예제는 TTSAgent와 SpeechRecognizer 라는 별도의 윈도우 프로그램과 동시에 실행되어 져야 합니다. 따라서 VPL를 실행하기 이전에 이 두 프로그램을
실행하고 SpeechRecognizer에 원하는 음성명령어를 등록한 뒤 예제를 실행해야 합니다.
자 이제, 제가 공개한 음성출력 및 음성인식 프로그램과 VPL 예제를 이용해 여러분이 가지고
있는 로봇에서 한글출력및 음성인식 기능을 쉽게 추가하여 이용할 수 있을 것입니다.