KR20200013152A - 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법 - Google Patents

이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법 Download PDF

Info

Publication number
KR20200013152A
KR20200013152A KR1020180083611A KR20180083611A KR20200013152A KR 20200013152 A KR20200013152 A KR 20200013152A KR 1020180083611 A KR1020180083611 A KR 1020180083611A KR 20180083611 A KR20180083611 A KR 20180083611A KR 20200013152 A KR20200013152 A KR 20200013152A
Authority
KR
South Korea
Prior art keywords
user
electronic device
information
module
present disclosure
Prior art date
Application number
KR1020180083611A
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 KR1020180083611A priority Critical patent/KR20200013152A/ko
Priority to EP19838080.0A priority patent/EP3782040A4/en
Priority to PCT/KR2019/008712 priority patent/WO2020017849A1/en
Priority to CN201980047366.5A priority patent/CN112513833A/zh
Priority to US16/514,062 priority patent/US11367439B2/en
Publication of KR20200013152A publication Critical patent/KR20200013152A/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/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/08Speech classification or search
    • G10L2015/088Word spotting
    • 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/221Announcement of recognition results
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 다양한 실시 예들은, 음성 기반 인텔리전트 어시스턴스 서비스를 제공하는 전자 장치에 관한 것으로, 상기 전자 장치는 전자 장치는, 하우징, 상기 하우징 내부에 위치하고 상기 하우징의 제 1 부분을 통해 적어도 일부가 노출된 마이크, 상기 하우징 내부에 위치하고 상기 하우징의 제 2 부분을 통해 적어도 일부가 노출된 적어도 하나의 스피커, 상기 하우징 내부에 위치한 통신 회로, 상기 하우징 내부에 위치하고, 상기 마이크, 상기 스피커 및 상기 통신 회로에 작동적으로 연결된 프로세서, 및 상기 하우징 내부에 위치하고 상기 프로세서에 작동적으로 연결되고, 복수개의 어플리케이션 프로그램들을 저장하도록 구성된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가, 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하고, 상기 획득한 음성 데이터를 외부 서버로 전송하여, 상기 외부 서버에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성할 것을 요청하고, 및 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보를 이용하여 상기 사용자의 의도와 관련된 추천 서비스를 출력하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 본 발명은 그 밖에 다양한 실시예를 더 포함할 수 있다.

Description

이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법{ELECTRONIC DEVICE AND METHOD FOR PROVIDING ARTIFICIAL INTELLIGENCE SERVICES BASED ON PRE-GATHERED CONVERSATIONS}
본 발명의 다양한 실시 예들은, 음성 기반 인텔리전트 어시스턴스 서비스를 제공하는 전자 장치에 관한 것이다.
최근, 음성 기반 인텔리전트 어시스턴스 서비스를 제공하는 전자 장치가 출시되고 있다. 예를 들면, 인공 지능(artificial intelligence) 스피커는 손을 이용하지 않고도 가정 내에 배치된 각종 가전 제품, 수도, 또는 전기 사용량을 모니터링하고 제어할 수 있어 편리하다.
전자 장치(예: 인공 지능 스피커 또는 스마트 폰)는 음성 기반 플랫폼을 이용하므로, 사용자가 손을 이용하지 않고도 편리하게 기기를 관리하거나 제어할 수 있다. 전자 장치는 인공 지능 알고리즘을 이용해 사용자와 음성으로 의사 소통을 하고, 음성인식을 통해 집안의 사용자가 목소리만으로 다른 기기를 간편하게 제어할 수 있어 차세대 플랫폼으로 각광받고 있다.
종래의 전자 장치는 사용자로부터 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)를 수신한 이후에 사용자의 음성을 수집하고, 수집된 음성을 분석하여 인공 지능 서비스를 제공하였다.
이러한 종래의 전자 장치는 웨이크업 발화를 수신하기 이전의 사용자 대화는 무의미한 것으로 간주하였고, 따라서 종래의 전자 장치는 사용자의 일상적인 대화 내용은 무시하였다. 예를 들어, 사용자는 웨이크업 발화 이전에 이야기 했던 내용을 웨이크업 발화 이후에 반복해서 이야기 해야만 원하는 서비스를 제공 받을 수 있다.
본 발명의 다양한 실시 예들은, 사용자가 웨이크업 발화를 하기 이전의 대화를 미리 수집한 결과를 기반으로 음성 기반 인텔리전트 어시스턴스 서비스를 제공하는 전자 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치는, 하우징, 상기 하우징 내부에 위치하고 상기 하우징의 제 1 부분을 통해 적어도 일부가 노출된 마이크, 상기 하우징 내부에 위치하고 상기 하우징의 제 2 부분을 통해 적어도 일부가 노출된 적어도 하나의 스피커, 상기 하우징 내부에 위치한 통신 회로, 상기 하우징 내부에 위치하고, 상기 마이크, 상기 스피커 및 상기 통신 회로에 작동적으로 연결된 프로세서, 및 상기 하우징 내부에 위치하고 상기 프로세서에 작동적으로 연결되고, 복수개의 어플리케이션 프로그램들을 저장하도록 구성된 메모리를 포함하고, 상기 메모리는, 실행될 때, 상기 프로세서가, 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하고, 상기 획득한 음성 데이터를 외부 서버로 전송하여, 상기 외부 서버에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성할 것을 요청하고, 및 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보를 이용하여 상기 사용자의 의도와 관련된 추천 서비스를 출력하도록 하는 인스트럭션들(instructions)을 저장할 수 있다.
본 발명의 다양한 실시 예에 따른 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하는 전자 장치의 구동 방법은, 상기 웨이크업 발화를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하는 동작, 상기 획득한 음성 데이터를 외부 서버로 전송하여, 상기 외부 서버에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성할 것을 요청하는 동작, 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보를 이용하여 가중치를 결정하는 동작, 및 상기 결정된 가중치에 기반하여 상기 사용자의 의도와 관련된 추천 서비스를 결정하고, 결정된 추천 서비스를 출력하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에 따른 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하기 위한 서버의 구동 방법은, 전자 장치로부터 음성 데이터를 수신하는 동작, 상기 음성 데이터에 포함된 사용자의 대화의 맥락을 분석하는 동작, 상기 분석된 맥락을 기반으로 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인지 결정하는 동작, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화이면, 패스 룰을 생성하고, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화가 아니면 상기 음성 데이터를 누적하여 저장하는 동작, 상기 패스 룰이 생성되면, 상기 생성된 패스 룰을 이용하여 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성하는 동작, 및 상기 전자 장치가 상기 웨이크업 발화를 수신하면, 상기 예측 데이터베이스에 포함된 적어도 하나의 패스 룰을 상기 전자 장치에게 전송하는 동작을 포함 할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치는 사용자가 웨이크업 발화를 입력하기 이전에 대화를 미리 수집하고, 수집된 결과를 기반으로 음성 기반 인텔리전트 어시스턴스 서비스를 제공함으로써 빠르고 정확성 높은 응답 및 추가적인 정보에 기반한 응답을 제공할 수 있다. 본 발명의 다양한 실시 예는 사용자가 전자 장치를 통해 음성 기반 인텔리전트 어시스턴스 서비스를 이용할 때, 음성 입력의 횟수 또는 양을 줄임으로써 사용자의 편의를 높일 수 있다.
도 1은 본 발명의 다양한 실시 예에 따른 통합 지능화 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 전자 장치를 나타낸 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 전자 장치의 지능형 앱을 실행시키는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 컨텍스트 모듈이 현재 상태를 수집하는 것을 나타낸 도면이다.
도 5는 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 제안 모듈을 나타낸 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 지능형 서버를 나타낸 블록도이다.
도 7은 본 발명의 일 실시 예에 따른 패스 자연어 이해 모듈(natural language understanding)(NLU)이 패스 룰(path rule)을 생성하는 방법을 나타낸 도면이다.
도 8은 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 페르소나 모듈(persona module)이 사용자의 정보를 관리하는 것을 나타낸 도면이다.
도 9는 본 발명의 일 실시 예에 따른 통합 지능화 시스템을 나타낸 도면이다.
도 10a 및 도 10b는 본 발명의 일 실시 예에 따른 전자 장치의 상태 표시 방법을 설명한 예시이다.
도 11은 본 발명의 일 실시 예에 따른 전자 장치의 인공 지능 서비스 제공 방법을 설명한 예시이다.
도 12는 본 발명의 일 실시 예에 따른 전자 장치의 인공 지능 서비스 제공 방법을 설명한 다른 예시이다.
도 13 본 발명의 일 실시 예에 따른 전자 장치의 동작을 개략적으로 나타낸 흐름도이다.
도 14는 본 발명의 다른 실시 예에 따른 전자 장치의 동작 흐름도이다.
도 15는 본 발명의 일 실시 예에 따른 전자 장치가 가중치를 설정하는 방법을 나타낸 예시이다.
도 16은 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 구성 및 동작 흐름을 개략적으로 나타낸 블록도이다.
도 17은 본 발명의 일 실시 예에 따른 자동 음성 인식 모듈을 나타낸 블록도이다.
도 18은 본 발명의 일 실시 예에 따른 전자 장치가 패스 룰을 획득하는 방법을 설명하기 위한 예시이다.
도 19는 본 발명의 일 실시 예에 따른 지능형 서버의 동작을 나타낸 흐름도이다.
도 20은 본 발명의 일 실시 예에 따른 전자 장치가 음성 데이터를 수집하는 동작을 나타낸 흐름도이다.
도 21은 일 실시 예에 따른 전자 장치가 웨이크업 발화에 응답하여 추천 서비스를 제공하는 동작을 나타낸 흐름도이다.
도 22는 본 발명의 일 실시 예에 따른 전자 장치가 추가 정보를 요청하는 동작을 설명한 흐름도이다.
도 23은 본 발명의 일 실시 예에 따른 전자 장치가 화자 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다.
도 24는 본 발명의 일 실시 예에 따른 전자 장치가 시간 정보를 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다.
도 25는 본 발명의 일 실시 예에 따른 전자 장치가 문맥의 완성도 정보를 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다.
도 26은 본 발명의 일 실시 예에 따른 전자 장치가 추천 서비스를 제공하는 다른 예시를 나타낸 도면이다.
도 27은 본 발명의 일 실시 예에 따른 전자 장치가 기타 정보를 제공하는 방법을 나타낸 예시이다.
본 발명의 일 실시 예를 서술하기에 앞서, 본 발명의 일 실시 예가 적용될 수 있는 통합 지능화 시스템에 대해 설명한다.
도 1은 본 발명의 다양한 실시 예에 따른 통합 지능화 시스템을 나타낸 도면이다.
도 1을 참조하면, 통합 지능화 시스템(10)은 전자 장치(100), 지능형 서버(200), 개인화 정보 서버(300) 또는 제안 서버(400)를 포함할 수 있다.
전자 장치(100)은 전자 장치(100) 내부에 저장된 앱(app)(또는, 어플리케이션 프로그램(application program))(예: 알람 앱, 메시지 앱, 또는 사진(갤러리) 앱)을 통해 사용자에게 필요한 서비스를 제공할 수 있다. 예를 들어, 전자 장치(100)은 전자 장치(100) 내부에 저장된 지능형 앱(또는, 음성 인식 앱)을 통해 다른 앱을 실행하고 동작시킬 수 있다. 전자 장치(100)의 상기 지능형 앱을 통해 상기 다른 앱의 실행하고 동작을 실행시키기 위한 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 예를 들어, 물리적 버튼, 터치 패드, 음성 입력, 또는 원격 입력을 통해 수신될 수 있다. 일 실시 예에 따르면, 전자 장치(100)은 휴대폰, 스마트폰, PDA(personal digital assistant) 또는 노트북 컴퓨터과 같이 인터넷에 연결 가능한 각종 단말 장치(또는, 전자 장치)가 이에 해당될 수 있다.
일 실시 예에 따르면, 전자 장치(100)은 사용자 발화를 사용자 입력으로 수신할 수 있다. 전자 장치(100)은 사용자 발화를 수신하고, 상기 사용자 발화에 기초하여 앱을 동작시키는 명령을 생성할 수 있다. 이에 따라, 전자 장치(100)은 상기 명령을 이용하여 상기 앱을 동작시킬 수 있다.
지능형 서버(200)는 통신망을 통해 전자 장치(100)로부터 사용자 음성 입력(voice input)을 수신하여 텍스트 데이터(text data)로 변경할 수 있다. 다른 실시 예에서는, 지능형 서버(200)는 상기 텍스트 데이터에 기초하여 패스 룰(path rule)을 생성(또는, 선택)할 수 있다. 상기 패스 룰은 앱의 기능을 수행하기 위한 동작(action)(또는, 오퍼레이션(operation))에 대한 정보 또는 상기 동작을 실행하기 위해 필요한 파라미터에 대한 정보를 포함할 수 있다. 또한, 상기 패스 룰은 상기 앱의 상기 동작의 순서를 포함할 수 있다. 전자 장치(100)은 상기 패스 룰을 수신하고, 상기 패스 룰에 따라 앱을 선택하고, 상기 선택된 앱에서 상기 패스 룰에 포함된 동작을 실행시킬 수 있다.
본 문서의 “패스 룰(path rule)” 이라는 용어는 일반적으로, 전자 장치(100)가 사용자에 의해 요청된 태스크를 수행하기 위한 상태들의 시퀀스를 의미할 수 있지만, 이에 제한되지 않는다. 다시 말해, 패스 룰은 상태들의 시퀀스에 대한 정보를 포함할 수 있다. 상기 태스크는, 예를 들어, 지능형 앱이 제공할 수 있는 어떠한 동작(action)일 수 있다. 상기 태스크는 일정을 생성하거나, 원하는 상대방에게 사진을 전송하거나, 날씨 정보를 제공하는 것을 포함 할 수 있다. 전자 장치(100)은 적어도 하나 이상의 상태(예: 전자 장치(100)의 동작 상태)를 순차적으로 갖음으로써, 상기 태스크를 수행할 수 있다.
일 실시 예에 따르면, 패스 룰은 인공 지능(artificial intelligent)(AI) 시스템에 의해 제공되거나, 생성될 수 있다. 인공지능 시스템은 룰 베이스 시스템(rule-based system) 일 수도 있고, 신경망 베이스 시스템(neual network-based system)(예: 피드포워드 신경망(feedforward neural network(FNN)), 순환 신경망(recurrent neural network(RNN))) 일 수도 있다. 또는 전술한 것의 조합 또는 이와 다른 인공지능 시스템일 수도 있다. 일 실시 예에 따르면, 패스 룰은 미리 정의된 패스 룰들의 집합에서 선택될 수 있거나, 사용자 요청에 응답하여 실시간으로 생성될 수 있다. 예를 들어, 인공지능 시스템은 미리 정의 된 복수의 패스 룰 중 적어도 패스 룰을 선택하거나, 동적(또는, 실시간)으로 패스 룰을 생성할 수 있다. 또한, 전자 장치(100)은 패스 룰을 제공하기 위해 하이브리드 시스템을 사용할 수 있다.
일 실시 예에 따르면, 전자 장치(100)은 상기 동작을 실행하고, 동작을 실행한 전자 장치(100)의 상태에 대응되는 화면을 디스플레이에 표시할 수 있다. 다른 예를 들어, 전자 장치(100)은 상기 동작을 실행하고, 동작을 수행한 결과를 디스플레이에 표시하지 않을 수 있다. 전자 장치(100)은, 예를 들어, 복수의 동작을 실행하고, 상기 복수의 동작의 일부 결과 만을 디스플레이에 표시할 수 있다. 전자 장치(100)은, 예를 들어, 마지막 순서의 동작을 실행한 결과만을 디스플레이에 표시할 수 있다. 또 다른 예를 들어, 전자 장치(100)은 사용자의 입력을 수신하여 상기 동작을 실행한 결과를 디스플레이에 표시할 수 있다.
개인화 정보 서버(300)는 사용자 정보가 저장된 데이터베이스를 포함할 수 있다. 예를 들어, 개인화 정보 서버(300)는 전자 장치(100)로부터 사용자 정보(예: 컨텍스트 정보, 또는 앱 실행)를 수신하여 상기 데이터베이스에 저장할 수 있다. 지능형 서버(200)는 통신망을 통해 개인화 정보 서버(300)로부터 상기 사용자 정보를 수신하여 사용자 입력에 대한 패스 룰을 생성하는 경우에 이용할 수 있다. 일 실시 예에 따르면, 전자 장치(100)은 통신망을 통해 개인화 정보 서버(300)로부터 사용자 정보를 수신하여 데이터베이스를 관리하기 위한 정보로 이용할 수 있다.
제안 서버(400)는 단말 내에 기능 혹은 어플리케이션의 소개 또는 제공될 기능에 대한 정보가 저장된 데이터베이스를 포함할 수 있다. 예를 들어, 제안 서버(400)는 개인화 정보 서버(300)로부터 전자 장치기(100)의 사용자 정보를 수신하여 사용자가 사용 할 수 있는 기능에 대한 데이터베이스를 포함 할 수 있다. 전자 장치(100)은 통신망을 통해 제안 서버(400)로부터 상기 제공될 기능에 대한 정보를 수신하여 사용자에게 정보를 제공할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 전자 장치를 나타낸 블록도이다.
도 2를 참조하면, 전자 장치(100)은 입력 모듈(110), 디스플레이(120), 유저 인터페이스(user interface) 모듈(125), 스피커(130), 메모리(140) 또는 프로세서(150)을 포함할 수 있다. 전자 장치(100)은 하우징을 더 포함할 수 있고, 상기 전자 장치(100)의 구성들은 상기 하우징의 내부에 안착되거나 하우징 상에(on the housing) 위치할 수 있다. 전자 장치(100)은 상기 하우징의 내부에 위치한 통신 회로를 더 포함할 수 있다. 전자 장치(100)은 상기 통신 회로를 통해 외부 서버(예: 지능형 서버(200))와 데이터(또는, 정보)를 송수신할 수 있다.
일 실시 예에 따른, 입력 모듈(110)은 사용자로부터 사용자 입력을 수신할 수 있다. 예를 들어, 입력 모듈(110)은 연결된 외부 장치(예: 키보드, 헤드셋)로부터 사용자 입력을 수신할 수 있다. 다른 예를 들어, 입력 모듈(110)은 디스플레이(120)와 결합된 터치 스크린(예: 터치 스크린 디스플레이)을 포함할 수 있다. 또 다른 예를 들어, 입력 모듈(110)은 전자 장치(100)(또는, 전자 장치(100)의 하우징)에 위치한 하드웨어 키(또는, 물리적 키)를 포함할 수 있다.
일 실시 예에 따르면, 입력 모듈(110)은 사용자 발화를 음성 신호로 수신할 수 있는 마이크를 포함할 수 있다. 예를 들어, 입력 모듈(110)은 발화 입력 시스템(speech input system)을 포함하고, 상기 발화 입력 시스템을 통해 사용자 발화를 음성 신호로 수신할 수 있다. 상기 마이크는, 예를 들어, 하우징의 일부분(예: 제1 부분)을 통해 노출될 수 있다.
일 실시 예에 따르면, 디스플레이(120)는 이미지나 비디오, 및/또는 어플리케이션의 실행 화면을 표시할 수 있다. 예를 들어, 디스플레이(120)는 앱의 그래픽 사용자 인터페이스(graphic user interface)(GUI)를 표시할 수 있다. 일 실시 예에 따르면, 디스플레이(120)는 하우징의 일부분(예: 제2 부분)을 통해 노출될 수 있다.
일 실시 예에 따르면, 유저 인터페이스 모듈(125)은 웨이크업 발화를 수신하기 이전에 사용자 대화를 수집하는 상태, 또는 웨이크업 발화에 응답하여 추천 서비스를 제공하는 상태와 관련하여 UI(user interface) 또는 UX(user experience)를 제공할 수 있다. 예를 들면, 유저 인터페이스 모듈(125)은 전자 장치(100)의 하우징의 적어도 일부분에 배치된 LED 조명(예: 도 10a 및 도 10b의 1003)을 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 사용자 대화를 수집하는 상태 또는 추천 서비스를 제공하는 상태와 관련하여 LED 조명(1003)을 제어할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 전자 장치(100)의 상태에 기반하여 LED 조명(1003)의 모양, 밝기, 세기, 또는 컬러와 같은 형태를 제어할 수 있다.
일 실시 예에 따르면, 스피커(130)는 음성 신호를 출력할 수 있다. 예를 들어, 스피커(130)는 전자 장치(100) 내부에서 생성된 음성 신호를 외부로 출력할 수 있다. 일 실시 예에 따르면, 스피커(130)는 하우징의 일부분(예: 제3 부분)을 통해 노출될 수 있다.
일 실시 예에 따르면, 메모리(140)는 복수의 앱(또는, 어플리케이션 프로그램 application program))(141, 143)을 저장할 수 있다. 복수의 앱(141, 143)은, 예를 들어, 사용자 입력에 대응되는 기능을 수행하기 위한 프로그램(program)일 수 있다. 일 실시 예에 따르면, 메모리(140)는 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)을 저장할 수 있다. 지능형 에이전트(145), 실행 매니저 모듈(147) 및 지능형 서비스 모듈(149)은, 예를 들어, 수신된 사용자 입력(예: 사용자 발화)을 처리하기 위한 프레임워크(framework)(또는, 어플리케이션 프레임워크(application framework))일 수 있다.
일 실시 예에 따르면, 메모리(140)는 사용자 입력을 인식하는데 필요한 정보를 저장할 수 있는 데이터베이스를 포함할 수 있다. 예를 들어, 메모리(140)은 로그(log) 정보를 저장할 수 있는 로그 데이터베이스를 포함할 수 있다. 다른 예를 들어, 메모리(140)는 사용자 정보를 저장할 수 있는 페르소나 데이터베이스를 포함할 수 있다.
일 실시 예에 따르면, 메모리(140)는 복수의 앱(141, 143)을 저장하고, 복수의 앱(141, 143)은 로드되어 동작할 수 있다. 예를 들어, 메모리(140)에 저장된 복수의 앱(141,143)은 실행 매니저 모듈(147)에 의해 로드되어 동작할 수 있다. 복수의 앱(141, 143)은 기능을 수행하는 실행 서비스 모듈(141a, 143a)을 포함할 수 있다. 일 실시 예에서, 복수의 앱(141,143)은 기능을 수행하기 위해서 실행 서비스 모듈(141a, 143a)를 통해 복수의 동작(예: 상태 들의 시퀀스)(141b, 143b)을 실행할 수 있다. 다시 말해, 실행 서비스 모듈(141a, 143a)는 실행 매니저 모듈(147)에 의해 활성화되고, 복수의 동작 (141b, 143b)을 실행할 수 있다.
일 실시 예에 따르면, 앱(141, 143)의 동작(141b, 143b)이 실행되었을 때, 동작(141b, 143b)의 실행에 따른 실행 상태 화면은 디스플레이(120)에 표시될 수 있다. 상기 실행 상태 화면은, 예를 들어, 동작(141b, 143b)이 완료된 상태의 화면일 수 있다. 상기 실행 상태 화면은, 다른 예를 들어, 동작(141b, 143b)의 실행이 정지된 상태(partial landing)(예: 동작(141b, 143b)에 필요한 파라미터가 입력되지 않은 경우)의 화면일 수 있다.
일 실시 예에 따른, 실행 서비스 모듈(141a, 143a)은 패스 룰에 따라 동작(141b, 143b)을 실행할 수 있다. 예를 들어, 실행 서비스 모듈(141a, 143a)은 실행 매니저 모듈(147)에 의해 활성화되고, 실행 매니저 모듈(147)로부터 상기 패스 룰에 따라 실행 요청을 전달 받고, 상기 실행 요청에 따라 동작(141b, 143b)을 함으로써, 앱(141, 143)의 기능을 실행할 수 있다. 실행 서비스 모듈(141a, 143a)는 상기 동작(141b, 143b)의 수행이 완료되면 완료 정보를 실행 매니저 모듈(147)로 전달할 수 있다.
일 실시 예에 따르면, 앱(141, 143)에서 복수의 동작(141b, 143b)이 실행되는 경우, 복수의 동작(141b, 143b)은 순차적으로 실행될 수 있다. 실행 서비스 모듈(141a, 143a)은 하나의 동작(예: 제1 앱(141)의 동작 1, 제2 앱(143)의 동작 1)의 실행이 완료되면 다음 동작(예: 제1 앱(141)의 동작 2, 제2 앱(143)의 동작 2)을 오픈하고 완료 정보를 실행 매니저 모듈(147)로 송신할 수 있다. 여기서 임의의 동작을 오픈한다는 것은, 임의의 동작을 실행 가능한 상태로 천이시키거나, 임의의 동작의 실행을 준비하는 것으로 이해될 수 있다. 다시 말해서, 임의의 동작이 오픈되지 않으면, 해당 동작은 실행될 수 없다. 실행 매니저 모듈(147)은 상기 완료 정보가 수신되면 다음 동작(예: 제1 앱(141)의 동작 2, 제2 앱(143)의 동작 2)에 대한 실행 요청을 실행 서비스 모듈로 전달할 수 있다. 일 실시 예에 따르면, 복수의 앱(141, 143)이 실행되는 경우, 복수의 앱(141, 143)은 순차적으로 실행될 수 있다. 예를 들어, 제1 앱(141)의 마지막 동작(예: 제1 앱(141)의 동작 3)의 실행이 완료되어 완료 정보를 수신하면, 실행 매니저 모듈(147)은 제2 앱(143)의 첫번째 동작(예: 제2 앱(143)의 동작 1)의 실행 요청을 실행 서비스(143a)로 송신할 수 있다.
일 실시 예에 따르면, 앱(141, 143)에서 복수의 동작(141b, 143b)이 실행된 경우, 상기 실행된 복수의 동작(141b, 143b) 각각의 실행에 따른 결과 화면은 디스플레이(120)에 표시될 수 있다. 일 실시 예에 따르면, 상기 실행된 복수의 동작(141b, 143b)의 실행에 따른 복수의 결과 화면 중 일부만 디스플레이(120)에 표시될 수 있다.
일 실시 예에 따르면, 메모리(140)는 지능형 에이전트(145)와 연동된 지능형 앱(예: 음성 인식 앱)을 저장할 수 있다. 지능형 에이전트(145)와 연동된 앱은 사용자 발화를 음성 신호로 수신하여 처리할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)와 연동된 앱은 입력 모듈(110)을 통해 입력되는 특정 입력(예: 하드웨어 키를 통한 입력, 터치 스크린을 통한 입력, 특정 음성 입력)에 의해 동작될 수 있다.
일 실시 예에 따르면, 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)이 프로세서(150)에 의해 실행될 수 있다. 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)의 기능은 프로세서(150)에 의해 구현될 수 있다. 상기 지능형 에이전트(145), 실행 매니저 모듈(147) 및 지능형 서비스 모듈(149)의 기능에 대해 프로세서(150)의 동작으로 설명하겠다. 일 실시 예에 따르면, 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)는 소프트웨어뿐만 아니라 하드웨어로 구현될 수 있다.
일 실시 예에 따르면, 프로세서(150)는 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(150)는 입력 모듈(110)을 제어하여 사용자 입력을 수신할 수 있다. 프로세서(150)는 디스플레이(120)를 제어하여 이미지를 표시할 수 있다. 프로세서(150)는 스피커(130)를 제어하여 음성 신호를 출력할 수 있다. 프로세서(150)는 메모리(140)를 제어하여 프로그램을 실행시키고, 필요한 정보를 불러오거나 저장할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 메모리(140)에 저장된 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)을 실행시킬 수 있다. 이에 따라, 프로세서(150)는 지능형 에이전트(145), 실행 매니저 모듈(147) 또는 지능형 서비스 모듈(149)의 기능을 구현할 수 있다.
일 실시 예에 따른, 프로세서(150)는 지능형 에이전트(145)를 실행하여 사용자 입력으로 수신된 음성 신호에 기초하여 앱을 동작시키는 명령을 생성할 수 있다. 일 실시 예에 따른, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 상기 생성된 명령에 따라 메모리(140)에 저장된 앱(141, 143)을 실행시킬 수 있다. 일 실시 예에 따르면, 프로세서(150)는 지능형 서비스 모듈(149)을 실행하여 사용자의 정보를 관리하고, 상기 사용자의 정보를 이용하여 사용자 입력을 처리할 수 있다.
프로세서(150)는 지능형 에이전트(145)를 실행하여 입력 모듈(110)을 통해 수신된 사용자 입력을 지능형 서버(200)로 송신하고, 지능형 서버(200)를 통해 상기 사용자 입력을 처리할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 상기 사용자 입력을 지능형 서버(200)로 송신하기 전에 상기 사용자 입력을 전처리할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)는 상기 사용자 입력을 전처리하기 위하여, 적응 반향 제거(adaptive echo canceller)(AEC) 모듈, 노이즈 억제(noise suppression)(NS) 모듈, 종점 검출(end-point detection)(EPD) 모듈 또는 자동 이득 제어(automatic gain control)(AGC) 모듈을 포함할 수 있다. 상기 적응 반향 제거부는 상기 사용자 입력에 포함된 에코(echo)를 제거할 수 있다. 상기 노이즈 억제 모듈은 상기 사용자 입력에 포함된 배경 잡음을 억제할 수 있다. 상기 종점 검출 모듈은 상기 사용자 입력에 포함된 사용자 음성의 종점을 검출하고, 상기 검출된 종점을 이용하여 사용자의 음성이 존재하는 부분을 찾을 수 있다. 상기 자동 이득 제어 모듈은 상기 사용자 입력을 인식하고, 상기 인식된 사용자 입력을 처리하기 적합하도록 상기 사용자 입력의 음량을 조절할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 성능을 위하여 상기 전처리 구성을 전부 실행시킬 수 있지만, 다른 실시 예에서 프로세서(150)는 저전력으로 동작하기 위해 상기 전처리 구성 중 일부를 실행시킬 수 있다.
일 실시 예에 따르면, 지능형 에이전트(145)는 사용자의 호출을 인식하기 위해 메모리(140)에 저장된 웨이크 업(wake up) 인식 모듈을 실행시킬 수 있다. 이에 따라, 프로세서(150)는 상기 웨이크 업 인식 모듈을 통해 사용자의 웨이크 업 명령을 인식할 수 있고, 상기 웨이크 업 명령을 수신한 경우 사용자 입력을 수신하기 위한 지능형 에이전트(145)를 실행시킬 수 있다. 상기 웨이크 업 인식 모듈은 저전력 프로세서(예: 오디오 코덱에 포함된 프로세서)로 구현될 수 있다. 일 실시 예에 따르면, 프로세서(150)는 하드웨어 키를 통한 사용자 입력을 수신하였을 때 지능형 에이전트(145)를 실행시킬 수 있다. 지능형 에이전트(145)가 실행된 경우, 지능형 에이전트(145)와 연동된 지능형 앱(예: 음성 인식 앱)이 실행될 수 있다.
일 실시 예에 따르면, 지능형 에이전트(145)는 사용자 입력을 실행하기 위한 음성 인식 모듈을 포함할 수 있다. 프로세서(150)는 상기 음성 인식 모듈을 통해 앱에서 동작을 실행하도록 하기 위한 사용자 입력을 인식할 수 있다. 예를 들어, 프로세서(150)는 상기 음성 인식 모듈을 통해 앱(141, 143)에서 상기 웨이크 업 명령과 같은 동작을 실행하는 제한된 사용자 (음성) 입력(예: 카메라 앱이 실행 중일 때 촬영 동작을 실행시키는 “찰칵”과 같은 발화)을 인식할 수 있다. 프로세서(150)는 상기 지능형 서버(200)를 보조하여 상기 음성 인식 모듈을 통해 전자 장치(100)내에서 처리할 수 있는 사용자 명령을 인식하여 빠르게 처리할 수 있다. 일 실시 예에 따르면, 사용자 입력을 실행하기 위한 지능형 에이전트(145)의 음성 인식 모듈은 앱 프로세서에서 구현될 수 있다.
일 실시 예에 따르면, 지능형 에이전트(145)의 음성 인식 모듈(웨이크 업 모듈의 음성 인식 모듈을 포함)은 음성을 인식하기 위한 알고리즘을 이용하여 사용자 입력을 인식할 수 있다. 상기 음성을 인식하기 위해 사용되는 알고리즘은, 예를 들어, HMM(hidden markov model) 알고리즘, ANN(artificial neural network) 알고리즘 또는 DTW(dynamic time warping) 알고리즘 중 적어도 하나일 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 사용자의 음성 입력을 텍스트 데이터로 변환할 수 있다. 예를 들어, 프로세서(150)는 지능형 에이전트(145)를 통해 사용자의 음성을 지능형 서버(200)로 송신하고, 지능형 서버(200)로부터 사용자의 음성에 대응되는 텍스트 데이터를 수신할 수 있다. 이에 따라, 프로세서(150) 는 상기 변환된 텍스트 데이터를 디스플레이(120)에 표시할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 지능형 서버(200)로부터 패스 룰을 수신할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 통해 상기 패스 룰을 실행 매니저 모듈(147)로 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 지능형 에이전트(145)를 실행하여 지능형 서버(200)로부터 수신된 패스 룰에 따른 실행 결과 로그(log)를 지능형 서비스 모듈(149)로 전달하고, 상기 전달된 실행 결과 로그는 페르소나 모듈(persona manager)(149b)의 사용자의 선호(preference) 정보에 누적되어 관리될 수 있다.
일 실시 예에 따른, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 지능형 에이전트(145)로부터 패스 룰을 전달받아 앱(141, 143)을 실행시키고, 앱(141, 143)이 상기 패스 룰에 포함된 동작(141b, 143b)을 실행하도록 할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 앱(141, 143)으로 동작(141b, 143b)을 실행하기 위한 명령 정보(예: 패스 룰 정보)를 송신할 수 있고, 상기 앱(141, 143)로부터 동작(141b, 143b)의 완료 정보를 전달 받을 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 지능형 에이전트(145)와 앱(141, 143)의 사이에서 앱(141, 143)의 동작(141b, 143b)을 실행하기 위한 명령 정보(예: 패스 룰 정보)를 전달할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 패스 룰에 따라 실행할 앱(141, 143)을 바인딩(binding)하고, 상기 패스 룰에 포함된 동작(141b, 143b)의 명령 정보(예: 패스 룰 정보)를 앱(141, 143)으로 전달할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 패스 룰에 포함된 동작(141b, 143b)을 순차적으로 앱(141, 143)으로 전달하여, 앱(141, 143)의 동작(141b, 143b)을 상기 패스 룰에 따라 순차적으로 실행시킬 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 앱(141, 143)의 동작(141b, 143b)의 실행 상태를 관리할 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 앱(141, 143)으로부터 상기 동작(141b, 143b)의 실행 상태에 대한 정보를 전달 받을 수 있다. 상기 동작(141b, 143b)의 실행 상태가, 예를 들어, 정지된 상태(partial landing)인 경우(예: 동작(141b, 143b)에 필요한 파라미터가 입력되지 않은 경우), 프로세서(150)는 실행 매니저 모듈(147)을 통해 상기 정지된 상태에 대한 정보를 지능형 에이전트(145)로 전달할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 전달 받은 정보를 이용하여, 사용자에게 필요한 정보(예: 파라미터 정보)의 입력을 요청할 수 있다. 상기 동작(141b, 143b)의 실행 상태가, 다른 예를 들어, 동작 상태인 경우, 프로세서(150)는 지능형 에이전트(145)를 통해 사용자로부터 발화를 수신할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)를 통해 상기 실행되고 있는 앱(141, 143) 및 앱(141, 143)의 실행 상태에 대한 정보를 지능형 에이전트(145)로 전달할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 사용자 발화를 지능형 서버(200)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 지능형 서버(200)로부터 상기 사용자 발화의 파라미터 정보를 수신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 수신된 파라미터 정보를 실행 매니저 모듈(147)로 전달할 수 있다. 실행 매니저 모듈(147)은 상기 수신한 파라미터 정보를 이용하여 동작(141b, 143b)의 파라미터를 새로운 파라미터로 변경할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 패스 룰에 포함된 파라미터 정보를 앱(141, 143)로 전달할 수 있다. 상기 패스 룰에 따라 복수의 앱(141, 143)이 순차적으로 실행되는 경우, 실행 매니저 모듈(147)은 하나의 앱에서 다른 앱으로 패스 룰에 포함된 파라미터 정보를 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 실행 매니저 모듈(147)을 실행하여 복수의 패스 룰을 수신할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 사용자 발화에 기초하여 복수의 패스 룰이 선택될 수 있다. 예를 들어, 프로세서(150)는 실행 매니저 모듈(147)을 통해 사용자 발화가 일부 동작(141a)을 실행할 일부 앱(141)을 특정하였지만, 나머지 동작(143b)을 실행할 다른 앱(143)을 특정하지 않은 경우, 일부 동작(141a)를 실행할 동일한 앱(141)(예: 갤러리 앱)이 실행되고 나머지 동작(143b)를 실행할 수 있는 서로 다른 앱(143)(예: 메시지 앱, 텔레그램 앱)이 각각 실행되는 서로 다른 복수의 패스 룰을 수신할 수 있다. 프로세서(150)는, 예를 들어, 실행 매니저 모듈(147)을 통해 상기 복수의 패스 룰의 동일한 동작(141b, 143b)(예: 연속된 동일한 동작(141b, 143b))을 실행할 수 있다. 프로세서(150)는 상기 동일한 동작까지 실행한 경우, 실행 매니저 모듈(147)을 통해 상기 복수의 패스 룰에 각각 포함된 서로 다른 앱(141, 143)을 선택할 수 있는 상태 화면을 디스플레이(120)에 표시할 수 있다.
일 실시 예에 따르면, 지능형 서비스 모듈(149)은 컨텍스트 모듈(149a), 페르소나 모듈(149b) 또는 제안 모듈(149c)을 포함할 수 있다.
프로세서(150)는 컨텍스트 모듈(149a)을 실행하여 앱(141, 143)으로부터 앱(141, 143)의 현재 상태를 수집할 수 있다. 예를 들어, 프로세서(150)는 컨텍스트 모듈(149a)을 실행하여 앱(141, 143)의 현재 상태를 나타내는 컨텍스트 정보를 수신하고, 상기 수신된 컨텍스트 정보를 통해 앱(141, 143)의 현재 상태를 수집할 수 있다.
프로세서(150)는 페르소나 모듈(149b)을 실행하여 전자 장치(100)을 사용하는 사용자의 개인 정보를 관리할 수 있다. 예를 들어, 프로세서(150)는 페르소나 모듈(149b)을 실행하여 전자 장치(100)의 사용 정보 및 수행 결과를 수집하고, 상기 수집된 전자 장치(100)의 사용 정보 및 수행 결과를 이용하여 사용자의 개인 정보를 관리할 수 있다.
프로세서(150)는 제안 모듈(149c)을 실행하여 사용자의 의도를 예측하고, 상기 사용자의 의도에 기초하여 사용자에게 명령을 추천해줄 수 있다. 예를 들어, 프로세서(150)는 제안 모듈(149c)을 실행하여 사용자의 현재 상태(예: 시간, 장소, 상황, 앱)에 따라 사용자에게 명령을 추천해줄 수 있다.
도 3a 및 도 3b는 본 발명의 일 실시 예에 따른 전자 장치의 지능형 앱을 실행시키는 것을 나타낸 도면이다.
일 실시 예에 따르면, 도 3a 및 도 3b는, 전자 장치(100)가 사용자 입력을 수신하여 지능형 에이전트(145)와 연동된 지능형 앱(예: 음성 인식 앱)을 실행시키는 것을 나타낸 것일 수 있다.
일 실시 예에 따르면, 도 3a 에 도시된 바와 같이, 전자 장치(100)는 하드웨어 키(112)를 통해 음성을 인식하기 위한 지능형 앱을 실행시킬 수 있다. 예를 들어, 전자 장치(100)은 하드웨어 키(112)를 통해 사용자 입력을 수신한 경우 디스플레이(120)에 지능형 앱의 UI(user interface)(121)를 표시할 수 있다. 사용자는, 예를 들어, 지능형 앱의 UI(121)가 디스플레이(120)에 표시된 상태에서 음성을 입력(120b)하기 위해 지능형 앱의 UI(121)에 음성인식 버튼(121a)를 터치할 수 있다. 사용자는, 다른 예를 들어, 음성을 입력(120b)하기 위해 상기 하드웨어 키(112)를 지속적으로 눌러서 음성을 입력(120b)을 할 수 있다.
일 실시 예에 따르면, 도 3b 에 도시된 바와 같이, 전자 장치(100)는 마이크(111)를 통해 음성을 인식하기 위한 지능형 앱을 실행시킬 수 있다. 예를 들어, 전자 장치(100)은 마이크(111)를 통해 지정된 음성(예: 일어나!(wake up!))이 입력(120a)된 경우 디스플레이(120)에 지능형 앱의 UI(121)를 표시할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 컨텍스트 모듈이 현재 상태를 수집하는 것을 나타낸 도면이다.
도 4를 참조하면, 프로세서(150)는 지능형 에이전트(145)로부터 컨텍스트 요청을 수신(①)하면, 컨텍스트 모듈(149a)을 통해 앱(141, 143)의 현재 상태를 나타내는 컨텍스트 정보를 요청(②)할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 컨텍스트 모듈(149a)을 통해 앱(141, 143)으로부터 상기 컨텍스트 정보를 수신(③)하여 지능형 에이전트(145)로 송신(④)할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 컨텍스트 모듈(149a)을 통해 앱(141, 143)으로부터 복수의 컨텍스트 정보를 전달 받을 수 있다. 상기 컨텍스트 정보는, 예를 들어, 가장 최근 실행된 앱(141, 143)에 대한 정보일 수 있다. 상기 컨텍스트 정보는, 다른 예를 들어, 앱(141, 143) 내의 현재 상태에 대한 정보(예: 갤러리에서 사진을 보고 있는 경우, 해당 사진에 대한 정보)일 수 있다.
일 실시 예에 따르면, 프로세서(150)는 컨텍스트 모듈(149a)을 통해 앱(141, 143)뿐만 아니라, 디바이스 플랫폼(device platform)으로부터 전자 장치(100)의 현재 상태를 나타내는 컨텍스트 정보를 수신할 수 있다. 상기 컨텍스트 정보는 일반적 컨텍스트 정보, 사용자 컨텍스트 정보 또는 장치 컨텍스트 정보를 포함할 수 있다.
상기 일반적 컨텍스트 정보는 전자 장치(100)의 일반적인 정보를 포함할 수 있다. 상기 일반적 컨텍스트 정보는 디바이스 플랫폼의 센서 허브를 통해 데이터를 전달 받아서 내부 알고리즘을 통해 확인될 수 있다. 예를 들어, 상기 일반적 컨텍스트 정보는 현재 시공간에 대한 정보를 포함할 수 있다. 상기 현재 시공간에 대한 정보는, 예를 들어, 현재 시간 또는 전자 장치(100)의 현재 위치에 대한 정보를 포함할 수 있다. 상기 현재 시간은 전자 장치(100) 상에서의 시간을 통해 확인될 수 있고, 상기 현재 위치에 대한 정보는 GPS(global positioning system)를 통해 확인될 수 있다. 다른 예를 들어, 상기 일반적 컨텍스트 정보는 물리적 움직임에 대한 정보를 포함할 수 있다. 상기 물리적 움직임에 대한 정보는, 예를 들어, 걷기, 뛰기, 또는 운전 중에 대한 정보를 포함할 수 있다. 상기 물리적 움직임 정보는 모션 센서(motion sensor)를 통해 확인될 수 있다. 상기 운전 중에 대한 정보는 상기 모션 센서를 통해 운행을 확인할 수 있을 뿐만 아니라, 차량 내의 블루투스 연결을 감지하여 탑승 및 주차를 확인할 수 있다. 또 다른 예를 들어, 상기 일반적 컨텍스트 정보는 사용자 활동 정보를 포함할 수 있다. 상기 사용자 활동 정보는, 예를 들어, 출퇴근, 쇼핑, 또는 여행에 대한 정보를 포함할 수 있다. 상기 사용자 활동 정보는 사용자 또는 앱이 데이터베이스에 등록한 장소에 대한 정보를 이용하여 확인될 수 있다.
상기 사용자 컨텍스트 정보는 사용자에 대한 정보를 포함할 수 있다. 예를 들어, 상기 사용자 컨텍스트 정보는 사용자의 감정적 상태에 대한 정보를 포함할 수 있다. 상기 감정적 상태에 대한 정보는, 예를 들어, 사용자의 행복, 슬픔, 또는 화남에 대한 정보를 포함할 수 있다. 다른 예를 들어, 상기 사용자 컨텍스트 정보는 사용자의 현재 상태에 대한 정보를 포함할 수 있다. 상기 현재 상태에 대한 정보는, 예를 들어, 관심, 또는 의도(예: 쇼핑)에 대한 정보를 포함할 수 있다.
상기 장치 컨텍스트 정보는 전자 장치(100)의 상태에 대한 정보를 포함할 수 있다. 예를 들어, 상기 장치 컨텍스트 정보는 실행 매니저 모듈(147)이 실행한 패스 룰에 대한 정보를 포함할 수 있다. 다른 예를 들어, 상기 디바이스 정보는 배터리에 대한 정보를 포함할 수 있다. 상기 배터리에 대한 정보는, 예를 들어, 상기 배터리의 충전 및 방전 상태를 통해 확인될 수 있다. 또 다른 예를 들어, 상기 디바이스 정보는 연결된 장치 및 네트워크에 대한 정보를 포함할 수 있다. 상기 연결된 장치에 대한 정보는, 예를 들어, 상기 장치가 연결된 통신 인터페이스를 통해 확인될 수 있다.
도 5는 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 제안 모듈을 나타낸 블록도이다.
도 5를 참조하면, 제안 모듈(149c)은 힌트 제공 모듈(149c_1), 컨텍스트 힌트 생성 모듈(149c_2), 조건 체킹 모듈(149c_3), 조건 모델 모듈(149c_4), 재사용 힌트 생성 모듈(149c_5) 또는 소개 힌트 생성 모듈(149c_6)을 포함할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 힌트 제공 모듈(149c_1)을 실행하여 사용자에게 힌트(hint)를 제공할 수 있다. 예를 들어, 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 컨텍스트 힌트 생성 모듈(149c_2), 재사용 힌트 생성 모듈(149c_5) 또는 소개 힌트 생성 모듈(149c_6)로부터 생성된 힌트를 전달 받아 사용자에게 힌트를 제공할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 조건 체킹 모듈(149c_3) 또는 조건 모델 모듈(149c_4)을 실행하여 현재 상태에 따라 추천될 수 있는 힌트를 생성할 수 있다. 프로세서(150)는 조건 체킹 모듈(149c_3)을 실행하여 현재 상태에 대응되는 정보를 전달 받을 수 있고, 조건 모델 모듈(149c_4)을 실행하여 상기 전달 받은 정보를 이용하여 조건 모델(condition model)을 설정할 수 있다. 예를 들어, 프로세서(150)는 조건 모델 모듈은(149c_4)을 실행하여 사용자에게 힌트를 제공하는 시점의 시간, 위치, 상황 또는 사용중인 앱을 파악하여 해당 조건에서 사용할 가능성이 높은 힌트를 우선 순위가 높은 순으로 사용자에게 제공할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 재사용 힌트 생성 모듈(149c_5)을 실행하여 사용 빈도에 따라 추천될 수 있는 힌트를 생성할 수 있다. 예를 들어, 프로세서(150)는 재사용 힌트 생성 모듈(149c_5)을 실행하여 사용자의 사용 패턴에 기초한 힌트를 생성할 수 있다.
일 실시 예에 따르면, 소개 힌트 생성 모듈(149c_6)은 사용자에게 신규 기능 또는 다른 사용자가 많이 쓰는 기능을 소개하는 힌트를 생성할 수 있다. 예를 들어, 상기 신규 기능을 소개하는 힌트에는 지능형 에이전트(145)에 대한 소개(예: 작동 방법)를 포함할 수 있다.
다른 실시 예에 따르면, 제안 모듈(149c)의 컨텍스트 힌트 생성 모듈(149c_2), 조건 체킹 모듈(149c_3), 조건 모델 모듈(149c_4), 재사용 힌트 생성 모듈(149c_5) 또는 소개 힌트 생성 모듈(149c_6)은 개인화 정보 서버(300)에 포함될 수 있다. 예를 들어, 프로세서(150)는 제안 모듈(149c)의 힌트 제공 모듈(149c_1)을 통해 사용자 개인화 정보 서버(300)의 컨텍스트 힌트 생성 모듈(149c_2), 재사용 힌트 생성 모듈(149c_5) 또는 소개 힌트 생성 모듈(149c_6)로부터 힌트를 수신하여 사용자에게 상기 수신된 힌트를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)은 다음의 일련의 프로세스에 따라 힌트를 제공할 수 있다. 예를 들어, 프로세서(150)는 지능형 에이전트(145)로부터 힌트 제공 요청을 수신하면, 힌트 제공 모듈(149c_1)을 통해 컨텍스트 힌트 생성 모듈(149c_2)로 힌트 생성 요청을 전달할 수 있다. 프로세서(150)는 상기 힌트 생성 요청을 전달 받으면, 조건 체킹 모듈(149c_3)을 통해 컨텍스트 모듈(149a) 및 페르소나 모듈(149b)로부터 현재 상태에 대응되는 정보를 전달 받을 수 있다. 프로세서(150)는 조건 체킹 모듈(149c_3)을 통해 상기 전달 받은 정보를 조건 모델 모듈(149c_4)로 전달하고, 조건 모델 모듈(149c_4)을 통해 상기 정보를 이용하여 사용자에게 제공되는 힌트 중 상기 조건에 사용 가능성이 높은 순서로 힌트에 대해 우선순위를 부여 할 수 있다. 프로세서(150)는 컨텍스트 힌트 생성 모듈(149c_2)을 통해 상기 조건을 확인(⑥)하고, 상기 현재 상태에 대응되는 힌트를 생성할 수 있다. 프로세서(150)는 컨텍스트 힌트 생성 모듈(149c_2)을 통해 상기 생성된 힌트를 힌트 제공 모듈(149c_1)로 전달할 수 있다. 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 지정된 규칙에 따라 상기 힌트를 정렬하고, 상기 힌트를 지능형 에이전트(145)로 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 복수의 컨텍스트 힌트를 생성할 수 있고, 지정된 규칙에 따라 복수의 컨텍스트 힌트에 우선 순위를 지정할 수 있다. 일 실시 예에 따르면, 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 상기 복수의 컨텍스트 힌트 중에서 우선 순위가 높은 것을 사용자에게 먼저 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)은 사용 빈도에 따른 힌트를 제안할 수 있다. 예를 들어, 프로세서(150)는 지능형 에이전트(145)로부터 힌트 제공 요청을 전달 받으면, 힌트 제공 모듈(149c_1)을 통해 재사용 힌트 생성 모듈(149c_5)로 힌트 생성 요청을 전달할 수 있다. 프로세서(150)는 상기 힌트 생성 요청을 전달 받으면, 재사용 힌트 생성 모듈(149c_5)를 통해 페르소나 모듈(149b)로부터 사용자 정보를 전달 받을 수 있다. 예를 들어, 프로세서(150)는 재사용 힌트 생성 모듈(149c_5)을 통해 페르소나 모듈(149b)의 사용자의 프리퍼런스 정보에 포함된 패스 룰, 패스 룰에 포함된 파라미터, 앱의 실행 빈도, 앱이 사용된 시공간 정보를 전달 받을 수 있다. 프로세서(150)는 재사용 힌트 생성 모듈(149c_5)을 통해 상기 전달 받은 사용자 정보에 대응되는 힌트를 생성할 수 있다. 프로세서(150)는 재사용 힌트 생성 모듈(149c_5)을 통해 상기 생성된 힌트를 힌트 제공 모듈(149c_1)로 전달할 수 있다. 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 상기 힌트를 정렬하고, 상기 힌트를 지능형 에이전트(145)로 전달할 수 있다.
일 실시 예에 따르면, 전자 장치(100)은 새로운 기능에 대한 힌트를 제안할 수 있다. 예를 들어, 프로세서(150)는 지능형 에이전트(145)로부터 힌트 제공 요청을 전달 받으면, 힌트 제공 모듈(149c_1)을 통해 소개 힌트 생성 모듈(149c_6)로 힌트 생성 요청을 전달할 수 있다. 프로세서(150)는 소개 힌트 생성 모듈(149c_6)을 통해 제안 서버(400)로부터 소개 힌트 제공 요청을 전달하여 제안 서버(400)로부터 소개될 기능에 대한 정보를 수신할 수 있다. 제안 서버(400)는, 예를 들어, 소개될 기능에 대한 정보를 저장할 수 있고, 상기 소개될 기능에 대한 힌트 리스트(hint list)는 서비스 운영자에 의해 업데이트될 수 있다. 프로세서(150)는 소개 힌트 생성 모듈(149c_6)을 통해 상기 생성된 힌트를 힌트 제공 모듈(149c_1)로 전달할 수 있다. 프로세서(150)는 힌트 제공 모듈(149c_1)을 통해 상기 힌트를 정렬하고, 상기 힌트를 지능형 에이전트(145)로 전송(⑥)할 수 있다.
이에 따라, 프로세서(150)는 제안 모듈(149c)을 통해 컨텍스트 힌트 생성 모듈(149c_2), 재사용 힌트 생성 모듈(149c_5) 또는 소개 힌트 생성 모듈(149c_6)에서 생성된 힌트를 사용자에게 제공할 수 있다. 예를 들어, 프로세서(150)는 제안 모듈(149c)을 통해 상기 생성된 힌트를 지능형 에이전트(145)을 동작시키는 앱에 표시할 수 있고, 상기 앱을 통해 사용자로부터 상기 힌트를 선택하는 입력을 수신할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 지능형 서버를 나타낸 블록도이다.
도 6을 참조하면, 지능형 서버(200)는 자동 음성 인식(automatic speech recognition)(ASR) 모듈(210), 자연어 이해(natural language understanding)(NLU) 모듈(220), 패스 플래너(path planner) 모듈(230), 대화 매니저(dialogue manager)(DM) 모듈(240), 자연어 생성(natural language generator)(NLG) 모듈(250), 텍스트 음성 변환(text to speech)(TTS) 모듈(260), 또는 예측 데이터베이스(prediction database)(270)를 포함할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 통신 회로, 메모리 및 프로세서를 포함할 수 있다. 상기 프로세서는 상기 메모리에 저장된 명령어를 실행하여 자동 음성 인식 모듈(210), 자연어 이해 모듈(220), 패스 플래너 모듈(230), 대화 매니저 모듈(240), 자연어 생성 모듈(250) 및 텍스트 음성 변환 모듈(260)을 구동시킬 수 있다. 지능형 서버(200)는 상기 통신 회로를 통해 외부 전자 장치(예: 전자 장치(100))와 데이터(또는, 정보)를 송수신할 수 있다.
지능형 서버(200)의 자연어 이해 모듈(220) 또는 패스 플래너 모듈(230)은 패스 룰(path rule)을 생성할 수 있다.
일 실시 예에 따르면, 자동 음성 인식(automatic speech recognition)(ASR) 모듈(210)은 전자 장치(100)로부터 수신된 사용자 입력을 텍스트 데이터로 변환할 수 있다.
일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 전자 장치(100)로부터 수신된 사용자 입력을 텍스트 데이터로 변환할 수 있다. 예를 들어, 자동 음성 인식 모듈(210)은 발화 인식 모듈을 포함할 수 있다. 상기 발화 인식 모듈은 음향(acoustic) 모델 및 언어(language) 모델을 포함할 수 있다. 예를 들어, 상기 음향 모델은 발성에 관련된 정보를 포함할 수 있고, 상기 언어 모델은 단위 음소 정보 및 단위 음소 정보의 조합에 대한 정보를 포함할 수 있다. 상기 발화 인식 모듈은 발성에 관련된 정보 및 단위 음소 정보에 대한 정보를 이용하여 사용자 발화를 텍스트 데이터로 변환할 수 있다. 상기 음향 모델 및 언어 모델에 대한 정보는, 예를 들어, 자동 음성 인식 데이터베이스(automatic speech recognition database)(ASR DB)(211)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 상기 문법적 분석은 사용자 입력을 문법적 단위(예: 단어, 구, 또는 형태소)로 나누고, 상기 나누어진 단위가 어떤 문법적인 요소를 갖는지 파악할 수 있다. 상기 의미적 분석은 의미(semantic) 매칭, 룰(rule) 매칭, 또는 포뮬러(formula) 매칭을 이용하여 수행할 수 있다. 이에 따라, 자연어 이해 모듈(220)은 사용자 입력이 어느 도메인(domain), 의도(intent) 또는 상기 의도를 표현하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))를 얻을 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 도메인(domain), 의도(intend) 및 상기 의도를 파악하는데 필요한 파라미터(parameter)(또는, 슬롯(slot))로 나누어진 매칭 규칙을 이용하여 사용자의 의도 및 파라미터를 결정할 수 있다. 예를 들어, 상기 하나의 도메인(예: 알람)은 복수의 의도(예: 알람 설정, 또는 알람 해제)를 포함할 수 있고, 하나의 의도는 복수의 파라미터(예: 시간, 반복 횟수, 또는 알람음)을 포함할 수 있다. 복수의 룰은, 예를 들어, 하나 이상의 필수 요소 파라미터를 포함할 수 있다. 상기 매칭 규칙은 자연어 인식 데이터베이스(natural language understanding database)(NLU DB)(221)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 형태소, 또는 구와 같은 언어적 특징(예: 문법적 요소)을 이용하여 사용자 입력으로부터 추출된 단어의 의미를 파악하고, 상기 파악된 단어의 의미를 도메인 및 의도에 매칭시켜 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 각각의 도메인 및 의도에 사용자 입력에서 추출된 단어가 얼마나 포함되어 있는 지를 계산하여 사용자 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 상기 의도를 파악하는데 기초가 된 단어를 이용하여 사용자 입력의 파라미터를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도를 파악하기 위한 언어적 특징이 저장된 자연어 인식 데이터베이스(221)를 이용하여 사용자의 의도를 결정할 수 있다. 다른 실시 예에 따르면, 자연어 이해 모듈(220)은 개인화 언어 모델(personal language model)(PLM)을 이용하여 사용자의 의도를 결정할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 개인화된 정보(예: 연락처 리스트, 음악 리스트)를 이용하여 사용자의 의도를 결정할 수 있다. 상기 개인화 언어 모델은, 예를 들어, 자연어 인식 데이터베이스(221)에 저장될 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)뿐만 아니라 자동 음성 인식 모듈(210)도 자연어 인식 데이터베이스(221)에 저장된 개인화 언어 모델을 참고하여 사용자의 음성을 인식할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 기초하여 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력의 의도에 기초하여 실행될 앱을 선택하고, 상기 선택된 앱에서 수행될 동작을 결정할 수 있다. 상기 자연어 이해 모듈(220)은 상기 결정된 동작에 대응되는 파라미터를 결정하여 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)에 의해 생성된 패스 룰은 실행될 앱, 상기 앱에서 실행될 동작(예: 적어도 하나 이상의 상태(state)) 및 상기 동작을 실행하는데 필요한 파라미터에 대한 정보를 포함할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터를 기반으로 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 패스 플래너 모듈(230)로부터 전자 장치(100)에 대응되는 패스 룰 셋을 수신하고, 사용자 입력의 의도 및 파라미터를 상기 수신된 패스 룰 셋에 매핑하여 패스 룰을 결정할 수 있다.
다른 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 기초하여 실행될 앱, 상기 앱에서 실행될 동작 및 상기 동작을 실행하는데 필요한 파라미터를 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 전자 장치(100)의 정보를 이용하여 상기 실행될 앱 및 상기 앱에서 실행될 동작을 사용자 입력의 의도에 따라 온톨로지(ontology) 또는 그래프 모델(graph model) 형태로 배열하여 패스 룰을 생성할 수 있다. 상기 생성된 패스 룰은, 예를 들어, 패스 플래너 모듈(230)를 통해 패스 룰 데이터베이스(path rule database)(PR DB)(231)에 저장될 수 있다. 상기 생성된 패스 룰은 데이터베이스(231)의 패스 룰 셋에 추가될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 생성된 복수의 패스 룰 중 적어도 하나의 패스 룰을 선택할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 상기 복수의 패스 룰 최적의 패스 룰을 선택할 수 있다. 다른 예를 들어, 자연어 이해 모듈(220)은 사용자 발화에 기초하여 일부 동작만이 특정된 경우 복수의 패스 룰을 선택할 수 있다. 자연어 이해 모듈(220)은 사용자의 추가 입력에 의해 상기 복수의 패스 룰 중 하나의 패스 룰을 결정할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력에 대한 요청으로 패스 룰을 전자 장치(100)로 송신할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 대응되는 하나의 패스 룰을 전자 장치(100)로 송신할 수 있다. 다른 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 대응되는 복수의 패스 룰을 전자 장치(100)로 송신할 수 있다. 상기 복수의 패스 룰은, 예를 들어, 사용자 발화에 기초하여 일부 동작만이 특정된 경우 자연어 이해 모듈(220)에 의해 생성될 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 복수의 패스 룰 중 적어도 하나의 패스 룰을 선택할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 자연어 이해 모듈(220)로 복수의 패스 룰을 포함하는 패스 룰 셋을 전달할 수 있다. 상기 패스 룰 셋의 복수의 패스 룰은 패스 플래너 모듈(230)에 연결된 패스 룰 데이터베이스(231)에 테이블 형태로 저장될 수 있다. 예를 들어, 패스 플래너 모듈(230)은 지능형 에이전트(145)로부터 수신된 전자 장치(100)의 정보(예: OS 정보, 앱 정보)에 대응되는 패스 룰 셋을 자연어 이해 모듈(220)로 전달할 수 있다. 상기 패스 룰 데이터베이스(231)에 저장된 테이블은, 예를 들어, 도메인 또는 도메인의 버전 별로 저장될 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 패스 룰 셋에서 하나의 패스 룰, 또는 복수의 패스 룰을 선택하여 자연어 이해 모듈(220)로 전달할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자의 의도 및 파라미터를 전자 장치(100) 에 대응되는 패스 룰 셋에 매칭하여 하나의 패스 룰, 또는 복수의 패스 룰을 선택하여 자연어 이해 모듈(220)로 전달할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터를 이용하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터에 기초하여 실행될 앱 및 상기 앱에서 실행될 동작을 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 상기 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 자연어 이해 모듈(220)에서 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다. 상기 생성된 패스 룰은 패스 룰 데이터베이스(231)에 저장된 패스 룰 셋에 추가될 수 있다.
일 실시 예에 따르면, 패스 룰 데이터베이스(231)에 저장된 테이블에는 복수의 패스 룰 또는 복수의 패스 룰 셋을 포함할 수 있다. 복수의 패스 룰 또는 복수의 패스 룰 셋은 각 패스 룰을 수행하는 장치의 종류, 버전, 타입, 또는 특성을 반영할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈(240)은 자연어 이해 모듈(220)에 의해 파악된 사용자의 의도가 명확한지 여부를 판단할 수 있다. 예를 들어, 대화 매니저 모듈(240)은 파라미터의 정보가 충분하지 여부에 기초하여 사용자의 의도가 명확한지 여부를 판단할 수 있다. 대화 매니저 모듈(240)은 자연어 이해 모듈(220)에서 파악된 파라미터가 태스크를 수행하는데 충분한지 여부를 판단할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈(240)은 사용자의 의도가 명확하지 않은 경우 사용자에게 필요한 정보를 요청하는 피드백을 수행할 수 있다. 예를 들어, 대화 매니저 모듈(240)은 사용자의 의도를 파악하기 위한 파라미터에 대한 정보를 요청하는 피드백을 수행할 수 있다.
일 실시 예에 따르면, 대화 매니저 모듈(240)은 컨텐츠 제공(content provider) 모듈을 포함할 수 있다. 상기 컨텐츠 제공 모듈은 자연어 이해 모듈(220)에서 파악된 의도 및 파라미터에 기초하여 동작을 수행할 수 있는 경우, 사용자 입력에 대응되는 태스크를 수행한 결과를 생성할 수 있다. 일 실시 예에 따르면, 대화 매니저 모듈(240)은 사용자 입력에 대한 응답으로 상기 컨텐츠 제공 모듈에서 생성된 상기 결과를 전자 장치(100)로 송신할 수 있다.
일 실시 예에 따르면, 자연어 생성 모듈(NLG)(250)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 상기 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 상기 텍스트 형태로 변경된 정보는 전자 장치(100)로 송신되어 디스플레이(120)에 표시되거나, 텍스트 음성 변환 모듈(260)로 송신되어 음성 형태로 변경될 수 있다.
일 실시 예에 따르면, 텍스트 음성 변환 모듈(260)은 텍스트 형태의 정보를 음성 형태의 정보로 변경할 수 있다. 텍스트 음성 변환 모듈(260)은 자연어 생성 모듈(250)로부터 텍스트 형태의 정보를 수신하고, 상기 텍스트 형태의 정보를 음성 형태의 정보로 변경하여 전자 장치(100)로 송신할 수 있다. 전자 장치(100)은 상기 음성 형태의 정보를 스피커(130)로 출력할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220), 패스 플래너 모듈(230) 및 대화 매니저 모듈(240)은 하나의 모듈로 구현될 수 있다. 예를 들어, 자연어 이해 모듈(220), 패스 플래너 모듈(230) 및 대화 매니저 모듈(240)은 하나의 모듈로 구현되어 사용자의 의도 및 파라미터를 결정하고, 상기 결정된 사용자의 의도 및 파라미터에 대응되는 응답(예: 패스 룰)을 생성할 수 있다. 이에 따라, 생성된 응답은 전자 장치(100)로 송신될 수 있다.
일 실시 예에 따르면, 예측 데이터베이스(270)는 웨이크업 발화를 수신하기 이전에 전자 장치(100)로부터 수집된 음성 데이터에 포함된 정보를 저장할 수 있다. 예를 들면, 예측 데이터베이스(270)는 자동 음성 인식 모듈(210)로부터 추출된 텍스트 데이터, 화자 정보, 또는 키워드를 저장할 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 패스 플래너 모듈(230)로부터 생성된 패스 룰, 상기 패스 룰에 관련한 사용자별 가중치 정보, 앱(141, 143), 또는 상기 앱(141, 143)의 상태 정보를 저장할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 패스 플래너 모듈(path planner module)의 패스 룰(path rule)을 생성하는 방법을 나타낸 도면이다.
도 7은 참조하면, 일 실시 예에 따른, 자연어 이해 모듈(220)은 앱의 기능을 어느 하나 동작(예: 상태 A 내지 상태 F)으로 구분하여 패스 룰 데이터베이스(231)에 저장할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 어느 하나의 동작(예: 상태)으로 구분된 복수의 패스 룰(A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F)을 포함하는 패스 룰 셋을 패스 룰 데이터베이스(231)에 저장할 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)의 패스 룰 데이터베이스(231)는 앱의 기능을 수행하기 위한 패스 룰 셋을 저장할 수 있다. 상기 패스 룰 셋은 복수의 동작(예: 상태들의 시퀀스)을 포함하는 복수의 패스 룰을 포함할 수 있다. 상기 복수의 패스 룰은 복수의 동작 각각에 입력되는 파라미터에 따라 실행되는 동작이 순차적으로 배열될 수 있다. 일 실시 예에 따르면, 상기 복수의 패스 룰은 온톨로지(ontology) 또는 그래프 모델(graph model) 형태로 구성되어 패스 룰 데이터베이스(231)에 저장될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력의 의도 및 파라미터에 대응되는 상기 복수의 패스 룰(A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중에 최적의 패스 룰(A-B1-C3-D-F)을 선택할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 사용자 입력에 완벽히 매칭되는 패스 룰이 없는 경우 전자 장치(100)에 복수의 룰을 전달할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 사용자 입력에 부분적으로 대응된 패스 룰(예: A-B1)을 선택할 수 있다. 자연어 이해 모듈(220)은 사용자 입력에 부분적으로 대응된 패스 룰(예: A-B1)을 포함하는 하나 이상의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F)을 선택하여 전자 장치(100)에 전달할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 전자 장치(100)의 추가 입력에 기초하여 복수의 패스 룰 중 하나를 선택하고, 상기 선택된 하나의 패스 룰을 전자 장치(100)에 전달 할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 전자 장치(100)에서 추가로 입력된 사용자 입력(예: C3를 선택하는 입력)에 따라 복수의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중 하나의 패스 룰(예: A-B1-C3-D-F)을 선택하여 전자 장치(100)에 송신할 수 있다.
또 다른 실시 예에 따르면, 자연어 이해 모듈(220)은 자연어 이해 모듈(220)을 통해 전자 장치(100)에 추가로 입력된 사용자 입력(예: C3를 선택하는 입력)에 대응되는 사용자의 의도 및 파라미터를 결정할 수 있고, 상기 결정된 사용자의 의도 또는 파라미터를 전자 장치(100)로 송신할 수 있다. 전자 장치(100)은 상기 송신된 의도 또는 상기 파라미터에 기초하여, 복수의 패스 룰(예: A-B1-C1, A-B1-C2, A-B1-C3-D-F, A-B1-C3-D-E-F) 중 하나의 패스 룰(예: A-B1-C3-D-F)을 선택할 수 있다.
이에 따라, 전자 장치(100)은 상기 선택된 하나의 패스 룰에 의해 앱(141, 143)의 동작을 완료시킬 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 정보가 부족한 사용자 입력이 지능형 서버(200)에 수신된 경우, 상기 수신한 사용자 입력에 부분적으로 대응되는 패스 룰을 생성할 수 있다. 예를 들어, 자연어 이해 모듈(220)은 상기 부분적으로 대응된 패스 룰을 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 실행하여 상기 패스 룰을 수신하고, 실행 매니저 모듈(147)로 상기 부분적으로 대응된 패스 룰을 전달할 수 있다. 프로세서(150)는 실행 매니저 모듈(147)를 통해 상기 패스 룰에 따라 제1 앱(141)을 실행시킬 수 있다. 프로세서(150)는 실행 매니저 모듈(147)을 통해 제1 앱(141)을 실행하면서 부족한 파라미터에 대한 정보를 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 상기 부족한 파라미터에 대한 정보를 이용하여 사용자에게 추가 입력을 요청할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 사용자에 의해 추가 입력이 수신되면 사용자 입력을 지능형 서버(200)로 송신하여 처리할 수 있다. 자연어 이해 모듈(220)은 상기 추가로 입력된 사용자 입력의 의도 및 파라미터 정보에 기초하여 추가된 패스 룰을 생성하여 지능형 에이전트(145)로 송신할 수 있다. 프로세서(150)는 지능형 에이전트(145)를 통해 실행 매니저 모듈(147)로 상기 패스 룰을 송신하여 제2 앱(143)을 실행할 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 일부 정보가 누락된 사용자 입력이 지능형 서버(200)에 수신된 경우, 개인화 정보 서버(300)로 사용자 정보 요청을 송신할 수 있다. 개인화 정보 서버(300)는 페르소나 데이터베이스에 저장된 사용자 입력을 입력한 사용자의 정보를 자연어 이해 모듈(220)로 송신할 수 있다. 자연어 이해 모듈(220)은 상기 사용자 정보를 이용하여 일부 동작이 누락된 사용자 입력에 대응되는 패스 룰을 선택할 수 있다. 이에 따라, 자연어 이해 모듈(220)은 일부 정보가 누락된 사용자 입력이 지능형 서버(200)에 수신되더라도, 누락된 정보를 요청하여 추가 입력을 받거나 사용자 정보를 이용하여 상기 사용자 입력에 대응되는 패스 룰을 결정할 수 있다.
하기에 첨부된 표 1은 일 실시 예에 따른 사용자가 요청한 태스크와 관련한 패스 룰의 예시적 형태를 나타낼 수 있다.
Path rule ID State parameter
Gallery_101 pictureView(25) NULL
searchView(26) NULL
searchViewResult(27) Location,time
SearchEmptySelectedView(28) NULL
SearchSelectedView(29) ContentType,selectall
CrossShare(30) anaphora
표 1을 참조하면, 사용자 발화(예: “사진 공유해줘”)에 따라 지능형 서버(도 1의 지능형 서버(200))에서 생성 또는 선택되는 패스 룰은 적어도 하나의 상태(state)(25, 26, 27, 28, 29 또는 30)를 포함할 수 있다. 예를 들어, 상기 적어도 하나의 상태 (예: 전자 장치의 어느 한 동작 상태)는 사진 어플리케이션 실행(PicturesView)(25), 사진 검색 기능 실행(SearchView)(26), 검색 결과 표시 화면 출력(SearchViewResult)(27), 사진이 미(non)선택된 검색 결과 표시 화면 출력(SearchEmptySelectedView)(28), 적어도 하나의 사진이 선택된 검색 결과 표시 화면 출력(SearchSelectedView)(29) 또는 공유 어플리케이션 선택 화면 출력(CrossShare)(30) 중 적어도 하나에 해당될 수 있다.
일 실시 예에서, 상기 패스 룰의 파라미터 정보는 적어도 하나의 상태(state)에 대응될 수 있다. 예를 들어, 상기 적어도 하나의 사진이 선택된 검색 결과 표시 화면 출력(29) 상태에 포함될 수 있다.
상기 상태(25, 26, 27, 28, 29)들의 시퀀스를 포함한 패스 룰의 수행 결과 사용자가 요청한 태스크 (예: “사진 공유해줘!”)가 수행될 수 있다.
도 8은 본 발명의 일 실시 예에 따른 지능형 서비스 모듈의 페르소나 모듈(persona module)이 사용자의 정보를 관리하는 것을 나타낸 도면이다.
도 8을 참조하면, 프로세서(150)는 페르소나 모듈(149b)을 통해 앱(141, 143), 실행 매니저 모듈(147) 또는 컨텍스트 모듈(149a)로부터 전자 장치(100)의 정보를 전달 받을 수 있다. 프로세서(150)는 앱(141, 143) 및 실행 매니저 모듈(147)을 통해 앱의 동작(141b, 143b)을 실행한 결과 정보를 동작 로그 데이터베이스에 저장할 수 있다. 프로세서(150)는 컨텍스트 모듈(149a)을 통해 전자 장치(100)의 현재 상태에 대한 정보를 컨텍스트 데이터베이스에 저장할 수 있다. 프로세서(150)는 페르소나 모듈(149b)을 통해 상기 동작 로그 데이터베이스 또는 상기 컨텍스트 데이터베이스로부터 상기 저장된 정보를 전달 받을 수 있다. 상기 동작 로그 데이터베이스 및 상기 컨텍스트 데이터베이스에 저장된 데이터는, 예를 들어, 분석 엔진(analysis engine)에 의해 분석되어 페르소나 모듈(149b)로 전달될 수 있다.
일 실시 예에 따르면, 프로세서(150)는 페르소나 모듈(149b)을 통해 앱(141, 143), 실행 매니저 모듈(147) 또는 컨텍스트 모듈(149a)로부터 수신한 정보를 제안 모듈(149c)로 송신할 수 있다. 예를 들어, 프로세서(150)는 페르소나 모듈(149b)을 통해 상기 동작 로그 데이터베이스 또는 상기 컨텍스트 데이터베이스에 저장된 데이터를 제안 모듈(149c)로 전달할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 페르소나 모듈(149b)을 통해 앱(141, 143), 실행 매니저 모듈(147) 또는 컨텍스트 모듈(149a)로부터 전달 받은 정보를 개인화 정보 서버(300)로 송신할 수 있다. 예를 들어, 프로세서(150)는 페르소나 모듈(149b)을 통해 상기 동작 로그 데이터베이스 또는 상기 컨텍스트 데이터베이스에 누적되어 저장된 데이터를 주기적으로 개인화 정보 서버(300)에 송신할 수 있다.
일 실시 예에 따르면, 프로세서(150)는 페르소나 모듈(149b)을 통해 상기 동작 로그 데이터베이스 또는 상기 컨텍스트 데이터베이스에 저장된 데이터를 제안 모듈(149c)로 전달할 수 있다. 페르소나 모듈(149b)통해 생성된 사용자 정보는 페르소나 데이터베이스에 저장될 수 있다. 페르소나 모듈(149b)는 상기 페르소나 데이터베이스에 저장된 사용자 정보를 주기적으로 개인화 정보 서버(300)로 송신할 수 있다. 일 실시 예에 따르면, 페르소나 모듈(149b)을 통해 개인화 정보 서버(300)로 송신된 정보는 페르소나 데이터베이스에 저장될 수 있다. 개인화 정보 서버(300)는 상기 페르소나 데이터베이스에 저장된 정보를 이용하여 지능형 서버(200)의 패스 룰 생성에 필요한 사용자 정보를 추론할 수 있다.
일 실시 예에 따르면, 페르소나 모듈(149b)을 통해 송신된 정보를 이용하여 추론된 사용자 정보는 프로파일(profile) 정보 또는 프리퍼런스(preference) 정보를 포함할 수 있다. 상기 프로파일 정보 또는 프리퍼런스 정보는 사용자의 계정(account) 및 누적된 정보를 통해 추론될 수 있다.
상기 프로파일 정보는 사용자의 신상 정보를 포함할 수 있다. 예를 들어, 상기 프로파일 정보는 사용자의 인구 통계 정보를 포함할 수 있다. 상기 인구 통계 정보는, 예를 들어, 사용자의 성(gender), 또는 나이를 포함할 수 있다. 다른 예를 들어, 상기 프로파일 정보는 라이프 이벤트(life event) 정보를 포함할 수 있다. 상기 라이프 이벤트 정보는, 예를 들어, 로그 정보를 라이프 이벤트 모델(life event model)과 비교하여 추론되고, 행동 패턴(behavior patter)을 분석하여 보강될 수 있다. 또 다른 예를 들어, 상기 프로파일 정보는 관심(interest) 정보를 포함할 수 있다. 상기 관심 정보는, 예를 들어, 관심 쇼핑 물품, 또는 관심 분야(예: 스포츠, 또는 정치)를 포함할 수 있다. 또 다른 예를 들어, 상기 프로파일 정보는 활동 지역 정보를 포함할 수 있다. 상기 활동 지역 정보는, 예를 들어, 집, 또는 일하는 곳에 대한 정보를 포함할 수 있다. 상기 활동 지역에 대한 정보는 장소의 위치에 대한 정보뿐만 아니라 누적 체류 시간 및 방문 횟수를 기준으로 우선 순위가 기록된 지역에 대한 정보를 포함할 수 있다. 또 다른 예를 들어, 상기 프로파일 정보는 활동 시간 정보를 포함할 수 있다. 상기 활동 시간 정보는, 예를 들어, 기상 시간, 출퇴근 시간, 또는 수면 시간에 대한 정보를 포함할 수 있다. 상기 출퇴근 시간에 대한 정보는 상기 활동 지역 정보(예: 집 및 일하는 곳에 대한 정보)를 이용하여 추론될 수 있다. 상기 수면 시간에 대한 정보는 전자 장치(100)의 미사용 시간을 통해 추론될 수 있다.
상기 프리퍼런스 정보는 사용자의 선호도 정보를 포함할 수 있다. 예를 들어, 상기 프리퍼런스 정보는 앱 선호도에 대한 정보를 포함할 수 있다. 상기 앱 선호도는, 예를 들어, 앱의 사용 기록(예: 시간별, 장소별 사용 기록)을 통해 추론될 수 있다. 상기 앱의 선호도는 사용자의 현재 상태(예: 시간, 장소)에 따라 실행될 앱을 결정하기 위해 이용될 수 있다. 다른 예를 들어, 상기 프리퍼런스 정보는 연락처 선호도에 대한 정보를 포함할 수 있다. 상기 연락처 선호도는, 예를 들어, 연락처의 연락 빈도(예: 시간별, 장소별 연락하는 빈도) 정보를 분석하여 추론될 수 있다. 상기 연락처 선호도는 사용자의 현재 상태(예: 중복된 이름에 대한 연락)에 따라 연락할 연락처를 결정하기 위해 이용될 수 있다. 또 다른 예를 들어, 상기 프리퍼런스 정보는 세팅(setting) 정보를 포함할 수 있다. 상기 세팅 정보는, 예를 들어, 특정 세팅 값의 설정 빈도(예: 시간별, 장소별 세팅 값으로 설정하는 빈도) 정보를 분석하여 추론될 수 있다. 상기 세팅 정보는 사용자의 현재 상태(예: 시간, 장소, 상황)에 따라 특정 세팅 값을 설정하기 위해 이용될 수 있다. 또 다른 예를 들어, 상기 프리퍼런스 정보는 장소 선호도를 포함할 수 있다. 상기 장소 선호도는, 예를 들어, 특정 장소의 방문 기록(예: 시간별 방문 기록)을 통해 추론될 수 있다. 상기 장소 선호도는 사용자의 현재 상태(예: 시간)에 따라 방문하고 있는 장소를 결정하기 위하여 이용될 수 있다. 또 다른 예를 들어, 상기 프리퍼런스 정보는 명령 선호도를 포함할 수 있다. 상기 명령 선호도는, 예를 들어, 명령 사용 빈도(예: 시간별, 장소별 사용 빈도)를 통해 추론될 수 있다. 상기 명령 선호도는 사용자의 현재 상태(예: 시간, 장소)에 따라 사용될 명령어 패턴을 결정하기 위해 이용될 수 있다. 특히, 상기 명령 선호도는 로그 정보를 분석하여 실행되고 있는 앱의 현재 상태에서 사용자가 가장 많이 선택한 메뉴에 대한 정보를 포함할 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치(예: 도 2의 전자 장치(100))는, 하우징, 상기 하우징 내부에 위치하고 상기 하우징의 제 1 부분을 통해 적어도 일부가 노출된 마이크, 상기 하우징 내부에 위치하고 상기 하우징의 제 2 부분을 통해 적어도 일부가 노출된 적어도 하나의 스피커(예: 도 2의 스피커(130)), 상기 하우징 내부에 위치한 통신 회로, 상기 하우징 내부에 위치하고, 상기 마이크, 상기 스피커(130) 및 상기 통신 회로에 작동적으로 연결된 프로세서(예: 도 2의 프로세서(150)), 및 상기 하우징 내부에 위치하고 상기 프로세서(150)에 작동적으로 연결되고, 복수개의 어플리케이션 프로그램들을 저장하도록 구성된 메모리(예: 도 2의 메모리(140))를 포함하고, 상기 메모리(140)는, 실행될 때, 상기 프로세서(150)가, 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하고, 상기 획득한 음성 데이터를 외부 서버(예: 도 2의 지능형 서버(200))로 전송하여, 상기 외부 서버(200)에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스(예: 도 6의 예측 데이터베이스(270))를 생성할 것을 요청하고, 및 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스(270)에 포함된 적어도 하나의 정보를 이용하여 상기 사용자의 의도와 관련된 추천 서비스를 출력하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 웨이크업 발화가 수신되면, 상기 사용자의 음성 데이터를 수집하기 시작한 제 1 시점과, 상기 웨이크업 발화가 수신된 제 2 시점 간의 차이를 계산하고, 상기 차이의 크기에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하도록 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 차이의 크기가 지정된 값보다 크면 상기 웨이크업 발화를 입력한 화자 정보에 더 높은 가중치를 설정하고, 상기 차이의 크기가 지정된 값보다 작으면 상기 예측 데이터베이스(270)에 저장된 명령어의 완성도에 더 높은 가중치를 설정하도록 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 웨이크업 발화가 수신되면, 상기 웨이크업 발화와 함께 키워드가 포함되어 있는지 결정하고, 상기 키워드가 포함된 경우, 상기 키워드에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하도록 할 수 있다. 상기 전자 장치(100)는 LED 조명(1003)을 더 포함하고, 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 사용자의 대화의 문맥을 이해한 정도에 기반하여, 상기 LED 조명(1003)의 컬러, 길이, 또는 두께 중 적어도 하나를 가변하도록 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 사용자의 대화로부터 획득한 파라미터 정보의 양이 지정된 범위를 초과하면, 상기 획득한 파라미터 정보에 기반하여 추천 서비스를 결정하고, 상기 추천 서비스가 결정되면, 상기 LED 조명(1003)이 지정된 컬러를 표시하도록 제어하도록 할 수 있다. 상기 지정된 조건은, 음성 입력이 지정된 값 이상인 경우, 음성 입력이 지정된 시간 동안 없다가 입력된 경우, 음성 입력이 지정된 값 이하로 작아졌다가 상기 지정된 값 이상으로 커진 경우, 사용자로부터 물리 버튼의 입력이 수신된 경우, 사용자로부터 지정된 문자가 입력된 입력한 경우, 복수의 사용자로부터 음성 입력이 수신되는 경우, 지정된 인원 이상의 사용자로부터 음성 입력이 수신되는 경우, 지정된 공간 내에 상기 전자 장치(100)가 복수개인 경우, 상기 전자 장치(100)에 등록된 사용자의 계정이 복수개인 경우, 상기 전자 장치(100)에 등록된 일정에 해당하는 시점인 경우, 또는 상기 전자 장치(100)가 지정된 공간에 배치되고, 미리 등록된 일정에 해당하는 시점인 경우 중에서 적어도 하나를 포함 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 획득한 음성 데이터를 분석하여 화자를 인식하고, 상기 인식된 화자별로 상기 예측 데이터베이스(270)를 구성하도록 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스(270)에 포함된 적어도 하나의 정보로부터 상기 사용자의 의도가 명확하지 않은 경우, 추가적인 정보 입력을 요구하는 UI(user interface) 또는 UX(user experience)를 출력하도록 할 수 있다. 상기 인스트럭션들은, 상기 프로세서(150)가, 상기 수집된 음성 데이터를 지정된 단위로 상기 외부 서버(200)로 전송하고, 상기 전송에 대한 응답으로서 패스 룰을 상기 외부 서버(200)로부터 수신하도록 하고, 상기 패스 룰은 상기 사용자의 의도와 관련한 태스크를 수행하기 위한, 상기 전자 장치(100)의 상태들의 시퀀스(sequence)에 관한 정보를 포함 할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 통합 지능화 시스템을 나타낸 도면이다.
도 9를 참조하면, 일 실시 예에 따른 통합 지능화 시스템(예: 도 1의 10)은, 전자 장치(예: 도 2의 100), 또는 전자 장치(100)와 네트워크를 통해 연결되는 지능형 서버(예: 도 6의 200)를 포함할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 오디오 출력 장치일 수 있다. 예를 들면, 전자 장치(100)는 인공 지능(artificial intelligence) 스피커로 구성될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 사용자의 웨이크업 발화를 수신하기 이전에, 사용자의 대화를 미리 수집하고, 수집된 사용자의 대화를 인식하여 사용자의 의도와 관련한 정보를 포함하는 예측 데이터베이스(270)를 구성할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 예측 데이터베이스(270)를 구성한 이후에 사용자의 웨이크업 발화가 수신되면, 예측 데이터베이스(270)를 참조하여 사용자에게 웨이크업 발화를 입력하기 이전의 대화와 연관된 동작, 명령 또는 서비스의 제공을 추천할 수 있다. 예를 들면, 전자 장치(100)는 사용자가 웨이크업 발화를 입력하기 이전에 음식 배달과 관련한 대화를 한 경우, 사용자의 웨이크업 발화에 응답하여 음식 배달 주문에 관련한 동작 또는 명령을 추천할 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는 사용자의 호출에 응답하여 동작 또는 명령을 추천할 뿐만 아니라, 추천하는 동작 또는 명령과 관련된 검색 기능을 먼저 수행하고, 검색된 결과를 사용자에게 제공할 수 있다. 예를 들면, 전자 장치(100)는 음식 배달 주문과 관련한 동작 또는 명령을 추천함과 아울러, 현재 배달 가능한 음식, 할인 정보, 또는 배달 가능한 시간을 미리 검색하고, 미리 검색한 결과를 더 제공할 수 있다.
일 실시 예에 따르면, 예측 데이터베이스(270)는 지능형 서버(200)에 구성될 수 있다. 예를 들면, 지능형 서버(200)는 전자 장치(100)와 연동하여 동작하는 예측 데이터베이스(270)를 포함하고, 사용자의 의도와 관련한 명령어를 구성하기 위해 패스 룰 데이터베이스(path rule database)(PR DB)(231), 또는 자연어 이해 모듈(220)을 더 포함할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 사용자의 의도와 관련한 명령어를 구성하기 위해 도 6에 개시된 지능형 서버(200)의 구성요소들 중 적어도 하나를 더 포함할 수 있다. 어떤 실시 예에 따르면, 예측 데이터베이스(270)는 지능형 서버(200)에 구성됨과 아울러 전자 장치(100)에도 구성될 수 있다. 예를 들어, 전자 장치(100)가 예측 데이터베이스(270)를 포함할 경우, 전자 장치(100)에 구성된 예측 데이터베이스(270)는 지능형 서버(200)에 구성된 예측 데이터베이스(270)와 연동되도록 구성될 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 명령 완성도, 화자 정보, 대화 시점, 또는 문맥 관련 키워드를 포함할 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 사용자의 웨이크업 발화 수신시 서비스(동작) 선택을 위한 가중치 산정에 필요한 정보들을 포함할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치(100)는 사용자의 웨이크업 발화를 수신하기 이전에 발생된 사용자의 대화를 수집하여 사용자의 의도 또는 명령을 예측하고, 예측된 결과에 기반하여 사용자에게 동작 또는 서비스의 제공을 제안함으로써 빠르고 정확성 높은 응답 및 추가적인 정보에 기반한 응답을 제공할 수 있다. 본 발명의 다양한 실시 예는 사용자가 전자 장치(100)를 통해 음성 인식 인공 지능 서비스를 이용할 때, 음성 입력의 횟수 또는 양을 줄임으로써 사용자의 편의를 높일 수 있다.
이하, 도 9를 참조하여, 본 발명의 일 실시 예에 따른 전자 장치(100)의 사용자의 의도를 미리 예측하는 음성 인식 인공 지능 서비스의 예시를 설명한다.
일 실시 예에 따르면, 참조번호 1에서, 전자 장치(100)는, 음성 인식 기능을 갖는 인공 지능 스피커로 구성되고, 사용자의 웨이크업 발화가 수신되기 이전에, 사용자의 대화를 수집할 수 있다. 예를 들면, 전자 장치(100)는 사용자의 웨이크업 발화 이전에 전자 장치(100)의 주변에 위치한 사용자 A 및 사용자 B의 대화를 수집할 수 있다.
일 실시 예에 따르면, 참조 번호 2에서, 전자 장치(100)는, 수집된 사용자의 대화를 지능형 서버(200)로 전송하고, 지능형 서버(200)는 수신된 사용자의 대화를 분석하여 사용자의 의도를 판단할 수 있는 정보들을 수집하고, 수집된 정보들로 예측 데이터베이스(270)를 구성할 수 있다. 다른 실시 예에 따르면, 상기 언급한 지능형 서버(200)가 예측 데이터베이스(270)를 구성하는 동작들 중에서 적어도 일부는 전자 장치(100)가 수행할 수 있다.
일 실시 예에 따르면, 참조 번호 3에서, 전자 장치(100)는, 사용자로부터 웨이크업 발화를 수신할 수 있다. 예를 들면, 전자 장치(100)는 사용자로부터 "하이 빅스비!!"와 같은 미리 지정된 웨이크업 발화를 수신할 수 있다.
일 실시 예에 따르면, 참조 번호 4에서, 전자 장치(100)는 웨이크업 발화에 응답하여, 인공 지능 서비스를 제공할 수 있다. 예를 들면, 전자 장치(100)는 웨이크업 발화에 응답하여, 예측 데이터베이스(270)를 참조하여 사용자에게 사용자가 웨이크업 발화를 입력하기 이전의 대화와 연관된 동작, 명령 또는 서비스의 제공을 추천할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화의 유형, 웨이크업 발화가 발생된 시점, 또는 웨이크업 발화를 입력한 사용자에 기반하여 추천 서비스의 선택을 위한 가중치를 결정하고, 결정된 가중치에 기반하여 추천 서비스를 제공할 수 있다. 상기에서, 가중치 결정과 관련한 설명은 도 13을 참조하여 구체적으로 후술한다.
도 10a 및 도 10b는 본 발명의 일 실시 예에 따른 전자 장치(100)의 상태 표시 방법을 설명한 예시이다.
도 10 및 도 10b를 참조하면, 본 발명의 일 실시 예에 따른 전자 장치(예: 도 2의 100)는 웨이크업 발화를 수신하기 이전에 사용자 대화를 수집하는 상태, 또는 웨이크업 발화에 응답하여 추천 서비스를 제공하는 상태와 관련하여 UI(user interface) 또는 UX(user experience)를 제공할 수 있다. 예를 들면, 전자 장치(100)는 하우징의 적어도 일부분에 배치된 LED 조명(1003)을 포함할 수 있고, 전자 장치(100)는 사용자 대화를 수집하는 상태 또는 추천 서비스를 제공하는 상태와 관련하여 LED 조명(1003)을 제어할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 전자 장치(100)의 상태에 기반하여 LED 조명(1003)의 모양, 밝기, 세기, 또는 컬러와 같은 형태를 제어할 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는 하우징의 적어도 일부분에 배치된 디스플레이를 포함할 수 있고, 전자 장치(100)는 사용자 대화를 수집하는 상태 또는 추천 서비스를 제공하는 상태와 관련하여 디스플레이를 제어할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는, 도 10a에 도시된 바와 같이, 사용자의 대화를 수집하는 상태에 따라 제 1 형태를 갖도록 LED 조명(1003)을 제어하고, 사용자의 대화의 문맥을 이해한 정도에 기반하여 LED 조명(1003)의 길이, 또는 두께를 가변할 수 있다. 예를 들면, 전자 장치(100)는 문맥을 이해한 정도가 증가할 수록 LED 조명(1003)의 길이 또는 두께를 증가시킴으로써, 사용자로 하여금 전자 장치(100)가 대화 내용을 얼마만큼 이해하고 있는지 쉽게 인지할 수 있도록 할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 사용자의 대화의 문맥을 이해한 정도를 스코어로 산출할 수 있고, 산출된 스코어에 기반하여 LED 조명(1003)의 길이를 제어할 수 있다. 예를 들면, 전자 장치(100)는 상기 스코어가 상대적으로 낮은 경우 LED 조명(1003)이 제 1 길이(1001)를 갖도록 제어하고, 상기 스코어가 상대적으로 높은 경우 LED 조명(1003)이 상기 제 1 길이(1001)보다 긴 제 2 길이(1002)를 갖도록 제어할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는, 도 10b에 도시된 바와 같이, 사용자의 대화의 문맥을 완전히 이해한 경우, 추천하는 서비스를 결정하고, 추천 서비스가 있음을 사용자가 인지할 수 있도록 LED 조명(1003)을 제 2 형태로 제어할 수 있다. 예를 들면, 전자 장치(100)는 사용자의 대화를 수집하는 기간에는 LED 조명(1003)이 제 1 컬러를 표시하도록 제어하고, 추천 서비스가 결정된 후에는 LED 조명(1003)이 제 2 컬러를 표시하도록 제어할 수 있다. 사용자는 LED 조명(1003)이 제 2 컬러를 표시하는 것을 확인함으로써, 전자 장치(100)가 추천하는 인공 지능 서비스가 있음을 인지할 수 있고, 이후에 음성 웨이크업 발화를 입력함으로써 추천 서비스를 확인할 수 있다. 어떤 실시 예에 따르면, 전자 장치(100)는 추천하는 서비스의 완성도를 미리 판단하고, 판단된 결과에 기반하여 LED 조명(1003)의 그라데이션(gradation)을 가변할 수 있다. 예를 들면, 전자 장치(100)는 추천하는 서비스의 완성도가 높을 수록, LED 조명(1003)의 그라데이션(gradation)을 증가시킬 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 추천하는 서비스의 완성도를 이전 대화를 기반으로 획득한 파라미터 정보의 획득량을 기반으로 결정할 수 있다. 예를 들면, 전자 장치(100)는 ‘동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 또는 동작의 이유’와 같은 파라미터들이 미리 지정되고, 이전 대화로부터 상기 파라미터들을 결정하고, 상기 파라미터들이 결정된 정도가 증가할수록 추천하는 서비스의 완성도가 높은 것으로 결정할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 전자 장치(100)의 인공 지능 서비스 제공 방법을 설명한 예시이다.
도 11을 참조하면, 본 발명의 일 실시 예에 따른 전자 장치(예: 도 2의 100)는 웨이크업 발화를 수신하기 이전에 사용자 대화를 수집하는 상태, 또는 웨이크업 발화에 응답하여 추천 서비스를 제공하는 상태와 관련하여 다양한 형태로 UI(user interface) 또는 UX(user experience)를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는, 음성 인식 기능을 갖는 인공 지능 스피커로 구성되고, 사용자의 웨이크업 발화가 수신되기 이전에, 사용자의 대화를 수집할 수 있다. 예를 들면, 전자 장치(100)는 사용자의 웨이크업 발화 이전에 전자 장치(100)의 주변에 위치한 사용자 A, 사용자 B, 및 사용자 C의 대화를 아래와 같이 수집하는 것을 가정할 수 있다.
참조 번호 1에서,. 사용자 A는 “우리 이따 2시에 피자 먹자.”고 이야기 할 수 있다. 참조 번호 2에서, 사용자 C는 “그래 불고기 피자가 좋겠어.”라고 이야기 할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화를 수신하기 이전에 상기 대화를 수집하고, 수집된 대화를 분석함으로써, 사용자의 의도를 미리 예측하도록 구성될 수 있다. 예를 들면, 일 실시 예에 따르면, 전자 장치(100)는 사용자의 의도를 파악하기 위해 대화로부터 파라미터를 추출하고, 추출된 파라미터를 예측 데이터베이스(270)에 저장할 수 있다. 일 실시 예에 따르면, 상기 파라미터는, ‘동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 또는 동작의 이유’ 중에서 적어도 일부를 포함할 수 있다. 예를 들면, 전자 장치(100)는, 상기 대화를 분석하여, 주문 예상 시간은 "2시"이고, 주문하려는 음식은 "불고기 피자"라는 파라미터 정보들을 예측 데이터베이스(270)에 저장할 수 있다.
예를 들면, 사용자 B는 상기 대화를 진행한 이후에 전자 장치(100)에게 웨이크업 발화(예: 빅스비!!)를 입력하는 것을 가정할 수 있다. 참조 번호 3에서, 사용자 B는 “빅스비!!”라고 이야기 할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 사용자 B로부터 웨이크업 발화(예: 빅스비!!)를 수신한 것에 응답하여, 예측 데이터베이스(270)를 참고하여 피자 주문과 관련하여 검색을 수행하고, 검색 결과를 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 아래 예시와 같이, 사용자의 의도와 직접적으로 연관된 정보로서 "2시에 불고기 피자 주문"를 검색하여 검색 결과를 제공할 뿐만 아니라, "오늘 고구마 피자의 20% 할인"과 같이 사용자의 의도와 간접적으로 연관된 정보(예: 할인 정보)를 더욱 검색하여 검색 결과를 제공할 수 있다. 참조 번호 4에서, 전자 장치(100)는 “2시에 불고기 피자 주문하겠습니다. 참고로 오늘 고구마 피자가 20% 할인됩니다.”라고 음성을 출력하거나 디스플레이를 통해서 정보를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 상기 추천 서비스를 제공하는 동안 LED 조명(1003)이 지정된 컬러를 표시하도록 제어할 수 있다.
도 12는 본 발명의 일 실시 예에 따른 전자 장치(100)의 인공 지능 서비스 제공 방법을 설명한 다른 예시이다.
도 12를 참조하면, 본 발명의 다른 실시 예에 따른 전자 장치(예: 도 2의 100)는 웨이크업 발화를 수신하기 이전에 발생된 사용자들의 대화를 기반으로 추천 서비스를 제공할 수 있다. 예를 들면, 전자 장치(100)는 사용자의 웨이크업 발화 이전에 전자 장치(100)의 주변에 위치한 사용자 A, 사용자 B, 및 사용자 C의 대화를 아래와 같이 수집하는 것을 가정할 수 있다. 참조 번호 1에서, 사용자 A는 “우리 이따 2시에 피자 먹자.”라고 이야기 할 수 있다. 참조 번호 2에서, 사용자 C는 “그래 불고기 피자가 좋겠어.”라고 이야기 할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화를 수신하기 이전에 상기 대화를 수집하고, 수집된 대화를 분석함으로써, 사용자의 의도를 미리 예측할 수 있다. 예를 들면, 일 실시 예에 따르면, 전자 장치(100)는 사용자의 의도를 파악하기 위해 대화로부터 파라미터를 추출하고, 추출된 파라미터를 예측 데이터베이스(270)에 저장할 수 있다. 일 실시 예에 따르면, 파라미터는, ‘동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 또는 동작의 이유’ 중에서 적어도 일부를 포함할 수 있다. 예를 들면, 전자 장치(100)는, 상기 대화를 분석하여, 주문 예상 시간은 "2시"이고, 주문하려는 음식은 "불고기 피자"라는 파라미터 정보들을 예측 데이터베이스(270)에 저장할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 추천하는 서비스의 완성도를 산출하고, 추천하는 서비스의 완성도가 지정된 값을 초과하면 추천 서비스를 확정할 수 있다. 예를 들면, 전자 장치(100)는 수집된 대화로부터 파라미터 정보를 획득하고, 획득된 파라미터 정보에 기반하여 사용자의 의도를 결정하고, 사용자 의도와 관련한 추천 서비스를 실시간으로 구성할 수 있다. 예를 들면, 전자 장치(100)는, 파라미터 정보의 획득량이 지정된 값을 초과하면, 파라미터 정보의 획득량이 지정된 값을 초과한 시점까지 획득한 파라미터 정보들에 기반하여 사용자의 의도를 결정하고, 결정된 사용자의 의도와 관련한 전자 장치(100)의 동작을 추천 서비스로 확정할 수 있다. 예를 들면, 전자 장치(100)는, 주문 예상 시간은 2시이고, 주문하려는 음식은 불고기 피자라는 파라미터 정보들을 예측 데이터베이스(270)에 저장할 수 있고, 저장된 정보로부터 사용자의 의도는 "2시에 불고기 피자를 주문한다"인 것으로 예측하고, 상기 예측 결과에 기반하여 피자 주문 동작을 추천 서비스로 확정할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 추천 서비스가 확정되면 추천 서비스가 있음을 알리는 UI(user interface) 또는 UX(user experience)를 제공할 수 있다. 전자 장치(100)는 추천하는 서비스의 완성도가 지정된 값을 초과한 경우, 추천 서비스가 있음을 알리는 메시지를음성 신호로 출력하고, 사용자는 상기 전자 장치(100)의 메시지에 답변을 할 수 있다. 예를 들어, 참조 번호 3에서 전자 장치(100)는 확정된 추천 서비스에 기반하여 “제안해도 될까요?”라고 음성을 출력할 수 있다. 참조 번호 4에서 사용자 B는 긍정을 의미하는 답변으로 “좋아”라고 이야기 할 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는, 추천 서비스가 있음을 알리는 UI(user interface) 또는 UX(user experience)로서 LED 조명(1003)을 제어하거나, 또는 지정된 사운드를 출력할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 사용자로부터 "좋아"와 같은 긍정을 의미하는 답변을 수신한 것에 응답하여, 예측 데이터베이스(270)를 참고하여 피자 주문과 관련한 검색을 수행하고, 검색 결과를 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 사용자의 의도와 직접적으로 연관된 정보를 검색하여 검색 결과를 제공할 뿐만 아니라, 사용자의 의도와 간접적으로 연관된 정보(예: 할인 정보)를 더욱 검색하여 검색 결과를 제공할 수 있다. 예를 들어, 참조 번호 5와 같이, “2시에 불고기 피자 주문하겠습니다. 참고로 오늘 고구마 피자가 20% 할인됩니다.”와 같은 정보를 제공할 수 있다.
본 발명의 다양한 실시 예에 따른 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하는 전자 장치(예: 도 2의 전자 장치(100))의 구동 방법은, 상기 웨이크업 발화를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하는 동작, 상기 획득한 음성 데이터를 외부 서버(예: 도 2의 지능형 서버(200))로 전송하여, 상기 외부 서버(200)에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스(예: 도 6의 예측 데이터베이스(270))를 생성할 것을 요청하는 동작, 상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스(270)에 포함된 적어도 하나의 정보를 이용하여 가중치를 결정하는 동작, 및 상기 결정된 가중치에 기반하여 상기 사용자의 의도와 관련된 추천 서비스를 결정하고, 결정된 추천 서비스를 출력하는 동작을 포함할 수 있다. 상기 가중치를 결정하는 동작은, 상기 웨이크업 발화가 수신되면, 상기 사용자의 음성 데이터를 수집하기 시작한 제 1 시점과, 상기 웨이크업 발화가 수신된 제 2 시점 간의 차이를 계산하는 동작, 상기 차이의 크기가 지정된 값보다 크면 상기 웨이크업 발화를 입력한 화자 정보에 더 높은 가중치를 설정하는 동작, 및 상기 차이의 크기가 지정된 값보다 작으면 상기 예측 데이터베이스(270)에 저장된 명령어의 완성도에 더 높은 가중치를 설정하는 동작을 포함 할 수 있다. 상기 웨이크업 발화가 수신되면, 상기 웨이크업 발화와 함께 키워드가 포함되어 있는지 결정하는 동작, 및 상기 키워드가 포함된 경우, 상기 키워드에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하는 동작을 더 포함 할 수 있다. 상기 전자 장치(100)는 LED 조명(1003)을 포함하고, 상기 추천 서비스를 출력하는 동작은 상기 사용자의 대화의 문맥을 이해한 정도에 기반하여, 상기 LED 조명(1003)의 컬러, 길이, 또는 두께 중 적어도 하나를 가변하는 동작을 포함 할 수 있다. 상기 추천 서비스를 출력하는 동작은 상기 사용자의 대화로부터 획득한 파라미터 정보의 양이 지정된 범위를 초과하면, 상기 획득한 파라미터 정보에 기반하여 추천 서비스를 결정하는 동작, 및 상기 추천 서비스가 결정되면, 상기 LED 조명(1003)이 지정된 컬러를 표시하도록 제어하는 동작을 포함 할 수 있다.
도 13 본 발명의 일 실시 예에 따른 전자 장치(100)의 동작을 개략적으로 나타낸 흐름도이다.
동작 1313에서, 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 사용자의 대화가 시작된 것에 응답하여, 사용자의 대화를 수집할 수 있다.
동작 1315에서, 일 실시 예에 따른 전자 장치(100)는, 수집된 사용자의 대화를 지능형 서버(예: 도 6의 200)로 전달하여, 지능형 서버(200)에게 예측 데이터 베이스(270)를 구성할 것을 요청할 수 있다. 예를 들면, 지능형 서버(예: 도 6의 200)는 전자 장치(100)로부터 사용자 대화를 수신하고, 수신된 사용자의 대화로부터 파라미터를 추출하고, 추출된 파라미터를 기반으로 예측 데이터베이스(270)를 생성할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 전자 장치(100)가 사용자 의도를 파악할 수 있도록, 자연어 이해 모듈(220)과 연동하여 예측 데이터베이스(270)를 구성할 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 문장 완성도, 화자 정보, 또는 대화 시점의 정보를 포함할 수 있다. 어떤 실시 예에 따르면, 예측 데이터베이스(270)는 추천 서비스를 위한 선호도 정보, 추가 문맥 파악을 위한 키워드 정보를 더 포함할 수 있다.
동작 1317에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화가 수신되는지 여부를 결정할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화가 수신되면 동작 1319를 수행하고, 웨이크업 발화가 수신되지 않으면 동작 1313을 다시 수행할 수 있다.
동작 1319에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화가 수신된 것에 응답하여 인공 지능 서비스로서 문장 완성도, 화자 정보, 또는 대화 시점에 적용된 가중치에 기반한 결과를 제공할 수 있다. 예를 들면, 전자 장치(100)는 웨이크업 발화가 수신되면, 지능형 서버(200)에 구성된 예측 데이터베이스(270)를 참조하여 웨이크업 발화의 유형, 웨이크업 발화가 입력된 시점, 또는 웨이크업 발화를 입력한 사용자에 대한 가중치를 결정하고, 결정된 가중치에 기반하여 추천 서비스를 결정하고, 결정된 추천 서비스를 제공할 수 있다. 예를 들면, 전자 장치(100)는, 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 짧은 경우 수집된 대화의 문맥 및 대화의 완성도에 가중치를 높게 설정하고, 수집된 대화의 문맥 및 대화의 완성도에 기반한 추천 서비스를 제공할 수 있다. 또는, 전자 장치(100)는, 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 긴 경우 웨이크업 발화를 입력한 사용자가 누구인지에 가중치를 높게 설정하고, 웨이크업 발화를 입력한 사용자에 연관된 추천 서비스를 제공할 수 있다. 어떤 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 긴 경우 웨이크업 발화를 입력한 사용자에 대하여 인증을 요구하는 UI(user interface) 또는 UX(user experience)를 출력하고, 인증된 경우에만 추천 서비스를 제공하도록 구성될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화를 수신하기 이전에 지능형 서버(200)가 생성한 예측 데이터베이스(270)의 정보를 다운로드하고, 다운로드된 예측 데이터베이스(270)의 정보를 메모리(140)에 저장할 수 있다. 이 경우, 전자 장치(100)는 웨이크업 발화를 수신한 것에 응답하여, 메모리(140)에 저장된 예측 데이터베이스(270)의 정보를 참조할 수 있다.
도 14는 본 발명의 다른 실시 예에 따른 전자 장치(100)의 동작 흐름도이다.
동작 1413에서, 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 사용자의 대화가 시작된 것에 응답하여, 사용자의 대화를 수집할 수 있다.
동작 1415에서, 일 실시 예에 따른 전자 장치(100)는, 수집된 사용자의 대화를 지능형 서버(예: 도 6의 200)로 전달하여, 지능형 서버(200)에게 예측 데이터베이스(270)를 구성할 것을 요청할 수 있다. 예를 들면, 지능형 서버(200)는 전자 장치(100)로부터 사용자 대화를 수신하고, 수신된 사용자의 대화로부터 파라미터를 추출하고, 추출된 파라미터를 기반으로 예측 데이터베이스(270)를 생성할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 전자 장치(100)가 사용자 의도를 파악할 수 있도록, 자연어 이해 모듈(220)과 연동하여 예측 데이터베이스(270)를 구성할 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 문장 완성도, 화자 정보, 또는 대화 시점의 정보를 포함할 수 있다. 어떤 실시 예에 따르면, 예측 데이터베이스(270)는 추천 서비스를 위한 선호도 정보, 추가 문맥 파악을 위한 키워드 정보를 더 포함할 수 있다.
동작 1417에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화가 수신되는지 여부를 결정할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화가 수신되면 동작 1419를 수행하고, 웨이크업 발화가 수신되지 않으면 동작 1413을 다시 수행할 수 있다.
동작 1419에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화에 키워드가 포함되어 있는지 여부를 결정할 수 있다. 일 실시 예에 따르면, 키워드는 패스 룰과 관련한 정보로서, 사용자가 웨이크업 발화와 함께 입력하는 파라미터 정보를 의미할 수 있다. 예를 들면, 사용자는 "웨이크업 발화 + 키워드"의 조합으로 전자 장치(100)의 인공 지능 서비스 기능을 트리거할 수 있다. 만약, 웨이크업 발화가 "빅스비"라고 가정한다면, 사용자가 "빅스비 음악!!"이라고 음성 입력을 한 경우, 키워드는 "음악"이 될 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화에 키워드가 포함된 경우, 동작 1421을 수행하고, 웨이크업 발화에 키워드가 포함되지 않은 경우 동작 1423을 수행할 수 있다.
동작 1421에서, 일 실시 예에 따른 전자 장치(100)는, 키워드를 기반으로 예측 데이터베이스(270)에 저장된 파라미터들의 가중치를 조정할 수 있다. 동작 1425에서, 일 실시예에 따른 전자 장치(100)는 조정된 가중치에 기반한 추천 서비스를 결과로 출력할 수 있다. 예를 들면, 앞서 설명한 도 11 또는 도 12의 예시에서, 전자 장치(100)가 미리 수집한 대화는 피자 주문과 관련한 것이고, 따라서 예측 데이터베이스(270)에 구성된 파라미터들은 피자 주문과 관련한 것일 수 있다. 만약, 사용자가 웨이크업 발화로서 "빅스비 음악"을 입력한 경우, 전자 장치(100)는, 피자 주문과 관련한 서비스 대신 음악 재생과 관련한 기능(서비스)를 우선적으로 추천할 수 있다.
동작 1423에서, 일 실시 예에 따른 전자 장치(100)는, 예측 데이터베이스(270)를 참조하여 사용자에게 사용자가 웨이크업 발화를 발화하기 이전의 대화와 연관된 동작, 명령 또는 서비스를 결정할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화의 유형, 웨이크업 발화가 발생된 시점, 또는 웨이크업 발화를 입력한 사용자에 기반하여 추천 서비스의 선택을 위한 가중치를 결정할 수 있다. 동작 1425에서, 일 실시예에 따른 전자 장치는 예측 데이터베이스(270)를 참조하여 결정된 가중치에 기반하여 추천 서비스를 결과로 출력할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화를 수신하기 이전에 지능형 서버(200)가 생성한 예측 데이터베이스(270)의 정보를 다운로드하고, 다운로드된 예측 데이터베이스(270)의 정보를 메모리(140)에 저장할 수 있다. 이 경우, 전자 장치(100)는 웨이크업 발화를 수신한 것에 응답하여, 메모리(140)에 저장된 예측 데이터베이스(270)의 정보를 참조할 수 있다.
도 15는 본 발명의 일 실시 예에 따른 전자 장치(100)가 가중치를 설정하는 방법을 나타낸 예시이다.
도 15를 참조하면, 본 발명의 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 가중치를 결정함에 있어서 사용자들의 대화를 수집을 시작한 시점과 웨이크업 발화가 수신된 시점 간의 시간 차이를 고려하도록 설정될 수 있다.
동작 1511에서, 일 실시 예에 따른 전자 장치(100)는 지정된 조건에 응답하여 사용자의 대화를 수집하는 동작을 시작할 수 있다. 예를 들면, 전자 장치(100)는 지정된 조건이 충족된 제 1 시점(t1)으로부터 사용자의 대화를 수집하고, 수집된 사용자의 대화를 지능형 서버(예: 도 6의 200)로 전달하여, 지능형 서버(200)에게 예측 데이터베이스(270)를 구성할 것을 요청할 수 있다. 지능형 서버(200)는 전자 장치(100)로부터 사용자 대화를 수신하고, 수신된 사용자 대화를 분석하고, 분석된 정보를 기반으로 예측 데이터베이스(270)를 구성할 수 있다.
일 실시 예에 따르면, 전자 장치(100)가 사용자의 음성을 수집하기 시작하기 위한 상기 지정된 조건은 아래 기재된 조건 1 내지 조건 11 중에서 적어도 하나를 포함할 수 있다.
조건 1: 음성 입력이 지정된 값 이상인 경우
조건 2: 음성 입력이 지정된 시간 동안 없다가 입력된 경우 (예: 사용자가 밖에 있다가 들어온 경우로 간주)
조건 3: 음성 입력이 지정된 값 이하로 작아졌다가 상기 지정된 값 이상으로 커진 경우
조건 4: 사용자로부터 물리 버튼의 조작(입력)이 수신된 경우
조건 5: 사용자로부터 임의의 문자(또는, 지정된 문자)가 입력된 입력한 경우
조건 6: 복수의 사용자로부터 음성 입력이 수신되는 경우
조건 7: 지정된 인원 이상의 사용자로부터 음성 입력이 수신되는 경우(예: 2 명 이상)
조건 8: 지정된 공간 내에 전자 장치(100)가 복수개인 경우
조건 9: 전자 장치(100)에 등록된 사용자의 계정이 복수개인 경우
조건 10: 전자 장치(100)에 등록된 일정에 해당하는 시점인 경우
조건 11: 전자 장치(100)가 지정된 공간(예: 회의실)에 배치되고, 미리 등록된 일정에 해당하는 시점인 경우
동작 1513에서, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화가 입력되면, 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 짧은지 여부를 결정할 수 있다. 예를 들면, 전자 장치(100)는, 웨이크업 발화가 입력된 제 2 시점(t2)과 사용자의 대화를 수집하기 시작한 제 1 시점(t1) 간의 시간 차이(t2-t1)를 계산하고, 상기 시간 차이와 지정된 값(t3)을 비교할 수 있다.
동작 1515에서, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 짧은 경우, 수집된 대화의 문맥 및 대화의 완성도에 가중치를 높게 설정하고, 수집된 대화의 문맥 및 대화의 완성도에 기반한 추천 서비스를 제공할 수 있다. 예를 들면, 전자 장치(100)는 웨이크업 발화가 입력된 제 2 시점(t2)과 사용자의 대화를 수집하기 시작한 제 1 시점(t1) 간의 시간 차이(t2-t1)가 지정된 값(t3)보다 작은 경우 수집된 대화의 문맥 및 대화의 완성도에 가중치를 높게 설정할 수 있다.
동작 1517에서, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 긴 경우, 웨이크업 발화를 입력한 사용자가 누구인지에 가중치를 높게 설정하고, 웨이크업 발화를 입력한 사용자에 연관된 추천 서비스를 제공할 수 있다. 예를 들면, 전자 장치(100)는 웨이크업 발화가 입력된 제 2 시점(t2)과 사용자의 대화를 수집하기 시작한 제 1 시점(t1) 간의 시간 차이(t2-t1)가 지정된 값(t3)보다 큰 경우 웨이크업 발화를 입력한 사용자가 누구인지에 가중치를 높게 설정할 수 있다. 어떤 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화가 입력된 시점과 대화를 수집하기 시작한 시점 간의 간격이 상대적으로 긴 경우 웨이크업 발화를 입력한 사용자에 대하여 인증을 요구하는 UI(user interface) 또는 UX(user experience)를 출력하고, 인증된 경우에만 추천 서비스를 제공하도록 구성될 수 있다.
도 16은 본 발명의 일 실시 예에 따른 통합 지능화 시스템의 구성 및 동작 흐름을 개략적으로 나타낸 블록도이다.
도 16을 참조하면, 본 발명의 일 실시 예에 따른 통합 지능화 시스템은 지능형 에이전트(예: 도 2의 145), 자동 음성 인식 모듈(예: 도 6의 210), 사전 자연어 이해 (pre natural language understanding)(Pre-NLU) 모듈(215), 자연어 이해 모듈(예: 도 6의 220), 패스 플래너 모듈(예: 도 6의 230), 패스 룰 데이터베이스(예: 도 6의 231), 예측 데이터베이스(예: 도 6의 270), 자연어 생성 모듈(예: 도 6의 250), 실행 매니저 모듈(예: 도 6의 147), 텍스트 음성 변환 모듈(예: 도 6의 260), 또는 앱(예: 도 2의 141, 143)을 포함할 수 있다. 일 실시 예에 따르면, 도 16에 도시된 지능형 에이전트(145), 실행 매니저 모듈(147), 및 앱(141, 143)은 전자 장치(100)에 구성되고, 나머지 구성요소는 지능형 서버(예: 도 6의 200)에 구성될 수 있다.
본 발명의 다양한 실시 예에 따른 통합 지능화 시스템은 웨이크업 발화의 입력시 이전의 대화 내용을 기반으로 사용자에게 빠른 피드백을 제공하도록 구성될 수 있다. 예를 들어, 통합 지능화 시스템은 이전 대화 내용을 기반으로 컨텍스트에 따른 명령어 셋(command set)을 예측 데이터베이스(270)에 미리 저장하고 사용자로부터 웨이크업 발화가 입력되면 미리 구성된 예측 데이터베이스(270)에 기반하여 명령어를 구성하여 추천 서비스를 제공할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치(예: 도 2의 100)는 웨이크업 발화를 입력하는 화자가 누구인지에 따라 맞춤형 결과(추천 서비스)를 제공할 수 있다. 예를 들어, 전자 장치(100)는 복수의 명령어 셋을 컨텍스트 및 화자에 따라 분류하여 예측 데이터베이스(270)에 저장하고, 웨이크업 발화를 입력한 화자 정보에 기반하여 추천 서비스를 제공할 수 있다.
본 발명의 다양한 실시 예에 따른 전자 장치(100)는 시간 정보와 명령어의 완성도에 기반하여 피드백을 제공할 수 있다. 예를 들어, 전자 장치(100)는 대화 내용을 기반으로 시간별, 명령어 완성도별로 예측 데이터베이스(270)를 구성하고, 웨이크업 발화가 수신된 시간 또는 웨이크업 발화와 함께 입력되는 키워드에 기반하여 다양한 피드백(추천 서비스)를 제공할 수 있다.
이하, 상기와 같은 기능을 제공하기 위한 본 발명의 다양한 실시 예에 따른 통합 지능화 시스템의 주요 동작을 설명한다.
일 실시 예에 따르면, 지능형 에이전트(145)는 사용자의 발화 시작, 주변 환경의 변화(예: 전자 장치(100)의 근접) 또는 일정(예: 회의 예약)과 같은 지정된 조건에 응답하여, 웨이크업 발화가 입력되기 이전에, 사용자의 대화를 수집할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)는 사용자의 의도를 파악하기 위해 자동 음성 인식 모듈(210)에게 수집된 대화 정보를 전달할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)는 수신된 음성 입력을 지정된 시간 간격(예: 5초)으로 자동 음성 인식 모듈(210)로 전달할 수 있다. 다른 실시 예에 따르면, 지능형 에이전트(145)는 음성 입력이 지정된 시간 동안 없으면, 웨이크업 발화가 입력된 것에 응답하여 기 수집한 음성 입력을 자동 음성 인식 모듈(210)로 전달할 수 있다.
일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 음성 입력을 인식하고, 인식된 음성 입력을 텍스트로 변환할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 변환된 텍스트를 전자 장치(100)에게 전달하거나, 또는 자연어 이해 모듈(220)로 전달할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 음성 데이터를 분석하여 화자를 구분하도록 구성될 수 있다. 예를 들면, 자동 음성 인식 모듈(210)에 의해 분석된 화자 정보는 자연어 이해 모듈(220)에서 화자별 의도를 파악하는데 이용될 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 전자 장치(100)에게 음성 입력을 변환한 텍스트와 아울러 화자 정보를 전달할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 이전에 저장된 데이터베이스를 기반으로 화자가 누구인지(예: 철수) 결정하고, 화자 정보가 상기 데이터베이스에 없는 경우 화자 정보를 user 1과 같이 일반화하여 상기 데이터베이스를 업데이트할 수 있다.
일 실시 예에 따르면, 사전 자연어 이해 모듈(215)은 음성 입력으로부터 변환된 텍스트가 장문인 경우에 동작하도록 구성될 수 있다. 예를 들면, 사전 자연어 이해 모듈(215)은 음성 입력으로부터 변환된 텍스트가 장문인 경우, 장문의 텍스트로부터 대표 문장을 생성하고, 생성된 대표 문장을 자연어 이해 모듈(220)에게 전달하도록 구성될 수 있다. 예를 들면, 각각의 패스 룰에는 의도가 가장 반영되는 대표 문장이 설정될 수 있다. 일 실시 예에 따르면, 사전 자연어 이해 모듈(215)은 사용자가 이해하기 쉽게 수정한 문장(RFU, representative friendly utterance)을 이용하여 상기 대표 문장들을 생성할 수 있다. 예를 들면, 사전 자연어 이해 모듈(215)은 자동 음성 인식 모듈(210)로부터 수신된 텍스트에 포함된 주요 명사 또는 키워드를 중점적으로 추출하거나, 또는 사용자의 의도를 예측하기 위해 동사를 기반으로 대표 문장을 구성할 수 있다. 예를 들어, 수집된 사용자의 대화 내용이 "하와이에서 찍은 사진을 그 뭐냐, 메시지를 통해서 엄마에게 보내줄래?"인 경우, 사전 자연어 이해 모듈(215)은 상기 문장을 "하와이에서 찍은 사진, 엄마에게 메시지 보내줘"와 같이 명확하고 간결하도록 대표 문장을 생성할 수 있다. 일 실시 예에 따르면, 일 실시 예에 따르면, 사전 자연어 이해 모듈(215)은 자연어 이해 모듈(220)의 내부에 포함되거나, 또는 자연어 이해 모듈(220)과는 별도로 구성될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 자동 음성 인식 모듈(210) 또는 사전 자연어 이해 모듈(215)로부터 수신된 텍스트 및 화자 정보를 수신하고, 상기 텍스트 및 상기 화자 정보를 지정된 규칙(rule)에 기반하여 파라미터(parameter)(또는, 슬롯(slot))와 문맥을 결정하고, 결정된 파라미터 및 문맥을 기반으로 사용자의 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 결정된 파라미터, 문맥, 및 사용자의 의도를 패스 플래너 모듈(230)에게 전달할 수 있다.
일 실시 예에 따르면, 일 실시 예에 따르면, 자연어 이해 모듈(220)은 자동 음성 인식 모듈(210)로부터 수신된 텍스트 및 화자 정보를 지정된 단위로 분석하고, 이전 단계에서 분석한 텍스트 및 화자 정보와 다음 단계에서 분석한 텍스트 및 화자 정보 간의 관련성을 판단하고, 상기 판단 결과에 기반하여 사용자의 의도를 결정하고, 결정된 사용자의 의도를 패스 플래너 모듈(230)에게 전달할 수 있다. 예를 들면, 자연어 이해 모듈(220)은 다음 단위로 수신된 텍스트 및 화자 정보와 이전 단위로 수신된 텍스트 및 화자 정보와의 관련성을 판단하고, 상기 판단 결과를 패스 플래너 모듈(230)에게 전달하도록 구성될 수 있다.
일 실시 예에 따르면, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터를 이용하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터에 기초하여 실행될 앱(141, 143) 및 상기 앱(141, 143)에서 실행될 동작을 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 상기 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 화자 정보를 참조하여 생성된 패스 룰을 화자별로 구성 및 관리할 수 있다.
일 실시 예에 따르면, 예측 데이터베이스(270)는 자동 음성 인식 모듈(210) 통해 변환된 텍스트의 적어도 일부, 파라미터, 완성도, 화자 정보, 또는 시간을 저장할 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)는 사용자 의도, 또는 파라미터에 기반하여 예측 데이터베이스(270)에 저장된 정보의 우선 순위를 결정하고, 상기 우선 순위에 기반하여 저장된 정보들을 실행 매니저 모듈(147)에게 전달할 수 있다. 일 실시 예에 따르면, 예측 데이터베이스(270)는 아래 표 2와 같이 구성될 수 있다.
번호 Rule ID 대표 발화 Answer 화자 우선순위 키워드 비고(시간정보)
1 날씨_100 오늘 수원 날씨 어때? 오늘 수원 날씨는 맑습니다. A A트리거: 1 날씨, 수원 2017.07.07
12:50
2 뮤직_200 아이유 음악을 틀어줘? 아이유 음악을 틀겠습니다. A, B A트리거:2
B트리거:1
아이유, 음악 2017.06.07
12:55
3 TV_10 채널 15번 TV틀어줘. TV를 채널 15번으로 켰습니다. B B트리거:2 JTBC, 15, TV 2017.06.07
09:07
4 금융_30 새마을금고에서 이체하시겠습니까? 계좌 이체 준비 됐습니다. B B트리거:3 송금, 이체 2017.06.0706:15
일 실시 예에 따르면, 표 2의 1 열에 도시된 "번호"는 실행 매니저 모듈(147)이 패스 플래너 모듈(230)로부터 수신한 패스 룰을 관리하는 필드일 수 있다. 일 실시 예에 따르면, "번호" 필드는 생성된 예측 데이터베이스(270)에 저장된 순서대로 구성되며, 각각의 "번호" 필드는 하나의 패스 룰을 나타내는 것일 수 있다. 일 실시 예에 따르면, 지능형 에이전트(145)는 지정된 조건(예: 지정된 시간 초과, 또는 명령 수행됨)에 충족되면, 충족된 "번호" 필드와 관련한 패스 룰을 삭제할 수 있다.
일 실시 예에 따르면, 표 2의 2 열에 도시된 "Rule ID"는 사용자의 의도와 관련한 피드백을 제공하기 위한 앱(141, 143)을 관리하는 필드일 수 있다. 예를 들면, 각각의 앱(141, 143)은 고유한 식별 정보로서 Rule ID 가 지정될 수 있고, Rule ID 는 각각의 앱(141, 143)의 실행 상태를 나타내는 인자를 더 포함할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 사용자의 의도 및 파라미터 정보를 기반으로 전자 장치(100)가 제공할 피드백(추천 서비스)와 관련한 앱(141, 143) 및 앱(141, 143)의 상태 정보를 결정하여 예측 데이터베이스(270)에 저장하고, 실행 매니저 모듈(147)에게 상기 결정된 앱(141, 143) 및 앱(141, 143)의 상태 정보와 관련한 "Rule ID"를 제공할 수 있다. 예를 들면, "Rule ID"가 "날씨_100"인 것은, 날씨 앱(141, 143)에서 지역 날씨 정보를 표시하는 상태를 의미하는 것일 수 있다.
일 실시 예에 따르면, 표 2의 3 열에 도시된 "대표 발화"는 사용자의 의도 및 상기 사용자의 의도와 매칭되는 각각의 앱(141, 143)에 관련한 대표 문장을 저장하는 필드일 수 있다. 예를 들면, "Rule ID"가 날씨 앱(141, 143)에 관한 것인 경우, 대표 발화는 "오늘 수원 날씨 어때?", 또는 "날씨 어때?"과 같이 날씨 정보를 알고자 하는 사용자의 의도와 관련한 것으로 저장될 수 있다.
일 실시 예에 따르면, 표 2의 4 열에 도시된 "Answer"는 상기 대표 발화에 대한 응답으로서 전자 장치(100)가 제공하는 음성 신호와 관련한 필드일 수 있다. 예를 들면, "Rule ID"가 날씨 앱(141, 143)에 관한 것인 경우, "Answer"는 "오늘 수원 날씨는 맑습니다."와 같이 저장될 수 있다.
일 실시 예에 따르면, 표 2의 5 열에 도시된 "화자"는 패스 룰과 연관된 화자 정보를 관리하는 필드일 수 있다. 예를 들면, 예측 데이터베이스(270)는 각각의 패스 룰과 화자 정보가 매핑되도록 구성될 수 있다. 표 2의 예시에서는, 사용자 A가 날씨와 관련한 대화를 하고, 또한 뮤직과 관련한 대화를 한 것으로 가정하여, 날씨 앱(141, 143), 및 뮤직 앱(141, 143)과 관련한 패스 룰이 사용자 A와 매핑된 것을 나타내고 있으며, 또한 사용자 B가 뮤직과 관련한 대화를 하고, 또한 TV와 관련한 대화를 하고, 또한 금융과 관련한 대화를 한 것으로 가정하여, 뮤직 앱(141, 143), TV 앱(141, 143), 및 금융 앱(141, 143)과 관련한 패스 룰이 사용자 B와 매핑된 것을 나타내고 있다.
일 실시 예에 따르면, 표 2의 6 열에 도시된 "우선순위"는 웨이크업 발화를 수신한 화자 정보에 매칭하여 제공되는 패스 룰의 우선 순위를 나타내는 필드일 수 있다. 일 실시 예에 따르면, "우선순위"는 생성된 패스 룰과 관련하여 각 사용자가 대화에 참여한 정도(예: 각 화자별 대화량(시간 또는 입력한 문자의 양)에 기반하여 결정될 수 있다. 예를 들면, 사용자 A는 날씨와 관련한 대화를 가장 많이 언급한 것으로 가정한다면, 날씨와 관련한 패스 룰의 "우선순위"는 사용자 A가 웨이크업 발화를 입력한 경우에 가장 우선적으로 제공되는 것으로 설정될 수 있다. 다른 실시 예에 따르면, "우선순위"는 생성된 패스 룰과 관련하여 각 사용자가 이전에 음성 인식 인공 지능 서비스를 이용한 히스토리를 기반으로 결정될 수 있다. 예를 들면, 패스 플래너 모듈(230)은 각 사용자가 이전에 음성 인식 인공 지능 서비스를 이용한 히스토리를 기반으로 각각의 패스 룰 별로 각 사용자의 선호도를 결정하고, 상기 결정된 선호도에 기반하여 패스 룰의 "우선순위"를 설정할 수 있다. 예를 들면, 과거에 사용자 A가 지정된 시간, 및/또는 지정된 장소에서 반복적으로 날씨 정보를 얻기 위해 음성 인식 인공 지능 서비스를 이용한 것을 가정한다면, 날씨와 관련한 패스 룰의 "우선순위"는 사용자 A가 웨이크업 발화를 입력한 경우에 가장 우선적으로 제공되는 것으로 설정될 수 있다. 어떤 실시 예에 따르면, "우선순위"는 현재 시간이 분석된 사용자의 의도와 관련한 특정 시간과 가까워지면 높게 설정될 수 있다. 예를 들면, 패스 플래너 모듈(230)은, 사용자의 의도가 특정 시간에 어떠한 서비스를 이용하겠다는 의도가 존재한 경우, 상기 특정 시간에 가까워질수록 상기 어떠한 서비스와 관련한 패스 룰의 우선순위를 높게 설정할 수 있다. 예를 들면, 패스 플래너 모듈(230)은 사용자가 "4시 피자 시켜 먹어야지"를 발화한 경우, 4시에 가까워질 수록 피자 주문과 관련한 패스 룰의 우선순위를 높게 설정할 수 있다.
일 실시 예에 따르면, 표 2의 7 열에 도시된 "키워드"는 패스 룰과 관련한 적어도 하나의 대표 단어를 관리하는 필드일 수 있다. 예를 들면, 예를 들면, 전자 장치(100)는 웨이크업 발화가 키워드를 포함하고 있는 경우, 키워드가 포함하고 있는 정보에 가중치를 높게 설정하고, 키워드와 관련한 패스 룰을 추천 서비스로서 제공할 수 있다.
일 실시 예에 따르면, 표 2의 8 열에 도시된 " 비고(시간 정보) "는 패스 룰이 생성된 시간 또는 패스 룰의 실행이 예상되는 시간(예: 예약된 시간 또는 지정된 일정)을 관리하는 필드일 수 있다. 예를 들면, 패스 플래너 모듈(230)은 사용자가 발화한 시간 정보를 기반으로 패스 룰이 생성된 시간을 저장할 수 있다. 또는, 패스 플래너 모듈(230)은 각 사용자가 이전에 음성 인식 인공 지능 서비스를 이용한 히스토리를 기반으로 패스 룰의 실행이 예상되는 시간을 설정할 수 있다.
다양한 실시 예에 따르면, 예측 데이터베이스(270)는 상기 언급된 필드들 외에도 다양한 필드가 더욱 구성될 수 있고, 상기 언급된 필드들 중에서 적어도 일부를 선택적으로 구성할 수도 있다.
일 실시 예에 따르면, 자연어 생성 모듈(250)은 지정된 정보를 텍스트 형태로 변경할 수 있다. 상기 텍스트 형태로 변경된 정보는 자연어 발화의 형태일 수 있다. 상기 지정된 정보는, 예를 들어, 추가 입력에 대한 정보, 사용자 입력에 대응되는 동작의 완료를 안내하는 정보 또는 사용자의 추가 입력을 안내하는 정보(예: 사용자 입력에 대한 피드백 정보)일 수 있다. 상기 텍스트 형태로 변경된 정보는 전자 장치(100)로 송신되어 디스플레이(120)에 표시되거나, 텍스트 음성 변환 모듈(260)로 송신되어 음성 형태로 변경될 수 있다.
일 실시 예에 따르면, 실행 매니저 모듈(147)은 패스 플래너로부터 패스 룰을 수신하고, 수신된 패스 룰에 기반하여 앱(141, 143)을 실행할 수 있다. 일 실시 예에 따르면, 실행 매니저 모듈(147)은 웨이크업 발화가 입력되기 이전에는 앱(141, 143)을 실행하지 않으며, 웨이크업 발화가 입력된 것에 응답하여 앱(141, 143)을 실행할 수 있다. 일 실시 예에 따르면 지능형 에이전트(145)는 웨이크업 발화가 입력되기 이전에는 실행 매니저 모듈(147)을 실행하지 않을 수 있다. 예를 들면, 지능형 에이전트(145)는 웨이크업 발화가 입력되기 이전까지는 예측 데이터베이스(270)를 지속적으로 업데이트 하고, 실행 매니저 모듈(147)을 실행하지 않을 수 있다. 또한, 지능형 에이전트(145)는 웨이크업 발화가 수신된 것에 응답하여 실행 매니저 모듈(147)을 구동하고, 구동된 실행 매니저 모듈(147)에게 예측 데이터베이스(270)에 저장된 패스 룰을 전달하고, 실행 매니저 모듈(147)을 통해 앱(141, 143)을 실행할 수 있다.
일 실시 예에 따르면, 텍스트 음성 변환 모듈(260)은 텍스트 형태의 정보를 음성 형태의 정보로 변경할 수 있다. 텍스트 음성 변환 모듈(260)은 자연어 생성 모듈(250)로부터 텍스트 형태의 정보를 수신하고, 상기 텍스트 형태의 정보를 음성 형태의 정보로 변경하여 전자 장치(100)로 송신할 수 있다. 전자 장치(100)은 상기 음성 형태의 정보를 스피커(130)로 출력할 수 있다.
도 17은 본 발명의 일 실시 예에 따른 자동 음성 인식 모듈(210)을 나타낸 블록도이다.
도 17를 참조하면, 자동 음성 인식 모듈(210)은 음성 특징 추출 모듈(1711), 음성 인식 모듈(1713), 화자 특징 추출 모듈(1721), 화자 결정 모듈(1723), 음성 수집 모듈(1725), 또는 화자 모델 업데이트 모듈(1727)을 포함할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)의 적어도 일부 구성요소는 전자 장치(100)의 메모리(예: 도 2의 메모리(140))에 구성될 수 있다.
일 실시 예에 따르면, 음성 특징 추출 모듈(1711)은 수신된 음성의 음성 특징(예: 특징 벡터)을 추출할 수 있다. 예를 들어, 음성 특징 추출 모듈(1711)은 수신된 음성 신호에서 노이즈 또는 사람의 음성에 해당하는 주파수 영역 이외의 신호를 제거함으로써, 수신된 음성의 음성 특징을 추출할 수 있다.
일 실시 예에 따르면, 음성 인식 모듈(1713)은 음성 특징 추출 모듈(1711)로부터 추출된 음성 특징에 대하여 음성 인식을 수행할 수 있다. 예를 들면, 음성 인식 모듈(1713)은 제1 데이터베이스(1715)에 저장된 음향 모델, 제2 데이터베이스(1717)에 저장된 언어 모델, 또는 제3 데이터베이스(1719)에 저장된 어휘들 중 적어도 하나를 참조하여, 상기 추출된 음성 특징을 근거로 수신된 음성의 음성 인식을 수행할 수 있다. 일 실시 예에 따르면, 상기 제1 데이터베이스(1715)는 하나 이상의 음향(acoustic) 모델을 저장하는 음향 모델 데이터베이스일 수 있으며, 상기 제2 데이터베이스(1717)는 하나 이상의 언어(language) 모델을 저장하는 언어 모델 데이터베이스일 수 있으며, 상기 제3 데이터베이스(1719)는 하나 이상의 어휘(lexicon) 모델을 저장하는 어휘 모델 데이터베이스일 수 있다. 일 실시 예에 따르면, 음성 인식 모듈(1713)은 음성 인식된 결과를 텍스트로 변환하여 자연어 이해 모듈(220)로 전달할 수 있다. 일 실시 예에 따르면, 상기 제1 내지 제 3 데이터베이스(1715, 1717, 1719)는 상기 전자 장치(100)와 연결된 외부 서버(예: 도 6의 지능형 서버(200))에 포함된 것일 수 있다. 다른 실시예에 따르면, 상기 제1 내지 제 3 데이터베이스(1715, 1717, 1719)는 전자 장치(100)의 메모리(예: 도 2의 메모리(140))에 포함될 수 있다.
일 실시 예에 따르면, 자연어 이해 모듈(220)은 인식된 음성에 대하여 문법적 분석(syntactic analyze) 또는 의미적 분석(semantic analyze)을 수행하여 사용자 의도를 파악할 수 있다. 예를 들면, 자연어 이해 모듈(220)은 음성 인식 모듈(1713)로부터 수신된 텍스트를 지정된 규칙(rule)에 기반하여 파라미터(parameter)(또는, 슬롯(slot))와 문맥을 결정하고, 결정된 파라미터 및 문맥을 기반으로 사용자의 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 결정된 파라미터, 문맥, 및 사용자의 의도를 키워드 추출 모듈(1739)에게 전달할 수 있다.
일 실시 예에 따르면, 키워드 추출 모듈(1739)은 인식된 음성으로부터 문맥 관련 키워드를 추출하고, 추출된 문맥 관련 키워드를 사용자별로 분류하여 예측 데이터베이스(270)에 저장할 수 있다. 어떤 실시 예에 따르면, 키워드 추출 모듈(1739)은 자연어 이해 모듈(220)에 포함되거나, 또는 자연어 이해 모듈(220)과는 별도로 구성될 수 있다.
일 실시 예에 따르면, 화자 특징 추출 모듈(1721)은 수신된 음성에서 화자 특징을 추출할 수 있다. 예를 들어, 화자 특징 추출 모듈(1721)은 수신된 음성 데이터에서 음성 특징(예: 특징 벡터)을 추출하여 화자 특징을 획득할 수 있다.
일 실시 예에 따르면, 화자 결정 모듈(1723)은 상기 화자 특징 추출 모듈(1721)로부터 추출된 화자 특징을 근거로 수신된 음성의 화자가 등록(저장)된 화자 모델의 화자인지 여부를 결정할 수 있다. 예를 들어, 화자 결정 모듈(1723)은 수신된 음성의 화자가 제4 데이터베이스(1729)에 저장된 화자 모델들, 예를 들어, 제1 화자 모델(1733), 제2 화자 모델(1735), 제3 화자 모델(1737) 중 하나에 대응되는지 여부를 검증하고, 수신된 음성의 화자에 대응하는 화자 모델을 결정할 수 있다. 일 실시 예에 따르면, 상기 제4 데이터베이스(1729)는 상기 전자 장치(100)와 연결된 외부 서버(예: 도 6의 지능형 서버(200))에 포함된 것일 수 있다. 다른 실시예에 따르면, 상기 제4 데이터베이스(1729)는 전자 장치(100)의 메모리(예: 도 2의 메모리(140))에 포함될 수 있다.
일 실시 예에 따르면, 화자 결정 모듈(1723)은 스코어 계산 모듈(1724)을 포함할 수 있다. 일 실시 예에 따르면, 스코어 계산 모듈(1724)은 수신된 음성의 화자와 등록된 화자 모델들 중 어느 한 화자 모델의 화자와의 유사성을 스코어로 형태로 계산할 수 있다. 일 실시 예에 따르면, 화자 결정 모듈(1723)은 스코어 계산 모듈(1724)을 통해 산출된 화자의 유사성 스코어에 따라 수신된 음성의 화자가 등록된 화자 모델의 화자인지 여부를 결정할 수 있다.
일 실시 예에 따르면, 화자 결정 모듈(1723)은 상기 화자의 유사성 스코어를 미리 등록된 화자 모델에 대응하는 벡터와 수신된 음성에서 추출된 벡터의 유사성을 측정함으로써 획득할 수 있다. 예를 들어, 화자 결정 모듈(1723)은, 미리 등록된 화자 모델에 대응하는 벡터와 수신된 음성에서 추출된 벡터를 각각 A, B라고 했을 경우, 유사성(similarity)을 다음의 수학식 1에 의해 계산할 수 있다.
Figure pat00001
(상기
Figure pat00002
는 A와 B의 내적, |A|는 A의 크기, 및 |B|는 B의 크기를 나타냄.)
본 발명의 다양한 실시 예는, 상기 수학식 1 이외에도 화자 모델의 종류에 따라 다양한 유사성 계산 기술이 적용될 수도 있다.
일 실시 예에 따르면, 음성 수집 모듈(1725)은 화자 결정 모듈(1723)로부터 화자 정보를 수신하고, 수신된 화자 정보에 기반하여 화자별 음성 데이터를 수집하여 제4 데이터베이스 (1729)에 저장할 수 있다. 일 실시 예에 따르면, 음성 수집 모듈(1725)은 수신된 음성이 신규한 화자에 해당하는 경우 화자 모델 업데이트 모듈(1727)을 실행하여 제4 데이터베이스(1729)에 저장된 화자 모델 정보를 업데이트할 수 있다. 예를 들면, 화자 모델 업데이트 모듈(1727)은 제4 데이터베이스(1729)를 참조하여 신규한 화자에 해당하는 음성 데이터로부터 대표 음성 모델을 추출하고, 추출된 대표 음성 모델을 제4 데이터베이스(1729)에 신규로 저장할 수 있다.
도 18은 본 발명의 일 실시 예에 따른 전자 장치(100)가 패스 룰을 획득하는 방법을 설명하기 위한 예시이다.
도 18을 참조하면, 본 발명의 다양한 실시 예에 따른 전자 장치(예: 도 2의 100)가 웨이크업 발화에 응답하여 지능형 서버(예: 도 6의 200)로부터 패스 룰을 획득하는 과정은 다음과 같을 수 있다.
먼저, 일 실시 예에 따른 전자 장치(100)는, 인증된 사용자 A 및 사용자 B의 대화가 시작된 것에 응답하여, 사용자 A 및 사용자 B의 대화를 수집하고, 수집된 사용자 A 및 사용자 B의 대화를 지능형 서버(200)로 전달하여, 지능형 서버(200)에게 예측 데이터베이스(270)를 구성할 것을 요청할 수 있다. 지능형 서버(200)는 전자 장치(100)로부터 수신된 사용자 A 및 사용자 B의 대화로부터 파라미터를 추출하고, 추출된 파라미터를 기반으로 예측 데이터베이스(270)를 생성할 수 있다.
일 실시 예에 따르면, 참조번호 1에서, 전자 장치(100)는, 사용자 A로부터 웨이크업 발화를 수신하고, 웨이크업 발화를 수신한 것에 응답하여 웨이크업 발화를 입력한 사용자 A에 대한 화자 인식을 수행할 수 있다. 다른 실시예에 따르면, 웨이크업 발화를 입력한 사용자 A에 대한 화자 인식은 전자 장치(100)가 지능형 서버(200)와 연동하여 웨이크업 발화를수행할 수 있다.
일 실시 예에 따르면, 참조번호 2에서, 전자 장치(100)는 화자 인식을 수행한 다음, 지능형 서버(200)에 생성된 예측 데이터베이스(270)를 참조하여 인식된 화자와 관련한 패스 룰을 검색하고, 검색된 패스 룰들 중에서 적어도 하나를 우선 순위에 기반하여 선택할 수 있다.
일 실시 예에 따르면, 참조번호 3에서, 전자 장치(100)는 지능형 서버(200)에 생성된 예측 데이터베이스(270)에서가장 우선 순위가 높은 패스 룰을 결정하고, 결정된 패스 룰을 지능형 서버(200)에 생성된 패스 룰 데이터베이스(231)로부터 획득할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 패스 룰 데이터베이스(231)로부터 획득한 패스 룰에 기반하여 앱(141, 143)을 실행함으로써 사용자에게 추천 서비스를 제공할 수 있다. 일 실시예에 따르면, 예측 데이터베이스(270) 및 패스 룰 데이터베이스(231)은 지능형 서버(200)에 포함된 것일 수 있다. 다른 실시예에 따르면, 예측 데이터베이스(270) 및 패스 룰 데이터베이스(231) 중에서 적어도 일부는 전자 장치(100)에 포함된 것일 수 있다.
본 발명의 다양한 실시예에 따른 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하기 위한 서버(예: 도 2의 지능형 서버(200))의 구동 방법은, 전자 장치(예: 도 2의 전자 장치(100))로부터 음성 데이터를 수신하는 동작, 상기 음성 데이터에 포함된 사용자의 대화의 맥락을 분석하는 동작, 상기 분석된 맥락을 기반으로 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인지 결정하는 동작, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화이면, 패스 룰을 생성하고, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화가 아니면 상기 음성 데이터를 누적하여 저장하는 동작, 상기 패스 룰이 생성되면, 상기 생성된 패스 룰을 이용하여 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스(예: 도 6의 예측 데이터베이스(270))를 생성하는 동작, 및 상기 전자 장치(100)가 상기 웨이크업 발화를 수신하면, 상기 예측 데이터베이스(270)에 포함된 적어도 하나의 패스 룰을 상기 전자 장치(100)에게 전송하는 동작을 포함 할 수 있다. 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인지 결정하는 동작은, 상기 음성 데이터로부터 지정된 복수의 파라미터의 정보를 획득하는 동작, 및 상기 획득한 복수의 파라미터의 정보가 지정된 개수를 초과하면, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인 것으로 결정하는 동작을 포함 할 수 있다. 상기 전자 장치(100)로부터 상기 음성 데이터의 화자 정보를 획득하는 동작, 및 상기 패스 룰이 상기 화자 정보에 매칭되도록 상기 예측 데이터베이스(270)를 관리하는 동작을 더 포함 할 수 있다. 상기 지정된 복수의 파라미터는 동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 및 동작의 이유 각각에 해당하는 필드 정보를 포함 할 수 있다. 상기 예측 데이터베이스(270)는, 상기 음성 데이터로부터 획득한 텍스트, 상기 화자 정보, 상기 화자 정보와 관련한 가중치 정보, 상기 전자 장치(100)에서 구동 가능한 어플리케이션 또는 상기 어플리케이션의 상태 정보, 또는 키워드 중 적어도 하나를 포함 할 수 있다.
도 19는 본 발명의 일 실시 예에 따른 지능형 서버(200)의 동작을 나타낸 흐름도이다.
도 19를 참조하면, 동작 1901에서, 일 실시 예에 따른 지능형 서버(예: 도 6의 200)는, 자동 음성 인식 모듈(210)을 실행하여 전자 장치(예: 도 2의 100)로부터의 음성 입력을 인식하고, 인식된 음성 입력을 텍스트로 변환할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 변환된 텍스트를 전자 장치(100)에게 전달하거나, 또는 자연어 이해 모듈(220)로 전달할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 음성 데이터를 분석하여 화자를 구분하도록 구성될 수 있다. 예를 들면, 자동 음성 인식 모듈(210)에 의해 분석된 화자 정보는 자연어 이해 모듈(220)에서 화자별 의도를 파악하는데 이용될 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 전자 장치(100)에게 음성 입력을 변환한 텍스트와 아울러 화자 정보를 전달할 수 있다. 일 실시 예에 따르면, 자동 음성 인식 모듈(210)은 이전에 저장된 데이터베이스(예: 제4 데이터베이스(1729))를 기반으로 화자가 누구인지(예: 철수) 결정하고, 화자 정보가 상기 데이터베이스에 없는 경우 화자 정보를 user 1과 같이 일반화하여 상기 데이터베이스를 업데이트할 수 있다.
동작 1903에서, 일 실시 예에 따른 지능형 서버(200)는, 자연어 이해 모듈(220)을 실행하여 자동 음성 인식 모듈(210)로부터 변환된 텍스트 및 화자 정보를 수신하고, 상기 텍스트 및 상기 화자 정보를 지정된 규칙(rule)에 기반하여 파라미터(parameter)(또는, 슬롯(slot))와 문맥을 결정하고, 결정된 파라미터 및 문맥을 기반으로 사용자의 의도를 결정할 수 있다. 일 실시 예에 따르면, 자연어 이해 모듈(220)은 결정된 파라미터, 문맥, 및 사용자의 의도를 패스 플래너 모듈(230)에게 전달할 수 있다.
동작 1905에서, 일 실시 예에 따른 지능형 서버(200)는, 패스 플래너 모듈(230)을 실행하여 자연어 이해 모듈(220)이 분석한 사용자의 의도 및 파라미터를 기반으로 전자 장치(100)로부터 수신된 음성 입력이 full root발화에 해당하는지 여부를 결정할 수 있다. 예를 들면, 상기 full root발화는 음성 입력으로부터 사용자의 의도를 도출할 수 있는 발화를 의미하는 것일 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 음성 입력으로부터 획득한 파라미터 정보의 획득량을 기반으로 결정할 수 있다. 예를 들면, 패스 플래너 모듈(230)은 임의의 음성 입력으로부터 ‘동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 또는 동작의 이유’와 같은 필드의 파라미터 정보가 지정된 갯수 이상으로 획득되면, 해당 음성 입력은 full root발화인 것으로 결정할 수 있다. 일 실시 예에 따른 지능형 서버(200)는 전자 장치(100)로부터 수신된 음성 입력이 full root발화이면 동작 1907을 수행하고, 전자 장치(100)로부터 수신된 음성 입력이 full root발화가 아니면 음성 입력을 누적하여 저장하고 동작 1901을 다시 수행하여 새로운 음성 입력을 수신할 수 있다.
동작 1907에서, 일 실시 예에 따른 지능형 서버(200)는, 음성 입력은 full root발화이면 패스 플래너 모듈(230)을 통해 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터를 이용하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 예를 들어, 패스 플래너 모듈(230)은 사용자 의도 및 파라미터에 기초하여 실행될 앱(141, 143) 및 상기 앱(141, 143)에서 실행될 동작을 결정하여 하나의 패스 룰, 또는 복수의 패스 룰을 생성할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 상기 생성된 패스 룰을 패스 룰 데이터베이스(231)에 저장할 수 있다. 일 실시 예에 따르면, 패스 플래너 모듈(230)은 화자 정보를 참조하여 예측 데이터베이스(270)를 관리하고, 상기 데이터베이스가 화자별로 패스 룰이 매칭되도록 예측 데이터베이스(270)를 관리할 수 있다. 일 실시 예에 따른 지능형 서버(200)는 동작 1907을 수행한 후에, 동작 동작 1901을 다시 수행하여 전자 장치(예: 도 2의 100)로부터의 음성 입력을 인식하고, 인식된 음성 입력을 텍스트로 변환할 수 있다. 일 실시 예에 따른 지능형 서버(200)는, 추가적으로 음성 입력이 수신된 것에 응답하여, 예측 데이터베이스(270)에 저장된 패스 룰을 업데이트할 수 있다.
동작 1909에서, 일 실시 예에 따른 지능형 서버(200)는, 전자 장치(100)가 웨이크업 발화를 수신한 것에 응답하여 패스 룰을 전자 장치(100)에게 전달할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 웨이크업 발화의 유형, 웨이크업 발화가 발생된 시점, 또는 웨이크업 발화를 입력한 사용자에 기반하여 패스 룰의 선택을 위한 가중치를 결정하고, 결정된 가중치에 기반하여 패스 룰을 전자 장치(100)로 전달할 수 있다.
도 20은 본 발명의 일 실시 예에 따른 전자 장치(100)가 음성 데이터를 수집하는 동작을 나타낸 흐름도이다.
도 20을 참조하면, 동작 2001에서, 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 대기 상태일 수 있다. 예를 들면, 대기 상태는 전자 장치(100)의 적어도 일부분에 배치된 센서, 또는 근거리 통신 모듈이 활성화 되어 있는 상태를 의미할 수 있다. 예를 들면, 대기 상태에서 전자 장치(100)는 센서(예: 마이크)로 수신되는 정보(예: 대화), 근거리 통신 모듈로 장치들의 근접을 감지, 또는 일정(예: 회의)의 시작을 감지할 수 있다.
동작 2003에서, 일 실시 예에 따른 전자 장치(100)는, 사용자의 음성을 수집하기 시작하기 위한 지정된 조건을 충족하는지 결정할 수 있다. 예를 들면, 전자 장치(100)는, 적어도 2명 이상의 사용자가 지정된 레벨 이상(예: 일정 시간 또는 일정 음량 이상)의 대화를 수행하는 것이 감지되면 상기 지정된 조건을 충족한 것으로 결정할 수 있다. 전자 장치(100)는, 상기 지정된 조건이 충족되지 않는 경우, 대기 상태를 유지할 수 있다. 동작 2003에서, 전자 장치(100)가 지정된 조건을 충족하는지 판단하는 동작은, 도 15의 동작 1511을 참조할 수 있다.
동작 2005에서, 일 실시 예에 따른 전자 장치(100)는, 상기 지정된 조건이 충족되면, 음성 데이터를 수집할 수 있다. 예를 들면, 전자 장치(100)는 상기 지정된 조건이 충족된 시점으로부터 수신되는 음성 데이터를 누적하여 저장할 수 있다.
동작 2007에서, 일 실시 예에 따른 전자 장치(100)는, 음성 데이터를 지능형 서버(200)로 전송할 조건이 만족하는지 여부를 결정할 수 있다. 예를 들면, 전자 장치(100)는, 지정된 단위(예: 지정된 시간, 또는 지정된 데이터 용량) 단위로 음성 데이터를 수집하고, 상기 지정된 단위를 초과할 때마다 수집된 음성 데이터를 지능형 서버(200)로 전송할 조건이 만족된다고 판단할 수 있다.
동작 2007에서, 전송 조건이 만족되면 동작 2009를 수행하고, 전송 조건이 만족되지 않으면, 동작 2005를 수행하여 음성 데이터를 수집할 수 있다.
동작 2009에서, 전자 장치(100)는 수집된 음성 데이터를 지능형 서버(예: 도 6의 200)로 전달할 수 있다. 일 실시 예에 따르면, 지능형 서버(200)는 전자 장치(100)로부터 수신된 상기 음성 데이터를 분석하고, 분석된 결과에 기반하여 예측 데이터베이스(270)를 구성할 수 있다.
도 21은 일 실시 예에 따른 전자 장치(100)가 웨이크업 발화에 응답하여 추천 서비스를 제공하는 동작을 나타낸 흐름도이다.
도 21을 참조하면, 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 도 20의 동작 2009에서와 같이, 수집된 음성 데이터를 지능형 서버(예: 도 6의 200)로 전달할 수 있다.
동작 2101에서, 일 실시 예에 따른 전자 장치(100)는 지능형 서버(200)에게 음성 데이터를 전송한 것에 대한 응답으로서, 음성데이터 분석 결과를 지능형 서버(200)로부터 수신할 수 있다. 상기 음성데이터의 분석 결과는 전송한 음성 데이터와 관련된 시간정보, 화자정보, 완성도, 또는 패스 룰 중 적어도 하나 이상 포함하는 정보일 수 있다. 다양한 실시 예에 따라 상기 음성데이터 분석 동작은 전자장치(100) 내에서 수행될 수 있다. 예를 들면, 패스 룰은 지능형 서버(200)가 지정된 단위로 전자 장치(100)로부터 수신된 음성 데이터를 분석한 결과에 기반한 것일 수 있다.
동작 2103에서, 일 실시 예에 따른 전자 장치(100)는, 음성데이터 전송 후 지능형 서버(200)로부터 음성데이터 분석 결과를 수신한 것에 응답하여 예측 데이터베이스(270)를 업데이트 할 수 있다. 다양한 실시 예에 따라 상기 음성 데이터 분석 결과는 패스룰이 될 수 있다. 전자 장치는 패스 룰을 수신한 것에 응답하여 패스 룰을 예측 데이터베이스(270)에 저장할 수 있다. 또한, 상기 패스 룰은 상기 예측 데이터베이스(270)와 참조 가능한 별도의 데이터베이스에 저장될 수 있다. .
동작 2105에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화의 수신 여부를 결정할 수 있다. 예를 들면, 웨이크업 발화는 "빅스비!!"와 같이 음성 인식 인공 지능 서비스를 트리거 하도록 지정된 명령일 수 있다. 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화를 수신하지 않는 경우, 음성 데이터를 수집하고 지능형 서버(200)로 음성 데이터를 전송하는 동작 2009를 수행할 수 있다.
동작 2107에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화로 입력된 음성 데이터를 분석하여 웨이크업 발화를 입력한 화자를 결정할 수 있다. 예를 들면, 전자 장치(100)는 웨이크업 발화로 입력된 음성 데이터를 분석하고, 화자 정보를 획득할 수 있다. 또 다른 예를 들어, 전자 장치(100)는 웨이크업 발화로 입력된 음성 데이터를 지능형 서버(200)로 전송하고, 지능형 서버(200)로부터 화자 정보를 획득할 수 있다.
동작 2109에서, 일 실시 예에 따른 전자 장치(100)는, 획득한 화자 정보가 화자 데이터베이스에 존재하는 지 여부를 결정할 수 있다. 예를 들면, 전자 장치(100)는 자동 음성 인식 모듈(210)에 구성된 화자 결정 모듈(1723)과 연동하여 화자 특징을 추출하고, 추출된 화자 특징을 근거로 수신된 음성의 화자가 등록(저장)된 화자 모델의 화자인지 여부를 결정할 수 있다. 예를 들어, 화자 결정 모듈(1723)은 수신된 음성의 화자가 제4 데이터베이스(1729)에 저장된 화자 모델들, 예를 들어, 제1 화자 모델(1733), 제2 화자 모델(1735), 제3 화자 모델(1737) 중 하나에 대응되는지 여부를 검증하고, 수신된 음성의 화자에 대응하는 화자 모델을 결정할 수 있다.
동작 2111에서, 일 실시 예에 따른 전자 장치(100)는, 예측 데이터베이스(270)에 추출된 화자 정보와 관련한 정보가 있는 경우, 해당 화자에 관련한 패스 룰을 선택하고, 선택된 패스 룰에 기반하여 추천 서비스를 피드백으로 제공할 수 있다. 예를 들면, 예측 데이터베이스(270)가 복수의 화자별로 패스 룰이 지정된 것을 가정하면, 전자 장치(100)는 웨이크업 발화를 입력한 화자에 높은 가중치를 두어 패스 룰을 선택할 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화와 함께 입력된 키워드가 있는 경우, 키워드를 기반으로 예측 데이터베이스(270)에 저장된 파라미터들의 가중치를 조정하고, 조정된 가중치에 따라 추천 서비스를 제공할 수 있다.
동작 2113에서, 일 실시 예에 따른 전자 장치(100)는, 예측 데이터베이스(270)에 추출된 화자 정보와 관련한 정보가 없는 경우, 일반적인(default) 피드백을 제공할 수 있다. 예를 들면, 전자 장치(100)는, 사용자의 추가적인 음성 입력을 대기하거나, 사용자에게 의도 판단을 위한 추가적인 정보 입력을 요구하는 UI(user interface) 또는 UX(user experience)를 출력할 수 있다.
도 22는 본 발명의 일 실시 예에 따른 전자 장치(100)가 추가 정보를 요청하는 동작을 설명한 흐름도이다.
도 22를 참조하면, 동작 2201에서, 일 실시 예에 따른 전자 장치(예: 도 2의 100)는, 지정된 조건에 응답하여 정보 입력을 수신하고 수신된 정보를 지능형 서버(예: 도 6의 200)로 전송할 수 있다. 예를 들면, 전자 장치(100)는 적어도 2명 이상의 사용자가 지정된 레벨 이상(예: 일정 시간 또는 일정 음량 이상)의 대화를 수행하는 것이 감지되면, 음성 데이터를 수집하고, 수집된 음성 데이터를 지능형 서버(200)로 전송할 수 있다.
동작 2203에서, 일 실시 예에 따른 전자 장치(100)는, 지능형 서버(200)에게 음성 데이터를 전송한 것에 대한 응답으로서, 패스 룰을 지능형 서버(200)로부터 수신하고, 수신된 패스 룰을 분석하여 예측 데이터베이스(270)를 구성할 수 있다.
동작 2205에서, 일 실시 예에 따른 전자 장치(100)는, 음성 인식 인공 지능 서비스를 웨이크 업 하도록 지정된 웨이크업 발화를 사용자로부터 수신할 수 있다.
동작 2207에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화를 수신한 시점에, 사용자의 의도가 명확하지 않은 경우 추가적인 정보 입력을 요구하는 UI(user interface) 또는 UX(user experience)를 출력할 수 있다. 예를 들면, 전자 장치(100)가 웨이크업 발화를 수신하기 이전에 수집한 대화 내용을 기반으로 "사용자가 배달 음식을 주문하려고 한다"는 문맥만을 이해한 경우, 전자 장치(100)는 웨이크업 발화에 대한 응답으로서 "어떤 배달 음식을 주문할까요?"와 같이 추가적인 정보 입력을 요청할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화가 입력된 시점에 사용자의 의도 또는 이전 대화의 문맥이 명확하게 이해되지 않은 경우, ‘동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 또는 동작의 이유’와 같은 파라미터 정보들 중에서 확인되지 않은 적어도 일부 정보에 대한 입력을 요청할 수 있다. 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화를 수신한 시점에 사용자의 의도가 명확하다고 판단한 경우 동작 2207을 생략할 수 있다.
동작 2209에서, 일 실시 예에 따른 전자 장치(100)는, 웨이크업 발화를 입력한 사용자에게 패스 룰을 선택하여 추천 서비스를 결과 피드백으로서 제공할 수 있다. 예를 들어, 전자 장치(100)는 사용자의 화자 정보를 결정하고, 결정된 화자 정보를 기반으로 결과 피드백을 제공할 수 있다.
num Rule_ID 대표 발화 화자 가중치 키워드 비고(시간정보)
1 날씨_100 오늘 수원 날씨는 맑습니다. A 90% 날씨, 수원 2017.06.07
12:50
2 뮤직_200 아이유 음악을 틀어드릴까요? A, B 80% 아이유, 음악 2017.06.07
12:55
3 전화_100요기요_50 피자 주문을 하시겠습니까? C 90% 피자, 주문 2017.06.07
13:00
4 SC_10 채널 15 TV프로그램을 시청하시겠습니까? B 83% JTBC, 15, TV 2017.06.07
13:07
5 금융_30 새마을금고에서 이체하시겠습니까? B 70% 송금, 이체 2017.06.07
13:15
도 23은 본 발명의 일 실시 예에 따른 전자 장치(100)가 화자 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다. 도 24는 본 발명의 일 실시 예에 따른 전자 장치(100)가 시간 정보를 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다. 도 25는 본 발명의 일 실시 예에 따른 전자 장치(100)가 문맥의 완성도 정보를 기반으로 추천 서비스를 제공하는 예시를 나타낸 도면이다.
이하, 도 23 및 도 24와 관련한 설명에서, 전자 장치(예: 도 2의 100)가 웨이크업 발화를 수신한 시점에 예측 데이터베이스(270)는 표 3과 같이 구성된 것을 가정할 수 있다.
도 23을 참조하면, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화를 입력한 화자가 사용자 A인 경우, 실행 매니저 모듈(147)을 통해 사용자 A와 관련한 패스 룰을 선택할 수 있다. 예를 들면, 표 3에서 사용자 A와 관련한 패스 룰은 1 번 및 2 번이므로, 실행 매니저 모듈(147)은 1번 및 2 번에 해당하는 패스 룰을 우선적으로 선택할 수 있다. 일 실시 예에 따르면, 전자 장치(100)의 실행 매니저 모듈(147)은 선택된 패스 룰 중에서 어느 하나를 가중치에 기반하여 선택할 수 있다. 예를 들면, 실행 매니저 모듈(147)은 선택된 1번 및 2 번 중에서 1번의 가중치가 가장 높으므로 1번에 해당하는 패스 룰을 선택하고, 선택 결과에 따라 전자 장치(100)는 "오늘 수원 날씨는 맑습니다"라는 음성 신호를 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화를 수신하기 이전의 대화에서 사용자 A가 날씨와 관련한 언급을 가장 많이 한 것에 기반하여 예측 데이터베이스(270)에서 1번의 가중치를 상대적으로 높게 설정하였을 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화를 수신하기 이전에 사용자 A가 날씨와 관련한 인공 지능 서비스를 다수 이용하였던 선호도 정보에 기반하여 예측 데이터베이스(270)에서 1번의 가중치를 상대적으로 높게 설정하였을 수 있다.
어떤 실시 예에 따르면, 전자 장치(100)는 웨이크업 발화를 입력한 화자가 사용자 A인 경우, 실행 매니저 모듈(147)을 통해 사용자 A와 관련한 패스 룰로서, 1번 및 2 번에 해당하는 패스 룰을 우선적으로 선택할 수 있다. 전자 장치(100)는 웨이크업 발화에 키워드가 포함되지 않은 경우에는 선택된 1번 및 2 번 중에서 1번의 가중치가 가장 높으므로 1번에 해당하는 패스 룰을 선택하지만, 웨이크업 발화에 키워드가 포함된 경우에는 선택된 1번 및 2 번 중에서 2번에 해당하는 패스 룰을 선택할 수 있다. 예를 들면, 사용자 A가 발화한 웨이크업 발화에, 키워드로서 "음악"이라는 단어가 포함된 경우, 전자 장치(100)는 2번에 해당하는 패스 룰을 선택할 수 있다.
도 24를 참조하면, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화를 입력한 화자가 사용자 B인 경우, 실행 매니저 모듈(147)을 통해 사용자 B와 관련한 패스 룰을 선택할 수 있다. 예를 들면, 표 3에서 사용자 B와 관련한 패스 룰은 2 번, 4 번 및 5 번이므로, 실행 매니저 모듈(147)은 2 번, 4 번 및 5 번에 해당하는 패스 룰을 우선적으로 선택할 수 있다. 일 실시 예에 따르면, 전자 장치(100)의 실행 매니저 모듈(147)은 선택된 패스 룰 중에서 어느 하나를 가중치에 기반하여 선택할 수 있다. 예를 들면, 실행 매니저 모듈(147)은 선택된 2 번, 4 번 및 5 번 중에서 4번의 가중치가 가장 높으므로 4번에 해당하는 패스 룰을 선택하고, 선택 결과에 따라 전자 장치(100)는 "채널 15 TV 프로그램을 시청하시겠습니까? "라는 음성 신호를 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는, 웨이크업 발화를 수신하기 이전의 대화에서 사용자 B가 가장 최근에 언급한 대화가 TV 시청에 관련한 것인 점에 기반하여 예측 데이터베이스(270)에서 4번의 가중치를 상대적으로 높게 설정하였을 수 있다. 어떤 실시 예에 따르면, 전자 장치(100)는 예측 데이터베이스(270)에 구성된 각각의 패스 룰에 대한 가중치 값의 차이가 지정된 값 이하인 경우 가장 최근에 생성된 패스 룰을 선택할 수 있다. 예를 들면, 2번 패스 룰의 가중치는 80%이고 4번 패스 룰의 가중치는 83 %이고, 상기 두 개의 가중치의 차이는 지정된 값(예: 8% 이내)보다 작으므로, 전자 장치(100)는 시간 정보가 더 빠른 4번 패스 룰을 선택할 수 있다.
도 25를 참조하면, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화가 수신된 시점에 이전의 대화로부터 문맥에 대한 이해도가 높은 추천 서비스가 존재한 경우, 해당 추천 서비스와 관련한 패스 룰을 선택할 수 있다. 예를 들면, 전자 장치(100)는, 사용자 C로부터 웨이크업 발화를 수신하였을 때, 사용자들이 피자를 곧 주문하려고 하는 의도가 있음을 명확히 판단한 것에 기반하여 3번 패스 룰에 해당하는 피자 주문 서비스를 추천할 수 있다.
분류 대표 단어
날씨 온도, 대기, 습도, 정보 제공
상거래 의류, 전자기기, 정보제공, 구매, 환불
디바이스 제어 전구, 가전기기, 켜다, 끄다
다양한 실시 예에 따르면, 지능형 서버(200) 는 미리 정해진 컨텍스트 단위로 정보를 관리할 수 있다. 예를 들어, 지능형 서버(200)는 날씨 문맥, 상거래 문맥, 또는 디바이스 제어 문맥의 그룹으로 발화 내용을 분류하고, 최근의 문맥 상태를 예측 데이터베이스(270)에 저장할 수 있다. 상기 표 4는 본 발명의 일 실시 예에 따른 전자 장치(100) 또는 지능형 서버(예: 도 6의 200)에 의해 관리되는 컨텍스트의 예시일 수 있다.
일 실시 예에 따르면 지능형 서버(200)는 전자 장치(100)가 사용자의 대화를 수집하기 시작할 때, 수집되는 대화와 최근에 저장된 문맥과 연계한 패스 룰의 우선순위를 디폴트로 설정할 수 있다. 일 실시 예에 따르면 지능형 서버(200)는 수집된 대화에서 추가적인 힌트가 존재할 경우, 상기 힌트와 관련한 다른 패스 룰에게 우선순위를 부여할 수 있다. 일 실시예에 따르면, 상기 추가적인 힌트는 컨텍스트를 분류하는 기준으로서 표 4의 각 필드에 해당하는 대표 단어를 의미할 수 있다. 예를 들면, 전자 장치(100)가 사용자의 대화를 수집하기 이전에, 지능형 서버(200)는 "디바이스 제어"와 관련한 문맥이 가장 최근의 문맥인 것으로 저장하고 있을 수 있다. 만약, 전자 장치(100)로부터 수집된 대화에 컨텍스트를 분류하기 위한 힌트(예: 표 4의 대표 단어)가 포함되지 않은 경우 지능형 서버(200)는 가장 최근의 문맥인 "디바이스 제어"와 관련한 패스 룰을 우선적으로 전자 장치(100)에게 전송할 수 있다. 반면에, 전자 장치(100)로부터 수집된 대화에 컨텍스트를 분류하기 위한 힌트(예: 표 4의 대표 단어)로서, "날씨"와 관련한 대표 단어, 예컨대 온도, 대기, 또는 습도가 포함된 경우 지능형 서버(200)는 가장 최근의 문맥인 "디바이스 제어"와 관련한 패스 룰의 우선순위를 무시하고 "날씨"와 관련한 패스 룰을 전자 장치(100)에게 전송할 수 있다.
Num APP_ID 대표 발화 화자 가중치 키워드 비고(시간정보)
1 전화_100요기요_50 중국집에 주문을 하시겠습니까? A 90% 짬뽕, 주문 2017.06.07
09:51
2 전화_100요기요_50 중국집에 주문을 하시겠습니까? B 90% 간짜장, 주문 2017.06.07
09:52
3 전화_100요기요_50 중국집에 주문을 하시겠습니까? C 90% 볶음밥, 주문 2017.06.07
09:53
도 26은 본 발명의 일 실시 예에 따른 전자 장치(100)가 추천 서비스를 제공하는 다른 예시를 나타낸 도면이다.
이하, 도 26과 관련한 설명에서, 전자 장치(예: 도 2의 100)가 웨이크업 발화를 수신한 시점에 예측 데이터베이스(270)는 표 5과 같이 구성된 것을 가정할 수 있다.
도 26을 참조하면, 일 실시 예에 따른 전자 장치(100)는 웨이크업 발화를 입력한 화자가 사용자 C인 경우, 실행 매니저 모듈(147)을 통해 사용자 C와 관련한 패스 룰을 선택할 수 있다. 예를 들면, 표 5에서 사용자 C와 관련한 패스 룰은 3 번이므로, 실행 매니저 모듈(147)은 3번에 해당하는 패스 룰을 선택할 수 있다. 이어서, 실행 매니저 모듈(147)은 웨이크업 발화를 수신하기 이전에 사용자들 간의 대화가 중국 음식 주문에 대한 것으로만 일관된 것임에 기반하여, 3번에 해당하는 패스 룰뿐만 아니라 1번 및 2번에 해당하는 패스 룰들도 선택하고, 상기 선택 결과에 따라 전자 장치(100)는 "A 님은 짬뽕을, B님은 간짜장을, C님은 볶음밥을 주문하셨습니다. 중국집에 주문할까요?"라는 음성 신호를 출력할 수 있다. 다른 실시 예에 따르면, 전자 장치(100)는, "A 님은 짬뽕을, B님은 간짜장을, C님은 볶음밥을 주문하셨습니다. 중국집에 주문할까요?"라는 정보를 디스플레이를 통해 표시할 수 있다.
어떤 실시 예에 따르면, 전자 장치(100)는, 상기 추천 서비스에 대한 응답으로 임의의 사용자가 다른 정보를 입력한 경우, 패스 룰을 변경할 수 있다. 예를 들면, 전자 장치(100)가 "A 님은 짬뽕을, B님은 간짜장을, C님은 볶음밥을 주문하셨습니다. 중국집에 주문할까요?"라는 음성 신호를 출력한 이후에, 사용자 A가 "간짜장으로 바꿔줘"와 같은 음성을 입력한 경우, 전자 장치(100)는 사용자 A의 주문 메뉴를 수정하여 음식을 주문하는 동작을 수행할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 상기 사용자 A의 수정 요청에 대하여 재확인을 요청하는 UI(user interface) 또는 UX(user experience)를 출력할 수 있다.
도 27은 본 발명의 일 실시 예에 따른 전자 장치(100)가 기타 정보를 제공하는 방법을 나타낸 예시이다.
도 27을 참조하면, 일 실시 예에 따르면, 전자 장치(예: 도 2의 100)는, 사용자들의 대화를 수집하는 동안 UI(user interface) 또는 UX(user experience)를 출력함으로써 현재 상태 정보를 표시할 수 있다. 예를 들면, 전자 장치(100)는 LED 조명을 제어하고, 사용자들의 대화의 문맥을 이해한 정도에 기반하여 LED 조명의 컬러, 길이, 또는 두께를 가변할 수 있다. 예를 들면, 전자 장치(100)는 사용자들의 대화를 수집을 시작한 경우 LED 조명이 제 1 컬러(예: 노란색)(2701)를 출력하도록 제어하고, 대화 수집이 진행될 수록 LED 조명이 출력하는 컬러를 제 1 컬러로부터 제 2 컬러(예: 녹색)(2703)로 가변할 수 있다. 예를 들면, 전자 장치(100)는, 사용자들의 대화의 문맥을 완전히 이해한 경우, 추천하는 서비스를 결정하고, 추천 서비스가 있음을 사용자들이 인지할 수 있도록 LED 조명이 제 3 컬러(예: 파란색)(2705)를 표시하도록 제어할 수 있다.
상술한 바와 같이, 본 발명의 다양한 실시 예에 따른 전자 장치는 사용자가 웨이크업 발화를 입력하기 이전에 대화를 미리 수집하고, 수집된 결과를 기반으로 인공 지능 서비스를 제공함으로써 빠르고 정확성 높은 응답 및 추가적인 정보에 기반한 응답을 제공할 수 있다. 본 발명의 다양한 실시 예는 사용자가 전자 장치를 통해 음성 인식 인공 지능 서비스를 이용할 때, 음성 입력의 횟수 또는 양을 줄임으로써 사용자의 편의를 높일 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", “A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 도 2의 전자 장치(100)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리 또는 외장 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램)로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(100))의 프로세서(예: 도 2의 프로세서(150))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
100: 전자 장치
200: 지능형 서버
210: 자동 음성 인식 모듈
220: 자연어 이해 모듈
230: 패스 플래너 모듈
231: 패스 룰 데이터베이스
270: 예측 데이터베이스

Claims (20)

  1. 전자 장치에 있어서,
    하우징;
    상기 하우징 내부에 위치하고 상기 하우징의 제 1 부분을 통해 적어도 일부가 노출된 마이크;
    상기 하우징 내부에 위치하고 상기 하우징의 제 2 부분을 통해 적어도 일부가 노출된 적어도 하나의 스피커;
    상기 하우징 내부에 위치한 통신 회로;
    상기 하우징 내부에 위치하고, 상기 마이크, 상기 스피커 및 상기 통신 회로에 작동적으로 연결된 프로세서; 및
    상기 하우징 내부에 위치하고 상기 프로세서에 작동적으로 연결되고, 복수개의 어플리케이션 프로그램들을 저장하도록 구성된 메모리를 포함하고,
    상기 메모리는, 실행될 때, 상기 프로세서가,
    음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하고,
    상기 획득한 음성 데이터를 외부 서버로 전송하여, 상기 외부 서버에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성할 것을 요청하고, 및
    상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보를 이용하여 상기 사용자의 의도와 관련된 추천 서비스를 출력하도록 하는 인스트럭션들(instructions)을 저장하는, 전자 장치.
  2. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 웨이크업 발화가 수신되면, 상기 사용자의 음성 데이터를 수집하기 시작한 제 1 시점과, 상기 웨이크업 발화가 수신된 제 2 시점 간의 차이를 계산하고,
    상기 차이의 크기에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하도록 하는, 전자 장치.
  3. 제 2 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 차이의 크기가 지정된 값보다 크면 상기 웨이크업 발화를 입력한 화자 정보에 더 높은 가중치를 설정하고,
    상기 차이의 크기가 지정된 값보다 작으면 상기 예측 데이터베이스에 저장된 명령어의 완성도에 더 높은 가중치를 설정하도록 하는, 전자 장치.
  4. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,상기 웨이크업 발화가 수신되면, 상기 웨이크업 발화와 함께 키워드가 포함되어 있는지 결정하고,
    상기 키워드가 포함된 경우, 상기 키워드에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하도록 하는, 전자 장치.
  5. 제 1 항에 있어서,
    상기 전자 장치는 LED 조명을 더 포함하고,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 사용자의 대화의 문맥을 이해한 정도에 기반하여, 상기 LED 조명의 컬러, 길이, 또는 두께 중 적어도 하나를 가변하도록 하는, 전자 장치.
  6. 제 5 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,상기 사용자의 대화로부터 획득한 파라미터 정보의 양이 지정된 범위를 초과하면, 상기 획득한 파라미터 정보에 기반하여 추천 서비스를 결정하고,
    상기 추천 서비스가 결정되면, 상기 LED 조명이 지정된 컬러를 표시하도록 제어하도록 하는, 전자 장치.
  7. 제 1 항에 있어서,
    상기 지정된 조건은,
    음성 입력이 지정된 값 이상인 경우,
    음성 입력이 지정된 시간 동안 없다가 입력된 경우,
    음성 입력이 지정된 값 이하로 작아졌다가 상기 지정된 값 이상으로 커진 경우,
    사용자로부터 물리 버튼의 입력이 수신된 경우,
    사용자로부터 지정된 문자가 입력된 입력한 경우,
    복수의 사용자로부터 음성 입력이 수신되는 경우,
    지정된 인원 이상의 사용자로부터 음성 입력이 수신되는 경우,
    지정된 공간 내에 상기 전자 장치가 복수개인 경우,
    상기 전자 장치에 등록된 사용자의 계정이 복수개인 경우,
    상기 전자 장치에 등록된 일정에 해당하는 시점인 경우, 또는
    상기 전자 장치가 지정된 공간에 배치되고, 미리 등록된 일정에 해당하는 시점인 경우 중에서 적어도 하나를 포함하는, 전자 장치.
  8. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,상기 획득한 음성 데이터를 분석하여 화자를 인식하고,
    상기 인식된 화자별로 상기 예측 데이터베이스를 구성하도록 하는, 전자 장치.
  9. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보로부터 상기 사용자의 의도가 명확하지 않은 경우, 추가적인 정보 입력을 요구하는 UI(user interface) 또는 UX(user experience)를 출력하도록 하는, 전자 장치.
  10. 제 1 항에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,상기 수집된 음성 데이터를 지정된 단위로 상기 외부 서버로 전송하고,
    상기 전송에 대한 응답으로서 패스 룰을 상기 외부 서버로부터 수신하도록 하고,
    상기 패스 룰은 상기 사용자의 의도와 관련한 태스크를 수행하기 위한, 상기 전자 장치의 상태들의 시퀀스(sequence)에 관한 정보를 포함하는, 전자 장치.
  11. 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하는 전자 장치의 구동 방법에 있어서,
    상기 웨이크업 발화를 수신하기 이전에, 지정된 조건에 기반하여 사용자의 음성 데이터를 수집하는 동작,
    상기 획득한 음성 데이터를 외부 서버로 전송하여, 상기 외부 서버에게 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성할 것을 요청하는 동작,
    상기 웨이크업 발화가 수신되면, 상기 예측 데이터베이스에 포함된 적어도 하나의 정보를 이용하여 가중치를 결정하는 동작, 및
    상기 결정된 가중치에 기반하여 상기 사용자의 의도와 관련된 추천 서비스를 결정하고, 결정된 추천 서비스를 출력하는 동작을 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 가중치를 결정하는 동작은,
    상기 웨이크업 발화가 수신되면, 상기 사용자의 음성 데이터를 수집하기 시작한 제 1 시점과, 상기 웨이크업 발화가 수신된 제 2 시점 간의 차이를 계산하는 동작,
    상기 차이의 크기가 지정된 값보다 크면 상기 웨이크업 발화를 입력한 화자 정보에 더 높은 가중치를 설정하는 동작, 및
    상기 차이의 크기가 지정된 값보다 작으면 상기 예측 데이터베이스에 저장된 명령어의 완성도에 더 높은 가중치를 설정하는 동작을 포함하는, 방법.
  13. 제 11 항에 있어서,
    상기 웨이크업 발화가 수신되면, 상기 웨이크업 발화와 함께 키워드가 포함되어 있는지 결정하는 동작, 및
    상기 키워드가 포함된 경우, 상기 키워드에 기반하여 상기 추천 서비스를 선택하기 위한 가중치를 결정하는 동작을 더 포함하는, 방법.
  14. 제 11 항에 있어서,
    상기 전자 장치는 LED 조명을 포함하고,
    상기 추천 서비스를 출력하는 동작은
    상기 사용자의 대화의 문맥을 이해한 정도에 기반하여, 상기 LED 조명의 컬러, 길이, 또는 두께 중 적어도 하나를 가변하는 동작을 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 추천 서비스를 출력하는 동작은
    상기 사용자의 대화로부터 획득한 파라미터 정보의 양이 지정된 범위를 초과하면, 상기 획득한 파라미터 정보에 기반하여 추천 서비스를 결정하는 동작, 및
    상기 추천 서비스가 결정되면, 상기 LED 조명이 지정된 컬러를 표시하도록 제어하는 동작을 포함하는, 방법.
  16. 음성 기반 인텔리전트 어시스턴스 서비스를 호출하는 웨이크업(wake-up) 발화(utterance)에 응답하여 사용자의 의도와 관련된 추천 서비스를 제공하기 위한 서버의 구동 방법에 있어서,
    전자 장치로부터 음성 데이터를 수신하는 동작;
    상기 음성 데이터에 포함된 사용자의 대화의 맥락을 분석하는 동작;
    상기 분석된 맥락을 기반으로 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인지 결정하는 동작;
    상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화이면, 패스 룰을 생성하고, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화가 아니면 상기 음성 데이터를 누적하여 저장하는 동작;
    상기 패스 룰이 생성되면, 상기 생성된 패스 룰을 이용하여 상기 사용자의 의도를 예측하기 위한 예측 데이터베이스를 생성하는 동작; 및
    상기 전자 장치가 상기 웨이크업 발화를 수신하면, 상기 예측 데이터베이스에 포함된 적어도 하나의 패스 룰을 상기 전자 장치에게 전송하는 동작을 포함하는, 방법.
  17. 제 16 항에 있어서,
    상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인지 결정하는 동작은,
    상기 음성 데이터로부터 지정된 복수의 파라미터의 정보를 획득하는 동작, 및
    상기 획득한 복수의 파라미터의 정보가 지정된 개수를 초과하면, 상기 음성 데이터가 상기 사용자의 의도를 결정할 수 있는 발화인 것으로 결정하는 동작을 포함하는, 방법.
  18. 제 17 항에 있어서,
    상기 전자 장치로부터 상기 음성 데이터의 화자 정보를 획득하는 동작; 및
    상기 패스 룰이 상기 화자 정보에 매칭되도록 상기 예측 데이터베이스를 관리하는 동작을 더 포함하는, 방법.
  19. 제 17 항에 있어서,
    상기 지정된 복수의 파라미터는
    동작의 주체, 시간, 장소, 동작의 대상, 동작을 수행하는 방법, 및 동작의 이유 각각에 해당하는 필드 정보를 포함하는, 방법.
  20. 제 16 항에 있어서,
    상기 예측 데이터베이스는, 상기 음성 데이터로부터 획득한 텍스트, 상기 화자 정보, 상기 화자 정보와 관련한 가중치 정보, 상기 전자 장치에서 구동 가능한 어플리케이션 또는 상기 어플리케이션의 상태 정보, 또는 키워드 중 적어도 하나를 포함하는, 방법.
KR1020180083611A 2018-07-18 2018-07-18 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법 KR20200013152A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180083611A KR20200013152A (ko) 2018-07-18 2018-07-18 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법
EP19838080.0A EP3782040A4 (en) 2018-07-18 2019-07-15 ELECTRONIC DEVICE AND METHOD FOR PROVIDING ARTIFICIAL INTELLIGENCE SERVICES ON THE BASIS OF PRE-COLLECTED CONVERSATIONS
PCT/KR2019/008712 WO2020017849A1 (en) 2018-07-18 2019-07-15 Electronic device and method for providing artificial intelligence services based on pre-gathered conversations
CN201980047366.5A CN112513833A (zh) 2018-07-18 2019-07-15 用于基于预先合成的对话提供人工智能服务的电子设备和方法
US16/514,062 US11367439B2 (en) 2018-07-18 2019-07-17 Electronic device and method for providing artificial intelligence services based on pre-gathered conversations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180083611A KR20200013152A (ko) 2018-07-18 2018-07-18 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20200013152A true KR20200013152A (ko) 2020-02-06

Family

ID=69162493

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180083611A KR20200013152A (ko) 2018-07-18 2018-07-18 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법

Country Status (5)

Country Link
US (1) US11367439B2 (ko)
EP (1) EP3782040A4 (ko)
KR (1) KR20200013152A (ko)
CN (1) CN112513833A (ko)
WO (1) WO2020017849A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021177499A1 (ko) * 2020-03-05 2021-09-10 삼성전자 주식회사 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
US20220150084A1 (en) * 2019-05-14 2022-05-12 Interactive Solutions Corp. Automatic Report Creation System
WO2022154291A1 (ko) * 2021-01-14 2022-07-21 삼성전자주식회사 전자 장치 및 그 제어 방법
WO2023128586A1 (ko) * 2021-12-28 2023-07-06 경북대학교 산학협력단 인공지능에 기초한 대화상황예측과 의도분류 시스템 및 그 방법
WO2024071469A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 인공지능 기기 및 그의 동작 방법
US11966439B2 (en) 2021-03-25 2024-04-23 Samsung Electronics Co., Ltd. Method for providing voice assistant service and electronic device supporting the same

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102472010B1 (ko) * 2018-05-04 2022-11-30 삼성전자주식회사 전자 장치 및 전자 장치의 기능 실행 방법
KR20200013152A (ko) * 2018-07-18 2020-02-06 삼성전자주식회사 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법
US11032217B2 (en) * 2018-11-30 2021-06-08 International Business Machines Corporation Reusing entities in automated task-based multi-round conversation
CN110377716B (zh) * 2019-07-23 2022-07-12 百度在线网络技术(北京)有限公司 对话的交互方法、装置及计算机可读存储介质
KR20190099169A (ko) * 2019-08-06 2019-08-26 엘지전자 주식회사 인공지능 기반의 기상 및 취침 시간 정보 제공 장치 및 방법
EP3804915A1 (en) * 2019-10-11 2021-04-14 Tata Consultancy Services Limited Conversational systems and methods for robotic task identification using natural language
WO2021080033A1 (ko) * 2019-10-23 2021-04-29 엘지전자 주식회사 음성 분석 방법 및 장치
CN112908318A (zh) * 2019-11-18 2021-06-04 百度在线网络技术(北京)有限公司 智能音箱的唤醒方法、装置、智能音箱及存储介质
US11977849B2 (en) * 2020-04-24 2024-05-07 Rajiv Trehan Artificial intelligence (AI) based automated conversation assistance system and method thereof
CN111581333B (zh) * 2020-05-07 2023-05-26 重庆大学 基于Text-CNN的影音播单推送方法及影音播单推送系统
US20220215056A1 (en) * 2021-01-04 2022-07-07 Oracle International Corporation Drill back to original audio clip in virtual assistant initiated lists and reminders
CN112783324B (zh) * 2021-01-14 2023-12-01 科大讯飞股份有限公司 人机交互方法及设备、计算机存储介质
EP4064279A4 (en) * 2021-01-28 2022-12-21 Samsung Electronics Co., Ltd. DEVICE AND METHOD FOR PROVIDING RECOMMENDED SENTENCES ASSOCIATED WITH USER STATEMENT INPUT
US20220270604A1 (en) * 2021-02-19 2022-08-25 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
CN113335205B (zh) * 2021-06-09 2022-06-03 东风柳州汽车有限公司 语音唤醒方法、装置、设备及存储介质
CN113393300B (zh) * 2021-06-23 2022-11-18 未鲲(上海)科技服务有限公司 基于人工智能的产品推荐方法、装置、设备及存储介质
CN113553417B (zh) * 2021-07-19 2023-06-23 中国联合网络通信集团有限公司 用户终端使用反馈方法以及实现该方法的系统
US20220274251A1 (en) * 2021-11-12 2022-09-01 Intel Corporation Apparatus and methods for industrial robot code recommendation

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620549B2 (en) * 2005-08-10 2009-11-17 Voicebox Technologies, Inc. System and method of supporting adaptive misrecognition in conversational speech
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20130275899A1 (en) * 2010-01-18 2013-10-17 Apple Inc. Application Gateway for Providing Different User Interfaces for Limited Distraction and Non-Limited Distraction Contexts
US8255225B2 (en) * 2008-08-07 2012-08-28 Vocollect Healthcare Systems, Inc. Voice assistant system
US10705794B2 (en) * 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
KR20110114797A (ko) * 2010-04-14 2011-10-20 한국전자통신연구원 음성을 이용한 모바일 검색 장치 및 방법
US20120041771A1 (en) * 2010-08-11 2012-02-16 Cosentino Daniel L Systems, methods, and computer program products for patient monitoring
GB2493956A (en) * 2011-08-24 2013-02-27 Inview Technology Ltd Recommending audio-visual content based on user's personal preerences and the profiles of others
US10120877B2 (en) * 2011-09-15 2018-11-06 Stephan HEATH Broad and alternative category clustering of the same, similar or different categories in social/geo/promo link promotional data sets for end user display of interactive ad links, coupons, mobile coupons, promotions and sale of products, goods and services integrated with 3D spatial geomapping and mobile mapping and social networking
US9916538B2 (en) * 2012-09-15 2018-03-13 Z Advanced Computing, Inc. Method and system for feature detection
KR101878488B1 (ko) * 2011-12-20 2018-08-20 한국전자통신연구원 대화 연관 컨텐츠 제공 방법 및 장치
KR101368489B1 (ko) * 2012-05-11 2014-03-03 이진규 스마트 기기를 위한 메신저 앱의 대화 정보에 따른 광고 제시 방법
US9786294B1 (en) * 2012-07-30 2017-10-10 Amazon Technologies, Inc. Visual indication of an operational state
KR20140089862A (ko) * 2013-01-07 2014-07-16 삼성전자주식회사 디스플레이 장치 및 그의 제어 방법
EP3809407A1 (en) 2013-02-07 2021-04-21 Apple Inc. Voice trigger for a digital assistant
US20150314454A1 (en) * 2013-03-15 2015-11-05 JIBO, Inc. Apparatus and methods for providing a persistent companion device
US20170206064A1 (en) * 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform
CN103605656B (zh) * 2013-09-30 2018-02-02 小米科技有限责任公司 一种推荐音乐的方法、装置及一种移动终端
US9710753B1 (en) * 2013-10-22 2017-07-18 Lumin, LLC Collaboration of audio sensors for geo-location of events in an artificial intelligence (AI) environment
DE112014006542B4 (de) * 2014-03-31 2024-02-08 Mitsubishi Electric Corporation Einrichtung und Verfahren zum Verständnis von einer Benutzerintention
US9697828B1 (en) 2014-06-20 2017-07-04 Amazon Technologies, Inc. Keyword detection modeling using contextual and environmental information
KR102261552B1 (ko) * 2014-06-30 2021-06-07 삼성전자주식회사 음성 명령어 제공 방법 및 이를 지원하는 전자 장치
US9703962B2 (en) * 2014-10-09 2017-07-11 Qualcomm Incorporated Methods and systems for behavioral analysis of mobile device behaviors based on user persona information
US10614799B2 (en) * 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US9508339B2 (en) * 2015-01-30 2016-11-29 Microsoft Technology Licensing, Llc Updating language understanding classifier models for a digital personal assistant based on crowd-sourcing
US20160274864A1 (en) * 2015-03-20 2016-09-22 Google Inc. Systems and methods for enabling user voice interaction with a host computing device
US10747498B2 (en) * 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
CN105243143B (zh) * 2015-10-14 2018-07-24 湖南大学 基于即时语音内容检测的推荐方法及系统
KR102453603B1 (ko) 2015-11-10 2022-10-12 삼성전자주식회사 전자 장치 및 그 제어 방법
KR102501083B1 (ko) * 2016-02-05 2023-02-17 삼성전자 주식회사 음성 인식 방법 및 이를 사용하는 전자 장치
US10282165B2 (en) 2016-04-06 2019-05-07 International Business Machines Corporation Selective displaying of push notifications
CN105930452A (zh) * 2016-04-21 2016-09-07 北京紫平方信息技术股份有限公司 一种识别自然语言的智能应答方法
JP2019523918A (ja) * 2016-05-10 2019-08-29 グーグル エルエルシー デバイス上の音声アシスタントの実装
US10586535B2 (en) * 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10462545B2 (en) * 2016-07-27 2019-10-29 Amazon Technologies, Inc. Voice activated electronic device
KR20180046780A (ko) * 2016-10-28 2018-05-09 에스케이텔레콤 주식회사 이중 웨이크업을 이용한 음성 인식 서비스 제공 방법 및 이를 위한 장치
KR20180060328A (ko) * 2016-11-28 2018-06-07 삼성전자주식회사 멀티 모달 입력을 처리하는 전자 장치, 멀티 모달 입력을 처리하는 방법 및 멀티 모달 입력을 처리하는 서버
US10679608B2 (en) * 2016-12-30 2020-06-09 Google Llc Conversation-aware proactive notifications for a voice interface device
CN107135247B (zh) * 2017-02-16 2019-11-29 江苏南大电子信息技术股份有限公司 一种人与人工智能协同工作的服务系统及方法
KR20180096147A (ko) 2017-02-20 2018-08-29 삼성전자주식회사 전자 장치 및 전자 장치에서의 정보 제공 방법
CN107220292A (zh) * 2017-04-25 2017-09-29 上海庆科信息技术有限公司 智能对话装置、反馈式智能语音控制系统及方法
CN107302566A (zh) * 2017-05-27 2017-10-27 冯小平 推送信息的方法和装置
CN107171872B (zh) * 2017-07-19 2020-06-02 上海百芝龙网络科技有限公司 一种智能家居中用户行为预测方法
WO2019235863A1 (en) * 2018-06-05 2019-12-12 Samsung Electronics Co., Ltd. Methods and systems for passive wakeup of a user interaction device
KR20200013152A (ko) * 2018-07-18 2020-02-06 삼성전자주식회사 이전에 대화를 수집한 결과를 기반으로 인공 지능 서비스를 제공하는 전자 장치 및 방법

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220150084A1 (en) * 2019-05-14 2022-05-12 Interactive Solutions Corp. Automatic Report Creation System
US11570014B2 (en) * 2019-05-14 2023-01-31 Interactive Solutions Corp. Automatic report creation system
US20230131018A1 (en) * 2019-05-14 2023-04-27 Interactive Solutions Corp. Automatic Report Creation System
US11991017B2 (en) * 2019-05-14 2024-05-21 Interactive Solutions Corp. Automatic report creation system
WO2021177499A1 (ko) * 2020-03-05 2021-09-10 삼성전자 주식회사 사용 로그 분석에 의한 보이스 에이전트의 새 기능을 자동적으로 추출하는 방법 및 장치
US11900934B2 (en) 2020-03-05 2024-02-13 Samsung Electronics Co., Ltd. Method and apparatus for automatically extracting new function of voice agent based on usage log analysis
WO2022154291A1 (ko) * 2021-01-14 2022-07-21 삼성전자주식회사 전자 장치 및 그 제어 방법
US11966439B2 (en) 2021-03-25 2024-04-23 Samsung Electronics Co., Ltd. Method for providing voice assistant service and electronic device supporting the same
WO2023128586A1 (ko) * 2021-12-28 2023-07-06 경북대학교 산학협력단 인공지능에 기초한 대화상황예측과 의도분류 시스템 및 그 방법
WO2024071469A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 인공지능 기기 및 그의 동작 방법

Also Published As

Publication number Publication date
CN112513833A (zh) 2021-03-16
WO2020017849A1 (en) 2020-01-23
US20200027456A1 (en) 2020-01-23
EP3782040A1 (en) 2021-02-24
US11367439B2 (en) 2022-06-21
EP3782040A4 (en) 2021-11-17

Similar Documents

Publication Publication Date Title
US11367439B2 (en) Electronic device and method for providing artificial intelligence services based on pre-gathered conversations
KR102374910B1 (ko) 음성 데이터 처리 방법 및 이를 지원하는 전자 장치
US11670302B2 (en) Voice processing method and electronic device supporting the same
CN110288987B (zh) 用于处理声音数据的系统和控制该系统的方法
KR102406718B1 (ko) 컨텍스트 정보에 기반하여 음성 입력을 수신하는 지속 기간을 결정하는 전자 장치 및 시스템
KR102508863B1 (ko) 전자 장치 및 상기 전자 장치로부터 수신된 데이터를 처리하는 서버
KR102440651B1 (ko) 자연어 표현 제공 방법 및 이를 지원하는 전자 장치
KR102472010B1 (ko) 전자 장치 및 전자 장치의 기능 실행 방법
US10560576B1 (en) Electronic device for performing task including call in response to user utterance and operation method thereof
US11361750B2 (en) System and electronic device for generating tts model
KR102417029B1 (ko) 자연어 표현 생성 방법 및 전자 장치
KR102426411B1 (ko) 사용자 발화을 처리하는 전자 장치 및 시스템
KR20190139489A (ko) 음성 인식 서비스 운용 방법 및 이를 지원하는 전자 장치
US11145290B2 (en) System including electronic device of processing user's speech and method of controlling speech recognition on electronic device
KR102519635B1 (ko) 음성 명령을 처리하기 위한 전자 문서 표시 방법 및 그 전자 장치
KR20190021088A (ko) 음성 명령을 이용한 동작을 수행하는 전자 장치 및 전자 장치의 동작 방법
KR102612835B1 (ko) 전자 장치 및 전자 장치의 기능 실행 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal