KR20220031610A - 멀티-모달 사용자 인터페이스 - Google Patents

멀티-모달 사용자 인터페이스 Download PDF

Info

Publication number
KR20220031610A
KR20220031610A KR1020227000411A KR20227000411A KR20220031610A KR 20220031610 A KR20220031610 A KR 20220031610A KR 1020227000411 A KR1020227000411 A KR 1020227000411A KR 20227000411 A KR20227000411 A KR 20227000411A KR 20220031610 A KR20220031610 A KR 20220031610A
Authority
KR
South Korea
Prior art keywords
input
user
data
mode
feedback message
Prior art date
Application number
KR1020227000411A
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 퀄컴 인코포레이티드
Publication of KR20220031610A publication Critical patent/KR20220031610A/ko

Links

Images

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/20Speech recognition techniques specially adapted for robustness in adverse environments, e.g. in noise, of stress induced speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0381Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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 OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; 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

Abstract

멀티-모달 사용자 입력을 위한 디바이스는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하도록 구성된 프로세서를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자의 제 1 입력을 나타낸다. 제 1 입력은 커맨드에 대응한다. 프로세서는 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지를 출력 디바이스에 전송하도록 구성된다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 컨맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 프로세서는 제 2 입력 디바이스로부터 제 2 데이터를 수신하도록 구성되고, 제 2 데이터는 제 2 입력을 나타내며, 프로세서는 또한 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하도록 구성된다.

Description

멀티-모달 사용자 인터페이스
I. 우선권의 주장
본 출원은 2019년 7월 12일자로 출원된 공동 소유 미국 가 특허 출원 제62/873,775호, 및 2019년 11월 15일자로 출원된 미국 정규 특허 출원 제16/685,946호로부터의 우선권의 이익을 주장하며, 전술된 출원들의 각각의 내용들은 그 전체가 참조에 의해 본원에 명시적으로 통합된다.
II. 분야
본 발명은 일반적으로 사용자 인터페이스들에 관한 것이며, 보다 구체적으로는, 사용자 입력의 다수의 모달리티들을 지원하는 사용자 인터페이스들에 관한 것이다.
III. 관련 기술의 설명
많은 사용자 인터페이스들은 자동 음성 인식(automatic speech recognition; ASR) 및 자연어 처리(natural language processing; NLP)를 기반으로 하며, 많은 상이한 커맨드들, 액센트들, 및 언어들을 통해 학습되어 대규모 고객 기반에서 유용하게 사용된다. 다양한 사용자들 사이에서 광범위한 적용성을 위해 이러한 사용자 인터페이스들을 트레이닝하는 것은 광범위한 리소스들을 필요로 하고, 큰 고객 기반에 일반적으로 적용가능한 사용자 인터페이스를 만들기 위한 트레이닝(training)의 대부분은, 각각의 개별 사용자가 통상적으로 단일 언어, 액센트, 및 지원되는 커맨드들의 서브-세트만을 사용하기 때문에, 사용자별로 "낭비되는" 것이다.
IV. 요약
본 개시의 일 구현에 따르면, 멀티-모달(multi-modal) 사용자 입력을 위한 디바이스는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하도록 구성된 하나 이상의 프로세서들을 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드(command)에 대응한다. 하나 이상의 프로세서들을 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지(feedback message)를 출력 디바이스에 전송하도록 구성된다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 하나 이상의 프로세서들은 제 2 입력 디바이스로부터 제 2 데이터를 수신하고 - 제 2 데이터는 제 2 입력을 나타냄 -, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑(mapping)을 업데이트하도록 구성된다.
본 개시의 다른 구현에 따르면, 멀티-모달 사용자 입력을 위한 방법은, 디바이스의 하나 이상의 프로세서들에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 그 방법은, 하나 이상의 프로세서들로부터, 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 단계를 포함한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 그 방법은, 하나 이상의 프로세서들에서, 제 2 입력 디바이스로부터 제 2 데이터를 수신하는 단계를 포함한다. 제 2 데이터는 제 2 입력을 나타낸다. 그 방법은 또한, 하나 이상의 프로세서들에서, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하는 단계를 포함한다.
본 개시의 다른 구현에 따르면, 멀티-모달 사용자 입력을 위한 장치는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하기 위한 수단을 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 그 장치는 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하기 위한 수단을 포함한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 그 장치는 제 2 입력 디바이스로부터 제 2 데이터를 수신하기 위한 수단을 포함하고, 제 2 데이터는 제 2 입력을 표시한다. 그 장치는 또한, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하는 수단을 포함한다.
본 개시의 다른 구현에 따르면, 비일시적 (non-transitory) 컴퓨터 판독가능 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하게 하는 명령들을 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지를 출력 디바이스에 전송하게 한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금 제 2 입력 디바이스로부터 제 2 데이터를 수신하게 하고, 제 2 데이터는 제 2 입력을 나타낸다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 또한 그 하나 이상의 프로세서들로 하여금, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하게 한다.
V. 도면들의 간단한 설명
도 1은 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 디바이스를 포함하는 시스템의 특정 예시적인 구현의 도면이다.
도 2는 본 개시의 일부 예들에 따른, 도 1 의 디바이스의 컴포넌트들의 특정 구현의 도면이다.
도 3은 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 디바이스를 포함하는 시스템의 다른 특정 구현의 도면이다.
도 4는 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 디바이스를 포함하는 시스템의 다른 특정 구현의 일 예의 도면이다.
도 5는 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 디바이스의 다른 구현의 도면이다.
도 6은 본 개시의 일부 예들에 따른, 도 1의 디바이스에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법의 구현의 도면이다.
도 7은 본 개시의 일부 예들에 따른, 도 1의 디바이스에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법의 다른 구현의 도면이다.
도 8은 본 개시의 일부 예들에 따른, 도 1의 디바이스에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법의 다른 구현의 도면이다.
도 9는 본 개시의 일부 예들에 따른, 도 1의 디바이스에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법의 다른 구현의 도면이다.
도 10은 본 개시의 일부 예들에 따른, 도 1의 디바이스에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법의 다른 구현의 도면이다.
도 11은 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 차량의 도면이다.
도 12a는 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 가상 현실 또는 증강 현실 헤드셋의 도면이다.
도 12b는 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 웨어러블 전자 디바이스의 도면이다.
도 13은 본 개시의 일부 예들에 따른, 멀티-모달 사용자 입력을 프로세싱하도록 동작가능한 디바이스의 특정 예시적인 예의 블록도이다.
VI. 상세한 설명
다수의 입력 모달리티들(modalities)을 사용하여 사용자 상호작용을 가능하게 하기 위한 디바이스들 및 방법들이 설명된다. 많은 사용자 인터페이스들은 자동 음성 인식(ASR) 및 자연어 처리(NLP)를 기반으로 하며, 대규모 고객 기반에서 유용하도록 많은 상이한 커맨드들, 액센트들, 및 언어들을 통해 트레이닝된다. 다양한 사용자들 사이에서 광범위한 적용성을 위해 이러한 사용자 인터페이스들을 트레이닝하는 것은 광범위한 리소스들을 필요로 하고, 큰 고객 기반에 일반적으로 적용가능한 사용자 인터페이스를 만들기 위한 트레이닝의 대부분은, 각각의 개별 사용자가 통상적으로 단일 언어, 액센트, 및 지원되는 커맨드들의 서브-세트만을 사용하기 때문에, 사용자별로 "낭비" 된다.
사용자 커맨드들의 해석을 개인화하는 능력과 함께, 멀티-모달 사용자 상호작용 (multi-modal user interaction) 을 가능하게 함으로써, 본 명세서에 설명된 기술들은 멀티-모달 사용자 인터페이스들이 특정 사용자들에 의한 사용을 위해 트레이닝될 수 있게 하여, 종래의 사용자 인터페이스들의 광범위한 적용성을 위한 광범위한 트레이닝을 감소시키거나 제거한다. 일부 구현들에서, 상이한 임베딩 네트워크들은 상이한 입력 모달리티들(예를 들어, 스피치를 위한 임베딩 네트워크, 시각적 입력을 위한 임베딩 네트워크, 제스처 입력을 위한 임베딩 네트워크 등)을 위해 사용되고, 각각의 모달리티들을 사용하여 수신된 상이한 커맨드들을 구별하도록 구성된다. 예시하기 위해, "임베딩 네트워크(embedding network)"는 임베딩 벡터를 생성하기 위해 스피치 데이터(예를 들어, 시간-도메인 스피치 데이터 또는 주파수-도메인 스피치 데이터)와 같은 입력 데이터를 프로세싱하도록 구성(예를 들어, 트레이닝)된 하나 이상의 뉴럴 네트워크 계층들을 포함할 수 있다. "임베딩 벡터(embedding vector)"는 입력 데이터에 비해 상대적으로 저차원적이고, 입력 데이터를 나타내며, 입력 데이터의 상이한 인스턴스들(instances)을 구별하는데 사용될 수 있는 벡터(예를 들어, 다수의 값들의 세트)이다. 상이한 임베딩 네트워크 출력들은 공통 임베딩 공간으로 변환되고 결합된 임베딩 벡터로 융합된다. 예를 들어, 스피치 입력의 n-차원 스피치 임베딩 벡터는 k-차원 제 1 임베딩 벡터로 변환될 수 있고, 제스처 입력의 m-차원 제스처 임베딩 벡터는 k-차원 제 2 임베딩 벡터로 변환될 수 있다(여기서, m, n, 및 k 는 서로 같을 수도 있거나 서로 다를 수도 있다). k-차원 제 1 임베딩 벡터는 스피치 입력을 나타내고, k-차원 제 2 임베딩 벡터는 k-차원 벡터 공간(예를 들어, 공통 임베딩 공간)에서의 제스처 입력을 나타낸다. k-차원 제 1 임베딩 벡터 및 k-차원 제 2 임베딩 벡터는, 예컨대 벡터 가산에 의해 결합되어, 결합된 임베딩 벡터를 생성할 수 있다. 분류기(classifier)는 결합된 임베딩 벡터를 해석하여 출력을 생성한다.
임베딩 네트워크들 및 분류기 각각은 다양한 모달리티들을 통해 수신되는 사용자 커맨드들의 인식을 향상시키기 위해 개별 사용자들에 의해 업데이트(예를 들어, 트레이닝)될 수 있다. 예를 들어, 높은 신뢰도로 해석될 수 없는 발화된 사용자 커맨드가 수신되는 경우, 사용자 인터페이스는 발화된 커맨드의 의미에 대해 사용자에게 질의할 수 있고, 사용자는 예를 들어 사용자 인터페이스에 의해 인식되는 제스처 입력을 수행하는 등에 의해 상이한 모달리티를 사용하여 의미를 입력할 수 있다.
일부 구현들에서, 사용자 인터페이스는 사용자가 입력 모달리티들을 변경할 것을 요청할 수 있다. 예를 들어, 재생 볼륨을 증가시키기 위한 사용자의 발화된 커맨드 "업(up)"이 다른 커맨드(예를 들어, "오프(off)")로부터 신뢰가능하게 구별될 수 없는 경우, 사용자 인터페이스는 사용자가 커맨드를 더 잘 구별하기 위해 다른 모달리티를 추가하도록 요청하는 (예를 들어, 발화된 또는 디스플레이된) 피드백 메시지를 생성할 수 있다. 예를 들어, 사용자는 "볼륨 증가" 커맨드를 위해 위쪽을 가리키는 것과 같은 시각적 입력을 추가할 수 있다. 사용자 인터페이스는 재생 볼륨을 증가시키기 위한 멀티-모달 커맨드로서 포인팅 상향 시각적 입력과 발화된 입력 "업"의 조합을 인식하도록 업데이트될 수 있다. 따라서, 개인화된 업데이트들(예를 들어, 단일-모달에서부터 다중-모달까지)은 커맨드 인식 정확도를 향상시키기 위해 사용될 수 있다.
일부 구현들에서, 사용자 인터페이스는 사용자 입력들을 보다 쉽게 명확화(disambiguate)하기 위해 사용자가 입력 모달리티들을 변경할 것을 요청한다. 예를 들어, 오디오 노이즈가 (예를 들어, 움직이는 차량에서) 사용자의 스피치의 해석을 손상시키는 구현에서, 사용자 인터페이스는 사용자가 시각적 또는 제스처 모달리티 등으로 모달리티들을 변경할 것을 요청하는 피드백 메시지를 생성할 수 있다. 다른 예로서, 낮은 광 레벨들이 사용자의 시각적 입력의 해석을 손상시키는 구현에서, 사용자 인터페이스는 사용자가 손 움직임 및 배향을 검출하기 위해 웨어러블 전자 디바이스(예를 들어, "스마트 워치")의 모션 검출기들을 사용하는 제스처 모달리티 또는 스피치 모달리티 등으로 모달리티들을 변경할 것을 요청하는 피드백 메시지를 생성할 수 있다. 따라서, 사용자에게 입력 모달리티들을 변경하도록 지시하는 것은 커맨드 인식 정확도를 향상시키기 위해 사용될 수 있다.
일부 구현들에서, 사용자 인터페이스는 사용자가 다중-팩터 인증 프로세스의 일부로서 입력 모달리티들을 변경하도록 요청한다. 예를 들어, 음성 인증을 수행하기 위해 발화된 사용자 입력을 수신한 후, 사용자 인터페이스는 다음으로 사용자에게 시각적 또는 제스처 입력을 제공할 것을 요청할 수도 있다. 다른 입력 모달리티를 사용하여 추가적인 사용자 입력을 제공하도록 하는 요청은 스피치 입력이 사용자의 레코딩된 스피치의 재생을 나타내는 특성들을 갖는 검출과 같은, 이전 사용자 입력에서의 이상에 의해 트리거될 수 있다. 대안적으로, 또는 추가적으로, 요청은 멀티-팩터 인증 프로세스에 대한 확립된 일련의 인증 입력들의 일부로서 또는 랜덤하게 생성될 수 있다. 따라서, 사용자에게 입력 모달리티들을 변경하도록 지시하는 것은 더 높은 정확도, 더 견고한 사용자 인증을 위해 사용될 수 있다. 본 명세서에서 사용되는 바와 같이, 멀티-팩터 인증 프로세스에 대한 인증 입력들에 대응하는 사용자 입력들은 사용자 커맨드들에 대응하는 사용자 입력들과 구별된다. 예시를 위해, 커맨드에 대응하는 사용자 입력은 그 커맨드와 연관된 액션 또는 "스킬(skill)"을 수행하기 위한 명령으로서 사용자 인터페이스에 의해 해석되는 한편(예를 들어, "조명을 켜라"), 인증 입력에 대응하는 사용자 입력은 저장된 사용자 프로파일의 데이터와 비교되어, 사용자 입력이 (예를 들어, 생체인식 데이터 또는 다른 사용자 식별 데이터의 비교를 통해) 그 저장된 사용자 프로파일과 연관된 동일한 사용자로부터 비롯될 가능성을 결정한다.
문맥에 의해 명시적으로 한정되지 않는 한, 용어 "생성하는 것(producing)" 은 산출하는 것, 발생하는 것, 및/또는 제공하는 것과 같이 그 일반적인 의미들 중 임의의 의미를 나타내기 위해 사용된다. 문맥에 의해 명시적으로 한정되지 않는 한, 용어 "제공하는 것(providing)" 은 산출하는 것, 발생하는 것, 및/또는 생성하는 것과 같이 그 일반적인 의미들 중 임의의 의미를 나타내기 위해 사용된다. 문맥에 의해 명시적으로 제한되지 않는 한, 용어 "커플링되는(coupled)"이라는 용어는 직접 또는 간접적인 전기적 또는 물리적 연결을 나타내기 위해 사용된다. 연결이 간접적인 경우, 구조들 사이에 "커플링된" 다른 블록들 또는 컴포넌트들이 존재할 수도 있다. 예를 들어, 라우드스피커는 라우드스피커로부터 벽으로(또는 그 반대로) 파동(예를 들어, 사운드)의 전파를 가능하게 하는 개재 매체(예를 들어, 공기)를 통해 근처의 벽에 음향적으로 커플링될 수도 있다.
용어 "구성(configuration)" 은 그 특정 문맥에 의해 표시된 바와 같이, 방법, 장치, 디바이스, 시스템, 또는 이들의 임의의 조합을 참조하여 사용될 수도 있다. 용어 "포함하는(comprising)"이 본 설명 및 청구항들에서 사용되는 경우, 다른 엘리먼트들 또는 동작들을 배제하지는 않는다. ("A 는 B 에 기초함" 에서와 같이) 용어 "기초하여(based on)"는 (i) "적어도 기초하여(based on at least)" (예를 들어, "A 는 B 에 적어도 기초함"), 및 특정 문맥에서 적절한 경우, (iii) "~ 와 동일한" (예를 들어, "A 는 B 와 동일함") 경우들을 포함하여 그 통상적인 의미들 중 임의의 의미를 나타내기 위해 사용된다. (i) "A는 B에 기초한다"가 "적어도 기초한다"를 포함하는 경우, 이는 A가 B에 커플링되는 구성을 포함할 수도 있다. 유사하게, 용어 "응답하여(in response to)"는 "적어도 응답하여"를 포함하여, 그것의 통상적인 의미들 중 임의의 것을 나타내기 위해 사용된다. 용어 "적어도 하나"는 "하나 이상"을 포함하는 임의의 통상적인 의미들을 나타내기 위해 사용된다. 용어 "적어도 2 개"는 "2개 이상"을 포함하는 임의의 통상적인 의미들을 나타내기 위해 사용된다.
용어들 "장치(apparatus)" 및 "디바이스(device)" 는, 특정 문맥에 의해 달리 표시되지 않으면, 일반적으로 그리고 상호대체가능하게 사용된다. 달리 표시되지 않으면, 특정 특징을 갖는 장치의 동작의 임의의 개시는 또한 유사한 특징을 갖는 방법을 개시하도록 명시적으로 의도되며 (그 역도 성립), 특정 구성에 따른 장치의 동작의 임의의 개시는 또한 유사한 구성에 따른 방법을 개시하도록 명시적으로 의도된다 (그 역도 성립). 용어들 "방법", "프로세스", "절차", 및 "기법" 은, 특정 문맥에 의해 달리 표시되지 않으면, 일반적으로 그리고 상호대체가능하게 사용된다. 용어들 "엘리먼트" 및 "모듈" 은 더 큰 구성의 부분을 표시하기 위해 사용될 수도 있다. 용어 "패킷"은 헤더 부분과 페이로드 부분을 포함하는 데이터의 단위에 대응할 수도 있다. 문서의 부분의 참조에 의한 임의의 통합은 또한 그 부분 내에서 참조되는 용어들 또는 변수들의 정의들을 포함하는 것으로 이해되어야 하며, 그러한 정의들은 문서의 다른 곳에 나타날 뿐만 아니라 통합된 부분에서 참조되는 임의의 모습들을 포함한다.
본 명세서에서 사용되는 바와 같이, 용어 "통신 디바이스"는 무선 통신 네트워크를 통한 음성 및/또는 데이터 통신을 위해 사용될 수도 있는 전자 디바이스를 지칭한다. 통신 디바이스들의 예들은 스마트 스피커들, 스피커 바들, 셀룰러 폰들, PDA들, 핸드헬드 디바이스들, 헤드세트들, 웨어러블 디바이스들, 무선 모뎀들, 랩탑 컴퓨터들, 퍼스널 컴퓨터들 등을 포함한다.
도 1은 사용자(102)가 멀티-모달 사용자 입력을 위해 디바이스(110)와 상호작용하는 시스템(100)을 도시한다. 디바이스(110)는 제 1 입력 디바이스(112), 제 2 입력 디바이스(114), 선택적으로 제 3 입력 디바이스(116)와 같은 하나 이상의 추가적인 입력 디바이스들, 출력 디바이스(120), 및 제어 유닛(104)을 포함한다. 일부 구현들에서, 디바이스(110)는, 예시적이고 비-제한적인 예들로서, 휴대용 통신 디바이스(예를 들어, "스마트 폰"), 웨어러블 디바이스(예를 들어, "스마트 워치"), 차량 시스템(예를 들어, 자동차 엔터테인먼트 시스템, 내비게이션 시스템, 또는 자율 주행 제어 시스템과 함께 사용하기 위한 이동가능 또는 착탈형 디스플레이), 또는 가상 현실 또는 증강 현실 헤드셋을 포함할 수 있다.
제 1 입력 디바이스(112)는 제 1 입력 모드에 기초하여 제 1 사용자 입력들을 검출하도록 구성된다. 일 예에서, 제 1 입력 디바이스(112)는 마이크로폰을 포함하고, 제 1 입력 모드는 (예를 들어, ASR/NLP에 대한) 스피치 모드를 포함한다. 예시하기 위해, 제 1 입력 디바이스(112)는 하나 이상의 키워드 또는 음성 커맨드들을 포함하는 오디오 입력을 캡처하도록 구성된 하나 이상의 마이크로폰들을 포함할 수 있다.
제 2 입력 디바이스(114)는 제 2 입력 모드에 기초하여 제 2 사용자 입력들을 검출하도록 구성된다. 일 예에서, 제 2 입력 디바이스(114)는 카메라를 포함하고, 제 2 입력 모드는 (예를 들어, 엄지 손가락-업 또는 엄지 손가락-다운 손 포지션, 얼굴 표정 등과 같은 사용자(102)의 시각적 양상을 검출하기 위한) 비디오 모드를 포함한다. 예시하기 위해, 제 2 입력 디바이스(114)는 하나 이상의 제스처 또는 시각적 커맨드들을 포함하는 비디오 입력을 캡처하도록 구성된 하나 이상의 카메라들을 포함할 수 있다.
제 3 입력 디바이스(116)는 제 3 입력 모드에 기초하여 제 3 사용자 입력들을 검출하도록 구성된다. 예를 들어, 제 3 입력 디바이스(116)는 제스처 추적기를 포함하고, 제 3 입력 모드는 제스처 모드를 포함한다. 제 3 입력 디바이스(116)는 제스처 입력을 나타내는 데이터(예를 들어, 모션 데이터)를 수신하도록 구성된 하나 이상의 안테나들을 포함할 수 있다. 예시를 위해, 사용자(102)는 사용자의 손의 움직임을 추적하고 모션 데이터를 제 3 입력 디바이스(116)에 송신하는 모션 센서들(예를 들어, 가속도계들, 자이로스코프들 등)을 포함하는 팔찌 또는 시계를 착용할 수 있다. 다른 구현들에서, 모션 추적 전자 디바이스들은 인간 사용자(102)에서의 인공두뇌 이식과 같이 사용자(102)와 통합될 수 있거나, 또는 사용자(102)가 로봇인 구현들에서 사용자(102)의 컴포넌트들일 수 있다.
출력 디바이스(120)는 라우드스피커를 사용하는 가청 출력의 생성, 디스플레이를 사용하는 시각 출력, 하나 이상의 다른 출력 모달리티들(예를 들어, 햅틱), 또는 이들의 임의의 조합 등을 통해 사용자(102)에 대한 정보를 출력하도록 구성된다. 예를 들어, 출력 디바이스(120)는 제어 유닛(104)으로부터 메시지 데이터(예를 들어, 피드백 메시지(144))를 수신할 수 있고, 아래에서 추가로 설명되는 바와 같이 사용자(102)에 대한 출력(예를 들어, 명령(146))을 생성할 수 있다. 특정 예에서, 출력 디바이스(120)는 그래픽 사용자 인터페이스 (graphical user interface) 를 나타내도록 구성된 디스플레이, 피드백 메시지(144)를 사용자(102)에게 렌더링 또는 다이렉팅시키도록 구성된 하나 이상의 라우드스피커들, 또는 이들의 조합을 포함한다.
제어 유닛(104)은 입력 디바이스들(112-116)로부터 사용자 입력들에 대응하는 데이터를 수신하고 출력 디바이스(120)를 통해 사용자(102)에게 제공될 피드백 메시지들을 생성하도록 구성된다. 제어 유닛(104)은 프로세서(108)로 지칭되는 하나 이상의 프로세서들에 커플링된 메모리(106)를 포함한다. 도 2를 참조하여 추가로 설명되는 바와 같이, 메모리(106)는 하나 이상의 임베딩 네트워크들을 나타내는 데이터, 결합된 임베딩 공간으로의 임베딩 벡터들의 하나 이상의 변환들을 나타내는 데이터, 및 프로세서(108)에 의한 사용을 위해 액세스가능한 하나 이상의 분류기들을 나타내는 데이터를 포함할 수 있다. 메모리(106)는 또한 멀티-모달 인식 엔진(130), 피드백 메시지 생성기(132), 또는 양자 모두를 구현하기 위해 프로세서(108)에 의해 실행가능한 명령들을 포함할 수 있다.
프로세서(108)는 멀티 모달 인식 엔진(130) 및 피드백 메시지 생성기(132)를 포함한다. 일부 구현들에서, 프로세서(108)는 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)를 구현하기 위한 명령들을 실행하도록 구성된 하나 이상의 프로세싱 코어들을 포함한다. 일부 구현들에서, 프로세서(108)는 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132) 중 하나 또는 둘 모두를 구현하도록 구성된 전용 회로를 포함한다. 프로세서(108)는 집적 회로(IC)로 구현된다.
멀티-모달 인식 엔진(130)은 입력 디바이스들(112-116) 중 하나 이상으로부터 데이터를 수신하고 수신된 데이터를 프로세싱하여 출력을 생성하도록 구성된다. 예를 들어, 출력은 수신된 입력과 가장 가깝게 매칭되는 커맨드 및 그 커맨드와 연관된 신뢰도(confidence) (또는 우도(likelihood)) 표시자를 포함할 수 있다. 일부 구현들에서, 멀티-모달 인식 엔진(130)은, 각각의 입력 모달리티에 대한 임베딩 벡터를 생성하는 등에 의해, 각각의 입력 모달리티에 대해, 다른 트레이닝된 사용자 입력들로부터 특정 트레이닝된 사용자 입력을 구별하기 위한 데이터를 생성하도록 구성된다. 멀티-모달 인식 엔진(130)은 상이한 입력 모달리티들과 연관된 임베딩 벡터들을 결합하여, 어느 인식된 사용자 입력(존재한다면)이 유니-모달 또는 멀티-모달 사용자 입력의 일부로서 입력 디바이스들(112-116)의 각각을 통해 검출되는지를 표시하는 결합된 임베딩 벡터를 생성하도록 구성될 수 있다. 결합된 임베딩 벡터는 결합된 임베딩 벡터들을 커맨드들에 맵핑하도록 트레이닝된 분류기를 사용하는 등에 의해 출력을 결정하도록 프로세싱된다. 멀티-모달 인식 엔진(130)에서 구현될 수 있는 컴포넌트들의 예시적인 예가 도 2를 참조하여 설명된다.
피드백 메시지 생성기(132)는 출력 디바이스(120)를 통해 사용자(102)에게 출력될 피드백 메시지 데이터를 생성하도록 구성된다. 예를 들어, 피드백 메시지 생성기(132)는 피드백 메시지(144)를 출력 디바이스(120)에 전송하여, 임계치 미만의 신뢰도 레벨(confidence level)을 갖는 특정 명령인 것으로 예측되는 것과 같이, 적절하게 인식되지 않은 사용자 입력을 반복하도록 사용자(102)에게 지시할 수 있다. 다른 예들로서, 피드백 메시지 생성기(132)는 사용자(102)에게 입력 모달리티들을 변경하도록 지시하거나 또는 하나의 입력 모달리티를 사용하여 이루어진 입력을 상이한 입력 모달리티를 사용하여 이루어진 다른 입력으로 증강시키도록 출력 디바이스(120)에 피드백 메시지(144)를 전송할 수 있다. 다른 예들은 사용자(102)가 에뮬레이트하기 위한 사용자 입력의 기록된 샘플들, 사용자(102)가 식별하기 위한 사용자의 입력의 기록된 샘플들, 또는 사용자(102)가 디바이스(110)를 사용하는 것을 보조하기 위한 다른 정보를 제공하는 피드백 메시지 데이터를 생성하는 것을 포함한다. 예시적인 예들은 사용자(102)로부터 질의를 수신하는 것에 응답하여 "업(UP)"에 대응하는 모션을 나타내는 모션 비디오를 디스플레이하는 것, 업 제스처의 모션과 연관된 가장 유사한 발화의 오디오 재생을 생성하는 것, 또는 사용자 정의된 모션과 이미 밀접하게 연관된 관련 발화의 오디오 재생을 생성하는 것과 같은 크로스-모달 샘플 취출(retrieval)을 포함한다. 일부 예들에서, 피드백 메시지 생성기(132)는 아래에서 더 상세히 설명되는 바와 같이, 멀티-팩터 인증 프로세스에 따라 다음 인증 입력을 제공하도록 사용자(102)에게 지시하기 위해 피드백 메시지(144)를 생성하도록 구성된다.
동작 동안, 사용자(102)는 제 1 입력 디바이스(112)에 의해 검출되는 제 1 입력 모드(예를 들어, 구두 커맨드)에 기초하여 제 1 입력(140)을 제공한다. 제 1 입력 디바이스(112)는 제 1 입력(140)을 나타내는 제 1 데이터(142)를 생성하고, 제 1 데이터(142)를 제어 유닛(104)에 제공한다.
프로세서(108)(예를 들어, 멀티-모달 인식 엔진(130))는 제 1 입력 모드(예를 들어, 스피치)에 기초하는 사용자(102)로부터의 제 1 입력(140)을 나타내는 제 1 데이터(142)를 프로세싱한다. 프로세서(108)(예를 들어, 피드백 메시지 생성기(132))는 제 1 데이터(142)의 프로세싱에 기초하여 피드백 메시지(144)를 출력 디바이스(120)에 전송한다. 피드백 메시지(144)는 상이한 입력 모드를 사용하여 제 2 입력(148)을 제공하도록, 예를 들어 구두 명령(146)의 재생을 통해 사용자(102)에게 지시한다. 제 2 입력(148)은 제 1 입력 모드와 상이한 제 2 입력 모드(예를 들어, 비디오)에 기초하고, 멀티-모달 인식 엔진(130)이 제 1 입력(140)에 응답하는 방법을 업데이트하는데 사용될 수 있다. 본 명세서에서 사용된 바와 같이, 상이한 입력 모드를 사용하는 것은 동일한 유형의 입력을 사용하는 것이라기보다는 상이한 유형의 입력을 사용하는 것을 의미한다. 각각의 상이한 유형의 입력은 다양한 상이한 센서들을 사용한다. 예를 들어, 스피치 입력 모드 (speech input mode) 이상의 마이크로폰들을 사용할 수도 있다. 제스처 입력 모드 (gesture input mode) 검출을 이용할 수도 있다. 비디오 입력 모드 (video input mode) 라 및 프레임들의 시퀀스를 사용할 수도 있다. 일반적으로, 각각의 입력 모드는 입력을 제공하는데 사용될 수도 있는 상이한 유형들의 센서들을 제공한다.
일부 구현들에서, 제 1 입력(140)은 커맨드이고, 피드백 메시지(144)는 제 1 입력(140)을 명확화하기 위해 제 2 입력(148)을 제공하도록 사용자(102)에게 지시한다. 멀티-모달 인식 엔진(130)은, 출력에서의 불확실성(예를 들어, 구두 입력이 "업" 또는 "오프"를 나타내는지 여부에 대한 불확실성)을 나타내는, 제 1 입력(140)의 인식 프로세싱과 연관된 신뢰도 레벨이 신뢰도 임계치를 충족시키는 것에 실패하는 것에 응답하여, 피드백 메시지(144)를 전송할 수도 있다. 사용자(102)는 (예를 들어, 위쪽을 가리키는) 제 2 입력(148)을 제공할 수도 있고, 제 2 입력(148)을 나타내는 제 2 데이터(150)에 기초하여, 멀티-모달 인식 엔진(130)은 도 2에서 더 상세히 설명되는 바와 같이, 제 2 입력(148)과 연관된 액션(예를 들어, 음악 볼륨을 증가)에 대한 제 1 입력(140)(예를 들어, 스피치 "업")의 맵핑을 업데이트할 수 있다.
다른 구현에서, 멀티-모달 인식 엔진(130)은 제 2 입력(148)과 결합된 제 1 입력(140)의 제 2 입력(148)과 연관된 액션에 대한 맵핑을 업데이트한다. 예를 들어, 노이즈 조건들이 구두 "업" 커맨드의 신뢰가능한 인식을 방해할 때, 멀티-모달 인식 엔진(130)은 사용자의 구두 "업" 커맨드와 함께 사용자의 (예를 들어, 위를 가리키는) "업" 비디오 입력을 볼륨을 상승시키는 단일 커맨드로서 인식하도록 업데이트된다.
따라서, 일부 구현들에서, 사용자(102)는 피드백 메시지(144) 및 제 2 입력(148)의 피드백 메커니즘을 통해 특정 액션들을 수행하기 위한 커맨드들로서 특정 입력들을 인식하도록 디바이스(110)를 개인화(personalize)할 수 있다. 예시를 위해, 사용자(102)는 멀티-모달 인식 엔진(130)에 의해 현재 인식되지 않는 커맨드(제 1 입력(140))을 말할 수 있고, 피드백 메시지(144)에 응답하여, 사용자(102)는 인식된 커맨드(제 2 입력(148))를 입력함으로써 인식되지 않은 커맨드에 맵핑될 액션을 식별할 수 있다. 유사하게, 디바이스(110)는 사용자의 선택된 모드가 신뢰할 수 없게 되었을 때 사용자(102)에게 입력의 모드들을 변경하도록 지시할 수 있다. 예를 들어, 디바이스(110)가 차량(예를 들어, 자동차 내비게이션 및/또는 엔터테인먼트 시스템)에서 구현될 때, 야간 주행 동안 사용자(102)는 (낮은 조명 조건들로 인해) 비디오 대신에 스피치 입력 또는 제스처 입력을 사용하도록 지시될 수도 있고, 윈도우가 열린 상태로 주행할 때 사용자(102)는 (높은 바람 소음으로 인해) 스피치 대신에 제스처 입력 또는 비디오 입력을 사용하도록 지시될 수도 있다. 디바이스(110)가 가상 현실 또는 증강 현실 헤드셋과 같은 헤드셋으로 구현될 때 입력 모드들을 변경하도록 사용자(102)에게 지시하기 위해 유사한 동작들이 수행될 수도 있다.
다른 구현들에서, 디바이스(110)는 멀티-팩터 인증을 수행하기 위해 사용된다. 예를 들어, 제 1 입력(140)은 사용자(102)의 제 1 인증 액션(예를 들어, 화자 검증을 위한 구두 패스코드)에 대응할 수도 있고, 피드백 메시지(144)는 멀티-팩터 인증 절차의 일부로서 제 2 인증 액션으로서 제 2 입력(148)을 제공하도록(예를 들어, 사용자(102)에 의해 이전에 선택된 특정 손 구성을 디스플레이하도록) 사용자(102)에게 지시한다. 디바이스(110)는 사용자(102)에게 인증 액션들을 수행하도록 지시하기 위한 인증 입력 모드들의 수 및 유형을 랜덤하게 또는 알고리즘적으로 선택할 수 있다. 예를 들어, 디바이스(110)는 스피치 입력(예를 들어, 제 1 입력(140))이 재생되고 있는 레코딩된 스피치일 수도 있다는 표시에 응답하여 명령(146)을 생성할 수 있고, 예컨대 사용자(102)에게 카메라(예를 들어, 제 2 입력 디바이스(114))에서 윙크하도록 지시함으로써 "활기(liveliness)" 확인을 요청할 수도 있다.
위의 예들은 제 2 입력(148)이 제 1 입력(140)과 상이한 모드를 사용하는 것을 설명하지만, 다른 구현들에서 제 2 입력(148)은 제 1 입력(140)과 동일한 모드를 사용할 수 있다. 예를 들어, 제 1 입력(140)의 구두 커맨드(spoken command)는 해석하기 어려울 수 있지만 (예컨대, 주변 소음의 존재 시에 "업" 대 "오프"), 다른 구두 커맨드(예를 들어, "더 크게(louder)")는 정확한 액션을 선택하기 위해(예를 들어, 볼륨을 증가시키기 위해) 다른 맵핑된 커맨드들과 충분히 구별될 수도 있다. 다른 예로서, 트레이닝 프로세스 동안, 사용자(102)는 트레이닝되지 않은 스피치 커맨드로서 "더 크게"를 발화할 수도 있고, 디바이스(110)는 "더 크게" 발화와 연관될 액션을 식별하도록 명령(146)을 통해 사용자(102)에게 지시할 수도 있다. 사용자(102)는 볼륨을 증가시키기 위한 커맨드로서 디바이스(110)에 의해 인식되는 제 2 구두 발화 "업"을 제공할 수도 있고, 멀티-모달 인식 엔진(130)은 "더 크게"를 "볼륨 증가" 액션과 맵핑하기 위해 사용자 입력들의 맵핑을 업데이트할 수도 있다.
도 2는 특정 구현에 따라, 메모리(106), 멀티-모달 인식 엔진(130), 및 프로세서(108)에 의해 실행가능한 하나 이상의 애플리케이션들(240)을 포함하는 제어 유닛(104)의 컴포넌트들의 예를 도시한다. 멀티-모달 인식 엔진(130)은 제 1 사용자 입력들(예를 들어, 스피치 입력들)을 제 1 임베딩 벡터들(예를 들어, 제 1 임베딩 벡터 "E1")로 변환하도록 구성된 제 1 임베딩 네트워크(202)를 포함한다. 제 2 임베딩 네트워크(204)는 제 2 사용자 입력들(예를 들어, 제스처 입력들)을 제 2 임베딩 벡터들(예를 들어, 제 2 임베딩 벡터 "E2")로 변환하도록 구성된다. 멀티-모달 인식 엔진(130)은 N번째 사용자 입력들(예를 들어, 비디오 입력들)을 N번째 임베딩 벡터들(예를 들어, N번째 임베딩 벡터 "En")로 변환하도록 구성된 N번째 임베딩 네트워크(206)를 포함하는 하나 이상의 추가적인 임베딩 네트워크들을 포함할 수도 있다. 멀티-모달 인식 엔진(130)은 본 개시의 일부 실시양태들에 따라 임의의 수의 임베딩 네트워크들을 포함할 수도 있다.
융합 임베딩 네트워크 (fusion embedding network) (220)는 임베딩 네트워크들(202-206)의 출력들을 결합하고 결합된 임베딩 벡터 "C"(228)와 같은 결합된 임베딩 벡터들을 생성하도록 구성된다. 예를 들어, 제 1 변환(212)은 스피치 임베딩 벡터를 "공통(common)" 임베딩 공간으로 변환하여 제 1 공통 임베딩 벡터(222)를 생성할 수 있다. 제 2 변환(214)은 제 2 공통 임베딩 벡터(224)를 생성하기 위해 공통 임베딩 공간으로 제스처 임베딩 벡터를 변환할 수 있고, 제 N 변환(216)은 제 N 공통 임베딩 벡터(226)를 생성하기 위해 공통 임베딩 공간으로 비디오 임베딩 벡터를 변환할 수 있다. 공통 임베딩 벡터들(222-226)의 각각은 대응하는 가중치(W1, W2, 및 W3)로 각각 가중될 수 있고, 융합 임베딩 네트워크(220)에서 결합될 수 있다. 맵핑(230)은 결합된 임베딩 벡터(228)에 대응하는 출력(232) 및 신뢰도 레벨(234)을 선택하도록 구성된다. 예를 들어, 맵핑(230)은 결합된 임베딩 벡터들을 특정 액션들에 맵핑하도록 구성된 분류기(231)를 포함할 수 있다. 예시를 위해, 각각의 모달리티 입력에 대해 개별 분류기들을 사용하기보다는, 다수의 임베딩 네트워크들(202-206)로의 결합된 입력들로부터 발생하는 출력(232)을 결정하기 위해 단일 분류기(231)가 사용된다.
멀티-모달 인식 엔진(130)에 의해 사용되는 하나 이상의 파라미터들을 나타내는 데이터는 메모리(106)에 저장된다. 제 1 사용자 프로파일(250)은 제 1 사용자(예를 들어, 사용자(102))와 연관되고, 제 1 임베딩 네트워크 데이터(252), 제 1 가중치 데이터(254), 제 1 임시 조정된 데이터(256), 및 제 1 히스토리 (history) 데이터(258)를 포함한다. 제 1 임베딩 네트워크 데이터(252)는 제 1 사용자에 대응하도록 제 1 임베딩 네트워크(202), 제 2 임베딩 네트워크(204), 제 N 임베딩 네트워크(206) 및 융합 임베딩 네트워크(220)를 포함하는 임베딩 네트워크들을 구성하기 위한 데이터(예를 들어, 가중치들 또는 다른 파라미터들 또는 값들)를 포함한다. 제 1 가중치 데이터(254)는 제 1 사용자에 대응하도록 가중치들(예를 들어, W1, W2, W3)을 구성하기 위한 가중치 값들을 포함한다. 제 1 임시 조정된 데이터(256)는, 아래에서 추가로 설명되는 바와 같이, 임시 조건들에 기초하여 멀티-모달 인식 엔진(130)의 구성을 조정하기 위한(예를 들어, 소음 환경들에서 가중치(W1)를 감소시키고 가중치들(W2 및 W3)을 증가시키기 위한) 값들을 포함한다. 제 1 히스토리 데이터(258)는 제 1 사용자와 연관된 이력 데이터를 포함하고, 프로세서(108)가 멀티-모달 인식 엔진(130)에 의해 프로세싱된 제 1 사용자의 멀티-모달 입력들에 대응하는 이력 트렌드들에 기초하여 제 1 임베딩 네트워크 데이터(252), 제 1 가중치 데이터(254), 또는 양자 모두를 업데이트할 수 있게 한다.
유사하게, 메모리(106)는 제 2 사용자와 연관되고 제 2 사용자에 대한 제 2 임베딩 네트워크 데이터(262), 제 2 가중치 데이터(264), 제 2 임시 조정된 데이터(266), 및 제 2 히스토리 데이터(258)를 포함하는 제 2 사용자 프로파일(260)을 포함한다. 제 1 임베딩 네트워크 데이터(252)는 제 1 사용자와 제 2 사용자 사이의 입력 커맨드 차이들에 기초하여 제 2 임베딩 네트워크 데이터(262)와 상이하다. 예를 들어, 제 1 사용자 및 제 2 사용자는 상이한 액센트들, 상이한 스타일들의 제스처, 비디오 입력을 수행할 때 상이한 신체 역학, 또는 이들의 임의의 조합을 가질 수도 있다. 제 1 임베딩 네트워크 데이터(252)는 제 1 사용자에 대한 임베딩 네트워크 데이터의 디폴트 세트로부터 사용자-특정 변동들을 인식하기 위해 임베딩 네트워크들(202-206 및 220)을 트레이닝한 결과들을 나타낼 수도 있고, 제 2 임베딩 네트워크 데이터(262)는 제 2 사용자에 대한 임베딩 네트워크 데이터의 디폴트 세트로부터 사용자-특정 변동들을 인식하기 위해 임베딩 네트워크들(202-206 및 220)을 트레이닝한 결과들을 나타낼 수도 있다. 단지 2개의 사용자 프로파일들(250, 260)만이 예시되어 있지만, 디바이스(110)의 다수의 사용자들에 대한 멀티-모달 인식 엔진(130)의 동작을 커스터마이즈(customize)하기 위해 임의의 수의 사용자 프로파일들이 포함될 수 있다.
상이한 액센트들, 제스처 스타일들, 및 신체 역학에 대한 것과 같은 개별 사용자 변동들을 조정하는 것에 더하여, 제 1 임베딩 네트워크 데이터(252)는 또한 제 1 사용자에 의해 결정된 사용자 입력의 제 1 커스터마이징된 세트를 인식하도록 임베딩 네트워크들(202-206 및 220)을 트레이닝한 결과들을 나타낼 수도 있고, 제 2 임베딩 네트워크 데이터(262)는 또한 제 2 사용자에 의해 결정된 사용자 입력의 제 2 커스터마이징된 세트를 인식하도록 임베딩 네트워크들(202-206 및 220)을 트레이닝한 결과들을 나타낼 수도 있다. 예를 들어, 제 1 사용자는 오디오 재생 동작이 진행되는 동안 스피치 커맨드 "업(up)"을 볼륨을 증가시키기 위한 커맨드로서 인식하도록 멀티 모달 인식 엔진(130)을 커스터마이즈(예컨대, 트레이닝)할 수도 있다. 반면, 제 2 사용자는 멀티모달 인식 엔진(130)을 커스터마이즈(예컨대, 트레이닝)하여, 오디오 재생 동작이 진행되는 동안 재생 목록 상의 이전 오디오 트랙을 선택하기 위한 커맨드로서 스피치 커맨드 "업(up)"을 인식할 수도 있다.
제 1 가중치 데이터(254)는 제 1 사용자와 제 2 사용자 간의 입력 모드 신뢰성 차이들에 기초하여 제 2 가중치 데이터(264)와 상이할 수도 있다. 예를 들어, 프로세서(108)는, 예컨대 제 1 히스토리 데이터(258)에 기초하여, 제 1 사용자로부터의 스피치 입력들이 제 1 사용자로부터의 제스처 입력들에 비해 덜 신뢰성있게 해석된다고 결정할 수도 있다. 그 결과, 가중치 W1은 디폴트 W1 값으로부터 감소될 수도 있고, 가중치 W2는 제 1 가중치 데이터(254)에서의 디폴트 W2 값으로부터 증가될 수도 있어, 스피치 입력들에 대한 의존도를 감소시키고 제 1 사용자로부터의 제스처 입력들에 대한 의존도를 증가시킬 수도 있다. 반면, 프로세서(108)는, 예컨대 제 2 히스토리 데이터(268)에 기초하여, 제 2 사용자로부터의 스피치 입력들이 제 2 사용자로부터의 제스처 입력들에 비해 더 신뢰성있다고 결정할 수도 있다. 그 결과, 제스처 입력들에 대한 의존도를 감소시키고 제 2 사용자로부터의 스피치 입력들에 대한 의존도를 증가시키기 위해, 제 2 가중치 데이터 (264)에서 가중치 W1은 디폴트 W1 값으로부터 증가될 수도 있고, 가중치 W2는 디폴트 W2 값으로부터 감소될 수도 있다.
애플리케이션들(240)은 임시 조정기(290) 및 데이터 조정기(292)를 포함한다. 임시 조정기(290)는 임시 조건들에 기초하여 임베딩 네트워크들(202, 204, 206, 또는 220) 중 하나 이상의 조정들, 가중치들(W1-W3) 중 하나 이상의 조정들, 또는 이들의 조합을 결정하도록 구성된다. 예를 들어, 임시 조정기(290)는 검출된 조건들에 기초하여, 하나 이상의 입력 모달리티들을 강조하기 위해, 하나 이상의 입력 모달리티들을 강조해제하기 위해, 또는 이들의 조합을 위해 가중치들(W1-W3) 중 하나 이상을 조정할 수 있다. 예시적이고 비제한적인 예들로서, 검출된 조건들은 아래에서 더 상세히 설명되는 바와 같이, 주변 노이즈 데이터(272), 주변 광 데이터(274), 위치 데이터(276), 또는 사용자 선호도(278) 중 하나 이상에 의해 표시될 수 있다.
데이터 조정기(292)는 임베딩 네트워크들(202, 204, 206, 또는 220) 중 하나 이상의 조정들, 가중치들(W1-W3) 중 하나 이상의 조정들, 또는 이들의 조합을 결정하여, 임베딩 네트워크 데이터 및 가중치 데이터를 업데이트하여 임시 조건들에 기초하지 않는 것으로 결정되는 변화를 나타내도록 구성된다. 일부 구현들에서, 데이터 조정기(292)는, 예를 들어, 멀티-모달 인식 엔진(130)이 사용자 입력을 더 정확하게 인식(예를 들어, 구두 커맨드의 사용자의 발음과 디폴트 스피치 인식 모델 사이의 차이들에 적응)하는 것을 돕는 명확화 피드백을 사용자로부터 수신하는 것에 응답하여 또는 특정 커맨드에 대한 입력의 커스텀(custom) 맵핑을 나타내는 사용자 입력에 응답하여(예를 들어, 사용자는 이전에 알려지지 않은 비디오 입력으로서 양손으로 "엄지 손가락-상향" 제스처를 입력하고, 이 비디오 입력이 디바이스(110)로 하여금 알람을 턴 오프하게 해야 함을 나타냄), 특정 커맨드들에 대한 사용자 입력들의 업데이트된 맵핑들을 표시하기 위해 임베디드 네트워크들(202, 204, 206, 또는 220) 중 하나 이상에 대한 업데이트 트레이닝을 수행하도록 구성된다.
도 1의 시스템(100)에서 구현되는 멀티-모달 인식 엔진(130)의 동작의 예시적인 예에서, 사용자(102)는 얼굴 인식, 음성 인식, 또는 일부 다른 형태의 사용자 인식 등을 통해, 디바이스(110)에 대한 멀티-모달 입력의 소스로서 식별된다. 임베딩 네트워크들(202-206)은 제 1 임베딩 네트워크 데이터(252)에 기초하여 업데이트되고, 가중치들(W1, W2, 및 W3)은 제 1 가중치 데이터(254)에 기초하여 업데이트되고, 임의의 임시 조정들이 제 1 임시 조정된 데이터(256)에 기초하여 적용되어, 사용자(102)로부터의 입력들을 인식하도록 멀티-모달 인식 엔진(130)을 구성(예를 들어, 커스터마이즈)한다.
사용자(102)는 커맨드로서 제 1 입력(140)을 제공한다. 제 1 입력(140)은 충분한 신뢰성을 갖는 임의의 특정 커맨드로서 인식되지 않으며, 피드백 메시지(144)는 제 1 입력(140)을 명확화하기 위해 제 2 입력(148)을 제공하도록 사용자(102)에게 지시한다. 예를 들어, 피드백 메시지(144)는 출력(232)에서의 불확실성(예를 들어, 구두 입력이 "업" 또는 "오프"를 나타내는지 여부의 불확실성)을 나타내는, 신뢰도 임계치(294)를 충족시키지 못하는 제 1 입력(140)의 인식 프로세싱과 연관된 신뢰도 레벨(234)에 응답하여 전송될 수도 있다. 다른 구현들에서, 피드백 메시지(144)는 하나 이상의 환경 조건들이 검출되는 것에 응답하여 전송된다.
예를 들어, 제 1 입력(140)이 비디오 모드를 통해 수신되는 구현에서, 피드백 메시지(144)는 조명 임계치(286) 미만의 값을 갖는 주변 광 메트릭(284)에 응답하여 전송된다. 예를 들어, 주변 광 데이터(274)는 디바이스(110)의 하나 이상의 센서들을 통해 수신되고 주변 광 메트릭(284)을 생성하도록 프로세싱될 수 있다. 주변 광 메트릭(284)은 주변 조명이 신뢰가능한 비디오 모드 입력들에 대해 너무 어두운지 여부를 결정하기 위해 조명 임계치(286)와 비교될 수 있다. 피드백 메시지(144)는 사용자에게 어두운 조명이 비디오 입력 모드를 신뢰할 수 없게 함을 알릴 수도 있고, 사용자에게 다른 모달리티(예를 들어, 스피치)를 사용하여 입력을 반복하도록 지시할 수도 있다.
다른 예로서, 제 1 입력 (140) 이 스피치 모드를 통해 수신되는 구현에서, 피드백 메시지 (144) 는 노이즈 임계치 (282) 를 초과하는 값을 갖는 노이즈 메트릭 (280) (예를 들어, 신호-대-노이즈 비 (SNR) 또는 주변 노이즈 측정치)에 응답하여 전송된다. 예를 들어, 주변 노이즈 데이터 (272) 는 디바이스 (110) 의 하나 이상의 센서들을 통해 수신될 수 있고 (또는 마이크로폰 입력 신호의 음성 활동 검출 프로세싱 동안 측정됨) 노이즈 메트릭 (280) 을 생성하도록 프로세싱될 수 있다. 노이즈 메트릭(280)은 주변 잡음이 신뢰성 있는 스피치 모드 입력들에 대해 너무 시끄러운지 여부를 결정하기 위해 노이즈 임계치(282)와 비교될 수 있다. 피드백 메시지(144)는 사용자에게 잡음 환경이 스피치 입력 모드를 신뢰할 수 없게 함을 알릴 수도 있고, 사용자에게 다른 모달리티(예를 들어, 비디오)를 사용하여 입력을 반복하도록 지시할 수도 있다.
사용자(102)는 (예를 들어, 위쪽을 가리키는) 제 2 입력(148)을 제공할 수도 있고, 제 2 입력(148)을 나타내는 제 2 데이터(150)에 기초하여, 멀티-모달 인식 엔진(130)은 제 2 입력(148)과 연관된 (예를 들어, 음악 볼륨을 증가시키는) 액션에 대한 제 1 입력(140)(예를 들어, 스피치 "업")의 맵핑을 업데이트할 수 있다. 예시를 위해, 제 1 임베딩 네트워크(202), 제 1 변환(212), 가중치(W1), 융합 임베딩 네트워크(220), 또는 맵핑(230) 중 하나 이상은, 멀티-모달 인식 엔진(130)으로 하여금 사용자의 말해진 "업"을 음악 볼륨을 증가시키기 위한 커맨드로서 더 정확하게 인식하게 하도록 데이터 조정기(292)에 의해 조정될 수 있다.
동작의 예시적인 예에서, 하나의 입력 모달리티가 저-정확도 조건을 갖는 것으로 결정되는 경우에, 멀티-모달 인식 엔진(130)은 (예를 들어, 임시 조정기(290)에 의해 생성된 임시 조정된 데이터에 응답하여) 결합된 임베딩 벡터(228)의 생성을 위해 그 모달리티를 사용하여 입력의 효과를 감소시키거나 제거하기 위해 하나 이상의 설정들을 조정한다. 스피치 모달리티가 (예를 들어, 노이즈 임계치(282)를 초과하는 노이즈 메트릭(280)으로 인해) 신뢰할 수 없는 것으로 결정, 예측 또는 추정되는 예에서, 제스처 및 비디오 모달리티들이 입력 인식을 위해 충분히 신뢰할 수 있는 것으로 결정되는 동안, 임시 조정기(290)는 스피치 입력들과 연관된 공통 임베딩 벡터(222)에 적용되는 가중치(W1)를 "0" 값으로 설정할 수도 있다. 제스처 입력들과 연관된 공통 임베딩 벡터(224)에 적용되는 가중치(W2) 및 비디오 입력들과 연관된 공통 임베딩 벡터(226)에 적용되는 가중치(W3)는 비-제로 값들로 설정된다 (예를 들어, 제스처들 및 비디오 입력들이 동등하게 신뢰가능한 것으로 취급되는 구현에서, W2 = W3 = 0.5). 가중치(W1)를 "0" 값으로 설정하는 것은 스피치 입력이 신뢰할 수 없는 상태로 유지되는 동안 스피치 입력이 결과적인 결합된 임베딩 벡터(228)에 영향을 미치는 것을 방지한다.
위의 예에 따르면, 가중치들의 초기 설정은 W1 = W2 = W3 = 1/3 을 할당할 수도 있으며, 이는 각각의 모달리티가 입력 인식을 위해 동일한 중요도 또는 신뢰도를 가짐을 나타낸다. 스피치 모달리티는, 예를 들어, (예를 들어, 노이즈 메트릭 (280) 이 노이즈 임계치 (282) 를 초과한다는 검출 또는 차량이 이동하는 동안 차량 윈도우가 개방되어 있다는 검출을 통해) 대량의 주변 노이즈의 검출로 인해, 또는 미리결정된 시간 기간에서 정확하게 인식되지 못하는 임계 수의 스피치 입력들로 인해, 나중에 신뢰할 수 없는 것으로 결정되거나 예측될 수도 있다. 스피치 모달리티가 신뢰할 수 없는 것으로 판단되거나 예측되는 것에 응답하여, 임시 조정기(290)는 가중치(W1, W2, W3)를 각각 0, 1/2, 및 1/2로 조정하여 스피치 입력들이 입력 인식에 미치는 영향을 제거한다. 스피치 입력 모달리티가 더 이상 신뢰불가능하지 않다는(예를 들어, 바람 소음이 노이즈 임계치 아래로 떨어지거나, 윈도우가 닫히거나, 차량이 이동하는 것을 중단함) 후속 결정에 응답하여, 가중치들(W1, W2, 및 W3)은 각각 1/3의 초기 값으로 복귀될 수도 있다.
다른 예로서, 비디오 모달리티는, 예를 들어, 낮은 양의 주변 광의 검출로 인해(예를 들어, 주변 광 메트릭(284)이 조명 임계치(286) 미만임) 또는 미리 결정된 시간 기간에서 정확하게 인식되지 못하는 비디오 입력들의 임계 수로 인해, 신뢰가능하지 않은 것으로 대신 결정되거나 예측될 수도 있다. 비디오 모달리티가 신뢰할 수 없는 것으로 결정되거나 예측되는 것에 응답하여, 임시 조정기(290)는 가중치들(W1, W2, 및 W3)을 각각 1/2, 1/2, 0으로 조정하여 비디오 입력들이 입력 인식에 미치는 영향을 제거한다. 비디오 입력 모달리티가 더 이상 신뢰불가능하지 않다는 후속 결정(예를 들어, 주변 광이 조명 임계치를 초과하는 것으로 결정됨)에 응답하여, 가중치들(W1, W2, 및 W3)은 각각 1/3의 초기 값으로 복귀될 수도 있다.
일부 구현들에서, 다수의 가중치들은 입력 인식에 대한 다수의 입력 모달리티들의 영향을 감소시키거나 제거하기 위해 조정된다. 예를 들어, 스피치 모달리티만이 사용되도록 하는 결정이 이루어지는 구현에서, W1은 "1"로 설정되고, W2 및 W3은 "0"으로 설정된다. 예시하기 위해, 디바이스(110)는 낮은 주변 광 조건을 검출할 수도 있고, 또한 활성 제스처 검출 디바이스가 검출되지 않은 것(예를 들어, 사용자의 스마트 워치가 존재하지 않거나 모션 데이터를 송신하지 않음)을 결정할 수도 있다. 다른 예로서, 사용자(102)는 스피치 입력들만을 프로세싱하도록 입력 인식을 제한하도록, 예컨대 사용자 선호도(278)를 입력하는 것을 통해 디바이스(110)에 지시할 수도 있다. 다른 예로서, 위치 데이터(276)는 하나 이상의 입력 모달리티들을 제한할지 여부를 결정하기 위해 사용될 수도 있다. 예를 들어, 위치 데이터(276)가 사용자가 차량을 운행하고 있음을 나타내는 것에 응답하여, 임시 조정기(290)는 사용자 입력 모드들을 제한하여, 예를 들어, 제스처 입력들 및 비디오 입력들의 인식을 방지하고, 사용자의 주의산만을 방지하고 차량의 안전한 운행을 장려할 수도 있다. 위치 데이터(276)가 사용자가 더 이상 차량을 운행하지 않고 사용자의 집에 있음을 나타내는 것에 응답하여, 임시 조정기(290)는 제스처 입력들 및 비디오 입력들의 인식을 가능하게 하기 위해 사용자 입력 모드들을 복원할 수도 있다.
상기 예시들에서는 가중 값들의 예들이 설명되었지만, 이러한 예시적인 가중 값들은 예시적인 것이며 제한하지 않는다. 예시를 위해, 가중치를 "0"으로 설정하는 대신에, 가중치는 전체 입력 인식에 대한 연관된 입력 모달리티의 영향을 감소시키지만 제거하지 않도록 감소된 값으로 설정될 수도 있다. 다른 예로서, "신뢰가능한(reliable)" 입력 모달리티들은 입력 모달리티들의 상대적 신뢰성을 나타낼 수도 있는 동일하지 않은 가중치들을 가질 수도 있다. 예시하자면, 제스처 입력이 충분히 신뢰가능한 것으로 간주되고, 비디오 입력이 제스처 입력보다 더 신뢰성 있는 것으로 간주되고, 스피치가 신뢰할 수 없는 것으로 결정되는 경우에, 가중치들은 W1 = 0.1, W2 = 0.4, 및 W3 = 0.5와 같은 값으로 설정될 수도 있다. 상기 예들에서, 가중치들 W1, W2, 및 W3의 합이 1과 동일하지만, 다른 구현들에서, 가중치들 W1, W2, 및 W3의 합은 임의의 특정 값으로 제한되지 않는다.
추가적으로, 또는 대안으로서, 신뢰할 수 없는 것으로 결정된 입력 모달리티의 영향을 감소시키거나 제거하기 위해 하나 이상의 가중치들을 조정하는 것에 대해, 일부 구현들에서, 멀티-모달 인식 엔진(130)은 연관된 임베딩 네트워크의 출력을 이용가능한 스킬들 중에서 "없음" 출력으로 강제하고, 변환의 출력을 "0" 값을 갖는 임베딩 벡터에 대한 "없음" 카테고리 입력에 대한 공통 임베딩 공간으로 강제하거나, 또는 이들의 조합으로 강제할 수도 있다.
일부 구현들에서, 멀티-모달 인식 엔진(130)을 포함하는 디바이스(110)는 다수의 입력 모달리티들의 환경-인식 융합을 수행한다. 예를 들어, 사용자(102)가 자동차를 운전하고 있다고 결정하는 것에 응답하여, 제스처 입력들과 연관된 가중치(W2)는 "0"으로 설정되어, 사용자의 손 동작이 제스처 입력들로서가 아닌 자동차 조작에 해당할 가능성이 있음을 나타내며, 자동차를 운전하는 동안 안전하지 않은 손 동작을 억제할 수도 있다. 다른 예로서, 사용자(102)가 어두운 방에 있다고 결정하는 것에 응답하여, 비디오 입력들과 연관된 가중치(W3)는 "0"으로 설정될 수도 있다. 다른 예로서, 사용자(102)가 시끄러운 환경에 있다고 결정하는 것에 응답하여, 스피치 입력들과 연관된 가중치(W1)는 "0"으로 설정될 수도 있다. 환경 조건들의 결정은 디바이스(110)에 통합된 하나 이상의 센서들(예를 들어, 주변 광 센서(들), 주변 잡음 센서(들)), (예를 들어, 홈 자동화 시스템, 사물 인터넷 시스템, 또는 다른 시스템의 하나 이상의 컴포넌트들과 디바이스(110) 사이의 통신을 통해) 디바이스(110) 외부의 하나 이상의 센서들, 또는 이들의 임의의 조합에 기초할 수 있다.
도 3은 헤드셋(302)을 착용한 사용자가 스마트 폰과 같은 다른 디바이스, 자동차와 같은 차량 시스템, 또는 무선 디지털 어시스턴트 애플리케이션을 통합하는 스피커 시스템(예를 들어, "스마트 스피커")과 통신하는 멀티-모달 사용자 입력을 위한 시스템(300)의 예를 도시한다. 헤드셋(302)은 도 1의 디바이스(110)에 대응할 수 있고, 착용자에게 증강 현실("AR"), 가상 현실("VR"), 또는 혼합 현실("MR") 오디오 및 비디오 출력을 제공하기 위해 이어폰(308) 또는 다른 웨어러블 노이즈 생성 디바이스와 같은 트랜스듀서 및 디스플레이를 포함할 수 있다.
헤드셋(302)은 사용자 입력을 검출하기 위해 하나 이상의 마이크로폰들, 하나 이상의 카메라들 등과 같은 다수의 센서들을 포함할 수 있다. 예를 들어, 하나 이상의 마이크로폰들을 통해 수신된 오디오 입력은 헤드셋(302)에 통합되거나 결합된 프로세서에서 하나 이상의 동작들(310)을 수행하는 데 사용될 수 있다. 예를 들어, 사운드 환경 분류를 가능하게 하기 위해 머신 학습을 사용하는 것과 같이 오디오 입력에 대응하는 오디오 신호를 프로세싱하고, 헤드셋(302)의 착용자가 언제 말하고 있는지를 결정하기 위한 자기-음성 음성 활동 검출(VAD), 음향 이벤트 검출, 및 모드 제어(예를 들어, 시퀀스 기반 사용자 인터페이스)가 수행될 수 있다.
하나 이상의 동작들(310)의 결과들은 하나 이상의 액션들(312)을 생성하는데 사용될 수 있다. 예를 들어, 액션들 (312) 은 활성 노이즈 소거 (ANC) 필터들을 튜닝하는 것, 하나 이상의 보조 청취 피처들을 구현하는 것, 멀티-마이크로폰 사운드 캡처 (예를 들어, "AudioZoom") 의 필드를 조정하는 것, 또는 증강 현실 렌더링, 가상 현실 렌더링, 또는 혼합 현실 렌더링 (총칭하여 "XR" 렌더링으로 지칭됨) 을 수행하는 것을 포함할 수 있다. 예를 들어, 결과들은 공간적 투명 모드로 헤드셋(302)에서 렌더링될 수도 있다.
헤드셋(302)에서 (예를 들어, 하나 이상의 마이크로폰들, 모션 검출기들, 제스처 검출기들, 카메라들 등을 통해) 검출된 사용자 입력은 자동 스피치 인식 및 자연 언어 프로세싱, 검색 또는 질의 응답들, 또는 양자 모두와 같은 하나 이상의 스피치 기반 동작들(304)의 수행을 개시하는데 사용될 수도 있다. 하나 이상의 스피치-기반 동작들(304)은 헤드셋(302)과 통신하는 스마트 폰 또는 다른 휴대용 통신 디바이스에서와 같이 머신 학습을 이용하여 수행될 수 있다. 데이터 통신(305)(예를 들어, 무선 네트워크 통신, 유선 통신, 또는 양자 모두)은 오디오 스피치 데이터를 외부 프로세싱 리소스(306)(예를 들어, 머신 학습을 통합하는 클라우드 기반 ASR/NLP 및 검색 서버들)에 전송하는 것을 포함할 수도 있다. 검색 및 질의 결과들은 헤드셋(302)을 통해 사용자에게 다시 전달될 수 있다.
도 4는 예시적인, 비제한적인 예에서 도 3의 헤드셋(302)에 의해 수행될 수도 있는 바와 같이, 멀티-마이크로폰 사운드 캡처(예를 들어, "AudioZoom")의 필드를 조정하는 예(400)를 도시한다. 대표적인 마이크로폰들(412, 414, 및 416)과 같은 다수의 마이크로폰들이 사용자에 관해 배열된다. 사용자는 극 좌표계에 중심을 두고 0도 각도 방향을 향하도록 배향된 것으로 예시된다. 마이크로폰들(412, 414, 및 416)은 지향성 마이크로폰들, 무지향성 마이크로폰들 또는 양자 모두를 포함할 수 있고, 사용자를 둘러싸는 오디오 환경을 캡쳐할 수 있다. 제 1 구성(402)에서, 마이크로폰들(412-416)로부터의 오디오의 사운드 프로세싱은 사용자-지향된 조정 없이 오디오 환경을 나타내는 (예를 들어, 이어폰들 또는 이어버드들을 통해) 사용자에게 가청 출력을 초래한다.
제 2 구성(404)에서, 멀티-모달 인터페이스를 통한 사용자 입력(예를 들어, 예시적인 예로서, 사용자 제스처, 발화, 비디오 입력, 또는 이들의 조합)에 응답하여, 마이크로폰들(412-416)로부터의 오디오의 사운드 프로세싱은 특정 공간 영역(420)(예를 들어, 90도 각도 방향의 영역, 또는 사용자의 좌측)으로부터 발신되거나 도달하는 사운드들을 강조(예를 들어, 증폭)하면서, 공간 영역(420) 외부의 영역들로부터 발신되는 사운드들을 감쇠시키도록 조정된다. 제 2 구성(404)으로의 천이를 초래하는 사용자 입력의 예들은, 예시적인, 비제한적인 예들로서, 스피치 모달리티에 기초한 "줌 좌측" 스피치 시퀀스, 제스처 모달리티에 기초한 "손을 좌측으로 가리킴" 또는 "손가락을 좌측으로 가리킴" 제스처 시퀀스, 또는 오디오(비-스피치) 모달리티에 기초한 "스냅핑 사운드 만들기" 오디오 시퀀스를 포함할 수 있다.
일부 구현들에서, 도 1 내지 도 4를 참조하여 위에서 설명된 바와 같은 멀티-모달 인터페이스는 (예를 들어, 거실에서 텔레비전을 보는, 또는 주방에서 접시들을 세척하는) 사용자에 근접한 위치 또는 활동과 같은 컨텍스트에 응답한다. 예를 들어, 시계 또는 완장 기반 가속도계를 사용하여 캡처되는 제스처들은 검출된 컨텍스트(context)에 기초하여 해석될 수 있다. 예를 들어, 손을 흔드는 것은 목표된 커맨드 "전등 켜기(light on)"로 해석될 수 있고, 손을 왼쪽으로 넘기는 것은 "다음 노래(next song)" 또는 "다음 채널(next channel)"로 해석될 수 있으며, 손을 오른쪽으로 넘기는 것은 "이전 노래(previous song)", "이전 채널(previous channel)" 또는 "문 개방(door open)"으로 해석될 수 있다. 예시적인 비-제한적인 예로서, 주먹을 쥔 "그랩(grab)" 제스처는 "통화 걸기(pick call)" 또는 "채널 선택(select channel)"으로 해석될 수 있고, 긴 그랩은 "노래 정지(stop song)", "알람 취소(cancel alarm)", 또는 "문 닫기(door close)"로 해석될 수 있으며, 손가락을 뻗은 손의 반시계 방향 회전은 "홈 디바이스들 발견(discover home devices)"으로 해석될 수 있다. 컨텍스트는 검출된 음향 이벤트/환경 시퀀스들과의 연관을 통해 결정될 수 있다. 예를 들어, 음향 환경(예를 들어, 사용자가 어디에 있는지)을 추론하거나 적절한 피드백 타이밍을 모니터링하기 위해 다양한 음향 이벤트들이 검출될 수 있다. 이러한 검출가능한 음향 이벤트들의 예들은 헤어 드라이어, 진공 청소기, 음악, 주방 후드, 요리, 식사, 접시 세척, 실내 공기 조화, 전자레인지, 세탁기, 건조기, 샤워, 및 텔레비전 시청을 포함한다.
손 제스처 인식을 위한 데이터세트는 손 움직임을 나타내는 (예를 들어, x, y 및 z 축을 따른) 3차원(3-D) 가속도계 및 자이로스코프 센서 데이터를 포함할 수 있다. (예를 들어, 가속도계 및 자이로스코프로부터의) 센서 신호들의 각각의 컴포넌트는 3초의 윈도우들(예를 들어, 150 판독들/윈도우들)과 같은 고정 폭 윈도우들에 있을 수 있다. 예시적인 비-제한적인 예들로서, 다음(Next), 이전(Previous), 상승/증가(Up/Increase), 하강/감소(Down/Decrease), 온(On), 오프(Off), 및 미지(Unknown)와 같은 다수의 제스처 클래스들이 구현될 수 있다. 퍼뮤테이션(Permutation), 시간-워핑(Time-warping), 스케일링(Scaling), 크기-워핑(Magnitude-warping), 지터들(Jitters), 및 크로핑(Cropping)과 같은 하나 이상의 데이터 증강 기법들이 구현될 수 있다.
피처들 추출은, 예컨대 손 제스처 인식을 위한 데이터세트의 통계적 피처들에 기초하여 수행될 수 있다. 예시를 위해, 추출된 피처들(features)은 예시적인, 비제한적인 예들로서, 최소(Min), 최대(Max), 분산(Var), 평균(Mean), 표준 편차(Standard Deviation), MSE (Minimum Squared Error), ACF (Auto-correlation), ACV (Auto-covariance), 비대칭도(Skewness), 첨도(Kurtosis), 평균 크로싱률(Mean Crossing rate), 지터들(Jitters), 또는 3-변위치들(3-Quantiles) 에 대응할 수 있다.
SVM(support vector machine), 그래디언트 부스팅, 분류기, 스택형 LSTM-RNN(long short-term memory recurrent neural networks), 주의를 갖는 시퀀스-투-시퀀스 인코더-디코더 모델들, 하나 이상의 다른 모델들, 또는 이들의 임의의 조합과 같은 하나 이상의 모델들이 손 제스처 인식을 위해 사용될 수 있다.
일부 양태들에서, 멀티-모달 인식 엔진(130)은 타겟 액션들에 직접 맵핑되는 시퀀스 임베딩 벡터들을 생성하기 위해 학습하거나 트레이닝할 수 있다. 입력 시퀀스들의 예들은 가속도계 또는 자이로스코프 시계열(예를 들어, 제스처 입력들을 위한), 스피치 커맨드 시계열, 또는 오디오 시계열을 포함한다. 주목받는 인코더-디코더 LSTM-RNN은, 예컨대, 입력 시퀀스와 연관된 타겟 액션 클래스를 표시하기 위해 소프트맥스 레이어에 출력을 생성하기 위해, 가변 길이 시계열 신호들을 고정 길이로서 표현하는 임베딩 벡터들 및 식별 벡터들을 생성하기 위해 학습하는데 사용될 수 있다.
일부 양태들에서, 멀티-모달 인식 엔진(130)은 상이한 액션 클래스들의 등록 및 설계를 위해 임베딩 벡터들을 사용할 수 있다. 예를 들어, 다수의 상이한 입력 시퀀스들이 등록될 수 있고, 하나 이상의 분류기들은 각각의 타겟 액션에 맵핑된 임베딩 벡터들을 사용하여 설계될 수 있다. 예를 들어, SVM, K-평균, k-최근접 이웃(KNN), 코사인(cos) 거리, 또는 다른 설계가 임베딩을 타겟 액션에 맵핑하도록 구현될 수 있다. 사용자 시퀀스들의 테스트는 업데이트된 시스템의 정확도를 검증하기 위해 수행될 수 있다.
일부 양태들에서, 등록 및 SVM/K-평균/KNN 설계 후에, 분류기 평가와 연관된 메트릭들은 클래스들 사이의 분리가 너무 모호하고 시퀀스 셰이핑(sequence shaping)이 수행될 수도 있다는 것을 보여준다. 이러한 경우, 피드백 메시지 생성기(132)는 다른 클래스들과의 혼동을 야기하는 특정 문제있는 시퀀스들을 사용자에게 표시하기 위한 피드백을 생성할 수 있다. 예를 들어, 혼동된 클래스들의 모션, 오디오, 또는 스피치 시퀀스들은 예를 들어, 출력 디바이스(120)를 통해 사용자에게 재생될 수 있다. 사용자는 어떤 시퀀스들이 혼란을 야기하는지 알 수 있고, 새로운 시퀀스들을 다시 발화/제스처하여 타겟 클래스들 사이의 분리를 개선하고 명확화를 제공할 수 있다. 대안적으로, 혼동 입력 시퀀스들은, 입력 시퀀스들 사이의 모호성이 미해결로 렌더링되도록, 멀티-모달 사용자 인터페이스를 통해, 사용자에 의해 동일한 액션/클래스에 매칭될 수 있다. 사용자 피드백을 수신한 후, 멀티모달 인식 엔진(130)은 SVM/K-평균/KNN 설계들을 재등록하고 수정할 수 있고, 피드백 메시지 생성기(132)는 시퀀스 맵핑이 충분히 서로 구별될 때까지, 혼동의 경우에 입력 시퀀스들을 반복하도록 사용자에게 재프롬프트할 수 있다. 예를 들어, "혼동 행렬(confusion matrix)"은 상이한 시퀀스들 사이의 모호성의 양을 나타낼 수 있고, 혼동 행렬이 준 대각일 때까지 트레이닝이 반복될 수 있다.
일부 양태들에서, 멀티-모달 입력을 이용한 시퀀스 셰이핑은 다른 액션 클래스들과의 혼동을 야기하는 "문제있는(problematic)" 입력 시퀀스들을 검출하는 것에 응답하여 수행될 수 있다. 디바이스(110)는 문제있는 입력 시퀀스들의 각각에 대해 사용자가 멀티 모달 입력을 사용하기를 원하는지 여부를 사용자에게 요청할 수 있다. 예를 들어, 멀티 모달 인식 엔진(130)이 "오프(off)" 및 "볼륨 다운(volume down)"에 대한 사용자의 특정 제스처들이 구분하기 어려운 경우, 출력 디바이스(120)는 "'오프(off)' 카테고리에 대한 구두 커맨드 '턴 오프 (turn off)'를 사용하시겠습니까?"라는 질의를 사용자에게 출력할 수도 있다. 다른 예를 들어, 출력 디바이스(120)는 "'볼륨 다운' 카테고리에 대해 '볼륨 감소(decrease volume)' 구두 커맨드를 사용하시겠습니까"라는 질의를 출력할 수도 있다. 사용자가 (예를 들어, 제스처 혼동으로 인해 구두 커맨드들을 추가하기 위해) 멀티-모달 입력들을 사용하도록 선택하는 것에 응답하여, 멀티-모달 큐들(cues)이 활성화될 수 있고, 디바이스(110)는 멀티-모달 입력 시퀀스들을 사용하는 혼동의 확률들을 포함하도록 혼동 매트릭스를 조정할 수 있다.
일부 양태들에서, 입력 시퀀스들을 명확화하기 위해 대화형 순차적 검증이 사용될 수 있다. 예를 들어, 사용자는 어느 카테고리들이 어느 멀티 모달 입력들에 등록되어 있는지를 잊어버릴 수도 있다. 사용자와 디바이스(110) 간의 대화 기반 상호작용이 수행될 수도 있다. 예를 들어, "오프(off)" 카테고리로서 제스처 입력이 검출되는 경우, 출력 디바이스(120)는 "'오프(off)' 카테고리 또는 '다음(next)' 카테고리를 의미합니까?"를 사용자에게 질의할 수도 있다. 사용자는 "오프(off)" 라고 답할 수도 있고, 멀티 모달 인식 엔진(130)은 "오프(off)" 커맨드를 활성화할 수도 있다.
도 5는 도 13을 참조하여 추가로 설명되는 바와 같이 반도체 칩 또는 패키지와 같은 개별 컴포넌트에 통합된 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)를 포함하는 디바이스(502)의 구현(500)을 도시한다. 예시하기 위해, 디바이스(502)는 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)에 대해 설명된 동작들을 수행하기 위해 저장된 명령들을 실행하도록 구성된 하나 이상의 프로세서들(예를 들어, 프로세서(108))을 포함할 수 있다. 디바이스(502)는, 도 1의 입력 디바이스들(112-116) 중 하나 이상으로부터의 데이터와 같이, 센서 데이터(504)가 디바이스(502) 외부의 하나 이상의 센서들로부터 수신될 수 있게 하기 위해, 제 1 버스 인터페이스와 같은 센서 데이터 입력부(510)를 포함한다. 디바이스(502)는 또한 피드백 메시지(144)의 (예를 들어, 출력 디바이스(120)로의) 전송을 가능하게 하기 위해 제 2 버스 인터페이스와 같은 출력부(512)를 포함한다. 디바이스(502)는 도 11에 도시된 바와 같은 차량, 도 12a에 도시된 바와 같은 가상 현실 또는 증강 현실 헤드셋, 도 12b에 도시된 바와 같은 웨어러블 전자 디바이스, 또는 도 13에 도시된 바와 같은 무선 통신 디바이스에서와 같이, 다수의 센서들 및 출력 디바이스를 포함하는 시스템에서 컴포넌트로서 멀티-모달 사용자 인터페이스 프로세싱의 구현을 가능하게 한다.
도 6을 참조하면, 예시적이고 비제한적인 예들로서, 도 1의 디바이스(110) 또는 제어 유닛(104), 도 5의 디바이스(502), 또는 양자 모두에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법(600)의 특정 구현이 도시된다.
방법 (600) 은 602에서, 디바이스의 프로세서에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타낸다. 예를 들어, 도 1 을 참조하면, 프로세서(108)는 제 1 입력 디바이스(112)로부터 수신된 제 1 데이터(142)를 프로세싱한다. 제 1 데이터(142)는 제 1 입력 모드에 기초하여 사용자(102)로부터의 제 1 입력(140)을 나타낸다.
방법 (600) 은 또한, 604에서, 디바이스의 프로세서로부터, 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스로 피드백 메시지를 전송하는 단계를 포함한다. 피드백 메시지는 사용자에게 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하는 제 2 입력을 제공하도록 지시한다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 데이터(142)를 프로세싱하는 것에 기초하여 피드백 메시지(144)를 출력 디바이스(120)에 전송한다. 피드백 메시지(144)는 제 2 입력 모드에 기초하는 제 2 입력(148)을 제공하도록 사용자(102)에게 지시한다.
방법 (600) 은 필드 프로그래밍가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 이를 테면 중앙 프로세싱 유닛 (CPU), 디지털 신호 프로세서 (DSP), 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 방법 (600) 은, 본원에서 설명된 바와 같이, 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 7을 참조하면, 예시적이고 비제한적인 예들로서, 도 1의 제어 유닛(104), 도 5의 디바이스(502), 또는 양자 모두에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법(700)의 특정 구현이 도시된다.
방법 (700) 은 702에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 커맨드에 대응하는 제 1 입력을 나타낸다. 예를 들어, 도 1 을 참조하면, 프로세서(108)는 제 1 입력 디바이스(112)로부터 수신된 제 1 데이터(142)를 프로세싱한다. 제 1 데이터(142)는 제 1 입력 모드에 기초한 사용자(102)로부터의 커맨드에 대응하는 제 1 입력(140)을 나타낸다.
방법 (700) 은 또한, 704에서, 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 단계를 포함한다. 피드백 메시지는 제 1 입력을 명확화하기 위해 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하는 제 2 입력을 제공하도록 사용자에게 지시한다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 데이터(142)를 프로세싱하는 것에 기초하여 피드백 메시지(144)를 출력 디바이스(120)에 전송한다. 피드백 메시지(144)는 제 1 입력(140)을 명확화하기 위해 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하는 제 2 입력(148)을 제공하도록 사용자(102)에게 지시한다.
방법 (700) 은 필드 프로그래밍가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 이를 테면 중앙 프로세싱 유닛 (CPU), DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 방법 (700) 은, 본원에서 설명된 바와 같이, 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 8을 참조하면, 예시적이고 비제한적인 예들로서, 도 1의 제어 유닛(104), 도 5의 디바이스(502), 또는 양자 모두에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법(800)의 특정 구현이 도시된다.
방법 (800) 은 802에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 제 1 데이터는 사용자의 제 1 인증 액션에 대응한다. 예를 들어, 도 1 을 참조하면, 프로세서(108)는 제 1 입력 디바이스(112)로부터 수신된 제 1 데이터(142)를 프로세싱한다. 제 1 데이터(142)는 제 1 입력 모드에 기초한 사용자(102)로부터의 제 1 입력(140)을 나타내고, 제 1 데이터(142)는 사용자(102)의 제 1 인증 액션에 대응한다.
방법 (800) 은 또한, 804에서, 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 단계를 포함한다. 피드백 메시지는 멀티-팩터 인증 절차의 일부로서 제 2 인증 액션으로서, 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 2 입력을 제공하도록 사용자에게 지시한다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 데이터(142)를 프로세싱하는 것에 기초하여 피드백 메시지(144)를 출력 디바이스(120)에 전송한다. 피드백 메시지(144)는 멀티-팩터 인증 절차의 일부로서 제 2 인증 액션으로서, 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여 제 2 입력(148)을 제공하도록 사용자(102)에게 지시한다.
방법 (800) 은 필드 프로그래밍가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 이를 테면 중앙 프로세싱 유닛 (CPU), DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 방법 (800) 은, 본원에서 설명된 바와 같이, 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 9를 참조하면, 예시적이고 비제한적인 예들로서, 도 1의 제어 유닛(104), 도 5의 디바이스(502), 또는 양자 모두에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법(900)의 특정 구현이 도시된다.
방법(900)은 902에서, 제 1 입력 모드에 기초하여 제 1 사용자 입력들을 검출하는 단계를 포함한다. 예를 들어, 도 1을 참조하면, 제 1 입력 디바이스(112)는 제 1 입력 모드에 기초하여 제 1 사용자 입력(140)을 검출한다.
방법(900)은 또한 904에서, 제 2 입력 모드에 기초하여 제 2 사용자 입력들을 검출하는 단계를 포함한다. 예를 들어, 도 1을 참조하면, 제 2 입력 디바이스(114)는 제 2 입력 모드에 기초하여 제 2 사용자 입력(148)을 검출한다.
방법(900)은 또한 906에서, 제 1 사용자 입력들을 제 1 임베딩 벡터들로 변환하도록 구성된 제 1 임베딩 네트워크를 사용하여 제 1 임베딩 벡터들을 생성하는 단계를 포함한다. 예를 들어, 도 2를 참조하면, 제 1 임베딩 네트워크(202)는 제 1 사용자 입력들을 제 1 임베딩 벡터들로 변환함으로써 제 1 임베딩 벡터들을 생성한다.
방법(900)은 또한 908에서, 제 2 사용자 입력들을 제 2 임베딩 벡터들로 변환하도록 구성된 제 2 임베딩 네트워크를 사용하여 제 2 임베딩 벡터들을 생성하는 단계를 포함한다. 예를 들어, 도 2를 참조하면, 제 2 임베딩 네트워크(204)는 제 2 사용자 입력들을 제 2 임베딩 벡터들로 변환함으로써 제 2 임베딩 벡터들을 생성한다.
방법(900)은 또한, 910에서, 제 1 임베딩 네트워크 및 제 2 임베딩 네트워크의 출력들을 결합하여 결합된 임베딩 벡터들을 생성하도록 구성된 융합 임베딩 네트워크를 사용하여 결합된 임베딩 벡터들을 생성하는 단계를 포함한다. 예를 들어, 도 2를 참조하면, 융합 임베딩 네트워크(220)는 제 1 임베딩 네트워크(202) 및 제 2 임베딩 네트워크(204)의 출력들을 결합하여 결합된 임베딩 벡터들을 생성한다.
방법(900)은 또한, 912에서, 분류기를 사용하여 결합된 임베딩 벡터들을 특정 액션들에 맵핑하는 단계를 포함한다. 예를 들어, 도 2를 참조하면, 맵핑(230)은 결합된 임베딩 벡터들을 특정 액션들에 맵핑한다.
방법 (900) 은 필드 프로그래밍가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 이를 테면 중앙 프로세싱 유닛 (CPU), DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 방법 (900) 은, 본원에서 설명된 바와 같이, 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 10을 참조하면, 예시적이고 비제한적인 예들로서, 도 1의 제어 유닛(104), 도 5의 디바이스(502), 또는 양자 모두에 의해 수행될 수도 있는 멀티-모달 사용자 입력을 프로세싱하는 방법(1000)의 특정 구현이 도시된다.
방법 (1000) 은 1002에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계를 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 예를 들어, 도 1 을 참조하면, 프로세서(108)는 제 1 입력 디바이스(112)로부터 수신된 제 1 데이터(142)를 프로세싱한다. 제 1 데이터(142)는 제 1 입력 모드에 기초하는 사용자(102)로부터의 제 1 입력(140)을 나타낸다.
방법 (1000) 은 또한, 1004에서, 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 단계를 포함한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 데이터(142)를 프로세싱하는 것에 기초하여 피드백 메시지(144)를 출력 디바이스(120)에 전송한다. 피드백 메시지(144)는 다른 입력 모드를 사용하여 제 1 입력(140)과 연관된 커맨드를 재입력하도록 사용자(102)에게 지시한다. 예를 들어, 제 1 입력 모드는 스피치 모드, 제스처 모드 또는 비디오 모드 중 하나이고, 제 2 입력 모드는 스피치 모드, 제스처 모드 또는 비디오 모드 중 다른 하나이다.
일부 구현들에서, 피드백 메시지는 제 1 입력을 명확화하기 위해 제 2 입력을 제공하도록 사용자에게 지시한다. 예를 들어, 피드백 메시지는, 신뢰도 레벨(234)이 신뢰도 임계치(294)보다 작을 때와 같이, 신뢰도 임계치를 충족시키지 못하는 제 1 입력의 인식 프로세싱과 연관된 신뢰도 레벨에 응답하여 전송될 수도 있다. 일부 예들에서, 제 1 입력 모드는 비디오 모드에 대응하고, 피드백 메시지는 조명 임계치(286) 미만의 값을 갖는 주변 광 메트릭(284)과 같이 조명 임계치 미만의 값을 갖는 주변 광 메트릭에 응답하여 전송된다. 다른 예들에서, 제 1 입력 모드는 스피치 모드에 대응하고, 피드백 메시지는 노이즈 임계치(282) 보다 큰 값을 갖는 노이즈 메트릭 (280) 과 같이, 노이즈 임계치를 초과하는 값을 갖는 노이즈 메트릭에 응답하여 전송된다.
방법(1000)은 또한, 1006에서, 제 2 입력 디바이스로부터 제 2 데이터를 수신하는 단계를 포함하고, 제 2 데이터는 제 2 입력을 나타낸다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 입력(140)과 연관된 특정 커맨드를 식별하는 제 2 입력(148)과 연관된 제 2 데이터(150)를 수신한다.
방법(1000)은 또한, 1008에서, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하는 단계를 포함한다. 예를 들어, 도 1을 참조하면, 제어 유닛(104)은 제 1 입력(140)을 특정 커맨드에 연관시키기 위해 커맨드들에 대한 사용자 입력의 맵핑을 업데이트한다. 일부 구현들에서, 업데이트된 맵핑은, 예를 들어, 커맨드가 제 1 입력 모드를 통한 제 1 입력 및 제 2 입력 모드를 통한 제 2 입력의 동시(예를 들어, 적어도 부분적으로 시간적으로 중첩) 수신을 통해 더 신뢰성 있게 인식되도록, 사용자에 대한 커맨드들에 대한 입력의 맵핑을 커스터마이징하기 위해, 제 1 입력 및 제 2 입력의 조합을 커맨드와 연관시킨다. 일부 구현들에서, 맵핑을 업데이트하는 것은 사용자와 연관된 임베딩 네트워크 데이터(예를 들어, 제 1 임베딩 네트워크 데이터(252))를 업데이트하는 것 또는 사용자와 연관된 가중치 데이터(예를 들어, 제 1 가중치 데이터(254))를 업데이트하는 것 중 적어도 하나를 포함한다.
방법 (1000) 은 필드 프로그래밍가능 게이트 어레이 (FPGA) 디바이스, 주문형 집적 회로 (ASIC), 프로세싱 유닛, 이를 테면 중앙 프로세싱 유닛 (CPU), DSP, 제어기, 다른 하드웨어 디바이스, 펌웨어 디바이스, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 일 예로서, 방법 (1000) 은, 본원에서 설명된 바와 같이, 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
도 11 은 자동차 대시보드 디바이스(1102)와 같은 차량 대시보드 디바이스에 통합된 디바이스(110)의 구현(1100)의 예를 도시한다. 다수의 센서들(1150)은 하나 이상의 마이크로폰들, 카메라들, 또는 다른 센서들을 포함할 수 있고, 도 1의 입력 디바이스들(112-116)에 대응할 수 있다. 단일 위치에 예시되어 있지만, 다른 구현들에서, 센서들(1150) 중 하나 이상은 차량의 캐빈 내의 다양한 위치들에 분포되는 것과 같이, 차량의 다른 위치들에 위치될 수 있고, 예를 들어, 차량 운전자 및 각각의 승객으로부터의 멀티-모달 입력들을 검출하기 위해 차량에서 각각의 시트에 근접하게 위치된 하나 이상의 마이크로폰들 및 하나 이상의 카메라들의 어레이가 있을 수 있다.
디스플레이(1120)와 같은 시각적 인터페이스 디바이스는 출력 디바이스(120)에 대응할 수 있고, 자동차의 운전자에게 보일 수 있도록 자동차 대시보드 디바이스(1102) 내에 장착되거나 그 위에 위치(예를 들어, 자동차 핸드셋 마운트에 탈착가능하게 고정)된다. 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)는 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)가 차량의 탑승자에게 보이지 않음을 나타내기 위해 점선 경계들로 도시된다. 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)는 도 1의 디바이스(110)에서와 같이, 디스플레이(1120) 및 센서들(1150)을 또한 포함하는 디바이스에서 구현될 수도 있거나, 또는 도 5의 디바이스(502)에서와 같이, 디스플레이(1120) 및 센서들(1150)로부터 분리되고 그에 결합될 수도 있다.
도 12a는 가상 현실, 증강 현실, 또는 혼합 현실 헤드셋과 같은 헤드셋(1202)에 통합된 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)의 예를 도시한다. 디스플레이(1220)와 같은 시각적 인터페이스 디바이스는 출력 디바이스(120)에 대응할 수 있고, 헤드셋(1202)이 착용되는 동안 사용자에게 증강 현실 또는 가상 현실 이미지들 또는 장면들의 디스플레이를 가능하게 하기 위해 사용자의 눈들 앞에 위치된다. 센서들(1250)은 하나 이상의 마이크로폰들, 카메라들, 또는 다른 센서들을 포함할 수 있고, 도 1의 입력 디바이스들(112-116)에 대응할 수 있다. 단일 위치에 예시되어 있지만, 다른 구현들에서, 센서들(1250) 중 하나 이상은, 멀티-모달 입력들을 검출하기 위해 헤드셋(1202) 주위에 분포된 하나 이상의 카메라들 및 하나 이상의 마이크로폰들의 어레이와 같은, 헤드셋(1202)의 다른 위치들에 포지셔닝될 수 있다.
도 12b는 디스플레이(1220) 및 센서들(1250)을 포함하는, "스마트 워치"로서 예시된, 웨어러블 전자 디바이스(1204)에 통합된 멀티-모달 인식 엔진(130) 및 피드백 메시지 생성기(132)의 예를 도시한다. 센서들(1250)은 예를 들어 비디오, 스피치, 및 제스처와 같은 모달리티들에 기초한 사용자의 입력의 검출을 가능하게 한다. 또한, 단일 위치에 예시되지만, 다른 구현들에서 센서들(1250) 중 하나 이상은 웨어러블 전자 디바이스(1204)의 다른 위치들에 포지셔닝될 수 있다.
도 13은 무선 통신 디바이스 구현(예를 들어, 스마트폰) 또는 디지털 어시스턴트 디바이스 구현에서와 같이 멀티-모달 인식 엔진(130)을 포함하는 디바이스(1300)의 특정 예시적인 구현의 블록도를 도시한다. 다양한 구현들에서, 디바이스 (1300) 는 도 13에 예시된 것보다 더 많거나 또는 더 적은 컴포넌트들을 가질 수도 있다. 예시적인 구현에서, 디바이스 (1300) 는 디바이스 (110) 에 대응할 수도 있다. 예시적인 구현에서, 디바이스 (1300) 는 도 1 내지 도 12b 를 참조하여 설명된 하나 이상의 동작들을 수행할 수도 있다.
특정 구현에서, 디바이스(1300)는 멀티-모달 인식 엔진(130)을 포함하는 프로세서(1306)(예를 들어, 프로세서(108)에 대응하는 중앙 처리 유닛(CPU))를 포함한다. 디바이스(1300)는 하나 이상의 추가적인 프로세서들 (1310) (예컨대, 하나 이상의 DSP들) 을 포함할 수도 있다. 프로세서들 (1310) 은 스피치 및 음악 코더-디코더 (CODEC) (1308) 를 포함할 수도 있다. 스피치 및 음악 코덱 (1308) 은 음성 코더 ("보코더") 인코더 (1336), 보코더 디코더 (1338), 또는 이들 양자를 포함할 수도 있다.
디바이스 (1300) 는 메모리 (1386) 및 코덱 (1334) 을 포함할 수도 있다. 메모리(1386)는 메모리(106)에 대응할 수도 있고, 멀티-모달 인식 엔진(130), 피드백 메시지 생성기(132), 애플리케이션들(240) 중 하나 이상, 또는 이들의 임의의 조합을 참조하여 설명된 기능성을 구현하기 위해 프로세서(1306)(또는 하나 이상의 추가적인 프로세서들(1310))에 의해 실행가능한 명령들(1356)을 포함할 수도 있다. 디바이스 (1300) 는 트랜시버 (654) 를 통해, 하나 이상의 안테나들 (1352) 에 커플링된 무선 제어기 (1340) 를 포함할 수도 있다. 일부 구현들에서, 하나 이상의 안테나들(1352)은 제스처 입력을 나타내는 데이터를 수신하도록 구성된 하나 이상의 안테나들을 포함한다.
디바이스 (1300) 는 디스플레이 제어기 (1326) 에 커플링된 디스플레이 (1328) (예컨대, 출력 디바이스 (120)) 를 포함할 수도 있다. 디스플레이(1328)는 피드백 메시지(144)(예를 들어, 명령(146))를 출력하는 그래픽 사용자 인터페이스를 나타내도록 구성될 수도 있다. 코덱 (1334) 은 디지털-대-아날로그 컨버터 (DAC) (1302) 및 아날로그-대-디지털 컨버터 (ADC) (1304) 를 포함할 수도 있다. 특정 구현에서, CODEC (1334) 은 하나 이상의 마이크로폰들 (1312) (예를 들어, 하나 이상의 키워드들 또는 음성 커맨드들을 포함하는 오디오 입력을 캡처하도록 구성된 제 1 입력 디바이스 (112)) 로부터 아날로그 신호들을 수신하고, 아날로그-대-디지털 컨버터 (1304) 를 사용하여 아날로그 신호들을 디지털 신호들로 변환하고, 디지털 신호들을 스피치 및 음악 코덱 (1308) 에 제공할 수도 있다. 스피치 및 음악 코덱 (1308) 은 디지털 신호들을 프로세싱할 수도 있다.
특정 구현에서, 스피치 및 음악 코덱 (1308) 은 오디오 재생 신호를 나타내는 코덱 (1334) 에 디지털 신호들을 제공할 수도 있다. 코덱 (1334) 은 디지털-대-아날로그 컨버터 (1302) 를 사용하여 디지털 신호들을 아날로그 신호들로 변환할 수도 있고, 그 아날로그 신호들을 라우드스피커 (1314) 에 제공하여 가청 신호를 생성할 수도 있다. 하나 이상의 라우드스피커들 (1314) 은 출력 디바이스 (120)에 대응할 수 있고, 도 1 의 피드백 메시지 (144) 를 렌더링하거나 피드백 메시지 (144) 를 사용자에게 다이렉팅시키도록 구성될 수 있다.
특정 구현에서, 디바이스 (1300) 는 하나 이상의 입력 디바이스들 (1330) 을 포함한다. 입력 디바이스(들)(1330)는 도 1의 입력 디바이스들(112-116) 중 하나 이상에 대응할 수 있다. 예를 들어, 입력 디바이스(들)(1330)는 하나 이상의 제스처들 또는 시각적 커맨드들을 포함하는 비디오 입력을 캡처하도록 구성된 하나 이상의 카메라들을 포함할 수 있다.
특정 구현에서, 디바이스 (1300) 는 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1322) 에 포함될 수도 있다. 특정 구현에 있어서, 메모리 (1386), 프로세서 (1306), 프로세서들 (1310), 디스플레이 제어기 (1326), 코덱 (1334), 및 무선 제어기 (1340) 는 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1322) 에 포함된다. 특정 구현에서, 입력 디바이스(들)(1330)(예를 들어, 도 1의 입력 디바이스들(112-116) 중 하나 이상) 및 전력 공급기(1344)는 시스템-인-패키지 또는 시스템-온-칩 디바이스(1322)에 커플링된다. 또한, 구체적인 구현에서, 도 13에 예시된 바와 같이, 디스플레이 (1328), 입력 디바이스 (1330), 마이크로폰 (1312), 안테나 (1352), 및 전력 공급기 (1344) 는 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1322) 외부에 있다. 특정 구현에서, 디스플레이 (1328), 입력 디바이스 (1330), 마이크로폰(들) (1312), 라우드스피커(들) (1314), 안테나 (1352), 및 전력 공급기 (1344) 의 각각은, 인터페이스 또는 제어기와 같은 시스템-인-패키지 또는 시스템-온-칩 디바이스 (1322) 의 컴포넌트에 커플링될 수도 있다.
디바이스 (1300) 는 예시적인, 비제한적 예들로서, 모바일 통신 디바이스, 스마트 폰, 셀룰러 폰, 랩탑 컴퓨터, 컴퓨터, 태블릿, 퍼스널 디지털 어시스턴트, 디스플레이 디바이스, 텔레비전, 게이밍 콘솔, 음악 플레이어, 라디오, 디지털 비디오 플레이어, 디지털 비디오 디스크 (DVD) 또는 블루-레이 디스크 플레이어, 튜너, 카메라, 내비게이션 디바이스, 가상 현실 또는 증강 현실 헤드셋, 웨어러블 전자 디바이스, 차량 콘솔 디바이스, 또는 이들의 임의의 조합을 포함할 수도 있다.
설명된 구현들과 함께, 멀티-모달 사용자 입력을 위한 디바이스는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 멀티-모달 인식 엔진을 포함한다. 제 1 데이터는 제 1 입력 모드(예를 들어, 스피치 모드, 제스처 모드, 또는 비디오 모드)에 기초한 사용자로부터의 제 1 입력을 나타낸다. 피드백 메시지 생성기는 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지를 출력 디바이스에 전송하여, 사용자에게 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하는 제 2 입력을 제공하도록 지시한다.
설명된 구현들과 함께, 멀티-모달 사용자 입력을 위한 디바이스는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 멀티-모달 인식 엔진을 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타낸다. 피드백 메시지 생성기는 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지를 출력 디바이스에 전송한다. 피드백 메시지는 사용자에게 제 1 입력과 연관될 액션을 식별하도록 지시한다. 멀티-모달 인식 엔진은 제 1 입력과 연관될 특정 액션을 식별하는 제 2 입력을 수신하고, 제 1 입력을 특정 액션에 연관시키기 위한 액션들에 대한 사용자 입력들의 맵핑을 업데이트한다.
설명된 구현들과 함께, 멀티-모달 사용자 입력을 위한 장치는 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하기 위한 수단을 포함한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 예를 들어, 제 1 데이터를 프로세싱하기 위한 수단은 프로세서(108), 멀티-모달 인식 엔진(130), 프로세서(들)(1306, 1310)에 의해 실행가능한 명령들(1356), 하나 이상의 다른 디바이스, 모듈들, 회로들, 컴포넌트들, 또는 이들의 조합을 포함할 수 있다.
그 장치는 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하기 위한 수단을 포함한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 예를 들어, 전송하기 위한 수단은 프로세서(108), 멀티-모달 인식 엔진(130), 피드백 메시지 생성기(132), 프로세서(들)(1306, 1310)에 의해 실행가능한 명령들(1356), 하나 이상의 다른 디바이스, 모듈들, 회로들, 컴포넌트들, 또는 이들의 조합을 포함할 수 있다.
그 장치는 제 2 입력 디바이스로부터 제 2 데이터를 수신하기 위한 수단을 포함하고, 제 2 데이터는 제 2 입력을 나타낸다. 예를 들어, 제 2 데이터를 수신하기 위한 수단은 프로세서(108), 멀티-모달 인식 엔진(130), 프로세서(들)(1306, 1310)에 의해 실행가능한 명령들(1356), 하나 이상의 다른 디바이스, 모듈들, 회로들, 컴포넌트들, 또는 이들의 조합을 포함할 수 있다.
그 장치는 또한, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위한 맵핑을 업데이트하는 수단을 포함한다. 예를 들어, 업데이트하기 위한 수단은 프로세서(108), 멀티-모달 인식 엔진(130), 데이터 조정기(292), 프로세서(들)(1306, 1310)에 의해 실행가능한 명령들(1356), 하나 이상의 다른 디바이스, 모듈들, 회로들, 컴포넌트들, 또는 이들의 조합을 포함할 수 있다.
일부 구현들에서, 비일시적 컴퓨터 판독가능 매체 (예를 들어, 메모리 (106), 메모리 (1386), 또는 이들의 임의의 조합) 는, 디바이스의 하나 이상의 프로세서들 (예를 들어, 프로세서 (108), 프로세서 (1306), 프로세서(들) (1310), 또는 이들의 임의의 조합) 에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 예를 들어, 도 6 내지 도 10 의 방법들 중 하나 이상의 전부 또는 일부에 대응하는 동작들을 수행하는 등에 의해, 멀티-모달 사용자 입력을 프로세싱하기 위한 동작들을 수행하게 하는 명령들 (예를 들어, 명령들 (1356)) 을 포함한다. 일 예에서, 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하게 한다. 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 그 제 1 입력은 커맨드에 대응한다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 제 1 데이터를 프로세싱하는 것에 기초하여 피드백 메시지를 출력 디바이스에 전송하게 한다. 피드백 메시지는 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 사용자에게 지시한다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금 제 2 입력 디바이스로부터 제 2 데이터를 수신하게 하고, 제 2 데이터는 제 2 입력을 나타낸다. 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 또한 그 하나 이상의 프로세서들로 하여금, 제 1 입력을 제 2 입력에 의해 식별된 커맨드에 연관시키기 위해 맵핑을 업데이트하게 한다.
당업자는 또한, 여기에 개시된 구현들와 관련하여 설명된 다양한 예시적인 논리 블록, 구성, 모듈, 회로, 및 알고리즘 단계들이 전자 하드웨어, 프로세서에 의해 실행되는 컴퓨터 소프트웨어, 또는 이 양자의 조합으로 구현될 수도 있음을 인식할 것이다. 다양한 예시적인 컴포넌트, 블록, 구성, 모듈, 회로, 및 단계가 일반적으로 그들의 기능성의 관점에서 위에서 설명되었다. 그러한 기능성이 하드웨어 또는 프로세서 실행가능한 명령들로 구현될지 여부는, 전체 시스템에 부과된 설계 제약 및 특정 애플리케이션에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대해 다양한 방식들로 설명된 기능성을 구현할 수도 있으며, 이러한 구현 결정들은 본 개시의 범위로부터 벗어남을 야기하는 것으로서 해석되어서는 안된다.
본 명세서에 개시된 구현들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접 구현될 수도 있다. 소프트웨어 모듈은 랜덤 액세스 메모리 (RAM), 플래시 메모리, 판독 전용 메모리 (ROM), 프로그래밍가능 판독 전용 메모리 (PROM), 소거가능 프로그래밍가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 프로그래밍가능 판독 전용 메모리 (EEPROM), 레지스터, 하드디스크, 착탈형 디스크, 콤팩트 디스크 판독 전용 메모리 (CD-ROM), 또는 당업계에 알려져 있는 임의의 다른 형태의 비일시적 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수도 있고 저장 매체에 정보를 기입할 수도 있도록 프로세서에 커플링된다. 다르게는, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서 및 저장 매체는 ASIC (application-specific integrated circuit) 에 상주할 수도 있다. ASIC 은 컴퓨팅 디바이스 또는 사용자 단말기에 상주할 수도 있다. 대안으로, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말기에 별개의 컴포넌트들로서 상주할 수도 있다.
개시된 구현들의 이전의 설명은 당업자로 하여금 개시된 구현들을 제조 또는 이용할 수 있도록 제공된다. 이들 구현들에 대한 다양한 수정들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 원리들은 본 개시의 범위로부터 일탈함없이 다른 구현들에 적용될 수도 있다. 따라서, 본 개시는 본 명세서에서 나타낸 구현들로 한정되도록 의도되지 않으며, 다음의 청구항들에 의해 정의된 바와 같은 원리들 및 신규한 특징들과 부합하는 가능한 최광의 범위를 부여받아야 한다.

Claims (30)

  1. 멀티-모달 사용자 입력을 위한 디바이스로서,
    상기 디바이스는 하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 것으로서, 상기 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 상기 제 1 입력은 커맨드에 대응하는, 상기 제 1 데이터를 프로세싱하는 것을 행하고;
    상기 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 것으로서, 상기 피드백 메시지는 상기 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 상기 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 상기 출력 디바이스에 피드백 메시지를 전송하는 것을 행하며;
    제 2 입력 디바이스로부터 제 2 데이터를 수신하는 것으로서, 상기 제 2 데이터는 상기 제 2 입력을 나타내는, 상기 제 2 데이터를 수신하는 것을 행하고; 그리고
    상기 제 2 입력에 의해 식별된 상기 커맨드에 상기 제 1 입력을 연관시키기 위해 맵핑을 업데이트하도록
    구성되는, 멀티-모달 사용자 입력을 위한 디바이스.
  2. 제 1 항에 있어서,
    상기 제 1 입력 모드는 스피치 모드, 제스처 모드, 또는 비디오 모드 중 하나이고, 상기 제 2 입력 모드는 상기 스피치 모드, 상기 제스처 모드, 또는 상기 비디오 모드 중 다른 하나인, 멀티-모달 사용자 입력을 위한 디바이스.
  3. 제 1 항에 있어서,
    상기 피드백 메시지는 상기 제 1 입력을 명확화하기 위해 상기 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 멀티-모달 사용자 입력을 위한 디바이스.
  4. 제 3 항에 있어서,
    상기 하나 이상의 프로세서들은 또한, 상기 제 1 입력의 인식 프로세싱과 연관된 신뢰도 레벨이 신뢰도 임계치를 충족시키지 못하는 것에 응답하여 상기 피드백 메시지를 전송하도록 구성되는, 멀티-모달 사용자 입력을 위한 디바이스.
  5. 제 1 항에 있어서,
    업데이트된 상기 맵핑은 상기 제 1 입력 및 상기 제 2 입력의 조합을 상기 커맨드와 연관시키는, 멀티-모달 사용자 입력을 위한 디바이스.
  6. 제 1 항에 있어서,
    상기 하나 이상의 프로세서들은 멀티-모달 인식 엔진을 포함하고,
    상기 멀티-모달 인식 엔진은:
    상기 제 1 입력 모드와 연관된 제 1 임베딩 네트워크 및 상기 제 2 입력 모드와 연관된 제 2 임베딩 네트워크의 출력들을 결합하여 결합된 임베딩 벡터들을 생성하도록 구성된 융합 임베딩 네트워크; 및
    상기 결합된 임베딩 벡터들을 특정 커맨드들에 맵핑하도록 구성된 분류기
    를 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  7. 제 6 항에 있어서,
    상기 사용자에 대응하는 제 1 임베딩 네트워크 데이터 및 제 1 가중치 데이터; 및
    제 2 사용자에 대응하는 제 2 임베딩 네트워크 데이터 및 제 2 가중치 데이터로서, 상기 제 1 임베딩 네트워크 데이터는 상기 사용자와 상기 제 2 사용자 사이의 입력 커맨드 차이들에 기초하여 상기 제 2 임베딩 네트워크 데이터와 상이하고, 상기 제 1 가중치 데이터는 상기 사용자와 상기 제 2 사용자 사이의 입력 모드 신뢰성 차이들에 기초하여 상기 제 2 가중치 데이터와 상이한, 상기 제 2 사용자에 대응하는 제 2 임베딩 네트워크 데이터 및 제 2 가중치 데이터
    를 저장하도록 구성된 메모리를 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  8. 제 1 항에 있어서,
    상기 제 1 입력 모드는 비디오 모드에 대응하고, 상기 하나 이상의 프로세서들은 조명 임계치 미만의 값을 갖는 주변 광 메트릭에 응답하여 상기 피드백 메시지를 전송하도록 구성되는, 멀티-모달 사용자 입력을 위한 디바이스.
  9. 제 1 항에 있어서,
    상기 제 1 입력 모드는 스피치 모드에 대응하고, 상기 하나 이상의 프로세서들은 노이즈 임계치를 초과하는 값을 갖는 노이즈 메트릭에 응답하여 상기 피드백 메시지를 전송하도록 구성되는, 멀티-모달 사용자 입력을 위한 디바이스.
  10. 제 1 항에 있어서,
    그래픽 사용자 인터페이스를 나타내도록 구성된 디스플레이를 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  11. 제 1 항에 있어서,
    하나 이상의 키워드들 또는 음성 커맨드들을 포함하는 오디오 입력을 캡처하도록 구성된 하나 이상의 마이크로폰들을 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  12. 제 1 항에 있어서,
    하나 이상의 제스처들 또는 시각적 커맨드들을 포함하는 비디오 입력을 캡처하도록 구성된 하나 이상의 카메라들을 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  13. 제 1 항에 있어서,
    제스처 입력을 나타내는 데이터를 수신하도록 구성된 하나 이상의 안테나들을 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  14. 제 1 항에 있어서,
    상기 피드백 메시지를 상기 사용자에게 렌더링 또는 다이렉팅하도록 구성된 하나 이상의 라우드스피커들을 더 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  15. 제 1 항에 있어서,
    상기 사용자는 로봇 또는 다른 전자 디바이스를 포함하는, 멀티-모달 사용자 입력을 위한 디바이스.
  16. 제 1 항에 있어서,
    상기 제 1 입력 디바이스 및 상기 출력 디바이스는 가상 현실 헤드셋 또는 증강 현실 헤드셋 내로 통합되는, 멀티-모달 사용자 입력을 위한 디바이스.
  17. 제 1 항에 있어서,
    상기 제 1 입력 디바이스 및 상기 출력 디바이스는 차량 내로 통합되는, 멀티-모달 사용자 입력을 위한 디바이스.
  18. 멀티-모달 사용자 입력을 위한 방법으로서,
    상기 방법은,
    디바이스의 하나 이상의 프로세서들에서, 제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 단계로서, 상기 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 상기 제 1 입력은 커맨드에 대응하는, 상기 제 1 데이터를 프로세싱하는 단계;
    상기 하나 이상의 프로세서들로부터, 상기 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 단계로서, 상기 피드백 메시지는 상기 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 상기 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 상기 출력 디바이스에 피드백 메시지를 전송하는 단계;
    상기 하나 이상의 프로세서들에서, 제 2 입력 디바이스로부터 제 2 데이터를 수신하는 단계로서, 상기 제 2 데이터는 상기 제 2 입력을 나타내는, 상기 제 2 데이터를 수신하는 단계; 및
    상기 하나 이상의 프로세서들에서, 상기 제 2 입력에 의해 식별된 상기 커맨드에 상기 제 1 입력을 연관시키기 위해 맵핑을 업데이트하는 단계를 포함하는, 멀티-모달 사용자 입력을 위한 방법.
  19. 제 18 항에 있어서,
    상기 제 1 입력 모드는 스피치 모드, 제스처 모드, 또는 비디오 모드 중 하나이고, 상기 제 2 입력 모드는 상기 스피치 모드, 상기 제스처 모드, 또는 상기 비디오 모드 중 다른 하나인, 멀티-모달 사용자 입력을 위한 방법.
  20. 제 18 항에 있어서,
    상기 피드백 메시지는 상기 제 1 입력을 명확화하기 위해 상기 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 멀티-모달 사용자 입력을 위한 방법.
  21. 제 20 항에 있어서,
    상기 제 1 입력의 인식 프로세싱과 연관된 신뢰도 레벨이 신뢰도 임계치를 충족시키지 못하는 것에 응답하여 상기 피드백 메시지가 전송되는, 멀티-모달 사용자 입력을 위한 방법.
  22. 제 18 항에 있어서,
    업데이트된 상기 맵핑은 상기 제 1 입력 및 상기 제 2 입력의 조합을 상기 커맨드와 연관시키는, 멀티-모달 사용자 입력을 위한 방법.
  23. 제 18 항에 있어서,
    상기 맵핑을 업데이트하는 단계는,
    상기 사용자와 연관된 임베딩 네트워크 데이터를 업데이트하는 것; 또는
    상기 사용자와 연관된 가중치 데이터를 업데이트하는 것
    중 적어도 하나를 포함하는, 멀티-모달 사용자 입력을 위한 방법.
  24. 제 18 항에 있어서,
    상기 제 1 입력 모드는 비디오 모드에 대응하고, 상기 피드백 메시지는 조명 임계치 미만의 값을 갖는 주변 광 메트릭에 응답하여 전송되는, 멀티-모달 사용자 입력을 위한 방법.
  25. 제 18 항에 있어서,
    상기 제 1 입력 모드는 스피치 모드에 대응하고, 상기 피드백 메시지는 노이즈 임계치를 초과하는 값을 갖는 노이즈 메트릭에 응답하여 전송되는, 멀티-모달 사용자 입력을 위한 방법.
  26. 멀티-모달 사용자 입력을 위한 장치로서,
    상기 장치는,
    제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 수단으로서, 상기 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 상기 제 1 입력은 커맨드에 대응하는, 상기 제 1 데이터를 프로세싱하는 수단;
    상기 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 수단으로서, 상기 피드백 메시지는 상기 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 상기 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 상기 출력 디바이스에 피드백 메시지를 전송하는 수단;
    제 2 입력 디바이스로부터 제 2 데이터를 수신하는 수단으로서, 상기 제 2 데이터는 상기 제 2 입력을 나타내는, 상기 제 2 데이터를 수신하는 수단; 및
    상기 제 2 입력에 의해 식별된 상기 커맨드에 상기 제 1 입력을 연관시키기 위해 맵핑을 업데이트하는 수단을 포함하는, 멀티-모달 사용자 입력을 위한 장치.
  27. 제 26 항에 있어서,
    업데이트된 상기 맵핑은 상기 제 1 입력 및 상기 제 2 입력의 조합을 상기 커맨드와 연관시키는, 멀티-모달 사용자 입력을 위한 장치.
  28. 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금:
    제 1 입력 디바이스로부터 수신된 제 1 데이터를 프로세싱하는 것으로서, 상기 제 1 데이터는 제 1 입력 모드에 기초한 사용자로부터의 제 1 입력을 나타내고, 상기 제 1 입력은 커맨드에 대응하는, 상기 제 1 데이터를 프로세싱하는 것을 행하게 하고;
    상기 제 1 데이터를 프로세싱하는 것에 기초하여 출력 디바이스에 피드백 메시지를 전송하는 것으로서, 상기 피드백 메시지는 상기 제 1 입력 모드와 상이한 제 2 입력 모드에 기초하여, 상기 제 1 입력과 연관된 커맨드를 식별하는 제 2 입력을 제공하도록 상기 사용자에게 지시하는, 상기 출력 디바이스에 피드백 메시지를 전송하는 것을 행하게 하며;
    제 2 입력 디바이스로부터 제 2 데이터를 수신하는 것으로서, 상기 제 2 데이터는 상기 제 2 입력을 나타내는, 상기 제 2 데이터를 수신하는 것을 행하게 하고; 그리고
    상기 제 2 입력에 의해 식별된 상기 커맨드에 상기 제 1 입력을 연관시키기 위해 맵핑을 업데이트하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
  29. 제 28 항에 있어서,
    상기 제 1 입력 모드는 비디오 모드에 대응하고, 상기 피드백 메시지는 조명 임계치 미만의 값을 갖는 주변 광 메트릭에 응답하여 전송되는, 비일시적 컴퓨터 판독가능 저장 매체.
  30. 제 28 항에 있어서,
    상기 제 1 입력 모드는 스피치 모드에 대응하고, 상기 피드백 메시지는 노이즈 임계치를 초과하는 값을 갖는 노이즈 메트릭에 응답하여 전송되는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020227000411A 2019-07-12 2020-07-10 멀티-모달 사용자 인터페이스 KR20220031610A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962873775P 2019-07-12 2019-07-12
US62/873,775 2019-07-12
US16/685,946 2019-11-15
US16/685,946 US11348581B2 (en) 2019-07-12 2019-11-15 Multi-modal user interface
PCT/US2020/041499 WO2021011331A1 (en) 2019-07-12 2020-07-10 Multi-modal user interface

Publications (1)

Publication Number Publication Date
KR20220031610A true KR20220031610A (ko) 2022-03-11

Family

ID=74101815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227000411A KR20220031610A (ko) 2019-07-12 2020-07-10 멀티-모달 사용자 인터페이스

Country Status (7)

Country Link
US (1) US11348581B2 (ko)
EP (1) EP3997553A1 (ko)
JP (1) JP2022539794A (ko)
KR (1) KR20220031610A (ko)
CN (1) CN114127665A (ko)
BR (1) BR112021026765A2 (ko)
WO (1) WO2021011331A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024029827A1 (ko) * 2022-08-01 2024-02-08 삼성전자 주식회사 제어 추천을 위한 전자 장치 및 컴퓨터 판독가능 저장 매체

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021103191A (ja) * 2018-03-30 2021-07-15 ソニーグループ株式会社 情報処理装置および情報処理方法
US11615801B1 (en) * 2019-09-20 2023-03-28 Apple Inc. System and method of enhancing intelligibility of audio playback
US11521643B2 (en) * 2020-05-08 2022-12-06 Bose Corporation Wearable audio device with user own-voice recording
US20220051666A1 (en) * 2020-08-12 2022-02-17 International Business Machines Corporation Augmented reality enabled command management
US11878244B2 (en) * 2020-09-10 2024-01-23 Holland Bloorview Kids Rehabilitation Hospital Customizable user input recognition systems
US11830486B2 (en) * 2020-10-13 2023-11-28 Google Llc Detecting near matches to a hotword or phrase
US11461681B2 (en) * 2020-10-14 2022-10-04 Openstream Inc. System and method for multi-modality soft-agent for query population and information mining
US11809480B1 (en) * 2020-12-31 2023-11-07 Meta Platforms, Inc. Generating dynamic knowledge graph of media contents for assistant systems
US11651541B2 (en) * 2021-03-01 2023-05-16 Roblox Corporation Integrated input/output (I/O) for a three-dimensional (3D) environment
CN113282172A (zh) * 2021-05-18 2021-08-20 前海七剑科技(深圳)有限公司 一种手势识别的控制方法和装置
US11783073B2 (en) * 2021-06-21 2023-10-10 Microsoft Technology Licensing, Llc Configuration of default sensitivity labels for network file storage locations
WO2023035073A1 (en) * 2021-09-08 2023-03-16 Huawei Technologies Canada Co., Ltd. Methods and devices for communication with multimodal compositions
US11971710B2 (en) * 2021-11-12 2024-04-30 Pani Energy Inc Digital model based plant operation and optimization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386255B2 (en) * 2009-03-17 2013-02-26 Avaya Inc. Providing descriptions of visually presented information to video teleconference participants who are not video-enabled
US9123341B2 (en) 2009-03-18 2015-09-01 Robert Bosch Gmbh System and method for multi-modal input synchronization and disambiguation
KR101092820B1 (ko) 2009-09-22 2011-12-12 현대자동차주식회사 립리딩과 음성 인식 통합 멀티모달 인터페이스 시스템
US8473289B2 (en) * 2010-08-06 2013-06-25 Google Inc. Disambiguating input based on context
US20130085753A1 (en) * 2011-09-30 2013-04-04 Google Inc. Hybrid Client/Server Speech Recognition In A Mobile Device
US9152376B2 (en) * 2011-12-01 2015-10-06 At&T Intellectual Property I, L.P. System and method for continuous multimodal speech and gesture interaction
US9465833B2 (en) * 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
WO2014070872A2 (en) 2012-10-30 2014-05-08 Robert Bosch Gmbh System and method for multimodal interaction with reduced distraction in operating vehicles
US9190058B2 (en) * 2013-01-25 2015-11-17 Microsoft Technology Licensing, Llc Using visual cues to disambiguate speech inputs
EP4156601A1 (en) 2013-05-08 2023-03-29 JPMorgan Chase Bank, N.A. Automated code analysis and tagging (methods and systems)
US10402060B2 (en) 2013-06-28 2019-09-03 Orange System and method for gesture disambiguation
US10741182B2 (en) * 2014-02-18 2020-08-11 Lenovo (Singapore) Pte. Ltd. Voice input correction using non-audio based input
US8825585B1 (en) 2014-03-11 2014-09-02 Fmr Llc Interpretation of natural communication
US20160034249A1 (en) * 2014-07-31 2016-02-04 Microsoft Technology Licensing Llc Speechless interaction with a speech recognition device
US10446141B2 (en) * 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
DK201770411A1 (en) * 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US20180357040A1 (en) * 2017-06-09 2018-12-13 Mitsubishi Electric Automotive America, Inc. In-vehicle infotainment with multi-modal interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024029827A1 (ko) * 2022-08-01 2024-02-08 삼성전자 주식회사 제어 추천을 위한 전자 장치 및 컴퓨터 판독가능 저장 매체

Also Published As

Publication number Publication date
EP3997553A1 (en) 2022-05-18
CN114127665A (zh) 2022-03-01
TW202109245A (zh) 2021-03-01
US20210012770A1 (en) 2021-01-14
BR112021026765A2 (pt) 2022-02-15
WO2021011331A1 (en) 2021-01-21
US11348581B2 (en) 2022-05-31
JP2022539794A (ja) 2022-09-13

Similar Documents

Publication Publication Date Title
US11348581B2 (en) Multi-modal user interface
CN111699528B (zh) 电子装置及执行电子装置的功能的方法
US11437020B2 (en) Techniques for spatially selective wake-up word recognition and related systems and methods
CN111868824A (zh) 智能设备的情境感知控制
US10353495B2 (en) Personalized operation of a mobile device using sensor signatures
US10929099B2 (en) Spatialized virtual personal assistant
JP7419270B2 (ja) ウェアラブルシステム発話処理
JP6433903B2 (ja) 音声認識方法及び音声認識装置
KR101924852B1 (ko) 네트워크에 연결된 음향기기와의 멀티모달 인터렉션 방법 및 시스템
CN104464737B (zh) 声音验证系统和声音验证方法
KR20190053001A (ko) 이동이 가능한 전자 장치 및 그 동작 방법
JP2015219440A (ja) 操作補助装置および操作補助方法
JPWO2019187834A1 (ja) 情報処理装置、情報処理方法、およびプログラム
KR20150004080A (ko) 보청기 및 보청기 제어 방법
US11895474B2 (en) Activity detection on devices with multi-modal sensing
US11656837B2 (en) Electronic device for controlling sound and operation method therefor
US20210383806A1 (en) User input processing method and electronic device supporting same
TWI840587B (zh) 多模態使用者介面
JP7435641B2 (ja) 制御装置、ロボット、制御方法およびプログラム
KR102168812B1 (ko) 사운드를 제어하는 전자 장치 및 그 동작 방법
US20240098411A1 (en) Dynamic adjustment of an output of a speaker
US11518399B2 (en) Agent device, agent system, method for controlling agent device, and storage medium
US20220261218A1 (en) Electronic device including speaker and microphone and method for operating the same
CN104345649B (zh) 应用于声控装置的控制器与相关方法
JP2022189035A (ja) 制御装置、制御方法および制御プログラム