KR20160003138A - 핸즈 프리 상호작용을 위한 사용자 인터페이스 자동 적응 - Google Patents
핸즈 프리 상호작용을 위한 사용자 인터페이스 자동 적응 Download PDFInfo
- Publication number
- KR20160003138A KR20160003138A KR1020157033745A KR20157033745A KR20160003138A KR 20160003138 A KR20160003138 A KR 20160003138A KR 1020157033745 A KR1020157033745 A KR 1020157033745A KR 20157033745 A KR20157033745 A KR 20157033745A KR 20160003138 A KR20160003138 A KR 20160003138A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- electronic device
- assistant
- voice
- input
- Prior art date
Links
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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/60—Substation equipment, e.g. for use by subscribers including speech amplifiers
- H04M1/6033—Substation equipment, e.g. for use by subscribers including speech amplifiers for providing handsfree use or a loudspeaker mode in telephone sets
- H04M1/6041—Portable telephones adapted for handsfree use
- H04M1/6075—Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle
- H04M1/6083—Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle by interfacing with the vehicle audio system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/60—Substation equipment, e.g. for use by subscribers including speech amplifiers
- H04M1/6033—Substation equipment, e.g. for use by subscribers including speech amplifiers for providing handsfree use or a loudspeaker mode in telephone sets
- H04M1/6041—Portable telephones adapted for handsfree use
- H04M1/6075—Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle
- H04M1/6083—Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle by interfacing with the vehicle audio system
- H04M1/6091—Portable telephones adapted for handsfree use adapted for handsfree use in a vehicle by interfacing with the vehicle audio system including a wireless interface
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
방법은 자동으로, 사용자 입력 없이 그리고 디지털 어시스턴트 애플리케이션이 사용자에 의해 별도로 호출되었는지 여부에 관계없이, 전자 디바이스가 차량에 있는 것으로 결정하는 것을 포함한다. 일부 구현예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 (예컨대, 유선 또는 무선 통신 기법들 및/또는 프로토콜들을 통해) 차량과 통신하는 것을 검출하는 것을 포함한다. 이 방법은 또한, 결정하는 것에 응답하여, 전자 디바이스에 의해 구현되는 가상 어시스턴트의 리스닝 모드를 호출하는 것을 포함한다. 어떤 구현예들에서, 이 방법은 또한 사용자가 전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것, 전자 디바이스에 타이핑된 입력을 제공할 수 있는 것 등을 제한하는 것을 포함한다.
Description
관련 출원들의 상호 참조
본 출원은 2010년 1월 18일자로 출원된 미국 가출원 제61/295,774호 및 2011년 6월 3일자로 출원된 미국 가출원 제61/493,201호의 이익을 주장하는 2011년 1월 10일자로 출원된 발명의 명칭이 "지능적 자동화된 어시스턴트(Intelligent Automated Assistant)"인 미국 출원 제12/987,982호의 일부 계속 출원인 2011년 9월 30일자로 출원된 발명의 명칭이 "핸즈 프리 상호작용에 대한 사용자 인터페이스의 자동 적응(Automatically Adapting User Interfaces For Hands-Free Interaction)"인 미국 출원 제13/250,947호의 일부 계속 출원이고 2012년 6월 9일자로 출원된 발명의 명칭이 "핸즈 프리 상호작용에 대한 사용자 인터페이스의 자동 적응"인 미국 가출원 제61/657,744호의 이익을 주장하는 2013년 6월 8일자로 출원된 미국 출원 제13/913,421호를 기초로 우선권을 주장한다. 이상의 출원들 모두의 개시 내용들은 참고로 그 전체가 본 명세서에 포함된다.
기술분야
본 발명은 다중 모드 사용자 인터페이스(multimodal user interface)들에 관한 것이고, 보다 구체적으로, 음성 기반 형식(voice-based modality) 및 시각적 형식(visual modality) 둘 다를 포함하는 사용자 인터페이스들에 관한 것이다.
많은 기존의 운영 체제들 및 디바이스들은 사용자가 동작을 제어할 수 있게 하는 형식으로서 음성 입력을 사용한다. 하나의 예는 특정 구두 명령들을 동작들에 매핑하는 음성 명령 시스템들(예를 들어, 사람의 이름을 말하는 것에 의해 전화 번호를 다이얼링하는 것을 개시하는 것)이다. 다른 예는 대화식 음성 응답(Interactive Voice Response, IVR) 시스템들이며, 이는 사람들이 자동화된 전화 서비스 데스크들과 같은 전화기를 통해 정적 정보(static information)에 액세스할 수 있게 한다.
많은 음성 명령 및 IVR 시스템들은 범주가 비교적 좁으며 단지 미리 정의된 세트의 음성 명령들만을 취급할 수 있다. 게다가, 그들의 출력은 종종 고정된 세트의 응답들로부터 도출된다.
본 명세서에서 가상 어시스턴트(virtual assistant)라고도 지칭되는, 지능적 자동화된 어시스턴트(intelligent automated assistant)는 자연어 입력의 처리를 비롯한, 인간과 컴퓨터 사이에서의 개선된 인터페이스를 제공할 수 있다. 2011년 1월 10일자로 출원된 "지능적 자동화된 어시스턴트"에 대한 관련 미국 특허 출원 제12/987,982호(그 전체 개시 내용이 참고로 본 명세서에 포함됨)에 기술된 바와 같이 구현될 수 있는 이러한 어시스턴트는 사용자들이, 음성 및/또는 텍스트 형태들로, 자연어를 사용하여 디바이스 또는 시스템과 상호작용할 수 있게 한다. 이러한 어시스턴트는 사용자 입력들을 해석하고, 사용자의 의도를 작업들 및 그 작업들에 대한 파라미터들로 동작화하며, 그 작업들을 지원하기 위해 서비스들을 실행하고, 사용자가 이해할 수 있는 출력을 생성한다.
가상 어시스턴트들은 보다 큰 범위의 입력을 인식하는 일반적인 음성(speech) 및 자연어 이해 기술을 사용할 수 있어서, 사용자와의 다이얼로그의 생성을 가능하게 한다. 일부 가상 어시스턴트들은 구두 응답들 및 서면 텍스트를 비롯한, 모드들의 조합으로 출력을 생성할 수 있으며, 또한 온 스크린 요소들의 직접적인 조작을 허용하는 그래픽 사용자 인터페이스(GUI)를 제공할 수 있다. 그러나, 사용자는 항상 자신이 이러한 시각적 출력 또는 직접 조작 인터페이스들을 이용할 수 있는 상황에 있는 것이 아닐 수 있다. 예를 들어, 사용자는 운전 중이거나 기계를 작동시키고 있을 수 있거나, 시각 장애를 가질 수 있거나, 단순히 시각적 인터페이스가 불편하거나 익숙하지 않을 수 있다.
사용자가 접촉을 통해(키보드, 마우스, 터치 스크린, 포인팅 디바이스 등을 사용하는 것을 포함함) 화면을 읽거나 디바이스와 상호작용하는 것을 할 수 없거나 제한적으로 할 수 있는 임의의 상황이 본 명세서에서 "핸즈 프리 컨텍스트(hands-free context)"라고 지칭된다. 예를 들어, 앞서 언급된 바와 같이, 사용자가 운전 동안에 디바이스를 조작하려고 시도하는 상황들에서, 사용자는 가청 출력을 들을 수 있으며 자신의 음성을 사용하여 응답할 수 있지만, 안전 이유들로 인해, 작은 활자를 읽거나 메뉴들을 태핑(tapping)하거나 텍스트를 입력해서는 안된다.
핸즈 프리 컨텍스트들은 가상 어시스턴트들과 같은 복잡한 시스템들의 개발자들에게 특별한 과제들을 제공한다. 사용자들은 자신이 핸즈 프리 컨텍스트에 있는지 여부에 관계없이 디바이스들의 특징들에 대한 완전한 액세스를 요구한다. 그러나, 핸즈 프리 동작에 내재하는 특정의 제한들을 고려하지 못하는 것은 디바이스 또는 시스템의 효용 및 사용성 둘 다를 제한하는 상황들을 야기할 수 있으며, 심지어 사용자가 차량을 조작하는 것과 같은 주 작업으로부터 주위가 분산되게 함으로써 안전을 손상시킬 수 있다.
본 발명의 다양한 실시예들에 따르면, 가상 어시스턴트와 같은 시스템에 대한 사용자 인터페이스는 핸즈 프리 사용에 자동적으로 적응된다. 핸즈 프리 컨텍스트는 자동 또는 수동 수단을 통해 검출되며, 본 시스템은 이러한 컨텍스트의 특정의 제한들을 반영하기 위해 사용자 경험을 수정하도록 복잡한 상호작용적 시스템의 다양한 스테이지들을 적응시킨다. 따라서, 본 발명의 시스템은 가상 어시스턴트 또는 다른 복잡한 시스템의 단일의 구현이 사용자 인터페이스 요소들을 동적으로 제안하게 하고, 핸즈 온(hands-on) 사용에 대한 동일한 시스템의 사용자 경험을 손상시키지 않고 핸즈 프리 사용을 허용하도록 사용자 인터페이스 거동을 변경하는 것을 가능하게 한다.
예를 들어, 다양한 실시예들에서, 본 발명의 시스템은 가상 어시스턴트의 동작을 조절하기 위한 메커니즘들을 제공하여, 사용자들이 화면 상의 세부 사항들을 읽을 필요 없이 자신의 작업들을 완료할 수 있게 하는 방식으로 출력을 제공하도록 한다. 게다가, 다양한 실시예들에서, 가상 어시스턴트는 읽기, 태핑, 클릭, 타이핑, 또는 종종 그래픽 사용자 인터페이스를 사용하여 달성되는 다른 기능들의 수행에 대한 대안으로서 음성 입력을 수신하기 위한 메커니즘들을 제공할 수 있다.
다양한 실시예들에서, 본 발명의 시스템은 종래의 그래픽 사용자 인터페이스의 기능과 동일한(또는 비슷한) 기본 기능을 제공하면서, 핸즈 프리 컨텍스트와 연관된 특정의 요건들 및 제한들을 허용한다. 보다 일반적으로, 본 발명의 시스템은 핵심 기능이 실질적으로 동일하게 유지될 수 있게 하면서, 핸즈 프리 컨텍스트에서의 동작을 용이하게 한다. 일부 실시예들에서, 본 발명의 기법들에 따라 구축된 시스템들은 사용자들이, 어떤 경우들에서, 단일의 세션 내에서, 핸즈 프리 모드와 종래의 ("핸즈 온") 모드 간에 자유롭게 선택할 수 있게 한다. 예를 들어, 동일한 인터페이스가 사무실 환경 및 움직이는 차량 둘 다에 적응 가능하게 될 수 있고, 본 시스템은 환경이 변화함에 따라 사용자 인터페이스 거동에 대한 필요한 변경들을 동적으로 행한다.
본 발명의 다양한 실시예들에 따르면, 다수의 메커니즘들 중 임의의 것이 가상 어시스턴트의 동작을 핸즈 프리 컨텍스트에 적응시키도록 구현될 수 있다. 다양한 실시예들에서, 가상 어시스턴트는 2011년 1월 10일자로 출원된 "지능적 자동화된 어시스턴트"에 대한 미국 특허 출원 제12/987,982호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 기술된 바와 같은 지능적 자동화된 어시스턴트이다. 이러한 어시스턴트는 자연어 다이얼로그를 사용하는 통합형 대화 방식(integrated, conversational manner)으로 사용자와 교감하며, 정보를 획득하거나 다양한 동작들을 수행하는 데 적절할 때 외부 서비스들을 호출한다.
본 발명의 다양한 실시예들에 따르면, 가상 어시스턴트는 다양한 상이한 유형들의 동작들, 기능들, 및/또는 특징들을 수행함에 있어서 핸즈 프리 컨텍스트를 검출하고 그에 따라 가상 어시스턴트의 동작을 조절하도록, 그리고/또는 가상 어시스턴트가 설치되는 전자 디바이스의 복수의 특징들, 동작들, 및 애플리케이션들을 조합하도록 구성, 설계, 및/또는 동작 가능할 수 있다. 일부 실시예들에서, 본 발명의 가상 어시스턴트는 입력을 수신하고, 출력을 제공하며, 사용자와의 다이얼로그에 참여하며, 그리고/또는 분별된 의도에 기초하여 동작들을 수행할 때(또는 개시할 때) 핸즈 프리 컨텍스트를 검출하고 그에 따라 가상 어시스턴트의 동작을 조절할 수 있다.
동작들이, 예를 들어, 전자 디바이스 상에서 이용 가능할 수 있는 임의의 애플리케이션들 또는 서비스들뿐만 아니라 인터넷과 같은 전자 네트워크를 통해 이용 가능한 서비스들을 활성화시키고 그리고/또는 그와 인터페이싱함으로써 수행될 수 있다. 다양한 실시예들에서, 외부 서비스들의 이러한 활성화는 애플리케이션 프로그래밍 인터페이스(application programming interface, API)들을 통해 또는 임의의 다른 적합한 메커니즘(들)에 의해 수행될 수 있다. 이러한 방식으로, 본 발명의 다양한 실시예들에 따라 구현된 가상 어시스턴트는 전자 디바이스의 많은 상이한 애플리케이션들 및 기능들에 대한, 그리고 인터넷을 통해 이용 가능할 수 있는 서비스들에 대한 핸즈 프리 사용 환경을 제공할 수 있다. 앞서 참조된 관련 출원에 기술된 바와 같이, 이러한 가상 어시스턴트의 사용은 어떤 기능이 디바이스 상에서 그리고 웹 연결 서비스들 상에서 이용 가능할 수 있는지, 사용자가 원하는 것을 얻기 위해 이러한 서비스들과 어떻게 인터페이싱하는지, 그리고 이러한 서비스들로부터 수신된 출력을 어떻게 해석하는지를 알아내는 사용자의 부담을 덜어줄 수 있고, 오히려 본 발명의 어시스턴트는 사용자와 이러한 다양한 서비스들 사이의 중개자로서 기능할 수 있다.
게다가, 다양한 실시예들에서, 본 발명의 가상 어시스턴트는 사용자가 종래의 그래픽 사용자 인터페이스들보다 더 직관적이며 덜 부담스럽다는 것을 알 수 있는 대화 인터페이스를 제공한다. 사용자는 핸즈 프리 또는 핸즈 온 컨텍스트가 활성인지 여부에 부분적으로 의존하여, 다수의 이용 가능한 입력 및 출력 메커니즘들 중 임의의 것을 사용하여 대화 다이얼로그 형태로 어시스턴트와 교감할 수 있다. 이러한 입력 및 출력 메커니즘들의 예들은 음성, 그래픽 사용자 인터페이스들(버튼들 및 링크들), 텍스트 입력 등(이들로 제한되지 않음)을 포함한다. 본 시스템은 디바이스 API들, 웹, 이메일 등, 또는 이들의 임의의 조합과 같은, 다수의 상이한 플랫폼들 중 임의의 것을 사용하여 구현될 수 있다. 부가 입력에 대한 요청들이 청각적 및/또는 시각적 방식으로 제공된 대화의 컨텍스트로 사용자에게 제시될 수 있다. 사용자 입력이 주어진 세션 내에서의 이전 이벤트들 및 통신들은 물론 사용자에 관한 이력 및 프로필 정보를 고려할 때 적절한 컨텍스트로 해석될 수 있도록 단기 및 장기 메모리가 관여될 수 있다.
다양한 실시예들에서, 본 발명의 가상 어시스턴트는 전자 디바이스의 다양한 특징들 및 동작들을 제어할 수 있다. 예를 들어, 가상 어시스턴트는, 디바이스 상의 종래의 사용자 인터페이스를 사용하여 달리 개시될 수도 있는 기능들 및 동작들을 수행하기 위해, API들을 통해 또는 다른 수단에 의해 디바이스 상의 기능 및 애플리케이션들과 인터페이싱하는 서비스들을 호출할 수 있다. 이러한 기능들 및 동작들은, 예를 들어, 알람을 설정하는 것, 전화를 거는 것, 문자 메시지 또는 이메일 메시지를 송신하는 것, 일정 이벤트(calendar event)를 추가하는 것 등을 포함할 수 있다. 이러한 기능들 및 동작들은 사용자와 어시스턴트 사이에서의 대화 다이얼로그의 컨텍스트에서 애드 온 기능(add-on function)들로서 수행될 수 있다. 이러한 기능들 및 동작들은 이러한 다이얼로그의 컨텍스트에서 사용자에 의해 명시될 수 있거나, 이들은 다이얼로그의 컨텍스트에 기초하여 자동으로 수행될 수 있다. 통상의 기술자는 어시스턴트가 이에 의해 전자 디바이스 상에서 다양한 동작들을 개시하고 제어하기 위한 메커니즘으로서 사용될 수 있다는 것을 잘 알 것이다. 사용자의 현재 상황에 관한 추론들에 기여하는 컨텍스트 증거를 수집하는 것에 의해 그리고 사용자 인터페이스의 동작을 그에 따라 조절하는 것에 의해, 본 발명의 시스템은 디바이스를 제어하는 이러한 메커니즘을 구현하기 위해 가상 어시스턴트의 핸즈 프리 동작을 가능하게 하는 메커니즘들을 제시할 수 있다.
첨부 도면들은 본 발명의 몇몇 실시예들을 예시하며, 설명과 함께, 실시예들에 따른 본 발명의 원리들을 설명하는 역할을 한다. 통상의 기술자는 도면들에 예시된 특정의 실시예들이 단지 예시적이며, 본 발명의 범주를 제한하도록 의도되지 않음을 인식할 것이다.
도 1은 종래 기술에 따른, 문자 메시지를 읽기 위한 핸즈 온 인터페이스의 일례를 예시한 스크린 샷.
도 2는 문자 메시지에 응답하기 위한 인터페이스의 일례를 예시한 스크린 샷.
도 3a 및 도 3b는 음성 구술 인터페이스(voice dictation interface)가 문자 메시지에 응답하기 위해 사용되는 일례를 예시한 일련의 스크린 샷들.
도 4는 하나의 실시예에 따른, 문자 메시지를 수신하기 위한 인터페이스의 일례를 예시한 스크린 샷.
도 5a 내지 도 5d는 사용자가 핸즈 프리 컨텍스트에서 문자 메시지를 수신하고 그에 답신하는, 본 발명의 일 실시예에 따른 다중 모드 가상 어시스턴트(multimodal virtual assistant)의 동작의 일례를 예시한 일련의 스크린 샷들.
도 6a 내지 도 6c는 사용자가 핸즈 프리 컨텍스트에서 문자 메시지를 수정하는, 본 발명의 일 실시예에 따른 다중 모드 가상 어시스턴트의 동작의 일례를 예시한 일련의 스크린 샷들.
도 7a 내지 도 7d는 일부 실시예들에 따른, 사용자 인터페이스를 적응시키는 방법들의 흐름도들.
도 7e는 하나의 실시예에 따른, 핸즈 프리 컨텍스트의 동적 검출 및 그에 대한 적응을 지원하는 가상 어시스턴트의 동작의 방법들을 나타낸 흐름도.
도 8은 하나의 실시예에 따른, 가상 어시스턴트 시스템의 일례를 나타낸 블록도.
도 9는 적어도 하나의 실시예에 따른, 가상 어시스턴트의 적어도 일부분을 구현하기에 적합한 컴퓨팅 디바이스를 나타낸 블록도.
도 10은 적어도 하나의 실시예에 따른, 독립형 컴퓨팅 시스템 상에 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도.
도 11은 적어도 하나의 실시예에 따른, 분산 컴퓨팅 네트워크 상에 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도.
도 12는 몇몇 상이한 유형들의 클라이언트들 및 동작 모드들을 예시하는 시스템 아키텍처를 나타낸 블록도.
도 13은 하나의 실시예에 따른, 본 발명을 구현하기 위해 서로 통신하는 클라이언트와 서버를 나타낸 블록도.
도 14a 내지 도 14l은 일부 실시예들에 따른 핸즈 프리 목록 읽기를 제공하는 가상 어시스턴트의 동작의 방법을 나타낸 흐름도.
도 1은 종래 기술에 따른, 문자 메시지를 읽기 위한 핸즈 온 인터페이스의 일례를 예시한 스크린 샷.
도 2는 문자 메시지에 응답하기 위한 인터페이스의 일례를 예시한 스크린 샷.
도 3a 및 도 3b는 음성 구술 인터페이스(voice dictation interface)가 문자 메시지에 응답하기 위해 사용되는 일례를 예시한 일련의 스크린 샷들.
도 4는 하나의 실시예에 따른, 문자 메시지를 수신하기 위한 인터페이스의 일례를 예시한 스크린 샷.
도 5a 내지 도 5d는 사용자가 핸즈 프리 컨텍스트에서 문자 메시지를 수신하고 그에 답신하는, 본 발명의 일 실시예에 따른 다중 모드 가상 어시스턴트(multimodal virtual assistant)의 동작의 일례를 예시한 일련의 스크린 샷들.
도 6a 내지 도 6c는 사용자가 핸즈 프리 컨텍스트에서 문자 메시지를 수정하는, 본 발명의 일 실시예에 따른 다중 모드 가상 어시스턴트의 동작의 일례를 예시한 일련의 스크린 샷들.
도 7a 내지 도 7d는 일부 실시예들에 따른, 사용자 인터페이스를 적응시키는 방법들의 흐름도들.
도 7e는 하나의 실시예에 따른, 핸즈 프리 컨텍스트의 동적 검출 및 그에 대한 적응을 지원하는 가상 어시스턴트의 동작의 방법들을 나타낸 흐름도.
도 8은 하나의 실시예에 따른, 가상 어시스턴트 시스템의 일례를 나타낸 블록도.
도 9는 적어도 하나의 실시예에 따른, 가상 어시스턴트의 적어도 일부분을 구현하기에 적합한 컴퓨팅 디바이스를 나타낸 블록도.
도 10은 적어도 하나의 실시예에 따른, 독립형 컴퓨팅 시스템 상에 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도.
도 11은 적어도 하나의 실시예에 따른, 분산 컴퓨팅 네트워크 상에 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도.
도 12는 몇몇 상이한 유형들의 클라이언트들 및 동작 모드들을 예시하는 시스템 아키텍처를 나타낸 블록도.
도 13은 하나의 실시예에 따른, 본 발명을 구현하기 위해 서로 통신하는 클라이언트와 서버를 나타낸 블록도.
도 14a 내지 도 14l은 일부 실시예들에 따른 핸즈 프리 목록 읽기를 제공하는 가상 어시스턴트의 동작의 방법을 나타낸 흐름도.
본 발명의 다양한 실시예들에 따르면, 가상 어시스턴트의 동작들과 관련되어 핸즈 프리 컨텍스트가 검출되고, 사용자가 핸즈 프리 컨텍스트에서 의미 있게 어시스턴트와 상호작용할 수 있게 하기 위해, 가상 어시스턴트의 사용자 인터페이스가 그에 따라 조절된다.
설명의 목적상, 용어 "가상 어시스턴트"는 용어 "지능적 자동화된 어시스턴트"와 동등하며, 둘 다 하기의 기능들 중 하나 이상을 수행하는 임의의 정보 처리 시스템을 지칭한다:
이러한 가상 어시스턴트의 일례는 2011년 1월 10자로 출원된 "지능적 자동화된 어시스턴트"에 대한 관련된 미국 특허 출원 제12/987,982호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 기술되어 있다.
다양한 기법들이 이제부터 첨부 도면들에 예시된 바와 같은 예시적인 실시예들을 참조하여 상세히 기술될 것이다. 이하의 설명에서, 본 명세서에 기술되거나 언급된 하나 이상의 양태들 및/또는 특징들의 철저한 이해를 제공하기 위해 다수의 구체적인 상세들이 기재된다. 그렇지만, 본 명세서에 기술되거나 언급된 하나 이상의 양태들 및/또는 특징들이 이들 구체적인 상세들의 일부 또는 전부 없이 실시될 수 있다는 것이 통상의 기술자에게는 명백할 것이다. 다른 경우들에서, 공지된 프로세스 단계들 및/또는 구조들은 본 명세서에 기술되거나 언급된 양태들 및/또는 특징들의 일부를 모호하게 하지 않도록 상세히 기술되지 않았다.
하나 이상의 상이한 발명들이 본 출원에서 기술될 수 있다. 또한, 본 명세서에 기술된 본 발명(들) 중 하나 이상에 대해, 다수의 실시예들이 본 특허 출원에 기술될 수 있으며, 단지 예시를 위해 제공된다. 기술된 실시예들은 어떠한 의미로도 제한하는 것으로 의도되어 있지 않다. 본 발명(들) 중 하나 이상은, 개시 내용으로부터 즉각 명백한 바와 같이, 다수의 실시예들에 널리 적용 가능할 수 있다. 이 실시예들은 통상의 기술자들이 본 발명(들) 중 하나 이상을 실시할 수 있게 하기 위해 충분히 상세히 기술되고, 다른 실시예들이 이용될 수 있다는 것과 본 발명(들) 중 하나 이상의 범주로부터 벗어나지 않고 구조적, 논리적, 소프트웨어, 전기적 및 다른 변경들이 행해질 수 있다는 것을 잘 알 것이다. 따라서, 통상의 기술자들은 본 발명(들) 중 하나 이상이 다양한 수정들 및 변경들을 행하여 실시될 수 있다는 것을 잘 알 것이다. 본 발명(들) 중 하나 이상의 특정의 특징들이 하나 이상의 특정의 실시예들 또는 본 개시 내용의 일부를 형성하고 본 발명(들) 중 하나 이상의 발명들의 특정 실시예들이, 예시로서, 도시되어 있는 도면들을 참조하여 기술될 수 있다. 그렇지만, 이러한 특징들이 하나 이상의 특정 실시예들 또는 도면들 - 이 도면들을 참조하여 실시예들이 기술됨 - 에서의 사용으로 한정되지 않는다는 것을 잘 알 것이다. 본 개시 내용은 본 발명(들) 중 하나 이상의 발명들의 모든 실시예들의 문자 그대로의 설명도 아니고 모든 실시예들에 존재해야 하는 본 발명(들) 중 하나 이상의 발명들의 특징들의 목록도 아니다.
이 특허 출원에 제공된 섹션들의 제목들 및 본 특허 출원의 발명의 명칭은 단지 편의를 위한 것이며, 본 개시 내용을 결코 제한하는 것으로서 해석되어서는 안된다.
서로 통신하는 디바이스들은, 달리 명확하게 명시되지 않는 한, 서로 연속적인 통신을 할 필요가 없다. 게다가, 서로 통신하는 디바이스들은 하나 이상의 중개자들을 통해 직접 또는 간접적으로 통신할 수 있다.
서로 통신하는 몇몇 컴포넌트들을 갖는 실시예의 설명은 이러한 컴포넌트들 모두가 요구된다는 것을 암시하지 않는다. 그와 달리, 다양한 선택적 컴포넌트들이 본 발명(들) 중 하나 이상의 발명들의 매우 다양한 가능한 실시예들을 예시하기 위해 기술되어 있다.
또한, 프로세스 단계들, 방법 단계들, 알고리즘들 등이 순차적인 순서로 기술될 수 있지만, 이러한 프로세스들, 방법들 및 알고리즘들은 임의의 적합한 순서로 동작하도록 구성될 수 있다. 환언하면, 본 특허 출원에서 기술될 수 있는 단계들의 임의의 시퀀스 또는 순서는, 그 자체로, 단계들이 그 순서로 수행되어야 한다는 요구사항을 나타내지 않는다. 게다가, 일부 단계들은 (예컨대, 하나의 단계가 다른 단계 후에 기술되기 때문에) 비동시적으로 발생하는 것으로서 기술되거나 암시되어 있음에도 불구하고, 동시에 수행될 수 있다. 또한, 프로세스를 도면에 도시하는 것에 의해 프로세스를 예시하는 것은 예시된 프로세스가 그에 대한 다른 변형들 및 수정들을 제외한다는 것을 암시하지 않고, 예시된 프로세스 또는 그의 단계들 중 임의의 것이 본 발명(들) 중 하나 이상에 필요하다는 것을 암시하지 않으며, 예시된 프로세스가 선호된다는 것을 암시하지 않는다.
단일의 디바이스 또는 물품이 기술될 때, 하나 초과의 디바이스/물품(이들이 협동하든 그렇지 않든 관계없음)이 단일의 디바이스/물품 대신에 사용될 수 있다는 것이 즉각 명백할 것이다. 이와 유사하게, 하나 초과의 디바이스 또는 물품이 기술되는 경우(이들이 협동하든 그렇지 않은 관계없음), 단일의 디바이스/물품이 하나 초과의 디바이스 또는 물품을 대신에 사용될 수 있다는 것이 즉각 명백할 것이다.
디바이스의 기능 및/또는 특징들은 대안적으로 이러한 기능/특징들을 갖는 것으로 명확하게 기술되지 않는 하나 이상의 다른 디바이스들에 의해 구현될 수 있다. 이와 같이, 본 발명(들) 중 하나 이상의 발명들의 다른 실시예들은 디바이스 자체를 포함할 필요가 없다.
본 명세서에 기술되거나 언급된 기법들 및 메커니즘들은 때때로 명확함을 위해 단수 형태로 기술될 것이다. 그렇지만, 특정의 실시예들이, 달리 언급되지 않는 한, 기법의 다수의 반복들 또는 메커니즘의 다수의 인스턴스화(instantiation)들을 포함한다는 것에 유의해야 한다.
가상 어시스턴트라고도 알려진 지능적 자동화된 어시스턴트를 구현하기 위한 기술과 관련하여 기재되어 있지만, 본 명세서에 기술된 다양한 양태들 및 기법들이 또한 소프트웨어와의 컴퓨터화된 상호작용 및/또는 인간을 수반하는 다른 기술 분야들에 설치되고 그리고/또는 적용될 수 있다는 것이 잘 알 수 있다.
가상 어시스턴트 기술(예컨대, 본 명세서에 기술된 하나 이상의 가상 어시스턴트 시스템 실시예들에 의해 이용되고, 그에 의해 제공되며, 그리고/또는 그에 구현될 수 있음)에 관련된 다른 양태들은 다음과 같은 것들(그 전체 개시 내용들이 본 명세서에 참고로 포함됨) 중 하나 이상에 개시되어 있다:
2011년 9월 30일자로 출원된 발명의 명칭이 "가상 어시스턴트에서의 명령의 처리를 용이하게 하기 위한 컨텍스트 정보의 사용(Using Context Information to Facilitate Processing of Commands in a Virtual Assistant)"인 미국 특허 출원 제13/250,854호(대리인 사건 번호 P11353US1);
2006년 9월 8일자로 출원된 "지능적 자동화된 어시스턴트를 구성하는 방법 및 장치(Method And Apparatus for Building an Intelligent Automated Assistant)"에 대한 미국 특허 출원 제11/518,292호;
2009년 6월 12일자로 출원된 "의미 자동 완성을 위한 시스템 및 방법(System and Method for Semantic Auto-Completion)"에 대한 미국 가특허 출원 제61/186,414호.
하드웨어 아키텍처
일반적으로, 본 명세서에 개시된 가상 어시스턴트 기법들은 하드웨어 또는 소프트웨어와 하드웨어의 조합에 구현될 수 있다. 예를 들어, 이들은 운영 체제 커널에, 별개의 사용자 프로세스에, 네트워크 애플리케이션들에 바인딩된 라이브러리 패키지에, 특수 구성된 기계 상에, 그리고/또는 네트워크 인터페이스 카드 상에 구현될 수 있다. 특정 실시예에서, 본 명세서에 개시된 기법들은 운영 체제와 같은 소프트웨어에서 또는 운영 체제 상에서 실행 중인 애플리케이션에서 구현될 수 있다.
본 명세서에 개시된 가상 어시스턴트 실시예(들) 중 적어도 일부의 소프트웨어/하드웨어 하이브리드 구현(들)은 메모리에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 프로그램 가능 기계 상에 구현될 수 있다. 이러한 네트워크 디바이스들은 상이한 유형들의 네트워크 통신 프로토콜들을 이용하도록 구성되거나 설계될 수 있는 다수의 네트워크 인터페이스들을 가질 수 있다. 이 기계들 중 일부를 위한 일반적인 아키텍처는 본 명세서에 개시된 설명들로부터 나타날 수 있다. 특정 실시예들에 따르면, 본 명세서에 개시된 다양한 가상 어시스턴트 실시예들의 특징들 및/또는 기능들 중 적어도 일부는 최종 사용자 컴퓨터 시스템, 컴퓨터, 네트워크 서버 또는 서버 시스템, 모바일 컴퓨팅 디바이스(예컨대, PDA(personal digital assistant), 휴대폰, 스마트폰, 랩톱, 태블릿 컴퓨터 등), 소비자 전자 디바이스, 음악 플레이어, 또는 임의의 다른 적당한 전자 디바이스, 라우터, 스위치 등, 또는 이들의 임의의 조합과 같은 하나 이상의 범용 네트워크 호스트 기계들 상에 구현될 수 있다. 적어도 일부 실시예들에서, 본 명세서에 개시된 다양한 가상 어시스턴트 실시예들의 특징들 및/또는 기능들 중 적어도 일부는 하나 이상의 가상화된 컴퓨팅 환경들(예컨대, 네트워크 컴퓨팅 클라우드들 등)에서 구현될 수 있다.
이제 도 9를 참조하면, 본 명세서에 개시된 가상 어시스턴트 특징들 및/또는 기능들 중 적어도 일부분을 구현하기에 적합한 컴퓨팅 디바이스(60)를 나타낸 블록도가 도시되어 있다. 컴퓨팅 디바이스(60)는, 예를 들어, 최종 사용자 컴퓨터 시스템, 네트워크 서버 또는 서버 시스템, 모바일 컴퓨팅 디바이스(예컨대, PDA, 휴대폰, 스마트폰, 랩톱, 태블릿 컴퓨터 등), 소비자 전자 디바이스, 음악 플레이어, 또는 임의의 다른 적당한 전자 디바이스, 또는 이들의 임의의 조합 또는 일부분일 수 있다. 컴퓨팅 디바이스(60)는, 무선이든 유선이든 관계없이, 이러한 통신을 위한 공지된 프로토콜들을 사용하여, 인터넷과 같은 통신 네트워크를 통해, 클라이언트들 및/또는 서버들과 같은 다른 컴퓨팅 디바이스들과 통신하도록 구성될 수 있다.
하나의 실시예에서, 컴퓨팅 디바이스(60)는 중앙 처리 유닛(CPU)(62), 인터페이스들(68), 및 버스(67)(PCI(peripheral component interconnect) 버스 등)을 포함한다. 적절한 소프트웨어 또는 펌웨어의 제어 하에서 동작할 때, CPU(62)는 특수 구성된 컴퓨팅 디바이스 또는 기계의 기능들과 연관된 특정 기능들을 구현할 책임이 있을 수 있다. 예를 들어, 적어도 하나의 실시예에서, 사용자의 PDA 또는 스마트폰은 CPU(62), 메모리(61, 65), 및 인터페이스(들)(68)를 이용하는 가상 어시스턴트 시스템으로서 기능하도록 구성되거나 설계될 수 있다. 적어도 하나의 실시예에서, CPU(62)는, 예를 들어, 운영 체제 및 임의의 적절한 애플리케이션 소프트웨어, 드라이버들 등을 포함할 수 있는, 소프트웨어 모듈들/컴포넌트들의 제어 하에서 상이한 유형들의 가상 어시스턴트 기능들 및/또는 동작들 중 하나 이상을 수행하도록 되어 있을 수 있다.
CPU(62)는, 예를 들어, Motorola 또는 Intel 계열의 마이크로프로세서들 또는 MIPS 계열의 마이크로프로세서들로부터의 프로세서와 같은, 하나 이상의 프로세서(들)(63)를 포함할 수 있다. 일부 실시예들에서, 프로세서(들)(63)는 컴퓨팅 디바이스(60)의 동작들을 제어하기 위해 특수 설계된 하드웨어(예컨대, ASIC(application-specific integrated circuit), EEPROM(electrically erasable programmable read-only memory), FPGA(field-programmable gate array) 등)를 포함할 수 있다. 특정 실시예에서, 메모리(61)(비휘발성 RAM(random access memory) 및/또는 ROM(read-only memory))는 또한 CPU(62)의 일부를 형성한다. 그렇지만, 메모리가 시스템에 결합될 수 있는 많은 상이한 방식들이 있다. 메모리 블록(61)은, 예를 들어, 데이터의 캐싱 및/또는 저장, 명령어들의 프로그래밍 등과 같은 다양한 목적들을 위해 사용될 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "프로세서"는 단지 당업계에서 프로세서로서 지칭되는 그 집적 회로들로 한정되지 않고, 광의적으로 마이크로컨트롤러, 마이크로컴퓨터, 프로그램 가능 논리 제어기, ASIC, 및 임의의 다른 프로그램 가능 회로를 지칭한다.
하나의 실시예에서, 인터페이스들(68)은 인터페이스 카드(때때로, "라인 카드(line card)"라고 지칭됨)로서 제공된다. 일반적으로, 이들은 컴퓨팅 네트워크를 통해 데이터 패킷들의 전송 및 수신을 제어하고, 때때로 컴퓨팅 디바이스(60)와 함께 사용되는 다른 주변 기기들을 지원한다. 제공될 수 있는 인터페이스들 중에는 이더넷 인터페이스들, 프레임 릴레이 인터페이스들, 케이블 인터페이스들, DSL 인터페이스들, 토큰 링 인터페이스들 등이 있다. 게다가, 예를 들어, USB(universal serial bus), 직렬, 이더넷, Firewire, PCI, 병렬, RF(radio frequency), 블루투스™, 근거리 무선 통신(near-field communication)(예컨대, 근방 자계(near-field magnetics)를 사용함), 802.11(WiFi), 프레임 릴레이, TCP/IP, ISDN, 고속 이더넷 인터페이스들, 기가비트 이더넷 인터페이스들, ATM(asynchronous transfer mode) 인터페이스들, HSSI(high-speed serial interface) 인터페이스들, POS(Point of Sale) 인터페이스들, FDDI(fiber data distributed interface)들 등과 같은 다양한 유형들의 인터페이스들이 제공될 수 있다. 일반적으로, 이러한 인터페이스들(68)은 적절한 매체와의 통신에 적절한 포트들을 포함할 수 있다. 어떤 경우들에서, 이들은 또한 독립적인 프로세서를 포함할 수 있고, 어떤 경우들에서, 휘발성 및/또는 비휘발성 메모리(예컨대, RAM)를 포함할 수 있다.
도 9에 도시된 시스템이 본 명세서에 기술된 본 발명의 기법들을 구현하기 위해 컴퓨팅 디바이스(60)의 하나의 특정 아키텍처를 예시하고 있지만, 본 명세서에 기술된 특징들 및 기법들 중 적어도 일부분이 구현될 수 있는 유일한 디바이스 아키텍처는 결코 아니다. 예를 들어, 하나 또는 임의의 수의 프로세서들(63)을 갖는 아키텍처들이 사용될 수 있고, 이러한 프로세서들(63)은 단일의 디바이스에 존재할 수 있거나 다수의 디바이스들 간에 분산되어 있을 수 있다. 하나의 실시예에서, 단일의 프로세서(63)는 라우팅 계산들뿐만 아니라 통신들을 처리한다. 다양한 실시예들에서, 상이한 유형들의 가상 어시스턴트 특징들 및/또는 기능들이 클라이언트 디바이스(클라이언트 소프트웨어를 실행하는 PDA 또는 스마트폰 등) 및 서버 시스템(들)(이하에 보다 상세히 기술되는 서버 시스템 등)을 포함하는 가상 어시스턴트 시스템에서 구현될 수 있다.
네트워크 디바이스 구성에 상관없이, 본 발명의 시스템은 데이터, 범용 네트워크 동작들을 위한 프로그램 명령어들 및/또는 본 명세서에 기술되는 가상 어시스턴트 기법들의 기능에 관련된 다른 정보를 저장하도록 구성된 하나 이상의 메모리들 또는 메모리 모듈들(예를 들어, 메모리 블록(65) 등)을 이용할 수 있다. 프로그램 명령어들은, 예를 들어, 운영 체제 및/또는 하나 이상의 애플리케이션들의 동작을 제어할 수 있다. 메모리 또는 메모리들은 또한 데이터 구조들, 키워드 분류 정보, 광고 정보, 사용자 클릭 및 노출 정보(user click and impression information), 및/또는 본 명세서에 기술된 다른 특정 비프로그램 정보를 저장하도록 구성될 수 있다.
이러한 정보 및 프로그램 명령어들이 본 명세서에 기술된 시스템들/방법들을 구현하기 위해 이용될 수 있기 때문에, 적어도 일부 네트워크 디바이스 실시예들은, 예를 들어, 본 명세서에 기술된 다양한 동작들을 수행하기 위한 프로그램 명령어들, 상태 정보 등을 저장하도록 구성되거나 설계될 수 있는 비일시적 기계 판독 가능 저장 매체를 포함할 수 있다. 이러한 비일시적 기계 판독 가능 저장 매체의 예들은 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기 매체; CD-ROM 디스크와 같은 광 매체; 플롭티컬 디스크(floptical disk)와 같은 광자기 매체, 그리고 ROM 디바이스들, 플래시 메모리, 멤리스터 메모리(memristor memory), RAM 등과 같은 프로그램 명령어들을 저장하고 수행하도록 특별히 구성되어 있는 하드웨어 디바이스들을 포함하지만, 이들로 제한되지 않는다. 프로그램 명령어들의 예들은 컴파일러에 의해 생성되는 것과 같은 기계 코드, 및 인터프리터(interpreter)를 사용하여 컴퓨터에 의해 실행될 수 있는 상위 레벨 코드를 포함하는 파일들 둘 다를 포함한다.
하나의 실시예에서, 본 발명의 시스템은 독립형 컴퓨팅 시스템 상에서 구현된다. 이제 도 10을 참조하면, 적어도 하나의 실시예에 따른, 독립형 컴퓨팅 시스템 상에서 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도가 도시되어 있다. 컴퓨팅 디바이스(60)는 다중 모드 가상 어시스턴트(1002)를 구현하기 위한 소프트웨어를 실행하는 프로세서(들)(63)를 포함한다. 입력 디바이스(1206)는, 예를 들어, 키보드, 터치스크린, 마우스, 터치패드, 트랙볼, 5-방향 스위치(five-way switch), 조이스틱, 및/또는 이들의 임의의 조합을 비롯한, 사용자 입력을 수신하기에 적합한 임의의 유형일 수 있다. 디바이스(60)는 또한, 예를 들어, 마이크와 같은 음성 입력 디바이스(1211)를 포함할 수 있다. 출력 디바이스(1207)는 화면, 스피커, 프린터, 및/또는 이들의 임의의 조합일 수 있다. 메모리(1210)는 소프트웨어를 실행하는 동안 프로세서(들)(63)에 의한 사용을 위해, 당업계에 알려진 바와 같은 구조 및 아키텍처를 갖는 RAM일 수 있다. 저장 디바이스(1208)는 데이터를 디지털 형태로 저장하기 위한 임의의 자기, 광, 및/또는 전기 저장 디바이스일 수 있고; 예들은 플래시 메모리, 자기 하드 드라이브, CD-ROM, 및/또는 기타를 포함한다.
다른 실시예에서, 본 발명의 시스템은 임의의 수의 클라이언트들 및/또는 서버들을 갖는 것과 같은 분산 컴퓨팅 네트워크 상에 구현된다. 이제 도 11을 참조하면, 적어도 하나의 실시예에 따른, 분산 컴퓨팅 네트워크 상에 가상 어시스턴트의 적어도 일부분을 구현하기 위한 아키텍처를 나타낸 블록도가 도시되어 있다.
도 11에 도시된 구성에서, 임의의 수의 클라이언트들(1304)이 제공되고; 각각의 클라이언트(1304)는 본 발명의 클라이언트측 부분들을 구현하기 위한 소프트웨어를 실행할 수 있다. 그에 부가하여, 클라이언트들(1304)로부터 수신된 요청들을 처리하기 위해 임의의 수의 서버들(1340)이 제공될 수 있다. 클라이언트들(1304) 및 서버들(1340)은 인터넷과 같은 전자 네트워크(1361)를 통해 서로 통신할 수 있다. 네트워크(1361)는, 예를 들어, 유선 및/또는 무선 프로토콜들을 비롯한 임의의 공지된 네트워크 프로토콜들을 사용하여 구현될 수 있다.
게다가, 일 실시예에서, 서버들(1340)은 부가 정보를 획득하거나 특정의 사용자들과의 이전의 상호작용들에 관한 저장소 데이터(store data)를 참조하기 위해 필요할 때 외부 서비스들(1360)을 호출할 수 있다. 외부 서비스들(1360)과의 통신은, 예를 들어, 네트워크(1361)를 통해 행해질 수 있다. 다양한 실시예들에서, 외부 서비스들(1360)은 하드웨어 디바이스 자체와 관련되거나 그 상에 설치된 웹 기반(web-enabled) 서비스들 및/또는 기능을 포함한다. 예를 들어, 어시스턴트(1002)가 스마트폰 또는 다른 전자 디바이스 상에 구현되는 일 실시예에서, 어시스턴트(1002)는 일정 애플리케이션(calendar application)("앱(app)"), 연락처들, 및/또는 다른 소스들에 저장된 정보를 획득할 수 있다.
다양한 실시예들에서, 어시스턴트(1002)는 어시스턴트가 설치된 전자 디바이스의 많은 특징들 및 동작들을 제어할 수 있다. 예를 들어, 어시스턴트(1002)는, 그렇지 않았으면 디바이스 상에서 종래의 사용자 인터페이스를 사용하여 개시될 수도 있는 기능들 및 동작들을 수행하기 위해, API들을 통해 또는 다른 수단에 의해 디바이스 상에서의 기능 및 애플리케이션들과 인터페이스하는 외부 서비스들(1360)을 호출할 수 있다. 이러한 기능들 및 동작들은, 예를 들어, 알람을 설정하는 것, 전화를 거는 것, 문자 메시지 또는 이메일 메시지를 송신하는 것, 일정 이벤트를 추가하는 것 등을 포함할 수 있다. 이러한 기능들 및 동작들은 사용자와 어시스턴트(1002) 사이에서의 대화 다이얼로그(conversational dialog)의 컨텍스트에서 애드 온 기능(add-on function)들로서 수행될 수 있다. 이러한 기능들 및 동작들은 이러한 다이얼로그의 컨텍스트에서 사용자에 의해 명시될 수 있거나, 이들은 다이얼로그의 컨텍스트에 기초하여 자동으로 수행될 수 있다. 통상의 기술자라면 어시스턴트(1002)가, 그에 의해, 전자 디바이스 상에서의 다양한 동작들을 개시 및 제어하기 위한 제어 메커니즘 - 버튼들 또는 그래픽 사용자 인터페이스들과 같은 종래의 메커니즘들에 대한 대안으로서 사용될 수 있음 - 으로서 사용될 수 있다는 것을 잘 알 것이다.
예를 들어, 사용자는 "내일은 오전 8시에 일어나야 해"와 같은 입력을 어시스턴트(1002)에 제공할 수 있다. 어시스턴트(1002)가 본 명세서에 기술된 기법들을 사용하여 사용자의 의도를 확인하였으면, 어시스턴트(1002)는 디바이스 상의 알람 시계 기능 또는 애플리케이션과 인터페이스하기 위해 외부 서비스들(1340)을 호출할 수 있다. 어시스턴트(1002)는 사용자를 대신하여 알람을 설정한다. 이러한 방식으로, 사용자는 알람을 설정하거나 디바이스 상의 다른 기능들을 수행하기 위해 종래의 메커니즘들에 대한 대체물로서 어시스턴트(1002)를 사용할 수 있다. 사용자의 요청들이 모호하거나 추가적인 명확화를 필요로 하는 경우, 어시스턴트(1002)는 본 명세서에 기술되고 핸즈 프리 컨텍스트에 적응될 수 있는 다양한 기법들(능동적 유도, 부연, 제안 등을 포함함)을 사용할 수 있음으로써, 정확한 서비스들(1340)이 호출되고 의도된 동작이 취해지도록 한다. 하나의 실시예에서, 어시스턴트(1002)는 확인을 위해 사용자에게 프롬프트하고 그리고/또는 기능을 수행하기 위해 서비스(1340)를 호출하기 전에 임의의 적합한 소스에 부가 컨텍스트 정보를 요청할 수 있다. 하나의 실시예에서, 사용자는 특정의 서비스들(1340)을 호출할 수 있는 어시스턴트(1002)의 기능을 선택적으로 디스에이블시킬 수 있거나, 원하는 경우, 이러한 서비스 호출 모두를 디스에이블시킬 수 있다.
본 발명의 시스템은 다수의 상이한 유형들의 클라이언트들(1304) 및 동작 모드들 중 임의의 것으로 구현될 수 있다. 이제 도 12를 참조하면, 몇 개의 상이한 유형들의 클라이언트들(1304) 및 동작 모드들을 예시한 시스템 아키텍처를 나타낸 블록도가 도시되어 있다. 통상의 기술자라면 도 12에 도시된 다양한 유형들의 클라이언트들(1304) 및 동작 모드들이 예시적인 것에 불과하다는 것과, 본 발명의 시스템이 도시된 것들 이외의 클라이언트들(1304) 및/또는 동작 모드들을 사용하여 구현될 수 있다는 것을 잘 알 것이다. 그에 부가하여, 시스템은 이러한 클라이언트들(1304) 및/또는 동작 모드들 중 임의의 것 또는 모두를, 단독으로 또는 임의의 조합으로, 포함할 수 있다. 도시된 예들은 다음과 같은 것들을 포함한다:
입력/출력 디바이스들 및/또는 센서들(1402)을 갖는 컴퓨터 디바이스들. 클라이언트 컴포넌트는 임의의 이러한 컴퓨터 디바이스(1402) 상에 설치될 수 있다. 적어도 하나의 실시예는 네트워크(1361)를 통해 서버들(1340)과의 통신을 가능하게 하기 위해 웹 브라우저(1304A) 또는 다른 소프트웨어 애플리케이션을 사용하여 구현될 수 있다. 입력 및 출력 채널들은, 예를 들어, 시각적 및/또는 청각적 채널들을 비롯한 임의의 유형의 것일 수 있다. 예를 들어, 하나의 실시예에서, 본 발명의 시스템은 웹 브라우저의 대응물이 음성에 의해 구동되고 출력을 위해 음성을 사용하는 시각 장애인을 위한 어시스턴트의 실시예를 가능하게 하는, 음성 기반 통신 방법들을 사용하여 구현될 수 있다.
클라이언트가 모바일 디바이스 상의 애플리케이션(1304B)으로서 구현될 수 있는, I/O 및 센서들(1406)을 갖는 모바일 디바이스들. 이는 이동 전화기들, 스마트폰들, 개인 휴대 정보 단말기들, 태블릿 디바이스들, 네트워킹된 게임 콘솔들 등을 포함하지만 이로 한정되지 않는다.
클라이언트가 내장된 시스템 애플리케이션(1304D)으로서 구현될 수 있는, 대시보드 인터페이스들 및 센서들(1414)을 갖는 자동차들 및 다른 차량들. 이는 자동차 내비게이션 시스템들, 음성 제어 시스템들, 자동차내 엔터테인먼트 시스템들 등을 포함하지만 이들로 제한되지 않는다.
클라이언트가 디바이스 상주 애플리케이션(device-resident application)(1304E)으로서 구현될 수 있는, 네트워크 상에 존재하거나 그와 인터페이스하는 라우터들(1418) 또는 임의의 다른 디바이스와 같은 네트워크화된 컴퓨팅 디바이스들.
어시스턴트의 일 실시예가 이메일 형식 서버(Email Modality Server)(1426)를 통해 연결되는 이메일 클라이언트들(1424). 이메일 형식 서버(1426)는 통신 브리지(communication bridge)로서 기능하여, 예를 들어, 사용자로부터의 입력을 어시스턴트로 송신되는 이메일 메시지들로서 받고 어시스턴트로부터의 출력을 답신들로서 사용자로 송신한다.
어시스턴트의 일 실시예가 메시징 형식 서버(Messaging Modality Server)(1430)를 통해 연결되는 인스턴트 메시징 클라이언트들(1428). 메시징 형식 서버(1430)는 통신 브리지로서 기능하여, 사용자로부터 입력을 어시스턴트로 송신되는 메시지로서 받고 어시스턴트로부터의 출력을 답신에서의 메시지들로서 사용자로 송신한다.
어시스턴트의 일 실시예가 VoIP(Voice over Internet Protocol) 형식 서버(1434)를 통해 연결되는 음성 전화기들(1432). VoIP 형식 서버(1434)는 통신 브리지로서 기능하여, 사용자로부터의 입력을 어시스턴트에게 말해지는 음성으로서 받고 어시스턴트로부터의 출력을 답신에서, 예를 들어, 합성된 음성으로서, 사용자로 송신한다.
이메일, 인스턴트 메시징, 논의 포럼들, 그룹 채팅 세션들, 실시간 도움말(live help) 또는 고객 지원 세션들 등(이들로 제한되지 않음)을 비롯한 메시징 플랫폼들에 대해, 어시스턴트(1002)는 대화들에서의 참여자로서 기능할 수 있다. 어시스턴트(1002)는 일대일 상호작용들을 위해 본 명세서에 기술된 하나 이상의 기법들 및 방법들을 사용하여 대화를 모니터링하고 개인들 또는 그룹에 답신할 수 있다.
다양한 실시예들에서, 본 발명의 기법들을 구현하기 위한 기능이 임의의 수의 클라이언트 및/또는 서버 컴포넌트들 간에 분산될 수 있다. 예를 들어, 다양한 소프트웨어 모듈들이 본 발명과 관련하여 다양한 기능들을 수행하도록 구현될 수 있고, 이러한 모듈들은 서버 및/또는 클라이언트 컴포넌트들 상에서 실행되도록 다양하게 구현될 수 있다. 이러한 배열에 대한 추가적인 상세들은 2011년 1월 10일자로 출원된 "지능적 자동화된 어시스턴트"에 대한 관련된 미국 특허 출원 제12/987,982호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 제공되어 있다.
도 13의 예에서, 입력 유도 기능 및 출력 처리 기능은 클라이언트(1304) 및 서버(1340) 간에 분산되어, 입력 유도의 클라이언트 부분(2794a) 및 출력 처리의 클라이언트 부분(2792a)은 클라이언트(1304)에 위치되고, 입력 유도의 서버 부분(2794b) 및 출력 처리의 서버 부분(2792b)은 서버(1340)에 위치된다. 하기의 컴포넌트들은 서버(1340)에 위치된다:
하나의 실시예에서, 클라이언트(1304)는, 응답성을 개선하고 네트워크 통신에 대한 의존성을 감소시키기 위해, 이들 컴포넌트들의 부분집합들 및/또는 부분들을 로컬적으로 유지한다. 이 부분집합들 및/또는 부분들은 공지된 캐시 관리 기법들에 따라 유지되고 업데이트될 수 있다. 이러한 부분집합들 및/또는 부분들은, 예를 들어, 다음과 같은 것들을 포함한다:
부가 컴포넌트들은, 예를 들어, 다음과 같은 것들을 비롯한, 서버(1340)의 일부로서 구현될 수 있다:
서버(1340)는, 필요할 때, 외부 서비스들(1360)과 인터페이스함으로써 부가 정보를 획득한다.
개념적 아키텍처
이제 도 8을 참조하면, 다중 모드 가상 어시스턴트(1002)의 특정의 예시적인 실시예의 단순화된 블록도가 도시되어 있다. 앞서 언급한 관련된 미국 특허 출원들에 보다 상세히 기술된 바와 같이, 다중 모드 가상 어시스턴트(1002)의 상이한 실시예들은 일반적으로 가상 어시스턴트 기술에 관련된 다양한 상이한 유형들의 동작들, 기능들, 및/또는 특징들을 제공하도록 구성되고, 설계되며 그리고/또는 동작 가능할 수 있다. 게다가, 본 명세서에 보다 상세히 기술된 바와 같이, 본 명세서에 개시된 다중 모드 가상 어시스턴트(1002)의 다양한 동작들, 기능들, 및/또는 특징들 중 다수는 다중 모드 가상 어시스턴트(1002)와 상호작용하는 상이한 엔터티들에 상이한 유형들의 장점들 및/또는 혜택들을 가능하게 하거나 제공할 수 있다. 도 8에 도시된 실시예는 앞서 기술한 하드웨어 아키텍처들 중 임의의 것을 사용하여, 또는 상이한 유형의 하드웨어 아키텍처를 사용하여 구현될 수 있다.
예를 들어, 상이한 실시예들에 따르면, 다중 모드 가상 어시스턴트(1002)는, 예를 들어, 다음과 같은 것들(또는 이들의 조합들) 중 하나 이상과 같은, 다양한 상이한 유형들의 동작들, 기능들, 및/또는 특징들을 제공하도록 구성되고, 설계되며 그리고/또는 동작 가능할 수 있다:
제품들 및 서비스들을 발견하거나, 찾거나, 선택하거나, 구입하거나, 예약하거나 주문하기 위해 인터넷을 통해 이용 가능한 데이터 및 서비스들의 적용을 자동화한다. 이 데이터 및 서비스들을 사용하는 프로세스를 자동화하는 것에 부가하여, 다중 모드 가상 어시스턴트(1002)는 또한 데이터 및 서비스들의 몇 개의 소스들의 결합된 사용을 한번에 가능하게 할 수 있다. 예를 들어, 다중 모드 가상 어시스턴트는 몇 개의 리뷰 사이트들로부터 제품들에 관한 정보를 결합시키고, 다수의 유통업자들로부터의 가격들 및 입수 가능성을 검사하며, 그들의 위치들 및 시간 제약들을 검사하고, 사용자가 그들의 문제점에 대한 개인화된 해결책을 찾는 데 도움을 줄 수 있다.
인터넷 상에서 발견될 수 있는 할 일들(영화들, 이벤트들, 연극들, 전시회들, 쇼들 및 인기물들을 포함하지만 이들로 제한되지 않음); 갈 곳들(여행 목적지들, 호텔들 및 다른 머무를 곳들, 랜드마크들 및 다른 관심 유적지들 등을 포함하지만, 이들로 제한되지 않음); 먹거나 마실 곳들(레스토랑들 및 바들 등), 다른 사람들을 만날 시각들 및 장소들, 그리고 임의의 다른 엔터테인먼트 또는 사회적 상호작용의 소스를 발견하고, 조사하며, 선택하고, 예약하며 다른 방식으로 알기 위해 인터넷을 통해 이용 가능한 데이터 및 서비스들의 사용을 자동화한다.
그렇지 않았으면 검색(위치 기반 검색을 포함함); 내비게이션(지도 및 길 안내); 데이터베이스 탐색(이름 또는 다른 속성들에 의해 사업체들 또는 사람들을 찾는 것 등); 기상 조건들 및 예보들을 입수하는 것, 시장 물품들의 가격 또는 금융 거래들의 상태를 검사하는 것; 교통 또는 항공편들의 상태를 모니터링하는 것; 일정들 및 스케줄들에 액세스하고 그를 업데이트하는 것; 리마인더들, 경고들, 작업들 및 프로젝트들을 관리하는 것; 이메일 또는 다른 메시징 플랫폼들을 통해 통신하는 것; 및 디바이스들을 로컬적으로 또는 원격적으로 동작시키는 것(예컨대, 전화를 거는 것, 조명 및 온도를 제어하는 것, 가정 보안 디바이스들을 제어하는 것, 음악 또는 비디오를 재생하는 것 등)을 비롯한 그래픽 사용자 인터페이스들을 갖는 전용 애플리케이션들에 의해 제공되는 자연어 다이얼로그를 통해 애플리케이션들 및 서비스들의 동작을 가능하게 한다. 하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는 디바이스 상에서 이용 가능한 많은 기능들 및 앱들을 개시하고 동작시키며 제어하기 위해 사용될 수 있다.
활동들, 제품들, 서비스들, 엔터테인먼트의 소스, 시간 관리에 대한 개인 추천들, 또는 자연어로의 상호작용적 다이얼로그로부터 그리고 데이터 및 서비스들에 대한 자동화된 액세스로부터 이득을 얻는 임의의 다른 종류의 추천 서비스를 제안한다.
상이한 실시예들에 따르면, 다중 모드 가상 어시스턴트(1002)에 의해 제공되는 다양한 유형들의 기능들, 동작들, 조치들, 및/또는 다른 특징들의 적어도 일부분이 하나 이상의 클라이언트 시스템(들)에서, 하나 이상의 서버 시스템(들)에서, 그리고/또는 이들의 조합들로 구현될 수 있다.
상이한 실시예들에 따르면, 다중 모드 가상 어시스턴트(1002)에 의해 제공되는 다양한 유형들의 기능들, 동작들, 조치들, 및/또는 다른 특징들의 적어도 일부분이, 본 명세서에 보다 상세히 기술된 바와 같이, 사용자 입력을 해석 및 동작화할 때 컨텍스트 정보를 사용할 수 있다.
예를 들어, 적어도 하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는 특정 작업들 및/또는 동작들을 수행할 때 다양한 상이한 유형들의 데이터 및/또는 다른 유형들의 정보를 이용하고 그리고/또는 생성하도록 동작 가능할 수 있다. 이것은, 예를 들어, 입력 데이터/정보 및/또는 출력 데이터/정보를 포함할 수 있다. 예를 들어, 적어도 하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는, 예를 들어, 하나 이상의 로컬 및/또는 원격 메모리들, 디바이스들 및/또는 시스템들과 같은, 하나 이상의 상이한 유형들의 소스들로부터 정보에 액세스하고, 그를 처리하며, 그리고/또는 다른 방식으로 이용하도록 동작 가능할 수 있다. 그에 부가하여, 적어도 하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는, 예를 들어, 하나 이상의 로컬 및/또는 원격 디바이스들 및/또는 시스템들에 저장될 수 있는, 하나 이상의 상이한 유형들의 출력 데이터/정보를 생성하도록 동작 가능할 수 있다.
다중 모드 가상 어시스턴트(1002)에 의해 액세스되고 그리고/또는 이용될 수 있는 상이한 유형들의 입력 데이터/정보의 예들은 다음과 같은 것들(또는 이들의 조합들) 중 하나 이상을 포함할 수 있지만 이로 한정되지 않는다:
음성 입력: 휴대폰들 및 태블릿들과 같은 모바일 디바이스들, 마이크들을 갖는 컴퓨터들, 블루투스 헤드셋들, 자동차 음성 제어 시스템들로부터, 전화 시스템, 응답 서비스들 상에서의 녹음들, 통합 메시징 서비스들 상에서의 오디오 음성 메일, 시계 라디오들과 같은 음성 입력을 갖는 소비자 애플리케이션들, 전화국, 홈 엔터테인먼트 제어 시스템들, 및 게임 콘솔들을 통함.
컴퓨터들 또는 모바일 디바이스들 상의 키보드들, 리모콘들 또는 다른 소비자 전자 디바이스들 상의 키패드들로부터의 텍스트 입력, 어시스턴트로 송신되는 이메일 메시지들, 어시스턴트로 송신되는 인스턴트 메시지들 또는 유사한 단문 메시지들, 다중 사용자 게임 환경들에서의 플레이어들로부터 수신된 텍스트, 및 메시지 피드들에서 스트리밍된 텍스트.
센서들 또는 위치 기반 시스템들로부터 오는 위치 정보. 예들은 휴대폰들 상의 GPS(Global Positioning System) 및 A-GPS(Assisted GPS)를 포함한다. 하나의 실시예에서, 위치 정보는 명시적 사용자 입력과 결합된다. 하나의 실시예에서, 본 발명의 시스템은, 기지의 주소 정보 및 현재 위치 결정에 기초하여, 사용자가 집에 있을 때를 검출할 수 있다. 이러한 방식으로, 집 밖에 있는 것과는 달리 집에 있을 때 사용자가 관심을 가질 수 있는 정보의 유형은 물론 사용자가 집에 있는지 여부에 따라 사용자를 대신하여 호출되어야 하는 서비스들 및 동작들의 유형에 관해 특정 추론들이 행해질 수 있다.
클라이언트 디바이스들 상에서의 시계들로부터의 시간 정보. 이것은, 예를 들어, 지역 시각 및 시간대를 표시하는 전화기들 또는 다른 클라이언트 디바이스들로부터의 시간을 포함할 수 있다. 게다가, 시간은 사용자 요청들의 컨텍스트에서 사용될 수 있는데, 예를 들어 "한 시간 내" 및 "오늘 밤"과 같은 문구들을 해석하기 위해 사용될 수 있다.
나침반, 가속도계, 자이로스코프, 및/또는 이동 속도 데이터는 물론, 모바일 또는 핸드헬드 디바이스들 또는 자동차 제어 시스템들과 같은 임베디드 시스템들로부터의 다른 센서 데이터. 이것은 또한 리모콘들로부터 가전 제품들 및 게임 콘솔들에 이르는 디바이스 위치 결정 데이터를 포함할 수 있다.
그래픽 사용자 인터페이스(GUI)를 갖는 임의의 디바이스 상에서의 GUI로부터 클릭하는 것 및 메뉴 선택 및 다른 이벤트들. 추가적인 예들은 터치 스크린에 대한 터치들을 포함한다.
센서들로부터의 이벤트들, 및 알람 시계들, 일정 경보들, 가격 변화 트리거들, 위치 트리거들, 서버들로부터 디바이스 상으로의 푸시 통지 등과 같은 다른 데이터 기반 트리거(data-driven trigger)들.
본 명세서에 기술된 실시예들에 대한 입력은 또한 사용자 상호작용 기록(user interaction history)(다이얼로그 및 요청 기록을 포함함)의 컨텍스트를 포함한다.
앞서 언급된 관련된 미국 특허 출원들에 기술된 바와 같이, 많은 상이한 유형들의 출력 데이터/정보가 다중 모드 가상 어시스턴트(1002)에 의해 생성될 수 있다. 이들은 다음과 같은 것들(또는 이들의 조합들) 중 하나 이상을 포함할 수 있지만 이들로 제한되지 않는다:
디바이스가 온 또는 오프되게 하고, 사운드를 만들게 하며, 색상을 변경하게 하고, 진동하게 하며, 조명을 제어하게 하는 것 등과 같은, 디바이스 상에서의 물리적 동작들을 제어하기 위한 액추에이터 출력;
지도 애플리케이션을 호출하는 것, 전화를 음성 다이얼링하는 것, 이메일 또는 인스턴트 메시지를 송신하는 것, 미디어를 재생하는 것, 일정들에 엔트리들을 만드는 것, 작업 관리자들, 및 메모 애플리케이션들, 그리고 다른 애플리케이션들과 같은 다른 애플리케이션들을 디바이스 상에서 호출하는 것;
원격 카메라를 동작시키는 것, 휠체어를 제어하는 것, 원격 스피커들 상에서 음악을 재생하는 것, 원격 디스플레이들 상에 비디오들을 재생하는 것 등과 같은, 디바이스에 의해 접속되거나 제어되는 디바이스들에 대한 물리적 동작들을 제어하기 위한 액추에이터 출력.
도 8의 다중 모드 가상 어시스턴트(1002)가 구현될 수 있는 광범위한 가상 어시스턴트 시스템 실시예들 중 하나의 예에 불과하다는 것을 잘 알 것이다. 가상 어시스턴트 시스템의 다른 실시예들(도시되지 않음)은, 예를 들어, 도 8의 예시적인 가상 어시스턴트 시스템 실시예에 예시된 것들보다 더 많은, 더 적은, 그리고/또는 그와 상이한 컴포넌트들/특징들을 포함할 수 있다.
다중 모드 가상 어시스턴트(1002)는, 예를 들어, 하드웨어 및/또는 하드웨어와 소프트웨어의 조합들의 사용을 통해 구현되고 그리고/또는 인스턴스화될 수 있는, 복수의 상이한 유형들의 컴포넌트들, 디바이스들, 모듈들, 프로세스들, 시스템들 등을 포함할 수 있다. 예를 들어, 도 8의 예시적인 실시예에 예시된 바와 같이, 어시스턴트(1002)는 하기의 유형들의 시스템들, 컴포넌트들, 디바이스들, 프로세서들 등(또는 이들의 조합들) 중 하나 이상을 포함할 수 있다:
특정 클라이언트/서버 기반 실시예들에서, 이 컴포넌트들 중 일부 또는 전부는 클라이언트(1304)와 서버(1340) 사이에 분산될 수 있다. 이러한 컴포넌트들은 앞서 언급된 관련된 미국 특허 출원들에 추가로 기술되어 있다.
하나의 실시예에서, 가상 어시스턴트(1002)는, 예를 들어, 터치스크린 입력, 키보드 입력, 음성 입력, 및/또는 이들의 임의의 조합을 포함한 임의의 적절한 입력 형식을 통해 사용자 입력(2704)을 수신한다. 하나의 실시예에서, 어시스턴트(1002)는 또한 2011년 9월 30일자로 출원된, 발명의 명칭이 "가상 어시스턴트에서 명령의 처리를 용이하게 하기 위한 컨텍스트 정보의 사용(Using Context Information to Facilitate Processing of Commands in a Virtual Assistant)"인 미국 특허 출원 제13/250,854호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 기술된 바와 같이, 이벤트 컨텍스트, 애플리케이션 컨텍스트, 개인 음향 컨텍스트, 및/또는 다른 형태들의 컨텍스트를 포함할 수 있는 컨텍스트 정보(1000)를 수신한다. 컨텍스트 정보(1000)는 또한, 적용 가능한 경우, 본 명세서에 기술된 기법들에 따라 사용자 인터페이스를 적응시키기 위해 사용될 수 있는 핸즈 프리 컨텍스트를 포함한다.
본 명세서에 기술된 기법들에 따라 사용자 입력(2704) 및 컨텍스트 정보(1000)를 처리할 때, 가상 어시스턴트(1002)는 사용자에게 제시하기 위한 출력(2708)을 생성한다. 출력(2708)은, 적절한 경우, 핸즈 프리 컨텍스트는 물론 다른 인자들에 의해 통보될 수 있는 임의의 적합한 출력 형식에 따라 생성될 수 있다. 출력 형식들의 예들은 화면 상에 제시되는 것과 같은 시각적 출력, 청각적 출력(음성 출력 및/또는 삐 소리(beep)들 및 다른 사운드들을 포함할 수 있음), 햅틱 출력(진동 등), 및/또는 이들의 임의의 조합을 포함한다.
도 8에 나타낸 다양한 컴포넌트들의 동작에 관한 부가 상세들은 2011년 1월 10일자로 출원된 "지능적 자동화된 어시스턴트"에 대한 관련된 미국 특허 출원 제12/987,982호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 제공되어 있다.
사용자 인터페이스들을 핸즈 프리 컨텍스트에 적응시키기
예시를 위해, 본 발명이 예로서 본 명세서에서 기술된다. 그렇지만, 통상의 기술자라면 예들에 나타낸 특정의 입력 및 출력 메커니즘들이 사용자와 어시스턴트(1002) 사이의 하나의 가능한 상호작용을 예시하기 위한 것에 불과하고, 청구된 본 발명의 범주를 제한하려고 의도되지 않는다는 것을 잘 알 것이다. 게다가, 대안의 실시예들에서, 본 발명은 다중 모드 가상 어시스턴트(1002)를 꼭 포함하지는 않는 디바이스에서 구현될 수 있고; 오히려 본 발명의 기능은 오로지 청구범위에 한정된 본 발명의 필수적인 특성들로부터 벗어남이 없이, 임의의 적합한 디바이스 상에서 실행되는 운영 체제 또는 애플리케이션에 직접 구현될 수 있다.
이제 도 1을 참조하면, 종래 기술에 따른, 문자 메시지를 읽기 위한 종래의 핸즈 온 인터페이스(169)의 일례를 예시하는 스크린 샷이 도시되어 있다. 도 1에 도시된 바와 같은 그래픽 사용자 인터페이스(GUI)는 일반적으로 사용자가 버블(171)로 나타낸 메시지 텍스트와 같은 미세한 상세 사항들을 읽을 수 있어야 하고 텍스트 필드(172)에 타이핑하고 송신 버튼(173)을 태핑함으로써 응답할 수 있을 것을 요구한다. 많은 디바이스들에서, 이러한 동작들은 화면을 보고 터치하는 것을 요구하며, 따라서 본 명세서에서 핸즈 프리 컨텍스트라고 지칭되는 특정 컨텍스트들에서 수행하는 것이 불가능하다.
이제 도 2를 참조하면, 문자 메시지(171)에 응답하기 위한 인터페이스(170)의 일례를 예시하는 스크린 샷이 도시되어 있다. 가상 키보드(270)가 텍스트 필드(172)에서의 사용자 태핑에 응답하여 제시되어, 키들에 대응하는 화면의 구역들을 태핑함으로써 텍스트가 텍스트 필드(172)에 입력될 수 있게 한다. 사용자는 문자 메시지가 입력되었을 때 송신 버튼(173)을 태핑한다. 사용자가 말하는 것에 의해 텍스트를 입력하고자 하는 경우, 사용자는 음성 버튼(271)을 태핑하는데, 이는 음성 입력을 수신하고 이를 텍스트로 변환하기 위해 음성 구술 인터페이스를 호출한다. 이와 같이, 버튼(271)은 사용자가 핸즈 프리 컨텍스트에 있다는 것을 사용자가 나타낼 수 있게 하는 메커니즘을 제공한다.
이제 도 3a 및 도 3b를 참조하면, 문자 메시지(171)에 답신하기 위해 음성 구술 인터페이스가 사용되는 인터페이스(175)의 일례를 예시한 일련의 스크린 샷들이 도시되어 있다. 화면(370)은, 예를 들어, 사용자가 음성 버튼(271)을 태핑한 후 제시된 것이다. 마이크 아이콘(372)은 디바이스가 음성 입력을 받을 준비가 되었음을 나타낸다. 사용자는 음성을 입력하고, 이 음성은 마이크 또는 유사한 디바이스일 수 있는 음성 입력 디바이스(1211)를 통해 수신된다. 사용자는 사용자가 음성 입력을 입력하는 것을 완료하였음을 나타내기 위해 완료 버튼(371)을 태핑한다.
음성 입력은 임의의 공지된 음성 텍스트 변환(speech-to-text) 알고리즘 또는 시스템을 사용하여 텍스트로 변환된다. 음성 텍스트 변환 기능은 디바이스(60) 상에 또는 서버 상에 존재할 수 있다. 하나의 실시예에서, 음성 텍스트 변환 기능은, 예를 들어, 미국 매사추세츠주 벌링턴 소재의 Nuance Communications, Inc.로부터 입수 가능한 Nuance Recognizer를 사용하여 구현된다.
도 3b에 도시된 바와 같이, 변환의 결과들이 필드(172)에 보여질 수 있다. 키보드(270)는 사용자가 필드(172)에 생성된 텍스트를 편집할 수 있게 하기 위해 제시될 수 있다. 사용자가 입력된 텍스트에 만족할 때, 사용자는 문자 메시지가 송신되게 하기 위해 송신 버튼(173)을 태핑한다.
도 2, 도 3a, 및 도 3b와 관련하여 기술된 예에서, 몇 개의 동작들은 사용자가 디스플레이 화면을 보고 그리고/또는 터치 입력을 제공할 것을 요구한다. 이러한 동작들은 다음과 같은 것들을 포함한다:
본 발명의 하나의 실시예에서, 음성 입력을 받고 처리하기 위한 메커니즘들은, 핸즈 프리 컨텍스트에 있을 때 사용자가 디스플레이 화면과 상호작용하고 그리고/또는 터치 인터페이스를 사용할 필요성을 감소시키는 방식으로, 디바이스(60)에 통합된다. 그에 따라, 본 발명의 시스템은 이와 같이 핸즈 프리 컨텍스트에서의 상호작용을 위한 개선된 사용자 인터페이스를 제공할 수 있다.
이제 도 4 및 도 5a 내지 도 5d를 참조하면, 핸즈 프리 컨텍스트가 인식되는 하나의 실시예에 따른, 문자 메시지를 수신하고 그에 답신하기 위한 인터페이스의 일례를 예시하는 일련의 스크린 샷들이 도시되어 있고; 이와 같이, 이 예에서, 본 발명의 기법들에 따라, 사용자가 화면과 상호작용할 필요성이 감소된다.
도 4에서, 화면(470)은 디바이스(60)가 잠금된 모드에 있는 동안 수신되는 문자 메시지(471)를 나타내고 있다. 사용자는 공지된 기법들에 따라 메시지(471)에 답신하거나 다른 방식으로 그와 상호작용하기 위해 슬라이더(472)를 활성화시킬 수 있다. 그렇지만, 이 예에서, 디바이스(60)는 보이지 않는 곳에 그리고/또는 손이 닿지 않는 곳에 있을 수 있거나, 사용자는, 예를 들어, 사용자가 운전 중이거나 어떤 다른 활동에 참여하고 있는 경우, 디바이스(60)와 상호작용할 수 없을 것이다. 본 명세서에 기술되는 바와 같이, 다중 모드 가상 어시스턴트(1002)는 이러한 핸즈 프리 컨텍스트에서 문자 메시지(471)를 수신하고 이에 답신하기 위한 기능을 제공한다.
하나의 실시예에서, 디바이스(60) 상에 설치된 가상 어시스턴트(1002)는 핸즈 프리 컨텍스트를 자동으로 검출한다. 이러한 검출은 사용자가 디바이스(60)의 화면과 상호작용하거나 GUI를 적절히 동작시키는 것이 어렵거나 불가능할 수 있는 시나리오 또는 상황을 결정하는 임의의 수단에 의해 일어날 수 있다.
제한이 아닌 예로서, 핸즈 프리 컨텍스트의 결정은 다음과 같은 것들 중 임의의 것에 기초하여, 단독으로 또는 임의의 조합으로, 행해질 수 있다:
센서들(예를 들어, 나침반, 가속도계, 자이로스코프, 속도계(예컨대, 디바이스(60)가 미리 결정된 속도로 이동하든 그를 초과하여 이동하든 관계없음), 주변 광 센서, 블루투스 연결 검출기, 시계, WiFi 신호 검출기, 마이크 등을 포함함)로부터의 데이터;
디바이스(60)가, 예를 들어, GPS를 통해 특정 지리적 위치에 있는 것으로 결정하는 것(예를 들어, 디바이스(60)가 도로 상에서 또는 그 근방에서 이동하고 있는 것으로 결정하는 것);
어시스턴트(1002)와의 상호작용을 트리거하기 위해 사용되는 특정의 신호(예를 들어, 사용자가 귀에 디바이스를 유지하는 움직임 제스처(motion gesture), 또는 블루투스 디바이스 상의 버튼을 누르는 것, 또는 접속된 오디오 디바이스 상의 버튼을 누르는 것);
단어들의 연속적인 스트림에서의 특정 단어들의 검출(예를 들어, 어시스턴트(1002)는 명령들이 있는지 리스닝하도록, 그리고 사용자가 그 이름을 부르거나 또는 "컴퓨터!"와 같은 어떤 명령을 말할 때 호출되도록 구성될 수 있고; 특정의 명령은 핸즈 프리 컨텍스트가 활성인지 여부를 나타낼 수 있음).
앞서 살펴본 바와 같이, 핸즈 프리 컨텍스트는 사용자가 움직이는 차량에 있거나 자동차를 운전하고 있다고 결정하는 것에 (적어도 부분적으로) 기초하여 자동으로 결정될 수 있다. 일부 실시예들에서, 이러한 결정은 사용자 입력 없이 그리고 디지털 어시스턴트가 사용자에 의해 별도로 호출되었는지 여부에 관계없이 행해진다. 예를 들어, 사용자가 어시스턴트(1002)와 상호작용하게 하는 디바이스는 디바이스 상의 운영 체제 내에서 실행되도록 구성되어 있는 다수의 애플리케이션들을 포함할 수 있다. 디바이스가 차량에 있다는 결정은, 따라서, 사용자가 디바이스 상에서의 즉각적인 실행을 위한 디지털 어시스턴트 애플리케이션을 선택하거나 활성화시켰는지 여부에 상관없이 행해질 수 있다. 일부 실시예들에서, 디지털 어시스턴트 애플리케이션이 운영 체제의 전경(foreground)에서 실행되고 있지 않거나, 디바이스 상에 그래픽 사용자 인터페이스를 디스플레이하고 있지 않은 동안 결정이 행해진다. 이와 같이, 일부 실시예들에서, 디바이스가 자신이 차량에 있는 것으로 결정하기 위해, 사용자가 디지털 어시스턴트 애플리케이션을 별도로 호출하는 것이 필요하지 않다. 일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 자동으로 결정하는 것은 디지털 어시스턴트 애플리케이션이 사용자에 의해 최근에 호출되었는지 여부에 관계없이 수행된다.
일부 실시예들에서, 핸즈 프리 컨텍스트를 자동으로 결정하는 것은 전자 디바이스가 제1 미리 결정된 속도로 또는 그를 초과하여 움직이고 있는 것을 검출하는 것에 (적어도 부분적으로) 기초할 수 있다. 예를 들어, 디바이스가 약 20 마일/시간 초과로 움직이고 있는 경우 - 사용자가 단지 걷고 있지는 않다는 것을 나타냄 -, 핸즈 프리 컨텍스트가 호출될 수 있다(이하에서 기술되는 바와 같은 리스닝 모드를 호출하는 것을 포함함). 일부 실시예들에서, 핸즈 프리 컨텍스트를 자동으로 결정하는 것은 전자 디바이스가 제2 미리 결정된 속도로 또는 그 미만으로 움직이고 있는 것을 검출하는 것에 추가적으로 기초할 수 있다. 이것은, 예를 들어, 사용자가 비행기에 있을 때 디바이스가 잘못하여 핸즈 프리 컨텍스트를 검출하는 것을 방지하는 데 유용하다. 일부 실시예들에서, 전자 디바이스가 약 150 마일/시간 미만으로 움직이고 있는 경우 - 사용자가 비행에 탑승하고 있지 않을 수 있다는 것을 나타냄 - 핸즈 프리 컨텍스트가 검출될 수 있다.
다른 실시예들에서, 사용자는 핸즈 프리 컨텍스트가 활성인지 또는 비활성인지를 수동으로 표시할 수 있고 그리고/또는 특정 시각들 및/또는 특정 요일들에 활성화하고 그리고/또는 비활성화하도록 핸즈 프리 컨텍스트를 스케줄링할 수 있다.
하나의 실시예에서, 핸즈 프리 컨텍스트에 있는 동안 문자 메시지(470)를 수신할 때, 다중 모드 가상 어시스턴트(1002)는 디바이스(60)로 하여금 문자 메시지의 수신을 나타내는, 삐 소리 또는 톤(tone)과 같은, 오디오 표시를 출력하게 한다. 앞서 기술된 바와 같이, 사용자는 공지된 기법들에 따라 메시지(471)에 답신하거나 다른 방식으로 상호작용하기 위해 슬라이더(472)를 활성화시킬 수 있다(예를 들어, 핸즈 프리 모드가 잘못 검출되는 경우, 또는 사용자가 운전하는 것을 중단하기로 선택하거나 다른 방식으로 그 자신이 디바이스(60)와 핸즈 온 상호작용을 할 수 있게 하는 경우). 대안적으로, 사용자는 핸즈 프리 방식으로 어시스턴트(1002)와의 상호작용을 가능하게 하기 위해 어시스턴트(1002)와의 음성 다이얼로그에 참여할 수 있다.
하나의 실시예에서, 사용자는 핸즈 프리 컨텍스트에 적절한 임의의 적당한 메커니즘에 의해 음성 다이얼로그를 개시한다. 예를 들어, 사용자가 블루투스 장착된 차량을 운전하고 있고 디바이스(60)가 차량과 통신하는 환경에서, 접근이 쉬운 버튼(예를 들어, 자동차의 운전대 상에 탑재된 버튼)이 이용 가능할 수 있다. 버튼을 누르는 것은 어시스턴트(1002)와의 음성 다이얼로그를 개시하며, 사용자가 블루투스 연결을 통해 그리고 차량에 설치된 마이크 및/또는 스피커를 통해 어시스턴트(1002)와 통신할 수 있게 한다. 대안적으로, 사용자는 디바이스(60) 자체 상의, 또는 헤드셋 상의, 또는 임의의 다른 주변 디바이스 상의 버튼을 누르는 것에 의해, 또는 사용자가 음성 다이얼로그를 개시하고자 한다는 것을 어시스턴트(1002)에게 신호하는 어떤 다른 구별되는 동작을 수행하는 것에 의해, 음성 다이얼로그를 개시할 수 있다. 다른 예로서, 사용자는, 이하에서 더 상세히 기술되는 바와 같이, 어시스턴트(1002)에 의해 이해되고 음성 다이얼로그를 개시하는 명령을 말할 수 있다. 통상의 기술자라면 사용자가 어시스턴트(1002)와의 음성 다이얼로그를 쉽게 개시할 수 있게 하기 위한 많은 다른 기법들이 제공될 수 있다는 것을 잘 알 것이다. 바람직하게는, 음성 다이얼로그를 개시하기 위해 사용되는 메커니즘은 사용자측에서 손과 눈의 협조를 요구하지 않고, 따라서 사용자가 운전과 같은 주된 작업에 집중할 수 있게 하고, 그리고/또는 도 2, 도 3a, 및 도 3b에 나타낸 것과 같이 GUI와 상호작용하는 사용자의 능력을 방해하거나, 억제하거나, 구속하거나, 제한하는 장애를 갖는 개인에 의해 수행될 수 있다.
음성 다이얼로그가 개시되면, 어시스턴트(1002)는 음성 입력이 있는지 리스닝한다. 하나의 실시예에서, 어시스턴트(1002)는 핸즈 프리 컨텍스트에 있는 동안 사용자에 의해 쉽게 검출되는 어떤 출력 메커니즘에 의해 음성 입력을 확인 응답한다. 일례는 오디오 삐 소리 또는 톤, 및/또는 운전 중에도 사용자가 쉽게 볼 수 있는 차량 대시보드 상에서의 시각적 출력, 그리고/또는 어떤 다른 메커니즘에 의한 것이다. 음성 입력은 공지된 음성 인식 기법들을 사용하여 처리된다. 어시스턴트(1002)는 이어서 음성 입력에 의해 표시되는 동작(들)을 수행한다. 하나의 실시예에서, 어시스턴트(1002)는, 사용자와의 오디오 다이얼로그를 계속하기 위해, 스피커들(디바이스(60)에 있거나 차량에 설치됨), 헤드폰들 등을 통해 출력될 수 있는 음성 출력을 제공한다. 예를 들어, 어시스턴트(1002)는 문자 메시지들, 이메일 메시지들 등의 내용을 읽을 수 있고, 옵션들을 사용자에게 음성 형태로 제공할 수 있다.
예를 들어, 사용자가 "내 새로운 메시지를 읽어"라고 말하는 경우, 어시스턴트(1002)는 디바이스(60)로 하여금 확인 응답 톤을 내게 할 수 있다. 어시스턴트(1002)는 이어서 "톰 데번으로부터의 새로운 메시지가 있습니다"와 같은 음성 출력을 낼 수 있다. 메시지는 "이봐, 게임하러 갈까?"라고 되어 있다. 텍스트를 음성으로 변환하기 위한 임의의 공지된 기법을 사용하여 어시스턴트(1002)에 의해 음성 출력이 생성될 수 있다. 하나의 실시예에서, 텍스트 음성 변환 기능은, 예를 들어, 미국 매사추세츠주 벌링턴 소재의 Nuance Communications, Inc.로부터 입수 가능한 Nuance Vocalizer를 사용하여 구현된다.
이제 도 5a를 참조하면, 사용자와 어시스턴트(1002) 사이에서의 구두 교환(verbal interchange)이 일어나는 동안 디바이스(60)의 화면 상에 제시될 수 있는 출력을 보여주는 스크린 샷(570)의 일례가 도시되어 있다. 어떤 핸즈 프리 상황들에서, 사용자는, 예를 들어, 디바이스(60)의 화면 상의 출력이 차량의 내비게이션 시스템의 디스플레이 화면 상에 똑같이 나오고 있는 경우, 화면을 볼 수 있지만 화면을 쉽게 터치할 수 없다. 도 5a 내지 도 5d에 나타낸 바와 같이, 음성 대화의 시각적 되풀이(visual echoing)는 사용자의 음성 입력이 어시스턴트(1002)에 의해 적절히 그리고 정확하게 이해되었는지를 사용자가 확인하는 데 도움을 줄 수 있고, 사용자가 어시스턴트(1002)의 음성 대답들을 이해하는 데 추가로 도움을 줄 수 있다. 그렇지만, 이러한 시각적 되풀이는 선택적이고, 본 발명은 디바이스(60)의 화면 상에 또는 다른 어딘가에 어떤 시각적 디스플레이도 없이 구현될 수 있다. 이와 같이, 사용자는 순전히 음성 입력 및 출력에 의해, 또는 시각적 및 음성 입력들 및/또는 출력들의 조합에 의해 어시스턴트(1002)와 상호작용할 수 있다.
이 예에서, 어시스턴트(1002)는 프롬프트(571)를 디스플레이하고 말한다. 사용자 입력에 응답하여, 어시스턴트(1002)는 디스플레이 상에 그리고/또는 음성 형태로 사용자 입력(572)을 반복한다. 어시스턴트는 이어서 착신 문자 메시지를 소개하고(573) 이를 읽는다. 하나의 실시예에서, 문자 메시지가 화면 상에도 디스플레이될 수 있다.
도 5b에 도시된 바와 같이, 착신 메시지를 사용자에게 읽어 준 후, 어시스턴트(1002)는 이어서 사용자가 "답신해 또는 메시지를 다시 읽어"라고 할 수 있다(574)고 사용자에게 말한다. 다시 말하지만, 이러한 출력은, 하나의 실시예에서, 음성 형태로(즉, 구두로) 제공된다. 이러한 방식으로, 본 발명의 시스템은, 사용자에게 텍스트 필드들, 버튼들, 및/또는 링크들을 보도록 요구하지 않고 온 스크린 객체들과의 상호작용 또는 터치에 의한 직접 조작을 요구하지 않는다는 점에서, 핸즈 프리 컨텍스트에 아주 적합한 방식으로 이용 가능한 동작들을 사용자에게 알려준다. 도 5b에 도시된 바와 같이, 하나의 실시예에서, 음성 출력이 화면 상에 되풀이되지만(574); 음성 출력의 이러한 디스플레이가 요구되지 않는다. 하나의 실시예에서, 화면 상에 표시되는 되풀이 메시지들은 공지된 메커니즘들에 따라 자동으로 위쪽으로 스크롤된다.
이 예에서, 사용자는 "그래, 6시에 갈게라고 답신해"라고 말한다. 도 5b에 나타낸 바와 같이, 하나의 실시예에서, 음성 입력이 제대로 이해되었다는 것을 사용자가 점검할 수 있도록, 사용자의 음성 입력이 되풀이된다(575). 그에 부가하여, 하나의 실시예에서, 어시스턴트(1002)는, 사용자가 화면을 볼 수 없을지라도 사용자의 명령에 대한 이해를 확인할 수 있도록, 사용자의 음성 입력을 청각적 형태로 반복한다. 이와 같이, 본 발명의 시스템은, 완전히 핸즈 프리 컨텍스트에서 그리고 실현 가능하지도 않고 현재 운영 환경에 그다지 적합하지 않은 방식으로 디바이스(60)와 상호작용하거나 화면을 보도록 사용자에게 요구하지 않고, 사용자가 답신 명령을 개시하고, 응답을 작성하며, 명령 및 작성된 응답이 제대로 이해되었다는 것을 확인할 수 있게 하는 메커니즘을 제공한다.
하나의 실시예에서, 어시스턴트(1002)는 메시지를 다시 읽어 주는 것에 의해 사용자의 작성된 문자 메시지의 추가적인 확인을 제공한다. 이 예에서, 어시스턴트(1002)는 "톰 데번에 대한 답신입니다: '그래, 6시에 갈게'"라고 구두로 말한다. 하나의 실시예에서, 인용 부호들의 의미는 음성 및/또는 운율의 변화들에 의해 전달된다. 예를 들어, 문자열 "톰 데번에 대한 답신입니다"는 남자 음성과 같은 하나의 음성으로 말해질 수 있는 반면, 문자열 "그래, 6시에 갈게"는 여자 음성과 같은 다른 음성으로 말해질 수 있다. 대안적으로, 동일한 음성이 사용될 수 있지만, 인용 부호들을 전달하기 위해 상이한 운율을 갖는다.
하나의 실시예에서, 어시스턴트(1002)는 도 5b 및 도 5c에 나타낸 바와 같이, 음성 교환의 시각적 되풀이를 제공한다. 도 5b 및 도 5c는 메시지(576)가 "톰 데번에 대한 답신입니다"라는 어시스턴트(1002)의 음성 출력을 되풀이하는 것을 나타내고 있다. 도 5c는 메시지의 수신자 및 내용을 포함하는, 작성된 문자 메시지의 요약(577)을 나타내고 있다. 도 5c에서, 이전 메시지들은 화면을 벗어나 위쪽으로 스크롤되었지만, 공지된 메커니즘들에 따라 아래쪽으로 스크롤함으로써 볼 수 있다. 송신 버튼(578)은 메시지를 송신하고; 취소 버튼(579)은 메시지를 취소시킨다. 하나의 실시예에서, 사용자는 또한 "송신" 또는 "취소"와 같은 키워드를 말하는 것에 의해 메시지를 송신하거나 취소시킬 수 있다. 대안적으로, 어시스턴트(1002)는 "송신할 준비가 되었습니까?"와 같은 음성 프롬프트를 생성할 수 있고; 다시 말하지만, 음성 프롬프트가 출력되는 동안 버튼들(578, 579)을 갖는 디스플레이(570)가 보여질 수 있다. 이어서, 사용자는 버튼(578, 579)들을 터치하는 것에 의해 또는 음성 프롬프트에 대답하는 것에 의해 사용자가 하고자 하는 것을 알려줄 수 있다. 사용자가 자신의 의도를 알리기 위해 임의의 특별한 어휘를 사용할 필요가 없도록, 프롬프트가 "예" 또는 "아니오" 응답을 허용하는 포맷으로 발행될 수 있다.
하나의 실시예에서, 어시스턴트(1002)는, 예를 들어, "네, 메시지를 송신하겠습니다"와 같은 음성 출력을 생성하는 것에 의해, 메시지를 송신하라는 사용자의 음성 명령을 확인할 수 있다. 도 5d에 도시된 바와 같이, 이 음성 출력은 전송되는 문자 메시지의 요약(581)과 함께, 화면(570) 상에서 되풀이될 수 있다(580).
앞서 기술된 음성 교환은, 선택적인 시각적 되풀이와 결합되어, 어시스턴트(1002)가 다중 모드 인터페이스에서 중복적인 출력들을 제공하는 일례를 예시한다. 이러한 방식으로, 어시스턴트(1002)는 아이즈 프리(eyes-free), 핸즈 프리, 및 완전한 핸즈 온을 비롯한 일정 범위의 컨텍스트들을 지원할 수 있다.
이 예는 또한 디스플레이되고 말해지는 출력이 그의 상이한 컨텍스트들을 반영하기 위해 서로 상이할 수 있게 하는 메커니즘들을 예시한다. 이 예는 또한 응답하기 위한 대안적인 메커니즘들이 이용 가능하게 되는 방식들을 예시한다. 예를 들어, 어시스턴트가 "송신할 준비가 되었습니까?"라고 말하고 도 5c에 도시된 화면(570)을 디스플레이한 후에, 사용자는 단어 "송신" 또는 "예"라고 말하거나 화면 상의 송신 버튼(578)을 태핑할 수 있다. 이 동작들 중 임의의 것이 어시스턴트(1002)에 의해 동일한 방식으로 해석될 것이고, 문자 메시지가 송신되게 할 것이다. 따라서, 본 발명의 시스템은 사용자와 어시스턴트(1002) 간의 상호작용과 관련하여 고도의 유연성을 제공한다.
이제 사용자가, 예를 들어, 오류들을 정정하거나 부가 내용을 추가하기 위해, 핸즈 프리 컨텍스트에서 문자 메시지(577)를 수정하는, 본 발명의 일 실시예에 따른 다중 모드 가상 어시스턴트(1002)의 동작의 일례를 예시한 일련의 스크린 샷들이 도시되어 있다. 도 3a 및 도 3b와 관련되어 앞서 기술된 바와 같은 직접 조작을 수반하는 시각적 인터페이스에서, 사용자는 텍스트 필드(172)의 내용을 편집하고 그에 의해 문자 메시지(577)를 수정하기 위해 가상 키보드(270) 상에서 타이핑할 수 있다. 이러한 동작들은 핸즈 프리 컨텍스트에서 실현 가능하지 않을 수 있기 때문에, 다중 모드 가상 어시스턴트(1002)는 문자 메시지(577)의 이러한 편집이 대화 인터페이스에서 음성 입력 및 출력을 통해 행해질 수 있게 하는 메커니즘을 제공한다.
하나의 실시예에서, 문자 메시지(577)가 (예를 들어, 사용자의 음성 입력에 기초하여) 작성되면, 다중 모드 가상 어시스턴트(1002)는 메시지가 송신될 준비가 되었다는 것을 사용자에게 알려주고 메시지가 송신되어야 하는지 여부를 사용자에게 질문하는 구두 출력을 생성한다. 사용자가, 구두 또는 직접 조작 입력을 통해, 메시지를 송신할 준비가 되지 않았다는 것을 나타내는 경우, 다중 모드 가상 어시스턴트(1002)는 메시지의 송신, 취소, 검토, 또는 변경과 같은 이용 가능한 옵션들을 사용자에게 알려주기 위해 음성 출력을 생성한다. 예를 들어, 어시스턴트(1002)는 "네, 메시지를 아직 전송하지 않겠습니다. 계속하기 위해, 메시지를 송신, 취소, 검토 또는 변경할 수 있습니다"라고 말할 수 있다.
도 6a에 도시된 바와 같이, 하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는, 메시지(770)를 디스플레이하여, 문자 메시지(577)와 관련하여 이용 가능한 옵션들을 사용자에게 시각적으로 알려주는 것에 의해, 음성 출력을 되풀이한다. 하나의 실시예에서, 문자 메시지(577)는, 문자 메시지(577)를 송신하거나 취소하기 위한 버튼들(각각, 578, 579)과 함께, 사용자가 필드(773) 내에서 태핑하는 것에 의해 메시지(577)를 편집할 수 있다는 것을 나타내기 위해, 편집 가능한 필드(773)에 디스플레이된다. 하나의 실시예에서, 편집 가능한 필드(773) 내에서 태핑하는 것은, 직접 조작에 의한 편집을 가능하게 하기 위해, 가상 키보드(도 3b에 나타낸 것과 유사함)를 호출한다.
사용자는 또한 음성 입력을 제공하는 것에 의해 어시스턴트(1002)와 상호작용할 수 있다. 이와 같이, 문자 메시지(577)와 상호작용하기 위한 옵션들을 제공하는 어시스턴트(1002)의 음성 메시지에 응답하여, 사용자는 "메시지를 변경해"라고 말할 수 있다. 어시스턴트(1002)는 음성 텍스트를 인식하고 수정된 메시지를 말하도록 사용자에게 프롬프트하는 구두 메시지로 응답한다. 예를 들어, 어시스턴트(1002)는 "네... 메시지를 뭐라고 할까요?"라고 말할 수 있고, 이어서 사용자의 응답이 있는지 리스닝하기 시작한다. 도 6b는 이러한 음성 프롬프트와 관련하여 보여질 수 있는 화면(570)의 일례를 나타낸 것이다. 다시 말하지만, 사용자의 음성 텍스트가,어시스턴트(1002)의 프롬프트(772)와 함께, 시각적으로 되풀이된다(771).
하나의 실시예에서, 사용자에게 이러한 방식으로 프롬프트하면, 사용자의 후속 음성 입력의 정확한 내용이 문자 메시지에 대한 내용으로서 해석되어, 사용자 명령들의 보통의 자연어 해석을 무시(bypass)한다. 입력에서의 충분한 길이의 일시 중지가 검출될 때, 또는 입력이 완료되었음을 나타내는 특정 단어의 검출 시, 또는 사용자가 문자 메시지를 말하는 것을 완료하였음을 나타내기 위해 사용자가 버튼을 누르거나 어떤 다른 명령을 활성화시켰음을 검출할 때, 사용자의 음성 입력이 완료된 것으로 가정된다. 하나의 실시예에서, 어시스턴트(1002)는 이어서 입력 문자 메시지를 음성 형태로 다시 반복하고, 선택적으로, 도 6c에 도시된 바와 같이 문자 메시지를 되풀이할 수 있다. 어시스턴트(1002)는 도 6c에 도시된 바와 같이 화면 상에도 되풀이될 수 있는 "송신할 준비가 되었습니까?"와 같은 음성 프롬프트(770)를 제안한다. 사용자는 이어서 "취소", "송신", "예" 또는 "아니오"라고 말하는 것에 의해 답신할 수 있고, 그 중 임의의 것이 어시스턴트(1002)에 의해 정확하게 해석된다. 대안적으로, 사용자는 원하는 동작을 호출하기 위해 화면 상의 버튼(578 또는 579)을 누를 수 있다.
이러한 방식으로 문자 메시지(577)를 수정하기 위한 메커니즘을 제공함으로써, 본 발명의 시스템은, 하나의 실시예에서, 사용자가 각각의 스테이지에서 상호작용 모드를 자유롭게 선택할 수 있도록 핸즈 온 접근법과 통합되는, 핸즈 프리 컨텍스트에 적절한 흐름 경로를 제공한다. 게다가, 하나의 실시예에서, 어시스턴트(1002)는 그의 자연어 처리 메커니즘을 전체적인 흐름에서의 특정의 단계들에 적응시키고; 예를 들어, 앞서 기술된 바와 같이, 어떤 상황들에서, 어시스턴트(1002)는 사용자에게 문자 메시지를 말하도록 프롬프트할 때 사용자 명령들의 보통의 자연어 해석을 무시하는 모드에 진입할 수 있다.
방법
하나의 실시예에서, 다중 모드 가상 어시스턴트(1002)는 핸즈 프리 컨텍스트를 검출하고, 핸즈 프리 동작에 대한 사용자 경험을 수정하도록 어시스턴트의 동작의 하나 이상의 스테이지들을 적응시킨다. 앞서 기술된 바와 같이, 핸즈 프리 컨텍스트의 검출은 다중 모드 가상 어시스턴트(1002)의 동작에 영향을 주기 위해 다양한 방식들로 적용될 수 있다.
도 7a는 일부 실시예들에 따른, 사용자 인터페이스를 적응시키는 방법(800)을 나타낸 흐름도이다. 일부 실시예들에서, 방법(800)은 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행하기 위한 하나 이상의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스(예컨대, 디바이스(60))에서 수행된다. 방법(800)은 자동으로, 사용자 입력 없이 그리고 디지털 어시스턴트 애플리케이션이 사용자에 의해 별도로 호출되었는지 여부에 관계없이, 전자 디바이스가 차량에 있는 것으로 결정하는 것(802)을 포함한다. 일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 자동으로 결정하는 것은 디지털 어시스턴트 애플리케이션이 사용자에 의해 최근에(예컨대, 약 이전 1 분, 2 분, 5 분 내에) 호출되었는지 여부에 상관없이 수행된다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 차량과 통신하는 것을 검출하는 것(806)을 포함한다. 일부 실시예들에서, 통신은 무선 통신이다. 일부 실시예들에서, 통신은 블루투스 통신이다. 일부 실시예들에서, 통신은 유선 통신이다. 일부 실시예들에서, 전자 디바이스가 차량과 통신하는 것을 검출하는 것은 전자 디바이스가 (예컨대, 무선 통신, 블루투스, 유선 통신 등을 통해) 차량의 음성 제어 시스템과 통신하는 것을 검출하는 것을 포함한다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 제1 미리 결정된 속도로 또는 그 초과로 움직이고 있다는 것을 검출하는 것(808)을 포함한다. 일부 실시예들에서, 제1 미리 결정된 속도는 약 20 마일/시간이다. 일부 실시예들에서, 제1 미리 결정된 속도는 약 10 마일/시간이다. 일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 제2 미리 결정된 속도로 또는 그 미만으로 움직이고 있다는 것을 검출하는 것(810)을 추가로 포함한다. 일부 실시예들에서, 제2 미리 결정된 속도는 약 150 마일/시간이다. 일부 실시예들에서, 전자 디바이스의 속도는 GPS 위치 정보; 가속도계 데이터; 무선 데이터 신호 정보; 및 속도계 정보로 이루어진 그룹 중 하나 이상을 사용하여 결정된다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 도로 상을 또는 그 근방을 이동하고 있다는 것을 검출하는 것(812)을 추가로 포함한다. 차량의 위치는 GPS 위치 정보, 셀룰러 타워 삼각측량, 및/또는 다른 위치 검출 기법들 및 기술들에 의해 결정될 수 있다.
도 7a로 돌아가면, 방법(800)은, 결정하는 것에 응답하여, 전자 디바이스에 의해 구현되는 가상 어시스턴트의 리스닝 모드를 호출하는 것(814)을 추가로 포함한다. 리스닝 모드들의 예시적인 실시예들이 본 명세서에 기술되어 있다. 일부 실시예들에서, 리스닝 모드는 전자 디바이스로 하여금 사용자로부터의 음성 입력이 있는지 계속하여 리스닝하게 한다(816). 일부 실시예들에서, 리스닝 모드는, 전자 디바이스가 충전 소스에 연결되어 있다는 것을 검출한 것에 응답하여, 전자 디바이스로 하여금 사용자로부터의 음성 입력이 있는지 계속하여 리스닝하게 한다. 일부 실시예들에서, 리스닝 모드는 전자 디바이스로 하여금 리스닝 모드의 개시 이후 미리 결정된 시간 동안(예컨대, 리스닝 모드의 개시 이후 약 5 분 동안) 사용자로부터의 음성 입력이 있는지 리스닝하게 한다. 일부 실시예들에서, 리스닝 모드는 전자 디바이스가 청각적 출력("삐 소리" 등)을 제공한 이후 전자 디바이스로 하여금 자동으로, 사용자로부터의 물리적 입력 없이, 사용자로부터의 음성 입력이 있는지 리스닝하게 한다(818).
일부 실시예들에서, 방법(800)은 또한 전자 디바이스가 차량에 있는 것으로 결정될 때, 디바이스(예컨대, 디바이스(60)) 및/또는 디지털 어시스턴트(예컨대, 어시스턴트(1002))의 기능을 제한하는 것을 포함한다. 일부 실시예들에서, 방법은, 전자 디바이스가 차량에 있는 것으로 결정한 것에 응답하여, 다음과 같은 조치들: 전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것을 제한하는 것; 전자 디바이스에 의해 제시되는 그래픽 사용자 인터페이스와 상호작용할 수 있는 것을 제한하는 것; 전자 디바이스의 물리적 컴포넌트를 사용할 수 있는 것을 제한하는 것; 전자 디바이스 상에서 터치 입력을 수행할 수 있는 것을 제한하는 것; 전자 디바이스 상의 키보드를 사용할 수 있는 것을 제한하는 것; 전자 디바이스 상의 하나 이상의 애플리케이션들을 실행할 수 있는 것을 제한하는 것; 전자 디바이스에 의해 인에이블되는 하나 이상의 기능들을 수행할 수 있는 것을 제한하는 것; 사용자에게 터치 입력을 요청하지 않도록 디바이스를 제한하는 것; 사용자로부터의 터치 입력에 응답하지 않도록 디바이스를 제한하는 것; 및 목록 내의 항목들의 양을 미리 결정된 양으로 제한하는 것 중 임의의 것을 (단독으로 또는 결합하여) 취하는 것을 포함한다.
이제 도 7b를 참조하면, 일부 실시예들에서, 방법(800)은 디바이스가 리스닝 모드에 있는 동안, 사용자가 말하는 웨이크업 단어(wake-up word)를 검출하는 것(822)을 추가로 포함한다. 웨이크업 단어는 디지털 어시스턴트(예컨대, 어시스턴트(1002))가 사용자로부터의 음성 입력이 있는지 리스닝하기 시작하라고 어시스턴트에 신호하는 트리거로서 인식하도록 구성되어 있는 임의의 단어일 수 있다. 방법은, 웨이크업 단어를 검출한 것에 응답하여, 사용자로부터의 음성 입력이 있는지 리스닝하는 것(824), 사용자로부터의 음성 입력을 수신하는 것(826), 및 음성 입력에 대한 응답을 생성하는 것(828)을 추가로 포함한다.
일부 실시예들에서, 방법(800)은 사용자로부터의 음성 입력을 수신하는 것(830); 음성 입력에 대한 응답을 생성하는 것 - 응답은 사용자에게 제시될 정보 항목들의 목록을 포함함 -(832); 및 정보 항목들을 청각적 출력 모드를 통해 출력하는 것 - 여기서, 전자 디바이스가 차량에 있지 않은 경우, 정보 항목들은 전자 디바이스의 디스플레이 화면 상에 제시되기만 할 것임 -(834)을 추가로 포함한다. 예를 들어, 어떤 경우들에서, 웹 검색에 응답하여 반환되는 정보 항목들이 디바이스 상에 시각적으로 디스플레이된다. 어떤 경우들에서, 정보 항목들이 (예컨대, 어떤 오디오도 없이) 시각적으로만 디스플레이된다. 이와 달리, 방법(800)의 이 양태는, 그 대신에, 어떤 시각적 출력도 없이, 정보 항목들에 대한 청각적 출력만을 제공한다.
이제 도 7c를 참조하면, 일부 실시예들에서, 방법(800)은 사용자로부터의 음성 입력을 수신하는 것 - 여기서 음성 입력은 수신자로 송신될 내용에 대응함 -(836)을 추가로 포함한다. 일부 실시예들에서, 내용은 문자 메시지, 이메일 메시지 등을 통해 수신자로 송신될 수 있다. 방법은 음성 입력에 대응하는 텍스트를 생성하는 것(838), 및 청각적 출력 모드를 통해 텍스트를 출력하는 것 - 여기서 전자 디바이스가 차량에 있지 않은 경우, 텍스트가 전자 디바이스의 디스플레이 화면 상에 제시되기만 할 것임 -(840)을 추가로 포함한다. 예를 들어, 어떤 경우들에서, 음성 입력으로부터 전사(transcribe)되는 메시지 내용이 디바이스 상에 시각적으로 디스플레이된다. 어떤 경우들에서, 메시지 내용이 (예컨대, 어떤 오디오도 없이) 시각적으로만 디스플레이된다. 이와 달리, 방법(800)의 이 양태는, 그 대신에, 어떤 시각적 출력도 없이, 전사된 텍스트에 대한 청각적 출력만을 제공한다.
일부 실시예들에서, 방법은 텍스트를 수신자에게 송신하기 전에 확인을 요청하는 것(842)을 추가로 포함한다. 일부 실시예들에서, 확인을 요청하는 것은, 청각적 출력 모드를 통해, 텍스트가 수신자로 송신되어야 하는지 여부를 사용자에게 질문하는 것을 포함한다.
도 7d는 일부 실시예들에 따른, 사용자 인터페이스를 적응시키는 방법(850)을 나타낸 흐름도이다. 일부 실시예들에서, 방법(850)은 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행하기 위한 하나 이상의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서 수행된다.
방법(850)은 자동으로, 사용자 입력 없이, 전자 디바이스가 차량에 있는 것으로 결정하는 것(852)을 포함한다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 차량과 통신하는 것을 검출하는 것(854)을 포함한다. 일부 실시예들에서, 통신은 무선 통신이다. 일부 실시예들에서, 통신은 블루투스 통신이다. 일부 실시예들에서, 통신은 유선 통신이다. 일부 실시예들에서, 전자 디바이스가 차량과 통신하는 것을 검출하는 것은 전자 디바이스가 (예컨대, 무선 통신, 블루투스, 유선 통신 등을 통해) 차량의 음성 제어 시스템과 통신하는 것을 검출하는 것을 포함한다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 제1 미리 결정된 속도로 또는 그 초과로 움직이고 있다는 것을 검출하는 것(856)을 포함한다. 일부 실시예들에서, 제1 미리 결정된 속도는 약 20 마일/시간이다. 일부 실시예들에서, 제1 미리 결정된 속도는 약 10 마일/시간이다. 일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 제2 미리 결정된 속도로 또는 그 미만으로 움직이고 있다는 것을 검출하는 것(858)을 추가로 포함한다. 일부 실시예들에서, 제2 미리 결정된 속도는 약 150 마일/시간이다. 일부 실시예들에서, 전자 디바이스의 속도는 GPS 위치 정보; 가속도계 데이터; 무선 데이터 신호 정보; 및 속도계 정보로 이루어진 그룹 중 하나 이상을 사용하여 결정된다.
일부 실시예들에서, 전자 디바이스가 차량에 있는 것으로 결정하는 것은 전자 디바이스가 도로 상을 또는 그 근방을 이동하고 있다는 것을 검출하는 것(860)을 추가로 포함한다. 차량의 위치는 GPS 위치 정보, 셀룰러 타워 삼각측량, 및/또는 다른 위치 검출 기법들 및 기술들에 의해 결정될 수 있다.
방법(850)은, 결정하는 것에 응답하여, 앞서 기술된 바와 같이, 전자 디바이스의 특정 기능들을 제한하는 것을 추가로 포함한다. 예를 들어, 일부 실시예들에서, 디바이스의 특정 기능들을 제한하는 것은 청각적 출력 모드를 위해 시각적 출력 모드를 비활성화시키는 것(864)을 포함한다. 일부 실시예들에서, 시각적 출력 모드를 비활성화시키는 것은 전자 디바이스가 디스플레이할 수 있는 시각적 출력들의 부분집합의 디스플레이를 금지하는 것(866)을 포함한다.
이제 도 7e를 참조하면, 하나의 실시예에 따른, 핸즈 프리 컨텍스트의 동적 검출 및 핸즈 프리 콘텍스트에 대한 동적 적응을 지원하는 가상 어시스턴트(1002)의 동작의 방법(10)을 나타낸 흐름도가 도시되어 있다. 방법(10)은 다중 모드 가상 어시스턴트(1002)의 하나 이상의 실시예들과 관련되어 구현될 수 있다. 도 7에 나타낸 바와 같이, 핸즈 프리 컨텍스트는, 하나의 실시예에 따른, 다중 모드 가상 어시스턴트(1002)에서 다양한 처리 스테이지들에서 사용될 수 있다.
적어도 하나의 실시예에서, 방법(10)은, 예를 들어, 다음과 같은 것들(또는 이들의 조합들) 중 하나 이상과 같은 다양한 유형들의 기능들, 동작들, 조치들, 및/또는 다른 특징들을 수행하고 그리고/또는 구현하도록 동작 가능할 수 있다:
사용자와 다중 모드 가상 어시스턴트(1002) 사이에서의 대화 인터페이스의 인터페이스 제어 흐름 루프를 실행한다. 방법(10)의 적어도 하나의 반복은 대화에서의 왕복(ply)으로서 역할할 수 있다. 대화 인터페이스는 사용자와 어시스턴트(1002)가 대화 방식으로 발언들을 주고 받는 것에 의해 통신하는 인터페이스이다.
다중 모드 가상 어시스턴트(1002)의 컴포넌트들간의 통신을 조정한다. 즉, 절차는 하나의 컴포넌트의 출력이 어디에서 다른 컴포넌트에 피드되는지와, 환경으로부터의 전체적인 입력 및 환경에 대한 조치가 어디에서 행해질 수 있는지를 지시할 수 있다.
적어도 일부 실시예들에서, 방법(10)의 부분들은 또한 컴퓨터 네트워크의 다른 디바이스들 및/또는 시스템들에서 구현될 수 있다.
특정 실시예들에 따르면, 방법(10)의 다수의 인스턴스(instance)들 또는 스레드(thread)들이 하나 이상의 프로세서들(63) 및/또는 하드웨어 및/또는 하드웨어와 소프트웨어의 다른 조합들의 사용을 통해 동시에 구현되고 그리고/또는 개시될 수 있다. 적어도 하나의 실시예에서, 방법(10)의 하나 이상 또는 선택된 부분들은 하나 이상의 클라이언트(들)(1304)에서, 하나 이상의 서버(들)(1340)에서, 그리고/또는 이들의 조합들로 구현될 수 있다.
예를 들어, 적어도 일부 실시예들에서, 방법(10)의 다양한 양태들, 특징들, 및/또는 기능들이 소프트웨어 컴포넌트들, 네트워크 서비스들, 데이터베이스들 및/또는 기타, 또는 이들의 임의의 조합에 의해 수행, 구현, 및/또는 개시될 수 있다.
상이한 실시예들에 따르면, 방법(10)의 하나 이상의 상이한 스레드들 또는 인스턴스들이, 방법(10)의 적어도 하나의 인스턴스의 개시를 트리거하기 위한 (예를 들어, 최소 임계치 기준들과 같은) 하나 이상의 상이한 유형들의 기준들을 만족시키는 하나 이상의 조건들 또는 이벤트들의 검출에 응답하여 개시될 수 있다. 방법의 하나 이상의 상이한 스레드들 또는 인스턴스들의 개시 및/또는 구현을 트리거할 수 있는 다양한 유형들의 조건들 또는 이벤트들의 예들은 다음과 같은 것들(또는 이들의 조합들) 중 하나 이상을 포함할 수 있지만 이들로 한정되지 않는다:
헤드셋, 전화기 핸드셋 또는 기지국, GPS 내비게이션 시스템, 소비자 가전 기기, 리모콘, 또는 어시스턴트를 호출하는 것과 연관될 수 있는 버튼을 갖는 임의의 다른 디바이스와 같은, 주변 디바이스 상의 버튼이 컴퓨터 또는 모바일 디바이스에 접속되는 것;
예를 들어, 다중 모드 가상 어시스턴트(1002) 서비스가 요청되는, 기존의 웹 브라우저 세션 내부로부터 다중 모드 가상 어시스턴트(1002)를 구현하는 웹 사이트로의 상호작용이 시작되는 것;
상이한 실시예들에 따르면, 방법(10)의 하나 이상의 상이한 스레드들 또는 인스턴스들이 수동으로, 자동으로, 정적으로, 동적으로, 동시에, 그리고/또는 이들의 조합들로 개시되고 그리고/또는 구현될 수 있다. 그에 부가하여, 방법(10)의 상이한 인스턴스들 및/또는 실시예들이 하나 이상의 상이한 시간 간격들로(예컨대, 특정 시간 구간 동안에, 규칙적인 주기적 간격들로, 불규칙적인 주기적 간격들로, 요구 시 등에) 개시될 수 있다.
적어도 하나의 실시예에서, 방법(10)의 주어진 인스턴스는 본 명세서에 기술된 바와 같이 핸즈 프리 컨텍스트의 검출을 비롯하여, 특정 작업들 및/또는 동작들을 수행할 때 다양한 상이한 유형들의 데이터 및/또는 다른 유형들의 정보를 이용 및/또는 생성할 수 있다. 데이터는 또한 임의의 다른 유형의 입력 데이터/정보 및/또는 출력 데이터/정보를 포함할 수 있다. 예를 들어, 적어도 하나의 실시예에서, 방법(10)의 적어도 하나의 인스턴스는 예를 들어 하나 이상의 데이터베이스들과 같은 하나 이상의 상이한 유형들의 소스들로부터의 정보에 액세스하고, 그를 처리하며, 그리고/또는 다른 방식으로 이용할 수 있다. 적어도 하나의 실시예에서, 데이터베이스 정보의 적어도 일부분은 하나 이상의 로컬 및/또는 원격 메모리 디바이스들과의 통신을 통해 액세스될 수 있다. 그에 부가하여, 방법(10)의 적어도 하나의 인스턴스는, 예를 들어, 로컬 메모리 및/또는 원격 메모리 디바이스들에 저장될 수 있는 하나 이상의 상이한 유형들의 출력 데이터/정보를 생성할 수 있다.
적어도 하나의 실시예에서, 방법(10)의 주어진 인스턴스의 초기 구성은 하나 이상의 상이한 유형들의 초기화 파라미터들을 사용하여 수행될 수 있다. 적어도 하나의 실시예에서, 초기화 파라미터들의 적어도 일부분은 하나 이상의 로컬 및/또는 원격 메모리 디바이스들과의 통신을 통해 액세스될 수 있다. 적어도 하나의 실시예에서, 방법(10)의 인스턴스에 제공되는 초기화 파라미터들의 적어도 일부분은 입력 데이터/정보에 대응할 수 있고 그리고/또는 그로부터 도출될 수 있다.
도 7e의 특정의 예에서, 단일 사용자가 음성 입력 기능을 갖는 클라이언트 애플리케이션으로부터 네트워크를 통해 다중 모드 가상 어시스턴트(1002)의 인스턴스에 액세스하는 것으로 가정된다. 하나의 실시예에서, 어시스턴트(1002)는 모바일 컴퓨팅 디바이스, PDA, 휴대폰, 스마트폰, 랩톱, 태블릿 컴퓨터, 소비자 전자 디바이스, 음악 플레이어 등과 같은 디바이스(60) 상에 설치된다. 어시스턴트(1002)는 사용자들이 (예를 들어, 터치스크린을 통해) 그래픽 사용자 인터페이스를 직접 조작하고 그리고/또는 디스플레이하는 것뿐만 아니라 음성 입력 및 출력을 통해 어시스턴트(1002)와 상호작용할 수 있게 하는 사용자 인터페이스와 관련하여 동작한다.
디바이스(60)는 디바이스가 핸즈 프리 컨텍스트에 있는지 여부를 검출(20)하기 위해 분석될 수 있는 현재 상태(11)를 갖는다. 핸즈 프리 컨텍스트는, 자동이든 수동이든 간에, 임의의 적용 가능한 검출 메커니즘 또는 메커니즘들의 조합을 사용하여, 상태(11)에 기초하여, 검출(20)될 수 있다. 예들이 앞서 기재되어 있다.
핸즈 프리 컨텍스트가 검출(20)될 때, 그 정보는, 2011년 9월 30일자로 출원된 발명의 명칭이 "가상 어시스턴트에서의 명령들의 처리를 용이하게 하기 위한 컨텍스트 정보의 사용"인 관련된 미국 특허 출원 제13/250,854호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 기술된 바와 같이, 다양한 프로세스들을 어시스턴트에 통보하기 위해 사용될 수 있는 다른 컨텍스트 정보(1000)에 추가된다.
음성 입력이 유도되고 해석된다(100). 유도는 임의의 적합한 모드로 프롬프트들을 제시하는 것을 포함할 수 있다. 이와 같이, 핸즈 프리 컨텍스트가 검출되는지 여부에 따라, 다양한 실시예들에서, 어시스턴트(1002)는 몇몇 입력 모드들 중 하나 이상을 제안할 수 있다. 이들은, 예를 들어, 다음과 같은 것들을 포함할 수 있다:
예를 들어, 핸즈 프리 컨텍스트가 검출되는 경우, 음성 입력은 톤 또는 다른 가청 프롬프트에 의해 유도될 수 있고, 사용자의 음성이 텍스트로서 해석될 수 있다. 그렇지만, 통상의 기술자는 다른 입력 모드들이 제공될 수 있다는 것을 잘 알 것이다.
단계(100)의 출력은 입력 음성의 텍스트의 후보 해석들의 집합일 수 있다. 이 후보 해석들의 집합은, 텍스트 입력을 파싱하여 사용자의 의도의 가능한 의미 해석들의 집합을 생성하는 언어 해석기(2770)(자연어 처리기(natural language processor) 또는 NLP라고도 지칭됨)에 의해 처리된다(200).
단계(300)에서, 사용자의 의도의 이 표현(들)은, 사용자의 의도를 작업 단계들로서 동작화하기 위해 다이얼로그 및 흐름 분석 절차의 일 실시예를 구현하는 다이얼로그 흐름 처리기(2780)에 전달된다. 다이얼로그 흐름 처리기(2780)는 의도의 어떤 해석이 가장 가능성이 높은지를 결정하고, 작업 모델의 파라미터들 및 도메인 모델들의 인스턴스들에 이 해석을 매핑하며, 작업 흐름에서의 다음 흐름 단계를 결정한다. 적절한 경우, 핸즈 프리 동작에 적응된 하나 이상의 작업 흐름 단계(들)가 선택된다(310). 예를 들어, 앞서 기술된 바와 같이, 핸즈 프리 컨텍스트가 검출될 때 문자 메시지를 수정하기 위한 작업 흐름 단계(들)가 상이할 수 있다.
단계(400)에서, 식별된 흐름 단계(들)가 실행된다. 하나의 실시예에서, 흐름 단계(들)의 호출은 사용자의 요청을 대신하여 서비스들의 집합을 호출하는 서비스들 오케스트레이션 컴포넌트(2782)에 의해 수행된다. 하나의 실시예에서, 이 서비스들은 일부 데이터를 공통 결과에 제공한다.
단계(500)에서, 다이얼로그 응답이 생성된다. 하나의 실시예에서, 다이얼로그 응답 생성(500)은 핸즈 프리 컨텍스트의 상태에 의해 영향을 받는다. 이와 같이, 핸즈 프리 컨텍스트가 검출될 때, 상이한 및/또는 부가적인 다이얼로그 유닛들이 오디오 채널을 사용하여 제시하기 위해 선택될 수 있다(510). 예를 들어, "송신할 준비가 되었습니까?"와 같은 부가 프롬프트들이 구두로 말해지고 꼭 화면 상에 디스플레이되지 않을 수 있다. 하나의 실시예에서, 핸즈 프리 컨텍스트의 검출은, 예를 들어, 입력을 확인하기 위해, 부가 입력(520)이 있는지 프롬프트하는 것에 영향을 줄 수 있다.
단계(700)에서, 다중 모드 출력(하나의 실시예에서, 구두 및 시각적 내용을 포함함)이 사용자에게 제공되고, 사용자는 이어서, 선택적으로, 또다시 음성 입력을 사용하여 응답할 수 있다.
응답을 보고 그리고/또는 들은 후에, 사용자가 끝내는 경우(790), 방법이 종료된다 사용자가 끝내지 않는 경우, 단계(100)로 되돌아감으로써 루프의 다른 반복이 개시된다.
본 명세서에 기술된 바와 같이, 검출된 핸즈 프리 컨텍스트를 포함한 컨텍스트 정보(1000)가 방법(10)의 다양한 단계들에 영향을 미치기 위해 시스템의 다양한 컴포넌트들에 의해 사용될 수 있다. 예를 들어, 도 7e에 나타낸 바와 같이, 핸즈 프리 컨텍스트를 포함한 컨텍스트(1000)는 단계들(100, 200, 300, 310, 500, 510, 및/또는 520)에서 사용될 수 있다. 그렇지만, 통상의 기술자는 핸즈 프리 컨텍스트를 포함한 컨텍스트 정보(1000)의 사용이 이 특정 단계들로 한정되지 않는다는 것과, 시스템이 본 발명의 필수적인 특성들로부터 벗어나지 않고, 다른 지점들에서도 컨텍스트 정보를 사용할 수 있다는 것을 잘 알 것이다. 어시스턴트(1002)의 동작의 다양한 단계들에서 컨텍스트(1000)를 사용하는 것의 추가 설명은 2011년 9월 30일자로 출원된 발명의 명칭이 "가상 어시스턴트에서의 명령들의 처리를 용이하게 하기 위한 컨텍스트 정보의 사용"인 관련된 미국 특허 출원 제13/250,854호에, 그리고 2009년 6월 5일자로 출원된, "컨텍스트 음성 명령"에 대한 관련된 미국 특허 출원 제12/479,477호에 제공되어 있으며, 이 미국 출원들의 개시 내용은 참고로 그 전체가 본 명세서에 포함된다.
게다가, 통상의 기술자라면 방법(10)의 상이한 실시예들이 도 7에 나타낸 특정 실시예에 예시된 것들 외에 부가 특징들 및/또는 동작들을 포함할 수 있고 그리고/또는 도 7의 특정 실시예에 예시된 바와 같은 방법(10)의 특징들 및/또는 동작들의 적어도 일부분을 생략할 수 있다는 것을 잘 알 것이다.
핸즈 프리 컨텍스트에 대한 단계들(100, 200, 300, 310, 500, 510, 및/또는 520)의 적응이 이하에 보다 상세히 기술된다.
핸즈 프리 컨텍스트에 대한 입력 유도 및 해석(100)의 적응
음성 입력의 유도 및 해석(100)은, 몇 가지 방식들 중 임의의 것으로, 단독으로 또는 임의의 조합으로, 핸즈 프리 컨텍스트에 적응될 수 있다. 앞서 기술된 바와 같이, 하나의 실시예에서, 핸즈 프리 컨텍스트가 검출되는 경우, 음성 입력은 톤 및/또는 다른 가청 프롬프트에 의해 유도될 수 있고, 사용자의 음성이 텍스트로서 해석된다. 일반적으로, 다중 모드 가상 어시스턴트(1002)는 오디오 입력을 위한 다수의 가능한 메커니즘들(예를 들어, 블루투스 연결 마이크들 또는 다른 접속된 주변 기기들 등), 및 어시스턴트(1002)를 호출하기 위한 다수의 가능한 메커니즘들(예를 들어, 주변 기기 상의 버튼을 누르는 것 또는 디바이스(60)에 근접하여 움직임 제스처를 사용하는 것 등)을 제공할 수 있다. 어시스턴트(1002)가 어떻게 호출되는지 그리고/또는 어떤 메커니즘이 오디오 입력을 위해 사용되는지에 관한 정보는 핸즈 프리 컨텍스트가 활성인지 여부를 표시하기 위해 사용될 수 있고 핸즈 프리 경험을 변경하기 위해 사용될 수 있다. 보다 상세하게는, 이러한 정보는 입력 및 출력을 위해 특정의 오디오 경로를 사용하라고 단계(100)에 지시하기 위해 사용될 수 있다.
그에 부가하여, 핸즈 프리 컨텍스트가 검출될 때, 오디오 입력 디바이스들이 사용되는 방식이 변경될 수 있다. 예를 들어, 핸즈 온 모드에서, 인터페이스는 어시스턴트(1002)로 하여금 음성 입력이 있는지 리스닝하기 시작하게 하기 위해 사용자에게 버튼을 누르거나 물리적 제스처를 행하도록 요구할 수 있다. 핸즈 프리 모드에서는, 이와 달리, 인터페이스는 어시스턴트(1002)에 의한 출력의 모든 인스턴스 후에 입력하라고 계속해서 프롬프트할 수 있거나, 양 방향으로 연속적인 음성을 가능하게 할 수 있다(어시스턴트(1002)가 여전히 말하는 동안 사용자가 어시스턴트(1002)를 중단시킬 수 있게 함).
핸즈 프리 컨텍스트에 대한 자연어 처리(200)의 적응
자연어 처리(NLP)(200)는, 예를 들어, 핸즈 프리 동작에 특히 아주 적합한 특정의 음성 응답들에 대한 지원을 추가함으로써, 핸즈 프리 컨텍스트에 적응될 수 있다. 이러한 응답은, 예를 들어 "예", "메시지를 읽어" 그리고 "그것을 변경해"를 포함할 수 있다. 하나의 실시예에서, 이러한 응답들에 대한 지원은 핸즈 온 상황에서 사용 가능한 음성 명령들에 대한 지원에 부가하여 제공될 수 있다. 이와 같이, 예를 들어, 하나의 실시예에서, 사용자는 스크린 상에 나타나는 명령을 말함으로써 그래픽 사용자 인터페이스를 동작시킬 수 있을 것이다(예를 들어, "송신"으로 라벨링된 버튼이 스크린 상에 나타날 때, 음성 단어 "송신" 및 그의 의미적 동등물들을 이해하는 것에 대한 지원이 제공될 수 있다). 핸즈 프리 컨텍스트에서, 사용자가 화면을 볼 수 없을지도 모른다는 사실을 참작하기 위해 부가 명령들이 인식될 수 있다.
핸즈 프리 컨텍스트의 검출은 또한 어시스턴트(1002)에 의한 단어들의 해석을 변경할 수 있다. 예를 들어, 핸즈 프리 컨텍스트에서, 어시스턴트(1002)는 명령 "조용히 해!"
및 그의 의미적 변형들을 인식하기 위해 그리고 이러한 코멘트에 응답하여 모든 오디오 출력을 끄기 위해 조정될 수 있다. 비핸즈 프리 컨텍스트에서, 이러한 명령은 관련성이 없는 것으로서 무시될 수 있다.
핸즈 프리 컨텍스트에 대한 작업 흐름(300)의 적응
사용자의 의도와 연관된 작업(들), 작업(들)에 대한 파라미터(들) 및/또는 실행할 작업 흐름 단계들(300)을 식별하는 것을 포함하는 단계(300)는 몇 개의 방식들 중 임의의 것으로, 단독으로 또는 조합하여, 핸즈 프리 컨텍스트에 대해 적응될 수 있다.
하나의 실시예에서, 핸즈 프리 동작에 적응된 하나 이상의 부가 작업 흐름 단계(들)가 동작을 위해 선택된다(310). 예들은 구두로 내용을 검토하고 확인하기 위한 단계들을 포함한다. 그에 부가하여, 핸즈 프리 컨텍스트에서, 어시스턴트(1002)는 그렇지 않았으면 디스플레이 화면 상에 제공될 결과들의 목록들을 읽어줄 수 있다.
일부 실시예들에서, 핸즈 프리 컨텍스트가 검출될 때, 통상 (예컨대, 핸즈 온 모드에서) 시각적 인터페이스를 통해서만 디스플레이될 항목들이, 그 대신에, 청각적 출력 모드를 통해서만 사용자에게 출력된다. 예를 들어, 사용자는 웹 검색을 요청하는 음성 입력을 제공할 수 있고, 따라서, 어시스턴트(1002)로 하여금 사용자에게 제시될 정보 항목들의 목록을 포함하는 응답을 생성하게 한다. 비핸즈 프리 컨텍스트에서, 이러한 목록이, 어떤 청각적 출력도 없이, 시각적 출력만을 통해 사용자에게 제시될 수 있다. 그렇지만, 핸즈 프리 컨텍스트에서, 사용자가 이러한 목록들을 읽는 것이 어렵거나 안전하지 않을 수 있다. 그에 따라, 어시스턴트(1002)는, 목록을 시각적 인터페이스 상에 디스플레이하는 대신에, 목록을 전체적으로 또는 단축되거나 요약된 버전으로 크게 말할 수 있다.
어떤 경우들에서, 전형적으로 시각적 인터페이스를 통해서만 디스플레이되는 정보는 청각적 출력 모드들에 적응되지 않는다. 예를 들어, 레스토랑들에 대한 전형적인 웹 검색은 이름, 주소, 영업 시간, 전화 번호, 사용자 평가 등과 같은 다수의 정보를 포함하는 결과들을 반환할 것이다. 이 항목들은 (모바일 디바이스 상의 터치스크린과 같은) 화면 상에 목록으로 디스플레이되는 것에 아주 적합하다. 그러나, 이 정보 모두가 꼭 핸즈 프리 컨텍스트에서 필요한 것은 아닐 수 있고, 그 정보가 곧바로 음성 출력으로 변환된다면 혼란스럽거나 이해하기 어려울 수 있다. 예를 들어, 레스토랑 결과들의 목록의 디스플레이된 성분들 모두를 말하는 것은 아주 혼란스러울 수 있고, 보다 긴 목록들에 대해서 특히 그렇다. 더욱이, 운전 중과 같은 핸즈 프리 컨텍스트에서, 사용자는 최상위 정보(예컨대, 레스토랑들의 이름들 및 주소들)만을 필요로 할 수 있다. 이와 같이, 일부 실시예들에서, 어시스턴트(1002)는 (목록에서의 항목들과 같은) 정보 항목들을, 사용자가 보다 쉽게 이해할 수 있도록, 요약하거나 단축시킨다. 이상의 예를 계속하면, 어시스턴트(1002)는 레스토랑 결과들의 목록을 수신하고 각각의 결과에서의 정보의 부분집합(각각의 결과에 대한 레스토랑 이름 및 도로명, 또는 레스토랑 이름 및 평가 정보(예컨대, 별 4 개), 기타 등등)만을 크게 읽어줄 수 있다. 목록들 및/또는 목록들 내의 정보 항목들을 요약하거나 단축시키는 다른 방식들도 본 개시 내용에 의해 생각되고 있다.
일부 실시예들에서, 목록에서의 개개의 항목들과 상호작용하기 위해 구두 명령들이 제공될 수 있다. 예를 들어, 몇 개의 착신 문자 메시지들이 사용자에게 제시되어야 하고, 핸즈 프리 컨텍스트가 검출되는 경우, 식별된 작업 흐름 단계들은 각각의 문자 메시지를 개별적으로 크게 읽어주는 것, 그리고 사용자가 음성 명령을 제공할 수 있게 하기 위해 각각의 메시지 이후에서 일시 중지하는 것을 포함할 수 있다. 일부 실시예들에서, (예컨대, 웹 검색으로부터의) 검색 결과들의 목록이 사용자에게 제시되어야 하고, 핸즈 프리 컨텍스트가 검출되는 경우, 식별된 작업 흐름 단계들은 각각의 검색 결과(전체 결과 또는 단축되거나 요약된 버전)를 개별적으로 크게 읽어주는 것, 그리고 사용자가 음성 명령을 제공할 수 있게 하기 위해 각각의 결과 이후에서 일시 중지하는 것을 포함할 수 있다.
하나의 실시예에서, 핸즈 프리 컨텍스트에 대해 작업 흐름들이 수정될 수 있다. 예를 들어, 메모 애플리케이션에서 메모하기 위한 작업 흐름은 통상적으로 내용이 있는지 프롬프트하는 것 및 내용을 메모에 즉각 추가하는 것을 포함할 수 있다. 이러한 동작은, 내용이 시각적 인터페이스에 즉시 보여지고 직접 조작에 의한 즉각 수정될 수 있는 핸즈 온 환경에서 적절할 수 있다. 그렇지만, 핸즈 프리 컨텍스트가 검출될 때, 예를 들어, 내용이 메모에 추가되기 전에 내용을 구두로 검토하고 내용의 수정을 가능하게 하기 위해 작업 흐름이 수정될 수 있다. 이것은 음성 구술 오류들이 영구적 문서에 저장되기 전에 사용자가 음성 구술 오류들을 잡아낼 수 있게 한다.
하나의 실시예에서, 핸즈 프리 컨텍스트는 또한 주어진 시각에 허용되는 작업들 또는 기능들을 제한하기 위해 사용될 수 있다. 예를 들어, 사용자의 디바이스가 핸즈 프리 컨텍스트, 또는 차량을 운전하는 중과 같은 특정 핸즈 프리 컨텍스트에 있을 때, 비디오들을 재생하는 것을 불허하도록 정책이 구현될 수 있다. 일부 실시예들에서, 핸즈 프리 컨텍스트가 결정될 때(예컨대, 차량을 운전하는 중임), 디바이스(60)는 전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것을 제한한다. 이것은 다음과 같은 방식들 중 임의의 것으로(개별적으로 또는 임의의 조합으로) 디바이스를 제한하는 것을 포함할 수 있다:
전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것을 제한하는 것(예를 들어, 화면/시각적 출력 모드를 비활성화시키는 것, 비디오들 및/또는 영상들의 디스플레이를 금지시키는 것, 큰 텍스트를 디스플레이하는 것, 목록들(예컨대, 검색 결과들)의 길이들을 제한하는 것, 화면 상에 디스플레이되는 시각적 항목들의 개수를 제한하는 것 등);
전자 디바이스에 의해 제시되는 그래픽 사용자 인터페이스와 상호작용할 수 있는 것을 제한하는 것(예를 들어, 사용자에게 터치 입력을 요청하지 않도록 디바이스를 제한하는 것, 사용자로부터의 터치 입력에 응답하지 않도록 디바이스를 제한하는 것 등);
전자 디바이스의 물리적 컴포넌트를 사용할 수 있는 것을 제한하는 것(예를 들어, 볼륨 버튼, "홈" 버튼, 전원 버튼 등과 같은, 디바이스 상의 물리적 버튼을 비활성화시키는 것 등);
전자 디바이스 상의 하나 이상의 애플리케이션들을 실행할 수 있는 것을 제한하는 것(예를 들어, 게임, 영상 보기 애플리케이션, 비디오 보기 애플리케이션, 웹 브라우저 등의 활성화를 금지시키는 것); 및
하나의 실시예에서, 어시스턴트(1002)는 핸즈 프리 컨텍스트에서만 적용 가능한 대담(discourse) 및/또는 작업들의 도메인들 전체를 이용 가능하게 만들 수 있다. 예들은 제한된 시력 또는 손들의 제한된 사용을 갖는 사람들을 위해 설계된 것들과 같은 접근성 모드들을 포함한다. 이 접근성 모드들은, 예를 들어, "버튼을 누르세요" 또는 "스크롤 업하세요"와 같은 명령들이 있다는 것을 인식하기 위해, 주어진 애플리케이션 플랫폼 상에서의 임의의 GUI를 동작시키기 위한 핸즈 프리 대안들로서 구현되는 명령들을 포함한다. 핸즈 프리 모드들에서만 적용 가능할 수 있는 다른 작업들은 "내 자동차의 블루투스 키트를 사용해" 또는 "속도를 낮춰[텍스트 음성 변환 출력]"와 같은 핸즈 프리 경험 자체와 관련된 작업들을 포함한다.
다이얼로그 생성(500)을 핸즈 프리 컨텍스트에 적응시키기
다양한 실시예들에서, 다수의 기법들 중 임의의 것이 핸즈 프리 컨텍스트에 적응하도록 다이얼로그 생성(500)을 수정하기 위해 사용될 수 있다.
핸즈 온 인터페이스에서, 사용자의 입력의 어시스턴트(1002)의 해석이 글자로(in writing) 되풀이(echo)될 수 있지만; 핸즈 프리 컨텍스트에 있을 때, 이러한 피드백이 사용자에게 보이지 않을 수 있다. 이와 같이, 하나의 실시예에서, 핸즈 프리 컨텍스트가 검출될 때, 어시스턴트(1002)는 사용자의 입력을 부연하기 위해 텍스트 음성 변환(TTS) 기술을 사용한다. 이러한 부연은 선택적일 수 있고; 예를 들어, 문자 메시지를 송신하기 이전에, 어시스턴트(1002)는 사용자가 디스플레이 화면을 볼 수 없을지라도 사용자가 문자 메시지의 내용을 확인할 수 있도록 문자 메시지를 말할 수 있다. 어떤 경우들에서, 어시스턴트(1002)는 전사된 텍스트를 시각적으로 전혀 디스플레이하지 않고, 오히려 텍스트를 다시 사용자에게 말한다. 사용자가 운전 중일 때 및/또는 화면 또는 시각적 출력 모드가 비활성화되었을 때와 같이, 사용자가 화면으로부터 텍스트를 읽는 것이 안전하지 않을 수 있는 경우에, 이것이 유리할 수 있다.
사용자의 음성을 부연해야 하는지, 그리고 음성의 어느 부분들을 부연해야 하는지에 관한 결정은 작업 관련 다이얼로그 및/또는 흐름 관련 다이얼로그에 의해 주도될 수 있다. 예를 들어, "read my new message"와 같은 사용자의 음성 명령에 응답하여, 하나의 실시예에서, 어시스턴트(1002)는 명령을 부연하지 않는데, 그 이유는 명령이 이해되었다는 것이 메시지를 읽어주는 어시스턴트(1002)의 응답으로부터 명백하기 때문이다. 그렇지만, 사용자의 입력이 단계(100)에서 인식되지도 않고 단계(200)에서 이해되지도 않을 때와 같은 다른 상황들에서, 어시스턴트(1002)는 입력이 이해되지 않은 이유를 사용자에게 통보하기 위해 사용자의 음성 입력을 부연하려고 시도할 수 있다. 예를 들어, 어시스턴트(1002)는 'reel my newt massage'를 이해하지 못했습니다. 다시 시도하세요"라고 말할 수 있다.
하나의 실시예에서, 정보의 구두 부연은 다이얼로그 템플릿들을 디바이스 상의 개인 데이터와 결합할 수 있다. 예를 들어, 문자 메시지를 읽을 때, 하나의 실시예에서, 어시스턴트(1002)는 " $사람으로부터의 새 메시지가 있습니다. $메시지입니다." 형태의 변수들을 갖는 음성 출력 템플릿을 사용한다. 템플릿에서의 변수들이 사용자 데이터로 치환될 수 있으며 이어서 디바이스(60) 상에서 실행 중인 프로세스에 의해 음성으로 바뀐다. 본 발명이 클라이언트/서버 환경에 구현되는 하나의 실시예에서, 이러한 기법은, 개인 데이터가 디바이스(60) 상에 남아 있을 수 있고 서버로부터 출력 템플릿의 수신 시에 채워질 수 있기 때문에, 여전히 출력의 개인화를 가능하게 하면서 사용자들의 개인 정보(privacy)를 보호하는 데 도움을 줄 수 있다.
하나의 실시예에서, 핸즈 프리 컨텍스트가 검출될 때, 오디오 채널을 사용하여 제시하기 위한 핸즈 프리 컨텍스트들에 맞게 구체적으로 조정된 상이한 그리고/또는 부가적인 다이얼로그 유닛들이 선택될 수 있다(510). 어느 다이얼로그 유닛들을 선택할지를 결정하기 위한 코드 또는 규칙들은 핸즈 프리 컨텍스트의 세부 사항들에 민감할 수 있다. 이러한 방식으로, 일반적인 다이얼로그 생성 컴포넌트가, 상이한 핸즈 프리 상황들에 대해 개별적인 사용자 경험을 꼭 만들어낼 필요 없이, 다양한 핸즈 프리 변동들을 지원하도록 적응되고 확장될 수 있다.
하나의 실시예에서, 텍스트 및 GUI 출력 유닛들을 생성하는 동일한 메커니즘은 오디오(음성 단어) 출력 형식에 맞게 조정되는 텍스트들로 주석 첨부될 수 있다. 예를 들어:
하나의 실시예에서, 다이얼로그 생성 컴포넌트는 그의 작성된 다이얼로그 응답들 중 일부를 TTS를 통해 말 그대로 읽어주고 다른 다이얼로그 응답들에 대해서는 TTS 변형들을 사용하는 것에 의해 핸즈 프리 컨텍스트에 대해 적응될 수 있다.
하나의 실시예에서, TTS 텍스트들은, 그렇지 않았으면 문장 부호(punctuation) 또는 시각적 렌더링에서 전달될 것을 구두로 전달하기 위해, 음성, 말하기 속도, 피치, 일시 중지들, 및/또는 다른 파라미터들이 사용되도록 조정될 수 있다. 예를 들어, 사용자의 단어들을 다시 반복할 때 사용되는 음성은 다른 다이얼로그 유닛들을 위해 사용되는 것과는 상이한 음성일 수 있거나 상이한 운율을 사용할 수 있다. 다른 예로서, 음성 및/또는 운율은 내용 또는 지시들이 말해지는지 여부에 따라 상이할 수 있다. 다른 예로서, 일시 중지들은, 이해를 돕기 위해, 상이한 의미들을 갖는 텍스트의 섹션들 사이에 삽입될 수 있다. 예를 들어, 메시지를 부연하고 확인을 요구할 때, 일시 중지는 "당신의 메시지는 ...입니다"라는 내용의 부연과 "송신할 준비가 되었습니까?"라는 확인에 대한 프롬프트 사이에 삽입될 수 있다.
하나의 실시예에서, 비핸즈 프리 컨텍스트들이 핸즈 프리 컨텍스트들에 대해 앞서 기술된 바와 같이 TTS를 사용하는 유사한 메커니즘들을 사용하여 향상될 수 있다. 예를 들어, 다이얼로그는 작성된 텍스트 및 GUI 요소들에 부가하여 구두 전용(verbal-only) 프롬프트들을 생성할 수 있다. 예를 들어, 어떤 상황들에서, 어시스턴트(1002)는 송신 버튼의 온 스크린 디스플레이를 보강하기 위해 "송신할까요?"를 구두로 말할 수 있다. 하나의 실시예에서, 핸즈 프리 및 비핸즈 프리 컨텍스트들 둘 다를 위해 사용되는 TTS 출력이 각각의 경우에 대해 조정될 수 있다. 예를 들어, 어시스턴트(1002)는 핸즈 프리 컨텍스트에 있을 때에 더 긴 일시 중지들을 사용할 수 있다.
하나의 실시예에서, 핸즈 프리 컨텍스트의 검출은 또한 응답에 대해 사용자를 자동으로 프롬프트할지 여부 그리고 언제 그렇게 할지를 결정하기 위해 사용될 수 있다. 예를 들어, 한쪽 당사자가 말하는 동안 상대방은 듣도록 어시스턴트(1002)와 사용자 사이에서의 상호작용이 사실상 동기되어 있을 때, 어시스턴트(1002)가 말한 후에 어시스턴트(1002)가 사용자로부터의 음성 입력이 있는지 자동으로 리스닝하기 시작해야 하는지 여부 그리고 언제 그렇게 해야 하는지에 관한 설계 선택이 행해질 수 있다. 핸즈 프리 컨텍스트의 구체적 사항들이 다이얼로그의 이러한 자동 리스닝 시작 속성에 대한 다양한 정책들을 구현하는 데 사용될 수 있다. 예들은 다음과 같은 것들을 포함하지만 이들로 제한되지 않는다:
일부 실시예들에서, 핸즈 프리 컨텍스트를 검출한 것에 응답하여 리스닝 모드가 개시된다. 리스닝 모드에서, 어시스턴트(1002)는 사용자로부터의 음성 입력(음성 명령 등)을 식별하기 위해 주변 오디오를 계속해서 분석할 수 있다. 사용자가 차량에서 운전 중일 때와 같이, 핸즈 프리 컨텍스트에서 리스닝 모드가 사용될 수 있다. 일부 실시예들에서, 핸즈 프리 컨텍스트가 검출될 때마다 리스닝 모드가 활성화된다. 일부 실시예들에서, 어시스턴트(1002)가 차량에서 사용 중인 것을 검출한 것에 응답하여 리스닝 모드가 활성화된다.
일부 실시예들에서, 어시스턴트(1002)가 자신이 차량에 있는 것을 검출하는 한, 리스닝 모드는 활성이다. 일부 실시예들에서, 리스닝 모드의 개시 이후 미리 결정된 시간 동안 리스닝 모드는 활성이다. 예를 들어, 사용자가 어시스턴트(1002)를 차량과 페어링(pair)하는 경우, 페어링 이벤트 이후 미리 결정된 시간 동안 리스닝 모드는 활성일 수 있다. 일부 실시예들에서, 미리 결정된 시간은 1 분이다. 일부 실시예들에서, 미리 결정된 시간은 2 분이다. 일부 실시예들에서, 미리 결정된 시간은 10 분 이상이다.
일부 실시예들에서, 리스닝 모드에 있을 때, 어시스턴트(1002)는, 오디오 입력이 어시스턴트(1002)에 대해 의도된 음성 입력을 포함하는지 여부를 결정하기 위해, 수신된 오디오 입력들을 (예컨대, 음성 텍스트 변환 처리를 사용하여) 분석한다. 일부 실시예들에서, 사용자에게 근방 사용자들의 프라이버시를 보장하기 위해, 오디오 입력을 원격 컴퓨터로 송신함이 없이 수신된 음성이 로컬적으로(즉, 디바이스 상에서) 텍스트로 변환된다. 일부 실시예들에서, 어시스턴트(1002)에 대해 의도된 단어들을 식별하기 위해, 수신된 음성이 먼저 로컬적으로 분석(예컨대, 텍스트로 변환)된다. 하나 이상의 단어들이 어시스턴트에 대해 의도되어 있는 것으로 결정되면, 수신된 음성의 일부분이 음성 텍스트 변환 처리, 자연어 처리, 의도 추론 등과 같은 추가적인 처리를 위해 원격 서버(예컨대, 서버들(1340))로 송신된다.
일부 실시예들에서, 원격 서비스로 송신되는 부분은 미리 정해진 웨이크업 단어에 후속하는 단어들의 그룹이다. 일부 실시예들에서, 어시스턴트(1002)는 수신되는 주변 오디오를 계속해서 분석하고(로컬적으로 오디오를 텍스트로 변환함), 미리 정해진 웨이크업 단어가 검출될 때, 어시스턴트(1002)는 후속 단어들 중 하나 이상이 어시스턴트(1002)로 보내진다는 것을 인식할 것이다. 어시스턴트(1002)는 이어서 키워드에 후속하는 하나 이상의 단어들의 기록된 오디오를 추가적인 분석(예컨대, 음성 텍스트 변환 처리)을 위해 원격 컴퓨터로 송신할 것이다. 일부 실시예들에서, 어시스턴트(1002)는 하나 이상의 단어들에 후속하는 미리 정해진 길이의 일시 중지(즉, 무음 기간)를 검출하고, 키워드와 일시 중지 사이에 있는 그 단어들만을 원격 서비스로 송신한다. 어시스턴트(1002)는 이어서 해당 작업 흐름들 및/또는 다이얼로그 흐름들을 실행하는 것을 비롯한, 사용자의 의도를 계속하여 수행한다.
예를 들어, 리스닝 모드에서, 사용자가 "이봐 어시스턴트 - 근방의 주유소를 찾아봐..."라고 말할 수 있다. 이 경우에, 어시스턴트(1002)는 "이봐 어시스턴트"라는 문구를 어시스턴트(1002)로 보내지는 발언의 시작을 신호하는 웨이크업으로서 검출하도록 구성되어 있다. 어시스턴트(1002)는 이어서 무엇이 추가적인 처리를 위해 원격 서비스로 송신되어야 하는지를 결정하기 위해 수신된 오디오를 처리한다. 이 경우에, 단어 "찾아봐"에 후속하는 일시 중지가 어시스턴트(1002)에 의해 발언의 끝으로서 검출된다. "근방의 주유소를 찾아봐"라는 문구는 이와 같이 추가적인 분석(예컨대, 의도 추론, 자연어 처리 등)을 위해 원격 서비스로 송신된다. 어시스턴트는 이어서, 사용자의 요청을 충족시키기 위해, 도 7을 참조하여 기술된 것들과 같은 하나 이상의 단계들을 계속 실행한다.
다른 실시예들에서, 핸즈 프리 컨텍스트의 검출은 또한 다이얼로그의 다른 파라미터들(예를 들어, 이하의 것들)과 관련한 선택 항목들에 영향을 미칠 수 있다:
이와 같이, 다양한 실시예들에서, 핸즈 프리 컨텍스트는, 일단 검출되면, 다중 모드 가상 어시스턴트(1002)와 같은 복잡한 시스템의 다양한 처리 단계들을 적응시키기 위해 사용될 수 있는 시스템측 파라미터이다. 본 명세서에 기술된 다양한 방법들은 동일한 기본 시스템으로부터의 일정 범위의 사용자 경험들을 지원하기 위해 어시스턴트(1002)의 일반적인 절차들을 핸즈 프리 컨텍스트들에 대해 적응시키는 방식들을 제공한다.
컨텍스트를 수집, 전달, 표현하고, 그에 액세스하기 위한 다양한 메커니즘들이 2011년 9월 30일자로 출원된 발명의 명칭이 "가상 어시스턴트에서의 명령들의 처리를 용이하게 하기 위한 컨텍스트 정보의 사용"인 관련된 미국 특허 출원 제13/250,854호(그 전체 개시 내용이 본 명세서에 참고로 포함됨)에 기술되어 있다. 통상의 기술자라면 이러한 기법들이 핸즈 프리 컨텍스트에도 적용 가능하다는 것을 잘 알 것이다.
사용 사례들
하기의 사용 사례들은 핸즈 프리 컨텍스트에서 어시스턴트(1002)의 동작의 예들로서 제시된 것이다. 통상의 기술자라면 사용 사례들이 예시적이고 단지 예시를 위해 제공된다는 것을 잘 알 것이다.
전화 사용 사례들
하나의 실시예에서, 핸즈 프리 컨텍스트에 있을 때, 어시스턴트(1002)는 사용자가, 디바이스를 태핑하거나 다른 방식으로 터치함이 없이, 전화할 사람을 지정할 수 있는 경우 사용자가 누구에게라도 전화를 할 수 있게 한다. 예들은 연락처 이름으로 전화하는 것, 전화 번호(사용자에 의해 언급된 숫자들)로 전화하는 것 등을 포함한다. 부가 음성 프롬프트들에 의해 모호성이 해결될 수 있다. 예들이 이하에 나타내어져 있다:
예 1: 연락처에 전화하기, 모호함 없음
유사한 상호작용이 하기의 사용 사례들 중 임의의 것에 대해 일어날 것이다:
예 2: 전화 통화를 취소하기
예 3: 이름으로 전화하기, 모호함
명확화 메뉴
아담 체버 집
아담 샌들러 집
아담 스미스 모바일
예 4: 이름으로 전화하기, 이중으로 모호함
명확화 메뉴
폴 홀든 집
폴 마르코스 아이폰
폴 마르코스 모바일
폴 마르코스 집
파블로 피카소 집
명확화 메뉴
폴 마르코스 아이폰
폴 마르코스 모바일
폴 마르코스 집
예 5: 이름으로 사업체에 전화하기, 모호성 없음
지역 검색 스니펫(Local Search Snippet)
AMC 로우스 메트레온 16
샌프란시스코, 4번가 101
(888) 262-4386
<취소 버튼> <통화 버튼>
어시스턴트(1002)의 음성 출력: "전화를 걸까요?"
예 6: 이름으로 사업체에 전화하기, 일치하는 것들이 여러 개 있음
지역 검색 스니펫들의 목록
월그린 스토어 로스 가토스
로스 가토스 N 산타 크루즈 애비뉴 423
월그린
캘리포니아주 캠벨 캠벨 애비뉴 1570
월그린
캘리포니아주 쿠퍼티노 볼링거 로드 20011
월그린
캘리포니아주 산호세 사라토가 애비뉴 1334
월그린
캘리포니아주 산호세 유니온 애비뉴 2680
어시스턴트(1002)의 음성 출력: "로스 가토스의 노스 산타 크루즈 애비뉴 423에 있는 월그린 스토어 로스 가토스 <일시 중지> 2. 캠벨의 캠벨 애비뉴 1570에 있는 월그린 <일시 중지> 3...""
예 7: 자동차에서 예정된 전화하기
리마인더 경고
아담 스미스에게 전화하기
<닫기 버튼> <통화 버튼>
예 8: 새로운 보이스 메일들을 재생하기
SMS 문자
메시징
사용 사례들
예 9: 단일의 문자 메시지 경고를 읽기
문자 메시지
메리 리처즈
오늘 밤에 저녁 식사 같이 할 시간 있니?
<닫기 버튼> <답신 버튼>
예 10: 문자 메시지에 답신하기(예 8로부터 이어짐)
받는 사람: 메리 리처즈
좋아 8시는 어때
<취소 버튼> <송신 버튼>
예 11: 한 명의 수신자에게 문자 메시지를 송신하기
문자 메시지
받는 사람: 리사 곤잘레스
15 분 늦을거야
<취소 버튼> <송신 버튼>
예 12: 한 명의 수신자에게 문자 메시지를 전송하기- 모호함
명확화 메뉴
아담 체버 집
아담 샌들러 집
아담 스미스 모바일
문자 메시지
받는 사람: 아담 체버
회의 장소가 어디니?
<취소 버튼> <송신 버튼>
예 13: 메시지 앱으로부터 SMS 메시지를 읽기
문자 메시지
베티 조 비알코브스키
낸시라고 불러도 돼
<닫기 버튼> <답신 버튼>
예 14: 메시지 앱의 컨텍스트에서 답신하기(예 12로부터 이어짐)
받는 사람: 베티 조 비알코브스키
안녕 낸시
<취소 버튼> <송신 버튼>
예 15: 읽지 않은 모든 SMS 메시지들을 읽기
멜라니 하버(1)
베티 조 비알코브스키(3)
오드리 파버(1)
어시스턴트(1002)의 음성 출력: "새로운 메시지들이 4 개 있습니다. 멜라니 하버로부터 <음성 변경> 저녁 식사 어때? <일시 중지> 베티 조 비알로브스키로부터, 메시지들이 2 개 있습니다. <일시 중지> 1. <음성 변경> 내 이름은 맥길이야. <일시 중지> 2. <음성 변경> 릴이라 불러. "<일시 중지> 3. <음성 변경> 낸시라고 불러도 돼"
예 16: 메시지 앱의 컨텍스트에서 이름으로 답신하기
문자 메시지
받는 사람: 오드리 파버
15 분 늦을거야
<취소 버튼> <송신 버튼>
예 17: 다수의 수신자에게 문자 메시지를 송신하기
하나의 실시예에서, 이 작업는 핸즈 프리 컨텍스트에 대한 범주 밖인 것으로 결정된다. 그에 따라, 어시스턴트(1002)는 명확화를 위한 태핑으로 복귀한다
어시스턴트(1002)의 음성 출력: "메시지 <음성 변경> 우리의 중요한 회의에 15 분 늦을거야로 리사 곤잘레스, 폴 마르코스, 및 오드리 파버에게 문자를 송신할 준비가 되었습니다"
문자 메시지
받는 사람: 리사 곤잘레스, 폴 마르코스, 오드리 파버
우리의 중요한 회의에 15 분 늦을거야
<취소 버튼> <송신 버튼>
경고들 및 리마인더들 사용 사례들
예 18: 단일의 리마인더 경고를 읽기
리마인더들
메리 리처즈에 전화하기
<닫기 버튼> <통화 버튼>
예 19: 리마인더 경고를 실행하기(예 17로부터 이어짐)
예 20: 경고를 갖는 새로운 리마인더를 생성하기
리마인더를 확인해주세요
밥 존스에게 전화하기
리마인더 시각: 오늘 오후 5:00
<취소> <저장>
예 21: 어떤 경고 P1도 없는 새로운 리마인더를 생성하기
리마인더를 확인해주세요
빵 살 것
<취소> <저장>
캘린더 사용 케이스들
예 22: 간단한 약속을 생성하기(설명 및 날짜/시각이 주어짐)
설명: 회사 피크닉을 계획하기
언제: 내일 오후 2시
예 23: 간단한 약속을 생성하기(설명이 주어지지 않음)
설명: 만남
언제: 내일 오후 2시
예 24: 간단한 예약을 생성하기(시각이 주어지지 않음)
설명: 치과 예약
언제: 다음 목요일 - 오후 3시
예 25: 간단한 예약을 생성하기(날짜도 시각도 주어지지 않음)
설명: 회사 야유회를 계획하기 위한 회의
언제: 화요일 - 오후 3시
통상의 기술자라면 이상의 예들이 특정의 상황들에서의 핸즈 프리 컨텍스트의 사용을 예시한 것에 불과하다는 것을 잘 알 것이다. 부가 사용들은, 예를 들어, 지도, 음악과 같은 미디어의 재생 등을 포함한다.
이하의 사용 사례들은 보다 구체적으로는 항목들의 목록이, 일반적인 도메인들에서 그리고 특정의 도메인들에서(예컨대, 지역 검색 도메인, 일정 도메인, 리마인더 도메인, 문자 메시징 도메인, 및 이메일 도메인 등에서), 핸즈 프리 컨텍스트에서 어떻게 사용자에게 제시되는지에 관한 것이다. 핸즈 프리 및/또는 아이즈 프리 컨텍스트(들)에서 항목들의 목록을 제시하기 위한 특정 알고리즘들은 항목들에 관한 정보를 직관적이고 개인적인 방식으로 사용자에게 제공하도록 그리고 동시에 불필요한 상세들로 사용자에게 과중한 부담을 주는 것을 피하도록 설계되어 있다. 음성 기반 출력 및/또는 부수적인 텍스트 인터페이스를 통해 사용자에게 제시될 각각의 정보는 어쩌면 관련성이 있을 많은 정보 중에서 주의 깊게 선택되고, 선택적으로, 매끄럽고 매력적인 다이얼로그 흐름을 제공하기 위해 부연된다. 그에 부가하여, 핸즈 프리 및/또는 아이즈 프리 컨텍스트(들)에서 정보를 사용자에게 제공할 때, 너무 많은 정보가 동시에 또는 짧은 시간 내에 사용자에게 쏟아지지 않도록, 정보(특히 끝없는 정보)가 적당한 크기의 청크들(예컨대, 페이지들, 하위 목록들, 카테고리들 등)로 분할된다. 기지의 인지적 한계들(예컨대, 성인들은 전형적으로 한 번에 3 개 내지 7 개의 정보만을 처리할 수 있고, 어린이 또는 장애가 있는 사람들은 훨씬 더 적은 수의 정보를 동시에 처리할 수 있음)이 제시하기 위한 정보의 청크화 및 카테고리화를 위한 적당한 크기의 선택을 안내하는 데 사용된다.
일반적인 핸즈 프리 목록 읽기
핸즈 프리 목록 읽기는 사용자들이 하나 초과의 항목을 포함하는 결과들을 탐색할 수 있는 핵심적인 교차 도메인(cross-domain) 기능이다. 지역 검색의 결과들, 이메일들의 그룹, 일정 엔트리들의 그룹, 리마인더들의 그룹, 메시지들의 그룹, 음성 메일 메시지들의 그룹, 문자 메시지들의 그룹 등과 같이, 항목이 특정의 도메인과 연관된 공통의 데이터 항목 형식을 가질 수 있다. 전형적으로, 데이터 항목들의 그룹이 특정의 순서로(예컨대, 시간, 위치, 송신자, 및 다른 기준들에 의해) 정렬되고, 따라서 그 결과 목록이 얻어질 수 있다.
핸즈 프리 목록 읽기에 대한 일반적인 기능적 요구사항들은 다음과 같은 것들 중 하나 이상을 포함한다: (1) 항목들의 목록의 구두 개요(예컨대, "6 개의 항목들이 있습니다")를 음성 기반 출력을 통해 제공하는 것; (2) 선택적으로, 항목들의 목록을 표현하는 시각적 스니펫들의 목록을 화면 상에(예컨대, 단일의 다이얼로그 창 내에) 제공하는 것; (3) 항목들에 걸쳐 반복하면서 각각의 항목을 크게 읽는 것; (4) 항목의 도메인 관련 부연을 읽는 것(예컨대, Z에 관한 날짜 Y의 X로부터의 메시지); (4) 항목의 끝없는 내용(예컨대, 이메일의 내용 본문)을 읽는 것; (5) 개개의 항목의 끝없는 내용(예컨대, 이메일의 내용 본문의 섹션들)을 구두로 "페이지 매김"하는 것; (6) 사용자가 음성 요청을 시작하는 것에 의해 현재 항목에 대해 조치를 취할 수 있게 하는 것(예컨대, 이메일 항목에 대해, 사용자가 답신 동작을 시작하기 위해 "답신해"라고 말할 수 있음); (7) 사용자가 다른 요청을 입력하기 위해 항목들 및/또는 부연들의 읽기를 중단시킬 수 있게 하는 것; (8) 사용자가 내용/목록 읽기를 일시 중지하고 재개할 수 있게 하고, 그리고/또는 목록 내의 다른 항목(예컨대, 다음 또는 이전 항목, 세 번째 항목, 마지막 항목, 특정 속성들을 갖는 항목 등)으로 건너뛸 수 있게 하는 것; (9) 사용자가 목록 내의 N 번째 항목을 자연어로 언급할 수 있게 하는 것(예컨대, 첫 번째 것에 대해 답신해); 및 (10) 목록을 자연어 명확화를 위한 컨텍스트로서 사용하는 것(예컨대, 메시지들의 목록을 읽는 동안, 목록 내의 메시지들의 각자의 송신자들을 바탕으로 사용자 입력 "마크로부터의 메시지에 대해 답신해").
항목들의 목록에 관한 정보를 사용자에게 제시하기 위한 그리고 정보의 제시 동안 사용자 입력을 유도하고 사용자 명령들에 응답하기 위한 몇 가지 기본적인 상호작용 패턴들이 있다. 일부 실시예들에서, 데이터 항목들의 목록에 관한 정보를 제시할 때, 음성 기반 개요가 먼저 제공된다. 데이터 항목들의 목록이 특정의 선택 기준들(예컨대, 새로운, 읽지 않음, 마크로부터, 오늘에 대한, 근방의, 팔로 알토에 있는, 레스토랑 등)의 집합에 기초하여 식별되고 그리고/또는 특정의 도메인 관련 데이터 형식(예컨대, 지역 검색 결과, 일정 엔트리, 리마인더, 이메일 등)에 속하는 경우, 개요는 항목들의 목록을 부연한다. 사용되는 특정의 부연은 도메인에 관련된 것이고, 전형적으로 데이터 항목들의 목록을 선택하는 데 사용되는 기준들 중 하나 이상을 명시한다. 그에 부가하여, 데이터 항목들의 목록을 제시하기 위해, 개요는 또한, 읽기가 얼마나 길고 복잡할 것인지에 대해 사용자에게 대강 알려주기 위해, 목록의 길이를 명시한다. 예를 들어, 개요는 "안나 카레니나 및 알렉세이 브론스키로부터의 3 개의 새로운 메시지들이 있습니다."일 수 있다. 이 개요에서, 목록 길이(예컨대, 3), 목록에 대한 항목들을 선택하기 위한 기준들(예컨대, 읽지 않음/새로운, 및 송신자 = "안나 카레니나" 및 "알렉세이 브론스키")이 또한 제공된다. 아마도, 항목들을 선택하는 데 사용된 기준들은 사용자에 의해 명시되었고, 기준들을 개요에 포함시키는 것에 의해, 정보의 제시가 사용자의 요청에 더 즉각적으로 반응하는 것처럼 보일 것이다.
일부 실시예들에서, 상호작용은 또한 목록 및/또는 각각의 항목의 끝없는 내용을 사용자에게 읽어주라는 제안과 함께 음성 기반 프롬프트를 제공하는 것을 포함한다. 예를 들어, 디지털 어시스턴트는 개요를 제공한 후에 "읽어드릴까요?"와 같은 음성 기반 프롬프트를 제공할 수 있다. 일부 실시예들에서, 프롬프트가 핸즈 프리 모드에서만 제공되는데, 그 이유는, 핸즈 온 모드에서는, 사용자가 어쩌면 크게 읽혀지는 내용을 듣기보다는 오히려 화면 상의 목록을 쉽게 읽고 스크롤할 수 있기 때문이다. 일부 실시예들에서, 원래의 명령이 항목들의 목록을 읽는 것인 경우, 디지털 어시스턴트는 프롬프트를 먼저 제공함이 없이 계속하여 데이터 항목들을 크게 읽어줄 것이다. 예를 들어, 사용자 입력이 "내 새로운 메시지들을 읽어"인 경우, 디지털 어시스턴트는 사용자에게 메시지들을 크게 읽어 주기를 원하는지 여부를 질문함이 없이 계속하여 메시지들을 읽는다. 대안적으로, 사용자 입력이 "헨리로부터의 이메일이 있는가?"인 경우, 원래의 사용자 입력이 디지털 어시스턴트에게 메시지들을 "읽으라고" 명시적으로 요청하지 않기 때문에, 디지털 어시스턴트는 먼저 메시지들의 목록의 개요를 제공할 것이고, 메시지들을 읽으라는 제안과 함께 프롬프트를 제공할 것이다. 사용자가 메시지들을 크게 읽는 것에 대한 확인을 제공할 때까지 메시지들이 크게 읽혀지지 않을 것이다.
일부 실시예들에서, 디지털 어시스턴트는 목록 내의 각각의 데이터 항목으로부터 텍스트 데이터의 필드들을 식별하고, 데이터 항목으로부터 식별된 실제 텍스트 및 도메인 관련 템플릿에 기초하여 항목의 내용의 도메인 관련 및 항목 관련 부연을 생성한다. 데이터 항목들에 대한 각자의 부연들이 생성되면, 디지털 어시스턴트는 목록 내의 각각의 항목에 걸쳐 하나씩 반복하고, 그 각자의 부연을 크게 읽는다. 데이터 항목 내의 텍스트 데이터 필드들의 예들은 날짜들, 시각들, 사람 이름들, 위치 이름들, 사업체 이름들, 및 다른 도메인 관련 데이터 필드들을 포함한다. 도메인 관련 말할 수 있는 텍스트 템플릿들은 도메인 관련 항목 유형의 상이한 데이터 필드들을 적당한 순서로 배열하고, 데이터 필드들을 적당한 연결 단어들로 연결시키며, 적당한 변형들(예컨대, 문법적, 인지적 및 다른 요구사항들에 기초한 변형들)을 상이한 텍스트 필드들의 텍스트에 적용하여, 데이터 항목의 간결하고 자연스러우며 이해하기 쉬운 부연을 생성한다.
일부 실시예들에서, 항목들의 목록에 걸쳐 반복하여 정보(예컨대, 항목들의 도메인 관련, 항목 관련 부연)를 제공할 때 디지털 어시스턴트는 컨텍스트 마커를 현재 항목으로 설정한다. 읽기가 목록에 걸쳐 진행함에 따라 컨텍스트 마커가 항목으로부터 항목으로 전진한다. 사용자가 하나의 항목으로부터 다른 항목으로 점프하라는 명령들을 발행하는 경우, 컨텍스트 마커가 또한 하나의 항목으로부터 다른 항목으로 건너뛸 수 있다. 디지털 어시스턴트는, 사용자의 입력이 컨텍스트에서 정확하게 해석될 수 있도록, 디지털 어시스턴트와 사용자 사이의 상호작용의 현재 컨텍스트를 식별하기 위해 컨텍스트 마커를 사용한다. 예를 들어, 사용자는 목록 읽기를 언제라도 중단시키고 목록 항목들 중 다수 또는 전부에 적용 가능한 명령(예컨대, "답신해")을 발행할 수 있고, 컨텍스트 마커는 명령이 적용되어야 하는 대상 데이터 항목(예컨대, 현재 항목)을 식별하는 데 사용된다. 일부 실시예들에서, 도메인 관련, 항목 관련 부연들이 텍스트 음성 변환 처리를 통해 사용자에게 제공된다. 일부 실시예들에서, 텍스트 버전의 부연이 또한 화면 상에 제공된다. 일부 실시예들에서, 텍스트 버전의 부연이 화면 상에 제공되지 않고, 그 대신에, 데이터 항목들의 전체 버전들 또는 상세 버전들이 화면 상에 제공된다.
일부 실시예들에서, 데이터 항목의 끝없는 내용을 읽을 때, 끝없는 내용이 먼저 섹션들로 분할된다. 분할은 끝없는 내용의 단락들, 라인들, 단어들의 개수, 및/또는 다른 논리적 분할들에 기초할 수 있다. 목표는 사용자에 대한 인지적 부담을 감소시키는 것, 및 너무 많은 정보로 또는 너무 많은 시간이 걸리는 것으로 사용자에게 지나친 부담을 주지 않는 것이다. 끝없는 내용을 읽을 때, 각각의 섹션에 대해 음성 출력이 생성되어, 한 번에 하나의 섹션씩 사용자에게 제공된다. 하나의 섹션에 대한 음성 출력이 제공되면, 사용자가 다음 섹션에 대한 음성 출력을 계속하기를 원하는지 여부를 질문하는 구두 프롬프트가 제공된다. 이 프로세스는 끝없는 내용의 모든 섹션들이 읽혀질 때까지 또는 사용자가 끝없는 내용의 읽기를 중단하도록 요구할 때까지 반복된다. 하나의 항목에 대한 끝없는 내용의 읽기가 중단될 때(예컨대, 모든 섹션들이 읽혀졌을 때 또는 읽기가 사용자에 의해 중단되었을 때), 목록에서의 다음 항목의 항목 관련 부연의 읽기가 시작될 수 있다. 일부 실시예들에서, 디지털 어시스턴트는 목록에서의 다음 항목의 항목 관련 부연의 읽기를 자동으로 재개할 수 있다. 일부 실시예들에서, 디지털 어시스턴트는 읽기를 재개하기 전에 사용자에게 확인을 요구할 수 있다.
일부 실시예들에서, 디지털 어시스턴트는 다수의 입력 채널들로부터의 사용자 입력에 충분히 응답한다. 예를 들어, 디지털 어시스턴트가 항목들의 목록에 걸쳐 읽고 있거나 하나의 항목에 관한 정보를 읽는 중일 때, 디지털 어시스턴트는 사용자가 자연어 명령들, 터치 감응 표면 또는 디스플레이 상에서의 제스처들, 및 다른 입력 인터페이스들(예컨대, 마우스, 키보드, 커서 등)을 통해 다른 항목들로 탐색해 갈 수 있게 한다. 예시적인 탐색 명령들은 다음과 같은 것들을 포함한다: (1) 다음: 현재 항목을 읽는 것을 중단하고 다음 항목을 읽기 시작함. (2) 추가(More): 현재 항목을 좀 더 읽음(현재 항목이 절단되거나 세그먼트화된 경우), (3) 반복: 마지막 음성 출력을 다시 읽음(예컨대, 금방 읽었던 끝없는 내용의 항목 또는 섹션의 부연을 반복함), (4) 이전: 현재 항목을 읽는 것을 중단하고 현재 항목 이전의 항목을 읽기 시작함, (5) 일시 중지: 현재 항목을 읽는 것을 중단하고 명령어를 기다림, (6) 재개: 일시 중지된 경우 읽기를 계속함.
일부 실시예들에서, 상호작용 패턴은 또한 결말 출력(wrap-up output)을 포함한다. 예를 들어, 마지막 항목이 읽혀졌을 때, 목록을 종료하기 위해 선택적인 도메인 관련 텍스트 패턴을 읽는다. 예를 들어, 이메일들의 목록을 읽는 것에 대한 적당한 결말 출력은 "그게 5 개의 이메일들 전부입니다", "그게 메시지들 전부입니다", "그게 마지막 메시지의 끝이었습니다" 등일 수 있다.
이상의 일반적인 목록 읽기 예들은 다수의 도메인들, 및 도메인 관련 항목 유형들에 적용 가능하다. 이하의 사용 사례들은 상이한 도메인들에서의 그리고 상이한 도메인 관련 항목 유형들에 대한 핸즈 프리 목록 읽기의 보다 상세한 예들을 제공한다. 각각의 도메인 관련 항목 유형들은 또한 그 항목 유형 및/또는 도메인의 항목들에 특정적으로 적용 가능한 사용자 지정(customization)들을 가진다.
지역 검색 결과들의 핸즈 프리 목록 읽기
지역 검색 결과들은 지역 검색(예컨대, 사업체들, 랜드마크들, 및/또는 주소들에 대한 검색)을 통해 획득된 검색 결과들이다. 지역 검색의 예들은 어떤 지리적 위치 근방의 또는 어떤 지리적 영역 내의 레스토랑들에 대한 검색, 경로를 따라 있는 주유소들에 대한 검색, 특정의 체인점의 위치들에 대한 검색 등을 포함한다. 지역 검색은 도메인의 일례이고, 지역 검색 결과는 도메인 관련 항목 유형의 일례이다. 이하는 핸즈 프리 컨텍스트에서 지역 검색 결과들의 목록을 사용자에게 제시하는 알고리즘을 제공한다.
이 알고리즘에서, 어떤 주요 파라미터들은 N: 지역 검색 요청에 대해 검색 엔진에 의해 반환된 결과들의 개수, M: 사용자에게 보여줄 검색 결과들의 최대 개수, 및 P: "페이지"당 항목들의 개수(즉, 화면 상에서 사용자에게 동시에 제시되고 그리고/또는 동일한 하위 섹션 개요 하에서 제공됨)를 포함한다.
일부 실시예들에서, 디지털 어시스턴트는 핸즈 프리 컨텍스트를 검출하고, 핸즈 프리 컨텍스트에 대한 결과들의 목록을 트리밍한다. 환언하면, 디지털 어시스턴트는 모든 관련성 있는 결과들의 목록을 M: 사용자에게 보여줄 검색 결과들의 최대 개수 이하로 트리밍한다. M에 대한 적당한 수는 약 3 내지 7이다. 이 최대 개수를 뒷받침하는 이론적 근거는, 첫째, 사용자가 핸즈 프리 모드에서 심층적 조사를 수행할 가능성이 없고, 따라서, 적은 수의 가장 적절한 항목들이 전형적으로 사용자의 정보 요구를 충족시킬 것이라는 점; 및 둘째, 사용자가 어쩌면 다른 작업들(예컨대, 운전 또는 다른 핸즈 온 작업으로 바쁨)에 의해 주의가 산만하기 있기 때문에, 핸즈 프리 모드에 있는 동안 사용자가 그의 마음 속에서 너무 많은 정보를 동시에 추적할 수 있는 가능성이 없다는 점이다.
일부 실시예들에서, 디지털 어시스턴트는 결과들의 목록을 텍스트로 요약하고, 텍스트로부터 전체 목록의 도메인 관련 개요를 (텍스트 형태로) 생성한다. 그에 부가하여, 개요가 지역 검색 결과들을 제시하는 것에 맞게 조정되고, 따라서 위치 정보가 개요에서 특히 관련성 있다. 예를 들어, 사용자가 "카테고리, 현재 위치"의 형태로 된 질의(예컨대, "내 근처의 중식 레스토랑들을 찾아줘" 또는 "여기서는 어디에서 식사할 수 있어?"와 같은 자연어 검색 요청들로부터 얻어진 질의들)에 대한 검색 결과들을 요청한 것으로 가정하자. 이어서, 디지털 어시스턴트는 검색 결과들을 검토하고, 사용자의 현재 위치 근방에 있는 검색 결과들을 식별한다. 이어서, 디지털 어시스턴트는 "근방에서 몇 개의<카테고리 복수>를 찾았습니다."의 형태로 된 검색 결과들의 개요를 생성한다. 일부 실시예들에서, N < 3이 아니면, 개요에서 개수가 제공되지 않는다. 일부 실시예들에서, 개수가 6 미만인 경우 개요에서 검색 결과들의 개수가 제공된다.
다른 예로서, 사용자가 "카테고리, 다른 위치"의 형태로 된 질의(예컨대, 사용자가 현재 팔로 알토에 있지 않은 동안의 "팔로 알토에 있는 몇몇 로맨틱한 레스토랑들을 찾아줘" 또는 영화가 사용자의 현재 위치 이외의 위치에서 상영될 것인 경우 "영화 후에 어디에서 식사할 수 있어?"와 같은 자연어 검색 요청들로부터 얻어진 질의들)에 대한 검색 결과들을 요청한 것으로 가정하자. 디지털 어시스턴트는 "<위치>에서 몇 개의 <카테고리 복수>를 찾았습니다"의 형태로 된 개요를 (텍스트 형태로) 생성할 것이다. (또는 "에서" 대신에 "근방에서", <위치>가 주어진 경우 어느 것이든 더 적당한 것.)
일부 실시예들에서, 텍스트 형태의 개요가 디스플레이 화면 상에(예컨대, 다이얼로그 창 내에) 제공된다. 전체 목록의 개요를 제공한 후에, 결과들의 목록이 여느 때와 같이 디스플레이 상에 제시된다(예컨대, M 개의 항목들로 한도가 정해져 있음, 예를 들어, M=25).
일부 실시예들에서, 결과들의 목록이 화면 상에 제시된 후에, 음성 기반 개요가 사용자에게 제공된다. 텍스트 버전의 개요의 텍스트 음성 변환을 통해 음성 기반 개요가 생성될 수 있다. 일부 실시예들에서, 어떤 내용도 디스플레이 화면 상에 제공되지 않고, 이 시점에서 음성 기반 개요만이 제공된다.
음성 기반 개요가 사용자에게 제공되면, 제1 "페이지"의 결과들의 음성 기반 하위 섹션 개요가 제공될 수 있다. 예를 들어, 하위 섹션 개요는 "페이지" 상의 처음 P 개의 항목들의 이름들(예컨대, 사업체 이름들)을 열거할 수 있다. 구체적으로는,
a.
이것이 첫 번째 페이지인 경우, 하위 섹션 개요는 "<이름1>, <이름2>,... 및 <이름P>를 포함함"으로 되어 있고, 여기서 <이름1> <이름P>는 처음 P 개의 결과들의 사업체 이름들이고, 하위 섹션 개요는 "근방에서 몇 개의 <카테고리 복수>를 찾았습니다"라는 목록 개요 직후에 제시된다.
b.
이것이 첫 번째 페이지가 아닌 경우, 하위 섹션 개요는 "다음 P 개는 <이름1>, <이름2>, ... <이름P>" 등이라고 되어 있다.
디지털 어시스턴트는 이상의 방식으로 검색 결과 목록의 "페이지들" 전부에 걸쳐 반복한다.
결과들의 각각의 페이지에 대해, 이하의 단계들이 수행된다:
a.
일부 실시예들에서, 디스플레이 상에, 검색 결과들의 현재 페이지가 시각적 형태로(예컨대, 텍스트 형태로) 제시된다. 시각적 컨텍스트 마커는 읽혀지고 있는 현재 항목을 나타낸다. 각각의 검색 결과에 대한 텍스트 부연은 검색 결과와 연관된 서수 위치(예컨대, 제1, 제2 등), 거리, 및 방향을 포함한다. 일부 실시예들에서, 각각의 결과에 대한 텍스트 부연은, 목록이 간결하고 읽기 쉽게 보이도록, 디스플레이 상에서 목록 내의 단일의 라인만을 차지한다. 텍스트를 단일의 라인에 유지하기 위해, 사업체 이름이 제시되지 않고, 텍스트 부연은 "제2: 남쪽으로 0.6 마일"의 포맷으로 되어 있다.
b.
일부 실시예들에서, 각각의 결과에 대해 개개의 시각적 스니펫이 제공된다. 예를 들어, 디스플레이 상에 보여진 텍스트 부연이 스크롤될 때 각각의 결과의 스니펫이 노출될 수 있고, 따라서 1 라인 텍스트 풍선이 상부에 있고 스니펫이 그 아래에 들어간다.
c.
일부 실시예들에서, 항목들 또는 그의 부연들이 순차적 순서로 하나씩 사용자에게 제시됨에 따라 컨텍스트 마커 또는 컨텍스트 커서가 항목들의 목록에 걸쳐 전진한다.
d.
음성으로, 현재 항목의 서수 위치, 사업체 이름, 단축 주소, 거리, 및 방향을 발표한다. 단축 주소는, 예를 들어, 전체 주소의 도로명 부분이다.
1.
항목이 (페이지들에 관계없이) 첫 번째 것인 경우, 정렬 순서를 "가장 가까운 것은" "가장 높은 등급은" "최상의 일치는" 또는 단지 "첫 번째는"으로 나타낸다.
2.
그렇지 않은 경우, "두 번째는"이라고 말한다(세 번째, 네 번째, 이하 마찬가지임). 페이지들에 걸쳐 계속 증가한다. 즉, 페이지 크기 P=4인 경우, 페이지 2 상의 첫 번째 항목은 "다섯 번째 것"일 것이다.
3.
단축 주소에 대해, "<도로명> 상에"(도로 번호 없음)를 사용한다.
4.
결과.주소.도시(result.address.city)가 장소.도시(locus.city)와 동일하지 않은 경우, "<도시>에"를 추가한다.
5.
거리에 대해, 1 마일 미만인 경우, "0.x 마일"이라고 말한다. 1.5 마일 미만인 경우, "1 마일"이라고 말한다. 그렇지 않은 경우, 가장 가까운 정수 마일로 반올림하여 "X 마일"이라고 말한다. 로캘(locale)이 규정하고 있는 경우 마일 대신에 킬로미터를 사용한다.
6.
방향에 대해, 북쪽, 남쪽, 동쪽, 또는 서쪽(중간은 없음)을 사용한다.
e.
이 페이지의 첫 번째 항목에 대해서만, 옵션들에 대한 프롬프트를 말해준다: "전화하실래요, 길 안내를 받으실래요, 또는 다음 곳으로 가실래요?"
f.
듣는다
g.
(예컨대, 컨텍스트 마커의 현재 위치에 기초하여 결정된 바대로) 현재 결과의 컨텍스트에서 자연어 명령들을 처리한다. 사용자가 "다음" 또는 동등한 단어를 말하는 경우, 목록에서의 다음 항목으로 계속 이동한다.
h.
현재 페이지의 마지막 항목에 도달한 경우 단계 a로 다시 가거나 다음 페이지로 간다.
목록에 남아 있는 결과들의 페이지들이 더 이상 없을 때까지, 결과들의 나머지 "페이지들" 각각에 대해 상기 단계들이 반복된다.
일부 실시예들에서, 사용자가 결과 항목과 연관된 위치로의 길 안내를 요구하고 사용자가 이미 계획된 경로 상에서 내비게이션 모드에 있는 경우, 디지털 어시스턴트는 "이미 경로 상에서 이동하고 있습니다. 이 경로를 <항목 이름>으로의 길 안내로 대체하실래요?"라고 말하는 음성 출력을 제공할 수 있다. 사용자가 긍정적으로 대답하는 경우, 디지털 어시스턴트는 그 결과와 연관된 위치로의 길 안내를 제시한다. 일부 실시예들에서, 디지털 어시스턴트는 "<항목 이름>으로 길 안내해"를 말하는 음성 출력을 제공하고 내비게이션 인터페이스(예컨대, 지도 및 길 안내 인터페이스)를 제시한다. 사용자가 부정적으로 대답하는 경우, 디지털 어시스턴트는 "네, 경로를 대체하지 않겠습니다"라고 말하는 음성 출력을 제공한다. 아이즈 프리 모드에 있는 경우, 단지 여기서 중단한다. 사용자가 "지도 상에 보여줘"라고 말하지만, 디지털 어시스턴트가 아이즈 프리 컨텍스트를 검출하는 경우, 디지털 어시스턴트는 "죄송합니다, 운전 중에는 차량이 지도 상에 항목들을 보여주지 못하게 합니다"라고 말하는 음성 출력 또는 어떤 다른 표준 아이즈 프리 경고를 생성한다. 아이즈 프리 컨텍스트가 검출되지 않는 경우, 디지털 어시스턴트는 "여기가 <항목 이름>의 위치입니다"라고 말하는 음성 출력을 제공하고, 그 항목에 대한 단일의 항목 스니펫을 또다시 보여준다.
일부 실시예들에서, 항목이 디스플레이되고, 예컨대, "전화해"라고 말하는 것에 의해, 사용자가 항목에 전화하라고 요구할 때, 디지털 어시스턴트는 정확한 대상 결과를 식별하고, 대상 결과와 연관된 전화 번호에의 전화 연결을 개시한다. 전화 연결을 하기 전에, 디지털 어시스턴트는 "<항목 이름>에 전화하는 중입니다"라고 말하는 음성 출력을 제공한다.
이하는 동작 명령의 대상 항목/결과를 식별하는 것에 대한 몇 개의 자연어 사용 사례들을 제공한다. 예를 들어, 사용자는 명령에서 항목을 거명할 수 있고, 대상 항목이 이어서 명령에 명시된 특정의 항목 이름에 기초하여 식별된다. 사용자는 또한 현재 항목을 지칭하기 위해 "그것" 또는 다른 지시어(reference)를 사용할 수 있다. 디지털 어시스턴트는 컨텍스트 마커의 현재 위치에 기초하여 정확한 대상 항목을 식별할 수 있다. 사용자는 또한 목록에서 n 번째 항목을 지칭하기 위해 "n 번째 것" 또는 "n번"을 사용할 수 있다. 어떤 경우들에서, n 번째 항목이 현재 항목보다 앞에 있을 수 있다. 예를 들어, 사용자가 이름들의 개요 목록을 들었고 항목 #1에 관한 정보를 듣자마자, 사용자는 "3번으로 길 안내해"라고 말할 수 있다. 그에 응답하여, 디지털 어시스턴트는 목록에서의 세 번째 항목과 관련하여 "길 안내" 동작을 수행할 것이다.
다른 예로서, 사용자가 대상 항목을 식별하기 위해 사업체 이름을 말할 수 있다. 목록 내의 다수의 항목들이 사업체 이름과 일치하는 경우, 디지털 어시스턴트는 사업체 이름과 일치하는 마지막으로 읽은 항목을 대상 항목으로서 선택한다. 일반적으로, 디지털 어시스턴트는 현재 항목(즉, 컨텍스트 마커가 가리키는 항목)으로부터 시간상 거꾸로, 이어서 현재 항목으로부터 전방으로 명확히 한다. 예를 들어, 컨텍스트 마커가 10 개의 항목들 중 항목 5에 있고, 사용자가 항목들 2, 4, 6 및 8과 일치하는 선택 기준(예컨대, 특정의 사업체 이름, 또는 결과들의 다른 특성들)을 말하는 경우, 디지털 어시스턴트는 항목 4를 명령에 대한 대상 항목으로서 선택한다. 다른 시나리오에서, 컨텍스트 마커가 항목 2 상에 있고, 항목들 3, 5 및 7이 선택 기준과 일치하는 경우, 디지털 어시스턴트는 항목 3을 명령의 대상 항목으로서 선택한다. 이 경우에, 현재 컨텍스트 마커 이전의 어떤 것도 선택 기준과 일치하지 않고, 항목 3이 컨텍스트 마커에 가장 가까운 항목이다.
지역 검색 결과들의 목록을 제시하는 동안, 디지털 어시스턴트는 사용자가 다음과 같은 명령들을 발행하는 것에 의해 목록 여기저기로 이동할 수 있게 한다: 다음, 이전, 뒤로 가기, 다시 읽기 또는 반복.
일부 실시예들에서, 사용자가 항목만을 명시하고 항목에 적용 가능한 어떤 동작도 명시하지 않은 음성 명령을 제공할 때, 디지털 어시스턴트는 적용 가능한 동작을 명시하라고 사용자에게 프롬프트한다. 일부 실시예들에서, 디지털 어시스턴트에 의해 제공되는 프롬프트는 특정 항목 유형의 항목에 적용 가능한 하나 이상의 동작들(예컨대, "전화해", "길 안내해", "지도 상에 보여줘" 등과 같은 지역 검색 결과들에 대한 동작들)을 제공한다. 예를 들어, 사용자가 적용 가능한 명령 동사(예컨대, "전화" 또는 "길 안내") 없이 단순히 "3번" 또는 "쉐브론"이라고 말하는 경우, 디지털 어시스턴트는 "전화하실래요, 또는 길 안내를 받으실래요?"라고 말하는 음성 출력으로 사용자에게 프롬프트한다. 사용자의 음성 입력이 이미 항목에 적용 가능한 명령 동사 또는 동작을 명시하는 경우, 디지털 어시스턴트는 명령에 따라 항목에 대해 조치를 취한다. 예를 들어, 사용자의 입력이 "가장 가까운 주유소에 전화해" 등인 경우, 디지털 어시스턴트는 대상 항목(예컨대, 가장 가까운 주유소에 대응하는 결과)을 식별하고, 대상 항목과 연관된 전화 번호에의 전화 연결을 개시한다.
일부 실시예들에서, 디지털 어시스턴트는 상이한 도메인들 및 컨텍스트에 관련된 사용자 입력을 처리하고 그에 응답할 수 있다. 사용자가 다른 도메인에서 컨텍스트 독립적이고 충분히 명시된 요청을 하는 경우, 디지털 어시스턴트는 목록 읽기를 일시 중단하거나 종료하고, 다른 도메인에서의 요청에 응답한다. 예를 들어, 디지털 어시스턴트가 목록 읽기 동안 사용자에게 "전화하실래요, 길 안내를 받으실래요, 또는 다음 곳으로 가실래요"라고 질문하는 프로세스에 있는 동안, 사용자는 "베이징은 몇 시야?"라고 말할 수 있다. 이 새로운 사용자 입력에 응답하여, 디지털 어시스턴트는 관심의 도메인이 지역 검색 및 목록 읽기로부터 시계/시각의 다른 도메인으로 전환한 것으로 결정한다. 이러한 결정에 기초하여, 디지털 어시스턴트는 시계/시각 도메인에서 요청된 동작을 수행한다(예컨대, 시계 애플리케이션을 시작하거나 베이징에서의 현재 시각을 제공함).
이하는 "내 근처에 있는 주유소들을 찾아"에 대한 검색 요청에 응답하여 주유소들의 목록을 제시하는 것에 관한 다른 보다 상세한 예를 제공한다.
이 예에서, 파라미터들은 페이지 크기 P=4, 최대 결과들 M=12, 및 질의: {카테고리(예컨대, 주유소), 가장 가까운, 현재 위치로부터의 거리에 의해 정렬됨}이다.
검색 결과들(즉, 지역 검색 요청에 기초하여 식별된 주유소들)의 목록을 제시하기 위해 이하의 작업 흐름이 구현된다.
1. 사용자의 현재 위치로부터의 거리에 의해 주유소들을 정렬하고, 검색 결과들의 목록을 M의 최대 개수로 트리밍한다.
2. 목록에 대한 텍스트로만 된 요약을 생성한다: "당신 근처에 있는 주유소들을 몇 개 찾았습니다." (기껏해야 2 개의 라인들로 충분함).
3. 결과들의 전체 목록에 대한 N 개의 지역 검색 스니펫들의 목록을 디스플레이 상에 보여준다.
4. 음성 기반 개요를 생성하여 제공한다: "당신 근처에 있는 주유소들을 몇 개 찾았습니다."
5. 음성 기반 하위 섹션 개요를 생성하여 제공한다: "쉐브론 역, 발레로, 쉐본, 및 쉘 역을 포함합니다"
6. 목록에서의 <항목 1>에 대해, 이하의 단계들 a 내지 g를 수행한다:
a. 항목 관련 부연을 텍스트로 제공한다: "첫 번째: 남쪽으로 0.7 마일."
b. 쉐브론 역에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목(즉, <항목 1>)으로 설정한다.
d. 음성 기반의 항목 관련 부연을 제공한다: "가장 가까운 것은 0.7 마일 북쪽으로 노쓰 드 안자 블바드에 있는 쉐본 역입니다."
e. 페이지의 첫 번째 항목(즉, <항목 1>)에 적용 가능한 동작들에 관한 옵션들을 제안하는 음성 기반 프롬프트를 제공한다: "전화하실래요, 길 안내를 받으실래요, 또는 다음 곳으로 가실래요?"
f. 삐 삐 소리를 낸다.
g. 사용자가 "다음"이라고 말한다.
6. 다음 항목인 <항목 2>로 이동한다.
a. 항목의 항목 관련 부연을 텍스트로 제공한다: "두 번째: 남쪽으로 0.7 마일"
b. 발레로에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목(즉, <항목 2>)으로 설정한다.
d. 항목의 음성 기반의 항목 관련 부연을 제공한다: "두 번째는 0.7 마일 남쪽으로 노쓰 드 안자 블바드에 있는 발레로입니다."
e. 두 번째 항목에 적용 가능한 동작들에 관한 프롬프트를 제공하지 않는다.
f. 삐 삐 소리를 낸다.
g. 사용자가 "다음"이라고 말한다.
6. <항목 3>
a. 항목의 항목 관련 부연을 텍스트 형태로 제공한다: "세 번째: 남쪽으로 0.7 마일."
b. 쉐본에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목으로 설정한다.
d. 이 항목에 대한 음성 기반의 항목 관련 부연을 제공한다: "세 번째는 0.7 마일 남쪽으로 사우쓰 드 안자 블바드에 있는 쉐본입니다."
e. 세 번째 항목에 적용 가능한 동작들에 관한 프롬프트를 제공하지 않는다.
f. 삐 삐 소리를 낸다.
g. 사용자가 "다음"이라고 말한다.
6. <항목 4>
a. 항목의 항목 관련 부연을 텍스트로 제공한다: "네 번째: 남쪽으로 0.7 마일."
b. 쉘 역에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목으로 설정한다.
d. 항목의 음성 기반의 항목 관련 부연을 제공한다: "네 번째는 1 마일 남쪽으로 사우쓰 드 안자 블바드에 있는 쉘 역입니다."
e. 두 번째 항목에 적용 가능한 동작들에 관한 프롬프트를 제공하지 않는다.
f. 삐 삐 소리를 낸다.
g. 사용자가 "다음"이라고 말한다.
5. <페이지 2>는 항목들의 새로운 페이지를 시작한다
두 번째 페이지에 대한 음성 기반 섹션 개요를 제공한다: "다음 4 개는 쿠퍼티노의 스모그 프로 앤 오토 서비스, 쉘 역, 발레로, 및 로튼 로비입니다."
6. <항목 5>
a. 이 항목에 대한 항목 관련 부연을 텍스트로 제공한다: "다섯 번째: 남쪽으로 1 마일."
b. 쿠퍼티노의 스모그 프로 앤 오토 서비스에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목으로 설정한다.
d. 이 항목에 대한 음성 기반의 항목 관련 부연을 제공한다: "다섯 번째는 1 마일 동쪽으로 노쓰 드 안자 불바드에 있는 쿠퍼티노의 스모그 프로 앤 오토 서비스입니다."
e. 페이지의 첫 번째 항목(즉, <항목 5>)에 적용 가능한 동작들에 관한 옵션들을 제안하는 음성 기반 프롬프트를 제공한다: "전화하실래요, 길 안내를 받으실래요, 또는 다음 곳으로 가실래요?"
f. 삐 삐 소리를 낸다.
g. 사용자가 "다음"이라고 말한다.
<항목 6>
a. 항목의 항목 관련 부연을 텍스트로 제공한다: "여섯 번째: 서쪽으로 2 마일."
b. 쉘 역에 대한 시각적 스니펫을 보여준다.
c. 컨텍스트 마커를 이 항목으로 설정한다.
d. 항목에 대한 음성 기반의 항목 관련 부연을 제공한다: "여섯 번째는 1 마일 서쪽으로 스티븐스 크릭 불바드에 있는 쉘 역입니다."
e. 두 번째 항목에 적용 가능한 동작들에 관한 프롬프트를 제공하지 않는다.
f. 삐 삐 소리를 낸다.
g. 사용자가 "길 안내"라고 말한다.
h. 컨텍스트 마커의 위치에 기초하여 대상 항목을 결정하고, 현재 항목을 대상 항목으로서 식별한다. 현재 항목에 대한 길 안내 검색을 호출한다.
지역 검색 도메인에서의 목록 읽기에 대한 이상의 예들은 예시적인 것에 불과하다. 지역 검색 도메인에 대해 개시된 기법들이 다른 도메인들 및 도메인 관련 항목 유형들에도 적용 가능하다. 예를 들어, 목록 읽기 알고리즘들 및 제시 기법들이 지역 검색 도메인을 벗어난 사업체 명단들의 목록을 읽는 것에도 적용 가능할 수 있다.
리마인더들을 읽기
핸즈 프리 모드에서 리마인더들을 읽는 것은 2 개의 중요한 부분들을 가진다: 어떤 리마인더들을 읽어야 하는지를 선택하는 것 및 각각의 리마인더를 어떻게 읽어야 하는지를 결정하는 것. 핸즈 프리 모드에 대해, 제시될 리마인더의 목록은 사용자와 연관된 모든 이용 가능한 리마인더들의 의미 있는 부분집합인 리마인더들의 그룹으로 필터링 축소(filter down)된다. 그에 부가하여, 핸즈 프리 컨텍스트에서 사용자에게 제시될 리마인더들의 그룹이 리마인더 트리거 시각, 트리거 위치, 및 사용자 또는 사용자의 디바이스가 수행할 수 있는 다른 동작들 또는 이벤트들과 같은 다양한 리마인더 속성들에 기초하여 의미 있는 하위 그룹들로 추가로 분할될 수 있다. 예를 들어, 누군가가 "내 리마인더들이 무엇이냐"라고 말하는 경우, 어시스턴트가 "적어도 25 개의..."라고 대답하는 것은 그다지 도움이 되지 않을 수 있는데, 그 이유는 사용자가 한 자리에서 25 개의 리마인더들 모두에 관해 들을 시간이 없거나 그에 관심이 없을 수 있기 때문이다. 그 대신에, 사용자에게 제시될 리마인더들은 지금 관련성 있는 꽤 작고 이용 가능한 리마인더들의 집합이어야 한다. 예컨대, "최근의 리마인더들이 3 개 있습니다." "오늘에 대한 리마인더들이 4 개 있습니다." "오늘에 대한 리마인더들이 5 개 있고, 하나는 여행 중일 때에 대한 것이며, 4 개는 귀가 후에 대한 것입니다."
현재 및 트리거 날짜/시각, 트리거 위치, 및 트리거 동작들을 비롯한, 리마인더가 지금 관련성 있는지 여부를 결정하는 데 도움을 주기 위해 사용될 수 있는 몇몇 종류의 구조적 데이터들이 있다. 어느 리마인더들이 지금 관련성 있는지를 선택하기 위한 선택 기준들은 이 구조적 데이터들 중 하나 이상에 기초할 수 있다. 트리거 날짜/시각에 대해, 각각의 리마인더에 대한 경고 시각 및 만기 날짜가 있다.
선택 기준은 리마인더의 경고 시각 및 만기 날짜와 현재 날짜 및 시각, 또는 다른 사용자 지정 날짜 및 시각 사이의 일치에 기초할 수 있다. 예를 들어, 사용자가 "내 리마인더들은 무엇이냐"라고 질문할 수 있고, 사용자에게 핸즈 프리 목록 읽어 주기를 위해 현재 시각에 가까운 트리거 시각(예컨대, 경고 시각 및/또는 만기 시각/날짜)을 갖는 최근의 리마인더들 및/또는 예정된 리마인더들의 작은 집합(예컨대, 5 개)이 선택된다. 위치 트리거들에 대해, 사용자가 현재 위치를 떠나고 그리고/또는 다른 위치에 도착할 때 리마인더가 트리거될 수 있다.
선택 기준은 현재 위치 및/또는 사용자 지정 위치에 기초할 수 있다. 예를 들어, 사용자는 현재 위치를 떠날 때 "내 리마인더들은 무엇이냐"라고 말할 수 있고, 어시스턴트는 현재 위치를 떠나는 사용자와 연관된 트리거들을 가지는 리마인더들의 작은 집합을 선택할 수 있다. 다른 예로서, 사용자는 점포 내로 들어갈 때 "내 리마인더들은 무엇이냐"라고 말할 수 있고, 그 점포와 연관된 리마인더들이 제시를 위해 선택될 수 있다. 동작 트리거들에 대해, 사용자가 동작을 수행 중(예컨대, 운전 중, 또는 걷는 중)이라는 것을 어시스턴트가 검출할 때 리마인더가 트리거될 수 있다. 대안적으로 또는 그에 부가하여, 리마인더들에 명시된 대로 사용자에 의해 수행될 동작들의 유형이 또한 제시하기 위한 관련성 있는 리마인더들을 선택하는 데 사용될 수 있다.
선택 기준은 사용자의 현재 동작 또는 리마인더들과 연관된 동작 트리거들에 기초할 수 있다. 선택 기준은 또한 사용자의 현재 동작 및 리마인더들에 따라 사용자에 의해 수행되어야 하는 동작들에 기초할 수 있다. 예를 들어, 사용자가 운전 중에 "내 리마인더들은 무엇이냐"라고 질문할 때, 운전 동작 트리거들과 연관된 리마인더들(예컨대, 자동차에서 통화를 하는 것에 대한 리마인더들, 주유소에 가는 것에 대한 리마인더들, 오일 교환을 하는 것에 대한 리마인더들 등)이 제시를 위해 선택된다. 다른 예로서, 사용자가 걷는 중에 "내 리마인더들은 무엇이냐"라고 질문할 때, 사용자가 걷는 중에 수행되기에 적당한 동작들과 연관된 리마인더들(통화를 하는 것에 대한 리마인더들 및 현재 꽃가루 수치를 검사하는 것에 대한 리마인더, 자외선 차단제를 바르는 것에 대한 리마인더 등)이 제시를 위해 선택될 수 있다.
사용자가 움직이는 차량을 타고 여행 중인 동안(예컨대, 운전하거나 자동차에 앉아 있음), 사용자는 통화를 하고, 어떤 리마인더들이 다음에 또는 곧 트리거될 것인지를 사전 검토할 수 있다. 통화들에 대한 리마인더들은 의미 있는 그룹을 형성할 수 있는데, 그 이유는 통화들이 한 자리에서(예컨대, 사용자가 자동차를 타고 여행 중인 동안) 순차적으로 행해질 수 있기 때문이다.
이하의 설명은 핸즈프리 리마인더 읽기에 대한 어떤 보다 상세한 시나리오들을 제공한다. 누군가가 핸즈 프리 상황에서 "내 리마인더들은 무엇이냐"라고 말하는 경우, 어시스턴트는 이하의 카테고리들의 리마인더들 중 하나 이상과 연관된 리마인더들의 짧은 목록에 관한 보고(report) 또는 개요를 제공한다: (1) 최근에 트리거된 리마인더들, (2) 사용자가 어떤 곳을 떠날 때 트리거될 리마인더들(어떤 곳이 사용자가 금방 있었던 곳이라고 가정함), (3) 오늘 트리거되거나 마감인 리마인더들(빠른 순으로 되어 있음), (4) 당신이 어딘가에 도착할 때 트리거될 리마인더들.
리마인더들에 대해, 개개의 리마인더들이 제시되는 순서는 때때로 개요만큼 중요하지 않다. 개요는 리마인더들의 목록을, 리마인더들의 임의적인 제목 문자열들이 사용자에게 얼마간 의미가 통할 수 있는 컨텍스트에 둔다. 예를 들어, 사용자가 리마인더들을 요구할 때, 어시스턴트는 "최근에 발생한 리마인더들이 N 개 있습니다, M 개는 여행 중일 때에 대한 것이고, J 개의 리마인더들은 오늘로 예정된 것입니다"라는 개요를 제공할 수 있다. 리마인더들의 목록의 개요를 제공한 후에, 어시스턴트는 목록 내의 리마인더의 각각의 하위 그룹을 계속 조사할 수 있다. 예를 들어, 이하는 어시스턴트가 목록을 사용자에게 제시하기 위해 수행할 수 있는 단계들이다:
어시스턴트는 음성 기반 하위 섹션 개요: "최근에 트리거된 리마인더들은:"을 제공하고, 이어서 일시 중지가 따라온다. 이어서, 어시스턴트는 "어떤 것에 관해 그 사람을 만나보세요"라는 리마인더의 내용(예컨대, 리마인더의 제목, 또는 리마인더의 짧은 설명)의 음성 기반의 항목 관련 부연을 제공한다. 사용자가 리마인더들을 구분할 수 있고 일시 중지 동안 명령으로 어시스턴트를 중단시킬 수 있도록, 하위 그룹(예컨대, 최근에 트리거된 리마인더들의 하위 그룹) 내의 리마인더들 사이에, 일시 중지가 삽입될 수 있다. 일부 실시예들에서, 양방향 통신이 계속 유지되지 않는 경우, 어시스턴트는 일시 중지 동안 리스닝 모드에 진입한다. 첫 번째 리마인더의 부연이 제공된 후에, 어시스턴트는 하위 그룹 내의 두 번째 리마인더를 계속하고, 이하 마찬가지이다: "<일시 중지> 회사 점포로부터 은하간 통신을 위한 케이블을 구하세요" 일부 실시예들에서, 부연이 읽혀지기 전에 리마인더들의 서수 위치가 제공된다. 그렇지만, 리마인더들의 순서가 다른 유형들의 데이터 항목들에 대해서만큼 중요하지 않기 때문에, 리마인더들의 서수 위치가 통신을 보다 간결하게 만들기 위해 때때로 의도적으로 생략된다.
어시스턴트는 하위 그룹 개요: "여행 중일 때에 대한 리마인더들은:"을 먼저 제공하는 것에 의해 리마인더들의 두 번째 하위 그룹을 계속한다 이어서, 어시스턴트는 두 번째 하위 그룹 내의 리마인더들을 하나씩 조사한다: "<일시 중지>저스틴 비버에게 전화하세요" "<일시 중지>일몰을 확인하세요." 리마인더들의 두 번째 하위 그룹이 제시된 후에, 어시스턴트는 리마인더들의 세 번째 하위 그룹의 하위 그룹 개요: "오늘 발생할 리마인더는:"을 계속 읽는다 이어서, 어시스턴트는 세 번째 하위 그룹 내의 각각의 리마인더의 항목 관련 부연: "<일시 중지> 그 보고를 마무리하세요"를 계속 제공한다. 리마인더들의 세 번째 하위 그룹이 제시된 후에, 어시스턴트는 "귀가할 때에 대한 리마인더들은:"이라고 말하는 것에 의해 네 번째 하위 그룹의 하위 그룹 개요를 제공한다. 이어서, 어시스턴트는 네 번째 하위 그룹 내의 리마인더들에 대한 항목 관련 부연들: "<일시 중지> 저장고로부터 술 한 병 꺼내오세요", "<일시 중지> 불을 켜세요."를 계속 읽는다. 이상의 예들은 예시적인 것에 불과하고, 관련성 있는 리마인더들의 목록이 어떻게 다양한 속성들(예컨대, 현재 시각에 상대적인 트리거 시각, 최근에 트리거됨, 예정됨, 동작에 기초하여 트리거됨, 위치에 기초하여 트리거됨 등)에 기초하여 의미 있는 하위 그룹들 또는 카테고리들로 분할될 수 있는지의 개념을 설명한다. 이상의 예들은 또한 리마인더들이 제시되는 주요 문구들을 예시하고 있다. 예를 들어, 하위 그룹들의 설명 및 각각의 하위 그룹 내의 리마인더들의 개수를 포함하는 목록 레벨 개요가 제공될 수 있다. 그에 부가하여, 하나 초과의 하위 그룹들이 있을 때, 하위 그룹들 내의 리마인더들이 제시되기 전에 하위 그룹 개요가 제공된다. 하위 그룹 개요는 이 하위 그룹이 생성되는 기준인 그리고 하위 그룹 내의 리마인더들이 선택되는 기준인 특성 또는 속성에 기초하여 하위 그룹의 이름 또는 제목을 언급한다.
일부 실시예들에서, 사용자는 사용자가 어느 특정의 그룹의 리마인더들에 관심을 갖고 있는지를 명시할 것이다. 환언하면, 선택 기준들이 사용자 입력에 의해 제공된다. 예를 들어, 사용자는 "해야 할 통화들을 보여줘" 또는 "귀가할 때 뭘 해야 하지" 또는 "이 점포에서 뭘 사야 하지" 등을 명시적으로 요청할 수 있다. 이 요청들 각각에 대해, 디지털 어시스턴트는 자연어 처리에 기초하여 사용자 입력으로부터 선택 기준들을 추출하고, 사용자 지정 선택 기준들 및 리마인더들과 연관된 적절한 속성들(예컨대, 트리거 시각/날짜, 트리거 동작들, 수행될 동작들, 트리거 위치 등)에 기초하여 제시하기 위한 관련성 있는 리마인더들을 식별한다.
이하는 특정 그룹들의 리마인더들에 대한 읽기의 예이다:
통화들에 대한 리마인더들에 대해: 사용자는 "어떤 통화들을 해야 하니"라고 질문할 수 있고, 어시스턴트는 "3 개의 통화들을 하라는 리마인더들이 있습니다: 에이미 조, 버나드 줄리아, 및 체탄 체버"라고 말할 수 있다. 이 응답에서, 어시스턴트는 개요와 그에 뒤이은 리마인더들의 항목 관련 부연들을 제공한다. 개요는 관련성 있는 리마인더들을 선택하는 데 사용되는 선택 기준(예컨대, 사용자에 의해 수행될 동작은 "통화하는 것"임), 및 관련성 있는 리마인더들의 개수(예컨대, 3)를 명시하였다. 통화들에 대한 리마인더들에 대한 도메인 관련, 항목 관련 부연은 전화할 사람의 이름(예컨대, 에이미 조, 버나드 줄리아, 및 체탄 체버)만을 포함하고, 관련 없는 정보는 부연들에 제공되지 않는데, 그 이유는 사용자가 리마인더에 관한 동작(즉, 실제로는 통화들 중 하나를 행함)을 계속할지 여부에 관해 결정하는 데 이 시점에서 이름들로 충분하기 때문이다.
특정 위치에서의 할 일에 대한 리마인더들에 대해: 사용자는 "귀가할 때 무엇을 해야 하니"라고 질문하고, 어시스턴트는 "귀가할 때에 대한 2 개의 리마인더들이 있습니다: "<일시 중지> 저장고로부터 술 한 병 꺼내오세요", 그리고 "<일시 중지> 불을 켜세요."을 계속 읽는다. 이 응답에서, 어시스턴트는 개요와 그에 뒤이은 리마인더들의 항목 관련 부연들을 제공한다. 개요는 관련성 있는 리마인더들을 선택하는 데 사용되는 선택 기준(예컨대, 트리거 위치는 "집"임), 및 관련성 있는 리마인더들의 개수(예컨대, 2)를 명시하였다. 리마인더들에 대한 도메인 관련, 항목 관련 부연은 수행될 동작(예컨대, 리마인더들에서 명시된 동작)만을 포함하고, 관련 없는 정보는 부연들에 제공되지 않는데, 그 이유는 사용자가 무슨 일이 발생할지의 사전 검토만을 원하기 때문이다.
이상의 예들은 리마인더들 도메인에 대한 핸즈 프리 목록 읽기에 대한 예시에 불과하다. 관련성 있고 핸즈 프리 컨텍스트에서 사용자에게 제시되어야 하는 리마인더들의 특정 유형들 및 카테고리들에 따라 부가 변형들이 가능하다. 리마인더들의 시각적 스니펫들이, 선택적으로, 어시스턴트에 의해 제공되는 음성 기반 출력들을 수반하여 화면 상에 제공된다. 리마인더들의 상이한 하위 그룹들 간에 탐색하기 위해 또는 하나 이상의 리마인더들에 관한 정보를 반복하기 위해, 반복, 다음 등과 같은 명령들이 여전히 사용될 수 있다.
일정 이벤트들을 읽기
이하의 설명은 핸즈 프리 모드에서 일정 이벤트들을 읽는 것에 관한 것이다. 핸즈 프리 일정 이벤트 읽기에 대한 2 가지 주요 고려사항들은 여전히 어느 일정 엔트리들을 읽어야 하는지를 선택하는 것, 및 각각의 일정 엔트리를 어떻게 읽어야 하는지를 결정하는 것이다. 리마인더들 및 다른 도메인 관련 데이터 항목 형식들을 읽는 것과 유사하게, 사용자와 연관된 모든 일정 엔트리들의 작은 부분집합이 선택되고, 각각 3 내지 5 개의 엔트리들로 된 의미 있는 하위 그룹들로 그룹화된다. 하위 그룹들의 분할은 이벤트 날짜/시각, 리마인더 날짜/시각, 이벤트들의 유형, 이벤트들의 위치, 참가자들 등과 같은 다양한 선택 기준들에 기초할 수 있다. 예를 들어, 사용자가 "일정에 뭐가 있어"라고 질문하는 경우, 어시스턴트가 "일정에 적어도 50 개 엔트리들이 있습니다"라고 말하는 것은 그다지 도움이 되지 않을 것이다. 그 대신에, 어시스턴트는 금일 또는 반나절에 대한 이벤트 엔트리들에 관한 정보를 제시할 수 있고, 이어서 사용자의 후속 명령들에 따라 그 이후로 진행한다. 예를 들어, 사용자는, 단순히 "다음 페이지"라고 말하는 것에 의해, 다음 날에 대한 부가 이벤트들에 관해 질문할 수 있다.
일부 실시예들에서, 일정 엔트리들이 날짜별로 하위 그룹들로 분할된다. 각각의 하위 그룹은 하루의 이벤트들만을 포함한다. 사용자가 여러 날에 걸쳐 있는 날짜 범위의 일정 엔트리들을 요구하는 경우, 그 범위 내의 각각의 하루와 연관된 일정 엔트리들이 한 번에 제시된다. 예를 들어, 사용자가 "다음 주 일정에 뭐가 있어"라고 질문하는 경우, 어시스턴트는 목록 레벨 개요 "월요일에 3 개의 이벤트들, 화요일에 2 개의 이벤트들이 있고, 그리고 다른 날에는 이벤트가 없습니다"로 대답할 수 있다. 어시스턴트는 이어서 월요일 및 화요일 각각에 있는 이벤트들을 계속하여 제시할 수 있다. 각각의 날에 있는 이벤트들에 대해, 어시스턴트는 그 날의 하위 그룹 개요를 먼저 제공할 수 있다. 개요는 그 날에 있는 이벤트들의 시각들을 명시할 수 있다. 일부 실시예들에서, 이벤트가 전일 이벤트(whole-day event)인 경우, 어시스턴트는 하위 그룹 개요에 그 정보도 제공한다. 예를 들어, 이하는 일정 엔트리들의 핸즈 프리 읽기를 설명하는 예시적인 시나리오이다:
사용자는 "오늘 일정에 뭐가 있어"라고 질문한다. 어시스턴트는 음성으로: "오전 11시, 12시 30분, 3시 30분 그리고 오후 7시에 일정 상의 이벤트들이 있습니다. 종일 이벤트(day-long event)도 있습니다"라고 대답한다 이 예에서, 사용자는 하루의 이벤트들만을 요청하였고, 목록 레벨 개요는 그 날의 이벤트들의 개요이다.
일정 이벤트들의 목록을 제시함에 있어서, 대부분의 경우에, 이벤트 시각이 사용자에게 가장 적절한 정보이다. 시각들의 목록의 제시를 간소화하는 것은 사용자 경험을 개선시키고 정보의 전달을 보다 효율적으로 만들 수 있다. 일부 실시예들에서, 일정 엔트리들의 이벤트 시각들이 아침 및 오후 둘 다에 걸쳐 있는 경우, 첫 번째 및 마지막 일정 엔트리들에 대한 이벤트 시각들만이 음성 기반 개요에서 오전/오후 표시자와 함께 제공된다. 그에 부가하여, 모든 이벤트들이 오전에 있는 경우, 첫 번째 및 마지막 일정 엔트리들의 이벤트 시각들에 대해 오전 표시자가 제공된다. 모든 이벤트들이 오후에 있는 경우, 그 날의 마지막 이벤트에 대해 오후 표시자가 제공되지만, 다른 이벤트 시각들에 대해서는 오전/오후 표시자가 제공되지 않는다. 정오 및 자정은 이상의 오전/오후 규칙의 적용을 받지 않는다. 어떤 보다 명확한 예에 대해, 이하는 일정 엔트리 목록 개요에 제공될 수 있는 것이다: "오전 11시, 12시 30분, 3시 30분, 및 오후 7시", "오전 8시 30분, 9시 및 오전 10시", "5시, 6시 및 오후 7시 30분", "정오, 2시, 4시, 5시, 5시 30분, 및 오후 7시", "5시, 6시, 및 자정."
하루 종일 이벤트(all-day event)들에 대해, 어시스턴트는 하루 종일 이벤트들의 개수를 제공한다. 예를 들어, 다음 주의 이벤트들에 관해 질문을 받을 때, 디지털 어시스턴트는 "(N 개의) 하루 종일 이벤트(들)가 있습니다"라고 말할 수 있다.
관련성 있는 일정 엔트리들의 목록을 읽을 때, 디지털 어시스턴트는 시각이 정해진 이벤트들 모두를 먼저 읽고 이어서 하루 종일 이벤트들을 읽는다. 시각이 정해진 이벤트들이 없는 경우, 어시스턴트는 개요 이후에 곧바로 하루 종일 이벤트들의 목록을 읽는다. 이어서, 목록 상의 각각의 이벤트에 대해, 어시스턴트는 이하의 템플릿: <시간> <제목> <위치>에 따라 음성 기반의 항목 관련 부연을 제공하고, 여기서 일정 엔트리에 위치가 명시되지 않은 경우 위치가 생략될 수 있다. 예를 들어, 일정 엔트리들의 항목 관련 부연들은 "오전 11시에", "정오에", "오후 1시 30분에", "오후 7시 15분에", "정오에" 등의 형태로 된 <시간> 성분을 포함한다. 하루 종일 이벤트에 대해서는, 이러한 부연이 필요하지 않다. <제목> 성분에 대해, 어시스턴트는, 선택적으로, 이벤트의 제목에 부가하여, 참가자들의 인원수 및/또는 ID(identity)들을 명시한다. 예를 들어, 이벤트에 대해 3 명 초과의 참가자들이 있는 경우, <제목> 성분은 "N 명의 사람들이 참가하는 <이벤트 제목>"을 포함할 수 있다. 1 내지 3 명의 참가자들이 있는 경우, <제목> 성분은 "사람1, 사람2, 및 사람3이 참가하는 <이벤트 제목>"을 포함할 수 있다. 사용자 이외에 이벤트에 대한 참가자들이 없는 경우, <제목> 성분은 <이벤트 제목>만을 포함할 수 있다. 일정 이벤트에 대해 위치가 명시되어 있는 경우, <위치> 성분이 일정 이벤트의 부연에 삽입될 수 있다. 이것은 어떤 필터링을 필요로 한다.
이하는 일정 이벤트들에 대한 핸즈 프리 목록 읽기 시나리오를 예시하고 있다. 사용자가 "일정에 뭐가 있어"라고 질문한 후에, 어시스턴트는 개요: "오전 11시, 정오, 오후 3시 30분 및 7시에 일정 상의 이벤트들이 있습니다. 2 개의 종일 이벤트들도 있습니다"로 대답한다. 개요 이후에, 어시스턴트는 일정 엔트리들의 목록: "오전 11시에: 회의", "오전 11시 30분에: 해리 새들러와 회동" "정오에: 회의실 (8), IL 2에서 9 명의 사람들과 설계 검토", "오후 3시 30분에: 수잔과 회동", "오후 7시에: 에이미 채버 및 린 줄리아와 저녁 식사"를 계속한다. 일부 실시예들에서, 어시스턴트는 "그게 전부입니다"와 같은 결말 출력을 제공하는 것에 의해 목록의 끝을 표시할 수 있다.
이상의 예들은 일정들 도메인에 대한 핸즈 프리 목록 읽기에 대한 예시에 불과하다. 관련성 있고 핸즈 프리 컨텍스트에서 사용자에게 제시되어야 하는 일정 엔트리들의 특정 유형들 및 카테고리들(예컨대, 회의들, 예약들, 파티들, 식사들, 준비/여행 등을 필요로 하는 이벤트들)에 따라 부가 변형들이 가능하다. 일정 엔트리들의 시각적 스니펫들이, 선택적으로, 어시스턴트에 의해 제공되는 음성 기반 출력들을 수반하여 화면 상에 제공된다.
이메일들에 대한 목록 읽기
다른 도메인들에서의 데이터 항목들의 다른 목록과 유사하게, 이메일들의 목록의 핸즈 프리 읽기도 어느 이메일들을 목록에 포함시킬지 및 각각의 이메일을 사용자에게 어떻게 읽어 줄지와 관련되어 있다. 이메일은, 이메일들이 전형적으로 끝없는 크기를 가지는(예컨대, 너무 커서 전체를 읽을 수 없음) 끝없는 부분(즉, 메시지 본문)을 포함하고, 음성으로 용이하게 변환될 수 없는 내용(예컨대, 객체, 표, 사진 등)을 포함할 수 있다는 점에서, 다른 항목 유형들과 상이하다. 따라서, 이메일들을 읽을 때, 이메일들의 끝없는 부분들이 보다 작은 청크들로 분할되고, 한 번에 하나의 청크만이 제공되며, 사용자가 (예컨대, "추가"와 같은 명령을 사용하는 것에 의해) 나머지를 듣는 것을 특별히 요청하지 않는 한, 나머지는 음성 출력으로부터 생략된다. 그에 부가하여, 제시하기 위한 이메일들을 선택하기 위한 적절한 속성들, 및 이메일들을 하위 그룹들로 분할하는 것은 송신자 ID(sender identity), 날짜, 제목, 및 읽음/읽지 않음 상태, 긴급성 플래그 등을 포함한다. 이메일 내의 객체들(예컨대, 표, 사진) 및 첨부 파일들이 어시스턴트에 의해 식별될 수 있지만, 핸즈 프리 읽기로부터 생략될 수 있다. 일부 실시예들에서, 객체들 및 첨부 파일은 디스플레이 상에 제시될 수 있다. 일부 실시예들에서, 사용자가 또한 아이즈 프리 모드에 있는 경우, 이 객체들 및 첨부 파일의 디스플레이가 어시스턴트에 의해 금지될 수 있다.
이하는 이메일에 대한 핸즈 프리 목록 읽기를 설명하는 예시적인 시나리오이다. 이 예는 개요 이후 그리고 이메일들의 목록을 읽기 이전에 프롬프트의 사용을 예시하고 있다. 이메일들의 목록을 읽을 때, 각각의 메일의 내용의 요약 또는 부연이 하나씩 제공된다. 사용자는 명령 "다음", "첫 번째", "이전", "마지막" 등을 사용하여 목록을 탐색할 수 있다. 이메일의 메시지 본문을 보다 많이 듣기 위해, 사용자는 "추가"라고 말할 수 있다. 사용자는 또한 이메일에 적용 가능한 동작들에 관련된 명령을 말할 수 있다. 어시스턴트가 이메일들을 하나씩 읽어 감에 따라 컨텍스트 마커는 이메일들의 목록에 걸쳐 전진한다. 사용자의 명령이 순차적 순서를 벗어난 이메일에 관한 것인 경우, 컨텍스트 마커는 또한 하나의 이메일로부터 다른 이메일로 건너 뛴다.
예를 들어, 사용자는 "해리 새들러로부터의 새로운 메일이 있나?"라고 질문할 수 있다.
사용자 입력에 명시된 선택 기준들(예컨대, 송신자 = 해리 새들러, 및 읽음/읽지 않음 상태 = 새 메일)에 기초하여, 어시스턴트는 관련성 있는 이메일들을 식별하고, 목록 개요 및 이메일들의 목록을 읽기 위한 프롬프트를 제공한다: "해리 새들러로부터 5 개의 읽지 않은 메시지들이 있습니다. 읽어드릴까요?" 사용자가 긍정적으로 "그래"라고 대답하는 경우, 어시스턴트는 계속하여 이메일들의 목록의 도메인 관련, 항목 관련 부연을 하나씩 읽는다. 예를 들어, 어시스턴트는 "첫 번째 메시지, 해리 새들러로부터, 3일 전. 제목: 오늘 오후 3시 짧은 회의"라고 말할 수 있다. 부연은 이메일의 내용에 기초하여 생성되고, 목록에서의 메시지의 서수 위치, 메시지와 연관된 송신자 ID, 메시지와 연관된 시각, 및 메시지의 제목 라인과 같은 주요 정보를 포함한다. 여기서, 정확한 도착 시각이 사용되지 않는다. 그 대신에, 도착 시각의 부연이 사용되는데, 그 이유는 정확한 도착 시각이 어쩌면 핸즈 프리 컨텍스트에서는 적절하지 않기 때문이다. 메시지의 본문은 읽혀지지도 않고 부연에서 제공되지도 않는다. 이어서, 짧은 일시 중지 후에, 어시스턴트는 메시지의 끝없는 내용의 첫 번째 청크를 읽기 시작할 수 있다. "해리가 보냄: 프로젝트 X를 살펴볼 다음 회의 - 10월 17일 월요일 오후 2시에 있음. 회의실을 찾을 수 없으니, IL2/4층 엘리베이터 로비에서 만나, 거기서부터 갑시다. 이 경우에, 메시지의 끝없는 내용의 전체 길이는 청크에 대한 미리 결정된 길이 제한 내에 들어갈 정도로 충분히 짧고(예컨대, 3 라인의 텍스트), 따라서, 메시지의 내용 본문 전체가 하나의 청크에서 읽혀진다.
첫 번째 메시지를 읽은 후에, 짧은 일시 중지가 제공되고, 그로써 사용자는 방금 읽은 메시지에 적용 가능한 동작(예컨대, 답신, 삭제, 반복 등)에 대한 명령 또는 다음 메시지로 계속 가라는 명령을 입력할 수 있다. 사용자가 "다음"이라고 말하는 것으로 가정하자. 그러면, 어시스턴트는 목록에서의 다음 메시지로 진행하고, 컨텍스트 마커는 다음 메시지로 전진한다. 어시스턴트는 "다음 메시지, 해리 새들러로부터, 오늘 오전 8시 23분, 제목: 목록 읽기 사용 사례들"이라는 음성 출력을 제공한다. 사용자 중단을 위한 일시 중지 후에, 어시스턴트는 메시지의 끝없는 내용을 계속하여 읽는다 "해리가 보냄:" 사람들의 요구에 따라, 사용 사례들을 밝혀내고, 세분화하며 추적하는 데 스프레드시트들을 사용할 것입니다. 각각이 대응하는 TLF에 첨부될 것이고; 업데이트될 때, 새로운 버전이 추가될 것입니다. 제가 관련성 있는 도메인 팀들로 사용 사례들을 밝혀내는 선봉에 서겠습니다." 메시지 본문의 첫 번째 청크를 읽은 후에, 어시스턴트는 일시 중지하고, "이 메시지를 계속 읽을까요?"라고 사용자에게 프롬프트한다. 사용자가 "그래"라고 말하는 경우, 어시스턴트는 계속하여 메시지 본문의 다음 청크를 읽는다: "해리가 보냄: 일정 사용 사례들이 부분적으로 해결되었지만, 여전히 뼈대에 살을 좀 붙일 필요가 있고, 물론 우선순위를 부여할 필요가 있습니다. LINK. TLF: 일정 엔트리들. .." 어시스턴트가 메시지 본문의 이 청크를 읽는 것을 완료하기 전에, 사용자는 명령 "답신해"로 읽기를 중단시킨다. 그에 응답하여, 어시스턴트는 읽기를 중단하고, 현재 메시지를 사용자의 입력에 의해 요청되는 동작에 대한 대상 메시지로서 식별한다. 어시스턴트는 음성 기반 응답 "네, 해리 새들러에 답신하는 것을 도와드릴 수 있습니다. 뭐라고 말하고 싶으십니까?"를 생성한다. 사용자는 답신 이메일의 텍스트 "좋은 생각이야 마침표 이것들이 많은 도움이 될거야"를 말한다. 어시스턴트는 정확성을 확인하기 위해 메시지를 다시 사용자에게 되풀이한다 "당신의 메시지는 이렇습니다: 좋은 생각이야. 이것들이 많은 도움이 될거야." 어시스턴트는 이어서 "송신할 준비가 되었습니까?"라고 질문한다. 사용자가 (예컨대, "그래"라고 말하는 것에 의해) 확인하면, 어시스턴트는 사용자의 확인을 확인 응답하고, "네, 송신하겠습니다. 이메일을 계속하여 읽을까요?"라고 말한다. 사용자가 "그래"를 대답한 후에, 어시스턴트는 목록에서의 다음 메시지로 가서, "다음 메시지, 해리 새들러로부터, 어제 오후 2시 34분, 제목: 스프레드시트 <일시 중지> 이메일 메시지가 첨부 파일만을 포함하고 있습니다."를 읽는다.
유의할 점은, 이 이메일 메시지 및 이전 이메일 메시지 둘 다에 대한 끝없는 내용의 읽기에서, 어시스턴트가 쉽게 크게 읽혀지지 않는 어떤 객체를 검출하였다는 것이다. 예를 들어, 이전 이메일에서, 메시지 본문은 하이퍼링크를 포함한다. 어시스턴트는 하이퍼링크의 텍스트를 음성으로 변환하지 않는다. 그 대신에, 어시스턴트는 키워드 "LINK.TLF:."를 사용하여 메시지 본문에서 링크의 존재를 간단히 식별하고, 따라서 사용자가 링크를 통보받지만, 메시지 본문의 음성 출력이 인식할 수 없는 형태로 왜곡되지 않는다. 현재 메시지에서, 첨부 파일이 식별된다. 어시스턴트는 첨부 파일을 읽으려고 시도하지 않는다. 그 대신에, 어시스턴트는 간단히 이메일에 첨부 파일이 존재한다는 것을 나타내는 음성 출력을 제공한다.
이상의 이메일 읽기 시나리오를 계속한다. 세 번째 메시지의 끝없는 내용을 읽은 후에, 디지털 어시스턴트는 다음 메시지를 계속하여 읽는다, "다음 메시지, 해리 새들러로부터, 30분 전,. 제목: TTS를 종료시킬 방법이 없음에 관한 당신으로부터의 메시지에 대한 답신으로." 일시 중지 후에, 어시스턴트는 끝없는 내용의 첫 번째 청크를 계속한다 "해리가 보냄: 이러한 간단한 해결책은 어떻습니까: 어시스턴트를 무음화시키세요. 어시스턴트가 말하고 있는 동안, 흔들면; 말하는 것을 중단합니다. 어시스턴트를 무음화시키고 새로운 요청을 하세요: 어시스턴트가 말하고 있는 동안, 또다시 흔드세요.. <일시 중지>" 첫 번째 청크를 읽은 후에, 어시스턴트는 또다시 "이 메시지를 계속 읽을까요?"라고 묻는다. 사용자는 "반복해"라고 말한다. 그에 응답하여, 어시스턴트는, 지금 목록에서의 네 번째 메시지의 끝없는 내용의 첫 번째 청크 상에 존재하고 있는 컨텍스트 마커의 위치를 검사한다. 어시스턴트는 이어서 네 번째 메시지에 대한 메시지 본문의 첫 번째 청크를 또다시 읽는다, "이 간단한 해결책은 어떻습니까: 어시스턴트를 무음화시키세요. 어시스턴트가 말하고 있는 동안, 흔들면; 말하는 것을 중단합니다. 어시스턴트를 무음화시키고 새로운 요청을 하세요.. 어시스턴트가 말하고 있는 동안, 또다시 흔드세요.."
짧은 일시 중지 후에, 어시스턴트는 "계속할까요?"라고 묻는다. 사용자가 "그래"라고 말하는 경우, 어시스턴트는 현재 메시지의 두 번째 청크를 계속하여 읽고, 컨텍스트 마커도 두 번째 청크로 이동한다. 예를 들어, 어시스턴트는 두 번째 청크 "이것은 새로운 요청을 함이 없이 어시스턴트를 해결하기 위한 단순히 '어시스턴트 무음화' + '리스닝 시작'입니다. 홈 버튼, 마이크 버튼이 나타날 때 이어서 마이크 버튼. 이것은 정말로 어떤 입력도 없는 강제 종료점입니다. 해리"를 읽는다.
짧은 일시 중지 후에, 어시스턴트는 "계속할까요?"라고 질문하고, 사용자는 "아니오"라고 말한다.
현재 메시지의 메시지 본문을 읽는 것을 중단하라는 사용자의 명령에 응답하여, 어시스턴트는 계속하여 다음 메시지를 읽는다: "다음 메시지, 해리 새들러로부터, 10분 전, 제목: 트랜잭션에 남아 있기 위한 간단한 규칙(모달 프롬프트)에 관한 시아막 호자트로부터의 메시지에 대한 답신으로." 짧은 일시 중지 후에, 어시스턴트는 "이 메시지를 계속 읽을까요?"라고 묻는다. 사용자는 "다음"이라고 말한다. 사용자의 입력에 응답하여, 어시스턴트는 "그게 5 개의 이메일 메시지들 중 마지막 것입니다"라고 대답한다.
유의할 점은, 이상의 예에서, 첫 번째 메시지의 서수 위치만이 메시지들의 항목 관련 부연들에 제공되었고, 나머지 메시지들이 그 각자의 부연들에서 단지 "다음 메시지"라고 지칭된다는 것이다. 부연들에서의 서수 위치의 생략이 가능한 이유는 몇 개의 메시지들(예컨대, 5 개 이하)만이 읽혀지고 있기 때문이다. 그리고 사용자는 메시지들의 서수 위치들을 마음에 새겨두기 위해 서수 위치들을 크게 들을 필요가 없다. 목록에서의 그 각자의 서수 위치들에 의해 메시지들을 언급하는 사용자 명령들은 이 컨텍스트에서 여전히 동작할 것이다. 예를 들어, 네 번째 메시지를 읽은 후에 "두 번째 메시지를 반복해"라는 음성 입력은 여전히 사용자를 두 번째 메시지로 데리고 갈 것이다.
이상의 이메일 목록 읽기 예들은 예시적인 것에 불과하다. 어시스턴트에 대한 다른 명령들이 이메일 메시지들에 적용 가능한 다른 동작들을 개시하도록 구현될 수 있다. 이메일 읽기 시나리오들과 관련하여 기술된 기법들 및 옵션들은 다른 유형의 데이터 항목들에도 적용 가능하다.
도 14a 내지 도 14l은 디지털 어시스턴트(가상 어시스턴트라고도 지칭됨)에 의한 핸즈 프리 목록 읽기를 제공하는 방법의 흐름도이다. 프로세스(1440)에서, 디지털 어시스턴트는 사용자에게 제시하기 위한 복수의 데이터 항목들을 식별하고, 여기서 복수의 데이터 항목들 각각은 도메인 관련 항목 유형과 연관되어 있다(1442). 데이터 항목들의 예들은 사용자와 연관된 일정 엔트리들, 특정의 송신자부터의 이메일들, 특정의 날에 대한 리마인더들, 및 특정의 지역 검색 요청으로부터 획득된 검색 결과들을 포함한다. 이상의 예시적인 데이터 항목들에 대한 도메인 관련 항목 유형들은 일정 엔트리들, 이메일들, 리마인더들, 및 지역 검색 결과들이다. 각각의 도메인 관련 데이터 형식은, 특정의 데이터 필드들의 내용이 예측 가능하게 추출되고 내용의 부연으로 재구성될 수 있도록, 비교적 안정된 데이터 구조를 가진다. 일부 실시예들에서, 복수의 데이터 항목들이 또한 특정의 순서에 따라 정렬된다. 예를 들어, 지역 검색 결과들이 종종 관련성 및 거리를 기준으로 정렬된다. 일정 엔트리들이 종종 이벤트 시각을 기준으로 정렬된다. 일부 항목 유형들의 항목들은 정렬될 필요가 없다. 예를 들어, 리마인더들은 정렬되지 않을 수 있다.
도메인 관련 항목 유형에 기초하여, 어시스턴트는 복수의 데이터 항목들의 음성 기반 개요를 생성한다(1444). 개요는 어떤 종류의 항목들이 목록에 있는지 및 몇 개의 항목들이 목록에 있는지의 전반적인 개념을 사용자에게 제공한다. 복수의 데이터 항목들 각각에 대해, 어시스턴트는 데이터 항목의 각자의 내용에 기초하여 데이터 항목에 대한 각자의 음성 기반의 항목 관련 부연을 추가로 생성한다(1446). 항목 관련 부연의 포맷은 종종 도메인 관련 항목 유형(예컨대, 항목들이 일정 엔트리인지 리마인더인지) 및 데이터 항목의 실제 내용(예컨대, 특정의 일정 엔트리의 이벤트 시각 및 제목)에 의존한다. 이어서, 어시스턴트는 음성 지원 다이얼로그 인터페이스를 통해 음성 기반 개요를 사용자에게 제공한다(1448). 이어서, 음성 기반 개요에 뒤따라 복수의 데이터 항목들의 적어도 부분집합에 대한 각자의 음성 기반의 항목 관련 부연들이 나온다. 일부 실시예들에서, 목록 내의 항목들이 특정의 순서로 정렬되어 있는 경우, 항목들의 부연들이 특정의 순서로 제공된다. 일부 실시예들에서, 목록 내의 항목들의 개수가 임계치(예컨대, "페이지"당 최대 수 = 5 개의 항목들) 초과인 경우, 한 번에 항목들의 부분집합만이 제시된다. 사용자는 항목들을 보다 많이 보게/듣게 해달라고, 그렇게 특별히 요청하는 것에 의해, 요청할 수 있다.
일부 실시예들에서, 복수의 데이터 항목들 각각에 대해, 디지털 어시스턴트는 데이터 항목의 각자의 내용에 기초하여 데이터 항목에 대한 각자의 텍스트로 된 항목 관련 스니펫을 생성한다(1450). 예를 들어, 스니펫은 대응하는 지역 검색 결과의 추가 상세들, 또는 이메일의 내용 본문 등을 포함할 수 있다. 스니펫은 디스플레이 상에 제시하기 위한 것이고, 목록의 음성 기반 읽기를 수반한다. 일부 실시예들에서, 디지털 어시스턴트는 복수의 데이터 항목들의 적어도 부분집합에 대한 각자의 텍스트로 된 항목 관련 스니펫들을 시각 인터페이스를 통해 사용자에게 제공한다(1452). 일부 실시예들에서, 컨텍스트 마커가 또한 시각적 인터페이스에 제공된다. 일부 실시예들에서, 항목들의 읽기가 "한 페이지씩"(즉, 한 번에 한 부분집합씩) 진행되면서, 복수의 데이터 항목들 모두가 시각적 인터페이스 상에 동시에 제시된다.
일부 실시예들에서, 음성 기반의 항목 관련 부연들의 제공은 각자의 텍스트로 된 항목 관련 스니펫들의 제공을 수반한다.
일부 실시예들에서, 각자의 음성 기반의 항목 관련 부연들을 제공하는 동안, 디지털 어시스턴트는 각각의 쌍의 인접한 음성 기반의 항목 관련 부연들 사이에 일시 중지를 삽입한다(1454). 디지털 어시스턴트는 일시 중지 동안 사용자 입력을 포착하기 위해 리스닝 모드에 진입한다(1456).
일부 실시예들에서, 각자의 음성 기반의 항목 관련 부연들을 순차적 순서로 제공하는 동안, 디지털 어시스턴트는 컨텍스트 마커를 현재 데이터 항목 - 그에 대한 각자의 음성 기반의 항목 관련 부연이 사용자에게 제공되는 중임 - 으로 전진시킨다(1458).
일부 실시예들에서, 디지털 어시스턴트는 도메인 관련 항목 유형에 적용 가능한 동작을 수행하라고 요청하는 사용자 입력을 수신한다(1460). 디지털 어시스턴트는 컨텍스트 마커의 현재 위치에 기초하여 복수의 데이터 항목들 중에서 동작에 대한 대상 데이터 항목을 결정한다(1462). 예를 들어, 사용자는 동작을 적용하기 위한 대상 항목을 명확히 명시함이 없이 동작을 요청할 수 있다. 어시스턴트는 사용자가 현재 데이터 항목을 대상 항목으로서 지칭하고 있는 것으로 가정한다. 이어서, 디지털 어시스턴트는 결정된 대상 데이터 항목과 관련하여 동작을 수행한다(1464).
일부 실시예들에서, 디지털 어시스턴트는 도메인 관련 항목 유형에 적용 가능한 동작을 수행하라고 요청하는 사용자 입력을 수신한다(1466). 디지털 어시스턴트는 사용자 입력에 명시된 항목 참조 번호에 기초하여 복수의 데이터 항목들 중에서 동작에 대한 대상 데이터 항목을 결정한다(1468). 예를 들어, 사용자는 사용자 입력에서 "세 번째" 항목이라고 말할 수 있고, 어시스턴트는 어느 항목이 목록에서의 "세 번째" 항목인지를 결정할 수 있다. 대상 항목이 결정되면, 디지털 어시스턴트는 결정된 대상 데이터 항목과 관련하여 동작을 수행한다(1470).
일부 실시예들에서, 디지털 어시스턴트는 도메인 관련 항목 유형에 적용 가능한 동작을 수행하라고 요청하는 사용자 입력을 수신한다(1472). 디지털 어시스턴트는 사용자 입력에 명시된 항목 특성에 기초하여 복수의 데이터 항목들 중에서 동작에 대한 대상 데이터 항목을 결정한다(1474). 예를 들어, 사용자가 "마크로부터의 메시지에 대해 답신해"라고 말할 수 있고, 디지털 어시스턴트는 메시지들의 목록 중에서 송신자 ID "마크"에 기초하여 사용자가 어느 메시지를 지칭하고 있는지를 결정할 수 있다. 대상 항목이 결정되면, 디지털 어시스턴트는 결정된 대상 데이터 항목과 관련하여 동작을 수행한다(1476).
일부 실시예들에서, 동작에 대한 대상 데이터 항목을 결정할 때, 디지털 어시스턴트는 사용자 입력에 명시된 항목 특성이 복수의 데이터 항목들 중 2 개 이상에 적용되는 것으로 결정하고(1478), 복수의 데이터 항목들 중에서 컨텍스트 마커의 현재 위치를 결정하며(1480), 2 개 이상의 데이터 항목들 중 하나를 대상 데이터 항목으로서 선택한다(1482). 일부 실시예들에서, 데이터 항목의 선택은 컨텍스트 마커 이후에 존재하는 모든 데이터 항목들보다 컨텍스트 마커 이전에 존재하는 모든 데이터 항목들을 우선적으로 선택하는 것(1484); 및 컨텍스트 마커의 동일한 측면에 있는 모든 데이터 항목들 중에서 컨텍스트 커서에 가장 가까운 데이터 항목을 우선적으로 선택하는 것(1486)을 포함한다. 예를 들어, 사용자가 마크로부터의 메시지에 대해 답신해라고 말할 때, 그리고 마크로부터의 모든 메시지들이 현재 컨텍스트 마커 이후에 위치되어 있는 경우, 컨텍스트 마커에 가장 가까운 것을 대상 메시지로서 선택한다. 마크로부터의 하나의 메시지가 컨텍스트 마커 이전에 있고 나머지가 컨텍스트 마커 이후에 있는 경우, 컨텍스트 마커 이전에 있는 것이 대상 메시지로서 선택된다. 마크로부터의 모든 메시지들이 컨텍스트 마커 이전에 위치되어 있는 경우, 컨텍스트 마커에 가장 가까운 것이 대상 메시지로서 선택된다.
일부 실시예들에서, 디지털 어시스턴트는 도메인 관련 항목 유형에 적용 가능한 어떤 동작도 명시함이 없이 복수의 데이터 항목들 중 하나를 선택하는 사용자 입력을 수신한다(1488). 사용자 입력을 수신한 것에 응답하여, 디지털 어시스턴트는 선택된 데이터 항목에 적용 가능한 하나 이상의 동작 선택 항목들을 제안하는 음성 기반 프롬프트를 사용자에게 제공한다(1490). 예를 들어, 사용자가 "첫 번째 주유소"라고 말하는 경우, 어시스턴트는 "전화하실래요? 길 안내를 받으실래요?"라는 프롬프트를 제안할 수 있다.
일부 실시예들에서, 복수의 데이터 항목들 중 적어도 하나에 대해, 디지털 어시스턴트는 데이터 항목의 끝없는 부분의 각자의 크기를 결정한다(1492). 이어서, 미리 결정된 기준들에 따라, 디지털 어시스턴트는 (1) 끝없는 부분 전체를 읽어주는 음성 기반 출력을 사용자에게 제공하는 것(1494); 그리고 (2) 데이터 항목의 끝없는 부분을 다수의 개별 섹션들로 청크화하는 것(1496), 다수의 개별 섹션들 중 특정의 개별 섹션을 읽어주는 음성 기반 출력을 사용자에게 제공하는 것(1498), 및 다수의 개별 섹션들의 나머지 개별 섹션들을 읽어줄지 여부에 관한 사용자 입력을 프롬프트하는 것(1500) 중 하나를 수행한다. 일부 실시예들에서, 음성 기반 출력은 다수의 개별 섹션들 중 특정의 개별 섹션을 일의적으로 식별해주는 구두 페이지 매김 표시자(verbal pagination indicator)를 포함한다.
일부 실시예들에서, 디지털 어시스턴트는 복수의 데이터 항목들의 적어도 부분집합에 대한 각자의 음성 기반의 항목 관련 부연들을 순차적 순서로 제공한다(1502). 일부 실시예들에서, 각자의 음성 기반의 항목 관련 부연들을 순차적 순서로 제공하는 동안, 디지털 어시스턴트는 사용자로부터 음성 입력을 수신하고, 음성 입력은 하나 이상의 부연들을 건너뛰는 것, 현재 데이터 항목에 대한 부가 정보를 제시하는 것, 하나 이상의 이전에 제시된 부연들을 반복하는 것 중 하나를 요청한다(1504). 음성 입력에 응답하여, 디지털 어시스턴트는 사용자의 음성 입력에 따라 부연들을 계속하여 제공한다(1506). 일부 실시예들에서, 각자의 음성 기반의 항목 관련 부연들을 순차적 순서로 제공하는 동안, 디지털 어시스턴트는 부연들의 제공을 일시 중지하라고 요청하는 음성 입력을 사용자로부터 수신한다(1508). 음성 입력에 응답하여, 디지털 어시스턴트는 부연들의 제공을 일시 중지하고 일시 중지 동안 부가 사용자 입력이 있는지 리스닝한다(1510). 일시 중지 동안, 디지털 어시스턴트는 하나 이상의 부가 사용자 입력에 응답하여 하나 이상의 동작들을 수행한다(1512). 하나 이상의 동작들을 수행한 후에, 디지털 어시스턴트는 하나 이상의 동작들의 수행 후에 부연들의 제공을 자동으로 재개한다(1514). 예를 들어, 이메일들의 목록 중 하나의 이메일을 읽는 동안, 사용자는 읽는 것을 중단하고, 메시지에 답신하라고 어시스턴트에 요구할 수 있다. 메시지가 완성되어 송신된 후에, 어시스턴트는 목록에 있는 나머지 메시지들의 읽기를 재개한다. 일부 실시예들에서, 디지털 어시스턴트는 부연들의 제공을 자동으로 재개하기 전에 사용자 확인을 요청한다(1516).
일부 실시예들에서, 음성 기반 개요는 복수의 데이터 항목들의 개수를 명시한다.
일부 실시예들에서, 디지털 어시스턴트는 복수의 데이터 항목들의 제시를 요청하는 사용자 입력을 수신한다(1518). 디지털 어시스턴트는 사용자가 복수의 데이터 항목들의 읽기를 명시적으로 요청했는지 여부를 결정하기 위해 사용자 입력을 처리한다(1520). 사용자가 복수의 데이터 항목들의 읽기를 명시적으로 요청한 것으로 결정할 때, 디지털 어시스턴트는 음성 기반 개요의 제공 이후에 추가적인 사용자 요청 없이 음성 기반의 항목 관련 부연들을 자동으로 제공한다(1522). 사용자가 복수의 데이터 항목들의 읽기를 명시적으로 요청하지 않은 것으로 결정할 때, 디지털 어시스턴트는 각자의 음성 기반의 항목 관련 부연들을 사용자에게 제공하기 전에 사용자 확인을 프롬프트한다(1524).
일부 실시예들에서, 디지털 어시스턴트는 핸즈 프리 컨텍스트의 존재를 결정한다(1526). 디지털 어시스턴트는 미리 결정된 부분집합별 최대 항목 개수에 따라 복수의 데이터 항목들을 하나 이상의 부분집합들로 분할한다(1528). 이어서, 디지털 어시스턴트는 한 번에 하나의 부분집합 내의 데이터 항목들에 대한 각자의 음성 기반의 항목 관련 부연들을 제공한다(1530).
일부 실시예들에서, 디지털 어시스턴트는 핸즈 프리 컨텍스트의 존재를 결정한다(1532). 디지털 어시스턴트는 핸즈 프리 컨텍스트에 대해 명시된 미리 결정된 최대 항목 개수에 따라 사용자에게 제시하기 위한 복수의 데이터 항목들을 제한한다(1534). 일부 실시예들에서, 디지털 어시스턴트는 각각의 부분집합 내의 데이터 항목들에 대한 각자의 항목 관련 부연들을 제공하기 전에 각자의 음성 기반 부분집합 식별자를 제공한다(1536). 예를 들어, 부분집합 식별자들은 "처음 5 개의 메시지들", "다음 5 개의 메시지들" 등일 수 있다.
일부 실시예들에서, 디지털 어시스턴트는 음성 기반 개요 및 항목 관련 부연들을 사용자에게 제공하는 동안 사용자 입력을 수신한다(1538). 디지털 어시스턴트는 음성 입력이 복수의 데이터 항목들에 관련되어 있는지 여부를 결정하기 위해 음성 입력을 처리한다(1540). 음성 입력이 복수의 데이터 항목들에 관련되어 있지 않은 것으로 결정할 때, 디지털 어시스턴트는 복수의 데이터 항목들에 관련된 출력 생성을 일시 중단하고(1542), 음성 입력에 응답한 것이지만 복수의 데이터 항목들에는 관련되지 않은 출력을 사용자에게 제공한다(1544).
일부 실시예들에서, 복수의 데이터 항목들 모두에 대한 각자의 음성 기반의 항목 관련 부연들 이후에, 디지털 어시스턴트는 다이얼로그 인터페이스를 통해 음성 기반 닫기를 사용자에게 제공한다(1546).
일부 실시예들에서, 도메인 관련 항목 유형은 지역 검색 결과들이고, 복수의 데이터 항목들은 특정의 지역 검색의 복수의 검색 결과들이다. 일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요를 생성하기 위해, 디지털 어시스턴트는 특정의 지역 검색이 현재 사용자 위치와 관련하여 수행되는지 여부를 결정한다(1548). 특정의 지역 검색이 현재 사용자 위치와 관련하여 수행되는 것으로 결정할 때, 디지털 어시스턴트는 음성 기반 개요에서 현재 사용자 위치를 명시적으로 거명함이 없이 음성 기반 개요를 생성하고(1550), 특정의 지역 검색이 현재 사용자 위치 이외의 특정의 위치와 관련하여 수행되는 것으로 결정할 때, 디지털 어시스턴트는 음성 기반 개요에서 특정의 위치를 명시적으로 거명하는 음성 기반 개요를 생성한다(1552). 일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요를 생성하기 위해, 디지털 어시스턴트는 복수의 검색 결과들의 개수가 3 개를 초과하는지 여부를 결정하고(1554), 개수가 3 개를 초과하지 않는 것으로 결정할 때, 어시스턴트는 개수를 명확히 명시함이 없이 음성 기반 개요를 생성하고(1556), 개수가 3 개를 초과하는 것으로 결정할 때, 디지털 어시스턴트는 개수를 명확히 명시하는 음성 기반 개요를 생성한다(1558).
일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요는 복수의 검색 결과들 각각과 연관된 각자의 사업체 이름을 명시한다.
일부 실시예들에서, 각각의 데이터 항목의 각자의 음성 기반의 항목 관련 부연들은 복수의 검색 결과들 중의 검색 결과의 각자의 서수 위치, 그에 뒤따라 순차적으로 검색 결과와 연관된 각자의 사업체 이름, 각자의 단축 주소, 각자의 거리, 및 각자의 방향을 명시하고, 여기서 각자의 단축 주소는 검색 결과와 연관된 각자의 도로명만을 포함한다. 일부 실시예들에서, 각각의 데이터 항목에 대한 각자의 항목 관련 부연을 생성하기 위해, 디지털 어시스턴트는 (1) 데이터 항목과 연관된 실제 거리가 하나의 거리 단위보다 작은 것으로 결정할 때, 데이터 항목의 각자의 항목 관련 부연에 실제 거리를 명시하고(1560); (2) 데이터 항목과 연관된 실제 거리가 하나의 거리 단위보다 큰 것으로 결정할 때, 실제 거리를 가장 가까운 정수 개의 거리 단위들로 반올림하고 데이터 항목의 각자의 항목 관련 부연에 가장 가까운 정수 개의 단위들을 명시한다(1562).
일부 실시예들에서, 데이터 항목과 연관된 등급, 거리, 및 정합 점수(matching score) 중 하나에 따른, 복수의 데이터 항목들 중 최고 순위의 데이터 항목의 각자의 항목 관련 부연은 데이터 항목의 순위를 나타내는 문구를 포함하는 반면, 복수의 데이터 항목들 중 다른 데이터 항목들의 각자의 항목 관련 부연들은 상기 데이터 항목들의 순위를 생략하고 있다.
일부 실시예들에서, 디지털 어시스턴트는 도메인 관련 항목 유형에 적용 가능한 동작을 수행할지 여부에 관한 사용자 입력을 자동으로 프롬프트하고, 여기서 자동으로 프롬프트하는 것은 복수의 데이터 항목들 중 첫 번째 데이터 항목에 대해 한 번만 제공되고, 자동으로 프롬프트하는 것이 복수의 데이터 항목들 중 다른 데이터 항목들에 대해 반복되지 않는다(1564).
일부 실시예들에서, 복수의 검색 결과들의 적어도 부분집합이 사용자에게 제시되고 있는 동안, 디지털 어시스턴트는 검색 결과들 중 하나와 연관된 각자의 사업체 위치로의 내비게이션을 요청하는 사용자 입력을 수신한다(1566). 사용자 입력에 응답하여, 어시스턴트는 사용자가 이미 각자의 사업체 위치와 상이한 목적지로의 계획된 경로를 따라 가고 있는지 여부를 결정한다(1568). 사용자가 각자의 사업체 위치와 상이한 목적지로의 계획된 경로 상에 이미 있는 것으로 결정할 때, 어시스턴트는 계획된 경로를 각자의 사업체 위치에 이르는 새로운 경로로 대체하기 위해 사용자 확인을 요청하는 음성 출력을 제공한다(1570).
일부 실시예들에서, 디지털 어시스턴트는 사업체 위치 또는 새로운 경로의 지도 보기를 요청하는 부가 사용자 입력을 수신한다(1572). 어시스턴트는 아이즈 프리 컨텍스트의 존재를 검출한다(1574). 아이즈 프리 컨텍스트의 존재를 검출한 것에 응답하여, 디지털 어시스턴트는 지도 보기가 아이즈 프리 컨텍스트로 제공되지 않을 것임을 나타내는 음성 기반 경고를 제공한다(1576). 일부 실시예들에서, 아이즈 프리 컨텍스트의 존재를 검출하는 것은 사용자가 움직이는 차량에 존재함을 검출하는 것을 포함한다.
일부 실시예들에서, 도메인 관련 항목 유형은 리마인더들이고, 복수의 데이터 항목들은 특정의 시간 범위에 대한 복수의 리마인더들이다. 일부 실시예들에서, 디지털 어시스턴트는 리마인더들의 목록을 사용자에게 제시하기 위한 트리거 이벤트를 검출한다(1578). 사용자 입력에 응답하여, 디지털 어시스턴트는 하나 이상의 관련성 기준들에 따라 사용자에게 제시될 복수의 리마인더들을 식별하고, 하나 이상의 관련성 기준들은 현재 날짜, 현재 시각, 현재 위치, 사용자 또는 사용자와 연관된 디바이스에 의해 수행된 동작, 사용자 또는 사용자와 연관된 디바이스에 의해 수행될 동작, 사용자에 의해 명시된 리마인더 카테고리 중 하나 이상에 기초한다(1580).
일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 금일에 대한 리마인더들을 보기 위한 사용자 요청의 수신을 포함하고, 복수의 리마인더들이 현재 날짜에 기초하여 식별되며, 복수의 리마인더들 각각은 현재 날짜 내의 각자의 트리거 시각을 가진다.
일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 최근의 리마인더들을 보기 위한 사용자 요청의 수신을 포함하고, 복수의 리마인더들이 현재 시각에 기초하여 식별되며, 복수의 리마인더들 각각은 현재 시각 이전의 미리 결정된 기간 내에 트리거되었다.
일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 예정된 리마인더들을 보기 위한 사용자 요청의 수신을 포함하고, 복수의 리마인더들이 현재 시각에 기초하여 식별되며, 복수의 리마인더들 각각은 현재 시각 이후의 미리 결정된 기간 내에 각자의 트리거 시각을 가진다.
일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 특정의 카테고리의 리마인더들을 보기 위한 사용자 요청의 수신을 포함하고, 복수의 리마인더들 각각은 특정의 카테고리에 속한다. 일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 사용자가 미리 결정된 위치를 떠나는 것의 검출을 포함한다. 일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 트리거 이벤트는 사용자가 미리 결정된 위치에 도착하는 것의 검출을 포함한다.
일부 실시예들에서, 리마인더들의 목록을 제시하기 위한 위치, 동작, 시각에 기초한 트리거 이벤트는 또한 사용자가 리마인더들을 보고자 함을 요청할 때 사용자의 요청에 선택 기준을 명시함이 없이 어느 리마인더들이 사용자에게 제시할 리마인더들의 목록에 포함되어야 하는지를 결정하기 위한 선택 기준들로서 사용될 수 있다. 예를 들어, 핸즈 프리 목록 읽기에 대한 사용 사례들에 기재된 바와 같이, 사용자가 특정의 위치에 있다는 사실, 특정의 위치를 떠나거나 그에 도착하는 것, 및 특정의 동작(예컨대, 운전, 걷기)을 수행하는 것이, 사용자가 "내 리마인더들을 보여줘"라고 간단히 요구했을 때, 현재 사용자에게 보여줄 데이터 항목들(예컨대, 리마인더들)을 선택하기 위한 적절한 선택 기준들을 도출하기 위한 컨텍스트로서 사용될 수 있다.
일부 실시예들에서, 디지털 어시스턴트는 복수의 리마인더들의 음성 기반의 항목 관련 부연을 리마인더들의 각자의 트리거 시각들에 따라 정렬된 순서로 제공한다(1582). 일부 실시예들에서, 리마인더들이 정렬되지 않는다.
일부 실시예들에서, 복수의 리마인더들을 식별하기 위해, 디지털 어시스턴트는 복수의 리마인더들의 개수가 미리 결정된 임계 개수를 더 이상 초과하지 않을 때까지 복수의 리마인더들을 선택하기 위해 점점 더 엄격한 관련성 기준들을 적용한다(1584).
일부 실시예들에서, 디지털 어시스턴트는 복수의 리마인더들을 다수의 카테고리들로 분할한다(1586). 디지털 어시스턴트는 다수의 카테고리들 각각에 대한 각자의 음성 기반 카테고리 개요를 생성한다(1588). 디지털 어시스턴트는 카테고리 내의 리마인더들에 대한 각자의 항목 관련 부연들 직전에 각각의 카테고리에 대한 각자의 음성 기반 카테고리 개요를 제공한다(1590). 일부 실시예들에서, 다수의 카테고리들은 위치에 기초한 카테고리, 작업에 기초한 카테고리, 현재 시각에 상대적인 트리거 시각에 대한 카테고리, 사용자 지정 시각에 상대적인 트리거 시각에 기초한 카테고리 중 하나 이상을 포함한다.
일부 실시예들에서, 도메인 관련 항목 유형은 일정 엔트리들이고, 복수의 데이터 항목들은 특정의 시간 범위에 대한 복수의 일정 엔트리들이다. 일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요는 일정 엔트리들에 관한 부가 상세들을 제공함이 없이 복수의 일정 엔트리들 각각과 연관된 타이밍 및 지속기간 정보 중 어느 하나 또는 둘 다를 제공한다. 일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요는 복수의 일정 엔트리들 중 하루 종일 이벤트들의 개수를 제공한다.
일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요는 복수의 일정 엔트리들과 연관된 각자의 이벤트 시각들의 목록을 포함하고, 여기서 음성 기반 개요는 이후의 조건들 중 하나 하에서 특정의 이벤트 시각과 연관된 각자의 오전/오후 표시자만을 명확히 언급한다: (1) 특정의 이벤트 시각이 목록에서 마지막 것이라는 것, (2) 특정의 이벤트 시각이 목록에서 첫 번째 것이고 아침에 있다는 것.
일부 실시예들에서, 복수의 데이터 항목들의 음성 기반의 항목 관련 부연들은 "<시각><제목><위치, 이용 가능한 경우>" 포맷에 따라 생성되는 각자의 일정 이벤트의 부연이다.
일부 실시예들에서, 각자의 일정 이벤트의 부연은, 참가자들의 총수가 미리 결정된 숫자 미만인 경우, 각자의 일정 이벤트의 한 명 이상의 참가자들을 거명하고, 각자의 일정 이벤트의 부연은, 참가자들의 총수가 미리 결정된 숫자 초과인 경우, 각자의 일정 이벤트의 참가자들을 거명하지 않는다.
일부 실시예들에서, 각자의 일정 이벤트의 부연은, 참가자들의 총수가 미리 결정된 숫자 초과인 경우, 그 총수를 제공한다.
일부 실시예들에서, 도메인 관련 항목 유형은 이메일들이고, 복수의 데이터 항목들은 특정의 이메일들의 그룹이다. 일부 실시예들에서, 디지털 어시스턴트는 이메일들의 목록을 요청하는 사용자 입력을 수신한다(1592). 사용자 입력에 응답하여, 디지털 어시스턴트는 하나 이상의 관련성 기준들에 따라 사용자에게 제시될 특정의 이메일들의 그룹을 식별하고, 하나 이상의 관련성 기준들은 송신자 ID, 메시지 도착 시각, 읽음/읽지 않음 상태, 및 이메일 제목 중 하나 이상에 기초한다(1594).
일부 실시예들에서, 디지털 어시스턴트는 하나 이상의 관련성 기준들 중 적어도 하나를 결정하기 위해 사용자 입력을 처리한다(1596). 일부 실시예들에서, 복수의 데이터 항목들의 음성 기반 개요는 특정의 이메일들의 그룹을 식별하기 위해 사용되는 하나 이상의 관련성 기준들을 부연하고, 특정의 일군의 이메일들의 개수를 제공한다. 일부 실시예들에서, 음성 기반 개요를 제공한 후에, 디지털 어시스턴트는 일군의 이메일들의 읽기를 수락하거나 거부하는 사용자 입력을 사용자에게 프롬프트한다(1598). 일부 실시예들에서, 각각의 데이터 항목에 대한 각자의 음성 기반의 항목 관련 부연은 특정의 일군의 이메일들 내의 각자의 이메일에 대한 각자의 음성 기반의 항목 관련 부연이고, 각자의 이메일에 대한 각자의 부연은 일군의 이메일들에서의 각자의 이메일의 서수 위치, 각자의 이메일의 송신자, 및 이메일의 제목를 명시한다.
일부 실시예들에서, 특정의 일군의 이메일들 중 적어도 하나에 대해, 디지털 어시스턴트는 이메일의 끝없는 부분의 각자의 크기를 결정한다(1600). 미리 결정된 기준들에 따라, 디지털 어시스턴트는 (1) 끝없는 부분 전체를 읽어주는 음성 기반 출력을 사용자에게 제공하는 것(1602); 그리고 (2) 데이터 항목의 끝없는 부분을 다수의 개별 섹션들로 청크화하는 것, 다수의 개별 섹션들 중 특정의 개별 섹션을 읽어주는 음성 기반 출력을 사용자에게 제공하는 것, 및 특정의 개별 섹션을 읽어준 후에, 다수의 개별 섹션들의 나머지 개별 섹션들을 읽어줄지 여부에 관한 사용자 입력을 프롬프트하는 것(1604) 중 하나를 수행한다.
상기 흐름도는 일반적인 데이터 항목들에 대해 그리고 다양한 도메인 관련 항목 유형들에 대해 핸즈 프리 목록 읽기로 구현될 수 있는 다양한 옵션들을 나타내고 있다. 단계들이 흐름도에 도시되어 있지만, 특정의 단계들에 명확히 언급되어 있지 않는 한, 단계들이 임의의 특정의 순서로 수행될 필요가 없다. 다양한 실시예들에서, 단계들이 모두 다 수행될 필요는 없다. 상이한 도메인들로부터의 다양한 특징들이 다른 도메인들에서의 항목들의 읽기에 적용 가능할 수 있다. 명확히 금지되어 있지 않는 한, 다양한 실시예들에서, 단계들이 선택적으로 결합될 수 있다. 다른 단계들, 방법들, 및 특징들이 본 명세서의 다른 부분들에 기술되어 있고, 도 14a 내지 도 14l과 관련하여 기술된 단계들과 결합될 수 있다.
본 발명은 가능한 실시예들에 대하여 특히 상세히 설명되었다. 당업자들은 본 발명이 다른 실시예들에서 실시될 수 있다는 것을 이해할 것이다. 먼저, 컴포넌트들의 특정한 명명(naming), 용어들의 대문자화, 속성들, 데이터 구조들, 또는 임의의 다른 프로그래밍 또는 구조적 양태는 필수적이지도 중요하지도 않으며, 본 발명을 구현하는 메커니즘들 또는 그들의 특징들은 상이한 이름들, 포맷들, 또는 프로토콜들을 가질 수 있다. 또한, 시스템은 설명된 바와 같이, 하드웨어 및 소프트웨어의 조합을 통해, 또는 전체적으로 하드웨어 요소들로, 또는 전체적으로 소프트웨어 요소들로 구현될 수 있다. 또한, 본 명세서에 기술된 다양한 시스템 컴포넌트들 사이의 기능의 특정의 분할은 필수적인 것이 아니라 예시적인 것이고; 단일의 시스템 컴포넌트에 의해 수행되는 기능들이, 그 대신에, 다수의 컴포넌트들에 의해 수행될 수 있으며, 다수의 컴포넌트들에 의해 수행되는 기능들이, 그 대신에, 단일의 컴포넌트에 의해 수행될 수 있다.
다양한 실시예들에서, 본 발명은 앞서 기술한 기법들을 단독으로 또는 임의의 조합으로 수행하기 위한 시스템 또는 방법으로서 구현될 수 있다. 다른 실시예에서, 본 발명은 컴퓨팅 디바이스 또는 다른 전자 디바이스에서의 프로세서로 하여금 앞서 기술한 기법들을 수행하게 하기 위해, 비일시적 컴퓨터 판독 가능 저장 매체 및 이 매체 상에 인코딩된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
명세서에서의 "하나의 실시예" 또는 "일 실시예"라는 언급은 실시예들과 관련되어 기술된 특정의 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 명세서에서의 다양한 곳들에서 나오는 "하나의 실시예에서"라는 문구가 모두 꼭 동일한 실시예를 지칭하는 것은 아니다.
상기의 일부 부분들은 컴퓨팅 디바이스의 메모리 내에서의 데이터 비트들에 대한 동작들의 알고리즘들 및 심볼 표현들에 관하여 제공된다. 이들 알고리즘 설명들 및 표현들은 데이터 처리 기술 분야의 숙련자들에 의해 사용되어 다른 당업자에게 그들의 작업의 본질을 가장 효과적으로 전달하는 수단이다. 알고리즘은, 본 명세서에서 그리고 일반적으로, 원하는 결과로 이어지는 단계들(명령어들)의 일관성 있는 시퀀스인 것으로 고려된다. 상기 단계들은 물리적인 양들의 물리적인 조작들을 요구하는 것들이다. 보통, 필수적이지는 않지만, 이들 양은 저장, 전달, 조합, 비교 및 달리 조작될 수 있는 전기, 자기, 또는 광학 신호들의 형태를 취한다. 때때로, 주로 공통 사용의 이유들로 인해, 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 글자들, 용어들, 숫자들 등으로서 언급하는 것이 편리하다. 더욱이, 때때로, 일반성의 손실 없이, 모듈들 또는 코드 디바이스들로서 물리적 양들의 물리적 조작들을 요구하는 단계들의 소정의 배열들을 언급하는 것이 또한 편리하다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되며 단지 이들 양에 적용된 편리한 라벨들임을 명심해야 한다. 이하의 논의로부터 명백한 바와 같이 달리 구체적으로 서술되지 않는 한, 설명 전체에 걸쳐, "처리" 또는 "컴퓨팅" 또는 "계산" 또는 "디스플레이" 또는 "결정" 등과 같은 용어들을 이용하는 논의들은 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 디바이스들 내에서의 물리적 (전자적) 양들로서 표현된 데이터를 조작 및 변환하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 모듈 및/또는 디바이스의 동작 및 프로세스들을 지칭한다는 것을 잘 알 것이다.
본 발명의 특정의 양태들은 알고리즘의 형태로 본 명세서에 기술된 프로세스 단계들 및 명령어들을 포함한다. 본 발명의 프로세스 단계들 및 명령어들이 소프트웨어, 펌웨어, 및/또는 하드웨어로 구현될 수 있고, 소프트웨어로 구현될 때, 다양한 운영 체제들에 의해 사용되는 상이한 플랫폼들 상에 존재하도록 다운로드되며 그 플랫폼들로부터 동작될 수 있다는 것에 주목하여야 한다.
본 발명은 또한 본 명세서에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 요구된 목적들을 위해 특별하게 구성될 수 있거나, 컴퓨팅 디바이스에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성된 범용 컴퓨팅 디바이스를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 플로피 디스크, 광 디스크, CD-ROM, 광자기 디스크를 비롯한 임의의 유형의 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드, ASIC, 또는 전자적 명령어들을 저장하기에 적합하고 각각이 컴퓨터 시스템 버스에 결합된 임의의 유형의 매체와 같은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 게다가, 본 명세서에서 언급된 컴퓨팅 디바이스들은 단일의 프로세서를 포함할 수 있거나, 증가된 컴퓨팅 능력을 위해 설계된 다중 프로세서를 이용하는 아키텍처들일 수 있다.
본 명세서에 제공된 알고리즘들 및 디스플레이들은 임의의 특정한 컴퓨팅 디바이스, 가상화 시스템, 또는 다른 장치와 본질적으로 관련되지 않는다. 다양한 범용 시스템들이 본 명세서에서의 교시들에 따라 프로그램들과 함께 또한 사용될 수 있거나, 요구된 방법 단계들을 수행하기 위해 보다 특수화된 장치를 구성하는 것이 편리한 것으로 입증될 수 있다. 다양한 이들 시스템들을 위해 요구된 구조는 본 명세서에 제공된 설명으로부터 명백할 것이다. 또한, 본 발명은 임의의 특정의 프로그래밍 언어를 참조하여 기술되어 있지 않다. 다양한 프로그래밍 언어들이 본 명세서에 기술된 바와 같이 본 발명의 개시 내용들을 구현하기 위해 사용될 수 있고, 앞서 특정 언어들에 대한 임의의 언급들이 본 발명의 실현 및 최상의 실시 형태의 개시를 위해 제공된 것임을 잘 알 것이다.
따라서, 다양한 실시예들에서, 본 발명은 컴퓨터 시스템, 컴퓨팅 디바이스, 또는 다른 전자 디바이스, 또는 이들의 임의의 조합 또는 이들 중 다수를 제어하기 위한 소프트웨어, 하드웨어, 및/또는 다른 요소들로서 구현될 수 있다. 그러한 전자 디바이스는, 당업계에 잘 알려진 기술들에 따라, 예를 들어, 프로세서, 입력 디바이스(예를 들어, 키보드, 마우스, 터치패드, 트랙패드, 조이스틱, 트랙볼, 마이크로폰, 및/또는 이들의 임의의 조합), 출력 디바이스(예를 들어, 스크린, 스피커 및/또는 기타 등등), 메모리, 장기 저장 장치(예를 들어, 자기 저장 장치, 광학 저장 장치, 및/또는 기타 등등), 및/또는 네트워크 연결성을 포함할 수 있다. 그러한 전자 디바이스는 휴대 가능하거나 휴대 가능하지 않을 수 있다. 본 발명을 구현하기 위해 사용될 수 있는 전자 디바이스들의 예들은 휴대폰, PDA, 스마트폰, 키오스크, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 소비자 전자 디바이스, 소비자 엔터테인먼트 디바이스; 음악 플레이어; 카메라; 텔레비전; 셋톱 박스; 전자 게임 유닛; 또는 기타를 포함한다. 본 발명을 구현하기 위한 전자 디바이스는, 예를 들어 미국 캘리포니아주 쿠퍼티노 소재의 Apple Inc.로부터 입수 가능한, iOS 또는 MacOS와 같은 임의의 운영 체제, 또는 디바이스 상에서 사용하도록 구성되어 있는 임의의 다른 운영 체제를 사용할 수 있다.
본 발명은 제한된 수의 실시예들과 관련하여 기술되었지만, 이상의 설명의 혜택을 받는 통상의 기술자라면 본 명세서에 기술된 바와 같이 본 발명의 범주로부터 벗어나지 않는 다른 실시예들이 안출될 수 있다는 것을 잘 알 것이다. 그에 부가하여, 본 명세서에 사용된 표현이 주로 이해의 편의 및 설명을 위해 선택되었고, 본 발명의 요지를 상세히 기술하거나 제한하기 위해 선택되지 않았을 수 있다는 것에 유의해야 한다. 그에 따라, 본 발명의 개시 내용은 청구범위에 기재된 본 발명의 범주를 제한하는 것이 아니라 예시적인 것으로 의도되어 있다.
Claims (41)
- 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서 수행되는, 사용자 인터페이스를 적응시키는 방법으로서,
자동으로, 사용자 입력 없이 그리고 디지털 어시스턴트 애플리케이션(digital assistant application)이 사용자에 의해 별도로 호출되었는지 여부에 관계없이, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계; 및
상기 결정하는 단계에 응답하여, 상기 전자 디바이스에 의해 구현되는 가상 어시스턴트의 리스닝 모드(listening mode)를 호출하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 전자 디바이스가 상기 차량에 있는 것으로 자동으로 결정하는 단계는 상기 디지털 어시스턴트 애플리케이션이 사용자에 의해 최근에 호출되었는지 여부에 관계없이 수행되는, 방법.
- 제1항에 있어서, 상기 리스닝 모드는 상기 전자 디바이스로 하여금 사용자로부터의 음성 입력이 있는지 계속하여 리스닝하게 하는, 방법.
- 제2항에 있어서, 상기 리스닝 모드는, 상기 전자 디바이스가 충전 소스에 연결되어 있다는 것을 검출한 것에 응답하여, 상기 전자 디바이스로 하여금 상기 사용자로부터의 음성 입력이 있는지 계속하여 리스닝하게 하는, 방법.
- 제1항에 있어서, 상기 리스닝 모드는 상기 전자 디바이스로 하여금 상기 리스닝 모드의 개시 이후 미리 결정된 시간 동안 사용자로부터의 음성 입력이 있는지 리스닝하게 하는, 방법.
- 제1항에 있어서, 상기 리스닝 모드는 상기 전자 디바이스가 청각적 출력을 제공한 이후 상기 전자 디바이스로 하여금 자동으로, 사용자로부터의 물리적 입력 없이, 상기 사용자로부터의 음성 입력이 있는지 리스닝하게 하는, 방법.
- 제1항에 있어서,
상기 리스닝 모드에 있는 동안, 상기 사용자가 말하는 웨이크업 단어(wake-up word)를 검출하는 단계;
상기 웨이크업 단어를 검출한 것에 응답하여, 상기 사용자로부터의 음성 입력이 있는지 리스닝하는 단계; 상기 사용자로부터의 음성 입력을 수신하는 단계; 및
상기 음성 입력에 대한 응답을 생성하는 단계를 추가로 포함하는, 방법. - 제1항에 있어서, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계는 상기 전자 디바이스가 상기 차량과 통신하는 것을 검출하는 단계를 포함하는, 방법. 제8항에 있어서, 상기 통신은 블루투스 통신인, 방법.
- 제8항에 있어서, 상기 통신은 무선 통신인, 방법.
- 제8항에 있어서, 상기 통신은 유선 통신인, 방법.
- 제8항에 있어서, 상기 전자 디바이스가 상기 차량과 통신하는 것을 검출하는 단계는 상기 전자 디바이스가 상기 차량의 음성 제어 시스템과 통신하는 것을 검출하는 단계를 포함하는, 방법.
- 제1항에 있어서, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계는 상기 전자 디바이스가 제1 미리 결정된 속도로 또는 그 초과로 움직이고 있다는 것을 검출하는 단계를 포함하는, 방법.
- 제12항에 있어서, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계는 상기 전자 디바이스가 제2 미리 결정된 속도로 또는 그 미만으로 움직이고 있다는 것을 검출하는 단계를 추가로 포함하는, 방법.
- 제13항에 있어서, 상기 제1 미리 결정된 속도는 약 20 마일/시간이고, 상기 제2 미리 결정된 속도는 약 150 마일/시간인, 방법.
- 제12항에 있어서, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계는 상기 전자 디바이스가 도로 상을 또는 그 근방을 이동하고 있다는 것을 검출하는 단계를 추가로 포함하는, 방법.
- 제12항에 있어서, 상기 전자 디바이스의 속도는
GPS 위치 정보; 가속도계 데이터;
무선 데이터 신호 정보; 및 속도계 정보로 이루어진 그룹 중 하나 이상을 사용하여 결정되는, 방법. - 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스에 의해 제시되는 그래픽 사용자 인터페이스와 상호작용할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스의 물리적 컴포넌트를 사용할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스 상에서 터치 입력을 수행할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스 상의 키보드를 사용할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스 상의 하나 이상의 애플리케이션들을 실행할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 전자 디바이스에 의해 인에이블되는 하나 이상의 기능들을 수행할 수 있는 것을 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 사용자에게 터치 입력을 요청하지 않도록 상기 디바이스를 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 상기 결정하는 단계에 응답하여, 상기 사용자로부터의 터치 입력에 응답하지 않도록 상기 디바이스를 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서, 입력 디바이스에서 음성 입력을 수신하는 단계;
상기 음성 입력에 대한 응답을 생성하는 단계 - 상기 응답은 상기 사용자에게 제시될 정보 항목들의 목록을 포함함 -; 및
상기 정보 항목들을 청각적 출력 모드를 통해 출력하는 단계 - 상기 전자 디바이스가 차량에 있지 않은 경우, 상기 정보 항목들은 상기 전자 디바이스의 디스플레이 화면 상에 제시되기만 할 것임 - 를 추가로 포함하는, 방법. - 제26항에 있어서, 상기 결정하는 단계에 응답하여, 상기 목록 내의 항목들의 양을 미리 결정된 양으로 제한하는 단계를 추가로 포함하는, 방법.
- 제1항에 있어서,
입력 디바이스에서 음성 입력을 수신하는 단계 - 상기 음성 입력은 수신자로 송신될 내용에 대응함 -;
상기 음성 입력에 대응하는 텍스트를 생성하는 단계; 및
청각적 출력 모드를 통해 상기 텍스트를 출력하는 단계 - 상기 전자 디바이스가 차량에 있지 않은 경우, 상기 텍스트는 상기 전자 디바이스의 디스플레이 화면 상에 제시되기만 할 것임 -; 및
상기 텍스트를 상기 수신자에게 송신하기 전에 확인을 요청하는 단계를 추가로 포함하는, 방법. - 제27항에 있어서, 확인을 요청하는 단계는 상기 청각적 출력 모드를 통해, 상기 텍스트가 상기 수신자로 송신되어야 하는지 여부를 상기 사용자에게 질문하는 단계를 포함하는, 방법.
- 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서 수행되는, 사용자 인터페이스를 적응시키는 방법으로서,
자동으로, 사용자 입력 없이, 상기 전자 디바이스가 차량에 있는 것으로 결정하는 단계; 및
상기 결정하는 단계에 응답하여, 상기 전자 디바이스의 특정 기능들을 제한하는 단계를 포함하는, 방법. - 제30항에 있어서, 상기 디바이스의 특정 기능들을 제한하는 단계는 청각적 출력 모드를 위해 시각적 출력 모드를 비활성화시키는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 시각적 출력 모드를 비활성화시키는 단계는 상기 전자 디바이스가 디스플레이할 수 있는 시각적 출력들의 부분집합의 디스플레이를 금지하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스에 의해 제시되는 시각적 출력을 볼 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스에 의해 제시되는 그래픽 사용자 인터페이스와 상호작용할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스의 물리적 컴포넌트를 사용할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스 상에서 터치 입력을 수행할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스 상의 키보드를 사용할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스 상의 하나 이상의 애플리케이션들을 실행할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 전자 디바이스에 의해 인에이블되는 하나 이상의 기능들을 수행할 수 있는 것을 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 사용자에게 터치 입력을 요청하지 않도록 상기 디바이스를 제한하는 단계를 포함하는, 방법.
- 제30항에 있어서, 상기 전자 디바이스의 특정 기능들을 제한하는 단계는 상기 사용자로부터의 터치 입력에 응답하지 않도록 상기 디바이스를 제한하는 단계를 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/913,421 | 2013-06-08 | ||
US13/913,421 US10705794B2 (en) | 2010-01-18 | 2013-06-08 | Automatically adapting user interfaces for hands-free interaction |
PCT/US2014/041173 WO2014197737A1 (en) | 2013-06-08 | 2014-06-05 | Automatically adapting user interfaces for hands-free interaction |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160003138A true KR20160003138A (ko) | 2016-01-08 |
KR101834624B1 KR101834624B1 (ko) | 2018-03-05 |
Family
ID=51134345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157033745A KR101834624B1 (ko) | 2013-06-08 | 2014-06-05 | 핸즈 프리 상호작용을 위한 사용자 인터페이스 자동 적응 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3005075A1 (ko) |
KR (1) | KR101834624B1 (ko) |
CN (1) | CN105284099B (ko) |
HK (1) | HK1223694A1 (ko) |
WO (1) | WO2014197737A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200115916A1 (en) * | 2018-10-10 | 2020-04-16 | Hangzhou Canyu Technology Co., Ltd | Bicycle parking device |
KR20200066933A (ko) * | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
KR20210002599A (ko) * | 2018-05-07 | 2021-01-08 | 구글 엘엘씨 | 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용 |
US12125486B2 (en) | 2018-05-07 | 2024-10-22 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017158208A1 (es) * | 2016-03-18 | 2017-09-21 | Universidad De La Laguna | Sistema y método para la automatización y uso seguro de aplicaciones móviles en vehículos |
US10599391B2 (en) * | 2017-11-06 | 2020-03-24 | Google Llc | Parsing electronic conversations for presentation in an alternative interface |
CN107919120B (zh) * | 2017-11-16 | 2020-03-13 | 百度在线网络技术(北京)有限公司 | 语音交互方法及装置,终端,服务器及可读存储介质 |
US10930278B2 (en) * | 2018-04-09 | 2021-02-23 | Google Llc | Trigger sound detection in ambient audio to provide related functionality on a user interface |
GB2573097A (en) * | 2018-04-16 | 2019-10-30 | British Gas Trading Ltd | Natural language interface for a data management system |
JP6844904B2 (ja) * | 2018-05-08 | 2021-03-17 | アップル インコーポレイテッドApple Inc. | 電子デバイス上のデバイス使用を制御又は提示するためのユーザインターフェース |
GB2575970A (en) | 2018-07-23 | 2020-02-05 | Sonova Ag | Selecting audio input from a hearing device and a mobile device for telephony |
CN111695044B (zh) * | 2019-03-11 | 2023-08-18 | 北京柏林互动科技有限公司 | 用户排名的数据处理方法、装置及电子设备 |
US11321048B2 (en) * | 2020-02-25 | 2022-05-03 | Motorola Solutions, Inc. | Method and apparatus for temporary hands-free voice interaction |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100753780B1 (ko) * | 1999-01-06 | 2007-08-31 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 음성 입력 디바이스 |
KR100477796B1 (ko) * | 2002-11-21 | 2005-03-22 | 주식회사 팬택앤큐리텔 | 속도 감응에 의한 핸즈프리 전환 장치 및 그 방법 |
US9318108B2 (en) * | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
KR100819928B1 (ko) * | 2007-04-26 | 2008-04-08 | (주)부성큐 | 휴대 단말기의 음성 인식장치 및 그 방법 |
CN101325756B (zh) * | 2007-06-11 | 2013-02-13 | 英华达(上海)电子有限公司 | 一种手机语音辨识装置以及激活手机语音辨识的方法 |
CN101448340B (zh) * | 2007-11-26 | 2011-12-07 | 联想(北京)有限公司 | 一种检测移动终端状态的方法、系统及该移动终端 |
US10496753B2 (en) * | 2010-01-18 | 2019-12-03 | Apple Inc. | Automatically adapting user interfaces for hands-free interaction |
US10706373B2 (en) * | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US9858925B2 (en) * | 2009-06-05 | 2018-01-02 | Apple Inc. | Using context information to facilitate processing of commands in a virtual assistant |
US20110111724A1 (en) * | 2009-11-10 | 2011-05-12 | David Baptiste | Method and apparatus for combating distracted driving |
US10145960B2 (en) * | 2011-02-24 | 2018-12-04 | Ford Global Technologies, Llc | System and method for cell phone restriction |
US9202465B2 (en) * | 2011-03-25 | 2015-12-01 | General Motors Llc | Speech recognition dependent on text message content |
CN102137193A (zh) * | 2011-04-13 | 2011-07-27 | 深圳凯虹移动通信有限公司 | 一种移动通讯终端及其通讯控制方法 |
US20130035117A1 (en) * | 2011-08-04 | 2013-02-07 | GM Global Technology Operations LLC | System and method for restricting driver mobile device feature usage while vehicle is in motion |
-
2014
- 2014-06-05 WO PCT/US2014/041173 patent/WO2014197737A1/en active Application Filing
- 2014-06-05 EP EP14736158.8A patent/EP3005075A1/en not_active Ceased
- 2014-06-05 CN CN201480030632.0A patent/CN105284099B/zh active Active
- 2014-06-05 KR KR1020157033745A patent/KR101834624B1/ko active IP Right Grant
-
2016
- 2016-10-11 HK HK16111711.7A patent/HK1223694A1/zh unknown
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210002599A (ko) * | 2018-05-07 | 2021-01-08 | 구글 엘엘씨 | 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용 |
KR20230003281A (ko) * | 2018-05-07 | 2023-01-05 | 구글 엘엘씨 | 사용자, 자동화된 어시스턴트 및 컴퓨팅 서비스 간의 다중 모드 상호 작용 |
US11735182B2 (en) | 2018-05-07 | 2023-08-22 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
US12125486B2 (en) | 2018-05-07 | 2024-10-22 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
US20200115916A1 (en) * | 2018-10-10 | 2020-04-16 | Hangzhou Canyu Technology Co., Ltd | Bicycle parking device |
US10801227B2 (en) * | 2018-10-10 | 2020-10-13 | Hangzhou Canyu Technology Co., Ltd | Bicycle parking device |
US10871002B1 (en) * | 2018-10-10 | 2020-12-22 | Hangzhou Canyu Technology Co., Ltd | Bicycle parking device |
KR20200066933A (ko) * | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 제어 방법 |
US12087298B2 (en) | 2018-12-03 | 2024-09-10 | Samsung Electronics Co., Ltd. | Electronic device and method of controlling thereof |
Also Published As
Publication number | Publication date |
---|---|
CN105284099B (zh) | 2019-05-17 |
EP3005075A1 (en) | 2016-04-13 |
HK1223694A1 (zh) | 2017-08-04 |
KR101834624B1 (ko) | 2018-03-05 |
CN105284099A (zh) | 2016-01-27 |
WO2014197737A1 (en) | 2014-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101816375B1 (ko) | 제한된 주의 산만 및 비제한된 주의 산만 컨텍스트에 대해 상이한 사용자 인터페이스를 제공하는 애플리케이션 게이트웨이 | |
US20190095050A1 (en) | Application Gateway for Providing Different User Interfaces for Limited Distraction and Non-Limited Distraction Contexts | |
KR101834624B1 (ko) | 핸즈 프리 상호작용을 위한 사용자 인터페이스 자동 적응 | |
US10705794B2 (en) | Automatically adapting user interfaces for hands-free interaction | |
US10679605B2 (en) | Hands-free list-reading by intelligent automated assistant | |
US20240345799A1 (en) | Context-sensitive handling of interruptions | |
US20220264262A1 (en) | Active transport based notifications | |
KR101617665B1 (ko) | 핸즈-프리 상호작용을 위한 자동 적응식 사용자 인터페이스 | |
JP7247271B2 (ja) | 非要請型コンテンツの人間対コンピュータダイアログ内へのプロアクティブな組込み | |
US10553209B2 (en) | Systems and methods for hands-free notification summaries | |
US10496753B2 (en) | Automatically adapting user interfaces for hands-free interaction | |
CN111429896B (zh) | 用于在主设备处访问配套设备的呼叫功能的语音交互 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |