KR20210059978A - 음성 어시스턴트의 사용자 입력 처리방법 - Google Patents

음성 어시스턴트의 사용자 입력 처리방법 Download PDF

Info

Publication number
KR20210059978A
KR20210059978A KR1020190147455A KR20190147455A KR20210059978A KR 20210059978 A KR20210059978 A KR 20210059978A KR 1020190147455 A KR1020190147455 A KR 1020190147455A KR 20190147455 A KR20190147455 A KR 20190147455A KR 20210059978 A KR20210059978 A KR 20210059978A
Authority
KR
South Korea
Prior art keywords
assistant
partial
user input
command
instructions
Prior art date
Application number
KR1020190147455A
Other languages
English (en)
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 KR1020190147455A priority Critical patent/KR20210059978A/ko
Priority to US16/910,672 priority patent/US11664022B2/en
Publication of KR20210059978A publication Critical patent/KR20210059978A/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/04Segmentation; Word boundary detection
    • 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/02Feature extraction for speech recognition; Selection of recognition unit
    • 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
    • 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/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting 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/34Adaptation of a single recogniser for parallel processing, e.g. by use of multiple processors or cloud computing
    • 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
    • G10L2015/081Search algorithms, e.g. Baum-Welch or Viterbi

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mobile Radio Communication Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 실시 예에 따른 음성 어시스턴트의 사용자 입력 처리방법은 사용자 입력을 복수의 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 전달하기 위한 것으로, 음성 신호를 포함하는 사용자 입력을 미리 설정한 규칙을 바탕으로 변환함으로써 명령어를 생성하는 단계, 생성된 명령어가 두 개 이상의 이벤트를 요청하는 복합 명령어인 것에 기초하여, 복합 명령어를 부분 명령어들로 분할하는 단계 및 부분 명령어들 각각에 대한 도메인을 판단하고, 도메인에 기초하여 부분 명령어들을 다수의 음성 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 분배하는 단계를 포함한다.
본 발명은 인공 지능(Artificial Intelligence) 모듈, 드론(Unmanned Aerial Vehicle, UAV), 로봇, 증강 현실(Augmented Reality, AR) 장치, 가상 현실(virtual reality, VR) 장치, 5G 서비스와 관련된 장치 등과 연계될 수 있다.

Description

음성 어시스턴트의 사용자 입력 처리방법{Method for Processing User Input of Voice Assistant}
본 발명은 음성 어시스턴트의 사용자 입력 처리방법에 관한 것이다.
사용자의 제어에 의해서 동작하는 기기들은 사용자가 제어 동작을 수행할 수 있는 사용자 인터페이스를 제공한다. 사용자 인터페이스는 기기 자체의 기능 및 동작을 직접 컨트롤하는 방식에서 점차적으로 사용자들의 물리적 힘을 적게 요구하면서 직관적인 동작으로 제어될 수 있는 방향으로 개발되고 있다. 또한, 보다 직관적이고 간편한 사용자 입력 방법에 해당하는 음성인식 기술의 활용이 증가하고 있다. 음성으로 표현되는 언어는 자연인에게 가장 자연스러운 의사소통 수단이기 때문에 음성인식 기반의 기기들은 매우 직관적이며 사용이 편리한 장점이 있다.
기존의 음성인식 기술은 사용자의 발화를 인식하고, 이를 바탕으로 특정 디바이스에서 한정된 제어동작을 수행하는 수준이었다.
근래에는, 인공지능의 발달로 사용자의 음성을 인식하는 수준이 향상되고, 인터넷 정보를 활용하여 보다 폭넓은 사용자 명령에 대응할 수 있는 음성 어시스턴트가 활용되기도 한다.
사용자에게 보다 편리한 음성 인식 서비스를 제공하기 위해서는, 사용자의 입력 형태에 구애받지 않고, 더욱 다양한 기능을 수행할 수 있는 방법이 요구된다.
본 발명은 전술한 필요성 및/또는 문제점을 해결하는 것을 목적으로 한다.
또한, 본 발명은 사용자 입력 형태를 다양하게 함으로써, 보다 편리하고 직관적인 음성 어시스턴트의 사용자 입력 처리방법을 제공하기 위한 것이다.
또한, 본 발명은 보다 다양한 서비스를 제공할 수 있는 음성 어시스턴트의 사용자 입력 처리방법을 제공하기 위한 것이다.
본 발명의 실시 예에 따른 음성 어시스턴트의 사용자 입력 처리방법은 사용자 입력을 복수의 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 전달하기 위한 것으로, 음성 신호를 포함하는 사용자 입력을 미리 설정한 규칙을 바탕으로 변환함으로써 명령어를 생성하는 단계, 생성된 명령어가 두 개 이상의 이벤트를 요청하는 복합 명령어인 것에 기초하여 복합 명령어를 부분 명령어들로 분할하는 단계, 및 부분 명령어들 각각에 대한 도메인을 판단하고 도메인에 기초하여 부분 명령어들을 다수의 음성 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 분배하는 단계를 포함한다.
상기 명령어를 생성하는 단계는 상기 사용자 입력으로부터 사용자 의도 및 속성 데이터를 추출하는 단계 및 상기 사용자 의도 및 상기 속성 데이터를 결합하는 단계를 포함할 수 있다.
상기 사용자 의도를 추출하는 단계는 상기 사용자 입력으로부터 명령 처리가 되는 대상 및 상기 대상의 처리 방법 중에서 적어도 어느 하나를 추출하는 것일 수 있다.
상기 속성 데이터를 추출하는 단계는 상기 대상의 카테고리 및 부가 속성 중에서 적어도 어느 하나를 추출하는 것일 수 있다.
상기 명령어를 생성하는 단계는 상기 음성신호를 텍스트로 변환하는 단계, 상기 텍스트에서 상기 사용자 의도 또는 상기 속성 데이터 중에서 누락 정보가 있는지를 확인하고, 상기 누락 정보를 확인한 것에 기초하여, 상기 음성신호 이외의 다른 형태의 사용자 입력을 검색하는 단계 및 다른 형태의 사용자 입력 중에서 상기 누락 정보와 연관된 사용자 입력을 바탕으로 상기 명령어를 완성하는 단계를 포함할 수 있다.
상기 복합 명령어를 부분 명령어로 분할하는 단계는 서로 연관되는 사용자 의도 및 속성 데이터들끼리 매칭하여 상기 부분 명령어를 생성하는 단계를 포함할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들의 상기 사용자 의도에 기초하여 상기 도메인을 분류하고, 상기 어시스턴트들 중에서 상기 도메인과 매칭되는 어시스턴트를 검색하는 것일 수 있다.
상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는 상기 도메인과 매칭되는 상기 어시스턴트가 복수인 것에 기초하여, 복수의 상기 어시스턴트들 중에서, 상기 도메인에 대한 신뢰도 또는 성능에 기초하여 부여된 가중치가 가장 높은 어시스턴트를 검색하는 단계를 포함할 수 있다.
상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는 상기 부분 명령어들 각각의 도메인에 대한 가중치를 합산하는 단계 상기 가중치의 합산이 가장 큰 어시스턴트를 상기 부분 명령어들의 도메인의 공통의 어시스턴트로 결정하는 단계를 더 포함할 수 있다.
상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는 이용 빈도가 가장 높은 어시스턴트를 검색하는 단계를 포함할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들 각각은 시계열적으로 처리되어야 하는 종속성이 존재하는 것에 기초하여, 상기 복합 명령어들을 순차 처리하는 것일 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들 중에서 다른 부분 명령어의 사용자 의도 또는 속성 데이터를 지시하는 지시어의 존재에 기초하여, 상기 종속성 유무를 판단하는 것일 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들 간의 종속성이 존재하지 않는 것에 기초하여, 상기 부분 명령어들이 처리되는 어시스턴트의 개수를 확인하는 단계 및 상기 부분 명령어들이 하나의 어시스턴트에서 처리되며, 상기 부분 명령어들이 병렬 처리가 불가능한 것에 기초하여, 상기 부분 명령어들을 순차 처리하는 단계를 더 포함할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들이 둘 이상의 어시스턴트에서 처리되거나, 하나의 어시스턴트에서 처리되되 병렬 처리 가능한 것에 기초하여, 추가 명령어가 필요한지를 확인하는 단계 및 상기 추가 명령어가 필요하지 않은 것에 기초하여, 상기 부분 명령어들을 병렬 처리하는 단계를 더 포함할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 추가 명령어가 필요한지를 확인하는 단계는 상기 추가 명령어의 개수를 확인하는 단계를 더 포함하고, 상기 추가 명령어가 둘 이상 필요한 것에 기초하여, 상기 부분 명령어들을 순차 처리할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 추가 명령어가 하나만 필요한 것에 기초하여, 상기 부분 명령어들을 병렬 처리할 수 있다.
상기 부분 명령어들을 분배하는 단계는 상기 부분 명령어들이 전달되는 상기 어시스턴트의 입력 수단을 확인하는 단계 및 상기 어시스턴트의 입력 수단이 음성신호인 것에 기초하여, 상기 부분 명령어들을 음성 명령어로 변환하는 단계를 더 포함할 수 있다.
본 발명은 음성 인식 이외에도 다양한 형태의 사용자 입력을 결합하여, 음성 어시스턴트에 제공될 명령어를 생성함으로써, 보다 직관적이고 편리하게 음성 어시스턴트에 명령을 제공할 수 있다.
또한, 본 발명은 복합 명령어를 분할하여 각각의 부분 명령어들을 처리할 수 있기 때문에, 사용자는 음성 명령의 형식에 구애받지 않고 자유롭게 사용자 명령을 내릴 수 있다.
또한, 본 발명은 사용자 입력을 바탕으로 명령어가 처리될 수 있는 최적의 어시스턴트를 선택하기 때문에, 어시스턴트들 각각의 서비스 분야에 구애받지 않고 사용자 명령을 내릴 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 명세서에서 제안하는 방법들이 적용될 수 있는 무선 통신 시스템의 블록 구성도를 예시한다.
도 2는 무선 통신 시스템에서 신호 송/수신 방법의 일례를 나타낸 도이다.
도 3은 5G 통신 시스템에서 사용자 단말과 5G 네트워크의 기본동작의 일 예를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 AI 장치의 블록도이다.
도 5는 본 발명의 실시 예에 따른 어시스턴트 시스템을 나타내는 도면이다.
도 6은 본 발명의 실시 예에 따른 음성 어시스턴트의 사용자 명령 처리 방법을 나타내는 순서도이다.
도 7은 사용자 입력 및 명령어 생성의 일례를 설명하는 도면이다.
도 8은 본 발명의 실시 예에 따른 명령문 생성방법을 나타내는 순서도이다.
도 9는 본 발명의 실시 예에 따른 어시스턴트 중재 방법을 설명하는 순서도이다.
도 10은 명령어 재가공의 절차를 설명하는 순서도이다.
도 11은 본 발명의 실시 예에 따른 복합 명령어의 처리 순서를 설명하는 도면이다.
도 12는 본 발명의 실시 예에 따른 인공지능 학습을 위한 어시스턴트 결정 모델을 설명하는 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, AI 프로세싱된 정보를 필요로 하는 장치 및/또는 AI 프로세서가 필요로 하는 5G 통신(5th generation mobile communication)을 단락 A 내지 단락 G를 통해 설명하기로 한다.
A. UE 및 5G 네트워크 블록도 예시
도 1은 본 명세서에서 제안하는 방법들이 적용될 수 있는 무선 통신 시스템의 블록 구성도를 예시한다.
도 1을 참조하면, AI 모듈을 포함하는 장치(AI 장치)를 제1 통신 장치로 정의(도 1의 910)하고, 프로세서(911)가 AI 상세 동작을 수행할 수 있다.
AI 장치와 통신하는 다른 장치(AI 서버)를 포함하는 5G 네트워크를 제2 통신 장치(도 1의 920)하고, 프로세서(921)가 AI 상세 동작을 수행할 수 있다.
5G 네트워크가 제 1 통신 장치로, AI 장치가 제 2 통신 장치로 표현될 수도 있다.
예를 들어, 상기 제 1 통신 장치 또는 상기 제 2 통신 장치는 기지국, 네트워크 노드, 전송 단말, 수신 단말, 무선 장치, 무선 통신 장치, 차량, 자율주행 기능을 탑재한 차량, 커넥티드카(Connected Car), 드론(Unmanned Aerial Vehicle, UAV), AI(Artificial Intelligence) 모듈, 로봇, AR(Augmented Reality) 장치, VR(Virtual Reality) 장치, MR(Mixed Reality) 장치, 홀로그램 장치, 공공 안전 장치, MTC 장치, IoT 장치, 의료 장치, 핀테크 장치(또는 금융 장치), 보안 장치, 기후/환경 장치, 5G 서비스와 관련된 장치 또는 그 이외 4차 산업 혁명 분야와 관련된 장치일 수 있다.
예를 들어, 단말 또는 UE(User Equipment)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털 방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등을 포함할 수 있다. 예를 들어, HMD는 머리에 착용하는 형태의 디스플레이 장치일 수 있다. 예를 들어, HMD는 VR, AR 또는 MR을 구현하기 위해 사용될 수 있다. 예를 들어, 드론은 사람이 타지 않고 무선 컨트롤 신호에 의해 비행하는 비행체일 수 있다. 예를 들어, VR 장치는 가상 세계의 객체 또는 배경 등을 구현하는 장치를 포함할 수 있다. 예를 들어, AR 장치는 현실 세계의 객체 또는 배경 등에 가상 세계의 객체 또는 배경을 연결하여 구현하는 장치를 포함할 수 있다. 예를 들어, MR 장치는 현실 세계의 객체 또는 배경 등에 가상 세계의 객체 또는 배경을 융합하여 구현하는 장치를 포함할 수 있다. 예를 들어, 홀로그램 장치는 홀로그래피라는 두 개의 레이저 광이 만나서 발생하는 빛의 간섭현상을 활용하여, 입체 정보를 기록 및 재생하여 360도 입체 영상을 구현하는 장치를 포함할 수 있다. 예를 들어, 공공 안전 장치는 영상 중계 장치 또는 사용자의 인체에 착용 가능한 영상 장치 등을 포함할 수 있다. 예를 들어, MTC 장치 및 IoT 장치는 사람의 직접적인 개입이나 또는 조작이 필요하지 않는 장치일 수 있다. 예를 들어, MTC 장치 및 IoT 장치는 스마트 미터, 벤딩 머신, 온도계, 스마트 전구, 도어락 또는 각종 센서 등을 포함할 수 있다. 예를 들어, 의료 장치는 질병을 진단, 치료, 경감, 처치 또는 예방할 목적으로 사용되는 장치일 수 있다. 예를 들어, 의료 장치는 상해 또는 장애를 진단, 치료, 경감 또는 보정할 목적으로 사용되는 장치일 수 있다. 예를 들어, 의료 장치는 구조 또는 기능을 검사, 대체 또는 변형할 목적으로 사용되는 장치일 수 있다. 예를 들어, 의료 장치는 임신을 조절할 목적으로 사용되는 장치일 수 있다. 예를 들어, 의료 장치는 진료용 장치, 수술용 장치, (체외) 진단용 장치, 보청기 또는 시술용 장치 등을 포함할 수 있다. 예를 들어, 보안 장치는 발생할 우려가 있는 위험을 방지하고, 안전을 유지하기 위하여 설치한 장치일 수 있다. 예를 들어, 보안 장치는 카메라, CCTV, 녹화기(recorder) 또는 블랙박스 등일 수 있다. 예를 들어, 핀테크 장치는 모바일 결제 등 금융 서비스를 제공할 수 있는 장치일 수 있다.
도 1을 참고하면, 제 1 통신 장치(910)와 제 2 통신 장치(920)은 프로세서(processor, 911,921), 메모리(memory, 914,924), 하나 이상의 Tx/Rx RF 모듈(radio frequency module, 915,925), Tx 프로세서(912,922), Rx 프로세서(913,923), 안테나(916,926)를 포함한다. Tx/Rx 모듈은 트랜시버라고도 한다. 각각의 Tx/Rx 모듈(915)는 각각의 안테나(926)을 통해 신호를 전송한다. 프로세서는 앞서 살핀 기능, 과정 및/또는 방법을 구현한다. 프로세서 (921)는 프로그램 코드 및 데이터를 저장하는 메모리 (924)와 관련될 수 있다. 메모리는 컴퓨터 판독 가능 매체로서 지칭될 수 있다. 보다 구체적으로, DL(제 1 통신 장치에서 제 2 통신 장치로의 통신)에서, 전송(TX) 프로세서(912)는 L1 계층(즉, 물리 계층)에 대한 다양한 신호 처리 기능을 구현한다. 수신(RX) 프로세서는 L1(즉, 물리 계층)의 다양한 신호 프로세싱 기능을 구현한다.
UL(제 2 통신 장치에서 제 1 통신 장치로의 통신)은 제 2 통신 장치(920)에서 수신기 기능과 관련하여 기술된 것과 유사한 방식으로 제 1 통신 장치(910)에서 처리된다. 각각의 Tx/Rx 모듈(925)는 각각의 안테나(926)을 통해 신호를 수신한다. 각각의 Tx/Rx 모듈은 RF 반송파 및 정보를 RX 프로세서(923)에 제공한다. 프로세서 (921)는 프로그램 코드 및 데이터를 저장하는 메모리 (924)와 관련될 수 있다. 메모리는 컴퓨터 판독 가능 매체로서 지칭될 수 있다.
본 발명의 일 실시예에 의하면, 상기 제1 통신 장치는 차량이 될 수 있으며, 상기 제2 통신 장치는 5G 네트워크가 될 수 있다.
B.물리 채널 및 일반적인 신호 전송
도 2는 3GPP 시스템에 이용되는 물리 채널들 및 일반적인 신호 전송을 예시한다. 무선 통신 시스템에서 단말은 기지국으로부터 하향링크(Downlink, DL)를 통해 정보를 수신하고, 단말은 기지국으로 상향링크(Uplink, UL)를 통해 정보를 전송한다. 기지국과 단말이 송수신하는 정보는 데이터 및 다양한 제어 정보를 포함하고, 이들이 송수신 하는 정보의 종류/용도에 따라 다양한 물리 채널이 존재한다.
단말은 전원이 켜지거나 새로이 셀에 진입한 경우 기지국과 동기를 맞추는 등의 초기 셀 탐색(Initial cell search) 작업을 수행한다(S201). 이를 위해, 단말은 기지국으로부터 주 동기 신호(Primary Synchronization Signal, PSS) 및 부 동기 신호(Secondary Synchronization Signal, SSS)을 수신하여 기지국과 동기를 맞추고, 셀 ID 등의 정보를 획득할 수 있다. 그 후, 단말은 기지국으로부터 물리 방송 채널(Physical Broadcast Channel, PBCH)를 수신하여 셀 내 방송 정보를 획득할 수 있다. 한편, 단말은 초기 셀 탐색 단계에서 하향링크 참조 신호(Downlink Reference Signal, DL RS)를 수신하여 하향링크 채널 상태를 확인할 수 있다.
초기 셀 탐색을 마친 단말은 물리 하향링크 제어 채널(Physical Downlink Control Channel, PDCCH) 및 상기 PDCCH에 실린 정보에 따라 물리 하향링크 공유 채널(Physical Downlink Control Channel; PDSCH)을 수신함으로써 좀더 구체적인 시스템 정보를 획득할 수 있다(S202).
한편, 기지국에 최초로 접속하거나 신호 송신을 위한 무선 자원이 없는 경우, 단말은 기지국에 대해 임의 접속 과정(Random Access Procedure, RACH)을 수행할 수 있다(S203 내지 S206). 이를 위해, 단말은 물리 임의 접속 채널(Physical Random Access Channel, PRACH)을 통해 특정 시퀀스를 프리앰블로 송신하고(S203 및 S205), PDCCH 및 대응하는 PDSCH를 통해 프리앰블에 대한 응답 메시지((RAR(Random Access Response) message)를 수신할 수 있다. 경쟁 기반 RACH의 경우, 추가적으로 충돌 해결 절차(Contention Resolution Procedure)를 수행할 수 있다(S206).
상술한 바와 같은 절차를 수행한 단말은 이후 일반적인 상/하향링크 신호 송신 절차로서 PDCCH/PDSCH 수신(S207) 및 물리 상향링크 공유 채널(Physical Uplink Shared Channel, PUSCH)/물리 상향링크 제어 채널(Physical Uplink Control Channel; PUCCH) 송신(S208)을 수행할 수 있다. 특히 단말은 PDCCH를 통하여 하향링크 제어 정보(Downlink Control Information, DCI)를 수신할 수 있다. 여기서, DCI는 단말에 대한 자원 할당 정보와 같은 제어 정보를 포함하며, 사용 목적에 따라 포맷이 서로 다르게 적용될 수 있다.
한편, 단말이 상향링크를 통해 기지국에 송신하는 또는 단말이 기지국으로부터 수신하는 제어 정보는 하향링크/상향링크 ACK/NACK 신호, CQI(Channel Quality Indicator), PMI(Precoding Matrix 인덱스), RI(Rank Indicator) 등을 포함할 수 있다. 단말은 상술한 CQI/PMI/RI 등의 제어 정보를 PUSCH 및/또는 PUCCH를 통해 송신할 수 있다.
C. URLLC (Ultra-Reliable and Low Latency Communication)
NR에서 정의하는 URLLC 전송은 (1) 상대적으로 낮은 트래픽 크기, (2) 상대적으로 낮은 도착 레이트(low arrival rate), (3) 극도의 낮은 레이턴시 요구사항(requirement)(예, 0.5, 1ms), (4) 상대적으로 짧은 전송 지속기간(duration)(예, 2 OFDM symbols), (5) 긴급한 서비스/메시지 등에 대한 전송을 의미할 수 있다. UL의 경우, 보다 엄격(stringent)한 레이턴시 요구 사항(latency requirement)을 만족시키기 위해 특정 타입의 트래픽(예컨대, URLLC)에 대한 전송이 앞서서 스케줄링된 다른 전송(예컨대, eMBB)과 다중화(multiplexing)되어야 할 필요가 있다. 이와 관련하여 한 가지 방안으로, 앞서 스케줄링 받은 UE에게 특정 자원에 대해서 프리엠션(preemption)될 것이라는 정보를 주고, 해당 자원을 URLLC UE가 UL 전송에 사용하도록 한다.
NR의 경우, eMBB와 URLLC 사이의 동적 자원 공유(sharing)이 지원된다. eMBB와 URLLC 서비스들은 비-중첩(non-overlapping) 시간/주파수 자원들 상에서 스케줄될 수 있으며, URLLC 전송은 진행 중인(ongoing) eMBB 트래픽에 대해 스케줄된 자원들에서 발생할 수 있다. eMBB UE는 해당 UE의 PDSCH 전송이 부분적으로 펑처링(puncturing)되었는지 여부를 알 수 없을 수 있고, 손상된 코딩된 비트(corrupted coded bit)들로 인해 UE는 PDSCH를 디코딩하지 못할 수 있다. 이 점을 고려하여, NR에서는 프리엠션 지시(preemption indication)을 제공한다. 상기 프리엠션 지시(preemption indication)는 중단된 전송 지시(interrupted transmission indication)으로 지칭될 수도 있다.
프리엠션 지시와 관련하여, UE는 BS로부터의 RRC 시그널링을 통해 DownlinkPreemption IE를 수신한다. UE가 DownlinkPreemption IE를 제공받으면, DCI 포맷 2_1을 운반(convey)하는 PDCCH의 모니터링을 위해 상기 UE는 DownlinkPreemption IE 내 파라미터 int-RNTI에 의해 제공된 INT-RNTI를 가지고 설정된다. 상기 UE는 추가적으로 servingCellID에 의해 제공되는 서빙 셀 인덱스들의 세트를 포함하는 INT-ConfigurationPerServing Cell에 의해 서빙 셀들의 세트와 positionInDCI에 의해 DCI 포맷 2_1 내 필드들을 위한 위치들의 해당 세트를 가지고 설정되고, dci-PayloadSize에 의해 DCI 포맷 2_1을 위한 정보 페이로드 크기를 가지고 설졍되며, timeFrequencySect에 의한 시간-주파수 자원들의 지시 입도(granularity)를 가지고 설정된다.
상기 UE는 상기 DownlinkPreemption IE에 기초하여 DCI 포맷 2_1을 상기 BS로부터 수신한다.
UE가 서빙 셀들의 설정된 세트 내 서빙 셀에 대한 DCI 포맷 2_1을 검출하면, 상기 UE는 상기 DCI 포맷 2_1이 속한 모니터링 기간의 바로 앞(last) 모니터링 기간의 PRB들의 세트 및 심볼들의 세트 중 상기 DCI 포맷 2_1에 의해 지시되는 PRB들 및 심볼들 내에는 상기 UE로의 아무런 전송도 없다고 가정할 수 있다. 예를 들어, UE는 프리엠션에 의해 지시된 시간-주파수 자원 내 신호는 자신에게 스케줄링된 DL 전송이 아니라고 보고 나머지 자원 영역에서 수신된 신호들을 기반으로 데이터를 디코딩한다.
D. 5G 통신을 이용한 AI 기본 동작
도 3은 5G 통신 시스템에서 사용자 단말과 5G 네트워크의 기본동작의 일 예를 나타낸다.
UE는 특정 정보 전송을 5G 네트워크로 전송한다(S1).그리고, 상기 5G 네트워크는 상기 특정 정보에 대한 5G 프로세싱을 수행한다(S2).여기서, 5G 프로세싱은 AI 프로세싱을 포함할 수 있다. 그리고, 상기 5G 네트워크는 AI 프로세싱 결과를 포함하는 응답을 상기 UE로 전송한다(S3).
E. 5G 통신 시스템에서 사용자 단말과 5G 네트워크 간의 응용 동작
이하, 도 1 및 도 2와 앞서 살핀 무선 통신 기술(BM 절차, URLLC, Mmtc 등)을 참고하여 5G 통신을 이용한 AI 동작에 대해 보다 구체적으로 살펴본다.
먼저, 후술할 본 발명에서 제안하는 방법과 5G 통신의 eMBB 기술이 적용되는 응용 동작의 기본 절차에 대해 설명한다.
도 3의 S1 단계 및 S3 단계와 같이, UE가 5G 네트워크와 신호, 정보 등을 송/수신하기 위해, UE는 도 3의 S1 단계 이전에 5G 네트워크와 초기 접속(initial access) 절차 및 임의 접속(random access) 절차를 수행한다.
보다 구체적으로, UE는 DL 동기 및 시스템 정보를 획득하기 위해 SSB에 기초하여 5G 네트워크와 초기 접속 절차를 수행한다. 상기 초기 접속 절차 과정에서 UE가 5G 네트워크로부터 신호를 수신하는 과정에서 QCL(quasi-co location) 관계가 추가될 수 있다.
또한, UE는 UL 동기 획득 및/또는 UL 전송을 위해 5G 네트워크와 임의 접속 절차를 수행한다. 그리고, 상기 5G 네트워크는 상기 UE로 특정 정보의 전송을 스케쥴링하기 위한 UL grant를 전송할 수 있다. 따라서, 상기 UE는 상기 UL grant에 기초하여 상기 5G 네트워크로 특정 정보를 전송한다. 그리고, 상기 5G 네트워크는 상기 UE로 상기 특정 정보에 대한 5G 프로세싱 결과의 전송을 스케쥴링하기 위한 DL grant를 전송한다. 따라서, 상기 5G 네트워크는 상기 DL grant에 기초하여 상기 UE로 AI 프로세싱 결과를 포함하는 응답을 전송할 수 있다.
다음으로, 후술할 본 발명에서 제안하는 방법과 5G 통신의 URLLC 기술이 적용되는 응용 동작의 기본 절차에 대해 설명한다.
앞서 설명한 바와 같이, UE가 5G 네트워크와 초기 접속 절차 및/또는 임의 접속 절차를 수행한 후, UE는 5G 네트워크로부터 DownlinkPreemption IE를 수신할 수 있다. 그리고, UE는 DownlinkPreemption IE에 기초하여 프리엠션 지시(pre-emption indication)을 포함하는 DCI 포맷 2_1을 5G 네트워크로부터 수신한다. 그리고, UE는 프리엠션 지시(pre-emption indication)에 의해 지시된 자원(PRB 및/또는 OFDM 심볼)에서 eMBB data의 수신을 수행(또는 기대 또는 가정)하지 않는다. 이후, UE는 특정 정보를 전송할 필요가 있는 경우 5G 네트워크로부터 UL grant를 수신할 수 있다.
앞서 살핀 5G 통신 기술은 후술할 본 발명에서 제안하는 방법들과 결합되어 적용될 수 있으며, 또는 본 발명에서 제안하는 방법들의 기술적 특징을 구체화하거나 명확하게 하는데 보충될 수 있다.
도 4는 본 명세서의 일 실시예에 따른 AI 장치의 블록도이다.
상기 AI 장치(20)는 AI 프로세싱을 수행할 수 있는 AI 모듈을 포함하는 전자 기기 또는 상기 AI 모듈을 포함하는 서버 등을 포함할 수 있다. 또한, 상기 AI 장치(20)는 본 명세서에 개시된 디바이스의 적어도 일부의 구성으로 포함되어 AI 프로세싱 중 적어도 일부를 함께 수행하도록 구비될 수도 있다.
상기 AI 프로세싱은, 본 명세서에 개시되는 디바이스의 제어와 관련된 모든 동작들을 포함할 수 있다. 예를 들어, 상기 디바이스가 자율주행 차량인 경우, 자율주행 차량은 센싱 데이터 또는 운전자 데이터를 AI 프로세싱 하여 처리/판단, 제어 신호 생성 동작을 수행할 수 있다. 또한, 상기 디바이스가 예를 들어, 상기 디바이스가 자율주행 차량인 경우 상기 차량 내에 구비된 다른 전자 기기와의 인터랙션을 통해 획득되는 데이터를 AI 프로세싱 하여 자율주행 제어를 수행할 수 있다.
상기 AI 장치(20)는 AI 프로세서(21), 메모리(25) 및/또는 통신부(27)를 포함할 수 있다.
상기 AI 장치(20)는 신경망을 학습할 수 있는 컴퓨팅 장치로서, 서버, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.
AI 프로세서(21)는 메모리(25)에 저장된 프로그램을 이용하여 신경망을 학습할 수 있다. 특히, AI 프로세서(21)는 디바이스 관련 데이터를 인식하기 위한 신경망을 학습할 수 있다. 여기서, 디바이스 관련 데이터를 인식하기 위한 신경망은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있으며, 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 갖는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 모드들은 뉴런이 시냅스(synapse)를 통해 신호를 주고 받는 뉴런의 시냅틱 활동을 모의하도록 각각 연결 관계에 따라 데이터를 주고 받을 수 있다. 여기서 신경망은 신경망 모델에서 발전한 딥러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 레이어에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 신경망 모델의 예는 심층 신경망(DNN, deep neural networks), 합성곱 신경망(CNN, convolutional deep neural networks), 순환 신경망(RNN, Recurrent Boltzmann Machine), 제한 볼츠만 머신(RBM, Restricted Boltzmann Machine), 심층 신뢰 신경망(DBN, deep belief networks), 심층 Q-네트워크(Deep Q-Network)와 같은 다양한 딥 러닝 기법들을 포함하며, 컴퓨터비젼, 음성인식, 자연어처리, 음성/신호처리 등의 분야에 적용될 수 있다.
한편, 전술한 바와 같은 기능을 수행하는 프로세서는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU)일 수 있다.
메모리(25)는 AI 장치(20)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(25)는 비 휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SDD) 등으로 구현할 수 있다. 메모리(25)는 AI 프로세서(21)에 의해 액세스되며, AI 프로세서(21)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(25)는 본 명세서의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 딥 러닝 모델(26))을 저장할 수 있다.
한편, AI 프로세서(21)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부(22)를 포함할 수 있다. 데이터 학습부(22)는 데이터 분류/인식을 판단하기 위하여 어떤 학습 데이터를 이용할지, 학습 데이터를 이용하여 데이터를 어떻게 분류하고 인식할지에 관한 기준을 학습할 수 있다. 데이터 학습부(22)는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다.
데이터 학습부(22)는 적어도 하나의 하드웨어 칩 형태로 제작되어 AI 장치(20)에 탑재될 수 있다. 예를 들어, 데이터 학습부(22)는 인공지능(AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 범용 프로세서(CPU) 또는 그래픽 전용 프로세서(GPU)의 일부로 제작되어 AI 장치(20)에 탑재될 수도 있다. 또한, 데이터 학습부(22)는 소프트웨어 모듈로 구현될 수 있다. 소프트웨어 모듈(또는 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록 매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 애플리케이션에 의해 제공될 수 있다.
데이터 학습부(22)는 학습 데이터 획득부(23) 및 모델 학습부(24)를 포함할 수 있다.
학습 데이터 획득부(23)는 데이터를 분류하고 인식하기 위한 신경망 모델에 필요한 학습 데이터를 획득할 수 있다. 예를 들어, 학습 데이터 획득부(23)는 학습 데이터로서, 신경망 모델에 입력하기 위한 차량 데이터 및/또는 샘플 데이터를 획득할 수 있다.
모델 학습부(24)는 상기 획득된 학습 데이터를 이용하여, 신경망 모델이 소정의 데이터를 어떻게 분류할지에 관한 판단 기준을 가지도록 학습할 수 있다. 이 때 모델 학습부(24)는 학습 데이터 중 적어도 일부를 판단 기준으로 이용하는 지도 학습(supervised learning)을 통하여, 신경망 모델을 학습시킬 수 있다. 또는 모델 학습부(24)는 지도 없이 학습 데이터를 이용하여 스스로 학습함으로써, 판단 기준을 발견하는 비지도 학습(unsupervised learning)을 통해 신경망 모델을 학습시킬 수 있다. 또한, 모델 학습부(24)는 학습에 따른 상황 판단의 결과가 올바른지에 대한 피드백을 이용하여 강화 학습(reinforcement learning)을 통하여, 신경망 모델을 학습시킬 수 있다. 또한, 모델 학습부(24)는 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient decent)을 포함하는 학습 알고리즘을 이용하여 신경망 모델을 학습시킬 수 있다.
신경망 모델이 학습되면, 모델 학습부(24)는 학습된 신경망 모델을 메모리에 저장할 수 있다. 모델 학습부(24)는 학습된 신경망 모델을 AI 장치(20)와 유선 또는 무선 네트워크로 연결된 서버의 메모리에 저장할 수도 있다.
데이터 학습부(22)는 인식 모델의 분석 결과를 향상시키거나, 인식 모델의 생성에 필요한 리소스 또는 시간을 절약하기 위해 학습 데이터 전처리부(미도시) 및 학습 데이터 선택부(미도시)를 더 포함할 수도 있다.
학습 데이터 전처리부는 획득된 데이터가 상황 판단을 위한 학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 예를 들어, 학습 데이터 전처리부는, 모델 학습부(24)가 이미지 인식을 위한 학습을 위하여 획득된 학습 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
또한, 학습 데이터 선택부는, 학습 데이터 획득부(23)에서 획득된 학습 데이터 또는 전처리부에서 전처리된 학습 데이터 중 학습에 필요한 데이터를 선택할 수 있다. 선택된 학습 데이터는 모델 학습부(24)에 제공될 수 있다. 예를 들어, 학습 데이터 선택부는, 차량의 카메라를 통해 획득한 영상 중 특정 영역을 검출함으로써, 특정 영역에 포함된 객체에 대한 데이터만을 학습 데이터로 선택할 수 있다.
또한, 데이터 학습부(22)는 신경망 모델의 분석 결과를 향상시키기 위하여 모델 평가부(미도시)를 더 포함할 수도 있다.
모델 평가부는, 신경망 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 분석 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(22)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 인식 모델을 평가하기 위한 기 정의된 데이터일 수 있다. 일 예로, 모델 평가부는 평가 데이터에 대한 학습된 인식 모델의 분석 결과 중, 분석 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정되 임계치를 초과하는 경우, 소정 기준을 만족하지 못한 것으로 평가할 수 있다.
통신부(27)는 AI 프로세서(21)에 의한 AI 프로세싱 결과를 외부 전자 기기로 전송할 수 있다.
여기서 외부 전자 기기는 자율 주행 차량으로 정의될 수 있다. 또한, 상기 AI 장치(20)는 상기 자율 주행 모듈 차량과 통신하는 다른 차량 또는 5G 네트워크로 정의될 수 있다. 한편, 상기 AI 장치(20)는 차량 내에 구비된 자율주행 모듈에 기능적으로 임베딩되어 구현될 수도 있다. 또한, 상기 5G 네트워크는 자율 주행 관련 제어를 수행하는 서버 또는 모듈을 포함할 수 있다.
한편, 도 4에 도시된 AI 장치(20)는 AI 프로세서(21)와 메모리(25), 통신부(27) 등으로 기능적으로 구분하여 설명하였지만, 전술한 구성요소들이 하나의 모듈로 통합되어 AI 모듈로 호칭될 수도 있음을 밝혀둔다.
도 5는 본 발명의 실시 예에 따른 어시스턴트 시스템을 나타내는 도면이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 어시스턴트 시스템(10)은 다양한 형태의 사용자 입력부(210)를 통해서 입력되는 사용자 명령을 통합된 규칙에 기초하여 명령어를 생성하고, 생성된 명령어를 어시스턴트 시스템(10) 자체내에서 처리하거나, 적어도 하나 이상의 어시스턴트들(Ast1~AstN)에 전달할 수 있다. 또한, 어시스턴트 시스템(10)은 생성된 명령어가 복합 명령어인 것에 기초하여, 명령어를 둘 이상의 어시스턴트들(Ast1~AstN)에 분배할 수 있다.
또한, 본 발명의 어시스턴트 시스템(10)은 사용자 입력부(210)를 통해서 제공받는 사용자 입력에 따라 특정 서비스를 수행할 수 있다. 예를 들어, 어시스턴트 시스템(10)은 차량에 탑재되어, 탑승자의 음성인식에 따라 차량 내부에 장착된 네비게이션 또는 오디오 장치 등을 제어할 수 있다. 어시스턴트들(Ast1~AstN)은 본 발명에 따른 어시스턴트 시스템(10)과 연결되어, 음성인식 기반으로 특정 서비스를 수행할 수 있다.
본 발명의 실시 예에 따른 어시스턴트 시스템(10)은 사용자 입력부(210) 및 프로세서(100)를 포함한다
사용자 입력부(210)는 마이크(211), 터치 패널(212) 및 카메라(213) 등을 포함할 수 있다. 마이크(211)는 음성신호를 수신하고, 터치 패널(212)은 디스플레이 패널과 결합되어 디스플레이 패널 상의 터치 입력을 감지할 수 있다. 카메라(213)는 2D 카메라 또는 3D 카메라를 포함한다.
프로세서(100)는 입력 인식부(110), 명령어 생성부(120), 명령어 분배부(130)를 포함한다.
입력 인식부(110)는 사용자 입력부(210)로부터의 사용자 입력을 바탕으로 특정 데이터를 생성한다. 입력 인식부(110)는 음성 인식부(111), 터치 인식부(112), 영상 인식부(113)를 포함할 수 있다. 음성 인식부(111)는 마이크(211)를 통해서 수신되는 음성신호를 텍스트로 변환한다. 터치 인식부(112)는 터치 패널(212) 상에서 터치 동작을 감지하고, 터치 영역을 판단한다. 영상 인식부(113)는 카메라(213)가 촬영한 영상을 바탕으로 정해진 해상도에 따른 영상데이터를 생성하고, 영상데이터에서 검출된 객체를 바탕으로 사용자의 모션을 확인할 수 있다.
명령어 생성부(120)는 입력 인식부(110)가 생성한 특정 데이터를 바탕으로 어시스턴트에 제공할 명령어를 생성한다. 명령어 생성부(120)는 사용자 입력부(210)를 통해서 수신된 명령을 바탕으로 명령어를 생성한다. 명령어는 어시스턴트들(Ast1~AstN)이 특정 기능을 수행하도록 제어하기 위한 것으로, 미리 설정된 규칙에 기초하여 생성된다. 미리 설정된 규칙은 서로 다른 사용자 입력부를 통해서 획득되는 정보를 통합하기 위한 것으로, 프로그래밍 언어에 해당할 수 있다.
명령어 분배부(130)는 명령어의 특성에 따라, 명령어가 전달될 어시스턴트를 결정하고, 해당 어시스턴트에 명령어를 전달한다.
도 6은 본 발명의 실시 예에 따른 음성 어시스턴트의 사용자 명령 처리 방법을 나타내는 순서도이다.
도 6을 참조하면, 음성 어시스턴트의 사용자 명령 처리방법을 위한 제1 단계(S610)에서, 입력 인식부(110)는 사용자 입력부(210)를 통해서 수신된 사용자 입력을 처리한다.
제2 단계(S620)에서, 명령어 생성부(120)는 미리 설정된 규칙에 따라, 사용자 명령을 바탕으로 명령어를 생성한다.
미리 설정된 규칙은 서로 다른 형태의 사용자 입력부(210)로부터의 사용자 명령을 통일된 형태로 표현하기 위한 것이다. 따라서, 명령어 생성부(120)는 다양한 입력 형태의 사용자 명령을 통일된 형태의 명령어로 변환할 수 있다.
명령어 생성부(120)는 음성신호를 포함하는 사용자 입력으로부터 사용자 의도 및 속성 데이터를 추출한다. 사용자 의도는 명령 처리가 되는 대상 및 대상의 처리 방법을 포함할 수 있다. 또한, 사용자 의도는 제어 대상이 되는 디바이스를 포함할 수 있다.
속성 데이터는 카테고리, 부가 속성 등을 포함할 수 있다.
그리고, 명령어 생성부(120)는 사용자 의도 및 속성 데이터의 키워드를 결합함으로써 명령어를 생성할 수 있다. 예를 들어, 명령어 생성부(120)는 {"사용자 의도"; "속성 데이터"}의 형태로 명령어를 생성할 수 있다.
도 7은 사용자 입력 및 명령어 생성의 일례를 설명하는 도면이다. 도 7은 음성 어시스턴트 시스템이 차량 내부에 구현된 실시 예를 도시하고 있다.
도 7을 참조하면, 입력 인식부(110)는 하나의 사용자 입력부(210) 또는 서로 다른 형태의 사용자 입력부(210)로부터 사용자 명령을 동시에 수신할 수 있다. 예를 들어, 사용자가 “find korean restaurant”이라고 음성 명령을 할 경우, 음성 인식부(111)는 마이크(211)로부터의 수신되는 음성신호를 인식할 수 있다.
또는, 사용자가 "go there"라고 음성 명령을 부여하면서, 터치 패널로 구현된 네비게이션(212)의 맵에서 특정 영역을 터치한다면, 음성 인식부(111)는 "go there"라는 음성신호를 인식하면서, 이와 동시에 네비게이션(212)의 맵에서 터치가 감지된 영역을 좌표로 획득할 수 있다.
음성 인식부(111)가 수신한 사용자 명령이 “find korean restaurant”인 경우, 명령어 생성부(120)는 레스토랑 검색을 위한 “find.restaurant"을 사용자 의도로 생성하고, 속성 데이터를 "category:korean"으로 생성할 수 있다.
결과적으로, 명령어 생성부(120)는 “find korean restaurant”이라는 음성신호를 바탕으로 {“find.restaurant”; "category:korean”} 이라는 명령어를 생성할 수 있다.
또는, 음성 인식부(111)가 수신한 사용자 명령이 "go there"인 경우, 명령어 생성부(120)는 네비게이션의 목적지 설정을 위한 "navi.go"를 사용자 의도로 추출하고, 터치 패널에 해당하는 네비게이션(212)에 감지된 지점을 속성 데이터로 추출할 수 있다. 이에 따라 명령어 생성부(120)는 "go there"라는 음성신호와 함께, 터치 인식부(112)가 “longitude:124.75”,”latitude:28.54”의 맵 좌표를 획득한 것에 기초하여, {“navi.go”:”potision:{“longitude:124.75”,”latitude:28.54”}”}라는 명령어를 생성할 수 있다.
제3 단계(S630) 및 제4 단계(S640)에서, 명령어 분할부(131)는 생성된 명령어가 복합 명령어인지를 판단하고, 복합 명령어인 것을 확인한 것에 기초하여 명령어를 부분 명령어들로 분할한다. 복합 명령어는 동시에 입력된 사용자 입력을 바탕으로 생성된 명령어가 두 개 이상의 이벤트를 유도하는 것을 지칭하며, 두 개 이상의 사용자 의도 및 두 개 이상의 속성 데이터를 포함한다. 부분 명령어는 하나의 이벤트를 유도하는 것으로, 하나의 사용자 의도 및 하나의 속성 데이터가 결합된 형태를 갖는다.
제5 단계(S650)에서, 명령어 분배부(130)는 부분 명령어들 각각의 도메인을 판단한다. 도메인은 부문 명령어들의 사용자 의도에 따라 결정되며, 부분 명령어들이 요청하는 이벤트 분야를 지칭한다. 예를 들어, 부분 명령어가 특정 목적지를 검색하거나 네비게이션의 목적지를 설정하는 것이라면, 도메인은 "Map" 또는 "destination"으로 판단될 수 있다. 또는 부분 명령어가 날씨를 요청하는 것이라면, 도메인은 "weather"로 판단될 수 있다.
제6 단계(S660)에서, 명령어 분배부(130)는 부분 명령어들의 도메인을 바탕으로, 명령어를 어시스턴트에 분배한다. 즉, 명령어 분배부(130)는 부분 명령어들의 도메인과 매칭되는 어시스턴트에 부분 명령어를 분배한다.
도 8은 본 발명의 실시 예에 따른 명령문 생성방법을 나타내는 순서도이다.
도 8을 참조하면, 명령문 생성을 위한 제1 단계(S810)에서, 명령어 생성부(120)는 명령어가 단일 사용자 입력부(210)로부터의 사용자 입력을 바탕으로 명령어 생성이 가능한지를 판단한다. 특히, 명령어 생성부(120)는 음성 인식부(111)가 인식한 음성신호를 바탕으로 명령어 생성이 가능한지를 판단한다. 이는 다른 형태의 사용자 입력부(210)는 사용자 입력 자체가 특정 이벤트를 유도할 수 있는 형태로 미리 정형화되어 있기 때문이다.
음성신호를 바탕으로 명령어 생성이 가능한지를 판단하기 위해서, 명령어 생성부(120)는 음성신호를 텍스트로 변환할 수 있다. 예를 들어, 명령어 생성부(120)는 “find korean restaurant”이라는 음성신호, 또는 "go there"라는 음성신호를 텍스트로 변환할 수 있다.
그리고, 명령어 생성부(120)는 텍스트에서 사용자 의도 및 속성 데이터를 추출한다. 예를 들어, 음성 인식부(111)는 음성신호를 바탕으로"go there"라는 텍스트를 추출할 수 있다. 그리고, 명령어 생성부(120)는 "go"라는 텍스트를 통해서 사용자 의도를 결정할 수 있지만, "there"라는 부사는 속성 데이터를 추출하기에 불가능하다고 판단할 수 있다.
제2 단계(S820)에서, 명령어 생성부(120)는 한 가지 형태의 입력 인식부(110)가 인식한 사용자 입력으로 명령어를 생성하는 것이 불가능한 것에 기초하여, 다른 사용자 인식부를 검색한다. 명령어 생성부(120)는 텍스트에서 사용자 의도 또는 속성 데이터가 누락되거나 불완전한 것에 기초하여, 다른 형태의 사용자 인식부(110)를 검색할 수 있다.
예를 들어, 명령어 생성부(120)는 "go there"라는 텍스트에서 속성 데이터가 누락된 누락 정보를 확인한 것에 기초하여, 터치 인식부(112)나 영상 인식부(113)가 수신한 사용자 입력이 있는지를 확인할 수 있다.
제3 단계(S830)에서 명령어 생성부(120)는 음성 신호와 함께 수신한 다른 형태의 사용자 입력 간에 연관성이 있는지를 확인한다.
예를 들어, 명령어 생성부(120)는 "go there"라는 음성신호와 더불어, 터치 패널로 구현된 네비게이션 맵에 터치 인식을 감지할 수 있다. 명령어 생성부(120)는 터치 인식부(112)가 인식한 맵 좌표와 "go there"라는 텍스트에서 "there"라는 위치와 관련된 부사가 연관성이 있다고 판단한 것에 기초하여, 터치 인식부(112)가 생성한 맵 좌표를 "go there"의 속성 데이터로 설정할 수 있다.
제4 단계(S840)에서, 명령어 생성부(120)는 텍스트의 누락 정보와 연관된 다른 형태의 사용자 입력을 바탕으로 명령어를 생성할 수 있다.
도 9는 본 발명의 실시 예에 따른 어시스턴트 중재 방법을 설명하는 순서도이다.
제1 단계(S910)에서, 도메인 분류부(132)는 부분 명령어들 각각의 도메인을 판단한다. 제1 단계(S910)는 도 6에 도시된 S650의 절차에 해당한다. 즉, 명령어 분배부는 명령어들의 도메인을 판단한 이후에, 추가적으로 다음과 같은 어시스턴트 중재를 수행할 수 있다.
제2 단계(S920)에서, 어시스턴트 중재부(133)는 도메인과 매칭되는 어시스턴트를 검색한다. 다음의 [표 1]은 도메인과 매칭되는 어시스턴트들 및 이에 대한 가중치를 나타내는 표이다.
도메인 Ast 1 Ast 2 Ast 3
Destinaion 0.9 0 0
Map 0.8 0 0
?? ?? ?? ??
Weather 0 0.9 0.8
News 0 0.5 0.7
Stock 0 0.7 0.6
가중치는 0 또는 0을 초과하는 숫자로 구분될 수 있다. 특정 어시스턴트에서 가중치가 0으로 표시된 것은 해당 어시스턴트는 해당 도메인을 취급하지 않는 것을 지칭한다. 예를 들어, 제2 및 제3 어시스턴트들(Ast2, Ast3)은 "Destination" 및 "Map"과 관련된 이벤트에 응답하지 않는다는 것을 지칭한다. 즉, 도메인과 메칭되는 어시스턴트를 검색하는 단계는 해당 도메인에 대해서 0을 초과하는 크기의 가중치를 갖는 어시스턴트를 검색하는 것을 지칭한다.제3 단계(S930)에서, 어시스턴트 중재부(133)는 결정된 도메인을 중재한다.
"Weather", "News" 및 "Stock"등의 도메인은 제2 및 제3 어시스턴트들(Ast2, Ast3)과 매칭된다. 이와 같이 하나의 도메인에 복수의 어시스턴트들이 매칭될 경우, 어시스턴트 중재부(133)는 어시스턴트를 중재하여 하나의 어시스턴트를 결정한다.
이를 위해서 어시스턴트 중재부(133)는 가중치의 크기를 비교하고, 가중치의 크기가 큰 어시스턴트를 선택할 수 있다.
가중치의 크기는 신뢰도 또는 성능에 비례한다. 예를 들어, "News"에 대해서 0.5의 가중치를 갖는 제2 어시스턴트(Ast2) 보다 0.7의 가중치를 갖는 제3 어시스턴트(Ast3)의 신뢰도 또는 성능이 우월하다는 것을 나타낸다. 따라서, 어시스턴트 중재부(133)는 "News"의 도메인에 대해서 제3 어시스턴트(Ast3)를 매칭할 수 있다.
마찬가지로, 어시스턴트 중재부(133)는 "Weather"의 도메인에 대해서 제2 어시스턴트(Ast2)를 매칭할 수 있다.
만약, 복합 명령어가 제1 및 제2 부분 명령어를 포함하고, 제1 부분 명령어의 도메인이 "Weather"이고, 제2 부분 명령어의 도메인이 "News" 일 경우, 앞서 설명한 바와 같이, 복합 명령어는 서로 다른 어시스턴트에서 처리될 수 있다. 또는 가중치의 합을 고려하여, 제1 및 제2 부분 명령어들은 하나의 어시스턴트와 매칭될 수 있다. 예를 들어, "Weather"와 "News"에 대한 도메인에 대한 가중치의 합은 제3 어시스턴트(Ast3)가 더 크기 때문에 제1 및 제2 부분 명령어들의 도메인은 모두 제3 어시스턴트(Ast3)와 매칭될 수 있다.
또한, 어시스턴트 중재부(133)는 어시스턴트의 이용 빈도를 고려하여 도메인과 어시스턴트를 매칭할 수 있다. 다음의 [표 2]는 도메인에 따른 어시스턴트의 이용 빈도를 나타내는 표이다.
도메인 Ast 1 Ast 2 Ast 3
Destinaion 11 0 0
Map 11 0 0
?? ?? ?? ??
Weather 0 15 16
News 0 20 9
Stock 0 10 6
"Weather", "News" 및 "Stock"등의 도메인은 제2 및 제3 어시스턴트들(Ast3)과 매칭된다. 이와 같이 하나의 도메인에 복수의 어시스턴트들이 매칭될 경우, 어시스턴트 중재부(133)는 어시스턴트를 중재하여 하나의 어시스턴트를 결정한다. 이를 위해서 어시스턴트 중재부(133)는 이용 빈도가 높은 어시스턴트를 선택할 수 있다. 예를 들어, 어시스턴트 중재부(133)는 "News"의 도메인에 대해서 제2 어시스턴트(Ast2)를 매칭할 수 있다. 마찬가지로, 어시스턴트 중재부(133)는 "Weather"의 도메인에 대해서 제3 어시스턴트(Ast3)를 매칭할 수 있다.
또는 이용 빈도의 합을 고려하여, 제1 및 제2 부분 명령어들은 하나의 어시스턴트와 매칭될 수 있다. 예를 들어, "Weather"와 "News"에 대한 도메인에 대한 이용 빈도의 합은 제2 어시스턴트(Ast2)가 더 크기 때문에 제1 및 제2 부분 명령어들의 도메인은 모두 제2 어시스턴트(Ast2)와 매칭될 수 있다.
제4 단계(S940)에서, 명령어 분배부(130)는 어시스턴트 중재부(133)가 결정한 어시스턴트에 명령어를 전달한다.
도 10은 명령어 재가공의 절차를 설명하는 순서도이다. 도 10은 도 9의 제3 단계(S930)에서 부분 명령어들에 대한 어시스턴트를 결정한 이후의 후속 절차에 해당한다.
도 10을 참조하면, 명령어 재가공을 위한 제1 단계(S1010) 및 제2 단계(S1020)에서, 명령어 분배부(130)는 부분 명령어가 전달될 어시스턴트의 입력 수단을 확인한 것에 기초하여, 명령어 재가공이 필요한지를 결정한다.
예를 들어, 어시스턴트가 프로세서(100)와 함께 내장된(embedded) 것이라면, 프로세서(100)에서 생성한 부분 명령어가 그대로 전달될 수 있다. 또는, 어시스턴트가 음성신호를 기반으로 동작하는 외부 어시스턴트일 경우, 음성 신호로 전달되어야 한다. 이와 같이, 어시스턴트의 입력 수단이 명령어와 동일한 텍스트 기반인지 또는 그 이외의 것인지에 따라 명령어 재가공 여부가 결정될 수 있다.
제3 단계(S1030)에서, 부분 명령어가 전달될 어시스턴트의 입력 수단이 음성신호인 것에 기초하여, 명령어 분배부(130)는 부분 명령어들을 음성신호로 변환한다. 명령어 분배부(130)는 문자음성 변환기술(Text to Speech; TTS)을 이용하여 텍스트 기반의 명령어들을 음성신호로 변환할 수 있다.
도 11은 본 발명의 실시 예에 따른 복합 명령어의 처리 순서를 설명하는 도면이다. 도 11에 도시된 절차들은 명령어 분배부에서 수행될 수 있다.
도 11을 참조하면, 복합 명령어를 확인한 것에 기초하여, 제1 단계(S1110)에서 부분 명령어들 내에서 종속성이 존재하는지를 판단한다. 명령어 분배부(130)는 부분 명령어들의 이벤트 처리를 위한 시간적 순서가 필요한 것을 기초하여, 부분 명령어들 간에 종속성이 있다고 판단할 수 있다. 예를 들어, “find nearest Korean restaurant and call there"라는 사용자 입력을 처리하기 위해서, 어시스턴트는 "find nearest Korean restaurant"에 대한 이벤트를 처리한 이후에, "call there"에 대한 이벤트를 처리할 수 있다. 이와 같이 명령어 분배부(130)는 부분 명령어에서 다른 부분 명령어의 일부를 지칭하는 지시어가 있을 경우, 해당 복합 명령어의 부분 명령어들은 종속성이 있다고 판단할 수 있다.
또는, “find nearest Korean restaurant and set fan speed to 4”라는 사용자 입력은 “find nearest Korean restaurant"과 "set fan speed to 4”를 수행하기 위한 부분 명령어들로 분할될 수 있고, 각각의 부분 명령어들은 서로 독립적으로 처리될 수 있다. 이와 같이 부분 명령어들을 처리하는 과정에서 시간적 순서가 필요하지 않은 경우, 명령어 분배부(130)는 각 부분 명령어들이 종속성이지 않다고 판단한다.
제2 단계(S1120)에서, 명령어 분배부(130)는 부분 명령어들 간의 종속성이 존재하는 것에 기초하여, 복합 명령어들을 순차 처리한다.
제3 단계(S1130)에서, 명령어 분배부(130)는 부분 명령어들 간의 종속성이 존재하지 않는 것에 기초하여, 부분 명령어들이 처리되는 어시스턴트의 개수를 확인한다.
제4 단계(S1140)에서, 명령어 분배부(130)는 부분 명령어들이 하나의 어시스턴트에서 처리되는 것에 기초하여, 부분 명령어들이 병렬 처리가 가능한지를 판단한다. 그리고, 명령어 분배부(130)는 부분 명령어들이 병렬 처리가 불가능한 것에 기초하여, 부분 명령어들을 순차 처리한다(S1020). 예를 들어, 사용자 입력이 “call james and call sarah”라는 음성신호일 경우, 전화 걸기를 수행하는 하나의 음성 어시스턴트는 2 명에게 전화를 걸 수 없는 제약이 있다. 이와 같이, 병렬 처리 지원이 안 되거나, 사용자 의도의 특수성에 기인하여 병렬 처리가 안 되는 경우, 명령어 분배부(130)는 각각의 부분 명령어들을 순차 처리한다.
제5 단계(S1150)에서, 명령어 분배부(130)는 부분 명령어들이 둘 이상의 어시스턴트에서 처리되거나, 하나의 어시스턴트에서 처리되되 병렬 처리 가능한 것에 기초하여, 추가 명령어가 필요한지를 확인한다. 추가 명령어는 1차적으로 입력된 사용자 입력이 불완전하여 특정 이벤트를 생성할 수 없는 형태를 의미한다. 즉, 추가 명령어는 명령어에서 사용자 의도 또는 속성 데이터가 누락된 것을 지칭한다. 예를 들어, “set fan speed”라는 사용자 입력은 팬의 스피드를 조절하기 위한 사용자 의도는 포함하지만, 어느 정도의 스피드를 요구하는 지에 대한 속성 데이터가 누락되어 있다. 다른 사용자 입력부(210)를 통해서도 속성 데이터를 검색할 수 없을 경우, 명령어 분배부(130)는 사용자에게 팬의 스피드에 대한 속성 데이터를 입력할 것을 요청하여야 한다.
제6 단계(S1160)에서, 명령어 분배부(130)는 추가 명령어가 필요하지 않은 것에 기초하여, 부분 명령어들을 병렬 처리한다.
제7 단계(S1170)에서, 명령어 분배부(130)는 추가 명령어가 필요한 것에 기초하여, 추가 명령어의 개수를 확인한다.
명령어 분배부(130)는 추가 명령어가 둘 이상 필요한 것에 기초하여, 상기 부분 명령어들을 순차 처리한다(S1020).
또한, 명령어 분배부(130)는 추가 명령어가 하나만 필요한 것에 기초하여, 부분 명령어들을 병렬 처리한다(S1060).
도 12는 본 발명의 실시 예에 따른 인공지능 학습을 위한 어시스턴트 결정 모델을 설명하는 도면이다.
도 12를 참조하면, 프로세서(100)는 어시스턴트 결정 모델을 바탕으로 사용자 입력으로부터 명령어를 생성하고 어시스턴트를 결정할 수 있다.
어시스턴트 결정 모델은 입력값에 따른 특정 출력값을 도출하도록 인공지능 학습을 진행한다. 입력값은 사용자 입력, 어시스턴트의 도메인에 해당한다. 출력값은 명령어, 어시트턴트 정보 등을 포함할 수 있다. 명령어는 텍스트 기반의 명령어, 또는 명령어를 다시 음성신호로 변환한 음성 명령어를 포함할 수 있다. 어시스턴트 정보는 명령어가 전달될 어시스턴트의 ID에 해당할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
상술한 실시 예에 설명된 특징, 구조, 효과 등은 본 발명의 적어도 하나의 실시 예에 포함되며, 반드시 하나의 실시 예에만 한정되는 것은 아니다. 나아가, 각 실시 예에서 예시된 특징, 구조, 효과 등은 실시 예들이 속하는 분야의 통상의 지식을 가지는 자에 의하여 다른 실시 예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
또한, 이상에서 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 사용자 입력을 복수의 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 전달하기 위한 사용자 입력 처리방법에 있어서,
    음성 신호를 포함하는 사용자 입력을 미리 설정한 규칙을 바탕으로 변환함으로써 명령어를 생성하는 단계;
    생성된 상기 명령어가 두 개 이상의 이벤트를 요청하는 복합 명령어인 것에 기초하여, 상기 복합 명령어를 부분 명령어들로 분할하는 단계; 및
    상기 부분 명령어들 각각에 대한 도메인을 판단하고, 상기 도메인에 기초하여 상기 부분 명령어들을 다수의 음성 어시스턴트들 중에서 적어도 어느 하나의 어시스턴트에 분배하는 단계;
    를 포함하는 음성 어시스턴트의 사용자 입력 처리방법.
  2. 제 1 항에 있어서,
    상기 명령어를 생성하는 단계는
    상기 사용자 입력으로부터 사용자 의도 및 속성 데이터를 추출하는 단계; 및
    상기 사용자 의도 및 상기 속성 데이터를 결합하는 단계;를 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  3. 제 2 항에 있어서,
    상기 사용자 의도를 추출하는 단계는
    상기 사용자 입력으로부터 명령 처리가 되는 대상 및 상기 대상의 처리 방법 중에서 적어도 어느 하나를 추출하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  4. 제 3 항에 있어서,
    상기 속성 데이터를 추출하는 단계는
    상기 대상의 카테고리 및 부가 속성 중에서 적어도 어느 하나를 추출하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  5. 제 2 항에 있어서,
    상기 명령어를 생성하는 단계는
    상기 음성신호를 텍스트로 변환하는 단계;
    상기 텍스트에서 상기 사용자 의도 또는 상기 속성 데이터 중에서 누락 정보가 있는지를 확인하고, 상기 누락 정보를 확인한 것에 기초하여, 상기 음성신호 이외의 다른 형태의 사용자 입력을 검색하는 단계; 및
    상기 다른 형태의 사용자 입력 중에서 상기 누락 정보와 연관된 사용자 입력을 바탕으로 상기 명령어를 완성하는 단계;를 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  6. 제 2 항에 있어서,
    상기 복합 명령어를 부분 명령어로 분할하는 단계는
    서로 연관되는 사용자 의도 및 속성 데이터들끼리 매칭하여 상기 부분 명령어를 생성하는 단계를 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  7. 제 2 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 부분 명령어들의 상기 사용자 의도에 기초하여 상기 도메인을 분류하고, 상기 어시스턴트들 중에서 상기 도메인과 매칭되는 어시스턴트를 검색하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  8. 제 7 항에 있어서,
    상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는
    상기 도메인과 매칭되는 상기 어시스턴트가 복수인 것에 기초하여, 복수의 상기 어시스턴트들 중에서, 상기 도메인에 대한 신뢰도 또는 성능에 기초하여 부여된 가중치가 가장 높은 어시스턴트를 검색하는 단계를 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  9. 제 8 항에 있어서,
    상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는
    상기 부분 명령어들 각각의 도메인에 대한 가중치를 합산하는 단계;
    상기 가중치의 합산이 가장 큰 어시스턴트를 상기 부분 명령어들의 도메인의 공통의 어시스턴트로 결정하는 단계를 더 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  10. 제 7 항에 있어서,
    상기 도메인과 매칭되는 어시스턴트를 검색하는 단계는
    이용 빈도가 가장 높은 어시스턴트를 검색하는 단계를 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  11. 제 1 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 부분 명령어들 각각은 시계열적으로 처리되어야 하는 종속성이 존재하는 것에 기초하여, 상기 복합 명령어들을 순차 처리하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  12. 제 11 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 부분 명령어들 중에서 다른 부분 명령어의 사용자 의도 또는 속성 데이터를 지시하는 지시어의 존재에 기초하여, 상기 종속성 유무를 판단하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  13. 제 11 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 부분 명령어들 간의 종속성이 존재하지 않는 것에 기초하여, 상기 부분 명령어들이 처리되는 어시스턴트의 개수를 확인하는 단계; 및
    상기 부분 명령어들이 하나의 어시스턴트에서 처리되며, 상기 부분 명령어들이 병렬 처리가 불가능한 것에 기초하여, 상기 부분 명령어들을 순차 처리하는 단계를 더 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  14. 제 13 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 부분 명령어들이 둘 이상의 어시스턴트에서 처리되거나, 하나의 어시스턴트에서 처리되되 병렬 처리 가능한 것에 기초하여, 추가 명령어가 필요한지를 확인하는 단계; 및
    상기 추가 명령어가 필요하지 않은 것에 기초하여, 상기 부분 명령어들을 병렬 처리하는 단계를 더 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  15. 제 14 항에 있어서,
    상기 부분 명령어들을 분배하는 단계는
    상기 추가 명령어가 필요한지를 확인하는 단계는 상기 추가 명령어의 개수를 확인하는 단계를 더 포함하고,
    상기 추가 명령어가 둘 이상 필요한 것에 기초하여, 상기 부분 명령어들을 순차 처리하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  16. 제 15 항에 있어서,
    상기 추가 명령어가 하나만 필요한 것에 기초하여, 상기 부분 명령어들을 병렬 처리하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
  17. 제 1 항에 있어서,
    상기 부분 명령어들을 전달하는 단계는
    상기 부분 명령어들이 전달되는 상기 어시스턴트의 입력 수단을 확인하는 단계; 및
    상기 어시스턴트의 입력 수단이 음성신호인 것에 기초하여, 상기 부분 명령어들을 음성 명령어로 변환하는 단계;를 더 포함하는 것을 특징으로 하는 음성 어시스턴트의 사용자 입력 처리방법.
KR1020190147455A 2019-11-18 2019-11-18 음성 어시스턴트의 사용자 입력 처리방법 KR20210059978A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190147455A KR20210059978A (ko) 2019-11-18 2019-11-18 음성 어시스턴트의 사용자 입력 처리방법
US16/910,672 US11664022B2 (en) 2019-11-18 2020-06-24 Method for processing user input of voice assistant

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190147455A KR20210059978A (ko) 2019-11-18 2019-11-18 음성 어시스턴트의 사용자 입력 처리방법

Publications (1)

Publication Number Publication Date
KR20210059978A true KR20210059978A (ko) 2021-05-26

Family

ID=75908058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190147455A KR20210059978A (ko) 2019-11-18 2019-11-18 음성 어시스턴트의 사용자 입력 처리방법

Country Status (2)

Country Link
US (1) US11664022B2 (ko)
KR (1) KR20210059978A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11262206B2 (en) * 2020-04-10 2022-03-01 GM Cruise Holdings, LLC Landmark based routing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10347240B2 (en) * 2015-02-26 2019-07-09 Nantmobile, Llc Kernel-based verbal phrase splitting devices and methods
US10552204B2 (en) * 2017-07-07 2020-02-04 Google Llc Invoking an automated assistant to perform multiple tasks through an individual command
KR102374910B1 (ko) * 2017-08-22 2022-03-16 삼성전자주식회사 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
JP2019109567A (ja) * 2017-12-15 2019-07-04 オンキヨー株式会社 電子機器、及び、電子機器の制御プログラム
US11631017B2 (en) * 2018-01-09 2023-04-18 Microsoft Technology Licensing, Llc Federated intelligent assistance
CN112236765A (zh) * 2018-05-07 2021-01-15 谷歌有限责任公司 基于生成的子查询的集合确定复合查询的响应内容
US11929067B2 (en) * 2018-05-25 2024-03-12 Carrier Corporation Controlling home automation devices through security panel using voice assistant
US20190370413A1 (en) * 2018-06-03 2019-12-05 Apple Inc. Accessing multiple domains across multiple devices for candidate responses
US10224035B1 (en) * 2018-09-03 2019-03-05 Primo Llc Voice search assistant
KR20200044175A (ko) * 2018-10-05 2020-04-29 삼성전자주식회사 전자 장치 및 그의 비서 서비스 제공 방법
US11978452B2 (en) * 2019-04-26 2024-05-07 Oracle International Corportion Handling explicit invocation of chatbots
US11657797B2 (en) * 2019-04-26 2023-05-23 Oracle International Corporation Routing for chatbots
US11164585B2 (en) * 2019-06-07 2021-11-02 Mitsubishi Electric Automotive America, Inc. Systems and methods for virtual assistant routing
US11372926B2 (en) * 2019-07-22 2022-06-28 Microsoft Technology Licensing, Llc Asynchronous context communication for speech services
US20210090575A1 (en) * 2019-09-24 2021-03-25 Amazon Technologies, Inc. Multi-assistant natural language input processing

Also Published As

Publication number Publication date
US11664022B2 (en) 2023-05-30
US20210151049A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US11189268B2 (en) Method and apparatus for selecting voice-enabled device and intelligent computing device for controlling the same
KR20190103090A (ko) 연합학습(Federated learning)을 통한 단말의 POI 데이터를 생성하는 모델의 학습방법 및 이를 위한 장치
KR20190103088A (ko) 연합학습을 통한 단말의 명함을 인식하는 방법 및 이를 위한 장치
KR20190096872A (ko) 연합학습(Federated learning)을 통한 필기체 인식방법 및 이를 위한 장치
US11158327B2 (en) Method for separating speech based on artificial intelligence in vehicle and device of the same
US20210210102A1 (en) Data processing method based on artificial intelligence
US11240629B2 (en) Artificial device and method for controlling the same
US11443757B2 (en) Artificial sound source separation method and device of thereof
KR102649027B1 (ko) 차량 제어 방법 및 차량을 제어하는 지능형 컴퓨팅 디바이스
KR20210048895A (ko) Gan 기반 인공 신경망 모델의 트레이닝
KR20190106950A (ko) 지능형 디바이스 및 그 제어 방법
US20200090192A1 (en) Artificial device and method for controlling the same
US11057750B2 (en) Intelligent device controlling method, mobile terminal and intelligent computing device
KR20190106939A (ko) 증강현실기기 및 이의 제스쳐 인식 캘리브레이션 방법
US11562031B2 (en) User profiling method using event occurrence time
US20200104578A1 (en) User profiling method using captured image
US20210158773A1 (en) Controlling of device based on user recognition
US20200027439A1 (en) Intelligent text to speech providing method and intelligent computing device for providing tts
US20210405758A1 (en) Method of controlling augmented reality electronic device
KR20210059978A (ko) 음성 어시스턴트의 사용자 입력 처리방법
US11423881B2 (en) Method and apparatus for updating real-time voice recognition model using moving agent
KR102321806B1 (ko) 음성신호 및 텍스트가 매칭된 데이터베이스의 구축방법 및 이를 위한 시스템, 이를 기록한 컴퓨터 판독 가능한 기록매체
KR20210077901A (ko) 영상획득장치 및 방법
KR20210050901A (ko) 음성 인식 방법 및 음성 인식 장치
US20230182749A1 (en) Method of monitoring occupant behavior by vehicle