KR20220106183A - 사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출 - Google Patents

사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출 Download PDF

Info

Publication number
KR20220106183A
KR20220106183A KR1020227021946A KR20227021946A KR20220106183A KR 20220106183 A KR20220106183 A KR 20220106183A KR 1020227021946 A KR1020227021946 A KR 1020227021946A KR 20227021946 A KR20227021946 A KR 20227021946A KR 20220106183 A KR20220106183 A KR 20220106183A
Authority
KR
South Korea
Prior art keywords
call
user
additional
assistant
client device
Prior art date
Application number
KR1020227021946A
Other languages
English (en)
Other versions
KR102631797B1 (ko
Inventor
유발 바로어
야니브 레비아탄
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220106183A publication Critical patent/KR20220106183A/ko
Application granted granted Critical
Publication of KR102631797B1 publication Critical patent/KR102631797B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42204Arrangements at the exchange for service or number selection by voice
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/04Details of speech synthesis systems, e.g. synthesiser structure or memory management
    • G10L13/047Architecture of speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/5166Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing in combination with interactive voice response systems or voice portals, e.g. as front-ends
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/39Electronic components, circuits, software, systems or apparatus used in telephone systems using speech synthesis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/40Electronic components, circuits, software, systems or apparatus used in telephone systems using speech recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/74Details of telephonic subscriber devices with voice recognition means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

구현예는 자동화된 어시스턴트를 사용하여 주어진 사용자를 대신하여 어시스턴트 호출을 개시하게 한다. 어시스턴트는 어시스턴트 호출 동안, 어시스턴트 호출의 추가 사용자로부터 어시스턴트에게 알려지지 않은 정보에 대한 요청을 수신할 수 있다. 이에 응답하여, 어시스턴트는 정보에 대한 프롬프트를 렌더링할 수 있으며, 주어진 사용자로부터 응답 입력을 기다리는 동안, 어시스턴트 호출에 대해 이미 리졸브된 값(들)을 사용하여 어시스턴트 호출을 계속할 수 있다. 응답 입력이 임계 지속시간 내에 수신되면, 응답 입력에 대응하는 합성된 스피치가 어시스턴트 호출의 일부로서 렌더링된다. 구현예는 추가로 또는 대안적으로 주어진 사용자와 추가 사용자 간의 진행 중인 호출 동안, 진행 중인 호출 동안 추가 사용자에 의해 요청된 값에 기초한 출력을 제공하기 위해 자동화된 어시스턴트를 사용하는 것에 관한 것이다.

Description

사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출
자동화된 어시스턴트는 스마트폰, 태블릿 컴퓨터, 웨어러블 디바이스, 오토모빌 시스템, 단독형 퍼스널 어시스턴트 디바이스 등과 같은 다양한 클라이언트 디바이스들을 통해 사용자에 의해 인터렉션될 수 있다. 자동화된 어시스턴트는 사용자로부터 입력(예를 들어, 발화, 터치 및/또는 타이핑됨)을 수신하고, 응답 출력(예를 들어, 시각적 및/또는 청각적)으로 응답한다.
사용자는 자동화된 어시스턴트와 인터렉션하여, 상기 자동화된 어시스턴트가 사용자를 대신하여 액션(들)을 수행하게 할 수 있다. 일 예시로서, 자동화된 어시스턴트는 주어진 액션을 수행하기 위해 사용자를 대신하여 전화를 걸 수 있고, 액션(들)을 수행하기 위해 추가 사용자와 대화에 참여할 수 있다. 예를 들어, 사용자는 자동화된 어시스턴트가 사용자를 대신하여 전화를 통해 레스토랑을 예약하도록 요청하는 사용자 입력을 제공할 수 있다. 자동화된 어시스턴트는 특정 레스토랑과 전화 통화를 개시할 수 있고, 예약을 하기 위해 특정 레스토랑과 연관된 추가 사용자에게 예약 정보를 제공할 수 있다. 그러면 자동화된 어시스턴트가 사용자를 대신하여 레스토랑 예약이 성공적으로 이루어졌는지 여부를 사용자에게 알릴 수 있다.
그러나 사용자를 대신하여 자동화된 어시스턴트가 수행하는 일부 액션(들)의 경우, 자동화된 어시스턴트는 액션(들)을 완전히 수행하기에 충분한 정보를 알지 못할 수 있다. 일 예시로서, 자동화된 어시스턴트가 전화를 통해 그리고 위에서 설명된 사용자를 대신하여 레스토랑 예약을 하고 있다고 가정하고, 추가로 특정 레스토랑과 연관된 추가 사용자가 자동화된 어시스턴트에 알려지지 않은 정보를 요청한다고 가정한다. 일부 자동화된 어시스턴트는 요청된 정보가 알려져 있지 않다고 결정하고, 사용자에게 레스토랑 예약을 완료하기 위해 통화에 적극적으로 참여하도록 요청하는 알림을 제공할 수 있다. 그러나 사용자가 통화에 적극적으로 참여하기를 기다리는 것은 통화를 연장하고, 통화 중에 사용되는 계산 및/또는 네트워크 리소스의 연관된 사용을 연장할 수 있다. 추가적으로 또는 대안적으로, 사용자는 통화에 참여하지 못할 수 있다. 이는 통화 실패로 이어질 수 있으며, 자동화된 어시스턴트 및/또는 사용자가 나중에 액션(들)을 수행해야 하므로, 초기 통화 중 자동화된 어시스턴트에 의해 액션(들)이 성공적으로 수행되었던 경우보다 더 많은 계산 및/또는 네트워크 리소스가 소모된다.
일부 구현예는 주어진 사용자를 대신하여 작업(들)을 수행하기 위해 엔터티와 함께 어시스턴트 호출을 수행하기 위해 자동화된 어시스턴트를 사용하는 것에 관한 것이다. 어시스턴트 호출은 자동화된 어시스턴트와 엔터티와 연결된 추가 사용자 사이에 있다. 자동화된 어시스턴트는 작업(들) 및/또는 엔터티와 연관된 파라미터(들)에 대해 리졸브된 값(들)을 사용하여 어시스턴트 호출을 수행할 수 있다. 상기 어시스턴트 호출을 수행하는 단계는 상기 자동화된 어시스턴트에 의해 그리고 상기 어시스턴트 호출에서, 추가 사용자가 청각적으로 인지할 수 있는 합성 스피치의 인스턴스(들)를 청각적으로 렌더링하는 단계를 포함할 수 있다. 어시스턴트 호출에서 합성된 스피치의 인스턴스를 렌더링하는 단계는 추가 사용자(그러나 반드시 주어진 사용자는 아님)가 청각적으로 인지할 수 있도록 합성된 스피치를 어시스턴트 호출에 삽입하는 단계를 포함할 수 있다. 합성된 스피치의 인스턴스(들)는 리졸브된 값(들) 중 하나 이상에 기초하여 각각 생성될 수 있고 및/또는 어시스턴트 호출 동안 추가 사용자의 발화(들)에 응답하도록 생성될 수 있다. 어시스턴트 호출을 수행하는 단계는 자동화된 어시스턴트에 의해, 발화(들)의 인식된 텍스트를 생성하기 위해 추가 사용자의 발화(들)를 캡처하는 어시스턴트 호출의 오디오 데이터의 자동 음성 인식을 수행하는 단계 및 어시스턴트 호출에서 렌더링하기 위해 발화(들)에 대한 응답인 합성된 음성의 인스턴스(들)을 결정하는 것에서 상기 인식된 텍스트를 사용하는 단계를 포함한다.
이러한 구현예 중 일부는 어시스턴트 호출을 수행하는 동안, 추가 사용자의 발화(들)가 추가 파라미터와 연관된 정보에 대한 요청을 포함하고, 추가 파라미터에 대해 자동으로 결정될 수 있는 값(들)이 없음을 결정하는 단계에 관한 것이다. 이에 응답하여, 자동화된 어시스턴트는 오디오 및/또는 시각적 알림(예를 들어, 프롬프트)가 주어진 사용자에게 렌더링되게 할 수 있으며, 여기서 알림은 추가 파라미터에 대한 값(들)을 리졸브하는 것과 관련된 추가 사용자 입력을 요청한다. 일부 구현예에서, 주어진 사용자가 값을 확인하고 값을 진행 중인 호출에 전달할 수 있도록 하기 위해 알림은 진행 중인 호출 외부지만 주어진 사용자가 인식할 수 있게 렌더링될 수 있다(즉, 진행 중인 호출의 일부로 삽입되지 않음), 알림에 응답하여 추가 사용자 입력을 수신하기 전에, 자동화된 어시스턴트는 어시스턴트 호출을 계속할 수 있다. 예를 들어, 자동화된 어시스턴트는 알림에 응답하는 추가 사용자 입력을 기다리지 않고 호출 동안 합성된 스피치의 인스턴스(들) 전에 아직 전달되지 않은 이미 리졸브된 값(들)에 기초하여 합성된 스피치의 인스턴스(들)를 사전에 제공할 수 있다. 알림에 응답하여 추가 사용자 입력이 제공되고, 추가 파라미터에 대한 값(들)이 추가 사용자 입력에 기초하여 리졸브될 수 있는 경우, 자동화된 어시스턴트는 어시스턴트 호출을 계속한 후, 추가 파라미터에 대해 리졸브된 값(들)을 전달하는 추가 합성된 스피치를 제공할 수 있다. 알림에 대한 추가 사용자 입력을 기다리지 않고 어시스턴트 호출을 계속하면, 추가 파라미터에 대한 추가 값(들)을 기다리는 동안 작업을 완료하는데 필요한 값(들)을 어시스턴트 호출 중에 전달할 수 있고, 상기 추가 값(들)은 나중에 제공될 수 있다(수신된 경우). 이러한 방식 및 기타 방식으로, 어시스턴트 호출은 더 빨리 종료될 수 있으므로, 어시스턴트 호출을 수행하는데 컴퓨터 및/또는 네트워크 리소스가 활용되는 전체 시간이 줄어든다.
추가 파라미터에 대한 값(들)을 리졸브하는 것과 연관된 추가 사용자 입력을 요청하는 알림을 렌더링하는 일부 구현예에서 알림 및/또는 알림을 렌더링하기 위한 하나 이상의 속성은 어시스턴트 호출 상태 및/또는 어시스턴트 호출에 사용되는 클라이언트 디바이스의 상태에 기초하여 동적으로 결정될 수 있다. 예를 들어, 클라이언트 디바이스의 상태가 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있음을 나타내는 경우, 알림은 시각 전용 알림일 수 있고 및/또는 보다 낮은 볼륨의 가청 컴포넌트를 포함할 수 있다. 다른 한편으로, 클라이언트 디바이스의 상태가 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있지 않음을 나타내는 경우, 알림은 적어도 가청 컴포넌트를 포함할 수 있고 및/또는 가청 컴포넌트는 보다 높은 볼륨으로 렌더링될 수 있다. 클라이언트 디바이스의 상태는 예를 들어 클라이언트 디바이스의 센서(들)로부터의 센서 데이터(예를 들어, 자이로스코프(들), 가속도계(들), 존재 센서(들), 및/또는 기타 센서(들)) 및/또는 사용자와 연관된 다른 클라이언트 디바이스(들)의 센서(들)에 기초할 수 있다. 또 다른 예로서, 어시스턴트 호출의 상태가 알림을 제공할 때 다수의 리졸브된 값(들)이 아직 전달되지 않았음을 나타내는 경우, 알림은 시각 전용 알림일 수 있고 및/또는 보다 낮은 볼륨의 가청 컴포넌트를 포함할 수 있다. 반면에, 어시스턴트 호출의 상태가 알림을 제공할 때 아직 하나의 리졸브된 값(들)만(또는 전혀) 전달되지 않았음을 나타내는 경우, 알림은 적어도 가청 컴포넌트를 포함할 수 있고 및/또는 가청 컴포넌트는 보다 높은 볼륨으로 렌더링될 수 있다. 보다 일반적으로, 구현예는 클라이언트 디바이스의 상태가 사용자가 호출을 능동적으로 모니터링하지 않고 있음을 나타낼 때 및/또는 대화의 상태가 의미 있게 대화를 계속하는 지속시간이 상대적으로 짧음을 나타낼 때 더 방해적인 알림을 제공하려고 할 수 있다. 다른 한편으로, 구현예는 클라이언트 디바이스의 상태가 사용자가 통화를 능동적으로 모니터링하고 있음을 나타낼 때 및/또는 대화 상태가 의미 있게 대화를 계속하는 지속시간이 상대적으로 길다는 것을 나타낼 때 덜 방해가 되는 알림을 제공하려고 할 수 있다. . 더 방해적인 알림은 렌더링하기 위해 보다 더 리소스 집약적일 수 있지만 구현예는 어시스턴트 호출을 과도하게 연장하거나 및/또는 작업을 완료하지 않고 어시스턴트 호출을 종료하는데 필요할 수 있는 증가된 리소스로 더 많은 방해적인 알림을 렌더링하기 위해 증가된 리소스의 균형을 찾기 위해 더 많은 방해적인 알림을 선택적으로 렌더링할 수 있다.
일부 구현예는 추가로 또는 대안적으로 주어진 사용자와 추가 사용자 간의 진행 중인 호출 동안, 진행 중인 호출 동안 추가 사용자에 의해 요청된 값에 기초한 출력을 제공하기 위해 자동화된 어시스턴트를 사용하는 것에 관한 것이다. 출력은 사전적으로 제공될 수 있으며, 주어진 사용자가 값을 독립적으로 찾기 위해 애플리케이션(들)을 시작 및/또는 탐색하는 것을 방지할 수 있다. 예를 들어, 주어진 사용자가 유틸리티 회사 담당자와 진행 중인 호출에 참여하고 있다고 가정하고, 유틸리티 회사 담당자가 주어진 사용자의 주소 정보 및 유틸리티 회사와 연관된 계정 번호를 요청한다고 가정한다. 이 예에서 주어진 사용자는 주소 정보를 제공할 수 있지만 유틸리티 회사로부터 수신된 이메일 또는 메시지를 검색하거나 유틸리티 회사와 연관된 웹사이트를 통해 검색하거나 유틸리티 회사와 연관된 계정 번호를 찾기 위한 다른 컴퓨팅 디바이스 인터렉션을 수행하지 않고 유틸리티 회사의 계정 번호를 모를 수 있다. 그러나 본 명세서에 기술된 기법을 사용하여, 자동화된 어시스턴트는 주어진 사용자로부터 자동화된 어시스턴트에게 계정 번호를 식별하도록 요청하는 사용자 입력과 관계없이 유틸리티 회사와 연관된 계정 번호를 쉽게 식별하고, 유틸리티 회사 담당자가 계정 번호를 요청한 것을 식별하는 것에 대한 응답으로 진행 중인 호출 중에 시각적 및/또는 청각적으로 주어진 사용자 및/또는 추가 사용자에게 계정 번호를 제공할 수 있다.
이러한 방식 및 기타 방식으로, 클라이언트 디바이스 리소스(들)는 이러한 애플리케이션(들)의 시작 및/또는 인터렉션을 방지함으로써 보존될 수 있다. 또한, 사전적으로 제공된 출력이 나타내는 값은 사용자가 값을 독립적으로 찾아야 하는 경우보다 주어진 호출에서 더 빠르게 전달될 수 있으므로 진행 중인 호출의 전체 지속시간이 단축된다. 다양한 구현예에서, 자동화된 어시스턴트는 인식된 텍스트를 생성하기 위해 상기 진행 중인 호출 동안 적어도 하나의 음성 발화를 캡처하는 오디오 데이터 스트림을 프로세싱할 수 있고, 상기 적어도 하나의 음성 발화는 상기 주어진 사용자 또는 상기 추가 사용자의 것이다. 또한, 자동화된 어시스턴트는 인식된 텍스트를 프로세싱하는 것에 기초하여 적어도 하나의 음성 발화가 파라미터에 대한 정보를 요청한다는 것을 식별하고, 파라미터에 대해 그리고 주어진 사용자에게 개인적인 액세스 제한 데이터를 사용하여 파라미터에 대한 값이 리졸브 가능하다고 결정할 수 있다. 값이 리졸브가능하다는 결정에 응답하여 출력이 렌더링될 수 있다. 일부 구현예에서, 주어진 사용자가 값을 확인하고 값을 진행 중인 호출에 전달할 수 있도록 하기 위해 출력이 진행 중인 호출 외부지만 주어진 사용자가 인식할 수 있게 렌더링될 수 있다(즉, 진행 중인 호출의 일부로 삽입되지 않음), 일부 추가적 또는 대안적 구현예에서, 출력은 진행 중인 호출의 일부로서 합성된 스피치로 렌더링될 수 있다. 예를 들어, 합성된 스피치는 진행 중인 호출 내에서 자동으로 또는 주어진 사용자로부터 긍정적인 사용자 인터페이스 입력을 수신할 때 렌더링될 수 있다. 주어진 사용자와 추가 사용자 사이의 진행 중인 호출 동안, 진행 중인 호출 동안 추가 사용자에 의해 요청된 값에 기초한 출력을 제공하는 일부 구현예에서, 출력은 진행 중인 호출 동안, 주어진 사용자에 의해, 그리고 임계값 시간 내에 값을 포함하는 음성 입력이 제공되지 않는다는 결정에 응답하여만 제공된다. 이러한 방식 및 기타 방식으로 출력을 불필요하게 렌더링하는 경우를 완화할 수 있다.
상기 설명은 본 명세서에 개시된 단지 일부 구현예의 개요로서 제공된다. 이러한 구현예 및 기타 구현예에 대한 추가 설명은 본 명세서에서 더 자세히 설명된다.
도 1은 본 개시의 다양한 양태를 시연하고 본 명세서에 개시된 구현예가 구현될 수 있는 예시적 환경의 블록도를 도시한다.
도 2는 다양한 구현예에 따라, 어시스턴트 호출을 수행하는 예시적 방법을 예시하는 흐름도를 도시한다.
도 3은 다양한 구현예에 따라, 진행 중인 비-어시스턴트 호출 동안 어시스턴트 출력을 제공하는 예시적 방법을 도시하는 흐름도를 도시한다.
도 4a, 4b, 4c, 및 4d는 다양한 구현예에 따라, 어시스턴트 호출을 수행하는 것과 연관하여 사용자 인터페이스의 다양한 비-제한적인 예를 도시한다.
도 5a, 5b 및 5c는 다양한 구현예에 따라 진행 중인 비-어시스턴트 호출 동안 어시스턴트 출력을 제공하는 것과 연관하여 사용자 인터페이스의 다양한 비-제한적인 예를 도시한다.
도 6은 다양한 구현예에 따른 컴퓨팅 디바이스의 예시적 아키텍처를 도시한다.
도 1은 본 개시의 다양한 양태를 시연하는 예시적 환경의 블록도를 도시한다. 클라이언트 디바이스(110)가 도 1에 도시되며, 다양한 구현예에서, 사용자 입력 엔진(111), 디바이스 상태 엔진(112), 렌더링 엔진(113), 스케줄링 엔진(114), 음성 인식 엔진(120A1), 자연어 이해("NLU") 엔진(130A1) 및 음성 합성 엔진(140A1)을 포함한다.
사용자 입력 엔진(111)은 클라이언트 디바이스(110)에서 다양한 유형의 사용자 입력을 검출할 수 있다. 클라이언트 디바이스(110)에서 검출된 사용자 입력은 클라이언트 디바이스(110)의 마이크로폰(들)을 통해 검출된 음성 입력 및/또는 추가 사용자의 추가 클라이언트 디바이스로부터 클라이언트 디바이스(110)로 전송된 추가 음성 입력(예를 들어, 어시스턴트 호출 및/또는 어시스턴트 호출이 아직 호출되지 않은 경우 다른 진행 중인 호출 동안), 클라이언트 디바이스(110)의 사용자 인터페이스 입력 디바이스(예: 터치스크린)를 통해 검출된 터치 입력 및/또는 클라이언트 디바이스(110)의 사용자 인터페이스 입력 디바이스를 통해 검출된 타이핑된 입력(예를 들어, 터치스크린 상의 가상 키보드를 통해)을 포함할 수 있다. 엔터티와의 진행 중인 호출(어시스턴트 또는 비-어시스턴트) 동안 엔터티와 연관된 추가 사용자는 예를 들어 사람, 추가 클라이언트 디바이스와 연관된 추가 사람 참가자, 추가 사용자 및/또는 다른 추가 사용자의 추가 클라이언트 디바이스와 연관된 추가 자동화된 어시스턴트일 수 있다.
본 명세서에 기술된 어시스턴트 호출 및/또는 진행 중인 호출은 다양한 음성 통신 프로토콜(예를 들어, VoIP(Voice over Internet Protocol), PSTN(공중 전화 교환 네트워크) 및/또는 기타 전화 통신 프로토콜)을 사용하여 수행될 수 있다. 본 명세서에 설명된 바와 같이, 합성된 스피치는 어시스턴트 호출 및/또는 진행 중인 호출의 일부로서 렌더링될 수 있으며, 이는 합성된 스피치를 호출에 삽입하여 진행 중인 호출의 참가자 중 적어도 하나가 인지할 수 있고, 진행 중인 호출의 오디오 데이터의 부분을 형성하도록 한다. 호출의 엔드포인트 중 하나인 합성된 스피치는 클라이언트 디바이스에 의해 생성 및/또는 삽입될 수 있고 및/또는 클라이언트 디바이스와 통신하고 또한 호출에 연결된 서버에 의해 생성 및/또는 삽입될 수 있다. 또한 본 명세서에 기술된 바와 같이, 가청 출력은 호출에 연결되어 결과적으로 호출에서 인식할 수 있는 클라이언트 디바이스의 마이크로폰에 의해 출력이 검출될 수 있지만, 호출에 가청 출력을 삽입하는 것을 포함하지 않는 어시스턴트 호출 외부에서도 렌더링될 수 있다. 일부 구현예에서, 호출은 선택적으로 음소거될 수 있고 및/또는 필터링은 호출에서 호출 외부에서 렌더링된 가청 출력의 인식을 완화하는데 사용될 수 있다.
다양한 구현예에서, 자동화된 어시스턴트(115)(일반적으로 도 1에서 점선으로 표시됨)는 어시스턴트 호출 시스템(180)을 사용하여 네트워크(들)(190)(예를 들어, Wi-Fi, 블루투스, 근거리 통신, 근거리 통신망(들), 광역 네트워크(들), 및/또는 기타 네트워크)를 통해 클라이언트 디바이스(110)에서 어시스턴트 호출을 실행할 수 있다. 어시스턴트 호출 시스템(180)은 다양한 구현예에서, 음성 인식 엔진(120A2), NLU 엔진(130A2), 음성 합성 엔진(140A2) 및 어시스턴트 호출 엔진(150)을 포함한다. 자동화된 어시스턴트(115)는 추가 사용자와의 전화 호출 동안 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 작업(들)을 수행하기 위해 어시스턴트 호출 시스템(180)을 활용할 수 있다.
더욱이, 일부 구현예에서, 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 임의의 작업(들)을 수행하기 전에, 자동화된 어시스턴트(115)는 자동화된 어시스턴트(115)와의 대화에 참여하기 위해 추가 사용자로부터 동의를 얻을 수 있다. 예를 들어, 자동화된 어시스턴트(115)는 어시스턴트 호출을 개시할 때 그리고 작업(들)을 수행하기 전에 동의를 얻을 수 있다. 다른 예로서, 자동화된 어시스턴트(115)는 비록 진행 중인 호출이 자동화된 어시스턴트(115)에 의해 개시되지 않더라도 주어진 사용자가 진행 중인 호출을 개시할 때 클라이언트 디바이스(110)의 주어진 사용자에 대한 동의를 얻을 수 있다. 자동화된 어시스턴트(115)가 연관된 추가 사용자로부터 동의를 얻는 경우, 자동화된 어시스턴트(115)는 어시스턴트 호출 시스템(180)을 사용하여 작업(들)을 수행할 수 있다. 그러나, 자동화된 어시스턴트(115)가 추가 사용자로부터 동의를 얻지 못하면, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)로 하여금 주어진 사용자가 작업을 수행하고 및/또는 호출을 종료하는 것이 필요하다고 나타내는 알림을 렌더링(예를 들어, 렌더링 엔진(113)을 사용하여)하게 하고 및/또는 작업(들)이 수행되지 않았음을 나타내는 알림을 클라이언트 디바이스(110)의 주어진 사용자에게 렌더링(예를 들어, 렌더링 엔진(113)하게 할 수 있다.
아래에서 더 자세히 설명되는 바와 같이, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자로부터의 사용자 입력을 검출하는 것에 응답하여, 어시스턴트 호출을 사용한 호출 및/또는 진행 중인 호출(즉, 어시스턴트 호출이 아직 호출되지 않은 경우)을 개시하기 위해 어시스턴트 호출 시스템(180)을 사용하여 어시스턴트 호출을 실행할 수 있다. 일부 구현예에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자를 대신하여, 어시스턴트 호출 동안 및/또는 진행 중인 호출 동안 작업(들)을 수행하는데 사용될 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트(115)는 어시스턴트 호출 이전에 및/또는 그 동안 후보 파라미터(들)에 대한 값(들)을 요청하기 위해 클라이언트 디바이스(110)의 주어진 사용자와의 대화에 참여할 수 있다. 이들 구현예의 일부 추가 및/또는 대안 버전에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자와 연관된 사용자 프로필(들)에 기초하여, 어시스턴트 호출 전 및/또는 그 동안 후보 파라미터(들)에 대한 값(들)을 선택하지 않고 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트(115)는 진행 중인 호출의 대화에 기초하여 자동으로, 그리고 사용자 입력 엔진(111)을 통해 클라이언트 디바이스(110)의 주어진 사용자로부터 임의의 사용자 입력을 검출하지 않고, 어시스턴트 호출 시스템(180)을 사용하여 어시스턴트 호출을 구현할 수 있다.
도 1에 도시된 바와 같이, 어시스턴트 호출 시스템(180)은 원격으로(예를 들어, 서버(들) 및/또는 다른 원격 클라이언트 디바이스(들)을 통해) 구현될 수 있다. 어시스턴트 호출 시스템(180)이 네트워크(들)(190)를 통해 원격으로 구현되는 것으로 도 1에 도시되어 있지만, 이는 예를 위한 것이며 제한하려는 것이 아님을 이해해야 한다. 예를 들어, 다양한 구현예에서, 어시스턴트 호출 시스템(180)은 클라이언트 디바이스(110) 상에서 로컬적으로 구현될 수 있다. 또한, 자동화된 어시스턴트(115)가 클라이언트 디바이스(110)에서 로컬적으로 그리고 어시스턴트 호출 시스템(180)에서 원격으로 구현되는 것으로 도 1에 도시되어 있지만, 이는 또한 예를 위한 것이며 제한하려는 것이 아님을 이해해야 한다. 예를 들어, 다양한 구현예에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110) 상에서 로컬로 구현될 수 있고, 별도의 클라우드 기반 자동화된 어시스턴트와 인터렉션할 수 있다.
사용자 입력 엔진(111)이 클라이언트 디바이스(110)의 마이크로폰(들)를 통해 주어진 사용자의 음성 입력을 검출하고 및/또는 추가 사용자로부터 추가 음성 입력을 캡처하는 오디오 데이터를 수신하고, 추가 클라이언트 디바이스로부터 클라이언트 디바이스(110)에 전송되는(예를 들어, 어시스턴트 호출 동안 및/또는 진행 중인 호출 동안) 구현예에서, 클라이언트 디바이스(110)의 음성 인식 엔진(120A1)은 음성 인식 모델(들)(120A)을 사용하여, 음성 입력을 캡처하여 및/또는 추가 음성 입력을 캡처하여 음성 입력 및/또는 추가 음성 입력에 대응하는 인식된 텍스트를 생성하기 위해 오디오 데이터를 프로세싱할 수 있다. 또한, 클라이언트 디바이스(110)의 NLU 엔진(130A1)은 NLU 모델(들)(130A)을 사용하여, 음성 인식 엔진(120A1)에 의해 생성된 인식된 텍스트를 프로세싱하여 음성 입력 및/또는 추가 음성 입력에 포함된 의도(들)를 결정할 수 있다. 예를 들어, 클라이언트 디바이스(110)가 주어진 사용자로부터 "오늘 밤에 예약하기 위해 Example Cafe에 전화해"라는 음성 입력을 검출하면, 클라이언트 디바이스(110)는 음성 인식 모델(들)(120A)을 사용하여, 음성 입력을 캡처하는 오디오 데이터를 프로세싱하여, "오늘 밤 예약하기 위해 Example Cafe에 전화해"의 음성 입력에 대응하는 인식된 텍스트를 생성하고, 그리고 NLU 모델(들)(130A)을 사용하여 인식된 텍스트를 프로세싱하여, 적어도 전화를 개시하는 제1 의도 및 레스토랑을 예약하는 제2 의도를 결정한다. 다른 예로서, 클라이언트 디바이스(110)가 "어린이가 예약에 참여합니까?"의 추가 음성 입력을 검출하면, 클라이언트 디바이스(110)는 음성 인식 모델(들)(120A)을 사용하여, 추가 음성 입력을 캡처하는 오디오 데이터를 프로세싱하여, "어린이가 예약에 참여합니까?"의 추가 음성 입력에 대응하는 인식된 텍스트를 생성하고, 그리고 NLU 모델(들)(130A)을 사용하여 인식된 텍스트를 프로세싱하여, 본 명세서에 기술된 바와 같이 추가 파라미터(들)과 연관된 정보에 대한 요청의 의도를 결정한다. 이러한 구현예의 일부 버전에서, 클라이언트 디바이스(110)는 오디오 데이터, 인식된 텍스트 및/또는 의도(들)를 어시스턴트 호출 시스템(180)에 전송할 수 있다.
사용자 입력 엔진(111)이 클라이언트 디바이스(110)의 마이크로폰(들)를 통해 주어진 사용자의 음성 입력 및/또는 추가 사용자로부터 추가 음성 입력을 캡처하는 오디오 데이터를 검출하고, 추가 클라이언트 디바이스로부터 클라이언트 디바이스(110)에 전송되는(예를 들어, 어시스턴트 호출 동안 및/또는 진행 중인 호출 동안) 다른 구현예에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)로 하여금 음성 입력을 캡처하는 오디오 데이터 및/또는 어시스턴트 호출 시스템(180)에 대한 추가 사용자 입력을 캡처하는 오디오 데이터를 전송하게 할 수 있다. 어시스턴트 호출 시스템(180)의 음성 인식 엔진(120A2) 및/또는 NLU 엔진(130A2)은 클라이언트 디바이스(110)의 인식 엔진(120A1) 및/또는 NLU 엔진(130A1)과 관련하여 위에서 설명된 유사한 방식으로, 음성 입력을 캡처하는 오디오 데이터 및/또는 추가 음성 발화를 캡처하는 오디오 데이터를 프로세싱할 수 있다. 일부 추가 및/또는 대안적 구현예에서, 클라이언트 디바이스(110)의 음성 인식 엔진(120A1) 및/또는 NLU 엔진(130A1)은 어시스턴트 호출 시스템(180)의 음성 인식 엔진(120A2) 및/또는 NLU 엔진(130A2)과 분산 방식으로 함께 사용될 수 있다. 더욱이, 음성 인식 모델(들)(120A) 및/또는 NLU 모델(들)(130A)은 클라이언트 디바이스(110)에 로컬적으로 및/또는 클라이언트 디바이스(110) 및/또는 어시스턴트 호출 시스템(180)과 네트워크(들)(190)를 통해 통신하는 서버(들)에 원격으로 저장될 수 있다.
다양한 구현예에서, 음성 인식 모델(들)(120A)은 종단간 음성 인식 모델(들)이며, 따라서 음성 인식 엔진(들)(120A1 및/또는 120A2)은 모델을 사용하여 직접 음성 입력에 대응하는 인식된 텍스트를 생성할 수 있다. 예를 들어, 음성 인식 모델(들)(120A)은 문자별 기반(또는 다른 토큰별 기반)으로 인식된 텍스트를 생성하는데 사용되는 종단간 모델(들)일 수 있다. 문자별 기반으로 인식된 텍스트를 생성하는데 사용되는 이러한 종단간 모델(들)의 한 비제한적인 예는 순환 신경망 트랜스듀서(RNN-T) 모델이다. RNN-T 모델은 주의 메커니즘을 사용하지 않는 시퀀스 대 시퀀스 모델의 한 형태이다. 또한, 예를 들어, 음성 인식 모델(들)이 종단간 음성 인식 모델(들)이 아닌 경우, 음성 인식 엔진(들)(120A1 및/또는 120A2)은 대신 예측된 음소(들)(및 /또는 기타 표현)을 생성할 수 있다. 예를 들어, 이러한 모델로 예측된 음소(들)(및/또는 다른 표현들)는 예측된 음소(들)에 부합하는 인식된 텍스트를 결정하기 위해 음성 인식 엔진(들)(120A1 및/또는 120A2)에 의해 활용된다. 그렇게 함으로써, 음성 인식 엔진(들)(120A1 및/또는 120A2)은 디코딩 그래프, 어휘 및/또는 다른 리소스(들)를 선택적으로 사용할 수 있다.
사용자 입력 엔진(111)이 클라이언트 디바이스(110)의 사용자 인터페이스 입력 디바이스를 통해 터치 및/또는 타이핑된 입력을 검출하는 구현예에서, 자동화된 어시스턴트(115)는 터치 입력의 표시 및/또는 타이핑된 입력의 표시가 클라이언트 디바이스(110)로부터 어시스턴트 호출 시스템(180)으로 전송되게 할 수 있다. 이러한 구현예의 일부 버전에서, 터치 입력의 표시 및/또는 타이핑된 입력의 표시는 터치 입력의 기본 텍스트 및/또는 타이핑된 입력의 텍스트를 포함할 수 있고, 기본 텍스트 및/또는 텍스트가 NLU 모델(들)(130A)을 사용하여 기본 텍스트 및/또는 텍스트에 대한 의도(들)를 결정하기 위해 프로세싱될 수 있다.
본 명세서에 기술된 바와 같이, 어시스턴트 호출 시스템(180)의 어시스턴트 호출 엔진(150)은 음성 인식 엔진(들)(120A1 및/또는 120A2)에 의해 생성된 인식된 텍스트, 클라이언트 디바이스(110)에서 검출된 터치 입력의 기본 텍스트, 클라이언트 디바이스(110)에서 검출된 타이핑된 입력의 기본 텍스트 및/또는 NLU 엔진(들)(130A1 및/또는 130A2)에 의해 결정된 의도(들)를 더 프로세싱할 수 있다. 어시스턴트 호출 엔진(150)은 다양한 구현예에서, 엔터티 식별 엔진(151), 작업 결정 엔진(152), 파라미터(들) 엔진(153), 작업 수행 엔진(154), 피드백 엔진(155) 및 추천 엔진(156)을 포함한다.
엔터티 식별 엔진(151)은 클라이언트 디바이스(110)의 주어진 사용자를 대신하여, 관여할 엔터티를 식별할 수 있다. 엔터티는 예를 들어 개인 엔터티, 비즈니스 엔터티, 위치 엔터티 및/또는 기타 엔터티일 수 있다. 일부 구현예에서, 엔터티 식별 엔진(151)은 또한 식별된 엔터티에 대한 특정 유형의 엔터티를 결정할 수 있다. 예를 들어, 개인 엔터티의 유형은 친구 엔터티, 가족 구성원 엔터티, 동료 엔터티 및/또는 기타 특정 유형의 개인 엔터티일 수 있다. 또한, 비즈니스 엔터티의 유형은 레스토랑 엔터티, 항공사 엔터티, 호텔 엔터티, 미용실 엔터티, 진료실 엔터티 및/또는 다른 특정 유형의 엔터티일 수 있다. 더욱이, 위치 엔터티의 유형은 학교 엔터티, 박물관 엔터티, 도서관 엔터티, 공원 엔터티 및/또는 다른 특정 유형의 위치 엔터티일 수 있다. 일부 구현예에서, 엔터티 식별 엔진(151)은 또한 식별된 엔터티에 대한 특정 엔터티를 결정할 수 있다. 예를 들어, 개인 엔터티의 특정 엔터티는 사람의 이름(예: Jane Doe 등)일 수 있고, 비즈니스 엔터티의 특정 엔터티는 비즈니스 이름(예: Hypothetical Cafe, Example Cafe, Example Airlines 등)일 수 있고, 그리고 위치 엔터티에 대한 특정 엔터티는 위치의 이름(예: Hypothetical University, Example National Park 등)일 수 있다. 본 명세서에 기술된 엔터티는 다양한 수준의 세분성으로 정의될 수 있지만, 단순화를 위해 본 명세서에서 집합적으로 "엔터티"라고 한다.
일부 구현예에서, 엔터티 식별 엔진(151)은 자동화된 어시스턴트(115)를 사용하여 어시스턴트 호출을 개시하기 전에, 클라이언트 디바이스(110)와의 사용자 인터렉션(들)에 기초하여, 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 관여할 엔터티를 식별할 수 있다. 상기 구현예 중 일부 버전에서, 엔터티는 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신하는 것에 응답하여 식별될 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자가 소프트웨어 애플리케이션의 호출 인터페이스 엘리먼트(예를 들어, 연락처 애플리케이션의 연락처, 브라우저 애플리케이션의 검색 결과 및/또는 및/또는 다른 소프트웨어 애플리케이션에 포함된 다른 호출 가능한 엔터티)에 대한 입력(예: 음성 또는 터치)을 하는 경우, 엔터티 식별 엔진(151)은 호출 인터페이스 엘리먼트와 연관된 엔터티를 식별할 수 있다. 예를 들어, 사용자 입력이 브라우저 애플리케이션에서 "Example Cafe"와 연관된 호출 인터페이스 엘리먼트에 관한 것인 경우, 엔터티 식별 엔진(151)은 "Example Cafe"(또는 더 일반적으로 비즈니스 엔터티 또는 레스토랑 엔터티)를 어시스턴트 호출 동안 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 참여하기 위한 엔터티로서 식별할 수 있다.
일부 구현예에서, 엔터티 식별 엔진(151)은 진행 중인 호출과 연관된 메타데이터에 기초하여 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 관여할 엔터티를 식별할 수 있다. 메타데이터는 예를 들어 추가 사용자와 연관된 전화번호, 추가 사용자와 연관된 위치, 추가 사용자 및/또는 추가 사용자와 연관된 엔터티를 식별하는 식별자, 진행 중인 호출이 시작된 시간, 진행 중인 호출의 지속시간 및/또는 전화 통화와 연관된 기타 메타데이터를 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자가 추가 사용자와 진행 중인 호출에 참여하는 경우, 엔터티 식별 엔진(151)은 클라이언트 디바이스(110)의 주어진 사용자와 추가 사용자 간의 진행 중인 호출의 메타데이터를 분석하여 진행 중인 호출 동안 참여하는 추가 사용자와 연결된 전화 번호를 식별할 수 있다. 또한, 엔터티 식별 엔진(151)은 추가 사용자와 연관된 엔터티를 식별하기 위해 데이터베이스(들)와 전화 번호를 상호 참조할 수 있고, 추가 사용자와 연관된 엔터티를 식별하기 위해 전화 번호와 연관된 대응하는 검색 결과를 식별하기 위해 전화 번호에 대한 검색 쿼리를 제출할 수 있고, 추가 사용자와 연관된 엔터티를 식별하기 위해 다른 액션을 수행할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자가 진행 중인 호출에 참여하고 있다면, 엔터티 식별 엔진(151)은 "Example Airlines"의 신원을 식별하기 위해 진행 중인 호출과 연관된 메타데이터를 분석할 수 있다.
더욱이, 엔터티 식별 엔진(151)은 임의의 식별된 엔터티가 엔터티(들) 데이터베이스(151A)에 저장되게 할 수 있다. 일부 구현예에서, 엔터티(들) 데이터베이스(151A)에 저장된 식별된 엔터티는 엔터티 및/또는 특정 유형의 엔터티에 의해 인덱싱될 수 있다. 예를 들어, 엔터티 식별 엔진(151)이 "Example Cafe" 엔터티를 식별하는 경우, "Example Cafe"는 엔터티(들) 데이터베이스(151A)에서 비즈니스 엔터티로 인덱싱될 수 있고 선택적으로 레스토랑 엔터티로 추가로 인덱싱될 수 있다. 또한, 엔터티 식별 엔진(151)이 "Example Airlines" 엔터티를 식별하면, "Example Airlines"도 엔터티(들) 데이터베이스(151A)에서 비즈니스 엔터티로 인덱싱될 수 있고, 선택적으로 항공사 엔터티로서 추가로 인덱싱될 수 있다. 엔터티(들) 데이터베이스(151A)에 식별된 엔터티를 저장하고 인덱싱함으로써, 엔터티 식별 엔진(151)은 엔터티를 쉽게 식별하고 검색할 수 있고, 이에 의해 장래의 어시스턴트 호출 및/또는 진행 중인 호출에서 마주칠 때 엔터티를 식별하기 위한 후속 프로세싱을 감소시킬 수 있다. 더욱이, 다양한 구현예에서, 각각의 엔터티는 엔터티(들) 데이터베이스(151A)의 작업(들)과 연관될 수 있다.
작업 결정 엔진(152)은 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 수행될 작업(들)을 결정할 수 있다. 일부 구현예에서, 작업 결정 엔진(152)은 자동화된 어시스턴트(115)를 사용하여 어시스턴트 호출을 개시하기 전에 작업(들)을 결정할 수 있다. 상기 구현예 중 일부 버전에서, 작업 결정 엔진(152)은 어시스턴트 호출을 개시하기 위한 사용자 입력에 기초하여 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 수행될 작업(들)을 결정할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자가 "오늘 밤에 예약하기 위해 Example Cafe에 전화해"라는 음성 입력을 제공하는 경우, 작업 결정 엔진(152)은 통화를 개시하고 레스토랑을 예약하는 의도(들)를 활용하여(예를 들어, NLU 모델(들)(130A)을 사용하여 결정됨), 음성 입력에 기초하여 레스토랑 예약을 하는 작업을 결정한다. 다른 예로서, 클라이언트 디바이스(110)의 주어진 사용자가 "Example Cafe"와 연관된 호출 인터페이스 엘리먼트를 선택하는 터치 입력을 제공하고, 호출 인터페이스가 주어진 사용자가 Example Cafe에서 레스토랑 예약을 수정하기를 원한다는 것을 나타내면, 작업 결정 엔진(152)은 터치 입력에 기초하여 기존 레스토랑 예약을 수정하는 작업을 결정할 수 있다.
상기 구현예의 추가 및/또는 대안 버전에서, 작업 결정 엔진(152)은 어시스턴트 호출 동안 관여할 식별된 엔터티에 기초하여 작업(들)을 결정할 수 있다. 예를 들어, 레스토랑 엔터티는 레스토랑 예약을 하는 작업, 레스토랑 예약을 수정하는 작업, 레스토랑 예약을 취소하는 작업 및/또는 기타 작업과 연관될 수 있다. 다른 예로서, 학교 엔터티는 폐쇄에 대해 문의하는 작업, 학생/직원이 그날 학교에 출석하지 않을 것이라고 보고하는 작업 및/또는 기타 작업과 연관될 수 있다.
다른 구현예에서, 작업 결정 엔진(152)은 진행 중인 호출 동안 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 수행될 작업(들)을 결정할 수 있다. 이러한 구현예의 일부 버전에서, 클라이언트 디바이스(110)의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 대화에 대응하는 오디오 데이터의 스트림은 본 명세서에 설명된 바와 같이(예를 들어, 음성 인식 모델(120A) 및 NLU 모델(들)(130A)) 프로세싱될 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자와 추가 클라이언트 디바이스와 연관된 추가 사용자 간의 진행 중인 호출 동안, 작업 결정 엔진(152)이 "당신의 상용 고객 번호는 무엇입니까?"라는 인식된 텍스트를 식별하는 경우, 작업 결정 엔진(152)은 추가 사용자에게 상용 고객 번호를 제공하는 작업을 결정할 수 있다. 상기 구현예의 일부 추가 버전에서, 작업 결정 엔진(152)은 또한 엔터티(들) 데이터베이스(151A) 내의 작업(들)과 연관되어 저장되는 엔터티에 기초하여 작업(들)을 결정할 수 있다. 예를 들어, 엔터티 식별 엔진(151)이 Example Airlines 엔터티와 연관된 추가 사용자를 식별하는 경우(예를 들어, 위에서 설명된 바와 같이 진행 중인 호출과 연관된 메타데이터에 기초하여), 작업 결정 엔진(152)은 항공사 엔터티와 연관하여 저장된 상용 고객 번호를 제공하기 위한 작업에 기초하여 추가 사용자에게 Example Airlines와 연관된 상용 고객 번호를 제공하는 작업을 결정할 수 있다.
파라미터(들) 엔진(153)은 작업 결정 엔진(152)에 의해 결정된 작업(들)과 연관된 파라미터(들)를 식별할 수 있다. 자동화된 어시스턴트(115)는 파라미터(들)에 대한 값(들)을 사용하여 작업(들)을 수행할 수 있다. 일부 구현예에서, 후보 파라미터(들)는 파라미터(들) 데이터베이스(153A)의 작업(들)과 연관되어 저장될 수 있다. 이러한 구현예의 일부 버전에서, 어시스턴트 호출 동안 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 관여할 엔터티를 식별하는 것에 응답하여 주어진 작업에 대한 후보 파라미터(들)가 파라미터(들) 데이터베이스로부터 검색될 수 있다. 예를 들어, 레스토랑 예약 작업을 위해 파라미터(들) 엔진(153)은 이름 파라미터, 날짜/시간 파라미터, 예약 파라미터에 대한 파티 규모, 전화번호 파라미터, 다양한 유형의 좌석 파라미터(예: 부스 좌석 또는 테이블 좌석, 실내 좌석 또는 야외 좌석 등), 어린이 파라미터(즉, 어린이가 예약에 참여할 것인지 여부), 특별 행사 파라미터(예: 생일, 기념일 등) 및/또는 기타 후보 파라미터를 포함하는 하나 이상의 후보 파라미터를 식별하고 검색할 수 있다. 대조적으로, 레스토랑 예약을 수정하는 작업의 경우, 파라미터(들) 엔진(153)은 이름 파라미터, 원래 예약 파라미터의 날짜/시간, 수정된 예약 파라미터의 날짜/시간, 수정된 예약 파라미터의 파티 크기 및/또는 기타 후보 파라미터(들)을 포함하는 후보 파라미터를 식별하고 검색할 수 있다.
일부 추가 및/또는 대안적 구현예에서, 파라미터(들) 엔진(153)은 클라이언트 디바이스(110)의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 진행 중인 호출 동안 주어진 작업에 대한 파라미터(들)를 식별할 수 있다. 이러한 구현예의 일부 버전에서, 진행 중인 호출 동안 주어진 작업에 대해 식별된 파라미터(들)는 파라미터(들) 데이터베이스(153A)에 주어진 작업과 연관되어 저장된 후보 파라미터(들)일 수도 있고 아닐 수도 있다. 위에서 설명된 바와 같이, 주어진 사용자와 추가 사용자 사이의 대화에 대응하는 오디오 데이터 스트림은 진행 중인 호출 동안 수행될 작업(들)을 결정하기 위해 프로세싱될 수 있다. 파라미터(들) 엔진(153)은 추가 사용자가 자동화된 어시스턴트(115)에 알려지지 않은 주어진 파라미터와 연관된 정보를 요청하는지 여부를 결정할 수 있다. 예를 들어, 진행 중인 호출 동안 Example Airlines의 담당자가 클라이언트 디바이스의 주어진 사용자의 상용 고객 번호를 요청하면, 파라미터 (들)엔진(153)은 대화의 인식된 텍스트에 포함된 의도에 기초하여 및/또는 식별된 "Example Airlines" 엔터티에 기초하여 "Example Airlines 상용 고객 번호" 파라미터를 식별할 수 있다.
더욱이, 일부 구현예에서, 파라미터(들) 데이터베이스(153A)에 저장된 후보 파라미터(들)는 엔터티(들) 데이터베이스(151A)에 저장된 다양한 엔터티에 매핑될 수 있다. 파라미터(들) 데이터베이스(153A)에 저장된 후보 파라미터(들)를 엔터티(들) 데이터베이스(151A)에 저장된 다양한 엔터티에 매핑함으로써, 어시스턴트 호출 엔진(150)은 주어진 엔터티를 식별하는 것에 응답하여 작업(들)에 대한 파라미터(들)를 쉽게 식별할 수 있다. 예를 들어, "Example Cafe" 엔터티(또는 더 일반적으로 레스토랑 엔터티)를 식별하는 것에 응답하여, 어시스턴트 호출 엔진(150)은 후보 파라미터(들)의 세트를 결정하기 위해 미리 정의된 작업(들)을 식별할 수 있고(예를 들어, "Example Cafe" 엔터티 및/또는 엔터티(들) 데이터베이스(151A) 내의 레스토랑 엔터티와 연관하여 저장됨), 특정 작업을 식별하는 것에 응답하여(예를 들어, 식별된 엔터티 및/또는 사용자 입력에 기초하여), 어시스턴트 호출 엔진(150)은 식별된 엔터티에 대한 특정 작업과 연관된 후보 파라미터(들)를 결정할 수 있다. 다른 구현예에서, 엔터티(들) 데이터베이스(151A) 및 파라미터(들) 데이터베이스(153A)는 다양한 인덱스(예를 들어, 엔터티로 인덱싱, 작업(들)로 인덱싱, 및/또는 다른 인덱스)를 갖는 하나의 데이터베이스로서 결합될 수 있고, 엔터티(들), 작업(들) 및 후보 파라미터(들)는 각각 서로 연관되어 저장될 수 있다.
위에서 언급된 바와 같이, 자동화된 어시스턴트(115)는 파라미터(들)에 대한 값(들)을 사용하여 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 작업(들)을 수행할 수 있다. 파라미터(들) 엔진(153)은 또한 파라미터(들)에 대한 값(들)을 결정할 수 있다. 구현예에서, 클라이언트 디바이스(110)의 주어진 사용자가 어시스턴트 호출을 개시하기 위해 사용자 입력을 제공할 때, 파라미터(들) 엔진(153)은 자동화된 어시스턴트(115)로 하여금 주어진 사용자와 대화에 참여하게 하여(예를 들어, 클라이언트 디바이스(110)를 통해 시각적으로 및/또는 청각적으로), 어시스턴트 호출을 개시하기 전에, 후보 파라미터(들)에 대한 정보를 요청하는 추가 사용자 입력을 요청한다. 본 명세서에 설명된 바와 같이, 자동화된 어시스턴트(115)는 정보를 요청하는 프롬프트(들)를 생성할 수 있고, 대응하는 값(들)(또는 그 서브세트)을 청각적으로(예를 들어, 클라이언트 디바이스(110)의 스피커(들)을 통해) 클라이언트 디바이스(110)를 통해 요청하도록 프롬프트를 렌더링할 수 있다. 예를 들어, Example Cafe에서 예약하기 위해 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신하는 것에 응답하여(예: 터치 입력 또는 음성 입력을 통해), 자동화된 어시스턴트는 예약에 대한 날짜/시간 파라미터, 예약에 대한 인원 파라미터에 대한 값, 기타 후보 파라미터(또는 이들의 서브세트)에 대한 값을 포함하는 추가 사용자 입력을 요청하는 프롬프트(들)를 생성할 수 있다.
이들 구현예의 일부 버전에서, 파라미터(들) 엔진(153)은 클라이언트 디바이스(110)의 주어진 사용자의 사용자 프로필(들) 데이터베이스(153B)에 저장된 사용자 프로필(들)에 기초하여 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다. 상기 구현예의 일부 추가 버전에서, 파라미터(들) 엔진(153)은 주어진 사용자로부터 임의의 추가 사용자 입력을 요청하지 않고 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다. 파라미터(들) 엔진(153)은 사용자 프로필(들) 데이터베이스(153B)에 액세스할 수 있고, 소프트웨어 애플리케이션(예를 들어, 캘린더 애플리케이션, 이메일 애플리케이션, 연락처 애플리케이션, 리마인더 애플리케이션, 메모 애플리케이션, SMS 또는 문자 메시지 애플리케이션 및/또는 기타 소프트웨어 애플리케이션)으로부터 이름 파라미터, 전화번호 파라미터, 시간/날짜 파라미터에 대한 값(들)을 검색할 수 있다. 사용자 프로필(들)은 예를 들어, 주어진 사용자의 허가를 받아 주어진 사용자의 연결된 계정, 주어진 사용자의 이메일 계정, 주어진 사용자의 사진 앨범, 주어진 사용자의 소셜 미디어 프로필, 주어진 사용자의 연락처, 사용자 기본 설정 및/또는 기타 정보를 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자가 친구와 문자 메시지 대화에 참여하고 어시스턴트 호출을 개시하기 위한 사용자 입력을 제공하기 전에 주어진 엔터티에서 레스토랑 예약을 위한 날짜/시간 정보를 논의하는 경우, 파라미터(들) 엔진(153)은 문자 메시지 대화로부터의 날짜/시간 정보를 날짜/시간 파라미터에 대한 값(들)으로 활용할 수 있고, 자동화된 어시스턴트는 레스토랑 예약을 위한 날짜/시간 정보에 대해 주어진 사용자에게 프롬프트할 필요가 없다. 본 명세서에서 더 자세히 논의된 바와 같이(예를 들어, 도 4b과 연관하여), 클라이언트 디바이스(110)의 주어진 사용자는 어시스턴트 호출이 개시되기 전에 후보 파라미터(들)에 대한 값(들)을 수정할 수 있다.
더욱이, 다양한 구현예에서, 주어진 작업에 대한 일부 후보 파라미터(들)는 필수 파라미터(들)일 수 있는 반면, 주어진 작업에 대한 다른 후보 파라미터(들)은 선택적 파라미터(들)일 수 있다. 이러한 구현예의 일부 버전에서 주어진 파라미터가 필수 파라미터인지 또는 선택적 파라미터인지 여부는 작업에 기초할 수 있다. 다시 말해, 주어진 작업에 대한 필수 파라미터(들)는 주어진 작업을 수행하기 위해 알아야 하는 최소한의 정보일 수 있다. 예를 들어 레스토랑 예약 작업의 경우, 이름 파라미터와 시간/날짜 파라미터가 유일한 필수 파라미터(들)일 수 있다. 그러나 레스토랑 예약 작업은 선택적 파라미터(예: 예약을 더 잘 수용하기 위한 파티 규모, 추가 연락이 필요한 경우 전화할 전화번호 등)에 대한 값(들)이 알려진 경우 주어진 사용자 및 레스토랑 예약 작업과 연관된 레스토랑 모두에게 더 큰 이점이 될 수 있다. 따라서, 자동화된 어시스턴트(115)는 적어도 필수 파라미터(들)에 대한 프롬프트(들), 및 선택적으로 선택적 파라미터(들)에 대한 프롬프트(들)를 생성할 수 있다.
구현예에서, 어시스턴트 호출 시스템(180)이 클라이언트 디바이스(110)의 주어진 사용자와 진행 중인 호출에 참여하는 추가 사용자가 파라미터(들)에 대한 정보를 요청한다고 결정할 때, 파라미터(들) 엔진(153)은 클라이언트 디바이스(110)의 주어진 사용자의 사용자 프로필(들) 데이터베이스(153B)에 저장된 사용자 프로필(들)에 기초하여 값(들)을 결정할 수 있다. 이들 구현예의 일부 버전에서, 파라미터(들) 엔진(153)은 파라미터(들)에 대한 정보를 요청하는 추가 사용자를 식별하는 것에 응답하여 파라미터(들)에 대한 값(들)을 결정할 수 있다. 이들 구현예의 다른 버전에서, 파라미터(들) 엔진(153)은 파라미터(들)에 대한 정보를 요청하는 클라이언트 디바이스(110)의 주어진 사용자로부터의 사용자 입력에 응답하여 파라미터(들)에 대한 값(들)을 결정할 수 있다.
다양한 구현예에서, 작업 수행 엔진(154)은 작업(들)을 수행하기 위한 어시스턴트 호출 동안, 자동화된 어시스턴트(115)로 하여금 합성된 스피치를 사용하여 식별된 엔터티와 연관된 추가 사용자와 대화에 참여하게 할 수 있다. 작업 수행 엔진(154)은 적어도 값을 포함하는 텍스트 및/또는 음소를 클라이언트 디바이스(110)의 음성 합성 엔진(140A1) 및/또는 어시스턴트 호출 시스템(180)의 음성 합성 엔진(140A2)에 제공하여 합성된 스피치 오디오 데이터를 생성할 수 있다. 합성된 스피치 오디오 데이터는 추가 클라이언트 디바이스에서 가청 렌더링을 위해 추가 사용자의 추가 클라이언트 디바이스로 전송될 수 있다. 음성 합성 엔진(들)(140A1 및/또는 140A2)은 음성 합성 모델(들)(140A)을 사용하여 적어도 파라미터(들)에 대한 값(들)에 대응하는 합성된 스피치를 포함하는 합성된 스피치 오디오 데이터를 생성할 수 있다. 예를 들어, 음성 합성 엔진(들)(140A1 및/또는 140A2)은 추가 사용자가 요청한 파라미터(들)에 대한 정보에 대응하도록 결정된 음소들의 시퀀스를 결정할 수 있고, 음성 합성 모델(들)(140A)을 이용하여 음소들의 시퀀스를 프로세싱하여, 합성된 스피치 오디오 데이터를 생성한다. 합성된 스피치 오디오 데이터는 예를 들어 오디오 파형의 형태일 수 있다. 적어도 파라미터(들)에 대한 값(들)에 대응하는 음소 시퀀스를 결정할 때, 음성 합성 엔진(140A1 및/또는 140A2)은 클라이언트 디바이스(110)에 로컬로 저장된 또는 서버(들)에 저장된(예를 들어, 네트워크(들)(190)를 통해) 토큰-음소 매핑에 액세스할 수 있다.
일부 구현예에서, 작업 수행 엔진(154)은 클라이언트 디바이스(110)로 하여금 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 관여할 엔터티와의 어시스턴트 호출을 개시하게 하고, 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 작업(들)을 수행하게 할 수 있다. . 더욱이, 작업 수행 엔진(154)은 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 작업(들)을 수행하기 위한 적어도 파라미터(들)에 대한 값(들)을 포함하는 합성된 스피치 오디오 데이터를 활용할 수 있다. 예를 들어, 레스토랑 예약 작업을 위해, 자동화된 어시스턴트(155)는 클라이언트의 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 자동화된 어시스턴트(115)를 식별하고, 어시스턴트 호출 동안 주어진 사용자를 대신하여 수행될 작업(들)을 명시하는 합성된 스피치(예를 들어, "이것은 Jane Doe를 대신하여 예약을 하기 위해 전화하는 Jane Doe의 자동화된 어시스턴트입니다")가 추가 사용자와 연관된 추가 클라이언트 디바이스에서 렌더링되게 할 수 있다.
상기 구현예 중 일부 버전에서, 자동화된 어시스턴트(115)는 다양한 후보 파라미터(들)에 대한 대응하는 값(들)(예를 들어, 위에서 설명된 바와 같은 파라미터(들) 엔진(153)을 사용하여 결정됨)이 엔터티와 연관된 추가 사용자에 의해 명시적으로 요청되지 않고 렌더링되게 할 수 있다. 위의 예를 계속하면, 자동화된 어시스턴트(115)는 예약에 대한 시간/날짜 파라미터(예를 들어, "오늘 밤 7:00 PM" 등)에 대한 값, 예약에 대한 인원 파라미터에 대한 값(예: "2", "3", "4" 등), 예약에 대한 좌석 파라미터 유형에 대한 값(예: "부스", "실내" 등) 및/또는 기타 후보 파라미터(들)을 대화 시작시 제공할 수 있다. 이러한 구현예의 다른 버전에서, 자동화된 어시스턴트(115)는 추가 컴퓨팅 디바이스의 추가 사용자와 대화에 참여할 수 있고, 엔터티와 연관된 추가 사용자에 의해 명시적으로 요청된 파라미터(들)에 대한 특정 값(들)을 제공할 수 있다. 위의 예를 계속하면, 자동화된 어시스턴트(115)는 추가 사용자의 스피치를 캡처하는 오디오 데이터를 프로세싱할 수 있고(예를 들어, "몇 시에 몇 명입니까?" 등), 추가 사용자의 요청 수신에 대한 응답으로 추가 사용자에 의해 요청되는 파라미터(들)에 대한 정보를 결정할 수 있다(예: "오늘 밤 7시 5명" 등).
더욱이, 이들 구현예의 일부 버전에서, 작업 결정 엔진(154)은 엔터티와 연관된 추가 사용자로부터의 요청이 자동화된 어시스턴트(115)가 대응하는 추가 값(들)을 알지 못하는 추가 파라미터(들)와 연관된 정보에 대한 요청임을 결정할 수 있다. 예를 들어, 레스토랑 예약 작업의 경우, 자동화된 어시스턴트(115)는 날짜/시간 정보 파라미터, 인원수 파라미터 및 좌석 유형 파라미터에 대한 값을 알고 있지만, 추가 사용자는 알려지지 않은 어린이 파라미터(즉, 어린이가 예약에 참여하는지 여부)에 대한 정보를 요청한다고 가정한다. 추가 사용자가 알려지지 않은 어린이 파라미터에 대한 정보를 요청하고 있다고 결정하는 것에 응답하여, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)로 하여금 어린이 파라미터에 대한 추가 값이 추가 사용자에 의해 요청되었음을 나타내고 클라이언트 디바이스(110)의 주어진 사용자에게 어린이 파라미터에 대한 추가 값을 제공하도록 프롬프트하는 알림을 렌더링하게 할 수 있다(예를 들어, 렌더링 엔진(113)을 사용하여),
상기 구현예의 일부 추가 버전에서, 클라이언트 디바이스(110)에서 렌더링되는 알림의 유형 및/또는 알림을 렌더링하는 하나 이상의 속성(예를 들어, 볼륨, 밝기, 크기)은 클라이언트 디바이스(110)의 상태(예를 들어, 디바이스 상태 엔진(112)을 사용하여 결정됨) 및/또는 진행 중인 호출의 상태에 기초할 수 있다. 진행 중인 호출의 상태는 예를 들어 진행 중인 호출에서 어떤 값(들)이 전달되었는지 및/또는 아직 전달되지 않았는지 표시할 수 있으며 및/또는 진행 중인 호출 작업의 어떤 컴포넌트(들)가 완료되었는지 및/또는 아직 완료되지 않았는지 표시할 수 있다. 클라이언트 디바이스(110)의 상태는 예를 들어 클라이언트 디바이스(110)의 포어그라운드에서 동작하는 소프트웨어 애플리케이션(들), 클라이언트 디바이스(110)의 백그라운드에서 동작하는 소프트웨어 애플리케이션(들), 클라이언트 디바이스(110)가 잠금 상태에 있는지 여부, 클라이언트 디바이스(110)가 슬립 상태에 있는지 여부, 클라이언트 디바이스(110)가 오프 상태인지 여부, 클라이언트 디바이스(110)의 센서(들)로부터의 센서 데이터 및/또는 다른 데이터에 기초할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 상태가 어시스턴트 호출의 전사를 디스플레이하는 소프트웨어 애플리케이션(예를 들어, 자동화된 어시스턴트 애플리케이션, 통화 애플리케이션, 어시스턴트 호출 애플리케이션 및/또는 기타 소프트웨어 애플리케이션)이 클라이언트 디바이스(110)의 포어그라운드에서 동작하고 있는 경우, 알림의 유형은 배너 알림, 팝업 알림, 및/또는 다른 유형의 시각적 알림일 수 있다. 다른 예로서, 클라이언트 디바이스(110)의 상태가 클라이언트 디바이스(110)가 슬립 또는 잠금 상태에 있음을 나타내는 경우, 알림 유형은 스피커(들)를 통한 청각적 표시 및/또는 스피커(들) 또는 클라이언트 디바이스(110)의 다른 하드웨어 컴포넌트를 통한 진동일 수 있다. 또 다른 예로서, 존재 센서(들), 가속도계(들), 및/또는 클라이언트 디바이스의 다른 센서(들)로부터의 센서 데이터가 주어진 사용자가 현재 클라이언트 디바이스 근처에 있지 않고 및/또는 현재 클라이언트 디바이스를 들고 있지 않다는 것을 나타내면, 더 방해적인 알림이 제공될 수 있다(예: 제1 볼륨 수준에서 시각적 및 청각적). 반면에, 이러한 센서 데이터가 주어진 사용자가 현재 클라이언트 디바이스 근처에 있고 및/또는 현재 클라이언트 디바이스를 들고 있음을 나타내는 경우, 덜 방해가 되는 알림이 제공될 수 있다(예: 시각적으로만, 또는 제1 볼륨 수준보다 낮은 제2 볼륨 수준에서 시각적 및 청각적). 또 다른 예로서, 대화의 상태가 대화가 거의 완료되었음을 나타내면, 더 방해적인 알림이 제공될 수 있는 반면, 대화의 상태가 대화가 거의 완료되지 않았음을 나타내면 덜 방해적인 알림이 제공될 수 있다.
이러한 구현예의 일부 추가 버전에서, 자동화된 어시스턴트(115)가 추가 사용자에 의해 요청된 추가 파라미터(들)에 대한 대응하는 추가 값(들)을 알지 못하더라도, 작업 결정 엔진(153)은 자동화된 어시스턴트(115)로 하여금 추가 사용자와의 대화를 계속하게 할 수 있다. 자동화된 어시스턴트(115)는 추가 사용자로부터의 요청에 응답하여 추가 사용자 입력을 수신한 후 대화에서 나중에 추가 값(들)을 제공할 수 있다. 예를 들어, 레스토랑 예약 작업의 경우, 자동화된 어시스턴트(115)가 날짜/시간 정보 파라미터, 인원수 파라미터 및 좌석 유형 파라미터에 대한 값을 알고 있다고 가정하고, 추가 사용자가 날짜/시간 정보 파라미터 및 인원수 파라미터에 대한 값(들)을 요청한다고 가정한다. 또한 추가 사용자가 다음으로 자동화된 어시스턴트(115)가 값을 알지 못하는 어린이 파라미터에 대한 값을 요청한다고 가정한다. 이 예에서, 작업 결정 엔진(153)은 자동화된 어시스턴트(115)로 하여금 추가 사용자의 추가 클라이언트 디바이스에서, 어린이가 참여할 것인지에 대한 요청된 정보가 현재 알려져 있지 않았다는 표시를 포함하고 자동화된 어시스턴트(115)가 알림에 응답하여 어린이 파라미터에 대한 값을 포함하는 추가 사용자 입력이 클라이언트 디바이스(110)에서 검출될 때까지 다른 값(들)(예를 들어, 좌석 유형에 대한)을 제공함으로써 어시스턴트 호출을 계속할 수 있다는 합성된 스피치를 렌더링하게 할 수 있다. 추가 사용자 입력을 수신하는 것에 응답하여, 자동화된 어시스턴트(115)는 독립형 값(예: "어린이가 예약에 참여하지 않음") 또는 팔로우-온 값(예: "Jane Doe가 부스 좌석을 선호하고, 어린이가 예약에 참여하지 않음")으로서 추가 값을 제공할 수 있다.
더욱이, 추가 사용자가 알려지지 않은 추가 파라미터(들)에 대한 정보를 요청하는 구현예에서, 자동화된 어시스턴트(115)는 정보를 요청하는 알림에 응답하여 추가 사용자 입력이 임계 지속시간(예를 들어, 15초, 30초, 60초 및/또는 다른 시간 지속시간) 내에서 수신되지 않으면 어시스턴트 호출을 종료할 수 있다. 이러한 구현예의 일부 버전에서, 정보를 요청하는 알림이 주어진 사용자의 클라이언트 디바이스(110)에서 렌더링되면 임계 지속기간이 시작될 수 있다. 이러한 구현예의 다른 버전에서, 시간의 임계 지속기간은 자동화된 어시스턴트(115)에 알려진 마지막 값이 추가 사용자에 의해 요청되거나 자동화된 어시스턴트(115)에 의해 사전에 제공될 때(추가 사용자 요청과 무관하게) 시작될 수 있다.
또한, 추가 사용자가 알려지지 않은 추가 파라미터(들)에 대한 정보를 요청하는 구현예에서, 피드백 엔진(155)은 작업에 대한 후보 파라미터(들)로서 파라미터(들) 데이터베이스(153A)에 추가 파라미터(들)를 저장할 수 있다. 이러한 구현예의 일부 버전에서, 피드백 엔진(153A)은 추가 파라미터(들)를 추가 사용자와 연관된 엔터티(들) 데이터베이스(151A)에 저장된 엔터티에 매핑할 수 있다. 상기 구현예의 일부 추가 버전에서, 피드백 엔진(155)은 엔터티와 연관된 추가 사용자(들)가 어시스턴트 음성이 활성화되어 있는 동안 복수의 사용자로부터 임계 횟수만큼 추가 파라미터(들)를 요청하는 경우 추가 파라미터(들)를 엔터티에 매핑할 수 있다. 예를 들어, 레스토랑 엔터티가 각각의 클라이언트 디바이스를 통해 복수의 사용자에 의해 개시된 복수의 어시스턴트 호출에 걸쳐 대화하는 동안 레스토랑 예약에 어린이를 포함할 것인지에 대해 적어도 임계 횟수(예: 100회, 1,000회, 및/또는 다른 수치 임계값)만큼 물어본 경우, 피드백 엔진(155)은 엔터티(들) 데이터베이스(151A) 내의 다양한 레스토랑 엔터티에 어린이 파라미터를 매핑할 수 있다. 이 예에서, 어린이 파라미터는 다양한 레스토랑 엔터티 및/또는 어린이 파라미터에 대한 정보를 자주 요청하는 특정 엔터티와 레스토랑 예약 작업(들)에 대한 향후 어시스턴트 호출을 개시하기 전에 값을 요청하기 위한 새로운 후보 파라미터로 간주될 수 있다. 이러한 방식 및 기타 방식으로, 장래 어시스턴트 호출을 개시하기 전에 값을 요청할 수 있으므로, 장래 어시스턴트 호출의 지속시간을 단축하고 및/또는 장래 어시스턴트 호출에서 값에 대한 프롬프트를 렌더링하는데 계산 리소스를 활용할 필요를 방지한다.
일부 구현예에서, 작업 수행 엔진(154)은 자동화된 어시스턴트(115)로 하여금 비록 클라이언트 디바이스(110)의 주어진 사용자를 대신하여 작업(들)을 수행하기 위해 진행 중인 호출이 어시스턴트 음성(즉, 비-어시스턴트 호출)을 사용하여 개시되지 않은 경우에도, 엔터티와 연관된 추가 사용자와의 진행 중인 호출과 관련된 출력을 제공하게 할 수 있다. 예를 들어, 자동화된 어시스턴트(115)는 진행 중인 호출을 중단하여, 값(들)을 포함하는 합성된 스피치가 추가 클라이언트 디바이스(110)에서 렌더링되게 할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자로부터의 사용자 입력에 응답하여 진행 중인 호출과 관련된 출력을 제공할 수 있다(예를 들어, 도 5a에 대해 설명된 바와 같이). 이러한 구현예의 일부 추가 버전에서, 자동화된 어시스턴트(115)는 진행 중인 호출에 대응하는 오디오 데이터를 프로세싱하지 않을 수 있으며, 이에 따라 추가 사용자로부터 동의를 얻을 필요가 없다. 오히려, 자동화된 어시스턴트(115)는 진행 중인 호출과 연관된 메타데이터를 분석하고, 메타데이터 및/또는 사용자 입력에 기초하여 추가 사용자에 의해 요청되는 파라미터에 대한 대응하는 값(들)을 결정할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 어시스턴트 호출을 활성화하고 자동화된 어시스턴트(115)에게 추가 사용자에 의해 요청된 대응하는 값(들)(예를 들어, 상용 고객 번호 파라미터에 대한 값)을 검색하도록 요청하는 사용자 입력을 검출할 수 있고, 특정 엔터티가 요청에서 명시적으로 식별되지 않은 경우에도 진행 중인 호출과 연관된 메타데이터에 기초하여 값이 특정 엔터티(예: Example Airlines)와 연관되지 결정할 수 있다. 사용자에 대한 액세스-제한 데이터는 자동화된 어시스턴트에 의해 그리고 추가 사용자의 요청(예를 들어, "상용 고객 번호")과 메타데이터(예를 들어, "Example Airlines") 둘 모두에 기초하여 검색 파라미터(예를 들어, 용어(들))를 사용하여 검색될 수 있다. 더욱이, 상기 구현예의 일부 추가 버전에서, 진행 중인 호출과 관련된 출력을 제공하기 위한 자동화된 어시스턴트(115)에 대한 사용자 입력은 알림에 대한 응답이고, 자동화된 어시스턴트(115)에 의해 생성되고, 클라이언트 디바이스(110)에서 렌더링되며(예를 들어, 렌더링 엔진(113)을 사용하여), 어시스턴트 호출 시스템(180)이 추가 사용자에게 값(들)을 제공할 수 있음(예를 들어, 도 5b와 관련하여 기술된 바와 같이)을 표시한다. 예를 들어, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자에게 어시스턴트 호출 시스템(180)이 추가 사용자에 의해 요청되고 있는 파라미터(들)에 대응하는 값(들)을 제공할 수 있음을 사전에 알릴 수 있다.
이러한 구현예의 다른 버전에서, 자동화된 어시스턴트(115)는 정보가 추가 사용자에 의해 요청되고 있다는 결정에 응답하여, 그리고 클라이언트 디바이스(110)의 주어진 사용자로부터 임의의 사용자 입력을 수신하지 않고, 진행 중인 호출과 관련된 출력(예를 들어, 진행 중인 호출 내에서 합성된 스피치)을 제공한다(예를 들어, 도 5c와 관련하여 기술된 바와 같이). 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트(115)는 신뢰 임계값을 충족하는 값에 대한 신뢰도 메트릭에 기초하여 값(들)을 자동으로 제공할 수 있다. 신뢰도 메트릭은 예를 들어 동일한 값에 대한 사전 요청 수신에 대한 응답으로 주어진 사용자가 이전에 결정된 값을 제공했는지 여부, 진행 중인 호출 동안 식별된 파라미터가 진행 중인 호출 동안 식별된 작업과 연관하여 저장된 후보 파라미터인지 여부, 값이 결정되는 소스(예: 이메일/캘린더 애플리케이션 대 텍스트 메시지 애플리케이션) 및/또는 신뢰도 메트릭을 결정하는 방식에 기초할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 주어진 사용자와 항공사 엔터티와 연관된 추가 사용자 사이의 진행 중인 호출에 대해, 어시스턴트 호출 시스템(180)은 추가 사용자에 의해 요청되는 상용 고객 번호를 결정할 수 있고, 어시스턴트 호출 시스템(180)은 자동화된 어시스턴트(115)로 하여금 진행 중인 호출의 일부로서 상용 고객 번호를 포함하는 합성된 스피치를 자동으로 제공하게 할 수 있으며, 자동화된 어시스턴트(115)가 상용 고객 번호를 제공하도록 요청하는 사용자 입력을 수신하지 않고도 합성된 스피치를 자동으로 제공할 수 있다. 이러한 구현예의 일부 버전에서, 클라이언트 디바이스(110)의 주어진 사용자는 어시스턴트 호출과 연관된 설정에서 진행 중인 호출을 자동으로 중단하기 위해 어시스턴트 호출을 승인해야 할 수 있다.
다양한 구현예에서, 추천 엔진(156)은 대화에서 전달될 후보 값(들)을 결정할 수 있고, 자동화된 어시스턴트(115)로 하여금 후보 값(들)을 클라이언트 디바이스(110)의 주어진 사용자에 대한 추천(들)로서 제공하게 할 수 있다. 일부 구현예에서, 후보 값(들)은 네트워크(190)를 통해 클라이언트 디바이스(110)에 전송될 수 있다. 또한, 후보 값(들)은 추가 사용자로부터의 요청(들)에 응답하는 추천(들)으로서 (예를 들어, 렌더링 엔진(113)을 사용하여) 클라이언트 디바이스의 디스플레이 상에 시각적으로 렌더링될 수 있다. 이들 구현예의 일부 버전에서, 추천(들)은 사용자 입력이 주어진 추천을 지시하는 경우(예를 들어, 사용자 입력 엔진(111)에 의해 결정된 바와 같이), 주어진 추천이 추가 사용자의 추가 클라이언트 디바이스에서 청각적으로 렌더링되는 합성된 스피치에 통합될 수 있도록 선택가능할 수 있다.
일부 구현예에서, 추천 엔진(156)은 추가 사용자로부터의 정보 요청에 기초하여 후보 값(들)을 결정할 수 있다. 예를 들어, 요청이 예 또는 아니오 질문(예를 들어, "어린이가 예약에 포함되나요?")인 경우, 추천 엔진(156)은 "예" 값을 포함하는 제1 추천 및 "아니오" 값을 포함하는 제2 추천을 결정할 수 있다. 다른 구현예에서, 추천 엔진(156)은 클라이언트 디바이스(110)와 연관된 주어진 사용자의 사용자 프로필(들) 데이터베이스(153B)에 저장된 사용자 프로필(들)에 기초하여 후보 값(들)을 결정할 수 있다. 예를 들어, 요청이 특정 정보(예를 들어, "몇 명의 어린이가 있는지")를 요청하는 경우, 추천 엔진(156)은 주어진 사용자로부터의 허가 하에 주어진 사용자의 사용자 프로필(들)에 기초하여 클라이언트 디바이스(110)의 주어진 사용자가 3명의 자녀를 갖고 있다고 결정할 수 있고, "3" 값을 포함하는 제1 추천, "2" 값을 포함하는 제2 추천, "1" 값을 포함하는 제3 추천 및/또는 다른 값(들)을 포함한 기타 추천(들)을 결정할 수 있다. 본 명세서에 기술된 다양한 추천은 클라이언트 디바이스와 연관된 주어진 사용자에게 제시하기 위해 클라이언트 디바이스(110)에서 시각적으로 및/또는 청각적으로 렌더링될 수 있다.
본 명세서에 기술된 바와 같이, 렌더링 엔진(113)은 클라이언트 디바이스(110)에서 다양한 알림 또는 다른 출력을 렌더링할 수 있다. 렌더링 엔진(113)은 본 명세서에 기술된 다양한 알림을 청각적으로 및/또는 시각적으로 렌더링할 수 있다. 더욱이, 렌더링 엔진(113)은 대화의 전사로 하여금 클라이언트 디바이스(110)의 사용자 인터페이스 상에서 렌더링되게 할 수 있다. 일부 구현예에서, 전사는 클라이언트 디바이스(110)의 주어진 사용자와 자동화된 어시스턴트(115) 사이의 대화에 대응할 수 있다(예를 들어, 도 4b에 대해 설명된 바와 같이). 다른 구현예에서, 전사는 추가 클라이언트 디바이스의 추가 사용자와 자동화된 어시스턴트(115) 사이의 대화에 대응할 수 있다(예를 들어, 도 4c 및 도 4d에 대해 설명된 바와 같이). 또 다른 구현에서, 전사는 클라이언트 디바이스(110)의 주어진 사용자, 추가 클라이언트 디바이스의 추가 사용자 및 자동화된 어시스턴트(115) 사이의 대화에 대응할 수 있다(예를 들어, 도 5a 내지 도 5c와 연관하여 설명된 바와 같이).
일부 구현예에서, 스케줄링 엔진(114)은 자동화된 어시스턴트(115)로 하여금 작업(들)의 수행 결과를 나타내는 알림과 함께 및/또는 이에 포함되도록 작업(들)의 수행 결과에 기초하여 자동화된 어시스턴트가 추가(또는 팔로우-온) 작업(들)을 수행하는 추천(들)을 포함하게 할 수 있다. 이들 구현예의 일부 버전에서, 추천)은 사용자 입력이 주어진 추천을 지시하는 경우(예를 들어, 사용자 입력 엔진(111)에 의해 결정된 바와 같이), 주어진 추천은 추가 작업(들)이 수행되게 할 수 있다. 예를 들어, 성공적인 레스토랑 예약 작업을 위해, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 디스플레이의 사용자 인터페이스를 통해, 클라이언트 디바이스(110)의 주어진 사용자에 의한 선택 시에 스케줄링 엔진(114)이 성공적인 레스토랑 예약을 위한 캘린더 엔트리를 생성하게 하는 선택가능한 엘리먼트를 렌더링할 수 있다. 다른 예로서, 성공적인 레스토랑 예약 작업에 대해, 자동화된 어시스턴트(115)는 레스토랑 예약 작업이 성공적으로 수행되었음을 나타내는 SMS 또는 문자 메시지를 레스토랑 예약에 참여하고 있는 다른 사용자(들)에게 보낼 수 있다. 대조적으로, 실패한 레스토랑 예약 작업에 대해, 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)의 주어진 사용자에 의한 선택 시에 스케줄링 엔진(114)으로 하여금 리마인더 및/또는 캘린더 엔트리를 생성하여 레스토랑 예약 작업을 나중에 그리고 시도된 레스토랑 예약 작업의 시간/날짜 값 이전에 수행하게 하는 선택가능한 엘리먼트를 렌더링할 수 있다(예를 들어, 나중에 자동화된 어시스턴트(115)에 의해 자동으로 수행되거나 리마인더 및/또는 캘린더 엔트리의 사용자 선택에 응답하여 자동화된 어시스턴트(115)에 의해 수행됨).
다른 구현예에서, 스케줄링 엔진(114)은 자동화된 어시스턴트(115)로 하여금 작업(들)의 수행 결과를 결정하는 것에 응답하여, 상기 작업(들)의 수행 결과에 기초하여 추가(또는 팔로우-온) 작업(들)을 자동으로 수행하게 할 수 있다. 예를 들어, 성공적인 레스토랑 예약 작업의 경우, 자동화된 어시스턴트(115)는 성공적인 레스토랑 예약에 대한 캘린더 엔트리를 자동으로 생성하고, 레스토랑 예약 작업이 성공적으로 수행되었다고 표시하는 SMS 또는 문자 메시지를 레스토랑 예약에 참여하는 다른 사용자(들)에게 자동으로 보낼 수 있고 및/또는 레스토랑 예약 작업이 성공적으로 수행되는 것에 응답하여 자동화된 어시스턴트(115)에 의해 다른 추가 작업(들)이 수행될 수 있다. 대조적으로, 실패한 레스토랑 예약 작업에 대해, 자동화된 어시스턴트(115)는 리마인더 및/또는 캘린더 엔트리를 자동으로 생성하여 레스토랑 예약 작업을 나중에 그리고 레스토랑 예약 작업의 시간/날짜 값 이전에 수행할 수 있다(예를 들어, 나중에 자동화된 어시스턴트(115)에 의해 자동으로 수행되거나 리마인더 및/또는 캘린더 엔트리의 사용자 선택에 응답하여 자동화된 어시스턴트(115)에 의해 수행됨).
본 명세서에 기술된 기법을 사용함으로써, 다양한 기술적 이점이 달성될 수 있다. 하나의 비제한적인 예로서, 자동화된 어시스턴트(115)는 자동화된 어시스턴트(115)에 현재 알려지지 않은 정보가 추가 사용자에 의해 요청될 때 추가 파라미터(들)에 대한 값(들)을 기다리기 위해 어시스턴트 호출의 대화가 중단되지 않기 때문에 어시스턴트 호출을 더 빨리 종료할 수 있다. 본 명세서에 개시된 기법을 사용함으로써 어시스턴트 호출의 길이가 감소될 수 있기 때문에 네트워크 및 계산 리소스 둘 모두가 보존될 수 있다. 다른 비제한적 예로서, 자동화된 어시스턴트(115)는 진행중인 전화 통화 동안 주어진 사용자에 의한 작업(들)의 수행 동안 파라미터(들)에 대한 대응하는 값(들)을 제공할 수 있다. 위에서 설명된 바와 같이, 명시적 사용자 입력에 응답하여 또는 자동으로 대응 값(들)을 제공함으로써, 사용자는 대응 값(들)을 결정하기 위해 별도의 사용자 인터페이스를 갖는 다양한 애플리케이션을 탐색할 필요가 없으므로, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)의 주어진 사용자로부터 더 적은 수의 입력을 수신하여, 주어진 클라이언트 디바이스에서 계산 리소스를 절약할 수 있다. 더욱이, 시스템은 사용자가 이러한 다양한 애플리케이션을 탐색할 필요가 없기 때문에 진행 중인 호출을 더 빨리 종료함으로써 계산 및 네트워크 리소스 둘 모두를 절약한다.
도 2는 다양한 구현예에 따라, 어시스턴트 호출을 수행하는 예시적 방법(200)을 예시하는 흐름도를 도시한다. 편의상, 방법(200)의 동작은 동작을 수행하는 시스템을 참조하여 기술된다. 방법(200)의 이 시스템은 컴퓨팅 디바이스(들)(예를 들어, 도 1의 클라이언트 디바이스(110), 도 4a 내지 4d의 클라이언트 디바이스(410), 도 5a 내지 5c의 클라이언트 디바이스(510), 도 6의 컴퓨팅 디바이스(610), 하나 이상의 서버 및/또는 기타 컴퓨팅 디바이스)의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)을 포함한다. 추가로, 방법(200)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작은 재순서화, 생략 또는 추가될 수 있다.
블록(252)에서, 시스템은 주어진 사용자와 연관된 클라이언트 디바이스를 통해, 주어진 사용자로부터, 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신한다. 일부 구현예에서, 사용자 입력은 클라이언트 디바이스의 마이크로폰(들)을 통해 검출된 음성 입력이다. 예를 들어, 음성 입력은 "Example Cafe에 전화 걸기" 또는 구체적으로 "어시스턴트 호출을 사용하여 Example Cafe에 전화 걸기"를 포함할 수 있다. 다른 구현예에서, 사용자 입력은 클라이언트 디바이스에서 검출된 터치 입력이다. 예를 들어, 다양한 소프트웨어 애플리케이션(예를 들어, 브라우저 애플리케이션, 메시징 애플리케이션, 이메일 애플리케이션, 메모 애플리케이션, 리마인더 애플리케이션 및/또는 기타 소프트웨어 애플리케이션)이 클라이언트 디바이스에서 동작하는 동안 터치 입력이 검출될 수 있다.
블록(254)에서, 시스템은 어시스턴트 호출을 개시하기 위한 사용자 입력에 응답하여, 어시스턴트 호출 동안 주어진 사용자를 대신하여 참여할 엔터티를 식별한다. 엔터티는 사용자 입력에 기초하여 식별될 수 있다. 사용자 입력이 음성 입력인 구현예에서, (예를 들어, 도 1의 음성 인식 모델(들)(120A) 및/또는 NLU 모델(들)(130A)을 사용하여) 음성 입력을 캡처하는 오디오 데이터를 프로세싱하는 것에 기초하여 엔터티가 식별되어, 음성 입력에 포함된 엔터티(예: 비즈니스 엔터티, 특정 비즈니스 엔터티, 위치 엔터티 및/또는 기타 엔터티)를 식별한다. 사용자 입력이 터치 입력인 구현예에서, 엔터티는 클라이언트 디바이스와의 사용자 인터렉션(들)(예를 들어, 엔터티와 연관된 연락처 엔트리, 엔터티와 연관된 검색 결과, 엔터티와 연관된 광고를 선택하는 터치 입력 및/또는 기타 사용자 인터렉션(들))에 기초하여 식별될 수 있다.
블록(256)에서, 시스템은 사용자 입력 및/또는 엔터티에 기초하여 어시스턴트 호출 동안 주어진 사용자를 대신하여 수행될 적어도 하나의 작업을 결정한다. 다양한 구현예에서, 미리 정의된 작업(들)은 하나 이상의 데이터베이스(들)(예를 들어, 도 1의 엔터티(들) 데이터베이스(151A))에서 복수의 대응하는 엔터티와 연관되어 저장될 수 있다. 예를 들어, 항공편 예약, 항공편 변경, 항공편 취소, 수하물 분실 조회, 및/또는 기타 작업은 복수의 별개의 항공사 엔터티와 연관되어 저장될 수 있다. 일부 구현예에서, 수행될 적어도 하나의 작업은 사용자 입력에 기초하여 결정될 수 있다. 예를 들어, "오늘 밤 7시에 예약하기 위해 Example Cafe에 전화해"라는 음성 입력이 클라이언트 디바이스에서 수신되는 경우, 시스템은 음성이 레스토랑 예약 작업을 포함한다고 결정할 수 있다. 다른 구현예에서, 수행될 적어도 하나의 작업은 블록(254)에서 식별된 엔터티에 기초하여 결정될 수 있다. 예를 들어, "Example Cafe에 전화해"의 음성 입력이 클라이언트 디바이스에서 수신되면(즉, 레스토랑 예약 작업을 지정하지 않고), 시스템은 레스토랑 엔터티와 연관된 미리 정의된 작업인 것에 기초하여 예약하는 작업을 추론할 수 있다.
블록(258)에서, 시스템은 적어도 하나의 작업과 연관된 후보 파라미터(들)를 식별한다. 다양한 구현예에서, 후보 파라미터(들)는 (블록(256)에서 결정된) 적어도 하나의 작업과 연관되어 및/또는 (블록(256)에서 결정된) 적어도 하나의 엔터티와 연관되어 하나 이상의 데이터베이스(예를 들어, 도 1의 파라미터(들) 데이터베이스(153A))에 저장될 수 있다. 예를 들어, 항공편 예약, 항공편 변경, 항공편 취소, 수하물 분실 조회, 및/또는 기타 작업은 대응하는 후보 파라미터 연관되어 저장될 수 있다. 또한, 예를 들어, 항공사 엔터티 1과 연관된 항공편 변경 작업은 제1 대응하는 파라미터와 연관하여 저장될 수 있고, 항공사 엔터티 2와 연관된 항공편 변경 작업은 제2 대응하는 파라미터와 연관하여 저장될 수 있다. 다른 예로서, 레스토랑 엔터티 1은 제1 대응 파라미터와 연관되어 저장될 수 있고 레스토랑 엔터티 2는 제2 대응 파라미터와 연관되어 저장될 수 있다.
블록(260)에서, 시스템은 후보 파라미터(들)에 대해, 적어도 하나의 작업의 수행에 사용될 대응하는 값(들)을 결정한다. 일부 구현예에서, 후보 파라미터에 대한 값(들)은 하나 이상의 데이터베이스(예를 들어, 도 1의 사용자 프로필(들) 데이터베이스(153B))에 저장된 주어진 사용자의 사용자 프로필(들))에 기초하여 결정될 수 있다. 사용자 프로필(들)은 예를 들어, 주어진 사용자의 연결된 계정, 주어진 사용자의 이메일 계정, 주어진 사용자의 사진 앨범, 주어진 사용자의 소셜 미디어 프로필, 주어진 사용자의 연락처, 사용자 기본 설정 및/또는 기타 정보를 포함할 수 있다. 예를 들어, 미용실 예약 작업의 경우, 시스템은 연락처 애플리케이션에 기초하여 주어진 사용자에 대한 이름 파라미터 및 전화번호 파라미터를 결정할 수 있고, 특정 스타일리스트와의 이전 통신(예: 이메일 메시지, 문자 또는 SMS 메시지, 전화 통화 및/또는 기타 통신)에 기초하여 미용실의 선호 스타일리스트를 결정할 수 있다. 일부 추가 및/또는 대안 구현예에서, 후보 파라미터에 대한 값(들)은 클라이언트 디바이스에서 시각적으로 및/또는 청각적으로 렌더링되는 프롬프트(들)에 응답하고, 파라미터에 대한 정보를 요청하는 추가 사용자 입력에 기초하여 추가로 또는 대안적으로 결정될 수 있다. 이러한 구현예의 일부 버전에서, 시스템은 시스템이 사용자 프로필(들)에 기초하여 결정할 수 없는 후보 파라미터(들)에 대한 대응 값(들)에 대해서만 프롬프트를 생성할 수 있다. 예를 들어, 위에서 언급한 미용실 예약 작업의 경우, 시스템은 이름 파라미터, 전화번호 파라미터 및 전화번호 파라미터에 대한 값을 이미 알고 있으므로 시스템은 날짜/시간 파라미터에 대한 값을 요청하는 프롬프트만 생성할 수 있다. 본 명세서에 기술된 바와 같이(예를 들어, 도 4b와 관련하여)에 도시된 바와 같이, 시스템은 클라이언트 디바이스의 주어진 사용자가 어시스턴트 호출을 개시하기 전에 후보 파라미터(들)에 대한 값(들)을 수정할 기회를 제공할 수 있다.
블록(262)에서, 시스템은 주어진 사용자와 연관된 클라이언트 디바이스를 사용하여 후보 파라미터(들)에 대한 값(들)으로 적어도 하나의 작업을 수행하기 위해 주어진 사용자를 대신하여 엔터티와의 어시스턴트 호출을 개시한다. 시스템은 추가 컴퓨팅 디바이스로부터, 클라이언트 디바이스에 수신된 오디오 데이터를 프로세싱하여, 추가 사용자에 의해 요청되는 파라미터(들)에 대한 값(들)을 결정할 수 있다. 또한, 시스템은 블록(254)에서 식별된 엔터티와 연관된 추가 사용자의 추가 클라이언트 디바이스로 전송되고 파라미터(들)에 대한 값(들)(예를 들어, 추가 사용자에 의해 요청되는 것에 사전 대응적 또는 응답으로)을 포함하는 합성된 스피치 오디오를 생성할 수 있다. 일부 구현예에서, 시스템은 추가 사용자와 대화에 참여할 수 있고, 추가 사용자에 의해 요청된 정보에 포함된 특정 값(들)을 포함하는 합성된 스피치 오디오를 생성할 수 있다. 예를 들어, 레스토랑 예약 작업의 경우, 추가 사용자는 날짜/시간 파라미터에 대한 정보를 요청할 수 있고, 시스템은 날짜/시간 파라미터에 대한 정보에 대한 추가 사용자의 요청을 결정하는 것에 응답하여 날짜/시간 값을 포함하는 합성 스피치 오디오 데이터를 생성할 수 있다. 또한, 시스템은 합성된 스피치 오디오 데이터가 추가 사용자의 추가 클라이언트 디바이스로 전송되고, 합성된 스피치 오디오 데이터에 포함된 합성된 스피치가 추가 클라이언트 디바이스에서 청각적으로 렌더링되게 할 수 있다. 추가 사용자는 다양한 파라미터(들)에 대한 추가 정보를 요청할 수 있으며, 시스템은 레스토랑 예약 작업을 수행하기 위해 추가 사용자에게 값(들)을 제공할 수 있다.
일부 구현예에서, 방법(200)은 선택적인 서브-블록(262A)을 포함할 수 있다. 포함되는 경우, 선택적인 서브 블록(262A)에서, 시스템은 엔터티와 연관된 추가 사용자로부터 어시스턴트 호출을 모니터링하기 위한 동의를 얻는다. 예를 들어, 시스템은 어시스턴트 호출을 개시할 때 그리고 작업(들)을 수행하기 전에 동의를 얻을 수 있다. 시스템이 연관된 추가 사용자로부터 동의를 얻으면, 시스템이 작업(들)을 수행할 수 있다. 그러나, 시스템이 추가 사용자로부터 동의를 얻지 못하면, 시스템은 클라이언트 디바이스로 하여금 주어진 사용자가 작업을 수행하고 및/또는 호출을 종료하는 것이 필요하다고 나타내는 알림을 렌더링하게 하고 및/또는 작업(들)이 수행되지 않았음을 나타내는 알림을 주어진 사용자에게 렌더링하게 할 수 있다.
블록(264)에서, 시스템은 어시스턴트 호출 동안 엔터티와 연관된 추가 사용자에 의해 추가 파라미터(들)와 연관된 임의의 정보가 요청되는지 여부를 결정한다. 상기 언급된 바와 같이, 시스템은 추가 컴퓨팅 디바이스로부터, 클라이언트 디바이스에 수신된 오디오 데이터를 프로세싱하여, 추가 사용자에 의해 요청되는 값을 결정할 수 있다. 더욱이, 시스템은 요청되는 값(들)이 시스템이 이전에 리졸브하지 않은 추가 파라미터(들)에 대한 것인지 여부를 결정할 수 있고, 추가 사용자에 의해 요청되는 값(들)이 현재 시스템에 알려져 있지 않도록 한다. 예를 들어, 시스템이 레스토랑 예약 작업에 대한 좌석 유형 파라미터의 값을 이전에 결정하지 않은 경우, 좌석 파라미터의 유형은 현재 시스템에 알려지지 않은 값을 갖는 추가 파라미터로 간주될 수 있다. 블록(264)의 반복에서, 시스템이 어시스턴트 호출 동안 엔터티와 연관된 추가 사용자에 의해 추가 파라미터(들)와 연관된 정보가 요청되지 않았다고 결정하는 경우, 시스템은 블록(272)으로 진행할 수 있으며, 이는 아래에서 더 자세히 설명한다.
선택적 블록(266)을 포함하는 블록(264)의 반복에서, 시스템이 어시스턴트 호출 동안 엔터티와 연관된 추가 사용자로부터의 요청에 추가 파라미터(들)에 대한 값(들)이 포함된다고 결정하면, 시스템은 선택적 블록(266)으로 진행할 수 있다. 선택적인 블록(266)을 포함하는 구현예에서, 시스템은 블록(264)에서 블록(266)으로 직접 진행할 수 있으며, 이는 아래에서 더 자세히 설명된다.
포함된다면, 선택적인 블록(266)에서, 시스템은 주어진 사용자와 연관된 클라이언트 디바이스의 상태를 결정한다. 클라이언트 디바이스의 상태는 예를 들어 클라이언트 디바이스의 포어그라운드에서 동작하는 소프트웨어 애플리케이션(들), 클라이언트 디바이스의 백그라운드에서 동작하는 소프트웨어 애플리케이션(들), 클라이언트 디바이스(110)가 잠금 상태에 있는지 여부, 클라이언트 디바이스가 슬립 상태에 있는지 여부, 클라이언트 디바이스(110)가 오프 상태인지 여부, 클라이언트 디바이스의 센서(들)로부터의 센서 데이터 및/또는 다른 데이터에 기초할 수 있다. 일부 구현예에서, 시스템은 블록(266)에서 진행 중인 호출의 상태를 추가로 또는 대안적으로 결정한다.
블록(268)에서, 시스템은 주어진 사용자와 연관된 클라이언트 디바이스가 그 추가 파라미터(들)를 식별하는 알림을 렌더링하게 한다. 알림은 정보에 포함된 추가 파라미터(들)에 대한 값(들)을 추가로 요청할 수 있다. 선택적 블록(268)을 포함하는 구현예에서, 클라이언트 디바이스에 의해 렌더링된 알림의 유형 및/또는 렌더링을 위한 하나 이상의 속성은 클라이언트 디바이스의 상태 및/또는 선택적 블록(268)에서 결정된 진행 중인 호출의 상태에 기초할 수 있다. 예를 들어, 클라이언트 디바이스()의 상태가 어시스턴트 호출의 전사를 디스플레이하는 소프트웨어 애플리케이션(예를 들어, 자동화된 어시스턴트 애플리케이션, 통화 애플리케이션, 어시스턴트 호출 애플리케이션 및/또는 기타 소프트웨어 애플리케이션)이 클라이언트 디바이스()의 포어그라운드에서 동작하고 있는 경우, 알림의 유형은 배너 알림, 팝업 알림, 및/또는 다른 유형의 시각적 알림일 수 있다. 다른 예로서, 클라이언트 디바이스의 상태가 클라이언트 디바이스가 슬립 또는 잠금 상태에 있음을 나타내는 경우, 알림 유형은 스피커(들)를 통한 청각적 표시 및/또는 스피커(들) 또는 클라이언트 디바이스()의 다른 하드웨어 컴포넌트를 통한 진동일 수 있다.
블록(270)에서, 시스템은 임계 지속시간 내에 주어진 사용자와 연관된 클라이언트 디바이스에서 임의의 추가 사용자 입력이 수신되는지 여부를 결정한다. 추가 사용자 입력은 예를 들어 정보를 요청하는 통지에 응답하는 추가 음성 입력, 추가 유형 입력 및/또는 추가 터치 입력일 수 있다. 일부 구현예에서, 정보를 요청하는 알림이 주어진 사용자의 클라이언트 디바이스에서 렌더링되면 임계 지속기간이 시작될 수 있다. 다른 구현예에서, 임계 지속시간은 마지막 값이 추가 사용자에 의해 요청될 때 시작될 수 있다. 블록(270)의 반복에서, 시스템이 임계 지속시간 내에 추가 사용자 입력이 수신되었다고 결정하면, 시스템은 블록(272)으로 진행할 수 있다. 추가 사용자 입력은 추가 사용자에 의해 요청되는 정보를 나타내는 알림에 응답하여 수신될 수 있고, 요청에 응답하는 값(들)의 표시를 포함할 수 있다.
블록(272)에서, 시스템은 후보 파라미터(들) 및/또는 추가 파라미터에 대한 값(들)에 기초하여 적어도 하나의 작업을 완료한다. 시스템이 어시스턴트 호출 동안 블록(264)에서 추가 사용자로부터 정보에 대한 요청에 추가 값(들)이 포함되지 않는다고 결정하는 구현예에서, 시스템은 블록(260)에서 결정된 후보 파라미터(들)에 대한 대응 값(들)을 사용하여 적어도 하나의 작업을 완료할 수 있다. 이러한 구현예에서, 시스템은 클라이언트 디바이스의 주어진 사용자를 관여시킬 필요 없이 어시스턴트 호출을 완료할 수 있다. 시스템이 어시스턴트 호출 동안 블록(264)에서 추가 파라미터(들)와 연관된 정보가 추가 사용자에 의해 요청되었다고 결정하는 구현예에서, 시스템은 블록(260)에서 결정된 후보 파라미터(들)에 대한 대응 값(들)과 블록(270)에서 수신된 추가 파라미터(들)에 대한 값(들)을 사용하여 적어도 하나의 작업을 완료할 수 있다. 이러한 구현예에서, 시스템은 클라이언트 디바이스의 주어진 사용자로부터 최소한의 개입으로 어시스턴트 호출을 완료할 수 있다. 블록(272)으로부터, 시스템은 블록(276)으로 진행할 수 있으며, 이는 아래에서 더 상세히 논의된다.
특히, 시스템이 블록(264)에서 추가 사용자가 현재 시스템에 알려지지 않은 정보를 요청하고 있다고 결정할 수 있지만, 시스템은 추가 파라미터(들)에 대한 값(들) 없이 적어도 하나의 작업의 수행을 계속할 수 있다. 예를 들어, 시스템은 합성된 스피치가 어시스턴트 호출의 일부로 제공되도록 할 수 있으며, 이에 따라 추가 사용자의 추가 클라이언트 디바이스에서 합성된 음성이 렌더링되도록 할 수 있다. 또한, 합성된 스피치는 시스템이 현재 추가 파라미터(들)에 대한 값(들)을 알지 못하지만, 시스템이 사용자로부터 정보와 연관된 값(들)을 요청하고 시스템이 클라이언트 디바이스의 주어진 사용자로부터 추가 파라미터(들)에 대한 값(들)을 요청하는 동안 블록(260)에서 결정된 후보 파라미터(들)에 대한 다른 값(들)을 제공할 수 있음을 나타낼 수 있다. 이러한 방식으로 시스템은 작업을 수행하기 위해 추가 사용자와 대화를 계속할 수 있다. 또한, 추가 사용자의 정보 요청에 응답하는 값(들)을 포함하는 추가 사용자 입력이 있는 경우 시스템은 알려진 값(들) 중 하나를 제공하는 팔로우업으로 또는 대화에 중단이 있는 경우 독립 실행형 값(들)으로 값(들)을 제공할 수 있다. 이러한 방식으로, 시스템은 추가 파라미터(들)에 대한 값(들)을 기다리기 위해 대화가 중단되지 않기 때문에 클라이언트 디바이스의 주어진 사용자를 대신하여 더 빠르고 효율적인 방식으로 작업을 성공적으로 수행할 수 있다. 더 빠르고 더 효율적인 방식으로 작업을 수행함으로써, 본 명세서에 개시된 기법을 사용함으로써 대화의 길이가 감소될 수 있기 때문에 네트워크 및 계산 리소스 둘 모두가 보존될 수 있다.
블록(270)의 반복에서, 시스템이 임계 지속시간 내에 추가 사용자 입력이 수신되지 않았다고 결정하면, 시스템은 블록(274)으로 진행할 수 있다. 블록(274)에서, 시스템은 적어도 하나의 작업의 수행을 종료한다. 또한, 시스템은 엔터티와의 진행 중인 호출을 종료할 수 있다. 진행 중인 호출을 종료하면, 임계 지속시간을 초과하여 추가 사용자 입력을 기다리는 것과 반대로, 작업을 완전히 수행할 수 없는 경우에도 위에서 언급한 기술적 이점을 달성하기 위해 대화를 더 빨리 종료할 수 있다. 블록(274)으로부터, 시스템은 블록(276)으로 진행한다.
블록(276)에서, 시스템은 클라이언트 디바이스를 통해 적어도 하나의 작업의 수행 결과를 나타내는 알림을 렌더링한다. 시스템이 블록(272)으로부터 작업의 수행을 완료하는 구현예에서, 알림은 작업이 클라이언트 디바이스의 주어진 사용자를 대신하여 완료되었다는 표시를 포함할 수 있고, 작업의 완료와 관련된 확인 정보(예를 들어, 날짜/시간 정보, 작업과 연관된 금전적 비용, 확인 번호, 엔터티와 연관된 정보 및/또는 기타 확인 정보)를 포함할 수 있다. 시스템이 블록(274)으로부터 작업의 수행을 종료하는 구현예에서, 알림은 작업이 완료되지 않았다는 표시를 포함할 수 있고, 작업의 종료와 관련된 작업 정보(예를 들어, 필요한 특정 파라미터(들)에 대한 값(들), 엔터티는 블록(260)에서 결정된 대응하는 값(들) 및/또는 블록(270)에서 수신된 값(들)을 수용할 수 없고, 엔터티는 폐쇄됨 및/또는 다른 작업 정보)를 포함할 수 있다. 다양한 구현예에서, 알림은 선택될 때 시스템이 작업의 결과에 기초하여 캘린더 엔트리를 생성하게 하고, 작업의 결과에 기초하여 리마인더를 생성하고, 작업의 결과(예: 텍스트, SMS, 이메일 및/또는 기타 메시지) 및/또는 사용자 선택에 응답하는 기타 추가 작업을 포함하는 메시지를 송신하는 선택가능한 그래픽 엘리먼트(들)을 포함할 수 있다.
도 3은 다양한 구현예에 따라, 진행 중인 비-어시스턴트 호출 동안 어시스턴트 출력의 예시적 방법(300)을 도시하는 흐름도를 도시한다. 편의상, 방법(300)의 동작은 동작을 수행하는 시스템을 참조하여 기술된다. 방법(300)의 이 시스템은 컴퓨팅 디바이스(들)(예를 들어, 도 1의 클라이언트 디바이스(110), 도 4a 내지 4d의 클라이언트 디바이스(410), 도 5a 내지 5c의 클라이언트 디바이스(510), 도 6의 컴퓨팅 디바이스(610), 하나 이상의 서버 및/또는 기타 컴퓨팅 디바이스)의 하나 이상의 프로세서 및/또는 다른 컴포넌트(들)을 포함한다. 추가로, 방법(300)의 동작들이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작은 재순서화, 생략 또는 추가될 수 있다.
블록(352)에서, 시스템은 클라이언트 디바이스에서, 상기 클라이언트 디바이스와 연관된 주어진 사용자와 추가 클라이언트 디바이스와 연관된 추가 사용자 사이의 진행 중인 호출을 검출한다. 시스템은 선택적으로 추가 사용자와 연관된 엔터티를 식별할 수 있다. 시스템은 진행 중인 호출과 연관된 메타데이터에 기초하여 엔터티를 식별할 수 있다. 일부 구현예에서, 방법(300)은 선택적인 서브-블록(352A)을 포함할 수 있다. 포함되는 경우, 선택적인 서브 블록(352A)에서, 시스템은 엔터티와 연관된 추가 사용자로부터 진행 중인 호출을 모니터링하기 위한 동의를 얻는다. 시스템은 도 2의 선택적 서브 블록(260A)과 연관하여 설명된 것과 동일한 방식으로 추가 사용자로부터 동의를 얻을 수 있다.
블록(354)에서, 시스템은 인식된 텍스트를 생성하기 위해 진행 중인 호출에 대응하는 오디오 데이터의 스트림을 프로세싱한다. 진행 중인 호출에 대응하는 오디오 데이터의 스트림은 주어진 사용자의 클라이언트 디바이스로 전송되는 추가 사용자의 적어도 추가 음성 입력을 포함할 수 있다. 진행 중인 호출에 대응하는 오디오 데이터의 스트림은 또한 주어진 사용자의 음성 입력을 포함할 수 있다. 또한, 시스템은 음성 인식 모델(들)(예를 들어, 도 1의 음성 인식 모델(들)(120A))을 사용하여, 인식된 텍스트를 생성하기 위해 오디오 데이터의 스트림을 프로세싱할 수 있다. 추가 사용자가 호출 모니터링에 동의했다고 가정하면, 시스템이 진행 중인 호출에 대응하는 오디오 데이터 스트림을 지속적으로 프로세싱할 수 있음을 이해해야 한다.
블록(356)에서, 시스템은 인식된 텍스트에 기초하여 진행 중인 호출 동안 주어진 사용자에 의해 수행될 적어도 하나의 작업에 대한 파라미터(들)를 식별한다. 시스템은 NLU 모델(들)(예를 들어, 도 1의 NLU 모델(들)(130A))을 사용하여 블록(354)으로부터 인식된 텍스트를 프로세싱하여 오디오 데이터 스트림에 포함된 의도(들)를 결정한다. 일부 구현예에서, 시스템은 추가 사용자의 추가 사용자 입력이 적어도 하나의 작업의 파라미터(들)에 대한 정보에 대한 요청을 포함한다고 결정할 수 있다. 예를 들어, 추가 사용자로부터 "이 문제에 대한 품질 보증 케이스 번호가 있습니까?"라는 추가 음성 입력이 있는 경우, 시스템은 품질 보증 케이스 번호 파라미터를 식별할 수 있고, 사용자 입력이 품질 보증 케이스 번호 파라미터에 대한 값에 대한 요청이 포함하는지 결정할 수 있다. 이 예에서 작업은 항공사 엔터티와 연관된 임의의 작업 및/또는 항공사 엔터티와 연관된 다른 파라미터에 관계없이 품질 보증 케이스 번호를 제공하는 특정 작업일 수 있다.
블록(358)에서, 시스템은 파라미터(들)에 대해, 적어도 하나의 작업의 수행에 사용될 대응하는 값(들)을 결정한다. 대응하는 값(들)은 블록(356)에서 적어도 하나의 작업에 대한 파라미터(들)를 식별한 후에 결정될 수 있다. 일부 구현예에서, 대응하는 값(들)은 클라이언트 디바이스의 주어진 사용자와 연관된 사용자 프로필(들)에 기초하여 적어도 하나의 작업에 대한 파라미터(들)를 식별하는 것에 응답하여 자동으로 결정될 수 있다. 예를 들어, 품질 보증 케이스 번호 파라미터를 식별하는 것에 대한 응답으로, 시스템은 주어진 사용자의 허가(예: 사전 허가)로, 주어진 사용자와 연관된 이메일 계정에 액세스하고 품질 보증 케이스 번호 파라미터에 대한 대응 값을 포함하는 이메일을 검색할 수 있다. 더욱이, 진행 중인 호출 동안 주어진 사용자와 연관된 엔터티가 식별되는 구현예에서, 시스템은 식별된 엔터티와 연관된 이메일로만 검색을 제한할 수 있다. 다른 구현예에서, 대응하는 값(들)은 자동으로 식별되는 것과는 대조적으로, 파라미터(들)에 대한 대응하는 값(들)을 요청하는 정보를 포함하는 사용자 입력을 수신하는 것에 응답하여 결정될 수 있다. 대응하는 값(들)은 위에서 설명된 것과 동일하거나 유사한 방식으로 사용자 입력을 수신하는 것에 응답하여 결정될 수 있다.
일부 구현예에서, 방법(300)은 선택적인 블록들(360, 362, 및/또는 364)을 포함할 수 있다. 포함된다면, 선택적 블록(360)에서, 시스템은 어시스턴트 호출을 활성화하기 위한 임의의 사용자 입력이 주어진 사용자와 연관된 클라이언트 디바이스에서 수신되는지 여부를 결정할 수 있다. 시스템은 사용자 입력이 본 명세서에 기술된 방식으로 클라이언트 디바이스의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 진행 중인 호출 동안 어시스턴트 호출을 호출하는 음성 입력, 타이핑된 입력 및/또는 터치 입력에 기초하여 어시스턴트 호출을 활성화하는지 여부를 결정할 수 있다. 선택적인 블록(360)의 반복에서, 시스템이 어시스턴트 호출을 활성화하기 위한 사용자 입력이 수신되었다고 결정하면, 시스템은 블록(366)으로 진행할 수 있으며, 이는 아래에서 더 자세히 설명된다. 선택적 블록(360)의 반복에서, 시스템이 어시스턴트 호출을 활성화하기 위한 사용자 입력이 수신되지 않은 것으로 결정하면 시스템은 선택적 블록(362)으로 진행할 수 있다.
포함된다면, 선택적인 블록(362)에서, 시스템은 주어진 사용자와 연관된 클라이언트 디바이스를 통해, 어시스턴트 호출이 적어도 하나의 작업을 수행할 수 있다는 것을 나타내는 알림을 렌더링할 수 있다. 알림은 예를 들어, 추가 사용자가 블록(356)에서 식별된 파라미터(들)에 대해 블록(358)에서 결정된 대응하는 값(들)에 대한 정보를 요청하고 있다는 표시를 포함할 수 있고, 또한 시스템이 주어진 사용자를 대신하여 추가 사용자에게 대응하는 값(들)을 제공할 수 있다는 표시를 포함할 수 있다. 알림은 시각적 및/또는 청각적으로 렌더링될 수 있다. 알림이 청각적으로 렌더링되는 구현예에서, 알림은 클라이언트 디바이스에서만 청각적으로 렌더링될 수 있으므로, 클라이언트 디바이스의 추가 사용자는 알림을 인식하지 못한다(즉, 호출 외부에서). 선택적으로, 추가 사용자가 알림을 인지할 가능성을 줄이기 위해 알림을 청각적으로 렌더링하는 동안 진행 중인 호출을 일시적으로 음소거하거나 알림을 필터링하고 진행 중인 호출의 일부로 제공되는 것을 방지하는데 사용되는 음향 반향 제거 또는 기타 필터링을 사용할 수 있다. 알림이 청각적으로 렌더링되는 다른 구현예에서, 알림은 주어진 사용자의 클라이언트 디바이스와 추가 사용자의 추가 클라이언트 디바이스 둘 모두에서 청각적으로 렌더링될 수 있으므로, 알림은 주어진 사용자와 추가 사용자 간의 진행 중인 호출을 중단한다.
포함된다면, 선택적 블록(364)에서, 시스템은 어시스턴트 호출을 활성화하기 위한 임의의 사용자 입력이 주어진 사용자와 연관된 클라이언트 디바이스에서 수신되는지 여부를 결정할 수 있다. 블록(364)에서 수신된 사용자 입력은 어시스턴트 호출이 적어도 하나의 작업을 수행할 수 있음을 나타내는 알림의 렌더링에 대한 응답일 수 있다. 시스템은 사용자 입력이 본 명세서에 기술된 방식으로 클라이언트 디바이스의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 진행 중인 호출 동안 어시스턴트 호출을 호출하는 음성 입력, 타이핑된 입력 및/또는 터치 입력에 기초하여 어시스턴트 호출을 활성화하는지 여부를 결정할 수 있다. 선택적 블록(360)의 반복에서, 시스템이 어시스턴트 호출을 활성화하기 위한 사용자 입력이 수신되지 않았다고 결정하면, 시스템은 진행 중인 호출에 대응하는 추가 오디오 데이터를 프로세싱하기 위해 블록(354)으로 돌아갈 수 있다. 예를 들어, 시스템은 클라이언트 디바이스의 주어진 사용자가 블록(362)에서 알림에서 렌더링된 대응하는 값(들)을 포함하는 음성 입력을 제공했다고 결정할 수 있고, 시스템은 추가 사용자가 요청하는 추가 파라미터를 모니터링하기 위해 오디오 데이터의 스트림 프로세싱을 계속하기 위해 블록(354)으로 돌아갈 수 있다. 선택적인 블록(364)의 반복에서, 시스템이 어시스턴트 호출을 활성화하기 위한 사용자 입력이 수신되었다고 결정한다.
블록(366)에서, 시스템은 추가 사용자에게 제시하기 위해 추가 클라이언트 디바이스에서 값(들)이 렌더링되게 한다. 시스템은 추가 사용자에 대한 대응하는 값(들)을 제공하기 위해 어시스턴트 호출을 활성화하기 위한 사용자 입력을 수신하는 것에 응답하여, 대응하는 값(들)을 포함하는 합성된 스피치가 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스에서 렌더링되게 할 수 있다.
선택적 블록(360, 362, 및/또는 364)을 포함하는 구현예에서, 시스템은 대응하는 값(들)이 어시스턴트 호출을 호출하는 명시적 사용자 입력 수신에 응답하여 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스에서 렌더링되게 할 수 있다. 이러한 구현예의 일부 버전에서, 어시스턴트 호출을 활성화하고 진행 중인 호출을 중단하기 위한 사용자 입력은 사전적일 수 있다. 다시 말해서, 시스템이 블록(360)에서 사용자 입력을 수신하는 경우, 시스템이 적어도 하나의 작업을 수행할 수 있다고 표시하는 임의의 알림도 시스템이 렌더링하지 않은 경우라도(도 5a와 관련하여 기술됨) 작업에 대한 대응하는 값(들)을 제공하기 위해 어시스턴트 호출이 활성화될 수 있다. 이러한 구현예의 다른 버전에서, 어시스턴트 호출을 활성화하기 위한 사용자 입력은 반응적일 수 있다. 다시 말해서, 시스템이 블록(364)에서 사용자 입력을 수신하는 경우, 시스템이 적어도 하나의 작업을 수행할 수 있다고 표시하는 블록(362)에서 알림의 렌더링에 후속하여(예를 들어, 도 5b와 관련하여 기술됨), 작업에 대한 대응하는 값(들)을 제공하기 위해 어시스턴트 호출이 활성화될 수 있다. 선택적 블록(360, 362, 364)을 포함하지 않는 구현예에서, 시스템은 블록(258)에서 블록(366)으로 직접 진행할 수 있다. 이러한 구현예의 일부 버전에서, 시스템은 블록(358)(예를 들어, 도 5c와 관련하여 기술됨)에서 대응하는 값(들)을 결정하는 것에 응답하여 자동적으로(즉, 어시스턴트 호출을 활성화하기 위한 임의의 명시적 사용자 입력을 수신하지 않고) 진행 중인 호출을 중단할 수 있다.
블록(368)에서, 시스템은 어시스턴트 호출을 계속하기 위한 임의의 사용자 입력이 주어진 사용자와 연관된 클라이언트 디바이스에서 수신되는지 여부를 결정한다. 블록(368)의 반복에서, 시스템이 어시스턴트 호출을 계속하기 위한 사용자 입력이 수신되지 않았다고 결정하면, 시스템은 진행 중인 호출에 대응하는 추가 오디오 데이터를 프로세싱하기 위해 블록(354)으로 돌아갈 수 있다. 블록(368)의 반복에서, 어시스턴트 호출을 계속하기 위한 사용자 입력이 수신되었다고 시스템이 결정하면, 시스템은 도 2의 블록(264)으로 진행할 수 있고, 추가 파라미터(들)에 대한 임의의 값(들)이 어시스턴트 호출 동안 필요한지 여부를 결정한다. 이러한 방식으로, 시스템은 전화 통화 동안 주어진 사용자에 의한 작업(들)의 수행 동안 파라미터(들)에 대응하는 값(들)을 제공할 수 있다. 위에서 설명된 바와 같이, 명시적 사용자 입력에 응답하여 또는 자동으로 대응 값(들)을 제공함으로써, 사용자는 대응 값(들)을 결정하기 위해 별도의 사용자 인터페이스를 갖는 다양한 애플리케이션을 탐색할 필요가 없으므로, 시스템은 클라이언트 디바이스의 주어진 사용자로부터 더 적은 수의 입력을 수신하여, 주어진 클라이언트 디바이스에서 계산 리소스를 절약할 수 있다. 더욱이, 시스템은 사용자가 이러한 다양한 애플리케이션을 탐색할 필요가 없기 때문에 진행 중인 호출을 더 빨리 종료함으로써 계산 및 네트워크 리소스 둘 모두를 절약한다. 하나의 비제한적 예로서, 여기에 설명된 기법을 사용함으로써, 주어진 사용자는 사용자가 대응하는 값(들)에 대해 이메일 애플리케이션, 항공사 애플리케이션 및/또는 다른 애플리케이션을 검색하는 동안 대화를 일시 중지하거나 대화를 보류할 필요가 없다.
이제 도 4a 내지 도 4d를 참조하면, 어시스턴트 호출을 수행하는 것과 관련하여 사용자 인터페이스의 다양한 비제한적인 예가 설명된다. 도 4a 내지 도 4d는 각각 클라이언트 디바이스(410)의 주어진 사용자의 인터렉션의 예를 디스플레이하는 그래픽 사용자 인터페이스(480)를 갖는 클라이언트 디바이스(410)를 도시한다. 인터렉션은 예를 들어, 하나 이상의 소프트웨어 애플리케이션(예를 들어, 웹 브라우저 애플리케이션, 자동화된 어시스턴트 애플리케이션, 연락처 애플리케이션, 이메일 애플리케이션, 캘린더 애플리케이션 및/또는 클라이언트 디바이스(410)에 의해 액세스 가능한 기타 소프트웨어 기반 애플리케이션)과의 인터렉션을 포함할 수 있고, 추가 사용자(예를 들어, 추가 클라이언트 디바이스와 연관된 추가 인간 참가자, 추가 사용자의 추가 클라이언트 디바이스와 연관된 추가 자동화된 어시스턴트 및/또는 다른 추가 사용자)와의 인터렉션을 포함할 수 있다. 클라이언트 디바이스(410)(예를 들어, 도 1의 자동화된 어시스턴트(115))와 연관된 자동화된 어시스턴트의 하나 이상의 양태는 분산 방식(예를 들어, 도 1의 네트워크(들)(190)을 통해)으로 클라이언트 디바이스(410) 및/또는 클라이언트 디바이스(410)와 통신하는 네트워크에 있는 다른 클라이언트 디바이스(들) 상에서 로컬적으로 구현될 수 있다. 단순화를 위해, 도 4a 내지 도 4d의 동작은 자동화된 어시스턴트에 의해 수행되는 것으로 여기에서 설명된다. 비록 도 4a 내지 도 4d의 클라이언트 디바이스(410)는 모바일폰으로 도시되지만, 제한하려는 의도가 아님을 이해해야 한다. 클라이언트 디바이스(410)는 예를 들어 독립형 어시스턴트 디바이스(예를 들어, 스피커(들) 및/또는 디스플레이 포함), 랩톱, 데스크톱 컴퓨터 및/또는 전화 통화를 할 수 있는 임의의 다른 클라이언트 디바이스일 수 있다.
도 4a 내지 도 4d의 그래픽 사용자 인터페이스(480)는 사용자가 가상 키보드 또는 다른 터치 및/또는 타이핑된 입력을 통해 사용자 입력을 생성하기 위해 선택할 수 있는 텍스트 회답 인터페이스 엘리먼트(484) 및 사용자가 클라이언트 디바이스(410)의 마이크로폰을 통해 사용자 입력을 생성하기 위해 선택할 수 있는 음성 회답 인터페이스 엘리먼트(485)를 포함한다. 일부 구현예에서, 사용자는 음성 회답 인터페이스 엘리먼트(485)의 선택 없이도 마이크로폰을 통해 사용자 입력을 생성할 수 있다. 예를 들면, 사용자가 음성 회답 인터페이스 엘리먼트(485)를 선택해야하는 필요를 제거하기 위해 마이크로폰을 통해 청각적 사용자 입력에 대한 능동적 모니터링이 발생할 수 있다. 상기 구현예들 중 일부 및/또는 다른 구현예들에서, 음성 회답 인터페이스 엘리먼트(485)는 생략될 수 있다. 추가로, 일부 구현예에서, 텍스트 회답 인터페이스 엘리먼트(484)는 추가적으로 및/또는 대안적으로 생략될 수 있다(예를 들어, 사용자는 청각적 사용자 입력만 제공할 수 있다). 도 4a-4d의 그래픽 사용자 인터페이스(480)은 클라이언트 디바이스(410)로 하여금 하나 이상의 액션들을 수행하게 하기 위해 사용자와 인터렉션할 수 있는 시스템 인터페이스 엘리먼트들(481, 482, 483)을 포함한다.
본 명세서에 기술된 다양한 구현예에서, 자동화된 어시스턴트(예를 들어, 어시스턴트 호출)를 사용하여 엔터티와의 전화 호출을 개시하기 위해 사용자 입력이 수신될 수 있다. 사용자 입력은 어시스턴트 호출을 개시하기 위한 표시를 포함하는 음성 입력, 터치 입력 및/또는 타이핑된 입력일 수 있다. 또한, 자동화된 어시스턴트는 엔터티에 대해 클라이언트 디바이스(410)의 주어진 사용자를 대신하여 작업(들)을 수행할 수 있다. 도 4a에 도시된 바와 같이, 사용자 인터페이스(480)는 (예를 들어, "www.exampleurl0.com/"의 URL(411)에 의해 표시된 바와 같이) 클라이언트 디바이스(410)에서 액세스 가능한 브라우저 애플리케이션으로부터 레스토랑 엔터티에 대한 검색 결과를 포함한다. 또한, 검색 결과는 "Hypothetical Cafe"의 제1 검색 결과(420) 및 "Example Cafe"의 제2 검색 결과(430)를 포함한다.
일부 구현예에서, 검색 결과(420 및/또는 430)는 선택될 때 클라이언트 디바이스(410)가 대응하는 액션을 수행하게 하는 다양한 선택 가능한 그래픽 엘리먼트와 연관될 수 있다. 예를 들어, 검색 결과(420 및/또는 430) 중 주어진 하나와 연관된 통화 그래픽 엘리먼트(421 및/또는 431)가 선택될 때, 사용자 입력은 검색 결과(420 및/또는 430)와 연관된 레스토랑 엔터티에 대한 전화 통화 액션이 수행되어야 한다고 나타낼 수 있다. 다른 예로서, 검색 결과(420 및/또는 430) 중 주어진 하나와 연관된 길안내 그래픽 엘리먼트(422 및/또는 432)가 선택될 때, 사용자 입력은 검색 결과(420 및/또는 430)와 연관된 레스토랑 엔터티에 대한 길안내 액션이 수행되어야 한다고 나타낼 수 있다. 또 다른 예로서, 검색 결과(420 및/또는 430) 중 주어진 하나와 연관된 메뉴 그래픽 엘리먼트(423 및/또는 433)가 선택될 때, 사용자 입력은 검색 결과(420 및/또는 430)와 연관된 레스토랑 엔터티에 대한 메뉴를 디스플레이하기 위한 브라우저 기반 액션이 수행되어야 한다고 나타낼 수 있다. 어시스턴트 호출이 도 4a의 브라우저 애플리케이션으로부터 개시되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 어시스턴트 호출은 클라이언트 디바이스(410)에서 액세스 가능한 다양한 소프트웨어 애플리케이션(예를 들어, 연락처 애플리케이션, 이메일 애플리케이션, 문자 또는 SMS 메시징 애플리케이션, 및/또는 기타 소프트웨어 애플리케이션)에서 개시될 수 있고, 어시스턴트 호출이 음성 입력을 사용하여 개시된 경우, 클라이언트 디바이스(410)의 홈 화면에서, 클라이언트 디바이스(410)의 잠금 화면에서 및/또는 클라이언트 디바이스(410)의 다른 상태에서 개시될 수 있다.
예를 들어, "Example Cafe"의 제2 검색 결과(430)로 전화 통화를 개시하기 위해 클라이언트 디바이스(410)에서 사용자 입력이 검출되었다고 가정한다. 사용자 입력은 예를 들어 "Example Cafe에 전화해"의 음성 입력 또는 통화 그래픽 엘리먼트(431)에 대한 터치 입력일 수 있다. 일부 구현예에서, 통화 상세 인터페이스(470)는 "Example Cafe"로 전화 통화를 개시하기 위한 사용자 입력을 수신하는 것에 응답하여 클라이언트 디바이스(410)에서 렌더링될 수 있다. 이러한 구현예의 일부 버전에서, 통화 상세 인터페이스(470)는 사용자 인터페이스(480)의 일부로서 클라이언트 디바이스(410)에서 렌더링될 수 있다. 이러한 구현예의 일부 버전에서, 통화 상세 인터페이스(470)는 사용자 인터페이스를 오버레이하는 사용자 인터페이스(480)와 별개의 인터페이스일 수 있고, 사용자로 하여금 통화 상세 인터페이스(470)를 확장하게 하여 추가 통화 세부정보를 디스플레이하는 통화 상세 인터페이스 엘리먼트(586)를 포함할 수 있고(예를 들어, 통화 상세 인터페이스 엘리먼트(586)를 위로 스와이프함으로써) 및/또는 통화 상세 인터페이스(470)를 해제할 수 있다(예를 들어, 통화 상세 인터페이스 엘리먼트(586)를 아래로 스와이프함으로써). 통화 상세 인터페이스(470)가 사용자 인터페이스(480)의 하단에 있는 것으로 도시되어 있지만, 이는 예를 위한 것이며 제한하려는 것이 아님을 이해해야 한다. 예를 들어, 통화 상세 인터페이스(470)는 사용자 인터페이스(480)의 상단, 사용자 인터페이스(480)의 측면 또는 사용자 인터페이스(480)와 완전히 분리된 인터페이스에서 렌더링될 수 있다.
통화 상세 인터페이스(470)는 다양한 구현예에서 복수의 그래픽 엘리먼트를 포함할 수 있다. 일부 구현예에서, 그래픽 엘리먼트는 그래픽 엘리먼트 중 주어진 하나가 선택될 때 클라이언트 디바이스(410)가 대응하는 액션을 수행할 수 있도록 선택가능할 수 있다. 도 4a에 도시된 바와 같이, 통화 상세 인터페이스(470)는 "어시스턴트 호출"의 제1 그래픽 엘리먼트(471), "Regular Call"의 제2 그래픽 엘리먼트(472) 및 "Save Contact 'Example Cafe'"의 제3 그래픽 엘리먼트(473)를 포함한다. 또한, 제1 그래픽 엘리먼트(471)는 선택될 때 자동화된 어시스턴트를 사용하여 어시스턴트 호출을 개시하기를 원한다는 표시를 자동화된 어시스턴트에 제공할 수 있고; 제2 그래픽 엘리먼트(472)는 선택될 때 자동화된 어시스턴트가 어시스턴트 호출을 사용하지 않고 호출을 개시하게 할 수 있으며; 제3 그래픽 엘리먼트(473)는 선택될 때 자동화된 어시스턴트가 Example Cafe와 연관된 연락처를 생성하게 할 수 있다. 특히, 이러한 구현예의 일부 버전에서 그래픽 엘리먼트는 수행될 작업의 표시를 제공하는 서브 엘리먼트를 포함할 수 있다. 예를 들어, "Assisted Call"의 제1 그래픽 엘리먼트(471)는 Example Cafe에서 레스토랑을 예약하는 작업과 연관된 "예약하기"의 제1 서브 엘리먼트(471A); Example Cafe에서 레스토랑 예약을 수정하는 작업과 연관된 "예약 수정"의 제2 서브 엘리먼트(471B) 및 Example Cafe에서 레스토랑 예약을 취소하는 작업과 연관된 "예약 취소"의 제3 서브 엘리먼트(471C)를 포함할 수 있다.
예를 들어, Example Cafe에서 레스토랑 예약을 하기 위해 Example Cafe와 어시스턴트 호출을 개시하기 위한 사용자 입력이 클라이언트 디바이스(410)에서 검출되었다고 가정한다. 사용자 입력은, 예를 들어, "Example Cafe에 전화하여 레스토랑 예약해"의 음성 입력 또는 제1 서브 엘리먼트(471A)에 대한 터치 입력일 수 있다. 사용자 입력을 검출한 것에 응답하여, 자동화된 어시스턴트는 "Exemple Cafe에서 레스토랑 예약하기"의 작업을 결정할 수 있고, 본 명세서에 기술된 바와 같이(도 1의 파라미터(들) 엔진과 관련하여) 식별된 작업과 연관된 후보 파라미터(들)를 식별할 수 있다. 일부 구현예에서, 그리고 도 4b에 도시된 바와 같이, 자동화된 어시스턴트는 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다. 특히, 도 4a 내지 도 4b에 도시된 바와 같이, 통화 상세 인터페이스(470)는 식별된 후보 파라미터(들)를 포함하도록 업데이트될 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 클라이언트 디바이스(410)의 주어진 사용자와 연관된 사용자 프로필(들)에 기초하여 후보 파라미터에 대한 값(들)을 결정할 수 있다. 예를 들어, 자동화된 어시스턴트는 클라이언트 디바이스(410)의 주어진 사용자의 사용자 프로필(들)을 통해 값(474A 및 475A)에 액세스하는 자동화된 어시스턴트에 기초하여 주어진 사용자로부터 값(474A 및 475A)을 요청할 필요 없이 이름 파라미터(474)에 대한 값(474A)(예: Jane Doe) 및 전화번호 파라미터(475)에 대한 값(475A)(예: (502) 123-4567)을 결정할 수 있다. 비록 도 4b는 자동화된 어시스턴트에 의해 식별된 특정 후보 파라미터(들)와 연관하여 본 명세서에서 설명되지만, 이는 예를 위한 것임을 이해해야 한다.
이들 구현예의 일부 버전에서, 자동화된 어시스턴트는 클라이언트 디바이스(410)의 주어진 사용자와의 대화(예를 들어, 청각적 및/또는 시각적)에 관여하여, 클라이언트 디바이스(410)의 주어진 사용자의 사용자 프로필(들)에 기초하여 식별되지 않은 후보 파라미터(들)에 대한 대응하는 값(들)을 요청할 수 있다. 상기 구현예의 일부 추가 버전에서, 자동화된 어시스턴트는 (예를 들어, 도 1의 파라미터(들) 엔진(153)과 연관하여) 여기에 설명된 바와 같이, 필수 파라미터(들)로 간주되는 후보 파라미터(들)에 대한 값(들)만을 요청할 수 있다. 예를 들어, 레스토랑 예약을 하는 작업의 경우, 자동화된 어시스턴트는 "Example Cafe에서 예약하기를 원하는 날짜와 시간"이라는 프롬프트(452B1)를 생성하고 사용자 입력(454B1)(예: 타이핑 또는 음성) "3월 1일 오후 7시, 부스 좌석"을 수신할 수 있다. 따라서, 통화 상세 인터페이스(470)는 날짜/시간 파라미터(476)에 대한 값(476A)(예를 들어, 2020년 3월 1일 오후 7시)을 포함하도록 업데이트될 수 있다. 특히, 사용자 입력(454B1)은 또한 프롬프트(452B1)에서 요청되지 않은 좌석 유형 파라미터(478)에 대한 "부스 좌석"의 값(478A)을 포함한다. 자동화된 어시스턴트가 프롬프트(452B1)에서 값(478A)을 요청하지 않았지만, 자동화된 어시스턴트는 값(478A)이 좌석 파라미터(478)의 유형에 대응한다고 결정할 수 있으며, 이는 본 명세서에 설명된 바와 같이 선택적 파라미터(예를 들어, 도 1의 파라미터(들) 엔진(153)과 관련)로 고려될 수 있다. 또한, 자동화된 어시스턴트는 추가 파라미터(예를 들어, 사람의 수 파라미터(477))에 대한 추가 프롬프트(예를 들어, 프롬프트(452B2))를 생성하여 추가 파라미터에 대한 대응하는 값(예를 들어, 5의 값을 갖는 477A)을 결정할 수 있다. 이러한 방식으로, 자동화된 어시스턴트는 어시스턴트 호출을 개시하기 전에 클라이언트 디바이스(410)의 주어진 사용자를 대신하여 작업을 수행하는데 사용될 후보 파라미터(들)에 대한 값(들)을 결정할 수 있다.
더욱이, 다양한 구현예에서 후보 파라미터(들)에 대한 값(들)을 결정할 때, 그리고 도 4b에 도시된 바와 같이, 통화 상세 인터페이스(470)는 다양한 그래픽 엘리먼트를 포함할 수 있다. 예를 들어, 통화 상세 인터페이스(470)는 선택될 때 어시스턴트 호출을 개시하기 전에 사용자가 값(들)(474A-478A)을 수정할 수 있게 하는 편집 그래픽 엘리먼트(441B), 선택될 때 어시스턴트 호출을 종료하는 취소 그래픽 엘리먼트(442B)를 포함할 수 있고, 사용자 인터페이스(480)는 어시스턴트 호출을 개시하기 위한 사용자 입력을 검출하기 이전의 상태(예를 들어, 도 4a의 사용자 인터페이스(480))로 선택적으로 돌아가고, 통화 인터페이스 엘리먼트(443B)는 선택될 때 사용자가 (예를 들어, 도 4a의 그래픽 엘리먼트(472)의 선택과 유사하게) 자동화된 어시스턴트의 도움 없이 일반 통화를 개시할 수 있게 한다.
후보 파라미터(들)(474-478)에 대한 대응하는 값(들)(474A-478A)을 결정한 후, 자동화된 어시스턴트는 엔터티와 관련하여 클라이언트 디바이스(410)의 주어진 사용자를 대신하여 작업을 수행하기 위해 어시스턴트 호출을 개시할 수 있다. 자동화된 어시스턴트는 클라이언트 디바이스(410)에서 액세스 가능한 통화 애플리케이션을 사용하여 어시스턴트 호출을 시작할 수 있다. 다양한 구현예에서, 그리고 도 4c에 도시된 바와 같이, 통화 상세 인터페이스(470)는 자동화된 어시스턴트에 의해 개시되는 통화에 응답하여 다양한 그래픽 엘리먼트를 포함하도록 업데이트될 수 있다. 예를 들어, 통화 상세 인터페이스(470)는 선택될 때 자동화된 어시스턴트가 어시스턴트 호출을 개시한 후 어시스턴트 호출을 종료하게 하는 통화 종료 그래픽 엘리먼트(441C), 선택될 때 클라이언트 디바이스(410)의 주어진 사용자가 전화를 받게 하고 자동화된 어시스턴트로부터의 작업을 수행하게 하는 통화 참여 그래픽 엘리먼트(442C) ,선택될 때 클라이언트 디바이스(410)가 추가 사용자와 자동화된 어시스턴트 사이의 대화를 청각적으로 렌더링하게 하는 스피커 인터페이스 엘리먼트(443C)를 포함할 수 있다. 이러한 그래픽 엘리먼트(442C, 443C, 444C)는 어시스턴트 호출 지속시간 동안 선택될 수 있다.
더욱이, 다양한 구현예에서, 자동화된 어시스턴트는 어시스턴트 호출을 개시한 후 그리고 작업을 수행하기 전에 클라이언트 디바이스의 추가 사용자로부터 동의를 얻을 수 있다. 도 4c에 도시된 바와 같이, 자동화된 어시스턴트는 Example Cafe 담당자에게 자동화된 어시스턴트와의 인터렉션에 대한 동의를 제공하도록 요청하는 Example Cafe 담당자와 연관된 추가 클라이언트 디바이스에서 합성된 스피치(452C1)가 렌더링되게 할 수 있다. 자동화된 어시스턴트는 Example Cafe 담당자가 동의를 제공했음을 결정하기 위해(예: 오디오 데이터(456C1)에서 "예") Example Cafe 담당자로부터의 추가 음성 입력에 대응하는 오디오 데이터(456C1)를 프로세싱할 수 있다. 또한, 자동화된 어시스턴트는 오디오 데이터(456C1)가 날짜/시간 파라미터(476)에 대한 값(476A)에 대한 정보를 요청한다는 결정에 응답하여 날짜/시간 파라미터(476)에 대한 값(476A)을 포함하는 추가 합성 스피치(456C2)가 Example Cafe 담당자의 추가 클라이언트 디바이스에서 렌더링되게 할 수 있다. 이러한 방식으로, 자동화된 어시스턴트는 Example Cafe 담당자의 정보 요청에 응답하는 값(들)을 포함하는 합성된 스피치를 제공함으로써 Example Cafe에서 레스토랑 예약 작업을 수행할 수 있다.
일부 구현예에서, 자동화된 어시스턴트는 Example Cafe 담당자로부터의 추가 음성 입력에 대응하는 오디오 데이터를 프로세싱할 수 있고, 추가 음성 입력이 현재 자동화된 어시스턴트에게 알려지지 않은 파라미터(들)와 연관된 추가 값(들)에 대한 정보를 요청하고 있다고 결정할 수 있다. 도 4c에 도시된 바와 같이, 오디오 데이터(456C2)는 현재 자동화된 어시스턴트에 알려지지 않은 어린이 파라미터에 대한 정보를 요청하는 추가 음성 입력을 캡처한다. Example Cafe 담당자로부터 추가 음성 입력이 현재 자동화된 어시스턴트에 알려지지 않은 정보를 요청하고 있다고 결정한 것에 응답하여, 자동화된 어시스턴트는 요청 중인 정보가 현재 알려지지 않았다고 표시하는 추가 합성된 스피치가 추가 클라이언트 디바이스에서 렌더링되게 할 수 있다. 자동화된 어시스턴트가 현재 요청 중인 정보를 알지 못할 수도 있지만, 자동화된 어시스턴트는 현재 자동화된 어시스턴트가 알고 있는 다른 값으로 작업을 계속 수행할 수 있다. 예를 들어, 오디오 데이터(456C2)가 현재 자동화된 어시스턴트에 알려지지 않은 파라미터(들)와 연관된 추가 값(들)에 대한 정보를 요청한다는 결정에 응답하여 자동화된 어시스턴트는 "확실하지 않습니다. Jane Doe에게 물어보고 다시 연락을 드릴 것입니다. 내가 답을 들을 때까지 예약을 계속할 수 있습니까?"와 같은 합성된 스피치(454C3)을 추가로 유발할 수 있다.
이러한 구현예의 일부 버전에서, 자동화된 어시스턴트가 추가 사용자의 오디오 데이터가 정보에 대한 요청을 포함한다고 결정하면, 자동화된 어시스턴트는 추가 사용자가 자동화된 어시스턴트가 현재 알지 못하는 파라미터(들)와 연관된 정보를 요청하고 있음을 나타내는 알림이 클라이언트 디바이스(410)에서 렌더링되게 할 수 있다. 이러한 구현예의 일부 추가 버전에서 알림은 정보 요청에 응답하는 추천(들)으로서 제안된 값을 더 포함할 수 있다. 추천(들)은 선택가능하여, 추천(들) 중 주어진 하나를 선택할 때 자동화된 어시스턴트가 추천(들) 중 주어진 하나에 포함된 값(들)을 추가 사용자의 요청에 대한 응답 값으로 활용할 수 있다. 예를 들어, 도 4d에 도시된 바와 같이, 자동화된 어시스턴트는 알림(479)이 통화 상세 인터페이스(470)에서 시각적으로 렌더링되게 할 수 있다. 알림(479)은 "Example Cafe는 예약에 참여할 어린이가 있는지 알고 싶다"는 표시를 포함하며, 추가 사용자의 요청에 응답하여 추천 값(들)으로 제공되는 "예"의 제1 제안(479A) 및 "아니오"의 제2 제안(479B)도 포함한다. 아래에서 더 자세히 설명되는 바와 같이, 다양한 다른 유형의 알림이 클라이언트 디바이스(410)에서 렌더링될 수 있고, 알림의 유형은 시스템이 오디오 데이터가 자동화된 어시스턴트가 현재 알지 못하는 정보에 대한 요청을 포함한다고 결정할 때 클라이언트 디바이스(410)의 상태에 기초할 수 있다.
위에서 언급한 바와 같이, 자동화된 어시스턴트는 자동화된 어시스턴트가 추가 사용자가 자동화된 어시스턴트가 현재 알지 못하는 정보를 요청하고 있다고 결정하더라도 자동화된 어시스턴트가 현재 알고 있는 다른 값(들)으로 작업을 계속 수행할 수 있다. 추가 값(들)은 알림(479)에 응답하여 클라이언트 디바이스(410)의 주어진 사용자로부터 추가 사용자 입력을 수신한 후 대화에서 나중에 제공될 수 있다. 예를 들어, 도 4d에 도시된 바와 같이, 어린이 파라미터에 대한 값이 현재 자동화된 어시스턴트에 알려져 있지 않지만 자동화된 어시스턴트가 다른 값(들)을 알고 있고 다른 값(들)을 사용하여 작업을 계속 수행하기를 원함을 나타내는 추가 합성 스피치(452C3)를 렌더링한다. 또한, "물론이죠, 어떤 종류의 좌석입니까?"의 오디오 데이터(456D1)가 수신된다고 가정한다(예를 들어, 좌석 파라미터(478)의 유형에 대한 "부스"의 값(478A)에 대한 정보 요청). 추가로 클라이언트 디바이스(410)의 주어진 사용자가 오디오 데이터(456D1)가 자동화된 어시스턴트에 의해 프로세싱되는 동안 Example Cafe의 레스토랑 예약에 어린이가 참여하지 않을 것임을 나타내기 위해 제2 제안(479B)에 대한 음성 입력 및/또는 터치 입력을 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 좌석 파라미터(478)의 유형에 대한 "부스"의 값(478A)을 포함하고 값(예를 들어, 제2 제안(479B)의 사용자 선택에 기초한 "아니오")을 포함하는 합성된 스피치(452D1)가 추가 사용자의 추가 클라이언트 디바이스에서 청각적으로 렌더링되게 할 수 있다. 자동화된 어시스턴트는 레스토랑 예약 작업이 완료된 것을 결정하기 위해 "완벽합니다, 예약이 완료되었습니다"의 추가 오디오 데이터(456D2)를 프로세싱할 수 있고, "Jane Doe에게 알려줄게, 좋은 하루 보내세요!"의 추가 합성 스피치(452D2)를 유발하고 통화를 종료할 수 있다.
특히, 일부 구현예에서, 자동화된 어시스턴트는 다른 정보에 대한 추가 사용자의 요청에 응답하는 합성 스피치에 추가 값(들)(즉, 추가 사용자에 의해 요청될 때 이전에 알려지지 않았지만 현재 추가 사용자 인터페이스 입력에 기초하여 알려짐)을 포함할 수 있다. 다시 말해, 자동화된 어시스턴트는 추가 사용자의 직전 요청이 정보에 대한 요청이 아닌 경우에도 합성된 스피치에 추가 값(들)을 포함할 수 있다. 예를 들어, 도 4d에 도시된 바와 같이, 합성된 스피치(452D1)는 오디오 데이터(456D1)에 포함된 좌석 파라미터(478)의 유형과 연관된 정보에 대한 직전 요청에 응답하는 "부스" 값(478A)을 포함하고, 합성된 스피치는 또한 오디오 데이터(456C2)에 포함된 어린이 파라미터와 연관된 정보에 대한 이전 요청에 응답하는 어린이 파라미터에 대한 "아니오" 값을 포함한다. 이러한 방식으로, 자동화된 어시스턴트는 추가 값(들)을 포함하는 추가 사용자 입력을 기다리는 동안 작업의 수행을 계속할 수 있고, 추가 값(들)이 자동화된 어시스턴트에 알려지면 논리적이고 대화적인 방식으로 추가 사용자에게 추가 값(들)을 제공할 수 있다. 추가 사용자 입력을 기다리면서 작업 수행을 계속함으로써 추가 사용자 입력을 수신할 때까지 작업 수행이 일시 중지되지 않기 때문에 작업을 보다 빠르고 효율적으로 수행할 수 있다. 더 빠르고 더 효율적인 방식으로 작업을 수행함으로써, 여기에 설명된 기법은 어시스턴트 호출을 사용하여 작업을 수행할 때 계산 및 네트워크 리소스를 절약할 수 있다.
다양한 구현예에서, 그리고 도시되지는 않았지만, 자동화된 어시스턴트는 어시스턴트 호출 동안, 엔터티와 연관된 추가 사용자로부터의 더 이상의 오디오 데이터가 임계 지속시간 내에 수신되지 않는다고 결정할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 추가 사용자로부터의 정보 요청에 포함되지 않은 하나 이상의 대응하는 값에 기초하여 추가로 합성된 스피치를 렌더링할 수 있다. 예를 들어, 자동화된 어시스턴트가 추가 사용자가 10초 동안 아무 말도 하지 않았다고 결정하고 자동화된 어시스턴트가 추가 사용자가 요청하지 않은 레스토랑 예약 작업에 대한 파티 규모의 값을 알고 있는 경우, 어시스턴트는 "알고 싶다면, 5명이 예약에 참여한다"는 합성된 스피치를 렌더링할 수 있다. 이들 구현예의 일부 추가 및/또는 대안 버전에서, 자동화된 어시스턴트는 추가 사용자로부터의 정보에 대한 요청에 포함되지 않은 하나 이상의 파라미터(들)에 기초한 또 다른 합성된 스피치를 렌더링할 수 있다. 예를 들어, 자동화된 어시스턴트가 추가 사용자가 10초 동안 아무 말도 하지 않았다고 결정하고 자동화된 어시스턴트가 추가 사용자가 요청하지 않은 레스토랑 예약 작업에 대한 파티 규모의 값을 알고 있는 경우, 어시스턴트는 "몇 명이 예약에 참여할지 알고 싶습니까?"의 합성된 스피치를 렌더링할 수 있다.
더욱이, 다양한 구현예에서, 자동화된 어시스턴트는 다양한 대화들의 전사가 클라이언트 디바이스(410)의 사용자 인터페이스(480)에 시각적으로 렌더링되게 할 수 있다. 전사는 예를 들어 클라이언트 디바이스(410)의 홈에서, 다양한 소프트웨어 애플리케이션(예를 들어, 어시스턴트 애플리케이션, 전화 애플리케이션, 및/또는 다른 애플리케이션)에서 디스플레이될 수 있다. 일부 구현예에서, 전사는 자동화된 어시스턴트와 클라이언트 디바이스(410)의 주어진 사용자 사이의 대화를 포함할 수 있다(예를 들어, 도 4b에 도시된 바와 같이). 일부 추가 및/또는 대안 구현예에서, 전사는 자동화된 어시스턴트와 추가 사용자 사이의 대화를 포함할 수 있다(예를 들어, 도 4c 내지 도 4d에 도시된 바와 같이).
비록 도 4b 내지 도 4d 각각은 대화의 전사를 포함하는 것으로 도시되지만, 이는 예를 위한 것이며 제한하려는 것이 아님을 주목해야 한다. 위에서 설명된 어시스턴트 호출은 클라이언트 디바이스(410)가 슬립 상태, 잠금 상태에 있는 동안, 다른 소프트웨어 애플리케이션(들)이 포어그라운드에서 및/또는 다른 상태에서 동작할 때 수행될 수 있다는 것을 이해해야 한다. 또한, 자동화된 어시스턴트가 알림(들)이 클라이언트 디바이스(410)에서 렌더링되게 하는 구현예에서, 클라이언트 디바이스에서 렌더링되는 알림(들)의 유형은 본 명세서에 설명된 클라이언트 디바이스(410)의 상태에 기초한다. 또한, 비록 도 4a 내지 도 4d는 레스토랑 예약을 하는 작업과 관련하여 본 명세서에 설명되어 있지만, 이는 제한하려는 것이 아님을 이해해야 하며, 여기에 설명된 기법은 복수의 상이한 엔터티와 관련하여 수행될 수 있는 복수의 상이한 작업에 활용될 수 있다.
또한, 다양한 구현예에서, 자동화된 어시스턴트는 어시스턴트 호출의 시작시 및/또는 어시스턴트 호출 동안에 추가 사용자에 의해 보류 상태가 될 수 있다. 이러한 구현예의 일부 버전에서 자동화된 어시스턴트는 추가 인간 참가자와 대화에 참여하지 않을 때 보류 중인 것으로 간주될 수 있다. 예를 들어, 자동화된 어시스턴트가 엔터티와 연관된 보류 시스템, 엔터티와 연관된 대화형 음성 응답(IVR) 시스템 및/또는 엔터티와 연관된 다른 시스템에 의해 참여하는 경우 자동화된 어시스턴트는 보류 중인 것으로 간주될 수 있다. 또한, 자동화된 어시스턴트는 어시스턴트 호출이 보류 상태가 될 때 및/또는 어시스턴트 호출이 보류 상태가 된 후 재개될 때 알림이 클라이언트 디바이스(410)에서 렌더링되도록 할 수 있다. 알림은 예를 들어 어시스턴트 호출이 보류 상태가 되었고, 어시스턴트 호출이 보류된 후 재개되었으며, 사용자가 보류 상태였다가 재개되면 어시스턴트 호출에 참여하도록 요청되었음 및/또는 어시스턴트 호출과 관련된 기타 정보를 표시할 수 있다. 더욱이, 자동화된 어시스턴트는 추가 사용자의 추가 클라이언트 디바이스로부터 주어진 사용자의 클라이언트 디바이스(410)로 전송된 오디오 데이터의 스트림을 프로세싱하는 것에 기초하여 보류된 후에 어시스턴트 호출이 재개되었음을 결정할 수 있다.
이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 추가 사용자가 자동화된 어시스턴트가 알고 있는 파라미터(들)와 연관된 모든 정보를 이미 요청했다고 결정할 수 있다. 그러한 구현예의 일부 추가 버전에서, 자동화된 어시스턴트는 작업의 나머지 부분이 클라이언트 디바이스(410)의 주어진 사용자를 필요로 하는 경우 어시스턴트 호출이 보류된 후 재개된 때 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출에 참여할 것을 사전적으로 요청할 수 있다. 예를 들어, 특정 작업은 자동화된 어시스턴트보다는 클라이언트 디바이스(410)의 주어진 사용자를 필요로 할 수 있다. 예를 들어 엔터티가 은행이고 추가 사용자가 은행 담당자이며 작업이 직불 카드 요금에 대해 이의를 제기하는 것이라고 가정한다. 이 예에서, 자동화된 어시스턴트는 은행에 전화를 걸고, 합성된 스피치 및/또는 주어진 사용자의 이름을 포함하는 합성된 음성과 같은 에뮬레이트된 버튼 누름, 사용자의 은행 계좌 번호를 포함하는 시뮬레이션된 버튼 누름, 통화한 이유를 제공하는 합성된 스피치 및/또는 은행과 연관된 통화 라우팅을 위한 자동화 시스템(예: IVR 시스템)을 탐색하기 위한 시뮬레이션된 버튼 누름을 초기적으로 제공할 수 있다. 그러나 자동화된 어시스턴트는 주어진 사용자가 주어진 사용자의 신원을 확인하고 어시스턴트 호출이 은행 담당자에게 전달될 때 논의되는 직불 카드 요금을 설명하기 위해 어시스턴트 호출에 참여해야 함을 알 수 있으며, 알림이 어시스턴트 호출이 은행 담당자에게 전달될 때 사용자의 클라이언트 디바이스(410)에서 렌더링되게 할 수 있다. 따라서, 자동화된 어시스턴트는 어시스턴트 호출의 초기 부분을 처리할 수 있고, 은행 담당자가 논쟁의 여지가 있는 요금을 논의할 수 있을 때 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출을 인수하도록 요청할 수 있다.
그러한 구현예의 일부 추가 버전에서, 자동화된 어시스턴트는 레스토랑 예약과 관련한 임의의 추가 정보를 알지 못하므로 어시스턴트 호출이 보류된 후 재개된 때 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출에 참여할 것을 사전적으로 요청할 수 있다. 예를 들어, 도 4b 내지 4d에 도시된 어시스턴트 호출의 추가 사용자가 레스토랑 예약이 완료되었음을 나타내지 않고 오디오 데이터(456D2)에서 자동화된 어시스턴트를 보류 상태로 두었다고 가정한다. 이 예에서 자동화된 어시스턴트는 레스토랑 예약과 관련하여 자동화된 어시스턴트에게 알려진 모든 정보에 대한 값을 이미 제공했으며, 어시스턴트 호출이 재개될 때 추가 사용자가 요청한 추가 정보는 현재 자동화된 어시스턴트에 알려져 있지 않은 정보이다. 따라서, 자동화된 어시스턴트는 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출이 재개될 때 이를 인수하도록 사전에 요청할 수 있다.
이러한 구현예의 또 다른 추가 버전에서, 자동화된 어시스턴트는 어시스턴트 호출이 보류 상태가 되었음을 나타내는 알림 및/또는 보류된 후 어시스턴트 호출이 재개되었음을 표시하는 알림을 보류할 수 있으며, 보류된 후, 일단 어시스턴트 호출이 재개되면 어시스턴트 호출을 계속하여, 추가 사용자가 자동화된 어시스턴트가 현재 알지 못하는 파라미터(들)와 연관된 정보를 요청하고 있음을 나타내는 알림(예: 도 4d의 알림(479))과 함께 또는 알림 대신 주어진 사용자의 클라이언트 디바이스(410)에서 알림이 렌더링되게 한다. 위의 예를 계속하면, 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출이 재개될 때 인수받을 것을 사전에 요청하는 대신, 자동화된 어시스턴트는 추가 사용자의 추가 음성 입력에 대응하는 추가 오디오 데이터를 프로세싱하여 추가 사용자가 자동화된 어시스턴트가 현재 알지 못하는 파라미터와 연관된 추가 정보를 요청하고 있는지 결정할 수 있다. 이 예에서, 자동화된 어시스턴트는 도 4d의 알림(479)과 유사한 알림과 함께 또는 대신하여 클라이언트 디바이스(410)의 주어진 사용자가 어시스턴트 호출을 인수하도록 요청하고, 추가 정보에 대한 값을 요청하는 알림을 제공할 수 있다. 이러한 방식으로, 자동화된 어시스턴트는 도 4b 내지 도 4d에 설명된 바와 같이 어시스턴트 호출을 계속할 수 있고, 클라이언트 디바이스(410)의 주어진 사용자에게 어시스턴트 호출의 제어를 전달한다.
이제 도 5a 내지 도 5c를 참조하면, 진행 중인 비-어시스턴트 호출 동안 어시스턴트 출력을 제공하는 것과 연관하여 사용자 인터페이스의 다양한 비제한적 예가 설명된다. 도 5a 내지 도 5c는 각각 클라이언트 디바이스(510)의 주어진 사용자의 인터렉션의 예를 디스플레이하는 그래픽 사용자 인터페이스(580)를 갖는 클라이언트 디바이스(510)를 도시한다. 인터렉션은 예를 들어, 하나 이상의 소프트웨어 애플리케이션(예를 들어, 웹 브라우저 애플리케이션, 자동화된 어시스턴트 애플리케이션, 연락처 애플리케이션, 이메일 애플리케이션, 캘린더 애플리케이션 및/또는 클라이언트 디바이스(510)에 의해 액세스 가능한 기타 소프트웨어 기반 애플리케이션)과의 인터렉션을 포함할 수 있고, 추가 사용자(예를 들어, 클라이언트 디바이스(510)와 연관된 자동화된 어시스턴트, 추가 클라이언트 디바이스와 연관된 추가 인간 참가자, 추가 사용자의 추가 클라이언트 디바이스와 연관된 추가 자동화된 어시스턴트 및/또는 다른 추가 사용자)와의 인터렉션을 포함할 수 있다. 클라이언트 디바이스(510)(예를 들어, 도 1의 자동화된 어시스턴트(115))와 연관된 자동화된 어시스턴트의 하나 이상의 양태는 분산 방식(예를 들어, 도 1의 네트워크(들)(190)을 통해)으로 클라이언트 디바이스(510) 및/또는 클라이언트 디바이스(510)와 통신하는 네트워크에 있는 다른 클라이언트 디바이스(들) 상에서 로컬적으로 구현될 수 있다. 단순화를 위해, 도 5a 내지 도 5c의 동작은 자동화된 어시스턴트에 의해 수행되는 것으로 여기에서 설명된다. 비록 도 5a 내지 도 5c의 클라이언트 디바이스(510)는 모바일폰으로 도시되지만, 제한하려는 의도가 아님을 이해해야 한다. 클라이언트 디바이스(510)는 예를 들어 독립형 스피커, 그래픽 사용자 인터페이스에 연결된 스피커, 랩톱, 데스크톱 컴퓨터 및/또는 전화 통화를 할 수 있는 임의의 다른 클라이언트 디바이스일 수 있다.
도 5a 내지 도 5c의 그래픽 사용자 인터페이스(580)는 사용자가 가상 키보드 또는 다른 터치 및/또는 타이핑된 입력을 통해 사용자 입력을 생성하기 위해 선택할 수 있는 텍스트 회답 인터페이스 엘리먼트(584) 및 사용자가 클라이언트 디바이스(510)의 마이크로폰을 통해 사용자 입력을 생성하기 위해 선택할 수 있는 음성 회답 인터페이스 엘리먼트(585)를 포함한다. 일부 구현예에서, 사용자는 음성 회답 인터페이스 엘리먼트(585)의 선택 없이도 마이크로폰을 통해 사용자 입력을 생성할 수 있다. 예를 들면, 사용자가 음성 회답 인터페이스 엘리먼트(585)를 선택해야하는 필요를 제거하기 위해 마이크로폰을 통해 청각적 사용자 입력에 대한 능동적 모니터링이 발생할 수 있다. 상기 구현예들 중 일부 및/또는 다른 구현예들에서, 음성 회답 인터페이스 엘리먼트(585)는 생략될 수 있다. 추가로, 일부 구현예에서, 텍스트 회답 인터페이스 엘리먼트(584)는 추가적으로 및/또는 대안적으로 생략될 수 있다(예를 들어, 사용자는 청각적 사용자 인터페이스 입력만 제공할 수 있다). 도 5a-5c의 그래픽 사용자 인터페이스(580)은 클라이언트 디바이스(510)로 하여금 하나 이상의 액션들을 수행하게 하기 위해 사용자와 인터렉션할 수 있는 시스템 인터페이스 엘리먼트들(581, 582, 583)을 포함한다. 일부 구현예에서, 통화 상세 인터페이스(570)는 클라이언트 디바이스(510)에서 렌더링될 수 있고, 통화 상세 인터페이스(510)는 선택될 때 진행 중인 호출이 종료되게 할 수 있는 그래픽 엘리먼트(542)를 포함할 수 있고, 또한 선택될 때 자동화된 어시스턴트로 하여금 어시스턴트 호출을 사용하여 클라이언트 디바이스(510)의 주어진 사용자로부터 호출을 인수하게 할 수 있는 그래픽 엘리먼트(543)를 포함할 수 있다. 이러한 구현예의 일부 버전에서, 어시스턴트 호출 인터페이스(570)는 또한 사용자로 하여금 통화 상세 인터페이스(570)를 확장하게 하여 추가 통화 세부정보를 디스플레이하는 통화 상세 인터페이스 엘리먼트(586)를 포함할 수 있고(예를 들어, 통화 상세 인터페이스 엘리먼트(586)를 위로 스와이프함으로써) 및/또는 통화 상세 인터페이스(570)를 해제할 수 있다(예를 들어, 통화 상세 인터페이스 엘리먼트(586)를 아래로 스와이프함으로써).
다양한 구현예에서, 자동화된 어시스턴트는 클라이언트 디바이스(410)의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이에 진행 중인 호출(즉, 어시스턴트 호출이 아님)을 중단할 수 있다. 일부 구현예에서, 자동화된 어시스턴트는 진행 중인 호출에 대응하는 오디오 데이터를 프로세싱하여 추가 사용자와 연관된 엔터티, 진행 중인 호출 동안 수행될 작업(들) 및/또는 진행 중인 호출 동안 수행될 작업(들)에 대한 파라미터(들)를 식별할 수 있다. 또한, 자동화된 어시스턴트는 식별된 파라미터(들)에 대한 값(들)을 결정할 수 있다. 예를 들어, 도 5a-5c에 도시된 바와 같이, 추가 사용자로부터 "Example Airlines 담당자입니다, 어떻게 도와드릴까요?"의 음성 입력을 캡처하는 오디오 데이터(552A1, 552B1 및/또는 552C1)가 클라이언트 디바이스(510)에서 수신된다고 가정한다. 이 예에서, 자동화된 어시스턴트는 오디오 데이터(552A1, 552B1, 및/또는 552C1)를 프로세싱할 수 있고, 프로세싱에 기초하여 추가 사용자가 Example Airlines 담당자인지 결정할 수 있고 및/또는 Example Airlines를 Example Airlines 담당자와 연관된 엔터티로 식별할 수 있다. 일부 추가 및/또는 대안 구현예에서, 자동화된 어시스턴트는 (예를 들어, 도 1의 어시스턴트 호출 엔진(150)과 연관하여) 본 명세서에 설명된 바와 같이 진행 중인 호출과 연관된 메타데이터에 기초하여 엔터티를 추가로 및/또는 대안적으로 식별할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 진행 중인 호출에 대응하는 오디오 데이터의 스트림을 프로세싱하지 않을 수 있으며, 진행 중인 호출과 연관된 메타데이터에만 기반하여 엔터티를 식별하여, 진행 중인 호출의 추가 사용자로부터 동의를 얻을 필요가 없다. 후술하는 바와 같이, 자동화된 어시스턴트는 진행 중인 호출에 대응하는 오디오 데이터의 스트림을 프로세싱하지 않고, 클라이언트 디바이스(510)의 주어진 사용자를 대신하여 작업(들)을 계속 수행할 수 있다.
추가로 클라이언트 디바이스(510)의 주어진 사용자(예를 들어, Jane Doe)로부터 "안녕하세요, 저는 항공편을 변경해야 합니다"의 음성 입력을 캡처하는 오디오 데이터(554A1, 554B1, 및/또는 554C1)가 클라이언트 디바이스(510)에서 검출되고 추가 사용자의 추가 클라이언트 디바이스로 전송된다고 가정한다. 이 예에서, 자동화된 어시스턴트는 오디오 데이터(554A1, 554B1, 및/또는 552C1)를 프로세싱할 수 있고, 프로세싱에 기초하여 항공편을 변경하는 작업을 결정할 수 있다. 다른 예에서, 자동화된 어시스턴트는 (예를 들어, 도 1의 어시스턴트 호출 엔진(150)과 연관하여) 본 명세서에 기술된 바와 같이 엔터티와 연관된 작업(들)을 추가적으로 및/또는 대안적으로 결정할 수 있다. 또한 추가 사용자로부터 "알겠습니다. 상용 고객 번호가 있습니까?"의 음성 입력을 캡처하는 오디오 데이터(552A2, 552B2 및/또는 552C2)가 클라이언트 디바이스(510)에서 수신된다고 가정한다. 이 예에서, 자동화된 어시스턴트는 오디오 데이터(554A2, 554B2 및/또는 552C2)를 프로세싱할 수 있고, 프로세싱에 기초하여 항공편 변경 작업(또는 상용 고객 번호 제공 작업 고려)에 대한 상용 고객 번호 파라미터를 식별할 수 있다. 다른 예에서, 자동화된 어시스턴트는 (예를 들어, 도 1의 어시스턴트 호출 엔진(150)과 관련하여) 본 명세서에 기술된 바와 같이 작업 및/또는 엔터티와 연관하여 저장되는 파라미터(들)에 기초하여 파라미터(들)를 추가적으로 및/또는 대안적으로 식별할 수 있다. 또한, 자동화된 어시스턴트는 상용 고객 번호 파라미터에 대한 값을 결정할 수 있고, 상용 고객 번호 파라미터에 대한 값을 추가 사용자에게 제공할 수 있다.
일부 구현예에서, 자동화된 어시스턴트는 클라이언트 디바이스(510)의 주어진 사용자와 추가 사용자 사이에서 진행 중인 호출 동안 식별된 파라미터(들)에 대한 값(들)을 파라미터(들)과 연관된 정보에 대한 요청을 포함하는, 클라이언트 디바이스(510)의 주어진 사용자로부터의 사용자 입력 수신에 응답하여 결정할 수 있다. 자동화된 어시스턴트는 클라이언트 디바이스(510)의 주어진 사용자와 연관된 사용자 프로필(들)에 기초하여 파라미터(들)에 대한 값(들)을 결정할 수 있다(예를 들어, 도 1의 사용자 프로필(들) 데이터베이스(153B)에 저장됨). 이들 구현예의 일부 버전에서, 자동화된 어시스턴트는 파라미터(들)에 대한 값(들)이 결정하는 것에 응답하여, 파라미터(들)에 대한 값(들)이 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다. 예를 들어, 도 5a에 도시된 바와 같이, 클라이언트 디바이스(510)의 주어진 사용자(예를 들어, Jane Doe)로부터 "어시스턴트, 내 상용 고객 번호가 뭐지?"의 음성 입력을 캡처하는 오디오 데이터(554A2)가 클라이언트 디바이스(510)에서 검출된다고 가정한다. 오디오 데이터(554A2)에서 캡처된 음성 입력을 수신하는 것에 응답하여, 자동화된 어시스턴트는 상용 고객 번호 파라미터에 대한 값을 결정할 수 있고(예를 들어, 사용자 프로필(들)에 포함되는 주어진 사용자와 연관된 Example Airlines 계정에 기초하여), "Jane Doe's Example Airlines 상용 고객 번호는 0112358입니다"의 합성된 스피치(556A1)가 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다.
이러한 구현예의 일부 추가 및/또는 대안 버전에서, 오디오 데이터(554A2)에 포함된 음성 입력을 수신하는 대신, 자동화된 어시스턴트는 어시스턴트 호출을 사용하여 클라이언트 디바이스(510)의 주어진 사용자로부터 호출을 인수하기 위해 그래픽 엘리먼트(543)의 선택을 수신할 수 있다. 예를 들어, 그래픽 엘리먼트(543)의 선택을 수신하는 것에 응답하여, 자동화된 어시스턴트는 상용 고객 번호 파라미터에 대한 값을 결정할 수 있다(예를 들어, 사용자 프로필(들)에 포함되는 주어진 사용자와 연관된 Example Airlines 계정에 기초하여), 그리고 합성된 스피치(556A1)가 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다.
특히, 오디오 데이터(554A2)는 상용 고객 번호와 연관된 엔터티를 식별하지 않고 "내 상용 고객 번호가 뭐지?"를 포함한다. 자동화된 어시스턴트가 추가 사용자로부터 동의를 얻지 않고 및/또는 상용 고객 번호 파라미터와 연관된 엔터티의 표시를 제공하지 않는 구현예에서, 자동화된 어시스턴트는 진행 중인 호출과 연관된 메타데이터에 기초하여 "내 상용 고객 번호"가 Example Airlines와 연관된 상용 고객 번호 파라미터에 대한 값을 참조한다고 결정할 수 있다. 이러한 방식으로, 자동화된 어시스턴트는 진행 중인 호출에 대응하는 오디오 데이터의 스트림을 프로세싱하지 않고 클라이언트 디바이스(510)의 주어진 사용자로부터의 요청에 응답하여 값(들)을 계속 제공할 수 있다.
다른 구현예에서, 자동화된 어시스턴트는 클라이언트 디바이스(510)의 주어진 사용자와 추가 사용자 사이에서 진행 중인 호출 동안 식별된 파라미터(들)에 대한 값(들)을 클라이언트 디바이스(510)의 주어진 사용자로부터 파라미터(들)과 연관된 정보에 대한 요청을 포함하는 임의의 사용자 입력을 수신하지 않고 사전에 결정할 수 있다. 자동화된 어시스턴트는 클라이언트 디바이스(510)의 주어진 사용자와 연관된 사용자 프로필(들)에 기초하여 파라미터(들)에 대한 값(들)을 결정할 수 있다(예를 들어, 도 1의 사용자 프로필(들) 데이터베이스(153B)에 저장됨).
이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 어시스턴트 호출이 작업을 수행할 수 있고 및/또는 파라미터(들)에 대한 값(들)을 추가 사용자에게 제공할 수 있다는 표시를 포함하는 알림이 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다. 자동화된 어시스턴트는 어시스턴트 스피치를 호출하는 클라이언트 디바이스(510)의 주어진 사용자로부터의 사용자 입력 수신에 응답하여 값(들)을 포함하는 합성된 스피치가 추가 사용자의 추가 클라이언트 디바이스에서 렌더링되게 할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, 자동화된 어시스턴트는 오디오 데이터(552B2)에서 상용 고객 번호 파라미터에 대한 값에 대한 요청을 식별하는 것에 응답하여 상용 고객 번호 파라미터에 대한 값을 결정한다고 가정한다. 더 나아가 자동화된 어시스턴트가 "당신의 Example Airlines 상용 고객 번호는 0112358입니다. Example Airlines 담당자에게 제공하시겠습니까?"라는 알림 579이 클라이언트 디바이스(510)의 통화 상세 인터페이스(570)에서 렌더링되게 한다고 가정한다. 자동화된 어시스턴트는 "Jane Doe's Example Airlines 상용 고객 번호는 0112358입니다"의 합성된 스피치(556B1)가 자동화된 어시스턴트가 상용 고객 번호 파라미터에 대한 값을 추가 사용자에게 제공해야 함을 나타내는 그래픽 엘리먼트(579A) 및/또는 그래픽 엘리먼트(543)의 선택을 수신함에 응답하여 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다. 일부 추가 및/또는 대안 구현에서, 자동화된 어시스턴트는 진행 중인 대화 동안 식별된 파라미터(들)에 대한 값(들)을 포함하는 클라이언트 디바이스(510)의 주어진 사용자의 음성 입력을 검출할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 통화 상세 인터페이스(579)에 포함된 알림(579)을 자동으로 해제할 수 있다.
이러한 구현예의 일부 다른 버전에서, 자동화된 어시스턴트는 또한 파라미터(들)에 대한 값(들)을 결정하는 것에 응답하여, 파라미터(들)와 연관된 정보에 대한 요청을 포함하는 임의의 사용자 입력을 수신하지 않고, 진행 중인 호출 동안 식별된 파라미터(들)에 대한 값(들)을 사전에 제공할 수 있다. 자동화된 어시스턴트는 값(들)을 결정하는 것에 응답하여, 값(들)을 포함하는 합성된 스피치가 추가 사용자의 추가 클라이언트 디바이스에서 렌더링되게 수 있다. 예를 들어, 도 5c에 도시된 바와 같이, 자동화된 어시스턴트는 오디오 데이터(552C2)의 상용 고객 번호 파라미터에 대한 값에 대한 추가 사용자로부터의 요청을 식별하는 것에 응답하여 상용 고객 번호 파라미터에 대한 값을 결정한다고 가정한다. 자동화된 어시스턴트는 "Jane Doe's Example Airlines 상용 고객 번호는 0112358입니다"의 합성된 스피치(556C1)가 상용 고객 번호 파라미터에 대한 값을 결정하는 것에 응답하여, 상용 고객 번호 파라미터와 연관된 정보에 대한 요청을 포함하는 사용자 입력을 수신하지 않고 추가 사용자의 추가 클라이언트 디바이스 및/또는 주어진 사용자의 클라이언트 디바이스(510)에서 렌더링되게 할 수 있다. 이러한 구현예의 일부 추가 버전에서, 자동화된 어시스턴트는 파라미터(들)에 대한 결정된 값(들)과 연관된 신뢰도 메트릭이 신뢰 임계값을 만족하는 경우 진행 중인 호출 동안 식별된 파라미터(들)에 대한 값(들)을 사전에만 제공할 수 있다. 신뢰도 메트릭은 예를 들어 동일한 정보에 대한 사전 요청 수신에 대한 응답으로 주어진 사용자가 이전에 결정된 값을 제공했는지 여부, 진행 중인 호출 동안 식별된 파라미터가 진행 중인 호출 동안 식별된 작업과 연관하여 저장된 후보 파라미터인지 여부, 값이 결정되는 소스(예: 이메일/캘린더 애플리케이션 대 텍스트 메시지 애플리케이션) 및/또는 신뢰도 메트릭을 결정하는 방식에 기초할 수 있다.
더욱이, 다양한 구현예에서, 자동화된 어시스턴트가 진행 중인 호출 동안 식별된 파라미터(들)에 대한 값(들)을 제공하는 것에 후속하여, 자동화된 어시스턴트는 진행 중인 호출의 나머지를 인수할 수 있다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 그래픽 엘리먼트(543)의 사용자 선택에 응답하여 진행 중인 호출의 나머지 부분을 인수할 수 있다. 따라서, 자동화된 어시스턴트는 클라이언트 디바이스(510)에 전송된 오디오 데이터에 기초하여 작업에 대한 파라미터(들)를 계속 식별하고, 식별된 파라미터(들)에 대한 값(들)을 결정할 수 있다. 또한, 자동화된 어시스턴트가 주어진 요청이 자동화된 어시스턴트에 의해 결정될 수 없는 정보에 대한 것이라고 결정하면, 자동화된 어시스턴트는 요청에 응답하여 추가 사용자 입력을 요청하는 알림을 제공할 수 있고, 자동화된 어시스턴트는 위에서 설명된 바와 같이(예를 들어, 도 4c 및 도 4d와 연관하여) 요청에 응답하는 추가 사용자 입력에 기초하여 값을 제공할 수 있다.
비록 도 5a 내지 도 5c는 상용 고객 번호를 제공하는 작업과 연관하여 여기에 설명되어 있지만, 이는 제한하려는 것이 아님을 이해해야 하며, 여기에 설명된 기법은 복수의 상이한 엔터티와 관련하여 수행될 수 있는 복수의 상이한 작업에 활용될 수 있다. 또한, 도 5a 내지 도 5c에 도시되지 않았지만, 자동화된 어시스턴트는 어시스턴트 호출을 사용하는 자동화된 어시스턴트에 의해 진행 중인 호출이 개시되지 않은 경우에도 진행 중인 호출이 시작되면 추가 사용자로부터 동의를 얻을 수 있음을 이해해야 한다. 자동화된 어시스턴트는 본 명세서에 기술된 방식을 사용하여 추가 사용자로부터 동의를 얻을 수 있다.
도 6은 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적 컴퓨팅 디바이스(610)의 블록도이다. 일부 구현예에서, 클라이언트 디바이스, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적 컴퓨팅 디바이스(610) 중 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(610)는 일반적으로 적어도 하나의 프로세서(614)를 포함하며, 버스 서브시스템(612)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(625) 및 파일 저장 서브시스템(626)을 포함하는 저장 서브시스템(624), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622) 및 네트워크 인터페이스 서브시스템(616)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(610)와 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 “입력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(610) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 “출력 디바이스”의 사용은 정보를 컴퓨팅 디바이스(610)로부터 사용자에게 또는 다른 기계 또는 컴퓨팅 디바이스에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장 서브시스템(624)은 본 명세서에 개시된 방법의 선택된 양태들을 수행하고 뿐만 아니라 도 1에 도시된 다양한 컴포넌트들을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(624)에서 사용된 메모리(625)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(630) 및 고정된 명령어들이 저장되는 ROM(632)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(626)에 의해 저장 서브시스템(624)에 또는 프로세서(들)(614)에 의해 액세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(612)은 의도된 대로 컴퓨팅 디바이스(610)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(612)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템(612)의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(610)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨팅 디바이스(610)는 일부 구현예를 설명하기 위한 목적의 특정 예로서만 의도된다. 컴퓨팅 디바이스(610)의 많은 다른 구성이 도 6에 도시된 컴퓨팅 디바이스보다 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집 또는 모니터링하거나 또는 개인 및/또는 모니터링된 정보를 사용하는 경우에 있어서, 사용자에게 프로그램 또는 구성이 사용자 정보(예를 들면, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호 또는 사용자의 현재 지리적 위치)에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버로부터의 콘텐츠를 수신할지 및/또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 지리적 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 정보가 어떻게 수집되는지 그리고 사용되는지에 관한 제어를 가질 수 있다.
일부 구현예들에서, 방법은 하나 이상의 프로세서에 의해 구현되고, 주어진 사용자와 연관된 클라이언트 디바이스를 통해, 주어진 사용자로부터, 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신하는 단계, 및 상기 사용자 입력에 기초하여: 상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 참여하는 엔터티 및 상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 수행될 작업을 결정하는 단계를 포함한다. 방법은 또한 상기 작업 및/또는 엔터티와 연관하여 저장된 하나 이상의 후보 파라미터에 대해, 상기 어시스턴트 호출 동안, 상기 작업을 수행할 때 합성된 스피치를 자동으로 생성하는데 사용될 하나 이상의 대응 값을 결정하는 단계, 주어진 사용자와 연관된 클라이언트 디바이스를 사용하여, 상기 어시스턴트 호출을 개시하는 단계, 및 어시스턴트 호출을 수행하는 동안, 상기 엔터티와 연관된 추가 사용자의 발화를 캡처하는 상기 어시스턴트 호출의 오디오 데이터 프로세싱에 기초하여, 추가 파라미터와 연관된 정보가 상기 추가 사용자에 의해 요청됨을 결정하는 단계를 포함한다. 상기 방법은 상기 추가 파라미터와 연관된 정보가 요청되었다는 결정에 응답하여, 상기 클라이언트 디바이스가 상기 어시스턴트 호출 외부에, 상기 추가 파라미터를 식별하고, 상기 정보에 대한 추가 사용자 입력을 요청하는 알림을 렌더링하게 하는 단계를 더 포함한다. 방법은 또한 알림에 응답하여 추가 입력을 수신하기 전에, 어시스턴트 호출을 계속하는 단계를 더 포함한다. 어시스턴트 호출을 계속하는 단계는 후보 파라미터에 대한 하나 이상의 대응 값에 기초하여 합성된 스피치의 하나 이상의 인스턴스를 렌더링하는 단계를 포함한다. 상기 방법은 상기 어시스턴트 호출을 계속하는 동안, 상기 알림에 응답하고 상기 추가 파라미터에 대한 특정 값을 식별하는 추가 사용자 입력이 임계 지속시간 내에 수신되는지 여부를 결정하는 단계; 및, 상기 추가 사용자 입력이 임계 지속시간 내에 수신된다는 결정에 응답하여, 상기 특정 값에 기초하는 추가 합성된 스피치를 상기 어시스턴트 호출의 일부로서 렌더링하는 단계를 더 포함한다.
본 명세서에서 개시된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현에서, 대응하는 값의 주어진 값을 결정하는 단계는, 상기 어시스턴트 호출을 개시하기 전에, 상기 후보 파라미터 중 주어진 후보 파라미터를 식별하고, 상기 주어진 후보 파라미터와 연관된 추가 정보를 요청하는 프롬프트를 생성하는 단계; 상기 클라이언트 디바이스로 하여금 상기 프롬프트를 렌더링하게 하는 단계, 및 상기 프롬프트에 응답하는 추가 사용자 입력에 기초하여, 상기 주어진 후보 파라미터에 대한 주어진 값을 식별하는 단계를 포함한다.
일부 구현에서, 대응하는 값의 추가 값을 결정하는 단계는, 어시스턴트 호출을 개시하기 전에, 상기 주어진 사용자와 연관된 사용자 프로필에 기초하여 상기 추가 값을 식별하는 단계를 포함한다.
일부 구현예에서, 어시스턴트 호출을 계속하는 단계는 상기 추가 사용자의 추가 발화가 상기 후보 파라미터 중 주어진 후보 파라미터에 대한 요청을 포함하는지 결정하기 위해 상기 어시스턴트 호출의 추가 오디오 데이터를 프로세싱하는 단계, 및, 상기 추가 발화가 상기 주어진 후보 파라미터에 대한 요청을 포함한다는 결정에 응답하여, 상기 클라이언트 디바이스로 하여금 상기 호출 시 합성된 스피치의 하나 이상의 인스턴스 중 주어진 인스턴스를 렌더링하게 하는 단계를 포함한다. 이러한 구현예의 일부 버전에서, 주어진 인스턴스는 주어진 후보 파라미터에 대해 결정되는 주어진 값에 기초하여 대응 값의 주어진 값을 포함하고, 주어진 인스턴스는 주어진 사용자로부터 추가 사용자 입력을 요청하지 않고 렌더링된다.
일부 구현예에서, 어시스턴트 호출을 계속하는 단계는 상기 추가 사용자의 추가 발화가 추가 임계 지속시간 내에 수신되는지 여부를 결정하기 위해 추가 오디오 데이터를 프로세싱하는 단계, 및, 상기 추가 임계 지속시간 내에 추가 사용자로부터 추가 발화가 수신되지 않았다는 결정에 응답하여, 상기 어시스턴트 호출 동안, 상기 추가 사용자에 의해 요청되지 않았던 하나 이상의 대응 값에 기초하여, 합성된 스피치의 하나 이상의 인스턴스 중 다른 인스턴스를 렌더링하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 추가 파라미터와 연관된 정보가 추가 사용자에 의해 요청되는지 결정하는 것에 응답하여, 상기 추가 파라미터를 포함하도록 상기 엔터티와 연관되어 저장된 하나 이상의 후보 파라미터를 업데이트하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 추가 파라미터와 연관된 정보가 상기 추가 사용자에 의해 요청되는 경우 상기 클라이언트 디바이스의 상태를 결정하는 단계, 및 상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림 및/또는 상기 알림을 렌더링하기 위한 하나 이상의 속성을 결정하는 단계를 더 포함한다.
상기 구현예 중 일부 버전에서, 클라이언트 디바이스의 상태는 주어진 사용자가 능동적으로 어시스턴트 호출을 모니터링하고 있음을 나타내며, 클라이언트 디바이스의 상태에 기초하여 알림을 결정하는 단계는 상기 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있음을 표시하는 상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림이 하나 이상의 선택 가능한 그래픽 엘리먼트와 함께 상기 클라이언트 디바이스의 디스플레이를 통해 시각적으로 렌더링되는 시각적 컴포넌트를 포함하도록 결정하는 단계를 포함한다. 상기 구현예 중 일부 추가 버전에서, 상기 알림에 응답하는 상기 추가 사용자 입력은 상기 하나 이상의 선택 가능한 그래픽 엘리먼트 중 주어진 하나의 그래픽 엘리먼트의 선택을 포함한다.
상기 구현예 중 일부 버전에서, 클라이언트 디바이스의 상태는 주어진 사용자가 능동적으로 어시스턴트 호출을 모니터링하고 있음을 나타내며, 클라이언트 디바이스의 상태에 기초하여 알림을 결정하는 단계는 상기 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있지 않음을 표시하는 상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림이 상기 클라이언트 디바이스의 하나 이상의 스피커를 통해 청각적으로 렌더링되는 청각적 컴포넌트를 포함하도록 결정하는 단계를 포함한다.
일부 구현예에서, 방법은 어시스턴트 호출을 종료하는 단계를 더 포함하고, 상기 어시스턴트 호출을 종료한 후, 상기 클라이언트 디바이스로 하여금 상기 어시스턴트 호출의 결과의 표시를 포함하는 추가 알림을 렌더링하게 하는 단계를 더 포함한다. 상기 구현예 중 일부 버전에서, 상기 어시스턴트 호출의 표시를 포함하는 추가 알림은: 상기 어시스턴트 호출 종료에 대한 응답으로, 상기 사용자를 대신하여 수행된 추가 작업의 표시를 포함하거나, 또는 선택시 상기 클라이언트 디바이스로 하여금 상기 사용자를 대신하여 추가 작업을 수행하게 하는 하나 이상의 선택 가능한 그래픽 엘리먼트를 포함한다.
일부 구현예에서, 상기 방법은 상기 추가 사용자 입력이 임계 지속시간 내에 수신되지 않는다는 결정에 응답하여, 상기 어시스턴트 호출 종료하는 단계, 및, 상기 어시스턴트 호출을 종료한 후, 상기 클라이언트 디바이스로 하여금 상기 어시스턴트 호출의 결과의 표시를 포함하는 추가 알림을 렌더링하게 하는 단계를 더 포함한다.
일부 구현예에서, 임계 지속시간은: 상기 추가 파라미터를 식별하고 정보에 대한 추가 사용자 입력을 요청하는 알림이 렌더링된 때로부터의 고정된 지속시간, 또는 하나 이상의 대응 값 중 마지막 대응 값이 추가 클라이언트 디바이스를 통해 추가 사용자에게 제시하기 위해 렌더링될 때에 기초하는 동적 지속시간이다.
일부 구현예에서, 상기 방법은 상기 어시스턴트 호출을 개시한 후, 상기 엔터티와 연관된 추가 사용자로부터, 상기 어시스턴트 호출을 모니터링하기 위한 동의를 획득하는 단계를 더 포함한다.
일부 구현예들에서, 방법은 하나 이상의 프로세서에 의해 구현되고, 클라이언트 디바이스에서, 상기 클라이언트 디바이스의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 진행 중인 호출을 검출하는 단계; 인식된 텍스트를 생성하기 위해 진행 중인 호출 동안 적어도 하나의 음성 발화를 캡처하는 오디오 데이터 스트림을 프로세싱하는 단계를 포함한다. 적어도 하나의 음성 발화는 주어진 사용자 또는 추가 사용자의 것이다. 방법은 자동화된 어시스턴트는 인식된 텍스트를 프로세싱하는 것에 기초하여 적어도 하나의 음성 발화가 파라미터에 대한 정보를 요청한다는 것을 식별하는 단계 및 파라미터에 대해 그리고 주어진 사용자에게 개인적인 액세스 제한 데이터를 사용하여 파라미터에 대한 값이 리졸브 가능하다고 결정하는 단계를 더 포함한다. 상기 방법은 상기 값이 리졸브가능하다는 결정에 응답하여, 상기 진행 중인 호출 동안, 상기 값에 기초하여 출력을 렌더링하는 단계를 포함한다.
본 명세서에서 개시된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예에서, 방법은 파라미터에 대한 값을 리졸브하는 단계(resolving)를 더 포함한다. 상기 구현예 중 일부 버전에서, 상기 진행 중인 호출 동안에 상기 출력을 렌더링하는 단계는 상기 파라미터에 대한 값을 리졸브하는 것에 대한 응답이다. 이러한 구현예의 일부 버전에서, 상기 파라미터에 대한 값을 리졸브하는 단계는 상기 주어진 사용자와 추가 사용자 간의 상기 진행 중인 호출의 메타데이터를 분석하는 단계, 상기 분석에 기초하여, 상기 추가 사용자와 연관된 엔터티를 식별하는 단계, 및 상기 엔터티 및 상기 파라미터와 연관하여 저장되는 값에 기초하여 상기 값을 리졸브하는 단계를 포함한다.
일부 구현예에서, 출력은 합성된 스피치를 포함하고, 상기 진행 중인 호출 동안, 상기 값에 기초하여 출력을 렌더링하는 단계는 상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하는 단계를 포함한다. 이러한 구현예의 일부 버전에서, 상기 방법은, 상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하기 전에, 상기 주어진 사용자로부터, 상기 진행 중인 호출 동안 어시스턴트를 활성화하기 위한 사용자 입력을 수신하는 단계를 더 포함한다. 상기 구현예 중 일부 버전에서, 상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하는 단계는 상기 어시스턴트를 활성화하기 위한 사용자 입력을 수신하는 것에 대한 응답이다.
일부 구현예에서, 상기 출력은 상기 클라이언트 디바이스에서 그리고 상기 진행 중인 호출의 외부에서 렌더링되는 알림을 포함한다. 상기 구현예 중 일부 버전에서, 상기 출력은 상기 진행 중인 호출의 일부로서 렌더링되는 합성된 스피치를 더 포함하고, 상기 방법은 상기 알림을 렌더링하고 상기 알림에 응답하여 긍정적인 사용자 입력을 수신하는 것에 응답하여 상기 합성된 스피치를 렌더링하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 파라미터에 대한 정보를 요청하는 적어도 하나의 음성 발화 이후에 임계 지속시간 동안 상기 오디오 데이터의 스트림을 프로세싱하는 것에 기초하여, 상기 임계 지속시간 내에 수신된 상기 주어진 사용자의 임의의 추가 음성 발화가 상기 값을 포함하는지 여부를 결정하는 단계를 더 포함한다. 상기 구현예 중 일부 버전에서, 상기 출력을 제공하는 단계는 상기 임계 지속기간 내에 수신된 상기 주어진 사용자의 어떠한 추가 음성 발화도 값을 포함하지 않는다는 결정에 기초한다.
추가로, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들(예를 들어, 중앙 프로세싱 유닛(들)(CPU(들)), 그래픽 프로세싱 유닛(들)(GPU(들)) 및/또는 텐서 프로세싱 유닛(들)(TPU(들)))을 포함하며, 상기 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 동작가능하며, 상기 명령어들은 전술된 임의의 방법들을 수행하게 하도록 구성된다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
본 명세서에서 매우 상세히 기술된 상기 개념들 및 추가적 개념들의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려되어야 한다. 예를 들면, 본 명세서의 끝부분에 나타나는 청구된 발명의 모든 조합들은 본 명세서에 개시된 본 발명의 일부인 것으로 고려된다.

Claims (28)

  1. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    주어진 사용자와 연관된 클라이언트 디바이스를 통해, 주어진 사용자로부터, 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신하는 단계;
    상기 사용자 입력에 기초하여:
    상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 참여하는 엔터티 및
    상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 수행될 작업을 결정하는 단계;
    상기 작업 및/또는 엔터티와 연관하여 저장된 하나 이상의 후보 파라미터에 대해, 상기 어시스턴트 호출 동안, 상기 작업을 수행할 때 합성된 스피치를 자동으로 생성하는데 사용될 하나 이상의 대응 값을 결정하는 단계;
    주어진 사용자와 연관된 클라이언트 디바이스를 사용하여, 상기 어시스턴트 호출을 개시하는 단계;
    어시스턴트 호출을 수행하는 동안, 상기 엔터티와 연관된 추가 사용자의 발화를 캡처하는 상기 어시스턴트 호출의 오디오 데이터 프로세싱에 기초하여, 추가 파라미터와 연관된 정보가 상기 추가 사용자에 의해 요청됨을 결정하는 단계; 및
    상기 추가 파라미터와 연관된 정보가 요청되었다는 결정에 응답하여:
    상기 클라이언트 디바이스가 상기 어시스턴트 호출 외부에, 상기 추가 파라미터를 식별하고, 상기 정보에 대한 추가 사용자 입력을 요청하는 알림을 렌더링하게 하는 단계;
    상기 알림에 응답하는 임의의 추가 입력을 수신하기 전에, 상기 어시스턴트 호출을 계속하는 단계, 상기 어시스턴트 호출을 계속하는 단계는 후보 파라미터에 대한 대응 값 중 하나 이상에 기초하는 합성된 스피치의 하나 이상의 인스턴스를 렌더링하는 단계를 포함하며;
    상기 어시스턴트 호출을 계속하는 동안, 상기 알림에 응답하고 상기 추가 파라미터에 대한 특정 값을 식별하는 추가 사용자 입력이 임계 지속시간 내에 수신되는지 여부를 결정하는 단계; 및
    상기 추가 사용자 입력이 임계 지속시간 내에 수신된다는 결정에 응답하여:
    상기 특정 값에 기초하는 추가 합성된 스피치를 상기 어시스턴트 호출의 일부로서 렌더링하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 대응 값의 주어진 값을 결정하는 단계는:
    상기 어시스턴트 호출을 개시하기 전에:
    상기 후보 파라미터 중 주어진 후보 파라미터를 식별하고, 상기 주어진 후보 파라미터와 연관된 추가 정보를 요청하는 프롬프트를 생성하는 단계;
    상기 클라이언트 디바이스로 하여금 상기 프롬프트를 렌더링하게 하는 단계; 및
    상기 프롬프트에 응답하는 추가 사용자 입력에 기초하여, 상기 주어진 후보 파라미터에 대한 주어진 값을 식별하는 단계를 포함하는, 방법.
  3. 임의의 선행하는 청구항에 있어서, 상기 대응 값의 추가 값을 결정하는 단계는:
    상기 어시스턴트 호출을 개시하기 전에:
    상기 주어진 사용자와 연관된 사용자 프로필에 기초하여 상기 추가 값을 식별하는 단계를 포함하는, 방법.
  4. 임의의 선행하는 청구항에 있어서, 상기 어시스턴트 호출을 계속하는 단계는:
    상기 추가 사용자의 추가 발화가 상기 후보 파라미터 중 주어진 후보 파라미터에 대한 요청을 포함하는지 결정하기 위해 상기 어시스턴트 호출의 추가 오디오 데이터를 프로세싱하는 단계; 및
    상기 추가 발화가 상기 주어진 후보 파라미터에 대한 요청을 포함한다는 결정에 응답하여:
    상기 클라이언트 디바이스로 하여금 상기 호출 시 합성된 스피치의 하나 이상의 인스턴스 중 주어진 인스턴스를 렌더링하게 하는 단계를 포함하며,
    상기 주어진 인스턴스는 상기 주어진 후보 파라미터에 대해 결정되는 주어진 값에 기초하여 상기 대응 값의 주어진 값을 포함하고, 그리고
    상기 주어진 인스턴스는 상기 주어진 사용자로부터 추가 사용자 입력을 요청하지 않고 렌더링되는, 방법.
  5. 임의의 선행하는 청구항에 있어서, 상기 어시스턴트 호출을 계속하는 단계는:
    상기 추가 사용자의 추가 발화가 추가 임계 지속시간 내에 수신되는지 여부를 결정하기 위해 추가 오디오 데이터를 프로세싱하는 단계; 및
    상기 추가 임계 지속시간 내에 추가 사용자로부터 추가 발화가 수신되지 않았다는 결정에 응답하여:
    상기 어시스턴트 호출 동안, 상기 추가 사용자에 의해 요청되지 않았던 하나 이상의 대응 값에 기초하여, 합성된 스피치의 하나 이상의 인스턴스 중 다른 인스턴스를 렌더링하는 단계를 포함하는, 방법.
  6. 임의의 선행하는 청구항에 있어서,
    추가 파라미터와 연관된 정보가 추가 사용자에 의해 요청되는지 결정하는 것에 응답하여:
    상기 추가 파라미터를 포함하도록 상기 엔터티와 연관되어 저장된 하나 이상의 후보 파라미터를 업데이트하는 단계를 포함하는, 방법.
  7. 임의의 선행하는 청구항에 있어서,
    상기 추가 파라미터와 연관된 정보가 상기 추가 사용자에 의해 요청되는 경우 상기 클라이언트 디바이스의 상태를 결정하는 단계, 및
    상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림 및/또는 상기 알림을 렌더링하기 위한 하나 이상의 속성을 결정하는 단계를 더 포함하는, 방법.
  8. 청구항 7에 있어서, 상기 클라이언트 디바이스의 상태는 상기 주어진 사용자가 상기 어시스턴트 호출을 능동적으로 모니터링하고 있음을 표시하고, 상기 클라이언트 디바이스의 상태에 기초하여 상기 알림을 결정하는 단계는:
    상기 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있음을 표시하는 상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림이 하나 이상의 선택 가능한 그래픽 엘리먼트와 함께 상기 클라이언트 디바이스의 디스플레이를 통해 시각적으로 렌더링되는 시각적 컴포넌트를 포함하도록 결정하는 단계를 포함하며, 그리고
    상기 알림에 응답하는 상기 추가 사용자 입력은 상기 하나 이상의 선택 가능한 그래픽 엘리먼트 중 주어진 하나의 그래픽 엘리먼트의 선택을 포함하는, 방법.
  9. 청구항 7에 있어서, 상기 클라이언트 디바이스의 상태는 상기 주어진 사용자가 상기 어시스턴트 호출을 능동적으로 모니터링하고 있지 않음을 표시하고, 상기 클라이언트 디바이스의 상태에 기초하여 상기 알림을 결정하는 단계는:
    상기 주어진 사용자가 어시스턴트 호출을 능동적으로 모니터링하고 있지 않음을 표시하는 상기 클라이언트 디바이스의 상태에 기초하여, 상기 알림이 상기 클라이언트 디바이스의 하나 이상의 스피커를 통해 청각적으로 렌더링되는 청각적 컴포넌트를 포함하도록 결정하는 단계를 포함하는, 방법.
  10. 임의의 선행하는 청구항에 있어서,
    상기 어시스턴트 호출 종료하는 단계; 및
    상기 어시스턴트 호출을 종료한 후:
    상기 클라이언트 디바이스로 하여금 상기 어시스턴트 호출의 결과의 표시를 포함하는 추가 알림을 렌더링하게 하는 단계를 더 포함하는, 방법.
  11. 청구항 10에 있어서, 상기 어시스턴트 호출의 표시를 포함하는 추가 알림은:
    상기 어시스턴트 호출 종료에 대한 응답으로, 상기 사용자를 대신하여 수행된 추가 작업의 표시를 포함하거나, 또는
    선택시 상기 클라이언트 디바이스로 하여금 상기 사용자를 대신하여 추가 작업을 수행하게 하는 하나 이상의 선택 가능한 그래픽 엘리먼트를 포함하는, 방법.
  12. 임의의 선행하는 청구항에 있어서,
    상기 추가 사용자 입력이 임계 지속시간 내에 수신되지 않는다는 결정에 응답하여:
    상기 어시스턴트 호출 종료하는 단계; 및
    상기 어시스턴트 호출을 종료한 후:
    상기 클라이언트 디바이스로 하여금 상기 어시스턴트 호출의 결과의 표시를 포함하는 추가 알림을 렌더링하게 하는 단계를 더 포함하는, 방법.
  13. 임의의 선행하는 청구항에 있어서, 상기 임계 지속시간은:
    상기 추가 파라미터를 식별하고 정보에 대한 추가 사용자 입력을 요청하는 알림이 렌더링된 때로부터의 고정된 지속시간, 또는
    하나 이상의 대응 값 중 마지막 대응 값이 추가 클라이언트 디바이스를 통해 추가 사용자에게 제시하기 위해 렌더링될 때에 기초하는 동적 지속시간인, 방법.
  14. 임의의 선행하는 청구항에 있어서,
    상기 어시스턴트 호출을 개시한 후:
    상기 엔터티와 연관된 추가 사용자로부터, 상기 어시스턴트 호출을 모니터링하기 위한 동의를 획득하는 단계를 더 포함하는, 방법.
  15. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스에서, 상기 클라이언트 디바이스의 주어진 사용자와 추가 클라이언트 디바이스의 추가 사용자 사이의 진행 중인 호출을 검출하는 단계;
    인식된 텍스트를 생성하기 위해 상기 진행 중인 호출 동안 적어도 하나의 음성 발화를 캡처하는 오디오 데이터 스트림을 프로세싱하는 단계, 상기 적어도 하나의 음성 발화는 상기 주어진 사용자 또는 상기 추가 사용자의 것이며;
    상기 인식된 텍스트를 프로세싱하는 것에 기초하여, 상기 적어도 하나의 음성 발화가 파라미터에 대한 정보를 요청한다는 것을 식별하는 단계;
    상기 파라미터에 대해, 상기 주어진 사용자에게 개인적인 액세스-제한 데이터를 사용하여, 상기 파라미터에 대한 값이 리졸브가능(resolvable)하다고 결정하는 단계; 및
    상기 값이 리졸브가능하다는 결정에 응답하여:
    상기 진행 중인 호출 동안, 상기 값에 기초하여 출력을 렌더링하는 단계를 포함하는, 방법.
  16. 청구항 15에 있어서,
    상기 파라미터에 대한 값을 리졸브하는 단계(resolving)를 더 포함하며;
    상기 진행 중인 호출 동안에 상기 출력을 렌더링하는 단계는 상기 파라미터에 대한 값을 리졸브하는 것에 대한 응답인, 방법.
  17. 청구항 16에 있어서, 상기 파라미터에 대한 값을 리졸브하는 단계는:
    상기 주어진 사용자와 추가 사용자 간의 상기 진행 중인 호출의 메타데이터를 분석하는 단계;
    상기 분석에 기초하여, 상기 추가 사용자와 연관된 엔터티를 식별하는 단계; 및
    상기 엔터티 및 상기 파라미터와 연관하여 저장되는 값에 기초하여 상기 값을 리졸브하는 단계를 포함하는, 방법.
  18. 청구항 15 내지 17 중 어느 한 항에 있어서, 상기 출력은 합성된 스피치를 포함하고, 상기 진행 중인 호출 동안 상기 값에 기초하여 상기 출력을 렌더링하는 단계는:
    상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하는 단계를 포함하는, 방법.
  19. 청구항 18에 있어서,
    상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하기 전에:
    상기 주어진 사용자로부터 상기 진행 중인 호출 동안 어시스턴트를 활성화하기 위한 사용자 입력을 수신하는 단계; 및
    상기 합성된 스피치를 상기 진행 중인 호출의 일부로서 렌더링하는 단계는 상기 어시스턴트를 활성화하기 위한 사용자 입력을 수신하는 것에 대한 응답인, 방법.
  20. 청구항 15 내지 17 중 어느 한 항에 있어서, 상기 출력은 상기 클라이언트 디바이스에서 그리고 상기 진행 중인 호출의 외부에서 렌더링되는 알림을 포함하는, 방법.
  21. 청구항 20에 있어서, 상기 출력은 상기 진행 중인 호출의 일부로서 렌더링되는 합성된 스피치를 더 포함하고,
    상기 알림을 렌더링하고 상기 알림에 응답하여 긍정적인 사용자 입력을 수신하는 것에 응답하여 상기 합성된 스피치를 렌더링하는 단계를 더 포함하는, 방법.
  22. 청구항 15 내지 21 중 어느 한 항에 있어서,
    상기 파라미터에 대한 정보를 요청하는 적어도 하나의 음성 발화 이후에 임계 지속시간 동안 상기 오디오 데이터의 스트림을 프로세싱하는 것에 기초하여, 상기 임계 지속시간 내에 수신된 상기 주어진 사용자의 임의의 추가 음성 발화가 상기 값을 포함하는지 여부를 결정하는 단계를 더 포함하고, 그리고
    상기 출력을 제공하는 단계는 상기 임계 지속기간 내에 수신된 상기 주어진 사용자의 어떠한 추가 음성 발화도 값을 포함하지 않는다는 결정에 기초하는, 방법.
  23. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    주어진 사용자와 연관된 클라이언트 디바이스를 통해, 주어진 사용자로부터, 어시스턴트 호출을 개시하기 위한 사용자 입력을 수신하는 단계;
    상기 사용자 입력에 기초하여:
    상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 참여하는 엔터티 및
    상기 어시스턴트 호출 동안, 상기 주어진 사용자를 대신하여 수행될 작업을 결정하는 단계;
    주어진 사용자와 연관된 클라이언트 디바이스를 사용하여, 상기 어시스턴트 호출의 수행을 개시하는 단계, 상기 어시스턴트 호출의 수행은 상기 어시스턴트 호출 동안에 수행될 작업에 기초하여 합성된 스피치 및/또는 시뮬레이션된 버튼 누름을 자동으로 생성하는 것을 포함하며;
    상기 어시스턴트 호출을 수행하는 동안, 오디오 데이터 프로세싱에 기초하여, 사람 참가자가 엔터티를 대신하여 참여하도록 어시스턴트 호출을 모니터링하는 단계;
    상기 모니터링 동안, 상기 사람 참가자가 엔터티를 대신하여 참여했다고 결정하는 것에 응답하여:
    상기 클라이언트 디바이스로 하여금 상기 어시스턴트 호출 외부에, 상기 사용자가 상기 어시스턴트 호출에 능동적으로 참여하도록 요청하는 알림을 렌더링하게 하는 단계; 및
    상기 알림을 지시하는 상기 사용자에 의한 긍정적인 사용자 입력에 응답하여:
    상기 주어진 사용자를 상기 어시스턴트 호출에 능동적 참가자로 참여시키는 단계를 더 포함하며, 상기 주어진 사용자에 참여시키는 단계는 상기 어시스턴트 호출의 일부로서, 상기 클라이언트 디바이스의 하나 이상의 마이크로폰을 통해 검출된 상기 주어진 사용자의 음성 입력에 대응하는 오디오 데이터를 렌더링하는 단계를 포함하는, 방법.
  24. 청구항 23에 있어서,
    상기 합성된 스피치 및/또는 시뮬레이션된 버튼 누름을 생성한 후, 상기 어시스턴트 호출이 보류되었는지 결정하는 단계를 더 포함하며;
    상기 어시스턴트 호출이 보류되었다는 결정에 응답하여 상기 모니터링이 수행되는, 방법.
  25. 청구항 24에 있어서, 상기 어시스턴트 호출이 보류되었다고 결정하는 단계는 상기 어시스턴트 호출의 선행 오디오 데이터를 프로세싱하는 단계 및 상기 호출이 보류되었다고 표시하는 하나 이상의 큐를 포함하는 오디오 데이터에 기초하여 상기 어시스턴트 호출이 보류되었다고 결정하는 단계를 포함하는, 방법.
  26. 청구항 24 내지 25 중 어느 한 항에 있어서, 상기 클라이언트 디바이스로 하여금 상기 사용자가 상기 어시스턴트 호출에 능동적으로 참여하도록 요청하는 알림을 렌더링하게 하는 단계는 상기 작업에 대한 임의의 리졸브된 값이 상기 합성된 스피치 및/또는 시뮬레이션된 버튼 누름을 사용하여 상기 어시스턴트 호출 동안 이미 통신되었다는 결정에 대한 응답인, 방법.
  27. 청구항 24 내지 25 중 어느 한 항에 있어서, 상기 클라이언트 디바이스로 하여금 상기 사용자가 상기 어시스턴트 호출에 능동적으로 참여하도록 요청하는 알림을 렌더링하게 하는 단계는 상기 엔터티가 상기 작업을 완료하기 위해 능동적 사람 참여가 필요하다는 결정에 대한 응답인, 방법.
  28. 적어도 하나의 컴퓨팅 디바이스로서,
    적어도 하나의 프로세서; 및
    명령어를 저장하는 적어도 하나의 메모리를 포함하며, 상기 명령어는 실행될 때, 상기 적어도 하나의 프로세서로 하여금 선행하는 청구항 중 어느 한 항의 방법을 수행하게 하는, 적어도 하나의 컴퓨팅 디바이스.
KR1020227021946A 2020-03-20 2020-04-22 사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출 KR102631797B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062992609P 2020-03-20 2020-03-20
US62/992,609 2020-03-20
PCT/US2020/029346 WO2021188126A1 (en) 2020-03-20 2020-04-22 Semi-delegated calling by an automated assistant on behalf of human participant

Publications (2)

Publication Number Publication Date
KR20220106183A true KR20220106183A (ko) 2022-07-28
KR102631797B1 KR102631797B1 (ko) 2024-02-01

Family

ID=70680658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227021946A KR102631797B1 (ko) 2020-03-20 2020-04-22 사람 참가자를 대신하여 자동화된 어시스턴트에 의한 준-위임 호출

Country Status (6)

Country Link
US (1) US20220051664A1 (ko)
EP (1) EP3909230A1 (ko)
JP (2) JP7392128B2 (ko)
KR (1) KR102631797B1 (ko)
CN (1) CN114631300A (ko)
WO (1) WO2021188126A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110719362A (zh) * 2019-09-10 2020-01-21 北京百度网讯科技有限公司 通话处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20200024511A (ko) * 2018-08-28 2020-03-09 삼성전자주식회사 대화 에이전트의 동작 방법 및 그 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430570B2 (en) * 2009-07-01 2016-08-30 Matthew Jeremy Kapp Systems and methods for determining information and knowledge relevancy, relevant knowledge discovery and interactions, and knowledge creation
US10134395B2 (en) * 2013-09-25 2018-11-20 Amazon Technologies, Inc. In-call virtual assistants
EP3748558A1 (en) * 2016-06-13 2020-12-09 Google LLC Automated telephone call initiating system and method
US10567579B2 (en) * 2016-08-24 2020-02-18 Vonage Business Inc. Systems and methods for providing integrated computerized personal assistant services in telephony communications
US10318096B2 (en) * 2016-09-16 2019-06-11 Microsoft Technology Licensing, Llc Intelligent productivity monitoring with a digital assistant
JP2018101847A (ja) * 2016-12-19 2018-06-28 シャープ株式会社 電子機器、電子機器の制御方法、制御プログラム、および記録媒体
US9865260B1 (en) * 2017-05-03 2018-01-09 Google Llc Proactive incorporation of unsolicited content into human-to-computer dialogs
US10498904B1 (en) * 2017-11-22 2019-12-03 Repnow, Inc. Automated telephone host system interaction
WO2019194925A1 (en) * 2018-04-02 2019-10-10 SecretLab, LLC Reservation buying/selling systems and methods
US10944864B2 (en) * 2019-03-26 2021-03-09 Ribbon Communications Operating Company, Inc. Methods and apparatus for identification and optimization of artificial intelligence calls
US11134034B2 (en) * 2019-09-09 2021-09-28 Disney Enterprises, Inc. Systems, methods, and storage media configured to integrate artificial intelligence chatbots into a communication between real-world users
US11005988B1 (en) * 2019-12-27 2021-05-11 Qualcomm Incorporated Smart notification system for voice calls

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200024511A (ko) * 2018-08-28 2020-03-09 삼성전자주식회사 대화 에이전트의 동작 방법 및 그 장치
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

Also Published As

Publication number Publication date
JP2024020472A (ja) 2024-02-14
JP7392128B2 (ja) 2023-12-05
WO2021188126A1 (en) 2021-09-23
US20220051664A1 (en) 2022-02-17
KR102631797B1 (ko) 2024-02-01
CN114631300A (zh) 2022-06-14
EP3909230A1 (en) 2021-11-17
JP2023501059A (ja) 2023-01-18

Similar Documents

Publication Publication Date Title
US11887595B2 (en) User-programmable automated assistant
US10685187B2 (en) Providing access to user-controlled resources by automated assistants
JP6827479B2 (ja) パーソナルアシスタントモジュールによる非決定的なタスク開始
JP6690063B2 (ja) 対話型アシスタントモジュールによるアクセスの条件付き提供
US11941420B2 (en) Facilitating user device and/or agent device actions during a communication session
KR102624148B1 (ko) 인간 사용자를 대신하여 대화형 음성 응답(ivr) 트리 자동 탐색
US10943591B2 (en) Voice to text conversion based on third-party agent content
KR20190080938A (ko) 이전 자동 대화 세션의 선택된 컨텐츠에 기초한 자동 대화 세션에서의 프롬프트 제공
JP2024020472A (ja) 人間の参加者の代理の自動アシスタントによる準委任通話
US20240205331A1 (en) Reducing telephone network traffic through utilization of pre-call information

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right