KR20160101079A - 가상 어시스턴트를 제공하기 위한 시스템 및 방법 - Google Patents
가상 어시스턴트를 제공하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20160101079A KR20160101079A KR1020167019298A KR20167019298A KR20160101079A KR 20160101079 A KR20160101079 A KR 20160101079A KR 1020167019298 A KR1020167019298 A KR 1020167019298A KR 20167019298 A KR20167019298 A KR 20167019298A KR 20160101079 A KR20160101079 A KR 20160101079A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- information
- virtual assistant
- profile
- act
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 174
- 230000009471 action Effects 0.000 claims abstract description 97
- 238000003860 storage Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 description 83
- 230000006399 behavior Effects 0.000 description 74
- 230000000875 corresponding effect Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 34
- 230000004044 response Effects 0.000 description 33
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 28
- 238000013475 authorization Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000003786 synthesis reaction Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 6
- 230000006855 networking Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 4
- 230000003750 conditioning effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000003825 pressing Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000002207 retinal effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 235000002566 Capsicum Nutrition 0.000 description 2
- 239000006002 Pepper Substances 0.000 description 2
- 241000722363 Piper Species 0.000 description 2
- 235000016761 Piper aduncum Nutrition 0.000 description 2
- 235000017804 Piper guineense Nutrition 0.000 description 2
- 235000008184 Piper nigrum Nutrition 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 244000144730 Amygdalus persica Species 0.000 description 1
- 206010029412 Nightmare Diseases 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 235000006040 Prunus persica var persica Nutrition 0.000 description 1
- 241001620634 Roger Species 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000010006 flight Effects 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000000391 smoking effect Effects 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- H04L29/10—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Data Mining & Analysis (AREA)
- Game Theory and Decision Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 적어도 하나의 컴퓨터에 의해 수행되는 방법, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 되는 적어도 제2 유저를 포함함. 그 방법은 적어도 하나의 컴퓨터를 사용하여 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 제1 유저와 상호작용하게 하는 액트를 수행하는 것을 포함한다.
Description
가상 어시스턴트는, 사람이 컴퓨팅 디바이스(예를 들면, 스마트폰 또는 다른 컴퓨팅 디바이스)와 상호작용하는 것을 가능하게 하는 한 타입의 유저 인터페이스를 제공한다. 가상 어시스턴트는, 어떤 면에서, 사람을 흉내내도록 구성될 수도 있고, 그 결과 가상 어시스턴트의 도움으로 컴퓨팅 디바이스와 상호작용하는 사람은, 머신이 아닌 다른 사람과 상호작용하는 것과 유사한 경험을 가질 수도 있다. 예를 들면, 가상 어시스턴트는, 가상 어시스턴트로 보이스 입력을 제공하도록 발화하는(speaking) 것에 의해 사람이 컴퓨팅 디바이스와 상호작용하는 것을 허용할 수도 있다. 종래의 가상 어시스턴트는, 유저에 의해 제공되는 보이스 입력을 해석하고, 유저의 입력에 기초하여 하나 이상의 액션을 수행하고, 보이스 인터페이스를 사용하는 것에 의해 유저에게 다시 "말할(talk)" 수도 있다.
몇몇 실시형태는 시스템을 제공하는데, 그 시스템은: 제1 유저의 제1 유저 프로파일을 포함하는 복수의 유저 프로파일을 저장하도록 구성되는 적어도 하나의 컴퓨터 판독 가능한 저장 매체; 적어도 하나의 컴퓨터 판독 가능한 저장 매체에 커플링되는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는: 제1 유저와 상호작용하기 위한 제1 가상 어시스턴트를 실행하도록 구성되는 제1 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제1 요청을 수신하는 액트(act); 제1 요청을 수신하는 것에 응답하여, 제1 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 액트; 제1 유저와 상호작용하기 위한 제2 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제2 요청을 수신하는 액트; 및 제2 요청을 수신하는 것에 응답하여, 제2 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 유저 프로파일은, 제1 가상 어시스턴트 페르소나(persona)를 특정하는(specifying) 정보를 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제1 디바이스에게 제공하는 것을 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제2 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 제1 가상 어시스턴트가 보이스 폰트(voice font)에 따라 스피치(speech)를 적어도 부분적으로 생성하는 것에 의해 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 적어도 부분적으로, 제1 가상 어시스턴트가 보이스 폰트에 따라 스피치를 생성하는 것에 의해, 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: 제1 디바이스를 통해 제1 유저에 의해 제공되는 정보에 기초하여 제1 유저 프로파일을 업데이트하는 액트; 및 제2 가상 어시스턴트가 제1 유저와 상호작용할 때의 자신의 거동을, 업데이트된 제1 유저 프로파일의 적어도 몇몇 업데이트된 정보에 기초하여, 커스터마이징하도록, 업데이트된 제1 유저 프로파일에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: 제1 디바이스로부터, 제1 디바이스를 사용하는 것에 의해 적어도 부분적으로 수행되고 있는 태스크(task)에 관련되는 정보를 수신하는 액트; 제1 디바이스 대신 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 하는지의 여부를 결정하는 액트; 및 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 한다는 것이 결정되는 경우, 수신된 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 디바이스에 의해 수행되고 있는 태스크에 관련되는 정보는, 태스크의 어떤 부분이 제1 디바이스에 의해 수행되었는지를 특정한다.
몇몇 실시형태는 한 방법을 제공하는데, 그 방법은 적어도 하나의 프로세서를 사용하여: 제1 유저와 상호작용하기 위한 제1 가상 어시스턴트를 실행하도록 구성되는 제1 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제1 요청을 수신하는 액트; 제1 요청을 수신하는 것에 응답하여, 제1 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 액트; 제1 유저와 상호작용하기 위한 제2 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제2 요청을 수신하는 액트; 및 제2 요청을 수신하는 것에 응답하여, 제2 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 유저 프로파일은, 제1 가상 어시스턴트 페르소나를 특정하는 정보를 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제1 디바이스에게 제공하는 것을 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제2 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 제1 가상 어시스턴트가 보이스 폰트에 따라 스피치를 적어도 부분적으로 생성하는 것에 의해 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 제1 가상 어시스턴트가 보이스 폰트에 따라 스피치를 적어도 부분적으로 생성하는 것에 의해 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 적어도 하나의 프로세서를 사용하여: 제1 디바이스를 통해 제1 유저에 의해 제공되는 정보에 기초하여 제1 유저 프로파일을 업데이트하는 액트; 및 제2 가상 어시스턴트가 제1 유저와 상호작용할 때의 자신의 거동을, 업데이트된 제1 유저 프로파일의 적어도 몇몇 업데이트된 정보에 기초하여, 커스터마이징하도록, 업데이트된 제1 유저 프로파일에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 적어도 하나의 프로세서를 사용하여: 제1 디바이스로부터, 제1 디바이스를 사용하는 것에 의해 적어도 부분적으로 수행되고 있는 태스크(task)에 관련되는 정보를 수신하는 액트; 제1 디바이스 대신 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 하는지의 여부를 결정하는 액트; 및 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 한다는 것이 결정되는 경우, 수신된 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 디바이스에 의해 수행되고 있는 태스크에 관련되는 정보는, 태스크의 어떤 부분이 제1 디바이스에 의해 수행되었는지를 특정한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 적어도 하나의 프로세서에 의한 실행시, 적어도 하나의 프로세서로 하여금: 제1 유저와 상호작용하기 위한 제1 가상 어시스턴트를 실행하도록 구성되는 제1 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제1 요청을 수신하는 것; 제1 요청을 수신하는 것에 응답하여, 제1 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 것; 제1 유저와 상호작용하기 위한 제2 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스로부터 제1 유저 프로파일에 액세스하기 위한 제2 요청을 수신하는 것; 및 제2 요청을 수신하는 것에 응답하여, 제2 가상 어시스턴트가, 적어도 몇몇 액세스된 정보에 기초하여, 제1 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함하는 방법을 수행하게 한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 유저 프로파일은, 제1 가상 어시스턴트 페르소나를 특정하는 정보를 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제1 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제1 디바이스에게 제공하는 것을 포함하고, 제1 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제2 가상 어시스턴트가 제1 유저와 상호작용할 때 제1 가상 어시스턴트 페르소나를 채택하도록, 제1 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 제1 가상 어시스턴트가 보이스 폰트에 따라 스피치를 적어도 부분적으로 생성하는 것에 의해 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 제1 가상 어시스턴트 페르소나를 특정하는 정보는, 제1 가상 어시스턴트가 제1 가상 어시스턴트 페르소나를 채택할 때, 제1 가상 어시스턴트가 보이스 폰트에 따라 스피치를 적어도 부분적으로 생성하는 것에 의해 제1 유저와 상호작용하게끔 구성되도록, 보이스 폰트를 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은: 제1 디바이스를 통해 제1 유저에 의해 제공되는 정보에 기초하여 제1 유저 프로파일을 업데이트하는 것; 및 제2 가상 어시스턴트가 제1 유저와 상호작용할 때의 자신의 거동을, 업데이트된 제1 유저 프로파일의 적어도 몇몇 업데이트된 정보에 기초하여, 커스터마이징하도록, 업데이트된 제1 유저 프로파일에 대한 액세스를 제2 디바이스에게 제공하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은: 제1 디바이스로부터, 제1 디바이스를 사용하는 것에 의해 적어도 부분적으로 수행되고 있는 태스크(task)에 관련되는 정보를 수신하는 것; 제1 디바이스 대신 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 하는지의 여부를 결정하는 것; 및 제2 디바이스를 사용하는 것에 의해 태스크의 수행이 적어도 부분적으로 계속되어야 한다는 것이 결정되는 경우, 수신된 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 더 포함한다.
몇몇 실시형태는 가상 어시스턴트를 구현하도록 구성되는 적어도 하나의 프로세서를 포함하는 디바이스를 제공하는데, 적어도 하나의 프로세서는: 디바이스와는 별개인 적어도 하나의 컴퓨터와 통신하는 것에 의해, 제1 유저의 프로파일의 적어도 몇몇 정보에 액세스하는 액트, 및 제1 유저의 프로파일의 액세스된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 액트를 수행하도록 구성된다.
몇몇 정보는 가상 어시스턴트를 구현하기 위한 방법을 제공하는데, 그 방법은 적어도 하나의 프로세서를 사용하여: 디바이스와는 별개인 적어도 하나의 컴퓨터와 통신하는 것에 의해, 제1 유저의 프로파일의 적어도 몇몇 정보에 액세스하는 액트, 및 제1 유저의 프로파일의 액세스된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 액트를 수행하는 것을 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 적어도 하나의 프로세서에 의한 실행시, 적어도 하나의 프로세서로 하여금 가상 어시스턴트를 구현하기 위한 방법을 수행하게 하고, 그 방법은: 디바이스와는 별개인 적어도 하나의 컴퓨터와 통신하는 것에 의해, 제1 유저의 프로파일의 적어도 몇몇 정보에 액세스하는 것, 및 제1 유저의 프로파일의 액세스된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 것을 포함한다.
몇몇 실시형태는 모바일 디바이스를 제공하는데, 모바일 디바이스는, 모바일 디바이스의 유저 프로파일 정보를 저장하도록 구성되는 적어도 하나의 컴퓨터 판독 가능한 저장 매체; 및 적어도 하나의 컴퓨터 판독 가능한 저장 매체에 커플링되는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는: 제1 가상 어시스턴트가 유저와 상호작용할 때의 자신의 거동을, 적어도 몇몇 유저 프로파일 정보에 기초하여, 커스터마이징할 수 있도록, 제1 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스에게, 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제공하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 모바일 디바이스는 제2 디바이스와 직접 무선 통신 채널을 확립하도록 그리고 직접 무선 통신 채널을 통해 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제2 디바이스에게 제공하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 유저 프로파일 정보는 가상 어시스턴트 페르소나를 특정하고, 적어도 몇몇 유저 프로파일 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 유저와 상호작용할 때 가상 어시스턴트 페르소나를 채택할 수 있도록, 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는 보이스 폰트 및/또는 발화 스타일(speaking style)을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: 유저와 상호작용할 때, 적어도 몇몇 유저 프로파일 정보에 기초하여, 자신의 거동을 커스터마이징하도록 구성되는 제2 가상 어시스턴트를 실행하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는지의 여부를 결정하는 액트; 및 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는다는 것이 결정되는 경우에만 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: 적어도 부분적으로, 모바일 디바이스 대신 제2 디바이스를 사용하는 것에 의해, 모바일 디바이스에 의해 적어도 부분적으로 수행되고 있는 태스크의 수행이 계속되어야 하는지의 여부를 결정하는 액트; 및 적어도 부분적으로 제2 디바이스를 사용하는 것에 의해, 태스크의 수행이 계속되어야 한다는 것이 결정되는 경우, 태스크에 관련되는 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하도록 구성된다.
몇몇 실시형태는 모바일 디바이스에 의해 수행되는 한 방법을 제공하는데, 모바일 디바이스는 모바일 디바이스의 유저의 유저 프로파일 정보를 저장하도록 구성되고, 그 방법은: 제1 가상 어시스턴트가 유저와 상호작용할 때의 자신의 거동을, 적어도 몇몇 유저 프로파일 정보에 기초하여, 커스터마이징할 수 있도록, 제1 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스에게, 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 모바일 디바이스와 제2 디바이스 사이에 직접 무선 통신 채널을 확립하는 것 및 직접 무선 통신 채널을 통해 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제2 디바이스에게 제공하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 유저 프로파일 정보는 가상 어시스턴트 페르소나를 특정하고, 적어도 몇몇 유저 프로파일 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 유저와 상호작용할 때 가상 어시스턴트 페르소나를 채택할 수 있도록, 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는 보이스 폰트 및/또는 발화 스타일을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 모바일 디바이스 상에서, 유저와 상호작용할 때, 적어도 몇몇 유저 프로파일 정보에 기초하여, 자신의 거동을 커스터마이징하도록 구성되는 제2 가상 어시스턴트를 실행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는지의 여부를 결정하는 것; 및 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는다는 것이 결정되는 경우에만 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은: 적어도 부분적으로, 모바일 디바이스 대신 제2 디바이스를 사용하는 것에 의해, 모바일 디바이스에 의해 적어도 부분적으로 수행되고 있는 태스크의 수행이 계속되어야 하는지의 여부를 결정하는 것; 및 적어도 부분적으로 제2 디바이스를 사용하는 것에 의해, 태스크의 수행이 계속되어야 한다는 것이 결정되는 경우, 태스크에 관련되는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 더 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 모바일 디바이스의 유저의 유저 프로파일 정보를 저장하도록 구성되는 모바일 디바이스에 의한 실행시, 모바일 디바이스로 하여금: 제1 가상 어시스턴트가 유저와 상호작용할 때의 자신의 거동을, 적어도 몇몇 유저 프로파일 정보에 기초하여, 커스터마이징할 수 있도록, 제1 가상 어시스턴트를 실행하도록 구성되는 제2 디바이스에게, 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제공하는 것을 포함하는 방법을 수행하게 한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 모바일 디바이스와 제2 디바이스 사이에 직접 무선 통신 채널을 확립하는 것 및 직접 무선 통신 채널을 통해 유저 프로파일 정보 중 적어도 일부에 대한 액세스를 제2 디바이스에게 제공하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 유저 프로파일 정보는 가상 어시스턴트 페르소나를 특정하고, 적어도 몇몇 유저 프로파일 정보에 대한 액세스를 제2 디바이스에게 제공하는 것은, 제1 가상 어시스턴트가 유저와 상호작용할 때 가상 어시스턴트 페르소나를 채택할 수 있도록, 가상 어시스턴트 페르소나를 특정하는 정보에 대한 액세스를 제2 디바이스에게 제공하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는 보이스 폰트 및/또는 발화 스타일을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 모바일 디바이스 상에서, 유저와 상호작용할 때, 적어도 몇몇 유저 프로파일 정보에 기초하여, 자신의 거동을 커스터마이징하도록 구성되는 제2 가상 어시스턴트를 실행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는지의 여부를 결정하는 것; 및 제2 디바이스가 유저 프로파일에 액세스하기 위한 권한을 갖는다는 것이 결정되는 경우에만 유저 프로파일의 적어도 몇몇 정보에 대한 액세스를 제2 디바이스에게 제공하는 액트를 수행하는 것을 더 포함한다.
몇몇 실시형태는 가상 어시스턴트를 구현하도록 구성되는 적어도 하나의 프로세서를 포함하는 디바이스를 제공하는데, 적어도 하나의 프로세서는: 모바일 디바이스의 유저의 유저 프로파일 정보를 저장하도록 구성되는 모바일 디바이스로부터, 유저 프로파일 정보 중 적어도 일부를 수신하는 액트; 및 수신된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 액트를 수행하도록 구성된다.
몇몇 실시형태는 한 방법을 제공하는데, 그 방법은: 적어도 하나의 프로세서를 사용하여: 모바일 디바이스의 유저의 유저 프로파일 정보를 저장하도록 구성되는 모바일 디바이스로부터, 유저 프로파일 정보 중 적어도 일부를 수신하는 액트; 및 수신된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 액트를 수행하는 것을 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 적어도 하나의 프로세서에 의한 실행시, 적어도 하나의 프로세서로 하여금: 모바일 디바이스의 유저의 유저 프로파일 정보를 저장하도록 구성되는 모바일 디바이스로부터, 유저 프로파일 정보 중 적어도 일부를 수신하는 것; 및 수신된 정보 중 적어도 일부에 기초하여 가상 어시스턴트의 거동을 커스터마이징하는 것을 포함하는 방법을 수행하게 한다.
몇몇 실시형태는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 적어도 하나의 컴퓨터에 의해 수행되는 한 방법을 제공하는데, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 방법은: 적어도 하나의 컴퓨터를 사용하여: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 및 (B) 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 제1 유저와 상호작용하게 하는 액트를 수행하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 관심을 갖는 토픽(topic)을 식별하는 정보에 액세스하는 것을 포함하고; 액트 (B)는, 가상 어시스턴트로 하여금, 식별된 토픽에 관련되는 정보를 제1 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 한 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제1 유저에게 그 아이템을 추천하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 아이템은 미디어 컨텐츠이다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 아이템을 제1 유저에게 추천하는 것은, 그 아이템에 대한 광고를 제1 유저에게 제시하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금, 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 기초하여, 제1 유저와 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제2 유저의 계획된 위치를 제1 유저에게 통지하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (B)는 계획된 위치에서의 제1 유저와 제2 유저의 미팅을 스케줄링하는 것을 더 포함한다.
몇몇 실시형태는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 시스템을 제공하는데, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 시스템은: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 및 (B) 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 제1 유저와 상호작용하게 하는 액트를 수행하도록 구성되는 적어도 하나의 컴퓨터를 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 관심을 갖는 토픽을 식별하는 정보에 액세스하는 것을 포함하고; 액트 (B)는, 가상 어시스턴트로 하여금, 식별된 토픽에 관련되는 정보를 제1 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 한 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제1 유저에게 그 아이템을 추천하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 아이템을 제1 유저에게 추천하는 것은, 그 아이템에 대한 광고를 제1 유저에게 제시하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금, 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 기초하여, 제1 유저와 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제2 유저의 계획된 위치를 제1 유저에게 통지하게 하는 것을 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 적어도 하나의 컴퓨터에 의한 실행시, 적어도 하나의 컴퓨터로 하여금 한 방법을 수행하게 하고, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 방법은: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 및 (B) 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 제1 유저와 상호작용하게 하는 액트를 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 관심을 갖는 토픽을 식별하는 정보에 액세스하는 것을 포함하고; 액트 (B)는, 가상 어시스턴트로 하여금, 식별된 토픽에 관련되는 정보를 제1 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 적어도 제2 유저가 한 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제1 유저에게 그 아이템을 추천하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 아이템을 제1 유저에게 추천하는 것은, 그 아이템에 대한 광고를 제1 유저에게 제시하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금, 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 기초하여, 제1 유저와 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 액트 (A)는 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고; 액트 (B)는 가상 어시스턴트로 하여금 제2 유저의 계획된 위치를 제1 유저에게 통지하게 하는 것을 포함한다.
몇몇 실시형태는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 디바이스에 의해 수행되는 방법을 제공하는데, 디바이스는 가상 어시스턴트를 구현하도록 프로그래밍되고, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 방법은: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 것; 및 (B) 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해, 가상 어시스턴트를 사용하여 제1 유저와 상호작용하는 것을 포함한다.
몇몇 실시형태는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 디바이스를 제공하는데, 디바이스는 가상 어시스턴트를 구현하도록 프로그래밍되고, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 디바이스는: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 및 (B) 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해, 가상 어시스턴트를 사용하여 제1 유저와 상호작용하는 액트를 수행하도록 구성되는 적어도 하나의 프로세서를 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 디바이스에 의한 실행시, 디바이스로 하여금 한 방법을 수행하게 하고, 디바이스는 가상 어시스턴트를 구현하도록 프로그래밍되고, 유저의 네트워크는 제1 유저 및 네트워크를 통해 제1 유저와 관련되는 적어도 제2 유저를 포함하고, 그 방법은: (A) 적어도 제2 유저에 관련되는 정보에 액세스하는 액트; 및 (B) 적어도 부분적으로, 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해, 가상 어시스턴트를 사용하여 제1 유저와 상호작용하는 액트를 포함한다.
몇몇 실시형태는 적어도 하나의 컴퓨터에 의해 수행되는 한 방법을 제공하는데, 그 방법은: 적어도 하나의 컴퓨터를 사용하여: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션 - 유저 특정 액션은 유저 특정 조건이 충족될 때 수행될 것임 - 을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 컴퓨터와는 상이한 모바일 디바이스 상에서 실행되는 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 액트를 수행하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 유저 특정 조건은 토픽을 특정하고; 적어도 하나의 유저 특정 조건이 충족된다는 것을 결정하는 것은, 토픽에 관련되는 적어도 몇몇 정보가 획득되었는지의 여부를 결정하는 것을 포함하고; 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 것은, 가상 어시스턴트로 하여금, 토픽에 관련되는 획득된 정보 중 적어도 일부를 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 가상 어시스턴트가 획득된 정보 중 적어도 일부를 유저에게 제시하는 것에 응답하여, 제시된 정보에 관련되는 보이스 입력을 유저로부터 수신하는 것; 및 자동 음성 인식 기술 및/또는 자연 언어 기술을 사용하여 보이스 입력을 프로세싱하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 자동 음성 인식 기술을 사용하여 보이스 입력을 프로세싱하는 것은: 적어도 부분적으로, 토픽에 대한 언어 모델을 사용하는 것에 의해, 보이스 입력을 인식하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 토픽에 관련되는 적어도 몇몇 정보를 획득하기 위해 정보의 하나 이상의 소스를 모니터링하는 것 및/또는 검색하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트는, 적어도 부분적으로, 모바일 디바이스 상에서 실행하도록 구성되는 다른 애플리케이션 프로그램을 사용하는 것에 의해, 적어도 하나의 액션을 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 모바일 디바이스의 유저로부터 보이스 입력 - 보이스 입력은 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션을 특정함 - 을 수신하는 것; 및 적어도 부분적으로, 자동 음성 인식을 사용하는 것에 의해, 보이스 입력에 의해 특정되는 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션을 식별하는 것을 더 포함한다.
몇몇 실시형태는 시스템을 제공하는데, 그 시스템은: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션 - 유저 특정 액션은 유저 특정 조건이 충족될 때 수행될 것임 - 을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 컴퓨터와는 상이한 모바일 디바이스 상에서 실행되는 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 액트를 수행하도록 구성되는 적어도 하나의 컴퓨터를 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 유저 특정 조건은 토픽을 특정하고; 적어도 하나의 유저 특정 조건이 충족된다는 것을 결정하는 것은, 토픽에 관련되는 적어도 몇몇 정보가 획득되었는지의 여부를 결정하는 것을 포함하고; 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 것은, 가상 어시스턴트로 하여금, 토픽에 관련되는 획득된 정보 중 적어도 일부를 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 컴퓨터는 또한: 가상 어시스턴트가 획득된 정보 중 적어도 일부를 유저에게 제시하는 것에 응답하여, 제시된 정보에 관련되는 보이스 입력을 유저로부터 수신하는 액트; 및 자동 음성 인식 기술 및/또는 자연 언어 기술을 사용하여 보이스 입력을 프로세싱하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 자동 음성 인식 기술을 사용하여 보이스 입력을 프로세싱하는 것은: 적어도 부분적으로, 토픽에 대한 언어 모델을 사용하는 것에 의해, 보이스 입력을 인식하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 컴퓨터는 또한, 토픽에 관련되는 적어도 몇몇 정보를 획득하기 위해 정보의 하나 이상의 소스를 모니터링하는 것 및/또는 검색하는 것을 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트는, 적어도 부분적으로, 모바일 디바이스 상에서 실행하도록 구성되는 다른 애플리케이션 프로그램을 사용하는 것에 의해, 적어도 하나의 액션을 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 컴퓨터는 또한: 모바일 디바이스의 유저로부터 보이스 입력 - 보이스 입력은 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션을 특정함 - 을 수신하는 액트; 및 적어도 부분적으로, 자동 음성 인식을 사용하는 것에 의해, 보이스 입력에 의해 특정되는 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션을 식별하는 액트를 수행하도록 구성된다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 적어도 하나의 컴퓨터에 의한 실행시, 적어도 하나의 컴퓨터로 하여금: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 유저 특정 액션 - 유저 특정 액션은 유저 특정 조건이 충족될 때 수행될 것임 - 을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 컴퓨터와는 상이한 모바일 디바이스 상에서 실행되는 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 액트를 포함하는 방법을 수행하게 한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 유저 특정 조건은 토픽을 특정하고; 적어도 하나의 유저 특정 조건이 충족된다는 것을 결정하는 것은, 토픽에 관련되는 적어도 몇몇 정보가 획득되었는지의 여부를 결정하는 것을 포함하고; 가상 어시스턴트로 하여금 적어도 하나의 유저 특정 액션을 수행하게 하는 것은, 가상 어시스턴트로 하여금, 토픽에 관련되는 획득된 정보 중 적어도 일부를 유저에게 제시하게 하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은, 가상 어시스턴트가 획득된 정보 중 적어도 일부를 유저에게 제시하는 것에 응답하여, 제시된 정보에 관련되는 보이스 입력을 유저로부터 수신하는 것; 및 자동 음성 인식 기술 및/또는 자연 언어 기술을 사용하여 보이스 입력을 프로세싱하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 자동 음성 인식 기술을 사용하여 보이스 입력을 프로세싱하는 것은: 적어도 부분적으로, 토픽에 대한 언어 모델을 사용하는 것에 의해, 보이스 입력을 인식하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 토픽에 관련되는 적어도 몇몇 정보를 획득하기 위해 정보의 하나 이상의 소스를 모니터링하는 것 및/또는 검색하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트는, 적어도 부분적으로, 모바일 디바이스 상에서 실행하도록 구성되는 다른 애플리케이션 프로그램을 사용하는 것에 의해, 적어도 하나의 액션을 수행하도록 구성된다.
몇몇 실시형태는, 모바일 디바이스에 의해 수행되는 한 방법을 제공하는데, 그 방법은: 모바일 디바이스를 사용하여 가상 어시스턴트를 구현하는 것을 포함하고, 가상 어시스턴트는: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 유저 특정 조건이 충족되는 경우 수행될 적어도 하나의 대응하는 유저 특정 액션을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 유저 특정 액션을 수행하는 액트를 수행한다.
몇몇 실시형태는 가상 어시스턴트를 구현하도록 구성되는 모바일 디바이스를 제공하는데, 가상 어시스턴트는: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 유저 특정 조건이 충족되는 경우 수행될 적어도 하나의 대응하는 유저 특정 액션을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 유저 특정 액션을 수행하는 액트를 수행한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 가상 어시스턴트를 구현하도록 구성되는 모바일 디바이스에 의한 실행시, 모바일 디바이스 상의 가상 어시스턴트로 하여금: 유저에 의해 특정되는 적어도 하나의 유저 특정 조건 및 유저 특정 조건이 충족되는 경우 수행될 적어도 하나의 대응하는 유저 특정 액션을 특정하는 정보에 액세스하는 액트; 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하는 액트; 및 적어도 하나의 유저 특정 조건이 충족된다는 것이 결정되는 경우, 적어도 하나의 유저 특정 액션을 수행하는 액트를 수행하게 한다.
몇몇 실시형태는 호출자(caller)와 상호작용식 보이스 응답(interactive voice response; IVR) 시스템 사이에서 호(call)를 행하기 위한 방법을 제공하는데, 호출자는 디바이스를 사용하여 호를 행하고, 디바이스는 가상 어시스턴트를 실행하도록 구성되고, 그 방법은: 적어도 부분적으로, 호 동안 호출자에게 제공되는 정보의 스타일 및 호 동안 디바이스와 IVR 시스템 사이에서 통과되는 정보의 컨텐츠에 영향을 끼치는 것에 의해, 가상 어시스턴트를 사용하여, 호를 행하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서, 몇몇 실시형태에서, 그 방법은 호출자의 프로파일의 적어도 몇몇 정보에 액세스하는 것; 및 액세스된 정보에 기초하여 영향을 끼치는 것을 수행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함하고; 프로파일의 적어도 몇몇 정보에 액세스하는 것은, 가상 어시스턴트 페르소나를 특정하는 정보에 액세스하는 것을 포함하고; 가상 어시스턴트는, 적어도 부분적으로, IVR로부터 수신되는 정보를 호출자에게 제공할 때 가상 어시스턴트 페르소나를 채택함으로써 호출자에게 제공되는 정보의 스타일에 영향을 끼치는 것에 의해 호를 수행한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트가 가상 어시스턴트 페르소나를 채택할 때, 적어도 부분적으로, 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성하는 것에 의해 제1 가상 어시스턴트가 IVR로부터 수신되는 정보를 호출자에게 제공하도록, 보이스 폰트 및/또는 발화 스타일을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 호출자로부터의 정보에 대한 요청을 IVR로부터 수신하는 것; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 것; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하지 않고도 요청된 정보 중 적어도 일부를 IVR로 제공하는 것; 및 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 없다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 호출자로부터의 정보에 대한 요청은, 호출자를 식별하는 정보에 대한 요청을 포함하고, 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 것은, 호출자를 식별하는 정보가 호출자의 프로파일에 있는지의 여부를 결정하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 호출자의 프로파일은 IVR 시스템과의 하나 이상의 이전의 호에서의 호출자의 거동을 반영하는 데이터를 저장하고, 요청된 정보 중 적어도 일부가 호출자의 프로파일에 있는지의 여부를 결정하는 것은, IVR 시스템과의 하나 이상의 이전 호에서의 호출자의 거동을 반영하는 데이터가 요청된 정보 중 적어도 일부를 포함하는지의 여부를 결정하는 것을 포함한다.
몇몇 실시형태는, 호출자와 상호작용식 보이스 응답(IVR) 사이에서 호를 행하기 위해 호출자에 의한 사용을 위한 디바이스를 제공하는데, 디바이스는 가상 어시스턴트를 실행하도록 구성되고, 디바이스는: 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는: 적어도 부분적으로, 호 동안 호출자에게 제공되는 정보의 스타일 및 호 동안 디바이스와 IVR 시스템 사이에서 통과되는 정보의 컨텐츠에 영향을 끼치는 것에 의해, 가상 어시스턴트를 사용하여, 호를 행하는 액트를 수행하도록 구성된다.
몇몇 실시형태에서, 적어도 하나의 프로세서는 호출자의 프로파일의 적어도 몇몇 정보에 액세스하는 액트; 및 액세스된 정보에 기초하여 영향을 끼치는 것을 수행하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함하고; 프로파일의 적어도 몇몇 정보에 액세스하는 것은, 가상 어시스턴트 페르소나를 특정하는 정보에 액세스하는 것을 포함하고; 가상 어시스턴트는, 적어도 부분적으로, IVR로부터 수신되는 정보를 호출자에게 제공할 때 가상 어시스턴트 페르소나를 채택함으로써 호출자에게 제공되는 정보의 스타일에 영향을 끼치는 것에 의해 호를 수행한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트가 가상 어시스턴트 페르소나를 채택할 때, 적어도 부분적으로, 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성하는 것에 의해 제1 가상 어시스턴트가 IVR로부터 수신되는 정보를 호출자에게 제공하도록, 보이스 폰트 및/또는 발화 스타일을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 적어도 하나의 프로세서는 또한: IVR로부터, 호출자로부터의 정보에 대한 요청을 수신하는 액트; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 액트; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하지 않고도 요청된 정보 중 적어도 일부를 IVR로 제공하는 액트; 및 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 없다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하는 액트를 수행하도록 구성된다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 호출자로부터의 정보에 대한 요청은, 호출자를 식별하는 정보에 대한 요청을 포함하고, 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 것은, 호출자를 식별하는 정보가 호출자의 프로파일에 있는지의 여부를 결정하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 호출자의 프로파일은 IVR 시스템과의 하나 이상의 이전의 호에서의 호출자의 거동을 반영하는 데이터를 저장하고, 요청된 정보 중 적어도 일부가 호출자의 프로파일에 있는지의 여부를 결정하는 것은, IVR 시스템과의 하나 이상의 이전 호에서의 호출자의 거동을 반영하는 데이터가 요청된 정보 중 적어도 일부를 포함하는지의 여부를 결정하는 것을 포함한다.
몇몇 실시형태는 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체를 제공하는데, 프로세서 실행가능한 명령어는, 적어도 하나의 프로세서에 의한 실행시, 적어도 하나의 프로세서로 하여금, 호출자와 상호작용식 보이스 응답(IVR) 사이에서 호를 행하기 위한 방법을 수행하게 하고, 호출자는 디바이스를 사용하여 호를 행하고, 디바이스는 가상 어시스턴트를 실행하도록 구성되고, 그 방법은: 적어도 부분적으로, 호 동안 호출자에게 제공되는 정보의 스타일 및 호 동안 디바이스와 IVR 시스템 사이에서 통과되는 정보의 컨텐츠에 영향을 끼치는 것에 의해, 가상 어시스턴트를 사용하여, 호를 행하는 것을 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 호출자의 프로파일의 적어도 몇몇 정보에 액세스하는 것; 및 액세스된 정보에 기초하여 영향을 끼치는 것을 수행하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함하고; 프로파일의 적어도 몇몇 정보에 액세스하는 것은, 가상 어시스턴트 페르소나를 특정하는 정보에 액세스하는 것을 포함하고; 가상 어시스턴트는, 적어도 부분적으로, IVR로부터 수신되는 정보를 호출자에게 제공할 때 가상 어시스턴트 페르소나를 채택함으로써 호출자에게 제공되는 정보의 스타일에 영향을 끼치는 것에 의해 호를 수행한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트가 가상 어시스턴트 페르소나를 채택할 때, 적어도 부분적으로, 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성하는 것에 의해 제1 가상 어시스턴트가 IVR로부터 수신되는 정보를 호출자에게 제공하도록, 보이스 폰트 및/또는 발화 스타일을 적어도 부분적으로 특정한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 그 방법은 호출자로부터의 정보에 대한 요청을 IVR로부터 수신하는 것; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 것; 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하지 않고도 요청된 정보 중 적어도 일부를 IVR로 제공하는 것; 및 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 없다는 것이 결정되는 경우, 요청된 정보 중 적어도 일부를 제공하도록 호출자에게 프롬프트를 제시하는 것을 더 포함한다.
선행 실시형태 중 임의의 것을 포함해서 몇몇 실시형태에서, 호출자로부터의 정보에 대한 요청은, 호출자를 식별하는 정보에 대한 요청을 포함하고, 가상 어시스턴트가 요청된 정보 중 적어도 일부에 액세스할 수 있는지의 여부를 결정하는 것은, 호출자를 식별하는 정보가 호출자의 프로파일에 있는지의 여부를 결정하는 것을 포함한다.
상기한 것은, 첨부의 특허청구범위에 의해 정의되는 본 발명의 비제한적인 개요이다.
다양한 양태 및 실시형태가 다음의 도면을 참조로 설명될 것이다. 도면은 반드시 동일 축척은 아니다는 것이 인식되어야 한다. 다수의 도면에서 나타나는 아이템은, 그들이 나타나는 모든 도면에서 동일한 또는 유사한 참조 번호에 의해 나타내어질 수도 있다.
도 1a는 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 예시적인 환경을 도시한다.
도 1b는 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 다른 예시적인 환경을 도시한다.
도 2는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 예시적인 유저 프로파일에 저장되는 정보의 블록도이다.
도 3a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 예시적인 가상 어시스턴트의 소프트웨어 컴포넌트의 블록도이다.
도 3b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 하나 이상의 가상 어시스턴트와 통신하도록 구성되는 예시적인 서버의 소프트웨어 컴포넌트의 블록도이다.
도 4는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 프로파일의 적어도 몇몇 정보에 기초하여 유저와 상호작용할 때의 가상 어시스턴트의 거동을 커스터마이징하기 위한, 가상 어시스턴트를 구현하도록 프로그래밍된 디바이스에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 5는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트를 구현하도록 프로그래밍된 적어도 하나의 디바이스에게 유저의 프로파일에 대한 액세스를 제공하기 위한, 유저의 프로파일을 저장하는 적어도 하나의 디바이스에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 6은, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 제1 디바이스 상에서 개시된 태스크의 수행을 제2 디바이스 상에서 계속하기 위한 예시적인 프로세스의 플로우차트이다.
도 7은, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 프로파일의 정보에 적어도 부분적으로 기초하여 생성되는 유저의 네트워크를 예시하는 도면이다.
도 8a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 네트워크를 통해 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 기초하여 유저와 상호작용하기 위한, 가상 어시스턴트에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 8b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트로 하여금, 네트워크를 통해 제1 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 기초하여, 유저와 상호작용하게 하기 위한 예시적인 프로세스의 플로우차트이다.
도 9는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저 특정 액션(들)에 대응하는 하나 이상의 유저 특정 조건이 충족되는 경우, 가상 어시스턴트로 하여금 하나 이상의 유저 특정 액션을 수행하게 하기 위한 예시적인 프로세스의 플로우차트이다.
도 10은 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 다른 예시적인 환경을 도시한다.
도 11a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트를 사용하는 것에 의해 호출자와 상호작용식 보이스 응답 시스템 사이에서 호를 행하기 위한 예시적인 프로세스의 플로우차트이다.
도 11b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 호출자의 프로파일의 정보에 기초하여 호출자와 상호작용식 보이스 응답 시스템 사이에서 호를 행하기 위한 예시적인 프로세스의 플로우차트이다.
도 12는, 본원에서 설명되는 실시형태가 구현될 수도 있는 예시적인 컴퓨터 시스템의 블록도이다.
도 1a는 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 예시적인 환경을 도시한다.
도 1b는 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 다른 예시적인 환경을 도시한다.
도 2는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 예시적인 유저 프로파일에 저장되는 정보의 블록도이다.
도 3a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 예시적인 가상 어시스턴트의 소프트웨어 컴포넌트의 블록도이다.
도 3b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 하나 이상의 가상 어시스턴트와 통신하도록 구성되는 예시적인 서버의 소프트웨어 컴포넌트의 블록도이다.
도 4는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 프로파일의 적어도 몇몇 정보에 기초하여 유저와 상호작용할 때의 가상 어시스턴트의 거동을 커스터마이징하기 위한, 가상 어시스턴트를 구현하도록 프로그래밍된 디바이스에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 5는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트를 구현하도록 프로그래밍된 적어도 하나의 디바이스에게 유저의 프로파일에 대한 액세스를 제공하기 위한, 유저의 프로파일을 저장하는 적어도 하나의 디바이스에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 6은, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 제1 디바이스 상에서 개시된 태스크의 수행을 제2 디바이스 상에서 계속하기 위한 예시적인 프로세스의 플로우차트이다.
도 7은, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 프로파일의 정보에 적어도 부분적으로 기초하여 생성되는 유저의 네트워크를 예시하는 도면이다.
도 8a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저의 네트워크를 통해 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 기초하여 유저와 상호작용하기 위한, 가상 어시스턴트에 의해 수행되는 예시적인 프로세스의 플로우차트이다.
도 8b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트로 하여금, 네트워크를 통해 제1 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 기초하여, 유저와 상호작용하게 하기 위한 예시적인 프로세스의 플로우차트이다.
도 9는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 유저 특정 액션(들)에 대응하는 하나 이상의 유저 특정 조건이 충족되는 경우, 가상 어시스턴트로 하여금 하나 이상의 유저 특정 액션을 수행하게 하기 위한 예시적인 프로세스의 플로우차트이다.
도 10은 본원에서 제공되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 다른 예시적인 환경을 도시한다.
도 11a는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 가상 어시스턴트를 사용하는 것에 의해 호출자와 상호작용식 보이스 응답 시스템 사이에서 호를 행하기 위한 예시적인 프로세스의 플로우차트이다.
도 11b는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 호출자의 프로파일의 정보에 기초하여 호출자와 상호작용식 보이스 응답 시스템 사이에서 호를 행하기 위한 예시적인 프로세스의 플로우차트이다.
도 12는, 본원에서 설명되는 실시형태가 구현될 수도 있는 예시적인 컴퓨터 시스템의 블록도이다.
I. 개관
본 출원인은, 가상 어시스턴트가 상호작용하고 있는 유저에 관해 가상 어시스턴트가 액세스할 수 있는 정보의 타입이, 만약 있다면, 종래의 가상 어시스턴트는 그 정보의 타입에서 제한된다는 것을 인식하였다. 본 출원인은, 가상 어시스턴트가 상호작용하고 있는 유저에 관한 추가적인 타입의 정보에 가상 어시스턴트가 액세스할 수 있다면, 향상된 그리고 증가적으로 개인 맞춤된(personalized) 유저 경험이 제공될 수 있다는 것을 인식하였다. 따라서, 본원에서 설명되는 몇몇 실시형태는, 유저에 관한 정보를 포함하는 유저의 프로파일에 액세스할 수도 있는 그리고, 프로파일의 적어도 몇몇 정보에 기초하여, 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있는 가상 어시스턴트에 관련된다. 유저의 프로파일의 정보에 액세스하는 것은, (예를 들면, 가상 어시스턴트가 유저에게 정보를 제시하는 스타일 및/또는 가상 어시스턴트가 유저에게 제시하는 정보의 컨텐츠를 조정하는 것에 의해) 가상 어시스턴트가 다수의 방식 중 임의의 방식에서 유저의 선호도에 영합하는 것을 허용한다.
유저는, 종래의 가상 어시스턴트가 각각 구현되는 다수의 디바이스를 사용할 수도 있다. 예를 들면, 유저는 스마트폰 상에서 구현되는 종래의 가상 어시스턴트를 사용하는 것에 의해 그의/그녀의 스마트폰과 상호작용할 수도 있고 태블릿 컴퓨터 상에서 구현되는 종래의 가상 어시스턴트를 사용하는 것에 의해 그의/그녀의 태블릿 컴퓨터와 상호작용할 수도 있다. 본 출원인은, 하나의 디바이스(예를 들면, 유저의 스마트폰) 상에서 구현되는 종래의 가상 어시스턴트가 유저와 상호작용하는 방식을 유저가 커스터마이징하더라도, 다른 디바이스(예를 들면, 유저의 태블릿 컴퓨터) 상에서 구현되는 종래의 가상 어시스턴트는 유저에 의해 개별적으로 커스터마이징되는 것을 필요로 할 것이다는 것을 인식하였다. 예를 들면, 유저가 스페인어로 출력을 제공하도록 그의/그녀의 스마트폰 상에서 실행되는 가상 어시스턴트를 구성하더라도, 유저의 태블릿 컴퓨터 상에서 실행되는 가상 어시스턴트는 스마트폰 상의 가상 어시스턴트가 어떻게 구성되어 있는지를 인식하지 못할 것이다. 유저는, 마찬가지로 스페인어로 출력을 제공하도록 태블릿 컴퓨터 상에서 구현되는 가상 어시스턴트를 구성하기 위해서는, 태블릿 컴퓨터 상의 가상 어시스턴트에 대한 설정을 변경하는 추가 단계를 수행할 필요가 있을 것이다. 따라서, 다수의 디바이스 상의 다수의 가상 어시스턴트와 상호작용하는 유저는, 가상 어시스턴트의 각각을 개별적으로 커스터마이징해야 하거나 - 이것은 불편함 - , 또는 다수의 디바이스 상에서 구현되는 상이한 종래의 가상 어시스턴트와 상호작용할 때 일관되지 않은 유저 경험을 가져야 한다.
본 출원인은, 가상 어시스턴트가 일관된 방식으로 거동하고 유저에게 그/그녀가 다수의 디바이스에 걸쳐 동일한 가상 어시스턴트를 사용하고 있다는 인상을 제공하도록, 상이한 디바이스 상의 가상 어시스턴트가 거동하는(예를 들면, 유저와 상호작용하는) 방식의 커스터마이징을 제공하는 것에 의해, 유저 경험이 향상될 수도 있다는 것을 인식하였다. 따라서, 본원에서 설명되는 몇몇 실시형태는, 상이한 디바이스 상에서 실행되는 가상 어시스턴트가 유저의 프로파일의 적어도 몇몇 정보에 액세스하는 것 및 프로파일의 적어도 몇몇 정보에 기초하여 자신의 거동을 커스터마이징하는 것을 허용하는 것에 관련된다. 유저의 프로파일에 액세스하는 것은, 가상 어시스턴트와 상호작용할 때 유저에게 일관된 경험을 제공하도록, 상이한 디바이스 상에서 실행되는 가상 어시스턴트가 자신의 거동을 커스터마이징하는 것을 허용한다. 비제한적인 예로서, 상이한 디바이스 상에서 실행되는 가상 어시스턴트는, 정보를 그/그녀에게 제시되게 하기 위한 유저가 선호하는 스타일을 나타내는 유저 프로파일의 정보에 기초하여 유저에게 정보를 제시하는 동일한 스타일(예를 들면, 발화 스타일, 텍스트 스타일, GUI 스타일 등등)을 채택할 수도 있다. 다른 비제한적인 예로서, 상이한 디바이스 상에서 실행되는 가상 어시스턴트는 유저의 프로파일에서 특정되는 유저의 선호도에 기초하여 유저에게 컨텐츠를 제시할 수도 있다.
본원에서 설명되는 몇몇 실시형태는, 본 출원인이 종래의 가상 어시스턴트에서 인식했던 상기 설명된 이유 전체를 다룬다. 그러나, 하기에서 설명되는 모든 실시형태가 이들 이슈의 전체를 다루는 것은 아니며, 몇몇 실시형태는 이들 중 어떤 것도 다루지 않을 수도 있다. 이와 같이, 본원에서 제공되는 본 개시의 실시형태는 종래의 가상 어시스턴트의 상기 설명된 이슈의 전체 또는 임의의 것을 다루는 것으로 제한되지 않는다는 것이 인식되어야 한다.
몇몇 실시형태는, 유저의 프로파일의 적어도 몇몇 정보에 액세스할 수도 있고, 유저의 프로파일에서 액세스되는 정보에 기초하여 자신의 거동을 커스터마이징할 수도 있는 가상 어시스턴트를 대상으로 한다. 유저의 프로파일은 가상 어시스턴트가 액세스할 수 있는 임의의 적절한 위치 또는 위치들에 저장될 수도 있다. 예를 들면, 유저의 프로파일은 가상 어시스턴트를 실행하는 디바이스 및/또는 가상 어시스턴트를 실행하는 디바이스에, 직접적으로 또는 간접적으로, 통신적으로 커플링되는 하나 이상의 다른 디바이스(예를 들면, 하나 이상의 서버, 유저의 스마트폰 등등) 상에 저장될 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는, 유저와 상호작용할 때 가상 어시스턴트가 정보를 유저에게 제시하는 스타일을 커스터마이징하는 것에 의해, 자신의 거동을 커스터마이징할 수도 있다. 유저의 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함할 수도 있고 가상 어시스턴트는 이 정보에 액세스할 수도 있고 유저와 상호작용할 때 가상 어시스턴트 페르소나를 채택하는 것에 의해 자신의 거동을 커스터마이징할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는 보이스 폰트 및/또는 발화 스타일을 특정할 수도 있고 가상 어시스턴트는 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성하는 것에 의해 가상 어시스턴트 페르소나를 채택할 수도 있다. 다른 비제한적인 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는 GUI 스타일(예를 들면, 텍스트 스타일)을 특정할 수도 있고 가상 어시스턴트는 특정된 텍스트 스타일에 따라 텍스트 및/또는 다른 그래픽 정보를 생성하는 것에 의해 가상 어시스턴트 페르소나를 채택할 수도 있다. 가상 어시스턴트가 유저에게 정보를 제공하는 스타일을 가상 어시스턴트가 어떻게 커스터마이징하는지의 이들 및 다른 예는 하기에서 더 상세히 설명된다.
몇몇 실시형태에서, 가상 어시스턴트는, 유저와 상호작용할 때, 가상 어시스턴트가 유저에게 제시하는 정보의 컨텐츠를 커스터마이징하는 것에 의해, 자신의 거동을 커스터마이징할 수도 있다. 유저의 프로파일은 유저의 관심을 나타내는 정보를 특정할 수도 있고 가상 어시스턴트는 이 정보에 액세스할 수도 있고 가상 어시스턴트가 유저에게 제시하는 정보를 이들 관심에 맞게 재단하는 것에 의해 자신의 거동을 커스터마이징할 수도 있다. 하나의 비제한적인 예로서, 유저의 프로파일은 유저가 관심을 갖는 하나 이상의 토픽(예를 들면, 러시아 정치, 뉴 잉글랜드 패트리엇츠(New England Patriots) 풋볼 팀, 자동차, 등등)을 특정하는 정보를 포함할 수도 있고 가상 어시스턴트는 유저에게 토픽 또는 토픽들(예를 들면, 뉴스 기사, 광고 등등)에 관련되는 정보를 (주도적으로(proactively) 및/또는 유저 입력에 응답하여) 제공할 수도 있다. 다른 비제한적인 예로서, 유저의 프로파일은, 특정 타입(예를 들면, 영화 장르, 음악 장르, 음악 아티스트, 특정 배우의 영화 등등)의 미디어 컨텐츠를 유저가 즐긴다는 것을 나타내는 정보를 포함할 수도 있고 가상 어시스턴트는 그 특정 타입의 미디어 컨텐츠를 유저에게 (주도적으로 및/또는 유저 입력에 응답하여) 추천할 수도 있다.
몇몇 실시형태는, 상이한 디바이스 상에서 실행되는 다수의 가상 어시스턴트에게 유저의 프로파일의 적어도 몇몇 공통 정보에 대한 액세스를 제공하도록 구성되는 시스템을 대상으로 한다. 이 방식에서, 유저에게 일관된 경험을 제공하기 위해, 가상 어시스턴트는 유저와 상호작용할 때, 유저의 프로파일의 정보에 기초하여, 자신의 거동을 커스터마이징할 수도 있다. 예를 들면, 시스템은 가상 어시스턴트를 실행하는 하나의 디바이스(예를 들면, 유저의 스마트폰)로부터 유저의 프로파일의 적어도 몇몇 정보에 액세스하기 위한 요청을 수신할 수도 있고, 디바이스 상에서 실행되는 가상 어시스턴트가, 액세스된 정보에 기초하여, 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수 있도록, (디바이스가 이러한 액세스를 할 수 있는 퍼미션을 갖는다는 것이 결정되면) 요청된 정보에 대한 액세스를 디바이스에게 제공할 수도 있다. 그 다음, 시스템은 유저의 프로파일에 액세스하기 위한 요청을 가상 어시스턴트를 실행하는 다른 디바이스(예를 들면, 유저의 랩탑)로부터 수신할 수도 있고, 시스템은, 다른 디바이스 상에서 실행되는 가상 어시스턴트가 프로파일의 정보에 기초하여 자신의 거동을 커스터마이징할 수 있도록, 다른 디바이스에게 프로파일에 대한 액세스를 제공할 수도 있다. 이 방식에서, 양 디바이스(예를 들면, 유저의 스마트폰 및 랩탑) 상에서 실행되는 가상 어시스턴트는 유저의 프로파일의 적어도 몇몇 공통 정보에 액세스할 수 있을 수도 있다.
따라서, 상이한 디바이스 상에서 실행되는 가상 어시스턴트는, 유저의 프로파일의 정보에 기초하여, 동일한 또는 유사한 방식으로 거동하도록 자신의 거동을 커스터마이징할 수도 있고, 이들 상이한 가상 어시스턴트와 상호작용하는 유저에게 일관된 유저 경험을 제공하게 된다. 상이한 디바이스 상에서 실행되는 가상 어시스턴트는, 그들이 유저에게 제공하는 정보의 스타일 및/또는 컨텐츠를 동일하도록 또는 유사하도록 커스터마이징할 수도 있다. 비제한적인 예로서, 유저의 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함할 수도 있고, 상이한 디바이스 상에서 실행되는 가상 어시스턴트는 이 정보에 액세스할 수도 있고 유저와 상호작용할 때 동일한 가상 어시스턴트 페르소나를 채택할 수도 있다.
몇몇 실시형태에서, 하나의 디바이스 상에서 실행되는 가상 어시스턴트는, 다른 디바이스 상에서 실행되는 가상 어시스턴트가, 유저의 프로파일의 적어도 몇몇 업데이트된 정보에 기초하여, 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있도록, 유저의 프로파일을 업데이트할 수도 있다. 하나의 비제한적인 예로서, 하나의 디바이스(예를 들면, 유저의 자동차) 상에서 실행되는 가상 어시스턴트가, 유저가 자동차 안에서 특정한 오디오북을 청취하고 있다는 것을 나타내는 정보를 유저의 프로파일에 저장할 수도 있다. 다른 디바이스(예를 들면, 유저의 가정의 컴퓨터) 상에서 실행되는 가상 어시스턴트가 유저의 프로파일의 이 정보에 액세스할 수도 있고 그/그녀가 자동차 안에서 청취하고 있었던 오디오북을 (예를 들면, 유저가 집에 있을 때) 계속 청취함에 있어서 (예를 들면, 그/그녀가 그 오디오북을 계속 청취하고 싶어하는지의 여부를 묻기 위해 유저에게 프롬프트를 나타내는(prompting) 것에 의해) 유저를 자동적으로 보조할 수도 있다. 상기 예로부터 알 수 있는 바와 같이, 상이한 디바이스 상에서 실행되는 가상 어시스턴트가 유저의 프로파일의 정보에 액세스하는 것 및 업데이트하는 것(예를 들면, 추가하는 것, 편집하는 것, 및/또는 제거하는 것)을 허용하는 것은, 유저가 다수의 디바이스를 사용하여 태스크(예를 들면, 오디오북을 청취하는 것)를 수행하는 것을 허용할 수도 있다. 유저는 하나의 디바이스 상에서 태스크를 수행하고 있을 수도 있고(예를 들면, 그의 자동차 안에서 음악을 청취하고 있을 수도 있고) 상이한 디바이스 상에서 그 태스크의 수행을 계속할 수도 있다(예를 들면, 그의 가정의 스테레오 시스템 상에서 동일한 음악을 계속 청취할 수도 있다). 디바이스에 걸쳐 태스크의 수행을 계속하는 것은 도 6을 참조로 하기에서 더 상세히 설명된다.
몇몇 실시형태에서, 유저의 프로파일은, 가상 어시스턴트가 실행되고 있는 디바이스로부터 원격에(예를 들면, 네트워크를 통해 액세스가능한 하나 이상의 디바이스 상에) 저장될 수도 있다. 하나의 비제한적인 예로서, 유저의 프로파일은 하나 이상의 인터넷 액세스가능 서버(Internet-accessible server) 상에 저장될 수도 있다. 로컬 디바이스(예를 들면, 유저의 랩탑 컴퓨터, 유저의 스마트폰 등등) 상에서 실행되는 가상 어시스턴트는, 네트워크를 통해, 원격으로 저장된 프로파일의 정보에 액세스할 수도 있다. 로컬 디바이스는 유저의 프로파일의 로컬 사본을 저장할 수도 있다. 유저의 프로파일의 로컬 사본은 원격에 저장된 유저의 프로파일과 임의의 적절한 시간에 그리고 임의의 적절한 방식으로 동기화될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에 있어서는 제한되지 않기 때문이다. 이러한 실시형태는 도 1a를 참조로 하기에서 더 상세히 설명된다.
몇몇 실시형태에서, 유저의 프로파일은 모바일 디바이스 상에 저장될 수도 있다. 비제한적인 예로서, 유저의 프로파일은 유저의 스마트폰 상에 저장될 수도 있다. 다른 디바이스(예를 들면, 유저의 랩탑 컴퓨터, 유저의 텔레비전 등등) 상에서 실행되는 가상 어시스턴트는, 유저의 모바일 디바이스 상에 저장된 프로파일의 정보에 임의의 방식으로, 예컨대, 모바일 디바이스와의 직접 유선 또는 무선 연결(예를 들면, 블루투스 연결, 근접장(near-field) RF 연결 등등)을 확립하는 것에 의해, 액세스할 수도 있다. 이 방식에서, 유저가 그/그녀와 함께 모바일 디바이스를 가지고 있을 때, 다른 디바이스 상에서 실행되는 가상 어시스턴트가 어떠한 네트워크에도 액세스할 필요 없이 유저의 프로파일의 정보에 액세스하는 것을 모바일 디바이스가 허용하도록, 유저의 모바일 디바이스는 프로파일 허브로서 동작한다. 이러한 실시형태는 도 1b를 참조로 하기에서 더 상세히 설명된다.
상기에서 설명된 바와 같이, 가상 어시스턴트는, 유저의 프로파일의 적어도 몇몇 정보에 기초하여, 자신의 거동을 커스터마이징할 수도 있다. 그러나, 가상 어시스턴트는, 유저의 프로파일의 정보에만 기초하여 자신의 거동을 커스터마이징하는 것으로 제한되지는 않는다. 추가적으로 또는 대안적으로, 몇몇 실시형태에서, 가상 어시스턴트는, 가상 어시스턴트가 실행되고 있는 디바이스의 유저 이외의 한 명 이상의 유저의 프로파일(들)의 적어도 몇몇 정보에 기초하여, 자신의 거동을 커스터마이징할 수도 있다. 다른 유저(들)는 유저의 네트워크(예를 들면, 소셜 네트워크)를 통해 및/또는 임의의 다른 적절한 방식으로 디바이스의 유저와 관련될 수도 있다.
특정한 유저(참조의 용이성을 위해 "앨리스(Alice)")의 디바이스 상에서 동작하는 가상 어시스턴트는 한 명 이상의 다른 유저의 프로파일(들)의 정보에 기초하여 자신의 거동을 다수의 방식 중 임의의 방식으로 커스터마이징할 수도 있다. 하나의 비제한적인 예로서, 앨리스와 상호작용하는 가상 어시스턴트는 적어도 한 명의 다른 유저의 스케줄(들)을 적어도 부분적으로 특정하는 정보에 액세스할 수도 있고 액세스된 정보에 기초하여 적어도 한 명의 다른 유저와 앨리스 간의 이벤트(예를 들면, 미팅, 전화 통화 등등)를 스케줄링할 수도 있다. 다른 비제한적인 예로서, 한 명 이상의 다른 유저의 프로파일(들)의 정보는, 다른 유저(들)가 관심을 갖는 하나 이상의 토픽을 식별하는 정보를 포함할 수도 있고 가상 어시스턴트는 식별된 토픽(들)에 관련되는 정보(예를 들면, 뉴스 기사, 광고 등등)를 앨리스에게 제시하는 것에 의해 자신의 거동을 커스터마이징할 수도 있다. 예를 들면, 네트워크를 통해 앨리스와 관련되는 한 명 이상의 유저는, 그들이 이집트의 정치에 관한 뉴스에 관심이 있다는 것을 나타내는 정보를 그들의 프로파일에 구비할 수도 있다. 따라서, 앨리스와 상호작용하는 가상 어시스턴트는 이집트 정치에 관한 뉴스 기사에 대한 링크를 앨리스에게 (주도적으로 또는 앨리스로부터의 입력에 응답하여) 제공할 수도 있다. 다른 비제한적인 예로서, 네트워크를 통해 앨리스와 관련되는 한 명 이상의 유저는, 그들이 특정한 아이템 또는 아이템들(예를 들면, 미디어 컨텐츠, 제품 등등)을 좋아한다는 것을 나타내는 정보를 그들의 프로파일에 구비할 수도 있고 가상 어시스턴트는 (예를 들면, 미디어 컨텐츠, 제품 등등에 대한 광고를 제시하는 것에 의해) 특정한 아이템(들)의 추천을 앨리스에게 (주도적으로 또는 앨리스로부터의 입력에 응답하여) 제공할 수도 있다. 예를 들면, 유저는 그의 친구 조(Joe)와 함께 영화를 보기를 원할 수도 있고 그와 조가 함께 즐길 영화의 추천에 대해 가상 어시스턴트에게 물어볼 수도 있다. 응답으로, 가상 어시스턴트는, 조와 유저가 즐기는 영화의 타입을 나타내는 조의 프로파일과 유저의 프로파일에서의 정보에 기초하여 영화의 추천을 제공할 수도 있다.
상기 논의로부터 알 수 있는 바와 같이, 몇몇 실시형태에서, 가상 어시스턴트는, 유저의 프로파일의 적어도 몇몇 정보 및/또는 유저와 관련되는 한 명 이상의 다른 유저의 프로파일(들)에서의 적어도 몇몇 정보에 기초하여, 유저와 상호작용할 때 하나 이상의 액션을 주도적으로 수행할 수도 있다(예를 들면, 유저에게 정보를 제공할 수도 있다). 추가적으로 또는 대안적으로, 가상 어시스턴트는 하나 이상의 유저 특정 조건이 충족되는 경우 하나 이상의 유저 특정 액션을 수행할 수도 있다.
몇몇 실시형태에서, 유저는 적어도 하나의 조건 및 적어도 하나의 유저 특정 조건이 충족되는 경우 유저의 가상 어시스턴트에 의해 수행될 적어도 하나의 대응하는 액션을 특정할 수도 있다. 유저 특정 조건이 충족된다는 결정이 (예를 들면, 가상 어시스턴트 또는 가상 어시스턴트를 실행하는 디바이스와 통신하도록 구성되는 다른 컴퓨터에 의해) 이루어지는 경우, 가상 어시스턴트는 유저 특정 액션을 수행할 수도 있다. 하나의 비제한적인 예로서, 디바이스의 유저가 미팅에 늦어지고 있다는 것이 결정되는 경우, 가상 어시스턴트는 (예를 들면, 가상 디바이스가 실행하고 있는 디바이스의 데스크탑 상의 백그라운드 컬러를 변경하는 것에 의해) 유저에게 경고할 수도 있다. 다른 비제한적인 예로서, 가상 어시스턴트는 스포츠 게임(예를 들면, 농구 게임)의 스코어에 대한 업데이트를, 스코어가 임계량만큼(예를 들면, 10점만큼) 변경되었다는 것이 결정되는 경우, 유저에게 제시할 수도 있다. 유저 특정 조건 및 대응하는 유저 특정 액션의 다른 예는 하기에서 제공된다.
몇몇 실시형태에서, 가상 어시스턴트는, 대응하는 유저 특정 조건이 충족된 경우(예를 들면, 날씨 예보가 비를 포함하는 경우, 특정 주식의 가격이 임계치 아래로 떨어지는 경우 등등), 적어도 부분적으로, 다른 애플리케이션 프로그램(예를 들면, 이메일 애플리케이션 프로그램, 알람 애플리케이션 프로그램 등등)을 사용하는 것에 의해, 유저 특정 액션(예를 들면, 날씨 예보에 대한 링크를 포함하는 이메일을 나의 배우자에게 전송하는 것, 알람을 울리는 것 등등)을 수행할 수도 있다. 다른 실시형태에서, 가상 어시스턴트는 액션을 수행하기 위해 하나 이상의 다른 애플리케이션 프로그램을 사용하지 않아도 되는데, 몇몇 유저 특정 액션(예를 들면, 스피치를 생성하는 것에 의해 유저에게 정보를 제공하는 것)이 가상 어시스턴트 그 자체에 의해 수행될 수도 있기 때문이다.
본 출원인은, 상호작용식 보이스 응답(IVR) 시스템과의 호에서 디바이스(예를 들면, 스마트폰)를 사용하는 경우, 디바이스 상에서 실행되는 가상 어시스턴트를 사용하여 호를 행하는 것이 호출자와 IVR 시스템 사이에 향상된 상호작용을 제공할 수도 있다는 것을 또한 인식하였다. 따라서, 몇몇 실시형태는, 호출자의 디바이스 상에서 실행되는 가상 어시스턴트를 사용하여 IVR 시스템과 호출자 사이에서 호를 행하는 것을 제공한다. 가상 어시스턴트는 호출자의 프로파일의 적어도 몇몇 정보에 액세스할 수도 있고, 액세스된 정보에 기초하여, 호 동안 호출자에게 정보가 제공되는 스타일 및/또는 호를 행하기 위해 호출자에 의해 사용되는 디바이스와 IVR 사이에서 통과되는 정보의 컨텐츠에 영향을 끼치는 것에 의해 호를 행할 수도 있다.
몇몇 실시형태에서, 호출자의 프로파일은 가상 어시스턴트 페르소나를 특정하는 정보를 포함할 수도 있고 가상 어시스턴트는, IVR로부터 수신되는 정보를 호출자에게 제공할 때 가상 어시스턴트 페르소나를 채택하는 것에 의해 호 동안 호출자에게 정보가 제공되는 스타일에 영향을 끼칠 수도 있다. 예를 들면, 가상 어시스턴트 페르소나는 보이스 폰트 및/또는 발화 스타일을 특정할 수도 있고 가상 어시스턴트는 IVR로부터 수신되는 정보를 호출자에게 전달하기 위해 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성할 수도 있다. 이 방식에서, IVR로부터의 정보는, 종래의 IVR 시스템에 의해 직접적으로 제공되는 스피치의 스타일 대신, 호출자의 가상 어시스턴트의 친숙하고 개인 맞춤된 스타일로 호출자에게 제시된다.
몇몇 실시형태에서, 가상 어시스턴트는 IVR 시스템에 의해 소망되는 적어도 몇몇 정보를, 이 정보를 입력할 것을 유저에게 요청하지 않고, 호출자의 프로파일로부터 제공하는 것에 의해 호를 행한다. 하나의 비제한적인 예로서, 호출자의 프로파일은 호출자를 식별하는 정보(예를 들면, 이름, 주소, 사회 보장 번호(social security number), 등등)를 포함할 수도 있고 가상 어시스턴트는 호출자를 식별하는 적어도 몇몇 정보를, 호출자가 이 정보를 입력할 필요가 없도록, IVR 시스템으로 제공할 수도 있다. 다른 비제한적인 예로서, 호출자의 프로파일은, 호출자와 IVR 시스템 사이의 하나 이상의 이전 호에서 호출자에 의해 IVR 시스템으로 제공된 정보(예를 들면, 계좌 번호, 신용카드 번호 등등)를 포함할 수도 있고, 가상 어시스턴트는 호출자에 의해 이전에 제공된 적어도 몇몇의 이러한 정보를, 호출자에게 그것을 입력할 것으로 요구하지 않고, IVR 시스템으로 제공할 수도 있다.
본원에서 설명되는 실시형태는 다양한 방식 중 임의의 방식으로 구현될 수도 있다는 것이 인식되어야 한다. 특정 구현예의 예는 예시적인 목적만을 위해 하기에서 제공된다. 이들 실시형태 및 제공되는 피쳐/성능은 개별적으로, 모두 함께, 또는 둘 이상의 임의의 조합으로 사용될 수도 있다는 것이 인식되어야 하는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
II. 유비쿼터스 가상 어시스턴트
본원에서 제공되는 본 개시의 몇몇 실시형태는, 도 1a에서 도시되는 예시적인 환경(100)과 같은 환경에서 동작할 수도 있다. 예시적인 환경(100)에서, 유저(102a)는, 컴퓨팅 디바이스를 통해 정보에 액세스하기 위해, 컴퓨팅 디바이스에 입력을 제공하기 위해, 컴퓨팅 디바이스로부터 출력을 획득하기 위해, 컴퓨팅 디바이스 상에서 하나 이상의 애플리케이션 프로그램을 사용하기 위해, 컴퓨팅 디바이스 상의 오퍼레이팅 시스템을 사용하여 하나 이상의 액션을 수행하기 위해, 및/또는 임의의 다른 적절한 목적을 위해 컴퓨팅 디바이스(104a)와 상호작용할 수도 있다. 마찬가지로, 예시적인 환경(100)에서, 유저(102a)는 컴퓨팅 디바이스(104a)와 상호작용할 수도 있고 유저(102b)는 상기 설명된 목적 중 임의의 것 또는 임의의 다른 적절한 목적을 위해 컴퓨팅 디바이스(104b 및 104c)와 상호작용할 수도 있다.
컴퓨팅 디바이스(104a, 104b, 및 104c)는 가상 어시스턴트(105a, 105b, 및 105c)를 각각 구현하도록 프로그래밍된다. 유저(102a)는 적어도 부분적으로 가상 어시스턴트(105a)를 사용하는 것에 의해 컴퓨팅 디바이스(104a)와 상호작용할 수도 있다. 유저(102a 및 102b)는 적어도 부분적으로 가상 어시스턴트(105b)를 사용하는 것에 의해 컴퓨팅 디바이스(104b)와 상호작용할 수도 있다. 유저(102b)는 적어도 부분적으로 가상 어시스턴트(105c)를 사용하는 것에 의해 컴퓨팅 디바이스(104c)와 상호작용할 수도 있다. 예시된 실시형태에서, 컴퓨팅 디바이스(104a, 104b, 및 104c)의 각각은 하나의 가상 어시스턴트를 구현하도록 프로그래밍된다. 그러나, 본원에서 제공되는 본 개시의 양태는 이 점에서는 제한되지 않는데, 각각의 컴퓨팅 디바이스가 다수의 가상 어시스턴트를 구현하도록 프로그래밍될 수도 있기 때문이다.
앞서 설명된 바와 같이, 가상 어시스턴트는 유저의 프로파일의 정보에 액세스할 수도 있고 유저의 프로파일의 적어도 몇몇 정보에 기초하여 자신의 거동을 커스터마이징할 수도 있다. (유저의 프로파일의 정보에 기초하여, 가상 어시스턴트가 자신의 거동을 어떻게 커스터마이징할 수도 있는지의 예가 본원에서 제공된다.) 예를 들면, 가상 어시스턴트(105a)는 유저(102a)의 프로파일에 액세스하도록 구성될 수도 있고, 유저(102a)의 프로파일의 적어도 몇몇 정보에 기초하여, 유저(102a)와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있다. 다른 예로서, 가상 어시스턴트(105b)는 유저(102a)의 프로파일에 액세스하도록 구성될 수도 있고, 유저(102a)의 프로파일의 적어도 몇몇 정보에 기초하여, 유저(102a)와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있다. 또 다른 예로서, 가상 어시스턴트(105b)는 유저(102b)의 프로파일에 액세스하도록 구성될 수도 있고, 유저(102b)의 프로파일의 적어도 몇몇 정보에 기초하여, 유저(102a)와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있다. 또 다른 예로서, 가상 어시스턴트(105c)는 유저(102b)의 프로파일에 액세스하도록 구성될 수도 있고, 유저(102b)의 프로파일의 적어도 몇몇 정보에 기초하여, 유저(102b)와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있다.
예시된 환경에서, 가상 어시스턴트(105a 및 105b)는, 그/그녀가 이들 가상 어시스턴트와 상호작용할 때 유저(102a)에게 일관된 유저 경험을 제공하기 위해, 유저(102a)의 프로파일의 정보에 기초하여, 동일한 또는 유사한 방식으로 거동하도록 자신들의 거동을 커스터마이징할 수도 있다. 마찬가지로, 가상 어시스턴트(105b 및 105c)는, 그/그녀가 이들 가상 어시스턴트와 상호작용할 때 유저(102b)에게 일관된 유저 경험을 제공하기 위해, 유저(102b)의 프로파일의 정보에 기초하여, 동일한 또는 유사한 방식으로 거동하도록 자신들의 거동을 커스터마이징할 수도 있다.
상기 예로부터 알 수 있는 바와 같이, 단일의 디바이스 상에서 실행되는 가상 어시스턴트(예를 들면, 디바이스(104b) 상에서 실행되는 가상 어시스턴트(105b))는 상이한 유저(예를 들면, 유저(102a 및 102b))와 상호작용할 때 상이한 유저의 각각의 프로파일에서 액세스되는 정보에 기초하여 자신의 거동을 상이한 방식으로 커스터마이징할 수도 있다. 비제한적인 예로서, 가상 어시스턴트(105b)는, 유저(102a)와 상호작용하는 경우에는 (예를 들면, 가상 어시스턴트로 하여금 영국 액센트를 갖는 여성 보이스를 사용하여 느린 발화 속도(speaking rate)로 이야기하게 하도록 유저(102a)의 프로파일에서 특정되는) 하나의 가상 어시스턴트 페르소나를 그리고 유저(102b)와 상호작용하는 경우에는 (가상 어시스턴트로 하여금 장황한 방식으로 남성 보이스로 이야기하게 하도록 유저(102b)의 프로파일에서 특정되는) 다른 가상 어시스턴트 페르소나를 채택할 수도 있다. 특정한 비제한적인 예로서, 컴퓨팅 디바이스(104a)는 가정용 텔레비전일 수도 있고 그 상에서 실행되는 가상 어시스턴트는 가족 구성원에게, 그 또는 그녀와 상호작용할 때, 각각의 개인 맞춤된 경험을 제공할 수도 있다. 다른 특정한 비제한적인 예로서, 컴퓨팅 디바이스(104a)는 자동차의 컴퓨팅 디바이스(예를 들면, 내비게이션 유닛)일 수도 있고 그 상에서 실행되는 가상 어시스턴트는 각각의 가족 구성원에게, 그 또는 그녀와 상호작용할 때, 개인 맞춤된 경험을 제공할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트가 다수의 유저와 상호작용하도록 구성되는 경우, 가상 어시스턴트는, 가상 어시스턴트가 (예를 들면, 특정한 유저의 프로파일의 정보에 기초하여) 자신의 거동을 특정한 유저에게 커스터마이징할 수도 있도록, 가상 어시스턴트가 어떤 특정한 유저와 상호작용하고 있는지를 결정할 수도 있다. 가상 어시스턴트는, 자신이 어떤 유저와 상호작용하고 있는지를 다양한 방식 중 임의의 방식으로 결정할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트가 특정한 유저와 관련되는 특정한 발언(utterance)(예를 들면, 키워드, 어구, 이름 등등)으로 호출될 때, 가상 어시스턴트는 자신이 특정한 유저와 상호작용하고 있다는 것을 결정할 수도 있다. 예를 들면, 가족 중 상이한 구성원이 상이한 이름을 사용하여 자동차에서 가상 어시스턴트를 호출할 수도 있다(예를 들면, 아빠는 "안녕 페퍼"라고 말하는 것에 의해 가상 어시스턴트를 호출할 수도 있고 가상 어시스턴트는 아빠가 그의 가상 어시스턴트 "페퍼"를 호출하기 때문에 자신이 아빠와 상호작용하고 있다는 것을 결정할 수도 있고, 엄마는 "안녕 베티"라고 말하는 것에 의해 가상 어시스턴트를 호출할 수도 있고 가상 어시스턴트는 엄마가 그녀의 가상 어시스턴트 "베티"를 호출하기 때문에 자신이 엄마와 상호작용하고 있다는 것을 결정할 수도 있고, 등등이다). 몇몇 실시형태에서, 가상 어시스턴트는, 유저의 보이스에 기초하여 유저를 식별하는 것에 의해(예를 들면, 유저의 보이스 시그니쳐를 사용하는 것에 의해) 자신이 특정한 유저와 상호작용하고 있다는 것을 결정할 수도 있다. 가상 어시스턴트는, 자신이 어떤 유저와 상호작용하고 있는지를 임의의 다른 적절한 방식으로(예를 들면, 상기 설명된 기술의 조합을 사용하여) 결정할 수도 있다는 것이 인식되어야 하는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
몇몇 실시형태에서, 가상 어시스턴트가 다수의 유저와 상호작용하도록 구성되는 경우, 가상 어시스턴트는 다수의 유저와 병렬로 상호작용할 수도 있다. 예를 들면, 가상 어시스턴트는, 다른 유저에 대한 대화가 활성인 동안, 한 명의 유저와 상호작용할 수도 있다. 가상 어시스턴트는 다른 유저에 대한 다른 태스크를 병렬로 수행하면서 한 명의 유저에 대한 태스크를 수행할 수도 있고 그 유저에게 커스터마이징된 방식으로 각각의 유저와 상호작용할 수도 있다. 하나의 비제한적인 예로서, 엄마와 아빠가 자동차에 있는 경우, 자동차를 특정한 목적지까지 길 안내할(navigate) 것을 아빠가 가상 어시스턴트에게 요청할 수도 있다(예를 들면, "안녕 페퍼, 포시즌(Four Seasons)으로 길 안내해줘"). 그들이 운전을 하고 있고 가상 어시스턴트가 아빠에게 커스터마이징된 방식으로(예를 들면, 아빠의 프로파일의 정보에 기초하여 출력을 제공하는 것에 의해) 길 안내(direction)를 제공하고 있는 동안, 엄마는 가상 어시스턴트에게 날씨를 살펴 볼 것을 요청할 수도 있고(예를 들면, "조지, 내일 날씨가 어때") 가상 어시스턴트는 엄마에게 커스터마이징된 방식으로(예를 들면, 엄마의 프로파일의 정보에 기초하여 출력을 제공하는 것에 의해) 이 정보를 제공한다.
가상 어시스턴트는 가상 어시스턴트가 실행되고 있는 디바이스 상에서 로컬하게 및/또는 하나 이상의 다른 디바이스로부터 원격으로 유저의 프로파일에 액세스하도록 구성될 수도 있다. 비제한적인 예로서, 가상 어시스턴트(105a)는 컴퓨팅 디바이스(104a) 상에서 로컬하게 및/또는 서버(110)(하기에서 더 상세히 설명됨)로부터 원격으로 유저(102a)의 프로파일에 액세스하도록 구성될 수도 있다. 유저의 프로파일의 사본이 가상 어시스턴트를 구현하도록 구성되는 디바이스 상에 로컬하게 그리고 하나 이상의 다른 디바이스 상에 원격으로 둘 다의 방식으로 저장되는 경우, 사본은 (예를 들면, 가상 어시스턴트 및/또는 다른 소프트웨어에 의해) 임의의 적절한 방식으로 동기화될 수도 있다.
가상 어시스턴트는 유저와 임의의 적절한 방식으로 상호작용할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 유저에 의해 가상 어시스턴트를 실행하는 디바이스로 제공되는 임의의 타입의 입력을 수신하는 것에 의해 유저와 상호작용할 수도 있고, 제공된 입력을 프로세싱하고, 제공된 입력에 기초하여 하나 이상의 액션을 수행하고, 제공된 입력에 응답하여 하나 이상의 출력을 유저에게 제시할 수도 있고, 및/또는 임의의 다른 적절한 기능(들)을 수행할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는, 유저 입력 없이, 하나 이상의 액션을 주도적으로 수행하는 것에 의해 유저와 상호작용할 수도 있다. 예를 들면, 가상 어시스턴트는 하나 이상의 출력(예를 들면, 정보, 통지 등등에 대한 프롬프트)을 유저에게 제공할 수도 있고, 하나 이상의 액션을 수행할 수도 있고(예를 들면, 가상 어시스턴트를 실행하는 디바이스 상에서 실행되는 하나 이상의 애플리케이션 프로그램 및/또는 오퍼레이팅 시스템으로/으로부터 정보를 전송/수신할 수도 있고/있거나, 가상 어시스턴트를 실행하는 디바이스 상에서 실행되는 하나 이상의 애플리케이션 프로그램 및/또는 오퍼레이팅 시스템의 하나 이상의 기능을 호출할 수도 있고, 등등), 및/또는 임의의 다른 적절한 기능(들)을 주도적으로 수행할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트는 (예를 들면, 유저의 상관으로부터의 초대에 기초하여 업무 미팅을 자동적으로 스케줄링하기 위해) 유저의 캘린더의 정보를 주도적으로 또는 유저 입력에 기초하여 업데이트하는 것에 의해 유저와 상호작용할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는 유저로부터 보이스 입력을 수신할 수도 있다. 보이스 입력은 유저가 보이스에 의해 제공할 수도 있는 임의의 적절한 입력일 수도 있다. 몇몇 실시형태에서, 보이스 입력은, 가상 어시스턴트가 프로세싱하도록 구성되는 미리 정의된 세트의 발언(즉, 고정된 문법)으로부터의 하나 이상의 발언을 포함할 수도 있다. 그러나, 다른 실시형태에서, 유저는 고정된 문법으로부터의 하나 이상의 발언을 발화하는 것에 의해 가상 어시스턴트에게 보이스 입력을 제공하는 것으로 제한되지 않고, 예를 들면, 자유 형식의 보이스 입력을 자연스럽게 발화하는 것에 의해 보이스 입력을 제공할 수도 있다. 이와 같이, 몇몇 실시형태에서, 보이스 입력은 자연 언어 입력을 포함할 수도 있고 가상 어시스턴트는 임의의 적절한 음성 인식 및/또는 자연 언어 이해 기술을 사용하여 자연 언어 입력을 프로세싱하도록 구성될 수도 있다. 음성 인식 및 자연 언어 이해 기술은 가상 어시스턴트를 실행하는 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a))에 의해 전적으로 수행될 수도 있거나, 가상 어시스턴트를 실행하는 컴퓨팅 디바이스가 액세스할 수 있는 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 하나 이상의 웹 서버)에 의해 전적으로 수행될 수도 있거나, 또는 적어도 부분적으로는 가상 어시스턴트를 실행하는 컴퓨팅 디바이스에 의해 그리고 적어도 부분적으로는 가상 어시스턴트를 실행하는 컴퓨팅 디바이스가 액세스할 수 있는 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 하나 이상의 웹 서버)에 의해 수행될 수도 있다.
하기에서 설명되는 몇몇 실시형태에서, 가상 어시스턴트는 유저로부터 보이스 입력을 수신하는 것으로 제한되지 않으며 가상 어시스턴트를 실행하는 컴퓨팅 디바이스에 제공될 수도 있는 다른 타입의 입력 중 임의의 것을 또한 수신할 수도 있다. 그러나, 이점에서는 모든 실시형태가 제한되는 것은 아니며, 본원에서 제공되는 본 개시의 양태는 보이스 입력을 수신하는 것으로 제한되는 가상 어시스턴트를 가지고 활용될 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는, 유저의 스피치를 인식하는 자동 음성 인식(automatic speech recognition; ASR) 엔진 및 유저에 의해 의도되는 액션을 결정하기 위해 인식된 스피치를 분석하는 자연 언어 이해(natural language understanding; NLU) 엔진을 포함한다(또는 이들과 통신한다). 이들 컴포넌트는, 본원에서 제공되는 본 개시의 양태가 임의의 타입의 ASR 엔진 또는 임의의 타입의 NLU 엔진에 제한되지 않기 때문에, 임의의 적절한 방식(이들 중 많은 예는 공지되어 있다)으로 개별적으로 또는 통합되어 구현될 수 있다. 가상 어시스턴트의 이들 및 다른 컴포넌트는 도 3a를 참조로 하기에서 더 상세히 설명된다.
가상 어시스턴트는 임의의 적절한 타입의 출력을 유저에게 제공할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 유저에게 하나 이상의 디스플레이를 사용하여 시각적 출력을, 하나 이상의 스피커를 사용하여 음향 출력을, (예를 들면, 가상 어시스턴트가 실행하고 있는 컴퓨팅 디바이스로 하여금 진동하게 하는 것에 의해) 촉각 출력을, 및/또는 임의의 다른 적절한 출력을 제공할 수도 있다.
예시된 실시형태에서, 컴퓨팅 디바이스(104a)는 데스크탑 컴퓨터이고, 컴퓨팅 디바이스(104a)는 태블릿 컴퓨터이고, 컴퓨팅 디바이스(104c)는 랩탑 컴퓨터이다. 그러나, 유저가 가상 어시스턴트를 사용하는 것에 의해 적어도 부분적으로 상호작용할 수도 있는 임의의 전자 디바이스 상에서 본원에서 설명되는 실시형태에 따른 각각의 가상 어시스턴트가 구현될 수도 있기 때문에, 본원에서 제공되는 본 개시의 양태는 이 점에서는 제한되지 않는다. 예를 들면, 몇몇 실시형태에서, 컴퓨팅 디바이스(104a-104c) 중 임의의 것은 휴대형 디바이스, 예컨대 모바일 스마트폰, 개인 휴대형 정보 단말(personal digital assistant; PDA), 랩탑 컴퓨터, 태블릿 컴퓨터, 또는 유저가 가상 어시스턴트를 사용하는 것에 의해 적어도 부분적으로 상호작용할 수도 있는 임의의 다른 휴대형 디바이스일 수도 있다. 대안적으로, 컴퓨팅 디바이스(104a-104c) 중 임의의 것은 고정식 전자 디바이스 예컨대 데스크탑 컴퓨터, 서버, 랙 마운트형 컴퓨터, 또는 유저가 가상 어시스턴트를 사용하는 것에 의해 적어도 부분적으로 상호작용할 수도 있는 임의의 다른 적절한 고정식 전자 디바이스일 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 유저가 상호작용하는 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a-104c))를 사용하여 구현될 수도 있지만, 다른 실시형태에서는, 가상 어시스턴트는 하나 이상의 서버(예를 들면, 서버(110))를 사용하여 구현될 수도 있거나, 또는 적어도 부분적으로는 유저가 상호작용하는 컴퓨팅 디바이스를 사용하는 것에 의해 그리고 적어도 부분적으로는 하나 이상의 서버를 사용하는 것에 의해 구현될 수도 있다는 것이 인식되어야 한다.
몇몇 실시형태에서, 유저는 유저에게 속하는 컴퓨팅 디바이스(예를 들면, 유저의 랩탑 컴퓨터, 유저의 스마트폰, 유저의 자동차 안의 컴퓨터 등등) 상에서 실행되는 가상 어시스턴트와 상호작용할 수도 있다. 그러나, 유저는 유저에게 속하는 디바이스 상에서만 실행되는 가상 어시스턴트와 상호작용하는 것에 제한되지 않으며, 몇몇 실시형태에서는, 임의의 다른 적절한 디바이스(예를 들면, 유저가 렌트한 자동차 안의 컴퓨터, 유저가 머무르고 있는 호텔 룸의 엔터테인먼트 시스템, 인터넷 카페의 공용 컴퓨터, 등등) 상의 가상 어시스턴트와 상호작용할 수도 있다. 컴퓨팅 디바이스가 유저에게 속하는지 또는 그렇지 않은지의 여부에 무관하게, 컴퓨팅 디바이스는 유저의 프로파일의 정보에 대한 액세스를 요청하도록 구성되는 가상 어시스턴트를 구현할 수도 있고, 요청된 정보에 액세스할 퍼미션이 허여되면, 액세스된 정보에 기초하여 자신의 거동을 커스터마이징할 수도 있다.
컴퓨팅 디바이스(104a, 104b, 및 104c)의 각각은 통신 링크(106a-106d) 및 네트워크(108)를 통해 서버(110)와 통신하도록 구성된다. 네트워크(108)는 임의의 적절한 타입의 네트워크 예컨대 근거리 통신망(local area network), 광역 통신망(wide area network), 인터넷, 인트라넷, 또는 임의의 다른 적절한 네트워크일 수도 있다. 통신 링크(106a-106d)의 각각은 유선 통신 링크 무선 통신 링크, 또는 임의의 다른 적절한 타입의 통신 링크일 수도 있다. 서버(110)와 컴퓨팅 디바이스(104a-104c) 사이에서 정보가 전송되는 방식은 본원에서 제공되는 본 개시의 양태의 제한사항이 아니기 때문에, 컴퓨팅 디바이스(104a-104c) 및 서버(110)는 임의의 적절한 네트워킹 프로토콜(예를 들면, TCP/IP)을 통해 통신할 수도 있다.
서버(110)는 한 명 이상의 유저의 각각에 대한 유저 프로파일을 저장할 수도 있다. 예시된 실시형태에서, 서버(110)는 유저(102a)에 대한 제1 유저 프로파일 및 유저(102b)에 대한 제2 유저 프로파일을 저장한다. 서버(110)는 임의의 적절한 수의 유저에 대한 유저 프로파일을 저장할 수도 있다. 서버(110)는 유저 프로파일을 임의의 적절한 방식으로 그리고 임의의 적절한 포맷으로 저장할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 서버(110)는 하나의 또는 다수의 컴퓨터일 수도 있다. 서버(110)가 다수의 컴퓨터를 포함하는 실시형태의 경우, 컴퓨터는 동일한 물리적 위치에 위치될 필요는 없고 다수의 물리적 위치에 걸쳐 분산될 수도 있다. 몇몇 실시형태에서, 서버(110)는 클라우드 컴퓨팅 환경의 일부일 수도 있다.
서버(110)는 한 명 이상의 유저(예를 들면, 유저(102a 및 102b))의 프로파일의 정보에 액세스하기 위한 요청을 하나의 또는 다수의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a, 104b, 또는 104c))로부터 수신하도록 구성될 수도 있다. 서버(110)는, 유저의 프로파일에 대한 액세스를 요청하는 컴퓨팅 디바이스가 유저의 프로파일의 적어도 몇몇 정보에 액세스할 퍼미션을 갖는지의 여부를 결정할 수도 있고, 유저의 프로파일의 적어도 몇몇 정보에 액세스할 퍼미션을 컴퓨팅 디바이스가 갖는다는 것을 서버(110)가 결정하는 경우, 서버(110)는 정보에 대한 액세스를 컴퓨팅 디바이스에게 제공할 수도 있다. 서버(110)는 유저의 프로파일의 정보에 대한 액세스를 요청하는 컴퓨팅 디바이스에게, 유저의 프로파일의 모든 정보에 대한 액세스를 제공할 수도 있거나, 일부 정보에 대한 액세스를 제공할 수도 있거나, 또는 정보에 대한 액세스를 전혀 제공하지 않을 수도 있다.
환경(100)은 예시에 불과하다는 것 및 많은 변형예가 가능하다는 것이 인식되어야 한다. 예를 들면, 각각이 두 개의 컴퓨팅 디바이스와 상호작용하는 두 명의 유저를 환경(100)이 예시하지만, 각각의 유저가 임의의 적절한 수의 컴퓨팅 디바이스와 그 상에서 구현되는 각각의 가상 어시스턴트를 사용하여 상호작용하는 임의의 적절한 수의 유저(예를 들면, 적어도 100명, 적어도 1000명, 적어도 10,000명 등등)를 예시적인 환경(100)이 포함할 수도 있기 때문에, 이것은 단지 표현의 간략화를 위한 것에 불과하다.
도 1a의 예시적인 환경(100)에서 동작할 수도 있는 것과 같은 몇몇 실시형태에서, 유저의 프로파일은 하나 이상의 네트워크 액세스가능한 서버 상에 원격으로 저장될 수도 있고 유저가 상호작용하고 있는 컴퓨팅 디바이스(예를 들면, 유저의 랩탑 컴퓨터, 유저가 사용하고 있는 인터넷 카페의 컴퓨터 등등) 상에서 실행되는 가상 어시스턴트는, 네트워크를 통해, 원격으로 저장된 유저의 프로파일에 액세스할 수도 있다. 그러나, 도 1b를 참조로 하기에서 설명되는 다른 실시형태에서, 유저의 프로파일은 유저에게 속하는 휴대형 디바이스(예를 들면, 유저의 스마트폰) 상에 저장될 수도 있고 임의의 다른 컴퓨팅 디바이스(예를 들면, 유저의 랩탑 컴퓨터, 인터넷 카페의 컴퓨터, 자동차 안의 컴퓨터 등등) 상에서 실행되는 가상 어시스턴트는 휴대형 디바이스와의 직접 연결을 확립하는 것에 의해 유저의 휴대형 디바이스 상에 저장되는 프로파일의 정보에 액세스할 수도 있다. 몇몇 실시형태에서, 유저의 프로파일은 데이터 보안을 제공하기 위해 암호화된 데이터로서 저장될 수도 있다. 유저의 프로파일은 임의의 적절한 방식으로 암호화될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
예시적인 환경(150)(도 1b)에서, 유저(152)는 유저의 프로파일이 저장된 휴대형 디바이스(154)를 휴대한다. 휴대형 디바이스(154)는 유저의 프로파일을 임의의 적절한 방식으로 그리고 임의의 적절한 포맷으로 저장할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
휴대형 디바이스(154)는 휴대형 디바이스(154)에 저장된 유저 프로파일에 대한 액세스를 하나 이상의 다른 컴퓨팅 디바이스에게 제공하도록 구성될 수도 있다. 예시된 실시형태에서, 휴대형 디바이스(154)는, 그 상에서 실행되는 가상 어시스턴트가 유저(152)와 상호작용할 때의 그들의 거동을 프로파일의 적어도 몇몇 정보에 기초하여 커스터마이징할 수도 있도록, 컴퓨팅 디바이스(156 및 158)에게 유저(152)의 프로파일에 대한 액세스를 제공하도록 구성된다.
휴대형 디바이스(154)는 유저 프로파일에 대한 액세스를 휴대형 디바이스와 다른 컴퓨팅 디바이스 사이의 직접 통신 링크를 통해 다른 컴퓨팅 디바이스에게 제공하도록 구성될 수도 있다. 직접 통신 링크는 유선 또는 무선 통신 링크 예컨대 블루투스 링크, 근접장 무선 주파수 링크, 근접장 적외선 링크, 또는 임의의 다른 적절한 타입의 무선 통신 링크일 수도 있다. 예시된 실시형태에서, 휴대형 디바이스(154)는 유저(152)의 프로파일에 대한 액세스를 직접 무선 링크(155a 및 155b) 통해 컴퓨팅 디바이스(156 및 158)에게, 각각, 제공하도록 구성된다. 그러나, 다른 실시형태에서, 휴대형 디바이스와 다른 컴퓨팅 디바이스 사이의 통신 링크는, 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 하나 이상의 중계기, 하나 이상의 라우터, 네트워크 기기의 하나 이상의 부분품(piece))를 사용하여 확립되는 유선 링크 및/또는 간접 링크일 수도 있다는 것이 인식되어야 한다.
휴대형 디바이스(154)는 유저의 스마트폰, 유저의 PDA, 유저의 태블릿 컴퓨터, 유저의 랩탑, 및/또는 하나 이상의 다른 디바이스에게 유저(152)의 프로파일에 대한 액세스를 제공할 수 있는 임의의 다른 타입의 휴대형 디바이스일 수도 있다. 예를 들면, 휴대형 디바이스(154)는 유저의 프로파일을 저장할 수 있고 하나 이상의 다른 컴퓨팅 디바이스와 통신할 수 있는 임의의 디바이스일 수도 있다.
몇몇 실시형태에서, 휴대형 디바이스(154)는 가상 어시스턴트를 구현하도록 구성될 수도 있다. 가상 어시스턴트는 유저(152)의 프로파일에 액세스하도록 구성될 수도 있고, 유저(152)와 상호작용할 때의 자신의 거동을, 프로파일의 적어도 몇몇 정보에 기초하여, 커스터마이징할 수도 있다.
컴퓨팅 디바이스(156 및 158)의 각각은 가상 어시스턴트를 구현하도록 구성되는 임의의 타입의 컴퓨팅 디바이스일 수도 있다. 비제한적인 예로서, 예시적인 환경(150)에서, 컴퓨팅 디바이스(156)는 텔레비전이고 컴퓨팅 디바이스(158)는 랩탑 컴퓨터이다. 컴퓨팅 디바이스(156)(또는 컴퓨팅 디바이스(158)) 상에서 구현되는 가상 어시스턴트는 유저(152)의 프로파일에 액세스하도록 구성될 수도 있고 프로파일의 적어도 몇몇 정보에 기초하여 자신의 거동을 커스터마이징할 수도 있다.
도 1a를 참조로 이미 설명된 바와 같이, 가상 어시스턴트는 가상 어시스턴트가 실행되고 있는 디바이스 상에서 로컬하게 및/또는 하나 이상의 다른 디바이스로부터 원격으로 유저의 프로파일에 액세스하도록 구성될 수도 있다. 예를 들면, 예시적인 환경(150)에서, 컴퓨팅 디바이스(156)(또는 158) 상에서 실행되는 가상 어시스턴트는, 컴퓨팅 디바이스(156)(또는 158) 상에서 로컬하게 및/또는 휴대형 디바이스(154)로부터 원격으로 유저(152)의 프로파일에 액세스하도록 구성될 수도 있다. 유저의 프로파일의 사본이 가상 어시스턴트를 구현하도록 구성되는 디바이스(예를 들면, 컴퓨팅 디바이스(156)) 상에서 로컬하게 그리고 하나 이상의 다른 디바이스(예를 들면, 휴대형 디바이스(154)) 상에서 원격으로 둘 다의 방식으로 저장되는 경우, 사본은 동기화될 수도 있다. 동기화는 임의의 방식으로 수행될 수도 있는데, 본원에서 제공되는 본 개시의 양태는 이 점에서는 제한되지 않기 때문이다.
자신의 거동을 커스터마이징하기 위해 가상 어시스턴트에 의해 사용될 수도 있는 임의의 적절한 정보를 유저의 프로파일이 포함할 수도 있다. 유저의 프로파일에 저장될 수도 있는 정보의 비제한적인 예는, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 예시적인 유저 프로파일(200)에 저장되는 정보의 블록도인 도 2를 참조로 하기에서 제공된다.
예시적인 유저 프로파일(200)은 식별 정보(202), 개인 정보(204), 가상 어시스턴트 페르소나 정보(206), 애플리케이션 및 서비스 정보(208), 디바이스 정보(209), 대화 이력 정보(210), 및 유저 선호도(212)를 저장한다. 상기 열거된 타입의 정보의 각각의 비제한적인 예가 하기에서 제공되지만, 유저 프로파일은, 추가적으로 또는 대안적으로, 임의의 다른 적절한 타입의 정보를 저장할 수도 있다.
유저 프로파일(200)은 특정한 유저의 프로파일이며, 몇몇 실시형태에서, 식별 정보(202)는 특정한 유저를 식별하는 임의의 적절한 정보를 포함할 수도 있다. 식별 정보의 비제한적인 예는, 유저 프로파일에 액세스하기 위한 유저의 로그인 및 패스워드, 유저명, 유저의 주소, 하나 이상의 보안 질문에 대한 대답, 유저의 사회 보장 번호, 유저의 디바이스 중 하나 이상의 각각의 식별자(예를 들면, 유저의 스마트폰, 랩탑 등등의 식별자), 유저의 지문(들), 또는 유저의 보이스에 기초하여 유저를 식별하기 위해 사용될 수도 있는 정보(예를 들면, 유저의 보이스 시그니쳐)와 같은 생체인식 정보(biometric information)의 디지털 표현, 및/또는 유저를 식별하기 위해 사용될 수도 있는 임의의 다른 적절한 정보를 포함한다.
몇몇 실시형태에서, 식별 정보(202)는 유저의 프로파일에 액세스할 수도 있는 하나 이상의 디바이스를 특정하는 정보를 포함할 수도 있다. 예를 들면, 식별 정보(202)는 유저의 프로파일에 액세스할 수도 있는 (예를 들면 디바이스 식별자에 의해 또는 임의의 다른 적절한 방식으로 각각의 디바이스를 식별하는) 디바이스의 특정 리스트를 특정할 수도 있다. 다른 예로서, 식별 정보는 유저의 프로파일에 액세스할 수도 있는 소정 타입의 디바이스(예를 들면, 모바일 디바이스, 소정의 지리적 영역 또는 영역들에 위치된 디바이스, 특정한 엔티티에 속하는 또는 특정한 엔티티에 의해 동작되는 디바이스 등등)를 특정할 수도 있다. 또 다른 예로서, 식별 정보(202)는 유저의 프로파일에 액세스하지 않을 수도 있는 하나 이상의 디바이스를 특정할 수도 있다. 몇몇 실시형태에서, 식별 정보(202)는 또한, 각각의 디바이스가 유저의 프로파일의 어떤 부분(예를 들면, 가상 어시스턴트 페르소나 정보, 개인 정보, 모든 정보 등등)을 액세스할 수도 있는지를 특정할 수도 있다.
몇몇 실시형태에서, 식별 정보(202)는, 유저의 프로파일에 액세스할 수도 있는, 유저 프로파일(200)에 자신의 정보가 포함되는 유저와는 상이한, 한 명 이상의 다른 유저를 특정하는 정보를 포함할 수도 있다. 식별 정보(202)는 또한, 다른 유저가 유저의 프로파일의 어떤 부분(예를 들면, 유저의 관심사항, 모든 정보 등등)을 액세스할 수도 있는지를 특정할 수도 있고 모든 다른 유저에 대해, 유저의 그룹에 대해 전역적으로, 또는 다른 유저마다 개별적으로 그렇게 할 수도 있다.
개인 정보(204)는 유저에 관한 임의의 적절한 개인 정보를 포함할 수도 있다. 개인 정보의 비제한적인 예는, 유저의 우편 주소(들), 유저의 전화번호(들), 유저의 이메일 주소(들), 유저의 계좌 중 하나 이상의 번호(예를 들면, 은행 계좌, 신용카드 계좌 등등), 유저에 의해 사용되는 하나 이상의 온라인 서비스에 대한 로그인 정보(예를 들면, 유저의 Twitter® 로그인 정보, 유저의 Facebook® 로그인 정보, 유저의 LinkedIn® 로그인 정보, 등등), 유저의 연락처(contact) 중 하나 이상을 식별하는 정보(예를 들면, 그들의 이름, 그들의 주소, 그들의 전화번호, 그들의 이메일 주소, 하나 이상의 소셜 네트워크에서의 그들의 온라인 식별자, 등등), 및/또는 임의의 다른 적절한 개인 정보를 포함한다.
가상 어시스턴트 페르소나 정보(206)는, 유저와 상호작용할 때 가상 어시스턴트가 채택할 수도 있는 하나의 또는 다수의 페르소나를 특정하는 정보를 포함할 수도 있다. 예를 들면, 가상 어시스턴트 페르소나 정보는, 유저가 직장에 있는 동안 가상 어시스턴트가 유저와 상호작용할 때 채택할 수도 있는 가상 어시스턴트 페르소나 및 유저가 집에 있는 동안 가상 어시스턴트가 유저와 상호작용할 때 채택할 수도 있는 다른 가상 어시스턴트 페르소나를 특정할 수도 있다. 다른 예로서, 가상 어시스턴트 페르소나 정보는, 유저가 가상 어시스턴트와 상호작용할 때 수행할 수도 있는 하나 이상의 타입의 태스크(예를 들면, 사업 관련 태스크, 레저 관련 태스크, 가족 관련 태스크 등등)의 각각에 대해 가상 어시스턴트가 채택할 수도 있는 가상 어시스턴트 페르소나를 특정할 수도 있다.
가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트 페르소나의 채택시, 가상 어시스턴트가 "말해야"하는 방법 및/또는 "거동해야"하는 방법을 특정할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는 보이스 폰트를 특정할 수도 있는데, 가상 어시스턴트는 가상 어시스턴트 페르소나의 채택시 그 보이스 폰트에 따라 스피치를 생성할 수도 있다. 보이스 폰트는, 보이스가 남성 보이스인지 또는 여성 보이스인지의 여부, 보이스의 액센트, 보이스의 속도 등등을 특정할 수도 있다. 다른 비제한적인 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는 발화 스타일(예를 들면, 스피치가 장황한지 또는 간결한지의 여부, 스피치가 일상적인지 또는 형식적인지의 여부, 스피치가 유머러스한지의 여부, 스피치가 빈정거리는지의 여부, 스피치가 간단한 단어를 사용해야 하는지 또는 복잡한 단어를 사용해야 하는지의 여부 등등)을 특정할 수도 있는데, 가상 어시스턴트는 가상 어시스턴트 페르소나의 채택시 그 발화 스타일에 따라 스피치를 생성할 수도 있다.
가상 어시스턴트 페르소나를 특정하는 정보는 텍스트 스타일을 특정할 수도 있는데, 가상 어시스턴트는 가상 어시스턴트 페르소나의 채택시 그 텍스트 스타일에 따라 텍스트를 생성할 수도 있다. 텍스트 스타일은 상기 설명된 발화 스타일 중 임의의 것에 대응할 수도 있거나(예를 들면, 가상 어시스턴트는 장황하거나 또는 간결한 텍스트, 일상적이거나 또는 형식적인 텍스트, 유머러스한 텍스트, 빈정거리는 텍스트, 간단한 단어 또는 복잡한 단어를 사용한 텍스트 등등을 생성할 수도 있다) 또는 임의의 다른 적절한 텍스트 스타일에 대응할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트 페르소나의 채택시 가상 어시스턴트가 유저에게 제시할 수도 있는 하나 이상의 그래픽 유저 인터페이스(graphical user interface; GUI) 엘리먼트를 특정할 수도 있다. 예를 들면, 가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트가 유저와 상호작용할 때 유저에게 하나 이상의 이미지(예를 들면, 가상 어시스턴트를 표현하는 특정한 픽쳐 예컨대 어시스턴트의 아바타 형태, 유저가 좋아하는 백그라운드 이미지)를 보여줘야 한다는 것을 나타낼 수도 있다. 다른 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는, 유저에게 제공된 임의의 발화된 출력(spoken output)의 텍스트 필기록(text transcription)을 가상 어시스턴트가 보여줘야 한다는(또는 대안적으로 숨길 것이다는) 것을 나타낼 수도 있다.
가상 어시스턴트 페르소나를 특정하는 정보는, 페르소나를 채택한 가상 어시스턴트가 응답할 하나 이상의 기상 어구(wake-up phrase) 및/또는 이름을 특정할 수도 있다. 예를 들면, 가상 어시스턴트 페르소나를 특정하는 정보는 가상 어시스턴트에 대한 이름(예를 들면, 앨리스, 밥(Bob), 샘(Sam), 쟈니(Johnny), 등등)을 특정할 수도 있고 가상 어시스턴트는 유저가 가상 어시스턴트의 이름을 말하는 것에 응답하여 유저와의 상호작용을 시작할 것이다. 다른 예로서, 가상 어시스턴트 페르소나를 특정하는 정보는, 가상 어시스턴트가 응답할 기상 어구(예를 들면, "기상", "도와줄 수 있어?" 등등)를 특정할 수도 있다.
애플리케이션 및 서비스 정보(208)는, 임의의 적절한 디바이스(들) 상의 하나 이상의 애플리케이션 프로그램 및/또는 임의의 적절한 디바이스(들)를 통해 액세스되는 하나 이상의 서비스와의 유저의 상호에 관한 정보를 포함할 수도 있다. 몇몇 실시형태에서, 애플리케이션 및 서비스 정보(208)는, 유저가 상호작용하고 있는 하나 이상의 디바이스에 의해 수행되고 있는 하나 이상의 태스크에 관련되는 정보를 포함할 수도 있다. 하나의 비제한적인 예로서, 애플리케이션 및 서비스 정보(208)는, 유저가 유저의 스마트폰 상의 음악을 플레이하도록 구성된 애플리케이션 프로그램을 사용하여 노래를 청취하고 있다는 것 및, 옵션적으로는, 유저가 노래를 어디까지 들었는지를(예를 들면, 그 결과 유저가 노래 청취를 중지하면, 유저는 그 노래의 청취를 재개할 수도 있다) 나타낼 수도 있다. 다른 비제한적인 예로서, 애플리케이션 및 서비스 정보(208)는, 유저의 자동차 안에서 오디오북을 청취하고 있다는 것, 및, 옵션적으로는, 오디오북의 어디까지 유저가 청취했는지(예를 들면, 그 결과 유저가 오디오북 청취를 중지하면, 유저는 그 오디오북의 청취를 재개할 수도 있다)를 나타낼 수도 있다. 또 다른 비제한적인 예로서, 애플리케이션 및 서비스 정보(208)는, 유저가 그의 집의 텔레비전에서 스포츠 게임을 시청하고 있다는 것을 나타낼 수도 있다.
애플리케이션 및 서비스 정보(208)는, 유저가 어떤 애플리케이션 프로그램 및/또는 서비스를 사용했는지, 애플리케이션 프로그램 및/또는 서비스에 유저가 어떤 입력을 제공했는지, 애플리케이션 및/또는 서비스가 유저에게 어떤 정보를 제공했는지, 유저가 특정한 애플리케이션 프로그램 및/또는 서비스를 언제 사용했는지, 유저가 특정한 애플리케이션 프로그램 및/또는 서비스를 사용했을 때 유저가 어디에 위치했었는지를 나타내는 정보, 및/또는 임의의 다른 적절한 정보를 포함할 수도 있다.
애플리케이션 및 서비스 정보(208)는, 하나 이상의 애플리케이션 및/또는 서비스의 각각과 관련되는 정보를 포함할 수도 있다. 애플리케이션 및/또는 서비스와 관련되는 정보는, 애플리케이션 및/또는 서비스에 의해 또는 애플리케이션 및/또는 서비스를 위해 유저의 프로파일에 기록될 수도 있다. 애플리케이션 및/또는 서비스와 관련되는 정보는 애플리케이션 및/또는 서비스와 관련되는(예를 들면, 애플리케이션 및/또는 서비스에 등록되는, 전용되는, 등등의) 프로파일의 부분에 저장될 수도 있다. 이 방식에서, 애플리케이션 및/또는 서비스(예를 들면, 호텔의 애플리케이션)는 유저의 프로파일에 (예를 들면, 유저가 비흡연 룸 및 비지니스 클래스의 룸을 좋아한다는 것을 나타내는) 정보를 추가할 수도 있다. 애플리케이션 및/또는 서비스는, 애플리케이션 및/또는 서비스와 관련되는 정보가 다른 애플리케이션 및/또는 서비스에 의해 액세스될 수도 있는지의 여부를 특정할 수도 있다.
디바이스 정보(209)는, 유저의 프로파일에 액세스하도록 구성될 수도 있는 하나 이상의 디바이스의 각각에 대해 저장되는 정보를 포함할 수도 있다. 디바이스에 대해 저장되는 정보는, 디바이스 상에서 실행되는 가상 어시스턴트에 의해 (예를 들면, 유저와 상호작용할 때) 사용되는 정보를 포함할 수도 있다. 하나의 비제한적인 예로서, 디바이스에 대해 저장되는 정보는 유저를 인증하기 위해 사용될 수도 있는 유저의 보이스 시그니쳐를 포함할 수도 있다. 상이한 디바이스에 대한 정보는, 디바이스가 상이한 음향 환경을 가질 수도 있기 때문에(예를 들면, 텔레비전은 가정 내에서 사용될 수도 있고, 내비게이션 유닛은 자동차 안에서 사용될 수도 있고, 이동 전화는 외부에서 사용될 수도 있고, 등등이기 때문에), 상이한 보이스 시그니쳐를 포함할 수도 있다. 다른 비제한적인 예로서, 디바이스에 대해 저장되는 정보는 하나 이상의 디바이스 설정(예를 들면, 하나 이상의 유저 인터페이스 설정, 하나 이상의 네트워킹 설정, 하나 이상의 보안 설정, 하나 이상의 전력 관리 설정 등등)을 포함할 수도 있다. 디바이스 상에서 실행되는 가상 어시스턴트는, 유저의 프로파일에 저장되는 디바이스에 대한 설정에 기초하여 디바이스의 설정을 변경할 수도 있다. 또 다른 비제한적인 예로서, 디바이스에 대해 저장되는 정보는 디바이스에 대한 식별 정보(예를 들면, 하드웨어 식별자, 가상 어시스턴트 소프트웨어에 의해 제공되는 고유의 식별자 등등)를 포함할 수도 있다. 상이한 디바이스에 대해 상이한 타입의 정보가 저장될 수도 있다.
대화 이력 정보(210)는, 하나 이상의 디바이스 상에서 실행되는 하나 이상의 가상 어시스턴트와 유저 사이의 하나 이상의 상호작용의 필기록(transcript)을 포함할 수도 있다. 예를 들면, 유저(102a)에 대한 유저 프로파일은 유저(102a)와 가상 어시스턴트(105a) 사이의 임의의 상호작용의 필기록뿐만 아니라 유저(102a)와 가상 어시스턴트(105b) 사이의 임의의 상호작용의 필기록을 포함할 수도 있다. 유저와 가상 어시스턴트 사이의 상호작용의 필기록은, 유저에 의해 가상 어시스턴트로 제공된 입력 중 적어도 몇몇에 대응하는 텍스트 및 가상 어시스턴트에 의해 유저에게 제공된 출력 중 적어도 몇몇에 대응하는 텍스트를 포함할 수도 있다.
관심 정보(212)는 유저의 관심이 무엇인지를 나타내는 임의의 적절한 정보를 포함할 수도 있다. 하나의 비제한적인 예로서, 관심 정보는 유저가 관심을 갖는 하나 이상의 웹사이트를 나타낼 수도 있다. 다른 비제한적인 예로서, 관심 정보(212)는 유저가 관심을 갖는 하나 이상의 토픽(예를 들면, 러시아 정치, 뉴 잉글랜드 패트리엇츠 풋볼 팀, 자동차 등등)을 나타낼 수도 있다. 또 다른 비제한적인 예로서, 관심 정보(212)는 유저가 관심이 있을 수도 있는 하나 이상의 제품을 나타낼 수도 있다. 또 다른 비제한적인 예로서, 관심 정보(212)는 유저가 특정 타입(예를 들면, 영화 장르, 음악 장르, 음악 아티스트, 특정 배우의 영화 등등)의 미디어 컨텐츠를 즐긴다는 것을 나타낼 수도 있다.
본원에서 설명되는 바와 같은 가상 어시스턴트의 실시형태는, 하드웨어로, 소프트웨어로, 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수도 있다(예를 들면, 적어도 하나의 비일시적 컴퓨터 판독 가능한 매체 상에 저장되는 프로세서 실행가능한 명령어는, 하나 이상의 프로세서에 의한 실행시, 가상 어시스턴트의 기능성(functionality)을 수행하기 때문임). 소프트웨어를 사용하는 것에 의해 적어도 부분적으로 구현되는 가상 어시스턴트의 하나의 실시형태가 도 3a에서 예시되는데, 도 3a는 예시적인 가상 어시스턴트(300)의 소프트웨어 컴포넌트의 블록도를 도시한다. 도 3a에서 도시되는 소프트웨어 컴포넌트는 예시에 불과하다는 것 및 가상 어시스턴트는, 도 3a에서 도시되는 소프트웨어 컴포넌트 외에 또는 그 소프트웨어 컴포넌트 대신, 다른 소프트웨어 컴포넌트를 사용하는 것에 의해 구현될 수도 있다는 것이 인식되어야 한다.
임의의 적절한 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a, 104b, 104c, 154, 156, 및 158)), 또는 둘 이상의 컴퓨팅 디바이스의 집합체가 가상 어시스턴트(300)를 구현하도록 프로그래밍될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 예를 들면, 몇몇 실시형태에서, 가상 어시스턴트(300)는, 유저가 상호작용하고 있는 컴퓨팅 디바이스(예를 들면, 모바일 컴퓨팅 디바이스)를 사용하여 구현될 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트(300)는 하나 이상의 서버(예를 들면, 서버(110))를 사용하여 구현될 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트(300), 적어도 부분적으로는 유저가 상호작용하는 디바이스를 사용하는 것에 의해 그리고 적어도 부분적으로는 하나 이상의 서버를 사용하는 것에 의해 구현될 수도 있다.
예시적인 가상 어시스턴트(300)는, 둘 이상의 모드에서 유저와 가상 어시스턴트 사이의 상호작용을 지원하기 위한 멀티 모달 유저 인터페이스(user interface; UI) 컴포넌트(302)를 포함한다. 도 3a에서 도시되는 예시적인 실시형태에서, 멀티 모달 UI 컴포넌트(302)는 음향 UI 컴포넌트(304) 및 그래픽 UI 컴포넌트(306)를 포함한다.
앞서 언급된 바와 같이, 가상 어시스턴트는 유저로부터 보이스 입력을 수신하도록 그리고 유저에게 음향 출력을 제시하도록 구성될 수도 있다. 이러한 기능성은 적어도 부분적으로 음향 UI 컴포넌트(304)에 의해 수행될 수도 있다. 스피치를 사용하는 것에 의해 유저와 상호작용하기 위해, 음향 UI 컴포넌트(304)는 자동 음성 인식(ASR) 및/또는 텍스트 음성 합성(text-to-speech synthesis; TTS) 기술과 같은 임의의 적절한 기술을 사용할 수도 있다. 예시된 실시형태에서, 이러한 기능성은, 각각, ASR 엔진(310) 및 TTS 엔진(314)에 의해 제공될 수도 있다. 또한, 상기에서 논의된 바와 같이, 몇몇 실시형태에서, 유저의 스피치는 속박되지 않으며 유저는 자연스럽게 발화할 수도 있다. 이러한 실시형태에서, 가상 어시스턴트는 자연 언어 이해(natural language understanding; NLU) 컴포넌트(312)를 더 포함할 수도 있다(또는 NLU에 액세스할 수도 있다).
ASR 엔진(310)은 유저에 의해 가상 어시스턴트(300)에 제공되는 임의의 보이스 입력을 프로세싱하도록 그리고 보이스 입력의 텍스트 표현을 생성하도록 구성될 수도 있고, 적어도 하나의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a) 또는 임의의 다른 적절한 컴퓨팅 디바이스(들) 또는 프로세서(들))에 의한 실행시, 그렇게 하도록 구성되는 하나 이상의 컴퓨터 프로그램을 포함한다. 예를 들면, ASR 엔진(310)은, 본원에서 제공되는 본 개시의 양태가 ASR 엔진의 특정 구현예에 의해 제한되지 않기 때문에, 하나 이상의 음향 모델, 언어 모델, 사전, 단어, 문법 및/또는 이들 또는 다른 적절한 ASR 기술의 임의의 조합을 사용하여, 가상 어시스턴트(300)로 제공되는 입력 음향 파형에 대한 음성 인식을 수행하도록 구성될 수도 있다.
NLU 컴포넌트(312)는 유저에 의해 가상 어시스턴트(300)로 제공되는 임의의 보이스 입력을 해석하도록 구성될 수도 있고, 적어도 하나의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(304) 또는 임의의 다른 적절한 컴퓨팅 디바이스(들) 또는 프로세서(들))에 의한 실행시, 그렇게 하도록 구성되는 하나 이상의 컴퓨터 프로그램을 포함한다. 이와 같이, NLU 컴포넌트(312)는 가상 어시스턴트로 제공되는 보이스 입력의 의미를 이해하기 위해 사용될 수도 있다. NLU 컴포넌트(312)는, 본원에서 제공되는 본 개시의 양태가 NLU 컴포넌트의 특정 구현예에 의한 어떠한 방식에도 제한되지 않기 때문에, 임의의 적절한 방식으로 그리고 임의의 적절한 자연 언어 이해 기술 또는 기술들을 사용하여 보이스 입력을 해석하도록 구성될 수도 있다.
몇몇 실시형태에서, NLU 컴포넌트(312)는 보이스 입력을, 적어도 부분적으로는, ASR 엔진(310)에 의해 생성될 수도 있는 그것의 대응하는 텍스트 표현을 분석하는 것에 의해 해석하도록 구성될 수도 있다. 이와 같이, 예시된 실시형태에서 NLU 컴포넌트(312)가 ASR 엔진(310)과는 별개이지만, 다른 실시형태에서, ASR 엔진(310) 및 NLU 컴포넌트(312)는 동일한 컴포넌트의 일부일 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
NLU 컴포넌트(312)는 보이스 입력을 해석하는 것으로 제한되지 않으며 가상 어시스턴트(300)로 제공될 수도 있는 임의의 다양한 다른 타입의 입력을 해석하기 위해 사용될 수도 있다는 것이 인식되어야 한다. 예를 들면, NLU 컴포넌트는, 타이핑, 쓰기(writing), 및/또는 임의의 다른 적절한 방식에 의해 가상 어시스턴트로 제공되는 텍스트 입력을 해석하기 위해 사용될 수도 있다.
TTS 엔진(314)은 컨텐츠의 텍스트 표현을 합성된 스피치로 변환하도록 구성될 수도 있고, 적어도 하나의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a) 또는 임의의 다른 적절한 컴퓨팅 디바이스(들) 또는 프로세서(들))에 의한 실행시, 그렇게 하도록 구성되는 하나 이상의 컴퓨터 프로그램을 포함한다. TTS 엔진(314)은, 본원에서 제공되는 본 개시의 양태가 TTS 엔진의 특정 구현예에 의해 제한되지 않기 때문에, 연결 합성(concatenative synthesis), 포만트 합성(formant synthesis), 모델 기반 합성(model-based synthesis), 조음 합성(articulatory synthesis), HMM 기반 합성, 사인파 합성, 또는 스피치 합성에 대한 임의의 다른 방식을 사용할 수도 있다. 예를 들면, 몇몇 실시형태에서, TTS 엔진(314)은 기록된 음향 파형을 유저에게 제시하도록 구성될 수도 있다.
몇몇 실시형태에서, TTS 엔진(314)은 가상 어시스턴트(300)에 의해 채택되는 가상 어시스턴트 페르소나에 따라 스피치를 생성하도록 구성될 수도 있다. 예를 들면, 가상 어시스턴트(300)가 특정한 보이스 폰트 및/또는 발화 스타일을 갖는 가상 어시스턴트 페르소나를 채택하면, TTS 엔진(314)은 그 특정한 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성할 수도 있다.
도 3a에서 가상 어시스턴트(300)의 일부로서 도시되지만, ASR 엔진(310), NLU 컴포넌트(312), 및 TTS 엔진(314)의 각각은 가상 어시스턴트(300)와는 별개로 구현될 수도 있고 가상 어시스턴트(300)와 통신할 수도 있다는 것이 인식되어야 한다. 따라서, ASR 엔진(310), NLU 컴포넌트(312), 및 TTS 엔진(314)에 의해 수행되는 기능성은, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(104a))에 의해 로컬하게 전적으로 수행될 수도 있거나, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 컴퓨팅 디바이스가 액세스할 수 있는 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 인트라넷 또는 인터넷과 같은 네트워크를 통해 액세스가능한 하나 이상의 웹 서버 예컨대 서버(110))에 의해 원격에서 전적으로 수행될 수도 있거나, 또는 적어도 부분적으로는 로컬하게 그리고 적어도 부분적으로는 원격에서 수행될 수도 있다. 몇몇 실시형태에서, ASR 엔진(310), NLU 컴포넌트(312), 및 TTS 엔진(314)에 의해 수행되는 기능성은, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 컴퓨팅 디바이스(예를 들면, 모바일 디바이스)가 제한된 리소스(예를 들면, 프로세싱 파워, 메모리 등등)를 갖는 경우, 적어도 부분적으로는 원격에서 수행될 수도 있다. ASR 엔진(310), NLU 컴포넌트(312), 및 TTS 엔진(314)에 의해 수행되는 기능성의 적어도 일부가 하나 이상의 원격 컴퓨팅 디바이스에 의해 수행되는 경우, 원격 컴퓨팅 디바이스(들)는, 이러한 기능성을 수행하기 위한, 가상 어시스턴트(300)가 액세스할 수 있는 임의의 적절한 정보(예를 들면, 가상 어시스턴트(300)로 제공되는 보이스 입력)를 제공받을 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트(300)는 하나 이상의 그래픽 유저 인터페이스를 통해 유저와 상호작용하도록 구성될 수도 있다. 가상 어시스턴트는, 유저로부터 입력을 획득하기 위해 및/또는 유저에게 시각적 출력(텍스트 및/또는 그래픽)을 제시하기 위해, 그래픽 유저 인터페이스(GUI)를 사용할 수도 있다. 이러한 기능성은, 적어도 부분적으로는, 가상 어시스턴트(300)의 그래픽 유저 인터페이스(GUI) 컴포넌트(306)에 의해 수행될 수도 있다. GUI 컴포넌트(306)는, 임의의 적절한 타입(들)의 그래픽 유저 인터페이스를 사용하여, 유저로부터 입력을 획득하도록 및/또는 정보를 유저에게 제시하도록 구성될 수도 있다.
가상 어시스턴트(300)는, 가상 어시스턴트가 상호작용하고 있는 유저로부터, 유저를 식별하는 정보를 획득하도록 구성되는 유저 식별 모듈(313)을 포함한다. 유저 식별 모듈(313)은, 가상 어시스턴트(300)로 하여금, 가상 어시스턴트가 상호작용하고 있는 유저에게 다양한 타입의 식별 정보 중 임의의 것을 제공하도록 프롬프트를 나타낼 수도 있는데, 그 예는 본원에서 제공된다.
가상 어시스턴트(300)는, 하나 이상의 유저 프로파일의 정보에 대한 액세스를 가상 어시스턴트(300)에게 제공하도록 구성되는 유저 프로파일 모듈(316)을 포함한다. 유저 프로파일 모듈(316)은 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스 상에 로컬하게 및/또는 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스가 액세스할 수 있는 하나 이상의 다른 디바이스 상에 원격으로 저장되는 유저 프로파일에 액세스하도록 구성될 수도 있다.
유저 프로파일 모듈(316)은, 적어도 부분적으로, 원격으로 저장된 유저 프로파일의 적어도 몇몇 정보에 액세스하기 위한 요청을 (예를 들면, 서버(110)로 또는 휴대형 디바이스(152)로) 전송하는 것에 의해 원격으로 저장된 유저 프로파일에 액세스하도록 구성될 수도 있다. 요청은, 가상 어시스턴트가 액세스하기를 소망하는 유저의 프로파일의 정보를 특정할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트가 유저와 상호작용할 때 개인 맞춤된 가상 어시스턴트 페르소나를 채택할 수도 있도록, 요청은, 가상 어시스턴트가 유저 프로파일에 저장된 가상 어시스턴트 페르소나 정보에 액세스하기를 소망한다는 것을 특정할 수도 있다. 다른 비제한적인 예로서, 요청은, 가상 어시스턴트가 유저의 프로파일의 모든 정보에 액세스하기를 소망한다는 것을 특정할 수도 있다. 추가적으로 또는 대안적으로, 요청은 유저 프로파일 모듈(316)이 액세스할 것을 요청하고 있는 프로파일의 유저를 식별하는 정보 및/또는 가상 어시스턴트가 실행되고 있는 디바이스를 식별하는 정보를 포함할 수도 있다.
유저 프로파일 모듈(316)은, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스 상에 로컬하게 저장된 임의의 유저 프로파일의 정보에 액세스할 수도 있다. 가상 어시스턴트(300)는 하나 이상의 유저 프로파일을 프로파일 스토리지(318)에 로컬하게 저장할 수도 있고 유저 프로파일 모듈(316)은 내부에 로컬하게 저장된 프로파일 중 임의의 것의 정보에 액세스할 수도 있다. 몇몇 실시형태에서, 유저 프로파일 모듈(316)은 특정 시간에, 예를 들면, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스에 유저가 로그인될 때, 유저의 프로파일에 액세스할 수도 있다. 이 방식에서, 몇몇 실시형태에서는, 유저 프로파일 모듈(316)은, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스에 다른 유저가 로그인될 때, 유저의 프로파일의 정보에 액세스하지 않을 수도 있다.
예시된 실시형태에서, 프로파일 스토리지(318)가 세 개의 유저 프로파일(즉, 유저 프로파일(318a, 318b, 및 318c)을 저장하는 것으로 도시되지만, 프로파일 스토리지(318)는 임의의 적절한 수(예를 들면, 제로, 하나, 둘, 네 개, 적어도 다섯 개, 적어도 열 개, 적어도 25개, 등등)의 유저 프로파일을 저장할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
유저 프로파일이 로컬하게 또는 원격으로 액세스될 수도 있는 경우, 유저 프로파일 모듈(316)은 (예를 들면, 어떤 사본이 보다 최근에 업데이트되었는지, 원격에서 유저의 프로파일에 액세스하는 데 걸리는 시간, 및/또는 임의의 다른 적절한 인자(들)에 기초하여) 유저 프로파일 중 어떤 사본에 액세스할지를 결정할 수도 있다. 유저 프로파일 모듈(316)은 (예를 들면, 유저의 프로파일의 로컬 및/또는 원격 사본에 대해 변경의 임계 횟수가 이루어졌다는 것을 유저 프로파일 모듈이 결정하는 경우 또는 몇몇 다른 기준에 기초하여) 유저의 프로파일의 로컬 및 원격 사본을 동기화할 수도 있다.
예시적인 가상 어시스턴트(300)는, 가상 어시스턴트(300)를 구현하도록 프로그래밍된 디바이스를 사용하는 호출자와 IVR 시스템 사이에서 호를 행하기 위해 가상 어시스턴트에 사용되는 IVR 상호작용 모듈(320)을 포함한다. IVR 상호작용 모듈(320)은, IVR 시스템으로부터 정보를 수신할 수도 있고, 호출자에 의해 입력되는 정보를 IVR 시스템에게 제공할 수도 있고, 및/또는 IVR 시스템에 의해 소망되는, 호출자의 프로파일로부터의 적어도 몇몇 정보를 IVR 시스템에게 제공할 수도 있다. 이것은 하기에서 도 10 내지 도 12를 참조로 더 상세히 논의된다.
앞서 설명된 바와 같이, 몇몇 실시형태는, 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 상이한 디바이스 상에서 실행되는 가상 어시스턴트에게 제공하도록 구성되는 시스템을 대상으로 한다. 이러한 시스템의 실시형태는, 하드웨어로, 소프트웨어로, 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수도 있다(예를 들면, 적어도 하나의 비일시적 컴퓨터 판독 가능한 매체 상에 저장되는 프로세서 실행가능한 명령어는, 하나 이상의 프로세서에 의한 실행시, 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 상이한 디바이스 상에서 실행되는 가상 어시스턴트에게 제공하도록 구성되는 시스템의 기능성을 수행하기 때문임). 소프트웨어를 사용하는 것에 의해 적어도 부분적으로 구현되는 이러한 시스템의 하나의 실시형태는, 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 상이한 가상 어시스턴트에게 제공하도록 구성되는 시스템(350)의 소프트웨어 컴포넌트의 블록도를 도시하는 도 3b에서 예시된다. 도 3b에서 도시되는 소프트웨어 컴포넌트는 예시에 불과하다는 것 및 시스템(350)은, 도 3b에서 도시되는 소프트웨어 컴포넌트 외에 또는 그 소프트웨어 컴포넌트 대신, 다른 소프트웨어 컴포넌트를 사용하는 것에 의해 구현될 수도 있다는 것이 인식되어야 한다. 임의의 적절한 컴퓨팅 디바이스(예를 들면, 서버(110)), 또는 둘 이상의 컴퓨팅 디바이스의 집합체가 시스템(350)을 구현하도록 프로그래밍될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
시스템(350)은, 하나 이상의 유저 프로파일의 정보(예를 들면, 유저(102a 및 102b)의 프로파일의 정보)에 대한 액세스를 하나 이상의 다른 디바이스(예를 들면, 컴퓨팅 디바이스(104a, 104b, 및 104c)) 상에서 실행되는 가상 어시스턴트에게 제공하도록 구성되는 유저 프로파일 모듈(352)을 포함한다. 유저 프로파일 모듈(352)은, 도 3b에서 세 개의 유저 프로파일(356a, 356b, 및 356c)을 저장하는 것으로 도시되는 프로파일 스토리지(354)의 유저 프로파일에 액세스하도록 구성될 수도 있다. 프로파일 스토리지(354)는 임의의 적절한 수(예를 들면, 적어도 열 개, 적어도 100개, 적어도 1000개, 적어도 10,000개, 적어도 50,000개 등등)의 유저 프로파일을 저장할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
시스템(350)은 유저 프로파일을 임의의 적절한 방식으로 그리고 임의의 적절한 포맷으로 저장할 수도 있다. 몇몇 실시형태에서, 시스템(350)은 하나의 컴퓨팅 디바이스(예를 들면, 서버) 또는 다수의 컴퓨팅 디바이스(다수의 서버)를 사용하여 유저 프로파일을 저장할 수도 있다. 몇몇 실시형태에서, 시스템(350)은 클라우드 컴퓨팅 환경의 일부일 수도 있거나, 또는 그 클라우드 컴퓨팅 환경과 인터페이싱하도록 구성될 수도 있으며 유저 프로파일 중 적어도 일부를 클라우드 컴퓨팅 환경에 저장할 수도 있다.
유저 프로파일 모듈(354)은, 한 명 이상의 유저의 프로파일에 저장된 적어도 몇몇 정보에 대한 액세스를 요청하는 요청을 가상 어시스턴트로부터 수신하도록 구성될 수도 있다. 상기에서 설명된 바와 같이, 유저의 프로파일의 정보에 대한 액세스에 대한 요구는 프로파일 액세스가 요청되고 있는 유저를 (예를 들면, 유저를 식별하는 정보를 제공하는 것에 의해) 식별할 수도 있고 가상 어시스턴트가 액세스하려고 소망하는 유저의 프로파일의 정보를 특정할 수도 있다. 유저의 프로파일의 정보에 액세스하기 위한 요청을 수신하는 것에 응답하여, 유저 프로파일 모듈(354)은, 유저의 프로파일의 정보에 액세스할 퍼미션이 허여되어야 하는지의 여부를 결정하고, 그 다음, 결정에 기초하여 요청을 허여하거나 또는 거절하기 위한 프로세싱을 (그 자체로 또는 하나 이상의 인증 서버와 같은 하나 이상의 다른 디바이스와 함께) 수행할 수도 있다.
앞서 설명된 바와 같이, 몇몇 실시형태에서, 가상 어시스턴트는, 유저의 프로파일의 적어도 몇몇 정보에 기초하여, 유저와 상호작용할 때의 자신의 거동을 커스터마이징할 수도 있다. 하나의 이러한 실시형태는, 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍된 임의의 컴퓨팅 디바이스 상에서 수행될 수 있으며, 예를 들면, 도 1a 및 도 1b를 참조로 설명된 컴퓨팅 디바이스(104a, 104b, 104c, 156, 및 158) 중 임의의 것 상에서 구현되는 가상 어시스턴트에 의해 수행될 수도 있는 예시적인 프로세스(400)의 플로우차트를 도시하는 도 4에서 예시된다.
프로세스(400)는 결정 블록(402)에서 시작하는데, 여기서는 가상 어시스턴트가 유저의 프로파일에 액세스하는지의 여부를 결정한다. 몇몇 실시형태에서, 가상 어시스턴트는, 유저가 가상 어시스턴트를 호출할 때 유저의 프로파일에 액세스할 것을 결정할 수도 있다. 유저는, 프로세스(400)를 실행하는 컴퓨팅 디바이스에 의한 수신시 가상 어시스턴트로 하여금 호출되게 하는 특정한 발언(예를 들면, "기상" 키워드 또는 어구)을 포함하는 보이스 입력을 제공하는 것에 의해 또는 가상 어시스턴트로 하여금 호출되게 하는 임의의 다른 적절한 타입의 입력(예를 들면, 버튼 누름, 스크린 탭핑(tapping), 디바이스 흔듦(shaking) 등등)을 제공하는 것에 의해 가상 어시스턴트를 호출할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는, 유저에 의한 호출시 유저의 프로파일에 액세스할지의 여부를 결정하는 것으로 제한되지 않으며 유저와 상호작용하는 동안 및/또는 임의의 다른 적절한 시간에 유저의 프로파일에 액세스할 것을 결정할 수도 있다.
가상 어시스턴트가 유저의 프로파일에 액세스하지 않을 것이다는 것이 결정 블록(402)에서 결정되면, 프로세스(400)는 액트(418)로 진행하는데, 여기서는 가상 어시스턴트가 유저의 프로파일의 어떠한 정보도 사용하지 않고 유저와 상호작용한다.
한편, 가상 어시스턴트가 유저의 프로파일에 액세스해야 한다는 것이 결정되면, 프로세스(400)는 블록(404)으로 진행하는데, 여기서는, 가상 어시스턴트가 가상 어시스턴트를 실행하는 디바이스 상에 저장된 유저 프로파일의 로컬 사본에 액세스해야 하는지 또는 다른 디바이스 또는 디바이스들 상에 저장된 유저 프로파일의 원격 사본에 액세스해야 하는지의 여부가 결정된다. 이 결정은 임의의 적절한 방식으로 이루어질 수도 있다. 예를 들면, 가상 어시스턴트를 실행하는 디바이스가 유저의 프로파일의 로컬 사본을 가지고 있지 않으면, 유저의 프로파일의 로컬 사본이 시간의 임계 기간 동안 업데이트되지 않았다면, 또는 유저의 프로파일의 원격 사본이 유저의 프로파일의 로컬 사본보다 더 최근에 업데이트되었다는 것을 가상 어시스턴트가 결정하면, 가상 어시스턴트는 유저의 프로파일의 원격 사본에 액세스할 것을 결정할 수도 있다.
결정 블록(404)에서, 가상 어시스턴트가 유저의 프로파일의 로컬 사본에 액세스해야 한다는 것이 결정되는 경우, 프로세스(400)는, 가상 어시스턴트가 유저의 프로파일의 정보에 액세스하고, 액세스된 정보에 기초하여, 유저와 상호작용할 때의 자신의 거동을 커스터마이징하는 액트(412 및 414)로 진행하고, 후속하여, 가상 어시스턴트가 커스터마이징된 거동에 따라 유저와 상호작용하는 액트(416)로 진행한다. 한편, 가상 어시스턴트가 유저의 프로파일의 원격 사본에 액세스해야 한다는 것이 결정되면, 프로세스(400)는 액트(406)으로 진행하는데, 여기서는 가상 어시스턴트를 실행하는 디바이스가 유저의 프로파일의 원격 사본에 액세스할 수 있는 다른 컴퓨팅 디바이스와의 통신 링크를 확립한다.
몇몇 실시형태에서, 가상 어시스턴트를 실행하는 디바이스는, 유저의 프로파일의원격 사본에 액세스할 수 있는 컴퓨팅 디바이스(예를 들면, 도 1a를 참조로 설명된 서버(110))와의 (예를 들면, 인터넷과 같은 네트워크를 통한) 통신 링크를 확립할 수도 있다. 다른 실시형태에서, 가상 어시스턴트를 실행하는 디바이스는, 유저의 프로파일의 사본을 저장하고 있는 휴대형 디바이스(예를 들면, 도 1b를 참조로 설명된 휴대형 디바이스(154))와의 직접 통신 링크(이 예는 상기에서 제공되었음)를 확립할 수도 있다. 가상 어시스턴트를 실행하는 디바이스는, 가상 어시스턴트를 실행하는 디바이스가 휴대형 디바이스의 존재를 검출하고/하거나 휴대형 디바이스의 존재에 대한 경보를 받는 경우, 유저의 프로파일의 사본을 저장하고 있는 휴대형 디바이스와의 통신 링크를 확립하려고 시도할 수도 있다.
다음에, 프로세스(400)는 액트(408)로 진행하는데, 여기서는 가상 어시스턴트는 유저의 프로파일에 저장된 정보 중 적어도 몇몇에 액세스하기 위한 퍼미션을 유저의 프로파일의 사본을 저장하고 있는 디바이스에게 요청한다. 앞서 설명된 바와 같이, 요청은 가상 어시스턴트가 액세스할 것을 요청하고 있는 프로파일의 유저를 식별하는 정보, 및/또는 가상 어시스턴트가 실행되고 있는 디바이스를 식별하는 정보를 포함할 수도 있다. 추가적으로, 몇몇 실시형태에서, 요청은, 가상 어시스턴트가 액세스하기를 소망하는 유저의 프로파일의 특정한 정보(예를 들면, 가상 어시스턴트 페르소나 정보, 유저의 관심에 관한 정보, 등등)를 특정할 수도 있다. 그러나, 유저의 프로파일의 적어도 몇몇 정보에 액세스하기 위한 요청은 임의의 다른 적절한 정보를 포함할 수도 있다는 것이 인식되어야 하는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 또한, 몇몇 실시형태에서, 요청은 가상 어시스턴트가 액세스하기를 소망하는 프로파일의 특정한 정보를 특정하지 않을 수도 있고 프로파일의 임의의 정보에 액세스하기 위한 요청일 수도 있다.
다음으로, 프로세스(400)는 결정 블록(410)으로 진행하는데, 여기서는, 유저의 프로파일에 액세스할 퍼미션이 허여되었는지가 결정된다. 가상 어시스턴트가 유저의 프로파일에 액세스할 퍼미션을 획득하지 않았다면, 프로세스(400)는 액트(418)로 진행하는데, 여기서는 가상 어시스턴트가 유저의 프로파일의 어떠한 정보도 사용하지 않고 유저와 상호작용한다.
한편, 유저의 프로파일에 액세스할 퍼미션이 허여되었다면, 프로세스(400)는, 가상 어시스턴트가 유저의 프로파일의 정보에 액세스하고, 액세스된 정보에 기초하여, 자신의 거동을 커스터마이징하는 액트(412 및 414)로 진행하고, 후속하여, 가상 어시스턴트가 커스터마이징된 거동에 따라 유저와 상호작용하는 액트(416)로 진행한다.
가상 어시스턴트는 액세스된 정보에 기초하여 자신의 거동을 임의의 적절한 방식으로 커스터마이징할 수도 있는데, 그 예는 상기에서 논의되었다. 예를 들면, 앞서 설명된 바와 같이, 가상 어시스턴트는 유저의 프로파일에서 가상 어시스턴트 페르소나를 특정하는 정보에 액세스할 수도 있고 유저와 상호작용할 때 가상 어시스턴트 페르소나를 채택할 수도 있다. 가상 어시스턴트 페르소나는 보이스 폰트, 발화 스타일, 및/또는 텍스트 스타일을 특정할 수도 있고, 가상 어시스턴트는 특정된 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성할 수도 있고 특정된 텍스트 스타일에 따라 텍스트를 생성할 수도 있다. 추가적으로 또는 대안적으로, 가상 어시스턴트는, 유저의 프로파일에서의 가상 어시스턴트 페르소나에 대해 특정된 GUI 관련 정보에 따라 개인 맞춤된 GUI를 유저에게 제시할 수도 있다.
상기에서 논의된 바와 같이, 몇몇 실시형태에서, 가상 어시스턴트는, 유저와 상호작용할 때, 가상 어시스턴트가 유저에게 제시하는 정보의 컨텐츠를 커스터마이징하는 것에 의해, 자신의 거동을 커스터마이징할 수도 있다. 예를 들면, 앞서 설명된 바와 같이, 가상 어시스턴트는 유저의 프로파일에서 유저의 관심사항을 나타내는 정보에 액세스할 수도 있고 자신이 유저에게 제시하는 정보를 그 관심사항에 맞춤하는 것에 의해 자신의 거동을 커스터마이징할 수도 있다. 예를 들면, 가상 어시스턴트는, 유저의 프로파일에 따른, 유저가 관심을 갖는 하나 이상의 토픽에 관련되는 정보를 유저에게 제공할 수도 있거나 또는 유저가 관심이 없는 토픽에 대한 정보를 생략할 수도 있다. 다른 예에서, 가상 어시스턴트는, 유저의 프로파일에 따른, 유저가 즐기는 타입의 미디어 컨텐츠를 유저에게 추천할 수도 있다. 가상 어시스턴트는, 유저 입력 없이, 또는 유저 입력에 응답하여, 하나 이상의 토픽, 추천에 관련되는 정보, 및/또는 다른 적절한 정보를 유저에게 주도적으로 제공할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
몇몇 실시형태에서, 가상 어시스턴트는 유저에게 공감의 느낌을 전달할 수도 있는 방식으로 통신하기 위해 유저의 프로파일의 정보를 사용할 수도 있다. 가상 어시스턴트는, 가상 어시스턴트가 유저에게 제시하는 정보의 컨텐츠 및/또는 가상 어시스턴트가 유저에게 정보를 전달하는 스타일을 커스터마이징하는 것에 의해 공감의 느낌을 전달할 수도 있다. 예를 들면, 몇몇 실시형태에서, 가상 어시스턴트는 유저에게 무엇이 중요한지의 가상 어시스턴트의 이해를 나타내는 단어 또는 어구를 사용할 수도 있다. 비제한적인 예로서, 가상 어시스턴트는, 유저가 보스톤 셀틱스(Boston Celtics) 농구 팀의 팬이다는 것을 나타내는 유저의 프로파일의 정보에 액세스할 수도 있고, 유저가 셀틱스 게임의 스코어에 관한 묻는 것에 응답하여, 가상 어시스턴트는 "멋지군요! 셀틱스가 레이커스(Lakers)를 46 대 33으로 크게 이기고 있어요"를 생성할 수도 있다. 한편, 셀틱스가 지고 있으면, 가상 어시스턴트는 "오 세상에. 4쿼터가 2분 남았는데 셀틱스가 88 대 80으로 끌려가고 있어요. 더 이상 희망이 없어요"를 생성할 수도 있다. 이 방식에서, 가상 어시스턴트는 유저가 셀틱스의 팬이다는 것을 가상 어시스턴트가 이해하고 있다는 것을 유저에게 전달하는 것에 의해 유저와 공감한다.
다른 예로서, 몇몇 실시형태에서, 가상 어시스턴트는, 유저의 프로파일에서, 어떤 타입의 정보 컨텐츠가 유저에게 중요한지를 나타내는 정보에 액세스할 수도 있고 중요도의 그 레벨을 반영하기 위해 자신의 발화 스타일을 변경할 수도 있다. 예를 들면, 가상 어시스턴트는, 제공되고 있는 정보가 긴급하고/하거나 중요하면 보다 심각한 톤을 그리고 그렇지 않으면 덜 심각한 톤을 갖는 스피치를 생성할 수도 있다. 특정한 비제한적인 예로서, 유저의 자동차의 가상 어시스턴트는, 유저의 프로파일에서, 유저가 교통 혼잡을 회피하기를 소망한다는 것을 나타내는 정보에 액세스할 수도 있고 "전방에 교통 혼잡이 있습니다, 경로를 다시 검색할까요?"라는 메시지를 심각한 톤으로(예를 들면, 날씨에 대한 메시지보다 더 심각한 톤으로) 생성할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는, 유저와 상호작용하는 동안 가상 어시스턴트에 의해 획득되는 정보에 기초하여 유저의 프로파일을 업데이트할 수도 있다. 가상 어시스턴트는, 유저의 프로파일로부터 정보를 제거하는 것에 의해, 유저의 프로파일에 정보를 추가하는 것에 의해, 및/또는 유저의 프로파일의 정보를 편집하는 것에 의해 유저의 프로파일을 업데이트할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트는, 유저에 의해 가상 어시스턴트로 제공되는 입력을 유저의 프로파일의 대화 이력 정보에 추가하는 것에 의해 유저의 프로파일을 업데이트할 수도 있다. 다른 비제한적인 예로서, 유저는, 적어도 부분적으로, 디바이스 상에서 실행되는 다른 애플리케이션 프로그램(예를 들면, 음악 플레이어 애플리케이션, 영화 플레이어 애플리케이션, 사진 애플리케이션, 웹 브라우저 애플리케이션, 캘린더 애플리케이션 등등)을 사용하는 것에 의해 수행되는 태스크(예를 들면, 음악 또는 오디오북을 청취하는 것, 영화를 보는 것, 사진을 보는 것, 웹사이트에 액세스하는 것, 약속을 스케줄링하는 것, 등등)에 관련되는 정보를 가상 어시스턴트로 제공할 수도 있고, 가상 어시스턴트는 태스크에 관련되는 정보를 유저 프로파일에 추가할 수도 있다. 태스크에 관련되는 정보는, 태스크(예를 들면, 오디오북, 음악, 영화 등등을 플레이하는 것)를 식별하는 정보, 태스크의 수행을 위해 유저에 의해 제공되는 하나 이상의 입력(예를 들면, 오디오북, 음악, 영화, 등등의 이름)을 특정하는 정보, 태스크의 어떤 부분이 수행되었는지 또는 어떤 부분이 수행되지 않았는지(오디오북, 음악, 영화 등등의 어디까지 플레이되었는지)를 특정하는 정보를 포함할 수도 있다. 하기에서 더 상세히 설명되는 바와 같이, 유저의 프로파일에 이러한 정보를 저장하는 것은, 다른 컴퓨팅 디바이스가 이 정보에 액세스하여 태스크의 수행을 계속하는 것을 허용할 수도 있다.
앞서 설명된 바와 같이, 몇몇 실시형태에서, 시스템은 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 상이한 디바이스 상에서 실행되는 가상 어시스턴트에게 제공할 수도 있다. 하나의 이러한 실시형태는, 하나 이상의 다른 컴퓨팅 디바이스에게 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 제공하도록 프로그래밍된 임의의 컴퓨팅 디바이스 상에서 수행될 수 있으며, 예를 들면, 도 1a 및 도 1b를 참조로 각각 설명된 서버(110) 및 휴대형 디바이스(154)에 의해 수행될 수도 있는 예시적인 프로세스(500)의 플로우차트를 도시하는 도 5에서 예시된다.
프로세스(500)는 액트(502)에서 시작하는데, 여기서는 프로세스(500)를 실행하는 컴퓨팅 디바이스가 특정한 유저의 프로파일에 액세스할 퍼미션에 대한 요청을, 다른 컴퓨팅 디바이스 상에서 실행되는 가상 어시스턴트로부터 수신한다. 요청은 유저의 프로파일로부터 정보를 판독하기 위한 및/또는 유저의 프로파일에 정보를 기록하기 위한 요청일 수도 있다. 앞서 설명된 바와 같이, 수신된 요청은 다음의 정보 중 임의의 것을 포함할 수도 있다: 가상 어시스턴트가 액세스할 것을 요청하고 있는 프로파일의 유저를 식별하는 정보, 가상 어시스턴트가 실행하고 있는 컴퓨팅 디바이스를 식별하는 정보, 가상 어시스턴트가 액세스할 것을 소망하고 있는 유저의 프로파일의 정보, 및/또는 임의의 다른 적절한 정보.
특정한 유저의 프로파일에 액세스하기 위한 요청을 수신하는 것에 응답하여, 프로세스(500)는 결정 블록(504)으로 진행하는데, 여기서는, 유저의 프로파일에 대한 액세스에 대한 요청된 퍼미션이 허여되어야 하는지의 여부가 결정된다. 이 결정은 수신된 요청에서의 정보에 기초하여 임의의 적절한 방식으로 이루어질 수도 있다. 하나의 비제한적인 예로서, 요청에서의 유저를 식별하는 정보(예를 들면, 로그인 및 패스워드 정보, 생체인식 정보, 및/또는 임의의 다른 적절한 식별 정보)는 유저를 인증하려고 시도하기 위해 사용될 수도 있으며, 유저가 인증되면, 유저의 프로파일의 프로파일에 액세스할 퍼미션이 허여될 수도 있다. 다른 비제한적인 예로서, 액세스에 대한 요청을 발원했던 디바이스(또는 디바이스의 타입)가, 유저의 프로파일에 액세스할 수도 있는 것으로 유저의 프로파일에서 특정되는 경우, 유저의 프로파일에 액세스할 퍼미션은 허여될 수도 있다. 또 다른 예로서, 요청에서의 유저를 식별하는 정보에 기초하여 유저가 인증되고 액세스에 대한 요청을 발원했던 디바이스가 유저의 프로파일에 액세스할 수도 있다는 것을 유저의 프로파일이 나타내는 경우, 유저의 프로파일에 액세스할 퍼미션은 허여될 수도 있다. 또 다른 예로서, 유저의 프로파일의 특정한 정보에 액세스할 퍼미션은, 요청을 발원했던 디바이스가 특정한 정보에 액세스할 수도 있다는 것이 결정되는 경우 허여될 수도 있다. 예를 들면, 유저에게 속하는 디바이스(예를 들면, 유저의 스마트폰, 랩탑 컴퓨터, 등등)는 유저의 프로파일에 저장된 유저의 개인 정보에 액세스할 수도 있고, 반면 다른 디바이스(예를 들면, 렌트 차량의, 호텔 룸의, 인터넷 카페의, 등등의 컴퓨팅 디바이스)는 유저의 개인 정보에 액세스할 수 없을 수도 있다.
몇몇 실시형태에서, 요청에서의 정보는, 액세스가 요청되고 있는 유저 프로파일이 고유하게 식별되지 않을 수도 있도록, 유저를 고유하게 식별하지 않는다. 대신, 유저 프로파일의 세트가 식별될 수도 있다. 이러한 상황에서, 요청을 발원했던 디바이스를 식별하는 정보는, 유저 프로파일의 세트 중에서, 액세스가 요청되고 있는 유저 프로파일을 식별하기 위해 사용될 수도 있다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 몇몇 실시형태에서, 요청을 발원했던 디바이스를 식별하는 정보에 기초하여, 디바이스가 유저의 프로파일에 액세스할 수도 있다는 것을 유저 프로파일의 세트의 특정한 프로파일이 특정한다는 것이 결정될 수도 있다. 이 방식에서, 액세스가 요청되고 있는 유저 프로파일은 고유하게 식별될 수도 있고 그 유저 프로파일의 정보에 액세스할 퍼미션은 허여될 수도 있다.
몇몇 실시형태에서, 유저와 상호작용하는 가상 어시스턴트를 실행하는 컴퓨팅 디바이스로부터 유저의 프로파일에 액세스하기 위한 요청이 수신될 수도 있다. 그러나, 본원에서 제공되는 본 개시의 양태는 이 점에서는 제한되지 않는데, 정보에 액세스하기 위한 요청이 임의의 다른 적절한 디바이스로부터 수신될 수도 있기 때문이다. 몇몇 실시형태에서, 써드파티가 유저의 프로파일의 정보에 액세스할 것을 소망할 수도 있다. 하나의 비제한적인 예로서, 유저가 선호하는 호텔 룸의 타입, 호텔에서 유저가 머물렀던 때 또는 유저가 호텔에 머무를 때, 호텔에 머무르기 위해 유저가 지불했던 또는 지불할 요금 등등을 결정/특정하기 위해 호텔이 유저의 프로파일에 액세스할 것을 소망할 수도 있다. 다른 비제한적인 예로서, 유저가 운전하기를 선호하는 자동차의 타입을 결정/특정하기 위해, 자동차 렌트 회사가 유저의 프로파일에 액세스할 것을 소망할 수도 있다. 또 다른 비제한적인 예로서, 써드파티(유저의 친구인 다른 사람)와 상호작용하는 가상 어시스턴트가 써드파티와 상호작용할 때의 자신의 거동을 커스터마이징하기 위해 유저의 프로파일의 정보에 액세스할 것을 소망할 수도 있다(예를 들면, 친구의 가상 어시스턴트는 친구와 유저 간의 이벤트를 스케줄링하기를 소망할 수도 있고 그렇게 하기 위해 유저의 프로파일에서 유저의 가용성에 관한 정보에 액세스할 것을 소망할 수도 있다). 유저의 프로파일에 액세스할 것을 소망할 수도 있는 많은 다른 예의 써드파티(예를 들면, 식료품 가게, 신용카드 회사, 전화 회사, 항공 회사 등등)가 존재할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 몇몇 실시형태에서, 써드파티가 유저의 프로파일에 액세스하도록 허용된다는 것을 유저의 프로파일이 특정하는 경우, 써드파티는 유저의 프로파일에 액세스할 퍼미션을 허여받을 수도 있다. 예를 들면, 유저가 힐튼 호텔에 자주 머무는 경우, 유저는 힐튼 호텔측에 유저의 프로파일의 적어도 몇몇 정보에 액세스할 퍼미션을 허여할 수도 있다.
유저의 프로파일에 대한 액세스를 허여하기 위한 결정이 어떻게 이루어지는지의 상기 예는 예시적인 것으로 비제한적이며 유저의 프로파일에 대한 액세스를 허여하기 위한 결정은 임의의 적절한 다른 방식으로 이루어질 수도 있다.
결정 블록(504)에서, 유저의 프로파일에 액세스할 퍼미션이 거절되어야 한다는 것이다는 것이 결정되는 경우, 프로세스(500)는 블록 508로 진행하는데, 여기서는, 임의의 유저의 프로파일에 액세스하기 위한 다른 요청이 수신되었는지의 여부가 결정된다. 한편, 유저의 프로파일에 액세스할 퍼미션이 허여되어야 한다는 것이 결정되는 경우, 프로세스(500)는 액트(506)로 진행하는데, 여기서는, 컴퓨팅 디바이스가 유저의 프로파일의 정보의 판독 및/또는 기록을 인에이블한다.
액트(506) 이후(또는 결정 블록(504)으로부터의 "아니오" 분기를 따른 이후), 프로세스(500)는 액트(508)로 진행하는데, 여기서는, 임의의 유저의 프로파일의 액세스에 대한 다른 요청이 수신되었는지의 여부가 결정된다. 다른 요청이 수신되었다는 것이 결정되는 경우, 프로세스(500)는 그것을 위에서 논의된 방식으로 프로세싱하기 위해 결정 블록(504)으로 복귀한다. 어떠한 다른 요청도 수신되지 않았다는 것이 결정되는 경우, 프로세스(500)는 완료한다.
III. 디바이스에 걸친 태스크의 계속
앞서 설명된 바와 같이, 유저의 프로파일에 저장된 정보는, 하나의 디바이스 상에서 수행되고 있는 태스크가 하나 이상의 다른 디바이스 상에서 계속 수행되는 것을 가능하게 할 수도 있다. 유저의 프로파일은 하나의 디바이스 상에서 수행되고 있는 태스크를 식별하는 정보를 포함할 수도 있고 유저가 태스크의 수행을 계속할 수도 있는 다른 디바이스 근처에 있는 경우, 다른 디바이스는, 유저의 프로파일에서, 수행되고 있는 태스크를 식별하는 정보에 액세스할 수도 있고 그 태스크의 수행을 계속할 수도 있다.
하나의 비제한적인 예로서, 유저는 그의/그녀의 스마트폰에서 음악을 청취하고 있을 수도 있고 유저의 프로파일은 유저가 그의/그녀의 스마트폰에서 음악을 청취하고 있다는 것을 나타내는 정보를 포함할 수도 있다. 유저가 집에 오면, 유저의 스테레오 시스템은 유저의 프로파일에 액세스할 수도 있고, 유저가 그의/그녀의 스마트폰에서 음악을 청취하고 있었다는 것을 결정할 수도 있고, 유저가 청취하고 있었던 음악(예를 들면, 동일한 플레이리스트의 동일한 위치의 동일한 노래, 동일한 라디오 방송국 등등)의 플레이를 계속할 것을 (자동적으로 또는 유저의 입력에 기초하여) 결정할 수도 있다
다른 비제한적인 예로서, 유저는 그의/그녀의 자동차에서 오디오북을 청취할 수도 있고 유저의 프로파일은, 유저가 그의/그녀의 자동차에서 오디오북을 청취하고 있다는 것을 나타내는 정보를 포함할 수도 있다. 유저가 그의/그녀의 호텔에 도착하면, 호텔의 인포테인먼트 시스템(infotainment system)은 유저의 프로파일에 액세스할 수도 있고, 유저가 그의/그녀의 자동차에서 오디오북을 청취하고 있었다는 것을 결정할 수도 있고, 유저가 중지했던 오디오북의 위치로부터 오디오북을 호텔룸에서 계속 플레이할 것을 (자동적으로 또는 유저의 입력에 기초하여) 결정할 수도 있다.
또 다른 비제한적인 예로서, 유저는 레스토랑에 가는 태스크를 수행할 것을 소망할 수도 있다. 유저는 그의/그녀의 스마트폰을 사용하여 레스토랑 예약을 행할 수도 있고 유저의 프로파일은 유저가 레스토랑 예약을 했다는 것을 나타내는 정보를 포함할 수도 있다. 나중에, 유저가 그의 자동차 안으로 들어가면, 자동차의 내비게이션 시스템은 유저 프로파일에 액세스할 수도 있고, 유저가 레스토랑으로 운전해 가기를 소망한다는 것을 (예를 들면, 시간 및/또는 유저의 위치에 기초하여) 자동적으로 또는 유저 입력에 기초하여 결정할 수도 있다. 그 다음, 내비게이션 시스템은 레스토랑으로 가는 방향을 유저에게 제공할 수도 있다.
몇몇 실시형태에서, 하나의 디바이스 상의 애플리케이션 프로그램(예를 들면, 유저의 스마트폰 상의 음악 플레이어)에 의한 유저의 태스크의 수행은, 다른 디바이스 상의 동일한 타입의 다른 애플리케이션 프로그램(예를 들면, 유저의 랩탑 컴퓨터 상의 음악 플레이어)에 의해 계속될 수도 있다. 다른 실시형태에서, 하나의 디바이스 상의 애플리케이션(예를 들면, 레스토랑 예약을 행하기 위해 사용될 수도 있는 유저의 스마트폰 상의 애플리케이션 프로그램)에 의한 유저의 태스크의 수행은, 다른 디바이스 상의 상이한 타입의 다른 애플리케이션 프로그램(예를 들면, 유저를 레스토랑으로 길 안내하기 위한 유저의 자동차의 애플리케이션 프로그램)에 의해 계속될 수도 있다.
도 6은, 본원에서 제공되는 본 개시의 몇몇 실시형태에 따른, 제1 디바이스 상에서 수행되고 있는 태스크의 수행을 제2 디바이스 상에서 계속하기 위한 예시적인 프로세스(600)의 플로우차트이다. 프로세스(600)는, 제1 디바이스(예를 들면, 유저의 셀 폰)에 의해 또는 제1 디바이스 및 제2 디바이스와 통신하도록 구성되며 하나 이상의 다른 컴퓨팅 디바이스에게 유저의 프로파일의 적어도 몇몇 정보에 대한 액세스를 제공하도록 프로그래밍된 제3 컴퓨팅 디바이스(예를 들면, 도 1a를 참조로 설명된 서버(110))에 의해 수행될 수도 있다.
액트(602)에서, 프로세스(600)를 실행하는 컴퓨팅 디바이스는, 제1 디바이스 상에서 실행되고 있는 태스크에 관련되는 정보를 수신하고, 액트(604)에서, 수신된 정보를 유저의 프로파일에(예를 들면, 도 2를 참조로 설명된 애플리케이션 및 서비스 정보(208)에) 저장한다. 제1 디바이스는, 디바이스 상에서 실행되는 가상 어시스턴트를 사용하는 것에 의해 유저가 상호작용할 수도 있는 임의의 적절한 컴퓨팅 디바이스일 수도 있는데, 그 예는 본원에서 제공된다. 제1 디바이스 상에서 수행되고 있는 태스크에 관련되는 정보는, 가상 어시스턴트 및/또는 제1 디바이스 상에서 실행되는 임의의 다른 적절한 소프트웨어 프로그램에 의해 프로세스(600)를 실행하는 컴퓨팅 디바이스로 제공될 수도 있다.
태스크에 관련되는 정보는, 다른 디바이스로의 제공시, 다른 디바이스가 태스크의 수행을 계속하는 것을 허용할 수도 있는 임의의 적절한 정보일 수도 있다. 예를 들면, 앞서 설명된 바와 같이, 태스크에 관련되는 정보는, 태스크(예를 들면, 오디오북을 플레이하는 것, 저녁 식사하러 레스토랑으로 가는 것, 등등)를 식별하는 정보, 태스크의 수행을 위해 유저에 의해 제공되는 하나 이상의 입력을 특정하는 정보(예를 들면, 플레이할 오디오북을 식별하는 정보, 레스토랑을 예약하기 위한 정보), 태스크의 어떤 부분이 수행되었는지 또는 어떤 부분이 수행되지 않았는지(오디오북이 어디까지 플레이되었는지, 레스토랑 예약이 이루어져 있는지의 여부)를 특정하는 정보, 및/또는 태스크의 수행을 계속하기 위해 다른 디바이스에 의해 사용될 수도 있는 임의의 다른 적절한 정보를 포함할 수도 있다. 하나의 디바이스에 의해 태스크의 어떤 부분이 수행되었는지를 특정하는 정보는, 수행되었던 부분의 수행을 반복하지 않고 다른 디바이스가 태스크의 수행을 계속하는 것을 허용할 수도 있다(예를 들면, 유저가 이미 청취했던 오디오북의 부분을 다시 플레이하지 않고 오디오북을 계속 플레이한다).
다음으로, 프로세스(600)는 결정 블록(606)으로 진행하는데, 여기서는, 태스크의 수행이 다른 디바이스 상에서 계속되어야 하는지의 여부가 결정된다. 다른 디바이스 상에서 태스크의 수행을 계속하기 위한 결정은 임의의 적절한 방식으로 이루어질 수도 있다. 몇몇 실시형태에서, 다른 디바이스 상에서 태스크의 수행을 계속하기 위한 결정은, 태스크의 수행을 계속하는 데 이용가능한 하나 이상의 디바이스를 (예를 들면, 디바이스(들)와 통신하는 것에 의해 또는 어떤 디바이스(들)가 이용가능한지를 나타내는 정보를 서버로부터 수신하는 것에 의해) 식별하는 것 및 이용가능한 디바이스 중 하나 상에서 태스크의 수행을 계속할지의 여부를 결정하는 것을 포함할 수도 있다. 몇몇 실시형태에서, 프로세스(600)를 실행하는 컴퓨팅 디바이스는 (예를 들면, 유저에 가까운 디바이스 중 하나 이상으로부터 및/또는 컴퓨팅 디바이스 상의 위치 서비스로부터) 유저의 위치를 특정하는 정보를 획득할 수도 있고, 유저가 다른 디바이스에(예를 들면, 다른 디바이스의 임계 거리 내에) 충분히 가까이 있는 경우, 태스크의 수행이 다른 디바이스 상에서 계속되어야 한다는 것을, 자동적으로 또는 유저 입력에 적어도 부분적으로 기초하여, 결정할 수도 있다. 예를 들면, 그의/그녀의 자동차 안에서 오디오북을 청취하고 있었던 유저가 집에 돌아오면, 프로세스(600)를 실행하는 컴퓨팅 디바이스는, 유저가 (그의/그녀의 자동차 안에 있는 것이 아니라) 집에 있다는 것 및 유저의 집에 있는 스테레오 시스템이 오디오북의 플레이를 계속할 수도 있다는 것을 나타내는 정보를 획득할 수도 있다. 프로세스(600)를 실행하는 컴퓨팅 디바이스(예를 들면, 유저의 셀 폰, 유저의 위치를 특정하는 정보에 대한 액세스를 갖는 서버, 등등)는 스테레오 시스템 상에서 실행되는 가상 어시스턴트와 통신할 수도 있고 스테레오 시스템으로 하여금 오디오북의 플레이를 자동적으로 계속하게 하거나 또는 스테레오 시스템에 오디오북의 플레이를 계속하기를 유저가 소망하는지의 여부를 유저에게 주도적으로 물어보게 할 수도 있다.
몇몇 실시형태에서, 프로세스(600)를 실행하는 컴퓨팅 디바이스는, 태스크의 수행이 다른 디바이스 상에서 계속되어야 한다는 것을 유저의 입력에 기초하여 결정할 수도 있다. 유저는, 태스크가 다른 디바이스 상에서 계속되기를 유저가 소망하는지를 나타내기 위해, 제1 디바이스 상의 또는 다른 디바이스 상의 가상 어시스턴트와 상호작용할 수도 있다. 예를 들면, 그의/그녀의 스마트폰에서 음악을 청취하고 있는 유저는, 스테레오 시스템에서 음악 청취를 계속하기를 유저가 소망한다는 것을, (예를 들면, 가상 어시스턴트를 통해) 그의 스마트폰에 또는 (예를 들면, 버튼을 누르는 것에 의해) 그의/그녀의 스테레오 시스템에 입력할 수도 있다. 몇몇 경우에서, 유저의 프로파일은, 다른 디바이스 상에서 태스크의 수행을 계속하기 위한 결정이 자동적으로 이루어져야 하는지 또는 유저 입력에 기초하여 이루어져야 하는지의 여부를 나타내는 정보를 저장한다.
몇몇 실시형태에서, 다른 디바이스 상에서 태스크의 수행을 계속하기 위한 결정은, 태스크의 수행을 계속할 디바이스로부터 수신되는 입력에 기초하여 이루어질 수도 있는데, 그 입력은 디바이스가 태스크의 수행을 계속해야 한다는 것을 나타낸다. 태스크 수행을 계속할 디바이스는 이러한 결정을, 예를 들면, 디바이스에 대한 유저의 근접도에 기초하여, 디바이스로의 유저 입력에 기초하여, 유저에 의해 그의/그녀의 프로파일에 추가되는 선호도 설정에 기초하여, 가상 어시스턴트에 의해 자동적으로 학습되는 프로파일에서의 선호도 설정에 기초하여, 등등과 같은 임의의 적절한 방식으로 행할 수도 있다. 예를 들면, 유저는 그의/그녀의 자동차에서 오디오북을 청취할 수도 있고, 집에 돌아올 수도 있고, 스테레오 시스템이 오디오북의 플레이를 계속해야 한다는 것을 (예를 들면, 스테레오 시스템 상에서 실행되는 가상 어시스턴트를 통해, 스테레오 시스템 상의 버튼을 누르는 것에 의해, 등등으로) 그의 스테레오 시스템에게 나타낼 수도 있다. 유저로부터 이러한 입력을 수신하는 것에 응답하여, 스테레오 시스템은, 스테레오 시스템이 오디오북의 플레이를 계속해야 한다는 것을, 프로세스(600)를 실행하는 시스템(예를 들면, 도 1a를 참조로 설명된 서버(110)와 같은 서버 또는 도 1b를 참조로 설명된 휴대형 디바이스(154)와 같은 휴대형 디바이스)에게 통지할 수도 있다. 태스크의 수행이 다른 디바이스 상에서 계속되어야 한다는 것을 결정하는 상기 설명된 방식은 예시적인 것이며 그 결정은 임의의 다른 적절한 방식으로 이루어질 수도 있다는 것이 인식되어야 하는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
태스크의 수행이 다른 디바이스 상에서 계속되어야 한다는 것이 결정되면, 프로세스(600)는 액트(608)로 진행하는데, 여기서는, 다른 디바이스가 태스크에 관련되는 유저의 프로파일의 정보에 대한 액세스를 제공받는다. 태스크의 수행이 몇몇 다른 디바이스 상에서 계속되지 않을 것이다는 것이 결정되면, 프로세스(600)를 실행하는 컴퓨팅 디바이스는 종료한다. 그러나, 액트(604)에서 저장된 정보는, 시간적으로 나중의 시점에 태스크의 수행이 몇몇 다른 디바이스 상에서 계속될 수도 있도록, 유지된다.
IV. 소셜 슈퍼그래프(Social Supergraph)
가상 어시스턴트가 상호작용하고 있는 유저의 프로파일의 정보에 대해서뿐만 아니라, 유저의 연락처(예를 들면, 친구, 친지, 사업 동료, 하나 이상의 소셜 네트워킹 서비스를 통해 유저에게 연결된 사람)에 관련되는 정보에 대해서도 가상 어시스턴트가 액세스할 수 있으면, 향상된 유저 경험이 제공될 수 있었다는 것을 본 출원인은 인식하였다. 유저의 연락처에 관련되는 정보에 대한 액세스는, 가상 어시스턴트가 유저에게, 그의/그녀의 연락처가 관심을 갖는 정보를 제시하는 것, 그의/그녀의 연락처가 즐기는 미디어 컨텐츠를 유저에게 추천하는 것, 유저와 그의/그녀의 연락처 중 한 명 이상 간의 이벤트(예를 들면, 미팅, 전화 통화 등등)를 스케줄링하는 것, 및/또는 가상 어시스턴트와 상호작용할 때 유저에 대한 향상된 그리고 더욱더 개인 맞춤된 경험으로 이어질 다양한 다른 타입의 액션 중 임의의 것을 수행하는 것을 허용할 수도 있다.
따라서, 몇몇 실시형태에서, 가상 어시스턴트는 유저와 상호작용할 때의 자신의 거동을, 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 적어도 몇몇 정보에 기초하여 커스터마이징할 수도 있다. 다른 유저(들)에 관련되는 정보는 다른 유저(들)의 프로파일(들)의 임의의 정보, 및/또는 임의의 다른 적절한 정보일 수도 있다. 다른 유저(들)는 유저와 임의의 적절한 방식으로 관련될 수도 있고, 몇몇 실시형태에서, 하기에서 설명되는 바와 같이, 유저의 프로파일 및 다른 유저(들)의 프로파일의 정보에 적어도 부분적으로 기초하여 구축되었던 유저의 네트워크를 통해 유저와 관련될 수도 있다.
몇몇 실시형태에서, 유저의 네트워크는, 노드의 세트 및 노드의 세트에서의 적어도 몇몇의 노드를 연결하는 에지의 세트를 포함하는 네트워크의 그래프(네트워크 그래프)에 의해 표현될 수도 있다. 네트워크 그래프에서의 노드는 유저를 나타낼 수도 있고 두 개의 노드를 연결하는 에지는 노드에 의해 나타내어지는 두 명의 유저 사이의 연결을 나타낼 수도 있다. 각각의 노드는, 노드가 나타내고 있는 유저의 프로파일의 데이터와 관련될 수도 있다. 이와 같이, 유저의 네트워크는 네트워크에서의 각각의 유저에 관한 정보 및 네트워크에서 유저 사이의 연결성에 관한 정보를 인코딩한다. 유저의 네트워크는, 그래프를 인코딩하기 위한 임의의 데이터 구조 또는 임의의 다른 적절한 데이터 구조(들)에 의해 인코딩될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
몇몇 실시형태에서, 유저의 세트의 유저 프로파일에 액세스하도록 구성된 시스템(예를 들면, 도 1a를 참조로 설명된 서버(110))은 유저의 네트워크를 구축하기 위해 유저의 프로파일의 정보를 사용할 수도 있다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 예를 들면, 몇몇 실시형태에서, 시스템은, 유저의 세트에서 적어도 몇 명의(예를 들면, 모든) 유저의 각각에 대해 다음의 단계를 수행하는 것에 의해 유저의 네트워크를 구축할 수도 있다: (1) 유저에 대한 네트워크 그래프에 노드를 추가; 및 (2) 유저가 네트워크 그래프에서의 한 노드에 의해 나타내어지는 다른 유저와 관련된다는 것을 유저의 프로파일의 정보가 나타내면, 네트워크 그래프에서 이들 유저를 나타내는 두 개의 노드를 연결.
한 명의 유저("유저 A")의 프로파일에서, 그 유저가 다른 유저("유저 B")와 관련된다는 것을 나타내는 정보의 비제한적인 예는, 적어도 하나의 소셜 네트워킹 서비스를 통해 유저 A와 유저 B가 연결된다(예를 들면, 유저 A와 유저 B가 Facebook®을 통해 연결된다, 유저 A와 유저 B가 LinkedIn®을 통해 연결된다, Twitter®에서 유저 A가 유저 B를 팔로우하고 있다 및/또는 그 반대이다, 등등이다)는 것을 나타내는 정보, 유저 B가 유저 A의 연락처이다(예를 들면, 유저 A의 프로파일이 유저 B의 연락처 정보 예컨대 그의/그녀의 이메일 주소, 우편 주소, 전화 번호 등등을 포함한다)는 것을 나타내는 정보, 및/또는 유저 A와 유저 B가 관련된다는 것을 나타내는 임의의 다른 적절한 정보를 포함한다.
상기로부터 알 수 있는 바와 같이, 유저의 세트의 유저 프로파일에 액세스하도록 구성된 시스템은, 임의의 단일의 현존하는 유저의 네트워크의 서브셋이 아닌 유저의 네트워크를 구축할 수도 있다. 예를 들면, 구축된 네트워크는, 제2 소셜 네트워크(예를 들면, LinkedIn®)를 통해서가 아니라, 제1 소셜 네트워크(예를 들면, Facebook®)를 통해 연결되는 사람 사이의 연결을 포함할 수도 있고, 제1 소셜 네트워크를 통해서가 아니라, 제2 소셜 네트워크를 통해 연결되는 사람 사이의 연결을 포함할 수도 있다. 따라서, 구축된 네트워크의 네트워크 그래프는 제1 소셜 네트워크를 나타내는 네트워크 그래프의 서브그래프도 아니고 제2 소셜 네트워크를 나타내는 네트워크 그래프의 서브그래프도 아니다. 대신, 제1 소셜 네트워크를 나타내는 네트워크 그래프 및 제2 소셜 네트워크를 나타내는 네트워크 그래프 각각은, 본원에서 설명되는 기술에 따라 구축되는 네트워크의 네트워크 그래프의 서브그래프일 수도 있다. 그런 의미에서, 구축된 네트워크의 네트워크 그래프는 네트워크 "슈퍼 그래프"로서 간주될 수도 있다.
유저의 프로파일의 정보에 적어도 부분적으로 기초하여 생성된 유저의 네트워크의 한 예가 도 7에 도시된다. 도 7은 유저(702, 704a-704b, 706a-706d, 708a-708b, 및 710a-710b)의 각각에 대한 노드를 포함하는 예시적인 네트워크 그래프(700)의 일부를 도시한다. 유저(702)에게 연결된 임의의 노드 사이의 유사한 음영은, 이들 노드에 의해 나타내어지는 유저가 유저(702)와 유사한 방식으로 관련된다는 것을 나타낸다. 예를 들면, 유저(704a 및 704b) 각각은 제1 소셜 네트워킹 서비스(예를 들면, LinkedIn)를 통해 유저(702)에게 연결되고, 결과적으로, 네트워크 그래프(700)에서 (유저(702)를 통해) 간접적으로 연결된다. 다른 예로서, 유저(706a-706d) 각각은, 제1 네트워크 서비스와는 상이한 제2 소셜 네트워킹 서비스(예를 들면, 페이스북)를 통해 유저(702)에게 연결되고, 결과적으로 네트워크 그래프(700)에서 연결된다. 또 다른 예로서, 유저(708a-708b)는 유저(702)의 연락처이며(예를 들면, 유저의 연락처 애플리케이션 프로그램에 이름이 올라가 있음), 결과적으로, 네트워크 그래프(700)에서 연결된다. 유저(710a 및 710b)는 네트워크 그래프(700)에서 유저(702)에게 간접적으로 연결된다.
네트워크 그래프(700)에서 도시되는 유저의 수는 예시적인 것이고 비제한적이다는 것이 인식되어야 하는데, 네트워크 그래프가 임의의 적절한 수의 유저(예를 들면, 적어도 10명, 적어도 100명, 적어도 1000명, 적어도 10,000명, 적어도 25,000명 등등) 및 이들 사이의 임의의 적절한 수의 연결을 나타낼 수도 있기 때문이다.
몇몇 실시형태에서, 가상 어시스턴트는 유저와 상호작용할 때의 자신의 거동을, 유저의 네트워크를 통해 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 기초하여 커스터마이징할 수도 있다. 가상 어시스턴트는, 액세스된 정보에 기초하여 다양한 타입의 액션 중 임의의 것을 수행하는 것에 의해 자신의 거동을 커스터마이징할 수도 있다. 하나의 이러한 실시형태는, 적어도 하나의 가상 어시스턴트를 구현하기 위해 프로그래밍된 임의의 컴퓨팅 디바이스 상에서 수행될 수 있는 예시적인 프로세스(800)의 플로우차트인 도 8a에서 예시되는데, 그 예는 본원에서 설명된다.
프로세스(800)는 액트(802)에서 시작하는데, 여기서는, 디바이스 상에서 실행되는 가상 어시스턴트가, 유저의 네트워크를 통해 디바이스의 유저와 관련되는 한 명 이상의 다른 유저에 관련되는 정보에 액세스할 수도 있다. 유저의 네트워크는 유저의 임의의 적절한 네트워크일 수도 있으며, 예를 들면, 상기에서 설명된 바와 같이, 유저의 프로파일의 정보에 적어도 부분적으로 기초하여 구축된 유저의 네트워크일 수도 있다.
가상 어시스턴트는 한 명 이상의 다른 유저에 관련되는 정보에 임의의 적절한 방식으로 액세스할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트가 실행되고 있는 디바이스(예를 들면, 컴퓨팅 디바이스(104a))는, 다른 유저(들)에 관련되는 정보를 가상 어시스턴트에게 제공할 수도 있는 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 서버(110))에 연결될 수도 있다. 가상 어시스턴트는, 이러한 정보를 요청하는 것에 응답하여 다른 유저(들)에 관련되는 정보를 제공받을 수도 있거나 또는, 이러한 정보를 요청하지 않고도, 하나 이상의 다른 컴퓨팅 디바이스에 의해 주도적으로 이러한 정보를 제공받을 수도 있다.
디바이스의 유저와 관련된 다른 유저(들)에 관련되는 정보는 임의의 적절한 타입의 정보일 수도 있다. 그 정보는 다른 유저(들)의 프로파일에서 액세스될 수도 있고/있거나 다른 유저(들)의 프로파일의 정보로부터 유도될 수도 있다. 다른 유저(들)에 관련되는 정보의 비제한적인 예가 하기에서 제공된다.
액트(802)에서 액세스되는 정보는, 유저의 네트워크를 통해, 유저와 관련되는 한 명 이상의 유저의 임의의 적절한 그룹에 관련될 수도 있다. 하나의 비제한적인 예로서, 유저의 그룹은 유저의 네트워크를 통해 유저에게 직접적으로 연결되는 유저만을 포함할 수도 있다. 다른 비제한적인 예로서, 유저의 그룹은 유저의 네트워크에서의 유저의 소정 거리 이내의(예를 들면, 분리도(degree of separation)의 임계 수 이내의) 유저를 포함할 수도 있다. 다른 비제한적인 예로서, 유저의 그룹은, 유저와 하나 이상의 공통점(예를 들면, 공통된 관심사, 공통된 지리적 위치, 공통된 연령 그룹, 공통된 이력, 공통된 고용주, 특성 등등)을 갖는 유저의 네트워크에서의 유저의 그룹일 수도 있다. 다른 비제한적인 예로서, 유저의 그룹은 (예를 들면, 특정 사람과 유저 사이의 미팅을 스케줄링하기 위해 특정 사람의 스케줄에 관한 정보를 요청할 때) 가상 어시스턴트에 의해 구체적으로 특정되는 유저를 포함할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는 액트(802) 동안 유저와 상호작용할 수도 있고(예를 들면, 가상 어시스턴트는 유저와의 대화에 참여될 수도 있고), 한편 다른 실시형태에서, 가상 어시스턴트는 액트(802) 동안 백그라운드에서 디바이스 상에서 실행할 수도 있다. 어느 경우든, 가상 어시스턴트가 다른 유저(들)에 관련되는 정보에 액세스하는 경우, 가상 어시스턴트는 임의의 적절한 액션을, 이러한 액션이 수행되어야 한다는 것을 요청하는 유저로부터의 입력 없이, 액세스된 정보에 기초하여 주도적으로 수행할 수도 있다(예를 들면, 유저에게 통지를 제공할 수도 있다).
따라서, 가상 어시스턴트가 액트(802)에서 한 명 이상의 다른 유저에 관련되는 정보에 액세스한 이후, 프로세스(800)는 액트(804)로 진행하는데, 여기서는, 가상 어시스턴트가, 액세스된 정보에 기초하여 하나 이상의 액션을 수행하는 것에 의해 디바이스의 유저와 상호작용할 수도 있다. 가상 어시스턴트는 몇몇 타입의 액션을 수행하기 위한 추가 정보를 수신할 수도 있다. 예를 들면, 액트(804)에서 수행되는 액션이 유저에게 추가 정보를 제시하는 것을 수반하면, 가상 어시스턴트는 하나 이상의 다른 컴퓨팅 디바이스(예를 들면, 서버(110))로부터 그 추가 정보를 획득할 수도 있다. 이들 및 다른 타입의 액션의 예가 하기에서 제공된다. 가상 어시스턴트가 액션을 수행한 이후, 프로세스(800)는 완료한다.
하나의 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 적어도 부분적으로, 한 명 이상의 다른 유저의 이용가능성을 특정할 수도 있다(예를 들면, 정보는 하루 이상의 저녁 시간의 유저의 친구 중 몇몇의 스케줄, 하루 이상의 업무일 동안의 유저의 직장 동료 중 한 명 이상의 스케줄, 한 명 이상의 다른 유저의 캘린더, 한 명 이상의 다른 유저의 여행 계획, 등등을 특정할 수도 있다.). 액트(804)에서, 가상 어시스턴트는, 다른 유저(들)의 이용가능성을 특정하는 정보에 적어도 부분적으로 기초하여 유저와 다른 유저(들) 간의 이벤트(예를 들면, 미팅, 전화 통화, 등등)를 스케줄링하도록 시도할 수도 있다.
다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는 (단지, 다른 유저(들)의 현재 위치를 추적하는 것과는 대조적으로) 미래의 시간에서의 한 명 이상의 다른 유저의 계획된 위치를 식별할 수도 있다. 예를 들면, 액트(802)에서 액세스되는 정보는, 시내 밖에 있는 유저의 친구가 특정한 날에 시내로 올 것이다는 것, 유저의 친구 중 몇몇이 소정의 시간에 특정한 장소에서 만나기로 계획하고 있다는 것, 등등을 특정할 수도 있다. 다른 예로서, 유저는 여행하고(예를 들면, 운전하고) 있을 수도 있고 액트(802)에서 액세스되는 정보는 유저의 연락처 중 한 명 이상이 유저의 여행 경로를 따른 유저의 미래의 위치 근처에 있을 것이다는 것을 식별할 수도 있다. 유저의 계획된 위치는, 유저의 이용가능성을 나타내는 유저의 프로파일의 정보, 유저의 내비게이션 시스템에 의해 그곳에 배치되는 유저의 프로파일의 정보로부터, 및/또는 임의의 다른 적절한 소스로부터 획득될 수도 있다. 액트(804)에서, 가상 어시스턴트는 다른 유저(들)의 계획된 위치를 유저에게 통지할 수도 있고/있거나 액세스된 정보에 기초하여 계획된 위치에서 또는 계획된 위치 근처에서 유저와 다른 유저(들) 간의 이벤트(예를 들면, 미팅, 전화 통화, 등등)를 스케줄링하도록 시도할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 한 명 이상의 다른 유저가 관심을 갖는 적어도 하나의 토픽(예를 들면, 뉴스 토픽, 스포츠 관련 토픽, 엔터테인먼트 관련 토픽, 등등)을 식별할 수도 있고, 액트(804)에서, 가상 어시스턴트는 식별된 관심 토픽에 관련되는 정보(예를 들면, 웹페이지에 대한 링크, 간략한 메시지, 등등)를 유저에게 제시할 수도 있다. 예를 들면, 가상 어시스턴트는, 한 명 이상의 다른 유저가 관심을 갖는 뉴스 토픽에 관한 정보를 포함하는 웹 페이지에 대한 링크를 유저에게 제공할 수도 있다. 그 링크는 서버(110)와 같은 하나 이상의 다른 컴퓨팅 디바이스에 의해 가상 어시스턴트로 제공될 수도 있고/있거나, 가상 어시스턴트에 의해 임의의 다른 적절한 방식으로 획득될 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 한 명 이상의 다른 유저가 즐겼던 미디어 컨텐츠(예를 들면, 영화, 음악, 텔레비전 쇼, 신문 기사, 잡지 기사 등등)를 식별할 수도 있다. 액트(804)에서, 가상 어시스턴트는 미디어 컨텐츠를 유저에게 추천할 수도 있다. 예를 들면, 가상 어시스턴트는 미디어 컨텐츠의 프리뷰(예를 들면, 영화 트레일러, 노래 샘플, 기사 발췌(article excerpt), 등등)를 제시할 수도 있고, 유저에게 그의 친구 중 적어도 다섯 명이 특정한 영화를 봤다는 것을 통지하는 메시지를 생성할 수도 있고, 및/또는 미디어 컨텐츠를 임의의 다른 적절한 방식으로 추천할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스된 정보는, 한 명 이상의 다른 유저가 방문했던 또는 방문하고 싶어 하는 장소(예를 들면, 콘서트 장소, 레스토랑, 클럽, 체육관, 등등)를 식별할 수도 있다. 액트(804)에서, 가상 어시스턴트는 유저가 그 장소를 방문해야 한다는 것을 추천할 수도 있다. 또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 유저와 하나 이상의 공통점을 갖는 다수의 다른 유저가 어떤 액션을 수행했다는 것을 나타낼 수도 있고, 액트(804)에서, 가상 어시스턴트는, 유저가 그 액션을 수행해야 한다는 것을 추천할 수도 있고/있거나 그 액션을 수행함에 있어서 유저를 보조할 수도 있다. 예를 들면, 유저가 샌디에고(San Diego) 지역에 살고 있는 37세의 남성이고, 샌디에고 지역에 살고 있는 35세 내지 40세의 다수의 남성이 샌디에고 차져(Charger)의 풋볼팀의 플레이어에 관한 정보를 찾아 봤다는 것을 액트(802)에서 액세스되는 정보가 나타내면, 가상 어시스턴트는, 유저가 플레이어에 관한 정보를 찾아봐야 한다는 것을 추천할 수도 있고/있거나 유저에게 플레이어에 관한 정보를 제시할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 적어도 임계 수의 유저가 어떤 태스크(예를 들면, Facebook®의 주식 가격을 검색하는 것, 특정한 사람 또는 장소에 관한 뉴스를 검색하는 것, 특정한 비디오를 온라인으로 보는 것, 등등)를 수행하고 있다는 것을 나타낼 수도 있다. 액트(804)에서, 가상 어시스턴트는, 다른 유저가 어떤 태스크를 수행하고 있는지를 나타내는 정보를 유저에게 주도적으로 제공할 수도 있고(예를 들면, 메시지 "사람들이 Facebook®의 주식 가격을 찾아 보고 있습니다"를 생성할 수도 있고) 및/또는 태스크에 관련되는 다른 정보(예를 들면, 특정한 사람 또는 장소에 관한 뉴스 스토리에 대한 링크, 인기 비디오에 대한 링크, 등등)를 유저에게 제공할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는 유저의 가장 친한 친구 및 가족 구성원과 그들의 스케줄을 식별할 수도 있다. 액트(804)에서, 가상 어시스턴트는 파티를 열기에 상호 편리한 시간을 결정할 수도 있고, 결정된 시간에 열릴 파티에 대한 초대장을, 식별된 친구 및 가족 구성원에게 전송할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 한 명 이상의 유저가 구매한 제품(예를 들면, 특정한 그릴 기구(grill utensil), 전자 디바이스, 와인, 등등)을 식별할 수도 있다. 액트(804)에서, 가상 어시스턴트는 (예를 들면, 광고를 제시하는 것, 메시지를 생성하는 것, 등등에 의해) 유저에게 제품을 추천할 수도 있다.
또 다른 비제한적인 예로서, 액트(802)에서 액세스되는 정보는, 가상 어시스턴트가 실행되고 있는 디바이스의 유저와 유사한 관심사항을 갖는 다른 유저가 유저의 네트워크(또는 LinkedIn®와 같은 다른 소셜 네트워크)에 합류(join)했다는 것을 나타낼 수도 있다. 액트(804)에서, 가상 어시스턴트는, 유저가 유저의 네트워크(또는 다른 소셜 네트워크)에서 다른 유저와 직접 연결을 확립해야 한다는 것을 유저에게 제안할 수도 있다.
상기 예는 예시적인 것에 불과하다는 것 및 가상 어시스턴트가 한 명 이상의 다른 유저에 관련되는 임의의 다른 적절한 정보에 액세스할 수도 있고 액세스된 정보에 기초하여 임의의 다른 적절한 액션(들)을 수행할 수도 있다는 것이 인식되어야 한다.
몇몇 실시형태에서, 컴퓨팅 디바이스(예를 들면, 서버(110))는 유저의 네트워크를 통해 유저와 관련된 한 명 이상의 다른 유저에 관련되는 정보에 액세스할 수도 있고, 다른 컴퓨팅 디바이스(예를 들면, 유저의 스마트폰) 상에서 실행되는 가상 어시스턴트로 하여금 액세스된 정보에 기초하여 하나 이상의 액션을 수행하게 할 수도 있다. 하나의 이러한 실시형태는, 가상 어시스턴트를 구현하도록 프로그래밍된 다른 컴퓨팅 디바이스와 통신하도록 구성되는 임의의 적절한 컴퓨팅 디바이스(예를 들면, 서버(110)) 상에서 수행될 수도 있는 예시적인 프로세스(850)의 플로우차트인 도 8에서 예시된다.
프로세스(850)는 액트(852)에서 시작하는데, 여기서는, 프로세스(850)를 실행하는 컴퓨팅 디바이스가 유저의 네트워크를 통해 특정한 유저와 관련된 한 명 이상의 다른 유저에 관련되는 정보에 액세스할 수도 있다. 유저의 네트워크는 유저의 임의의 적절한 네트워크일 수도 있으며, 예를 들면, 상기에서 설명된 바와 같이, 유저의 프로파일의 정보에 적어도 부분적으로 기초하여 구축된 유저의 네트워크일 수도 있다. 액트(852)에서 액세스되는 정보는 유저의 임의의 적절한 그룹에 관련될 수도 있는데, 그 예는 도 8a를 참조로 설명되었다. 다른 유저(들)에 관련되는 임의의 적절한 정보는 액트(852)에서 획득될 수도 있는데, 그 예는 도 8a를 참조로 설명되었다.
다음에, 프로세스(850)는 액트(854)로 진행하는데, 여기서는, 프로세스(850)를 실행하는 컴퓨팅 디바이스가 특정한 유저의 디바이스(예를 들면, 유저의 스마트폰) 상에서 실행되는 가상 어시스턴트로 하여금 액트(852)에서 액세스되는 정보에 기초하여 하나 이상의 액션을 수행하게 할 수도 있다. 가상 어시스턴트로 하여금 수행하게 할 수도 있는 액션의 예가, 도 8a를 참조로 설명된다.
프로세스(850)를 실행하는 컴퓨팅 디바이스는 다른 디바이스 상의 가상 어시스턴트로 하여금, 가상 어시스턴트가 수행할 액션을 나타내는 정보(예를 들면, 메시지, 기능 호출, 등등)를 다른 디바이스로 전송하는 것에 의해, 액션을 수행하게 할 수도 있고, 가상 어시스턴트는, 메시지를 수신하는 것에 응답하여, 나타내어진 액션을 수행할 수도 있다. 프로세스(850)를 실행하는 컴퓨팅 디바이스는, 다른 디바이스 상의 가상 어시스턴트로 하여금, 임의의 다른 적절한 방식으로 액션을 수행하게 할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
몇몇 실시형태에서, 가상 어시스턴트로 하여금 소정 타입의 액션을 수행하게 하는 것은, 이들 액션을 수행하기 위한 추가 정보를 가상 어시스턴트에게 제공하는 것을 포함할 수도 있다. 예를 들면, 가상 어시스턴트로 하여금 (예를 들면, 다른 유저가 구매한 제품에 대한) 광고를 제시하게 하는 것은, 가상 어시스턴트에게 그 광고를 제공하는 것을 포함할 수도 있다. 다른 예로서, 가상 어시스턴트로 하여금 유저에게 (예를 들면, 다른 유저가 관심을 갖는 토픽에 관한) 기사에 대한 링크를 제공하게 하는 것은, 링크를 가상 어시스턴트에 제공하는 것을 포함할 수도 있다. 액트(854)가 완료된 이후, 프로세스(800)는 완료한다.
본 출원인은, 유저의 프로파일의 정보로부터 구축된 유저의 네트워크가, 가상 어시스턴트의 거동을 커스터마이징하는 것 이외의 목적을 위해 사용될 수도 있는 풍부한 정보를 포함한다는 것을 인식하였다. 예를 들면, 몇몇 실시형태에서, 유저의 네트워크의 정보는 분석되어, 관심 사항(예를 들면, 미국의 대도시에서 일을 하는 유저의 직장-가정 통근 시간 분포)의 임의의 지식을 유도할 수도 있다. 다른 예로서, 몇몇 실시형태에서, 유저의 네트워크의 정보는 분석되어, 유저가 어떤 정보를 소비하기를 소망하는지를 식별할 수도 있고 분석의 결과는 다른 엔티티로 제공될 수도 있다. 예를 들면, 유저의 네트워크의 정보는 분석되어, 네트워크에서 적어도 임계 비율의 유저가 특정한 토픽에 관한 뉴스에 관심이 있다는 것을 식별할 수도 있고, 이 정보는 뉴스 에이전시로 제공(예를 들면, 판매)될 수도 있다. 다른 예로서, 유저의 네트워크의 정보는 분석되어, 지난 24시간 동쪽 해안의 임계 비율의 유저가 그들의 날씨 애플리케이션을 세 배보다 더 많이 사용했다는 것을 결정할 수도 있다.
V. 백그라운드 에이전트
상기에서 설명된 바와 같이, 몇몇 실시형태에서, 가상 어시스턴트는, 유저의 프로파일의 적어도 몇몇 정보 및/또는 유저와 관련되는 한 명 이상의 다른 유저의 프로파일(들)에서의 적어도 몇몇 정보에 기초하여, 유저와 상호작용할 때 하나 이상의 액션을 주도적으로 수행할 수도 있다. 추가적으로 또는 대안적으로, 몇몇 실시형태에서, 가상 어시스턴트는 하나 이상의 유저 특정 조건이 충족되는 경우 하나 이상의 유저 특정 액션을 수행할 수도 있다. 하나의 이러한 실시형태는, 가상 어시스턴트를 구현하도록 프로그래밍된 다른 컴퓨팅 디바이스와 통신하도록 구성되는 임의의 적절한 디바이스(예를 들면, 서버(110)) 상에서 수행될 수도 있는 예시적인 프로세스(900)의 플로우차트인 도 9에서 예시된다.
프로세스(900)는 액트(902)에서 시작하는데, 여기서는, 프로세스(900)를 실행하는 디바이스가, 유저에 의해 특정되는 하나 이상의 조건 및 유저 특정 조건이 충족되는 경우 가상 어시스턴트에 의해 수행될 대응하는 유저 특정 액션을 특정하는 정보에 액세스한다. 액트(902)에서 액세스되는 정보는, 유저 특정 액션(들)을 어떤 가상 어시스턴트(예를 들면, 유저의 스마트폰의, 유저의 자동차의, 유저의 랩탑의, 등등의 가상 어시스턴트)가 수행할지를 추가적으로 특정할 수도 있다. 이 정보는 임의의 적절한 소스로부터 액세스될 수도 있다. 예를 들면, 유저 특정 조건 및 대응하는 유저 특정 액션을 특정하는 정보는 프로세스(900)를 실행하는 디바이스 및/또는 프로세스(900)를 실행하는 디바이스가 액세스할 수 있는 임의의 다른 디바이스 상에 저장될 수도 있고 그들로부터 액세스될 수도 있다.
하나의 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저가 관심을 갖는 토픽에 관련되는 정보가 이용가능한 경우, 가상 어시스턴트가 그 토픽에 관련되는 정보를 유저에게 제공해야 한다는 것을 특정할 수도 있다. 예를 들면, 유저는, 그/그녀가 좋아하는 스포츠 팀에 관한 기사가 쓰인 경우, 가상 어시스턴트가 새로운 기사를 유저에게 통지해야 하고 유저에게 그 기사에 대한 링크를 제공해야 한다는 것을 특정할 수도 있다. 다른 예로서, 유저는, 유저가 좋아하는 아티스트가 새로운 노래를 발표하면, 가상 어시스턴트가 적절한 소스로부터 그 노래를 다운받아야 한다는 것을 특정할 수도 있다. 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저의 경로 상에 교통 문제가 존재하면, 유저가 운전하고 있는 자동차의 디바이스 상에서 실행되는 가상 어시스턴트가, 교통 문제에 관한 정보를 유저에게 제공해야 하고 유저에게 새로운 경로를 제안해야 한다는 것을 특정할 수도 있다. 또 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저가 미팅에 늦다는 것이 결정되면, 유저의 스마트폰 상에서 실행되는 가상 어시스턴트가 스마트폰의 배경색을 변경해야 하고 및/또는 스마트폰으로 하여금 특정 패턴의 진동을 사용하여 진동하게 해야 한다는 것을 특정할 수도 있다. 또 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 스포츠 게임의 스코어(또는 팀 사이의 점수 차)가 임계량만큼 변하면, 가상 어시스턴트가 유저에게 업데이트된 스코어를 제공해야 한다는 것을 특정할 수도 있다.
몇몇 실시형태에서, 액트(902)에서 액세스되는 정보는, 유저의 디바이스에 관련되는 하나 이상의 유저 특정 조건 및 하나 이상의 대응 액션을 특정할 수도 있다. 하나의 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저의 모바일 디바이스가 유저의 자동차 안에 있는 경우, 유저의 모바일 디바이스 상에서 실행되는 가상 어시스턴트가 자동차와의 연결(예를 들면, 직접 무선 연결)을 확립해야 한다는 것을 특정할 수도 있다. 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저의 모바일 디바이스가 비행기 모드에 있을 때, 모바일 디바이스가, 네트워크 연결을 필요로 하는 디바이스 상에서 실행되는 모든 애플리케이션 프로그램을 닫아야 한다는 것을 특정할 수도 있다. 또 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저의 모바일 디바이스가 초당 1인치보다 더 많이 이동하고 있는 경우, 유저의 모바일 디바이스 상에서 실행되는 가상 어시스턴트가 모바일 디바이스로 하여금 라이트를 점등하게 해야 한다는 것 및/또는 알람을 울게 해야 한다는 것을 특정할 수도 있다. 또 다른 비제한적인 예로서, 액트(902)에서 액세스되는 정보는, 유저의 모바일 디바이스가, 유저의 위치에 관해 물어보는 메시지(예를 들면, 텍스트 메시지, 이메일 메시지, 등등)를 수신하는 경우(예를 들면, 메시지 "어디에 있니"를 수신하는 경우), 모바일 디바이스 상에서 실행되는 가상 어시스턴트가, 메시지의 전송자에게, 모바일 디바이스의 위치를 나타내는 정보(예를 들면, GPS 좌표)를 포함하는 응답을 자동적으로 전송한다는 것을 특정할 수도 있다.
유저 특정 조건 및 대응하는 유저 특정 액션의 상기 설명된 예는 예시적인 것이다는 것이 인식되어야 한다. 유저는 임의의 다른 적절한 조건 및 대응 액션을 특정할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
유저는 하나 이상의 조건 및 하나 이상의 대응하는 액션을 임의의 적절한 방식으로 특정할 수도 있다. 몇몇 실시형태에서, 유저는 유저가 상호작용하고 있는 가상 어시스턴트(또는 유저로부터 보이스 입력을 수신하도록 구성되는 임의의 다른 적절한 애플리케이션 프로그램)에게 보이스 입력을 제공할 수도 있는데, 보이스 입력은 적어도 하나의 조건 및 적어도 하나의 대응하는 액션을 특정한다. 가상 어시스턴트는, 자동 음성 인식, 자연 언어 이해, 및/또는 임의의 다른 적절한 기술을 사용하여, 수신된 입력을 프로세싱하여 특정된 조건(들) 및 대응하는 액션(들)을 식별할 수도 있다. 유저는 하나 이상의 조건 및/또는 액션을 하나 이상의 논리 연산자(예를 들면, AND, OR, XOR, NOT, 등등)를 사용하여 특정할 수도 있다. 하나의 비제한적인 예로서, 유저는, "금요일이다" AND "토요일의 날씨 예보가 맑다" AND NOT "스테이시(Stacy)가 시내에 있다"인 경우, 가상 어시스턴트가 "메시지 '내일 만나자'를 리사(Lisa)에게 전송" AND "오후 6시 리츠 칼튼(Ritz Carlton) 레스토랑 자리 예약"을 수행해야 한다는 조건을 특정할 수도 있다.
적어도 하나의 유저 특정 조건 및 적어도 하나의 대응하는 액션을 특정하는 정보가 액트(902)에서 액세스된 이후, 프로세스(900)는 결정 블록(904)으로 진행하는데, 여기서는, 유저 특정 조건(들)이 충족되었는지의 여부에 관한 결정이 이루어진다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 예를 들면, 몇몇 실시형태에서, 프로세스(900)를 실행하는 디바이스는, 유저 특정 조건(들)이 충족되었는지의 여부를 결정하기 위해, 정보의 하나 이상의 소스(예를 들면, 하나 이상의 뉴스 소스, 교통량 보고 데이터 소스, 주식 가격 소스, 소셜 네트워크, 등등)를 모니터링 및/또는 검색할 수도 있다.
유저 특정 조건(들)이 충족되지 않았다는 것이 결정되는 경우, 프로세스(900)는 결정 블록(904)으로 복귀할 수도 있다. 이 방식에서, 프로세스는, 유저 특정 조건(들)이 충족되었는지의 여부를 계속적으로 모니터링할 수도 있다. 결정은 임의의 특정된 시간 간격에서 반복적으로 행해질 수도 있고, 이벤트의 발생에 의해 또는 임의의 적절한 방식으로 트리거될 수도 있다. 유저 특정 조건(들)이 충족되었다는 것이 결정되는 경우, 프로세스(900)는 액트(906)로 진행하는데, 여기서는, 프로세스(900)를 실행하는 컴퓨팅 디바이스가 유저의 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 유저 특정 조건에 대응하는 하나 이상의 유저 특정 액션을 수행하게 한다. 몇몇 유저 특정 액션이 가상 어시스턴트 단독에 의해 수행될 수도 있지만(예를 들면, 보이스 통지를 생성할 수도 있지만), 몇몇 실시형태에서, 유저 특정 액션은, 적어도 부분적으로, 가상 어시스턴트를 구현하도록 프로그래밍되는 디바이스 상에서 실행되는 다른 애플리케이션 프로그램(예를 들면, 이메일 애플리케이션 프로그램, 음악 플레이어, 알람 프로그램, 캘린더 애플리케이션 프로그램, 웹 브라우저 애플리케이션 프로그램 등등)에 의해 수행될 수도 있다. 액트(906)가 수행된 이후, 프로세스(900)는 완료한다.
몇몇 실시형태에서, 프로세스(900)는 다수의 소프트웨어 에이전트를 사용하는 것에 의해 수행될 수도 있다. 각각의 소프트웨어 에이전트는, 적어도 하나의 유저 특정 조건이 충족되는지의 여부를 결정하도록 프로그래밍될 수도 있고, 적어도 하나의 유저 특정 조건이 충족된다는 것을 소프트웨어 에이전트가 결정하는 경우, 소프트웨어 에이전트는 가상 어시스턴트로 하여금, 유저 특정 조건(들)에 대응하는 적어도 하나의 유저 특정 액션을 수행하게 할 수도 있다. 따라서, 몇몇 실시형태에서, 상이한 유저 특정 조건이 충족되는지의 여부를 결정하는 것을 상이한 소프트웨어 에이전트가 담당할 수도 있다. 예를 들면, 하나의 소프트웨어 에이전트는 교통 정보를 모니터링하여, 유저의 경로 상에 교통 문제가 존재하는지의 여부를 결정하도록, 그리고, 유저의 경로 상에 교통 문제가 존재한다는 것의 결정시, 유저가 운전하고 있는 자동차의 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 교통 문제에 관한 정보를 유저에게 제공하게 하도록 구성될 수도 있다. 하나 이상의 뉴스 소스를 모니터링하여, 유저가 좋아하는 스포츠 팀에 관한 새로운 기사가 포스팅되었는지의 여부를 결정하도록, 그리고, 새로운 기사가 포스팅되었다는 것의 결정시, 유저의 디바이스 상의 가상 어시스턴트로 하여금, 새로운 기사에 대한 링크를 유저에게 제공하게 하도록, 상이한 소프트웨어 에이전트가 구성될 수도 있다.
소프트웨어 에이전트는, 적어도 하나의 프로세서에 의한 실행시, 적어도 하나의 프로세서 에이전트로 하여금 하나 이상의 기능을 수행하게 하는 프로세서 실행가능한 명령어를 포함하는 프로그램일 수도 있다. 소프트웨어 에이전트는, 소프트웨어 에이전트를 호출하는 어떠한 유저 입력 없이도, 자동적으로 호출될 수도 있다. 소프트웨어 에이전트는, 디바이스의 유저와의 상호작용 없이, 디바이스 상에서 백그라운드로 실행할 수도 있다. 하나의 디바이스 상에서 실행되는 소프트웨어 에이전트는 다른 디바이스로 "이동"될 수도 있고, 그로 인해, 하나의 디바이스 상에서 소프트웨어 에이전트에 의해 수행되고 있는 프로세스는 다른 디바이스 상에서 (예를 들면, 다른 디바이스 상에서 실행되는 소프트웨어 에이전트에 의해) 계속 수행된다. 소프트웨어 에이전트는, 임의의 적절한 디바이스 상에서 실행되는 하나 이상의 다른 소프트웨어 프로그램(예를 들면, 소프트웨어 에이전트, 가상 어시스턴트, 애플리케이션 프로그램, 오퍼레이팅 시스템, 등등)으로 정보를 전송할 수도 있고 그 하나 이상의 다른 소프트웨어 프로그램으로부터 정보를 수신할 수도 있다. 소프트웨어 에이전트는, 임의의 적절한 디바이스 상에서 실행되는 하나 이상의 다른 소프트웨어 프로그램으로 하여금 액션을 수행하게 할 수도 있다. 예를 들면, 하나의 디바이스 상에서 실행되는 소프트웨어 에이전트는, 동일한 디바이스 상에서 또는 다른 디바이스 상에서 실행되는 가상 어시스턴트로 하여금 임의의 적절한 액션을 수행하게 할 수도 있는데, 그 예는 도 9를 참조로 제공되었다.
몇몇 실시형태에서, 프로세스(900)가 다수의 소프트웨어 에이전트에 의해 수행되는 경우, 소프트웨어 에이전트는 하나의 디바이스(예를 들면, 서버, 가상 어시스턴트를 구현하도록 프로그래밍된 디바이스, 등등) 상에서 실행할 수도 있거나 또는 다수의 디바이스(예를 들면, 다수의 서버, 적어도 하나의 서버 및 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍된 적어도 하나의 디바이스, 등등) 상에서 분산 방식으로 실행할 수도 있다. 따라서, 몇몇 실시형태에서, 프로세스(900)는, 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍된 디바이스(예를 들면, 컴퓨팅 디바이스(104a)) 상에서, 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍된 하나 이상의 디바이스와 통신하도록 구성된 디바이스(예를 들면, 서버(110)) 상에서, 또는, 적어도 부분적으로, 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍된 하나 이상의 디바이스와 통신하도록 구성된 디바이스 상에서 수행될 수도 있다. 몇몇 실시형태에서, 소프트웨어 에이전트가 다수의 디바이스 상에서 분산 방식으로 실행하는 경우, 소프트웨어 에이전트의 실행이 다수의 디바이스 사이에서 분산되는 방식은, 디바이스와 관련되는 컴퓨팅 리소스의 가격 및/또는 이용가능성에 의존할 수도 있다. 예를 들면, 소프트웨어 에이전트의 실행이 다수의 디바이스 사이에서 분산되는 방식은, 디바이스 중 하나 이상의 디바이스 상에서의 이용가능한 컴퓨팅 파워, 디바이스 중 하나 이상의 디바이스 상에서의 이용가능한 메모리, 디바이스 중 하나 이상의 디바이스의 네트워크 연결성, 디바이스 중 하나 이상의 디바이스에 의한 네트워크에 연결하는 비용(예를 들면, 연결이 가정에서의 무선 LAN 연결과 같이 저렴한지 또는 외국에서의 셀룰러 폰 연결과 같이 고가인지의 여부), 디바이스 중 하나 이상이 배터리에 의해 전력을 공급받는지 또는 전원(power supply)에 연결되어 있는지의 여부, 및 등등에 의존할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트가 (예를 들면, 프로세스(900)의 액트(906)의 일부로서 또는 임의의 다른 적절한 상황에서) 액션을 수행한 이후, 유저는 액션과 관련된 대화에 가상 어시스턴트를 참여시킬 수도 있다. 유저는, 가상 어시스턴트에게 보이스 입력(예를 들면, 자연 언어 입력)을 제공하는 것에 의해, 입력을 타이핑하는 것에 의해, 및/또는 임의의 다른 적절한 방식으로 입력을 제공하는 것에 의해, 가상 어시스턴트를 대화에 참여시킬 수도 있다. 가상 어시스턴트는 ASR, NLU 및/또는 임의의 다른 적절한 타입의 스피치 프로세싱 기술을 사용하여 입력을 프로세싱할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 유저의 발화된 입력을 인식하기 위해 하나 이상의 토픽 의존적 언어 모델(topic-dependent language model)을 사용할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트가 정보(예를 들면, 슈퍼볼(Superbowl) 경기에서 뉴 잉글랜드 패트리엇츠가 일방적으로 우세한 스코어(lopsided score)로 뉴욕 자이언츠(New York Giants)를 물리치고 있다는 통지)를 유저에게 제시하는 것에 응답하여, 유저는, 제시된 정보에 관해 후속 질문(예를 들면, "팀 테보(Tim Tebow)가 얼마나 많은 터치다운을 던졌는가?")을 가상 어시스턴트에게 물어보는 것에 의해 유저에게 추가 정보를 제공할 것을 가상 어시스턴트에게 요청할 수도 있다. 가상 어시스턴트는, 스포츠에 관련하는 스피치 입력을 인식하기 위한 토픽 의존적 언어 모델 및/또는 임의의 다른 적절한 언어 모델을 사용하여, 수신된 보이스 입력을 인식할 수도 있다.
상기 설명된 실시형태에서, 조건 및 가상 어시스턴트에 의해 수행될 대응하는 액션은 유저에 의해 특정된다. 그러나, 본원에서 제공되는 본 개시의 양태는, 조건 및 대응하는 액션이 유저에 의해 특정되게 하는 것으로 제한되지 않는다. 다른 실시형태에서, 조건 및 대응하는 액션은 유저의 프로파일의 정보에 기초하여 자동적으로 특정될 수도 있다. 하나의 비제한적인 예로서, 유저의 프로파일의 정보는 분석되어 유저가 관심을 갖는 토픽(예를 들면, 보츠와나(Botswana) 정치)을 식별할 수도 있고, 유저가 관심을 갖는 식별된 토픽에 관련되는 정보가 이용가능한 경우(예를 들면, 보츠와나 선거에 관한 뉴스 기사가 발행된 경우), 가상 어시스턴트가 그 토픽에 관련되는 정보(예를 들면, 뉴스 기사에 대한 링크)를 유저에게 제공해야 한다는 것을 나타내기 위한 조건-액션 쌍이 특정될 수도 있다. 특정한 비제한적인 예로서, 유저의 프로파일의 정보는 분석되어, 유저가 오하이오(Ohio) 지역에 연락처가 있다는 것을 식별할 수도 있고, 오하이오 지역에 관한 정보(예를 들면, 토네이도가 오하이오 지역의 데이톤(Dayton)을 강타했음)가 이용가능하게 되는 경우, 가상 어시스턴트는 그 정보(예를 들면, 뉴스 기사에 대한 링크, 통지, 등등)를 유저에게 제공해야 한다는 것을 나타내기 위해 조건-액션 쌍이 특정될 수도 있다. 다른 특정한 비제한적인 예로서, 유저의 프로파일의 정보는 분석되어, 유저가 블랙 사바쓰(Black Sabbath)라는 밴드를 좋아한다는 것(예를 들면, 유저가 블랙 사바쓰 노래를 많이 청취했다는 것)을 결정할 수도 있고, 뉴스에서 오지 오스본(Ozzy Osbourne)에 관한 정보가 뉴스에서 나타나는 경우, 가상 어시스턴트가 이 정보를 유저에게 제공해야 한다는 것을 나타내기 위해 조건-액션 쌍이 특정될 수도 있다.
조건 및 대응하는 액션을 자동적으로 특정하도록 분석될 수도 있는 정보를 포함해서, 유저의 프로파일의 정보는, 유저에 의해 특정될 수도 있고(예를 들면, 유저가 관심을 갖는 뉴스 토픽을 명시적으로 특정할 수도 있고), 유저에 의해 수행되는 액션(들)으로부터 자동적으로 식별될 수도 있고(예를 들면, 유저가 뉴스 토픽에 관한 정보를 반복적으로 찾아보는 경우, 시스템은 이 뉴스 토픽이 유저가 관심을 갖는 것이다는 것을 추론하고 그 정보를 유저의 프로파일에 저장한다), 및/또는 임의의 다른 적절한 방식으로 자동적으로 식별될 수도 있다는 것이 인식되어야 한다.
조건 및 대응하는 액션은, 유저의 프로파일에 액세스할 수 있는 임의의 적절한 디바이스 상에서 실행되는 임의의 적절한 소프트웨어에 의해 자동적으로 특정될 수도 있는데, 그 예는 본원에서 제공된다. 조건 및 대응하는 액션은 임의의 적절한 방식으로 자동적으로 특정될 수도 있다. 예를 들면, 조건 및 대응하는 액션은, 조건이 충족되었는지의 여부를 결정하도록 그리고 조건이 충족되는 경우 가상 어시스턴트로 하여금 대응하는 액션을 수행하게 하도록 구성되는 소프트웨어 에이전트를 생성하는 것에 의해 특정될 수도 있다. 대안적으로, 조건 및 액션은 임의의 다른 적절한 방식(예를 들면, 조건/액트 쌍을 반영하는 데이터를 저장하는 것)으로 자동적으로 특정될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
VI. 가상 어시스턴트를 사용한 상호작용식 보이스 응답 시스템과의 호 수행
상기에서 설명된 바와 같이, 몇몇 실시형태는, 호출자의 디바이스 상에서 실행되는 가상 어시스턴트를 사용하여 IVR 시스템과 호출자 사이에서 호를 행하는 것을 제공한다. 가상 어시스턴트는, 호 동안 호출자에게 정보가 제공되었던 스타일 및/또는 호를 행하기 위해 호출자에 의해 사용된 디바이스와 IVR 사이에서 전달되었던 정보의 컨텐츠에 영향을 끼치는 것에 의해 호를 행할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 호출자의 프로파일의 적어도 몇몇 정보에 액세스할 수도 있고, 액세스된 정보에 기초하여, 호 동안 호출자에게 정보가 제공되었던 스타일 및/또는 호를 행하기 위해 호출자에 의해 사용되는 디바이스와 IVR 사이에서 전달되었던 정보의 컨텐츠에 영향을 끼치는 것에 의해 호를 행할 수도 있다.
도 10은, 호출자와 IVR 시스템 사이에서 호를 행하는 것에 관련되는 본 개시의 몇몇 실시형태가 동작할 수도 있는 예시적인 비제한적 환경(1000)을 도시한다.
환경(1000)에서, 호출자(1002)는 IVR 시스템(1010)과의 호를 행하기 위해 임의의 적절한 디바이스(1004)를 사용할 수도 있다. 하나의 실시형태에서, 디바이스(1004)는, IVR 시스템(1010)과 통신하기 위해 호출자(1002)가 사용할 수도 있는 임의의 적절한 모바일 디바이스일 수도 있다. 예를 들면, 디바이스(1004)는 전용 모바일 폰(예를 들면, 셀룰러 폰), 모바일 스마트폰, PDA, 랩탑 컴퓨터, 태블릿 컴퓨터, 또는 통신 매체(예를 들면, 유선 또는 무선 통신 매체)를 통한 호를 지원할 수 있는 임의의 다른 모바일 디바이스일 수도 있다. 다른 실시형태에서, 호출자(1002)는 모바일 디바이스를 사용하는 것에 의해 호를 행하는 것으로 제한되지 않고 호를 지원할 수 있는 임의의 디바이스를 사용할 수도 있다. 예를 들면, 호출자(1002)는 지상회선(landline)에 연결된 전화, 인터넷과 같은 네트워크에 연결된 데스크탑 컴퓨터를 사용하는 것에 의해, 또는 IVR 시스템(1010)과 통신할 수 있는 임의의 다른 디바이스를 사용하는 것에 의해 IVR 시스템(1010)과 통신할 수도 있다.
몇몇 실시형태에서, 디바이스(1004)는 본원에서 설명되는 실시형태에 따른 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍될 수도 있다. 디바이스(1004) 상에서 구현되는 가상 어시스턴트는, 호출자의 프로파일(예를 들면, 도 2를 참조로 설명되는 유저 프로파일(200))에서의 적어도 몇몇 정보에 기초하여 호출자(1002)와 IVR 시스템 사이에서 호를 행하도록 구성될 수도 있다. 호출자의 프로파일은 디바이스(1004) 상에 로컬하게 및/또는 통신 매체(1008)를 통해 디바이스(1004)가 접속되는 서버(1012) 상에 원격으로 저장될 수도 있고, 디바이스(1004) 상에서 실행되는 가상 어시스턴트는 호출자의 프로파일의 로컬하게 및/또는 원격으로 저장된 사본에 액세스하도록 구성될 수도 있다. 서버(1012)는 임의의 적절한 타입의 서버일 수도 있으며, 예를 들면, 도 1a를 참조로 설명되는 서버(110)일 수도 있다. 서버(1012)는 하나의 또는 다수의 서버일 수도 있다. 예시된 환경(1000)에서, 디바이스(1004)는 동일한 통신 매체를 사용하여 IVR 시스템 및 서버(1012)에 연결되는 것으로 도시된다. 그러나, 다른 실시형태에서, 디바이스(1004)는 상이한 통신 매체를 사용하여 IVR 시스템(1010) 및 서버(1012)에 연결될 수도 있다(예를 들면, 인터넷을 사용하여 서버(1012)에 연결되고 셀룰러 전화 네트워크를 사용하여 IVR 시스템(1010)에 연결될 수도 있다). 몇몇 실시형태에서, 가상 어시스턴트는, 디바이스(1004) 상에서, 서버(1012) 상에서, 부분적으로는 디바이스(1004) 상에서 그리고 부분적으로 서버(1012) 상에서 실행할 수도 있다(예를 들면, 가상 어시스턴트는 서버측 대화 관리 기능성을 사용하는 것에 의해 적어도 부분적으로 서버(1012) 상에서 실행할 수도 있다).
몇몇 실시형태에서, IVR 시스템(1010)은 호출자의 프로파일의 적어도 몇몇 정보에 기초하여 호출자(1002)와의 호를 행할 수도 있다. IVR 시스템(1010)은 호출자의 디바이스(1004) 및/또는 서버(1012) 상에 저장된 호출자의 프로파일의 적어도 몇몇 정보에 액세스하도록 구성될 수도 있다.
호는 보이스 통신을 지원하는 임의의 적절한 타입의 통신일 수도 있다. 호는, 호출자가 음향 입력을 제공하고 및/또는 음향 출력을 수신하는 것을 허용하는 것에 의해 호출자가 통신하는 것을 가능하게 할 수도 있다. 호는 호를 지원하기 위해 사용되는 통신 매체 또는 통신 인프라(communications infrastructure)의 타입에 의해 제한되지 않는다. 예를 들면, 호는 공중 교환 전화망, 무선 셀룰러 네트워크, 또는 다른 전화망을 사용하는 것에 의해 지원되는 전화 호일 수도 있다. 다른 예로서, 호는 인터넷 프로토콜을 지원하도록 구성되는 공중(예를 들면, 인터넷) 또는 사설(예를 들면, 회사 인트라넷) 네트워크에 의해 지원되는 VoIP 호, 또는 임의의 다른 타입의 호일 수도 있다.
몇몇 실시형태에서, 호출자(1002)와 IVR 시스템(1010) 사이의 호는, 가상 어시스턴트(호출자의 디바이스(1004) 및/또는 서버(1012) 상에서 실행함)에 의해, IVR 시스템(1010)에 의해, 또는 부분적으로 가상 어시스턴트에 의해 그리고 부분적으로는 IVR 시스템(1010)에 의해 관리될 수도 있다. 예를 들면, 가상 어시스턴트(호출자의 디바이스(1004) 및/또는 서버(1012) 상에서 실행함)는 호 동안 대화 관리 기능성을 수행할 수도 있다. 다른 예로서, IVR 시스템(1010)은 호 동안 대화 관리 기능성을 수행할 수도 있다. 또 다른 예로서, 대화 관리는 부분적으로는 가상 어시스턴트에 의해 그리고 부분적으로는 IVR 시스템에 의해 수행될 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트는 데이터 입력(예를 들면, 주소를 입력하는 것)과 같은 단순한 태스크를 수행하는 것에 관련되는 대화를 관리할 수도 있고 IVR 시스템은 IVR 시스템과 호출자 사이의 호 동안 대화의 다른 양태를 관리할 수도 있다.
예시된 환경(1000)에서, 디바이스(1004)는 통신 매체(1008)를 통해 IVR 시스템(1010)과 통신한다. 통신 매체(1008)는 임의의 적절한 네트워크 또는 다른 타입의 통신 매체일 수도 있다. 예를 들면, 통신 매체(1008)는 셀룰러 네트워크, 근거리 통신망, 회선 교환 전화망, 공중 회선 전화망, 인터넷, 상기의 것 중 임의의 것의 몇몇 조합, 또는 원격통신(telecommunication)을 지원할 수 있는 임의의 다른 통신 매체일 수도 있다.
예시된 환경(1000)에서, 디바이스(1004)는 무선 연결(1006a)을 통해 통신 매체(1008)에 통신적으로 커플링되고, IVR 시스템(1010)은 유선 연결(1006b)을 사용하여 통신 매체(1008)에 통신적으로 커플링되고, 서버(1012)는 유선 연결(1006c)을 통해 통신 매체(1008)에 통신적으로 커플링된다. 이것은 예에 불과한데, 디바이스(1004), IVR 시스템(1010), 및 서버(1012) 각각은, 유선 및/또는 무선 연결을 포함해서, 임의의 적절한 방식으로 통신 매체(1008)에 통신적으로 커플링될 수도 있기 때문이다.
IVR 시스템(1010)은, IVR 시스템의 기능성을 지원하는 것에 관련되는 프로세싱을 수행하도록 각각 구성되는 하나 이상의 컴퓨터(예를 들면, 서버)를 포함한다. 예시된 실시형태에서, IVR 시스템(1010)은 단일의 서버를 포함하지만, 다른 실시형태에서는, 임의의 적절한 수의 서버가 임의의 방식으로 사용되고 분산될 수도 있다. 예를 들면, 몇몇 실시형태에서, IVR 시스템(1010)은, 적어도 열 개, 적어도 백 개, 또는 적어도 천 개의 서버를 포함할 수도 있다. IVR 시스템이 다수의 서버를 포함하는 실시형태의 경우, 서버는 동일한 물리적 위치에 위치될 필요는 없고 다수의 물리적 위치에 걸쳐 분산될 수도 있다. 각각의 서버는 (단독으로 또는 하나 이상의 다른 서버와 조합하여) 하나 이상의 IVR 애플리케이션을 지원하도록 구성될 수도 있고 임의의 다른 프로그램을 실행하도록 구성될 수도 있다. 예를 들면, 서버 중 하나 이상은, 호 관리, 대화 관리, 음성 인식, 텍스트 음성 합성, 및/또는 IVR 시스템에 의해 사용되는 임의의 다른 기능에 관련되는 기능성을 지원하기 위한 프로그램을 실행하도록 구성될 수도 있다.
가상 어시스턴트를 사용하는 것에 의해 호출자와 IVR 시스템 사이에서 호를 행하기 위한 하나의 실시형태가 도 11a에서 도시되는데, 도 11a는 IVR 시스템과의 호를 행할 수 있는 임의의 디바이스(예를 들면, 디바이스(1004))에 의해 수행될 수도 있고 적어도 하나의 가상 어시스턴트를 구현하도록 프로그래밍될 수도 있는 예시적인 프로세스(1100)의 플로우차트이다.
프로세스(1100)는 액트(1102)에서 시작하는데, 여기서는 호출자와 IVR 시스템 사이에서 호가 개시된다. 호출자는 호를 행하기 위해 프로세스(1100)를 실행하는 디바이스를 사용하고 있다. 호출자와 IVR 시스템 사이의 호는 임의의 적절한 방식에 의해 개시될 수도 있다. 호출자는 디바이스 상에서 실행되는 가상 어시스턴트를 사용하여 IVR 시스템에 대한 호를 개시할 수도 있다. 대안적으로, 호출자는 다른 애플리케이션 프로그램(예를 들면, 전화 애플리케이션 프로그램, 인터넷 전화(voice-over IP) 대응 프로그램, 등등)을 사용하여 호를 개시할 수도 있다. IVR 시스템은 호출자에 대한 호를 개시할 수도 있거나, 또는 호는 다른 당사자(party)에 의해 예컨대 다른 IVR 시스템에 의해 또는 고객 호 담당자에 의해 호출자에 대해 개시될 수도 있다.
액트(1102)에서 가상 어시스턴트에 의해 호가 개시되었다면, 가상 어시스턴트는 호출자로부터 정보를 획득하는 것에 의해(예를 들면, 호출자는 자연 언어 입력 및/또는 임의의 다른 적절한 타입의 입력을 통해 정보를 제공할 수도 있다), 획득된 정보를 IVR 시스템으로 제공하는 것에 의해, 그리고 (예를 들면, 스피치를 생성하는 것에 의해, 텍스트를 생성하는 것에 의해, 그래픽 유저 인터페이스를 통해, 및/또는 임의의 다른 적절한 방식으로) 수신된 정보를 호출자에게 제공하는 것에 의해 호를 행할 수도 있다.
가상 어시스턴트를 사용하는 것에 의해 호가 개시되지 않았고, 그 후 호가 개시되면, 호는 가상 어시스턴트로 넘겨질 수도 있고 가상 어시스턴트는 상기 설명된 방식 중 임의의 것으로 호를 행할 수도 있다. 호는 임의의 적절한 방식으로 가상 어시스턴트에게 넘겨질 수도 있다. 하나의 비제한적인 예로서, IVR 시스템은, 호를 행하기 위해 호출자에 의해 사용되고 있는 디바이스가 가상 어시스턴트를 구현하도록 프로그래밍된다는 것을 결정할 수도 있고 디바이스가 호의 핸들링을 가상 어시스턴트에게 양도해야 한다는 것을 요구할 수도 있다. 다른 비제한적인 예로서, 호를 개시하기 위해 사용되는 애플리케이션 프로그램은, 디바이스 상의 가상 어시스턴트에 의해 호가 핸들링되기를 그/그녀가 바라는지의 여부에 관해 그/그녀에게 묻기 위해 호출자에게 프롬프트를 제시할 수도 있다. 또 다른 비제한적인 예로서, 가상 어시스턴트는 백그라운드에서 실행하고 있을 수도 있고 호출자와 IVR 사이에서 호가 확립되었다는 것을 검출할 수도 있고 가상 어시스턴트에 의해 호가 핸들링되기를 그/그녀가 바라는지의 여부를 그/그녀에게 묻기 위해 호출자에게 프롬프트를 제시할 수도 있거나 또는 대안적으로 호의 핸들링을 넘겨 받을 수도 있다.
다음에, 프로세스(1100)는 액트(1104)로 진행하는데, 여기서는 가상 어시스턴트가 호출자의 프로파일의 적어도 몇몇 정보에 액세스한다. 가상 어시스턴트는 (예를 들면, 프로세스(1100)를 실행하는 디바이스 상의, 네트워크 연결을 통해 원격 서버 상의, 직접 무선 연결을 통해 휴대형 디바이스 상의, 등등의) 임의의 적절한 소스로부터의 호출자의 프로파일의 사본에, (예를 들면, 도 1a 및 도 1b를 참조로) 본원에서 설명되는 방법 중 임의의 것을 포함해서, 임의의 적절한 방식으로 액세스할 수도 있다.
다음에, 프로세스(1100)는 액트(1106)로 진행하는데, 여기서는 액세스된 정보에 기초하여 가상 어시스턴트가 IVR 시스템과의 호를 행한다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 예를 들면, 몇몇 실시형태에서, 가상 어시스턴트는 가상 어시스턴트 페르소나를 특정하는 호출자의 프로파일의 정보에 액세스할 수도 있고 가상 어시스턴트는 IVR로부터 수신되는 정보를 호출자에게 제공할 때 가상 어시스턴트 페르소나를 채택할 수도 있다. 예를 들면, 가상 어시스턴트는, IVR로부터 수신되는 정보를 호출자에게 제공할 때, 채택된 가상 어시스턴트 페르소나와 관련되는 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성할 수도 있다. 다른 예로서, 가상 어시스턴트는, IVR로부터 수신되는 정보를 호출자에게 제공할 때, 채택된 가상 어시스턴트 페르소나와 관련되는 텍스트 스타일에 따라 텍스트를 생성할 수도 있다. 이 방식에서, IVR로부터 획득되는 정보는 개인 맞춤된 방식으로 호출자에게 제공될 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는, 호출자가 즐겨 청취하는 음악(예를 들면, 하나 이상의 노래, 음악 아티스트, 음악의 타입 등등)을 식별하는 호출자의 프로파일의 정보에 액세스할 수도 있다. IVR 시스템이 호출자에게 음악을 플레이하기를 원하는 경우(예를 들면, 호출자가 통화 대기 중인 경우), 가상 어시스턴트는, IVR 시스템에 의해 출력되는 음악 대신, 호출자의 프로파일에서 호출자가 즐겨 청취하는 음악으로서 식별되는 음악 중 적어도 몇몇을 플레이할 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트는 IVR 시스템에 의해 소망되는 정보(예를 들면, 호출자의 이름, 호출자의 주소, 계좌 번호, 호출자의 생일, 호출자의 스케줄 등등)를 식별할 수도 있고, 가상 어시스턴트가 이러한 정보를 IVR 시스템으로 제공할 수도 있는지의 여부를 결정할 수도 있다. IVR 시스템에 의해 소망되는 정보를 가상 어시스턴트가 IVR 시스템으로 제공할 수도 있다는 것을 가상 어시스턴트가 결정하는 경우, 가상 어시스턴트는 (예를 들면, 호출자의 프로파일에 있는) 이 정보에 액세스할 수도 있고 그것을 IVR 시스템으로 제공할 수도 있다. 이것은 호출자로부터의 임의의 입력으로 또는 그 임의의 입력 없이 행해질 수도 있다. 하나의 비제한적이고 예시적인 예로서, 호출자는 전기 기사(electrician)가 호출자의 거주지로 방문할 약속을 스케줄링하기 위해 전기 회사의 IVR 시스템과의 호를 개시할 수도 있다. 호출자의 가상 어시스턴트는 호출자의 프로파일에 있는 호출자의 스케줄에 액세스할 수도 있고 호출자의 스케줄에 적어도 부분적으로 기초하여 전기 기사와의 약속을 스케줄링할 수도 있다. IVR 시스템에 의해 소망되는 정보를 IVR 시스템으로 제공하는 것이 허용되지 않는다는 것을 가상 어시스턴트가 결정하는 경우(및/또는 IVR 시스템에 의해 소망되는 정보를 호출자의 프로파일이 포함하지 않는다는 것을 가상 어시스턴트가 결정하는 경우), 가상 어시스턴트는 호출자의 프로파일로부터 IVR 시스템으로 소망의 정보를 제공하기 위한(및/또는 소망의 정보를 제공하기 위한) 퍼미션에 대해 호출자에게 프롬프트를 제시할 수도 있다.
몇몇 실시형태에서, 호출자의 프로파일은 호출자와 IVR 시스템 사이의 하나 이상의 이전 호에 관련되는 데이터를 저장할 수도 있고, 가상 어시스턴트는 이들 데이터에 적어도 부분적으로 기초하여 호출자와 IVR 시스템 사이에서 호를 행할 수도 있다. 예를 들면, 호출자는 IVR 시스템과의 하나 이상의 이전 호 동안 서비스(예를 들면, 소포를 추적하는 것, 계정 잔액(account balance)을 체크하는 것, 항공 비행편(airline flight)의 상태를 체크하는 것 등등)에 액세스할 것을 요청했을 수도 있고, 서비스 중 하나 이상의 대상(추적할 어떤 소포, 보고할 어떤 은행 계정 잔고, 체크할 어떤 비행 상태)을 식별했을 수도 있다. 가상 어시스턴트는, 호출자가 동일한 서비스를 요청하기 위해 IVR 시스템을 호출하고 있는지의 여부를 결정하도록 호출자에게 프롬프트를 제시할 수도 있고, 호출자에게 이 정보를 재입력하도록 프롬프트를 제시하지 않으면서 서비스(예를 들면, 소포를 추적하는 것) 및 서비스의 대상(예를 들면, 추적할 소포를 식별하는 추적 번호(tracking number))을 식별하는 정보를 IVR 시스템으로 제공할 수도 있다.
몇몇 실시형태에서, 호출자의 프로파일은 IVR 시스템과 관련되는 정보를 저장할 수도 있고, 가상 어시스턴트는 이 정보에 적어도 부분적으로 기초하여 호출자와 IVR 시스템 사이에서 호를 행할 수도 있다. IVR 시스템과 관련되는 정보는 IVR 시스템에 의해 또는 IVR 시스템을 위해 호출자의 프로파일에(예를 들면, IVR 시스템에 등록된 호출자의 프로파일의 한 부분에) 기록된 정보를 포함할 수도 있다. 하나의 비제한적인 예로서, IVR 시스템과 관련되는 정보는 호출자에 관한 임의의 적절한 정보(예를 들면, 호출자의 지불 이력, 호출자의 통화 이력, 하나 이상의 이전 호 동안 호출자에 의해 IVR로 제공된 정보, 하나 이상의 이전 호 동안 IVR에 의해 호출자에게 제공된 정보, 써드파티 소스로부터 IVR에 의해 획득되는 호출자에 관한 정보, 등등)를 IVR의 데이터베이스에 포함할 수도 있다. 몇몇 실시형태에서, IVR 시스템과 관련되는 정보는, 호출자의 프로파일의 다른 정보가 저장되는 다른 위치(예를 들면, 서버(1012))와는 상이한 하나의 위치(예를 들면, 서버(1010))에 저장될 수도 있다. 호출자의 프로파일의 일부는 참조에 의해 링크될 수도 있다. 예를 들면, 서버(1012) 상에 저장된 호출자의 프로파일의 일부는 서버(1010) 상에 저장된 호출자의 프로파일의 일부에 대한 참조(예를 들면, 링크)를 저장할 수도 있다.
상기에서 설명되는 바와 같이, 몇몇 실시형태에서, 호를 행하기 위해 호출자에 의해 사용되는 디바이스는 호출자의 프로파일의 정보에 액세스할 수도 있고, 디바이스 상에서 실행되는 가상 어시스턴트는 호출자와 IVR 시스템 사이에서 호를 행하기 위해 이 정보를 사용할 수도 있다. 그러나, 가상 어시스턴트는 호출자와 IVR 시스템 사이에서 호를 행하기 위해 호출자의 프로파일에 있는 정보만을 사용하는 것으로 제한되지 않으며, 호를 행하기 위해 호출자의 프로파일의 정보 외에 또는 그 정보 대신 임의의 다른 적절한 정보를 사용할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
다른 실시형태에서, IVR 시스템은 호출자의 프로파일의 적어도 몇몇 정보에 액세스할 수도 있고 액세스된 정보에 기초하여 호출자와의 호를 행할 수도 있다. 하나의 이러한 실시형태는 도 11b를 참조로 설명되는데, 도 11b는 IVR 시스템(예를 들면, 도 10을 참조로 설명된 IVR 시스템(1010))에 의해 수행되는 예시적인 프로세스(1150)의 플로우차트를 도시한다.
프로세스(1150)는 액트(1152)에서 시작하는데, 여기서는 IVR 시스템과 호출자 사이의 호가 개시된다. 호는 임의의 적절한 방식으로 개시될 수도 있는데, 그 예는 프로세스(1100)를 참조로 설명되었다. 다음에, 프로세스(1150)는 액트(1154)로 진행하는데, 여기서는 IVR 시스템이 호출자의 프로파일의 적어도 몇몇 정보에 대한 액세스를 요청한다. IVR 시스템은 임의의 적절한 소스(예를 들면, IVR 시스템과의 호를 행하기 위해 호출자에 의해 사용되는 디바이스, 원격 서버(예를 들면, 서버(1012)) 등등)에게 호출자의 프로파일의 사본에 액세스할 것을 요청할 수도 있다. 몇몇 실시형태에서, 호출자의 프로파일의 정보에 대한 액세스는, 프로파일의 적어도 몇몇 정보가 IVR 시스템에 의해 액세스될 수도 있다는 것을 호출자의 프로파일이 나타낼 때, IVR 시스템으로 제공될 수도 있다.
다음에, 프로세스(1150)는 액트(1156)로 진행하는데, 여기서는 IVR 시스템이 호출자의 프로파일의 적어도 몇몇 정보에 기초하여 호출자와의 호를 행한다. 호가 종료한 이후, 프로세스(1150)는 완료한다. IVR 시스템은 호출자의 프로파일의 정보에 기초하여 호출자와의 호를 임의의 적절한 방식으로 행할 수도 있다. 예를 들면, 몇몇 실시형태에서, IVR 시스템은 가상 어시스턴트 페르소나를 특정하는 호출자의 프로파일의 정보에 액세스할 수도 있고, 가상 어시스턴트 페르소나와 관련되는 보이스 폰트 및/또는 발화 스타일에 따라 스피치를 생성하는 것에 의해, 음향 출력을 호출자에게 제시하는 방식을 커스터마이징할 수도 있다. 이 방식에서, IVR은 호출자의 선호도에 커스터마이징된 보이스로 호출자에게 "말할" 수도 있다.
몇몇 실시형태에서, IVR 시스템은, 호출자가 즐겨 청취하는 음악(예를 들면, 하나 이상의 노래, 음악 아티스트, 음악의 타입 등등)을 식별하는 호출자의 프로파일의 정보에 액세스할 수도 있다. IVR 시스템이 호출자에게 음악을 플레이하는 경우(예를 들면, 호출자가 통화 대기 중인 경우), IVR 시스템은 호출자의 프로파일에서 호출자가 즐겨 청취하는 음악으로서 식별되는 음악 중 적어도 몇몇을 플레이할 수도 있다.
몇몇 실시형태에서, IVR 시스템은, 호출자의 프로파일에서, 호출자로부터 IVR 시스템이 수집하기를 소망하는 적어도 몇몇 정보(예를 들면, 호출자의 이름, 호출자의 주소, 계좌 번호, 호출자의 생일, 호출자의 스케줄 등등)에 액세스할 수도 있다. 호출자의 프로파일에서 IVR 시스템이 소망하는 정보에 IVR 시스템이 액세스할 수 있는 경우, IVR 시스템은 유저로부터의 어떠한 입력 없이도 이 정보를 사용할 수도 있거나 또는 액세스된 정보가 정확한지의 여부를 확인하도록 유저에게 프롬프트를 제시할 수도 있다(예를 들면, IVR 시스템은 "당신의 우편 주소가 여전히 피치 트리 레인(Peach Tree Lane) 55입니까?" 라고 질문할 수도 있다).
상기 설명된 실시형태에서, IVR 시스템은, 호출자의 프로파일에 저장된 정보에 기초하여 자신이 호출자에게 출력하는 보이스 및/또는 음악을 커스터마이징할 수도 있다. 추가적으로 또는 대안적으로, IVR 시스템은, 사람들로부터 보이스 및/또는 음악 선호도를 획득하고 획득된 정보를 서비스에 등록된 임의의 IVR 시스템이 (예를 들면, 무료로) 이용가능하게 만드는 서비스로부터 획득되는 정보에 기초하여, 자신이 호출자에게 출력하는 보이스 및/또는 음악을 커스터마이징할 수도 있다.
따라서, 몇몇 실시형태에서, 임의의 적절한 수의 유저로부터 보이스 및/또는 음악 선호도를 임의의 적절한 방식으로 획득할 수도 있고 획득된 정보 중 적어도 몇몇을 IVR 시스템을 제공할 수도 있다. 유저는 서비스에 (예를 들면, 웹사이트를 통해, 개인의 모바일 디바이스 상에서 실행되는 애플리케이션 프로그램을 통해, 등등을 통해) 액세스할 수도 있고, 유저의 보이스 및/또는 음악 선호도를 특정하는 정보를 서비스에게 제공할 수도 있다. 유저는, 자연 언어 입력을 제공하는 것에 의해(예를 들면, "나는 정말 비틀즈(Beatles)를 좋아한다"라고 말하는 것에 의해), 서비스에 의해 유저에게 제공되는 하나 이상의 음악 옵션을 선택하는 것에 의해(예를 들면, 웹페이지를 통해 유저에게 보여지는 노래의 리스트에서 하나 이상의 노래를 선택하는 것에 의해), 및/또는 임의의 다른 적절한 방식으로, 그의/그녀의 음악 선호도를 특정하는 정보를 제공할 수도 있다.
유저는 그의/그녀의 보이스 선호도를 특정하는 정보를 임의의 적절한 방식으로 제공할 수도 있는데, 예를 들면, 서비스에 의해 유저에게 제공되는 TTS 보이스의 세트로부터 하나 이상의 보이스를 선택하는 것에 의해 제공할 수도 있다. 몇몇 실시형태에서, 서비스는 하나 이상의 TTS 보이스(예를 들면, "영국 액센트의 여성 보이스", "영국 액센트의 남성 보이스", "여자 아이의 보이스", "조니 뎁(Johnny Depp)의 보이스", "안젤리나 졸리(Angelina Jolie)의 보이스", "로저 래빗(Roger Rabbit)의 보이스", 등등)의 리스트를 유저에게 제시할 수도 있고 유저는 리스트 상의 보이스 중 하나를 선택할 수도 있다. 유저가 리스트에서 TTS 보이스를 선택하는 것을 돕기 위해, 서비스는 TTS 보이스 중 하나 이상에 따라 생성되는 스피치의 샘플을 유저가 청취하는 것을 허용할 수도 있다. 서비스는 또한, (예를 들면, 피치, 발화 속도 등등을 포함하는 임의의 적절한 보이스 파라미터를 유저가 설정/변경하는 것을 허용하는 것에 의해) 유저가 리스트 상의 TTS 보이스 중 하나 이상을 커스터마이징하는 것을 허용할 수도 있다. 몇몇 실시형태에서, 서비스는, 적어도 부분적으로, 유저에 의해 제공되는 보이스 입력을 분석하고 분석의 결과를 사용하여 유저의 보이스처럼 들리는 TTS 보이스를 생성하는 것에 의해, 유저 자신의 보이스처럼 들리는 TTS 보이스를 유저가 생성하는 것을 허용할 수도 있다.
VII. 개인 맞춤된 여행 가이드
몇몇 실시형태에서, 유저와 상호작용하는 가상 어시스턴트는 유저에 대한 여행 가이드로서 작용할 수도 있다. 가상 어시스턴트는, 하나 이상의 장소를 포괄하는 여행을 생성할 수도 있고, 여행 중 한 장소로부터 다음 번 장소로 유저를 가이드할 수도 있고, 유저에게 여행 중인 장소에 관한 정보를 제공할 수도 있고, 및/또는 여행 중인 장소를 여행함에 있어서 유저를 보조하기 위한 임의의 다른 적절한 액션을 수행할 수도 있다. 가상 어시스턴트는 유저의 프로파일의 적어도 몇몇 정보에 기초하여 이들 액션 중 일부 또는 전체를 수행할 수도 있다. 예를 들면, 유저의 프로파일은 유저의 관심사항을 특정하는 정보를 포함할 수도 있고, 가상 어시스턴트는 (예를 들면, 유저가 관심을 갖는 장소를 여행에 포함시키는 것에 의해) 그 관심사항에 맞춤된 여행을 생성할 수도 있고, 유저에게 그녀의 관심사항에 맞춤된 여행에 대한 정보를 제공할 수도 있고, 등등일 수도 있다. 이 방식에서, 가상 어시스턴트는 유저에 대한 개인 맞춤된 여행 가이드로서 작용할 수도 있다.
몇몇 실시형태에서, 유저는, 가상 어시스턴트가 개인 맞춤된 여행을 생성해야 한다는 것을 요청하는 입력을 가상 어시스턴트에게 제공할 수도 있다. 유저는 지역(예를 들면, 도시, 마을, 시내, 인근, 지역 등등), 적어도 하나의 장소(예를 들면, 박물관, 랜드마크, 성(castle)), 및/또는 돌아 다닐 수도 있는 임의의 곳의 개인 맞춤된 여행을 요청할 수도 있다. 유저는 여행이 특정 시간(예를 들면, 하루 일정의 여행, 세 시간 일정의 여행, 일주일 일정의 드라이빙 여행 등등) 지속되어야 한다는 것을 요청할 수도 있다. 유저는, 여행이 한 지역의 특정 장소를 포함해야 한다는 것을 요청할 수도 있다(예를 들면, "펜웨이 파크(Fenway Park)를 포함하는 보스톤(Boston)의 여행을 생성해줘")추가적으로 또는 대안적으로, 유저는 여행을 요청할 때 임의의 다른 적절한 정보를 제공할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
개인 맞춤된 여행을 생성하기 위한 유저의 요청을 수신하는 것에 응답하여, 가상 어시스턴트는 요청에서의 정보에 적어도 부분적으로 기초하여 여행을 생성할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 유저의 프로파일의 적어도 몇몇 정보에 기초하여 여행을 생성할 수도 있다. 예를 들면, 유저가 보스톤의 여행을 요청하고 유저의 관심사항이 독서 및 타이(Thai) 음식을 포함한다는 것을 유저의 프로파일이 특정하는 경우, 가상 어시스턴트는 개인 맞춤된 여행에 서점 및 타이 레스토랑에서의 점심 식사를 포함시킬 수도 있다.
가상 어시스턴트는 여행에 포함시킬 하나 이상의 장소 및 그들을 방문할 순서를 선택하는 것에 의해 여행을 생성할 수도 있다. 가상 어시스턴트는 여행을 생성하기 위한 유저의 요청에서의 정보 및 유저의 프로파일에서의 정보에 기초하여 여행을 생성할 수도 있다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트는, 여행에 포함시킬 잠재적인 장소의 수집 정보(collection)를 포함하는 정보(예를 들면, 지리 정보 시스템, 맵 제공자, 등등으로부터 획득됨)에 액세스하는 것에 의해 그리고 유저의 프로파일에서의 정보에 기초하여 여행에 포함시킬 잠재적인 장소 중 하나 이상을 선택하는 것(예를 들면, 유저가 독서를 즐긴다는 것을 유저의 프로파일이 나타내는 경우 적어도 하나의 서점을 선택하는 것)에 의해 여행을 생성할 수도 있다. 다른 비제한적인 예로서, 가상 어시스턴트는, 여행의 기간이 유저가 요청했던 것(예를 들면, 대략 다섯 시간)이 되도록, 여행에 포함시킬 다수의 장소를 선택하는 것에 의해 여행을 생성할 수도 있다.
개인 맞춤된 여행이 생성된 이후, 가상 어시스턴트는 (예를 들면, 여행에서 특정 장소를 제외하는 것, 장소를 방문하는 순서를 변경하는 것 등등에 의해) 유저가 그 여행을 편집/변경하는 것을 허용할 수도 있다. 여행을 특정하는 정보는 여행을 하기 위해 사용될 수도 있고/있거나 나중의 시간에 여행을 하기 위해 저장될 수도 있다.
가상 어시스턴트는 생성된 여행 중에 유저를 가이드할 수도 있다. 가상 어시스턴트는, 여행 중인 한 장소에서 다음 장소로 이동하도록 유저에게 방향을 제공하기 위해 전지구 위치결정 시스템(global positioning system; GPS) 정보를 사용할 수도 있다. 여행 중인 각각의 장소에서, 가상 어시스턴트는 그 장소에 관한 정보를 유저에게 제공할 수도 있다(가상 어시스턴트는 한 장소에 관한 정보를 임의의 적절한 소스로부터 획득할 수도 있다). 가상 어시스턴트는 여행 중인 장소 및/또는 여행 자체에 관한 유저의 질문(예를 들면, "이 교회는 언제 세워졌지", "타이 레스토랑까지 얼마나 멀어" 등등)에 대답할 수도 있다
몇몇 실시형태에서, 가상 어시스턴트는, 디바이스가 가리키는 대상(예를 들면, 건물, 조상(statue), 등등)을 식별하기 위해 가상 어시스턴트가 실행되고 있는 디바이스(예를 들면, 스마트폰)의 위치 및/또는 방위를 특정하는 정보를 사용할 수도 있고, 대상에 관한 정보를 유저에게 제공할 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는 디바이스로 하여금 디바이스가 가리키고 있는 것의 이미지를 디스플레이하게 할 수도 있다. 이미지는 디바이스에 의해 디스플레이되는 다른 정보(예를 들면, 여행의 맵, 여행 중인 장소의 가상 현실 이미지 등등) 상에 중첩될 수도 있다. 몇몇 실시형태에서, 디바이스는 유저로부터 입력을 수신하도록 구성될 수도 있고/있거나 하나 이상의 보조 디바이스를 통해 유저에게 출력을 제시할 수도 있다. 예를 들면, 디바이스는 오디오 입력을 수신하도록 그리고 오디오 출력을 디바이스에 연결된 헤드셋을 통해 제시하도록 구성될 수도 있다. 또 다른 예로서, 디바이스는 스마트 글래스를 통해 유저에게 정보를 시각적으로 디스플레이하도록(예를 들면, 유저의 디바이스가 가리키고 있는 대상, 예컨대 빌딩에 관한 정보를 유저의 시야에서 제시하도록) 구성될 수도 있다.
몇몇 실시형태에서, 가상 어시스턴트가 개인 맞춤된 여행 가이드의 기능성을 구현할 수도 있지만, 본원에서 제공되는 본 개시의 양태는 이 점에서는 제한되지 않는다. 몇몇 실시형태에서, 개인 맞춤된 여행 가이드가 가상 어시스턴트가 아니라 독립형 애플리케이션 프로그램, 웹 기반 서비스, 또는 임의의 다른 적절한 방식으로서 구현될 수도 있다.
VIII. 태스크 매크로
다수의 상이한 하위 태스크를 포함하는 태스크를 수행하기 위해 컴퓨팅 디바이스(예를 들면, 모바일 디바이스, 데스크탑 컴퓨터 등등)를 사용할 것을 유저가 소망할 수도 있다는 것, 그러나 다수의 상이한 하위 태스크를 수행하기 위해 그 디바이스를 사용하는 것은, 특히 태스크가 반복적으로 수행되어야 하는 경우, 유저가 그 디바이스 상에서 다수의 애플리케이션 프로그램을 사용하는 것을 필요로 할 수도 있으며, 이것은 시간 소모적이다는 것을 본 출원인은 인식하였다.
하나의 비제한적인 예로서, 유저는 레스토랑에서의 그의/그녀의 친구와의 저녁식사를 준비하는 태스크를 수행하기를 소망할 수도 있다. 이 태스크는 다음을 포함하는 다수의 하위 태스크를 수행하는 것을 수반할 수도 있다: (예를 들면, 캘린더 애플리케이션 프로그램을 사용하여) 모든 사람이 이용가능한 시간을 식별하는 것, (예를 들면, 레스토랑 예약 애플리케이션 프로그램을 사용하여) 모든 사람이 이용가능한 시간 중 임의의 시간에 전체 참석자가 앉을 자리가 있는 레스토랑을 식별하는 것, 및 (예를 들면, 이메일 애플리케이션 프로그램을 사용하여) 저녁 식사에 대한 옵션을 열거하는 이메일 초청장을 친구 각각에게 전송하는 것. 이 예에서, 태스크를 수행하기 위해 유저는 적어도 세 개의 상이한 애플리케이션 프로그램(예를 들면, 캘린더 애플리케이션 프로그램, 레스토랑 예약 애플리케이션 프로그램, 및 이메일 애플리케이션 프로그램)을 사용해야 할 수도 있는데, 이것은, 특히 유저가 이 태스크를 반복적으로 수행하는 경우, 시간 소비적이다.
다수의 하위 태스크를 포함하는 태스크의 수행이 적어도 부분적으로 자동화되면, 향상된 유저 경험이 제공될 수도 있다는 것을 본 출원인은 인식하였다. 따라서, 몇몇 실시형태는, 실행시, 태스크의 수행을 적어도 부분적으로 자동화하는 프로세서 실행가능한 명령어를 포함하는 소프트웨어 프로그램인 태스크 매크로명령어(macroinstruction)(간략히, 태스크 매크로)를 생성하는 것에 의해, 다수의 하위 태스크를 포함하는 태스크의 수행을 적어도 부분적으로 자동화하는 것을 제공한다. 태스크 매크로는 커맨드(예를 들면, 보이스 커맨드, 버튼 누름, 등등)와 관련될 수도 있고 유저는 커맨드를 사용하는 것에 의해(예를 들면, 보이스 커맨드를 발화하는 것, 버튼을 누르는 것, 등등에 의해) 태스크 매크로를 호출할 수도 있다.
몇몇 실시형태에서, 태스크 매크로는, 시퀀스에서 각각의 하위 태스크의 수행을 유저가 명시적으로 개시할 필요가 없도록 하위 태스크의 시퀀스를 통해 유저를 가이드하는 것에 의해, 다수의 하위 태스크의 시퀀스를 포함하는 태스크의 수행을 적어도 부분적으로 자동화할 수도 있다. 이 방식에서, 태스크 매크로는 태스크를 수행하기 위한 워크플로우를 인코딩한다. 태스크 매크로는 하위 태스크 중 하나 이상을 수행하는 데 필요한 하나 이상의 입력을 자동적으로 제공할 수도 있다. 상기 설명된 예에서 계속하면, 친구와의 저녁 식사를 준비하기 위한 태스크 매크로는, 먼저, 캘린더 애플리케이션의 유저 인터페이스를 유저에게 제시할 수도 있고, (예를 들면, "다음" 버튼을 누르는 것에 의해 또는 임의의 다른 적절한 방식으로) 유저가 다음 하위 태스크로 진행할 준비가 되었다는 것을 유저가 나타내는 경우, 태스크 매크로는 레스토랑 예약 애플리케이션의 유저 인터페이스를 유저에게 자동적으로 제시할 수도 있고, 유저가 다음 하위 태스크로 진행할 준비가 되었다는 것을 유저가 나타내는 경우, 태스크 매크로는 이메일 애플리케이션의 유저 인터페이스를 유저에게 자동적으로 제시할 수도 있고 유저의 친구의 이메일 주소 및 식별된 레스토랑 중 하나에서의 저녁 식사에 친구를 초대하기 위한 초안의 텍스트로 미리 채워진 초안의 이메일을 유저에게 보여줄 수도 있다.
태스크 매크로는, 하나 이상의 하위 태스크의 각각을 수행하기 위해 사용되는 하나 이상의 다른 애플리케이션 프로그램과 (애플리케이션 프로그램의 API에 대한 호출을 통해) 상호작용할 수도 있다. 예를 들면, 친구와의 저녁 식사를 준비하기 위한 태스크 매크로는, 다른 하위 태스크를 수행하기 위해 사용되는 다른 애플리케이션 프로그램(예를 들면, 이용가능한 레스토랑을 식별하기 위해 사용되는 레스토랑 예약 프로그램)으로부터 획득되는 정보에 기초하여 하나의 하위 태스크를 수행하기 위한 애플리케이션 프로그램에 입력을 제공할 수도 있다(예를 들면, 유저의 친구를 레스토랑에 초대하는 초안의 이메일을 생성하기 위한 이메일 애플리케이션 프로그램에 레스토랑의 이름을 제공할 수도 있다). 몇몇 실시형태에서, 태스크 매크로는, 본원에서 설명되는 하나의 또는 다수의 소프트웨어 에이전트에 의해 구현될 수도 있다.
몇몇 실시형태에서, 태스크 매크로는 유저 및/또는 한 명 이상의 다른 유저에 관한 적어도 몇몇 정보에 액세스할 수도 있다. 예를 들면, 태스크 매크로는, 유저의 프로파일에 있는 및/또는 한 명 이상의 다른 유저의 프로파일(들)에 있는 적어도 몇몇 정보에, 본원에서 설명되는 방식 중 임의의 방식으로 액세스할 수도 있다. 예를 들면, 태스크 매크로는, 유저가 저녁 식사에 초대하기를 원하는 사람들의 스케줄에 관한 정보를 그들의 유저 프로파일에서 액세스할 수도 있다.
태스크 매크로는 임의의 적절한 방식으로 생성될 수도 있다. 몇몇 실시형태에서, 유저는, 유저가 태스크 매크로를 생성하기를 소망한다는 표시를 매크로 생성 애플리케이션 프로그램에게 제공하는 것에 의해 매크로를 "기록할" 수도 있고 매크로 생성 애플리케이션 프로그램은, 유저가 태스크 매크로를 생성하는 것을 완료했다는 표시를 유저가 제공할 때까지, 적어도 부분적으로, 유저의 후속하는 액션을 모니터링하여 기록하는(logging) 것에 의해 태스크 매크로를 생성한다. 예를 들면, 매크로 생성 애플리케이션 프로그램은 유저가 어떤 애플리케이션 프로그램을 사용하고 있는지, 유저가 어떤 순서로 그들을 사용하고 있는지, 및/또는 애플리케이션 프로그램의 각각으로 유저가 어떤 입력을 제공하고 있는지를 모니터링하여 기록할 수도 있고, 이 정보에 적어도 부분적으로 기초하여 태스크 매크로를 생성한다. 다른 실시형태에서, 유저는, 태스크를 수행하기 위해 사용되는 애플리케이션 프로그램의 시퀀스 및/또는 애플리케이션 프로그램 중 하나 이상의 각각으로 유저가 제공해야 하는 파라미터를 특정하기 위해 매크로 생성 애플리케이션 프로그램의 그래픽 유저 인터페이스를 사용하는 것에 의해 매크로를 생성할 수도 있다. 유저가 태스크 매크로 생성을 완료한 이후, 매크로 생성 애플리케이션 프로그램은 태스크 매크로를 저장할 수도 있고, 태스크 매크로를, (예를 들면, 디바이스 상에서 실행되는 가상 어시스턴트로 발화된 커맨드를 제공하는 것에 의해 또는 임의의 다른 적절한 방식으로) 나중의 시간에 태스크 매크로를 호출하기 위해 사용될 수도 있는 커맨드(이것은 유저가 특정할 수도 있음)와 관련시킬 수도 있다.
IX. 온톨로지(Ontology) 기반 프로세싱
몇몇 실시형태에서, 가상 어시스턴트는, 하나 이상의 온톨로지로부터 획득되는 정보에 적어도 부분적으로 기초하여 유저와 상호작용할 수도 있다. 온톨로지는, 세상의 개념(예를 들면, 객체, 대상, 객체의 카테고리, 및/또는 임의의 다른 적절한 개념) 및 이들 개념 사이의 관계(예를 들면, 계층적 또는 임의의 다른 적절한 타입의 관계)를 인코딩하는 지식 표현일 수도 있다. 하나의 비제한적인 예로서, 온톨로지는 개념 "루이지(Luigi's)"(특정한 이탈리안 레스토랑의 이름임), 개념 "이탈리안 레스토랑", 개념 "레스토랑", 및 개념 "장소"를 인코딩할 수도 있다. 온톨로지는 또한, "루이지"가 "이탈리안 레스토랑"의 한 타입이다는 것, "이탈리안 레스토랑"이 "레스토랑"의 한 타입이다는 것, 및 "레스토랑"이 "장소"의 한 타입이다는 것을 나타내는 정보를 인코딩하는 것에 의해 이들 개념 사이의 관계를 인코딩할 수도 있다.
온톨로지는, 그 온톨로지에서의 하나 이상의 개념과 관련되는 하나 이상의 액션을 식별하는 정보를 포함할 수도 있다. 하나의 비제한적인 예로서, 개념 "레스토랑"을 인코딩하는 온톨로지는, "레스토랑"으로 길안내하는 것 및 "레스토랑"을 예약하는 것의 액션이 "레스토랑"과 관련된다는 것을 식별하는 정보를 포함할 수도 있다. 다른 비제한적인 예로서, 개념 "비행편"을 포함하는 온톨로지는, "비행편"의 상태를 체크하는 것, "비행편"을 예약하는 것의 액션이 개념 "비행편"과 관련된다는 것을 특정하는 정보를 포함할 수도 있다. 상기 예는 예시적인 것에 불과한데, 온톨로지에서의 개념이 임의의 적절한 액션(들)과 관련될 수도 있기 때문이다.
가상 어시스턴트는, 다양한 방식 중 임의의 방식으로 하나 이상의 온톨로지로부터 획득되는 정보를 적어도 부분적으로 사용하는 것에 의해 유저와 상호작용할 수도 있다. 하나의 비제한적인 예로서, 온톨로지에서의 개념을 포함하는 입력을 유저가 제공한 이후, 가상 어시스턴트는, 그 개념과 관련되는 것으로 온톨로지에서 식별되는 하나 이상의 액션을 유저가 수행하는 것을 도울 수도 있다. 예를 들면, 가상 어시스턴트는 유저로부터 입력 "루이지에 관해 말해줘"를 수신할 수도 있고, 개념 "루이지"를 포함하는 온톨로지의 정보에 액세스하고, 온톨로지의 정보에 기초하여, "루이지"가 레스토랑의 한 타입이고, 그런 만큼, 예약을 하고 길안내 하는 액션이 "루이지"와 관련된다는 것을 결정할 수도 있다. 따라서, 가상 어시스턴트는 유저가 (예를 들면, "루이지에 예약하기를 원하세요"라고 유저에게 묻는 것, 레스토랑 예약 애플리케이션을 론칭하는 것 등등에 의해) 루이지에 예약하는 것, (예를 들면, "길안내 할까요"라고 유저에게 묻는 것, 루이지의 위치를 맵 상에 디스플레이하는 것 등등에 의해) 루이지로 길안내 하는 것을 도울 수도 있고, 및/또는 개념 "루이지"와 관련되는 것으로 온톨로지에 의해 나타내어지는 임의의 다른 적절한 액션을 유저가 수행하는 것을 도울 수도 있다. 다른 비제한적인 예로서, 가상 어시스턴트는 유저 입력(예를 들면, 인식된 스피치, 타이핑된 입력, 등등)을 분석하기 위해 하나 이상의 NLU 기술을 사용할 수도 있고 NLU 기술(들)은 분석을 수행하기 위해 온톨로지로부터 획득된 정보를 사용할 수도 있다. 예를 들면, NLU 기술(들)은, 온톨로지로부터 획득된 정보에 기초하여 유저에 의해 의도된 액션을 결정하기 위해, 유저 입력을 분석할 수도 있다. 특정 예로서, 유저는 입력 "루이지로 데려다 줘"를 제공할 수도 있고, 가상 어시스턴트는, 루이지가, 유저가 찾아 갈 수도 있는 이탈리안 레스토랑이다는 것을 나타내는 온톨로지의 정보에 기초하여, 유저가 루이지라는 이름의 이탈리안 레스토랑으로 운전해 가고 싶어 한다는 것을 결정할 수도 있고 유저가 레스토랑으로 찾아가는 것을 도울 수도 있다.
가상 어시스턴트는 온톨로지 정보에 임의의 적절한 방식으로 액세스할 수도 있다. 몇몇 실시형태에서, 온톨로지 정보는, 가상 어시스턴트가 실행되고 있는 디바이스로부터 원격에(예를 들면, 온톨로지 정보를 저장하는 하나 이상의 서버 상에) 저장될 수도 있고 가상 어시스턴트는 온톨로지 정보를 저장하는 디바이스(들)와 (예를 들면, 네트워크를 통해) 통신하는 것에 의해 정보에 액세스할 수도 있다. 그러나, 유저가 개념(들)을 참조할 때마다 가상 어시스턴트가 온톨로지의 하나 이상의 개념에 관한 정보에 액세스하는 것은 시간 소모적일 수도 있다. 따라서, 몇몇 실시형태에서, 적어도 몇몇 온톨로지 정보는 유저의 프로파일에 저장될 수도 있고 가상 어시스턴트는 유저의 프로파일에 있는 온톨로지 정보에 액세스할 수도 있다. 예를 들면, 적어도 몇몇 온톨로지 정보는, 가상 어시스턴트를 실행하는 디바이스 상에 저장된 유저 프로파일의 로컬하게 저장된 사본에 및/또는 가상 어시스턴트를 실행하는 디바이스가 통신할 수도 있는 하나 이상의 컴퓨팅 디바이스, 예컨대 서버(110) 상에 저장된 유저 프로파일의 원격으로 저장된 사본에 저장될 수도 있다. 가상 어시스턴트가 실행되고 있는 디바이스로부터 원격에 저장되는 온톨로지 정보는, 유저 프로파일 정보를 저장하는 동일한 디바이스(들)(예를 들면, 서버(110)) 상에 또는 상이한 디바이스(들) 상에 저장될 수도 있다는 것이 인식되어야 한다.
임의의 적절한 온톨로지 정보가 유저의 프로파일에 저장될 수도 있다. 몇몇 실시형태에서, 가상 어시스턴트는, 온톨로지 정보를 저장하는 하나 이상의 서버 상에 원격으로 저장된 온톨로지 정보에 액세스할 수도 있고 액세스된 정보를 유저의 프로파일에 저장할 수도 있다. 하나의 비제한적인 예로서, 유저는 개념(예를 들면, 루이지)을 참조하는 입력을 제공할 수도 있고 가상 어시스턴트는 원격으로 저장된 온톨로지에서 참조된 개념에 관한 정보(예를 들면, 어떤 다른 개념이 개념 "루이지"에 관련되는지, 개념 "루이지"와는 어떤 액션이 관련되는지, 등등을 특정하는 정보)에 액세스할 수도 있고 액세스된 정보를 유저의 프로파일에 저장할 수도 있다. 이 방식에서, 유저가 어떤 개념을 반복적으로 참조하는 경우, 가상 어시스턴트는 참조된 개념에 관한 원격 온톨로지 정보를 반복적으로 액세스할 필요는 없고 유저의 프로파일에 저장된 온톨로지를 사용할 수도 있다. 온톨로지 정보는 유저의 프로파일에 임의의 적절한 방식(예를 들면, 문자열, 키 값, 쌍(pair), 등등)으로 저장될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다.
몇몇 실시형태에서, 유저의 프로파일에 저장된 온톨로지 정보 및/또는 (예를 들면, 온톨로지 정보를 저장하는 하나 이상의 서버 상에) 원격으로 저장된 온톨로지 정보는, 유저의 프로파일에 저장된 온톨로지 정보가 원격으로 저장된 온톨로지 정보와 더 이상 동기화되지 않도록, 변할 수도 있다. 온톨로지는, 온톨로지에서 개념을 제거하는 것, 온톨로지에 새로운 개념을 추가하는 것, 온톨로지에서 개념을 관련시키는 것 및/또는 관련해제시키는 것, 등등에 의한 것을 포함하는 임의의 적절한 방식으로 수정될 수도 있다.
몇몇 경우에서, 원격으로 저장된 온톨로지 정보는, 자동 음성 인식, 자연 언어 이해, 대화 관리 및/또는 적어도 부분적으로 온톨로지 정보를 사용하는 것에 의해 적어도 부분적으로 하나 이상의 서버를 사용하는 것에 의해 수행되는 임의의 태스크에 관련되는 프로세싱을 지원하여 수정될 수도 있다. 특정한 비제한적인 예로서, 온톨로지는 개념 "이탈리안 레스토랑"을 개념 "북부 이탈리안 레스토랑", "남부 이탈리안 레스토랑" 및 "피체리아(Pizzeria)"로 대체하는 것에 의해 업데이트될 수도 있다. 또 다른 특정한 비제한적인 예로서, 새로운 개념 "리스토란테 마리오(Ristorante Mario)"가 온톨로지에 추가될 수도 있고 온톨로지는 리스토란테 마리오가 "이탈리안 레스토랑"의 한 타입이다는 것을 나타내는 정보를 인코딩하도록 업데이트될 수도 있다.
몇몇 경우에서, 유저의 프로파일에 저장된 온톨로지 정보는 수정될 수도 있다. 예를 들면, 하나 이상의 써드파티 애플리케이션은, 유저의 프로파일에 저장된 온톨로지 정보에 액세스하도록 구성될 수도 있고(예를 들면, 내비게이션 시스템 애플리케이션은 유저가 가장 좋아하는 레스토랑이 무엇인지를 알기 위해 유저의 프로파일의 온톨로지 정보에 액세스할 수도 있고) 이 온톨로지 정보를 업데이트할 수도 있다. 이러한 써드파티 애플리케이션(예를 들면, 호텔 애플리케이션)은 하나 이상의 개념을 온톨로지에 추가할 수도 있다(예를 들면, 호텔 애플리케이션은 개념 "호텔"을, "호텔"이 "장소"의 한 타입이다는 것을 나타내는 정보와 함께 추가할 수도 있다).
따라서, 몇몇 실시형태에서, 유저의 프로파일의 온톨로지 정보가 (예를 들면, 온톨로지 정보를 저장하는 하나 이상의 서버 상에) 원격으로 저장된 온톨로지 정보와 동기화되지 않는다는 결정이 이루어지는 경우, 온톨로지는, 유저의 프로파일의 온톨로지 정보가 원격으로 저장된 온톨로지 정보와 동일하거나 또는 그 서브셋이도록, 동기화될 수도 있다. 동기화는 임의의 적절한 시간에 임의의 적절한 방식으로 발생할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 몇몇 실시형태에서, 동기화는 하나 이상의 서버(예를 들면, 중앙 온톨로지 서버)에 의해 수행될 수도 있다. 몇몇 실시형태에서, 동기화를 수행하는 것은, 동기화가 자동적으로 수행될 수 있는지의 여부를 결정하는 것, 및 동기화가 자동적으로 수행될 수 있다는 것이 결정되는 경우, 한 명 이상의 유저의 프로파일의 온톨로지 정보를 원격으로 저장된 온톨로지 정보와 동기화하는 것을 포함할 수도 있다. 한편, 동기화가 자동적으로 수행될 수 없다는 것이 결정되는 경우, 한 명 이상의 유저의 프로파일에 저장되며 원격으로 저장된 온톨로지 정보와 동기화되지 않은 온톨로지 정보 중 적어도 일부는 비활성화될 수도 있다(예를 들면, 삭제될 수도 있거나, 사용불가능으로 마킹될 수도 있거나, 등등일 수도 있다). 이 방식에서, 가상 어시스턴트는 오래된(outdated) 온톨로지 정보를 사용하는 것이 방지될 수도 있다.
X. 유저 식별 서비스
유저의 아이덴티티가 검증되는(verified) 것을 필요로 할 수도 있는 다양한 상황이 존재한다. 하나의 비제한적인 예로서, 유저는 가게에 들어가서 신용카드로 구매에 대해 비용을 지불하기를 소망할 수도 있고 가게는 유저가 신용카드의 적법한 유저인지를 검증하기를 소망할 수도 있다. 다른 비제한적인 예로서, 특정한 영역(예를 들면, 회사 건물, 공항, 콘서트 장소와 같은 장소, 스포츠 현장, 등등)에 입장하기 위해서는, 유저의 아이덴티티는 검증될 필요가 있을 수도 있다. 또 다른 예로서, 유저가 은행 거래(예를 들면, 현금을 인출하는 것, 현금을 전송하는 것, 현금을 예치하는 것, 계좌를 개설하는 것, 계좌를 폐기하는 것, 등등)를 수행하기를 소망할 때 유저의 아이덴티티는 검증될 필요가 있을 수도 있다.
몇몇 실시형태에서, 유저의 아이덴티티는 검증될 수도 있고, 그 결과, 하나 이상의 거래를 수행하도록 유저의 프로파일에 저장된 개인 정보가 액세스될 수도 있다. 하나의 비제한적인 예로서, 유저는 가게에 들어가서 구매에 대해, 그 정보(예를 들면, 신용카드 번호, 유효 기간, 등등)가 유저의 프로파일에 저장되어 있는 신용카드로 비용을 지불하기를 소망할 수도 있다. 유저의 아이덴티티의 검증시, 가게는 유저의 프로파일에 저장된 신용카드 정보에 액세스하도록 권한을 받을 수도 있다. 이 방식에서, 유저는 그의/그녀의 또는 신용카드를 그/그녀가 가지고 있을 필요는 없다. 유저의 프로파일에 저장된 그리고 하나 이상의 거래를 수행하기 위해 액세스될 수도 있는 개인 정보의 예는, 유저의 이름, 주소, 은행 계좌 정보, 여권 번호, 운전면허증 번호, 계좌 번호(들), 예약 정보, 비행편 정보, 등등을 포함한다.
몇몇 실시형태에서, 유저의 프로파일에 저장된 식별 정보는 유저의 아이덴티티를 검증하기 위해 사용될 수도 있다. 앞서 설명된 바와 같이, 유저의 프로파일(예를 들면, 유저 프로파일(200))은 다양한 타입의 유저 식별 정보 중 임의의 것을 포함할 수도 있다. 식별 정보의 예는 로그인 및 패스워드 정보, 하나 이상의 보안 질문에 대한 대답, 유저의 지문(들)을 인코딩하는 정보, 유저의 보이스에 기초하여 유저를 식별하기 위해 사용될 수도 있는 정보(예를 들면, 유저의 성문(voice print)), (예를 들면, 얼굴 인식을 사용하는 것에 의해) 유저의 이미지에 기초하여 유저를 식별하기 위해 사용될 수도 있는 정보, 망막 스캔에 기초하여 유저를 식별하기 위해 사용될 수도 있는 정보, 및/또는 유저를 식별하기 위해 사용될 수도 있는 임의의 다른 적절한 생체인식 정보를 포함한다. 몇몇 실시형태에서, 식별 정보는 암호화된 데이터로서 저장될 수도 있다. 몇몇 실시형태에서, 유저의 아이덴티티는, 예를 들면 유저의 프로파일 이외의 소스 또는 소스들로부터의 상기 타입의 식별 정보 중 임의의 것에, 및/또는 임의의 다른 적절한 방식으로 액세스하는 것에 의해, 유저의 프로파일에 저장되지 않은 식별 정보에 기초하여 검증될 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 예를 들면, 몇몇 실시형태에서, 데이터 보안의 추가적인 계층을 제공하기 위해, 식별 정보는, 유저의 프로파일이 저장되어 있는 위치(들)와는 상이한 위치에 저장될 수도 있다.
유저의 프로파일에 저장된 식별 정보는 유저의 아이덴티티를 다양한 방식 중 임의의 방식으로 검증하기 위해 사용될 수도 있다. 몇몇 실시형태에서, 유저로부터 획득되는 입력 및 유저의 프로파일에 저장된 식별 정보가 유저의 아이덴티티를 검증하기 위해 사용될 수도 있다. 몇몇 실시형태에서, 유저로부터 획득되는 입력은 유저의 프로파일에 저장된 식별 정보와 직접적으로 비교될 수도 있다(예를 들면, 유저에 의한 로그인-패스워드 쌍 입력은 유저의 프로파일에 저장된 로그인-패스워드 쌍과 직접적으로 비교될 수도 있다). 다른 실시형태에서, 유저로부터 획득되는 입력은 프로세싱되어, 유저의 아이덴티티를 검증하기 위해 사용할 정보를 획득할 수도 있다. 예를 들면, 하나 이상의 피쳐가 유저로부터 획득되는 입력으로부터 추출될 수도 있고(예를 들면, 하나 이상의 피쳐가 유저의 이미지, 유저에 의해 제공되는 발화된 입력, 등등으로부터 추출될 수도 있고), 유저의 아이덴티티는 추출된 피쳐(들) 및 유저의 프로파일의 식별 정보에 기초하여 검증될 수도 있다. 하나의 비제한적인 예로서, 유저는 발화된 입력을 제공할 수도 있고(예를 들면, 시도 발언(challenge utterance), 패스프레이즈(passphrase) 등등을 말 할 수도 있고) 유저의 아이덴티티는, 발화된 입력을 사용한 임의의 적절한 발화자 인식 기술 및 유저의 프로파일 식별 정보(예를 들면, 유저의 성문)를 사용하는 것에 의해 검증될 수도 있다. 다른 비제한적인 예로서, 유저의 이미지(예를 들면, 유저의 얼굴의 이미지, 망막 스캔, 지문 등등)가 취해질 수도 있고 취해진 이미지는 유저의 프로파일의 식별 정보(예를 들면, 유저의 이미지에 기초한 얼굴 인식 기술을 통해 유저를 인식하기 위해 사용되는 정보, 유저의 지문을 인코딩하는 정보, 유저의 이전 망막 스캔을 인코딩하는 및/또는 유저의 이전 망막 스캔으로부터 유도되는 정보)와 비교될 수도 있다.
유저의 아이덴티티의 검증은 유저로부터의 하나의 타입의 입력에만(예를 들면, 지문 정보에만, 발화된 입력에만, 얼굴 인식을 위한 이미지에만) 기초하여 수행되는 것에 제한되지 않으며, 몇몇 실시형태에서는, 유저의 아이덴티티가 다수의 기술(예를 들면, 얼굴 인식 및 보이스 인식, 얼굴 인식 및 지문 인식, 및/또는 둘 이상의 기술의 임의의 다른 적절한 조합)을 사용하여 검증될 수도 있도록 유저로부터의 다수의 타입의 입력에 기초하여 수행될 수도 있다는 것이 인식되어야 한다.
상기 논의로부터 인식될 수도 있는 바와 같이, 몇몇 실시형태에서, 유저의 아이덴티티는 생체인식 정보(예를 들면, 유저의 보이스)를 사용하여 검증될 수도 있고, 식별된 유저의 유저 프로파일에 저장된 정보(예를 들면, 신용카드 정보)는 하나 이상의 거래(예를 들면, 가게에서 신용카드로 구매를 행하는 것)를 수행하기 위해 사용될 수도 있다. 유저를 식별하기 위해 그리고 식별된 유저의 프로파일의 정보에 액세스하기 위해 생체인식 정보를 사용하는 것은, 유저가 그 자신/그녀 자신을 식별하기 위한 어떠한 아이템(예를 들면, 사진 명패(photo id), 여권 등등)도 사용하지 않고 및/또는 거래를 수행하기 위한 어떠한 아이템(예를 들면, 신용카드, 계좌 번호 등등)도 사용하지 않고, 하나 이상의 거래(예를 들면, 신용카드 지불)의 수행을 인가하는 것을 허용한다. 이 방식에서, 유저는 어떠한 이러한 아이템도 그/그녀가 지니고 있을 필요는 없다. 예를 들면, 유저는, 그의/그녀의 여권 및 신용카드를 그/그녀가 휴대하지 않고도, 타히티(Tahiti)에서 그의/그녀의 수영복 차림으로 가게 안으로 걸어 들어가서 차량을 렌트할 수도 있다.
유저로부터 획득되는 입력 및 유저의 프로파일에 저장된 식별 정보에 기초하여 유저의 아이덴티티를 검증하기 위해, 임의의 적절한 시스템이 사용될 수도 있다. 몇몇 실시형태에서, 검증은, 유저의 프로파일에 저장된 식별 정보 및 유저에 의해 제공되는 입력에 액세스하도록 구성되는 하나 이상의 디바이스(예를 들면, 유저의 프로파일을 저장하는 하나 이상의 서버, 예컨대 서버(110), 유저의 프로파일을 저장하는 휴대형 디바이스, 예컨대 휴대형 디바이스(154), 검증 서비스를 수행하도록 구성되며 유저의 프로파일을 저장하는 하나 이상의 디바이스와 통신하도록 구성되는 하나 이상의 서버, 이들의 임의의 적절한 조합, 등등) 상에서 수행될 수도 있다. 하나의 예시적인 예로서, 유저는 가게에서 구매를 행하기 위해 그녀의 신용카드를 사용하기를 소망할 수도 있다. 신용카드의 인가된 유저로서 그녀의 아이덴티티를 검증하기 위해, 유저는 패스프레이즈와 같은 발화된 입력을 제공할 수도 있다. 발화된 입력 및 유저의 추정된 아이덴티티(예를 들면, 유저가, 자신이 "매리 스미스(Mary Smith)"이라고 말함)를 식별하는 정보는, 검증 서비스를 수행하도록 구성되는 인터넷 액세스가능한 서버에 제공될 수도 있다. 서버는, 서버 및/또는 다른 디바이스 상에 저장될 수도 있는 "매리 스미스"의 프로파일의 정보에 액세스할 수도 있고, 액세스된 프로파일의 식별 정보 및 발화된 패스프레이즈에 기초하여 유저가 매리 스미스인지의 여부를 결정할 수도 있다.
몇몇 실시형태에서, 거래 인가 시스템(transaction authorization system)은, 유저가 하나 이상의 거래를 수행하는 것(예를 들면, 구매를 행하는 것, 은행 거래를 수행하는 것, 등등을 하는 것)을 돕기 위해 유저와 상호작용할 수도 있다. 이것은 임의의 적절한 방식으로 행해질 수도 있다. 몇몇 실시형태에서, 거래 인가 시스템은, 유저가 그 자신/그녀 자신을 식별해야 한다는 것을 요구할 수도 있고, 응답으로, 유저는, 거래 인가 시스템에게, 아이덴티티를 주장하는 정보(예를 들면, 이름, 유저 ID, 사회 보장 번호와 같은 특정한 번호 등등) 및 유저가 그/그녀가 칭하고 있는 사람인지의 여부를 확인하기 위해 사용될 수도 있는 식별 정보를 제공할 수도 있다. 상기에서 설명된 바와 같이, 유저는 임의의 적절한 식별 정보를 거래 인가 시스템으로 제공할 수도 있다(예를 들면, 유저는 그의/그녀의 보이스에 의해 식별될 하나 이상의 발언을 말할 수도 있고, 지문을 제공할 수도 있고, 임의의 다른 적절한 생체인식 식별 정보를 제공할 수도 있고, PIN 코드를 제공할 수도 있고, 및/또는 임의의 다른 적절한 식별 정보를 제공할 수도 있다).
몇몇 실시형태에서, 거래 인가 시스템은 유저와 관련된 정보(예를 들면, 신용카드 정보, 은행 계좌 정보 등등)에 액세스하기 위한 명시적인 퍼미션을 유저로부터 획득할 수도 있다. 예를 들면, 거래 인가 시스템은 유저와 관련되는 정보(예를 들면, 유저의 프로파일에 저장된 정보)에 액세스할 퍼미션을 거래 인가 시스템에게 제공하도록 유저에게 프롬프트를 제시할 수도 있고, 유저는 거래 인가 시스템이 유저에 관한 정보에 액세스할 수도 있다는 것을 나타내는 입력을 제공할 수도 있다. 몇몇 실시형태에서, 거래 인가 시스템은 유저에게, 유저가 식별된 이후, 거래 인가 시스템이 유저와 관련되는 정보(예를 들면, 유저의 신용카드 정보, 은행 계좌 정보 등등)에 액세스할 것이다는 것을 통지할 수도 있다.
몇몇 실시형태에서, 유저가 아이덴티티를 주장하는(예를 들면, 유저가 "매리 스미스"이다는 것을 주장하는) 정보 및 식별 정보(예를 들면, 보이스 식별을 위한 발화된 발언)를 제공한 이후, 거래 인가 시스템은 주장된 아이덴티티와 관련되는 유저의 프로파일(예를 들면, "매리 스미스"라는 이름을 갖는 유저의 프로파일)에 액세스할 수도 있고 액세스된 프로파일에 저장된 식별 정보를 매리 스미스라고 주장하는 유저에 의해 제공되는 식별 정보와 비교한다. 따라서, 유저의 아이덴티티는 유저의 프로파일의 정보 및 유저에 의해 거래 인가 시스템으로 제공되는 식별 정보에 기초하여 검증될 수도 있다. 거래 인가 시스템은 유저의 프로파일에 임의의 적절한 방식으로, 예를 들면, 유저 프로파일 정보에 액세스할 수 있는 컴퓨팅 디바이스, 예컨대 도 1을 참조로 설명된 서버(110)와 통신하는 것에 의해, 액세스할 수도 있다.
유저의 아이덴티티가 성공적으로 검증되지 않는 경우(예를 들면, 제공되는 식별 정보가, 자신의 아이덴티티가 주장되고 있는 유저의 프로파일에 저장된 식별 정보와 매치하지 않는 경우), 거래 인가 시스템은 소망의 거래를 수행하기 위한 승인을 거절할 수도 있다. 한편, 유저의 아이덴티티가 성공적으로 검증되면, 거래 인가 시스템은, 유저의 프로파일에서, 거래를 수행하기 위해 사용될 정보(예를 들면, 은행 계좌 정보, 신용카드 정보, 사회 보장 번호, 운전면허증 번호, 주소, 및/또는 거래를 실행하기 위해 사용될 수도 있는 임의의 다른 적절한 정보)에 액세스할 수도 있다.
몇몇 실시형태에서, 거래를 수행하기 위해 사용될 정보는 거래 인가 시스템에 의해 확인될(validated) 수도 있다. 하나의 비제한적인 예로서, 거래 인가 시스템은 신용카드 번호가 유효한지의 여부를 검증할 수도 있다. 다른 비제한적인 예로서, 거래 인가 시스템은, 은행 계좌가 유효한지 및/또는 적어도 소정의 잔고를 갖는지의 여부를 검증할 수도 있다. 거래를 수행하기 위해 사용될 정보가 유효하지 않다는 것이 결정되는 경우, 거래 인가 시스템은 소망의 거래를 수행할 승인을 거절할 수도 있다. 한편, 거래를 수행하기 위해 사용될 정보가 유효하다는 것이 결정되는 경우, 거래는 승인될 수도 있다.
몇몇 실시형태에서, 거래 인가 시스템은 하나의 또는 다수의 위치에서 하나의 또는 다수의 컴퓨팅 디바이스를 포함할 수도 있다(예를 들면, 네트워크를 통해 하나 이상의 서버에 연결된 가게에 있는 하나 이상의 컴퓨팅 디바이스). 하나의 비제한적인 예로서, 거래 인가 시스템은, 서버(들)와 통신하도록 구성되는 하나 이상의 컴퓨팅 디바이스(예를 들면, 가게, 은행 등등에서의 컴퓨팅 디바이스) 및 유저 프로파일을 저장하는 하나 이상의 컴퓨팅 디바이스와 통신하도록 구성되는 하나 이상의 서버를 포함할 수도 있다.
XI. 디바이스 의존적 거동
몇몇 실시형태에서, 가상 어시스턴트는 자신의 거동을, 가상 어시스턴트가 실행되고 있는 디바이스의 하나 이상의 특성에 기초하여 커스터마이징할 수도 있다. 예를 들면, 하나의 디바이스(예를 들면, 랩탑) 상에서 실행되는 가상 어시스턴트 및 다른 디바이스(예를 들면, 모바일 폰) 상에서 실행되는 다른 가상 어시스턴트는 동일한 유저와 상호작용할 때 상이하게 거동할 수도 있다. 하나의 비제한적인 예로서, 가상 어시스턴트는 상이한 디바이스 상에서 동일한 태스크를 수행하기 위한 상이한 애플리케이션을 호출할 수도 있다(예를 들면, 상이한 음악 재생 프로그램, 상이한 웹브라우저 프로그램 등등을 호출할 수도 있다). 다른 비제한적인 예로서, 가상 어시스턴트는, 디바이스 상에서 이용가능한 디스플레이 공간의 양에 의존하여, 유저에게 상이한 양(예를 들면, 전혀 없거나, 약간 있거나 등등)의 그래픽 출력을 제공할 수도 있다(예를 들면, 가상 어시스턴트는 모바일 디바이스 상에서 보다 랩탑 상에서 더 많은 그래픽 출력을 제공할 수도 있다). 또 다른 비제한적인 예로서, 가상 어시스턴트는 자신이 유저에게 제공하는 응답의 컨텐츠를 변경할 수도 있다. 예를 들면, 유저가 "어떤 꿈을 꿔"라고 묻는 것에 응답하여, 모바일 디바이스 상에서 실행되는 가상 어시스턴트는 "나는 변기에 빠지는 것에 관한 악몽을 꿔"라고 대답할 수도 있고 TV 상에서 실행되는 가상 어시스턴트는 "할리우드 스타가 되는 꿈을 꿔"라고 대답할 수도 있다.
몇몇 실시형태에서, 디바이스(예를 들면, 자동차 인포테인먼트 시스템)는 디바이스의 두 명 이상의 유저의 그룹의 각각의 유저에 관한 정보(예를 들면, 자동차에 탑승할 수도 있는 가족 구성원에 관한 정보)에 액세스할 수도 있고 유저의 그룹의 특정한 유저와 상호작용할 때 자신의 거동을 그 특정한 유저에 관한 액세스된 정보에 적어도 부분적으로 기초하여 커스터마이징할 수도 있다. 하나의 비제한적인 예로서, 디바이스는 유저가 즐기는 컨텐츠를 특정하는 정보에 기초하여 유저에게 개인 맞춤된 컨텐츠를 제공하도록 구성될 수도 있다. 예를 들면, 자동차 인포테인먼트 시스템은, 가족의 각각의 구성원이 즐긴 미디어 컨텐츠(예를 들면, 영화, 음악, TV 쇼, 라디오 쇼, 등등)에 관한 정보에 액세스할 수도 있고 각각의 가족 구성원에게 그들이 즐길 수도 있는 미디어 컨텐츠를 제공할 수도 있다. 예를 들면, 자동차 인포테인먼트 시스템은, 가족 중에서 아이가 즐기는 아이의 텔레비전 프로그램을 자동차의 뒷좌석에 앉은 승객에게 보여줄 수도 있는데, 자동차의 뒷좌석의 승객이 아이일 수도 있기 때문이다.
XII. 추가적인 구현예 상세
본원에서 제공되는 개시의 실시형태 중 임의의 것과 연계하여 사용될 수도 있는 컴퓨터 시스템(1200)의 예시적인 구현예가 도 12에서 도시된다. 컴퓨터 시스템(1200)은 하나 이상의 프로세서(1210) 및 비일시적 컴퓨터 판독 가능한 저장 매체(예를 들면, 메모리(1220) 및 하나 이상의 불휘발성 저장 매체(1230))를 포함하는 하나 이상의 제조 물품을 포함할 수도 있다. 프로세서(1210)는 메모리(1220) 및 불휘발성 저장 디바이스(1230)로의 데이터 기록 및 이들로부터의 데이터 판독을 임의의 적절한 방식으로 제어할 수도 있는데, 본원에서 제공되는 본 개시의 양태가 이 점에서는 제한되지 않기 때문이다. 본원에서 설명되는 기능성 중 임의의 것을 수행하기 위해, 프로세서(1210)는, 프로세서(1210)에 의한 실행을 위해 프로세서 실행가능한 명령어를 저장하는 비일시적 컴퓨터 판독 가능한 저장 매체로서 기능할 수도 있는 하나 이상의 비일시적 컴퓨터 판독 가능한 저장 매체(예를 들면, 메모리(1220))에 저장된 하나 이상의 프로세서 실행가능한 명령어를 실행할 수도 있다.
용어 "프로그램" 또는 "소프트웨어"는 본원에서, 상기에서 논의된 바와 같은 실시형태의 다양한 양태를 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그래밍하기 위해 활용될 수 있는 임의의 타입의 컴퓨터 코드 또는 프로세서 실행가능한 명령어의 세트를 지칭하기 위한 일반적인 의미로 사용된다. 추가적으로, 하나의 양태에 따르면, 실행시 본원에서 제공되는 개시의 방법을 수행하는 하나 이상의 컴퓨터 프로그램은 단일의 컴퓨터 또는 프로세서 상에 상주할 필요는 없고, 대신 본원에서 제공되는 본 개시의 다양한 양태를 구현하기 위해 상이한 컴퓨터 또는 프로세서 사이에서 모듈의 형태로 분산될 수도 있다는 것이 이해되어야 한다.
프로세서 실행가능한 명령어는, 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는 많은 형태, 예컨대 프로그램 모듈로 존재할 수도 있다. 일반적으로, 프로그램 모듈은, 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조체 등등을 포함한다. 통상적으로, 프로그램 모듈의 기능성은 다양한 실시형태에서 소망에 따라 결합되거나 분산될 수도 있다.
또한, 데이터 구조체는 하나 이상의 비일시적 컴퓨터 판독 가능한 저장 매체에서 임의의 적절한 형태로 저장될 수도 있다. 예시의 간략화를 위해, 데이터 구조체는, 데이터 구조체에서의 위치를 통해 관련되는 필드를 갖도록 도시될 수도 있다. 이러한 관계는, 필드 사이의 관계를 전달하는 비일시적 컴퓨터 판독 가능한 매체에서 위치를 갖는 필드에 대해 스토리지를 할당하는 것에 의해 마찬가지로 달성될 수도 있다. 그러나, 포인터, 태그 또는 데이터 엘리먼트 사이의 관계를 확립하는 다른 메커니즘의 사용을 통한 것을 비롯해서, 데이터 구조체의 필드에 있는 정보 사이의 관계를 확립하기 위해 임의의 적절한 메커니즘이 사용될 수도 있다.
또한, 다양한 발명적 개념이 하나 이상의 프로세스로서 구체화될 수도 있는데, 그 예(도 4, 도 5, 도 6, 도 8a-도 8b, 도 9, 및 도 11a-도 11b)가 제공되었다. 각각의 프로세스의 일부로서 수행되는 액트는 임의의 적절한 방식으로 순서가 정해질 수도 있다. 따라서, 예시된 것과는 상이한 순서로 액트가 수행되는 실시형태가 구성될 수도 있는데, 그 실시형태는, 예시적인 실시형태에서 순차적인 액트로서 나타내어지더라도, 몇몇 액트를 동시에 수행하는 것을 포함할 수도 있다.
특허청구범위에서 청구항 엘리먼트를 수정하기 위한, "제1", "제2", "제3" 등등과 같은 서수적 용어의 사용은 혼자서 어떠한 우선권, 우선순위, 또는 다른 것에 대한 하나의 청구항 엘리먼트의 순서 또는 방법의 액트가 수행되는 시간적 순서를 내포하지 않는다. 이러한 용어는, 소정의 이름을 갖는 하나의 청구항 엘리먼트를 (서수적 용어의 사용에 대한 것을 제외하고) 동일한 이름을 갖는 다른 엘리먼트와 구별하기 위한 라벨로서 사용될 뿐이다.
본원에서 사용되는 어법(phraseology) 및 전문용어(terminology)는 설명의 목적을 위한 것이며 한정하는 것으로 간주되어선 안된다. "포함하는(including)", "포함하는(comprising)", "구비하는(having)", "포함하는(containing)", 및 이들의 변형예는, 이후 열거되는 아이템 및 추가적인 아이템을 포괄하도록 의도된다.
본원에서 설명되는 기술의 몇몇 실시형태를 상세히 설명하였지만, 기술분야의 숙련된 자는 다양한 수정예, 및 개선예를 쉽게 떠올릴 것이다. 이러한 수정예 및 개선예는 본 개시의 취지와 범위 내에 있는 것으로 의도된다. 따라서, 상기 설명은 단지 예에 불과하며, 제한으로서 의도되지 않는다. 본 기술은, 단지, 하기의 특허청구범위 및 그 균등물에 의해 정의되는 것으로서 제한된다.
Claims (20)
- 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 적어도 하나의 컴퓨터에 의해 수행되는 방법으로서,
유저의 상기 네트워크는 제1 유저와 적어도 상기 네트워크를 통해 상기 제1 유저와 연련되는 제2 유저를 포함하고,
상기 방법은,
상기 적어도 하나의 컴퓨터를 사용하여,
(A) 적어도 상기 제2 유저에 관련되는 정보에 액세스하는 액트(act); 및
(B) 상기 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 상기 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 상기 제1 유저와 상호작용하게 하는 액트
를 수행하는 단계를 포함하는, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제1항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 관심을 갖는 토픽을 식별하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는, 상기 가상 어시스턴트로 하여금, 상기 식별된 토픽에 관련되는 정보를 상기 제1 유저에게 제시하게 하는 것을 포함하는 것인, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제1항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제1 유저에게 상기 아이템을 추천하게 하는 것을 포함하는 것인, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제3항에 있어서,
상기 아이템은 미디어 컨텐츠인 것인, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제3항에 있어서,
상기 아이템을 상기 제1 유저에게 추천하는 것은, 상기 아이템에 대한 광고를 상기 제1 유저에게 제시하는 것을 포함하는, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제1항에 있어서,
상기 액트 (A)는 상기 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금, 상기 제2 유저의 상기 스케줄을 적어도 부분적으로 특정하는 상기 정보에 기초하여, 상기 제1 유저와 상기 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함하는 것인, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제1항에 있어서,
상기 액트 (A)는 상기 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제2 유저의 상기 계획된 위치를 상기 제1 유저에게 통지하게 하는 것을 포함하는 것인 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 제7항에 있어서,
상기 액트 (B)는 상기 계획된 위치에서 상기 제1 유저와 상기 제2 유저 사이의 미팅을 스케줄링하는 것을 더 포함하는, 적어도 하나의 컴퓨터에 의해 수행되는 방법. - 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 시스템으로서,
유저의 상기 네트워크는, 제1 유저와 적어도 상기 네트워크를 통해 상기 제1 유저와 연관되는 제2 유저를 포함하고,
상기 시스템은 적어도 하나의 컴퓨터를 포함하고,
적어도 하나의 컴퓨터는,
(A) 적어도 상기 제2 유저에 관련되는 정보에 액세스하는 액트; 및
(B) 상기 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 상기 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 상기 제1 유저와 상호작용하게 하는 액트
를 수행하도록 구성되는 것인, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 제9항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 관심을 갖는 토픽을 식별하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는, 상기 가상 어시스턴트로 하여금, 상기 식별된 토픽에 관련되는 정보를 상기 제1 유저에게 제시하게 하는 것을 포함하는 것인, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 제9항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 한 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제1 유저에게 상기 아이템을 추천하게 하는 것을 포함하는 것인, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 제11항에 있어서,
상기 아이템을 상기 제1 유저에게 추천하는 것은, 상기 아이템에 대한 광고를 상기 제1 유저에게 제시하는 것을 포함하는 것인, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 제9항에 있어서,
상기 액트 (A)는 상기 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금, 상기 제2 유저의 상기 스케줄을 적어도 부분적으로 특정하는 상기 정보에 기초하여, 상기 제1 유저와 상기 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함하는 것인, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 제9항에 있어서,
상기 액트 (A)는 상기 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제2 유저의 상기 계획된 위치를 상기 제1 유저에게 통지하게 하는 것을 포함하는, 유저에 관련되는 정보에 액세스할 수 있는 시스템. - 프로세서 실행가능한 명령어를 저장하는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체로서,
상기 프로세서 실행가능한 명령어는, 유저의 네트워크에서 유저에 관련되는 정보에 액세스할 수 있는 적어도 하나의 컴퓨터에 의한 실행시, 상기 적어도 하나의 컴퓨터로 하여금 방법을 수행하게 하고, 유저의 상기 네트워크는 제1 유저 및 상기 네트워크를 통해 상기 제1 유저와 연관되는 적어도 제2 유저를 포함하고,
상기 방법은,
(A) 적어도 상기 제2 유저에 관련되는 정보에 액세스하는 액트; 및
(B) 상기 적어도 하나의 컴퓨터와는 상이한 디바이스 상에서 실행되는 가상 어시스턴트로 하여금, 적어도 부분적으로, 상기 액세스된 정보에 기초하여 적어도 하나의 액션을 수행하는 것에 의해 상기 제1 유저와 상호작용하게 하는 액트를 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체. - 제15항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 관심을 갖는 토픽을 식별하는 정보에 액세스하는 것을 포함하고;
상기 액트 (B)는, 상기 가상 어시스턴트로 하여금, 상기 식별된 토픽에 관련되는 정보를 상기 제1 유저에게 제시하게 하는 것을 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체. - 제16항에 있어서,
상기 액트 (A)는 적어도 상기 제2 유저가 아이템을 좋아한다는 것을 나타내는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제1 유저에게 상기 아이템을 추천하게 하는 것을 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체. - 제17항에 있어서,
상기 아이템을 상기 제1 유저에게 추천하는 것은, 상기 아이템에 대한 광고를 상기 제1 유저에게 제시하는 것을 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체. - 제15항에 있어서,
상기 액트 (A)는 상기 제2 유저의 스케줄을 적어도 부분적으로 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금, 상기 제2 유저의 상기 스케줄을 적어도 부분적으로 특정하는 상기 정보에 기초하여, 상기 제1 유저와 상기 제2 유저 간의 이벤트를 스케줄링하게 하는 것을 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체. - 제15항에 있어서,
상기 액트 (A)는 상기 제2 유저의 계획된 위치를 특정하는 정보에 액세스하는 것을 포함하고,
상기 액트 (B)는 상기 가상 어시스턴트로 하여금 상기 제2 유저의 상기 계획된 위치를 상기 제1 유저에게 통지하게 하는 것을 포함하는 것인, 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/107,499 | 2013-12-16 | ||
US14/107,622 US9571645B2 (en) | 2013-12-16 | 2013-12-16 | Systems and methods for providing a virtual assistant |
US14/107,545 US10534623B2 (en) | 2013-12-16 | 2013-12-16 | Systems and methods for providing a virtual assistant |
US14/107,499 US9804820B2 (en) | 2013-12-16 | 2013-12-16 | Systems and methods for providing a virtual assistant |
US14/107,466 | 2013-12-16 | ||
US14/107,466 US9479931B2 (en) | 2013-12-16 | 2013-12-16 | Systems and methods for providing a virtual assistant |
US14/107,545 | 2013-12-16 | ||
PCT/US2013/075457 WO2015094169A1 (en) | 2013-12-16 | 2013-12-16 | Systems and methods for providing a virtual assistant |
US14/107,622 | 2013-12-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160101079A true KR20160101079A (ko) | 2016-08-24 |
Family
ID=56557420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167019298A KR20160101079A (ko) | 2013-12-16 | 2013-12-16 | 가상 어시스턴트를 제공하기 위한 시스템 및 방법 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3063646A4 (ko) |
KR (1) | KR20160101079A (ko) |
CN (1) | CN105830048A (ko) |
WO (1) | WO2015094169A1 (ko) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210118225A (ko) * | 2017-05-12 | 2021-09-29 | 애플 인크. | 디지털 어시스턴트의 동기화 및 태스크 위임 |
KR20220082945A (ko) * | 2017-09-19 | 2022-06-17 | 구글 엘엘씨 | 자동으로 액션 그룹을 커스터마이징하도록 구성된 가상 어시스턴트 |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11487364B2 (en) | 2018-05-07 | 2022-11-01 | Apple Inc. | Raise to speak |
US11538469B2 (en) | 2017-05-12 | 2022-12-27 | Apple Inc. | Low-latency intelligent automated assistant |
US11557310B2 (en) | 2013-02-07 | 2023-01-17 | Apple Inc. | Voice trigger for a digital assistant |
US11630525B2 (en) | 2018-06-01 | 2023-04-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US11675491B2 (en) | 2019-05-06 | 2023-06-13 | Apple Inc. | User configurable task triggers |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11699448B2 (en) | 2014-05-30 | 2023-07-11 | Apple Inc. | Intelligent assistant for home automation |
US11705130B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | Spoken notifications |
US11749275B2 (en) | 2016-06-11 | 2023-09-05 | Apple Inc. | Application integration with a digital assistant |
US11783815B2 (en) | 2019-03-18 | 2023-10-10 | Apple Inc. | Multimodality in digital assistant systems |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11809886B2 (en) | 2015-11-06 | 2023-11-07 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11831799B2 (en) | 2019-08-09 | 2023-11-28 | Apple Inc. | Propagating context information in a privacy preserving manner |
US11838579B2 (en) | 2014-06-30 | 2023-12-05 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11837237B2 (en) | 2017-05-12 | 2023-12-05 | Apple Inc. | User-specific acoustic models |
US11888791B2 (en) | 2019-05-21 | 2024-01-30 | Apple Inc. | Providing message response suggestions |
US11893992B2 (en) | 2018-09-28 | 2024-02-06 | Apple Inc. | Multi-modal inputs for voice commands |
US11900936B2 (en) | 2008-10-02 | 2024-02-13 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US11954405B2 (en) | 2015-09-08 | 2024-04-09 | Apple Inc. | Zero latency digital assistant |
US11979836B2 (en) | 2007-04-03 | 2024-05-07 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US12001933B2 (en) | 2015-05-15 | 2024-06-04 | Apple Inc. | Virtual assistant in a communication session |
US12014118B2 (en) | 2017-05-15 | 2024-06-18 | Apple Inc. | Multi-modal interfaces having selection disambiguation and text modification capability |
US12026197B2 (en) | 2017-05-16 | 2024-07-02 | Apple Inc. | Intelligent automated assistant for media exploration |
US12051413B2 (en) | 2015-09-30 | 2024-07-30 | Apple Inc. | Intelligent device identification |
US12067985B2 (en) | 2018-06-01 | 2024-08-20 | Apple Inc. | Virtual assistant operations in multi-device environments |
US12118999B2 (en) | 2014-05-30 | 2024-10-15 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
Families Citing this family (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677377B2 (en) | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US10002189B2 (en) | 2007-12-20 | 2018-06-19 | Apple Inc. | Method and apparatus for searching using an active ontology |
US9330720B2 (en) | 2008-01-03 | 2016-05-03 | Apple Inc. | Methods and apparatus for altering audio output signals |
US20100030549A1 (en) | 2008-07-31 | 2010-02-04 | Lee Michael M | Mobile device having human language translation capability with positional feedback |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
US8682667B2 (en) | 2010-02-25 | 2014-03-25 | Apple Inc. | User profiling for selecting user specific voice input processing information |
US9262612B2 (en) | 2011-03-21 | 2016-02-16 | Apple Inc. | Device access using voice authentication |
US10057736B2 (en) | 2011-06-03 | 2018-08-21 | Apple Inc. | Active transport based notifications |
US10134385B2 (en) | 2012-03-02 | 2018-11-20 | Apple Inc. | Systems and methods for name pronunciation |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
CN104704797B (zh) | 2012-08-10 | 2018-08-10 | 纽昂斯通讯公司 | 用于电子设备的虚拟代理通信 |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
WO2014197335A1 (en) | 2013-06-08 | 2014-12-11 | Apple Inc. | Interpreting and acting upon commands that involve sharing information with remote devices |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
KR101772152B1 (ko) | 2013-06-09 | 2017-08-28 | 애플 인크. | 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스 |
DE112014003653B4 (de) | 2013-08-06 | 2024-04-18 | Apple Inc. | Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen |
US10296160B2 (en) | 2013-12-06 | 2019-05-21 | Apple Inc. | Method for extracting salient dialog usage from live data |
US20170017501A1 (en) | 2013-12-16 | 2017-01-19 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
US9804820B2 (en) | 2013-12-16 | 2017-10-31 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
US9571645B2 (en) | 2013-12-16 | 2017-02-14 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
US9479931B2 (en) | 2013-12-16 | 2016-10-25 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
US9430463B2 (en) | 2014-05-30 | 2016-08-30 | Apple Inc. | Exemplar-based natural language processing |
US9633004B2 (en) | 2014-05-30 | 2017-04-25 | Apple Inc. | Better resolution when referencing to concepts |
CN110797019B (zh) | 2014-05-30 | 2023-08-29 | 苹果公司 | 多命令单一话语输入方法 |
US9818400B2 (en) | 2014-09-11 | 2017-11-14 | Apple Inc. | Method and apparatus for discovering trending terms in speech requests |
US10074360B2 (en) | 2014-09-30 | 2018-09-11 | Apple Inc. | Providing an indication of the suitability of speech recognition |
US10127911B2 (en) | 2014-09-30 | 2018-11-13 | Apple Inc. | Speaker identification and unsupervised speaker adaptation techniques |
US9668121B2 (en) | 2014-09-30 | 2017-05-30 | Apple Inc. | Social reminders |
US10152299B2 (en) | 2015-03-06 | 2018-12-11 | Apple Inc. | Reducing response latency of intelligent automated assistants |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10567477B2 (en) | 2015-03-08 | 2020-02-18 | Apple Inc. | Virtual assistant continuity |
US9721566B2 (en) | 2015-03-08 | 2017-08-01 | Apple Inc. | Competing devices responding to voice triggers |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US10083688B2 (en) | 2015-05-27 | 2018-09-25 | Apple Inc. | Device voice control for selecting a displayed affordance |
US9578173B2 (en) | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
US11025565B2 (en) | 2015-06-07 | 2021-06-01 | Apple Inc. | Personalized prediction of responses for instant messaging |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10049668B2 (en) | 2015-12-02 | 2018-08-14 | Apple Inc. | Applying neural network language models to weighted finite state transducers for automatic speech recognition |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US11227589B2 (en) | 2016-06-06 | 2022-01-18 | Apple Inc. | Intelligent list reading |
US10049663B2 (en) | 2016-06-08 | 2018-08-14 | Apple, Inc. | Intelligent automated assistant for media exploration |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
US10185840B2 (en) | 2016-08-30 | 2019-01-22 | Google Llc | Conditional disclosure of individual-controlled content in group contexts |
US10474753B2 (en) | 2016-09-07 | 2019-11-12 | Apple Inc. | Language identification using recurrent neural networks |
US10043516B2 (en) | 2016-09-23 | 2018-08-07 | Apple Inc. | Intelligent automated assistant |
CN106528137A (zh) * | 2016-10-11 | 2017-03-22 | 深圳市天易联科技有限公司 | 与虚拟角色对话的方法及装置 |
US10552742B2 (en) * | 2016-10-14 | 2020-02-04 | Google Llc | Proactive virtual assistant |
KR20180049787A (ko) * | 2016-11-03 | 2018-05-11 | 삼성전자주식회사 | 전자 장치, 그의 제어 방법 |
WO2018084576A1 (en) | 2016-11-03 | 2018-05-11 | Samsung Electronics Co., Ltd. | Electronic device and controlling method thereof |
US11281993B2 (en) | 2016-12-05 | 2022-03-22 | Apple Inc. | Model and ensemble compression for metric learning |
US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
US10769679B2 (en) * | 2017-01-25 | 2020-09-08 | Crackle, Inc. | System and method for interactive units within virtual reality environments |
US10636418B2 (en) | 2017-03-22 | 2020-04-28 | Google Llc | Proactive incorporation of unsolicited content into human-to-computer dialogs |
US9865260B1 (en) | 2017-05-03 | 2018-01-09 | Google Llc | Proactive incorporation of unsolicited content into human-to-computer dialogs |
US10417266B2 (en) | 2017-05-09 | 2019-09-17 | Apple Inc. | Context-aware ranking of intelligent response suggestions |
DK201770383A1 (en) | 2017-05-09 | 2018-12-14 | Apple Inc. | USER INTERFACE FOR CORRECTING RECOGNITION ERRORS |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
US10395654B2 (en) | 2017-05-11 | 2019-08-27 | Apple Inc. | Text normalization based on a data-driven learning network |
DK201770439A1 (en) | 2017-05-11 | 2018-12-13 | Apple Inc. | Offline personal assistant |
US11301477B2 (en) | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
EP3806092B1 (en) * | 2017-05-12 | 2022-07-20 | Apple Inc. | Task delegation of a digital assistant |
DK201770431A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | Optimizing dialogue policy decisions for digital assistants using implicit feedback |
DK201770432A1 (en) | 2017-05-15 | 2018-12-21 | Apple Inc. | Hierarchical belief states for digital assistants |
US10403278B2 (en) | 2017-05-16 | 2019-09-03 | Apple Inc. | Methods and systems for phonetic matching in digital assistant services |
DK179549B1 (en) | 2017-05-16 | 2019-02-12 | Apple Inc. | FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10311144B2 (en) | 2017-05-16 | 2019-06-04 | Apple Inc. | Emoji word sense disambiguation |
US20180336045A1 (en) * | 2017-05-17 | 2018-11-22 | Google Inc. | Determining agents for performing actions based at least in part on image data |
US20180350371A1 (en) * | 2017-05-31 | 2018-12-06 | Lenovo (Singapore) Pte. Ltd. | Adjust output settings based on an identified user |
US10657328B2 (en) | 2017-06-02 | 2020-05-19 | Apple Inc. | Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling |
US10742435B2 (en) * | 2017-06-29 | 2020-08-11 | Google Llc | Proactive provision of new content to group chat participants |
US10445429B2 (en) | 2017-09-21 | 2019-10-15 | Apple Inc. | Natural language understanding using vocabularies with compressed serialized tries |
US10755051B2 (en) | 2017-09-29 | 2020-08-25 | Apple Inc. | Rule-based natural language processing |
US10636424B2 (en) | 2017-11-30 | 2020-04-28 | Apple Inc. | Multi-turn canned dialog |
US10733982B2 (en) | 2018-01-08 | 2020-08-04 | Apple Inc. | Multi-directional dialog |
US10733375B2 (en) | 2018-01-31 | 2020-08-04 | Apple Inc. | Knowledge-based framework for improving natural language understanding |
US10789959B2 (en) | 2018-03-02 | 2020-09-29 | Apple Inc. | Training speaker recognition models for digital assistants |
US10592604B2 (en) | 2018-03-12 | 2020-03-17 | Apple Inc. | Inverse text normalization for automatic speech recognition |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10909331B2 (en) | 2018-03-30 | 2021-02-02 | Apple Inc. | Implicit identification of translation payload with neural machine translation |
CN108600071A (zh) * | 2018-04-16 | 2018-09-28 | 青岛海信移动通信技术股份有限公司 | 一种虚拟人物的分享方法及移动终端 |
US11049076B2 (en) | 2018-05-07 | 2021-06-29 | Microsoft Techology Licensing, Llc | Routing of meeting requests and follow-up queries by digital assistants |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
US10984780B2 (en) | 2018-05-21 | 2021-04-20 | Apple Inc. | Global semantic word embeddings using bi-directional recurrent neural networks |
US11386266B2 (en) | 2018-06-01 | 2022-07-12 | Apple Inc. | Text correction |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
US11076039B2 (en) | 2018-06-03 | 2021-07-27 | Apple Inc. | Accelerated task performance |
KR20200013162A (ko) | 2018-07-19 | 2020-02-06 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
US11010561B2 (en) | 2018-09-27 | 2021-05-18 | Apple Inc. | Sentiment prediction from textual data |
US11170166B2 (en) | 2018-09-28 | 2021-11-09 | Apple Inc. | Neural typographical error modeling via generative adversarial networks |
US10839159B2 (en) | 2018-09-28 | 2020-11-17 | Apple Inc. | Named entity normalization in a spoken dialog system |
CN109615382A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 转账方法、装置及设备 |
US11475898B2 (en) | 2018-10-26 | 2022-10-18 | Apple Inc. | Low-latency multi-speaker speech recognition |
CN109542557A (zh) * | 2018-10-31 | 2019-03-29 | 维沃移动通信有限公司 | 一种界面显示方法及终端设备 |
US11638059B2 (en) | 2019-01-04 | 2023-04-25 | Apple Inc. | Content playback on multiple devices |
US10425533B1 (en) | 2019-01-16 | 2019-09-24 | Capital One Services, Llc | Interacting with an interactive voice response system device or agent device of an organization |
CN110442438B (zh) * | 2019-02-26 | 2022-06-07 | 杭州蓦然认知科技有限公司 | 一种多设备之间的任务协作方法、设备及系统 |
CN110310641B (zh) * | 2019-02-26 | 2022-08-26 | 杭州蓦然认知科技有限公司 | 一种用于语音助手的方法及装置 |
US11475884B2 (en) | 2019-05-06 | 2022-10-18 | Apple Inc. | Reducing digital assistant latency when a language is incorrectly determined |
US11423908B2 (en) | 2019-05-06 | 2022-08-23 | Apple Inc. | Interpreting spoken requests |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
US11496600B2 (en) | 2019-05-31 | 2022-11-08 | Apple Inc. | Remote execution of machine-learned models |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
US11289073B2 (en) | 2019-05-31 | 2022-03-29 | Apple Inc. | Device text to speech |
US11360641B2 (en) | 2019-06-01 | 2022-06-14 | Apple Inc. | Increasing the relevance of new available information |
US11308957B2 (en) * | 2019-09-24 | 2022-04-19 | Amazon Technologies, Inc. | Account association with device |
WO2021056255A1 (en) | 2019-09-25 | 2021-04-01 | Apple Inc. | Text detection using global geometry estimators |
CN110928521A (zh) * | 2020-02-17 | 2020-03-27 | 恒信东方文化股份有限公司 | 一种智能语音交流方法及其交流系统 |
US11038934B1 (en) | 2020-05-11 | 2021-06-15 | Apple Inc. | Digital assistant hardware abstraction |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
WO2022125078A1 (en) * | 2020-12-08 | 2022-06-16 | Google Llc | Identifying and providing requested user information during voice calls and video calls |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640160B2 (en) * | 2005-08-05 | 2009-12-29 | Voicebox Technologies, Inc. | Systems and methods for responding to natural language speech utterance |
US20070106931A1 (en) * | 2005-11-08 | 2007-05-10 | Nokia Corporation | Active notes application |
US20090043627A1 (en) * | 2005-11-23 | 2009-02-12 | Mihir Vaidya | System and method for calendar presence retrieval |
US7889851B2 (en) * | 2006-04-20 | 2011-02-15 | Cisco Technology, Inc. | Accessing a calendar server to facilitate initiation of a scheduled call |
KR101718971B1 (ko) * | 2006-10-06 | 2017-03-23 | 로비 가이드스, 인크. | 인터랙티브 미디어 안내 어플리케이션들에서 미디어를 획득, 카테고리화 및 전달하기 위한 시스템 및 방법 |
KR101552147B1 (ko) * | 2008-04-24 | 2015-09-11 | 삼성전자주식회사 | 방송 컨텐츠를 추천하는 방법과 그 장치 |
US20110313803A1 (en) * | 2010-06-22 | 2011-12-22 | Microsoft Corporation | Social Task Lists |
US8819729B2 (en) * | 2011-02-25 | 2014-08-26 | Avaya Inc. | Advanced user interface and control paradigm for multiple service operator extended functionality offers |
US20130332521A1 (en) * | 2012-06-07 | 2013-12-12 | United Video Properties, Inc. | Systems and methods for compiling media information based on privacy and reliability metrics |
US9648369B2 (en) * | 2012-06-11 | 2017-05-09 | Verizon Patent And Licensing Inc. | Cross-platform schedule management interface |
-
2013
- 2013-12-16 EP EP13899976.8A patent/EP3063646A4/en not_active Withdrawn
- 2013-12-16 CN CN201380081661.5A patent/CN105830048A/zh active Pending
- 2013-12-16 KR KR1020167019298A patent/KR20160101079A/ko not_active Application Discontinuation
- 2013-12-16 WO PCT/US2013/075457 patent/WO2015094169A1/en active Application Filing
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11979836B2 (en) | 2007-04-03 | 2024-05-07 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US11900936B2 (en) | 2008-10-02 | 2024-02-13 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US11557310B2 (en) | 2013-02-07 | 2023-01-17 | Apple Inc. | Voice trigger for a digital assistant |
US12009007B2 (en) | 2013-02-07 | 2024-06-11 | Apple Inc. | Voice trigger for a digital assistant |
US11862186B2 (en) | 2013-02-07 | 2024-01-02 | Apple Inc. | Voice trigger for a digital assistant |
US11699448B2 (en) | 2014-05-30 | 2023-07-11 | Apple Inc. | Intelligent assistant for home automation |
US12118999B2 (en) | 2014-05-30 | 2024-10-15 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US12067990B2 (en) | 2014-05-30 | 2024-08-20 | Apple Inc. | Intelligent assistant for home automation |
US11838579B2 (en) | 2014-06-30 | 2023-12-05 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US12001933B2 (en) | 2015-05-15 | 2024-06-04 | Apple Inc. | Virtual assistant in a communication session |
US11954405B2 (en) | 2015-09-08 | 2024-04-09 | Apple Inc. | Zero latency digital assistant |
US12051413B2 (en) | 2015-09-30 | 2024-07-30 | Apple Inc. | Intelligent device identification |
US11809886B2 (en) | 2015-11-06 | 2023-11-07 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US11749275B2 (en) | 2016-06-11 | 2023-09-05 | Apple Inc. | Application integration with a digital assistant |
US11467802B2 (en) | 2017-05-11 | 2022-10-11 | Apple Inc. | Maintaining privacy of personal information |
US11405466B2 (en) | 2017-05-12 | 2022-08-02 | Apple Inc. | Synchronization and task delegation of a digital assistant |
US11862151B2 (en) | 2017-05-12 | 2024-01-02 | Apple Inc. | Low-latency intelligent automated assistant |
KR20210118225A (ko) * | 2017-05-12 | 2021-09-29 | 애플 인크. | 디지털 어시스턴트의 동기화 및 태스크 위임 |
US11538469B2 (en) | 2017-05-12 | 2022-12-27 | Apple Inc. | Low-latency intelligent automated assistant |
US11837237B2 (en) | 2017-05-12 | 2023-12-05 | Apple Inc. | User-specific acoustic models |
US12014118B2 (en) | 2017-05-15 | 2024-06-18 | Apple Inc. | Multi-modal interfaces having selection disambiguation and text modification capability |
US12026197B2 (en) | 2017-05-16 | 2024-07-02 | Apple Inc. | Intelligent automated assistant for media exploration |
US11893311B2 (en) | 2017-09-19 | 2024-02-06 | Google Llc | Virtual assistant configured to automatically customize groups of actions |
KR20220082945A (ko) * | 2017-09-19 | 2022-06-17 | 구글 엘엘씨 | 자동으로 액션 그룹을 커스터마이징하도록 구성된 가상 어시스턴트 |
US11487364B2 (en) | 2018-05-07 | 2022-11-01 | Apple Inc. | Raise to speak |
US11907436B2 (en) | 2018-05-07 | 2024-02-20 | Apple Inc. | Raise to speak |
US12061752B2 (en) | 2018-06-01 | 2024-08-13 | Apple Inc. | Attention aware virtual assistant dismissal |
US11630525B2 (en) | 2018-06-01 | 2023-04-18 | Apple Inc. | Attention aware virtual assistant dismissal |
US12067985B2 (en) | 2018-06-01 | 2024-08-20 | Apple Inc. | Virtual assistant operations in multi-device environments |
US11893992B2 (en) | 2018-09-28 | 2024-02-06 | Apple Inc. | Multi-modal inputs for voice commands |
US11783815B2 (en) | 2019-03-18 | 2023-10-10 | Apple Inc. | Multimodality in digital assistant systems |
US11705130B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | Spoken notifications |
US11675491B2 (en) | 2019-05-06 | 2023-06-13 | Apple Inc. | User configurable task triggers |
US11888791B2 (en) | 2019-05-21 | 2024-01-30 | Apple Inc. | Providing message response suggestions |
US11790914B2 (en) | 2019-06-01 | 2023-10-17 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
US11831799B2 (en) | 2019-08-09 | 2023-11-28 | Apple Inc. | Propagating context information in a privacy preserving manner |
US11914848B2 (en) | 2020-05-11 | 2024-02-27 | Apple Inc. | Providing relevant data items based on context |
US11838734B2 (en) | 2020-07-20 | 2023-12-05 | Apple Inc. | Multi-device audio adjustment coordination |
US11696060B2 (en) | 2020-07-21 | 2023-07-04 | Apple Inc. | User identification using headphones |
US11750962B2 (en) | 2020-07-21 | 2023-09-05 | Apple Inc. | User identification using headphones |
Also Published As
Publication number | Publication date |
---|---|
EP3063646A1 (en) | 2016-09-07 |
EP3063646A4 (en) | 2017-06-21 |
WO2015094169A1 (en) | 2015-06-25 |
CN105830048A (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534623B2 (en) | Systems and methods for providing a virtual assistant | |
US9479931B2 (en) | Systems and methods for providing a virtual assistant | |
US9804820B2 (en) | Systems and methods for providing a virtual assistant | |
US9571645B2 (en) | Systems and methods for providing a virtual assistant | |
KR20160101079A (ko) | 가상 어시스턴트를 제공하기 위한 시스템 및 방법 | |
US12087308B2 (en) | Intelligent automated assistant | |
US10853582B2 (en) | Conversational agent | |
US11050694B2 (en) | Suggested items for use with embedded applications in chat conversations | |
US11887594B2 (en) | Proactive incorporation of unsolicited content into human-to-computer dialogs | |
US10404636B2 (en) | Embedded programs and interfaces for chat conversations | |
AU2017204217B2 (en) | Intelligent automated assistant | |
CN112015531B (zh) | 用于将第三方服务与数字助理相结合的系统和方法 | |
BR122012028965A2 (pt) | Assistente automatizado inteligente |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |