KR102096590B1 - Gui 음성제어 장치 및 방법 - Google Patents

Gui 음성제어 장치 및 방법 Download PDF

Info

Publication number
KR102096590B1
KR102096590B1 KR1020180095150A KR20180095150A KR102096590B1 KR 102096590 B1 KR102096590 B1 KR 102096590B1 KR 1020180095150 A KR1020180095150 A KR 1020180095150A KR 20180095150 A KR20180095150 A KR 20180095150A KR 102096590 B1 KR102096590 B1 KR 102096590B1
Authority
KR
South Korea
Prior art keywords
information
gui
text information
text
command pattern
Prior art date
Application number
KR1020180095150A
Other languages
English (en)
Other versions
KR20200019522A (ko
Inventor
전윤호
김준형
Original Assignee
주식회사 알티캐스트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 알티캐스트 filed Critical 주식회사 알티캐스트
Priority to KR1020180095150A priority Critical patent/KR102096590B1/ko
Priority to US16/539,922 priority patent/US20200057604A1/en
Priority to EP19191722.8A priority patent/EP3611723B1/en
Publication of KR20200019522A publication Critical patent/KR20200019522A/ko
Application granted granted Critical
Publication of KR102096590B1 publication Critical patent/KR102096590B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/08Text analysis or generation of parameters for speech synthesis out of text, e.g. grapheme to phoneme translation, prosody generation or stress or intonation determination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

GUI 음성제어 장치 및 그 방법을 개시한다. 본 발명의 일 실시예에 따른 GUI 음성제어 장치는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 컨텍스트 정보 생성부와, 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 음성 인식부와, 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하는 자연어 인식부와, 상기 인식된 의도와 개체명에 따른 제어 신호를 출력하는 음성 제어부를 포함한다.

Description

GUI 음성제어 장치 및 방법{GUI VOICE CONTROL APPARATUS USING REAL TIME COMMAND PATTERN MATCHING AND METHOD THEREOF}
본 발명은 음성제어에 관한 것으로, 보다 상세하게는 음성 신호를 명령패턴과 실시간으로 매칭시켜 음성 인식의 정확도 및 속도를 높일 수 있는 GUI 음성제어 장치에 관한 것이다.
음성인식 및 원거리 마이크 기술의 발전으로 아마존의 에코와 같은 스마트 스피커가 널리 보급됨에 따라, 그래픽 사용자 인터페이스(Graphical User Interface, GUI)를 가진 디바이스와 서비스를 음성으로 제어하는 애플리케이션도 늘어나고 있다.
일반적인 음성 제어를 위한 인식 기술은 마이크로부터 수신된 오디오 신호의 에너지 레벨과 비음성 여부를 확인하여 문장의 시작과 끝나는 시점(끝점)을 판별하고, 음성 구간이라고 판단된 신호에 기초하여 인식 결과를 도출한다.
이와 같은 끝점 검출 방식은 사용자가 발성한 대화체 연속음성을 인식대상으로 하는 경우, 음성이 검출되지 않는 휴지(pause) 구간을 문장의 끝으로 오인하지 않기 위해, 충분히 긴 휴지 기간이 지속될 때에만 문장의 끝으로 인식한다.
따라서, 리모컨과 같은 기존의 입력장치를 통해 그래픽 사용자 인터페이스를 제어하는 것에 비해 긴 응답시간이 걸리게 되며, 응답속도를 높이기 위해 끝점 검출을 위한 휴지 시간을 짧게 줄이면 대화형 질의에서 문장 도중 잠시 멈칫거리는 것을 끝점으로 잘못 인식하여 정확성이 떨어지게 된다.
한국공개특허 제10-2010-0003672호, "영상정보를 이용한 음성인식 장치 및 방법"(2010.01.11)
본 발명은 끝점 검출 과정 없이 실시간으로 전달되는 음성 신호를 명령패턴과 매칭시켜 음성인식 속도를 개선하고 인식 정확성을 높이는 GUI 음성제어 장치 및 방법을 제공하고자 한다.
또한, 본 발명은 스크린을 가진 디바이스에서 사용되는 GUI 기반의 애플리케이션을 음성으로 제어할 수 있는 GUI 음성제어 장치 및 방법을 제공하고자 한다.
또한, 본 발명은 기존의 애플리케이션의 수정을 최소화하여 음성 인식 속도와, 음성 인식 정확성을 개선할 수 있는 GUI 음성제어 장치 및 방법을 제공하고자 한다.
또한, 본 발명은 GUI 미들웨어와 애플리케이션으로부터 전달받은 정보를 동적으로 반영한 언어모델을 이용하여 음성 인식의 정확성을 높일 수 있는 GUI 음성제어 장치 및 방법을 제공하고자 한다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 GUI 음성제어 장치는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 컨텍스트 정보 생성부와, 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 음성 인식부와, 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하는 자연어 인식부와, 상기 인식된 의도와 개체명에 따른 제어 신호를 출력하는 음성 제어부를 포함한다.
또한, 상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
또한, 상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다
또한, 상기 음성 인식부는 상기 컨텍스트 정보에 기초해 상기 음성 신호를 텍스트로 변환하여 상기 텍스트 정보를 업데이트할 수 있다.
또한, 상기 자연어 인식부는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여갈 수 있다.
또한, 상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가질 수 있다.
또한, 상기 자연어 인식부는 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우, 상기 텍스트 정보를 리셋하여 그 때까지 입력된 텍스트를 무시하고 이후 실시간으로 업데이트되는 텍스트 정보를 처리할 수 있다.
본 발명의 다른 일 실시예에 따른 GUI 음성제어 장치는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 컨텍스트 정보 생성부와, 실시간으로 수신한 음성 신호 및 상기 컨텍스트 정보를 음성 변환 서버로 전송하고, 자연어 인식 서버로 상기 컨텍스트 정보를 전송하고 상기 음성 신호의 의도와 개체명을 수신하는 통신부와, 상기 음성 신호의 의도와 개체명에 따른 제어 신호를 출력하는 음성 제어부를 포함한다.
또한, 상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
또한, 상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명에 관한 정보를 포함할 수 있다.
본 발명의 일 실시예에 따른 음성 변환 서버는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 생성된 컨텍스트 정보에 기초하여 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 텍스트 변환부와, 상기 업데이트되는 텍스트 정보를 실시간으로 자연어 인식 서버로 전송하는 통신부를 포함한다.
또한, 상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
또한, 상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
본 발명의 일 실시예에 따른 자연어 인식 서버는 컨텍스트 정보에 기초하여 실시간으로 업데이트되는 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식하는 자연어 인식부와, 상기 음성 신호의 의도와 개체명을 GUI 음성제어 장치로 전송하는 통신부를 포함한다.
또한, 상기 자연어 인식부는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여갈 수 있다.
또한, 상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가질 수 있다.
또한, 상기 자연어 인식부는 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우, 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리할 수 있다.
본 발명의 일 실시예에 따른 GUI 음성제어 장치 및 방법은 끝점 검출 과정 없이 실시간으로 전달되는 음성 신호를 명령패턴과 매칭시켜 음성인식 속도를 개선하고 인식 정확성을 높일 수 있다.
또한, 본 발명의 일 실시예에 따른 GUI 음성제어 장치 및 방법은 스크린을 가진 디바이스에서 사용되는 GUI 기반의 애플리케이션을 음성으로 제어할 수 있다.
또한, 본 발명의 일 실시예에 따른 GUI 음성제어 장치 및 방법은 기존의 애플리케이션의 수정을 최소화하여 음성 인식 속도와, 음성 인식 정확성을 개선할 수 있다.
또한, 본 발명의 일 실시예에 따른 GUI 음성제어 장치 및 방법은 GUI 미들웨어와 애플리케이션으로부터 전달받은 정보를 동적으로 반영한 언어모델을 이용하여 음성 인식의 정확성을 높일 수 있다.
도 1은 전자 장치의 하드웨어 및 네트워크 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 GUI 음성제어 장치와 통신하는 장치들을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 GUI 음성제어 장치의 블록도이다.
도 4는 본 발명의 GUI 음성제어 장치의 성능을 설명하기 위한 도면이다.
도 5는 본 발명의 GUI 음성제어 시스템을 간략히 설명하기 위한 순서도이다.
도 6은 본 발명의 다른 일 실시예에 따른 GUI 음성제어 장치의 블록도이다.
도 7은 본 발명의 일 실시예에 따른 음성 변환 서버의 블록도이다.
도 8은 본 발명의 일 실시예에 따른 자연어 인식 서버의 블록도이다.
도 9는 본 발명의 일 실시예에 따른 GUI 음성제어 방법의 흐름도이다.
도 10은 본 발명의 다른 일 실시예에 따른 GUI 음성제어 방법의 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 음성 변환 방법의 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 자연어 인식 방법의 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시예를 상세하게 설명하지만, 본 발명이 실시예에 의해 제한되거나 한정되는 것은 아니다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 사용되는 "실시예", "예", "측면", "예시" 등은 기술된 임의의 양상(aspect) 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되어야 하는 것은 아니다.
또한, '또는' 이라는 용어는 배타적 논리합 'exclusive or' 이기보다는 포함적인 논리합 'inclusive or' 를 의미한다. 즉, 달리 언급되지 않는 한 또는 문맥으로부터 명확하지 않는 한, 'x가 a 또는 b를 이용한다' 라는 표현은 포함적인 자연 순열들(natural inclusive permutations) 중 어느 하나를 의미한다.
또한, 본 명세서 및 청구항들에서 사용되는 단수 표현("a" 또는 "an")은, 달리 언급하지 않는 한 또는 단수 형태에 관한 것이라고 문맥으로부터 명확하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서 및 청구항들에서 사용되는 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
하기 도 1을 참조하여 설명하는 전자 장치는 도 1 내지 도 12를 참조하여 설명할 GUI 음성제어 장치, 텍스트 변환 서버, 자연어 인식 서버, 명령패턴 및 개체명 데이터베이스, 스크린 출력장치, GUI 입력장치, 오디오 입력장치 등의 장치일 수 있다.
도 1은 전자 장치의 하드웨어 및 네트워크 구성을 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(110)는 프로세서(111), 메모리(112), 입출력 인터페이스(113), 통신 인터페이스(114) 및 버스(115)를 포함할 수 있다. 다양한 실시예에 따라, 전자 장치(110)는 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 포함할 수 있다.
프로세서(111)는 중앙처리장치(Central Processing Unit, CPU), 애플리케이션 프로세서(Application Processor, AP), 또는 커뮤니케이션 프로세서(Communication Processor, CP) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(111)는 전자 장치(110)의 적어도 하나의 다른 구성요소들의 제어 또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
버스(115)는 구성요소들(111-114)을 서로 연결하고, 구성요소들 간의 통신을 전달하는 회로를 포함할 수 있다.
메모리(112)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(112)는 전자 장치(110)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 메모리(112)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은 커널, 미들웨어, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API), 및/또는 애플리케이션 등을 포함할 수 있다. 커널, 미들웨어, 또는 API의 적어도 일부는 운영 체제(Operating System, OS)로 칭할 수 있다.
커널은, 예를 들면, 다른 프로그램들(미들웨어, API, 또는 애플리케이션)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(프로세서(111), 메모리(112), 또는 버스(115) 등)을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 애플리케이션에서 전자 장치(110)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 애플리케이션이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 미들웨어는 애플리케이션으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 애플리케이션 중 적어도 하나에 전자 장치(110)의 시스템 리소스(프로세서(111), 메모리(112), 또는 버스(115) 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 미들웨어는 적어도 하나에 부여된 우선 순위에 따라 하나 이상의 작업 요청들을 처리함으로써, 하나 이상의 작업 요청들에 대한 스케줄링 또는 로드 밸런싱 등을 수행할 수 있다.
API는, 예를 들면, 애플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(명령어)를 포함할 수 있다.
입출력 인터페이스(113)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(110)의 다른 구성요소들에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 입출력 인터페이스(113)는 전자 장치(110)의 다른 구성요소들로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다. 예를 들면, 입출력 인터페이스(113)는 마이크로부터 음성 신호를 입력 받을 수 있다.
통신 인터페이스(114)는 전자 장치(110)와 외부 장치 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(114)는 무선 통신 또는 유선 통신을 통해서 네트워크(130)에 연결되어 외부 전자 장치(120)와 통신할 수 있다.
예를 들면, 무선 통신은, 셀룰러 통신 프로토콜로서, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용할 수 있다.
무선 통신은 근거리 통신을 포함할 수 있다. 예를 들면, 근거리 통신은 WiFi(wireless fidelity), 블루투스(Bluetooth), NFC(near field communication) 등 중 적어도 하나를 포함할 수 있다. 또는, 무선 통신은 GNSS(global navigation satellite system)를 포함할 수 있다. 예를 들면, GNSS는 사용 지역 또는 대역폭 등에 따라, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System 또는 Galileo, the European global satellite-based navigation system 중 적어도 하나를 포함할 수 있다.
예를 들면, 유선통신은 USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다.
예를 들면, 네트워크(130)는 통신 네트워크(telecommunications network), 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
외부 전자 장치(120)는 전자 장치(110)와 동일한 또는 다른 종류의 장치일 수 있다. 예를 들면, 외부 전자 장치(120)는 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 셋톱박스(set-top box), 스마트 TV(smart TV), 스마트 스피커(smart speaker), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 워크스테이션(workstation), 서버, 데이터베이스(database), 카메라(camera), 또는 웨어러블 장치(wearable device) 등일 수 있다.
서버는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시예에 따라, 전자 장치(110)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치(120)에서 실행될 수 있다.
외부 전자 장치(120)는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(110)로 전달할 수 있다. 예를 들어, 외부 전자 장치(120)는 전자 장치(110)로부터 전달된 오디오 신호 및/또는 음성 신호에 대해 음성 인식을 수행하고 이에 대한 인식 결과를 전자 장치(110)로 전달할 수 있다.
전자 장치(110)는 외부 전자 장치(120)로부터 음성 인식 결과를 수신하고, 이를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
일 실시예에 따라, GUI 음성제어 장치는 하기와 같은 장치들과 통신하여 음성제어를 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 GUI 음성제어 장치와 통신하는 장치들을 설명하기 위한 도면이다.
도 2를 참조하면, GUI 음성제어 장치(210)는 명령패턴 및 개체명 데이터베이스(220), 스크린 출력장치(230), GUI 입력장치(240) 및 오디오 입력장치(250)와, 네트워크에 연결되어 통신할 수 있다. 통신 방식은 도 1을 참조하여 설명하였으므로 생략한다. 다양한 실시예에 따라, GUI 음성제어 장치(210)는 명령패턴 및 개체명 데이터베이스(220), 스크린 출력장치(230), GUI 입력장치(240) 및 오디오 입력장치(250) 중 하나 이상을 생략하거나, 포함할 수 있다.
명령패턴 및 개체명 데이터베이스(220)는 웹서버와 연결되어 명령패턴 및 개체명 중에서 적어도 하나를 GUI 음성제어 장치(210)에 업데이트할 수 있다.
명령패턴 및 개체명 데이터베이스(220)는 개체명과 명령패턴 중에서 적어도 하나를 카테고리 별로 데이터베이스화 할 수 있다. 카테고리는 서비스의 상태에 의해 결정될 수 있다.
일례로, 명령패턴 및 개체명 중에서 적어도 하나는 개발자나 관리자가 관리 웹사이트를 통해 작성, 업데이트하거나 또는 다른 소스, 예를 들면 대상 서비스의 CMS (content management system)으로 부터 수신한 정보 (예를 들면 영화명 목록)를 가공하여 만들어 질 수 있다.
GUI 음성제어 장치(200)는 정의된 명령패턴 및 개체명 중에서 적어도 하나를 언어모델에 동적으로 반영한 컨텍스트 정보를 이용하여 음성 인식의 정확도를 높일 수 있다.
스크린 출력장치(230)는 LED TV, 모니터 등 GUI 상태 정보를 출력하는 디스플레이를 포함하는 장치일 수 있다. 이하, 디스플레이는 스크린 또는 화면이라 칭할 수도 있다.
디스플레이는 예를 들면, 액정 디스플레이(liquid crystal display, LCD), 발광 다이오드(lightemitting diode, LED) 디스플레이, 유기 발광 다이오드(organic light-emitting diode, OLED) 디스플레이, 마이크로 전자기계 시스템(microelectromechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다.
스크린 출력장치(230)는 미들웨어를 통해 애플리케이션의 GUI 상태 정보에 따른 그래픽 유저 인터페이스(Graphical User Interface, GUI)를 출력할 수 있다. 미들웨어는 운영 체제(OS)의 GUI 프레임워크, 라이브러리 또는 웹브라우저 등을 포함할 수 있다. GUI 음성제어 장치(210)는 GUI 상태 정보를 이용하여 정확한 음성인식을 수행하고, 애플리케이션을 제어할 수 있다. 다양한 실시예에 따라, GUI 음성제어 장치(210)는 셋톱박스(set-top box)에 포함될 수 있다.
GUI 입력장치(240)는 숫자 또는 문자를 입력 받거나, GUI 음성제어 장치(210)의 각종 기능들을 설정하기 위한 마우스, 터치 패널, 키보드 또는 리모컨 등을 포함할 수 있다. 예를 들면, 사용자는 GUI 입력장치(240)를 통해 GUI 이벤트를 발생시킬 수 있다. 발생된 GUI 이벤트는 미들웨어를 통해 애플리케이션에 전달되어 GUI 상태 정보를 생성할 수 있다. 여기서, GUI 이벤트는 클릭 이벤트, 키 이벤트 등을 의미할 수 있다.
오디오 입력장치(250)는 마이크, 스마트 스피커, 스마트폰 등 사용자의 음성을 입력 받을 수 있는 장치일 수 있다. 오디오 입력장치(250)는 입력 받은 사용자의 음성을 음성 신호로 변환하여 GUI 음성제어 장치(210)로 전송할 수 있다. 음성 신호는 호출어 또는 명령어를 포함할 수 있다. GUI 음성제어 장치(210)는 수신한 음성 신호의 의도와 개체명을 인식하여 제어 신호를 출력할 수 있다. 제어 신호는 애플리케이션으로 전달되거나 미들웨어를 통해 클릭 이벤트와 같은 GUI 이벤트로 변환되어 애플리케이션을 제어할 수 있다.
이하, 도 3을 참조하여 GUI 음성제어 장치(210)를 구체적으로 살펴본다.
도 3은 본 발명의 일 실시예에 따른 GUI 음성제어 장치의 블록도이다.
도 3을 참조하면, GUI 음성제어 장치(300)는 컨텍스트 정보 생성부(310), 음성 인식부(320), 자연어 인식부(330) 및 음성 제어부(340)를 포함한다.
컨텍스트 정보 생성부(310)는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성할 수 있다. 컨텍스트 정보는 GUI 상태 정보 및 DB 정보를 반영한 동적 언어 모델일 수 있다.
GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
GUI 정보는 현재 스크린(120) 상에 출력되는 텍스트와 이미지 등 시각 정보 및 계층적 관계에 관한 정보를 포함할 수 있다. 컨텍스트 정보 생성부(310)는 애플리케이션에 접근하여 GUI 정보를 수집하고, 언어모델에 동적으로 반영할 수 있다.
예를 들면, 시각 정보는 메뉴, 버튼, 링크의 텍스트와 위치, 크기, 아이콘과 이미지 데이터 및 위치, 크기, 보조적 텍스트 정보 및 GUI 요소들 간의 부모-자식 관계를 의미할 수 있다. 보조적 텍스트 정보는 HTML의 이미지 태그(<image>)에서 alt 속성, 안드로이드 뷰(Android View)의 디스크립션(description) 속성 등을 의미할 수 있다.
서비스의 상태는 전체 서비스 구조 중 현재 화면의 논리적 위치에 관한 정보일 수 있다. 예를 들면, 서비스의 상태는 주문형 비디오(Video On Demand, VOD) 서비스에 있어 검색 결과 화면, 결제 화면 등과 같이 서비스의 특정한 단계 또는 상태를 의미할 수 있다. 또한, 서비스의 상태는 웹 애플리케이션인 경우, 현재 페이지의 웹주소(Uniform Resource Locator, URL)로 표현될 수 있고, 애플리케이션이 GUI 음성제어 장치(300)의 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 이용하여 직접 기술하는 정보일 수 있다.
DB 정보는 명령패턴 및 개체명 데이터베이스(220)로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
명령패턴 및 개체명 중에서 적어도 하나에 관한 정보는 애플리케이션의 서비스의 상태에 따른 관련 명령패턴 및 개체명 중에서 적어도 하나를 의미할 수 있다. 예를 들어, 컨텍스트 정보 생성부(310)는 서비스의 상태가 "구매 서비스"인 경우, 명령패턴 및 개체명 데이터베이스(220)로부터 구매 서비스로 카테고리된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 수신하여 언어모델에 동적으로 반영할 수 있다. 다양한 실시예에 따라, 컨텍스트 정보 생성부(310)는 애플리케이션이 API를 이용하여 전달하는 명령패턴과 개체명 중에서 적어도 하나를 이용할 수 있다.
컨텍스트 정보 생성부(310)는 동적으로 GUI 상태 정보 및 DB 정보를 반영하여 컨텍스트 정보를 생성할 수 있다.
한편, 실시간으로 생성된 컨텍스트 정보는 상황에 따라서 언어 모델에 반영되거나 일부만 반영될 수 있다.
보다 구체적으로, 컨텍스트 정보 생성부(310)가 실시간으로 생성하는 컨텍스트 정보는 언어모델의 일부가 될 수 있다. 특히, 음성 인식부(320)가 처리하는 음성인식을 위해서는 음향모델과 언어모델이 필요한데, 이 언어모델에 있어서는 실시간 컨텍스트 정보가 반영되는 경우도 있고, 그렇지 않은 경우도 있다.
뿐만 아니라, 자연어 인식부(330)에서 수행되는 자연어 인식에서는 언어모델이 필요하며, 이때에는 실시간 컨텍스트 정보가 항상 필요하다.
음성 인식부(320)는 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다. 음성 인식부(320)는 오디오 입력장치(250)로부터 입력된 음성 신호를 텍스트로 변환할 수 있다. 예를 들어, VOD 서비스에서 음성 인식부(320)는 오디오 입력장치(250)를 통해 음성 신호를 수신하고, 텍스트 정보 "니모를 찾아서를 보여줘" 로 변환할 수 있다.
음성 인식부(320)의 출력은 한글 글자 단위로 일정하게 업데이트될 수 있지만, 일정하게 업데이트되지 않을 수도 있다. 즉, 음성 인식부(320)는 입력된 음성 신호를 일정하게 텍스트로 변환하거나, 미리 설정된 규칙 또는 알고리즘에 의해 일정하지 않게 텍스트로 변환할 수도 있다.
또한, 음성 인식부(320)의 출력은 동시에 N개의 인식후보가 함께 출력되는 N-best 경우가 일반적이고 이에 따라 자연어 인식부(330)도 복수 후보를 처리할 수 있다.
일실시예에 따른 음성 인식부(320)는 텍스트 정보가 업데이트됨에 따라 텍스트 정보를 자연어 인식부(330)로 실시간 전달할 수 있다.
다양한 실시예에 따라, 음성 인식부(320)는 컨텍스트 정보에 기초해 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다. 음성 인식부(320)는 컨텍스트 정보에 의해 사용자가 입력할 가능성이 높은 단어나 문장으로 음성 신호를 변환하여 정확성을 향상시킬 수 있다.
자연어 인식부(230)는 텍스트 정보가 업데이트 됨에 따라 컨텍스트 정보에 기초하여 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도(intent)와 개체명(entity)을 인식할 수 있다. 컨텍스트 정보는 서비스 상태에 따른 명령패턴 및 개체명 중에서 적어도 하나를 포함할 수 있다.
예를 들어, 명령패턴은 (볼륨|음량|소리) (올려|키워|크게해)[라|줘|주세요] 일 수 있다. 여기서, (A|B)는 "A 또는 B"를 의미할 수 있다. [C]는 생략 가능함을 의미할 수 있다. 따라서, 상기 명령패턴은 텍스트 정보 "볼륨 올려줘", "볼륨 키워", "볼륨 크게해", "음량 올려", "음량 키워", "음량 크게해", "소리 올려", "소리 키워" 및 "소리 크게해"와 매치될 수 있다. 그러나, 상기 명령패턴은 텍스트 정보 "소리를 크게 만들었다"와 매치될 수 없다.
개체명은 명령패턴의 객체를 의미할 수 있다. 예를 들면, 서비스 상태가 TV 서비스인 경우, 개체명은 채널명, 영화제목, 배우명, 시간 등일 수 있다. TV 채널 개체명(channel)은 KBS, MBC, SBS, EBC, JTBC, YTN 등을 포함할 수 있다.
개체명을 포함하고 있는 명령패턴 ${channel} 틀어[줘|주세요|라]는 텍스트 정보 "MBC 틀어줘"와 매치될 수 있다. 이때, channel 값은 "MBC" 이다. 예를 들면, 개체명은 현재 스크린 상에 보여지는 메뉴 또는 컨텐츠, 상품명 등을 포함할 수 있다.
예를 들면, 스크린 상에 영화 제목 "스타워즈"가 표시될 때, 텍스트 정보 "스타워즈 재생해"는 최종 명령패턴 ${screen} 재생[해[줘]] 과 매칭될 수 있다. 최종 명령패턴은 매칭 가능한 명령패턴 중 최종적으로 매칭된 명령패턴을 의미할 수 있다.
예를 들어, 사용자가 음성 신호 "스타워즈 재생 2배속해줘" 를 오디오 입력장치(250)를 통해 입력할 수 있다. 텍스트 정보 "스타워즈" 에 매칭 가능한 명령패턴 ${screen} 재생[해[줘]], ${screen} 재생 2배속[해[줘]], ${screen} 재생 2.5배속[해[줘]], ${screen} 재생중지[해[줘]] 등이 있는 경우, 텍스트 정보가 업데이트 됨에 따라 "스타워즈 재생 2"에 매칭 가능한 명령패턴은 ${screen} 재생 2배속[해[줘]], ${screen} 재생 2.5배속[해[줘]]로 줄여질 수 있다.
텍스트 정보가 계속 업데이트 됨에 따라, "스타워즈 재생 2배"는 최종적으로 명령패턴 ${screen} 재생 2배속[해[줘]]와 매칭되어, 음성 신호를 다 입력 받지 않고도 의도(intent) "재생 2배속", 개체명(entity) "스타워즈"를 인식할 수 있다.
다시 말해, GUI 음성제어 장치(300)는 음성 신호에 대한 별도의 끝점 검출(end point detection) 없이 실시간 매칭을 통해 음성 인식의 응답속도를 향상시킬 수 있다.
상기와 같은 실시간 매칭을 구현하기 위해, 자연어 인식부(330)는 텍스트 정보와 각 명령패턴과의 개별적인 매치 결과를 매치(MATCH) 및 노매치(NO_MATCH) 이외에 부분매치(PARTIAL_MATCH)로 분류하여 매칭 가능한 명령패턴의 수를 줄여갈 수 있다.
부분매치(PARTIAL_MATCH)는 텍스트 정보가 업데이트됨에 따라 매칭 가능성이 있는 상태를 의미한다.
예를 들어, 텍스트 정보가 "MBC"인 경우 명령패턴 ${channel} 틀어[줘|주세요|라]와 매칭되지 않지만 텍스트 정보가 "MBC 틀어" 로 업데이트 되는 경우 매치될 수 있으므로 MBC와 상기 명령패턴의 매치 결과는 부분매치(PARTIAL_MATCH)이다. 하지만, 텍스트 정보가"MBC 보여줘"로 업데이트되는 경우 명령패턴과 매칭되지 않으므로 노매치(NO_MATCH)로 분류된다.
하기의 슈도 코드 1(pseudo code 1)는 자연어 인식부(330)의 매치 결과 분류를 동작을 구현하는 얼리 매치(Early Match) 알고리즘 1을 설명하기 위한 것이다.
[슈도 코드 1]
function early_match( gui_context ):
valid_patterns = get_all_valid_patterns( gui_context )
while valid_patterns ≠{ }
text = get_STT_result(STT_TIMEOUT)
if is_STT_timeout():
return TIMEOUT
else:
for p in valid_patterns:
result = p.matches(text)
if result==MATCH:
return p
else if result==NO_MATCH:
valid_patterns = valid_patterns - p
if sizeof(valid_patterns)==1:
return valid_patterns[0]
return NOT_RECOGNIZED
슈도 코드 1에서 get_STT_result()는 하나의 명령(음성 신호)을 인식하는 동안 업데이트되는 텍스트 정보를 점진적으로 돌려주는 함수이다. 예를 들면, 음성 신호 "볼륨을 올려줘"의 경우 아래와 같은 값들이 차례대로 리턴 될 수 있다.
"볼륨"
"볼륨을 올려"
"볼륨을 올려줘"
얼리 매치 알고리즘 1은 하나의 명령패턴이 텍스트 정보와 일치하지 않는 노매치(NO_MATCH)를 쉽게 판단할 수 있을 때 유효할 수 있다. 하지만, 임의의 문장을 입력 받아야 하는 명령패턴들의 경우 어떠한 텍스트 정보에 대해서도 노매치(NO_MATCH)가 발생하지 않으므로 얼리 매치 알고리즘 1이 동작하지 않을 수 있다. 예를 들어, 명령패턴 "${*}를 검색해"는 ${*}가 임의의 텍스트와 매치할 수 있으므로 모든 텍스트에 대해서 상기 명령패턴은 항상 매치(MATCH) 될 수 있고, 이러한 명령패턴이 하나라도 존재하면 얼리 매치 알고리즘 1은 제대로 동작하지 않고 항상 입력이 타임아웃(timeout)될 때까지 기다려야 할 수 있다.
이러한 문제를 해결하기 위하여 명령패턴을 세가지 등급으로 분류할 수 있다.
매칭 가능한 명령패턴은 이미디에이트(IMMEDIATE), 노멀(NORMAL) 또는 웨이트엔드(WAIT_END) 등급을 가질 수 있다.
이미디에이트(IMMEDIATE)는 해당 등급의 명령패턴과 매치되는 경우 다른 명령패턴과 상관없이 해당 등급의 명령패턴과 매칭되도록 할 수 있다.
노멀(NORMAL)은 매치(MATCH) 또는 부분매치(PARTIAL_MATCH)에서 노멀 등급의 명령패턴이 유일할 때 인식 결과로 확정할 수 있다.
웨이트엔드(WAIT_END)는 와일드카드 (${*})를 포함하는 명령패턴의 등급일 수 있다.
하기의 슈도 코드 2(pseudo code 2)는 등급을 가지도록 구현하기 위한 얼리 매치(Early Match) 알고리즘 2를 설명하기 위한 것이다.
[슈도 코드 2]
function early_match_2( gui_context ):
valid_patterns = get_all_valid_patterns( gui_context )
immediate_patterns = valid_patterns(class==IMMEDIATE)
normal_patterns = valid_patterns(class==NORMAL)
wait_end_patterns = valid_patterns(class=WAIT_END)
while immediate_patterns ∪ normal_patterns ∪ wait_end_patterns ≠{ }:
text = get_STT_result(STT_TIMEOUT)
if is_STT_timeout():
for p in wait_end_patterns:
if p.matches(text)!=MATCH:
wait_end_patterns = wait_end_patterns - p
if wait_end_patterns == {}:
return TIMEOUT
else
return wait_end_patterns
for p in immediate_patterns:
result = p.matches(text)
if result==MATCH:
return p
else if result==NO_MATCH:
immediate_patterns = immediate_patterns - p
for p in normal_patterns:
result = p.matches(text)
if result==MATCH:
return p
else if result==NO_MATCH:
normal_patterns = normal_patterns - p
if sizeof(normal_patterns)==1 and sizeof(immediate_patterns)==0:
return normal_patterns[0]
for p in wait_end_patterns:
if p.matches(text)==NO_MATCH:
wait_end_patterns = wait_end_patterns - p
return NOT_RECOGNIZED
if is_STT_timeout(): ~ return wait_end_patterns는 입력이 타임아웃되면, 이때까지 매치된 명령패턴을 리턴하는 것을 구현한 것이다.
GUI 음성제어 장치(300)는 상기와 같은 얼리 매치 알고리즘 2에 의하여 "볼륨 올려", "다음 화면" 등과 같이 자주 사용하는 명령어(음성 신호)를 딜레이 없이 실행할 수 있다.
자연어 인식부(330)는 텍스트 정보와 매칭 가능한 명령패턴이 없는 경우, 텍스트 정보를 리셋하여 그 때까지 입력된 텍스트를 무시하고 이후 실시간으로 전달되는 텍스트 정보를 처리할 수 있다.
GUI 음성제어 장치(300)는 오디오 입력장치를 통해 사용자가 정확하게 입력하는 명령어와 함께 다른 음성 신호를 입력 받을 수 있다.
예를 들어, 다른 음성 신호는 주위의 TV, 라디오에서 나오는 소리, 사용자의 명령어 또는 호출어가 아닌 음성("음, 저기, 그러니까, 뭐더라"), 옆에 있는 다른 사람의 음성 또는 다른 사람에게 하는 말을 의미할 수 있다.
사용자는 애플리케이션을 음성으로 제어할 경우, 한번 호출한 후에 연속적으로 여러 번의 음성 명령어를 입력할 수 있다. 이때, GUI 음성제어 장치(300)는 다른 음성 신호가 입력되는 경우, "이해하지 못하는 명령입니다"와 같이 에러 처리하고 종료하는 것보다는 해당 신호는 무시한다는 간단한 표시를 하고, 다음 명령어를 입력 받기 위해 대기할 수 있다.
하기 슈도 코드 3은 인식할 수 없는 텍스트 정보를 무시하고 대기하는 연속 인식 알고리즘을 설명하기 위한 것이다.
[슈도 코드 3]
function process_voice_commands():
wake_timeout = false
do {
result = early_match_2(get_gui_context())
if result==TIMEOUT:
wake_timeout = wait_STT(WAKE_TIMEOUT)
else if result==NOT_RECOGNIZED:
reset_STT_output()
else
process_command(result)
} while wake_timeout==false
close_microphone()
슈도 코드 3에서 reset_STT_output()은 STT로 하여금 현재까지의 텍스트 정보를 리셋하여 그 때까지 입력된 텍스트를 무시하고 이후 실시간으로 전달되는 새로운 텍스트 정보를 돌려주도록 하는 함수이다.
wake_STT(WAKE_TIMEOUT)는 WAKE_TIME 시간만큼 새로운 음성 신호가 입력되지 않으면 true를 리턴하는 함수이다. WAKE_TIMEOUT은 한번 웨이크업(wake-up)된 후 기 설정된 시간 동안 음성 신호의 입력이 없으면 음성 입력을 종료할지를 결정하는 값으로서 WAKE_TIMEOUT > TIMEOUT 일 수 있다.
따라서, GUI 음성제어 장치(300)는 상기와 같은 연속인식 알고리즘에 의해 한번 웨이크업(wake-up)된 후에 인식하지 못하는 음성은 무시하면서 인식하는 명령어를 연속적으로 처리할 수 있다.
예를 들면, 사용자는 음성 신호 "알렉사 그런데, 잠깐만 MBC 틀어. 이거 볼까 그래 볼륨 올려"를 오디오 입력장치를 통해 입력할 수 있다.
GUI 음성제어 장치(300)는 상기 음성 신호를 시간 순서에 따라 입력 받고, 실시간으로 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다.
GUI 음성제어 장치(300)는 텍스트 정보 "알렉사"에 의해 웨이크업(wake-up)될 수 있다. GUI 음성제어 장치(300)는 텍스트 정보 "그런데 잠깐만"에 대해, 미인식(NOT_RECOGNIZED) 처리하고 텍스트 정보 "그런데 잠깐만"을 리셋할 수 있다. GUI 음성제어 장치(300)는 텍스트 정보 "MBC 틀어"를 인식하여 채널 전환 제어 신호를 출력할 수 있다. GUI 음성제어 장치(300)는 텍스트 정보 "이거 볼까"에 대해 미인식(NOT_RECOGNIZED) 치리하고 텍스트 정보 "이거 볼까"를 리셋할 수 있다. GUI 음성제어 장치(300)는 텍스트 정보 "그래"에 대해 미인식(NOT_RECOGNIZED) 처리하고 텍스트 정보 "그래"를 리셋할 수 있다. GUI 음성제어 장치(300)는 텍스트 정보 "볼륨 올려"를 인식하여 볼륨 조절 제어 신호를 출력할 수 있다. GUI 음성제어 장치(300)는 타임아웃(WAKE_TIMEOUT)되어 음성 신호 수신을 종료할 수 있다.
음성 제어부(330)는 인식된 의도와 개체명에 따른 제어 신호를 출력할 수 있다. 제어 신호는 미들웨어 또는 애플리케이션를 제어할 수 있다. 예를 들면, 애플리케이션은 직접 수신한 제어 신호에 따른 결과를 스크린 출력장치를 통해 출력할 수 있다. 다른 예를 들면, 제어 신호는 GUI 이벤트로 변환되어 미들웨어를 통해 애플리케이션에 전달될 수 있다.
도 4는 본 발명의 GUI 음성제어 장치의 성능을 설명하기 위한 도면이다.
도 4의 (a)는 종래의 음성제어 장치의 음성 인식 동작을, 도 4의 (b)는 본 발명의 일 실시예에 따른 음성제어 장치(300)의 음성 인식 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 종래의 음성제어 장치는 음성 신호 "다음 화면" 및 휴지기간(_)을 입력 받은 후, 음성 구간을 확인할 수 있다. 음성 구간이라고 판정된 신호 "다음 화면_"는 텍스트 정보 "다음 화면<END>"으로 변환되고, 자연어 인식부(NLU)에 의해 인식될 수 있다. 이와 같은 끝점 검출 방식에 의한 경우, 음성 인식 및 제어 신호에 따른 실행(Action)까지 상당한 시간 지연이 발생할 수 있다.
GUI 음성제어 장치(300)는 음성 신호 "다음 화면"을 실시간으로 텍스트로 변환하여 자연어 인식부(NLU)에 의해 "다음"과 매칭 가능한 명령패턴의 수를 줄여가고, "다음 화면"과 최종 명령패턴을 매칭시켜 제어 신호에 따른 명령을 실행(Action)할 수 있다. 따라서, GUI 음성제어 장치(300)는 끝점 검출 없이 명령패턴과의 실시간 매칭을 통해 응답 속도를 향상시킬 수 있다.
GUI 음성제어 장치(300)는 일부 구성의 동작을 서버에서 수행하도록 하여 GUI 음성제어 장치(510), 음성 변환 서버(520), 자연어 인식 서버(530)로 구성된 GUI 음성제어 시스템으로 구현될 수 있다.
도 5는 본 발명의 일 실시예에 따른 GUI 음성제어 시스템을 간략히 설명하기 위한 순서도이다.
도 5를 참조하면, GUI 음성제어 시스템은 GUI 음성제어 장치(510), 음성 변환 서버(520) 및 자연어 인식 서버(530)를 포함한다.
GUI 음성제어 장치(510)는 명령패턴 및 개체명 데이터베이스(미도시)로부터 DB 정보를 수신하고, 컨텍스트 정보를 생성(541)하여 컨텍스트 정보를 음성 변환 서버(520) 및 자연어 인식 서버(530)로 전송(542)할 수 있다.
음성 변환 서버(520)는 사용자로부터 음성 신호를 입력 받아 텍스트 정보를 업데이트(543)할 수 있다. 음성 변환 서버(520)는 실시간으로 업데이트되는 텍스트 정보를 자연어 인식 서버(530)로 전송(544)할 수 있다.
자연어 인식 서버(530)는 컨텍스트 정보에 기초하여 음성 신호의 의도와 개체명을 인식(545)할 수 있다. 자연어 인식 서버(530)는 인식된 의도와 개체명을 GUI 음성제어 장치(510)로 전송(546)할 수 있다.
GUI 음성제어 장치(510)는 인식된 의도와 개체명에 따른 제어 신호를 출력할 수 있다. 도 6 내 지 도 8을 참조하여 GUI음성제어 시스템을 구성하는 장치들을 구체적으로 설명한다.
도 6은 본 발명의 다른 일 실시예에 따른 GUI 음성제어 장치의 블록도이다.
도 6을 참조하면, GUI 음성제어 장치(600)는 컨텍스트 정보 생성부(610), 통신부(620) 및 음성 제어부(630)를 포함한다.
컨텍스트 정보 생성부(610)는 GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성할 수 있다.
GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
본 명세서에서는 명령패턴 및 개체명이 하나의 데이터베이스에서 기록 및 관리되는 것으로 설명하고 있지만, 일실시예일 뿐 이에 한정되는 것은 아니다.
즉, 명령패턴 및 개체명 데이터베이스는 명령패턴 데이터베이스와 개체명 데이터베이스로 물리적으로 분리된 두 개의 데이터베이스로 구현될 수도 있다. 이 경우, 상기 DB 정보는 명령패턴 데이터베이스로부터 수신되는 미리 정의된 명령 패턴에 관한 정보를 포함할 수 있다. 또한, 상기 DB 정보는 개체명 데이터베이스로부터 수신되는 개체명에 관한 정보를 포함할 수 있다.
다양한 실시예에 따라, GUI가 클라우드에서 구현되는 경우 컨텍스트 정보 생성부(610)는 클라우드 서버로부터 GUI 상태 정보를 수신하여 컨텍스트 정보를 생성할 수 있다. 이때, GUI 상태 정보는 클라우드 서버로부터 수신한 사용자 인터페이스(User Interface, UI)에 관한 정보일 수 있다.
통신부(620)는 실시간으로 수신한 음성 신호 및 컨텍스트 정보를 음성 변환 서버(520)로 전송하고, 자연어 인식 서버(530)로 컨텍스트 정보를 전송하고 음성 신호의 의도와 개체명을 수신할 수 있다. 통신부(620)는 실시간으로 음성 신호 및 컨텍스트 정보를 음성 변환 서버(520)로 전송할 수 있다. 통신부(620)는 실시간으로 자연어 인식 서버(530)로 컨텍스트 정보를 전송하고, 자연어 인식 서버(530)로부터 음성 신호의 의도와 개체명을 수신할 수 있다. 다양한 실시예에 따라, 통신부(620)는 자연어 인식 서버(530)로만 컨텍스트 정보를 전송할 수 있다.
음성 제어부(530)는 음성 신호의 의도와 개체명에 따른 제어 신호를 출력할 수 있다. 다양한 실시예에 따라, GUI 음성제어 장치(600)는 셋톱박스(set-top box)에 포함될 수 있다. 예를 들면, GUI 음성제어 장치(600)는 셋톱박스(set-top box)에 포함되어, 음성 신호에 따라 VOD 서비스의 GUI 상태 정보를 제어할 수 있다.
다양한 실시예에 따라, GUI 음성제어 장치(600)는 도 6에 도시된 바와 달리, 하기 도 7을 참조하여 설명할 음성 변환 서버(700)의 구성도 포함할 수 있다.
다양한 실시예에 따라, GUI 음성제어 장치(600)는 도 6에 도시된 바와 달리, 하기 도 8을 참조하여 설명할 자연어 인식 서버(700)의 구성도 포함할 수 있다.
이외 상세한 설명은 도 6에 도시된 GUI 음성제어 장치(600)와, 도 3 및 도 4를 참조하여 설명한 GUI 음성제어 장치(300)의 컨텍스트 정보 생성부(310) 및 음성 제어부(340)가 동일하므로 생략한다.
도 7은 본 발명의 일 실시예에 따른 음성 변환 서버의 블록도이다.
도 7을 참조하면, 음성 변환 서버(700)는 텍스트 변환부(710) 및 통신부(720)를 포함한다.
텍스트 변환부(710)는 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다. 텍스트 변환부(710)는 GUI 음성제어 장치(510)로부터 음성 신호 및 컨텍스트 정보를 수신할 수 있다. 텍스트 변환부(710)는 컨텍스트 정보에 기초하여 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다. 다양한 실시예에 따라, 텍스트 변환부(710)는 GUI 음성제어 장치(510)로부터 음성 신호만을 수신할 수 있다. 이때, 텍스트 변환부(710)는 컨텍스트 정보 없이 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다.
통신부(720)는 업데이트되는 텍스트 정보를 실시간으로 자연어 인식 서버(530)로 전송할 수 있다.
다양한 실시예에 따라, 음성 변환 서버(700)는 도 7에 도시된 바와 달리, 하기 도 8을 참조하여 설명할 자연어 인식 서버(800)의 구성도 포함할 수 있다.
이외 상세한 설명은 도 7에 도시된 음성 변환 서버(700)와, 도 3 및 도 4를 참조하여 설명한 GUI 음성제어 장치(300)의 음성 인식부(320)가 동일하므로 생략한다.
도 8은 본 발명의 일 실시예에 따른 자연어 인식 서버의 블록도이다.
도 8을 참조하면, 자연어 인식 서버(800)는 자연어 인식부(810) 및 통신부(820)를 포함한다.
자연어 인식부(810)는 컨텍스트 정보에 기초하여 실시간으로 업데이트되는 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식할 수 있다. 자연어 인식부(810)는 GUI 음성제어 장치(510)로부터 컨텍스트 정보를 수신할 수 있다. 자연어 인식부(810)는 음성 변환 서버(520)로부터 실시간으로 업데이트되는 텍스트 정보를 수신할 수 있다. 자연어 인식부(810)는 컨텍스트 정보에 기초하여 텍스트 정보를 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식할 수 있다.
통신부(820)는 음성 신호의 의도와 개체명을 GUI 음성제어 장치로 전송할 수 있다.
이외 상세한 설명은 도 8에 도시된 자연어 인식 서버(800)와, 도 3 내지 도 4를 참조하여 설명한 GUI 음성제어 장치(300)의 자연어 인식부(330)가 동일하므로 생략한다.
도 9는 본 발명의 일 실시예에 따른 GUI 음성제어 방법의 흐름도이다.
도 9에 도시된 GUI 음성제어 방법은 도 3 및 도 4를 참조하여 설명한 GUI 음성제어 장치(300)에 의해 수행될 수 있다.
도 9를 참조하면, GUI 음성제어 장치(300)는 910 단계에서, GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성할 수 있다.
GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
GUI 음성제어 장치(300)는 920 단계에서, 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다.
텍스트 정보는 컨텍스트 정보에 기초해 음성 신호를 텍스트로 변환하여 업데이트될 수 있다.
GUI 음성제어 장치(300)는 930 단계에서, 텍스트 정보가 업데이트 됨에 따라 컨텍스트 정보에 기초하여 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식할 수 있다.
매칭 가능한 명령패턴의 수는 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 줄여갈 수 있다.
매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가질 수 있다.
텍스트 정보와 매칭 가능한 명령패턴이 없는 경우, 텍스트 정보를 리셋하여 그 때까지 입력된 텍스트를 무시하고 이후 실시간으로 업데이트되는 텍스트 정보를 처리할 수 있다.
GUI 음성제어 장치(300)는 940 단계에서, 인식된 의도와 개체명에 따른 제어 신호를 출력할 수 있다.
도 9에 도시된 GUI 음성제어 방법은 도 3 및 도 4를 참조하여 설명한 GUI 음성제어 장치(300)의 동작 방법과 동일하므로 이외 상세한 설명은 생략한다.
도 10은 본 발명의 다른 일 실시예에 따른 GUI 음성제어 방법의 흐름도이다.
도 10에 도시된 GUI 음성제어 방법은 도 6에 도시된 GUI 음성제어 장치(600)에 의해 수행될 수 있다.
도 10을 참조하면, GUI 음성제어 장치(600)는 1010 단계에서, GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성할 수 있다.
GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
GUI 음성제어 장치(600)는 1020 단계에서, 실시간으로 수신한 음성 신호 및 컨텍스트 정보를 음성 변환 서버(520)로 전송하고, 자연어 인식 서버(530)로 컨텍스트 정보를 전송하고 음성 신호의 의도와 개체명을 수신할 수 있다.
GUI 음성제어 장치(600)는 1030 단계에서, 음성 신호의 의도와 개체명에 따른 제어 신호를 출력할 수 있다.
도 10에 도시된 GUI 음성제어 방법은 도 6을 참조하여 설명한 GUI 음성제어 장치(600)의 동작 방법과 동일하므로 이외 상세한 설명은 생략한다.
도 11은 본 발명의 일 실시예에 따른 음성 변환 방법의 흐름도이다.
도 11은 도 7에 도시된 음성 변환 서버(700)에 의해 수행될 수 있다.
도 11을 참조하면, 음성 변환 서버(700)는 1110 단계에서, GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 생성된 컨텍스트 정보에 기초하여 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트할 수 있다.
GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함할 수 있다.
DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함할 수 있다.
음성 변환 서버(700)는 1120 단계에서, 업데이트되는 텍스트 정보를 실시간으로 자연어 인식 서버(530)로 전송할 수 있다.
도 11에 도시된 음성 변환 방법은 도 7을 참조하여 설명한 음성 변환 서버(700)의 동작 방법과 동일하므로 이외 상세한 설명은 생략한다.
도 12는 본 발명의 일 실시예에 따른 자연어 인식 방법의 흐름도이다.
도 12에 도시된 자연어 인식 방법은 도 8에 도시된 자연어 인식 서버(800)에 의해 수행될 수 있다.
도 12를 참조하면, 자연어 인식 서버(800)는 1210 단계에서, 컨텍스트 정보에 기초하여 실시간으로 업데이트되는 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식할 수 있다.
매칭 가능한 명령패턴의 수는 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 줄여갈 수 있다.
매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가질 수 있다.
텍스트 정보와 매칭 가능한 명령패턴이 없는 경우, 텍스트 정보를 리셋하여 그 때까지 입력된 텍스트를 무시하고 이후 실시간으로 업데이트되는 텍스트 정보를 처리할 수 있다.
자연어 인식 서버(800)는 1220 단계에서, 음성 신호의 의도와 개체명을 GUI 음성제어 장치(510)로 전송할 수 있다.
도 12에 도시된 자연어 인식 방법은 도 8을 참조하여 설명한 자연어 인식 서버(800)의 동작 방법과 동일하므로 이외 상세한 설명은 생략한다.
종래에는 비음성 여부를 확인하여 텍스트의 시작과 끝나는 시점(끝점)을 판별하는 과정이 종료되면, 이후에 음성 구간이라고 판단된 신호에 기초하여 인식 결과를 도출하므로 응답시간이 길었다.
그러나, 본 발명은 입력되는 텍스트에 따라 매칭 가능한 명령패턴 수를 줄여가면서, 매칭 가능한 명령패턴 수가 일정 개수 이하로 줄어드는 경우에 지체 없이 바로 제어 신호를 생성하여 기기를 제어하므로 음성인식 속도를 현저하게 개선할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (34)

  1. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 컨텍스트 정보 생성부;
    실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 음성 인식부;
    상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하는 자연어 인식부; 및
    상기 인식된 의도와 개체명에 따른 제어 신호를 출력하는 음성 제어부를 포함하고,
    상기 자연어 인식부는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는 GUI 음성제어 장치.
  2. 제1항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 GUI 음성제어 장치.
  3. 제1항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    GUI 음성제어 장치.
  4. 제1항에 있어서,
    상기 음성 인식부는 상기 컨텍스트 정보에 기초해 상기 음성 신호를 텍스트로 변환하여 상기 텍스트 정보를 업데이트하는
    GUI 음성제어 장치.
  5. 삭제
  6. 삭제
  7. 삭제
  8. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 컨텍스트 정보 생성부;
    실시간으로 수신한 음성 신호 및 상기 컨텍스트 정보를 음성 변환 서버로 전송하고, 자연어 인식 서버로 상기 컨텍스트 정보를 전송하고 상기 음성 신호의 의도와 개체명을 수신하는 통신부; 및
    상기 음성 신호의 의도와 개체명에 따른 제어 신호를 출력하는 음성 제어부를 포함하고,
    상기 음성 변환 서버는 상기 실시간으로 수신한 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하고, 상기 업데이트되는 텍스트 정보를 실시간으로 상기 자연어 인식 서버로 전송하며,
    상기 자연어 인식 서버는 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가되, 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하며, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는
    GUI 음성제어 장치.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 GUI 음성제어 장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    GUI 음성제어 장치.
  11. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 생성된 컨텍스트 정보에 기초하여 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 텍스트 변환부; 및
    상기 업데이트되는 텍스트 정보를 실시간으로 자연어 인식 서버로 전송하는 통신부를 포함하고,
    상기 자연어 인식 서버는 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가되, 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하며, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는
    음성 변환 서버.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 음성 변환 서버.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    음성 변환 서버.
  14. 컨텍스트 정보에 기초하여 실시간으로 업데이트되는 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식하는 자연어 인식부; 및
    상기 음성 신호의 의도와 개체명을 GUI 음성제어 장치로 전송하는 통신부를 포함하고,
    상기 자연어 인식부는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는
    자연어 인식 서버.
  15. 삭제
  16. 삭제
  17. 삭제
  18. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 단계;
    실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 단계;
    상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하는 단계; 및
    상기 인식된 의도와 개체명에 따른 제어 신호를 출력하는 단계를 포함하고,
    상기 매칭 가능한 명령패턴의 수는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 줄여가고,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지며,
    상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우, 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하는
    GUI 음성제어 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제18항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 GUI 음성제어 방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제18항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    GUI 음성제어 방법.
  21. ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈
    제18항에 있어서,
    상기 텍스트 정보는 상기 컨텍스트 정보에 기초해 상기 음성 신호를 텍스트로 변환하여 업데이트되는
    GUI 음성제어 방법.
  22. 삭제
  23. 삭제
  24. 삭제
  25. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 컨텍스트 정보를 생성하는 단계;
    실시간으로 수신한 음성 신호 및 상기 컨텍스트 정보를 음성 변환 서버로 전송하고, 자연어 인식 서버로 상기 컨텍스트 정보를 전송하고 상기 음성 신호의 의도와 개체명을 수신하는 단계; 및
    상기 음성 신호의 의도와 개체명에 따른 제어 신호를 출력하는 단계를 포함하고,
    상기 음성 변환 서버는 상기 실시간으로 수신한 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하고, 상기 업데이트되는 텍스트 정보를 실시간으로 상기 자연어 인식 서버로 전송하며,
    상기 자연어 인식 서버는 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가되, 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하며, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는
    GUI 음성제어 방법.
  26. ◈청구항 26은(는) 설정등록료 납부시 포기되었습니다.◈
    제25항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 GUI 음성제어 방법.
  27. ◈청구항 27은(는) 설정등록료 납부시 포기되었습니다.◈
    제25항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    GUI 음성제어 방법.
  28. GUI 상태 정보 및 DB 정보를 언어모델에 동적으로 반영하여 생성된 컨텍스트 정보에 기초하여 실시간으로 음성 신호를 텍스트로 변환하여 텍스트 정보를 업데이트하는 단계; 및
    상기 업데이트되는 텍스트 정보를 실시간으로 자연어 인식 서버로 전송하는 단계를 포함하고,
    상기 자연어 인식 서버는 상기 텍스트 정보가 업데이트 됨에 따라 상기 컨텍스트 정보에 기초하여 상기 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가되, 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 상기 음성 신호의 의도와 개체명을 인식하며, 상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우에 상기 텍스트 정보를 리셋하고 실시간으로 업데이트되는 텍스트 정보를 처리하며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지는
    음성 변환 방법.
  29. ◈청구항 29은(는) 설정등록료 납부시 포기되었습니다.◈
    제28항에 있어서,
    상기 GUI 상태 정보는 GUI 정보 및 서비스의 상태를 포함하는 음성 변환 방법.
  30. ◈청구항 30은(는) 설정등록료 납부시 포기되었습니다.◈
    제28항에 있어서,
    상기 DB 정보는 명령패턴 및 개체명 데이터베이스로부터 수신되는 미리 정의된 명령패턴 및 개체명 중에서 적어도 하나에 관한 정보를 포함하는
    음성 변환 방법.
  31. 컨텍스트 정보에 기초하여 실시간으로 업데이트되는 텍스트 정보와 매칭 가능한 명령패턴의 수를 줄여가고, 최종 명령패턴과 매칭시켜 음성 신호의 의도와 개체명을 인식하는 단계; 및
    상기 음성 신호의 의도와 개체명을 GUI 음성제어 장치로 전송하는 단계를 포함하고,
    상기 매칭 가능한 명령패턴의 수는 상기 텍스트 정보의 매치 결과를 매치 및 노매치 이외에 부분매치로 분류하여 줄여가며,
    상기 매칭 가능한 명령패턴은 이미디에이트, 노멀 또는 웨이트엔드 등급을 가지고,
    상기 텍스트 정보와 상기 매칭 가능한 명령패턴이 없는 경우, 상기 텍스트 정보를 리셋하고, 실시간으로 업데이트되는 텍스트 정보를 처리하는
    자연어 인식 방법.
  32. 삭제
  33. 삭제
  34. 삭제
KR1020180095150A 2018-08-14 2018-08-14 Gui 음성제어 장치 및 방법 KR102096590B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180095150A KR102096590B1 (ko) 2018-08-14 2018-08-14 Gui 음성제어 장치 및 방법
US16/539,922 US20200057604A1 (en) 2018-08-14 2019-08-13 Graphical user interface (gui) voice control apparatus and method
EP19191722.8A EP3611723B1 (en) 2018-08-14 2019-08-14 Graphical user interface voice control apparatus/system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180095150A KR102096590B1 (ko) 2018-08-14 2018-08-14 Gui 음성제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200019522A KR20200019522A (ko) 2020-02-24
KR102096590B1 true KR102096590B1 (ko) 2020-04-06

Family

ID=67658814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180095150A KR102096590B1 (ko) 2018-08-14 2018-08-14 Gui 음성제어 장치 및 방법

Country Status (3)

Country Link
US (1) US20200057604A1 (ko)
EP (1) EP3611723B1 (ko)
KR (1) KR102096590B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113362828B (zh) * 2020-03-04 2022-07-05 阿波罗智联(北京)科技有限公司 用于识别语音的方法和装置
CN111599358A (zh) * 2020-04-09 2020-08-28 华为技术有限公司 语音交互方法及电子设备
CN114005445A (zh) * 2020-06-28 2022-02-01 广州小鹏汽车科技有限公司 信息处理方法、服务器和计算机可读存储介质
CN112007852B (zh) * 2020-08-21 2021-07-20 广州卓邦科技有限公司 一种筛沙机语音控制系统
CN112102832B (zh) * 2020-09-18 2021-12-28 广州小鹏汽车科技有限公司 语音识别方法、装置、服务器和计算机可读存储介质
CN111930919B (zh) * 2020-09-30 2021-01-05 知学云(北京)科技有限公司 一种面向企业在线教育app语音交互的实现方法
KR20220159170A (ko) * 2021-05-25 2022-12-02 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
CN113535112B (zh) * 2021-07-09 2023-09-12 广州小鹏汽车科技有限公司 异常反馈方法、异常反馈装置、车载终端和车辆

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0938077B1 (en) * 1992-12-31 2001-06-13 Apple Computer, Inc. A speech recognition system
US6895379B2 (en) * 2002-03-27 2005-05-17 Sony Corporation Method of and apparatus for configuring and controlling home entertainment systems through natural language and spoken commands using a natural language server
EP2317508B1 (en) * 2004-10-05 2012-06-27 Inago Corporation Grammar rule generation for speech recognition
KR20100003672A (ko) 2008-07-01 2010-01-11 (주)디유넷 영상정보를 이용한 음성인식 장치 및 방법
US8942981B2 (en) * 2011-10-28 2015-01-27 Cellco Partnership Natural language call router
US10339917B2 (en) * 2015-09-03 2019-07-02 Google Llc Enhanced speech endpointing
US10261752B2 (en) * 2016-08-02 2019-04-16 Google Llc Component libraries for voice interaction services
KR20180055638A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 전자 장치 및 음성 인식을 이용한 전자 장치의 제어 방법
KR20180087942A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 음성 인식 방법 및 장치

Also Published As

Publication number Publication date
EP3611723A1 (en) 2020-02-19
US20200057604A1 (en) 2020-02-20
EP3611723B1 (en) 2022-05-04
KR20200019522A (ko) 2020-02-24

Similar Documents

Publication Publication Date Title
KR102096590B1 (ko) Gui 음성제어 장치 및 방법
US20230100423A1 (en) Crowdsourced on-boarding of digital assistant operations
US11682380B2 (en) Systems and methods for crowdsourced actions and commands
KR102490776B1 (ko) 디지털 개인 비서 내에서 헤드리스로 작업을 완료하기 위한 기법
CN113571058B (zh) 语音动作可发现性系统
US20190310824A1 (en) Component Libraries for Voice Interaction Services
KR101777392B1 (ko) 중앙 서버 및 이에 의한 사용자 음성 처리 방법
US10860289B2 (en) Flexible voice-based information retrieval system for virtual assistant
US20050004800A1 (en) Combining use of a stepwise markup language and an object oriented development tool
US20180366113A1 (en) Robust replay of digital assistant operations
JP2022547598A (ja) コンテキストデータを使用した対話処理のための技術
US11990124B2 (en) Language model prediction of API call invocations and verbal responses
US11562747B2 (en) Speech-to-text transcription with multiple languages
US20230144326A1 (en) Contextual smart switching via multi-modal learning mechanism
US11490232B2 (en) Location-based conversation identifier
EP2752765A1 (en) Method of providing a cloud-based application
CA3158979C (en) Headless task completion within digital personal assistants
KR20210015348A (ko) 대화 관리 프레임워크에 기반한 대화 관리 방법 및 그 장치
WO2020018826A1 (en) Systems and methods for crowdsourced actions and commands
CN114237479A (zh) 一种应用程序的控制方法、装置及电子设备
WO2019083603A1 (en) ROBUST DIGITAL ASSISTANT OPERATIONS READER

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right