KR20240036701A - 컨텍스트 신호들에 기초하는 참여 상태 보존 - Google Patents
컨텍스트 신호들에 기초하는 참여 상태 보존 Download PDFInfo
- Publication number
- KR20240036701A KR20240036701A KR1020247007137A KR20247007137A KR20240036701A KR 20240036701 A KR20240036701 A KR 20240036701A KR 1020247007137 A KR1020247007137 A KR 1020247007137A KR 20247007137 A KR20247007137 A KR 20247007137A KR 20240036701 A KR20240036701 A KR 20240036701A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- user interface
- state
- interface element
- temporary
- Prior art date
Links
- 238000004321 preservation Methods 0.000 title description 3
- 230000001052 transient effect Effects 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 34
- 230000000051 modifying effect Effects 0.000 claims abstract description 28
- 230000009471 action Effects 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 44
- 230000015654 memory Effects 0.000 claims description 34
- 238000001514 detection method Methods 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 description 27
- 239000003607 modifier Substances 0.000 description 25
- 238000003860 storage Methods 0.000 description 13
- 230000033001 locomotion Effects 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000007958 sleep Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001755 vocal effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013518 transcription Methods 0.000 description 2
- 230000035897 transcription Effects 0.000 description 2
- 238000002604 ultrasonography Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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
- G06F3/04845—Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
그래픽 사용자 인터페이스 요소를 동적으로 변경하기 위한 방법(400)은 일시 사용자 인터페이스(202) 요소가 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여 발생한다. 이 방법은 사용자 디바이스에서 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)를 수신하는 단계를 포함한다. 이 방법은 사용자 디바이스에 의해, 사용자의 상태를 특징짓는 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 단계를 더 포함한다. 이 방법은 또한, 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 단계를 포함한다.
Description
본 개시내용은 컨텍스트 신호들(contextual signals)에 기초하여 참여 상태(engagement state)를 보존하는 것에 관한 것이다.
스피치 가능 환경(speech-enabled environment)(예를 들어, 집, 직장, 학교, 자동차 등)은 사용자가 질의를 처리하고 그에 응답하고/하거나 커맨드에 기초하여 기능을 수행하는 컴퓨터 기반 시스템에 질의 또는 커맨드를 큰 소리로 말하는 것을 허용한다. 스피치 가능 환경은 환경의 다양한 방들 또는 영역들을 통해 분산되어 있는 연결된 마이크로폰 디바이스들의 네트워크를 사용하여 구현될 수 있다. 이러한 디바이스들은 주어진 발화(utterance)가 환경 내에 존재하는 다른 개인을 향한 발화가 아니라 시스템을 향한 것인 때를 식별하는 데 도움을 주기 위해 핫워드들(hotwords)을 사용할 수 있다. 이에 따라, 디바이스들은 슬립 상태 또는 최대절전 상태(hibernation state)로 동작하고, 검출된 발화가 핫워드를 포함하는 경우에만 깨어날 수 있다. 일단 깨어나면, 디바이스들은 완전한 온-디바이스 자동 스피치 인식(automated speech recognition)(ASR) 또는 서버 기반 ASR과 같은 더 비용이 많이 드는 프로세싱을 수행하는 것으로 진행할 수 있다.
본 개시내용의 일 양태는 그래픽 사용자 인터페이스 요소를 동적으로 변경하기 위한, 컴퓨터로 구현되는 방법을 제공한다. 컴퓨터로 구현되는 방법은 데이터 프로세싱 하드웨어에 의해 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 한다. 동작들은 일시적 사용자 인터페이스 요소(temporal user-interface element)가 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여 발생한다. 동작들은 사용자 디바이스에서, 사용자의 상태를 특징짓는 컨텍스트 신호를 수신하는 동작을 포함한다. 동작들은 사용자 디바이스에 의해, 사용자의 상태를 특징짓는 컨텍스트 신호가, 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 동작을 더 포함한다. 동작들은 또한 사용자의 상태를 특징짓는 컨텍스트 신호가, 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작을 포함한다.
본 개시내용의 다른 양태는 그래픽 사용자 인터페이스 요소를 동적으로 변경하기 위한 시스템을 제공한다. 시스템은 데이터 프로세싱 하드웨어, 및 데이터 프로세싱 하드웨어와 통신하는 메모리 하드웨어를 포함한다. 메모리 하드웨어는 데이터 프로세싱 하드웨어 상에서 실행될 때 데이터 프로세싱 하드웨어로 하여금 동작들을 수행하게 하는 명령어들을 저장한다. 동작들은 일시적 사용자 인터페이스 요소가 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여 발생한다. 동작들은 사용자 디바이스에서, 사용자의 상태를 특징짓는 컨텍스트 신호를 수신하는 동작을 포함한다. 동작들은 사용자 디바이스에 의해, 사용자의 상태를 특징짓는 컨텍스트 신호가, 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 동작을 더 포함한다. 동작들은 또한 사용자의 상태를 특징짓는 컨텍스트 신호가, 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작을 포함한다.
본 개시내용의 어느 한 양태의 구현들은 이하의 임의적인 피처들 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 사용자의 상태는 사용자가 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소에 참여하려고 시도하고 있거나 그에 참여하고 있음을 나타내는 참여 상태(engagement state)를 포함한다. 일부 예들에서, 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소의 타임아웃 지속시간을 증가시키거나 일시정지하는 동작을 포함한다. 일부 구성들에서, 사용자의 상태는 사용자가 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소에 참여해제되어 있음을 나타내는 참여해제 상태(disengagement state)를 포함한다. 이러한 구성들에서, 사용자의 상태를 특징짓는 컨텍스트 신호가 참여해제 상태를 포함한다고 결정하는 것에 응답하여, 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소에 대한 타임아웃 지속시간의 만료 전에 일시적 사용자 인터페이스 요소를 제거하는 동작을 포함할 수 있다. 이러한 구성들에서, 사용자의 상태를 특징짓는 컨텍스트 신호가 참여해제 상태를 포함한다고 결정하는 것에 응답하여, 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소의 타임아웃 지속시간을 감소시키는 동작을 포함할 수 있다. 컨텍스트 신호의 일부 예들은 사용자 디바이스에 대한 사용자의 근접성을 나타내는 사용자 근접성 신호, 사용자 디바이스에 연관된 센서의 시야 내의 사용자의 프레즌스(presence)를 나타내는 프레즌스 검출 신호, 및 사용자 디바이스에 대한 사용자의 주의(attention)를 나타내는 주의 검출 신호를 포함한다. 일시적 사용자 인터페이스 요소는 사용자 디바이스에 의해 캡처된 스트리밍 오디오에서 검출된 질의에 의해 지정된 액션을 나타낼 수 있다. 임의적으로(optionally), 동작들은 사용자의 상태를 특징짓는 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 그리고 사용자 디바이스의 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하기 전에, 일시적 사용자 인터페이스 요소의 개별 상태가 일정 기간 내에 임계 횟수만큼 이전에 수정되지 못했다고 결정하는 동작을 더 포함한다.
본 개시내용의 어느 한 양태의 일부 예들에서, 컨텍스트 신호는 사용자 디바이스에 연관된 센서의 시야 내의 사용자의 프레즌스를 나타내는 프레즌스 검출 신호를 포함한다. 여기서, 사용자의 상태를 특징짓는 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 프레즌스 검출 신호가 센서의 시야 내의 사용자의 프레즌스가 존재하지 않음으로부터 존재함으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고, 사용자 인터페이스 상에 디스플레이된 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지하는 동작을 포함한다.
본 개시내용의 어느 한 양태의 일부 구현들에서, 컨텍스트 신호는 사용자 디바이스에 대한 사용자의 근접성을 나타내는 사용자 근접성 신호를 포함한다. 여기서, 사용자의 상태를 특징짓는 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 사용자 근접성 신호가 사용자 디바이스에 대한 사용자의 근접성이 사용자 디바이스에 더 가까워지도록 변경되었음을 나타낸다고 결정하는 동작을 포함하고, 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지하는 동작을 포함한다.
본 개시내용의 어느 한 양태의 일부 구성들에서, 컨텍스트 신호는 사용자 디바이스에 대한 사용자의 주의를 나타내는 주의 검출 신호를 포함한다. 여기서, 사용자의 상태를 특징짓는 컨텍스트 신호가 사용자가 일시적 사용자 인터페이스 요소와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 주의 검출 신호가 사용자의 주의가 사용자 디바이스에 집중하는 것으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고; 사용자 인터페이스 상에 디스플레이되는 일시적 사용자 인터페이스 요소의 개별 상태를 수정하는 동작은 일시적 사용자 인터페이스 요소의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지하는 동작을 포함한다.
본 개시내용의 하나 이상의 구현의 세부사항은 첨부 도면들 및 이하의 설명에 제시된다. 다른 양태들, 피처들 및 장점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1은 예시적인 스피치 가능 환경의 개략도이다.
도 2a 및 도 2b는 도 1의 스피치 가능 환경에 대한 예시적인 보존자의 개략도들이다.
도 3은 보존자를 사용하는 예시적인 스피치 가능 환경들의 개략도이다.
도 4는 그래픽 사용자 인터페이스 요소의 상태를 변경하는 방법에 대한 동작들의 예시적인 배열의 흐름도이다.
도 5는 본 명세서에 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
다양한 도면들 내의 유사한 참조 기호들은 유사한 요소들을 나타낸다.
도 2a 및 도 2b는 도 1의 스피치 가능 환경에 대한 예시적인 보존자의 개략도들이다.
도 3은 보존자를 사용하는 예시적인 스피치 가능 환경들의 개략도이다.
도 4는 그래픽 사용자 인터페이스 요소의 상태를 변경하는 방법에 대한 동작들의 예시적인 배열의 흐름도이다.
도 5는 본 명세서에 설명된 시스템들 및 방법들을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스의 개략도이다.
다양한 도면들 내의 유사한 참조 기호들은 유사한 요소들을 나타낸다.
음성 가능 디바이스(voice-enabled device)(예를 들어, 음성 어시스턴트를 실행하는 사용자 디바이스)는 사용자가 질의 또는 커맨드를 큰 소리로 말하고, 질의에 대한 답변을 처리하고/거나 커맨드에 기초하여 기능을 수행하는 것을 허용한다. 종종, 음성 가능 디바이스가 질의에 응답할 때, 음성 가능 디바이스는 질의에 의해 요청된 액션을 나타내는 시각적 응답을 생성한다. 예를 들어, 음성 가능 디바이스의 사용자는 음성 가능 디바이스가 음성 가능 디바이스의 음악 스트리밍 애플리케이션에서 특정 노래를 재생할 것을 요청하는 발화를 말한다. 사용자에 의한 이러한 요청에 응답하여, 음성 가능 디바이스는 음성 가능 디바이스가 음악 스트리밍 서비스에 연관된 음악 스트리밍 애플리케이션 상에서 요청된 노래를 재생하고 있음을 나타내는 그래픽 요소를 음성 가능 디바이스에 연관된 디스플레이 상에 디스플레이한다.
특정 상황들에서, 그래픽 요소는 본질적으로 임시적이거나 일시적이며, 그에 의해 그래픽 요소는 특정 시간량 후에 음성 가능 디바이스의 디스플레이로부터 제거된다. 즉, 그래픽 요소는 설정된 타임아웃 값을 가질 수 있으며, 여기서 타임아웃 값은 그래픽 요소가 제거(즉, 타임아웃)되기 전에 시각적으로 존재할 지속시간을 나타낸다. 예를 들어, 그래픽 요소는 음성 가능 디바이스가 사용자에 의한 질의에 응답하여 수행하고 있거나 수행할 수 있는 액션을 시각적으로 나타내는 임시적 알림이다.
일부 예들에서, 음성 가능 디바이스는 음성 가능 디바이스에 연관된 사용자가 어떻게든 사용자가 액션이 수행되기를 원한다는 것을 확인할 때까지 질의에 응답하여 액션을 수행하지 않는다. 여기서, 확인은 스피치 입력과 같은 구두 확인(예를 들어, "예"), 제스처와 같은 모션 확인, 또는 사용자가 액션의 수행을 확인하기 위해 음성 가능 디바이스의 디스플레이를 탭하는 것과 같은 촉각적 확인일 수 있다. 확인 접근방식을 사용할 때, 확인 접근방식은 음성 가능 디바이스가 사용자가 원하지 않는 액션을 실수로 수행하는 것을 방지할 수 있다. 더욱이, 이 접근방식은 음성 가능 디바이스가 사용자가 요청한 것으로 인지한 하나 이상의 액션을 음성 가능 디바이스가 제안하도록 허용하고, 액션들 중 임의의 것이 실제로 사용자에 의해 요청되었는지(즉, 사용자가 음성 가능 디바이스가 수행하도록 의도한 임의의 액션들)를 사용자가 선택하거나 나타내도록 허용한다.
일부 구현들에서, 음성 가능 디바이스는 액션을 자동으로 수행하는 대신에 사용자에 의한 질의에 응답하여 액션을 제안하는데, 왜냐하면 음성 가능 디바이스는 사용자가 액션이 수행될 것을 실제로 요청했다는 신뢰도가 부족하기 때문이다. 예를 들어, 한 사용자가 음성 가능 디바이스 근처에서 다른 사용자와 대화하고 있고, 음성 가능 디바이스는 대화의 소정 양태가 음성 가능 디바이스가 액션을 수행하도록 하는 질의였음을 인지한다. 그러나, 이는 음성 가능 디바이스로 향해지지 않은 사이드 스피치 대화이기 때문에, 음성 가능 디바이스는 액션을 자동으로 수행하기 위한 특정 수준의 신뢰도로 액션을 결정하지 못할 수 있다. 여기서, 액션의 자동 수행을 만족하지 못하는 낮은 신뢰도로 인해, 음성 가능 디바이스는 사용자가 검출된 액션을 수행하도록 원하는지를 문의하는 그래픽 요소를 대신 디스플레이한다. 예를 들어, 음성 가능 디바이스는 "마이클 잭슨의 Thriller를 재생하길 원하는가?"라고 하는 프롬프트를 디스플레이한다. 따라서, 이 프롬프트는 사용자에게 그것이 사용자가 의도한 바임을 확인할 수 있는 능력(즉, 프롬프트 내의 선택가능한 "예" 버튼)을 제공하거나, 사용자에게 그것이 사용자가 의도한 바가 아니었음을 나타낼 수 있는 능력(즉, 프롬프트 내의 선택가능한 "아니오" 버튼)을 제공한다. 여기서, 프롬프트는 사용자가 프롬프트를 무시하거나 프롬프트를 인지하지 못하고 프롬프트에 의해 제안된 액션이 수행되지 않게 하는 것을 허용하는 일시적 그래픽 요소로서 셋업될 수 있다. 즉, 음성 가능 디바이스가 프롬프트와 관련하여 사용자로부터 임의의 입력을 수신하지 않은 경우, 프롬프트 및 그에 따른 제안된 액션은 타임아웃되고 발생하지 않을 것이다.
불행하게도, 사용자가 음성 가능 디바이스에 의해 특정 액션이 수행되도록 요청했지만 사용자가 해당 액션이 수행되기를 원한다는 확인을 사용자가 제공할 수 없는 상황들이 발생한다. 예를 들자면, 음성 가능 디바이스는 사용자 집의 주방에 위치될 수 있다. 사용자가 식료품점으로부터 집으로 돌아오면, 사용자는 자신의 차량으로부터의 일련의 이동을 통해 식료품들을 주방으로 옮기기 시작한다. 처음에 주방에 있는 동안, 사용자는 사용자가 식료품점으로부터 집으로 오는 길에 듣고 있던 지역 라디오 방송국을 음성 가능 디바이스가 재생하도록 요청한다. 이 시나리오에서, 사용자는 음성 가능 디바이스가 지역 라디오 방송국을 재생할 것을 명시적으로 요청했지만, 사용자는 이동 및 방향전환 중이었을 수 있고, 그에 의해 음성 가능 디바이스는 커맨드를 신뢰가능하게 검출하지 못했을 수 있다. 이러한 신뢰도 부족으로 인해, 음성 가능 디바이스는 사용자가 음성 가능 디바이스에서 지역 라디오 방송국을 재생하기를 원하는지 문의하는 프롬프트를 생성한다. 이러한 제안된 액션이 실제로 사용자가 요청한 것이더라도, 사용자는 프롬프트를 보지 못할 수 있고, 음성 가능 디바이스의 음성 기능들이 제대로 수행되지 않아 좌절감을 느낄 수 있다. 대안적으로, 사용자는 차량으로 이동하여 식료품을 팔에 가득 들고 돌아와서, 단지 지역 라디오 방송국이 재생 중이 아니며 음성 가능 디바이스의 디스플레이 상에 일시적 그래픽 요소로서 프롬프트가 존재한다는 것을 알아차릴 수 있다. 그러나, 사용자가 식료품을 내려놓거나 구두로 응답할 기회를 갖기 전에 프롬프트가 사라질 수 있다(즉, 타임아웃). 이러한 예에서, 프롬프트/제안된 액션이 타임아웃되기 전에, 사용자는 프롬프트에서 '예'를 탭하기 위해 음성 가능 디바이스를 향해 이동했을 수 있다.
식료품 예시와 같은 상황들에 대해, 일시적 그래픽 요소의 상태는 사용자의 상태를 인식함으로써 이익을 얻을 수 있다. 즉, 식료품 예시에서, 프롬프트가 사라질 때(즉, 타임아웃될 때), 사용자는 음성 가능 디바이스를 향해 이동하고 있었다. 즉, 음성 가능 디바이스에 연관된 소정의 시스템이 음성 가능 디바이스와 상호작용하려고 시도하는 사용자의 상태를 인식한 경우, 해당 시스템은 음성 가능 디바이스(또는 그것의 소정의 시스템)에 일시적 그래픽 요소(예를 들어, 사용자가 지역 라디오 방송국을 재생하기를 원하는지 묻는 프롬프트)의 타임아웃 지속시간을 연장하라고 알릴 수 있다. 따라서, 사용자의 상태로 인해 타임아웃 지속시간이 연장된 경우, 사용자는 음성 가능 디바이스에 액션의 확인을 입력할 충분한 시간을 가질 수 있으며; 결과적으로 음성 가능 디바이스는 사용자가 즐길 수 있도록 지역 라디오 방송국을 성공적으로 재생한다.
대조적으로, 식료품 예시에서, 사용자가 식료품을 들고 주방에 들어와서 자신의 휴대폰에 대고 "방금 지역 라디오 방송국에서 이 멋진 노래가 나오는 걸 들었어"라고 말했다면, 일시적 그래픽 요소는 또한 사용자의 상태를 인식하는 것으로부터 이익을 얻어서, 그것의 타임아웃을 가속화하거나 즉시 타임아웃할 수 있다(즉, 일시적 요소의 상태를 변경). 예를 들어, 예에 대한 이러한 대안에서, 사용자는 음성 가능 디바이스를 응시하여 음성 가능 디바이스가 지역 라디오 방송국을 재생하기 위한 프롬프트를 생성했다는 것을 알아차린 다음, 식료품을 계속 가져오기 위해 걸어나갈 수 있다. 여기서, 사용자의 시각적 인식(즉, 응시)과 그에 후속하여 걸어나가는 것의 조합은 사용자에 의한 제안된 액션에 대한 암시적인 관심 부족으로 인해 프롬프트를 즉시 타임아웃하도록 음성 가능 디바이스에 알릴 수 있다.
일시적 요소가 사용자의 상태를 인식하도록 하기 위해, 음성 가능(voice-enabled)에 연관된 하나 이상의 시스템은 컨텍스트 신호들을 분석하여 이러한 신호들 중 하나 이상이 사용자의 상태가 일시적 요소의 상태에 영향을 미쳐야 함을 나타내는지를 결정하도록 구성될 수 있다. 즉, 컨텍스트 신호(들)가 사용자의 상태를 음성 가능 디바이스와 긍정적으로 상호작용하려고 시도(예를 들어, 참여하려고 시도)하는 것(즉, 참여 상태)으로서 특징짓는 경우, 일시적 요소의 상태는 긍정적인 상호작용을 수용하도록 수정될 수 있다(예를 들어, 타임아웃이 연장되거나 완전히 일시정지됨). 반면에, 컨텍스트 신호(들)가 사용자의 상태를 음성 가능 디바이스와 부정적으로 상호작용하려고(예를 들어, 참여하지 않으려고) 시도하는 것(즉, 참여해제 상태)으로서 특징짓는 경우, 일시적 요소의 상태는 부정적인 상호작용을 수용하도록 수정될 수 있다(예를 들어, 타임아웃이 감소되거나 즉시 실행됨). 이러한 접근방식을 사용하면, 일시적 요소들은 컨텍스트 신호들(예를 들어, 수집된/수신된 센서 데이터)이 그들의 보존을 정당화할 때 보존될 수 있다.
도 1을 참조하면, 일부 예들에서, 스피치 환경(100)은 사용자(10)가 디지털 어시스턴트 인터페이스(120)를 실행하는 음성 가능 디바이스(110)(디바이스(110) 또는 사용자 디바이스(110)라고도 지칭됨)의 가청 범위 내에서 발화(20)를 말하는 것을 포함한다. 여기서, 사용자(10)가 말한 발화(20)는 스트리밍 오디오(12)에서 디바이스(110)에 의해 캡처될 수 있고, 액션을 수행하기 위한 질의(22), 또는 보다 구체적으로는 디지털 어시스턴트 인터페이스(120)가 액션을 수행하기 위한 질의(22)에 대응할 수 있다. 사용자(10)는 슬립 또는 최대절전 상태에 있는 동안 디바이스(110)에서 실행되는 핫워드 검출기(예를 들어, 소프트 액셉터(soft acceptor)(200))에 의해 스트리밍 오디오(12)에서 핫워드(24)가 검출될 때 슬립 또는 최대절전 상태로부터 디바이스(110)를 트리거하기 위해, 핫워드(24)(예를 들어, 호출 문구)를 질의(22)에 접두어로 붙일 수 있다. 사용자(10)는 또한 핫워드(24)를 사용하여 질의(22)를 종료할 수 있다. 핫워드(24)를 말하는 것 외에, 슬립 또는 최대절전 상태로부터 디바이스(110)를 트리거하기 위해 다른 기술들이 사용될 수 있다. 예를 들어, 호출 이벤트들은 디바이스(110)를 슬립 또는 최대절전 상태로부터 트리거할 수 있다. 호출 이벤트들은 사용자가 질의(22)를 말하기 전이나 말하는 도중에 제스처를 제공하는 것, 사용자가 질의(22)를 말할 때 디바이스를 마주보는 것, 사용자가 갑자기 디바이스(110)의 프레즌스에 들어가서 질의(22)를 말하는 것, 또는 스피치(예를 들어, 질의(22))가 디바이스(110)를 향해진 것으로 예상된다는 가능성을 나타내는 컨텍스트 단서들을 포함할 수 있지만 이에 제한되지는 않는다. 액션은 동작 또는 태스크로도 지칭될 수 있다. 이러한 의미에서, 사용자(10)는 컴퓨팅 활동들을 수행하거나 질문들에 대한 답변들을 찾기 위해 음성 가능 디바이스(110)에서 실행되는 디지털 어시스턴트 인터페이스(120)와 대화식으로 상호작용할 수 있다.
디바이스(110)는 사용자(10)와 연관되고 환경(100)으로부터 오디오를 캡처할 수 있는 임의의 컴퓨팅 디바이스에 대응할 수 있다. 일부 예들에서, 사용자 디바이스들(110)은 모바일 디바이스들(예를 들어, 휴대폰, 태블릿, 랩톱, 전자책 리더 등), 컴퓨터들, 웨어러블 디바이스들(예를 들어, 스마트 시계), 음악 플레이어들, 캐스팅 디바이스들, 스마트 가전들(예를 들어, 스마트 텔레비전) 및 사물 인터넷(IoT) 디바이스들, 리모콘들, 스마트 스피커들 등을 포함하지만, 이에 제한되지 않는다. 디바이스(110)는 데이터 프로세싱 하드웨어(112), 및 데이터 프로세싱 하드웨어(112)와 통신하고 데이터 프로세싱 하드웨어(112)에 의해 실행될 때 데이터 프로세싱 하드웨어(112)로 하여금 스피치 프로세싱에 관련된 하나 이상의 동작을 수행하게 하는 명령어들을 저장하는 메모리 하드웨어(114)를 포함한다.
디바이스(110)는 스피치 환경(100) 내의 오디오를 캡처하여 전자 신호들(예를 들어, 오디오 데이터(14))로 변환하기 위한 오디오 캡처 디바이스(116, 116a)(예를 들어, 하나 이상의 마이크로폰의 어레이)를 갖는 오디오 서브시스템(116)을 더 포함한다. 도시된 예에서 디바이스(110)는 오디오 캡처 디바이스(116a)(일반적으로 마이크로폰(116a)이라고도 지칭됨)를 구현하지만, 오디오 캡처 디바이스(116a)는 디바이스(110) 상에 물리적으로 상주하는 것이 아니라 오디오 서브시스템(116)과 통신할 수 있다(예를 들어, 디바이스(110)의 주변장치들). 예를 들어, 디바이스(110)는 차량 전체에 위치된 마이크로폰들의 어레이를 활용하는 차량 인포테인먼트 시스템에 대응할 수 있다. 다른 예에서, 오디오 캡처 디바이스(116a)는 액션을 수행할 사용자 디바이스(110)와 통신하는 다른 디바이스에 상주할 수 있다. 추가적으로, 오디오 서브시스템(116)은 사용자 디바이스(110)에 의해 생성된/출력된 오디오(예를 들어, 합성 오디오, 합성 스피치, 또는 다양한 유형의 미디어에 관련된 오디오)를 재생하기 위한 (예를 들어, 하나 이상의 스피커(116b)와 같은) 재생 디바이스(116, 116b)를 포함할 수 있다.
디바이스(110)는 또한, 그래픽 사용자 인터페이스(GUI) 요소들(예를 들어, 그래픽 사용자 인터페이스 요소(202)) 및/또는 그래픽 콘텐츠를 디스플레이하기 위한 디스플레이(118)를 포함할 수 있다. GUI 요소들의 일부 예들은 창들, 스크린들, 아이콘들, 메뉴들 등을 포함한다. 예를 들어, 디바이스(110)는 디스플레이(118)를 위해 (예를 들어, GUI 요소(202)와 같은) GUI 요소들 또는 다른 그래픽 콘텐츠를 생성하는 애플리케이션들(로컬 또는 원격 애플리케이션들)을 로딩 또는 런칭할 수 있다. 더욱이, 디스플레이(118)에서 생성된 요소들은 사용자(10)에 의해 선택가능할 수 있으며, 또한 디바이스(110) 상에서 발생하는 프로세싱 활동들 및/또는 동작들에 대한 소정 형태의 시각적 피드백을 제공하는 역할을 할 수 있다. 예를 들어, 요소(들)는 디바이스(110)가 사용자(10)로부터의 질의(22)에 응답하여 수행하고 있거나 수행을 제안하고 있는 액션을 나타낸다. 또한, 디바이스(110)는 음성 가능 디바이스(110)이기 때문에, 사용자(10)는 다양한 음성 커맨드들은 물론, 다른 유형들의 커맨드들(예를 들어, 제스처 커맨드들 또는 터치 입력 커맨드들)을 사용하여, 디스플레이(118) 상에 생성된 요소들과 상호작용할 수 있다. 예를 들어, 디스플레이(118)는 특정 애플리케이션에 대한 옵션들의 메뉴를 묘사할 수 있고, 사용자(10)는 스피치 또는 다른 피드백 수단(예를 들어, 촉각 입력, 모션/제스처 입력 등)을 통해 옵션을 선택하기 위해 인터페이스(120)를 사용할 수 있다. 사용자(10)가 제시된 옵션을 선택하기 위해 말할 때, 디바이스(110)는 축소된 스피치 인식 상태에서 동작하거나 디바이스(110)에 연관된 웜 워드 모델(warm word model)을 사용하여, 특정 문구들이 제시된 옵션을 선택하기 위해 말해지는지를 결정할 수 있다. 예로서, 웜 워드 모델은 (예를 들어, 디바이스(110)의 디스플레이(118) 상에서) 옵션이 디바이스(110)에 의해 제시되고 있는 시간 동안(예를 들어, 타임아웃 윈도우 동안) 이진 스피치(예를 들어, "예" 또는 "아니오")를 검출하도록 동작한다.
스피치 가능 인터페이스(예를 들어, 디지털 어시스턴트 인터페이스)(120)는 디바이스(110)에 의해 캡처된 구두 발화(20)에서 전달된 커맨드 또는 질의(22)를 처리할 수 있다. 스피치 가능 인터페이스(120)(인터페이스(120) 또는 어시스턴트 인터페이스(120)라고도 지칭됨)는 일반적으로 발화(20)에 대응하는 오디오 데이터(14)를 수신하고 오디오 데이터(14)에 대한 스피치 프로세싱 또는 발화(20)로부터 유래하는 다른 활동들을 조정하는 것을 용이하게 한다. 인터페이스(120)는 디바이스(110)의 데이터 프로세싱 하드웨어(112)에서 실행될 수 있다. 인터페이스(120)는 발화(20)를 포함하는 오디오 데이터(14)를 스피치 프로세싱 또는 질의 이행에 관련된 다양한 시스템들로 채널링할 수 있다.
더욱이, 디바이스(110)는 네트워크(130)를 통해 원격 시스템(140)과 통신하도록 구성된다. 원격 시스템(140)은 원격 데이터 프로세싱 하드웨어(144)(예를 들어, 원격 서버들 또는 CPU들) 및/또는 원격 메모리 하드웨어(146)(예를 들어, 원격 데이터베이스들 또는 다른 저장 하드웨어)와 같은 스케일러블 원격 자원들(142)을 포함할 수 있다. 디바이스(110)는 (예를 들어, 스피치 프로세싱 시스템(150)에 의한) 스피치 프로세싱 및/또는 (예를 들어, 보존자(200)에 의한) GUI 요소의 상태 보존에 관련된 다양한 기능을 수행하기 위해 원격 자원들(142)을 이용할 수 있다. 예를 들어, 디바이스(110)는 스피치 인식 시스템(152)을 사용하는 스피치 인식 및/또는 스피치 해석기(154)를 사용하는 스피치 해석을 수행하도록 구성된다. 일부 예들에서, 도시되지는 않았지만, 디바이스(110)는 추가로 TTS 시스템을 사용하는 스피치 프로세싱 동안 텍스트-대-스피치(text-to-speech)(TTS) 변환을 할 수 있다.
디바이스(110)는 또한 스피치 프로세싱 시스템(150)과 통신하도록 구성된다. 스피치 프로세싱 시스템(150)은 일반적으로 스피치 인식 및 스피치 해석(질의 해석으로도 알려짐)과 같은 스피치 프로세싱에 관련된 다양한 기능을 수행할 수 있다. 예를 들어, 도 1a의 스피치 프로세싱 시스템(150)은 자동 스피치 인식(automated speech recognition)(ASR)을 수행하는 스피치 인식기(152), 인식된 스피치의 의미를 결정하는(즉, 스피치를 이해하기 위한) 스피치 해석기(154), 및 인식된 스피치에서 식별된 질의에 응답하여 임의의 검색 결과들을 검색하기 위한 검색 엔진(156)을 포함하는 것으로 도시된다. (예를 들어, 어시스턴트 인터페이스(120)에 연관된) 핫워드 검출기가 핫워드 이벤트를 검출할 때, 핫워드 검출기는 오디오 데이터(14)를 스피치 프로세싱 시스템(150)에 전달한다. 핫워드 이벤트는 핫워드 검출기가 오디오 데이터(14)의 일부분(예를 들어, 제1 오디오 세그먼트)을 핫워드(24)로서 받아들인다는 것을 나타낸다. 핫워드(24)로서 식별된 오디오 데이터(14)의 일부분을 사용하여, 핫워드 검출기 및/또는 어시스턴트 인터페이스(120)는 오디오 데이터(14)를 핫워드 이벤트로서 전달하고, 그에 의해 스피치 프로세싱 시스템(150)은 오디오 데이터(14)에 대해 스피치 프로세싱를 수행할 수 있게 된다. 오디오 데이터(14)에 대해 스피치 프로세싱을 수행함으로써, 스피치 인식기(152)는 스피치 해석기(154)와 결합하여 오디오 데이터(14)의 제2 오디오 세그먼트(예를 들어, 질의(22)로서 도시됨)가 구두 질의형 발화(spoken query-type utterance)를 나타내는지를 결정할 수 있다.
스피치 인식기(152)는 핫워드 이벤트에 대응하는 오디오 데이터(14)를 입력으로서 수신하고, 오디오 데이터(41)를 스피치 인식 결과 R이라고 지칭되는 출력으로서 트랜스크립션(transcription)으로 전사(transcribe)한다. 일반적으로 말하면, 오디오 데이터(14)를 트랜스크립션으로 변환함으로써, 스피치 인식기(152)는 디바이스(110)가 사용자(10)로부터의 구두 발화(20)가 질의(22)(또는 커맨드) 또는 소정의 다른 형태의 오디오 통신에 대응하는 때를 인식하도록 허용한다. 트랜스크립션은 디바이스(110)(예를 들어, 어시스턴트 인터페이스(120) 또는 스피치 프로세싱 시스템(150))가 다음으로 질의 또는 커맨드에 대한 응답을 생성하기 위해 사용할 수 있는 텍스트의 시퀀스를 지칭한다. 스피치 인식기(152) 및/또는 인터페이스(120)는 스피치 인식 결과 R을 스피치 해석기(154)(예를 들어, 자연어 이해(natural language understand)(NLU) 모듈)에 제공하여, 결과 R에 대한 시맨틱 해석을 수행하여 오디오 데이터(14)가 특정 액션(158)이 수행될 것을 요청하는 질의(22)를 포함하는지를 결정할 수 있다. 즉, 스피치 해석기(154)는 오디오 데이터(14) 내의 질의(22) 또는 커맨드를 식별하고 스피치 프로세싱 시스템(150)이 질의(22)에 의해 호출된 대응 액션(158)으로 질의(22)에 응답하도록 허용하기 위해 결과 R의 해석 I를 생성한다. 예를 들어, 질의(22)가 음악을 재생하라는 커맨드인 경우, 질의(22)에 의해 호출되는 대응 액션(158)은 (예를 들어, 음악을 재생할 수 있는 애플리케이션을 실행함으로써) 음악을 재생하는 것이다. 일부 예들에서, 스피치 프로세싱 시스템(150)은 스피치 프로세싱 시스템(150)이 질의(22)에 응답(즉, 질의(22)를 이행)할 수 있게 하는 검색 결과들을 검색하기 위해 검색 엔진(156)을 사용한다.
사용자 디바이스(110)는 또한 사용자 디바이스(110)의 환경 내에서 센서 데이터(164)를 캡처하기 위해 센서들(162)로 구성된 센서 시스템(160)을 포함하거나 그에 연관된다. 사용자 디바이스(110)는 지속적으로, 또는 적어도 주기적인 간격들 동안 센서 시스템(160)에 의해 캡처된 센서 데이터(164)를 수신하여, 사용자 디바이스(110)의 사용자(10)의 현재 상태(16)를 결정할 수 있다. 센서 데이터(164)의 일부 예들은 모션 데이터, 이미지 데이터, 연결 데이터, 노이즈 데이터, 스피치 데이터, 또는 사용자(10)/사용자 디바이스(110)의 상태(16) 또는 사용자 디바이스(110) 부근의 환경의 상태를 나타내는 다른 데이터를 포함한다. 모션 데이터는 사용자 디바이스(110)의 움직임을 통해 사용자(10)의 움직임을 특징짓는 가속도계 데이터를 포함할 수 있다. 예를 들어, 사용자(10)가 디바이스(110)를 잡고 있고, 사용자(10)가 디바이스(110)의 디스플레이(118)를 탭하기 위해(예를 들어, GUI 요소와 상호작용하기 위해) 자신의 엄지손가락을 움직일 때, 모션 데이터는 사용자(10)의 상태(16)가 디바이스(110)에 참여 중임을 나타낸다. 모션 데이터는 또한 사용자의 주머니에 있는 스마트폰 또는 사용자에 의해 착용된 스마트 워치와 같은 사용자에 연관된 다른 디바이스로부터 디바이스(110)에서 수신될 수 있다. 이미지 데이터는 사용자(10)의 주의, 사용자 디바이스(110)에 대한 사용자(10)의 근접성(예를 들어, 사용자(10)와 사용자 디바이스(110) 사이의 거리), 사용자(10)의 프레즌스(예를 들어, 하나 이상의 센서(162)의 시야 내에 사용자(10)가 존재하는지 여부), 및/또는 사용자(10) 환경의 피처들을 검출하기 위해 사용될 수 있다. 예를 들어, 이미지 데이터는 (예를 들어, 신체 피처들에 의해 사용자(10)의 제스처를 특징짓거나, 얼굴 피처들에 의해 사용자(10)의 시선을 특징짓거나, 사용자(10)의 포즈/배향을 특징짓기 위해) 사용자(10)의 피처들을 캡처함으로써 사용자(10)의 주의를 검출한다. 연결/통신 데이터는 사용자 디바이스(110)가 다른 전자기기들 또는 디바이스들(예를 들어, 스마트 워치 또는 이동 전화기)에 연결되어 있거나 통신하고 있는지를 결정하기 위해 사용될 수 있다. 예를 들어, 연결 데이터는 근거리 연결/통신 데이터, 블루투스 연결/통신 데이터, Wi-Fi 연결/통신 데이터, 또는 소정의 다른 무선 대역 연결/통신 데이터(예를 들어, 초광대역(ultra-wideband)(UWB) 데이터)일 수 있다. 노이즈 데이터 또는 스피치 데이터와 같은 음향 데이터는 센서 시스템(160)(예를 들어, 디바이스(110)의 마이크로폰(116a))에 의해 캡처될 수 있고, 사용자 디바이스(110)의 환경(예를 들어, 특정 음향 시그니처들을 갖는 환경의 특성들 또는 속성들)을 결정하거나 사용자(10) 또는 다른 당사자가 말하고 있는지를 식별하기 위해 사용될 수 있다. 일부 구성들에서, 센서 시스템(160)은 초음파 데이터를 캡처하여, 사용자(10) 또는 디바이스(110) 환경 내의 다른 객체들의 위치를 검출한다. 예를 들어, 디바이스(10)는 디바이스(110)의 환경에 대한 초음파 데이터를 캡처하기 위해, 자신의 스피커(들)(116b)와 자신의 마이크로폰(들)(116a)의 조합을 활용한다. 센서 시스템(160)의 센서(들)(162)는 온-디바이스로 내장 또는 호스트되거나(예를 들어, 이미지 데이터를 캡처하는 카메라 또는 음향 데이터를 캡처하는 마이크로폰(116a)), 오프-디바이스로 상주하지만 디바이스(110)와 통신하거나, 이들의 소정의 조합일 수 있다. 도 1a는 예시적인 센서(162)로서 디바이스(110) 상에 포함된 카메라를 도시하지만, 오디오 서브시스템(116)의 마이크로폰(116a) 및 스피커(116b)와 같은 디바이스(110)의 다른 주변장치들이 또한 센서들(162)로서 기능할 수 있다.
시스템들(150, 160, 200)은 디바이스(110)에 상주하거나(온-디바이스 시스템들로 지칭됨), 원격으로 상주하지만(예를 들어, 원격 시스템(140) 상에 상주함) 디바이스(110)와 통신할 수 있다. 일부 예들에서, 이러한 시스템들(150, 160, 200) 중 일부는 로컬로 또는 온-디바이스로 상주하는 반면, 다른 시스템들은 원격으로 상주한다. 즉, 이러한 시스템들(150, 160, 200) 중 임의의 것은 임의의 조합으로 로컬 또는 원격일 수 있다. 예를 들어, 시스템(150, 160, 200)의 크기나 프로세싱 요건들이 다소 큰 경우, 시스템(150, 160, 200)은 원격 시스템(140)에 상주할 수 있다. 그러나, 디바이스(110)가 하나 이상의 시스템(150, 160, 200)의 크기 또는 프로세싱 요건들을 지원할 수 있는 경우, 하나 이상의 시스템(150, 160, 200)은 데이터 프로세싱 하드웨어(112) 및/또는 메모리 하드웨어(114)를 사용하여 디바이스(110)에 상주할 수 있다. 임의적으로, 시스템들(150, 160, 200) 중 하나 이상은 로컬/온-디바이스 및 원격 둘 다로 상주할 수 있다. 예를 들어, 기본적으로, 시스템들(150, 160, 200) 중 하나 이상은 디바이스(110)와 원격 시스템(140) 사이의 네트워크(130)에 대한 연결이 이용가능할 때는 원격 시스템(140) 상에서 실행될 수 있지만, 연결이 끊어지거나 네트워크(130)가 이용불가능할 때, 시스템들(150, 160, 200)은 대신에 디바이스(110) 상에서 로컬로 실행될 수 있다.
보존자(200)는 일반적으로 사용자 디바이스(110)(예를 들어, 디바이스(110)의 디스플레이(118)와 같은 사용자 인터페이스) 상에 디스플레이되는 GUI 요소(사용자 인터페이스(UI) 요소라고도 지칭됨)의 상태 S를 동적으로 적응시키는 시스템으로서 기능한다. GUI 요소의 상태 S는 광범위하게 GUI 요소의 속성들을 지칭한다. 즉, GUI 요소의 상태 S는 GUI 요소의 위치, GUI 요소가 제시되는 시간량(즉, 타임아웃 값), 및/또는 GUI 요소에 연관된 그래픽들의 특성들(예를 들어, 색상, 서체, 폰트, 스타일, 크기 등)을 지칭할 수 있다. 이와 관련하여, GUI 요소의 상태 S를 변경하는 것은 예를 들어 GUI 요소의 크기를 변경하는 것, 디스플레이 내에서 GUI 요소의 위치를 변경하는 것, GUI 요소가 제시되는 시간을 변경하는 것, GUI 요소의 폰트를 변경하는 것, GUI 요소의 콘텐츠를 변경하는 것(예를 들어, GUI 요소의 텍스트 또는 미디어 콘텐츠를 변경하는 것) 등을 포함한다. 보존자(200)는 임의의 GUI 요소의 상태 S를 적응시킬 수 있지만, 본 명세서의 예들은 보다 구체적으로 보존자(200)가 일시적 GUI 요소(202)의 상태 S를 변경하는 것을 예시한다. 일시적 GUI 요소(202)는 본질적으로 일시적인 그래픽 요소이다. 예를 들어, 일시적 GUI 요소(202)는 일시적 GUI 요소가 제거되거나 자동으로 해제되기 전에 존재할(예를 들어, 디스플레이될) 시간 T를 지정하는 타임아웃 값을 포함한다.
본 명세서의 예들은 디스플레이(118) 상에 디스플레이되는 일시적 GUI 요소를 참조하지만, 본 명세서의 구현들은 광의 깜박임 및/또는 소리의 가청 출력(예를 들어, 비프/차임)과 같은 비-그래픽 인터페이스들을 통해 일시적 요소를 제시하는 데에도 동일하게 적용가능하다. 사용자는 디바이스 상의 물리적 버튼을 누르는 것, 음성 입력을 제공하는 것, 또는 제스처를 수행하는 것을 통해, 이러한 유형의 비-그래픽 인터페이스 요소(202)와 상호작용할 수 있다.
보존자(200)가 사용자 디바이스(110) 상에 디스플레이되는 일시적 GUI 요소(202)의 상태 S를 변경(즉, 동적으로 적응)해야 하는지 및 그 시기를 식별하기 위해, 보존자(200)는 디바이스(110)가 액세스할 수 있는 컨텍스트 신호들(204)을 수신하거나 모니터링하도록 구성된다. 일부 예들에서, 센서 시스템(160)에 의해 캡처된 센서 데이터(164)는 디바이스의 환경의 양태들을 특징짓는 하나 이상의 컨텍스트 신호(204)의 역할을 한다. 보존자(200)는 센서 데이터(164)의 임의의 추가 프로세싱 없이 센서 데이터(164)를 컨텍스트 신호들(204)로서 사용할 수 있거나, 센서 데이터(164)에 대한 추가 프로세싱을 수행하여 디바이스의 환경의 양태들을 특징짓는 컨텍스트 신호들(204)을 생성할 수 있다. 디바이스(110)는 컨텍스트 신호(204)가 사용자(10)가 일시적인 GUI 요소(202)가 소멸되기 전에 그와 상호작용하려고 시도하고 있음을 나타내는지를 결정하기 위해 보존자(200)를 활용할 수 있다. 즉, 컨텍스트 신호(204)는 사용자(10)의 상태(16)를 나타낼 수 있고, 여기서 상태(16)는 사용자(10)가 일시적 GUI 요소(204)와 상호작용하려고 시도하고 있는 참여 상태, 또는 사용자(10)가 일시적 GUI 요소(204)와 상호작용하고 있지 않거나 의도적으로 참여해제하고 있는 참여해제 상태를 나타낸다. 컨텍스트 신호(204)에 의해 특징지어지는 사용자(10)의 상태(16)에 따라, 보존자(200)는 일시적 GUI 요소(202)를 원래 지정된 것보다 더 오랜 기간 동안 보존하거나, 일시적 GUI 요소(202)의 소멸(즉, 제거)을 앞당기거나, 일시적 GUI 요소(202)의 시간 기반 속성들(예를 들어, 타임아웃 값)을 유지(즉, 일시적 GUI 요소(202)의 임의의 상태 S를 변경하지 않음)할 수 있다.
첫 번째 식료품 예시로 돌아가서, 사용자(10)가 디바이스(110)를 향해 이동하고 있을 때, 보존자(200)는 사용자(10)의 상태(16)를 참여 상태(16, 16e)로서 특징짓는 하나 이상의 컨텍스트 신호(204)를 수신할 수 있다. 예를 들어, 컨텍스트 신호들(204)은 사용자 디바이스(110)에 대한 사용자(10)의 근접성이 사용자(10)를 사용자 디바이스(110)에 더 근접하게 만드는 방식(즉, 사용자(10)와 사용자 디바이스(110) 사이의 거리가 감소함)으로 변경되고 있음을 나타낸다. 컨텍스트 신호들(204)이 사용자(10)의 상태(16)가 변경되고 있음을 나타내기 때문에, 이는 사용자(10)가 사용자 디바이스(110) 상에 디스플레이되는 프롬프트와 상호작용하려고 시도하고 있음을 제안한다. 여기서, 보존자(200)는 일시적 GUI 요소(202)인 프롬프트 "지역 라디오 방송국을 재생하길 원하는가"의 상태 S를 수정한다. 이 예에서, 보존자(200)는 사용자(10)가 프롬프트가 만료되기 전에 그것과 성공적으로 상호작용할 수 있도록 하기 위해, 프롬프트에 대한 타임아웃 지속시간을 연장하거나 일시정지함으로써 프롬프트의 상태 S를 수정한다. 컨텍스트 신호들(204)은 참여 상태(16e)에서 사용자(10)의 상태(16)를 특징지을 수 있는, 사용자에 의해 수행되는 임의의 액션을 나타낼 수 있다. 다른 예로서, 사용자(10)가 리모콘을 집어든 것은 사용자(10)의 상태가 텔레비전 상에 디스플레이된 일시적 GUI 요소(202)와 상호작용하기 위해 참여 상태(16)에 있음을 특징지을 수 있다.
대조적으로, 사용자(10)가 전화 통화 중이고 디바이스(110)에 지역 라디오 방송국을 재생하라고 명령하지 않은 경우, 보존자(200)는 사용자(10)의 상태(16)를 참여해제 상태(16d)로서 특징짓는 하나 이상의 컨텍스트 신호(204)를 수신할 수 있다. 예를 들어, 이 버전의 예에서 설명된 바와 같이, 사용자(10)는 "지역 라디오 방송국을 재생하길 원하는가"라는 프롬프트를 디스플레이하는 디바이스(110)를 응시한 다음, 돌아서서 계속하여 식료품을 가져온다. 이것이 사용자(10)의 액션들일 때, 보존자(200)는 사용자(10)의 주의를 디바이스(110)에 참여하는 것 또는 디바이스를 응시하는 것으로서 특징짓는 컨텍스트 신호들(204)을 수신할 수 있다. 이러한 컨텍스트 신호들(204)의 다음에는, 일시적 GUI 요소(202)에 참여하려는 시도를 나타내는 사용자(10)에 의한 임의의 액션 없이 디바이스(110)와의 참여해제(즉, 디바이스(110)로부터 돌아서는 것)를 특징짓는 컨텍스트 신호들(204)이 뒤따른다. 실제로, 보존자(200)에 의해 수신된 컨텍스트 신호들(204)은 다음으로 사용자(10)가 디바이스(110)에 대한 자신의 근접성을 감소시키고 있음을 나타내며, 이는 참여해제 상태(16d)를 나타낸다. 전체적으로 참여 상태(16e)에 이어 참여해제 상태(16d)를 나타내는 이러한 변화하는 컨텍스트 신호들(204)로, 보존자(200)는 일시적 GUI 요소(202)의 상태 S를 유지하거나(즉, 프롬프트가 만료되도록 함), 일시적 GUI 요소(202)의 상태 S를 앞당기거나(즉, 타임아웃 지속시간 또는 잔여 타임아웃 지속시간을 단축함), 또는 일시적 GUI 요소(202)를 즉시 제거하도록 일시적 GUI(202)의 S를 변경할 수 있다. 이 예에서, 보존자(200)는 참여 상태(16e)(예를 들어, 일시적 GUI 요소(202)를 인식하는 상태(16))로부터 참여해제 상태(16d)로의 변경으로 인해 컨텍스트 신호들(204)을 고의적인 참여해제를 특징짓는 것으로서 해석할 수 있고, 이러한 해석이 이루어지면 일시적 GUI 요소(202)를 즉시 제거할 수 있다.
도 2a 및 도 2b를 참조하면, 보존자(200)는 상태 결정자(210) 및 수정자(220)를 포함한다. 상태 결정자(210)는 하나 이상의 컨텍스트 신호(204)를 수신하고, 디바이스(110)와 관련하여 사용자(10)의 상태(16)를 결정하도록 구성된다. 일부 예들에서, 상태 결정자(210)는 센서 시스템(160)으로부터 센서 데이터(164)(예를 들어, 원시 센서 데이터)를 수신하고, 센서 데이터(164)를 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호들(204)로 변환하거나 프로세싱한다. 예를 들어, 상태 결정자(210)는 센서 데이터(164)를 수신하고, 컨텍스트 신호(204)를 형성하기 위해 센서 데이터(164)에 기초하여 디바이스(110)에 대한 사용자(10)의 물리적 상태(예를 들어, 사용자(10)의 위치 또는 배향)를 특징지을 수 있다. 추가적으로 또는 대안적으로, 상태 결정자(210)는 센서 데이터(164)를 수신하고, 사용자(10)의 비-물리적 상태(16)를 특징지을 수 있다. 예를 들어, 상태 결정자(210)는 사용자(10)의 상태(16)를 특징짓는 음향 데이터(164)를 수신한다. 예를 들자면, 상태 결정자(210)는 사용자(10)가 말하고 있었고, 디바이스(110)가 일시적 GUI 요소(202)를 디스플레이하는 것에 응답하여 자신의 스피치를 일시적으로 멈추거나 느리게 했음을 나타내는 음향 데이터(164)를 수신한다. 즉, 사용자(10)는 다른 사용자와 사이드 스피치 대화를 나누고 있었을 수 있고, 디바이스(110)가 일시적 GUI 요소(202)로서 프롬프트를 디스플레이했음을 인지했을 수 있다. 사용자(10)가 프롬프트를 인지한 것으로 인해, 사용자(10)는 대화에서 자신의 스피치를 잠시 늦췄을 수 있고(즉, 프롬프트를 읽거나 보기 위해 순간적으로 멈췄을 수 있음), 다음으로 프롬프트를 무시하고 대화를 계속했을 수 있다. 이러한 상황에서, 음향 데이터(164)의 운율(prosody)의 변화는 사용자(10)의 상태(16)를 나타내는 컨텍스트 신호(204)일 수 있다. 여기서, 이 예시에서, 사용자(10)가 자신의 스피치의 운율(예를 들어, 리듬)을 변경하는 것에 의해, 상태 결정자(210)는 사용자(10)가 참여 상태(16e)에 있다고 결정할 수 있다. 다음으로, 사용자(10)가 원래의 운율로 다시 변경하면, 상태 결정자(210)는 사용자(10)가 참여해제 상태(16d)에 있다고 결정할 수 있다.
일부 예들에서, 컨텍스트 신호(204)는 사용자(10)의 상태(16)에서의 인지된 변경을 지칭한다. 즉, 상태 결정자(210)는 제1 시간 인스턴스로부터의 센서 데이터(164)를 식별하고, 제1 시간 인스턴스로부터의 센서 데이터(164)를 제2 시간 인스턴스로부터의 센서 데이터(164)와 비교하여, 센서 데이터(164)의 비교가 사용자(10)에 대한 상태 변경(예를 들어, 위치 또는 배향의 변화)을 나타내는지를 결정한다. 사용자(10)에 대한 상태(16)의 인지된 변경으로 인해, 상태 결정자(210)는 상태(16)의 변경이 사용자(10)가 소정의 방식으로 디바이스(110)와 상호작용하려고 시도하고 있음(즉, 일시적 GUI 요소(202)와 상호작용함으로써 디바이스(110)에 참여함)을 나타내는지 또는 디바이스(110)와 상호작용하지 않으려고 시도하고 있음을 나타내는지를 식별할 수 있다. 사용자(10)에 대한 상태(16)의 변경이 사용자(10)가 디바이스(110)와 상호작용하려고 시도하고 있음을 나타낼 때, 사용자(10)는 참여 상태(16a)에 있게 된다. 반면에, 사용자(10)에 대한 상태(16)의 변경이 사용자(10)가 디바이스(110)와 상호작용하지 않으려고 시도하고 있음을 나타낼 때, 사용자(10)는 참여해제 상태(16d)에 있게 된다. 일부 구성들에서, 상태 결정자(210)는 사용자(110)의 상태(16)를 참여 또는 참여해제보다 더 큰 입도로 분류할 수 있다. 예를 들어, 상태 결정자(210)는 사용자 참여의 유형(예를 들어, 접근, 긍정 제스처(gesturing in affirmation), 확인 말하기 등) 또는 사용자 참여해제의 유형(예를 들어, 떠나기, 부정 제스처, 부정적 말하기 등)을 분류하도록 구성된다.
상태 결정자(210)가 사용자(10)의 상태(16)를 식별하고 나면, 상태 결정자(210)는 상태(16)를 수정자(220)에 전달한다. 수정자(220)는 사용자(10)의 상태(16)에 기초하여 디바이스(110) 상에 디스플레이되는 일시적 GUI 요소(202)의 상태 S를 수정하도록 구성된다. 즉, 수정자(220)는 일시적 GUI 요소가 디바이스(110) 상에 디스플레이되고 있는 동안 일시적 GUI 요소(202)의 상태 S가 사용자(10)의 상태(16)에 적응하도록 허용할 수 있다. 도 2a를 참조하면, 수정자(210)는 일시적 GUI 요소(202)의 상태 S를 제1 상태 S(S1)로부터 제2 상태 S(S2)로 변경하거나, 사용자(10)의 상태(16)에 기초하여 일시적 GUI 요소(202)의 상태 S가 변경되어서는 안 된다고 결정할 수 있다(예를 들어, 제1 상태(S1)를 유지함). 수정자(220)는 일시적 GUI 요소(202)의 상태 S를 다른 방식들로 변경하도록 구성될 수 있다. 일부 예들에서, 수정자(220)는 일시적 GUI 요소(202)가 디스플레이될 시간(또는 잔여 시간)을 증가시킴으로써 일시적 GUI 요소(202)의 상태 S를 수정하거나 변경한다. 도 2b는 사용자 상태(16)가 참여 스테이지(16e)일 때 수정자(220)가 타임아웃 값을 7초의 시간 T로부터 15초의 시간 T로 증가시킬 수 있다는 것을 도시한다. 다른 예들에서, 사용자 상태(16)가 참여 상태(16e)인 경우, 수정자(210)는 일시적 GUI 요소(202)의 타임아웃 피처를 일시정지함으로써 일시적 GUI 요소(202)의 상태 S를 수정한다. 즉, 보존자(200)가 사용자(10)가 디바이스(110)에 참여함을 인지하는 동안, 수정자(220)는 일시적 GUI 요소(202)가 무기한의 지속시간 동안(또는 사용자 상태(16)가 참여해제 상태(16d)로 변경될 때까지) 존재할 수 있게 한다.
또한 도 2b에 도시된 바와 같이, 수정자(220)는 사용자 상태(16)가 참여해제 상태(16d)일 때 일시적 GUI 요소(202)의 상태 S를 수정할 수 있다. 예를 들어, 사용자(10)가 참여해제 상태(16d)에 있을 때, 수정자(220)는 일시적 GUI 요소(202)가 타임아웃될 때까지의 잔여 시간을 가속하거나 앞당긴다. 여기서, 도 2b는 이것이 발생할 수 있는 두 가지 상황을 도시한다. 제1 시나리오에서, 사용자 상태(16)가 참여해제 상태(16d)일 때, 수정자(220)는 사용자(10)가 일시적 GUI 요소(220)에의 참여에 관심이 없다는 것에 기초하여 일시적 GUI 요소(220)를 만료시킴으로써 응답한다. 이는 사용자(10)가 디바이스(110)를 응시한 다음 걸어나가는 두 번째 식료품 예시와 매우 유사하게, 일시적 GUI 요소(202)가 디스플레이되고 있는 동안 사용자 상태(16)가 참여 상태(16e)로부터 참여해제 상태(16d)로 변경될 때 발생할 수 있다. 도 2b는 제1 상태(S1)에서의 7초의 타임아웃 시간 T가 제2 상태(S2)에서의 0초의 타임아웃 시간 T로 변경되는 것을 묘사함으로써 이러한 제1 시나리오를 도시한다. 제2 시나리오에서, 사용자 상태(16)가 참여해제 상태(16d)일 때, 수정자(220)는 일시적 GUI 요소(220)가 만료될 때까지 시간 T를 앞당김으로써 응답한다. 예를 들어, 수정자(220)는 타임아웃 시간(T)을 7초로부터 3초로 변경한다.
도 2a와 같은 일부 구성들에서, 보존자(200)는 상태 모니터(230)를 추가로 포함한다. 상태 모니터(230)는 사용자(10)의 상태(16)가 일시적 GUI 요소(202)의 상태 S에 영향을 미치는 횟수를 모니터링 및/또는 조절하도록 구성될 수 있다. 이것이 왜 유리할 수 있는지를 설명하기 위해, 식료품 예시에서 사용자(10)는 식료품을 차에서 가져오는 것을 마치고 식료품을 치우기 시작할 수 있다. 이 시간 동안, 사용자(10)는 주방에서 왔다갔다 움직이고 있을 수 있고, 그에 의해, 디바이스(110)가 일시적 GUI 요소(202)를 디스플레이하는 동안, 상태 결정자(210)는 사용자(10)가 디바이스(110)에 참여 및 참여해제되고 있음을 인지한다. 이러한 참여 및 참여해제로 인해, 수정자(220)는 일시적 GUI 요소(202)의 상태 S를 변경하고 있을 수 있다. 예를 들어, 수정자(220)는 사용자의 액션들을 반영하는 소정의 반복적인 방식으로, 타임아웃 지속시간을 증가시킨 다음 타임아웃 지속시간을 감소시킬 수 있다. 불행하게도, 이것이 여러 번 발생하는 경우, 이는 일시적 GUI 요소(202)가 동적으로 변경되어서는 안 되며, 오히려 사용자(10)가 이미 일시적 GUI 요소(202)를 선택하거나 상호작용했기 때문에 만료되거나 만료되도록 방치되어야 함을 나타낼 가능성이 더 높다. 진동하는 상태 변경들 또는 지나치게 많은 상태 변경들이 발생하는 것을 방지하기 위해, 모니터(230)는 상태 변경 임계값(232)으로 구성될 수 있다. 일부 예들에서, 일시적 GUI 요소(202)에 대한 상태 변경들의 수가 상태 변경 임계값(232)을 만족할 때, 모니터(230)는 일시적 GUI 요소(202)와 관련하여 수정자(220)를 비활성화하거나, 그렇지 않으면 일시적 GUI 요소(202)가 만료(예를 들어, 타임아웃)되도록 허용/강제한다. 모니터(230)가 동작 중일 때, 일시적 GUI 요소(202)에 대한 상태 변경들의 수가 상태 변경 임계값(232)을 만족하지 않는 경우, 모니터(230)는 수정자(220)가 일시적 GUI 요소(202)를 수정하는 것을 막지 않는다(예를 들어, 수정자(220)는 계속하여 동작한다).
일부 구성들에서, 모니터(230)는 상태 결정자(210)에 연관된 하나 이상의 임계값을 조절할 수 있다. 예를 들어, 상태 결정자(210)는 사용자(10)가 디바이스(110)에 대해 원거리장 위치로부터 근거리장 위치로 이동하는 것에 기초하여 사용자(10)에 대한 상태 변경을 식별할 수 있다. 여기서, 원거리장 및 근거리장은 근거리장과 원거리장 사이의 근접 경계를 확립하는 임계값(예를 들어, 도 3에서 임계값(212)으로 도시됨)에 의해 윤곽이 정해질 수 있다. 즉, 사용자(10)가 디바이스(110)를 향해 이동하면서 임계값을 넘는 경우에는 사용자가 근거리장에 들어간 것(예를 들어, 원거리장을 떠난 것)인 반면, 사용자(10)가 디바이스(110)로부터 멀리 이동하면서 임계값을 넘는 경우에는 사용자가 원거리장에 들어간 것(예를 들어, 근거리장을 떠난 것)이다. 그러나, 사용자(10)가 이 경계에서 왔다갔다 이동하고 있을 수 있는 상황들이 있다. 예를 들자면, 사용자(10)는 식료품을 주방 아일랜드로부터 냉장고로 치울 수 있고, 경계는 주방 아일랜드와 냉장고 사이에 위치될 수 있다. 사용자(10)는 지속적으로 이 경계를 넘어 왔다갔다 이동하고 있을 가능성이 높으므로, 모니터(230)는 이러한 활동을 임계값에서 인식할 수 있고, 일종의 디바운서(debouncer)로서 기능할 수 있다. 즉, 사용자(10)는 단지 몇 피트만 이동하고 있을 수 있고, 상태 결정자(210)가 이러한 이동을 참여 상태(16e)와 참여해제 상태(16d) 사이의 변경으로서 식별하도록 허용하는 대신에, 모니터(230)는 상태 결정자(210)의 상태 변경 감도를 안정화하기 위해 임계값을 조절한다. 즉, 사용자(10)는 상태(16)의 변경을 트리거하기 위해 단순히 아일랜드보다 디바이스(110)를 향해 더 많이 또는 디바이스로부터 더 멀리 이동해야 할 것이다.
도 3은 제1 시간 인스턴스 T0, 및 제1 시간 인스턴스 T0 후에 발생하는 제2 시간 인스턴스 T1에서 사용자(10)의 상태(16)(예를 들어, 사용자의 물리적 상태(16))를 특징지을 수 있는 일부 유형들의 컨텍스트 신호들(204)을 예시하는 시나리오이다. 이러한 시나리오에서, 사용자(10)는 자신의 이동 전화기에 대고 "방금 지역 라디오 방송국 94.5에서 이 멋진 노래가 나오는 걸 들었어"라고 말하면서 디바이스(110)를 들고 방으로 걸어들어간다. 사용자(10)에 의한 이러한 발화(20)에 응답하여, 디바이스(110)는 사용자(10)가 지역 라디오 방송국 94.5를 재생하기 원하는지를 문의하는 일시적 GUI 요소(202)로서 프롬프트를 생성한다. 여기서, 보존자(200)는 사용자 디바이스(110)에 대한 사용자(10)의 위치를 묘사하는 제1 시간 인스턴스 T0에서의 이미지 데이터에 대응하는 센서 데이터(164)를 수신한다. 이미지 데이터를 이용하여, 상태 결정자(210)는 디바이스(110)에 관련한 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)를 형성하기 위해 수신된 이미지 데이터에 기초하여 제1 시간 인스턴스 T0에서의 사용자(10)와 디바이스(110) 사이의 거리 D(D1)를 추정한다. 여기서, 디바이스(110)에 대한 사용자의 근접성을 나타내는 컨텍스트 신호(204)는 사용자 근접성 신호로 간주된다. 제1 시간 인스턴스 T0에서, 상태 결정자(210)는 추정된 거리 D(D1)가 사용자(10)가 근거리-장거리 경계(212) 내에서 디바이스(110)에 근접하여 근거리장 내에 있다는 것을 의미함을 식별한다. 예를 들어, 상태 결정자(210)는 추정된 거리 D1이 디바이스(110)로부터 경계(212)까지의 거리보다 작은 디바이스(110)까지의 거리 D를 갖는다고 결정한다. 디바이스(110)에 대한 사용자의 근접성에 기초하여, 상태 결정자(210)는 사용자(10)가 제1 시간 인스턴스 T0에서 참여 상태(16e)에 있다고 결정한다. 사용자 근접성 신호는 디바이스(10)에 대한 사용자(10)의 근접성이 디바이스(10)에 더 가까워지도록 변경되었음을 나타내기 때문에(예를 들어, 사용자(10)가 도 3의 디바이스(10)를 향해 걸어가서 제1 추정된 거리 D1에 있게 됨), 다음으로, 수정자(220)는 예를 들어 일시적 GUI 요소(202)의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지함으로써 일시적 GUI 요소(202)의 상태 S를 수정할 수 있다.
특히, 일시적 GUI 요소(202) 프롬프트가 디스플레이되는 동안, 디바이스(110)는 인지된 커맨드의 이행을 개시하여, 방송국 94.5(또는 방송국 94.5를 스트리밍할 수 있는 음악 스트리밍 서비스)와의 연결을 개시하고 그로부터 오디오를 스트리밍함으로써 지역 라디오 방송국 94.5를 재생할 수 있다. 그러나, 디바이스(110)는 사용자(10)가 오디오를 스트리밍하기 위한 일시적 GUI 요소(202)의 선택을 나타내는 사용자 입력 표시를 긍정적으로 제공할 때까지 스트리밍 오디오를 청각적으로 출력하기 시작하지 않을 수 있다. 따라서, 이 예에서, 사용자(10)는 방송국 94.5로부터 오디오를 스트리밍하기 위해 디바이스(110)에 스피치를 지시하지 않았기 때문에, 디바이스(110)는 일시적 GUI 요소(202)의 타임아웃(또는 사용자가 "아니오"를 선택하는 입력 표시를 긍정적으로 제공하는 것)에 응답하여 스트리밍 오디오를 청각적으로 출력하지 않고서 스트리밍 연결을 종료할 것이다.
추가적으로, 본 명세서의 예들은 사용자 디바이스(110)가 일시적 GUI 요소들(202)로서 프롬프트들을 생성하는 것에 관한 것이지만, 사용자 디바이스(110)는 마찬가지로 일시적인 타임아웃 기간 내에 사용자가 인식된 음성 커맨드의 수행을 확인하거나 거부하도록 허용하는 시각적(예를 들어, 라이트 플래시) 및/또는 청각적(예를 들어, 비프) 프롬프트를 눈에 거슬리지 않는 방식으로 출력할 수 있다. 예를 들어, 사용자(10)는 단순히 "예" 또는 "아니요"라고 말할 수 있다. 이 시나리오에서, 사용자 디바이스(110)는 오디오에서 이진 용어들(예를 들어, "예" 및 "아니요")를 청취하는 웜 워드 모델을 활성화할 수 있다.
상태 결정자(210)가 컨텍스트 신호(202)에 대한 사용자 근접성 신호를 생성하도록 허용하는 것에 더하여, 이 시나리오의 센서 데이터(164)는 또한 상태 결정자(210)가 주의 검출 신호라고 지칭되는 컨텍스트 신호(204)를 생성하도록 허용한다. 주의 검출 신호는 사용자(10)가 디바이스(110)에 주의를 기울이고 있는지를 특징짓는 신호를 지칭한다. 주의 검출 신호는 사용자(10)가 참여 상태(16e)에 있는지 참여해제 상태(16d)에 있는지를 나타낼 수 있다. 즉, (예를 들어, 센서 데이터(164)에 기초한) 주의 검출 신호는 사용자(10)가 자신의 초점을 디바이스(110) 쪽으로 또는 디바이스(110)로부터 멀리 변경했음을 나타낼 수 있다. 디바이스(110)가 일시적 GUI 요소(202)를 디스플레이하는 동안 사용자(10)의 초점이 디바이스(110) 쪽으로 변경될 때, 상태 결정자(210)는 사용자(10)가 참여 상태(16e)에 있다고 결정할 수 있다. 사용자(10)가 디바이스(110)에 주의를 기울이고 있는 것의 일부 예들은 디바이스(110)를 향한 사용자(10)의 응시, 디바이스(110)를 향한 사용자(10)의 제스처, 또는 디바이스(110)를 향한(즉, 디바이스(110)를 바라보는) 사용자(10)의 자세/배향을 포함한다. 도 3을 참조하면, 이미지 데이터는 디바이스(110)를 향한 사용자(10)의 응시(예를 들어, 사용자(10)의 얼굴로부터 점선 시선으로서 도시됨)을 캡처한다. 사용자(10)가 디바이스(110)에 자신의 주의를 집중하고 있음을 나타내는 이러한 주의 검출 신호(204)를 사용하여, 상태 결정자(210)는 주의 검출 신호(204)가 사용자(10)가 제1 시간 인스턴스 T0에서 참여 상태(16e)에 있음을 특징짓는다고 결정한다. 주의 검출 신호만이 사용자(10)의 주의가 디바이스(10)에 집중되어 있음을 나타내기 때문에, 수정자(220)는 다음으로 예를 들어 일시적 GUI 요소(202)의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지함으로써 일시적 GUI 요소(202)의 상태 S를 수정할 수 있다. 이 시나리오와 같은 일부 예들에서, 다수의 컨텍스트 신호(204)가 이용가능할 때, 보존자(200)는 컨텍스트 신호들(204) 중 임의의 것 또는 전부를 활용하여, 사용자(10)의 상태(16)가 일시적 GUI 요소(202)의 상태 S에 영향을 미치는지(예를 들어, 수정하는지)를 결정할 수 있다.
도 3은 또한 제2 시간 인스턴스 T1에서 사용자(10)가 디바이스(110)로부터 제1 거리 D1에 있는 제1 위치로부터 디바이스(110)로부터 제2 거리 D2에 있는 제2 위치로 이동하는 것을 도시한다. 제2 시간 인스턴스 T1에서, 컨텍스트 신호들(204)은 사용자(10)가 참여해제 상태(16d)에 있음을 나타내고, 여기서 사용자(10)는 일시적 GUI 요소(202)와 상호작용할 의도가 없다. 예를 들어, 제2 시간 인스턴스 T1에서, 사용자 근접성 신호는 디바이스(110)에 대한 사용자(10)가 디바이스(110)로부터 더 멀어지고 경계(212)를 넘어 원거리장에 있도록 변경되었음을 나타낸다. 또한, 제2 시간 인스턴스 T1에서, 주의 검출 신호는 사용자(10)가 디바이스(110)로부터 주의를 돌렸다는 것을 나타낸다. 컨텍스트 신호들(204) 둘 다가 사용자(10)가 참여해제 상태(16d)에 있음을 나타내기 때문에, 수정자(220)는 (예를 들어, 일시적 GUI 요소(202)를 앞당기거나 만료시킴으로써) 일시적 GUI 요소(202)의 상태 S를 수정하거나 일시적 GUI 요소(202)의 상태 S를 유지하여 그에 따라 만료되도록 할 수 있다.
도시되지는 않았지만, 제2 시간 인스턴스 T1에서 사용자(10)가 원거리장에 위치되는 대신, 사용자(10)는 방을 완전히 떠났을 수 있다. 이러한 상황에서, 상태 결정자(210)는 프레즌스 검출 신호라고 지칭되는 컨텍스트 신호(204)를 생성할 수 있다. 프레즌스 검출 신호는 하나 이상의 센서(162)에 대한 특정 시야에 사용자(10)가 존재하는지 여부를 특징짓는 신호이다. 즉, 프레즌스 검출 신호는 이미지 데이터 또는 소정의 다른 형태의 센서 데이터(164)가 사용자(10)가 디바이스(110)의 센서(162)의 시야 내에 존재함을 나타내는지에 대한 이진 결정으로서 기능할 수 있다. 프레즌스 검출 신호의 변경은 사용자(10)가 사용자(10)를 참여 상태(16e) 또는 참여해제 상태(16d)에 있는 것으로 특징짓는 액션을 수행하고 있는지를 나타낼 수 있으므로, 프레즌스 검출 신호는 사용자의 상태를 나타낼 수 있다. 예를 들어, 사용자(10)가 디바이스(110)의(예를 들어, 디바이스(110)에 연관된 센서(162)의) 시야 내에 존재하지 않다가 디바이스(110)의 시야 내에 존재하게 되고, 이러한 변경이 일시적 GUI 요소(202)가 사용자 디바이스(110)의 디스플레이(118) 상에 디스플레이되고 있는 동안 발생하는 경우, 상태 결정자(210)는 사용자의 프레즌스의 변경이 사용자가 일시적 GUI 요소(202)와 상호작용하려고 시도하고 있음을 나타내는 것으로 해석할 수 있다. 즉, 사용자(10)는 일시적 GUI 요소(202)에 참여하도록 존재하게 되었고, 그에 의해 사용자(10)의 상태(16)는 참여 상태가 된다. 반대 상황에서, 사용자(10)가 초기에 디바이스(110)의(예를 들어, 디바이스(110)에 연관된 센서(162)의) 시야 내에 존재하다가 디바이스(110)의 시야 내에 더 이상 존재하지 않으며, 이러한 변경이 일시적 GUI 요소(202)가 사용자 디바이스(110)의 디스플레이(118) 상에 디스플레이되고 있는 동안 발생하는 경우, 상태 결정자(210)는 사용자의 프레즌스의 변경이 사용자가 일시적 GUI 요소(202)와의 상호작용에 관심이 없으며(예를 들어, 능동적으로 참여해제), 그에 의해 사용자(10)의 상태(16)가 참여해제 상태(16d)임을 나타내는 것으로 해석할 수 있다. 프레즌스 검출 신호가 센서(162)의 시야 내의 사용자(10)의 프레즌스가 존재하지 않음으로부터 존재함으로 변경되었음을 나타낼 때, 수정자(220)는 예를 들어 일시적 GUI 요소(202)의 타임아웃 지속시간을 증가시키거나 타임아웃 지속시간을 일시정지함으로써, 일시적 GUI 요소(202)의 상태 S를 수정할 수 있다. 대조적으로, 프레즌스 검출 신호가 센서(162)의 시야 내의 사용자(10)의 프레즌스가 존재함으로부터 존재하지 않음으로 변경되었음을 나타낼 때, 수정자(220)는 예를 들어 타임아웃 지속시간을 감소시키거나, 일시적 GUI 요소(202)를 즉시 만료시키거나, 일시적 GUI 요소(202)의 타임아웃 지속시간을 유지하여 그에 따라 만료되도록 함으로써 일시적 GUI 요소(202)의 상태 S를 수정할 수 있다.
도 4는 그래픽 사용자 인터페이스 요소(202)의 상태를 변경하는 방법(400)에 대한 동작들의 예시적인 배열의 흐름도이다. 방법(400)은 일시적 GUI 요소(202)가 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여 동작들(402-406)을 수행한다. 동작(402)에서, 방법(400)은 사용자 디바이스(110)에서 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)를 수신한다. 동작(404)에서, 방법(400)은 사용자 디바이스(110)에 의해, 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)가 사용자가 일시적 GUI 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정한다. 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)가 사용자가 일시적 GUI 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정한 것에 응답하여, 동작(406)에서, 방법(400)은 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이된 일시적 GUI 요소(202)의 개별 상태 S를 수정한다.
도 5는 본 문서에 설명된 시스템들(예를 들어, 시스템들(150, 160, 200)) 및 방법들(예를 들어, 방법(400))을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 디바이스(500)의 개략도이다. 컴퓨팅 디바이스(500)는 랩톱들, 데스크탑들, 워크스테이션들, 휴대 정보 단말기들(personal digital assistants), 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 여기에 보여진 컴포넌트들, 그들의 연결들 및 관계들, 및 그들의 기능들은 단지 예시적인 것으로 의도되며, 본 문서에 설명 및/또는 청구된 예들의 구현들을 제한하도록 의도되지 않는다.
컴퓨팅 디바이스(500)는 프로세서(510)(예를 들어, 데이터 프로세싱 하드웨어(112, 144)), 메모리(520)(예를 들어, 메모리 하드웨어(114, 146)), 저장 디바이스(530), 메모리(520) 및 고속 확장 포트들(550)에 연결되는 고속 인터페이스/컨트롤러(540), 및 저속 버스(570) 및 저장 디바이스(530)에 연결되는 저속 인터페이스/컨트롤러(560)를 포함한다. 컴포넌트들(510, 520, 530, 540, 550, 및 560) 각각은 다양한 버스들을 사용하여 상호연결되고, 공통 마더보드 상에 또는 적절한 다른 방식들로 실장될 수 있다. 프로세서(510)는 고속 인터페이스(540)에 결합된 디스플레이(580)와 같은 외부 입력/출력 디바이스 상에 그래픽 사용자 인터페이스(GUI)에 대한 그래픽 정보를 디스플레이하기 위해 메모리(520) 내에 또는 저장 디바이스(530) 상에 저장된 명령어들을 포함하여, 컴퓨팅 디바이스(500) 내에서 실행하기 위한 명령어들을 프로세싱할 수 있다. 다른 구현들에서, 다수의 메모리 및 메모리 유형과 함께, 다수의 프로세서 및/또는 다수의 버스가 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(500)는 (예를 들어, 서버 뱅크, 블레이드 서버 그룹, 또는 멀티프로세서 시스템으로서) 필요한 동작들의 부분들을 제공하는 각각의 디바이스와 연결될 수 있다.
메모리(520)는 정보를 컴퓨팅 디바이스(500) 내에 비-일시적으로 저장한다. 메모리(520)는 컴퓨터 판독가능 매체, 휘발성 메모리 유닛(들), 또는 비휘발성 메모리 유닛(들)일 수 있다. 비-일시적 메모리(520)는 컴퓨팅 디바이스(500)에 의한 사용을 위해 일시적 또는 영구적 기준으로 프로그램들(예를 들어, 명령어들의 시퀀스들) 또는 데이터(예를 들어, 프로그램 상태 정보)를 저장하기 위해 사용되는 물리적 디바이스들일 수 있다. 비휘발성 메모리의 예들은 플래시 메모리 및 판독 전용 메모리(ROM)/프로그래밍가능 판독 전용 메모리(PROM)/소거가능 프로그래밍가능 판독 전용 메모리(EPROM)/전자적으로 소거가능 프로그래밍가능 판독 전용 메모리(EEPROM)(예를 들어, 전형적으로 부팅 프로그램들과 같은 펌웨어를 위해 사용됨)를 포함하지만 이에 제한되지는 않는다. 휘발성 메모리의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 상변화 메모리(PCM)는 물론 디스크들 또는 테이프들을 포함하지만 이에 제한되지는 않는다.
저장 디바이스(530)는 컴퓨팅 디바이스(500)에 대용량 저장 디바이스를 제공할 수 있다. 일부 구현들에서, 저장 디바이스(530)는 컴퓨터 판독가능 매체이다. 다양한 다른 구현들에서, 저장 디바이스(530)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 추가적인 구현들에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형으로(tangibly) 구현된다. 컴퓨터 프로그램 제품은 실행될 때 위에 설명된 것들과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(520), 저장 디바이스(530), 또는 프로세서(510) 상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 컨트롤러(540)는 컴퓨팅 디바이스(500)에 대한 대역폭 집약적 동작들을 관리하는 반면, 저속 컨트롤러(560)는 더 낮은 대역폭 집약적 동작들을 관리한다. 이러한 듀티 할당은 예시일 뿐이다. 일부 구현들에서, 고속 컨트롤러(540)는 메모리(520), 디스플레이(580)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(550)에 결합된다. 일부 구현들에서, 저속 컨트롤러(560)는 저장 디바이스(530) 및 저속 확장 포트(590)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(590)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스에, 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 이는 표준 서버(500a)로서 또는 이러한 서버들(500a)의 그룹에서 여러 번, 랩탑 컴퓨터(500b)로서, 또는 랙 서버 시스템(500c)의 일부로서 구현될 수 있다.
본 명세서에 설명된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 및/또는 광학 회로부, 집적 회로부, 특별히 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그들에 데이터 및 명령어들을 전송하기 위해 결합된 특수 또는 범용일 수 있는 적어도 하나의 프로그래밍가능한 프로세서를 포함하는 프로그래밍가능한 시스템에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램에서의 구현을 포함할 수 있다.
이러한 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드라고도 알려짐)은 프로그래밍가능 프로세서에 대한 기계 명령어들을 포함하고, 고급 절차적 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어로 구현될 수 있다. 본 명세서에 사용될 때, 용어 "기계 판독가능 매체" 및 "컴퓨터 판독가능 매체"는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 비-일시적 컴퓨터 판독가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크들, 광학 디스크들, 메모리, 프로그래밍가능 로직 디바이스((PLD)들)를 지칭한다. "기계 판독가능 신호"라는 용어는 기계 명령어들 및/또는 데이터를 프로그래밍가능 프로세서에 제공하기 위해 사용되는 임의의 신호를 지칭한다.
본 명세서에 설명된 프로세스들 및 논리 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 특수 목적 논리 회로부, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있다. 컴퓨터 프로그램의 실행에 적합한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행하기 위한 프로세서, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크들 또는 광학 디스크들을 포함하거나, 그로부터 데이터를 수신하거나 그에 데이터를 전송하거나 둘 다를 하도록 동작가능하게 결합될 것이다. 그러나, 컴퓨터가 반드시 그러한 디바이스들을 가져야 하는 것은 아니다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체는 예를 들어 반도체 메모리 디바이스들, 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스; 자기 디스크들, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로부에 의해 보완되거나 그에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 개시내용의 하나 이상의 양태는 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어 CRT(cathode ray tube), LCD(liquid crystal display) 모니터 또는 터치 스크린, 및 임의적으로 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호작용을 제공하기 위해 또한 사용될 수 있는데; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있으며; 사용자로부터의 입력은 음향, 스피치 또는 촉각 입력을 포함한 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 송신하고 그로부터 문서들을 수신함으로써, 예를 들어 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지들을 송신함으로써, 사용자와 상호작용할 수 있다.
다양한 구현들이 설명되었다. 그럼에도 불구하고, 본 개시내용의 사상 및 범위를 벗어나지 않고서 다양한 수정들이 이루어질 수 있음이 이해될 것이다. 따라서, 다른 구현들은 이하의 청구항들의 범위 내에 있다.
Claims (30)
- 데이터 프로세싱 하드웨어(510)에 의해 실행될 때 상기 데이터 프로세싱 하드웨어(510)로 하여금 동작들을 수행하게 하는 컴퓨터로 구현되는 방법(400)으로서, 상기 동작들은
일시적 사용자 인터페이스 요소(202)가 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여:
상기 사용자 디바이스(110)에서 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)를 수신하는 동작;
상기 사용자 디바이스(110)에 의해, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가, 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작; 및
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가, 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작
을 포함하는, 방법(400). - 제1항에 있어서, 상기 사용자(10)의 상태(16)는 상기 사용자(10)가 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)에 참여하려고 시도하고 있거나 그에 참여하고 있음을 나타내는 참여 상태(16e)를 포함하는, 방법(400).
- 제2항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키는 동작을 포함하는, 방법(400).
- 제2항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 방법(400).
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 사용자(10)의 상태(16)는 상기 사용자(10)가 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)에 참여해제되어 있음을 나타내는 참여해제 상태(16d)를 포함하는, 방법(400).
- 제5항에 있어서, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 참여해제 상태(16d)를 포함한다고 결정하는 것에 응답하여, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)에 대한 타임아웃 지속시간의 만료 전에 상기 일시적 사용자 인터페이스 요소(202)를 제거하는 동작을 포함하는, 방법(400).
- 제5항에 있어서, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 참여해제 상태(16d)를 포함한다고 결정하는 것에 응답하여, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 감소시키는 동작을 포함하는, 방법(400).
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성을 나타내는 사용자 근접성 신호를 포함하는, 방법(400).
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 연관된 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스를 나타내는 프레즌스 검출 신호를 포함하는, 방법(400).
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 주의를 나타내는 주의 검출 신호를 포함하는, 방법(400).
- 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 연관된 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스를 나타내는 프레즌스 검출 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 프레즌스 검출 신호가 상기 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스가 존재하지 않음으로부터 존재함으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이된 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 방법(400). - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성을 나타내는 사용자 근접성 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 사용자 근접성 신호가 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성이 상기 사용자 디바이스(110)에 더 가까워지도록 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 방법(400). - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 주의를 나타내는 주의 검출 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 주의 검출 신호가 상기 사용자(10)의 주의가 상기 사용자 디바이스(110)에 집중하는 것으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 방법(400). - 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 동작들은, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 그리고 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하기 전에, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태가 일정 기간 내에 임계 횟수만큼 이전에 수정되지 못했다고 결정하는 동작을 더 포함하는, 방법(400).
- 제1항 내지 제14항 중 어느 한 항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)는 상기 사용자 디바이스(110)에 의해 캡처된 스트리밍 오디오에서 검출된 질의(22)에 의해 지정된 액션을 나타내는, 방법(400).
- 시스템(100)으로서,
데이터 프로세싱 하드웨어(510); 및
상기 데이터 프로세싱 하드웨어(510)와 통신하는 메모리 하드웨어(520)
를 포함하고, 상기 메모리 하드웨어(520)는 상기 데이터 프로세싱 하드웨어(510) 상에서 실행될 때 상기 데이터 프로세싱 하드웨어(510)로 하여금 동작들을 수행하게 하는 명령어들을 저장하고, 상기 동작들은
일시적 사용자 인터페이스 요소(202)가 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 것을 검출한 것에 응답하여:
상기 사용자 디바이스(110)에서 사용자(10)의 상태(16)를 특징짓는 컨텍스트 신호(204)를 수신하는 동작;
상기 사용자 디바이스(110)에 의해, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가, 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작; 및
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 일시적 사용자 인터페이스 요소(202)와의 사용자 상호작용을 나타낸다고 결정하는 것에 응답하여, 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작
을 포함하는, 시스템(100). - 제16항에 있어서, 상기 사용자(10)의 상태(16)는 상기 사용자(10)가 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)에 참여하려고 시도하고 있거나 그에 참여하고 있음을 나타내는 참여 상태(16e)를 포함하는, 시스템(100).
- 제17항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키는 동작을 포함하는, 시스템(100).
- 제17항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 시스템(100).
- 제16항 내지 제19항 중 어느 한 항에 있어서, 상기 사용자(10)의 상태(16)는 상기 사용자(10)가 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)에 참여해제되어 있음을 나타내는 참여해제 상태(16d)를 포함하는, 시스템(100).
- 제20항에 있어서, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 참여해제 상태(16d)를 포함한다고 결정하는 것에 응답하여, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)에 대한 타임아웃 지속시간의 만료 전에 상기 일시적 사용자 인터페이스 요소(202)를 제거하는 동작을 포함하는, 시스템(100).
- 제20항에 있어서, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 참여해제 상태(16d)를 포함한다고 결정하는 것에 응답하여, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 감소시키는 동작을 포함하는, 시스템(100).
- 제16항 내지 제22항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성을 나타내는 사용자 근접성 신호를 포함하는, 시스템(100).
- 제16항 내지 제22항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 연관된 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스를 나타내는 프레즌스 검출 신호를 포함하는, 시스템(100).
- 제16항 내지 제22항 중 어느 한 항에 있어서, 상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 주의를 나타내는 주의 검출 신호를 포함하는, 시스템(100).
- 제16항 내지 제22항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 연관된 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스를 나타내는 프레즌스 검출 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 프레즌스 검출 신호가 상기 센서(162)의 시야 내의 상기 사용자(10)의 프레즌스가 존재하지 않음으로부터 존재함으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이된 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 시스템(100). - 제16항 내지 제22항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성을 나타내는 사용자 근접성 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 사용자 근접성 신호가 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 근접성이 상기 사용자 디바이스(110)에 더 가까워지도록 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 시스템(100). - 제16항 내지 제22항 중 어느 한 항에 있어서,
상기 컨텍스트 신호(204)는 상기 사용자 디바이스(110)에 대한 상기 사용자(10)의 주의를 나타내는 주의 검출 신호를 포함하고;
상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 동작은, 상기 주의 검출 신호가 상기 사용자(10)의 주의가 상기 사용자 디바이스(110)에 집중하는 것으로 변경되었음을 나타낸다고 결정하는 동작을 포함하고;
상기 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하는 동작은 상기 일시적 사용자 인터페이스 요소(202)의 타임아웃 지속시간을 증가시키거나 상기 타임아웃 지속시간을 일시정지하는 동작을 포함하는, 시스템(100). - 제16항 내지 제28항 중 어느 한 항에 있어서, 상기 동작들은, 상기 사용자(10)의 상태(16)를 특징짓는 상기 컨텍스트 신호(204)가 상기 사용자(10)가 상기 일시적 사용자 인터페이스 요소(202)와 상호작용하려고 의도함을 나타낸다고 결정하는 것에 응답하여, 그리고 상기 사용자 디바이스(110)의 사용자 인터페이스 상에 디스플레이되는 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태를 수정하기 전에, 상기 일시적 사용자 인터페이스 요소(202)의 개별 상태가 일정 기간 내에 임계 횟수만큼 이전에 수정되지 못했다고 결정하는 동작을 더 포함하는, 시스템(100).
- 제16항 내지 제29항 중 어느 한 항에 있어서, 상기 일시적 사용자 인터페이스 요소(202)는 상기 사용자 디바이스(110)에 의해 캡처된 스트리밍 오디오에서 검출된 질의에 의해 지정된 액션을 나타내는, 시스템(100).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/444,656 | 2021-08-06 | ||
US17/444,656 US11442608B1 (en) | 2021-08-06 | 2021-08-06 | Preserving engagement state based on contextual signals |
PCT/US2022/073820 WO2023015103A1 (en) | 2021-08-06 | 2022-07-18 | Preserving engagement state based on contextual signals |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240036701A true KR20240036701A (ko) | 2024-03-20 |
Family
ID=83192184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247007137A KR20240036701A (ko) | 2021-08-06 | 2022-07-18 | 컨텍스트 신호들에 기초하는 참여 상태 보존 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11442608B1 (ko) |
EP (1) | EP4363962A1 (ko) |
JP (1) | JP2024530481A (ko) |
KR (1) | KR20240036701A (ko) |
CN (1) | CN117916708A (ko) |
WO (1) | WO2023015103A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2614565B (en) * | 2022-01-07 | 2024-11-06 | Sony Interactive Entertainment Europe Ltd | Method for obtaining a position of a peripheral device |
US12056457B2 (en) * | 2022-03-22 | 2024-08-06 | Charles University, Faculty Of Mathematics And Physics | Computer-implemented method of real time speech translation and a computer system for carrying out the method |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601301B1 (en) * | 2012-05-18 | 2013-12-03 | Google Inc. | System and method for adjusting an idle time of a hardware device based on a pattern of user activity that indicates a period of time that the user is not in a predetermined area |
US9052896B2 (en) | 2012-07-20 | 2015-06-09 | Facebook, Inc. | Adjusting mobile device state based on user intentions and/or identity |
US9612740B2 (en) * | 2013-05-06 | 2017-04-04 | Barnes & Noble College Booksellers, Inc. | Swipe-based delete confirmation for touch sensitive devices |
US9607612B2 (en) * | 2013-05-20 | 2017-03-28 | Intel Corporation | Natural human-computer interaction for virtual personal assistant systems |
US10802575B2 (en) * | 2015-06-11 | 2020-10-13 | Karma Automotive Llc | Smart external display for vehicles |
US20170289766A1 (en) * | 2016-03-29 | 2017-10-05 | Microsoft Technology Licensing, Llc | Digital Assistant Experience based on Presence Detection |
US10770035B2 (en) | 2018-08-22 | 2020-09-08 | Google Llc | Smartphone-based radar system for facilitating awareness of user presence and orientation |
US10788880B2 (en) | 2018-10-22 | 2020-09-29 | Google Llc | Smartphone-based radar system for determining user intention in a lower-power mode |
-
2021
- 2021-08-06 US US17/444,656 patent/US11442608B1/en active Active
-
2022
- 2022-07-18 KR KR1020247007137A patent/KR20240036701A/ko unknown
- 2022-07-18 JP JP2024506978A patent/JP2024530481A/ja active Pending
- 2022-07-18 CN CN202280060342.5A patent/CN117916708A/zh active Pending
- 2022-07-18 EP EP22764967.0A patent/EP4363962A1/en active Pending
- 2022-07-18 WO PCT/US2022/073820 patent/WO2023015103A1/en active Application Filing
- 2022-08-29 US US17/822,900 patent/US11726646B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN117916708A (zh) | 2024-04-19 |
US11442608B1 (en) | 2022-09-13 |
US20230042878A1 (en) | 2023-02-09 |
US11726646B2 (en) | 2023-08-15 |
WO2023015103A1 (en) | 2023-02-09 |
JP2024530481A (ja) | 2024-08-21 |
EP4363962A1 (en) | 2024-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7348288B2 (ja) | 音声対話の方法、装置、及びシステム | |
TWI585746B (zh) | 用於操作一虛擬助理之方法、非暫時性電腦可讀儲存媒體及系統 | |
KR102677096B1 (ko) | 감지된 입 움직임 및/또는 시선을 기반으로 자동화된 어시스턴트 적응 | |
JP7341171B2 (ja) | 自動化アシスタントを呼び出すための動的および/またはコンテキスト固有のホットワード | |
JP2021533398A (ja) | 自動アシスタントを起動させるための動的および/またはコンテキスト固有のホットワード | |
US11726646B2 (en) | Preserving engagement state based on contextual signals | |
EP4091161B1 (en) | Synthesized speech audio data generated on behalf of human participant in conversation | |
US20240347060A1 (en) | Contextual suppression of assistant command(s) | |
CN113412467B (zh) | 指定用于与自动助理交互的接口模态的操作模式 | |
KR20230010845A (ko) | 디지털 어시스턴트를 이용한 오디오 정보 제공 | |
US20240331683A1 (en) | Hotwording by Degree | |
US20230061929A1 (en) | Dynamically configuring a warm word button with assistant commands | |
JP2024530438A (ja) | 支援機能のコンテキストトリガ | |
US20230186909A1 (en) | Selecting between multiple automated assistants based on invocation properties | |
US20240161741A1 (en) | Short-Lived Repeat Voice Commands | |
US20230230583A1 (en) | Mitigating false positives and/or false negatives in hot word free adaptation of automated assistant | |
WO2023113877A1 (en) | Selecting between multiple automated assistants based on invocation properties |