KR20230051619A - 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들 - Google Patents

사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20230051619A
KR20230051619A KR1020237011704A KR20237011704A KR20230051619A KR 20230051619 A KR20230051619 A KR 20230051619A KR 1020237011704 A KR1020237011704 A KR 1020237011704A KR 20237011704 A KR20237011704 A KR 20237011704A KR 20230051619 A KR20230051619 A KR 20230051619A
Authority
KR
South Korea
Prior art keywords
action
client
voice
client devices
data processing
Prior art date
Application number
KR1020237011704A
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 KR20230051619A publication Critical patent/KR20230051619A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • 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/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications

Landscapes

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

Abstract

전자 디바이스들과 음성 기반 상호작용들을 가능하게 하는 시스템들 및 방법들은 복수의 디바이스 액션 데이터 세트 및 각 디바이스 액션 데이터 세트에 대한 각각의 식별자를 유지하는 데이터 처리 시스템을 포함할 수 있다. 상기 데이터 처리 시스템은 전자 디바이스로부터 음성 쿼리 및 식별자를 나타내는 오디오 신호를 수신할 수 있다. 상기 데이터 처리 시스템은 식별자를 사용하여 디바이스 액션 데이터 세트를 식별할 수 있다. 상기 데이터 처리 시스템은 오디오 신호의 콘텐츠를 기반으로 디바이스 액션 데이터 세트에서 디바이스 액션을 식별할 수 있다. 이후, 데이터 처리 시스템은 상기 디바이스 액션 데이터 세트로부터 상기 디바이스 액션과 관련된 명령을 식별할 수 있고 그리고 실행을 위해 명령을 실행 디바이스로 보낼 수 있다.

Description

사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR VOICE-BASED INITIATION OF CUSTOM DEVICE ACTIONS}
관련 출원들에 대한 상호 참조
본 출원은 2018년 3월 7일 출원되고 "네트워크 시스템의 분산된 식별"이라는 제목을 갖는 미국 가특허 출원 번호 62/640,007의 이익 및 우선권을 청구하고, 여기에 그 전체가 참조로 포함된다.
본 발명은 전자 디바이스들과 음성 기반 상호작용들을 가능하게 하는 시스템들 및 방법들에 관한 것이다.
DVA(Digital virtual assistant)들은 클라이언트 디바이스들과 상호작용할 수 있다. 예를 들어, 클라이언트 디바이스들의 사용자들은 음성 기반 쿼리 또는 채팅 기반 쿼리를 통해 온라인 검색 또는 온라인 거래와 같은 온라인 작업들을 시작할 수 있다. DVA들은 클라이언트 디바이스들과 핸즈프리 상호작용들을 가능하게 한다.
본 발명의 적어도 하나의 양태에 따르면, 클라이언트 디바이스들과 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템은 통신 인터페이스, 메모리, 디바이스 액션 맞춤 컴포넌트 및 자연어 프로세서 컴포넌트를 포함할 수 있다. 통신 인터페이스는, 컴퓨팅 디바이스로부터, 디바이스 액션 데이터 및 상기 디바이스 액션 데이터와 관련된 식별자를 수신할 수 있다. 상기 디바이스 액션 데이터는 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들 및 복수의 디바이스 실행가능 명령들을 나타낼 수 있다. 상기 복수의 디바이스 실행가능 명령들의 각 디바이스 실행가능 명령은 상기 복수의 디바이스 액션들 중 대응하는 디바이스 액션의 실행을 촉발(trigger)하도록 구성될 수 있다. 상기 메모리는 상기 디바이스 액션 데이터를 저장할 수 있다. 디바이스 액션 맞춤 컴포넌트(device action customization component)는 상기 디바이스 액션 데이터를 상기 식별자에 맵핑할 수 있다. 상기 통신 인터페이스는, 상기 복수의 클라이언트 디바이스들 중 하나의 클라이언트 디바이스로부터, 오디오 신호 및 상기 식별자를 수신할 수 있다. 상기 오디오 신호는 음성 기반 쿼리(voice-based query)에 응답하여 상기 클라이언트 디바이스에 의해 획득될 수 있다. 자연어 프로세서 컴포넌트는, 상기 식별자 및 상기 오디오 신호와 관련된 콘텐츠를 사용하여, 상기 복수의 클라이언트 디바이스들에 의해 지원되는 상기 복수의 디바이스 액션들 중 하나의 디바이스 액션을 식별할 수 있다. 상기 디바이스 액션 맞춤 컴포넌트는, 상기 디바이스 액션에 대응하는 상기 복수의 디바이스 실행가능 명령들 중 하나의 디바이스 실행가능 명령을 식별할 수 있다. 상기 통신 인터페이스는, 상기 클라이언트 디바이스에, 상기 디바이스 액션의 성능을 유발하기 위해 상기 음성 기반 쿼리에 응답하여 실행하기 위한 상기 디바이스 실행가능 명령을 전송할 수 있다.
본 발명의 적어도 하나의 양태는 클라이언트 디바이스들과 음성 기반 상호작용들을 가능하게 하는 방법에 관한 것이다. 상기 방법은 데이터 프로세싱 시스템이 컴퓨팅 디바이스로부터, 디바이스 액션 데이터 및 상기 디바이스 액션 데이터와 관련된 식별자를 수신하는 단계를 포함할 수 있다. 상기 디바이스 액션 데이터는 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들 및 복수의 디바이스 실행가능 명령들을 나타낼 수 있다. 상기 복수의 디바이스 실행가능 명령들의 각 디바이스 실행가능 명령은 상기 복수의 디바이스 액션들 중 대응하는 디바이스 액션의 실행을 촉발할 수 있다. 상기 방법은 데이터 프로세싱 시스템이 상기 디바이스 액션 데이터를 저장하는 단계를 포함할 수 있다. 상기 방법은 데이터 프로세싱 시스템이 상기 디바이스 액션 데이터를 상기 식별자에 맵핑하는 단계를 포함할 수 있다. 상기 방법은 데이터 프로세싱 시스템이 상기 복수의 클라이언트 디바이스들 중 하나의 클라이언트 디바이스로부터, 오디오 신호 및 상기 식별자를 수신하는 단계를 포함할 수 있다. 상기 오디오 신호는 음성 기반 쿼리에 응답하여 상기 클라이언트 디바이스에 의해 획득될 수 있다. 방법은 데이터 프로세싱 시스템이 상기 식별자 및 상기 오디오 신호와 관련된 콘텐츠를 사용하여, 상기 복수의 클라이언트 디바이스들에 의해 지원되는 상기 복수의 디바이스 액션들 중 하나의 디바이스 액션을 식별하는 단계를 포함할 수 있다. 상기 방법은 데이터 프로세싱 시스템이 상기 디바이스 액션에 대응하는 상기 복수의 디바이스 실행가능 명령들 중 하나의 디바이스 실행가능 명령을 식별하는 단계를 포함할 수 있다. 상기 방법은 상기 데이터 프로세싱 시스템이 상기 클라이언트 디바이스에, 상기 디바이스 액션의 성능을 유발하기 위해 상기 음성 기반 쿼리에 응답하여 실행하기 위한 상기 디바이스 실행가능 명령을 전송하는 단계를 포함할 수 있다.
본 발명의 적어도 하나의 양태에 따르면, 음성 기반 상호작용들을 지원하는 전자 디바이스가 제공된다. 상기 전자 디바이스는 오디오 수신기, 통신 인터페이스 및 명령 실행 컴포넌트를 포함할 수 있다. 상기 오디오 수신기는 입력된 음성 기반 쿼리에 대응하는 오디오 신호를 생성할 수 있다. 상기 전자 디바이스는 원격 데이터 처리 시스템에 의해 유지되는 디바이스 액션 데이터 및 상기 디바이스 액션 데이터의 식별자와 관련될 수 있다. 상기 디바이스 액션 데이터는 상기 디바이스 액션 데이터와 관련된 전자 디바이스들에 의해 지원되는 복수의 디바이스 액션들 및 복수의 디바이스 실행가능 명령들을 포함할 수 있다. 각 디바이스 실행가능 명령은 상기 복수의 디바이스 액션들 중 대응하는 디바이스 액션의 실행을 촉발하도록 구성될 수 있다. 상기 통신 인터페이스는, 상기 음성 기반 쿼리에 응답하여, 상기 식별자 및 상기 오디오 신호를 상기 원격 데이터 처리 시스템으로 전송할 수 있다. 상기 원격 데이터 처리 시스템은 상기 식별자를 상기 복수의 디바이스 액션들 및 상기 복수의 디바이스 실행가능 명령들에 맵핑하는 하나 이상의 데이터 구조들을 유지할 수 있다. 상기 통신 인터페이스는, 상기 오디오 신호의 전송에 응답하여, 상기 원격 데이터 처리 시스템으로부터 상기 복수의 디바이스 실행가능 명령들 중 하나의 디바이스 실행 가능 명령을 수신할 수 있다. 상기 디바이스 실행가능 명령은 상기 식별자, 상기 오디오 신호 및 상기 하나 이상의 데이터 구조들에 기초하여 상기 데이터 처리 시스템에 의해 식별될 수 있다. 상기 명령 실행 컴포넌트는 상기 디바이스 액션을 수행하기 위해 상기 디바이스 실행가능 명령을 실행하도록 구성될 수 있다.
본 발명의 적어도 하나의 양태에 따르면, 음성 기반 상호작용들의 지원을 가능하게 하는 방법이 제공된다. 상기 방법은, 입력된 음성 기반 쿼리에 대응하는 오디오 신호를, 전자 디바이스에 의해 생성하는 단계를 포함할 수 있다. 상기 전자 디바이스는 원격 데이터 처리 시스템에 의해 유지되는 디바이스 액션 데이터 및 상기 디바이스 액션 데이터의 식별자와 관련될 수 있다. 상기 디바이스 액션 데이터는 상기 디바이스 액션 데이터와 관련된 전자 디바이스들에 의해 지원되는 복수의 디바이스 액션들 및 복수의 디바이스 실행가능 명령들을 포함할 수 있다. 각 디바이스 실행가능 명령은 상기 복수의 디바이스 액션들 중 대응하는 디바이스 액션의 실행을 촉발하도록 구성될 수 있다. 상기 방법은, 상기 음성 기반 쿼리에 응답하여, 상기 식별자 및 상기 오디오 신호를 상기 원격 데이터 처리 시스템으로, 상기 전자 디바이스에 의해 전송하는 단계를 포함할 수 있다. 상기 원격 데이터 처리 시스템은 상기 식별자를 상기 복수의 디바이스 액션들 및 상기 복수의 디바이스 실행가능 명령들에 맵핑하는 하나 이상의 데이터 구조들을 유지할 수 있다. 상기 방법은, 상기 오디오 신호의 전송에 응답하여, 상기 원격 데이터 처리 시스템으로부터 상기 복수의 디바이스 실행가능 명령들 중 하나의 디바이스 실행 가능 명령을, 상기 전자 디바이스에 의해 수신할 수 있다. 상기 디바이스 실행가능 명령은 상기 식별자, 상기 오디오 신호 및 상기 하나 이상의 데이터 구조들에 기초하여 상기 데이터 처리 시스템에 의해 식별될 수 있다. 상기 방법은 상기 디바이스 액션을 수행하기 위해 상기 디바이스 실행가능 명령을, 상기 전자 디바이스에 의해 실행하는 단계를 포함할 수 있다.
본 발명의 적어도 하나의 양태에 따르면, 음성 기반 상호작용들에 응답하는 콘텐츠를 제공하는 데이터 처리 시스템이 제공된다. 상기 데이터 처리 시스템은, 메모리, 디바이스 액션 맞춤 컴포넌트, 통신 인터페이스, 자연어 프로세서 컴포넌트 및 콘텐츠 선택기 컴포넌트를 포함할 수 있다. 상기 메모리는 복수의 전자 디바이스들에 의해 지원되는 복수의 디바이스 액션 명령 쌍들을 포함하는 디바이스 액션 데이터를 저장할 수 있다. 각 디바이스 액션 명령 쌍은 복수의 디바이스 액션들 중 각 디바이스 액션 및 상기 각 디바이스 액션의 성능을 촉발하기 위한 복수의 디바이스 실행가능 명령들 중 각 디바이스 실행가능 명령을 포함할 수 있다. 상기 디바이스 액션 맞춤 컴포넌트는, 상기 복수의 전자 디바이스들에 의해 지원되는 상기 복수의 디바이스 액션 명령 쌍들 각각에 식별자를 맵핑할 수 있다. 통신 인터페이스는 오디오 신호 및 상기 식별자를 전자 디바이스로부터 수신할 수 있다. 상기 오디오 신호는 음성 기반 쿼리에 응답하여 상기 전자 디바이스에 의해 획득된다. 자연어 프로세서 컴포넌트는 상기 오디오 신호 및 상기 식별자와 관련된 콘텐츠를 사용하여 상기 복수의 디바이스 액션 명령 쌍들 중 하나의 디바이스 액션 명령 쌍을 식별할 수 있다. 상기 디바이스 액션 맞춤 컴포넌트는 상기 디바이스 액션 데이터 또는 상기 디바이스 액션 명령 쌍에 기초하여 상기 음성 기반 쿼리의 컨텍스트를 식별할 수 있다. 상기 콘텐츠 선택기 컴포넌트는 상기 음성 기반 쿼리의 컨텍스트에 기초하여 디지털 컴포넌트를 선택할 수 있다. 상기 통신 인터페이스는 상기 디지털 컴포넌트 및 상기 디바이스 액션 명령 쌍과 관련된 디바이스 실행가능 명령을 상기 전자 디바이스로 전송할 수 있다. 상기 디바이스 실행가능 명령은, 실행될 때, 상기 디바이스 액션 명령 쌍과 관련된 상기 디바이스 액션의 성능을 유발할 수 있고, 그리고 디지털 컴포넌트는 전자 디바이스에 의해 제시(또는 렌더링)될 수 있다.
본 발명의 적어도 하나의 양태에 따르면, 음성 기반 상호작용들에 응답하는 콘텐츠를 제공하는 방법이 제공된다. 상기 방법은, 데이터 처리 시스템이 복수의 전자 디바이스들에 의해 지원되는 복수의 디바이스 액션 명령 쌍들을 포함하는 디바이스 액션 데이터를 메모리에 저장하는 단계를 포함할 수 있다. 각 디바이스 액션 명령 쌍은 복수의 디바이스 액션들 중 각 디바이스 액션 및 상기 각 디바이스 액션의 성능을 촉발하기 위한 복수의 디바이스 실행가능 명령들 중 각 디바이스 실행가능 명령을 포함할 수 있다. 상기 방법은, 데이터 처리 시스템이, 상기 복수의 전자 디바이스들에 의해 지원되는 상기 복수의 디바이스 액션 명령 쌍들 각각에 식별자를 맵핑하는 단계를 포함할 수 있다. 상기 방법은, 데이터 처리 시스템이, 오디오 신호 및 상기 식별자를 전자 디바이스로부터 수신하는 단계를 포함할 수 있다. 상기 오디오 신호는 음성 기반 쿼리에 응답하여 상기 전자 디바이스에 의해 획득된다. 상기 방법은, 데이터 처리 시스템이, 상기 오디오 신호 및 상기 식별자와 관련된 콘텐츠를 사용하여 상기 복수의 디바이스 액션 명령 쌍들 중 하나의 디바이스 액션 명령 쌍을 식별하는 단계를 포함할 수 있다. 상기 방법은 데이터 처리 시스템이 상기 디바이스 액션 데이터 또는 상기 디바이스 액션 명령 쌍에 기초하여 상기 음성 기반 쿼리의 컨텍스트를 식별하는 단계를 포함할 수 있다. 상기 방법은, 데이터 처리 시스템이, 상기 음성 기반 쿼리의 컨텍스트에 기초하여 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다. 상기 방법은, 데이터 처리 시스템이, 상기 디지털 컴포넌트 및 상기 디바이스 액션 명령 쌍과 관련된 디바이스 실행가능 명령을 상기 전자 디바이스로 전송하는 단계를 포함할 수 있다. 상기 디바이스 액션의 성능을 유발하기 위한 상기 디바이스 실행가능 명령은 상기 디바이스 액션 명령 쌍과 관련될 수 있고 그리고 디지털 컴포넌트는 상기 전자 디바이스에 의해 제시될 수 있다.
이러한 측면들과 다른 측면들 및 구현들은 아래에서 자세히 논의된다. 전술 한 정보와 다음의 상세한 설명은 다양한 측면들 및 구현들의 예시적인 예들을 포함하고 그리고 청구된 양태들 및 구현들의 특성과 특징을 이해하기 위한 개요 또는 프레임 워크를 제공한다. 도면들은 다양한 양태들 및 구현들에 대한 예시 및 추가 이해를 제공하며, 본 명세서에 통합되고 그 일부를 구성한다.
첨부된 도면들은 일정한 비율로 그려지지 않는다. 다양한 도면들에서 참조 번호들 및 명칭들은 같은 요소들을 나타낸다. 명확성을 위해 모든 컴포넌트가 모든 도면에 라벨링되지 않는다.
도 1은 음성 기반 상호작용 능력들 및 맞춤형 디지털 가상 어시스턴트 (DVA) 기능을 가진 전자 디바이스들을 가능하게하는 예시적인 시스템을 도시한다.
도 2는 전자 디바이스들에서 음성 기반 상호작용들을 가능하게 하는 예시적인 방법의 흐름도를 도시한다.
도 3은 음성 기반 상호작용들을 지원하는 전자 디바이스의 블록도를 도시한다.
도 4는 전자 디바이스들이 음성 기반 상호작용들을 지원할 수 있게 하는 예시적인 방법의 흐름도를 도시한다.
도 5는 음성 기반 상호작용들에 응답하여 전자 디바이스들에 콘텐츠를 제공하는 예시적인 방법의 흐름도를 도시한다.
도 6은 여기에서 서술되고 예시된 시스템들 및 방법들의 요소들을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 예시하는 블록도이다.
다음은 제2자 디바이스들, 제3자 애플리케이션들 또는 이들의 조합과 오디오 기반(또는 채팅 기반) 상호작용들을 가능하게 하는 방법들, 장치들 및 시스템들과 관련된 다양한 개념들 및 구현들에 대한 보다 자세한 서술이다. 위에서 소개되고 아래에서 더 상세히 논의되는 다양한 개념들은 임의의 다양한 방식들로 구현될 수 있다.
디지털 가상 어시스턴트들(DVA)은 온라인 플랫폼에 통합되어 온라인 플랫폼과 관련된 클라이언트 디바이스들과 음성 기반(오디오 기반) 또는 채팅 기반 상호작용을 허용할 수 있다. 예를 들어, 클라이언트 디바이스들의 사용자들은 음성 기반 또는 채팅 기반 쿼리들을 통해 온라인 검색 또는 온라인 거래와 같은 온라인 작업들을 시작할 수 있다. DVA는 음성 기반 또는 채팅 기반 쿼리들을 해석하고 음성 기반 또는 채팅 기반 쿼리들에서 요청된 온라인 액션들을 시작할 수 있다. 일반적으로, DVA 기능들이 있는 클라이언트 디바이스들은 각 사용자와 음성 대화를 통해 사용자들의 쿼리들을 수행할 수도 있다. 사용자들과 의미있는 대화들을 수행하고 사용자들의 음성 기반 쿼리들을 정확하게 제공하는 DVA 기능들은 사용자 경험을 크게 향상시키는 해당 클라이언트 디바이스들에 상당한 가치를 더한다. 특히, DVA는 클라이언트 장치와 핸즈프리 상호작용을 허용한다. 또한, 음성 기반 또는 채팅 기반 입력에 대한 정확한 해석들과 의미있는 응답들을 통해, DVA들은 합리적인 사용자 디바이스 대화들을 허용하여 클라이언트 디바이스들과 사용자들의 상호작용들을 인간화한다.
DVA는 온라인 플랫폼 및 해당 클라이언트 디바이스들에 통합되어 해당 클라이언트 디바이스들과 채팅 기반 또는 음성 기반 상호작용들을 허용할 수 있다. 예를 들어, DVA 클라이언트(또는 DVA 소프트웨어 에이전트)는 DVA 기능들을 구현하는 하나 이상의 원격 서버들과 통신할 수 있는 모바일 디바이스들 또는 스마트 홈 디바이스들의 운영 체제(OS)에 통합될 수 있다. DVA 기능들을 구현하는 OS 및 하나 이상의 서버들은 여기에서 제1자 공급자로 지칭되는 동일한 엔티티 또는 공급자에 의해 제공될 수 있다. 이러한 통합 접근 방식은, DVA를 제공하는 제1자 공급자와 상이한 제2자 디바이스 공급자(예를 들어, OEM(Original Equipment Manufacturer), 디바이스 제조업체 또는 디바이스 공급업체)는 자신의 DVA를 구현하거나 DVA 에이전트가 통합된 OS를 채택할 수 있어, 각 제2자 디바이스가 DVA와 관련된 기능들 및 서비스들을 지원할 수 있도록 지원한다. 두 옵션들 모두 광범위한 제2자 디바이스들에서 DVA들의 확장에 제한들 또는 장벽들을 부과한다. 이러한 제한들 및 장벽들은 제3자 공급자들(예를 들어, 제1자 공급자 및 제2자 공급자와 상이함)이 구현한 제3자 애플리케이션들(예를 들어, 모바일 애플리케이션들 또는 클라이언트 애플리케이션들)과의 음성 기반 상호작용들 가능하게 하기 위해 DVA들의 사용을 확대하는데도 적용되어 제1자 디바이스 또는 제2자 디바이스에서 실행한다.
제2자 공급자들의 경우, 기존 OS를 수정하거나 DVA 클라이언트를 통합하는 새로운 OS를 채택하는 것은 업무를 방해하고 기술적으로 번거롭고 비용이 많이들 수 있다. OS를 변경하지 않아도, 각 제1자 공급자의 기존 DVA를 사용하는 경우, DVA 플랫폼 또는 DVA 서버들과 통신하고 각각의 제2자 디바이스에 서비스를 제공하기 위해 (예를 들어, 클라우드 서버들을 통해) 클라우드 존재를 유지하는 제2자 디바이스들의 공급자들을 포함할 수 있다. 또한, 각 제1자 공급자의 기존 DVA를 사용하면, 제2자 디바이스들은 사용자 정의를 통해 공급자들의 디바이스들과 음성 기반 상호작용을 차별화하거나 경쟁 업체보다 차별화된 경험을 제공할 수 있는 유연성이 거의 없다. 예를 들어, 특정 제2자 디바이스와의 음성 기반 상호작용에 사용되는 어휘의 범위는 (예를 들어, 다른 디바이스들과의 음성 기반 상호작용들에 사용되는 어휘의 범위와 비교하여) 상대적으로 좁고 구체적일 수 있다. 구체적으로, (예를 들어, 특정 유형 또는 모델의) 각 디바이스는 다른 디바이스들에 의해 지원되는 디바이스 액션들과 상이할 수 있는 대응하는 디바이스 액션들의 특정 세트를 지원할 수 있다. 사용자가 기기와 상호작용할 때 일반적으로 해당 디바이스 동작들을 트리거하기 때문에, 특정 유형 또는 모델의 디바이스들에서 지원하는 디바이스 동작들을 정의하는 좁은 어휘 범위를 사용하면 DVA 시스템이 상기 특정 유형 또는 모델의 디바이스들에 더 나은 서비스를 제공할 수 있다. DAV 시스템은 음성 기반 쿼리들을 해석하고 이러한 쿼리들에 대해 현명한 응답들을 제공하는 데 있어 정확도를 향상시킬 수 있다. 여기서 사용되는 DVA 시스템은 서버 측 DVA 기능들을 제공하는 데이터 처리 시스템을 지칭한다.
DVA 기반 서비스들 또는 기능들(예를 들어, 음성 기반 또는 채팅 기반 상호작용)의 사용을 제3자 애플리케이션들로 확장하는 것과 관련하여 유사한 제한들 및 장벽들이 적용된다. 제3자 애플리케이션들에는 모바일 애플리케이션들, 클라이언트 애플리케이션들 또는 제3자 개발자들이 개발한 다른 애플리케이션들이 포함될 수 있다. 여기에 사용된 것처럼, 제3자는 DVA 시스템을 제공하는 엔티티(여기에서 제1자라고도 함) 및 애플리케이션이 실행되거나 구동될 수 있는 디바이스를 제공하는 엔티티(여기서는 제2자라고도 함)와 상이한 엔티티(예를 들어, 애플리케이션 개발자)이다. 제3자 애플리케이션은 원래 제조 또는 개발 단계에서 디바이스에 설치되지 않고 디바이스가 시장에 판매된 후 다운로드 및 설치(또는 개발)될 수 있다. 디바이스가 DVA 클라이언트를 지원하더라도, 디바이스에서 실행되는 제3자 애플리케이션은, 예를 들어, 제3자 애플리케이션 또는 그 콘텐츠와의 음성 기반 상호작용을 허용하기 위해 DVA의 기능들을 사용하지 못할 수 있다.
본 발명에서, 셀프 서비스 접근법은, 제2자 디바이스 공급자들 또는 제3자 애플리케이션 공급자들이 음성 기반(예를 들어, 채팅 기반) 상호작용들을 가능하게 하여 각각의 사용자 지정 액션들을 트리거링하도록 할 수 있다. 제2자 디바이스 공급자는 각 디바이스들의 그룹(예를 들어, 특정 유형, 카테고리 또는 모델의 디바이스들)에 의해 지원되는 사용자 지정 디바이스 액션들의 번들(또는 액션 패키지)를 빌드하거나 정의할 수 있고 그리고 상기 번들(또는 액션 패키지)을 DVA 시스템에 제공할 수 있다. 사용자 지정 디바이스 액션들의 각 번들은 각 디바이스들의 그룹에서 지원하는 하나 이상의 디바이스 액션들과 하나 이상의 해당 디바이스 실행 가능 명령들을 포함(또는 지정)할 수 있다. 사용자 지정 디바이스 액션들의 번들의 각 디바이스 액션은 해당 디바이스 실행 가능 명령과 연관될 수 있어 각 디바이스들의 그룹의 모든 디바이스에서 해당 디바이스 실행(또는 수행)을 한다. 사용자 지정 디바이스 액션들의 번들은 각 디바이스 액션에 대해, 해당 디바이스 액션의 실행과 관련하여 각 디바이스들의 그룹의 임의의 디바이스에 표시하기 위해 제공되는 해당 응답(예를 들어, 오디오, 시각적 또는 시청각 응답)을 포함할 수 있다.
DVA 시스템은 각 식별자와 관련하여 사용자 지정 디바이스 액션들의 각 번들을 유지할 수 있다. 식별자는 사용자 지정 디바이스 액션들의 번들, 제2자 디바이스 공급자의 식별자, 번들 ID, 사용자 지정 디바이스 액션들의 번들이 유지되는 디렉토리의 디렉터리 ID 또는 이들의 조합과 관련된 디바이스들의 그룹의 디바이스 모델을 나타내는 디바이스 모델 식별자(ID)일 수 있다. 제2자 디바이스 공급자는 사용자 지정 디바이스 액션들의 번들과 함께 DVA 시스템에 식별자를 제공할 수 있다. 사용자 지정 디바이스 액션들의 번들 및 식별자를 DVA 시스템에 제공하는 프로세스는 디바이스들의 해당 디바이스 그룹(또는 해당 디바이스 모델)을 DVA 시스템에 등록하는 것으로 볼 수 있다. 디바이스 모델(또는 디바이스들의 그룹)을 등록하는 것은 또한 디바이스들의 그룹(예를 들어, 디바이스 모델과 관련된)의 속성들, 특성들, 특징들 또는 기능들의 표시, 디바이스들의 그룹 또는 디바이스 모델과 관련된 기타 메타 데이터 또는 이들의 조합을 제공하는 것을 포함할 수 있다. DVA 시스템(또는 그것의 제1자 공급자)은 제2자 디바이스 공급자가 DVA 시스템에 장치 모델 (또는 디바이스들의 그룹)을, 예를 들어, 사용자 인터페이스(UI), 웹 인터페이스 또는 안정된 API(application programming interface)를 통해, 등록하도록 할 수 있다. 제1자 공급자 또는 DVA 시스템은, 예를 들어, 사용자 지정 디바이스 액션들의 번들에 제공된 디바이스의 실행 가능 명령들을 성공적으로 테스트할 때 디바이스 모델(또는 디바이스들의 그룹)을 검증(또는 인증)할 수 있다.
마찬가지로, 제3자 애플리케이션 공급자는 각 애플리케이션에서 지원하는 사용자 지정 애플리케이션 작업들의 번들(또는 패키지)을 빌드하거나 정의하고 그리고 번들(또는 패키지)을 DVA 시스템에 제공할 수 있다. 사용자 지정 애플리케이션 액션들의 번들에는 애플리케이션에서 지원하는 하나 이상의 액션들과 하나 이상의 해당 애플리케이션 실행 가능 명령들이 포함될 수 있다. 각 사용자 지정 애플리케이션 액션은 해당 애플리케이션 실행 명령과 연관될 수 있어 애플리케이션이 해당 사용자 지정 애플리케이션 액션을 실행하도록 한다. 사용자 지정 디바이스 액션들의 번들들과 유사하게, DVA 시스템은 각 식별자와 관련하여 사용자 지정 애플리케이션 액션들의 각 번들을 유지할 수 있다. 식별자는, 애플리케이션 ID, 제3자 애플리케이션 공급자 ID, 번들 ID 또는 사용자 지정 애플리케이션 액션들의 번들이 유지되는 디렉터리(또는 프로젝트)를 나타내는 디렉터리 ID일 수 있다.
제1자 공급자 또는 DVA 시스템은 통합 제2자 디바이스들 또는 제3자 애플리케이션을 위한 하나 이상의 소프트웨어 개발 키트(SDK)들을 제공하여 음성 기반 사용자 상호작용을 허용할 수 있다. 제1자 공급자는 제2자 디바이스들 및 제3자 애플리케이션들에 대해 별도의 SDK들을 제공할 수 있다. SDK(들)은, 제2자 디바이스들 또는 제3자 애플리케이션에 통합된 경우, 오디오 수신기들(예를 들어, 마이크)을 활성화하고, 대화들을 시작하며, DVA 시스템과의 통신 세션 시작, DVA 시스템에 요청들을 전송 및 DVA 시스템으로부터 응답들을 수신, DVA 시스템으로부터 수신된 응답들을 파싱 및 이들의 조합을 위한 소프트웨어 도구들을 제공할 수 있다. 또한, 제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자는 디바이스 실행 가능 명령들 또는 애플리케이션 실행 가능 명령들의 디바이스 내 실행을 수행하는 디바이스 내 액션 처리기를 구축할 수 있다.
제2자 디바이스(예를 들어, 등록된 디바이스 그룹 또는 디바이스 모델과 연관됨)는 각 사용자로부터 음성 기반 쿼리를 수신할 수 있고 그리고 음성 기반 쿼리에 대응하는 오디오 신호를 생성할 수 있다. 제2자 디바이스는 각각의 액션 패키지(예를 들어, 디바이스 모델 ID)와 관련된 식별자와 함께 오디오 신호를 DVA 시스템에 전송할 수 있다. DVA 시스템은 오디오 신호 및 식별자를 기반으로 사용자 지정 디바이스 액션들의 각 액션 패키지에 나열된 디바이스 액션들 중에서 디바이스 액션을 식별할 수 있다. 디바이스 액션을 식별할 때, DVA 시스템은 각 액션 패키지에 나열된 액션들을 나타내는 식들 또는 쿼리 패턴들에 상이한 가중치들을 할당할 수 있다. DVA 시스템은 디바이스 모델에서 지원하는 디바이스 액션들을 나타내는 쿼리 패턴들에 대한 상황별 음성 바이어스를 사용하여 상황별 디바이스 액션 일치 및 순위 지정 메커니즘을 적용할 수 있다. 예를 들어, 수신된 오디오 신호를 복수의 쿼리 패턴들 중 하나의 쿼리 패턴에 매칭할 때, DVA 시스템은 디바이스 모델에 의해 지원되는 디바이스 액션들과 관련된 (또는 디바이스 액션들을 나타내는) 쿼리 패턴들에 바이어스를 적용할 수 있다.
DVA 시스템은 식별된 장치 액션과 관련된 디바이스 실행 가능 명령을 검색할 수 있고 그리고 실행을 위해 디바이스 실행 가능 명령을 제2자 디바이스로 보낼 수 있다. DVA 시스템은 또한 식별된 디바이스 액션과 관련된 응답을 검색할 수 있고, 그리고 음성 기반 퀀리에서 요청된 디바이스 액션의 실행 전, 실행 도중 또는 실행 이후 사용자에게 표시 (또는 재생)을 위해 응답의 오디오 버전을 제2자 디바이스에 전송한다. 제2자 디바이스가 디바이스 실행가능한 명령을 수신하면, 온 디바이스 액션 핸들러는 DVA 시스템에서 수신한 통신으로부터 디바이스 실행 가능 명령을 추출 또는 검색할 수 있고, 그리고 제2자 디바이스가 디바이스 실행 가능 명령을 실행하여 음성 기반 쿼리에서 요청된 디바이스 액션을 수행하도록 한다. 제2자 디바이스는 디바이스 액션 실행 전, 실행 중 또는 실행 후에 (DVA 시스템에서 수신된) 모든 오디오, 시각적 또는 시청각 응답을 재생할 수 있다.
제3자 애플리케이션(예를 들어, SDK가 통합되어 디바이스에서 실행됨)은 디바이스의 디스플레이에 표시하기 위한 대화형 사용자 인터페이스(UI) 컴포넌트를 제공할 수 있다. 예를 들어, 디바이스의 사용자는, 대화형 UI 컴포넌트와 상호작용(예를 들어, 클릭, 터치 또는 스와이프)하여 제3자 애플리케이션과 대화를 시작할 수 있다. 사용자로부터 음성 기반 쿼리를 수신하면, 애플리케이션은 음성 기반 쿼리에 대응하는 오디오 신호를 생성할 수 있고, 그리고 각각의 액션 패키지와 관련된 식별자(예를 들어, 애플리케이션 ID, 액션 패키지 ID, 디렉토리 ID)와 함께 오디오 신호를 DVA 시스템에 전송할 수 있다. DVA 시스템은 오디오 신호와 식별자를 기반으로 각 액션 패키지에 나열된 사용자 지정 애플리케이션 액션들 중 하나의 애플리케이션 액션을 식별할 수 있다. 디바이스 액션을 식별할 때, DVA 시스템은 각 액션 패키지에 나열된 액션들을 나타내는 식들 또는 쿼리 패턴들에 다른 가중치를 할당할 수 있다. DVA 시스템은 제3자 애플리케이션에서 지원하는 애플리케이션 액션들을 나타내는 쿼리 패턴들에 대한 상황별 음성 바이어스를 사용하여 상황별 디바이스 매칭 일치 및 순위 지정 메커니즘을 적용할 수 있다. DVA 시스템은 애플리케이션 액션과 관련된 명령을 식별할 수 있고 그리고 제3자 애플리케이션을 구매하기 위해 명령을 디바이스로 전송할 수 있다.
DVA 시스템은 또한 식별자, 식별된 디바이스 또는 애플리케이션 액션, 디바이스의 식별자 또는 이들의 조합을 사용하여 음성 기반 쿼리의 컨텍스트를 식별할 수 있다. 음성 기반 쿼리의 컨텍스트를 식별하는 것은 음성 기반 쿼리 뒤에 있는 사용자 의도를 식별하는 것을 포함할 수 있다. DVA 시스템은 음성 기반 쿼리의 컨텍스트를 기반으로 제3자 디지털 컴포넌트(예를 들어, 광고)와 같은 디지털 컴포넌트를 선택할 수 있고 표시를 위해 디지털 컴포넌트를 디바이스로 보낼 수 있다. 디지털 컴포넌트는 오디오 콘텐츠 또는 시청각 콘텐츠를 포함할 수 있다. 디지털 컴포넌트에는 사용자에게 서비스들 또는 제품들을 제안하거나 제공하기 위한 홍보 콘텐츠가 포함될 수 있다. 디바이스는 음성 기반 쿼리에 대한 자연스러운 응답의 일부로 느끼거나 사용자에게 보이도록 매끄러운 방식으로 디지털 컴포넌트를 제공할 수 있다.
본 발명의 예시적인 실시예들에 따르면, 여기에서 서술된 시스템들, 방법들 및 디바이스들은, 제1 공급자와 관련된 DVA 시스템과 통신하기 위해 클라우드 포인트를 유지하는 제2자 디바이스 공급자들 또는 제3자 애플리케이션 공급자들 없이 디바이스 액션들의 온 디바이스 실행 모델을 사용하여 제2자 디바이스들 또는 제3자 애플리케이션들과의 음성 기반 상호작용들을 가능하게 한다. DVA 시스템은 제2자 디바이스에서 오디오 쿼리들을 수신하고 음성 인식 및 스마트 자연어 처리를 수행하여 요청된 디바이스 또는 애플리케이션 액션을 식별할 수 있다. DVA 시스템은 요청된 디바이스 액션을 실행하도록 제2자 디바이스를 트리거하는 제2자 디바이스에 디바이스 실행 가능 명령을 나타내는 응답(예를 들어, JSON 응답)을 제공할 수 있다. 또한, 본 발명의 예시적인 실시예에 따르면, 사용자는 디바이스가 에이전트를 호출하거나 대화하도록 명시적으로 요청하지 않고 특정 디바이스 액션들 또는 특정 애플리케이션 액션들의 성능을 요청하기 위해 음성 기반 쿼리를 할 수 있다.
다음에서, 디바이스 액션은 사용자 지정 디바이스 액션 또는 사용자 지정 애플리케이션 액션을 참조할 수 있다. 실제로, 사용자 지정 디바이스 액션들 및 사용자 지정 애플리케이션 작업들 모두 전자 (또는 클라이언트) 디바이스에서 실행된다. 또한, 전자(또는 클라이언트) 디바이스 또는 시스템은 명령어들 또는 명령들을 실행하기 위한 전자 (또는 처리) 기능들이 있는 디바이스 또는 시스템을 참조할 수 있다.
도 1은 음성 기반 상호작용 능력들 및 맞춤형 디지털 가상 어시스턴트(DVA) 기능을 갖는 전자 디바이스들 및 제3자 애플리케이션을 가능하게 하는 예시적인 시스템(100)을 도시한다. 시스템(100)은, 데이터 처리 시스템(102), 및 통신 네트워크(106)를 통해 데이터 처리 시스템(102)에 통신적으로 연결된 복수의 클라이언트 디바이스들(104)을 포함할 수 있다. 데이터 처리 시스템(102) 및 클라이언트 디바이스들(104)은 별개의 또는 개별 공급자들과 연관될 수 있다. 시스템(100)은 클라이언트 디바이스들(104)의 공급자들 또는 클라이언트 디바이스들(104)(예를 들어, 제2자 디바이스들)에서 실행 가능한 제3자 애플리케이션의 공급자들과 관련된 하나 이상의 컴퓨팅 디바이스들(108)을 포함할 수 있다. 여기에서 사용되는 바와 같이, 디바이스 공급자는 장치 제작자 또는 클라이언트 디바이스들(104)을 고객들 또는 사용자들에게 제공하는 다른 엔티티를 포함할 수 있다. 제3자 애플리케이션 공급자에는 애플리케이션 개발자 또는 소비를 위해 애플리케이션을 공급하는 다른 엔터티가 포함될 수 있다. 하나 이상의 컴퓨팅 디바이스들(108)은 통신 네트워크(106)를 통해 데이터 처리 시스템(102)에 통신적으로 결합될 수 있다. 통신 네트워크(106)는 인터넷, 무선 셀룰러 네트워크, 유선 네트워크, 근거리 통신망, 광역 네트워크, 공중 네트워크, 사설 네트워크, 또는 이들의 조합을 포함할 수 있다.
데이터 처리 시스템(102)은 데이터 또는 컴퓨터 코드 명령어들을 저장하기 위한 메모리(110), 컴퓨터 코드 명령어들을 실행하기 위한 하나 이상의 프로세서들 (112), 및 클라이언트 디바이스들(104) 또는 컴퓨팅 디바이스들(108)과 같은 다른 시스템들 또는 디바이스들과 통신하기 위한 통신 인터페이스(114)를 포함할 수 있다. 데이터 처리 시스템(102)은 하나 이상의 액션 패키지들(또는 번들들)(118)을 저장하기 위한 데이터 저장소(116)를 포함할 수 있다. 데이터 처리 시스템(102)은 액션 패키지들(118) 또는 대응 데이터의 저장, 액세스 또는 처리를 관리하기 위한 액션 맞춤 컴포넌트(120)를 포함할 수 있다. 데이터 처리 시스템(102)은 오디오 신호들을 텍스트로 변환하기 위한 음성 인식 컴포넌트(122), 및 음성 인식 컴포넌트 (122)에 의해 제공되는 텍스트 출력과 같은 텍스트의 구조 및 의미를 결정하기 위한 자연어 프로세서(NLP) 컴포넌트(124)를 포함할 수 있다. 데이터 처리 시스템 (102)은 텍스트를 대응하는 오디오(또는 가청) 신호들로 변환하기 위한 오디오 신호 생성기 컴포넌트를 포함할 수 있다. 데이터 처리 시스템(102)은 클라이언트 디바이스들(104)에 표시하기 위한 콘텐츠 또는 디지털 컴포넌트들(여기에서 콘텐츠 항목들이라고도 함)을 선택하기 위한 콘텐츠 선택기 컴포넌트(128)를 포함할 수 있다.
데이터 처리 시스템(102)은 하나 이상의 컴퓨터 서버들(도 1에 도시되지 않음)을 포함할 수 있다. 예를 들어, 데이터 처리 시스템(102)은 분산 컴퓨팅 기술들을 용이하게 하는 복수의 논리적으로 그룹화된 서버들(도 1에 도시되지 않음)을 포함할 수 있다. 서버들의 논리적 그룹은 데이터 센터, 서버 팜 또는 머신 팜이라고 할 수 있다. 서버들은 지리적으로 분산될 수 있다. 데이터 센터 또는 머신 팜을 단일 엔티티로 관리하거나 머신 팜에 복수의 머신 팜들을 포함할 수 있다. 각 머신 팜 내의 서버는 이기종일 수 있다. 하나 이상의 서버들 또는 머신들이 하나 이상의 운영 체제 플랫폼 유형들에 따라 작동할 수 있다. 데이터 처리 시스템(102)은, 예를 들어, 기업 데이터 센터에 위치한 관련 스토리지 시스템과 함께 하나 이상의 고밀도 랙 시스템들에 저장된 데이터 센터의 서버들을 포함할 수 있다. 이러한 방식으로 통합된 서버들을 갖는 데이터 처리 시스템(102)은 로컬화된 고성능 네트워크들에 서버들 및 고성능 저장 시스템들을 위치시킴으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버들 및 저장 시스템들을 포함하는 데이터 처리 시스템(102) 컴포넌트들의 전부 또는 일부를 중앙 집중화하고 이를 고급 시스템 관리 도구와 결합하면 서버 리소스들을 보다 효율적으로 사용할 수 있으며, 이는 전력 및 처리 요구 사항들을 절약하고 대역폭 사용을 감소시킨다.
클라이언트 디바이스들(104)은 예를 들어 제2자 디바이스들의 세트의 공급자들에 의해 정의된 디바이스 모델을 갖는 (또는 디바이스 모델과 연관된) 제2자 디바이스들의 세트를 포함할 수 있다. 일반적으로, 데이터 처리 시스템(102)은 각각의 디바이스 모델 또는 디바이스 유형을 갖는 (또는 이와 연관된) 제2자 디바이스들의 각 세트와 함께 복수의 제2자 디바이스들의 세트들을 제공할 수 있다(또는 이에 통신적으로 결합될 수 있다). 클라이언트 디바이스들(104)은 제3자 애플리케이션들이 설치된 제1자 또는 제2자 디바이스들을 포함할 수 있다. 클라이언트 (또는 전자) 디바이스들(104)은, 로봇들, 자동차들 또는 기타 차량들, 가전 제품들, 가정 보안 시스템들, 조명 제어 시스템들, 케이블 박스들, 스마트 텔레비전들, 미디어 플레이어들, 라디오 디바이스들, 스마트 알람 시계들, 스마트 시계들, 모바일 또는 휴대용 디바이스들(예를 들어, 태블릿들, 스마트 폰들 또는 휴대용 미디어 플레이어들), 비디오 게임 콘솔들, 의료 영상 디바이스들, 피트니스 및 운동 기기들, 또는 명령어들 또는 명령들을 실행하는 처리 기능들 및 예를 들어, 네트워크(106)를 통해 데이터 처리 시스템(102)과 통신하기 위한 통신 기능들을 갖는 다른 디바이스들을 포함할 수 있다. 디바이스 모델은 각 피처들, 속성들, 특성들 또는 기능들의 세트를 공유하는 해당 공급자의 디바이스들의 세트 또는 그룹을 정의하기 위해 디바이스 공급자에 의해 정의(또는 지정)될 수 있다. 디바이스 모델들의 예들로는 자동차(또는 기타 차량) 모델들, 가전 제품 모델들(냉장고 모델들 또는 스토브 모델들), 주택 보안 시스템 모델들, 조명 제어 시스템 모델들, 케이블 박스 모델들, 스마트 TV 모델들, 미디어 플레이어 모델들, 라디오 디바이스 모델들, 스마트 알람 시계 모델들, 스마트 시계 모델들, 스마트 폰 모델들, 태블릿 모델들, 랩톱 모델들, 비디오 게임 콘솔 모델들, 의료 영상 디바이스 모델들 또는 피트니스 및 운동 기기 모델들을 포함할 수 있다. 디바이스 모델에는, 디바이스 모델 식별자(예를 들어, 디바이스 모델 이름, 디바이스 모델 일련 번호 또는 디바이스 모델 코드)가 포함될 수 있다. 특정 디바이스 모델이 있는 제2자 디바이스들은 공통 부분을 공유하는 디바이스 식별자들을 가질 수 있다. 디바이스 식별자들의 공통 부분은 디바이스 모델의 식별자 또는 표시자 역할을 할 수 있다. 디바이스 공급자는 해당 디바이스 모델과 연관된 각 세트 또는 그룹과 함께 디바이스들(104)의 다중 세트들(또는 그룹들)을 가질 수 있다.
주어진 디바이스 모델(또는 디바이스 유형 또는 디바이스 카테고리)과 관련된 제2자 디바이스들은 각각의 복수 디바이스들 액션들을 지원할 수 있다. 각각의 복수의 디바이스 액션들은, 특정 디바이스 모델을 갖는 제2자 디바이스들에 의해 수행될 수 있고 제2자 디바이스들의 사용자들에 의해 트리거될 수 있는 액션들을 나타낼 수 있다. 예를 들어, 주어진 로봇 모델의 로봇들과 관련된 디바이스 동작들은 예를 들어 왼쪽으로 이동, 오른쪽으로 이동, 앞으로 이동, 뒤로 이동 또는 이들의 조합을 포함할 수 있다. 특정 보안 시스템 모델의 홈 보안 시스템에서 지원하는 디바이스 액션들에는, 예를 들어, 외출 모드 활성화, 체류 모드 활성화, (예를 들어, 특정 카메라 번호의) 특정 카메라로 전환, 알람 활성화, 알람의 비활성화 또는 이들의 조합을 포함할 수 있다. 특정 피트니스 및 운동 기기 모델의 피트니스 및 운동 기기(예를 들어, 러닝 머신)에서 지원하는 장치 액션들에는, 예를 들어, 심장 강화 모드로 활성화/전환, 지방 연소 모드로 활성화/전환, 속도를 특정 속도 값으로 설정, 특정 고도 각도로 고도 설정 또는 이들의 조합을 포함할 수 있다. 특정 디바이스 모델의 각 디바이스 액션은 해당 디바이스 액션을 실행하기 위해 상기 특정 디바이스 모델을 가진 제2자 디바이스들을 트리거하는 해당 명령 (또는 디바이스 실행 가능 명령)과 연관될 수 있다.
또한, 제3자 애플리케이션은 각각의 복수의 디바이스 액션들을 지원할 수 있다. 각각의 복수의 디바이스 액션들은 제3자 애플리케이션이 설치된 클라이언트 디바이스(104)에 의해 수행될 수 있는 액션들을 나타낼 수 있고, 그리고 제3자 애플리케이션 또는 클라이언트 디바이스의 사용자들에 의해 트리거될 수 있다. 예를 들면, 운전자들과 라이더들을 연결하기 위한 애플리케이션과 관련된 디바이스(또는 애플리케이션) 액션들에는, 제1 위치에서 제2 위치로의 라이드를 위한 검색, 라이드들의 목록에서 라이드 선택, 운전자의 현재 위치 확인, 또는 이들의 조합을 포함할 수 있다. 소셜 네트워크 애플리케이션의 디바이스(또는 애플리케이션) 액션들에는 페이지(예를 들어, 친구의 페이지) 열기, 친구가 공유한 미디어 파일 재생, 콘텐츠 항목 공유, 입력 콘텐츠로 친구의 게시물에 응답하는 것, 또는 이들의 조합을 포함할 수 있다. 내비게이션 애플리케이션의 디바이스 (또는 애플리케이션) 액션들에는 제1위치에서 제2위치로의 운전 방향들 (또는 경로) 제공, 경로를 따라 교통 정보 제공, 경로를 따른 시설(예를 들어, 주유소, 휴게소 또는 식당) 검색, 대체 경로로 전환하거나 이들의 조합을 포함할 수 있다.
제3자 애플리케이션 공급자 또는 제2자 디바이스 공급자는, 제3자 애플리케이션(또는 제3자 애플리케이션을 설치하는 클라이언트 디바이스들(104)) 또는 각각 디바이스 모델과 연관된 클라이언트 디바이스들(104)(예를 들어, 제2자 디바이스들)에 의해 지원되는 디바이스 액션들을 지정하는 액션 패키지(118)(예를 들어, 디바이스 액션 파일 또는 디바이스 액션 스크립트)를 생성할 수 있다. 액션 패키지(118)는, 각각의 디바이스 액션에 대해, 클라이언트 디바이스(104)에서 디바이스 액션을 트리거하기 위한 하나 이상의 쿼리 패턴들을 나열할 수 있다. 예를 들어, 특정 로봇 모델에 대해, 쿼리 패턴들은, 왼쪽으로 이동하기 위한 액션에 대해 "왼쪽으로 이동(move left)" 및 "왼쪽으로 가기(go left)", 오른쪽으로 이동하기 위한 액션에 대해 "오른쪽으로 이동(move right)" 및 "오른쪽으로 가기(go right)", 전진을 위한 액션에 대해 "앞으로 이동(move forward)" 및 "앞으로 가기(go forward)", 후진을 위한 액션에 대해 "뒤로 이동(move forward)" 및 뒤로 가기(go backward)" 또는 이들의 조합을 포함할 수 있다. 특정 보안 시스템 모델의 홈 보안 시스템의 경우, 쿼리 패턴들은, 외출 보안 모드 활성화의 액션을 위한 "외출 모두 활성화(activate away mode)" 및 "외출 모드로의 전환(switch to away mode)", 체류 보안 모드 활성화의 액션을 위한 "체류 모드 활성화(activate stay mode)" 및 "체류 모드로의 전환(switch to stay mode)", 특정 카메라로부터 비디오 콘텐츠로의 전환의 액션을 위한 "카메라(카메라_번호)로의 전환(switch to camera CAMERA_ NUMBER), 알람 활성화의 액션을 위한 "알람 활성화(activate alarm)", 알람 비활성화의 액션을 위한 "알람 비활성화(deactivate alarm)" 또는 그들의 조합을 포함할 수 있다. 특정 피트니스 및 운동 기기 모델의 피트니스 및 운동 기기(예를 들어, 러닝 머신)의 경우, 쿼리 패턴들은, 예를 들어, 심혈관 모드를 활성화하는 액션을 위한 "심혈관 모드 활성화(activate cardio mode)" 및 "심혈관 모드로의 전환(switch to cardio mode)", 지방 연소 모드의 활성화하는 액션을 위한 "지방 연소 모드 활성화(activate fat burn mode)" 및 "지방 연소 모드로의 전환(switch to fat burn mode)"를 포함할 수 있다. 모바일 디바이스의 경우, 예시적인 쿼리 패턴들에는 "설정 열기(open settings)", "전자 메일 열기(open email)", "내 알림 표시(show me my reminder)" 또는 이들의 조합이 포함될 수 있다. 운전자들과 라이더들을 연결하는 애플리케이션의 경우, 예시적인 쿼리들에는 "위치1에서 위치2로 이동해야 한다(need ride from LOCATION1 to LOCATION2)", "라이드와 함께 가세요(go with RIDE)" 또는 "운전자 위치 표시(show driver’s location)"를 포함할 수 있다. 소셜 네트워크 애플리케이션에 대한 쿼리들의 예로는 "친구 페이지 열기(opening FRIEND page)", "동영상 재생(play video)", "동영상 공유(share video)" 또는 "콘텐츠로 POST에 댓글 달기(comment to POST with CONTENT)"등이 포함될 수 있다. 내비게이션 애플리케이션의 경우, 해당 쿼리들에는 "LOCATION1에서 LOCATION2까지의 운전 경로 표시(show me driving directions from LOCATION1 to LOCATION2)", "교통 정보 표시(show me traffic information)", "시설 표시(show me FACILITIES)" 또는 "새 경로로 전환(switch to new route)"이 포함될 수 있다.
액션 패키지(118)는 각 디바이스 액션에 대한 액션 이름을 포함할 수 있다. 액션 패키지(118)는, 각각의 디바이스 액션에 대해, 디바이스 액션의 온-디바이스 실행을 트리거하기 위한 각각의 장치 실행 가능 명령(또는 애플리케이션 실행 가능 명령)을 지정할 수 있다. 액션 패키지(118)는 각각의 디바이스 액션에 대해, 디바이스 액션의 실행과 관련하여 클라이언트 디바이스들(104)에 의해 제시될 응답을 지정할 수 있다. 각각의 응답은 클라이언트 디바이스들(104)에 의한 표시를 위해 오디오로 변환될 수 있는 텍스트 표현으로서 서술될 수 있다. 아래의 스크립트는 스마트 쿠커에 대한 액션 패키지를 정의하는 예시적인 스크립트의 예시를 제공한다.
Figure pat00001
Figure pat00002
이 스크립트는 "COOK_CAKE"라는 케이크 요리를 위한 단일 디바이스 액션을 정의한다. 이 스크립트는 또한 디바이스 액션과 관련된 쿼리 패턴들 "bake a cake"및 "cook a cake"를 정의한다. 이 스크립트는 디바이스 실행 가능 명령을 정의한다. 이 스크립트는 디바이스 액션을 실행하기 위한 디바이스 실행가능한 명령 "명령. COOK_CAKE"를 정의한다. 또한, 이 스크립트는, 예를 들어, “bake a cake" 또는“cook a cake”라는 음성 쿼리에 응답하는 클라이언트 디바이스(104)에 의해 오디오 형식으로 재생될 "Baking a cake"와 같은 응답을 정의할 수 있다.
제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자는 컴퓨팅 디바이스(108)를 사용하여 대응하는 액션 패키지 및 액션 패키지와 연관된 식별자(ID)를 데이터 처리 시스템(102)에 제공할 수 있다. 예를 들어, 제2자 디바이스 공급자는 컴퓨팅 디바이스(108)를 통해 데이터 처리 시스템(102)에 각각의 디바이스 모델을 등록할 수 있다. 컴퓨팅 디바이스(108)는 데스크탑, 랩톱, 스마트폰, 휴대용 디바이스 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(108)는 디바이스 모델의 등록의 일부로서 액션 패키지(118) 및 디바이스 모델 데이터를 데이터 처리 시스템(102)에 전송할 수 있다. 디바이스 모델 데이터는, 예를 들어, 디바이스 모델의 표시자(또는 표시)(예를 들어, 디바이스 모델 식별자 또는 디바이스 모델 이름), 디바이스 모델과 관련된 디바이스들의 속성들, 특성들, 피처들 또는 기능들의 표시들, 해당 제2자 디바이스 공급자의 이름, 디바이스 모델과 관련된 디바이스들의 묘사, 디바이스 유형의 표시 또는 이들의 조합을 포함할 수 있다. 제3자 애플리케이션 공급자는 또한 컴퓨팅 디바이스(108)를 사용하여 각각의 액션 패키지(예를 들어, 애플리케이션에 의해 지원되는 디바이스 액션들을 정의) 및 액션 패키지와 연관된 ID(예를 들어, 애플리케이션 ID, 패키지 ID, 디렉토리 ID 또는 프로젝트 ID)를 데이터 처리 시스템(102)으로 전송한다. 데이터 처리 시스템(102)은 데이터 처리 시스템(102)에 액션 데이터, ID들 또는 기타 정보를 전송하기 위해 컴퓨팅 디바이스(108)에 의해 사용되는 안정된 API 또는 UI를 제공할 수 있다. 예를 들어, UI는 데이터 처리 시스템(102) 또는 제1자 공급자에 의해 제공되는 웹 페이지 또는 애플리케이션과 연관될 수 있다. 컴퓨팅 디바이스(108)는 웹 페이지 또는 애플리케이션에 액세스하여 디바이스 액션 데이터, 디바이스 모델 데이터, 애플리케이션 정보 데이터 또는 이들의 조합을, 예를 들어, UI의 대응하는 텍스트 입력 슬롯들에 채울 수 있다. 안정된 API는 HTTP 요청들(예를 들어, GET, PUT, POST 또는 DELETE)을 사용하여 데이터를 요청, 전송 또는 삭제하는 API이다.
아래의 스크립트는 컴퓨팅 디바이스(108)에 의해 제2자 디바이스 등록의 일부로서 데이터 처리 시스템(102)에 제공될 수 있는 데이터의 예시적인 도시를 제공한다. 데이터는 위에 제공된 예제 액션 패키지와 관련하여 논의된 스마트 쿠커와 관련된다.
Figure pat00003
위 스크립트의 데이터는 디바이스 모델 ID, 제조업체 이름, 제품 이름, 디바이스 설명, 디바이스 유형 및 액션 패키지(예를 들어, 위의 제1 스크립트와 관련된 액션 패키지)에 대한 참조(예를 들어, "com.smart cooker.intent.COOK CAKE")를 지정한다. 컴퓨팅 디바이스(108)는 또한 액션 패키지, 식별자 및 제2자 디바이스(또는 제3자 애플리케이션)와 관련된 기타 정보를 개별적으로 또는 함께 데이터 처리 시스템(102)으로 전송할 수 있다.
데이터 처리 시스템(102)의 컴포넌트들은 도 2 및 도 5과 관련하여 아래에서 더 상세히 논의된다.
도 2는 클라이언트(또는 전자) 디바이스와의 음성 기반 상호작용들을 가능하게 하는 예시적인 방법(200)의 흐름도를 도시한다. 방법(200)은 디바이스 액션 데이터 및 각각의 식별자를 수신하는 단계를 포함할 수 있다(단계 202). 방법 (200)은 메모리에 디바이스 액션 데이터를 저장하는 것을 포함할 수 있다(단계 204). 방법(200)은 식별자를 디바이스 액션 데이터에 맵핑하는 것을 포함할 수 있다(단계 206). 방법(200)은 클라이언트 디바이스로부터 식별자 및 오디오 신호를 수신하는 단계를 포함할 수 있다(단계 208). 방법(200)은 식별자 및 오디오 신호에 기초하여 디바이스 액션을 식별하는 단계를 포함할 수 있다(단계 210). 방법(200)은 디바이스 액션에 대응하는 디바이스 실행 가능 명령을 식별하는 단계를 포함할 수 있다(단계 212). 방법(200)은 디바이스 실행 가능 명령을 클라이언트 디바이스로 전송하는 단계를 포함할 수 있다(단계 214).
도 1 및 도 2를 참조하면, 방법(200)은 대응하는 컴퓨팅 디바이스(108)로부터 디바이스 액션 데이터 및 대응하는 식별자를 수신하는 데이터 처리 시스템(102)을 포함할 수 있다(단계 202). 컴퓨팅 디바이스(108)는 제2자 디바이스 제공자 또는 제3자 애플리케이션 제공자와 연관될 수 있다. 식별자에는 디바이스 모델 ID(예를 들어, 디바이스 모델 이름, 디바이스 모델 코드 또는 이들의 조합), 디바이스 유형 ID, 프로젝트 ID, 디렉터리 ID, 애플리케이션 ID, 액션 패키지 ID, 공급자 ID 또는 이들의 조합을 포함할 수 있다. 프로젝트 ID는 음성 기반 상호작용을 통해 제2자 디바이스들 또는 제3자 애플리케이션의 세트를 활성화하는 프로젝트를 식별할 수 있다. 프로젝트는 제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자에 의해 데이터 처리 시스템(102)에 제공되는 소프트웨어 도구들 및/또는 데이터의 집합을 참조할 수 있다. 디렉토리 ID는 액션 데이터를 저장하기 위해 데이터 처리 시스템(102)에 의해 사용되는 디렉토리를 식별할 수 있다. 디바이스 액션 데이터는 제2자 디바이스(예를 들어, 디바이스 모델 ID 또는 디바이스 유형 ID와 관련됨) 또는 제3자 애플리케이션(예를 들어, 애플리케이션 ID 또는 프로젝트 ID와 관련됨)에 의해 지원되는 복수의 디바이스 액션들의 표시들을 포함할 수 있다. 디바이스 액션 데이터는 또한 복수의 디바이스 실행 가능한 명령들을 포함할 수 있다. 복수의 디바이스 실행 가능 명령들의 각 디바이스 실행 가능 명령은 복수의 디바이스 액션들 중 대응하는 디바이스 액션과 연관될 수 있다. 각각의 디바이스 액션에 대해, 대응하는 디바이스 실행 가능 명령은 하나 이상의 클라이언트 디바이스들(104)에서 디바이스 액션의 실행을 트리거할 수 있다. 데이터 처리 시스템(102)은 또한 디바이스 유형 표시, 제2자 디바이스 공급자의 식별자 또는 이름, 제3자 애플리케이션 공급자의 식별자 또는 이름, 디바이스 모델 또는 해당 제2자 디바이스들에 대한 설명, 제3자 애플리케이션의 설명, 제3자 애플리케이션의 버전 또는 이들의 조합을 포함하는 정보를 수신할 수 있다.
통신 인터페이스(114)는 또한 디바이스 액션들의 실행과 관련하여 클라이언트 디바이스들(104)에 의한 제시를 위한 복수의 응답들을 수신할 수 있다. 복수의 응답들의 각각의 응답은 대응하는 디바이스 액션과 연관될 수 있고 그리고 대응하는 디바이스 액션의 실행과 관련하여 제시를 위해 클라이언트 디바이스(104)에 제공될 수 있다. 예를 들어, 대응하는 디바이스 액션의 실행의 시작, 현재 또는 완료를 사용자에게 알리기 위해 오디오 형태로 클라이언트 디바이스(104)에 의해 응답이 재생될 수 있다.
방법(200)은 메모리에 디바이스 액션 데이터를 저장하는 단계를 포함할 수 있다(단계 204). 메모리(110) 또는 디바이스 액션 맞춤 컴포넌트(120)는 다양한 디바이스 모델들, 다양한 제3자 애플리케이션들, 또는 이들의 조합에 대한 디바이스 액션 데이터를 저장하기 위해 데이터 저장소(116)를 할당할 수 있다. 디바이스 액션 맞춤 컴포넌트(120)는 별도의 디바이스 모델들 또는 별도의 제3자 애플리케이션과 관련된 디바이스 액션 데이터를, 예를 들어, 별도의 액션 패키지들(118)로서 저장할 수 있다. 각 액션 패키지(118)는, 예를 들어, 디바이스 모델 또는 제3자 애플리케이션과 연관된 복수의 디바이스 액션들 및 대응하는 디바이스 실행가능 명령들을 나열하는 하나 이상의 대응하는 데이터 구조들, 하나 이상의 대응하는 데이터 파일들 또는 이들의 조합을 포함할 수 있다.
방법(200)은 식별자를 디바이스 액션 데이터와 맵핑하는 단계를 포함할 수 있다(단계 206). 디바이스 액션 맞춤 컴포넌트(114)는, 식별자가 대응하는 액션 패키지(118)의 복수의 디바이스 액션들 각각에 맵핑되거나 링크되도록 디바이스 액션 데이터를 배열할 수 있다. 예를 들어, 데이터 처리 시스템(102)에 의해 저장되는 액션 패키지(118)는 대응하는 식별자에 의해 식별될 수 있다. 예를 들어, 디바이스 액션 맞춤 컴포넌트(114)는 식별자를 포함하는 이름을 액션 패키지(118)에 할당할 수 있거나, 또는 식별자를 포함하는 이름을 가진 디렉토리에 액션 패키지(118)를 저장할 수 있다. 디바이스 액션 맞춤 컴포넌트(114)는 또한 각각의 디바이스 액션을 대응하는 디바이스 실행 가능 명령에 맵핑하거나 링크할 수 있다. 디바이스 액션 맞춤 컴포넌트(114)는 또한 각 디바이스를 대응 응답에 맵핑하거나 링크할 수 있다. 예를 들어, 디바이스 액션 맞춤 컴포넌트(114)는, 디바이스 액션들, 디바이스 실행 가능 명령들 및 응답들을, 대응하는 디바이스 실행 가능 명령 및 대응 응답과 동일한 행(또는 동일한 열)을 공유하는 각 디바이스 액션을 갖는 테이블에 저장할 수 있다.
디바이스 모델과 관련된 제2자 디바이스들의 경우, 디바이스 액션 맞춤 컴포넌트(114)는 또한 그 디바이스 모델과 연관된 제2자 디바이스를 제공하기 전에 디바이스 모델을 검증하거나 인증할 수 있다. 예를 들어, 디바이스 실행 가능 명령들을 (예를 들어, 프로토 타입 또는 실제 제2자 디바이스에서) 성공적으로 테스트하면, 디바이스 액션 맞춤 컴포넌트(114)는 액션 패키지(118)가 활성임을 나타내기 위해 대응하는 액션 패키지(118)에서 설정(또는 파라미터를 생성)함으로써 디바이스 모델을 검증하거나 인증할 수 있다. 비활성 액션 패키지들과 관련된 제2자 디바이스들은 데이터 처리 시스템(102)에 의해 서비스되지 않을 수 있다.
방법(200)은 클라이언트 디바이스로부터 식별자 및 오디오 신호를 수신하는 단계를 포함할 수 있다(단계 208). 통신 인터페이스(114)는 클라이언트 디바이스(104)(예를 들어, 액션 패키지(118)와 연관됨)로부터, 클라이언트 디바이스(104)의 사용자로부터의 음성 기반 쿼리에 응답하는 오디오 신호 및 식별자를 수신할 수 있다. 예를 들어, 제2자 디바이스의 경우, 각 사용자는 제2자 디바이스에 음성 기반 쿼리를 할 수 있으며, 이후, 제2자 디바이스는 쿼리에 해당하는 오디오 신호를 녹음할 수 있고, 식별자와 함께 데이터 처리 시스템(102)에 전송할 수 있다. 제3자 애플리케이션의 경우, 애플리케이션은 애플리케이션이 설치된 클라이언트 디바이스(104)와의 대화를 시작하기 위한 대화형 UI 컴포넌트를 제공할 수 있다. 대화형 UI 컴포넌트와 상호작용하면, 애플리케이션은 클라이언트 디바이스(104)가 예를 들어 오디오 수신기(예를 들어, 마이크로폰)를 활성화하거나, 데이터 처리 시스템 (102)과의 통신 세션을 설정하거나, 또는 둘 모두를 야기할 수 있다. 사용자가 음성 기반 쿼리를 할 때, 애플리케이션은 클라이언트 디바이스(104)가 쿼리를 나타내는 오디오 신호를 기록하고 그리고 식별자와 함께 오디오 신호를 데이터 처리 시스템(102)에 전송하게 할 수 있다. 클라이언트 장치(104)는 데이터 처리 시스템 (102)으로 전송하기 위한 오디오 입력을 수신할 오디오 수신기와는 상이한 다른 오디오 소스를 지정할 수 있다.
방법(200)은 식별자 및 오디오 신호에 기초하여 디바이스 액션을 식별하는 단계를 포함할 수 있다(단계 210). 디바이스 액션 맞춤 컴포넌트(120)는 수신된 식별자를 사용하여 데이터 처리 시스템(102)에 의해 유지되는 (또는 액세스 가능한) 액션 패키지들(118) 중에서 대응하는 액션 패키지(118)를 식별할 수 있다. 디바이스 액션 맞춤 컴포넌트(120)는 액션 패키지(118)에 나열된 각각의 디바이스 액션들과 연관된 쿼리 패턴(들)을 검색할 수 있다. 음성 인식 컴포넌트(122)는 오디오 신호를 대응하는 텍스트로 변환할 수 있다. NLP 컴포넌트(122)는, 음성 인식 컴포넌트(122)에 의해 생성된 텍스트 및 검색된 쿼리 패턴들을 사용하여, 식별자와 연관된 액션 패키지에 나열된 복수의 디바이스 액션들 중 하나의 디바이스 액션을 식별할 수 있다. NLP 컴포넌트(124)는 음성 인식 컴포넌트에 의해 생성된 텍스트를 대응하는 의미에 매칭할 때 검색된 쿼리 패턴들에 대한 바이어스를 적용할 수 있다. 예를 들어, 수신된 오디오 신호가 식별자 또는 대응하는 액션 패키지(118)와 연관된 제2자 디바이스 또는 제3자 애플리케이션에 의해 제공되는 것으로 알려진 경우, NLP 컴포넌트(124)는 (예를 들어, 액션 패키지(118)의 쿼리 패턴들에 대응하는 의미에 대한 매칭 가중치들과 비교하여) 액션 패키지(118)에 나열된 쿼리 패턴들에 대응하지 않는 의미에 제로 매칭 가중치 또는 상대적으로 작은 매칭 가중치를 할당할 수 있다. NLP 컴포넌트(124)는 NLP 컴포넌트(124)의 기계 학습 프로세스를 사용하여 각각의 디바이스 액션(또는 대응하는 쿼리 패턴(들))에 대한 매칭 점수를 (예를 들어, 매칭 가중치에 기초하여) 결정할 수 있다. NLP 컴포넌트(124)는 수신된 오디오 신호의 콘텐츠와 매칭하는 것으로 가장 높은 가중치를 갖는 디바이스 액션을 선택할 수 있다.
방법(200)은 장치 액션에 대응하는 디바이스 실행 가능 명령을 식별하는 단계를 포함할 수 있다(단계 212). 디바이스 액션 맞춤 컴포넌트(120)는 NLP 컴포넌트(124)에 의해 식별된 디바이스 액션에 대응하는, 액션 패키지(118) 내의 복수의 디바이스 실행 가능 명령들 중 하나의 디바이스 실행 가능 명령을 식별(또는 검색)할 수 있다. 예를 들어, 디바이스 액션 맞춤 컴포넌트(120)는 액션 패키지(118)의 디바이스 액션(NLP 컴포넌트(124)에 의해 식별됨)에 맵핑되거나 링크된 디바이스 실행 가능 액션을 검색할 수 있다. 디바이스 액션 맞춤 컴포넌트(120)는 또한 디바이스 실행 가능 명령과 관련된 하나 이상의 파라미터들을 식별할 수 있다. 예를 들어, 디바이스 액션(또는 해당 디바이스 실행 가능 명령)이 운전 경로 요청 또는 승차 요청과 관련된 경우, 대응하는 파라미터들은 시작 및 목적지 위치들의 표시들을 포함할 수 있다. 디바이스 액션이 리소스 정보(예를 들어, 소셜 네트워크 페이지 또는 웹 페이지)를 여는 것과 관련이 있는 경우, 파라미터(들)은 리소스의 이름 또는 어드레스를 포함할 수 있다. 각 디바이스 액션에 대해, 해당 쿼리 패턴(들)은 디바이스 액션이 입력 파라미터들과 연결되어 있는지를 나타낼 수 있다. 예를 들어, "LOCATION1에서 LOCATION2 로의 승차 필요"라는 쿼리는 클라이언트 디바이스(104)의 사용자에 의해 파라미터 LOCATION1 및 LOCATION2가 제공되어야 함을 나타낸다. 또한, 쿼리 패턴들 "open FRIEND page", "go with RIDE", "show me FACILITIES" 및 "comment to POST with CONTENT"에서, 파라미터들 FRIEND, RIDE, FACILITIES, POST 및 CONTENT는 사용자가 제공해야 한다. NLP 컴포넌트(124)는 수신된 오디오 신호에 대응하는 텍스트를 파싱할 수 있고, 있다면 디바이스 액션 파라미터들의 값들을 식별할 수 있다. 디바이스 액션 맞춤 컴포넌트(120)는 디바이스 실행 가능 명령을 클라이언트 디바이스(104)에 전송하기 전에 디바이스 액션에 대응하는 디바이스 실행 가능 명령에 식별된 파라미터들을 첨부할 수 있다.
디바이스 액션 맞춤 컴포넌트(120)는 또한 대응하는 액션 패키지(118)에서 디바이스 액션(NLP 컴포넌트(124)에 의해 식별됨)에 매핑되거나 링크된 응답을 검색할 수 있다. 오디오 신호 생성기(126)는 응답이 원래 텍스트 형식이면 응답을 오디오 형식(예를 들어, 오디오 신호)으로 변환할 수 있다. 디바이스 액션과 관련된 응답이 청각, 시각 또는 시청각 형식인 경우, 디바이스 액션 맞춤 컴포넌트(120)는 제2자 디바이스(104)에 전송하기 위해 통신 인터페이스(114)에 응답을 제공할 수 있다.
방법(200)은 디바이스 실행 가능 명령을 제2자 디바이스로 전송하는 단계를 포함할 수 있다(단계 214). 통신 인터페이스(114)는 음성 기반 쿼리에 응답하는 실행을 위해 대응하는 파라미터들이 있는 경우 클라이언트 디바이스(104)에 디바이스 실행가능 명령을 전송할 수 있다. 실행 가능한 명령은, 실행될 때, 클라이언트 디바이스(104)가 NLP 컴포넌트(124)에 의해 식별된 디바이스 액션을 수행하게 할 수 있다. 통신 인터페이스(114)는 또한 렌더링을 위해 클라이언트 디바이스(104)에 응답(청각, 시각 또는 시청각 형식)을 전송할 수 있다.
도 3은 음성 기반 상호작용들을 지원하는 클라이언트(또는 전자) 디바이스(104)의 블록도를 예시한다. 클라이언트 디바이스(104)는 음성 기반 쿼리들을 수신하기 위한 오디오 수신기(302) 및 데이터 처리 시스템(102)과 같은 다른 디바이스들 또는 시스템들과 통신하기 위한 통신 인터페이스(304)를 포함할 수 있다. 클라이언트 디바이스(104)는 디바이스 실행 가능 명령들을 실행(또는 실행가능 하도록)하는 명령 실행 컴포넌트(306) 및 오디오 신호들(예를 들어, 데이터 처리 시스템(102)로부터 수신된 오디오 신호들)에 기초하여 오디오 파동들을 생성하는 스피커(308)를 포함할 수 있다. 클라이언트 디바이스(104)는 데이터 처리 시스템(102)과의 통신을 관리하기 위한 제어기(310)를 포함할 수 있다. 제2자 디바이스의 이러한 컴포넌트들은 아래의 도 4와 관련하여 더 논의된다.
도 4는 클라이언트 디바이스들이 음성 기반 상호작용들을 지원할 수 있게 하는 예시적인 방법(400)의 흐름도를 도시한다. 방법(400)은 음성 기반 쿼리에 응답하여 오디오 신호를 생성하는 단계를 포함할 수 있다(단계 402). 방법(400)은 무선 신호 및 식별자를 원격 데이터 처리 시스템으로 전송하는 단계를 포함할 수 있다(단계 404). 방법(400)은 디바이스 실행 가능 명령을 수신하는 단계(단계 406), 및 디바이스 실행 가능 명령을 실행하는 단계(단계 408)를 포함할 수 있다.
도 3 및 도 4를 참조하면, 방법(400)은 음성 기반 쿼리에 응답하여 오디오 신호를 생성하는 단계(단계 402)를 포함할 수 있다. 클라이언트 디바이스(104)의 사용자는 클라이언트 디바이스 또는 클라이언트 디바이스 위에 설치된 제3자 애플리케이션과 대화를 시작할 수 있다. 클라이언트 디바이스(104) 또는 제3자 애플리케이션은 대화를 시작하려는 사용자의 의도를 클라이언트 디바이스(104)에 시그널링하기 위한 대화형 UI 컴포넌트, 버튼 또는 다른 입력 메커니즘을 제공할 수 있다. 대화형 UI 컴포넌트와 상호작용할 때(또는 다른 입력시), 클라이언트 디바이스(104) 또는 제3자 애플리케이션은 오디오 입력을 기록하거나, 데이터 처리 시스템(102)과의 통신 세션을 설정하거나, 또는 둘 모두를 위해 오디오 수신기(302)(예를 들어, 마이크로폰)를 작동시킬 수 있다. 오디오 수신기(302)는 클라이언트 디바이스(104)의 사용자로부터의 음성 기반 쿼리에 대응하는 오디오 신호를 생성할 수 있다. 오디오 수신기(302)는 예를 들어 음성 기반 쿼리에 대응하는 음파를 전기 오디오 신호로 변환할 수 있다. 클라이언트 디바이스(104)는 또한 클라이언트 디바이스(104) 또는 제3자 애플리케이션에 의해 지원되는 디바이스 액션들을 정의하는 액션 패키지와 관련된 식별자(예를 들어, 디바이스 모델 ID, 애플리케이션 ID, 프로젝트 ID, 디렉토리 ID 또는 이들의 조합)를 (예를 들어, 대응하는 메모리에) 저장할 수 있다. 클라이언트 디바이스(104)(또는 제3자 애플리케이션)는 데이터 처리 시스템(102)으로 전송하기 위한 오디오 입력을 수신할 오디오 수신기와는 상이한 다른 오디오 소스를 지정할 수 있다. 클라이언트 디바이스(104) 또는 제3자 애플리케이션은 대화형 UI 컴포넌트와 상호작용할 때 지정된 오디오 소스를 작동시킬 수 있다.
방법(400)은 식별자 및 무선 신호를 원격 데이터 처리 시스템으로 전송하는 단계를 포함할 수 있다(단계 404). 제어기(310)는, 통신 인터페이스(304)가 음성 기반 쿼리에 응답하여 식별자 및 오디오 신호를 데이터 처리 시스템(102)으로 전송하게 할 수 있다. 제어기(310)는 오디오 신호 및 식별자를 포함하여 데이터 처리 시스템(102)에 전송하기 위한 요청을 생성할 수 있다. 요청은 음성 기반 쿼리의 내용을 해석하기 위한 요청으로 볼 수 있다. 제어기(310)는 통신 인터페이스(304)가 데이터 처리 시스템(102)에 요청을 전송하게 할 수 있다. 도 1 내지 도 2와 관련하여 위에서 논의된 바와 같이, 데이터 처리 시스템(102)은 데이터 처리 시스템에 의해 유지되는 복수의 액션 패키지들(118) 중에서 하나의 액션 패키지(118)를 식별하기 위해 식별자를 사용할 수 있으며, 그리고 음성 기반 쿼리의 콘텐츠에 대응하는 디바이스 액션(또는 대응하는 쿼리 패턴(들))을 액션 패키지(118)에 나열된 디바이스 액션들 또는 쿼리 패턴들 중에서 결정하기 위해 오디오 신호를 사용할 수 있다. 데이터 처리 시스템(102)은 오디오 신호의 콘텐츠에 매칭되는 장치 동작(있는 경우)에 대응하는 디바이스 실행 가능 명령을 결정할 수 있다.
방법(400)은 장치 실행 가능 명령을 수신하는 단계를 포함할 수 있다(단계 406). 통신 인터페이스(304)는, 오디오 신호 및 식별자의 전송에 응답하여 데이터 처리 시스템으로부터 오디오 신호의 콘텐츠에 매칭되는 디바이스 액션에 대응하는 디바이스 실행 가능 명령을 포함하는 응답 메시지를 수신할 수 있다. 디바이스 실행 가능 명령은 음성 기반 쿼리(또는 오디오 신호)의 콘텐츠에 대응하는 디바이스 액션을 식별할 때 데이터 처리 시스템(102)에 의해 식별될 수 있다. 디바이스 실행 가능 명령을 수신하는 것은 명령과 연관되고 음성 기반 쿼리에서 사용자에 의해 제공되는 하나 이상의 파라미터들을 (예를 들어, 응답 메시지에서) 수신하는 것을 포함할 수 있다. 통신 인터페이스(304)는 또한 데이터 처리 시스템(102)으로부터 오디오 응답을 수신할 수 있다. 제어기(310)는 수신된 메시지를 분석하여 디바이스 실행 가능 명령, 명령과 관련된 임의의 파라미터들, 클라이언트 디바이스(104)에 의해 렌더링될 미디어 응답, 또는 이들의 조합을 식별할 수 있다.
방법(400)은 디바이스 실행 가능 명령을 실행하는 단계를 포함할 수 있다(단계 408). 제어기(310)는 실행을 위해 명령 실행 컴포넌트(306)에 디바이스 실행 가능 명령 및 그 임의의 파라미터를 제공할 수 있다. 명령 실행 컴포넌트(306)는 클라이언트 디바이스(104)가 수신된 디바이스 실행 가능 명령에 대응하는 디바이스 액션을 수행하게 하기 위해 디바이스 실행 가능 명령을 실행할 수 있다. 명령을 실행하는 것은 클라이언트 디바이스(104)(또는 그 위에 저장된 애플리케이션)를 생성하고 온라인 서버(예를 들어, 제3자 애플리케이션과 연관된 서버)로 검색 쿼리(또는 요청)를 전송하는 것을 포함할 수 있다. 예를 들어, 애플리케이션 또는 클라이언트 디바이스(104)는 수신된 실행 가능 명령 및 대응하는 파라미터들에 기초하여 제1 위치에서 제2 위치로의 승차 요청을 생성할 수 있다. 클라이언트 디바이스(104)는 검색 쿼리 또는 요청을 온라인 서버로 전송할 수 있다. 온라인 서버로부터 응답을 수신하면, 클라이언트 디바이스(104)는 사용자에게 응답으로 정보를 제시할 수 있다. 제어기(310) 또는 명령 실행 가능 컴포넌트(306)는 데이터 처리 시스템(102)으로부터 수신된 통신(또는 메시지)으로부터 디바이스 실행 가능 명령 및 임의의 대응하는 파라미터들을 추출하고 추출된 명령을 실행하기 위한 디바이스 액션 핸들러를 포함(또는 구현)할 수 있다. 아래 스크립트는 디바이스 액션 핸들러의 예시 그림을 나타낸다.
Figure pat00004
Figure pat00005
제어기(310)는 클라이언트 디바이스(104)에 의한 렌더링을 위한 임의의 미디어 응답을 대응하는 미디어 플레이어에 제공할 수 있다. 예를 들어, 제어기(310)는 디바이스 실행 가능 명령의 실행과 관련하여 스피커(308)를 통해 오디오 응답을 재생하기 위해 데이터 처리 시스템(102)으로부터 수신된 오디오 응답을 오디오 플레이어에 제공할 수 있다. 제어기(310)는 디바이스 실행 가능 명령의 실행 전, 실행 동안 또는 실행 후에 오디오 응답의 렌더링을 유발할 수 있다. 오디오 플레이어 및 스피커는 또한 데이터 처리 시스템(102)으로부터 수신된 임의의 추가 오디오 콘텐츠를 재생할 수 있다. 시각 또는 시청각 응답이 수신되면, 제어기는 시청각 플레이어(예를 들어, 이미지, 애니메이션 또는 비디오 플레이어)가 클라이언트 디바이스(104)의 디스플레이 상에 시각 또는 시청각 응답을 렌더링하게 할 수 있다.
액션 패키지들, 디바이스 액션들 및 도 3 및 도 4과 관련하여 서술된 대응하는 디바이스 실행 가능 명령들은, 위의 도 1 및 도 2와 관련하여 서술된 것과 유사하다. 또한, 도 3 및 도 4가 클라이언트 디바이스(104)에 의해 수행되는 프로세스들 및 동작들에 초점을 맞추는 반면, 이러한 프로세스들 및 동작들은 데이터 처리 시스템(102)에 의해 수행되고 도 1 및 도 2와 관련하여 서술된 프로세스들 및 동작들과 상호 관련된다.
도 5는 디바이스 액션들을 트리거하기 위해 음성 기반 상호작용들에 응답하는 콘텐츠를 제공하는 예시적인 방법(500)의 흐름도를 도시한다. 방법(500)은 메모리에 디바이스 액션 데이터를 저장하는 단계를 포함할 수 있다(단계 502). 방법 (500)은 식별자를 디바이스 액션 데이터에 맵핑하는 단계를 포함할 수 있다(단계 504). 방법(500)은 클라이언트 디바이스로부터 식별자 및 오디오 신호를 수신하는 단계를 포함할 수 있다(단계 506). 방법(500)은 식별자 및 오디오 신호에 기초하여 디바이스 액션 명령 쌍을 식별하는 단계를 포함할 수 있다(단계 508). 방법(500)은 오디오 신호와 연관된 음성 기반 쿼리의 컨텍스트를 식별하는 단계를 포함할 수 있다(단계 510). 방법(500)은 오디오 신호와 연관된 음성 기반 쿼리의 컨텍스트에 기초하여 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다(단계 512). 방법(500)은 디지털 컴포넌트 및 디바이스 액션-명령 쌍에 대응하는 디바이스 실행 가능 명령을 클라이언트 디바이스(104)로 전송하는 단계를 포함할 수 있다(단계 514).
데이터 처리 시스템(102)(또는 그 컴포넌트들)은 (도 2의 단계들 202 내지 208과 유사한) 도 1 및 도 2과 관련하여 위에서 논의된 것과 유사한 방식으로 방법(500)의 단계들 502 내지 508을 수행할 수 있다. 디바이스 액션 데이터는, 예를 들어, 디바이스 모델과 관련된 제2자 디바이스 또는 하나 이상의 클라이언트 디바이스들(104)에 설치된(또는 실행할 수 있는) 제3자 애플리케이션에 의해 지원되는 사용자 지정 디바이스 액션들을 정의하는 디바이스 액션 패키지(118)를 포함할 수 있다.
방법(500)은 오디오 신호와 연관된 음성 기반 쿼리의 컨텍스트를 식별하는 단계를 포함할 수 있다(단계 510). 액션 맞춤 컴포넌트(120)는 예를 들어, 오디오 신호의 콘텐츠, 식별자와 관련된 액션 패키지(118)(또는 디바이스 액션 데이터)의 콘텐츠 또는 둘 모두에 관련된 팩터들에 기초하여 수신된 오디오 신호에 대응하는 음성 기반 쿼리의 컨텍스트를 결정할 수 있다. 예를 들어, 식별자와 관련된 액션 캐키지(118)(또는 디바이스 액션 데이터)의 각 디바이스 액션은 하나 이상의 키워드들(예를 들어, 제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자에 의해 제공되거나 또는 수집된 이력 데이터에 기초한 데이터 처리 시스템에 의해 생성됨)과 관련될 수 있다. 키워드들은 해당 디바이스 액션과 일치하는 쿼리들의 공통 컨텍스트를 나타낼 수 있다. 액션 맞춤 컴포넌트(120)는 디바이스 액션의 컨텍스트를 서술하기 위해 디바이스 액션과 연관된 키워드들을 사용할 수 있다.
액션 맞춤 컴포넌트(120)는, 예를 들어, 디바이스 모델과 관련된 제2자 디바이스들을 서술하거나(예를 들어, 식별자가 디바이스 모델 ID인 경우) 또는 액션 패키지와 관련된 제3자 애플리케이션을 서술하는, 액션 패키지와 관련된 정보에 기초하여 음성 기반 쿼리의 컨텍스트(또는 그 속성)을 식별할 수 있다. 예를 들어, 애플리케이션이 게임 애플리케이션인 경우, 음성 기반 쿼리의 컨텍스트(또는 컨텍스트 속성)는 게임이 된다. 또한, 제2자 디바이스가 피트니스 기기인 경우, 음성 기반 쿼리의 컨텍스트(또는 컨텍스트 속성)는 피트니스 또는 운동일 수 있다.
액션 맞춤 컴포넌트(120)는, 예를 들어, 디바이스 모델과 관련된 제2자 디바이스들을 서술하거나(예를 들어, 식별자가 디바이스 모델 ID인 경우) 또는 액션 패키지와 관련된 제3자 애플리케이션을 서술하는, 액션 패키지와 관련된 정보에 기초하여 음성 기반 쿼리의 컨텍스트(또는 그 속성)을 식별할 수 있다. 예를 들어, 애플리케이션이 게임 애플리케이션인 경우, 음성 기반 쿼리의 컨텍스트(또는 컨텍스트 속성)는 게임이 된다. 또한, 제2자 디바이스가 피트니스 기기인 경우, 음성 기반 쿼리의 컨텍스트(또는 컨텍스트 속성)는 피트니스 또는 운동일 수 있다.
액션 맞춤 컴포넌트(120)는 음성 기반 쿼리에서 제공되고 그리고 NLP 컴포넌트(124)에 의해 추출된 정보(또는 파라미터)에 기초하여 음성 기반 쿼리의 컨텍스트(또는 그 속성)를 식별할 수 있다. 예를 들어, 액션 맞춤 컴포넌트(120)는 음성 기반 쿼리의 지리적 컨텍스트를 결정하기 위해 지리적 위치들을 나타내는 추출된 파라미터들을 사용할 수 있다. 액션 맞춤 컴포넌트(120)는 사용자 의도(예를 들어, 주유 또는 식사)를 결정하기 위해 비즈니스 유형(예를 들어, 주유소 또는 레스토랑)을 나타내는 추출된 파라미터들을 사용할 수 있다.
디바이스 액션 맞춤 컴포넌트(120)는 NLP 컴포넌트(124)에 의해 식별된 디바이스 액션을 하나 이상의 미리 정의된 대응하는 디바이스 액션들의 시퀀스들에 맵핑할 수 있다. 예를 들어, 디바이스 액션 맞춤 컴포넌트(120)는 디바이스 모델과 연관된 제2자 디바이스의 사용자들 또는 제3자 애플리케이션의 사용자들에 의해 요청된 디바이스 액션들의 시퀀스들의 통계 데이터(예를 들어, 반복 또는 빈도)를 수집할 수 있다. 식별된 디바이스 액션이 주어지면, 디바이스 액션 맞춤 컴포넌트(120)는 식별된 디바이스 액션을 포함하는 하나 이상의 가장 가능성이 높은 디바이스 액션 시퀀스들을 결정할 수 있다. 디바이스 액션 맞춤 컴포넌트(120)는 식별 된 디바이스 액션을 따르기 위해 하나 이상의 다른 디바이스 액션들을 식별(또는 예측)할 수 있다. 예를 들어, 스마트 TV 또는 케이블 박스의 경우, 현재 식별된 액션이 주문형 채널로 전환하는 액션인 경우, 이후, 가장 요청될 다음 디바이스 액션들은 영화 목록 또는 주문형 콘텐츠 목록 요청, 및 스트리밍을 위한 영화 또는 미디어 콘텐츠 주문이 포함된다. 이 경우, 컨텍스트는 예를 들어 "영화 스트리밍" 또는 "엔터테인먼트 콘텐츠 스트리밍"일 수 있다.
액션 맞춤 컴포넌트(120)는 음성 기반 쿼리의 컨텍스트를 식별하기 위해 다양한 팩터들의 조합을 사용할 수 있다. 예를 들어, 액션 맞춤 컴포넌트(120)는 디바이스 또는 애플리케이션 설명들, 음성 기반 콘텐츠로부터 추출된 파라미터들, 액션 패키지(118)의 쿼리 패턴들과 관련된 키워드들의 임의의 조합을 사용할 수 있다. 액션 맞춤 컴포넌트(120)는 시간에 따라 수집된 데이터 및 기계 학습 방법들을 사용하여 음성 기반 쿼리의 컨텍스트를 결정하는 데 사용되는 팩터들(또는 정보)을 확장할 수 있다.
방법(500)은 오디오 신호와 연관된 음성 기반 쿼리의 컨텍스트에 기초하여 디지털 컴포넌트를 선택하는 단계를 포함할 수 있다(단계 512). 콘텐츠 선택기 컴포넌트(128)는 하나 이상의 디지털 컴포넌트들(또는 콘텐츠 항목들)을 선택하기 위해 음성 기반 쿼리의 컨텍스트를 서술하는 키워드들(또는 속성들)을 사용할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트(128)는 컨텍스트가 미디어 콘텐츠 스트리밍과 관련이 있다고 결정할 때 스트리밍을 위해 영화들(또는 다른 미디어 콘텐츠)과 관련된 디지털 컴포넌트(예를 들어, 광고)를 선택할 수 있다. 콘텐츠 선택기 컴포넌트(128)는 경매를 실행하거나 디지털 컴포넌트를 선택할 때 콘텐츠 전달 시스템에 컨텍스트와 연관된 키워드들을 포함하는 요청을 전송할 수 있다. 콘텐츠 선택기 컴포넌트(128)는 오디오 신호 생성기 또는 데이터 처리 시스템(102)의 다른 컴포넌트들이 디지털 컴포넌트를 제1 포맷에서 제2 포맷으로 (예를 들어, 텍스트에서 오디오로) 변환하게 할 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트(128) 또는 디바이스 액션 맞춤 컴포넌트(120)는 식별된 디바이스 액션과 연관된 오디오 응답에 대한 오디오 확장으로서 디지털 컴포넌트를 포맷할 수 있다. 그러한 경우, 디지털 컴포넌트는 오디오 응답의 일부인 것으로 (클라이언트 디바이스(103)의 사용자에 의해) 인식될 수 있다.
방법(500)은 디바이스 액션 명령 쌍에 대응하는 디지털 컴포넌트 및 디바이스 실행 가능 명령을 클라이언트 디바이스로 전송하는 단계를 포함할 수 있다(단계 512). 통신 인터페이스(114)는 디바이스 실행 가능 명령(임의의 대응하는 파라미터들을 포함), 디지털 컴포넌트 및 응답(존재하는 경우)을 제2자 디바이스(104)로 전송할 수 있다. 클라이언트 디바이스(104)는, 예를 들어, 위의 도 4와 관련하여 논의된 바와 같이 디바이스 실행 가능 명령을 실행할 수 있고 그리고 응답 및/또는 디지털 컴포넌트를 사용자에게 재생(또는 제시)할 수 있다.
도 1 내지 도 5의 서술에서, 제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자가 제공하는 식별자를 서술하고 있는 반면, 본 발명에 의해 고려되는 다른 실시예들은 각각의 디바이스 동작 데이터의 업로드에 응답하여 제2자 디바이스 공급자 또는 제3자 애플리케이션 공급자에게 식별자를 생성하고 제공하는 것을 제공하는 데이터 처리 시스템(102)을 포함한다. 데이터 처리 시스템은 생성된 식별자를 디바이스 액션 데이터에 할당하거나 맵핑할 수 있다.
도 6은 예시적인 컴퓨터 시스템(600)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(600)는 시스템(100) 또는 데이터 처리 시스템(102)(또는 디바이스들 또는 그 디바이스의 컴포넌트들), 클라이언트 디바이스들(104) 또는 디바이스 제공자 컴퓨팅 디바이스(108)와 같은 그 컴포넌트들을 포함하거나 구현하는데 사용될 수 있다. 컴퓨팅 시스템(600)은 정보를 전달하기 위한 버스(605) 또는 다른 통신 컴포넌트 및 정보를 처리하기 위해 버스(605)에 연결된 프로세서(610) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(600)은 또한 정보를 처리하기 위해 버스에 연결된 하나 이상의 프로세서들(610) 또는 처리 회로들을 포함할 수 있다. 컴퓨팅 시스템(400)은 또한 정보를 저장하기 위해 버스(605)에 결합된 랜덤 액세스 메모리 (RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(615) 및 프로세서(610)에 의해 실행될 명령어들을 포함한다. 메인 메모리(615)는 데이터 저장소(116)일 수 있거나 이를 포함할 수 있다. 메인 메모리(615)는 또한 프로세서(610)에 의한 명령어들의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(600)은 프로세서(610)에 대한 정적 정보 및 명령어들을 저장하기 위해 버스(405)에 결합된 읽기 전용 메모리(ROM)(620) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 상태 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(625)는 정보 및 명령어들을 지속적으로 저장하기 위해 버스(605)에 연결될 수 있다. 저장 디바이스(625)는 데이터 저장소(122)를 포함할 수 있거나 또는 그 일부일 수 있다.
컴퓨팅 시스템(600)은 사용자에게 정보를 표시하기 위해 버스(605)를 통해 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(635)에 연결될 수 있다. 영숫자 및 기타 키들을 포함하는 키보드와 같은 입력 디바이스(630)는 정보 및 명령 선택들을 프로세서(610)에 전달하기 위해 버스(605)에 연결될 수 있다. 입력 디바이스(430)는 터치 스크린 디스플레이(635)를 포함할 수 있다. 입력 디바이스(630)는 또한 방향 정보 및 명령 선택들을 프로세서(610)에 전달하고 디스플레이(635)상의 커서 이동을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키들과 같은 커서 제어를 포함할 수 있다. 디스플레이(635)는, 예를 들어, 데이터 처리 시스템(102), 클라이언트 컴퓨팅 디바이스(104) 또는 도 1의 다른 컴포넌트들의 일부일 수 있다.
여기에서 서술된 프로세스들, 시스템들 및 방법들은 메인 메모리(615)에 포함된 명령어들의 배열을 실행하는 프로세서(610)에 응답하여 컴퓨팅 시스템(600)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(625)와 같은 다른 컴퓨터 판독 가능 매체로부터 주 메모리(615)로 판독될 수 있다. 주 메모리(615)에 포함 된 명령어들의 배열의 실행은 컴퓨팅 시스템(600)이 여기에 서술된 예시적인 프로세스들을 수행하게 한다. 다중 처리 배열의 하나 이상의 프로세서들은 또한 메인 메모리(615)에 포함된 명령어들을 실행하기 위해 사용될 수 있다. 하드 와이어 회로는 여기에 서술된 시스템들 및 방법들과 함께 소프트웨어 명령어들 대신 또는 소프트웨어 명령어들과 조합하여 사용될 수 있다. 여기에 서술된 시스템들 및 방법들은 하드웨어 회로 및 소프트웨어의 특정 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 6에 서술되지만, 본 명세서에서 서술된 동작들을 포함하는 주제는 다른 유형의 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있고, 이는 여기에서 개시된 구조들 및 그 구조적 등가물들 또는 이들 중 하나 이상의 조합들을 포함한다.
여기에서 논의된 시스템들이 사용자들에 대한 개인 정보를 수집할 수 있거나 또는 개인 정보를 사용할 수 있는 상황들의 경우, 사용자들은, 개인 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호도들 또는 사용자 위치에 대한 정보)를 수집할 수 있는 프로그램 또는 기능을 제어하거나 또는 콘텐츠 서버 또는 사용자와 더 관련이 있을 수 있는 다른 데이터 처리 시스템으로부터 콘텐츠를 수신할지 여부 또는 수신 방법을 제어할 기회를 제공받을 수 있다. 또한, 특정 데이터는 저장 또는 사용되기 전에 하나 이상의 방법들로 익명화될 수 있으므로 파라미터들을 생성할 때 개인 식별 정보가 제거된다. 예를 들어, 사용자의 신원을 익명화하여 개인 식별 정보가 사용자에 대해 결정되지 않도록 하거나 위치 정보를 획득한 사용자의 지리적 위치를 일반화할 수 있어(예를 들어, 도시, 우편 번호 또는 주 레벨), 사용자의 특정 위치가 결정될 수 없다. 따라서, 사용자는 자신에 대한 정보를 수집하고 콘텐츠 서버에서 사용하는 방법을 제어할 수 있다.
본 명세서에 서술된 주제 및 동작들은 디지털 전자 회로, 또는 본 명세서 및 그 구조적 등가물에 개시된 구조들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 본 명세서에 서술된 주제는, 하나 이상의 컴퓨터 프로그램들, 예를 들어, 하나 이상의 컴퓨터 프로그램 명령들의 회로로서 구현될 수 있으며, 하나 이상의 컴퓨터 저장 매체에 인코딩되어 데이터 처리 장치들에 의해 실행되거나 데이터 처리 장치들의 동작을 제어할 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 인공적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로 전송하기 위해 정보를 인코딩하도록 생성된 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 그 안에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 대상일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트들 또는 매체(예를 들어, 다중 CD들, 디스크들 또는 기타 저장 디바이스들)일 수 있거나 그 안에 포함될 수 있다. 본 명세서에 서술된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스들에 저장되거나 다른 소스들로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
용어 "데이터 처리 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 처리 장치"라는 용어는, 데이터를 처리하기 위한 다양한 장치들, 디바이스들 및 기계들을 포함하고, 이는 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 칩상의 시스템, 또는 다수의 것, 또는 이들의 조합을 포함한다. 장치는 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)와 같은 특수 목적 논리 회로를 포함할 수 있다. 이 장치는, 하드웨어 외에도, 해당 컴퓨터 프로그램의 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라들과 같은 다양한 상이한 컴퓨팅 모델 인프라들을 구현할 수 있다. 데이터 처리 시스템(102)의 디바이스 액션 맞춤 컴포넌트(120), 음성 인식 컴포넌트(122), NLP 컴포넌트(124), 오디오 신호 생성기 컴포넌트(126), 또는 콘텐츠 선택기 컴포넌트(128)는 하나 이상의 데이터 처리 장치들, 시스템들, 컴퓨팅 디바이스들 또는 프로세서들을 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트 또는 코드라고도 함)은 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 포함한 모든 형태의 프로그래밍 언어로 기록될 수 있고 그리고 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부에, 해당 프로그램 전용의 단일 파일에 또는 여러 조정 파일들(예를 들어, 하나 이상의 모듈들, 하위 프로그램들 또는 코드의 일부들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트들에 분산되고 통신 네트워크로 상호 연결된 여러 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 서술된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들(예를 들어, 데이터 처리 시스템(102)의 컴포넌트들)에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한 FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)와 같은 특수 목적 로직 회로로 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하는 데 적합한 디바이스들은 모든 형태들의 비 휘발성 메모리, 미디어 및 메모리 디바스들, 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 장치; 자기 디스크, 예를 들어 내부 하드 디스크들 또는 이동식 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크를 포함한다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
여기에서 서술된 주제는, 백-엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나 또는 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 또는 프론트-엔드 컴포넌트(예를 들어, 사용자가 본 명세서에서 서술된 주제의 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 또는 하나의 이상의 그러한 백-엔드, 미들웨어, 프론트-엔드 컴포넌트들을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 모든 형태 또는 매체, 예를 들어, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은, 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크들(예를 들어, 애드혹 피어-투-피어 네트워크들)를 포함한다.
여기에 서술된 컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있고 일반적으로 통신 네트워크(예를 들어, 네트워크(106))를 통해 상호작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들로 인해 발생한다. 일부 구현들에서, 서버는 데이터(예를 들어, 디지털 컴포넌트를 나타내는 데이터 패킷)를 (예를 들어, 클라이언트 컴퓨팅 디바이스와 상호작용하는 사용자에게 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위한 목적으로) 클라이언트 컴퓨팅 디바이스에 전송한다. 클라이언트 컴퓨팅 디바이스에서 생성된 데이터(예를 들어, 사용자 상호작용의 결과)는 서버의 클라이언트 컴퓨팅 디바이스로부터 수신될 수 있다(예를 들어, 데이터 처리 시스템(102) 또는 그 서버에 의해 수신됨).
동작들은 특정 순서로 도면에 표시되지만, 이러한 동작들은 표시된 특정 순서 또는 순차적 순서로 수행할 필요가 없으며 모든 예시된 동작들을 수행할 필요가 없다. 여기에 서술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들을 분리하기 위해 모든 구현들에서 분리할 필요는 없으며 서술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, 디바이스 액션 맞춤 컴포넌트(120), 음성 인식 컴포넌트(122), NLP 컴포넌트(124), 오디오 신호 생성기 컴포넌트(126) 및 콘텐츠 선택기 컴포넌트(128)의 임의의 조합은, 단일 컴포넌트, 애플리케이션, 프로그램, 또는 하나 이상의 처리 회로들을 갖는 논리 장치, 또는 데이터 처리 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
이제 몇몇 예시적인 구현을 설명하였지만, 전술한 내용은 예시적인 것이며 제한적이지 않음이 명백하다. 특히, 본 명세서에 제시된 많은 예가 방법 동작 또는 시스템 요소의 특정 조합을 포함하지만, 이러한 동작 및 이러한 요소는 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현들과 관련하여 논의된 행위, 요소 및 기능은 다른 구현 또는 구현의 유사한 역할에서 제외되지 않는다.
여기에 사용된 어법 및 용어는 설명을 위한 것이며 제한적인 것으로 간주되어서는 안된다. 본 명세서에서 "포함하는", "갖는", "함유하는", "특징되는" 및 그의 변형의 사용은 이후에 나열된 항목, 그 등가물, 추가 항목 및 이후에 독점적으로 나열된 항목으로 구성된 대체 구현들을 포함하는 것을 의미한다. 일 구현에서, 여기에 서술된 시스템들 및 방법들은 서술된 요소들, 동작들 또는 컴포넌트들 중 하나 이상, 또는 모두의 각각의 조합으로 구성된다.
본 명세서에서 단수로 언급된 시스템들 및 방법들의 구현들 또는 요소들 또는 행위들에 대한 모든 참조들은 이러한 요소들의 복수를 포함하는 구현들을 포함할 수도 있고, 여기에서 임의의 구현, 요소 또는 행위에 대한 복수의 참조들은 단일 요소만을 포함하는 구현들을 포함할 수도 있다. 단수 또는 복수 형태의 참조들은 현재 개시된 시스템들 또는 방법들, 이들의 컴포넌트들, 동작들 또는 요소들을 단일 또는 복수 구성들로 제한하려는 것이 아니다. 임의의 정보, 행위 또는 요소를 기반으로하는 임의의 행위 또는 요소에 대한 언급들은 행위 또는 요소가 정보, 행위 또는 요소에 적어도 부분적으로 기반하는 구현을 포함할 수 있다.
여기에 개시된 모든 구현은 다른 구현 또는 실시예와 결합될 수 있고, 그리고 "구현", "일부 구현", "하나의 구현" 등에 대한 언급은 반드시 상호 배타적인 것은 아니며, 구현과 관련하여 서술된 특정 피처, 구조 또는 특징이 적어도 하나의 구현 또는 실시예에 포함될 수 있다는 것을 나타내기 위한 것이다. 여기에서 사용되는 이러한 용어들은 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 여기에 개시된 양태들 및 구현들과 일치하는 임의의 방식으로 포괄적으로 또는 배타적으로 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 언급은 "또는"을 사용하여 서술된 모든 용어들이 서술된 용어 중 하나, 둘 이상 및 모두를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 예를 들어, "'A' 및 'B' 중 하나 이상"에 대한 참조에는 'A'만, 'B'만, 'A' 및 'B'가 모두 포함될 수 있다. "포함하는" 또는 다른 개방형 용어와 함께 사용되는 이러한 참조들에는 추가 항목들이 포함될 수 있다.
도면들의 기술적 특징들, 상세한 설명 또는 청구항 뒤에 참조 부호가 있는 경우, 도면들, 상세한 설명 및 청구 범위의 이해도를 높이기 위해 참조 기호들이 포함되었다. 따라서, 참조 부호나 그것의 부재는 청구 요소의 범위에 제한적인 영향을 미치지 않는다.
여기에 서술된 시스템들 및 방법들은 그 특성에서 벗어나지 않고 다른 특정 형태들로 구현될 수 있다. 전술한 구현들은 서술된 시스템들 및 방법들을 제한하는 것이 아니라 예시적인 것이다. 따라서 여기에서 서술된 시스템들 및 방법들의 범위는 전술한 설명이 아니라 첨부된 청구 범위에 의해 표시되며, 청구 범위의 동등성의 의미 및 범위 내에 있는 변경이 여기에 포함된다.

Claims (18)

  1. 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템으로서,
    디바이스 모델과 연관된 복수의 클라이언트 디바이스들 중 클라이언트 디바이스로부터, 상기 디바이스 모델을 정의하는 디바이스 모델 식별자 및 오디오 신호를 수신하기 위한 통신 인터페이스 -상기 오디오 신호는 음성 기반 쿼리에 응답하여 상기 클라이언트 디바이스에 의해 획득됨-;
    상기 오디오 신호와 연관된 콘텐츠 및 상기 디바이스 모델 식별자를 사용하여, 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들 중 디바이스 액션을 식별하는 자연어 프로세서 컴포넌트; 그리고
    상기 디바이스 액션에 대응하는 디바이스 실행가능 명령을 식별하고 그리고 상기 디바이스 액션에 대응하는 오디오 또는 시각적 응답을 식별하기 위한 디바이스 액션 맞춤 컴포넌트(device action customization component)를 포함하며,
    상기 통신 인터페이스는 상기 디바이스 액션의 수행을 유발하기 위해 상기 음성 기반 쿼리에 응답하여 실행하기 위한 상기 디바이스 실행가능 명령을 상기 클라이언트 디바이스에 전송하고, 상기 디바이스 액션에 기초하여 그리고 상기 디바이스 액션과 관련하여 상기 클라이언트 디바이스에 렌더링하기 위한 상기 오디오 또는 시각적 응답을 상기 클라이언트 디바이스에 전송하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  2. 제1항에 있어서, 상기 데이터 처리 시스템은,
    상기 클라이언트 디바이스로부터 수신된 상기 오디오 신호를 해당 텍스트로 변환하는 음성 인식 컴포넌트를 포함하며, 상기 자연어 프로세서 컴포넌트는 상기 해당 텍스트를 사용하여 상기 디바이스 액션을 식별하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  3. 제1항에 있어서, 상기 자연어 프로세서 컴포넌트는,
    상기 복수의 디바이스 액션들 중 각각의 제1 디바이스 액션에 대해, 상기 수신된 오디오 신호의 콘텐츠를 상기 제1 디바이스 액션과 매칭시키기 위한 해당 가중치 값을 결정하고; 그리고
    상기 가중치 값을 기반으로 상기 디바이스 액션을 식별하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  4. 제1항에 있어서, 상기 디바이스 액션 맞춤 컴포넌트는, 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들과 상호작용하기 전에 그리고 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 실행가능 명령들 각각의 성공적인 테스트시 상기 디바이스 모델을 검증하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  5. 제1항에 있어서, 상기 디바이스 액션 맞춤 컴포넌트는,
    컴퓨팅 디바이스가 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들을 나타내는 디바이스 액션 데이터 및 상기 디바이스 모델 식별자를 제공할 수 있도록 하는 사용자 인터페이스를 제공하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  6. 제1항에 있어서, 상기 디바이스 액션 맞춤 컴포넌트는,
    상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들을 나타내는 디바이스 액션 데이터 및 상기 디바이스 모델 식별자를 상기 데이터 처리 시스템로 전송할 수 있도록 REST(Representational State Transfer)ful API(application programming interface)를 제공하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  7. 제1항에 있어서,
    상기 디바이스 모델 식별자는 상기 복수의 클라이언트 디바이스들에 설치된 애플리케이션과 연관되고, 상기 복수의 디바이스 액션들은 상기 애플리케이션에 의해 지원되는 디바이스 액션들이며, 상기 디바이스 실행가능 명령은 상기 애플리케이션에 특정한 실행가능 명령인 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  8. 제7항에 있어서, 상기 디바이스 액션 맞춤 컴포넌트는 상기 디바이스 실행가능 명령과 연관된 하나 이상의 파라미터를 식별하고; 그리고 상기 통신 인터페이스는 상기 하나 이상의 파라미터를 상기 클라이언트 디바이스로 전송하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 데이터 처리 시스템.
  9. 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법으로서,
    디바이스 모델과 연관된 복수의 클라이언트 디바이스들 중 클라이언트 디바이스로부터, 상기 디바이스 모델을 정의하는 디바이스 모델 식별자 및 오디오 신호를 수신하는 단계 -상기 오디오 신호는 음성 기반 쿼리에 응답하여 상기 클라이언트 디바이스에 의해 획득됨-;
    상기 오디오 신호와 연관된 콘텐츠 및 상기 디바이스 모델 식별자를 사용하여, 상기 디바이스 모델과 연관된 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들 중 디바이스 액션을 식별하는 단계;
    상기 디바이스 액션에 대응하는 디바이스 실행가능 명령을 식별하고, 그리고 상기 디바이스 액션에 대응하는 오디오 또는 시각적 응답을 식별하는 단계; 그리고
    상기 디바이스 액션의 수행을 유발하기 위해 상기 음성 기반 쿼리에 응답하여 실행하기 위한 상기 디바이스 실행가능 명령을 상기 클라이언트 디바이스에 전송하고, 그리고 상기 디바이스 액션에 기초하여 그리고 상기 디바이스 액션과 관련하여 상기 클라이언트 디바이스에 렌더링하기 위한 상기 오디오 또는 시각적 응답을 상기 클라이언트 디바이스에 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  10. 제9항에 있어서, 상기 방법은,
    상기 클라이언트 디바이스로부터 수신된 상기 오디오 신호를 해당 텍스트로 변환하는 단계를 포함하며, 자연어 프로세서 컴포넌트는 상기 해당 텍스트를 사용하여 상기 디바이스 액션을 식별하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  11. 제9항에 있어서, 상기 방법은,
    상기 복수의 디바이스 액션들 중 각각의 제1 디바이스 액션에 대해, 상기 수신된 오디오 신호의 콘텐츠를 상기 제1 디바이스 액션과 매칭시키기 위한 해당 가중치 값을 결정하는 단계; 그리고
    상기가중치 값을 기반으로 상기 디바이스 액션을 식별하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  12. 제9항에 있어서, 상기 방법은,
    상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들과 상호작용하기 전에 그리고 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 실행가능 명령들 각각의 성공적인 테스트시 상기 디바이스 모델을 검증하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  13. 제9항에 있어서, 상기 방법은,
    컴퓨팅 디바이스가 상기 디바이스 모델과 연관된 상기 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들을 나타내는 디바이스 액션 데이터 및 상기 디바이스 모델 식별자를 제공할 수 있도록 사용자 인터페이스를 제공하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  14. 제9항에 있어서,
    상기 디바이스 액션 맞춤 컴포넌트는 상기 디바이스 모델과 연관된 복수의 클라이언트 디바이스들에 의해 지원되는 복수의 디바이스 액션들을 나타내는 디바이스 액션 데이터 및 상기 디바이스 모델 식별자를 전송하기 위해 컴퓨팅 디바이스에 의해 사용하기 위한 RESTful API(application programming interface)를 제공하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  15. 제9항에 있어서,
    상기 디바이스 모델 식별자는 상기 복수의 클라이언트 디바이스들에 설치된 애플리케이션과 연관되고, 상기 복수의 디바이스 액션들은 상기 애플리케이션에 의해 지원되는 디바이스 액션들이며, 상기 디바이스 실행가능 명령은 상기 애플리케이션에 특정한 실행가능 명령인 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  16. 제15항에 있어서, 상기 방법은,
    상기 디바이스 실행가능 명령과 연관된 하나 이상의 파라미터를 식별하는 단계; 그리고
    상기 하나 이상의 파라미터를 상기 클라이언트 디바이스로 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  17. 제9항에 있어서, 상기 클라이언트 디바이스에 상기 디바이스 실행가능 명령을 전송하는 단계는 상기 클라이언트 디바이스에 제공되는 JSON(JavaScript Object Notation) 응답으로 상기 디바이스 실행가능 명령을 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
  18. 제9항에 있어서, 상기 오디오 또는 시각적 응답을 상기 클라이언트 디바이스로 전송하는 단계는 텍스트 표현을 오디오로 변환함으로써 상기 클라이언트에 의해 렌더링될 상기 오디오 또는 시각적 응답을 상기 클라이언트 디바이스로 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스들과의 음성 기반 상호작용들을 가능하게 하는 방법.
KR1020237011704A 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들 KR20230051619A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862640007P 2018-03-07 2018-03-07
US62/640,007 2018-03-07
KR1020207028683A KR102520068B1 (ko) 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들
PCT/US2018/031454 WO2019172948A1 (en) 2018-03-07 2018-05-07 Systems and methods for voice-based initiation of custom device actions

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028683A Division KR102520068B1 (ko) 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들

Publications (1)

Publication Number Publication Date
KR20230051619A true KR20230051619A (ko) 2023-04-18

Family

ID=62386969

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237011704A KR20230051619A (ko) 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들
KR1020207028683A KR102520068B1 (ko) 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207028683A KR102520068B1 (ko) 2018-03-07 2018-05-07 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (1) US11314481B2 (ko)
EP (1) EP3596729A1 (ko)
JP (2) JP7130761B2 (ko)
KR (2) KR20230051619A (ko)
CN (2) CN117877477A (ko)
WO (1) WO2019172948A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019135403A1 (ja) * 2018-01-05 2019-07-11 国立大学法人九州工業大学 ラベル付与装置、ラベル付与方法、及びプログラム
US11127395B1 (en) * 2018-05-23 2021-09-21 Amazon Technologies, Inc. Device-specific skill processing
US11538350B2 (en) * 2018-11-08 2022-12-27 Hyundai Motor Company Service robot and method for operating thereof
KR20200098025A (ko) * 2019-02-11 2020-08-20 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20200109140A (ko) * 2019-03-12 2020-09-22 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN112164400A (zh) * 2020-09-18 2021-01-01 广州小鹏汽车科技有限公司 语音交互方法、服务器和计算机可读存储介质
KR20220118766A (ko) * 2021-02-19 2022-08-26 삼성전자주식회사 발화 입력에 기초한 커맨드를 처리하는 방법 및 모바일 디바이스
CN112540545B (zh) * 2021-02-22 2021-04-30 武汉世聪智能科技有限公司 一种基于多智能系统的智能设备控制方法及系统
US11915708B2 (en) * 2021-03-18 2024-02-27 Samsung Electronics Co., Ltd. Methods and systems for invoking a user-intended internet of things (IoT) device from a plurality of IoT devices

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69712485T2 (de) * 1997-10-23 2002-12-12 Sony Int Europe Gmbh Sprachschnittstelle für ein Hausnetzwerk
GB9911971D0 (en) * 1999-05-21 1999-07-21 Canon Kk A system, a server for a system and a machine for use in a system
US8498871B2 (en) * 2001-11-27 2013-07-30 Advanced Voice Recognition Systems, Inc. Dynamic speech recognition and transcription among users having heterogeneous protocols
US7818176B2 (en) 2007-02-06 2010-10-19 Voicebox Technologies, Inc. System and method for selecting and presenting advertisements based on natural language processing of voice-based input
US8538757B2 (en) * 2007-05-17 2013-09-17 Redstart Systems, Inc. System and method of a list commands utility for a speech recognition command system
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US10264138B2 (en) * 2009-01-28 2019-04-16 Headwater Research Llc Mobile device and service management
US20110067059A1 (en) * 2009-09-15 2011-03-17 At&T Intellectual Property I, L.P. Media control
US20110271210A1 (en) * 2010-04-30 2011-11-03 American Teleconferncing Services Ltd. Conferencing Application Store
TWI453603B (zh) 2010-06-30 2014-09-21 Ibm 平台無關之資訊處理系統,其通訊方法,及其電腦程式產品
US8787987B2 (en) * 2010-10-19 2014-07-22 General Motors Llc Configuring of vehicle communications modules
US10069781B2 (en) 2015-09-29 2018-09-04 Theatro Labs, Inc. Observation platform using structured communications with external devices and systems
US9733644B2 (en) 2012-07-17 2017-08-15 Elwha Llc Unmanned device interaction methods and systems
US20140025233A1 (en) 2012-07-17 2014-01-23 Elwha Llc Unmanned device utilization methods and systems
US9196250B2 (en) 2012-11-16 2015-11-24 2236008 Ontario Inc. Application services interface to ASR
US9172747B2 (en) * 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US9397836B2 (en) * 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US9189196B2 (en) * 2013-03-14 2015-11-17 Google Inc. Compartmentalized self registration of external devices
US9462663B2 (en) * 2013-05-28 2016-10-04 Abl Ip Holding Llc Interactive user interface functionality for lighting devices or system
US9443527B1 (en) * 2013-09-27 2016-09-13 Amazon Technologies, Inc. Speech recognition capability generation and control
US9698999B2 (en) * 2013-12-02 2017-07-04 Amazon Technologies, Inc. Natural language control of secondary device
US9626966B2 (en) * 2013-12-18 2017-04-18 Harman International Industries, Incorporated Voice recognition query response systems and methods for generating query responses using information from a vehicle
US9830044B2 (en) 2013-12-31 2017-11-28 Next It Corporation Virtual assistant team customization
US10448307B2 (en) * 2014-07-15 2019-10-15 Comcast Cable Communications, Llc Systems and methods for managing network devices
US9318107B1 (en) 2014-10-09 2016-04-19 Google Inc. Hotword detection on multiple devices
KR102277259B1 (ko) * 2014-11-26 2021-07-14 엘지전자 주식회사 디바이스 제어 시스템, 디지털 디바이스 및 디지털 디바이스 제어 방법
US10147421B2 (en) * 2014-12-16 2018-12-04 Microcoft Technology Licensing, Llc Digital assistant voice input integration
US9811312B2 (en) 2014-12-22 2017-11-07 Intel Corporation Connected device voice command support
US10509829B2 (en) * 2015-01-21 2019-12-17 Microsoft Technology Licensing, Llc Contextual search using natural language
US9947364B2 (en) 2015-09-16 2018-04-17 Google Llc Enhancing audio using multiple recording devices
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US9653075B1 (en) 2015-11-06 2017-05-16 Google Inc. Voice commands across devices
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US9820039B2 (en) 2016-02-22 2017-11-14 Sonos, Inc. Default playback devices
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10958695B2 (en) 2016-06-21 2021-03-23 Google Llc Methods, systems, and media for recommending content based on network conditions
US9972320B2 (en) 2016-08-24 2018-05-15 Google Llc Hotword detection on multiple devices
CN107507614B (zh) * 2017-07-28 2018-12-21 北京小蓦机器人技术有限公司 结合ui执行自然语言命令的方法、设备、系统与存储介质

Also Published As

Publication number Publication date
JP2021515911A (ja) 2021-06-24
EP3596729A1 (en) 2020-01-22
JP7130761B2 (ja) 2022-09-05
CN110574105A (zh) 2019-12-13
CN117877477A (zh) 2024-04-12
KR20200128725A (ko) 2020-11-16
JP2022164744A (ja) 2022-10-27
US11314481B2 (en) 2022-04-26
US20210026593A1 (en) 2021-01-28
CN110574105B (zh) 2024-01-23
US20220244910A1 (en) 2022-08-04
KR102520068B1 (ko) 2023-04-10
WO2019172948A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
KR102520068B1 (ko) 사용자 지정 디바이스 액션들의 음성 기반 시작을 위한 시스템들 및 방법들
US11087752B2 (en) Systems and methods for voice-based initiation of custom device actions
US10140378B2 (en) Providing search results based on execution of applications
US20200013088A1 (en) System and Method for Mediating Representations With Respect to User Preferences
US20150242421A1 (en) Location-Based Searching
US20160112836A1 (en) Suggesting Activities
JP2017505949A (ja) インスタント通信において表現情報を処理する方法及び装置
US20160055256A1 (en) Systems and methods for directing access to products and services
US20170046436A1 (en) Bifurcated Search
US20160188684A1 (en) Consolidating Search Results
US10936584B2 (en) Searching and accessing application-independent functionality
US20160188130A1 (en) Automatic Conditional Application Downloading
CN112351350B (zh) 一种内容显示方法、装置、系统、设备及存储介质
US9043333B1 (en) Systems and methods for directing access to products and services
CN107924403B (zh) 查询组成系统
CN109964457B (zh) 用于上下文信息显示的统一资源标识符和图像共享
US12002463B2 (en) Systems and methods for voice-based initiation of custom device actions

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal