KR20220010034A - 그래픽 사용자 인터페이스에 음성-제어 컨텐츠 입력 - Google Patents

그래픽 사용자 인터페이스에 음성-제어 컨텐츠 입력 Download PDF

Info

Publication number
KR20220010034A
KR20220010034A KR1020217042100A KR20217042100A KR20220010034A KR 20220010034 A KR20220010034 A KR 20220010034A KR 1020217042100 A KR1020217042100 A KR 1020217042100A KR 20217042100 A KR20217042100 A KR 20217042100A KR 20220010034 A KR20220010034 A KR 20220010034A
Authority
KR
South Korea
Prior art keywords
input field
text string
candidate text
additional content
input
Prior art date
Application number
KR1020217042100A
Other languages
English (en)
Inventor
스리칸스 판디리
러브 코타리
베샤드 베자디
자히드 사부르
도메니코 카보타
악샤이 칸난
키 왕
고카이 바리스 굴테킨
안가나 고쉬
서 류
양 루
스티브 쳉
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220010034A publication Critical patent/KR20220010034A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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
    • 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/26Speech to text systems
    • 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
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서에 설명된 구현은 음성 발언 부분의 직역적 해석을 입력 필드에 포함할지 및/또는 동의어 컨텐츠를 입력 필드에 포함할지 여부를 선택적으로 결정할 수 있는 자동화 어시스턴트에 관한 것이다. 예를 들어, 사용자는 사용자 입력을 수신하기 위한 입력 필드(예를 들어, 주소 필드)를 제공하는 인터페이스에 액세스할 수 있다. 입력 필드에 대한 입력을 제공하기 위해, 사용자는 입력 필드를 선택하고 및/또는 GUI 키보드에 액세스하여 입력 필드를 채우는 것을 지원하기 위한 자동화 어시스턴트를 초기화할 수 있다. 사용자가 음성 발언을 제공하는 경우, 사용자는 의도된 입력(예를 들어, 실제 주소) 또는 의도된 입력에 대한 참조(예를 들어, 이름)를 구현하는 음성 발언을 제공하도록 선택할 수 있다. 음성 발언에 응답하여, 자동화 어시스턴트는 사용자로부터의 추가 입력 없이 입력 필드를 의도된 입력으로 채울 수 있다.

Description

그래픽 사용자 인터페이스에 음성-제어 컨텐츠 입력
인간은 본 명세서에서 "자동화 어시스턴트"("디지털 에이전트", "챗봇", "대화형 개인 비서", "지능형 개인 비서", "어시스턴트 애플리케이션", "대화 에이전트" 등으로도 지칭됨)로 지칭되는 대화형(interactive) 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동화 어시스턴트와 상호작용할 때 "사용자"로 지칭될 수 있음)은 음성 자연어 입력(즉, 발언)을 사용하여 자동화 어시스턴트에 커맨드 및/또는 요청을 제공할 수 있으며, 이는 일부 경우 텍스트로 변환된 다음 처리되거나 및/또는 텍스트(예컨대, 타이핑된) 자연어 입력을 제공함으로써 처리될 수 있다. 자동화 어시스턴트는 청각 및/또는 시각적 사용자 인터페이스 출력을 포함할 수 있는 반응형 사용자 인터페이스 출력을 제공함으로써 요청에 응답한다.
위에서 언급한 바와 같이, 자동화 어시스턴트는 사용자의 음성 발언(spoken utterance)에 대응하는 오디오 데이터를 대응하는 텍스트(또는 다른 의미론적 표현)로 변환할 수 있다. 예를 들어, 오디오 데이터는 사용자가 자동화 어시스턴트와 상호작용할 수 있게 하기 위한 어시스턴트 인터페이스를 포함하는 클라이언트 디바이스의 하나 이상의 마이크로폰을 통한 사용자의 음성 발언의 검출에 기초하여 생성될 수 있다. 자동화 어시스턴트는 음성 발언에 의해 생성된 사운드(예를 들어, 음소), 생성된 사운드의 순서, 음성(speech)의 리듬, 억양 등과 같은 음성 데이터에 캡처된 음성 발언의 다양한 특성을 인식하려고 시도하는 음성 인식 엔진을 포함할 수 있다. 또한, 음성 인식 엔진은 이러한 특성들로 표현되는 텍스트 단어 또는 구문을 식별할 수 있다. 그 다음, 텍스트는 음성 발언에 대한 응답 컨텐츠를 결정할 때 (예를 들어, 자연어 이해(NLU) 엔진 및/또는 대화 상태 엔진을 사용하여) 자동화 어시스턴트에 의해 추가로 처리될 수 있다. 음성 인식 엔진은 클라이언트 디바이스 및/또는 클라이언트 디바이스로부터 멀리 떨어져 있지만 클라이언트 디바이스와 네트워크 통신하는 하나 이상의 자동화 어시스턴트 컴포넌트(들)로 구현될 수 있다.
자동화 어시스턴트와는 별도로, 특정 키보드 애플리케이션은 사용자가 키보드 애플리케이션에 의해 렌더링되는 가상 키와의 상호작용을 통해 타이핑된 키보드 입력을 제공할 수 있도록 할 수 있다. 일부 키보드 애플리케이션에서는 사용자가 구술(받아쓰기)을 통해 텍스트 입력을 제공할 수도 있다. 예를 들어, 사용자는 키보드상의 "마이크로폰" 그래픽 엘리먼트를 선택한 다음 음성 발언을 제공할 수 있다. 그러면 키보드 애플리케이션은 그 음성 발언을 특징짓는 임의의 오디오 데이터를 대응하는 텍스트로 변환하고 해당 텍스트를 애플리케이션에 대한 입력으로 활용할 수 있다. 따라서, 이러한 키보드 애플리케이션은 사용자가 타이핑 대신 음성(voice)으로 받아쓰는 것을 가능하게 하고 엄격한 직역적(verbatim) 구술을 애플리케이션에 대한 텍스트로 활용할 수 있도록 한다.
본 명세에 개시된 일부 구현은 음성 발언에 대해 인식된 텍스트를 생성하기 위해 사용자의 음성 발언을 캡처하는 오디오 데이터를 처리하는 것, 및 입력 필드에 포함하기 위해, (1) 인식된 텍스트 자체 또는 (2) 인식된 텍스트에 기초하여 결정되는 대체 컨텐츠를 제공할지 여부를 결정하는 것과 관련된다. 대체 컨텐츠는 음성 발언에 대한 대체 음성-텍스트 변환 인식이 아니라 인식된 텍스트에 기초하여 결정되는 대체 컨텐츠이다. 인식된 텍스트 및/또는 대체 컨텐츠의 하나 이상의 속성은 인식된 텍스트 또는 대체 컨텐츠를 입력(entry) 필드에 포함할지 여부를 결정할 때 고려될 수 있다.
일부 구현에서, 대체 컨텐츠의 인식된 텍스트를 입력 필드에 포함할지 여부를 결정할 때, 인식된 컨텐츠 및/또는 대체 컨텐츠의 하나 이상의 속성은 사용자가 음성 발언을 제공한 컨텍스트와 관련된 파라미터(들)와 비교될 수 있다. 예를 들어, 한 컨텍스트에서 사용자는 웹페이지에 의해 제공되는 서비스를 수신하기 위한 연락처 정보를 제공하기 위해 웹페이지와 상호 작용할 수 있다. 사용자는 "거리 주소" 필드로 식별되는 입력 필드에 해당하는 웹 페이지의 일부를 선택할 수 있다. 이후, 사용자는 키보드 엘리먼트를 선택하여 자동화 어시스턴트를 호출하고(또는 자동화된 어시스턴트는 다른 방식으로 예를 들어 키보드 애플리케이션이 포어그라운드(전경)로 표시되는 것에 응답하여 자동으로 호출될 수 있음), "마이 홈"과 같은 음성 발언을 제공할 수 있다. 이에 대한 응답으로, 자동화 어시스턴트는 음성 발언을 처리하고 키보드 애플리케이션이 인식된 텍스트인 "마이 홈" 대신 입력 필드에 사용자의 전체 집 주소(예를 들어, "1111 웨스트 무하마드 알리 대로")인 대체 컨텐츠를 포함하도록 할 수 있다. 이것은 예를 들어 자동화 어시스턴트가 입력 필드가 "거리 주소" 입력 필드이고 대체 컨텐츠가 그 자체로 거리 주소라고 결정하는 것에 기초할 수 있다. 다시 말해, 자동화 어시스턴트는 인식된 텍스트 대신에 대체 콘텐츠를 포함하기로 결정할 때 컨텍스트와 관련된 파라미터(예를 들어, 입력 필드가 "거리 주소" 필드임)를 대체 컨텐츠의 속성(예를 들어, 대체 컨텐츠가 거리 주소임)과 비교할 수 있다. 자동화 어시스턴트는 예를 들어 웹페이지의 XML 또는 HTML(예를 들어, 입력 필드에 대한 XML 또는 HTML 태그) 고려, 입력 필드 근처에 있는 텍스트 및/또는 그래픽 엘리먼트 고려, 및/또는 기타 기술(들)과 같은 다양한 기술을 사용하여 입력 필드가 주소임을 결정할 수 있다.
그러나, 사용자가 메시징 애플리케이션을 통해 다른 사람과 통신할 때, 사용자는 다른 사람으로부터 "우리 오늘 밤 어디에서 만날까?"와 같은 메시지를 수신할 수 있다. 이에 대한 응답으로, 사용자는 자동화 어시스턴트를 호출하여 "마이 홈"과 같은 음성 발언을 제공할 수 있다. 이에 응답하여, 자동화 어시스턴트는 음성 발언을 처리하고 키보드 애플리케이션으로 하여금 사용자의 전체 집 주소가 아니라 음성 발언(즉, 텍스트 "마이 홈")의 직역적 해석을 포함하게 할 수 있다. 직역적 해석을 포함하기로 한 결정은 사용자와 다른 사람이 의사소통한 이전 인스턴스를 특징짓는 컨텍스트 데이터 및/또는 이력적 상호작용 데이터에 기초할 수 있다. 추가적으로 또는 대안적으로, 이 결정은 사용자가 유사한 컨텍스트에서 자신의 전체 집 주소를 제공했는지 여부 및/또는 사용자가 다른 사람에게 메시지를 보낼 때를 기반으로 할 수 있다. 이 정보에 기초하여, 직역적 해석은 직역적 컨텐츠를 포함할지 또는 대체 컨텐츠를 포함할지 여부를 결정할 때 전체 거리 주소에 대해 바이어스될 수 있다.
음성 발언의 직역적 해석과 상이한 컨텐츠를 적응적으로 선택하는 자동화 어시스턴트를 제공하는 것은 사용자와 자동화 어시스턴트 사이의 상호작용 시간을 단축할 수 있다. 이것은 수행되어야 하는 자동 음성 인식(ASR) 처리의 양과 음성 발언을 수신 및/또는 처리하는 디바이스가 켜져 있는 시간량을 줄여서 디바이스에 의해 소비될 수 있는 전력 및 기타 계산 리소스를 보존할 수 있다. 예를 들어, 사용자가 자신의 집 주소(예를 들어, "1111 웨스트 무하마드 알리 대로")를 인용하는데 걸리는 시간량은 사용자가 "마이 홈"이라는 문구를 인용하는데 소비하는 시간량에 비해 상당히 길 수 있다. 마찬가지로, 이는 짧은 구문을 인식하는 것보다 전체 주소를 인식하는데 더 많은 ASR 처리가 필요할 수 있다. 축약된 음성 발언이 긴 음성 발언을 대체할 수 있게 함으로써, 사용자/디바이스 상호작용의 전체 지속 시간이 줄어들 수 있고, 이에 따라 사용자/디바이스 상호작용의 연장된 지속 시간에 의해 소비될 전력 및/또는 기타 리소스를 보존할 수 있다. 예를 들어, 사용자/디바이스 상호작용이 보다 빨리 결론지어질 수 있으며, 이는 디바이스가 상호작용 중단에 기초하여 더 빠르게 감소된 전력 상태로 전환할 수 있도록 한다.
또한, 본 명세서에 개시된 구현은 사용자가 음성 발언을 제공할 수 있고 입력 필드에 대해 인식된 텍스트를 제공해야 하는 발언들과 입력 필드에 대해 대체 컨텐츠를 제공해야 하는 발언들을 자동으로(예를 들어, 추가 사용자 입력을 요구하지 않고) 구별하는 공통 인터페이스를 제공한다. 이것은 "구술(받아쓰기) 모드"와 "대체 컨텐츠" 모드 사이를 교대하기 위해 추가 사용자 인터페이스 입력이 필요하지 않은 개선된 인간-컴퓨터 상호작용을 발생할 수 있다. 다시 말해, 사용자는 동일한 인터페이스를 사용하여, 해당 입력 필드에 삽입하기 위해 해당 인식 텍스트가 제공될 음성 발언을 제공할 뿐만 아니라 해당 입력 필드에 삽입하기 위해 결정되고 제공되는 대체 컨텐츠에 기초하여 음성 발언을 제공할 수 있습니다. 음성 발언의 "구술" 또는 음성 발언에 기초한 "대체 컨텐츠"가 제공되는지 여부는 본 명세서에 설명된 하나 이상의 고려 사항에 기초할 수 있으며, 어떤 것이 제공되어야 하는지 명시적으로 나타내는 임의의 명시적인 사용자 입력이 필요 없이 자동으로 결정될 수 있다.
또한, 별도의 애플리케이션 및/또는 인터페이스와의 연장된 사용자 상호작용을 통해 대체 컨텐츠를 식별하기 위해 별도의 애플리케이션 및/또는 별도의 인터페이스가 컴퓨팅 디바이스에서 실행(launch)될 필요가 없다. 예를 들어, "당신의 비행기는 내일 언제 출발/도착합니까"라는 메시지에 응답할 때, 사용자는 메시지 읍답(reply) 입력 필드에 대해 키보드 애플리케이션이 활성화되어 있을 때 "나의 내일 비행에 대한 세부 정보(details)를 삽입해"라는 음성 발언을 제공할 수 있다. 이에 응답하여, 사용자의 항공편 세부 정보(예를 들어, 출발 공항 및 출발 시간, 도착 공항 및 도착 시간)를 포함하는 대체 컨텐츠가 인식된 텍스트 "나의 내일 비행에 대한 세부 정보를 삽입해" 대신에 응답 입력 필드에 키보드 애플리케이션에 의한 삽입을 위해 결정되어 키보드 애플리케이션에 제공될 수 있다. 이러한 대체 컨텐츠는 사용자가 별도의 애플리케이션을 열고 별도의 애플리케이션을 사용하여 항공편 정보를 검색하고 항공편 정보를 복사한 다음 키보드 애플리케이션으로 돌아와 항공편 정보를 삽입할 필요 없이 결정되어 삽입을 위해 제공된다. 별도의 애플리케이션 및/또는 인터페이스와의 사용자 상호 작용의 필요성을 제거하면 인간-컴퓨터 상호 작용의 지속 시간을 줄이고 및/또는 별도의 애플리케이션이 실행되는 것을 방지할 수 있으므로 다양한 컴퓨터 리소스를 절약할 수 있다.
다양한 구현에서, 대체 컨텐츠는 자동화 어시스턴트를 사용하여 인식 텍스트의 추가 처리에 기초하여 생성된 자동화 어시스턴트 컨텐츠일 수 있다. 예를 들어 인식(된) 텍스트는 자동화 어시스턴트의 NLU(자연어 이해) 엔진을 사용하여 처리되어, 자동화된 어시스턴트 의도 및/또는 그 의도에 대한 값, 그리고 의도 및/또는 값(들)에 응답하는 것에 기초하여 결정된 대체 콘텐츠를 결정할 수 있다.
일부 구현에서, 자동화 어시스턴트는 키보드 애플리케이션과 별개인 애플리케이션일 수 있고, 자동화 어시스턴트는 애플리케이션 프로그래밍 인터페이스(API) 및/또는 임의의 다른 소프트웨어 인터페이스를 통해 키보드 애플리케이션과 인터페이스할 수 있다. 키보드 애플리케이션은 키보드 인터페이스를 제공할 수 있다. 선택적으로, 키보드 인터페이스는 사용자가 예를 들어 키보드 인터페이스에 렌더링된 키보드 엘리먼트를 탭함으로써 자동화된 어시스턴트를 호출할 수 있게 한다. 추가적으로 또는 대안적으로, 자동화 어시스턴트는 키보드 인터페이스가 표시되고 선택적으로 다른 조건(들)이 충족되는(예를 들어, 음성 활동이 검출되고 있음) 것에 응답하여 자동으로 호출될 수 있고 및/또는 자동화 어시스턴트는 웨이크업 구문(예를 들어, "OK 어시스턴트", "어시스턴트" 등), 특정 터치 제스처 및/또는 특정 터치-프리 제스처(들)의 검출과 같은 다른 자동화 어시스턴트 호출 사용자 입력(들)에 응답하여 호출될 수 있다. 자동화 어시스턴트가 호출되고 키보드가 다른 애플리케이션(예를 들어, 제3자 애플리케이션)의 GUI에 표시되면 사용자는 음성 발언을 제공할 수 있다. 음성 발언은 호출되는 자동화 어시스턴트에 응답하여 자동화 어시스턴트에 의해 처리될 수 있으며, 자동화 어시스턴트는 음성 발언의 구술(받아쓰기)이 제공되어야 하는지 또는 음성 발언에 기초한 대체 컨텐츠가 제공되어야 하는지 여부를 결정할 수 있다. 그런 다음 자동화 어시스턴트는 구술 또는 대체 컨텐츠가 키보드에 의해 해당 입력 필드에 삽입되게 하는 커맨드를 키보드 애플리케이션에 제공할 수 있다. 다시 말해, 자동화 어시스턴트는 받아쓰기 또는 대체 컨텐츠가 제공되어야 하는지 여부를 결정한 다음, 키보드 애플리케이션에 대응하는 컨텐츠만 (예를 들어, 키보드 애플리케이션 API 또는 운영 체제 API를 통해) 통신할 수 있다. 예를 들어, 키보드 인터페이스가 렌더링되고 있고 자동화 어시스턴트가 호출될 때 "내 주소"와 같은 음성 발언 제공은 음성 발언이 제공된 컨텍스트에 기초하여, 자동화 어시스턴트가 키보드 애플리케이션에 커맨드를 제공하도록 할 수 있다. 커맨드는 예를 들어 키보드 애플리케이션이 음성 발언의 직역적 해석인 텍스트(예를 들어, "내 주소")를 제공하거나 키보드에 의해 다른 컨텐츠가 출력되도록 하는 다른 해석을 제공할 수 있다(예를 들어, "1111 웨스트 무하마드 알리 대로"). 이러한 방식으로 자동화 어시스턴트가 키보드 애플리케이션과 인터페이스하도록 허용하면 모든 자동화 어시스턴트 기능을 메모리로 인스턴스화하거나 자동화 어시스턴트 기능을 키보드 애플리케이션 자체에 포함할 필요가 없는 더 가벼운 키보드 애플리케이션을 제공한다(따라서 키보드 애플리케이션에 의해 필요한 저장 공간을 감소시킴). 오히려, 키보드 애플리케이션은 자동화 어시스턴트 기능을 효과적으로 나타내기 위해 자동화된 어시스턴트의 API 호출에 의존할 수 있다. 또한, 자동화 어시스턴트가 음성 발언의 구술을 제공할지 또는 음성 발언에 기초한 대체 컨텐츠를 제공할지 여부를 결정할 수 있도록 하고, 키보드 애플리케이션에 해당 데이터를 전달하여 이 향상된 기능을 다양한 상이한 키보드 애플리케이션과 함께 사용할 수 있도록 한다. 키보드 애플리케이션 및/또는 기본 운영 체제가 키보드에 의해 삽입될 컨텐츠의 키보드 애플리케이션에 대한 프로비저닝을 지원하는 한, 자동화 어시스턴트는 다양한 키보드 애플리케이션 중 임의의 하나와 인터페이스할 수 있다.
본 명세서에 설명된 일부 추가 및/또는 대안적인 구현은 사용자가 사용자의 의도를 그대로 인용하지 않고 사용자가 자동화 어시스턴트에게 무엇을 하도록 지시할 수 있는지 추론할 수 있는 자동화 어시스턴트에 관한 것이다. 다시 말해서, 사용자는 사용자가 자동화 어시스턴트가 식별하도록 의도한 컨텐츠를 참조하는 음성 발언을 제공할 수 있고, 이에 응답하여 자동화 어시스턴트는 음성 발언의 단어에 대해 참조(된) 컨텐츠를 사용하여 특정 동작들이 수행되도록 할 수 있다. 예를 들어, 사용자는 사용자에 의해 액세스되는 웹사이트를 운영하는 다른 사람과 같은 엔티티가 제공하는 특정 서비스에 가입하기 위해 웹 브라우저와 같은 애플리케이션과 상호 작용할 수 있다. 사용자가 애플리케이션의 인터페이스에서 렌더링되는 특정 입력 필드를 선택하면, 키보드 인터페이스 및/또는 자동화 어시스턴트가 초기화될 수 있다. 그런 다음 사용자는 특정 컨텐츠가 자신이 선택한 특정 입력 필드에 포함되도록 하기 위해 음성 발언을 제공하도록 선택할 수 있다.
일부 구현에서, 사용자는 자동화 어시스턴트로 지시되고 사용자가 입력 필드에 포함시키고자 하는 컨텐츠를 참조하는 음성 발언을 제공할 수 있지만, 컨텐츠를 그대로 인용하지 않는다. 예를 들어, 입력 필드가 사용자가 속성 주소를 입력 필드에 제공하기 위한 주소 필드인 경우, 사용자는 입력 필드가 사용자가 위치한 곳, 즉 집 주소(예를 들어, 2812 First St., Lagrange, KY)가 되도록 할 수 있다. 집 주소를 입력 필드에 포함시키기 위해, 사용자는 "내가 있는 곳, 어시스턴트"와 같은 음성을 제공할 수 있다. 음성 발언을 수신하는 것에 응답하여, 음성 발언을 특징짓는 오디오 데이터는 음성 발언의 직역적 컨텐츠(예를 들어, "내가 있는 곳...")의 하나 이상의 부분을 입력 필드에 포함시킬지 또는 사용자가 참조할 수 있는 다른 컨텐츠를 포함시킬지 여부를 결정하기 위해 처리될 수 있다. 이러한 결정을 내리기 위해, 사용자가 음성 발언을 제공한 컨텍스트를 특징짓는 컨텍스트 데이터가 처리될 수 있다.
일부 구현에서, 컨텍스트 데이터는 사용자가 액세스하고 있는 인터페이스와 관련하여 저장된 메타 데이터를 특징화할 수 있다. 예를 들어, 메타 데이터는 입력 필드를 집 번호(예를 들어, "2812")가 필요한 "주소" 필드로 특징화할 수 있다. 따라서, "내가 있는 곳, 어시스턴트"라는 음성 발언을 수신하는 것에 응답하여, 사용자가 명시적으로 임의의 숫자를 인용했는지 여부를 결정하기 위해 오디오 데이터가 처리될 수 있다. 음성 발언에 숫자가 없는 것으로 결정되는 경우, 다른 컨텐츠(예를 들어, 음성 발언의 적어도 일부의 직역적 인용인 컨텐츠를 포함하지 않음)를 입력 필드에 포함시킬지 여부를 결정하기 위해 오디오 데이터 및/또는 컨텍스트 데이터가 처리될 수 있다. 일부 구현에서, 오디오 데이터는 입력 필드에 포함하기 위해 다른 컨텐츠가 보완되고 고려될 수 있도록 음성 발언의 동의어 해석을 식별하도록 처리될 수 있다. 추가적으로 또는 대안적으로, 오디오 데이터는 사용자가 유사한 음성 발언에서 및/또는 컴퓨팅 디바이스 및/또는 애플리케이션에 대한 임의의 다른 입력을 통해 의도된 컨텐츠를 이력적으로 참조했는지 여부를 결정하기 위해 처리될 수 있다. 예를 들어, 오디오 데이터는 자동화 어시스턴트에 의해 수행될 수 있는 다른 액션을 고려하여 처리될 수 있다.
예를 들어, 자동화 어시스턴트는 사용자가 "어시스턴트, 버스가 내 위치에 언제 도착하지?"와 같은 음성 발언을 제공할 때 내비게이션 데이터를 렌더링하는 기능을 포함할 수 있다. 음성 발언에 응답하여, 자동화 어시스턴트는 사용자의 현재 위치를 포함하는 대중 교통 경로를 식별하기 위해 사용자의 현재 위치의 주소를 식별할 수 있다. 유사하게, 자동화 어시스턴트는 자동화 어시스턴트가 파라미터로서 사용자의 현재 주소를 포함하는 커맨드를 사용하게 하기 위해 사용자가 "내 위치"라는 문구를 사용한 이전 인스턴스에 적어도 기초하여, 그 음성 발언이 주소를 참조할 수 있음을 결정하기 위해 음성 발언의 자연어 컨텐츠인 "내 위치"를 처리할 수 있다. 따라서, 음성 발언에 응답하여, 자동화 어시스턴트를 통해 식별된 다른 컨텐츠는 사용자의 현재 위치 주소(예를 들어, 2812 First St., Lagrange, KY)를 포함할 수 있다. 식별된 다른 컨텐츠는 입력 필드가 일정량의 숫자(예를 들어, 집 번호)를 갖도록 의도되었음을 나타내는 컨텍스트 데이터에 기초하여 추가 처리될 수 있다. 따라서, 다른 컨텐츠는 숫자가 있고 입력 필드를 충족하고, 음성 발언의 직역적 해석의 하나 이상의 부분보다 적어도 더 만족스럽기 때문에, 다른 컨텐츠는 입력 필드에 포함될 수 있다(예를 들어, "주소 입력 : 2812 First St., Lagrange, KY).
일부 구현에서, 사용자는 선택된 입력 필드에 대한 입력을 위한 부분 및 자동화 어시스턴트에 대한 질의로서 제공되는 다른 부분을 포함하는 음성 발언을 제공할 수 있다. 예를 들어, 사용자는 제3자 애플리케이션과 상호 작용하고 입력 필드에 텍스트를 입력하기 위해 입력 필드를 선택할 수 있다. 입력 필드를 선택하는 것에 응답하여, 키보드 인터페이스는 제3자 애플리케이션의 그래픽 사용자 인터페이스(GUI)에 렌더링될 수 있다. 키보드 인터페이스는 사용자에 의해 선택될 때 자동화된 어시스턴트가 호출되게 하는 GUI 엘리먼트를 포함할 수 있다. 예를 들어, 사용자가 최근에 수신된 문자 메시지(예를 들어, "잭: 언제 영화 보러 가니?")에 응답을 시도할 때, 사용자는 키보드 인터페이스가 컴퓨팅 디바이스의 디스플레이 패널에 나타나게 하기 위해 텍스트 응답 필드를 선택할 수 있다. 그런 다음 사용자는 자동화 어시스턴트가 호출되게 하기 위해 키보드 인터페이스로 렌더링된 GUI 엘리먼트(예를 들어, 마이크 그래픽)를 선택할 수 있다. 자동화 어시스턴트가 호출되면, 사용자는 수신된 문자 메시지에 응답하는 컨텐츠 및 자동화 어시스턴트에 문의하는 컨텐츠를 포함하는 음성 발언(예를 들어, "나 지금 가고 있어. 또한 날씨가 어때, 어시스턴트?")을 제공할 수 있다.
음성 발언을 수신하는 것에 응답하여, 음성 발언을 특징짓기 위해 생성된 오디오 데이터는 하나 이상의 음성-텍스트 변환 모델을 사용하여 처리될 수 있다. 처리 결과 텍스트는 모든 텍스트를 선택된 입력 필드에 포함할지, 텍스트 중 일부를 입력 필드에 포함할지, 및/또는 결과 텍스트의 하나 이상의 부분에 기초하여 다른 컨텐츠를 생성할지 여부를 결정하기 위해 추가로 처리될 수 있다. 일부 구현에서, 결과 텍스트는 선택된 입력 필드로 지시되는 것으로 또는 자동화 어시스턴트에 대한 질의로서 제공되는 것으로 음성 발언의 일부를 분류할 수 있는 하나 이상의 모델을 사용하여 처리될 수 있다. 추가적으로 또는 대안적으로, 결과 텍스트의 처리는 사용자가 음성 발언을 제공한 컨텍스트를 특징짓는 컨텍스트 데이터를 사용하여 수행될 수 있다. 예를 들어, 사용자의 사전 허가가 있는 경우, 컨텍스트 데이터는 사용자의 이전 입력, 현재 활성 메시지 인터페이스를 통해 액세스할 수 있는 텍스트, 선택된 입력 필드 및/또는 제3자 애플리케이션을 통해 액세스할 수 있는 임의의 다른 입력 필드 및/또는 컴퓨팅 디바이스의 별도 애플리케이션과 관련하여 저장된 메타 데이터에 기초할 수 있다. 결과 텍스트의 일부의 처리는 텍스트의 일부를 선택된 입력 필드에 적합하고 및/또는 자동화 어시스턴트에 대한 쿼리로 적합하지 않은 것으로 특징짓는 바이어스를 생성할 수 있다. 예를 들어, 결과 텍스트의 일부는 자동화 어시스턴트에 대한 질의로서 적합하지 않은 것으로 지정될 수 있지만, 컨텍스트 데이터에 기초하여, 선택된 입력 필드에 포함하기에 적합한 것으로서 지정될 수 있다.
결과 텍스트가 처리되었을 때, 텍스트의 일부는 선택된 입력 필드에 포함하기 위해 지정될 수 있고 텍스트의 다른 부분은 자동화 어시스턴트에 대한 질의로 지정될 수 있다. 예를 들어, 텍스트의 제1 부분에는 선택된 입력 필드에 포함될 수 있는 "나 지금 가고 있어"가 포함될 수 있고, 텍스트의 제2 부분에는 자동화 어시스턴트를 통해 질의로서 처리될 수 있는 "또한 날씨가 어때, 어시스턴트"가 포함될 수 있다. 따라서, 자동화 어시스턴트는 텍스트의 제1 부분이 선택된 입력 필드에 포함되도록 하고, "내일 날씨는 흐리고 최고 기온은 72, 최저 기온은 65입니다"와 같은 텍스트의 제2 부분에 대한 응답을 생성할 수 있다.
일부 구현에서, 텍스트의 제1 부분(예를 들어, "나는 지금 가고 있어")이 메시지에 응답하기 위해 텍스트 필드에 포함되었을 때, 자동화 어시스턴트는 사용자가 메시지를 전송하기를 원하는지 확인을 기다릴 수 있다. 예를 들어, 텍스트의 제1 부분은 수신 메시지에 응답하기 위한 텍스트 필드를 차지할 수 있으며, 사용자는 메시지가 전송되도록 하기 위해 "메시지 전송(Send message)"과 같은 음성 발언을 자동화 어시스턴트에 제공할 수 있다. 일부 구현에서, 텍스트 필드는 제3자 메시징 애플리케이션의 인터페이스로서 렌더링될 수 있고, 따라서 "메시지 전송"이라는 음성 발언을 수신하는 것에 응답하여, 자동화 어시스턴트는 제3자 메시징 애플리케이션과 통신하여 메시지가 전송되도록 할 수 있다.
대안적으로, 또는 추가적으로, 사용자는 자동화 어시스턴트에게 작성 메시지의 내용을 수정하도록 명령함으로써 자동화 어시스턴트에게 메시지를 전송하도록 지시하기 전에 메시지를 수정하도록 선택할 수 있다. 예를 들어, 자동화 어시스턴트가 메시징 애플리케이션의 텍스트 필드에 "나 지금 가고 있어"라는 음성 발언의 컨텐츠를 포함하도록 했을 때, 사용자는 "마지막 단어 삭제", " "마지막 단어를 '15분 이내'로 대체" 또는 "지금을 곧으로 대체"와 같은 후속 음성 발언을 발행(issue)할 수 있다. 이에 응답하여, 자동화 어시스턴트는 사용자로부터의 후속 음선 발언에 따라 작성 메시지의 컨텐츠를 수정하기 위해 메시징 애플리케이션과 상호작용할 수 있다. 일부 구현에서, 자동화 어시스턴트는 메시징 애플리케이션을 실행하고 있는 컴퓨팅 디바이스의 운영 체제에 대한 하나 이상의 입력을 통해 컨텐츠에 대한 변경을 실행할 수 있다. 대안적으로, 또는 추가적으로, 자동화 어시스턴트는 자동화 어시스턴트가 메시징 애플리케이션을 제어할 수 있게 하는 애플리케이션 프로그래밍 인터페이스(API)를 통해 메시징 애플리케이션과 인터페이스함으로써 컨텐츠에 대한 변경을 실행할 수 있다.
추가적으로, 또는 대안적으로, 자동화 어시스턴트는 키보드 애플리케이션과 인터페이스하기 위한 API를 통해 컨텐츠에 대한 변경을 실행할 수 있다. 키보드 애플리케이션은 사용자가 컨텐츠를 편집하고, 검색을 실행하고, 및/또는 적어도 별도의 키보드 애플리케이션을 통해 초기화될 수 있는 제3자 애플리케이션의 임의의 다른 기능을 수행할 수 있도록 하기 위해, 제3자 메시징 애플리케이션과 같은 제3자 애플리케이션과 상호 작용하는 기능을 가질 수 있다. 따라서, 키보드 API는 자동화 어시스턴트가 제3자 애플리케이션의 이러한 기능의 실행을 초기화하기 위해 키보드 애플리케이션을 제어할 수도 있다. 따라서, 작성 메시지의 컨텐츠를 편집하기 위한 후속 음성 발언(예를 들어, "단어 '지금' 삭제")을 수신하는 것에 응답하여, 자동화 어시스턴트는 작성 메시지의 내용에서 "지금"이라는 단어가 삭제되도록 하기 위해 키보드 API를 통해 키보드 애플리케이션과 상호 작용할 수 있다. 이후, 사용자는 사용자가 키보드 GUI의 "전송" 버튼을 탭한 것처럼 "전송" 커맨드가 메시징 애플리케이션으로 전달되도록 하기 위해 자동화 어시스턴트가 키보드 API와 인터페이스하도록 할 수 있는 "메시지 전송"이라는 음성 발언을 제공함으로써 메시지가 전송되도록 할 수 있다.
일부 구현에서, 사용자가 이미지, 이모지(emoji) 또는 기타 미디어와 같은 추가 컨텐츠를 작성 메시지에 추가하기로 선택해야 하는 경우, 사용자는 "'좋아요' 추가(Add a 'thumbs up'")와 같은 후속 음성 발언을 제공할 수 있다. 이에 응답하여, 자동화 어시스턴트는 작성 메시지에 삽입하기에 적합한 그래픽을 식별하기 위해 메시징 애플리케이션 및/또는 운영 체제에 의해 제공되는 미디어 데이터를 검색하기 위해 "좋아요"와 같은 후속 음성 발언의 컨텐츠를 사용할 수 있다. 대안적으로 또는 추가적으로, 사용자는 자동화 어시스턴트가 후속 음성 발언의 내용에 대응할 수 있는 "GIF"에 대한 검색 결과를 렌더링하게 할 수 있다. 예를 들어, "'좋아요' GIF를 보여줘"와 같은 후속 음성 발언을 수신하는 것에 응답하여, 자동화된 어시스턴트는 운영 체제 및/또는 메시징 애플리케이션이 키보드 GUI의 검색 인터페이스를 열도록 할 수 있으며, "좋아요"의 검색 질의가 검색 인터페이스에서 실행되도록 할 수 있다. 그런 다음 사용자는 키보드 GUI의 특정 위치를 탭하거나 사용자의 원하는 GIF를 설명하는 다른 음성 발언을 발행함으로써 원하는 GIF를 선택할 수 있다. 예를 들어, 사용자는 자동화 어시스턴트가 검색 결과에 나열된 "세 번째" GIF를 선택하고 "세 번째" GIF를 작성 메시지의 컨텐츠에 포함시키도록 하기 위해 "세 번째 것"과 같은 다른 음성 발언을 제공할 수 있다. 그 후, 사용자는 "메시지 전송"이라는 음성 발언을 발행하여 메시지 전송하기를 선택할 수 있다.
위의 설명은 본 개시의 일부 구현의 개요로서 제공된다. 이러한 구현 및 다른 구현에 대한 추가 설명은 아래에서 더 자세히 설명된다.
다른 구현은 위에서 및/또는 본 문서의 다른 곳에서 설명된 방법 중 하나 이상과 같은 방법을 수행하기 위해 하나 이상의 프로세서(예를 들어, 중앙 처리 장치(들)(CPU(s)), 그래픽 처리 장치(들)(GPU(s) 및/또는 텐서 처리 장치(들)(TPU(s))에 의해 실행 가능한 명령들을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 또 다른 구현은 위에서 및/또는 본 명세서의 다른 곳에서 설명된 방법 중 하나 이상과 같은 방법을 수행하기 위해 저장된 명령들을 실행하도록 동작할 수 있는 하나 이상의 프로세서를 포함하는 하나 이상의 컴퓨터의 시스템을 포함할 수 있다.
전술한 개념의 모든 조합과 본 명세서에 더 자세히 설명된 추가 개념은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야 한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 주제의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다.
도 1a, 도 1b, 및 도 1c는 컨텐츠를 직역적으로 인용하거나 인용하지 않고 입력 필드에 포함될 컨텐츠에 대한 참조를 인용하는 사용자의 뷰를 도시한다.
도 2a 및 도 2b는 이미지 컨텐츠를 명시적으로 선택하지 않고 입력 필드에 포함될 이미지 컨텐츠에 대한 참조를 인용하는 사용자의 뷰를 도시한다.
도 3은 음성 발언 부분의 직역적 해석을 입력 필드에 포함하거나 및/또는 동의어 컨텐츠를 입력 필드에 포함할지 여부를 선택적으로 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 시스템을 도시한다.
도 4는 다수의 후보 해석들 중 하나를 입력 필드에 포함할지 여부를 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 방법을 도시한다.
도 5a 및 도 5b는 사용자가 애플리케이션 인터페이스를 통해 선택한 입력 필드에 직역적 해석 및/또는 참조 컨텐츠를 포함할지 여부를 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 방법을 도시한다.
도 6은 예시적인 컴퓨터 시스템의 블록도이다.
도 1a, 도 1b, 도 1c는 컨텐츠를 직역적으로 인용하거나 인용하지 않고 입력 필드에 포함될 컨텐츠에 대한 참조를 인용하는 사용자(102)의 뷰(100), 뷰(140) 및 뷰(160)를 각각 도시한다. 사용자(102)는 초기에 온도 조절기 애플리케이션(108)이 저전력 모드에 따라 동작할 스케줄(일정)(110)을 설정하기 위해 온도 조절기 애플리케이션(108)과 같은 애플리케이션과 상호 작용할 수 있다. 예를 들어, 사용자(102)는 온도 조절기 애플리케이션(108)의 스케줄(110) 인터페이스의 특정 입력 필드(entry field)를 선택하기 위해 자신의 손(118)을 사용하여 온도 조절기 애플리케이션(108)과 상호 작용할 수 있다. 입력 필드를 선택하는 사용자(102)에 응답하여, 온도 조절기 애플리케이션(108), 자동화 어시스턴트(130), 및/또는 컴퓨팅 디바이스(104)의 운영 체제는 선택적으로 키보드 인터페이스(112)가 컴퓨팅 디바이스(104)의 디스플레이 패널(106)에 렌더링되게 할 수 있다.
선택된 입력 필드에 포함될(incorporated) 컨텐츠를 제공하기 위해, 사용자(102)는 키보드 인터페이스(112)를 통해 컨텐츠를 타이핑할 수 있고 및/또는 컨텐츠를 포함 및/또는 참조하는 음성 발언을 제공할 수 있다. 예를 들어, 도 1a에 제공된 바와 같이, 사용자(102)는 "Tomorrow's date, Assistant?"와 같은 음성 발언(116)를 제공할 수 있다. 음성 발언에 기초하여 생성된 오디오 데이터는 후보 컨텐츠(122)를 생성하기 위해 컴퓨팅 디바이스(104)의 데이터 엔진(126)에서 처리될 수 있다. 후보 컨텐츠(122)는 어시스턴트 데이터(120), 애플리케이션 데이터(124), 및/또는 자동화 어시스턴트(130)에 의해 액세스될 수 있는 임의의 다른 데이터에 기초하여 생성될 수 있다. 일부 구현에서, 애플리케이션 데이터(124)는 선택된 입력 필드가 날짜를 수신하도록 포맷되었음을 나타낼 수 있다. 따라서, 후보 컨텐츠(122)가 데이터 엔진(126)에 의해 생성될 때, 데이터 엔진(126)은 다른 후보 컨텐츠(122)에 대한 날짜로 포맷된 후보 컨텐츠(122)를 선택하는 쪽으로 바이어싱될 수 있다.
도 1b는 메시징 애플리케이션(146)의 선택된 입력 필드(예를 들어, 새로운 메시지(148))에 컨텐츠를 포함하기 위해 메시징 애플리케이션(146)과 상호 작용하는 사용자의 뷰(140)를 도시한다. 또한, 자동화 어시스턴트(130)는 동일한 음성 발언(예를 들어, "Tomorrow's date")이 제공되고 있음에도 불구하고 도 1a에서 생성된 컨텐츠(예를 들어, "3/14/19")와 동일한 입력 필드(150)에 대한 컨텐츠를 생성할지 또는 상이한 컨텐츠를 생성할지 여부를 결정하기 위해 사용자(102)로부터의 음성 발언(142)를 추가로 처리할 수 있다. 예를 들어, 음성 발언(142)으로부터 생성된 오디오 데이터는 입력 필드(150)에 포함시키기에 적합한 컨텐츠를 결정하기 위해 컨텍스트 데이터와 조합하여 처리될 수 있는 텍스트로 변환될 수 있다. 예를 들어, 텍스트는 음성 발언이 제공된 컨텍스트에 적어도 부분적으로 기초하여 텍스트에 대한 후보 해석(들)을 제공하도록 트레이닝된 하나 이상의 기계 학습 모델을 사용하여 처리될 수 있다. 그 후, 각 후보 해석은 주어진 컨텍스트에서 가장 적합한 후보 해석을 식별하기 위해 처리될 수 있다.
예를 들어, 도 1a의 상황에 기초하여 생성된 컨텍스트 데이터는 사용자(102)가 온도 조절기를 제어하기 위한 스케줄(110)에 날짜를 제공하기 위해 온도 조절기 애플리케이션(108)에 액세스하고 있음을 나타낼 수 있다. 게다가, 컨텍스트 데이터는 필드가 날짜를 특징짓는 적어도 일부 양의 숫자 입력을 수신해야 한다는 제한과 같은 필드의 제한을 특징지을 수 있다. 따라서, 숫자를 포함하는 자동화 어시스턴트(130)에 의해 생성된 임의의 후보 해석은 숫자를 포함하지 않는 후보 해석보다 우선시될 수 있다. 게다가, 도 1b의 상황에 기초하여 생성된 컨텍스트 데이터는 사용자(102)가 이전에 수신된 메시지(예를 들어, "아이린: "무엇을 위한 티켓이야?")에 응답 메시지를 제공하기 위해 메시징 애플리케이션(146)에 액세스하고 있음을 나타낼 수 있다. 이 컨텍스트 데이터는 메시징 애플리케이션(146)의 상태, 메시징 애플리케이션(146)의 인터페이스에 렌더링되는 컨텐츠(예를 들어, "아이린"으로부터의 이전 메시지 및/또는 다른 이전 메시지(들)), 및/또는 컴퓨팅 디바이스(104)를 통해 메시지에 액세스하는 사용자의 상황과 관련된 임의의 다른 정보를 특징지을 수 있다.
일부 구현에서, 음성 발언(142)의 후보 해석은 "내일의 데이트"일 수 있고, 다른 추가 컨텐츠는 음성 발언(142)의 텍스트에 기초하여 생성될 수 있다. 후보 해석 및 다른 컨텐츠를 포함할 수 있는 후보 컨텐츠(144)는 입력 필드(150)에 포함하기에 가장 적합한 컨텐츠를 식별하도록 처리될 수 있다. 예를 들어, 후보 컨텐츠(144)의 입력(entry)은 "3/14/19"를 포함할 수 있으며, 이는 사용자(102)가 메시징 애플리케이션(146)에 액세스하는 날의 다음 날의 숫자 표현일 수 있다. 후보 컨텐츠(144)는 음성 발언(142)를 특징짓는 오디오 데이터를 처리하는데 사용되는 하나 이상의 기계 학습 모델과 다를 수 있는 하나 이상의 기계 학습 모델을 사용하여 처리될 수 있다. 후보 컨텐츠(144)의 처리에 기초하여, 후보 해석 "내일의 ㄷ데뎅데이트"가 임의의 다른 후보 컨텐츠보다 우선될 수 있고, 후보 해석이 입력 필드(150)에 포함될 수 있다. 이러한 방식으로 음성 발언을 처리하면 사용자가 음성 발언의 각 부분의 목적을 보다 명확하게 지정해야 하는 상황에서 낭비될 수 있는 계산 리소스를 보존할 수 있다. 위에서 언급한 바와 같이, "3/14/19"의 후보 컨텐츠(144) 대신 "내일의 데이트"의 후보 해석을 제공하기 위해 결정하는데 사용되는 컨텍스트 정보는 "아이린"으로부터의 이전 메시지를 포함할 수 있다. 일부 구현에서 아이린의 메시지가 대신 예를 들어 "또 무슨 데이트(what date again)?"이었다면, "3/4/29"이라는 후보 컨텐츠(144)가 "내일의 데이트"의 후보 해석 대신 제공될 수 있다.
일부 구현에서, 도 1c의 뷰(160)에 제공된 바와 같이, 음성 발언(142)의 자연어 컨텐츠는 자연어 컨텐츠가 자동화 어시스턴트 커맨드를 구현하는지 여부를 결정하기 위해 처리될 수 있다. 예를 들어, 자연어 컨텐츠는 특정 어시스턴트 액션에 대응하는 의도가 자연어 컨텐츠에 구현되어 있는지 여부를 결정하기 위해 자연어 이해 엔진을 사용하여 처리될 수 있다. 자연어 컨텐츠가 의도를 구현하는 경우, 자동화 어시스턴트는 특정 어시스턴트 액션의 수행을 초기화할 수 있다(예를 들어, 입력 필드(150)에 "삽입"될 날짜를 재호출). 그러나, 의도가 자연어 컨텐츠에 구현되지 않은 경우, 자연어 컨텐츠의 하나 이상의 부분이 입력 필드(150)에 포함될 수 있다. 일부 구현에서, 자연어 컨텐츠 및/또는 대안적으로 자연어 컨텐츠를 입력 필드(150)에 포함하기로 한 결정은 입력 필드(150)의 하나 이상의 속성(예를 들어, 입력 필드로부터 임계 거리 내에 있는 HTML, XML, 텍스트 및/또는 그래픽)에 기초할 수 있다.
도 1c에 도시된 바와 같이, 사용자(102)는 자신의 컴퓨팅 디바이스(104)에서 새로운 메시지(148)를 수신하고 응답 메시지를 발신자(예를 들어, "아이린")에게 제공하기 위해 새로운 메시지(148)를 렌더링하는 인터페이스의 일부를 선택할 수 있다. 사용자(102)는 자동화 어시스턴트(130)가 어시스턴트 의도(예를 들어, "...응답", "...삽입"등)를 구현할 그들의 음성 발언에서 자연어를 생략함으로써 도 1b에 도시된 바와같이, "내일의 데이트"라는 구문을 포함하게 할 수 있다. 그러나, 자동 어시스턴트(130)가 대체 콘텐츠(예를 들어, 직역적 자연어 컨텐츠와 다를 수 있는 컨텐츠)를 포함하게 하기 위해, 사용자(102)는 음성 발언162)에 어시스턴트 의도를 포함할 수 있다. 예를 들어, 음성 발언(162)은 "내일의 데이트 삽입"이라는 커맨드를 포함할 수 있다. 후보 콘텐츠(164)는 음성 발언(162)에 응답하여 생성될 수 있고, 입력 필드(150)에 포함할 콘텐츠의 선택은 사용자(102)가 음성 발언(162)을 제공한 컨텍스트에 따라 바이어싱될 수 있다. 예를 들어, 자동화 어시스턴트(130)는 입력 필드(150)에 "내일의 데이트 삽입"이라는 직역적 컨텐츠를 삽입하는 것에서 벗어나 대신 식별된 의도(예를 들어, "삽입")와 별개인 자연어 컨텐츠(예를 들어, "내일의 데이트")의 대체 해석으로 바이어싱되도록 결정할 수 있다. 결과적으로, 적절한 추가 컨텐츠가 식별되어(예를 들어, 2019년 3월 15일) 입력 필드(150)에 포함될 수 있다.
도 2a 및 도 2b는 도 2b는 이미지 컨텐츠를 명시적으로 선택할 필요 없이 입력 필드에 포함될 이미지 컨텐츠에 대한 참조를 인용하는 사용자(202)의 각각의 뷰(200) 및 뷰(240)를 도시한다. 사용자(202)는 새로운 메시지(210)를 특정 연락처(예를 들어, 리차드)에게 전송하기 위해 메시징 애플리케이션(208)과 같은 애플리케이션과 초기에 상호작용할 수 있다. 예를 들어, 사용자(202)는 자신의 손(218)을 사용하여 메시징 애플리케이션(208)과 상호 작용하여 메시징 애플리케이션(208)의 그래픽 사용자 인터페이스의 특정 입력 필드(246)를 선택할 수 있다. 사용자(202)가 입력 필드를 선택하는 것에 응답하여, 메시징 애플리케이션(208), 자동화 어시스턴트(230) 및/또는 컴퓨팅 디바이스(204)의 운영 체제는 선택적으로 키보드 인터페이스(212)가 컴퓨팅 디바이스(204)의 디스플레이 패널(206)에서 렌더링되게 할 수 있다. 키보드 인터페이스(212)는 사용자에 의해 선택될 때 자동화 어시스턴트(230)를 호출하여 사용자가 상기 선택된 입력 필드(246)에 포함될 컨텐츠를 제공하는 것을 돕는 키보드 엘리먼트(232)를 포함할 수 있다. 자동화 어시스턴트(230)는 키보드 인터페이스(212)를 제공하는 키보드 애플리케이션과 별개의 애플리케이션일 수 있다. 그러나, 자동화 어시스턴트(230)는 사용자(202)에 의해 제공된 음성 발언에 기초하여 키보드 애플리케이션에 커맨드를 제공할 수 있다. 커맨드는 API, 프로세스간 통신, 및/또는 애플리케이션 간의 통신을 위한 임의의 다른 기술을 통해 자동화 어시스턴트(230)에 의해 키보드 애플리케이션에 제공될 수 있다. 일부 구현에서, 키보드 애플리케이션의 컨테이너는 메모리에서 인스턴스화되는 자동화 애플리케이션의 컨테이너와 동시에 메모리에서 인스턴스화될 수 있다.
선택된 입력 필드(246)에 포함될 컨텐츠를 제공하기 위해, 사용자(202)는 키보드 인터페이스(212)를 통해 컨텐츠를 타이핑할 수 있고 및/또는 컨텐츠를 포함 및/또는 참조하는 음성 발음을 제공할 수 있다. 예를 들어, 도 2a에 제공된 바와 같이, 사용자(202)는 메시지(예를 들어, "너희 집에 워 필요한 것 있니?")에 응답하여 음성 발언(216)를 제공할 수 있다. 음성 발언(216)은 "망치 이모지, 못 이모지, 그리고 또한, 어디서 트럭을 예약할 수 있니?"일 수 있다. 음성 발언에 기초하여 생성된 오디오 데이터는 후보 컨텐츠(222)를 생성하기 위해 컴퓨팅 디바이스(204)의 데이터 엔진(226)에서 처리될 수 있다. 후보 컨텐츠(222)는 어시스턴트 데이터(220), 애플리케이션 데이터(224), 및/또는 자동화 어시스턴트(230)에 의해 액세스될 수 있는 임의의 다른 데이터에 기초하여 생성될 수 있다. 일부 구현에서, 애플리케이션 데이터(224)는 선택된 입력 필드가 텍스트 및/또는 이미지를 수신하도록 포맷되었음을 나타낼 수 있다.
도 2b는 메시징 애플리케이션(208)의 선택된 입력 필드(246)에 컨텐츠를 포함하기 위해 메시징 애플리케이션(208)에서 응답 데이터(244)를 렌더링하는 컴퓨팅 디바이스(204)의 뷰(240)를 도시한다. 예를 들어, 메타데이터는 특정 이모지를 특징짓기 위해 컴퓨팅 디바이스(204)에 저장될 수 있다. 따라서, 음성 발언(216)를 수신하는 것에 응답하여, 컴퓨팅 디바이스(204)는 단어 "망치"가 특정 이모지와 관련하여 저장되고 단어 "못"이 특정 이모지와 관련하여 저장되어 있다고 결정할 수 있다. 각각의 이모지는 도 2b에 제공된 바와 같이 입력 필드(246)에 포함될 수 있다.
게다가, 자동화 어시스턴트(230)는 음성 발언(216)의 임의의 다른 부분이 자동화 어시스턴트(230)에 의해 응답되지 않았는지 여부를 결정하기 위해 사용자(202)로부터의 음성 발언(216)를 추가로 처리할 수 있다. 예를 들어, 음성 발언(216)로부터 생성된 오디오 데이터는 사용자(202)의 개별 의도에 대응하는 텍스트의 개별 부분을 식별하기 위해 파싱될 수 텍스트로 변환될 수 있다. 예를 들어, 텍스트는 사용자(202)로부터의 연속 입력으로서 함께 컴파일된 자연어 컨텐츠의 부분들을 분류하도록 트레이닝된 하나 이상의 기계 학습 모델을 사용하여 처리될 수 있다. 그 후, 텍스트의 특정 부분은 그 특정 부분에 대응하는 텍스트의 분류에 해당하는 다른 머신 러닝 모델(예를 들어, 이미지 설명 모델)을 사용하여 처리될 수 있고, 텍스트의 다른 부분은 텍스트의 다른 부분에 대응하는 텍스트의 다른 분류에 해당하는 다른 기계 학습 모델(예를 들어, 내비게이션 검색 모델)을 사용하여 처리될 수 있다.
예로서, 텍스트의 제1 부분은 처리될 때 도 2b의 입력 필드(246)에 묘사된 각 이모지에 대한 파일 위치와 같은 후보 컨텐츠(222)를 생성할 수 있는 "망치 이모지, 못 이모지"일 수 있다. 더욱이, 텍스트의 제2 부분은 "또한, 어디에서 작업 트럭을 예약할 수 있습니까?"일 수 있으며, 이는 처리될 때 "루이빌 트럭 회사"와 같은 다른 후보 컨텐츠(222)를 생성할 수 있다. 그런 다음 다른 후보 컨텐츠(122)는 자동화 어시스턴트(230)가 후보 컨텐츠(122)를 입력 필드(246)에 포함하는 것과 동시에 자동화 어시스턴트(230)의 출력(242)에 포함될 수 있다. 이러한 방식으로 음성 발언을 처리하면 사용자가 음성 발언의 각 부분의 목적을 보다 명확하게 지정해야 하는 상황에서 낭비될 수 있는 계산 리소스를 보존할 수 있다.
도 3은 음성 발언 부분의 직역적 해석을 입력 필드에 포함할지 및/또는 동의어 컨텐츠를 입력 필드에 포함할지 여부를 선택적으로 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 시스템(300)을 도시한다. 자동화 어시스턴트(304)는 컴퓨팅 디바이스(302) 및/또는 서버 디바이스와 같은 하나 이상의 컴퓨팅 디바이스에 제공되는 어시스턴트 애플리케이션의 일부로서 동작할 수 있다. 사용자는 마이크로폰, 카메라, 터치 스크린 디스플레이, 사용자 인터페이스 및/또는 사용자와 애플리케이션 사이에 인터페이스를 제공할 수 있는 임의의 다른 장치일 수 있는 어시스턴트 인터페이스(들)(320)을 통해 자동화 어시스턴트와 상호 작용할 수 있다. 예를 들어, 사용자는 자동화 어시스턴트(304)가 기능(예를 들어, 데이터 제공, 주변 디바이스 제어, 에이전트 액세스, 입력 및/또는 출력 생성 등)을 수행하게 하기 위해 어시스턴트 인터페이스(320)에 구두, 텍스트, 및/또는 그래픽 입력을 제공함으로써 자동화 어시스턴트(304)를 초기화할 수 있다. 컴퓨팅 디바이스(302)는 디스플레이 디바이스를 포함할 수 있는데, 이는 사용자가 터치 인터페이스를 통해 컴퓨팅 디바이스(302)의 애플리케이션(334)을 제어할 수 있도록 하는 터치 입력 및/또는 제스처를 수신하기 위한 터치 인터페이스를 포함하는 디스플레이 패널일 수 있다. 일부 구현에서, 컴퓨팅 디바이스(302)는 디스플레이 디바이스가 없을 수 있고, 이에 의해 그래픽 사용자 인터페이스 출력을 제공하지 않고 가청 사용자 인터페이스 출력을 제공할 수 있다. 또한, 컴퓨팅 디바이스(302)는 사용자로부터 발화된 자연 언어 입력을 수신하기 위한 마이크로폰과 같은 사용자 인터페이스를 제공할 수 있다. 일부 구현에서, 컴퓨팅 디바이스(302)는 터치 인터페이스를 포함할 수 있고 카메라가 없을 수 있지만, 선택적으로 하나 이상의 다른 센서를 포함할 수 있다.
컴퓨팅 디바이스(302) 및/또는 다른 제3자 클라이언트 디바이스는 인터넷과 같은 네트워크를 통해 서버 디바이스와 통신할 수 있다. 추가적으로, 컴퓨팅 디바이스(302) 및 임의의 다른 컴퓨팅 디바이스는 Wi-Fi 네트워크와 같은 근거리 통신망(LAN)을 통해 서로 통신할 수 있다. 컴퓨팅 디바이스(302)는 컴퓨팅 디바이스(302)에서 계산 자원을 보존하기 위해 계산 작업을 서버 디바이스로 오프로드할 수 있다. 예를 들어, 서버 디바이스는 자동화 어시스턴트(304)를 호스팅할 수 있고 및/또는 컴퓨팅 디바이스(302)는 하나 이상의 어시스턴트 인터페이스(320)에서 수신된 입력을 서버 디바이스로 전송할 수 있다. 그러나, 일부 구현에서, 자동화 어시스턴트(304)는 컴퓨팅 디바이스(302)에서 호스팅될 수 있고, 자동화 어시스턴트 동작들과 관련될 수 있는 다양한 프로세스들이 컴퓨팅 디바이스(302)에서 수행될 수 있다.
다양한 구현에서, 자동화 어시스턴트(304)의 모든 또는 더 적은 양태가 컴퓨팅 디바이스(302) 상에서 구현될 수 있다. 그 구현들 중 일부에서, 자동화 어시스턴트(304)의 양태는 컴퓨팅 디바이스(302)를 통해 구현되고 자동화 어시스턴트(304)의 다른 양태를 구현할 수 있는 서버 디바이스와 인터페이스할 수 있다. 서버 디바이스는 다중 스레드를 통해 복수의 사용자 및 관련 어시스턴트 애플리케이션에 선택적으로 서비스를 제공할 수 있다. 자동화 어시스턴트(304)의 모든 또는 더 적은 양태가 컴퓨팅 디바이스(302)를 통해 구현되는 구현에서, 자동화 어시스턴트(304)는 컴퓨팅 디바이스(302)의 운영 체제와 별개인(예를 들어, 운영 체제의 "위에(on-top)" 설치된) 애플리케이션일 수 있거나, 대안적으로 컴퓨팅 디바이스(302)의 운영 체제에 의해 직접 구현될 수 있다(예를 들어, 운영 체제의 애플리케이션으로 간주되지만 운영 체제와 통합됨).
일부 구현에서, 자동화 어시스턴트(304)는 컴퓨팅 디바이스(302) 및/또는 서버 디바이스에 대한 입력 및/또는 출력을 프로세싱하기 위해 다수의 상이한 모듈들을 사용할 수 있는 입력 처리 엔진(306)을 포함할 수 있다. 예를 들어, 입력 처리 엔진(306)은 음성 처리 엔진(308)을 포함할 수 있는데, 음성 처리 엔진은 어시스턴트 인터페이스(320)에서 수신된 오디오 데이터를 처리하여 오디오 데이터에 구현된 텍스트를 식별할 수 있다. 오디오 데이터는 컴퓨팅 디바이스(302)에서 계산 자원을 보존하기 위해 예를 들어 컴퓨팅 디바이스(302)로부터 서버 디바이스로 전송될 수 있다. 추가적으로 또는 대안적으로, 오디오 데이터는 컴퓨팅 디바이스(302)에서 독점적으로 처리될 수 있다.
오디오 데이터를 텍스트로 변환하는 프로세스는 음성 인식 알고리즘을 포함할 수 있는데, 이는 신경망, 및/또는 단어 또는 구문에 해당하는 오디오 데이터 그룹을 식별하기 위한 통계 모델을 사용할 수 있다. 오디오 데이터로부터 변환된 텍스트는 데이터 파싱 엔진(310)에 의해 파싱될 수 있고 커맨드 구문(들), 의도(들), 액션(들), 슬롯 값(들), 및/또는 사용자에 의해 지정된 임의의 다른 컨텐츠를 생성 및/또는 식별하기 위해 사용될 수 있는 텍스트 데이터로서 자동화 어시스턴트(304)에 이용 가능하게 될 수 있다. 일부 구현에서, 데이터 파싱 엔진(310)에 의해 제공되는 출력 데이터는 파라미터 엔진(312)에 제공되어 사용자가 자동화 어시스턴트 및/또는 자동화 어시스턴트(304)를 통해 액세스될 수 있는 애플리케이션 또는 에이전트에 의해 수행될 수 있는 특정 의도, 액션, 및/또는 루틴에 대응하는 입력을 제공했는지 여부를 결정할 수 있다. 예를 들어, 어시스턴트 데이터(338)는 서버 디바이스 및/또는 컴퓨팅 디바이스(302)에 저장될 수 있고, 자동화 어시스턴트(304)에 의해 수행될 수 있는 하나 이상의 액션뿐만 아니라 그 동작들을 수행하는데 필요한 파라미터를 정의하는 데이터를 포함할 수 있다. 파라미터 엔진(312)은 의도, 액션, 및/또는 슬롯 값에 대한 하나 이상의 파라미터를 생성할 수 있고, 그 하나 이상의 파라미터를 출력 생성 엔진(314)에 제공할 수 있다. 출력 생성 엔진(314)은 하나 이상의 파라미터를 사용하여 사용자에게 출력을 제공하기 위해 어시스턴트 인터페이스(320)와 통신할 수 있고, 및/또는 하나 이상의 애플리케이션(334)에 출력을 제공하기 위해 하나 이상의 애플리케이션(334)과 통신할 수 있다.
일부 구현에서, 자동화 어시스턴트(304)는 컴퓨팅 디바이스(302)의 운영 체제 "위에" 설치될 수 있는 애플리케이션일 수 있고 및/또는 그 자체가 컴퓨팅 디바이스(302)의 운영 체제의 일부(또는 전체)를 형성할 수 있다. 자동화 어시스턴트 애플리케이션은 온-디바이스 음성 인식, 온-디바이스 자연어 이해 및 온-디바이스 이행을 포함하거나 및/또는 이에 액세스할 수 있다. 예를 들어 온-디바이스 음성 인식은 컴퓨팅 디바이스(302)에 로컬로 저장된 종단 간 음성 인식 기계 학습 모델을 사용하여 (마이크로폰(들)에 의해 감지된) 오디오 데이터를 처리하는 온-디바이스 음성 인식 모듈을 사용하여 수행될 수 있다. 온-디바이스 음성 인식은 오디오 데이터에 존재하는 음성 발언(있는 경우)에 대해 인식(된) 텍스트를 생성한다. 또한, 예를 들어, 온-디바이스 자연어 이해(NLU)는 온-디바이스 음성 인식을 사용하여 생성된 인식 텍스트 및 선택적으로 NLU 데이터를 생성하기 위해 컨텍스트 데이터를 처리하는 온-디바이스 NLU 모듈을 사용하여 수행될 수 있다.
NLU 데이터는 음성 발언에 대응하는 의도(들) 및 선택적으로 의도(들)에 대한 파라미터(들)(예를 들어, 슬롯 값)를 포함할 수 있다. 온-디바이스 이행은 (온-디바이스 NLU로부터의) NLU 데이터 및 선택적으로 다른 로컬 데이터를 활용하는 온-디바이스 이행 모듈을 사용하여 수행되어, 음성 발언의 의도(및 선택적으로 의도에 대한 파라미터(들))를 해결(resolve)하기 위해 취해야 할 액션(들)을 결정할 수 있다. 여기에는 음성 발언에 대한 로컬 및/또는 원격 응답(예를 들어, 답변), 음성 발언에 기초하여 수행할 로컬로 설치된 애플리케이션(들)과의 상호작용(들), 음성 발언에 기초하여 사물 인터넷(IoT) 디바이스(들)에 (직접 또는 대응하는 원격 시스템(들)을 통해) 전송하는 커맨드(들), 및/또는 음성 발언에 기초하여 수행할 다른 해결 액션(들을 결정하는 것을 포함할 수 있다. 그런 다음 온-디바이스 이행은 음성 발언을 해결하기 위해 상기 결정된 액션(들)의 로컬 및/또는 원격 수행/실행을 시작할 수 있다.
다양한 구현에서, 원격 음성 프로세싱, 원격 NLU, 및/또는 원격 이행이 적어도 선택적으로 이용될 수 있다. 예를 들어, 인식된 텍스트는 원격 NLU 및/또는 원격 이행을 위해 원격 자동화 어시스턴트 컴포넌트(들)에 적어도 선택적으로 전송될 수 있다. 예를 들어, 인식된 텍스트는 온-디바이스 성능과 병렬로 원격 성능을 위해 또는 온-디바이스 NLU 및/또는 온-디바이스 이행의 실패에 응답하여 선택적으로 전송될 수 있다. 그러나, 온-디바이스 음성 처리, 온-디바이스 NLU, 온-디바이스 이행 및/또는 온-디바이스 실행은 (음성 발언을 해결하는데 클라이언트-서버 왕복(들)이 필요하지 않기 때문에) 음성 발언을 해결할 때 이들이 제공하는 레이턴시 감소로 인해 적어도 우선 순위화될 수 있다. 또한 온-디바이스 기능은 네트워크 연결이 없거나 제한적인 상황에서 사용할 수 있는 유일한 기능일 수 있다.
일부 구현에서, 컴퓨팅 디바이스(302)는 컴퓨팅 디바이스(302) 및/또는 자동화 어시스턴트(304)를 제공한 엔티티와 상이한 제3자 엔티티에 의해 제공될 수 있는 하나 이상의 애플리케이션(334)을 포함할 수 있다. 자동화 어시스턴트(304) 및/또는 컴퓨팅 디바이스(302)의 애플리케이션 상태 엔진(316)은 애플리케이션 데이터(330)에 액세스하여 하나 이상의 애플리케이션(334)에 의해 수행될 수 있는 하나 이상의 액션뿐만 아니라 하나 이상의 애플리케이션(334)의 각 애플리케이션의 상태를 결정할 수 있다. 또한, 애플리케이션 데이터(330) 및/또는 임의의 다른 데이터(예를 들어, 디바이스 데이터(332))는 컨텍스트 데이터(336)를 생성하기 위해 자동화 어시스턴트(304)에 의해 액세스될 수 있는데, 이는 특정 애플리케이션(334)이 컴퓨팅 디바이스에서 실행되고 및/또는 특정 사용자가 컴퓨팅 디바이스(302)에 액세스하고 및/또는 애플리케이션(334)에 액세스하는 컨텍스트를 특징화할 수 있다.
하나 이상의 애플리케이션(334)이 컴퓨팅 디바이스(302)에서 실행되고 있는 동안, 디바이스 데이터(332)는 컴퓨팅 디바이스(302)에서 실행되는 각 애플리케이션(334)의 현재 동작 상태를 특징화할 수 있다. 또한, 애플리케이션 데이터(330)는 하나 이상의 애플리케이션(334)의 지시에 따라 렌더링되는 하나 이상의 그래픽 사용자 인터페이스의 컨텐츠와 같은 실행 중인 애플리케이션(334)의 하나 이상의 특징을 특징화할 수 있다. 대안적으로 또는 추가적으로, 애플리케이션 데이터(330)는 개별 애플리케이션의 현재 동작 상태에 기초하여 개별 애플리케이션에 의해 및/또는 자동화 어시스턴트(304)에 의해 업데이트될 수 있는 액션 스키마를 특징화할 수 있다. 대안적으로, 또는 추가적으로, 하나 이상의 애플리케이션(334)에 대한 하나 이상의 액션 스키마는 정적으로 유지될 수 있지만, 자동화 어시스턴트(304)를 통해 초기화하기에 적절한 액션을 결정하기 위해 애플리케이션 상태 엔진(316)에 의해 액세스될 수 있다.
일부 구현에서, 자동화 어시스턴트(304)는 사용자가 선택한 특정 입력 필드가 특정 속성 및/또는 메타 데이터와 관련되는지 여부를 결정하기 위한 필드 엔진(324)을 포함할 수 있다. 예를 들어, 특정 입력 필드는 숫자, 문자, 날짜, 연도, 통화(currency), 심볼, 이미지, 및/또는 인터페이스의 입력 필드에 제공될 수 있는 임의의 데이터로 제한될 수 있다. 사용자가 입력 필드를 선택하고 음성 발언을 제공한 경우, 입력 처리 엔진(306)은 음성 발언을 특징짓는(특징화하는) 자연어 텍스트를 생성하기 위해 음성 발언에 대응하는 오디오 데이터를 처리할 수 있다. 자동화 어시스턴트(304)의 분류 엔진(322)은 텍스트의 일부를 처리하여 텍스트가 자동화 어시스턴트(304)에 대해 지시된 커맨드 또는 컴퓨팅 디바이스(302)를 통해 캡처되었을 수 있는 다른 음성에 대응하는지 여부를 결정할 수 있다.
자동화 어시스턴트(304)에 대한 커맨드로 의도된 것으로 식별된 텍스트는 텍스트의 임의의 부분이 사용자에 의해 선택되었던 입력 필드에 포함하기에 적합한지 여부를 결정하기 위해 필드 엔진(324)에 의해 처리될 수 있다. 텍스트의 일부가 입력 필드에 적합하다고 결정되는 경우, 텍스트의 일부는 자동화 어시스턴트(304)에 의해 입력 필드에 포함될 수 있다. 추가적으로 또는 대안적으로, 텍스트는 입력 필드에 포함된 컨텐츠가 되도록 의도된 임의의 대안적인 해석 및/또는 참조 컨텐츠가 있는지 여부를 결정하기 위해 후보 엔진(318)에 의해 처리될 수 있다. 예를 들어, 후보 엔진(318)은 텍스트 및/또는 다른 적절한 컨텐츠(예를 들어, 이미지, 비디오, 오디오 등)의 다른 적절한 해석을 생성하기 위해 컨텍스트 데이터(336)로 음성 발언의 텍스트의 하나 이상의 부분을 처리할 수 있다. 후보 해석이 식별될 때, 후보 해석은 필드 엔진(324)에 의해 처리되어 그 후보 해석이 입력 필드에 입력하기에 적합한지 여부를 결정할 수 있다. 후보 해석이 입력 필드에 적합하고 입력 필드에 입력하기 위한 임의의 다른 후보보다 더 관련성이 있는 것으로 결정되는 경우, 자동화 어시스턴트(304)는 후보 해석이 입력 필드에 포함되게 할 수 있다.
후보 해석이 입력 필드에 입력하기에 적합하지 않은 것으로 결정되는 경우, 그 후보 해석에 대응하는 텍스트는 입력 처리 엔진(306)에 의해 추가로 처리될 수 있다. 입력 처리 엔진(306)은 후보 해석이 자동화 어시스턴트(304)에 의해 응답될 수 있는 질의에 대응하는지 여부를 결정할 수 있다. 자동화 어시스턴트(304)가 후보 해석에 대응하는 텍스트가 자동화 어시스턴트(304)가 응답할 수 있는 질의라고 결정하면, 자동화 어시스턴트(304)는 질의에 대한 응답을 진행할 수 있다. 이러한 방식으로, 사용자는 음성 발언을 제공하기 직전에 입력 필드를 선택했음에도 불구하고 자신의 음성 발언을 반드시 반복할 필요가 없을 것이다. 게다가, 이것은 자동화 어시스턴트(304)가 얼마나 많은 오디오 데이터가 버퍼링되는지를 제한함으로써 계산 자원을 보존하는 것을 허용한다. 예를 들어, 이 예에서, 사용자는 매번 자동화 어시스턴트(304)를 초기화하기 위해 호출 문구를 반복적으로 제공할 필요 없이 자동화 어시스턴트(304)와 유동적으로 대화할 수 있고, 이에 의해 컴퓨팅 디바이스(302)의 메모리를 점유하는 오디오 데이터의 양을 감소시킨다.
도 4는 사용자가 애플리케이션 인터페이스를 통해 선택한 입력 필드에 직역적 해석 및/또는 참조 컨텐츠를 포함할지 여부를 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 방법(400)을 예시한다. 방법(400)은 하나 이상의 컴퓨팅 디바이스, 애플리케이션, 및/또는 자동화 어시스턴트와 연관될 수 있는 임의의 다른 디바이스 또는 모듈에 의해 수행될 수 있다. 방법(400)은 입력 필드가 사용자에 의해 선택되었는지 여부를 결정하는 동작(402)을 포함할 수 있다. 입력 필드가 사용자에 의해 선택되었다고 결정되면, 방법(400)은 자동화 어시스턴트 및/또는 키보드 인터페이스를 초기화하는 동작(404)으로 진행할 수 있다. 자동화 어시스턴트 및/또는 키보드 인터페이스는 사용자가 선택한 입력 필드를 포함하는 애플리케이션에 액세스할 때 초기화될 수 있다.
방법(400)은 사용자가 자동화 어시스턴트에 음성 발언을 제공했는지 여부를 결정하기 위해 동작(404)으로부터 동작(406)으로 진행할 수 있다. 사용자가 자동화 어시스턴트에 음성 발언을 제공했다고 결정되면, 방법(400)은 동작(410)으로 진행할 수 있다. 사용자가 음성 발언을 제공하지 않은 것으로 결정될 때, 방법(400)은 동작(406)에서 동작(408)으로 진행하여 사용자가 입력 필드에 텍스트 입력을 제공했는지 여부를 결정할 수 있다. 사용자가 입력 필드에 텍스트 입력을 제공하지 않은 것으로 결정되면, 방법(400)은 동작(402)으로 돌아갈 수 있다. 그러나, 사용자가 입력 필드에 텍스트 입력을 제공했다고 결정될 때, 방법(400)은 동작(508)으로부터 텍스트를 선택된 입력 필드에 포함시키기 위한 동작(416)으로 진행할 수 있다.
사용자가 자동화 어시스턴트에게 음성 발언을 제공한 것으로 결정되면, 방법(400)은 음성 발언의 하나 이상의 부분을 특징짓는 후보 텍스트 문자열을 생성하는 것을 포함할 수 있는 동작(410)으로 진행할 수 있다. 일부 구현에서, 후보 텍스트 문자열을 생성하는 것은 음성 발언의 직역적 특징(characterization)이 되도록 의도된 텍스트 문자열을 생성하는 것을 포함할 수 있다. 방법(400)은 동작(410)으로부터 음성 발언에 기초하여 다른 컨텐츠를 생성하기 위한 동작(412)으로 진행할 수 있다. 다른 컨텐츠는 음성 발언, 후보 텍스트 문자열, 및/또는 사용자가 음성 발언 및/또는 사용자와 애플리케이션 간의 상호작용과 관련된 이력 데이터를 제공한 상황을 특징짓는 컨텍스트 데이터에 기초하여 생성될 수 있다.
방법(400)은 동작(412)로부터 입력 필드에 포함할 것을 결정하기 위해 후보 텍스트 문자열 및/또는 다른 콘텐츠를 처리하는 것을 포함하는 동작(414)으로 진행할 수 있다. 다시 말해서, 동작(414)은 후보 텍스트 문자열의 하나 이상의 부분 및/또는 다른 컨텐츠의 하나 이상의 부분을 선택된 입력 필드에 포함시킬지 여부를 결정하는 것을 포함한다. 후보 텍스트 문자열 또는 다른 컨텐츠를 입력 필드에 포함시킬지 여부에 관한 결정이 이루어지면, 방법(400)은 동작(414)에서 동작(416)으로 진행할 수 있다. 동작(416)은 음성 발언에 기초한 컨텐츠를 선택된 입력 필드에 포함하는 것을 포함할 수 있다. 즉, 후보 텍스트 문자열 또는 다른 콘텐츠가 동작(414)에서 우선 순위가 지정되었는지 여부에 따라, 방법(400)은 동작(416)에서 후보 텍스트 스트링 및/또는 다른 콘텐츠를 선택된 엔트리 필드에 포함할 수 있다.
도 5a 및 도 5b는 사용자가 애플리케이션 인터페이스를 통해 선택한 입력 필드에 직역적 해석 및/또는 참조 컨텐츠를 포함할지 여부를 결정할 수 있는 자동화 어시스턴트를 제공하기 위한 방법(500) 및 방법(520)을 도시한다. 방법(500)과 방법(520)은 하나 이상의 컴퓨팅 디바이스, 애플리케이션, 및/또는 자동화 어시스턴트와 연관될 수 있는 임의의 다른 장치 또는 모듈에 의해 수행될 수 있다. 방법(500)은 입력 필드가 사용자에 의해 선택되었는지 여부를 결정하는 동작(502)을 포함할 수 있다. 입력 필드는 사용자가 입력 필드에 대한 특정 컨텐츠를 지정하는 영역을 포함하는 애플리케이션 인터페이스의 하나 이상의 부분이다. 예를 들어, 입력 필드는 사용자가 자신의 전화번호를 지정할 수 있는 웹 페이지상의 공간일 수 있다. 예를 들어, 웹 페이지는 웹 페이지를 제어하는 엔터티가 웹 페이지에 의해 제공되는 서비스(예를 들어, 여행 예약 서비스)와 관련하여 사용자에게 전화를 걸 수 있도록 "전화 번호: ___-______"와 같은 입력 필드를 포함할 수 있다.
입력 필드가 선택되었다고 결정되면, 방법(500)은 동작(502)으로부터 키보드 인터페이스 및/또는 자동화 어시스턴트를 초기화하는 것을 포함할 수 있는 동작(504)으로 진행할 수 있다. 그렇지 않은 경우, 애플리케이션 및/또는 대응하는 컴퓨팅 디바이스는 애플리케이션에 대한 입력을 계속 모니터링할 수 있다. 일부 구현에서, 키보드 인터페이스 및/또는 자동화 어시스턴트는 사용자가 애플리케이션 인터페이스의 입력 필드를 선택하는 것에 응답하여 초기화될 수 있다. 예를 들어, 입력 필드는 컴퓨팅 디바이스의 터치 디스플레이 패널에서 렌더링될 수 있고, 사용자는 입력 필드의 선택을 나타내는 터치 제스처를 수행함으로써 입력 필드를 선택할 수 있다. 추가적으로 또는 대안적으로, 사용자는 음성 발언을 제공하고 및/또는 별도의 컴퓨팅 디바이스에 입력을 제공함으로써 입력 필드를 선택할 수 있다.
방법(500)은 동작(504)으로부터 사용자가 자동화 어시스턴트에 음성 발언을 제공했는지 여부를 결정하는 것을 포함할 수 있는 동작(506)으로 진행할 수 있다. 사용자가 입력 필드의 선택을 제공하는 것에 후속하여, 사용자는 자동화 어시스턴트가 컨텐츠를 입력 필드에 포함하는 것을 돕도록 의도된 음성 발언을 제공하도록 선택적으로 선택할 수 있고 및/또는 의도할 수 있다. 예를 들어, 사용자가 웹 페이지의 전화번호 입력 필드를 선택한 후, 사용자는 "트리플 파이브, 트리플 6, 8...또한, 내일 날씨는 어때, 어시스턴트?"와 같은 음성 발언을 제공할 수 있다. 그러나, 그들은 사용자가 음성 발언을 제공하지 않도록 대안적으로 선택할 수 있다.
사용자가 음성 발언을 제공하지 않기로 선택하는 경우, 방법(500)은 동작(506)으로부터 사용자가 입력 필드에 텍스트 입력을 제공했는지 여부를 결정하는 것을 포함할 수 있는 동작(508)으로 진행할 수 있다. 사용자가 입력 필드에 텍스트 입력을 제공하지 않은 것으로 결정되면, 방법(500)은 동작(502)으로 돌아갈 수 있다. 그러나, 사용자가 입력 필드에 텍스트 입력을 제공했다고 결정되는 경우, 방법(500)은 동작(508)에서 동작(514)으로 진행할 수 있다. 동작(514)은 텍스트 및/또는 컨텐츠를 선택된 입력 필드에 포함하는 것을 포함할 수 있다. 이러한 방식으로, 사용자가 텍스트 입력을 제공한 경우(예를 들어, 사용자가 키보드상에 "555-6668"을 타이핑함), 입력 필드에 포함될 수 있다. 대안적으로, 동작(506)에서, 사용자가 입력 필드를 선택한 후 음성 발언을 제공했다고 결정되는 경우, 방법(500)은 동작(506)에서 동작(510)으로 진행할 수 있다.
동작(510)은 음성 발언의 하나 이상의 부분을 특징짓는 후보 텍스트 문자열을 생성하는 것을 포함할 수 있다. 예를 들어, 사용자가 제공하는 음성 발언은 "555, 666, 8...또한 내일 날씨 어때, 어시스턴트?"일 수 있으며, 그 음성 발언의 특정 부분은 "555, 666, 8"과 같은 후보 텍스트 문자열을 제공하도록 처리될 수 있다. 그런 다음, 방법(500)은 동작(510)으로부터 후보 텍스트 문자열이 선택된 입력 필드에 적합한지 여부를 결정하는 것을 포함할 수 있는 동작(512)으로 진행할 수 있다. 후보 텍스트 문자열이 선택된 입력 필드에 적합한 것으로 결정되는 경우, 방법(500)은 후보 텍스트가 선택된 입력 필드에 포함되게 하기 위해 동작(414)으로 진행할 수 있다. 그러나, 후보 텍스트 문자열이 선택된 입력 필드에 적합하지 않은 것으로 결정되는 경우, 방법(500)은 동작(513)로부터 연속 엘리먼트("A")를 통해, 도 5b에 제공된 방법(520)의 동작(518)으로 진행할 수 있다.
방법(520)은 연속 엘리먼트("A")로부터 음성 발언에 기초하여 다른 컨텐츠를 생성하는 것을 포함할 수 있는 동작(518)으로 진행할 수 있다. 다른 컨텐츠는 컨텍스트 데이터 및/또는 사용자가 입력 필드를 선택한 상황과 관련될 수 있는 임의의 다른 구성(formation)에 기초하여 생성될 수 있다. 예를 들어, 애플리케이션은 선택된 입력 필드의 특성을 특징짓는 데이터를 포함할 수 있고, 후보 텍스트 문자열은 후보 텍스트 문자열에 기초하는 특정 다른 컨텐츠를 바이어스하기 위해 데이터에 기초하여 처리될 수 있다. 예를 들어, 다른 컨텐츠에는 "555, 666, 8" 및 "5556668"과 같은 다른 텍스트 해석이 포함될 수 있다. 또한, 데이터는 선택된 입력 필드가 숫자로만 채워지고 최소 7개의 숫자가 있어야 한다는 요구 사항을 특징화할 수 있다. 따라서, 요구 사항 데이터 및 다른 컨텐츠를 처리하는 것은 "555, 666, 8"에 대한 텍스트 해석 "5556668"의 바이어싱을 초래할 수 있다.
방법(520)은 동작(518)으로부터, 생성된 다른 컨텐츠가 선택된 입력 필드에 적합한지 여부를 결정하는 것을 포함할 수 있는 동작(522)으로 진행할 수 있다. 예를 들어, 후보 컨텐츠("5556668")는 그 후보 컨텐츠가 숫자만을 포함하기 때문에 선택된 입력 필드에 적합하다고 결정될 수 있는 반면, 다른 후보 컨텐츠("555, 666, 8")는 그 다른 후보 컨텐츠에 문자가 포함되어 있기 때문에 적합하지 않다고 결정될 수 있다. 다른 컨텐츠가 선택된 입력 필드에 적합한 것으로 결정되지 않는 경우, 방법(500)은 동작(522)으로부터, 선택된 입력 필드에 관한 추가 지침에 대해 사용자에게 프롬프트하는 것을 포함할 수 있는 선택적 동작(526)으로 진행할 수 있다. 예를 들어, 자동화 어시스턴트는 컨텍스트 데이터 및/또는 선택된 입력 필드와 관련된 임의의 다른 데이터에 기초하는 프롬프트를 제공할 수 있다. 예를 들어, 자동화 어시스턴트는 "이 필드는 숫자를 위한 것입니다"와 같은 오디오 출력을 렌더링할 수 있으며, 이는 다른 컨텐츠에 문자가 포함되어 있기 때문에 다른 컨텐츠가 적합하지 않다는 결정에 기초하여 생성될 수 있다. 그 후, 방법(520)은 연속 엘리먼트("C")를 통해 동작(526) 및/또는 동작(522)으로부터 도 5a의 방법(500)의 동작(506)으로 진행할 수 있다.
다른 컨텐츠가 선택된 입력 필드에 적합하다고 결정되면, 방법(520)은 동작(522)에서 선택적 동작(524)으로 진행할 수 있다. 동작(524)은 다른 컨텐츠가 선택된 입력 필드에 적합하다는 결정에 기초하여 모델을 업데이트하는 것을 포함할 수 있다. 이러한 방식으로, 자동화 어시스턴트는 사용자가 컨텐츠를 선택된 입력 필드에 포함하는 것을 촉진하기 위해 특정 발언을 의도하는지 여부 및/또는 사용자가 자동화 어시스턴트에게 하나 이상의 다른 액션을 취하도록 지시하는지 여부를 적응적으로 학습할 수 있다. 방법(520)은 연속 엘리먼트("B")를 통해 동작(524) 및/또는 동작(522)으로부터, 자동화 어시스턴트가 다른 컨텐츠(예를 들어, 임의의 다른 생성된 컨텐츠에 대해 바이어스된 다른 컨텐츠)가 선택된 입력 필드(예를 들어, "전화 번호: 555-6668")에 포함되게 할 수 있는 동작(414)로 진행할 수 있다.
방법(500)은 동작(414)으로부터, 음성 발언의 다른 부분이 어시스턴트 동작에 대응하는지 여부를 결정하기 위한 동작(516)으로 진행할 수 있다. 다시 말해서, 자동화 어시스턴트는 자동 어시스턴트에 의해 수행될 하나 이상의 동작을 촉진하기 위해 후보 텍스트 문자열의 임의의 다른 특정 부분(예를 들어, 다른 컨텐츠의 기초가 된 부분 외에)이 제공되었는지 여부를 결정할 수 있다. 후보 텍스트 문자열 및/또는 음성 발언의 다른 부분이 어시스턴트 동작을 촉진하는 것으로 결정되지 않는 경우, 방법(500)은 동작(502)으로 진행할 수 있다.
그러나, 후보 텍스트 문자열의 다른 부분이 자동화 어시스턴트 동작을 촉진하기 위해 제공되었다고 결정될 때(예를 들어, "또한, 내일 날씨 어때, 어시스턴트?"), 방법(500)은 방법(500)과 방법(520)을 통해 대응하는 자동화 어시스턴트 동작이 후보 텍스트 문자열의 다른 부분에 기초하여 실행되는 동작(526)으로 진행할 수 있다. 다시 말해서, 후보 텍스트 문자열의 다른 부분은 동작(522)에서 선택된 입력 필드에 적합한 임의의 다른 컨텐츠를 생성하지 않을 수 있고, 다른 후보 텍스트 문자열이 동작(526)에서 자동화 어시스턴트 동작을 참조하기 때문에, 자동화 어시스턴트 동작은 실행될 수 있다. 이러한 방식으로, 사용자는 특정 필드를 채우고 자동화 어시스턴트가 다른 액션을 수행하도록 지시하기 위해 인터페이스에 입력을 동시에 제공하기 위한 보다 효율적인 음성 방법에 의존할 수 있다.
도 6은 예시적인 컴퓨터 시스템(610)의 블록도이다. 컴퓨터 시스템(610)은 일반적으로 버스 서브시스템(612)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(614)를 포함한다. 이러한 주변 디바이스는 예를 들어 메모리(625) 및 파일 저장 서브시스템(626), 사용자 인터페이스 출력 디바이스(620), 사용자 인터페이스 입력 디바이스(622) 및 네트워크 인터페이스 서브시스템(616)을 포함하는 저장 서브시스템(624)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨터 시스템(610)과의 사용자 상호 작용을 허용한다. 네트워크 인터페이스 서브시스템(616)은 외부 네트워크에 대한 인터페이스를 제공하고 다른 컴퓨터 시스템의 대응하는 인터페이스 디바이스에 연결된다.
사용자 인터페이스 입력 디바이스(622)는 키보드, 포인팅 디바이스(예를 들어, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿), 스캐너, 디스플레이에 통합된 터치 스크린, 오디오 입력 디바이스(예를 들어, 음성 인식 시스템, 마이크) 및/또는 다른 유형의 입력 디바이스를 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 모든 가능한 유형의 디바이스 및 정보를 컴퓨터 시스템(610) 또는 통신 네트워크상에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(620)는 디스플레이 서브시스템, 프린터, 팩스 기계, 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 액정 디스플레이(LCD)와 같은 평판 디바이스, 프로젝션 디바이스, 또는 가시적 이미지를 생성하기 위한 기타 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 디바이스를 통한 것과 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨터 시스템(610)으로부터 사용자 또는 다른 기계 또는 컴퓨터 시스템으로 정보를 출력하는 모든 가능한 유형의 디바이스 및 방법을 포함하도록 의도된다.
저장 서브시스템(624)은 본 명세서에 설명된 모듈의 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(624)은 방법(400), 방법(500) 및/또는 방법(520)의 선택된 양태를 수행하고 및/또는 시스템(300), 컴퓨팅 디바이스(104), 컴퓨팅 디바이스(204), 및/또는 임의의 다른 애플리케이션, 디바이스, 장치 및/또는 본 명세서에 논의된 모듈 중 하나 이상을 구현하기 위한 로직을 포함할 수 있다.
이러한 소프트웨어 모듈은 일반적으로 프로세서(614) 단독으로 또는 다른 프로세서와 조합하여 실행된다. 저장 서브시스템(624)에 사용되는 메모리(625)는 프로그램 실행 동안 명령들 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(630) 및 고정 명령들이 저장되는 판독 전용 메모리(ROM)(632)를 포함하는 다수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(626)은 프로그램 및 데이터 파일을 위한 영구 저장소를 제공할 수 있으며, 하드 디스크 드라이브, 관련 이동식 미디어와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 미디어 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 파일 저장 서브시스템(626)에 의해 저장 서브시스템(624) 또는 프로세서(들)(614)에 의해 액세스 가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨터 시스템(610)의 다양한 컴포넌트 및 서브시스템이 의도한 대로 서로 통신하게 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 단일 버스로 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨터 시스템(610)은 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 6에 도시된 컴퓨터 시스템(610)에 대한 설명은 일부 구현을 설명하기 위한 특정 예로서만 의도된다. 컴퓨터 시스템(610)의 많은 다른 구성이 도 6에 도시된 컴퓨터 시스템보다 더 많거나 더 적은 컴포넌트를 갖는 것이 가능하다.
본 명세서에 설명된 시스템이 사용자(또는 여기에서 종종 "참가자"라고 함)에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 상황에서, 사용자는 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 지리적 위치에 관한 정보)를 수집하는지 여부를 제어하거나 사용자와 더 관련이 있을 수 있는 컨텐츠 서버로부터 콘텐츠를 수신할지 여부 및/또는 수신 방법을 제어할 기회를 제공받을 수 있다. 또한 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 지리적 위치가 결정될 수 없도록 지리적 위치 정보가 획득된 곳에서 일반화될 수 있다(예를 들어, 도시, 우편 번호 또는 주 수준). 따라서, 사용자는 사용자에 관한 정보가 수집 및/또는 사용되는 방법을 제어할 수 있다.
여러 구현이 본 명세서에 설명되고 예시되었지만, 기능을 수행하고 및/또는 결과 및/또는 본 명세서에 설명된 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 이용될 수 있으며, 각각의 이러한 변형 및/또는 수정은 본 명세서에 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성은 교시가 사용되는 특정 애플리케이션 또는 애플리케이션들에 의존할 것임을 의미한다. 당업자는 일상적인 실험을 사용하여 본 명세서에 설명된 특정 구현에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현은 단지 예로서 제시되고 첨부된 청구범위 및 그에 상응하는 범위 내에서 구현이 구체적으로 설명되며 청구된 것과 다르게 실행될 수 있음을 이해해야 한다. 본 개시의 구현들은 본 명세서에 기재된 각각의 개별 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 또한, 2개 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합은 그러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 모순되지 않는 경우, 본 개시의 범위 내에 포함된다.
일부 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법은 입력 필드의 선택이 컴퓨팅 디바이스에서 렌더링되고 있는 애플리케이션의 그래픽 사용자 인터페이스에 제공되었음을 결정하는 것과 같은 동작을 포함하는 것으로 설명된다. 컴퓨팅 디바이스는 애플리케이션과 별개이고 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공할 수 있다. 방법은 입력 필드가 선택되었다고 결정하는 것에 후속하여 사용자로부터 음성 발언을 수신하는 동작을 더 포함할 수 있다. 방법은 음성 발언에 기초하여, 사용자에 의해 제공되는 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 동작을 더 포함할 수 있으며, 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모듈을 사용하여 생성된다. 방법은 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 동작을 더 포함할 수 있다. 방법은 추가 컨텐츠를 입력 필드에 포함하기로 결정이 이루어진 경우, 추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로서 제공되게 하는 동작을 더 포함할 수 있으며, 추가 컨텐츠는 후보 텍스트 문자열에 기초하는 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성된다. 방법은 추가 컨텐츠를 입력 필드에 포함하기 위해 다른 결정이 이루어진 경우: 후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로서 제공되게 하는 동작을 더 포함할 수 있다.
일부 구현에서, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 것은 입력 필드가 특정 유형의 입력 컨텐츠로 제한되는지 여부를 결정하는 것, 및 후보 텍스트 문자열이 입력 필드와 관련된 특정 유형의 입력 컨텐츠에 대응하는지 여부를 결정하는 것을 포함한다. 일부 구현에서, 입력 컨텐츠의 특정 유형은 사용자 또는 다른 사람에 대한 연락처 정보를 포함하고, 추가 컨텐츠가 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성되게 하는 것은 컴퓨팅 디바이스를 통해 액세스 가능한 연락처 데이터가 추가 콘텐츠를 포함하고 후보 텍스트 문자열의 적어도 일부와 관련하여 저장되었다고 결정하는 것을 포함한다.
일부 구현에서, 추가 컨텐츠는 사용자의 주 언어에서 도출된 텍스트 문자가 없다. 일부 구현에서, 추가 컨텐츠는 적어도 하나의 이미지를 포함한다. 일부 구현에서, 입력 필드의 선택이 그래픽 사용자 인터페이스에 제공되었다고 결정하는 것은 키보드 인터페이스가 애플리케이션의 그래픽 사용자 인터페이스를 통해 렌더링되고 있다고 결정하는 것을 포함한다. 일부 구현에서, 후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로서 제공되게 하는 것은 후보 텍스트 문자열이 자동화 어시스턴트로부터 키보드 애플리케이션에 대한 입력으로서 제공되게 하는 것을 포함하고, 키보드 애플리케이션은 그래픽 사용자 인터페이스를 통해 렌더링되는 키보드 인터페이스를 제공한다. 일부 구현에서, 키보드 애플리케이션은 자동화 어시스턴트와 별개의 애플리케이션이다. 일부 구현에서, 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 다르다.
다른 구현에서, 하나 이상의 프로세서에 의해 구현된 방법은 애플리케이션의 그래픽 사용자 인터페이스의 입력 필드가 컴퓨팅 디바이스에서 렌더링될 때, 사용자로부터 음성 발언을 수신하는 것과 같은 동작을 포함하는 것으로 설명되며, 컴퓨팅 디바이스는 애플리케이션과 별개이고 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공한다. 일부 구현에서, 방법은 음성 발언에 기초하여, 사용자에 의해 제공된 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 동작을 더 포함할 수 있고, 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성된다. 일부 구현에서, 방법은 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열의 임의의 특정 부분을 입력 필드에 포함하는 동작과 상이하고 추가 컨텐츠를 입력 필드에 포함하는 다른 동작과 상이한 특정 어시스턴트 동작을 호출하는 것으로서 후보 텍스트 문자열의 임의의 특정 부분을 간주할지 여부를 결정하는 동작을 더 포함할 수 있다.
일부 구현에서, 방법은 후보 텍스트 문자열의 특정 부분을 어시스턴트 동작을 호출하는 것으로 간주하기로 결정이 내려진 경우, 자동화 어시스턴트가 후보 텍스트 문자열의 특정 부분에 적어도 기초하여 특정 어시스턴트 동작을 수행하게 하는 동작을 더 포함한다. 일부 구현에서, 방법은 후보 텍스트 문자열의 특정 부분을 어시스턴트 동작을 호출하지 않는 것으로 간주하지 않는다는 상이한 결정이 내려진 경우, 자동화 어시스턴트에 의해 후보 텍스트 문자열의 특정 부분에 기초하여, 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 콘텐츠를 입력 필드에 포함할지 여부를 결정하는 동작과, 그리고 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 콘텐츠를 입력 필드에 포함할지 여부를 결정하는 것에 기초하여, 후보 텍스트 문자열의 특정 부분 또는 추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 입력으로 제공되게 하는 동작을 더 포함할 수 있다.
일부 구현에서, 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 것은 입력 필드가 특정 유형의 입력 컨텐츠로 제한되는지 여부를 결정하는 것, 및 후보 텍스트 문자열의 특정 부분이 입력 필드와 관련된 특정 유형의 입력 컨텐츠에 대응하는지 여부를 결정하는 것을 포함한다. 일부 구현에서, 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 다르다. 일부 구현에서, 추가 컨텐츠는 사용자의 주 언어로부터 도출된 텍스트 문자가 없다. 일부 구현에서, 추가 컨텐츠는 적어도 하나의 이미지를 포함한다. 일부 구현에서, 자동화 어시스턴트가 어시스턴트 동작을 수행하게 하는 것은 후보 텍스트 문자열의 특정 부분에 기초하여 웹 검색을 실행하는 것을 포함한다.
또 다른 구현에서, 하나 이상의 프로세서에 의해 구현된 방법은 애플리케이션이 컴퓨팅 디바이스를 통해 액세스될 때, 사용자로부터 음성 발언을 수신하는 것과 같은 동작을 포함하는 것으로 설명되고, 컴퓨팅 디바이스는 애플리케이션과 별개이고 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공한다. 방법은, 음성 발언에 기초하여, 사용자에 의해 제공된 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 동작을 더 포함할 수 있고, 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성된다. 방법은 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 문자열을 애플리케이션에 대한 입력으로 제공할지 또는 추가 컨텐츠를 애플리케이션에 대한 입력으로 제공할지 여부를 결정하는 동작을 더 포함할 수 있다. 방법은 추가 컨텐츠를 입력 필드에 포함하기로 결정이 내려진 경우: 후보 텍스트 문자열 및 컨텍스트 데이터에 기초하여 추가 컨텐츠를 생성하는 동작, 컨텍스트 데이터는 사용자가 음성 발언을 제공한 컨텍스트를 특징짓고, 추가 컨텐츠가 애플리케이션에 대한 입력으로서 제공되게 하는 동작을 더 포함할 수 있다.
일부 구현에서, 방법은 애플리케이션에 대한 입력으로서 후보 텍스트 문자열을 제공하기로 상이한 결정이 내려진 경우: 후보 텍스트 문자열이 애플리케이션에 대한 입력으로서 제공되게 하는 동작을 더 포함할 수 있다. 일부 구현에서, 방법은 추가 컨텐츠를 입력 필드에 포함하기로 결정이 내려진 경우, 컴퓨팅 디바이스의 그래픽 사용자 인터페이스에 후보 텍스트 문자열을 렌더링하는 것을 우회하는 동작을 더 포함할 수 있다. 일부 구현에서, 컨텍스트 데이터는 애플리케이션의 그래픽 사용자 인터페이스의 컨텐츠를 특징화한다. 일부 구현에서, 컨텍스트 데이터는 사용자와 자동화 어시스턴트 간의 하나 이상의 이전 상호작용을 특징짓는다. 일부 구현에서, 컨텍스트 데이터는 입력 필드에 포함될 컨텐츠의 포멧화에 대한 제한을 특징짓는다..
또 다른 구현에서, 하나 이상의 프로세서에 의해 구현되는 방법은 키보드 엘리먼트의 선택이 컴퓨팅 디바이스에서 렌더링되고 있는 키보드 애플리케이션의 그래픽 사용자 인터페이스에 제공되었음을 결정하는 것과 같은 동작을 포함하는 것으로 설명되고, 컴퓨팅 디바이스는 키보드 애플리케이션과 별개이고 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공한다. 방법은 키보드 엘리먼트가 선택되었다는 결정에 후속하여, 사용자로부터 음성 발언을 수신하는 동작을 더 포함할 수 있으며, 사용자는 사용자가 음성 발언을 제공할 때 입력 필드를 포함하는 특정 애플리케이션에 액세스하고 있다. 방법은, 음성 발언에 기초하여, 사용자에 의해 제공된 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 동작을 더 포함할 수 있고, 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성된다. 방법은 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 동작을 더 포함할 수 있다. 방법은 추가 컨텐츠를 입력 필드에 포함하기로 결정이 내려진 경우, 추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로서 제공되게 하는 동작을 더 포함할 수 있으며, 추가 컨텐츠는 후보 텍스트 문자열에 기초하는 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성된다..
일부 구현에서, 방법은 입력 필드에 포함하기 위한 추가 컨텐츠를 생성하기로 상이한 결정이 내려진 경우: 후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 동작을 더 포함할 수 있다. 일부 구현에서, 추가 컨텐츠는 사용자의 주 언어로부터 도출된 텍스트 문자가 없다. 일부 구현에서, 추가 컨텐츠는 적어도 하나의 이미지를 포함한다. 일부 구현에서, 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 다르다.

Claims (35)

  1. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    컴퓨팅 디바이스에서 렌더링되고 있는 애플리케이션의 그래픽 사용자 인터페이스의 입력(entry) 필드의 선택이 제공되었다고 결정하는 단계, 상기 컴퓨팅 디바이스는 애플리케이션과 별개이고 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공하고;
    입력 필드가 선택되었다는 결정에 후속하여, 사용자로부터 음성 발언(spoken utterance)을 수신하는 단계;
    음성 발언에 기초하여, 사용자에 의해 제공되는 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 단계, 상기 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성되고;
    자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계;
    추가 컨텐츠를 입력 필드에 포함하기로 결정이 내려진 경우:
    추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계, 상기 추가 컨텐츠는 후보 텍스트 문자열에 기초하는 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성되고; 및
    후보 텍스트 문자열을 입력 필드에 포함하기로 다른 결정이 내려진 경우:
    후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    입력 필드가 특정 유형의 입력 컨텐츠로 제한되는지 여부를 결정하는 단계, 및
    후보 텍스트 문자열이 입력 필드와 관련된 특정 유형의 입력 컨텐츠에 대응하는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  3. 제2항에 있어서,
    상기 특정 유형의 입력 컨텐츠는 사용자 또는 다른 사람의 연락처 정보를 포함하고, 그리고
    상기 추가 컨텐츠가 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성되게 하는 단계는:
    컴퓨팅 디바이스를 통해 액세스 가능한 연락처 데이터가 추가 컨텐츠를 포함하고 후보 텍스트 문자열의 적어도 일부와 관련하여 저장되었다고 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  4. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 사용자의 주(primary) 언어로부터 도출된 텍스트 문자가 없는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  5. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 적어도 하나의 이미지를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  6. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 그래픽 사용자 인터페이스의 입력 필드의 선택이 제공되었다고 결정하는 단계는,
    키보드 인터페이스가 애플리케이션의 그래픽 사용자 인터페이스를 통해 렌더링되고 있음을 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  7. 제6항에 있어서,
    상기 후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계는,
    후보 텍스트 문자열이 자동화 어시스턴트로부터 키보드 애플리케이션으로 입력으로서 제공되게 하는 단계를 포함하고, 상기 키보드 애플리케이션은 그래픽 사용자 인터페이스를 통해 렌더링되는 키보드 인터페이스를 제공하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  8. 제7항에 있어서,
    상기 키보드 애플리케이션은 자동화 어시스턴트와 별개의 애플리케이션인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  9. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 상이한 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  10. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    후보 텍스트 문자열이 임의의 자동화 어시스턴트 커맨드에 대응하는지 여부를 결정하는 단계, 및,
    후보 텍스트 문자열이 임의의 자동화 어시스턴트 커맨드에 대응하지 않을 때 후보 텍스트 문자열을 입력 필드에 포함하기로 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  11. 제10항에 있어서,
    상기 후보 텍스트 문자열이 임의의 자동화 어시스턴트 커맨드에 대응하는지 여부를 결정하는 단계는,
    자동화 어시스턴트의 NLU(자연어 이해) 엔진을 사용하여 후보 텍스트 문자열을 처리하는 단계, 및,
    NLU 엔진을 사용한 처리에 기초하여, 자동화 어시스턴트 의도가 후보 텍스트 문자열에 임베딩되었는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  12. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    후보 문자열 처리에 기초하여 추가 컨텐츠를 생성하는 단계, 및
    추가 컨텐츠의 하나 이상의 추가 컨텐츠 속성에 기초하여 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  13. 제12항에 있어서,
    상기 추가 컨텐츠의 하나 이상의 추가 컨텐츠 속성에 기초하여 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    하나 이상의 추가 컨텐츠 속성을 입력 필드의 하나 이상의 입력 필드 속성과 비교하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  14. 제13항에 있어서,
    입력 필드와 관련된 HTML 또는 XML 태그 또는 입력 필드의 임계 거리 내에 있는 텍스트 및/또는 그래픽에 기초하여 입력 필드의 하나 이상의 입력 필드 속성을 결정하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  15. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    후보 텍스트 문자열의 하나 이상의 초기 용어가 하나 이상의 기정의된 용어와 매칭하는지 여부를 결정하는 단계; 및
    하나 이상의 초기 용어가 하나 이상의 기정의된 용어와 매칭한다는 결정에 응답하여 추가 컨텐츠를 포함하기로 결정하는 쪽으로 바이어싱하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  16. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    애플리케이션의 그래픽 사용자 인터페이스의 입력 필드가 컴퓨팅 디바이스에서 렌더링될 때, 사용자로부터 음성 발언을 수신하는 단계, 상기 컴퓨팅 디바이스는 애플리케이션과 별개이고 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공하고;
    음성 발언에 기초하여, 사용자에 의해 제공되는 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 단계, 상기 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성되고;
    자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열의 임의의 특정 부분을 그 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함하는 동작과 상이하고 그리고 추가 컨텐츠를 입력 필드에 포함하는 다른 동작과 상이한 특정 어시스턴트 동작을 호출하는 것으로 간주할지 여부를 결정하는 단계;
    후보 텍스트 문자열의 특정 부분을 어시스턴트 동작을 호출하는 것으로 간주하기로 결정이 내려진 경우:
    자동화 어시스턴트가 후보 텍스트 문자열의 특정 부분에 적어도 기초하여 특정 어시스턴트 동작을 수행하게 하는 단계; 및
    후보 텍스트 문자열의 특정 부분을 어시스턴트 동작을 호출하지 않는 것으로 간주하지 않기로 다른 결정이 내려진 경우:
    자동화 어시스턴트에 의해 후보 텍스트 문자열의 특정 부분에 기초하여, 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계; 및
    후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 것에 기초하여, 후보 텍스트 문자열의 특정 부분 또는 추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  17. 제16항에 있어서,
    상기 후보 텍스트 문자열의 특정 부분을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계는,
    입력 필드가 특정 유형의 입력 컨텐츠로 제한되는지 여부를 결정하는 단계, 및
    후보 텍스트 문자열의 특정 부분이 입력 필드와 관련된 특정 유형의 입력 컨텐츠에 대응하는지 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  18. 제16항 내지 제17항 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 상이한 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 사용자의 주 언어에서 도출된 텍스트 문자가 없는 것인 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 적어도 하나의 이미지를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  21. 제16항 내지 제20항 중 어느 한 항에 있어서,
    상기 자동화 어시스턴트로 하여금 어시스턴트 동작을 수행하게 하는 단계는 후보 텍스트 문자열의 특정 부분에 기초하여 웹 검색을 실행하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  22. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    애플리케이션이 컴퓨팅 디바이스를 통해 액세스될 때, 사용자로부터 음성 발언을 수신하는 단계, 상기 컴퓨팅 디바이스는 애플리케이션과 별개이고 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화된 어시스턴트에 대한 액세스를 제공하고;
    음성 발언에 기초하여, 사용자에 의해 제공되는 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 단계, 상기 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성되고;
    자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 애플리케이션에 대한 입력으로 제공할지 또는 추가 컨텐츠를 애플리케이션에 대한 입력으로 제공할지 여부를 결정하는 단계; 및
    추가 컨텐츠를 애플리케이션에 포함하기로 결정이 내려진 경우:
    후보 텍스트 문자열 및 컨텍스트 데이터에 기초하여 추가 컨텐츠를 생성하는 단계, 상기 컨텍스트 데이터는 사용자가 음성 발언을 제공한 컨텍스트를 특징짓고, 그리고
    추가 컨텐츠가 애플리케이션에 대한 입력으로 제공되게 하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  23. 제22항에 있어서,
    후보 텍스트 문자열을 애플리케이션에 대한 입력으로 제공하기로 다른 결정이 내려진 경우:
    후보 텍스트 문자열이 애플리케이션에 대한 입력으로 제공되게 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  24. 제22항 또는 제23항에 있어서,
    추가 컨텐츠를 애플리케이션에 포함하기로 결정이 내려진 경우:
    컴퓨팅 디바이스의 그래픽 사용자 인터페이스에서 후보 텍스트 문자열을 렌더링하는 것을 우회하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서,
    상기 컨텍스트 데이터는 애플리케이션의 그래픽 사용자 인터페이스의 컨텐츠를 특징짓는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  26. 제22항 내지 제25항 중 어느 한 항에 있어서,
    상기 컨텍스트 데이터는 사용자와 자동화 어시스턴트 간의 하나 이상의 이전 상호작용을 특징짓는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  27. 제22항 내지 제26항 중 어느 한 항에 있어서,
    상기 컨텍스트 데이터는 애플리케이션의 입력 필드에 포함될 컨텐츠의 포맷팅에 대한 제한을 특징짓는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  28. 하나 이상의 프로세서에 의해 구현되는 방법으로서, 상기 방법은,
    키보드 엘리먼트의 선택이 컴퓨팅 디바이스에서 렌더링되고 있는 키보드 애플리케이션의 그래픽 사용자 인터페이스에 제공되었다고 결정하는 단계, 상기 컴퓨팅 디바이스는 키보드 애플리케이션과 별개이고 하나 이상의 음성-텍스트 변환 모델을 활용하는 자동화 어시스턴트에 대한 액세스를 제공하고;
    키보드 엘리먼트가 선택되었다는 결정에 후속하여, 사용자로부터 음성 발언을 수신하는 단계, 상기 사용자는 사용자가 음성 발언을 제공할 때 입력 필드를 포함하는 특정 애플리케이션에 액세스하고 있고;
    음성 발언에 기초하여, 사용자에 의해 제공되는 음성 발언의 적어도 일부를 특징짓는 후보 텍스트 문자열을 생성하는 단계, 상기 후보 텍스트 문자열은 컴퓨팅 디바이스에 저장된 하나 이상의 음성-텍스트 변환 모델을 사용하여 생성되고;
    자동화 어시스턴트에 의해 후보 텍스트 문자열에 기초하여, 후보 텍스트 문자열을 입력 필드에 포함할지 또는 추가 컨텐츠를 입력 필드에 포함할지 여부를 결정하는 단계; 및
    추가 컨텐츠를 입력 필드에 포함하기로 결정이 내려진 경우:
    추가 컨텐츠가 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계를 포함하고, 상기 추가 컨텐츠는 후보 텍스트 문자열에 기초하는 하나 이상의 자동화 어시스턴트 액션의 수행을 통해 생성되는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  29. 제28항에 있어서,
    입력 필드에 포함하기 위한 추가 컨텐츠를 생성하기로 다른 결정이 내려진 경우:
    후보 텍스트 문자열이 그래픽 사용자 인터페이스의 입력 필드에 대한 입력으로 제공되게 하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  30. 제28항 또는 제29항에 있어서,
    상기 추가 컨텐츠는 사용자의 주 언어로부터 도출된 텍스트 문자가 없는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  31. 제28항 내지 제30항 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 적어도 하나의 이미지를 포함하는 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  32. 제28항 내지 제31항 중 어느 한 항에 있어서,
    상기 추가 컨텐츠는 하나 이상의 음성-텍스트 변환 모델의 추가 사용 없이 생성되고 후보 텍스트 문자열과 상이한 것을 특징으로 하는 하나 이상의 프로세서에 의해 구현되는 방법.
  33. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 선행하는 청구항들 중 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 프로그램 제품.
  34. 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제32항 중 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 판독가능 저장 매체.
  35. 제1항 내지 제32항 중 어느 한 항의 방법을 수행하기 위한 하나 이상의 프로세서를 포함하는 시스템.
KR1020217042100A 2019-10-15 2019-12-13 그래픽 사용자 인터페이스에 음성-제어 컨텐츠 입력 KR20220010034A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962915607P 2019-10-15 2019-10-15
US62/915,607 2019-10-15
PCT/US2019/066211 WO2021076166A1 (en) 2019-10-15 2019-12-13 Voice-controlled entry of content into graphical user interfaces

Publications (1)

Publication Number Publication Date
KR20220010034A true KR20220010034A (ko) 2022-01-25

Family

ID=69165606

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217042100A KR20220010034A (ko) 2019-10-15 2019-12-13 그래픽 사용자 인터페이스에 음성-제어 컨텐츠 입력

Country Status (6)

Country Link
US (2) US11853649B2 (ko)
EP (1) EP3970057A1 (ko)
JP (1) JP7250180B2 (ko)
KR (1) KR20220010034A (ko)
CN (1) CN114144789A (ko)
WO (1) WO2021076166A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220366910A1 (en) * 2021-05-17 2022-11-17 Google Llc Voice commands for an automated assistant utilized in smart dictation

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813603B1 (en) * 2000-01-26 2004-11-02 Korteam International, Inc. System and method for user controlled insertion of standardized text in user selected fields while dictating text entries for completing a form
US6834264B2 (en) 2001-03-29 2004-12-21 Provox Technologies Corporation Method and apparatus for voice dictation and document production
US7778816B2 (en) * 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
JP2003296241A (ja) * 2002-04-03 2003-10-17 Nippon Telegr & Teleph Corp <Ntt> 電子メール送信装置、電子メール送信方法およびコンピュータプログラム
US20040176114A1 (en) * 2003-03-06 2004-09-09 Northcutt John W. Multimedia and text messaging with speech-to-text assistance
US7739117B2 (en) * 2004-09-20 2010-06-15 International Business Machines Corporation Method and system for voice-enabled autofill
JP2008052676A (ja) * 2006-08-28 2008-03-06 Tokyo Electric Power Co Inc:The コンピュータ実行可能なプログラム、方法、および処理装置
US20100169092A1 (en) * 2008-11-26 2010-07-01 Backes Steven J Voice interface ocx
EP2339576B1 (en) * 2009-12-23 2019-08-07 Google LLC Multi-modal input on an electronic device
US9489375B2 (en) * 2011-06-19 2016-11-08 Mmodal Ip Llc Speech recognition using an operating system hooking component for context-aware recognition models
JP2015038665A (ja) * 2012-01-06 2015-02-26 株式会社東芝 電子機器、及び電子機器の制御方法
US9292254B2 (en) * 2013-05-15 2016-03-22 Maluuba Inc. Interactive user interface for an intelligent assistant
JP2016038665A (ja) 2014-08-06 2016-03-22 株式会社大林組 作業用スーツ
US20160103655A1 (en) * 2014-10-08 2016-04-14 Microsoft Corporation Co-Verbal Interactions With Speech Reference Point
DK201670539A1 (en) 2016-03-14 2017-10-02 Apple Inc Dictation that allows editing
US9978367B2 (en) * 2016-03-16 2018-05-22 Google Llc Determining dialog states for language models
US20170308289A1 (en) * 2016-04-20 2017-10-26 Google Inc. Iconographic symbol search within a graphical keyboard
US10140017B2 (en) * 2016-04-20 2018-11-27 Google Llc Graphical keyboard application with integrated search
US20170364484A1 (en) * 2016-06-21 2017-12-21 VTCSecure LLC Enhanced text metadata system and methods for using the same
US20180074661A1 (en) * 2016-09-14 2018-03-15 GM Global Technology Operations LLC Preferred emoji identification and generation
US11449495B2 (en) * 2017-02-01 2022-09-20 United Parcel Service Of America, Inc. Indexable database profiles comprising multi-language encoding data and methods for generating the same
US20190079668A1 (en) * 2017-06-29 2019-03-14 Ashwin P Rao User interfaces for keyboards
US20190132437A1 (en) * 2017-10-30 2019-05-02 Harrison R. Fenoglio Time delayed messaging system
US10558426B2 (en) * 2017-12-08 2020-02-11 Google Llc Graphical user interface rendering management by voice-driven computing infrastructure
US20190214013A1 (en) * 2018-01-05 2019-07-11 Ca, Inc. Speech-to-text conversion based on user interface state awareness
US20190221208A1 (en) * 2018-01-12 2019-07-18 Kika Tech (Cayman) Holdings Co., Limited Method, user interface, and device for audio-based emoji input
WO2019142418A1 (ja) * 2018-01-22 2019-07-25 ソニー株式会社 情報処理装置および情報処理方法
US10762114B1 (en) * 2018-10-26 2020-09-01 X Mobile Co. Ecosystem for providing responses to user queries entered via a conversational interface

Also Published As

Publication number Publication date
US20240078083A1 (en) 2024-03-07
JP7250180B2 (ja) 2023-03-31
US20220253277A1 (en) 2022-08-11
WO2021076166A1 (en) 2021-04-22
US11853649B2 (en) 2023-12-26
CN114144789A (zh) 2022-03-04
EP3970057A1 (en) 2022-03-23
JP2022539673A (ja) 2022-09-13

Similar Documents

Publication Publication Date Title
US11798541B2 (en) Automatically determining language for speech recognition of spoken utterance received via an automated assistant interface
US11232155B2 (en) Providing command bundle suggestions for an automated assistant
KR20210134741A (ko) 어시스턴트 응답을 동적으로 적응시키는 방법, 시스템 및 매체
US11854533B2 (en) Speaker awareness using speaker dependent speech model(s)
US20210397788A1 (en) Fulfillment of actionable requests ahead of a user selecting a particular autocomplete suggestion for completing a current user input
US11763813B2 (en) Methods and systems for reducing latency in automated assistant interactions
KR20230110788A (ko) 어시스턴트 명령의 수동적 명확화
KR20200124298A (ko) 원격으로 생성된 자동화된 어시스턴트 콘텐츠를 렌더링할 때 클라이언트 디바이스 지연 완화
US20240078083A1 (en) Voice-controlled entry of content into graphical user interfaces
US20220366911A1 (en) Arranging and/or clearing speech-to-text content without a user providing express instructions
KR20230025907A (ko) 생성된 능숙도 측정치에 기초하여 자동화된 어시스턴트 기능 조정
EP4147232A1 (en) Arranging and/or clearing speech-to-text content without a user providing express instructions

Legal Events

Date Code Title Description
E902 Notification of reason for refusal