KR102569372B1 - 디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱 - Google Patents

디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱 Download PDF

Info

Publication number
KR102569372B1
KR102569372B1 KR1020217002453A KR20217002453A KR102569372B1 KR 102569372 B1 KR102569372 B1 KR 102569372B1 KR 1020217002453 A KR1020217002453 A KR 1020217002453A KR 20217002453 A KR20217002453 A KR 20217002453A KR 102569372 B1 KR102569372 B1 KR 102569372B1
Authority
KR
South Korea
Prior art keywords
location
navigation application
point
client device
processing system
Prior art date
Application number
KR1020217002453A
Other languages
English (en)
Other versions
KR20210025076A (ko
Inventor
비크람 아가왈
모이세스 모겐스턴 갈리
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210025076A publication Critical patent/KR20210025076A/ko
Application granted granted Critical
Publication of KR102569372B1 publication Critical patent/KR102569372B1/ko

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/3608Destination input or retrieval using speech input, e.g. using speech recognition
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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/22
    • 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
    • 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/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Navigation (AREA)

Abstract

본 개시는 일반적으로 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하는 시스템 및 방법에 관한 것이다. 데이터 프로세싱 시스템은 내비게이션 애플리케이션에 액세스하여 내비게이션 애플리케이션의 뷰포트에 디스플레이된 지리적 영역에 대응하는 기준 프레임 내의 포인트 위치를 검색할 수 있다. 각 포인트 위치는 식별자를 포함할 수 있다. 데이터 프로세싱 시스템은 입력 오디오 신호를 파싱하여 요청 및 참조 단어를 식별한다. 데이터 프로세싱 시스템은 입력 오디오 신호로부터 파싱된 참조 단어 및 포인트 위치에 대한 식별자에 기초하여 기준 프레임 내의 포인트 위치를 식별할 수 있다. 데이터 프로세싱 시스템은 식별된 포인트 위치를 포함하는 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템은 포인트 위치를 사용하여 내비게이션 안내 프로세스를 개시하기 위해 액션 데이터 구조를 내비게이션 애플리케이션에 전송할 수 있다.

Description

디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱
관련 출원에 대한 상호 참조
본 출원은 2018년 6월 26일 출원된 "디지털 어시스턴트 애플리케이션 및 내비게이션 애플리케이션 간의 인터페이싱"이라는 제목의 미국 특허 가출원 번호 62/690,049에 대한 우선권을 주장하며, 그 전체가 본 명세서에 참조로서 포함된다.
디지털 어시스턴트 애플리케이션은 클라이언트 디바이스에서 제공되는 기능과 연관된 프로세싱이 네트워크를 통해 클라이언트 디바이스에 연결된 서버에서 수행되는 네트워크 컴퓨터 환경에서 동작할 수 있다. 네트워크를 통해 클라이언트 디바이스에서 요청과 연관된 데이터가 서버에 제공될 수 있다. 컴퓨팅 디바이스들 간의 네트워크 트래픽 데이터의 패킷 기반 또는 기타의 과도한 네트워크 전송은 컴퓨팅 디바이스가 네트워크 트래픽 데이터를 적절히 프로세싱하거나, 네트워크 트래픽 데이터와 관련된 동작을 완료하거나, 네트워크 트래픽 데이터에 적시에 응답하는 것을 방해할 수 있다. 네트워크 트래픽 데이터의 과도한 네트워크 전송은 데이터 라우팅을 복잡하게 하거나 응답 컴퓨팅 디바이스가 프로세싱 용량에 이상에 있는 경우 응답 품질을 저하시켜 비효율적인 대역폭 활용, 컴퓨팅 리소스의 소비 및 배터리 수명의 고갈을 초래할 수 있다. 과도한 네트워크 전송의 일부는 유효한 요청이 아닌 요청에 대한 전송을 포함할 수 있다. 특히, 과도한 네트워크 전송을 최소화하는 것이 바람직한 네트워크 환경에서 일반적으로 그래픽 사용자 인터페이스로 동작하는 애플리케이션과 함께 음성 기반 인터페이스를 제공하는데 추가적인 문제가 있다.
본 개시의 양태에 따르면, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하기 위한 시스템은 하나 이상의 프로세서를 갖는 데이터 프로세싱 시스템을 포함할 수 있다. 데이터 프로세싱 시스템에서 실행되는 내비게이션 인터페이스 컴포넌트는 제1 클라이언트 디바이스에서 실행되는 내비게이션 애플리케이션에 액세스하여 상기 내비게이션 애플리케이션의 뷰포트에 디스플레이된 지리적 영역에 대응하는 기준 프레임 내에 복수의 포인트 위치를 검색할 수 있다. 상기 복수의 위치 중 각 포인트 위치는 식별자를 포함할 수 있다. 데이터 프로세싱 시스템에서 실행되는 자연어 프로세서 컴포넌트는 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 입력 오디오 신호를 수신할 수 있다. 자연어 프로세서 컴포넌트는 입력 오디오 신호를 파싱하여 요청 및 참조 단어를 식별할 수 있다. 자연어 프로세서 컴포넌트는 상기 요청의 식별에 응답하여, 상기 입력 오디오 신호로부터 파싱된 참조 단어 및 상기 포인트 위치에 대한 식별자에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별할 수 있다. 데이터 프로세싱 시스템에서 실행되는 액션 핸들러 컴포넌트는 상기 입력 오디오 신호의 검출에 응답하여 식별된 상기 포인트 위치를 포함하는 액션 데이터 구조를 생성할 수 있다. 액션 핸들러 컴포넌트는 상기 내비게이션 애플리케이션으로 하여금 상기 포인트 위치를 사용하여 내비게이션 안내 프로세스를 시작하게 하기 위해 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송할 수 있다.
본 개시의 양태에 따르면, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하는 방법은 제1 클라이언트 디바이스에서 실행되는 내비게이션 애플리케이션에 액세스하여 상기 내비게이션 애플리케이션의 뷰포트에 디스플레이된 지리적 영역에 대응하는 기준 프레임 내에 복수의 포인트 위치를 검색하는 것을 포함할 수 있다. 상기 복수의 위치 중 각 포인트 위치는 식별자를 포함할 수 있다. 상기 방법은 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 입력 오디오 신호를 수신하는 것을 포함할 수 있다. 상기 방법은 입력 오디오 신호를 파싱하여 요청 및 참조 단어를 식별하는 것을 포함할 수 있다. 상기 방법은 상기 요청의 식별에 응답하여, 상기 입력 오디오 신호로부터 파싱된 참조 단어 및 상기 포인트 위치에 대한 식별자에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별하는 것을 포함할 수 있다. 상기 방법은 상기 입력 오디오 신호의 검출에 응답하여 식별된 상기 포인트 위치를 포함하는 액션 데이터 구조를 생성하는 것을 포함할 수 있다. 상기 방법은 상기 내비게이션 애플리케이션으로 하여금 상기 포인트 위치를 사용하여 내비게이션 안내 프로세스를 시작하게 하기 위해 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하는 것을 포함할 수 있다.
각 양태는 다음 구성들 중 하나 이상을 포함할 수 있다. 상기 내비게이션 인터페이스 컴포넌트는 상기 입력 오디오 신호의 수신과 동시에 디스플레이되는 상기 지리적 영역에 대응하는 상기 기준 프레임의 제1 부분을 결정하고, 관성 모션 유닛으로부터 획득된 상기 제1 클라이언트 디바이스의 속도에 기초하여 상기 뷰포트에 이전에 디스플레이된 상기 지리적 영역에 대응하는 상기 기준 프레임의 제2 부분을 결정하기 위해 상기 내비게이션 애플리케이션에 액세스할 수 있다. 상기 자연어 프로세서 컴포넌트는 관성 모션 유닛으로부터의 데이터를 사용하여 결정된 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 이동 방향에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별할 수 있다. 상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 지리적 영역 및 상기 내비게이션 안내 프로세스의 경로 라우팅 동작의 목적지 위치에 관한 정의된 근접도 내의 제2 지리적 영역에 대응하는 제1 부분을 갖는 상기 기준 프레임 내의 상기 복수의 포인트 위치를 검색할 수 있고; 그리고 상기 자연어 프로세서 컴포넌트는: 상기 참조 단어가 상기 지리적 영역에 대응하는 상기 제1 부분이 아니라 상기 제2 지리적 영역에 대응하는 상기 제2 부분과 관련된다는 것을 결정하고; 그리고 상기 참조 단어가 상기 제2 부분과 관련된다는 결정에 기초하여 상기 부분 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별할 수 있다. 상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 지리적 영역에 대응하는 상기 기준 프레임 내의 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 기준 프레임 내의 상기 복수의 포인트 위치에 대응하는 복수의 제2 위치 식별자를 검색할 수 있고; 그리고 상기 자연어 프로세서 컴포넌트는 상기 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 복수의 포인트 위치에 대응하는 상기 복수의 제2 위치 식별자에 기초하여 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별할 수 있다. 상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 입력 오디오 신호를 수신하기 전에 정의된 시간 창 내에 수신된 복수의 검색어를 검색할 수 있고; 그리고 상기 자연어 프로세서 컴포넌트는: 상기 복수의 포인트 위치 중 각 포인트 위치 및 상기 복수의 검색어 중 각 검색어에 대해, 시맨틱 지식 그래프를 사용하여 상기 포인트 위치의 식별자와 상기 검색어 사이의 시맨틱 거리를 결정하고; 그리고 상기 포인트 위치의 식별을 위해, 상기 복수의 식별자와 상기 복수의 검색어 사이의 복수의 시맨틱 거리에 기초하여 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택할 수 있다. 상기 자연어 프로세서 컴포넌트는: 상기 참조 단어와 상이한 보조 단어를 식별하기 위해 상기 입력 오디오 신호를 파싱하고; 상기 보조 단어에 기초하여 상기 내비게이션 애플리케이션의 뷰포트의 서브세트 영역을 결정하고; 그리고 상기 포인트 위치의 식별을 위해, 상기 보조 단어에 기초하여 결정된 상기 뷰포트의 서브세트 영역에 대응하는 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택할 수 있다. 상기 자연어 프로세서 컴포넌트는: 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 제2 입력 오디오 신호를 수신하고; 상기 제2 입력 오디오 신호의 수신과 상기 입력 오디오 신호의 수신 사이의 경과 시간이 정의된 임계치 미만임을 결정하고; 상기 경과 시간이 정의된 임계치 미만이라는 결정에 응답하여, 제2 참조 단어를 식별하기 위해 상기 제2 입력 오디오 신호를 파싱하고; 상기 포인트 위치의 식별을 위해, 상기 제2 참조 단어에 기초하여 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택할 수 있다. 상기 자연어 프로세서 컴포넌트는: 상기 복수의 포인트 위치의 각 포인트 위치에 대해, 상기 참조 단어와 상기 포인트 위치에 대한 식별자 사이의 색인 측정치를 결정하고, 상기 색인 측정치는 상기 참조 단어가 상기 포인트 위치에 대한 식별자를 나타낼 가능성을 표시하며; 그리고 대응하는 상기 복수의 포인트 위치에 대한 복수의 색인 측정치에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별할 수 있다. 상기 자연어 프로세서 컴포넌트는: 상기 복수의 포인트 위치의 각 포인트 위치에 대해, 시맨틱 지식 그래프를 사용하여 상기 참조 단어와 상기 포인트 위치의 식별자 사이의 시맨틱 거리를 결정하고; 그리고 대응하는 상기 복수의 포인트 위치에 대한 복수의 시맨틱 거리에 기초하여 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별할 수 있다. 상기 자연어 프로세서 컴포넌트는 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작들의 위치 찾기 동작에 대응하는 요청 유형을 결정할 수 있고; 그리고 상기 액션 핸들러 컴포넌트는 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 위치 찾기 동작을 개시하게 하여 상기 뷰포트에 디스플레이된 지리적 영역에서 포인트 위치를 제시할 수 있다. 상기 자연어 프로세서 컴포넌트는 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작의 경로 라우팅 동작에 대응하는 요청 유형을 결정할 수 있고; 그리고 상기 액션 핸들러 컴포넌트는 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여, 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 경로 라우팅 동작을 개시하게 하고 목적지 위치로서 상기 포인트 위치로의 이동 경로를 식별할 수 있다. 상기 액션 핸들러 컴포넌트는 텍스트 출력 또는 출력 오디오 신호 중 적어도 하나에 대해 상기 내비게이션 애플리케이션을 실행하는 상기 제1 클라이언트 디바이스로부터 응답을 수신할 수 있다.
이들 및 다른 양태들 및 구현예들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들의 예시적 실시예를 포함하고, 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태들 및 구현예들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 본 개시의 예에 따라, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하기 위한 예시적 시스템의 블록도를 도시한다.
도 2는 본 개시의 예에 따라, 도 1에 도시된 시스템에서 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하기 위한 예시적 데이터 흐름의 시퀀스 다이어그램을 도시한다.
도 3은 본 개시의 예에 따라, 내비게이션 애플리케이션과 관련하여 요청 및 응답 메시지를 갖는 클라이언트 컴퓨팅 디바이스를 도시한다.
도 4는 본 개시의 예에 따라, 네트워크 컴퓨터 환경에서 음성 활성화 스레드를 생성하는 방법의 흐름도를 도시한다.
도 5는 본 개시의 예에 따라, 도 1에 도시된 예시적 시스템을 사용하여 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하는 방법의 흐름도를 도시한다.
도 6는 예시적 컴퓨터 시스템의 블록도이다.
아래에 설명되는 것은 네트워크 컴퓨터 환경에서 다수의 애플리케이션 사이에서 인터페이싱하는 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현예들에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 상세하게 논의되는 다양한 개념은 수많은 방식으로 구현될 수 있다.
디지털 어시스턴트 애플리케이션은 API(애플리케이션 프로그래밍 인터페이스)에 따라 애플리케이션 데이터를 교환하고 기능을 호출하여 에이전트와 인터페이싱할 수 있다. 입력 오디오 신호를 수신하면, 디지털 어시스턴트 애플리케이션은 입력 오디오 신호를 파싱하여 입력 오디오 신호로부터 단어를 식별할 수 있다. 디지털 어시스턴트 애플리케이션은 단어가 특정한 에이전트의 기능을 참조한다고 결정할 수 있다. 이 결정에 응답하여, 디지털 어시스턴트 애플리케이션은 입력 오디오 신호에서 참조되는 에이전트의 기능을 호출할 수 있다. 기능을 사용하여 디지털 어시스턴트 애플리케이션의 능력을 보강할 수 있다.
이러한 에이전트 중 하나는 내비게이션 애플리케이션(GPS(Global Positioning System) 내비게이터라고도 함)일 수 있다. 내비게이션 애플리케이션은 뷰포트를 통해 지리적 영역의 지도의 하향식 보기를 디스플레이할 수 있다. 지도는 고도 등고선, 수심, 지역, 인공 지형지물(feature) 및 교통 네트워크(예: 도로, 보행자 통로, 자전거 도로 및 철도)를 정의할 수 있다. 지도는 교통망을 나타내는 경로를 통해 서로 연결된 여러 포인트 위치를 포함할 수 있다. 각 포인트 위치는 레스토랑, 주유소, 랜드마크, 산, 호수 등과 같은 벡터 지도의 관심 지점을 참조할 수 있다. 각 포인트 위치는 지리적 좌표와 식별자로 라벨링될 수 있다. 식별자는 관심 지점의 이름 또는 설명자일 수 있다. 예를 들어, 레스토랑에 대응하는 포인트 위치는 이름으로 "ABC Pizzeria"를, 설명자로 "restaurant" 및 "pizza"를 가질 수 있다. 확대/축소 및 보기 각도를 사용하여, 내비게이션 애플리케이션의 뷰포트를 통해 보이는 지도 부분이 수정될 수 있다. 지도를 디스플레이할 때, 내비게이션 애플리케이션은 뷰포트를 통해 볼 수 있는 지도 부분을 최종 사용자에 대한 기준 프레임으로 식별할 수 있다.
내비게이션 애플리케이션은 뷰포트를 통해 디스플레이되는 지도에 대한 다양한 내비게이션 안내 기능을 수행할 수 있다. 내비게이션 애플리케이션의 내비게이션 안내 기능은 위치 찾기 동작과 경로 찾기 동작을 포함할 수 있다. 지도에서 특정 관심 지점을 찾기 위해 위치 동작이 호출될 수 있다. 위치 찾기 동작에서, 내비게이션 애플리케이션은 지도에서 관심 지점에 대한 검색어를 수신할 수 있다. 수신시, 내비게이션 애플리케이션은 내비게이션 애플리케이션의 뷰포트를 통해 볼 수 있는 검색어와 일치하는 식별자로 모든 포인트 위치를 식별할 수 있다. 경로 찾기 동작이 호출되어, 현재 위치로부터 지도의 관심 지점까지의 경로를 결정할 수 있다. 경로 찾기 동작에서, 내비게이션 애플리케이션은 요청된 관심 지점에 대응하는 현재 위치 및 포인트 위치를 식별할 수 있다. 포인트 위치는 뷰포트를 통해 볼 수 있는 포인트 위치에 대한 식별자와 일치하는 검색어를 사용하여 식별되었을 수 있다. 내비게이션 애플리케이션은 경로 찾기 알고리즘을 적용하여 기준 프레임 내에서 정의된 대로 둘을 연결하는 경로를 통해 현재 위치와 포인트 위치 사이의 경로를 결정할 수 있다.
디지털 어시스턴트 애플리케이션을 내비게이션 애플리케이션과 인터페이싱하는데 어려움은 디지털 어시스턴트 애플리케이션이 오디오 입력 및 출력 신호에 의존하는 반면 내비게이션 애플리케이션은 시각적 제시와 터치 인터렉션을 통해 수신된 입력(예: 터치 스크린, 키보드 또는 마우스를 통해)에 의존한다는 것이다. 또한, 내비게이션 애플리케이션은 클라이언트 디바이스에 대한 기준 프레임이 인식될 수 있는 클라이언트 디바이스의 현재 위치 또는 현재 포커스에 액세스할 수 있다. 대조적으로, 디지털 어시스턴트 애플리케이션은 내비게이션 애플리케이션을 통해 액세스할 수 있는 지도 내의 현재 위치, 현재 포커스 또는 기준 프레임에 대한 인수가 부족할 수 있다. 또한 디지털 어시스턴트 애플리케이션은 뷰포트를 통해 볼 수 있는 지도에 정의된 포인트 위치 및 경로에 액세스하지 못할 수 있다. 내비게이션 애플리케이션의 뷰포트를 통해 볼 수 있는 데이터에 액세스하거나 기준 프레임을 고려하지 않으면, 디지털 어시스턴트 애플리케이션은 입력 오디오 신호로부터 식별된 요청이 참조하는 지도 상의 포인트 위치를 결정할 수 없을 수 있다. 더욱이, 입력 오디오 신호를 파싱하여 식별된 요청이 내비게이션 애플리케이션에 대한 텍스트 입력으로 변환되더라도, 내비게이션 애플리케이션은 텍스트 입력이 참조하는 포인트 위치를 구별하지 못할 수 있다. 내비게이션 애플리케이션은 자연어 프로세싱 능력이 부족할 수 있으며, 이로 인해 텍스트 입력이 색인적 또는 지시적 단어를 포함하는 자연어인 경우를 구별할 수 없게 된다.
인터페이싱에서 발생하는 기술적 문제를 해결하기 위해, 디지털 어시스턴트 애플리케이션은 내비게이션 애플리케이션의 기능 중 하나를 참조하는 입력 오디오 신호의 요청에 응답하여 내비게이션 애플리케이션에 액세스할 수 있다. 디지털 어시스턴트 애플리케이션은 입력 오디오 신호의 요청이 참조하는 기능을 결정할 수 있다. 예를 들어, 입력 오디오 신호를 파싱하여 "Take me there"라는 단어를 식별하면, 디지털 어시스턴트 애플리케이션은 "Take me"라는 단어가 내비게이션 애플리케이션의 경로 찾기 동작을 참조한다고 결정할 수 있다. 다른 예에서, "Show me gas stations"라는 단어가 입력 오디오 신호로부터 파싱되면, 디지털 어시스턴트 애플리케이션은 "Show me"라는 단어가 디지털 어시스턴트 애플리케이션의 위치 찾기 동작을 지칭한다고 결정할 수 있다. 내비게이션 애플리케이션에 액세스할 때, 디지털 어시스턴트 애플리케이션은 내비게이션 애플리케이션의 뷰포트를 통해 볼 수 있는 지도 부분에 대응하는 포인트 위치 세트를 검색할 수 있다. 디지털 어시스턴트 애플리케이션은 또한 각 포인트 위치에 대한 식별자와 내비게이션 애플리케이션에 대한 입력으로 사용된 이전 검색어 세트를 획득할 수 있다. 디지털 어시스턴트 애플리케이션은 내비게이션 애플리케이션의 기능을 참조하여 이전에 수신된 요청을 식별할 수 있다. 예를 들어, "Tell me about the ABC Tower"라는 문구와 "Show me patisseries"라는 문구가 있는 입력 오디오 신호가 연속적으로 수신되었을 수 있다. 디지털 어시스턴트 애플리케이션은 식별자를 얻기 위해 관심 영역을 설정할 때 "Show me patisseries"라는 문구를 프로세싱할 때 "Tell me about the ABC Tower"라는 문구를 사용할 수 있다.
디지털 어시스턴트 애플리케이션은 자연어 프로세싱 기법을 사용하여, 입력 오디오 신호로부터 파싱된 단어의 세트로부터 참조 단어를 결정할 수 있다. 참조 단어는 내비게이션 애플리케이션의 뷰포트를 통해 볼 수 있는 지도의 관심 지점 중 하나에 대응할 수 있다. 예를 들어, 입력 오디오 신호로부터 파싱된 "take me there"라는 문구의 경우 참조 단어는 "there"일 수 있다. "let's go to the pizzeria"라는 문구의 경우, 참조 단어는 "pizzeria"일 수 있다. 내비게이션 애플리케이션의 뷰포트를 통해 볼 수 있는 포인트 위치에 대한 식별자를 사용하여, 디지털 어시스턴트 애플리케이션은 참조 단어가 참조하는 포인트 위치를 식별할 수 있다. 디지털 어시스턴트 애플리케이션은 참조 단어를 각 포인트 위치에 대한 식별자와 비교할 수 있다. 비교에서, 디지털 어시스턴트 애플리케이션은 시맨틱 지식 그래프를 사용하여 각 위치에 대한 참조 단어와 식별자 사이의 시맨틱 거리를 결정할 수 있다. 디지털 어시스턴트 애플리케이션은 또한 참조 단어와 이전에 수신된 요청 또는 검색어와 같은 이전 단어 사이의 색인 측정치를 결정할 수 있다. 비교에 기초하여, 디지털 어시스턴트 애플리케이션은 입력 오디오 신호의 참조 단어가 참조하는 포인트 위치를 식별할 수 있다. 요청 및 식별된 포인트 위치를 사용하여, 디지털 어시스턴트 애플리케이션은 식별된 포인트 위치를 사용하여 표시된 동작을 수행하기 위해 내비게이션 애플리케이션에 제공할 액션 데이터 구조를 생성할 수 있다.
따라서 자연어 프로세싱 및 해석에 기초한 리소스 집약적 프로세싱은 클라이언트 디바이스의 그래픽 사용자 인터페이스와 연관된 정보가 고려되는 원격 서버에서 클라이언트 디바이스에 대해 수행될 수 있다. 그러므로 본 명세서에 기술된 주제는 클라이언트 디바이스의 그래픽 사용자 인터페이스와 음성 기반 시스템 사이의 인터페이스를 제공할 수 있다. 이 인터페이스는 사용자가 음성을 사용하여 그래픽 사용자 인터페이스와 인터렉션할 수 있게 하고, 추가로 그래픽 사용자 인터페이스와 연관된 데이터를 원격 서버에 효율적으로 제공할 수 있게 한다. 이에 따라 음성 기반 시스템은 클라이언트 디바이스의 사용자와 개선된 안내 인터렉션을 제공할 수 있다.
도 1를 참조하면, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하기 위한 예시적 시스템(100)이 도시된다. 시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102), 하나 이상의 클라이언트 디바이스(104) 및 하나 이상의 내비게이터 서비스(106)를 포함할 수 있다. 하나 이상의 클라이언트 디바이스(104)는 하나 이상의 내비게이터 서비스(106)에 통신 적으로 연결될 수 있으며, 그 반대도 마찬가지이다. 적어도 하나의 데이터 프로세싱 시스템(102), 하나 이상의 클라이언트 디바이스(104) 및 하나 이상의 내비게이터 서비스(106)는 네트워크(156)를 통해 서로 통신 가능하게 결합될 수 있다.
데이터 프로세싱 시스템(102)은 디지털 어시스턴트 애플리케이션(108)의 인스턴스를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 오디오 기반 입력을 파싱하기 위한 NLP(natural language processor) 컴포넌트(114)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 내비게이션 애플리케이션(110)과 인터페이싱하기 위한 내비게이션 인터페이스 컴포넌트(116)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 위치 측정을 획득하기 위해 지리 위치 감지 컴포넌트(118)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 오디오 기반 신호를 생성하기 위한 오디오 신호 생성 컴포넌트(122)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 다이렉트 액션 핸들러 컴포넌트(120)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 오디오 기반 입력 신호에 대한 응답을 선택하기 위한 응답 선택 컴포넌트(124)를 포함할 수 있다. NLP 컴포넌트(114), 오디오 신호 생성기 컴포넌트(122), 데이터 저장소(126), 다이렉트 액션 핸들러 컴포넌트(120) 및 응답 선택기 컴포넌트(124)는 디지털 어시스턴트 애플리케이션(108)과 분리되어 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소(126)를 포함할 수 있다. 데이터 저장소(126)는 정규 표현식(128), 파라미터(130), 정책(132), 응답 데이터(134) 및 템플릿(136)을 저장할 수 있다.
데이터 프로세싱 시스템(102)은 또한 다른 것들 중에서도 특히 내비게이션 안내 프로세스를 수행하기 위해 적어도 하나의 내비게이션 애플리케이션(110)의 인스턴스를 포함할 수 있다. 내비게이션 안내 프로세스는 특히 위치 찾기 동작 및 경로 라우팅 동작을 포함할 수 있다. 내비게이션 애플리케이션(110)은 디지털 어시스턴트 애플리케이션(108)과 인터페이싱하기 위한 디지털 어시스턴트 인터페이스 컴포넌트(138)를 포함할 수 있다. 내비게이션 애플리케이션(110)은 검색어를 사용하여 지리적 영역에서 위치를 검색하기 위해 위치 찾기 동작을 수행하기 위한 위치 찾기 컴포넌트(140)를 포함할 수 있다. 내비게이션 애플리케이션(110)은 지리적 영역의 한 위치에서 다른 위치로의 경로를 결정하기 위해 경로 라우팅 동작을 수행하기 위한 경로 라우터 컴포넌트(142)를 포함할 수 있다. 위치 찾기 컴포넌트(140) 및 경로 라우터 컴포넌트(142)의 기능은 아래에서 설명될 것이다. 내비게이션 애플리케이션(110)은 또한 위치 측정치를 얻기 위해 지리 위치 감지 컴포넌트(118)의 인스턴스를 포함할 수 있다. 내비게이션 애플리케이션(110)은 적어도 하나의 데이터 저장소(144)를 포함하거나 또는 그와 통신할 수 있다. 내비게이션 애플리케이션(110)은 디지털 어시스턴트 애플리케이션(108)과는 별개의 애플리케이션일 수 있다. 데이터 프로세싱 시스템(102)은 하나 이상의 내비게이션 애플리케이션(110)의 인스턴스를 포함할 수 있다.
데이터 저장소(144)는 내비게이션 애플리케이션(110)의 하나 이상의 인스턴스에 액세스가능한 벡터 기반 지도(146)를 저장하고 유지할 수 있다. 데이터 저장소(144)는 내비게이션 애플리케이션(110)과 별개일 수 있고, 데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)에서 유지될 수 있다. 벡터 기반 지도(146)의 적어도 일부는 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)에서 유지될 수 있다. 내비게이션 애플리케이션(110)은 내비게이션 애플리케이션(110)의 뷰포트를 통해 벡터 기반 지도(146)의 일부를 렌더링하고 디스플레이할 수 있다. 뷰포트는 벡터 기반 지도(146)의 일부가 보이는 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 디스플레이 영역에 대응할 수 있다. 벡터 기반 지도(146)는 내비게이션 애플리케이션(110)의 뷰포트 또는 클라이언트 디바이스(104)의 디스플레이보다 크기가 더 클 수 있으므로, 내비게이션 애플리케이션(110)의 뷰포트에 대응하는 부분이 디스플레이될 수 있다. 내비게이션 애플리케이션(110)의 뷰포트를 통해 현재 또는 이전에 디스플레이된 부분은 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)에 저장될 수 있다. 벡터 기반 지도(146)는 데이터 구조(예: 링크된 리스트, 트리, 어레이, 매트릭스 및 힙)를 사용하여 (예를 들어, 지구의) 지리적 지도를 표현할 수 있다. 벡터 기반 지도(146)는 고도 등고선, 수심, 지역(예: 국가, 지방, 카운티, 현, 도시, 타운 및 마을), 자연 지형지물(예: 호수, 산, 강), 인공 지형지물(예: 건물, 주차장 및 공원) 및/또는 교통망(예: 도로, 보행자 통로, 자전거 도로 및 철도) 또는 이러한 지형지물의 조합을 포함할 수 있다. 벡터 기반 지도(146)는 고도 등고선, 수심, 지역, 인공 지형지물 및 교통망을 정의할 수 있다. 벡터 기반 지도(146)는 포인트 위치 세트 및 경로 세트를 포함할 수 있다. 벡터 기반 지도(146)는 각 포인트 위치에 대한 지리적 좌표(예를 들어, 경도 및 위도)를 정의할 수 있다. 각 포인트 위치는 인공 지형지물과 자연 지형지물 중 하나에 대응할 수 있다. 각 포인트 위치는 지리적 좌표와 연관될 수 있으며, 하나 이상의 식별자를 가질 수 있다. 포인트 위치의 식별자는 포인트 위치의 이름과 카테고리 유형을 포함할 수 있다. 예를 들어, 호텔에 대응하는 포인트 위치의 경우, 이름은 "XYZ Inn"이고 카테고리 유형은 "호텔"일 수 있다. 포인트 위치는 경로를 통해 서로 링크될 수 있다. 각 경로는 특히 도로, 보행자 통로, 자전거 경로 및 철도와 같은 교통망에 대응할 수 있다. 각 경로는 포인트 위치 간의 지리적 거리(예: 킬로미터 또는 마일로 측정)를 정의할 수 있다. 벡터 기반 지도(146)는 지리 정보 인코딩 포맷(예를 들어, GIS)에 따라 인코딩될 수 있다.
디지털 어시스턴트 애플리케이션(110) 및 내비게이션 애플리케이션(110)과 같은 데이터 프로세싱 시스템(102)의 기능은 하나 이상의 클라이언트 디바이스(104)에 포함되거나 그로부터 액세스 가능할 수 있다. 데이터 프로세싱 시스템(102)의 기능은 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)과의 기능 또는 인터페이스에 대응할 수 있다. 클라이언트 디바이스(104)는 각각 디지털 어시스턴트 애플리케이션(108)의 하나 이상의 컴포넌트의 개별 인스턴스를 포함하고 실행할 수 있다. 이와 달리, 클라이언트 디바이스(104)는 네트워크(156)를 통해 원격 데이터 프로세싱 시스템(102)상의 디지털 어시스턴트 애플리케이션(108)의 컴포넌트의 기능에 액세스할 수 있다. 예를 들어, 클라이언트 디바이스(104)는 NLP 컴포넌트(114)의 기능을 포함하고 데이터 프로세싱 시스템(102)에 대한 네트워크(156)를 통해 디지털 어시스턴트 애플리케이션(108)의 나머지 컴포넌트에 액세스할 수 있다. 클라이언트 디바이스(104)는 각각 내비게이션 애플리케이션(110)의 하나 이상의 컴포넌트의 개별 인스턴스를 포함하고 실행할 수 있다. 이와 달리, 클라이언트 디바이스(104)는 네트워크(156)를 통해 원격 데이터 프로세싱 시스템(102)상의 내비게이션 애플리케이션(110)의 컴포넌트의 기능에 액세스할 수 있다. 예를 들어, 클라이언트 디바이스(104)는 위치 찾기 컴포넌트(140) 및 경로 라우터 컴포넌트(142)의 기능을 포함할 수 있고, 네트워크(156)를 통해 벡터 기반 지도(146)에 액세스할 수 있다.
클라이언트 디바이스(104)는 네트워크(156)를 통해 데이터 프로세싱 시스템(102)과 서로 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 클라이언트 디바이스(104)는 데이터 프로세싱 시스템(102)과 관련하여 설명된 임의의 컴포넌트의 인스턴스를 포함할 수 있다. 클라이언트 디바이스(104)는 디지털 어시스턴트 애플리케이션(108)의 인스턴스를 포함할 수 있다. 클라이언트 디바이스(104)는 데스크탑 컴퓨터, 랩탑, 태블릿 컴퓨터, 개인용 디지털 어시스턴트, 스마트폰, 모바일 디바이스, 휴대용 컴퓨터, 씬 클라이언트 컴퓨터, 가상 서버, 스피커 기반 디지털 어시스턴트 또는 다른 컴퓨팅 디바이스를 포함할 수 있다.
시스템(100)의 컴포넌트는 네트워크(156)를 통해 통신할 수 있다. 네트워크(156)는 예를 들면, 포인트-투-포인트 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 네트워크, 전화통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, NFC(Near-Field Communication) 네트워크, LAN, 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 네트워크(156)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(156)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크(156)는 어드밴스드 모바일폰 프로토콜("AMPS"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA"), 글로벌 이동 통신 시스템("GSM"), 일반 패킷 무선 서비스("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는 모바일 디바이스들 간에 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터는 상이한 프로토콜을 통해 전송될 수 있거나, 동일한 유형의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
클라이언트 디바이스(104)는 디지털 어시스턴트 애플리케이션(108)의 적어도 하나의 인스턴스, 내비게이션 애플리케이션(110)의 적어도 하나의 인스턴스, 적어도 하나의 스피커(148), 적어도 하나의 센서(154), 적어도 하나의 트랜스듀서(150) 및 적어도 하나의 주변 디바이스(152)를 포함, 실행하거나 이와 인터페이스 또는 통신할 수 있다. 센서(154)는 예를 들어 카메라, 주변 광 센서, 근접 센서, 온도 센서, 관성 모션 유닛, 가속도계, 자이로스코프, 모션 검출기, GPS 센서, 위치 센서, 마이크로폰, 비디오, 이미지 검출 또는 터치 센서를 포함할 수 있다. 트랜스듀서(150)는 스피커 또는 마이크로폰을 포함하거나 그 일부일 수 있다. 클라이언트 디바이스(104)는 오디오 드라이버(206)를 포함할 수 있다. 오디오 드라이버는 하드웨어 트랜스듀서(150)에 소프트웨어 인터페이스를 제공할 수 있다. 오디오 드라이버는 오디오 파일 또는 데이터 프로세싱 시스템(102)에 의해 제공된 다른 명령어들을 실행하여 트랜스듀서(150)를 제어하여 대응하는 음향 파장 또는 음파를 생성할 수 있다. 주변 디바이스(152)는 특히 키보드, 디스플레이 및 헤드폰과 같은 사용자 입력/출력 디바이스를 포함할 수 있다. 디스플레이는 발광 다이오드, 유기 발광 다이오드, 액정 디스플레이, 레이저 또는 디스플레이와 같은 시각적 표시 또는 광학 출력을 제공하도록 구성된 하나 이상의 하드웨어 또는 소프트웨어 컴포넌트를 포함할 수 있다.
클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 하나 이상의 프로세서, 로직 어레이 또는 메모리를 포함하거나 이에 의해 실행될 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 키워드를 검출하고 키워드에 기초하여 액션을 수행할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)은 데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(108)의 인스턴스일 수 있거나 디지털 어시스턴트 애플리케이션(108)의 기능 중 임의의 기능을 수행할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 추가 프로세싱을 위해 용어들을 데이터로서 데이터 프로세싱 시스템(102)(데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스)에 전송하기 전에, 하나 이상의 용어들을 필터링하거나 용어를 수정할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 트랜스듀서(150)에 의해 검출된 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 운반하는 하나 이상의 데이터 패킷을 네트워크(156)를 통해 데이터 프로세싱 시스템(102)에 전송할 수 있다. 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 그러한 전송을 수행하기 위한 명령어를 검출함에 응답하여, 일부 또는 전체 입력 오디오 신호를 운반하는 데이터 패킷을 전송할 수 있다. 명령어는 예를 들어, 입력 오디오 신호를 포함하는 데이터 패킷을 데이터 프로세싱 시스템(102)에 전송하기 위한 트리거 키워드 또는 다른 키워드 또는 승인을 포함할 수 있다.
클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 입력 오디오 신호에 대한 사전 필터링 또는 사전 프로세싱을 수행하여 특정 주파수의 오디오를 제거할 수 있다. 사전-필터링은 저역 통과 필터, 고역 통과 필터 또는 대역 통과 필터와 같은 필터들을 포함할 수 있다. 주파수 영역에서 필터들이 적용될 수 있다. 필터들은 디지털 신호 프로세싱 기법을 사용하여 적용될 수 있다. 필터들은 사람의 음성 또는 사람의 말에 대응하는 주파수를 유지하면서 일반적인 사람의 말의 주파수를 벗어나는 주파수를 제거하도록 구성될 수 있다. 예를 들어, 대역 통과 필터는 제1 임계치(예를 들어, 70Hz, 75Hz, 80Hz, 85Hz, 90Hz, 95Hz, 100Hz 또는 105Hz) 미만 및 제2 임계치(예를 들어, 200Hz, 205Hz, 210Hz, 225Hz, 235Hz, 245Hz 또는 255Hz) 초과의 주파수들을 제거하도록 구성될 수 있다. 대역 통과 필터를 적용하면 다운 스트림 프로세싱에서 컴퓨팅 리소스 사용을 줄일 수 있다. 컴퓨팅 디바이스(104)상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 입력 오디오 신호를 데이터 프로세싱 시스템(102)으로 전송하기 전에 대역 통과 필터를 적용하여, 네트워크 대역폭 이용을 감소시킬 수 있다. 그러나, 클라이언트 디바이스(104)에 이용 가능한 컴퓨팅 리소스 및 이용가능한 네트워크 대역폭에 기초하여, 데이터 프로세싱 시스템(102)이 필터링을 수행할 수 있도록 입력 오디오 신호를 데이터 프로세싱 시스템(102)에 제공하는 것이 더 효율적일 수 있다.
컴퓨팅 디바이스(104)상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 자연어 프로세서를 방해할 수 있는 주변 소음 레벨을 감소시키기 위해 노이즈 감소 기법과 같은 추가 프리-프로세싱 또는 사전-필터링 기법을 적용할 수 있다. 노이즈 감소 기법은 자연어 프로세서의 정확성 및 속도를 향상시켜, 데이터 프로세싱 시스템(102)의 성능을 향상시키고 디스플레이를 통해 제공되는 그래픽 사용자 인터페이스의 렌더링을 관리한다.
클라이언트 디바이스(104)는(센서(154) 또는 트랜스듀서(150)를 통해) 클라이언트 디바이스(104)에 오디오 입력으로서 음성 쿼리를 입력하고, 클라이언트 디바이스(104)의 최종 사용자에게 제시, 디스플레이 또는 렌더링하기 위해 데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)로부터 출력된 오디오(또는 다른)를 수신하는 최종 사용자와 연관될 수 있다. 디지털 컴포넌트는 데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)으로부터 클라이언트 디바이스(104)에 제공될 수 있는 컴퓨터 생성 음성을 포함할 수 있다. 클라이언트 디바이스(104)는 컴퓨터 생성 음성을 트랜스듀서(150)(예: 스피커)를 통해 최종 사용자에게 렌더링할 수 있다. 컴퓨터 생성 음성은 실제 사람 또는 컴퓨터 생성 언어의 녹음을 포함할 수 있다. 클라이언트 디바이스(104)는 클라이언트 디바이스(104)에 통신 가능하게 연결된 디스플레이 디바이스를 통해 시각적 출력을 제공할 수 있다.
클라이언트 디바이스(104)에 음성 쿼리를 입력하는 최종 사용자는 다수의 클라이언트 디바이스(104)와 연관될 수 있다. 예를 들어, 최종 사용자는 스피커 기반 디지털 어시스턴트 디바이스일 수 있는 제1 클라이언트 디바이스(104), 모바일 디바이스(예: 스마트폰)일 수 있는 제2 클라이언트 디바이스(104) 및 데스크톱 컴퓨터일 수 있는 제3 클라이언트 디바이스(104)와 연관될 수 있다. 데이터 프로세싱 시스템(102)은 공통 로그인(예: 계정 식별자 및 인증 크리덴셜), 위치, 네트워크 또는 다른 연결 데이터를 통해 클라이언트 디바이스(104) 각각을 연관시킬 수 있다. 예를 들어, 최종 사용자는 동일한 계정 사용자 이름 및 암호를 사용하여 클라이언트 디바이스(104) 각각에 로그인할 수 있다.
클라이언트 디바이스(104)는 내비게이션 애플리케이션(110)의 인스턴스를 포함하거나 실행할 수 있다. 클라이언트 디바이스(104)는 내비게이션 애플리케이션(110)의 인스턴스를 포함하거나 실행할 수 있다. 내비게이션 애플리케이션(110)은 디지털 어시스턴트 애플리케이션(108)과 유사한 기능을 가진 하나 이상의 컴포넌트를 포함할 수 있다. 내비게이션 애플리케이션(110)의 인스턴스는 데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106)에서 실행될 수 있다. 디지털 어시스턴트 애플리케이션(108)은 내비게이션 애플리케이션(110)과 인터페이싱할 수 있으며, 그 반대도 가능하여 미리 정의된 기능을 수행할 수 있다. 내비게이션 애플리케이션(110)은 입력 오디오 신호에 표시된 기능을 수행할 때 내비게이터 서비스(106) 상의 리소스에 액세스할 수 있다. 클라이언트 디바이스(104)는 클라이언트 디바이스(104)의 센서(154)(예를 들어, 마이크로폰)에 의해 검출된 입력 오디오 신호를 수신할 수 있다. 입력 오디오 신호를 파싱하는 것에 기초하여, 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호를 프로세싱할 때 인터페이싱할 내비게이션 애플리케이션(110)을 결정할 수 있다. 입력 오디오 신호는 예를 들어, 쿼리, 질문, 명령, 지시 또는 자연어인 다른 진술을 포함할 수 있다. 예를 들어 음성 쿼리는 지리적 영역에서 위치를 찾는 명령을 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 음성 쿼리가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하는 명령을 포함한다고 결정할 수 있다. 결정에 응답하여, 디지털 어시스턴트 애플리케이션(108)은 내비게이션 애플리케이션(110)과 인터페이싱하여 음성 쿼리에 표시된 작업을 완료하기 위해 데이터를 검색할 수 있다. 입력 오디오 신호는 내비게이션 애플리케이션(110)의 기능을 참조하는 하나 이상의 미리 정의된 키워드(예를 들어, "take", "find" 및 "route")를 포함할 수 있다. 예를 들어, 입력 오디오 신호는 "Take me to high school XYZ"을 포함할 수 있다. 이 쿼리로부터, 디지털 어시스턴트 애플리케이션(108)은 음성 쿼리가 다른 에이전트 또는 디지털 어시스턴트 애플리케이션(108) 자체의 기능과 반대로 내비게이션 애플리케이션(110)을 참조하고 있음을 결정할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 음성 쿼리가 내비게이션 애플리케이션(110)의 기능을 참조하고 있음을 결정할 수 있으며, 내비게이션 애플리케이션(110)에 대한 명령을 생성하기 위해 음성 쿼리를 사용하여 프로세싱을 수행할 수 있다. 수신시, 내비게이션 애플리케이션(110)은 음성 쿼리를 사용하여 생성된 명령에 기초하여 벡터 기반 지도(146)의 일부를 디스플레이하거나 제시할 수 있다. 내비게이터 서비스(106) 및 디지털 어시스턴트 애플리케이션(108)과 연관된 내비게이션 애플리케이션(110)의 기능은 아래에서 상세하게 설명될 것이다.
내비게이션 애플리케이션(110)없이 제1 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)은 제2 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)에 액세스할 수 있다. 음성 쿼리가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조한다는 결정에 응답하여, 제1 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)은 제1 클라이언트 디바이스(104)에 내비게이션 애플리케이션(110)이 없다는 것을 식별할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 하나 이상의 클라이언트 디바이스(104)(예: 공통 로그인(예를 들어, 계정 식별자 및 인증 크리덴셜), 위치, 네트워크 또는 기타 연결 데이터를 통해 연관된 제1 클라이언트 디바이스(104)와 연관된 내비게이션 애플리케이션(110)에서 실행되는 제2 클라이언트 디바이스(104))를 식별할 수 있다. 제1 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)은 음성 쿼리를 추가로 프로세싱하기 위해 제2 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)에 액세스할 수 있다.
데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106) 각각은 적어도 하나의 프로세서를 갖는 적어도 하나의 서버를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(106) 및 내비게이터 서비스(106)는 적어도 하나의 데이터 센터 또는 서버 팜에 위치된 복수의 서버를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 오디오 입력 신호로부터 요청 및 요청과 연관된 트리거 키워드를 결정할 수 있다. 요청 및 트리거 키워드에 기초하여, 데이터 프로세싱 시스템(102)은 오디오 입력 신호를 내비게이터 서비스(106)로 포워딩할지 또는 내부적으로 오디오 입력 신호를 프로세싱할지를 결정할 수 있다. 오디오 입력 신호가 내부적으로 프로세싱되어야한다는 결정에 응답하여, 데이터 프로세싱 시스템(102)은 응답 데이터를 생성하거나 선택할 수 있다. 응답 데이터는 오디오 기반 또는 텍스트 기반일 수 있다. 예를 들어, 응답 데이터는 렌더링될 때 오디오 출력 또는 음향파를 제공하는 하나 이상의 오디오 파일을 포함할 수 있다. 응답 데이터 내의 데이터는 콘텐츠 아이템이라고도 지칭된다. 응답 데이터는 오디오 콘텐츠 외에 다른 콘텐츠(예: 텍스트, 비디오 또는 이미지 콘텐츠)를 포함할 수 있다. 오디오 입력 신호가 포워딩될 것이라는 결정에 응답하여, 데이터 프로세싱 시스템(102)은 오디오 입력 신호를 내비게이터 서비스(106)에 전송할 수 있다. 내비게이터 서비스(106)는 실행할 명령을 식별하기 위해 오디오 입력 신호를 파싱할 수 있다. 내비게이터 서비스(106)는 명령을 수행하고, 명령의 결과를 데이터 프로세싱 시스템(102) 또는 클라이언트 디바이스(104)에 반환할 수 있다.
데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106)는 각각 다수의 논리적으로 그룹화된 서버를 포함할 수 있고, 분산 컴퓨팅 기법을 지원한다. 논리적 서버들의 그룹은 데이터 센터, 서버 팜 또는 머신 팜으로 지칭될 수 있다. 서버는 지리적으로 분산될 수 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리되거나, 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 다른 기종일 수 있다 - 하나 이상의 서버 또는 머신이 하나 이상의 운영 체제 플랫폼 유형에 따라 동작할 수 있다. 데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106)는 각각 예를 들어 엔터프라이즈 데이터 센터에 위치한 연관 스토리지 시스템과 함께 하나 이상의 고밀도 랙 시스템에 저장된 데이터 센터의 서버를 포함할 수 있다. 이러한 방식으로 통합된 서버를 갖는 데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106)는 지역화된 고성능 네트워크에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하여 모든 또는 일부 데이터 프로세싱 시스템(102) 및 내비게이터 서비스(106)는 컴포넌트들을 중앙집중화하고 이를 고급 시스템 관리 툴과 결합하면 서버 리소스들을 보다 효율적으로 사용할 수 있게 하여, 전력 및 프로세싱 요구사항을 절약하고 대역폭 사용을 감소시킨다. 데이터 프로세싱 시스템(102)의 각각의 컴포넌트는 적어도 하나의 프로세싱 유닛, 서버, 가상 서버, 회로, 엔진, 에이전트, 기기, 또는 데이터 저장소(126 및 144) 및 다른 컴퓨팅 디바이스와 통신하도록 구성된 프로그램 가능한 논리 어레이와 같은 다른 논리 디바이스를 포함할 수 있다. 내비게이터 서비스(106)는 적어도 하나의 프로세싱 유닛, 서버, 가상 서버, 회로, 엔진, 에이전트, 기기, 또는 데이터 저장소 및 다른 컴퓨팅 디바이스와 통신하도록 구성된 프로그램 가능한 논리 어레이와 같은 다른 논리 디바이스를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 데이터 저장소(126)를 포함할 수 있다. 데이터 저장소(126)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있고, 데이터베이스 관리 시스템을 포함할 수 있다. 데이터 저장소(126)는 컴퓨터 데이터 저장 또는 메모리를 포함할 수 있고, 다른 데이터 중에서도 특히, 하나 이상의 정규식(128), 하나 이상의 파라미터(130), 정책(132), 응답 데이터(134) 및 템플릿(136)을 저장할 수 있다. 파라미터(130), 정책(132) 및 템플릿(136)은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이의 음성 기반 세션에 관한 규칙과 같은 정보를 포함할 수 있다. 정규식(128)은 클라이언트 디바이스(104)와 데이터 프로세싱 시스템(102) 사이의 음성 기반 세션이 내비게이션 애플리케이션(110) 및 내비게이터 서비스(106)를 포함하는 경우에 관한 규칙을 포함할 수 있다. 정규식(128), 파라미터(130), 정책(132) 및 템플릿(136)은 또한 다른 소스(예를 들어, 데이터 프로세싱 시스템(102) 및 클라이언트 디바이스(104))로부터 인터페이스(112)를 통해 수신된 다른 디지털 어시스턴트 애플리케이션(108)에 대한 정보를 포함할 수 있다. 응답 데이터(134)는 오디오 출력 또는 연관 메타데이터에 대한 콘텐츠 아이템뿐만 아니라 클라이언트 디바이스(104)와의 하나 이상의 통신 세션의 일부일 수 있는 입력 오디오 메시지를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(112)를 포함하거나, 그와 인터페이싱하거나 또는 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(108)의 적어도 하나의 인스턴스를 포함하거나, 그와 인터페이싱하거나 또는 그와 통신할 수 있다. 데이터 프로세싱 시스템(102) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스는 적어도 하나의 NLP 컴포넌트(114), 적어도 하나의 오디오 신호 생성기 컴포넌트(122) 및 적어도 하나의 다이렉트 액션 핸들러 컴포넌트(120)를 포함하거나, 그와 인터페이싱하거나 또는 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 응답 선택 컴포넌트(124)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 저장소(126)와의 인터페이스를 포함하거나 또는 이와 달리 그와 통신할 수 있다. 적어도 하나의 데이터 저장소(126)는 하나 이상의 데이터 구조 또는 데이터베이스에 정규식(128), 파라미터(130), 정책(132), 응답 데이터(134) 및 템플릿(136)를 포함하거나 저장할 수 있다. 데이터 저장소(126)는 하나 이상의 로컬 또는 분산 데이터베이스를 포함할 수 있고, 데이터베이스 관리를 포함할 수 있다.
데이터 프로세싱 시스템(102)의 컴포넌트는 각각 적어도 하나의 프로세싱 유닛 또는 데이터베이스 저장소(128 또는 148)와 통신하도록 구성된 프로그래머블 논리 어레이 엔진 또는 모듈과 같은 다른 논리 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(102)의 컴포넌트는 별개의 컴포넌트, 단일 컴포넌트 또는 다수의 데이터 프로세싱 시스템(102)의 일부일 수 있다. 데이터 프로세싱 시스템(102)과 같은 시스템(100) 및 그 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 인터페이스(112)를 포함할 수 있다. 인터페이스(112)는 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성, 또는 동작될 수 있다. 인터페이스(112)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(112)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(112)는 시스템(100)의 컴포넌트들이 서로 통신할 수 있게 하는 데이터 인터페이스 또는 네트워크 인터페이스일 수 있다. 데이터 프로세싱 시스템(102)의 인터페이스(112)는 네트워크(106)를 통해 액션 데이터 구조, 오디오 신호 또는 다른 데이터를 포함하는 하나 이상의 데이터 패킷을 클라이언트 디바이스(104) 또는 내비게이터 서비스(106)에 제공하거나 전송할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 출력 신호를 데이터 저장소(126) 또는 오디오 신호 생성 컴포넌트(122)로부터 클라이언트 디바이스(104)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 또한 데이터 패킷 전송을 통해 클라이언트 디바이스(104)로 하여금 액션 데이터 구조에 표시된 기능을 수행하게 할 수 있다. 출력 신호는 데이터 프로세싱 시스템(102)(또는 다른 컴퓨팅 디바이스)으로부터 클라이언트 디바이스(104)에게로 하나 이상의 데이터 패킷(또는 다른 통신 프로토콜)로서 획득, 생성, 변환 또는 전송될 수 있다. 인터페이스(112)는 한 포맷에서 다른 포맷으로 데이터를 변환하거나 포맷하는 것을 용이하게할 수 있다. 예를 들어, 인터페이스(112)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트들 사이에서 통신하기 위한 정의를 포함하는 어플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호를 데이터 프로세싱 시스템(102)의 인터페이스(112)에 통신하고 클라이언트 컴퓨팅 디바이스의 컴포넌트를 출력 오디오 신호 또는 시각적 출력을 렌더링하기 위해 구동하기 위한 클라이언트 디바이스(104) 상의 디지털 어시스턴트 애플리케이션(108)의 인스턴스와 같은 클라이언트 디바이스(104)에 설치된 어플리케이션, 스크립트 또는 프로그램을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 패킷, 디지털 파일, 또는 입력 오디오 신호(또는 입력 오디오 신호들)를 포함하거나 식별하는 다른 신호를 수신할 수 있다. 클라이언트 디바이스(104)는 트랜스듀서(150)를 통해 오디오 신호를 검출하고, 아날로그-디지털 변환기를 통해 아날로그 오디오 신호를 디지털 파일로 변환할 수 있다. 예를 들어, 오디오 드라이버는 아날로그-디지털 변환기 컴포넌트를 포함할 수 있다. 프리-프로세서 컴포넌트는 오디오 신호를 네트워크(156)를 통해 데이터 패킷들을 통해 전송될 수 있는 디지털 파일로 변환할 수 있다.
데이터 프로세싱 시스템(102)의 디지털 어시스턴트 컴포넌트(108)의 인스턴스는 NLP 컴포넌트(114)를 실행하여 클라이언트 디바이스(104)의 센서(154)에 의해 검출된 입력 오디오 신호를 포함하는 디지털 패킷들을 수신 또는 획득할 수 있다. 데이터 패킷들은 디지털 파일을 제공할 수 있다. NLP 컴포넌트(114)는 오디오 신호를 포함하는 디지털 파일 또는 데이터 패킷들을 수신 또는 획득하고 오디오 신호를 파싱할 수 있다. 예를 들어, NLP 컴포넌트(114)는 인간과 컴퓨터 간의 인터렉션들을 제공할 수 있다. NLP 컴포넌트(114)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 하는 기법으로 구성될 수 있다. NLP 컴포넌트(114)는 통계적 기계 학습과 같은 기계 학습에 기초한 기법을 포함하거나 그러한 기법으로 구성될 수 있다. NLP 컴포넌트(114)는 입력 오디오 신호를 파싱하기 위해 디시전 트리, 통계 모델 또는 확률 모델을 이용할 수 있다. NLP 컴포넌트(114)는 기능들을 포함할 수 있고, 상기 기능들은 명명된 엔터티 인식(예: 주어진 텍스트의 스트림, 사람들 또는 장소들과 같은 이름에 대한 텍스트 맵의 아이템 결정, 상기 각 이름이 어떤 유형인지 예를 들어, 사람, 위치(예: “집") 또는 조직), 자연어 생성(예: 컴퓨터 데이터베이스로부터의 정보 또는 의미론적 의도를 이해가능한 인간 언어로 변환), 자연어 이해(예: 컴퓨터 모듈이 조작할 수 있는 텍스트를 제1 순서 로직 구조와 같은 더 형식적인 표현으로 변환), 기계 번역(예: 텍스트를 하나의 인간 언어로부터 다른 언어로 자동적으로 번역), 형태학적 세그먼트화(예: 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별, 이는 고려되고 있는 언어의 단어의 형태론 또는 구조의 복잡도에 따라 어려울 수 있음), 질문에 답변(예: 특정적이거나 개방적일 수 있는 인간-언어 질문에 대한 답을 결정) 또는 의미론 프로세싱(예: 식별된 단어를 유사한 의미의 다른 단어와 관련시키기 위해 단어를 식별하고 그것의 의미를 인코딩한 후에 발생할 수 있는 프로세싱)을 포함한다.
NLP 컴포넌트(114)는 입력 신호를(예를 들어, 데이터 저장소(126)에) 저장된 대표적인 오디오 파형 세트와 비교하고 가장 근접한 매칭을 선택함으로써, 입력 오디오 신호를 인식된 텍스트로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소(126) 또는 데이터 프로세싱 시스템(102)이 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형은 다수의 사용자 세트에 걸쳐 생성된 후, 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP 컴포넌트(114)는 예를 들어, 데이터 프로세싱 시스템(102)이 제공할 수 있는 동작과 함께, 예를 들어 사용자를 통한 트레이닝 또는 수동 스펙을 통해 연관된 단어에 텍스트를 매칭한다. NLP 컴포넌트(114)는 이미지 또는 비디오 입력을 텍스트 또는 디지털 파일로 변환할 수 있다. NLP 컴포넌트(114)는 이미지 또는 비디오 입력을 프로세싱, 분석 또는 해석하여 액션을 수행하거나, 요청을 생성하거나, 데이터 구조를 선택 또는 식별할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호에 더하여 또는 그 대신에 이미지 또는 비디오 입력 신호를 수신할 수 있다. 데이터 프로세싱 시스템(102)은 예를 들어 이미지 해석 기법, 컴퓨터 비전, 기계 학습 엔진 또는 이미지 또는 비디오를 인식하여 상기 이미지 또는 비디오를 디지털 파일로 변환하기 위한 다른 기법을 사용하여, 이미지 또는 비디오 입력 신호를 프로세싱할 수 있다. 하나 이상의 이미지 해석 기법, 컴퓨터 비전 기법 또는 기계 학습 기법은 총괄적으로 이미징 기법으로 지칭될 수 있다. 데이터 프로세싱 시스템(102)(예를 들어, NLP 컴포넌트(114))은 오디오 프로세싱 기법에 더하여 또는 그 대신에 이미징 기법으로 구성될 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호를 획득할 수 있다. 입력 오디오 신호로부터, NLP 컴포넌트(114)는 적어도 하나의 요청, 요청에 대응하는 적어도 하나의 트리거 키워드 및 하나 이상의 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도, 디지털 컴포넌트 또는 주제를 표시할 수 있다. 트리거 키워드는 취해질 수 있는 액션의 유형을 표시할 수 있다. 예를 들어, NLP 컴포넌트(114)는 최종 사용자의 연락처 리스트의 연락처를 찾기 위한 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 트리거 키워드는 적어도 하나의 단어, 문구, 어근 또는 부분 단어 또는 취해질 액션을 표시하는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "search" 또는 "find"는 쿼리 검색을 수행하기 위한 요청을 표시할 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 쿼리 검색 의도를 직접 표현하지 않지만, 트리거 키워드는 쿼리 검색이 요청에 의해 표시되는 적어도 하나의 다른 액션에 대한 보조 액션임을 표시한다.
NLP 컴포넌트(114)는 입력 오디오 신호를 파싱하여, 요청 및 트리거 키워드를 식별, 결정, 검색 또는 획득할 수 있다. 예를 들어, NLP 컴포넌트(114)는 트리거 키워드 또는 요청을 식별하기 위해 의미론 프로세싱 기법을 입력 오디오 신호에 적용할 수 있다. NLP 컴포넌트(114)는 의미론 프로세싱 기법을 입력 오디오 신호에 적용하여, 제1 트리거 키워드 및 제2 트리거 키워드와 같은 하나 이상의 트리거 키워드를 포함하는 트리거 문구를 식별할 수 있다. 예를 들어, 입력 오디오 신호는 "Look up Alex's phone number"라는 문장을 포함할 수 있다. NLP 컴포넌트(114)는 입력 오디오 신호가 트리거 키워드 "Look up"를 포함한다고 결정할 수 있다. NLP 컴포넌트(114)는 요청이 최종 사용자의 연락처 목록을 통해 찾는 것이라고 결정할 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호로부터 식별된 하나 이상의 키워드가 내비게이션 애플리케이션(110)의 하나 이상의 기능을 참조하는지 여부를 결정할 수 있다. 입력 오디오 신호로부터 식별된 하나 이상의 키워드는 내비게이션 애플리케이션(110)에 대한 식별자(예를 들어, "GPS Navigator A")를 포함할 수 있다. 내비게이션 애플리케이션(110)에 대한 식별자는 최종 사용자가 요청을 수행하기를 원하는 애플리케이션을 나타낼 수 있다. 예를 들어, 입력 오디오 신호에서 변환된 텍스트는 "Get me directions home using GPS Navigator A"를 포함할 수 있다. 이 입력 오디오 신호에서, 키워드 "GPS Navigator A"는 오디오 입력 신호에 표시된 요청을 수행하기 위한 내비게이션 애플리케이션(110)에 대한 식별자일 수 있다. NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)에 대한 식별자를 포함한다고 결정할 수 있다. 식별자를 포함하는 입력 오디오 신호를 결정하는 것에 기초하여, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)을 참조한다고 결정할 수 있다. 또한, 디지털 어시스턴트 애플리케이션(108)은 아래에서 설명하는 바와 같이 내비게이션 애플리케이션(110)과 인터페이싱할 수 있다. 반대로, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)에 대한 식별자를 포함하지 않는다고 결정할 수 있다. 입력 오디오 신호가 식별자를 포함하지 않는다는 결정에 응답하여, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)을 참조하지 않는다고 결정할 수 있다. 또한, 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호에 표시된 요청을 프로세싱할 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호로부터 식별된 하나 이상의 키워드가 내비게이션 애플리케이션(110)에 대한 정규식(128)을 사용하여 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하는지 여부를 결정할 수 있다. 정규식(128)은 입력 오디오 신호로부터 식별된 키워드가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하는지 여부를 결정하기 위해 매칭할 패턴을 정의할 수 있다. 정규식(128)은 또한 입력 오디오 신호에 표시된 명령을 수행하는데 사용할 키워드를 특정할 수 있다. 예를 들어, 정규식(128)은 {[요청], [참조 키워드], [보조 키워드]}의 형태일 수 있다. 입력 오디오 신호의 키워드가 내비게이션 애플리케이션(110)의 기능을 참조하는 것으로 결정되는 경우, 정규식(128)은 하나 이상의 키워드가 내비게이션 애플리케이션(110)에 대한 요청 및 요청을 수행하기 위해 파라미터로 사용되는 하나 이상의 참조 단어를 포함하도록 특정할 수 있다. 정규식(128)은 입력 오디오 신호로부터 식별된 하나 이상의 키워드에서 요청 및 참조 키워드에 대한 시퀀스를 특정할 수 있다.
정규식(128)은 내비게이션 애플리케이션(110)의 기능에 대응하는 요청에 대한 미리 정의된 키워드의 제1 세트를 포함할 수 있다. 미리 정의된 키워드의 제1 세트는 기능 식별자(예를 들어, "take", "go", "show", "directions" 및 "find")를 포함할 수 있다. 미리 정의된 키워드의 제1 세트 내의 각 기능 식별자는 내비게이션 애플리케이션(110)의 기능 중 하나와 연관될 수 있다. 정규식(128)은 내비게이션 애플리케이션(110)이 기능에 대응하는 요청을 수행하기 위한 파라미터로서 사용할 하나 이상의 참조 단어에 대한 미리 정의된 키워드의 제2 세트를 포함할 수 있다. 미리 정의된 키워드의 제2 세트는 지시적 단어(예: "here", "there", "over there" 및 "across")를 포함할 수 있다. 미리 정의된 키워드의 제2 세트는 또한 관심 지점(예: "restaurant", "hotel", "cafe", "gas station", "park" 및 "airport")과 연관된 키워드를 포함할 수 있다. 정규식(128)은 입력 오디오 신호에서 식별되었지만 미리 정의된 키워드의 제1 세트 또는 키워드의 제2 세트와 매칭되지 않는 키워드가 보조 키워드로 식별되도록 특정할 수 있다. 정규식(128)은 하나 이상의 보조 키워드에 대한 미리 정의된 키워드의 제3 세트를 포함할 수 있다. 미리 정의된 키워드의 제3 세트는 클라이언트 디바이스(104)의 디스플레이 또는 내비게이션 애플리케이션(110)의 뷰포트(예: "왼쪽 모서리", "오른쪽 모서리", "위" 및 "중간")와 연관된 키워드를 포함할 수 있다. 제3 세트의 각 키워드는 클라이언트 디바이스(104)의 디스플레이의 서브세트 영역에 대응할 수 있다. 정규식(128)은 입력 오디오 신호로부터 식별된 하나 이상의 키워드에서 요청 및 참조 키워드에 대한 시퀀스를 특정할 수 있다. 정규식(128)은 입력 오디오 신호가 제1 미리 정의된 세트 중 하나와 매칭되는 하나 이상의 키워드를 포함한다는 결정에 응답하여, 나머지 키워드 중 적어도 하나가 요청을 수행하기 위한 하나 이상의 파라미터로서 사용되도록 특정할 수 있다.
하나 이상의 키워드가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하는지 여부를 결정함에 있어서, NLP 컴포넌트(114)는 하나 이상의 키워드를 정규식(128)과 비교할 수 있다. NLP 컴포넌트(114)는 또한 입력 오디오 신호로부터 식별된 키워드(예를 들어, n- 그램)의 하나 이상의 순열을 정규식(128)과 비교할 수 있다. NLP 컴포넌트(114)는 하나 이상의 키워드를 정규식(128)에 의해 특정된 미리 정의된 키워드의 제1 세트와 비교할 수 있다. NLP 컴포넌트(114)는 모든 미리 정의된 키워드의 제1 세트와 모든 키워드 사이에 매칭이 없다고 결정할 수 있다. 입력 오디오 신호의 모든 키워드와 임의의 제1 세트 사이의 매칭이 없음을 결정하는 것에 응답하여, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)의 어떠한 기능도 참조하지 않는다고 결정할 수 있다. NLP 컴포넌트(114)는 입력 오디오 신호가 디지털 어시스턴트 애플리케이션(108)의 기능 중 하나를 대신 참조한다고 결정할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 요청을 수행하기 위해 키워드로 추가 프로세싱을 수행할 수 있다.
반면에, 매칭의 결정에 응답하여, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조한다고 결정할 수 있다. NLP 컴포넌트(114)는 요청에 대응하는 적어도 하나의 키워드와 매칭되는 미리 정의된 키워드의 제1 세트로부터 기능 식별자를 식별할 수 있다. NLP 컴포넌트(114)는 내비게이션 애플리케이션(110)의 내비게이션 안내 프로세스의 기능 중 하나에 대응하는 요청 유형을 결정할 수 있다. 내비게이션 애플리케이션(110)의 내비게이션 안내 프로세스는 위치 찾기 동작 및 경로 라우팅 동작을 포함할 수 있다. 요청 유형은 위치 찾기 동작과 경로 라우팅 동작을 포함할 수 있다. 기능 식별자는 요청 유형 중 하나와 연관될 수 있다. 기능 식별자의 연관에 기초하여, NLP 컴포넌트(114)는 입력 오디오 신호로부터 파싱된 요청에 의해 표시된 요청 유형을 결정할 수 있다.
NLP 컴포넌트(114)는 또한 요청을 수행하기 위한 하나 이상의 파라미터로서 사용하기 위해 입력 오디오 신호의 키워드로부터 하나 이상의 참조 키워드 및 보조 키워드를 식별할 수 있다. NLP 컴포넌트(114)는 하나 이상의 나머지 키워드를 미리 정의된 키워드의 제2 세트와 비교할 수 있다. NLP 컴포넌트(114)는 미리 정의된 키워드의 제2 세트 중 적어도 하나와 적어도 하나의 키워드 사이의 매칭을 결정할 수 있다. 매칭의 결정에 응답하여, NLP 컴포넌트(114)는 요청을 수행하기 위해 사용할 참조 키워드 중 적어도 하나로서 적어도 하나의 키워드를 식별할 수 있다. NLP 컴포넌트(114)는 또한 요청을 수행하기 위해 내비게이션 애플리케이션(110)에 대한 참조 키워드 및 보조 키워드로서 사용할 하나 이상의 키워드를 식별하기 위해 시맨틱 분석을 수행할 수 있다. 시맨틱 분석은 참조 키워드를 식별하기 위한 지시 및 대용 분석을 포함할 수 있다. NLP 컴포넌트(114)는 요청 및 참조 키워드 외에 입력 오디오 신호로부터 식별된 하나 이상의 나머지 키워드를 보조 키워드로 식별할 수 있다. NLP 컴포넌트(114)는 하나 이상의 나머지 키워드를 미리 정의된 키워드의 제3 세트와 비교할 수 있다. NLP 컴포넌트(114)는 미리 정의된 키워드의 제3 세트 중 적어도 하나와 적어도 하나의 키워드 간의 매칭을 결정할 수 있다. 매칭의 결정에 응답하여, NLP 컴포넌트(114)는 적어도 하나의 키워드를 보조 키워드 중 적어도 하나로서 식별할 수 있다. 요청의 식별 및 입력 오디오 신호로부터의 참조 키워드에 기초하여, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)의 기능을 참조한다고 결정할 수 있다. 예를 들어, 입력 오디오 신호 "Take me to store ABC shown in the corner"에 대해, NLP 컴포넌트(114)는 입력 오디오 신호가 "take me" 및 "store ABC"를 포함함에 기초하여 내비게이션 애플리케이션(110)의 기능을 참조한다고 결정할 수 있다. 이 예에서, NLP 컴포넌트(114)는 정규식(128) 및 시맨틱 분석 기법을 사용하여, "take me"를 요청으로, "store ABC"를 요청을 수행하기 위한 참조 키워드로, "shown in corner of screen"을 보조 키워드로 결정할 수 있다.
데이터 프로세싱 시스템(102)은 내비게이션 인터페이스 컴포넌트(116)의 인스턴스를 실행할 수 있다. 입력 오디오 신호가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조한다는 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 클라이언트 디바이스(104) 또는 내비게이터 서비스(106)에서 실행되는 내비게이션 애플리케이션(110)에 액세스할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 디지털 어시스턴트 애플리케이션(108)과 내비게이션 애플리케이션(110) 사이의 통신을 위한 정의를 포함하는 애플리케이션 프로그래밍 인터페이스(API)에 따라 내비게이션 애플리케이션(110)에 액세스할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)에 액세스하기 위해 API에 의해 정의된 함수 호출을 호출할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 공통 로그인(예를 들어, 계정 식별자 및 인증 크리덴셜), 위치, 네트워크 또는 기타 링크 데이터를 통해 디지털 어시스턴트 애플리케이션(108)과 연관된 내비게이션 애플리케이션(110)을 식별할 수 있다. 예를 들어, 최종 사용자는 디지털 어시스턴트 애플리케이션(108) 및 내비게이션 애플리케이션(110)에 대해 동일한 계정 및 로그인 세부 사항을 사용할 수 있다. 액세스함으로써, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)으로부터 데이터를 검색할 수 있다. 데이터는 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146) 부분의 콘텐츠와 관련되거나 대응할 수 있다.
액세스하기 전에, 내비게이션 인터페이스 컴포넌트(116)는 또한 데이터가 내비게이션 애플리케이션(110)으로부터 이전에 수신되었는지 여부를 결정할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 이전에 수신된 입력 오디오 신호에 응답하여 내비게이션 애플리케이션(110)에 이미 액세스했을 수 있다. 이전에 수신된 데이터는 클라이언트 디바이스(104)(예를 들어, 메모리)에 유지될 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 이전에 수신된 데이터 및 이전에 수신된 데이터의 수신 시간을 식별할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 또한 현재 입력 오디오 신호의 수신 시간에 대응하는 현재 시간을 식별할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 수신 시간과 현재 시간 사이에 경과된 시간을 정의된 임계 시간과 비교할 수 있다. 경과 시간이 정의된 임계 시간보다 크다는 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)에 액세스하기 위해 진행할 수 있다. 그렇지 않으면, 경과 시간이 정의된 임계 시간보다 작다는 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)으로부터 이전에 수신된 데이터를 검색하고 사용할 수 있다.
내비게이션 애플리케이션(110)에 액세스할 때, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하는 입력 오디오 신호를 수신한 클라이언트 디바이스(104)가 실행 중인지 또는 내비게이션 애플리케이션(110)의 인스턴스를 가지고 있는지를 결정할 수 있다. 내비게이션 인터페이스 컴포넌트(116)에 의해 액세스되는 내비게이션 애플리케이션(110)은 입력 오디오 신호를 수신한 클라이언트 디바이스(104)와는 다른 클라이언트 디바이스(104)에서 실행되거나 존재할 수 있다. 클라이언트 디바이스(104)가 실행 중이거나 내비게이션 애플리케이션(110)을 가지고 있다는 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 동일한 클라이언트 디바이스(104) 상의 내비게이션 애플리케이션(110)에 액세스할 수 있다. 한편, 클라이언트 디바이스(104)가 실행 중이 아니거나 내비게이션 애플리케이션(110)이 없다는 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)을 실행하는 다른 클라이언트 디바이스(104)를 식별할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 공통 로그인(예를 들어, 계정 식별자 및 인증 크리덴셜), 위치, 네트워크 또는 다른 연결 데이터를 통해 입력 오디오 신호를 수신한 클라이언트 디바이스(104)와 연관된 다른 클라이언트 디바이스(104)를 식별할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 다른 클라이언트 디바이스(104)가 실행 중이거나 내비게이션 애플리케이션(110)의 인스턴스를 가지고 있다고 결정할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 입력 오디오 신호를 수신한 클라이언트 디바이스(104)와 연관된 다른 클라이언트 디바이스(104)에서 실행되거나 존재하는 내비게이션 애플리케이션(110)에 액세스할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 클라이언트 디바이스(104) 또는 내비게이터 서비스(106)에서 실행되는 내비게이션 애플리케이션(110)에 액세스 요청을 송신하거나 전송할 수 있다. 액세스 요청은 디지털 어시스턴트 애플리케이션(108) 및 내비게이션 애플리케이션(110)에 대한 연결 데이터를 포함할 수 있다.
데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)는 내비게이션 애플리케이션(110)의 디지털 어시스턴트 인터페이스 컴포넌트(138)의 인스턴스를 실행할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)에 액세스하는 내비게이션 인터페이스 컴포넌트(116)를 식별할 수 있다. 액세스의 식별에 응답하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트에 디스플레이된 벡터 기반 지도(146)의 부분에 대응하는 기준 프레임 내의 포인트 위치 세트를 식별할 수 있다. 위에서 논의된 바와 같이, 각 포인트 위치는 인공 지형지물 및 자연 지형지물 중 하나에 대응할 수 있고, 지리적 좌표와 연관될 수 있으며, 적어도 하나의 식별자를 가질 수 있다. 포인트 위치의 세트를 식별하기 위해, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트에서 가시적이거나 디스플레이된 벡터 기반 지도(146)의 부분을 식별할 수 있다. 벡터 기반 지도(146)의 일부는 벡터 기반 지도(146) 전체보다 작을 수 있으며, 내비게이션 애플리케이션(110)의 뷰포트에 디스플레이되는 지리적 영역에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146) 부분의 치수 및 좌표를 식별할 수 있다. 좌표는 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 부분, 예를 들어 왼쪽 상단 좌표 및 오른쪽 하단 좌표를 정의할 수 있다. 좌표는 지리적 지도의 지리 좌표에 대응할 수 있다. 벡터 기반 지도(146)의 일부는 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)의 인스턴스에 대한 기준 프레임에 대응할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)에 대한 기준 프레임으로서 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분을 설정하거나 식별할 수 있다. 기준 프레임은 내비게이션 애플리케이션(110)의 뷰포트에 디스플레이된 벡터 기반 지도(146)의 치수, 좌표 및 다른 측정치에 대응할 수 있고, 클라이언트 디바이스(104)의 최종 사용자에게 특정될 수 있다. 뷰포트를 통해 보이는 벡터 기반 지도(146) 부분의 치수 및 좌표를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 기준 프레임의 부분을 정의하는 치수 및 좌표를 식별할 수 있다. 좌표는 왼쪽 상단 좌표 및 오른쪽 하단 좌표와 같은 기준 프레임의 좌표에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 뷰포트에 디스플레이된 벡터 기반 지도(146)의 부분에 대해 식별된 치수 및 좌표와 각각의 포인트 위치의 지리적 좌표를 비교할 수 있다. 비교에 기초하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분에 대응하는 기준 프레임 내의 포인트 위치 세트를 선택하거나 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 포인트 위치 세트를 제공할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트에 관한 디스플레이 정보를 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 제공할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146) 부분의 치수 및 좌표를 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 제공할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110) 자체의 뷰포트의 치수를 식별할 수 있다. 뷰포트의 치수는 너비 대 높이의 픽셀 수를 사용하여 정의될 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트의 치수를 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 제공할 수 있다.
포인트 위치의 세트를 식별하는 것과 관련하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 벡터 기반 지도(146)의 일부 내에서 클라이언트 디바이스(104)의 현재 위치를 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 지리 위치 시스템(GPS) 인터페이스에 액세스할 수 있다. GPS 인터페이스는 차례로 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 현재 지리적 좌표를 식별하거나 수신하기 위해 GPS 위성과 통신할 수 있다. GPS 인터페이스는 GPS 위성으로부터 수신된 클라이언트 디바이스(104)의 지리적 좌표를 벡터 기반 지도(146) 상의 위치 식별자로 변환할 수 있다. 위치 식별자는 벡터 기반 지도(146)에 물리적 세계의 지리적 좌표에 할당된 인덱스일 수 있다. 지리적 좌표를 위치 식별자로 변환하는 것은 설정된 매핑 또는 기능에 따라 이루어질 수 있다. 변환되면, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 클라이언트 디바이스(104)의 위치 식별자를 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 제공할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 또한 각각의 식별된 포인트 위치에 대한 위치 식별자를 내비게이션 인터페이스 컴포넌트(116)에 제공할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 또한 내비게이션 애플리케이션(110)의 뷰포트에서 가시적이거나 디스플레이된 벡터 기반 지도(146)의 부분 외부의 다른 세트의 포인트 위치를 식별할 수 있다. 내비게이션 애플리케이션(110)은 입력 오디오 신호가 수신되면 벡터 기반 지도(146)에서 출발지로부터 목적지까지의 경로를 결정하기 위해 내비게이션 안내 프로세스의 경로 라우팅 동작을 수행할 수 있다. 목적지 위치 및 지정된 위치는 내비게이션 애플리케이션(110)의 뷰포트 외부에 있는 벡터 기반 지도(146)의 일부 외부의 벡터 기반 지도(146) 상의 위치에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 경로 라우팅 동작으로부터 목적지 위치를 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 목적지 위치에 대한 정의된 근접(예를 들어, 1km 내지 5km) 내의 벡터 기반 지도(146)의 일부를 결정할 수 있다. 정의된 근접도 내의 벡터 기반 지도(146)의 부분은 목적지 위치를 포함하는 치수 및 좌표를 사용하여 정의될 수 있다. 정의된 근접도 내의 벡터 기반 지도(146)의 부분은 내비게이션 애플리케이션(110)의 뷰포트에 현재 디스플레이된 벡터 기반 지도(146)의 부분과 동일한 크기를 가질 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 목적지 위치에 대한 정의된 근접도 내의 벡터 기반 지도(146)의 일부를 기준 프레임의 일부로 설정하거나 식별할 수 있다.
목적지 위치에 대한 정의된 근접도 내의 벡터 기반 지도(146) 부분의 치수 및 좌표를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 기준 프레임의 부분을 정의하는 치수 및 좌표를 식별할 수 있다. 좌표는 벡터 기반 지도(146) 상의 좌측 상단 및 우측 하단 좌표와 같은 기준 프레임 상의 좌표에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 부분에 대해 식별된 치수 및 좌표와 각각의 포인트 위치의 지리적 좌표를 비교할 수 있다. 비교에 기초하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 목적지 위치에 관한 정의된 근접도 내에 벡터 기반 지도(146)의 부분에 대응하는 기준 프레임 내의 포인트 위치 세트를 선택하거나 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 포인트 위치 세트를 제공할 수 있다. 포인트 위치 세트를 제공함에 있어서, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있거나 뷰포트를 통해 볼 수 없는 벡터 기반 지도(146)의 부분에 대응하는 것으로 포인트 위치를 라벨링할 수 있다.
내비게이션 애플리케이션(110)에 액세스하는 내비게이션 인터페이스 컴포넌트(116)의 식별에 응답하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)에 의해 수신된 검색어의 세트를 식별할 수 있다. 검색어는 위치 찾기 컴포넌트(140) 또는 경로 라우터 컴포넌트(142)에 의해 수행되는 기능과 같은, 내비게이션 안내 프로세스를 수행할 때 내비게이션 애플리케이션(110)에 의해 이전에 수신된 하나 이상의 키워드를 포함할 수 있다. 예를 들어, 내비게이션 애플리케이션(110)의 최종 사용자는 주변에 있는 문구점을 찾기 위해 이전에 "문구점"을 타이핑했을 수 있다. 다른 예에서, 내비게이션(110)은 명명된 타워를 찾기 위해 NLP 컴포넌트(114)에 의해 입력 오디오 신호로부터 변환된 "Tower ABC" 쿼리를 이전에 수신했을 수 있다. 이전에 수신된 검색어는 내비게이션 애플리케이션(110)에 저장 및 유지될 수 있다. 각각의 검색어는 또한 검색어가 내비게이션 애플리케이션(110)에 의해 수신된 시기를 나타내는 수신 타임스탬프에 의해 연관되거나 인덱싱될 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)에 의해 입력 오디오 신호를 수신하기 전에 정의된 시간 창 내에서 내비게이션 애플리케이션(110)에 의해 이전에 수신된 검색어 세트를 선택하거나 식별할 수 있다. 정의된 시간 창은 15분에서 2시간까지의 범위이다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 입력 오디오 신호의 수신 시간 또는 내비게이션 애플리케이션(110)에 액세스하는 내비게이션 인터페이스 컴포넌트(116)의 시간을 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 검색어의 수신 타임스탬프를 입력 오디오 신호 또는 액세스의 수신 시간 및 정의된 시간 창과 비교할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 입력 오디오 신호 또는 액세스의 수신 시간의 정의된 시간 창 내에서 수신 타임스탬프를 갖는 검색어 세트를 식별하거나 선택할 수 있다.
데이터 프로세싱 시스템(102)은 디지털 어시스턴트 애플리케이션(108) 또는 내비게이션 애플리케이션(110)의 지리 위치 감지 컴포넌트(118)의 인스턴스를 실행할 수 있다. 내비게이터 서비스(106)는 내비게이션 애플리케이션(110)의 지리 위치 감지 컴포넌트(118)의 인스턴스를 실행할 수 있다. 입력 오디오 신호가 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조한다는 결정에 응답하여, 지리 위치 감지 컴포넌트(118)는 디지털 어시스턴트 애플리케이션(108)을 실행하는 클라이언트 디바이스(104)의 적어도 하나의 센서(154)로부터 획득된 데이터를 검색할 수 있다. 지리 위치 감지 컴포넌트(118)에 의해 액세스되는 센서(154)는 관성 운동 유닛, 가속도계, 자이로스코프, 모션 검출기, GPS 센서 및 위치 센서를 포함할 수 있다. 검색된 데이터를 사용하여, 지리 위치 감지 컴포넌트(118)는 디지털 어시스턴트 애플리케이션(108)을 실행하는 클라이언트 디바이스(104)의 다른 측정치 중에서도 이동 방향, 포지션 및 속도를 결정하거나 식별할 수 있다. 지리 위치 감지 컴포넌트(118)는 다수의 측정치를 사용하여 디지털 어시스턴트 애플리케이션(108)을 실행하는 클라이언트 디바이스(104)의 다른 측정치 중에서도 이동 방향, 포지션 및 속도의 변화를 추가로 결정할 수 있다. 변화는 정의된 간격으로 샘플링된 하나 이상의 이전 측정치와 관련될 수 있다. 지리 위치 감지 컴포넌트(118)는 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 다른 측정치 중에서도 이동 방향, 포지션 및 속도를 결정하거나 식별할 수 있다. 지리 위치 감지 컴포넌트(118)는 다수의 측정치를 사용하여 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 측정치 중에서도 이동 방향, 포지션 및 속도의 변화를 더 결정할 수 있다. 변화는 정의된 간격으로 샘플링된 하나 이상의 이전 측정치와 관련될 수 있다.
지리 위치 감지 컴포넌트(118)에 의해 식별된 측정치를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트에 이전에 디스플레이된 벡터 기반 지도(146) 부분의 또 다른 포인트 위치 세트를 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 지리 위치 감지 컴포넌트(118)로부터의 하나 이상의 측정 이동 방향, 속도 및 포지션에 기초하여 벡터 기반 지도(146)의 이전에 디스플레이된 부분을 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 또한 벡터 기반 지도(146)의 현재 디스플레이된 부분을 식별할 수 있다. 이동 방향, 포지션, 속도 및 벡터 기반 지도(146)의 현재 디스플레이된 부분의 변화를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 이전에 디스플레이된 부분을 결정할 수 있다. 이동 방향, 포지션 및 속도의 변화는 현재 이전에 정의된 길이(예: 15초 ~ 3분)의 시간에 상대적일 수 있다. 벡터 기반 지도(146)의 현재 디스플레이된 부분으로부터, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 이전에 측정된 위치로부터의 변화에 기초하여 벡터 기반 지도(146)의 다른 부분으로 이동할 수 있다. 일단 이동되면, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 이전에 디스플레이된 부분을 식별할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 현재 디스플레이된 부분으로서 기준 프레임의 일부로서 벡터 기반 지도(146)의 이전에 디스플레이된 부분을 설정하거나 식별할 수 있다. 일단 설정되면, 기준 프레임의 한 부분은 벡터 기반 지도(146)의 현재 디스플레이된 부분에 대응할 수 있고, 기준 프레임의 다른 부분은 벡터 기반 지도(146)의 이전에 디스플레이된 부분에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 이전에 디스플레이된 부분의 치수 및 좌표를 식별할 수 있다. 좌표는 벡터 기반 지도(146) 상의 좌측 상단 및 우측 하단 좌표와 같은 기준 프레임 상의 좌표에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 이전에 디스플레이된 부분에 대해 식별된 치수 및 좌표와 각각의 포인트 위치의 지리적 좌표를 비교할 수 있다. 비교에 기초하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 이전에 디스플레이된 부분에 대응하는 기준 프레임 내의 포인트 위치 세트를 선택하거나 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 포인트 위치 세트를 제공할 수 있다.
또한, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 지리 위치 감지 컴포넌트(118)로부터의 하나 이상의 측정치 이동 방향, 속도 및 포지션에 기초하여 벡터 기반 지도(146)의 디스플레이될 부분을 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 또한 벡터 기반 지도(146)의 현재 디스플레이된 부분을 식별할 수 있다. 이동 방향, 포지션, 속도 및 벡터 기반 지도(146)의 현재 디스플레이된 부분의 변화를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 디스플레이될 부분을 결정할 수 있다. 이동 방향, 포지션 및 속도의 변화는 현재 이전에 정의된 길이(예: 15초 ~ 3분)의 시간에 상대적일 수 있다. 이동 방향, 포지션 및 속도의 변화를 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 예측된 이동 방향, 포지션 및 속도를 결정할 수 있다. 벡터 기반 지도(146)의 현재 디스플레이된 부분으로부터, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 예측된 이동 방향, 포지션 및 속도에 기초하여 벡터 기반 지도(146)의 다른 부분으로 이동할 수 있다. 일단 이동되면, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 디스플레이될 부분을 식별할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 현재 디스플레이된 부분으로서 기준 프레임의 일부로서 벡터 기반 지도(146)의 디스플레이될 부분을 설정하거나 식별할 수 있다. 일단 설정되면, 기준 프레임의 한 부분은 벡터 기반 지도(146)의 현재 디스플레이된 부분에 대응할 수 있고, 기준 프레임의 다른 부분은 벡터 기반 지도(146)의 디스플레이될 부분에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 디스플레이될 부분의 치수 및 좌표를 식별할 수 있다. 좌표는 벡터 기반 지도(146) 상의 좌측 상단 및 우측 하단 좌표와 같은 기준 프레임 상의 좌표에 대응할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 디스플레이될 부분에 대해 식별된 치수 및 좌표와 각각의 포인트 위치의 지리적 좌표를 비교할 수 있다. 비교에 기초하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 벡터 기반 지도(146)의 디스플레이될 부분에 대응하는 기준 프레임 내의 포인트 위치 세트를 선택하거나 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)의 내비게이션 인터페이스 컴포넌트(116)에 포인트 위치 세트를 제공할 수 있다.
내비게이션 애플리케이션(110)으로부터 데이터를 검색함으로써, NLP 컴포넌트(114)는 하나 이상의 참조 키워드 및 포인트 위치 세트에 대한 식별자에 기초하여 기준 프레임 내의 포인트 위치 세트로부터 하나 이상의 포인트 위치를 명확하게 하거나 식별할 수 있다. NLP 컴포넌트(114)는 시맨틱 지식 그래프(때때로 시맨틱 그래프 또는 시맨틱 네트워크라고도 함)를 사용하여 포인트 위치를 식별하기 위해 포인트 위치 세트에 대한 식별자와 하나 이상의 키워드 사이의 상관 관계를 결정할 수 있다. 시맨틱 지식 그래프는 정점을 통해 서로 연결된 노드의 세트를 포함할 수 있다. 각 노드는 키워드 또는 문구에 대응할 수 있다. 각 정점은 두 노드 간의 시맨틱 거리를 특정할 수 있다. 시맨틱 거리는 노드의 단어 또는 문구 사이의 시맨틱 유사성 또는 관련성 측정을 표현하거나 이에 대응할 수 있다. 세트의 각 포인트 위치에 대해, NLP 컴포넌트(114)는 시맨틱 지식 그래프를 사용하여 포인트 위치에 대한 대응 식별자와 하나 이상의 참조 키워드 사이의 시맨틱 거리를 계산하거나 결정할 수 있다. 이전에 논의된 바와 같이, 식별자는 이름 또는 카테고리 유형을 포함할 수 있다. 시맨틱 지식 그래프에서, NLP 컴포넌트(114)는 참조 키워드에 대응하는 노드와 포인트 위치에 대한 식별자에 대응하는 노드를 식별할 수 있다. NLP 컴포넌트(114)는 2개의 노드 사이의 시맨틱 거리를 결정할 수 있다. NLP 컴포넌트(114)는 참조 단어와 포인트 위치 세트의 식별자 사이의 시맨틱 거리에 기초하여 하나 이상의 포인트 위치를 식별할 수 있다. 시맨틱 지식 그래프를 사용하여 시맨틱 거리를 결정하면, NLP 컴포넌트(114)는 하나 이상의 참조 키워드를 사용하여 가장 낮은 시맨틱 거리를 갖는 포인트 위치를 식별할 수 있다. 다수의 포인트 위치를 식별하기 위해, NLP 컴포넌트(114)는 참조 키워드로부터 가장 낮은 n개의 시맨틱 거리를 갖는 하나 이상의 포인트 위치를 식별할 수 있다.
시맨틱 지식 그래프를 사용하여, NLP 컴포넌트(114)는 또한 참조 키워드가 기준 프레임 내의 임의의 포인트 위치를 참조하는지 여부를 결정할 수 있다. NLP 컴포넌트(114)는 각 참조 키워드와 각 포인트 위치에 대한 식별자 사이의 시맨틱 거리를 임계 거리와 비교할 수 있다. 임계 거리는 NLP 컴포넌트(114)가 참조 키워드가 시맨틱 지식 그래프에서 식별자를 참조한다고 결정할 수 있는 최대 시맨틱 거리를 나타낼 수 있다. NLP 컴포넌트(114)는 참조 키워드 중 하나와 식별자 중 하나 사이의 적어도 하나의 시맨틱 거리가 임계 거리보다 작거나 같음을 결정할 수 있다. 적어도 하나의 시맨틱 거리가 임계 거리보다 작거나 같다는 결정에 응답하여, NLP 컴포넌트(114)는 적어도 하나의 참조 키워드가 참조 프레임 내의 포인트 위치 중 하나를 참조한다고 결정할 수 있다. 반대로, NLP 컴포넌트(114)는 모든 시맨틱 거리가 임계 거리보다 크다고 결정할 수 있다. 모든 시맨틱 거리가 임계 거리보다 크다는 결정에 응답하여, NLP 컴포넌트(114)는 참조 키워드가 기준 프레임 내의 임의의 포인트 위치를 참조하지 않는다고 결정할 수 있다.
NLP 컴포넌트(114)는 또한 단어-감각 명확화, 담화 대상 분석 및 지시 분석과 같은 시맨틱 분석 기법을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다. NLP 컴포넌트(114)는 시맨틱 지식 그래프를 사용하여 결정된 시맨틱 거리에 기초하여 시맨틱 분석 기법의 사용 여부를 결정할 수 있다. NLP 컴포넌트(114)는 참조 키워드와 포인트 위치의 식별자 사이의 시맨틱 거리를 임계 거리와 비교할 수 있다. NLP 컴포넌트(114)는 시맨틱 거리의 설정된 백분율(예를 들어, 90% 이상)이 임계 값보다 크다고 결정할 수 있다. 상대적으로 높은 시맨틱 거리는 시맨틱 지식 그래프가 포인트 위치에 대한 식별자 간의 모호화에 효과적이지 않을 수 있음을 나타낼 수 있다. 결정에 응답하여, NLP 컴포넌트(114)는 하나 이상의 포인트 위치를 식별하기 위해 시맨틱 분석 기법을 사용할 수 있다. 세트의 각 포인트 위치에 대해, NLP 컴포넌트(114)는 시맨틱 분석 기법을 적용하여 포인트 위치에 대한 대응 식별자와 참조 키워드 사이의 색인 측정치를 계산하거나 결정할 수 있다. 색인 측정치는 입력 오디오 신호에서 파싱된 참조 키워드가 포인트 위치에 대한 식별자를 참조하거나 표시할 가능성을 나타낼 수 있다. 색인 측정치를 결정하면, NLP 컴포넌트(114)는 하나 이상의 참조 키워드를 사용하여 가장 큰 색인 측정치를 갖는 포인트 위치를 식별할 수 있다. 다수의 포인트 위치를 식별하기 위해, NLP 컴포넌트(114)는 참조 키워드와 관련하여 가장 큰 n개의 색인 측정치를 갖는 하나 이상의 포인트 위치를 식별할 수 있다.
인덱스 분석 기법을 사용하여, NLP 컴포넌트(114)는 또한 참조 키워드가 기준 프레임 내의 임의의 포인트 위치를 참조하는지 여부를 결정할 수 있다. NLP 컴포넌트(114)는 각 참조 키워드와 각 포인트 위치에 대한 식별자 사이의 색인 측정치를 임계 측정치와 비교할 수 있다. 임계 측정치는 NLP 컴포넌트(114)가 참조 키워드가 식별자를 참조한다고 결정할 수 있는 최대 색인 측정치를 나타낼 수 있다. NLP 컴포넌트(114)는 참조 키워드 중 하나와 식별자 중 하나 사이의 적어도 하나의 색인 측정치가 임계 측정치보다 작거나 같음을 결정할 수 있다. 적어도 하나의 색인 측정치가 임계 측정치보다 작거나 같다는 결정에 응답하여, NLP 컴포넌트(114)는 적어도 하나의 참조 키워드가 참조 프레임 내의 포인트 위치 중 하나를 참조한다고 결정할 수 있다. 반대로, NLP 컴포넌트(114)는 모든 색인 측정치가 임계 측정치보다 크다고 결정할 수 있다. 모든 색인 측정치가 임계 측정치보다 크다는 결정에 응답하여, NLP 컴포넌트(114)는 참조 키워드가 기준 프레임 내의 임의의 포인트 위치를 참조하지 않는다고 결정할 수 있다.
NLP 컴포넌트(114)는 포인트 위치 세트로부터 하나 이상의 포인트 위치를 식별하기 위해 내비게이션 애플리케이션(110)에 의해 이전에 수신된 검색어 세트를 사용할 수 있다. 세트의 각 포인트 위치에 대해, NLP 컴포넌트(114)는 포인트 위치에 대한 대응 식별자와 하나 이상의 검색어 사이의 시맨틱 거리를 계산하거나 결정할 수 있다. 시맨틱 지식 그래프에서, NLP 컴포넌트(114)는 검색어에 대응하는 노드 및 포인트 위치에 대한 식별자에 대응하는 노드를 식별할 수 있다. NLP 컴포넌트(114)는 2개의 노드 사이의 시맨틱 거리를 결정할 수 있다. NLP 컴포넌트(114)는 포인트 위치 세트의 식별자와 검색어 사이의 시맨틱 거리에 기초하여 포인트 위치의 서브세트를 선택할 수 있다. 내비게이션 애플리케이션(110)으로부터 검색된 포인트 위치 세트로부터, NLP 컴포넌트(114)는 참조 키워드로부터 가장 낮은 n개의 시맨틱 거리를 갖는 포인트 위치의 서브세트를 선택할 수 있다. 포인트 위치의 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
지리 위치 감지 컴포넌트(118)로부터의 측정치를 사용하여, NLP 컴포넌트(114)는 세트로부터 하나 이상의 포인트 위치를 식별할 수 있다. 위에서 논의된 바와 같이, 지리 위치 감지 컴포넌트(118)는 디지털 어시스턴트 애플리케이션(108) 또는 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 다른 측정치들 중에서 이동 방향, 포지션 및 속도를 결정하거나 식별할 수 있다. NLP 컴포넌트(114)는 지리 위치 감지 컴포넌트(118)로부터의 측정치에 기초하여 세트로부터 포인트 위치의 서브세트를 식별하거나 선택할 수 있다. NLP 컴포넌트(114)는 내비게이션 애플리케이션(110)으로부터 검색된 각 포인트 위치의 지리적 좌표를 식별할 수 있다. NLP 컴포넌트(114)는 포인트 위치 세트의 지리적 좌표를 클라이언트 디바이스(104)의 포지션과 비교할 수 있다. NLP 컴포넌트(114)는 클라이언트 디바이스(104)의 포지션의 정의된 근접도(예를 들어, 1 내지 3km 이내) 내의 지리적 좌표로 위치 포인트의 서브세트를 식별할 수 있다. 서브세트로부터, NLP 컴포넌트(114)는 더 작은 포인트 위치 서브세트를 선택하기 위해 이동 방향을 사용할 수 있다. NLP 컴포넌트(114)는 이동 방향을 따라 지리적 좌표를 갖는 더 작은 서브세트의 포인트 위치를 선택하거나 식별할 수 있고, 이동 방향과 반대되는 포인트 위치를 제외할 수 있다. 예를 들어, NLP 컴포넌트(114)는 클라이언트 디바이스(104)가 북쪽으로 이동하는 것으로 측정된 경우 클라이언트 디바이스(104)로부터 2km 이내의 북쪽 포인트 위치를 선택할 수 있다. 포인트 위치의 더 작은 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
NLP 컴포넌트(114)는 클라이언트 디바이스(104)의 위치 식별자 및 포인트 위치의 위치 식별자를 사용하여 세트로부터 하나 이상의 포인트 위치를 식별할 수 있다. NLP 컴포넌트(114)는 클라이언트 디바이스(104)에 대한 위치 식별자를 세트 내의 포인트 위치의 위치 식별자와 비교할 수 있다. 각각의 포인트 위치에 대해, NLP 컴포넌트(114)는 포인트 위치의 위치 식별자가 클라이언트 디바이스(104)에 대한 위치 식별자의 정의된 근접도(예를 들어, 1km 내지 3km 미만) 내에 있는지 여부를 결정할 수 있다. NLP 컴포넌트(114)는 클라이언트 디바이스(104)의 위치 식별자의 정의된 근접도 내에서 위치 식별자를 갖는 포인트 위치의 서브세트를 선택할 수 있다. 포인트 위치의 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
하나 이상의 포인트 위치를 식별할 때, NLP 컴포넌트(114)는 입력 오디오 신호에서 식별된 참조 키워드와 관련된 다른 키워드를 검색할 수 있다. NLP 컴포넌트(114)는 클라이언트 디바이스(104)로부터 수신된 데이터 프로세싱 시스템(102)의 콘텐츠 또는 선호도에 기초하여 확장된 엔터티를 자동으로 생성할 수 있다. NLP 컴포넌트(114)는 후속 오디오 기반 입력 요청에서 데이터 프로세싱 시스템(102)이 클라이언트 디바이스(104)로부터 요청하는 콘텐츠 또는 선호도에 기초하여 확장된 엔터티를 생성할 수 있다. 데이터 프로세싱 시스템(102)에 의해 수신된 콘텐츠 또는 선호도에 기초하여, NLP 컴포넌트(114)는 하나 이상의 포인트 위치를 식별하기 위해 참조 키워드와 관련된 추가 키워드를 검색할 수 있다. 예를 들어, 입력 오디오 신호는 "Ok, Let 's go home"을 포함할 수 있고, NLP 컴포넌트(114)는 "home"을 참조 키워드로 식별했을 수 있다. 클라이언트 디바이스(104)의 최종 사용자는 최종 사용자의 집 주소를 디지털 어시스턴트 애플리케이션(108)을 실행하는 데이터 프로세싱 시스템(102)에 미리 제공했을 수 있다. 이 예에서, NLP 컴포넌트(114)는 최종 사용자의 집 주소에 대한 위치 식별자를 검색할 수 있고, 내비게이션 애플리케이션(110)으로부터 검색된 포인트 위치의 위치 식별자와 비교할 수 있다. 위치 식별자를 비교함으로써, NLP 컴포넌트(114)는 "home"의 참조 키워드에 대응하는 포인트 위치를 식별할 수 있다.
NLP 컴포넌트(114)는 참조 키워드의 추가 분석에 기초하여 세트로부터 하나 이상의 포인트 위치를 식별할 수 있다. NLP 컴포넌트(114)는 참조 키워드가 참조하고 있는 벡터 기반 지도(146)의 어느 부분을 결정하거나 식별할 수 있다. 전술한 바와 같이, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)에 액세스하여, 뷰포트를 통해 보이는 벡터 기반 지도(146)의 일부의 포인트 위치를 검색할 수 있다. 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)에 액세스하여, 목적지 위치에 대한 뷰포트 외부의 근접도에 대한 벡터 기반 지도(145)의 다른 부분에 액세스한다. 포인트 위치는 뷰포트 내부 또는 뷰포트 외부에 보이도록 라벨링될 수 있다. NLP 컴포넌트(114)는 참조 키워드가 근위 단어(proximal word)인지 원위 단어(distal word)인지를 결정하기 위해 시맨틱 분석 기법을 수행할 수 있다. 근위 단어는 근처의 포인트 위치를 나타낼 수 있으며, 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분에 있는 포인트 위치 중 하나와 상관될 수 있다. 원위 단어는 멀리 떨어진 포인트 위치를 나타낼 수 있으며, 내비게이션 애플리케이션(110)의 뷰포트 외부에 있는 벡터 기반 지도(146)의 일부에 있는 포인트 위치 중 하나와 상관될 수 있다. NLP 컴포넌트(114)는 하나 이상의 참조 키워드를 사전 정의된 근위 단어 세트(예를 들어, "here", "nearby" 및 "close by") 및 사전 정의된 원위 단어 세트(예를 들어, "by the destination", "over there", "along")와 비교할 수 있다. NLP 컴포넌트(114)는 참조 단어가 근위 단어임을 결정할 수 있다. 결정에 응답하여, NLP 컴포넌트(114)는 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분 상의 포인트 위치에 대응하는 포인트 위치의 서브세트를 선택하거나 식별할 수 있다. NLP 컴포넌트(114)는 참조 단어가 원위 단어임을 결정할 수 있다. 결정에 응답하여, NLP 컴포넌트(114)는 뷰포트 외부의 벡터 기반 지도(146)의 부분 상의 포인트 위치에 대응하는 포인트 위치의 서브세트를 선택하거나 식별할 수 있다. 포인트 위치의 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
NLP 컴포넌트(114)는 입력 오디오 신호로부터 파싱된 하나 이상의 보조 키워드를 사용하여 기준 프레임 내의 포인트 위치 세트로부터 하나 이상의 포인트 위치를 식별할 수 있다. 전술한 바와 같이, 보조 키워드는 요청 및 하나 이상의 참조 키워드 외에 입력 오디오 신호로부터 파싱된 키워드일 수 있으며, 클라이언트 디바이스(104)의 디스플레이를 참조하는 키워드에 대응할 수 있다. 입력 오디오 신호로부터 파싱된 키워드를 보조 키워드로 식별할 때, NLP 컴포넌트(114)는 내비게이션 애플리케이션(110)의 뷰포트의 서브세트 영역 또는 보조 키워드에 대한 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 디스플레이를 식별할 수 있다. 전술한 바와 같이, 보조 키워드를 식별하는데 사용되는 미리 정의된 키워드의 제3 세트의 각 키워드는 내비게이션 애플리케이션(110)의 뷰포트의 서브세트 영역에 대응하거나 연관될 수 있다. 예를 들어, 보조 키워드 "좌측 상단 코너"는 내비게이션 애플리케이션(110)의 뷰포트의 좌측 상단 사분면에 대응할 수 있다. 내비게이션 애플리케이션(110)의 뷰포트의 서브세트 영역은 픽셀 좌표(예를 들어, 폭에 의한 길이)를 사용하여 정의될 수 있다. NLP 컴포넌트(114)는 보조 키워드와 연관된 서브세트 영역에 대응하는 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 일부의 서브세트 영역을 식별하거나 결정할 수 있다. NLP 컴포넌트(114)는 보조 키워드와 연관된 뷰포트의 서브세트 영역에 대해 정의된 픽셀 좌표를 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 부분에 대한 치수 및 좌표로 변환할 수 있다.
보조 키워드와 연관된 뷰포트의 서브세트 영역에 대응하는 벡터 기반 지도(146) 부분의 서브세트 영역에 대한 치수 및 좌표를 사용하여, NLP 컴포넌트(114)는 포인트 위치의 서브세트를 선택하거나 식별할 수 있다. NLP 컴포넌트(114)는 각 포인트 위치의 지리적 좌표를 치수 및 좌표와 비교할 수 있다. 비교에 기초하여, NLP 컴포넌트(114)는 벡터 기반 지도(146)의 부분의 서브세트 영역 내의 포인트 위치를 선택하거나 식별할 수 있다. 포인트 위치의 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
NLP 컴포넌트(114)는 세트로부터 하나 이상의 포인트 위치를 식별하는데 이전에 수신된 입력 오디오 신호를 사용할 수 있다. NLP 컴포넌트(114)는 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하도록 결정된 입력 오디오 신호를 저장하고 유지할 수 있다. NLP 컴포넌트(114)는 또한 내비게이션 애플리케이션(110)의 적어도 하나의 기능을 참조하도록 결정된 이전에 수신된 입력 오디오 신호로부터 파싱된 하나 이상의 키워드를 저장하고 유지할 수 있다. NLP 컴포넌트(114)는 저장된 각각의 입력 오디오 신호의 수신 이후 경과된 시간을 식별할 수 있다. 각각의 입력 오디오 신호에 대해, NLP 컴포넌트(114)는 경과 시간이 정의된 임계 시간(예를 들어, 15초 내지 60분)보다 크거나 같은지를 결정할 수 있다. NLP 컴포넌트(114)는 정의된 임계 시간보다 작은 경과 시간으로 이전에 수신된 입력 오디오 신호 세트를 식별할 수 있다. 세트의 각각에 대해, NLP 컴포넌트(114)는 입력 오디오 신호를 파싱하여 위에서 설명된 기능을 사용하여 하나 이상의 참조 키워드를 식별할 수 있다.
이전 입력 오디오 신호로부터의 참조 키워드를 사용하여, NLP 컴포넌트(114)는 포인트 위치 세트로부터 포인트 위치의 서브세트를 선택하거나 식별할 수 있다. NLP 컴포넌트(114)는 이전 입력 오디오 신호로부터의 참조 키워드와 현재 입력 오디오 신호로부터의 참조 키워드 사이의 매칭을 결정할 수 있다. 매칭에 기초하여, NLP 컴포넌트(114)는 매칭에 대응하는 참조 키워드와 포인트 위치의 식별자 사이의 시맨틱 거리를(예를 들어, 감소시킴으로써) 조정할 수 있다. 예를 들어, 이전 및 현재 입력 오디오 신호 모두 "restaurant"이라는 참조 단어를 포함할 수 있다. 매치를 결정한 NLP 컴포넌트(114)는 참조 단어 "restaurant"과 식별자 사이의 시맨틱 거리를 감소시켜 레스토랑에 해당하는 포인트 위치가 선택될 가능성을 높일 수 있다.
NLP 컴포넌트(114)는 또한 현재 입력 오디오 신호의 참조 단어와 이전에 수신된 입력 오디오 신호의 참조 단어 사이의 색인 측정치를 계산하거나 결정하기 위해 시맨틱 분석 기법을 사용할 수 있다. 시맨틱 분석 기법은 특히 단어 감지 명확성, 담론 대상 분석 및 지시 분석을 포함할 수 있다. 이전에 수신된 입력 오디오 신호의 참조 단어 각각에 대해, NLP 컴포넌트(114)는 색인 측정치를 계산하거나 결정할 수 있다. 이전에 논의된 바와 같이, 색인 측정치는 입력 오디오 신호에서 파싱된 참조 키워드가 포인트 위치에 대한 식별자를 참조하거나 표시할 가능성을 나타낼 수 있다. 색인 측정치를 결정하면, NLP 컴포넌트(114)는 하나 이상의 참조 키워드를 사용하여 가장 큰 색인 측정치를 갖는 이전에 수신된 입력 오디오 신호로부터 참조 단어를 식별할 수 있다. 다수의 포인트 위치를 식별하기 위해, NLP 컴포넌트(114)는 현재 입력 오디오 신호의 참조 키워드와 관련하여 가장 큰 n개의 색인 측정치를 갖는 이전에 수신된 입력 오디오 신호로부터 하나 이상의 참조 단어를 식별할 수 있다. 식별을 통해, NLP 컴포넌트(114)는 이전에 수신된 입력 오디오 신호로부터 하나 이상의 참조 키워드를 사용하여 포인트 위치의 서브세트를 선택할 수 있다.
세트의 각 포인트 위치에 대해, NLP 컴포넌트(114)는 이전에 수신된 입력 오디오 신호로부터 포인트 위치에 대한 대응 식별자와 하나 이상의 참조 키워드 사이의 시맨틱 거리를 계산하거나 결정할 수 있다. 시맨틱 지식 그래프에서, NLP 컴포넌트(114)는 참조 키워드에 대응하는 노드와 포인트 위치에 대한 식별자에 대응하는 노드를 식별할 수 있다. NLP 컴포넌트(114)는 2개의 노드 사이의 시맨틱 거리를 결정할 수 있다. NLP 컴포넌트(114)는 포인트 위치 세트의 식별자와 참조 키워드 사이의 시맨틱 거리에 기초하여 포인트 위치의 서브세트를 선택할 수 있다. 내비게이션 애플리케이션(110)으로부터 검색된 포인트 위치 세트로부터, NLP 컴포넌트(114)는 참조 키워드로부터 가장 낮은 n개의 시맨틱 거리를 갖는 포인트 위치의 서브세트를 선택할 수 있다. 포인트 위치의 서브세트로부터, NLP 컴포넌트(114)는 위에서 상술한 기능을 사용하여 하나 이상의 포인트 위치를 식별할 수 있다.
데이터 프로세싱 시스템(102)은 다이렉트 액션 핸들러 컴포넌트(120)의 인스턴스를 실행할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 NLP 컴포넌트(114)로부터 수신된 입력에 기초하여 스크립트 또는 프로그램을 실행할 수 있다. 내비게이터 서비스(106)는 스크립트 또는 프로그램을 제공할 수 있다. 내비게이터 서비스(106)는 API를 통해 데이터 프로세싱 시스템(102)이 사용 가능한 스크립트 또는 프로그램을 만들 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 입력 필드에 대한 파라미터 또는 응답을 결정할 수 있고, 데이터를 액션 데이터 구조로 패키징할 수 있다. 액션 데이터 구조는 API를 통해 데이터 프로세싱 시스템(102)에 제공될 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 이행을 위해 액션 데이터 구조를 내비게이션 애플리케이션(110)에 전송할 수 있거나, 데이터 프로세싱 시스템(102)이 액션 데이터 구조의 명령어를 이행할 수 있다.
다이렉트 액션 핸들러 컴포넌트(120)는 요청 및 입력 오디오 신호로부터 파싱된 참조 키워드에 기초하여 스레드 또는 대화의 액션에 대한 데이터 구조를 생성하거나 선택할 수 있다. 전술한 바와 같이, NLP 컴포넌트(114)는 입력 오디오 신호가 내비게이션 애플리케이션(110)을 참조하고, 내비게이션 애플리케이션(110)의 어떤 기능을 참조하는지 결정할 수 있다. 액션 데이터 구조는 요청을 완료하기 위해 내비게이션 애플리케이션(110)에 대한 정보를 포함할 수 있다. 정보는 입력 오디오 신호에 표시된 내비게이션 애플리케이션(110)의 기능 중 하나에 대응하는 요청 유형을 포함할 수 있다. 정보는 기능 유형에 대응하는 내비게이션 애플리케이션(110)의 기능을 수행하기 위한 하나 이상의 파라미터를 포함할 수 있다. 하나 이상의 파라미터는 입력 오디오 신호로부터 파싱된 참조 키워드 및 보조 키워드를 사용하여 식별된 하나 이상의 포인트 위치를 포함할 수 있다. 하나 이상의 파라미터는 하나 이상의 식별된 포인트 위치에 대한 식별자를 포함할 수 있다. 하나 이상의 파라미터는 디지털 어시스턴트 애플리케이션(108) 또는 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)에 대한 연결 데이터, 예컨대 계정 식별자 및 인증 크리덴셜을 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 또한 요청을 사용하여 내비게이션 애플리케이션(110)을 호출할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 내비게이터 서비스(106)에 대한 또 다른 요청(때때로 메시지라고도 함)으로서 전송하기 위해 요청을 액션 데이터 구조로 패키징할 수 있다.
예를 들어, 다이렉트 액션 핸들러 컴포넌트(120)는 데이터 저장소(126)로부터 적어도 하나의 템플릿(136)을 검색하여 내비게이션 애플리케이션(110)을 위해 액션 데이터 구조에 포함시킬 필드를 결정할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 데이터 구조의 필드에 대한 정보를 획득하기 위해 템플릿(136)을 검색할 수 있다. 요청 유형 및 하나 이상의 파라미터를 사용하여, 다이렉트 액션 핸들러 컴포넌트(120)는 템플릿(136)으로부터 필드를 채워서 액션 데이터 구조를 생성할 수 있다. 템플릿(136)은 액션 데이터 구조의 생성을 위해 내비게이션 애플리케이션(110) 또는 내비게이션 서비스(106)에 대해 설정되거나 구성될 수 있다. 예를 들어, 내비게이션 애플리케이션(110)을 위한 템플릿(136)은 {[계정 식별자], [인증 크리덴셜], [요청 유형], [파라미터]}의 형태일 수 있다. 내비게이션 애플리케이션(110)을 위한 템플릿(136)을 채울 때, 다이렉트 액션 핸들러 컴포넌트(120)는 다른 정보 중에서도 계정 식별자, 인증 크리덴셜, 요청 유형(또는 기능 식별자) 및 하나 이상의 파라미터를 식별하고 삽입할 수 있다.
적어도 하나의 참조 키워드가 기준 프레임 내의 포인트 위치 중 하나를 참조한다고 결정하는 것에 응답하여, 다이렉트 액션 핸들러 컴포넌트(120)는 다른 데이터 중에서도 포인트 위치의 식별자, 클라이언트 디바이스(104)의 좌표 및 포인트 위치의 위치 식별자를 포함하도록 하나 이상의 파라미터를 설정할 수 있다. 파라미터에 포함된 식별자는 참조 키워드를 사용하여 식별된 포인트 위치에 대한 식별자를 포함할 수 있다. 하나 이상의 파라미터는 또한 적어도 하나의 참조 키워드가 기준 프레임 내의 포인트 위치 중 하나를 참조한다는 표시자를 포함할 수 있다. 참조 키워드가 기준 프레임 내의 포인트 위치를 참조하지 않는다는 결정에 응답하여, 다이렉트 액션 핸들러 컴포넌트(120)는 클라이언트 디바이스(104)의 좌표 및 참조 키워드를 포함하도록 하나 이상의 파라미터를 설정할 수 있다. 하나 이상의 파라미터는 참조 키워드가 기준 프레임 내의 포인트 위치를 참조하지 않는다는 표시자를 포함할 수 있다.
다이렉트 액션 핸들러 컴포넌트(120)는 엔터티를 확장하여 내비게이터 서비스(106)에 대한 액션 데이터 구조의 주어진 필드에 대한 내비게이터 서비스(106)의 포맷으로 엔터티를 변환할 수 있다. 엔터티는 내비게이터 서비스(106)에 대해 모호하거나 불명확할 수 있는 정보를 포함할 수 있다. 예를 들어, 내비게이터 서비스(106)가 거리 주소를 요청하면, 최종 사용자는 위치 또는 사업체의 적절한 이름인 엔터티를 제공할 수 있다. NLP 컴포넌트(114)는 클라이언트 디바이스(104)로부터 수신된 데이터 프로세싱 시스템(102)의 콘텐츠 또는 선호도에 기초하여 확장된 엔터티를 자동으로 생성할 수 있다. NLP 컴포넌트(114)는 후속 오디오 기반 입력 요청에서 데이터 프로세싱 시스템(102)이 클라이언트 디바이스(104)로부터 요청하는 콘텐츠 또는 선호도에 기초하여 확장된 엔터티를 생성할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 "Ok, let's go home"를 포함하는 입력 오디오 신호를 수신할 수 있다. NLP 컴포넌트(114)는 내비게이션 애플리케이션(110)으로부터 검색된 포인트 위치의 어떤 식별자가 참조 키워드에 대응하는지를 결정할 수 있다. 예를 들어, NLP 컴포넌트(114)는 기능에 대한 하나 이상의 파라미터 중 하나로서 위치 엔터티로서 "home"을 식별할 수 있다; 그러나 액션 데이터 구조의 위치 필드는 주소, 도시, 주 및 우편 번호가 필요할 수 있다. 이 예에서, "home" 위치 엔터티는 내비게이터 서비스(106)에 의해 요청된 형식이 아니다. 클라이언트 디바이스(104)의 최종 사용자가 이전에 데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)에 최종 사용자의 집 주소를 제공한 경우, NLP 컴포넌트(114)는 "home"을 서비스 제공자 디바이스의 액션 데이터 구조의 필드에 의해 요청된 형식으로 확장할 수 있다(예: {street_address:"123 Main St.", city:"Anytown", state:"CA"}). 최종 사용자가 이전에 데이터 프로세싱 시스템(102)에 최종 사용자의 집 주소를 제공하지 않은 경우, 데이터 프로세싱 시스템(102)은 최종 사용자에게 "home"이 아닌 특정 주소를 표시하도록 요청하는 오디오 기반 입력 요청을 생성하고 전송할 수 있다. 내비게이터 서비스(106)로 엔터티를 전송하기 전에 엔터티를 확장하는 것은 내비게이터 서비스(106)가 확장되지 않은 엔터티를 수신한 후에 다른 요청을 명확히하거나 추가 정보를 전송할 수 없기 때문에 필요한 네트워크 전송의 수를 줄일 수 있다.
액션 데이터 구조의 생성시, 다이렉트 액션 핸들러 컴포넌트(120)는 액션 데이터 구조를 내비게이션 애플리케이션(110)에 송신, 전송 또는 제공할 수 있다. 전술한 바와 같이, 디지털 어시스턴트 애플리케이션(108)을 실행하는 클라이언트 디바이스(104)는 내비게이션 애플리케이션(110)이 없을 수 있고, 이에 응답하여 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)에 액세스하기 위해 다른 연관된 클라이언트 디바이스(104)에 액세스할 수 있다. 입력 오디오 신호를 수신한 클라이언트 디바이스(104)가 실행 중이거나 내비게이션 애플리케이션(110)을 갖는다는 결정에 응답하여, 다이렉트 액션 핸들러 컴포넌트(120)는 내비게이션 애플리케이션(110)에 액션 데이터 구조를 제공할 수 있다. 반대로, 입력 오디오 신호를 수신한 클라이언트 디바이스(104)가 실행 중이 아니거나 내비게이션 애플리케이션(110)이 없다는 결정에 응답하여, 다이렉트 액션 핸들러 컴포넌트(120)는 실행 중이거나 내비게이션 애플리케이션(110)을 갖는 것으로 식별된 다른 클라이언트 디바이스(104)에 액션 데이터 구조를 제공할 수 있다.
디지털 어시스턴트 인터페이스 컴포넌트(138)는 다이렉트 액션 핸들러 컴포넌트(120)에 의해 생성된 액션 데이터 구조를 수신할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 템플릿(136)에 따라 액션 데이터 구조를 파싱할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 또한 템플릿(136)의 사본을 유지할 수 있다(예를 들어, 내비게이터 서비스(106)에 의해 액세스 가능한 데이터베이스 상에). 템플릿(136)을 적용함으로써, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 데이터 액션 구조로부터 계정 식별자, 인증 크리덴셜, 요청 유형 및 하나 이상의 파라미터를 식별할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 인증 크리덴셜의 로컬 복사본을 액션 데이터 구조로부터의 인증 크리덴셜의 복사본과 비교함으로써 계정 식별자를 인증할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 계정 식별자를 사용하여 클라이언트 디바이스(104)에서 실행되는 내비게이션 서비스(106) 또는 내비게이션 애플리케이션(110)으로부터 인증 크리덴셜의 로컬 복사본을 검색할 수 있다. 계정 식별자를 성공적으로 인증하기 위한 인증 크리덴셜 간의 매칭을 결정하는 것에 응답하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 요청 유형 및 하나 이상의 파라미터를 사용하여 내비게이션 안내 프로세스를 개시할 수 있다. 내비게이션 안내 프로세스는 위치 찾기 동작과 경로 라우팅 동작을 포함할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 위치 찾기 동작에 대응하는 것으로 요청 유형을 식별할 수 있다. 식별에 응답하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 위치 찾기 동작을 개시하기 위해 위치 찾기 컴포넌트(140)를 호출할 수 있다. 위치 찾기 위치에서, 액션 데이터 구조는 하나 이상의 포인트 위치를 포함할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 경로 라우팅 동작에 대응하는 것으로 요청 유형을 식별할 수 있다. 경로 라우팅 동작에서, 액션 데이터 구조는 단일 포인트 위치를 포함할 수 있다. 식별에 응답하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 경로 라우팅 동작을 개시하기 위해 경로 라우터 컴포넌트(142)를 호출할 수 있다.
데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)는 내비게이션 애플리케이션(110)의 위치 찾기 컴포넌트(140)의 인스턴스를 실행할 수 있다. 호출에 응답하여, 위치 찾기 컴포넌트(140)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분에 하나 이상의 포인트 위치를 제시할 수 있다. 위치 찾기 컴포넌트(140)는 표시자를 식별하기 위해 동작 데이터 구조를 파싱할 수 있다. 표시자를 사용하여, 위치 찾기 컴포넌트(140)는 디지털 어시스턴트 애플리케이션(108)에서 입력 오디오 신호의 참조 키워드가 적어도 하나의 포인트 위치를 참조한다고 결정할 수 있다. 결정에 응답하여, 위치 찾기 컴포넌트(140)는 액션 데이터 구조로부터 하나 이상의 포인트 위치를 식별할 수 있다. 각 포인트 위치에 대해, 위치 찾기 컴포넌트(140)는 벡터 기반 지도(146) 상의 포인트 위치에 대응하는 위치 식별자를 식별할 수 있다.
반대로, 위치 찾기 컴포넌트(140)는 디지털 어시스턴트 애플리케이션(108)에서 입력 오디오 신호의 참조 키워드를 결정할 수 있으며, 액션 데이터 구조의 표시자에 기초하여 적어도 하나의 포인트 위치를 참조할 수 있다. 결정에 응답하여, 위치 찾기 컴포넌트(140)는 기준 프레임 외부의 벡터 기반 지도(146)에 액세스할 수 있다. 벡터 기반 지도(146)에 액세스한 위치 찾기 컴포넌트(140)는 기준 프레임 외부의 하나 이상의 포인트 위치의 식별자를 검색할 수 있다. 위치 찾기 컴포넌트(140)는 액션 데이터 구조의 참조 키워드와 매칭되는 벡터 기반 지도(146)에서 참조 프레임 외부의 하나 이상의 포인트 위치의 식별자를 식별할 수 있다. 예를 들어, 수신된 액션 데이터 구조에 포함된 참조 키워드 "Tower ABC"는 기준 프레임 내의 임의의 포인트 위치를 참조할 수 있다. 이 예에서, 위치 찾기 컴포넌트(140)는 초기 기준 프레임 외부의 벡터 기반 지도(146)에서 식별자 "Tower ABC"와 매칭되는 포인트 위치를 검색할 수 있다. 위치 찾기 컴포넌트(140)는 참조 키워드와 매칭되는 식별자로 다수의 포인트 위치를 식별할 수 있다. 액션 데이터 구조로부터의 클라이언트 디바이스(104)의 위치 식별자를 사용하여, 위치 찾기 컴포넌트(140)는 클라이언트 디바이스(104)에 가장 가까운 포인트 위치를 식별할 수 있다. 각 포인트 위치의 식별과 함께, 위치 찾기 컴포넌트(140)는 식별된 포인트 위치에 대한 지리적 좌표를 식별할 수 있다.
초기 기준 프레임 외부의 포인트 위치 식별에 응답하여, 위치 찾기 컴포넌트(140)는 참조 키워드와 매칭되는 식별자를 갖는 포인트 위치를 포함하도록 기준 프레임을 수정할 수 있다. 위치 찾기 컴포넌트(140)는 벡터 기반 지도(146)의 가시적 부분에 대응하는 초기 기준 프레임의 치수 및 좌표를 식별할 수 있다. 위치 찾기 컴포넌트(140)는 참조 키워드와 매칭되는 식별자와 함께 포인트 위치의 좌표를 포함하도록 기준 프레임의 좌표를 이동할 수 있다. 포인트 위치의 좌표는 예를 들어 새로운 기준 프레임의 중심에 있을 수 있다. 위치 찾기 컴포넌트(140)는 또한 기준 프레임의 치수를 유지할 수 있다. 기준 프레임이 이동되면, 내비게이션 애플리케이션(110)은 뷰포트를 통해 벡터 기반 지도(146)의 다른 부분을 디스플레이할 수 있다. 부분은 참조 키워드와 매칭되는 식별자를 가진 포인트 위치를 포함하도록 이동된 참조 프레임에 대응할 수 있다. 이러한 방식으로, 디지털 어시스턴트 애플리케이션(108) 및 내비게이션 애플리케이션(110)은 포인트 위치를 제시하고, 뷰포트를 통해 디스플레이된 벡터 기반 지도(146)의 일부 내부 및 외부에서 다른 기능을 수행하는데 사용될 수 있다. 예를 들어, NLP 컴포넌트(114)에 의해 파싱된 제1 음성 쿼리는 "Show me Tower ABC"일 수 있다. NLP 컴포넌트(114)는 제1 음성 쿼리가 내비게이션 애플리케이션(110)의 뷰포트를 통해 디스플레이된 벡터 기반 지도(146)에서 현재 보이는 어떤 포인트 위치도 참조하지 않는다고 결정할 수 있다. 참조 키워드 "Tower ABC"로, 위치 찾기 컴포넌트(140)는 "Tower ABC"에 대응하는 식별자로 포인트 위치를 찾을 수 있다. 그 후, NLP 컴포넌트(114)에 의해 파싱된 제2 음성 쿼리는 "Show me patisseries"일 수 있다. NLP 컴포넌트(114)는 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 부분에서 볼 수 있는 포인트 위치 중 일부가 참조 키워드 "patisseries"에 의해 참조된다는 것을 결정할 수 있다. 그 후 위치 찾기 컴포넌트(140)는 벡터 기반 지도(146)의 일부에서 대응하는 포인트 위치를 강조할 수 있다.
위치 찾기 컴포넌트(140)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 벡터 기반 지도(146)의 부분 상의 위치 식별자에 대응하는 포인트 위치를 제시할 수 있다. 예를 들어, 위치 찾기 컴포넌트(140)는 점 또는 원을 삽입하거나 벡터 기반 지도(146) 상의 포인트 위치에 대응하는 그래픽 표현을 강조할 수 있다. 위치 찾기 컴포넌트(140)는 또한 텍스트로 포인트 위치에 대한 식별자를 디스플레이할 수 있다. 뷰포트를 통해 벡터 기반 지도(146)의 일부에 포인트 위치를 디스플레이할 때, 위치 찾기 컴포넌트(140)는 디스플레이를 위한 텍스트 또는 출력 오디오 신호를 제공하기 위한 응답을 생성할 수 있다. 응답은 위치 찾기 동작에 대응하는 요청 유형을 포함할 수 있다. 응답은 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 일부 내에 디스플레이된 포인트 위치에 대한 식별자를 포함할 수 있다. 응답은 디스플레이된 여러 포인트 위치를 포함할 수 있다. 응답은 또한 디스플레이 또는 출력 오디오 신호를 위한 하나 이상의 단어와 함께 적어도 하나의 응답 문구를 포함할 수 있다. 응답 문구는 템플릿을 사용하여 정의될 수 있다. 예를 들어, 응답 문구의 템플릿은 "지역에서 찾은 [포인트 위치 수] [식별자]"와 같은 형태일 수 있다. 응답을 생성할 때, 위치 찾기 컴포넌트(140)는 요청 유형, 디스플레이된 포인트 위치에 대한 식별자, 디스플레이된 포인트 위치의 수 및 적어도 하나의 응답 문구를 식별할 수 있다. 응답이 생성되면, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)에 응답을 송신, 전송 또는 제공할 수 있다.
데이터 프로세싱 시스템(102) 또는 내비게이터 서비스(106)는 내비게이션 애플리케이션(110)의 경로 라우터 컴포넌트(142)의 인스턴스를 실행할 수 있다. 호출에 응답하여, 경로 라우터 컴포넌트(142)는 액션 데이터 구조에서 식별된 포인트 위치로의 이동 경로를 생성, 결정 또는 식별할 수 있다. 경로 라우터 컴포넌트(142)는 지리 위치 감지 컴포넌트(118)를 사용하여 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)의 현재 지리적 좌표를 식별할 수 있다. 경로 라우터 컴포넌트(142)는 클라이언트 디바이스(104)의 지리적 좌표를 벡터 기반 지도(146) 상의 위치 식별자로 변환할 수 있다. 경로 라우터 컴포넌트(142)는 클라이언트 디바이스(104)에 대한 위치 식별자를 시작 위치로 설정할 수 있다. 경로 라우터 컴포넌트(142)는 액션 데이터 구조의 포인트 위치에 대응하는 위치 식별자를 식별할 수 있다. 경로 라우터 컴포넌트(142)는 포인트 위치의 위치 식별자를 목적지 위치로 설정할 수 있다. 경로 라우터 컴포넌트(142)는 경로 찾기 알고리즘(예를 들어, Djikstra 알고리즘, A* 알고리즘 및 Kruskal 알고리즘)을 적용하여 벡터 기반 지도(146)의 경로 상의 시작 위치와 목적지 위치 사이의 이동 경로를 결정할 수 있다. 전술한 바와 같이, 벡터 기반 지도(146)는 교통망에 대응하는 경로를 포함할 수 있다. 경로 라우터 컴포넌트(142)는 또한 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)의 일부에 이동 경로의 적어도 일부를 제시하거나 디스플레이할 수 있다.
이동 경로를 결정하는 것에 응답하여, 경로 라우터 컴포넌트(142)는 디스플레이 또는 출력 오디오 신호를 위한 텍스트로서 제공하기 위한 응답을 생성할 수 있다. 응답은 경로 라우팅 동작에 대응하는 요청 유형을 포함할 수 있다. 응답은 벡터 기반 지도(146) 상의 목적지 위치에 대응하는 포인트 위치에 대한 식별자를 포함할 수 있다. 응답은 목적지 위치까지의 예상 이동 시간을 포함할 수 있다. 응답은 또한 디스플레이 또는 출력 오디오 신호를 위한 하나 이상의 단어와 함께 적어도 하나의 응답 문구를 포함할 수 있다. 응답 문구는 템플릿을 사용하여 정의될 수 있다. 예를 들어, 응답 문구의 템플릿은 "[목적지 위치]까지 경로를 찾았습니다. 예상 도착 시간은 [예상 이동 시간]입니다."의 형태일 수 있다. 응답을 생성할 때, 위치 찾기 컴포넌트(140)는 요청 유형, 포인트 위치에 대한 식별자, 추정된 이동 시간 및 적어도 하나의 응답 문구를 식별할 수 있다. 응답이 생성되면, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 디지털 어시스턴트 애플리케이션(108)에 응답을 송신, 전송 또는 제공할 수 있다.
내비게이션 애플리케이션(110)으로부터의 응답 수신에 응답하여, 오디오 신호 생성기 컴포넌트(122)는 텍스트 출력 또는 출력 오디오 신호에 대한 응답 문구를 식별하기 위해 응답을 파싱할 수 있다. 오디오 신호 생성 컴포넌트(122)는 내비게이터 서비스(106)로부터의 응답에서 응답 문구의 하나 이상의 단어에 기초하여 출력 오디오 파일을 생성할 수 있다. 오디오 신호 생성 컴포넌트(122)는(예를 들어, 클라이언트 디바이스(104)의 스피커(104)를 통해) 응답 문구의 하나 이상의 단어들의 출력 오디오 파일을 재생할 수 있다. 디지털 어시스턴트 애플리케이션(110)은 또한 응답 문구의 하나 이상의 단어를 디스플레이할 수 있다. 텍스트 출력 또는 출력 오디오 파일을 생성할 때, 응답 선택기 컴포넌트(124)는 데이터 저장소(126)에 유지되는 정책(132) 또는 응답 데이터(134)를 사용하여 응답 문구를 선택하거나 식별할 수 있다. 정책(132)은 요청 유형(예를 들어, 위치 찾기 동작 또는 경로 라우팅 동작)에 특정할 수 있고, 요청 유형에 대한 응답 데이터(134)를 지정할 수 있다. 응답 선택기 컴포넌트(124)는 내비게이션 애플리케이션(110)으로부터의 응답의 요청 유형을 사용하여 출력을 생성하기 위한 정책(132)을 검색할 수 있다. 정책(132)이 식별되면, 응답 선택기 컴포넌트(124)는 내비게이션 애플리케이션(110)으로부터의 응답의 내용을 응답 데이터(134)와 매칭시킬 수 있다. 위치 찾기 동작에 대한 정책(132)을 식별하는 것에 응답하여, 응답 선택기 컴포넌트(124)는 디스플레이된 포인트 위치에 대한 식별자 및 디스플레이된 포인트 위치의 수를 정책(132)에 대한 응답 데이터(134)에 매칭할 수 있다. 경로 라우팅 동작에 대한 정책(132)을 식별하는 것에 응답하여, 응답 선택기 컴포넌트(124)는 포인트 위치에 대한 식별자 및 추정된 이동 시간을 정책(132)에 대한 응답 데이터(134)에 매칭할 수 있다.
이제 도 2를 참조하면, 도 1에 도시된 시스템에서 디지털 어시스턴트 애플리케이션(108)과 인터페이싱하는 내비게이션 애플리케이션(110)의 동작 상태를 결정하기 위한 예시적 데이터 흐름(200)의 시퀀스 다이어그램이다. 데이터 흐름(200)은 도 1과 관련하여 위에서 설명된 시스템(100) 또는 도 6와 관련하여 아래에 설명될 시스템(600)에 의해 구현되거나 수행될 수 있다.
클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)의 로컬 인스턴스는 센서(158)를 통해 입력 오디오 신호를 검출하고 입력 오디오 신호에 대한 초기 프로세싱을 수행하여 요청(205)을 생성할 수 있다. 요청(205)은 입력 오디오 신호 자체 또는 기계 학습 기법을 사용하여 입력 오디오 신호에서 식별된 하나 이상의 단어를 포함할 수 있다. 클라이언트 디바이스(104)는 요청(205)을 데이터 프로세싱 시스템(102)에 전송할 수 있다. 데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(108)의 원격 인스턴스는 요청(205)에 대한 추가 프로세싱을 수행할 수 있다. 데이터 프로세싱 시스템(102)에서 실행되는 NLP 컴포넌트(114)는 요청(205)이 내비게이션 애플리케이션(110)에 의해 수행될 기능을 참조하고 있음을 결정하기 위해 요청(205)을 파싱할 수 있다. NLP 컴포넌트(114)는 또한 시맨틱 분석 기법을 사용하여 입력 오디오 신호로부터 기능 및 참조 키워드에 대응하는 요청을 식별할 수 있다. 결정에 응답하여, 내비게이션 인터페이스 컴포넌트(116)는 내비게이션 애플리케이션(110)을 실행하는 내비게이터 서비스(106)(또는 다른 클라이언트 디바이스(104))에 액세스 요청(210)을 전송할 수 있다.
액세스 요청(210)을 수신하면, 내비게이터 서비스(106)에서 실행되는 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 정보를 식별할 수 있다. 정보는 내비게이션 애플리케이션(110)의 뷰포트를 통해 볼 수 있는 벡터 기반 지도(146)에 의해 표현되는 지리적 영역의 포인트 위치에 대한 포인트 위치 및 식별자를 포함할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 보이는 정보를 기준 프레임 데이터(215)로 설정할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 차례로 데이터 프로세싱 시스템(102)에 기준 프레임 데이터(215)를 제공할 수 있다.
참조 프레임 데이터(215)를 사용하여, NLP 컴포넌트(114)는 입력 오디오 신호의 참조 키워드가 나타내는 포인트 위치를 결정하기 위해 시맨틱 분석 기법을 사용할 수 있다. 예를 들어, NLP 컴포넌트(114)는 참조 키워드를 포인트 위치의 식별자와 비교할 수 있다. 포인트 위치의 식별과 함께, 데이터 프로세싱 시스템(102)에서 실행되는 다이렉트 액션 핸들러 컴포넌트(120)는 다이렉트 액션 데이터 구조(220)를 생성할 수 있다. 다이렉트 액션 데이터 구조(220)는 내비게이션 애플리케이션(110)에 의해 수행될 기능(예를 들어, 위치 찾기 또는 경로 라우팅)에 대응하는 요청 유형을 포함할 수 있다. 다이렉트 액션 데이터 구조(220)는 또한 참조 키워드를 사용하여 식별된 포인트 위치를 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트(120)는 다이렉트 액션 데이터 구조(220)를 내비게이션 애플리케이션(110)을 실행하는 내비게이터 서비스(106)(또는 클라이언트 디바이스(104))로 전송할 수 있다.
다이렉트 액션 데이터 구조(220)에 따라, 내비게이션 애플리케이션(110)은 내비게이션 안내 프로세스를 수행할 수 있다. 디지털 어시스턴트 인터페이스 컴포넌트(138)는 요청 유형을 식별하기 위해 다이렉트 액션 데이터 구조(220)를 파싱할 수 있다. 요청 유형을 사용하여, 디지털 어시스턴트 인터페이스 컴포넌트(138)는 내비게이터 서비스(106)에서 실행되는 위치 찾기 컴포넌트(140) 및 경로 라우터 컴포넌트(142) 중 하나를 호출할 수 있다. 요청 유형이 위치 찾기 기능에 대응하는 것으로 식별될 때, 위치 찾기 컴포넌트(140)는 내비게이션 애플리케이션(110)의 뷰포트를 통해 디스플레이된 지리적 영역 상의 포인트 위치(예를 들어, 하이라이트를 통해) 제시할 수 있다. 요청 유형이 경로 라우팅 기능에 대응하는 것으로 식별되면, 경로 라우터 컴포넌트(142)는 시작 위치(예: 클라이언트 디바이스(104))에서 다이렉트 액션 데이터 구조(220)의 포인트 위치에 대응하는 목적지 위치까지의 이동 경로를 결정할 수 있다. 경로 라우터 컴포넌트(142)는 내비게이션 애플리케이션(110)의 뷰포트 상에 디스플레이된 지리적 영역 상의 이동 경로의 일부를 제시할 수 있다. 위치 찾기 컴포넌트(140) 및 경로 라우터 컴포넌트(142)는 각각 데이터 프로세싱 시스템(102)에서 실행되는 디지털 어시스턴트 애플리케이션(108)으로 다시 전송하기 위한 응답(225)을 생성할 수 있다. 응답(225)은 응답 문구뿐만 아니라 다른 파라미터를 포함할 수 있다. 응답(225)을 사용하여, 오디오 신호 생성기 컴포넌트(122)는 클라이언트 디바이스(104)에 제공할 또 다른 응답(230)을 생성할 수 있다. 수신되면, 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)은 응답(230)을 디스플레이 상의 텍스트 또는 스피커(148)를 통해 출력되는 오디오 파일로 디스플레이할 수 있다.
이제 도 3을 참조하면, 구성(300) 하에서 왼쪽에 디지털 어시스턴트 애플리케이션(108)을 실행하고 오른쪽에 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)를 도시한다. 디지털 어시스턴트 애플리케이션(108) 및 내비게이션 애플리케이션(110)을 실행하는 클라이언트 디바이스(104)는 동일하거나 상이할 수 있다.
좌측의 클라이언트 디바이스(104)에서 실행되는 디지털 어시스턴트 애플리케이션(108)은 센서(158)를 통해 입력 오디오 신호를 검출할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 자연어 프로세싱 기법을 적용하여 검출된 입력 오디오 신호에서 하나 이상의 단어를 식별할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호로부터 식별된 "Show me coffee stores nearby"라는 단어를 포함하는 텍스트 콘텐츠 아이템(305)으로서 출력을 디스플레이할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호가 내비게이션 애플리케이션(110)의 위치 찾기 동작을 참조하고 있다고 결정할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 "Show me"라는 단어를 요청으로, "coffee stores nearby"을 참조 키워드로 식별할 수 있다. 입력 오디오 신호가 위치 찾기 동작을 참조하고 있다는 결정에 응답하여, 디지털 어시스턴트 애플리케이션(108)은 내비게이션 애플리케이션(110)에 액세스할 수 있다.
오른쪽의 클라이언트 디바이스(104)에서 실행되는 내비게이션 애플리케이션(110)은 내비게이션 애플리케이션(110)의 뷰포트(310)를 통해 벡터 기반 지도(146)의 일부를 디스플레이할 수 있다. 내비게이션 애플리케이션(110)의 뷰포트(310)는 클라이언트 디바이스(104)의 디스플레이의 크기에 대응할 수 있다. 벡터 기반 지도(146)는 도시된 바와 같이 도로 및 철도와 같은 교통망을 나타내는 포인트 위치(320) 사이의 경로 세트 및 건물에 대응하는 포인트 위치 세트(320)를 포함할 수 있다. 각 포인트 위치(320)는 "카페", "주유소", "호텔" 및 "사무실"과 같은 건물의 이름 또는 카테고리 유형과 같은 식별자를 가질 수 있다. 내비게이션 애플리케이션(110)은 식별자 "Caf B", "Caf C"및 "Office"를 사용하여 포인트 위치(320)와 같이 뷰포트(310)에 나타나는 포인트 위치(320)를 식별할 수 있다. 내비게이션 애플리케이션(110)은 식별자 "Caf A" 및 "Caf D"를 갖는 포인트 위치(320)와 같은 뷰포트(310) 외부의 포인트 위치를 제외할 수 있다. 내비게이션 애플리케이션(110)은 마크(예를 들어, 4점 별)를 사용하여 벡터 기반 지도(146) 상에 클라이언트 디바이스(104)의 현재 위치(315)를 디스플레이할 수 있다. 내비게이션 애플리케이션(110)은 식별자를 가진 포인트 위치를 디지털 어시스턴트 애플리케이션(108)에 제공할 수 있다.
내비게이션 애플리케이션(110)으로부터 포인트 위치의 검색으로, 디지털 어시스턴트 애플리케이션(108)은 참조 키워드가 참조하는 포인트 위치를 식별하기 위해 시맨틱 분석 기법을 수행할 수 있다. 도시된 예에서, 디지털 어시스턴트 애플리케이션(108)은 참조 키워드로서 "coffee stores nearby"을 식별했을 수 있다. 시맨틱 분석 기법을 사용하여, 디지털 어시스턴트 애플리케이션(108)은 "coffee stores nearby"의 참조 키워드가 식별자 "Caf B"및 "Caf C"를 갖는 포인트 위치(320)를 나타내는지 결정할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 참조 키워드가 식별자 "Office"를 갖는 포인트 위치(320)를 나타내지 않는다고 결정할 수 있다. 식별자 "Caf B"및 "Caf C"를 갖는 포인트 위치(320)를 식별하면, 디지털 어시스턴트 애플리케이션(108)은 내비게이션 애플리케이션(110)에 제공할 다이렉트 액션 데이터 구조를 생성할 수 있다. 다이렉트 액션 데이터 구조는 식별된 포인트 위치(320) 및 내비게이션 애플리케이션(110)의 위치 찾기 동작에 대응하는 요청 유형을 가질 수 있다. 수신시, 내비게이션 애플리케이션(110)은 수행될 기능이 위치 찾기 동작임을 식별하기 위해 다이렉트 액션 데이터 구조를 파싱할 수 있다. 내비게이션 애플리케이션(110)은 또한 식별자 "Caf B"및 "Caf C"를 갖는 포인트 위치(320)를 식별하기 위해 다이렉트 액션 데이터 구조를 파싱할 수 있다. 이러한 식별에 기초하여, 내비게이션 애플리케이션(110)은 식별자 "Caf B"및 "Caf C"를 갖는 포인트 위치(320)를 표현하는 건물을 강조할 수 있다. 또한, 내비게이션 애플리케이션(110)은 응답을 생성하고 디지털 어시스턴트 애플리케이션(108)에 다시 보낼 수 있다. 응답은 "Two coffee stores found."라는 응답 문구를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 클라이언트 디바이스(104)의 스크린 상에 텍스트 콘텐츠 아이템(325)을 차례로 디스플레이할 수 있다.
그 후, 디지털 어시스턴트 애플리케이션(108)은 센서(158)를 통해 다른 입력 오디오 신호를 검출할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 자연어 프로세싱 기법을 적용하여 검출된 입력 오디오 신호에서 하나 이상의 단어를 식별할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호로부터 식별된 "Take me to that one on the left"이라는 단어를 포함하는 텍스트 콘텐츠 아이템(330)으로서 출력을 디스플레이할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 입력 오디오 신호가 내비게이션 애플리케이션(110)의 경로 라우팅 동작을 참조하고 있음을 결정할 수 있다. 자연어 프로세싱 기법을 사용하여, 디지털 어시스턴트 애플리케이션(108)은 "Take me"라는 단어를 요청으로, "that one"을 참조 키워드로, "on the left"를 보조 키워드로 식별할 수 있다. 내비게이션 애플리케이션(110)으로부터 이전에 검색된 포인트 위치로, 디지털 어시스턴트 애플리케이션(108)은 보조 키워드와 함께 참조 키워드가 뷰포트(310)의 왼쪽에 나타나는 식별자 "Caf C"를 갖는 포인트 위치(320)를 표시함을 식별할 수 있다. 식별자 "Caf C"를 가진 포인트 위치(320)의 식별에 기초하여, 내비게이션 애플리케이션(110)에 제공할 다이렉트 액션 데이터 구조를 생성한다. 다이렉트 액션 데이터 구조는 식별된 포인트 위치(320) 및 내비게이션 애플리케이션(110)의 경로 라우팅 동작에 대응하는 요청 유형을 가질 수 있다. 수신시, 내비게이션 애플리케이션(110)은 수행될 기능이 경로 라우팅 동작임을 식별하기 위해 다이렉트 액션 데이터 구조를 파싱할 수 있다. 내비게이션 애플리케이션(110)은 또한 식별자 "Caf C"를 가진 포인트 위치(320)를 식별하기 위해 다이렉트 액션 데이터 구조를 파싱할 수 있고, 포인트 위치(320)를 목적지 위치로 설정할 수 있다. 내비게이션 애플리케이션(110)은 또한 클라이언트 디바이스(104)의 현재 위치를 시작 위치로 식별할 수 있다. 이러한 식별에 기초하여, 내비게이션 애플리케이션(110)은 경로 찾기 알고리즘을 사용하여 벡터 기반 지도(146)를 통해 이동 경로(335)를 결정할 수 있다. 이동 경로(335)에 기초하여, 내비게이션 애플리케이션(110)은 예상 도착 시간을 결정할 수 있다. 내비게이션 애플리케이션(110)은 벡터 기반 지도(146) 상에 이동 경로(335)를 렌더링하고 디스플레이할 수 있다. 또한, 내비게이션 애플리케이션(110)은 응답을 생성하고 디지털 어시스턴트 애플리케이션(108)에 다시 보낼 수 있다. 응답은 "Round found. ETA 15 minutes."라는 응답 문구를 포함할 수 있다. 디지털 어시스턴트 애플리케이션(108)은 클라이언트 디바이스(104)의 스크린 상에 텍스트 콘텐츠 아이템(340)을 차례로 디스플레이할 수 있다.
도 4는 네트워크 컴퓨터 환경에서 음성 활성화 스레드를 생성하기 위한 예시적 방법(400)의 블록도를 도시한다. 방법(400)은 도 1-3과 관련하여 위에서 설명된 시스템(100) 또는 도 6와 관련하여 아래에 설명될 시스템(600)에 의해 구현되거나 실행될 수 있다. 방법은 입력 오디오 신호를 수신하는 단계(405)를 포함할 수 있다. 방법(400)은 입력 오디오 신호를 파싱하는 단계(410)를 포함할 수 있다. 방법(400)은 액션 데이터 구조를 선택하는 단계(415)를 포함할 수 있다. 방법(400)은 응답 엔터티를 확장하는 단계(420)를 포함할 수 있다. 방법은 액션 데이터 구조를 채우는 단계(425)를 포함할 수 있다. 방법(400)은 디지털 컴포넌트를 전송하는 단계(430)를 포함할 수 있다.
방법(400)은 입력 신호를 수신하는 단계(405)를 포함할 수 있다. 방법은 상기 데이터 프로세싱 시스템에서 실행되는 NLP 컴포넌트에 의해, 입력 신호를 수신하는 단계를 포함할 수 있다. 입력 신호는 제1 클라이언트 디바이스에서 센서에 의해 검출된 입력 오디오 신호일 수 있고, 데이터 프로세싱 시스템에 전송된다. 센서는 제1 클라이언트 디바이스의 마이크로폰일 수 있다. 예를 들어, 하나 이상의 프로세서 및 메모리를 포함하는 데이터 프로세싱 시스템에 의해 적어도 부분적으로 실행되는 디지털 어시스턴트 컴포넌트는 입력 오디오 신호를 수신할 수 있다. 입력 오디오 신호는 디지털 어시스턴트에 의해 지원된 대화를 포함할 수 있다. 대화는 하나 이상의 입력 및 출력을 포함할 수 있다. 대화는 오디오 기반, 텍스트 기반 또는 오디오와 텍스트의 조합일 수 있다. 입력 오디오 신호는 텍스트 입력 또는 대화 정보를 제공할 수 있는 다른 유형의 입력을 포함할 수 있다. 데이터 프로세싱 시스템은 대화에 대응하는 세션에 대한 오디오 입력을 수신할 수 있다.
방법(400)은 입력 신호를 파싱하는 단계(410)를 포함할 수 있다. 데이터 프로세싱 시스템의 NLP 컴포넌트는 입력 신호를 파싱하여 요청을 식별할 수 있다. NLP 컴포넌트는 입력 신호에서 적어도 하나의 엔터티를 식별할 수 있다. 요청은 하나 이상의 서비스 제공자 디바이스에 의해 수행될 수 있는 의도 또는 요청일 수 있다. 요청은 대화 문구의 일부일 수 있다. 예를 들어, 요청은 "Ok, order a car to take me home."일 수 있다. NLP 컴포넌트에 의해 식별되는 엔터티는 요청을 이행할 때 서비스 제공자 디바이스가 요청하는 입력 필드 또는 유형에 매핑되는 요청의 문구 또는 용어일 수 있다. 예를 들어, 차량 서비스를 제공하는 서비스 제공자 디바이스는 현재 위치 입력 필드와 목적지 입력 필드를 요청할 수 있다. 위의 예를 계속하면, NLP 컴포넌트는 "home"이라는 용어를 목적지 입력 필드에 매핑할 수 있다.
방법(400)은 액션 데이터 구조를 선택하는 단계(415)를 포함할 수 있다. 데이터 프로세싱 시스템은 입력 신호로부터 파싱된 요청에 기초하여 액션 데이터 구조를 선택할 수 있다. 데이터 프로세싱 시스템은 요청을 이행할 수 있는 서비스 제공자 디바이스에 기초하여 액션 데이터 구조를 선택할 수 있다. 액션 데이터 구조는 서비스 제공자 디바이스에 의해 생성된 데이터 구조 또는 오브젝트일 수 있다. 서비스 제공자 디바이스는 데이터 프로세싱 시스템에 액션 데이터 구조를 제공할 수 있다. 액션 데이터 구조는 서비스 제공자 디바이스가 요청을 수행하는데 사용하는 필드, 데이터 또는 정보를 나타낼 수 있다. 서비스 제공자 디바이스는 하나 이상의 필드에 플래그를 지정하여 데이터 프로세싱 시스템이 해당 필드에 대해 반환된 엔터티를 확장하도록 요청할 수 있다. 필드가 확장을 위해 플래그될 때, 데이터 프로세싱 시스템은 대화 기반 데이터 교환을 설계하는 서비스 제공자 디바이스(160)보다는 플래그된 필드에 대한 정보 또는 데이터를 검색하기 위해 클라이언트 디바이스(104)와의 대화 기반 데이터 교환을 설계하고 생성할 수 있다.
방법(400)은 응답 엔터티를 확장하는 단계(420)를 포함할 수 있다. 데이터 프로세싱 시스템은 엔터티가 서비스 제공자 디바이스에서 특정한 형식이 아닌 경우 확장해야 하는 입력 필드에 매핑된 엔터티를 결정할 수 있다. 위의 예를 계속하면, NLP 컴포넌트는 "home"이 목적지에 매핑된 엔터티임을 결정할 수 있다. 다이렉트 액션 핸들러 컴포넌트는 목적지 필드에 엔터티 "home"을 포함하도록 액션 데이터 구조를 업데이트하도록 결정할 수 있다. 다이렉트 액션 핸들러 컴포넌트는 응답 엔터티의 형식이 목적지 필드의 형식과 매칭되지 않는지 결정할 수 있다. 예를 들어, 목적지 필드는 주소, 도시, 주 및 우편 번호를 요청하는 오브젝트의 형식을 가질 수 있다. 응답 엔터티 형식과 필드 형식 간의 불일치를 검출하면, 데이터 프로세싱 시스템은 엔터티를 주소, 도시, 주 및 우편 번호 형식으로 확장할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 최종 사용자가 데이터 프로세싱 시스템에 제공한 주소를 최종 사용자의 "집" 주소로 조회할 수 있다. 데이터 프로세싱 시스템은 확장 정책에 기초하여 엔터티를 확장할 수 있다. 확장 정책은 데이터 프로세싱 시스템이 용어를 확장할 권한이 있는지 여부를 나타내거나 확장된 엔터티에 포함될 수 있는 데이터를 제공한 최종 사용자 또는 클라이언트 컴퓨팅 디바이스를 나타낼 수 있다.
데이터 프로세싱 시스템은 서비스 제공자 디바이스의 요청에 기초하여 엔터티를 확장할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 확장되지 않은 엔터티를 사용하여 제1 액션 데이터 구조를 생성할 수 있다. 데이터 프로세싱 시스템은 요청을 이행하기 위한 프로세싱을 위해 제1 액션 데이터 구조를 서비스 제공자 디바이스에 전송할 수 있다. 서비스 제공자 디바이스는 서비스 제공자 디바이스가 액션 데이터 구조의 필드 중 하나 이상의 필드에서 데이터를 프로세싱하거나 이해할 수 없는 경우 액션 데이터 구조(또는 그 일부)를 데이터 프로세싱 시스템에 반환할 수 있다. 예를 들어, 서비스 제공자 디바이스는 목적지 필드에서 "home" 엔터티를 프로세싱하기 위해 시도한 다음 서비스 제공자 디바이스가 엔터티를 프로세싱하거나 이해할 수 없다고 결정한 후 데이터 프로세싱 시스템에 "home" 엔터티 확장을 요청할 수 있다.
방법(400)은 액션 데이터 구조를 채우는 단계(425)를 포함할 수 있다. 다이렉트 액션 핸들러 컴포넌트는 확장된 엔터티로 액션 데이터 구조를 채울 수 있다. 다이렉트 액션 핸들러 컴포넌트는 엔터티로 액션 데이터 구조를 채울 수 있다. 예를 들어, 액션 데이터 구조는 엔터티 또는 확장 엔터티가 저장되는 오브젝트일 수 있다. 액션 데이터 구조를 업데이트하기 위해 액션 데이터 구조를 채우는 것이 참조될 수 있다.
방법(400)은 액션 데이터 구조를 전송하는 단계(430)를 포함할 수 있다. 데이터 프로세싱 시스템은 채워진 액션 데이터 구조를 서비스 제공자 디바이스에 전송할 수 있다. 액션 데이터 구조를 수신하면, 서비스 제공자 디바이스는 데이터 프로세싱 시스템 또는 클라이언트 컴퓨팅 디바이스로부터 요청을 이행하거나 추가 정보를 요청할 수 있다.
이제 도 5를 참조하면, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하기 위한 예시적 방법(500)이 도시된다. 방법(500)은 도 1-3과 관련하여 위에서 설명된 시스템(100) 또는 도 6와 관련하여 아래에 설명될 시스템(600)에 의해 구현되거나 실행될 수 있다. 간략한 개요에서, 방법(500)은 뷰포트를 통해 보이는 포인트 위치를 검색하는 단계(505)를 포함할 수 있다. 방법(500)은 참조 단어에 대응하는 식별자로 포인트 위치를 식별하는 단계(510)를 포함할 수 있다. 방법(500)은 식별자를 가지는 액션 데이터 구조를 생성하는 단계(515)를 포함할 수 있다. 방법(500)은 내비게이션 안내 프로세스를 개시하는 단계(520)를 포함할 수 있다.
방법(500)은 뷰포트를 통해 보이는 포인트 위치를 검색하는 단계(505)를 포함할 수 있다. 디지털 어시스턴트 애플리케이션을 실행하는 데이터 프로세싱 시스템(예: 데이터 프로세싱 시스템(102))은 자연어 프로세싱 기법을 사용하여 입력 오디오 신호로부터 파싱된 요청 및 참조 단어를 식별할 수 있다. 데이터 프로세싱 시스템은 요청이 클라이언트 디바이스에서 실행되는 내비게이션 애플리케이션의 기능을 참조하고 있는지 결정할 수 있다. 이 기능은 위치 찾기 기능과 경로 라우팅 기능을 포함할 수 있다. 요청이 내비게이션 애플리케이션의 기능을 참조한다는 결정에 응답하여, 데이터 프로세싱 시스템은 내비게이션 애플리케이션에 액세스하여 내비게이션 애플리케이션의 뷰포트를 통해 디스플레이된 지리적 영역 상의 포인트 위치를 검색할 수 있다. 각 포인트 위치는 지리적 영역의 피처에 대응할 수 있으며 식별자를 가질 수 있다.
방법(500)은 참조 단어에 대응하는 식별자로 포인트 위치를 식별하는 단계(510)를 포함할 수 있다. 내비게이션 애플리케이션의 뷰포트를 통해 디스플레이되는 포인트 위치 검색을 통해, 데이터 프로세싱 시스템은 입력 오디오 신호의 참조 단어가 참조하는 포인트 위치를 식별할 수 있다. 데이터 프로세싱 시스템은 의미론적 분석 기법을 사용하여 참조 단어가 나타내는 포인트 위치에 대응하는 식별자를 식별할 수 있다. 의미론적 분석 기법은 의미론적 지식 그래프 사용, deixis 분석 수행, n-gram 생성 등을 포함할 수 있다.
방법(500)은 식별자를 가지는 액션 데이터 구조를 생성하는 단계(515)를 포함할 수 있다. 데이터 프로세싱 시스템은 식별된 요청과 포인트 위치를 사용하여 템플릿에 따라 액션 데이터 구조를 생성할 수 있다. 요청은 내비게이션 애플리케이션의 기능 중 하나에 대응할 수 있다. 포인트 위치는 입력 오디오 신호로부터 파싱된 참조 단어에 대응하는 위치를 포함할 수 있다. 액션 데이터 구조는 특히 계정 식별자와 인증 자격증명을 포함할 수 있다.
방법(500)은 내비게이션 안내 프로세스를 개시하는 단계(520)를 포함할 수 있다. 데이터 프로세싱 시스템은 내비게이션 안내 프로세스를 개시하기 위해 내비게이션 애플리케이션에 액션 데이터 구조를 보낼 수 있다. 내비게이션 안내 프로세스는 위치 찾기 동작과 경로 라우팅 동작을 포함할 수 있다. 위치 찾기 동작은 액션 데이터 구조의 식별자에 대응하는 포인트 위치의 그래픽 표현을 제시하거나 디스플레이하는 것을 포함할 수 있다. 경로 라우팅 동작은 액션 데이터 구조에서 식별자에 대응하는 포인트 위치에 대응하는 현재 위치와 목적지 위치 사이의 이동 경로를 결정하고 제시하는 것을 포함할 수 있다.
도 6는 예시적 컴퓨터 시스템(600)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(600)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은 그 컴포넌트들을 포함하거나 이들을 구현하는데 사용될 수 있다. 컴퓨팅 시스템(600)은 정보를 통신하기 위한 버스(605) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(605)에 연결된 프로세서(610) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(600)은 또한 정보를 프로세싱하기 위해 버스에 연결된 하나 이상의 프로세서들(610) 또는 프로세싱 회로들을 포함할 수 있다. 컴퓨팅 시스템(600)은 또한 정보 및 프로세서(610)에 의해 실행될 명령어들을 저장하기 위해 버스(605)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(615)를 포함한다. 메인 메모리(615)는 데이터 저장소이거나 데이터 저장소(126 또는 148)를 포함할 수 있다. 메인 메모리(615)는 또한 프로세서(610)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(600)은 프로세서(610)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(605)에 연결된 ROM(read-only memory)(620) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스(SSD), 자기 디스크 또는 광 디스크와 같은 저장 디바이스(625)는 정보 및 명령어들을 영구적으로 저장하기 위해 버스(605)에 연결될 수 있다. 저장 디바이스(625)는 데이터 저장소를 포함하거나 데이터 저장소(126 또는 144)의 일부일 수 있다.
컴퓨팅 시스템(600)은 버스(605)를 통해, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(635)에 연결될 수 있다. 정보 및 명령 선택을 프로세서(610)와 통신하기 위해 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(630)가 버스(605)에 연결될 수 있다. 입력 디바이스(630)는 터치 스크린 디스플레이(635)를 포함할 수 있다. 입력 디바이스(630)는 또한 방향 정보 및 명령 선택을 프로세서(610)와 통신하고 디스플레이(635) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다. 디스플레이(635)는 예를 들면, 데이터 프로세싱 시스템(102), 클라이언트 디바이스(104) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(610)가 메인 메모리(615)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(600)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(625)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(615)로 판독될 수 있다. 메인 메모리(615)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(600)으로 하여금 본 명세서에 기술된 예시적 프로세스들을 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서들은 또한 메인 메모리(615)에 포함된 명령어들을 실행하기 위해 이용될 수 있다. 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합하여 유선 회로가 사용될 수 있다. 본 명세서에 기술된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 한정되지 않는다.
예시적 컴퓨팅 시스템이 도 6에 설명되었지만. 본 명세서에 기술된 동작들을 포함하는 본 발명은 본 명세서에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어 하드웨어에서 구현될 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 개인 정보 예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호들 또는 사용자의 위치에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버 또는 기타 데이터 프로세싱 시스템으로부터의 콘텐츠를 수신할지 또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 익명화되어, 파라미터들을 생성하는 경우 개인적으로 식별가능한 정보는 제거되도록 한다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 익명화되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 그 또는 그녀에 관한 정보가 어떻게 수집되는지 그리고 콘텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
본 발명과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명은 하나 이상의 컴퓨터 프로그램들 예를 들어, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 회로들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 “데이터 프로세싱 시스템", “컴퓨팅 디바이스", “컴포넌트" 또는 “데이터 프로세싱 장치"는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 다양한 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 시스템(100)의 컴포넌트들은 하나 이상의 데이터 프로세싱 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 앱, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들(예: 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
본 명세서에서 기술된 발명은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
시스템(100) 또는 시스템(500)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크(예: 네트워크(156)를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, 콘텐츠 아이템을 표현하는 데이터 패킷들)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서, 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 클라이언트 디바이스(104) 또는 내비게이터 서비스(106)로부터 데이터 프로세싱 시스템(102)에 의해 수신).
동작들이 특정한 순서로 도면에 도시되었지만, 상기 동작들은 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것이 아니며, 모든 도시된 동작들이 수행되어야만 하는 것은 아니다. 본 명세서에 기술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서의 분리를 필요로 하지 않으며, 기술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, NLP 컴포넌트(114) 및 다이렉트 액션 핸들러 컴포넌트(122)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 프로세싱 회로를 갖는 논리 디바이스이거나 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
일부 예시적 구현예들을 설명하였지만, 전술한 예는 예시적인 것이며 제한적인 것은 아니며 예시로서 제시되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현예와 관련하여 논의된 동작, 엘리먼트 및 구성들은 다른 구현예들에서 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 문구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. "포함(including)" "포함(comprising)" "포함(having)" "포함(containing)" "포함(involving)" "포함(characterized by)" "포함(characterized in that)"및 본 명세서에서 이들의 변형들은 열거된 아이템들, 그 균등물 및 추가 아이템들뿐만 아니라 배타적으로 열거된 아이템들로 구성되는 대안적 구현예들을 포함하는 것을 의미한다. 일 구현예에서, 본 명세서에 기술된 시스템 및 방법은 설명된 엘리먼트들, 동작들 또는 컴포넌트들 중 하나, 하나 이상의 조합 또는 전부로 구성된다.
단수형으로 본 명세서에서 언급된 시스템 및 방법의 구현 또는 엘리먼트에 관한 참조는 이들 엘리먼트들 복수형을 포함하는 구현예들을 포함할 수 있고, 복수형으로 본 명세서에서 언급된 임의의 구현예 또는 엘리먼트에 대한 임의의 참조는 단수형 엘리먼트를 포함하는 구현예들을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 그들의 컴포넌트들, 동작 또는 엘리먼트를 단수 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 엘리먼트에 대한 참조는 해당 동작 또는 엘리먼트가 적어도 부분적으로 임의의 정보, 동작 또는 엘리먼트에 기초하는 구현예를 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예 또는 실시예와 결합될 수 있으며, "구현예", "일부 구현예", "일 구현예" 등은 반드시 상호 배타적이지 않고, 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성이 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 나타낸다. 본 명세서에 사용된 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 일관된 방식으로 임의의 다른 구현예와 포괄적으로 또는 배타적으로 결합될 수 있다.
“또는"에 대한 참조는 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어들 중 하나, 하나 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. "A 및 B 중 적어도 하나"에 대한 참조는 A 및 B 뿐만 아니라 A와 B 둘 모두를 포함할 수 있다. "포함하는" 또는 다른 개방 용어와 함께 사용되는 이러한 참조는 추가적 아이템들을 포함할 수 있다.
도면, 상세한 설명 또는 청구범위의 기술적 구성에 참조 부호가 있는 경우, 상기 참조 부호는 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 전술한 구현예들은 기술된 시스템 및 방법을 제한하는 것이라기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 상술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미 및 범위 내에서의 변경들도 그 안에 포함된다.

Claims (20)

  1. 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하기 위한 시스템으로서,
    하나 이상의 프로세서를 갖는 데이터 프로세싱 시스템에서 실행되는 내비게이션 인터페이스 컴포넌트, 상기 내비게이션 인터페이스 컴포넌트는 제1 클라이언트 디바이스에서 실행되는 내비게이션 애플리케이션에 액세스하여 상기 내비게이션 애플리케이션의 뷰포트에 디스플레이된 지리적 영역에 대응하는 기준 프레임(reference frame) 내에 복수의 포인트 위치를 검색하고, 상기 복수의 위치 중 각 포인트 위치는 식별자를 포함하며;
    상기 데이터 프로세싱 시스템에서 실행되는 자연어 프로세서 컴포넌트, 상기 자연어 프로세서 컴포넌트는:
    제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 입력 오디오 신호를 수신하고;
    요청 및 참조 단어(referential word)를 식별하기 위해 상기 입력 오디오 신호를 파싱하고; 그리고
    상기 요청의 식별에 응답하여, 상기 입력 오디오 신호로부터 파싱된 참조 단어 및 상기 포인트 위치에 대한 식별자에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별하고; 및
    상기 데이터 프로세싱 시스템에서 실행되는 액션 핸들러 컴포넌트를 포함하며, 상기 액션 핸들러 컴포넌트는:
    상기 입력 오디오 신호의 검출에 응답하여 식별된 상기 포인트 위치를 포함하는 액션 데이터 구조를 생성하고; 그리고
    상기 내비게이션 애플리케이션으로 하여금 상기 포인트 위치를 사용하여 내비게이션 안내 프로세스를 시작하게 하기 위해 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하는, 시스템.
  2. 청구항 1에 있어서,
    상기 내비게이션 인터페이스 컴포넌트는 상기 입력 오디오 신호의 수신과 동시에 디스플레이되는 상기 지리적 영역에 대응하는 상기 기준 프레임의 제1 부분을 결정하고, 관성 모션 유닛으로부터 획득된 상기 제1 클라이언트 디바이스의 속도에 기초하여 상기 뷰포트에 이전에 디스플레이된 상기 지리적 영역에 대응하는 상기 기준 프레임의 제2 부분을 결정하기 위해 상기 내비게이션 애플리케이션에 액세스하는, 시스템.
  3. 청구항 1에 있어서,
    상기 자연어 프로세서 컴포넌트는 관성 모션 유닛으로부터의 데이터를 사용하여 결정된 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 이동 방향에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는, 시스템.
  4. 청구항 1에 있어서,
    상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 지리적 영역 및 상기 내비게이션 안내 프로세스의 경로 라우팅 동작의 목적지 위치에 관한 정의된 근접도 내의 제2 지리적 영역에 대응하는 제1 부분을 갖는 상기 기준 프레임 내의 상기 복수의 포인트 위치를 검색하며; 그리고
    상기 자연어 프로세서 컴포넌트는:
    상기 참조 단어가 상기 지리적 영역에 대응하는 상기 제1 부분이 아니라 상기 제2 지리적 영역에 대응하는 제2 부분과 관련된다는 것을 결정하고; 그리고
    상기 참조 단어가 상기 제2 부분과 관련된다는 결정에 기초하여 상기 부분 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는, 시스템.
  5. 청구항 1에 있어서,
    상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 지리적 영역에 대응하는 상기 기준 프레임 내의 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 기준 프레임 내의 상기 복수의 포인트 위치에 대응하는 복수의 제2 위치 식별자를 검색하고; 그리고
    상기 자연어 프로세서 컴포넌트는 상기 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 복수의 포인트 위치에 대응하는 상기 복수의 제2 위치 식별자에 기초하여 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는, 시스템.
  6. 청구항 1에 있어서,
    상기 내비게이션 인터페이스 컴포넌트는 상기 내비게이션 애플리케이션에 액세스하여 상기 입력 오디오 신호를 수신하기 전에 정의된 시간 창 내에 수신된 복수의 검색어를 검색하고; 그리고
    상기 자연어 프로세서 컴포넌트는:
    상기 복수의 포인트 위치 중 각 포인트 위치 및 상기 복수의 검색어 중 각 검색어에 대해, 시맨틱 지식 그래프를 사용하여 상기 포인트 위치의 식별자와 상기 검색어 사이의 시맨틱 거리를 결정하고; 그리고
    상기 포인트 위치의 식별을 위해, 상기 복수의 식별자와 상기 복수의 검색어 사이의 복수의 시맨틱 거리에 기초하여 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택하는, 시스템.
  7. 청구항 1에 있어서, 상기 자연어 프로세서 컴포넌트는:
    상기 참조 단어와 상이한 보조 단어를 식별하기 위해 상기 입력 오디오 신호를 파싱하고;
    상기 보조 단어에 기초하여 상기 내비게이션 애플리케이션의 뷰포트의 서브세트 영역을 결정하고; 그리고
    상기 포인트 위치의 식별을 위해, 상기 보조 단어에 기초하여 결정된 상기 뷰포트의 서브세트 영역에 대응하는 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택하는, 시스템.
  8. 청구항 1에 있어서, 상기 자연어 프로세서 컴포넌트는:
    제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 제2 입력 오디오 신호를 수신하고;
    상기 제2 입력 오디오 신호의 수신과 상기 입력 오디오 신호의 수신 사이의 경과 시간이 정의된 임계치 미만임을 결정하고;
    상기 경과 시간이 정의된 임계치 미만이라는 결정에 응답하여, 제2 참조 단어를 식별하기 위해 상기 제2 입력 오디오 신호를 파싱하고;
    상기 포인트 위치의 식별을 위해, 상기 제2 참조 단어에 기초하여 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택하는, 시스템.
  9. 청구항 1에 있어서, 상기 자연어 프로세서 컴포넌트는:
    상기 복수의 포인트 위치의 각 포인트 위치에 대해, 상기 참조 단어와 상기 포인트 위치에 대한 식별자 사이의 색인 측정치를 결정하고, 상기 색인 측정치는 상기 참조 단어가 상기 포인트 위치에 대한 식별자를 나타낼 가능성을 표시하며; 그리고
    대응하는 상기 복수의 포인트 위치에 대한 복수의 색인 측정치에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는, 시스템.
  10. 청구항 1에 있어서, 상기 자연어 프로세서 컴포넌트는:
    상기 복수의 포인트 위치의 각 포인트 위치에 대해, 시맨틱 지식 그래프를 사용하여 상기 참조 단어와 상기 포인트 위치의 식별자 사이의 시맨틱 거리를 결정하고; 그리고
    대응하는 상기 복수의 포인트 위치에 대한 복수의 시맨틱 거리에 기초하여 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별하는, 시스템.
  11. 청구항 1에 있어서,
    상기 자연어 프로세서 컴포넌트는 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작들의 위치 찾기 동작에 대응하는 요청 유형을 결정하고; 그리고
    상기 액션 핸들러 컴포넌트는 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 위치 찾기 동작을 개시하게 하여 상기 뷰포트에 디스플레이된 지리적 영역에서 포인트 위치를 제시하는, 시스템.
  12. 청구항 1에 있어서,
    상기 자연어 프로세서 컴포넌트는 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작의 경로 라우팅 동작에 대응하는 요청 유형을 결정하고; 그리고
    상기 액션 핸들러 컴포넌트는 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여, 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 경로 라우팅 동작을 개시하게 하고 목적지 위치로서 상기 포인트 위치로의 이동 경로를 식별하는, 시스템.
  13. 청구항 1에 있어서, 상기 액션 핸들러 컴포넌트는 텍스트 출력 또는 출력 오디오 신호 중 적어도 하나에 대해 상기 내비게이션 애플리케이션을 실행하는 상기 제1 클라이언트 디바이스로부터 응답을 수신하는, 시스템.
  14. 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법으로서,
    하나 이상의 프로세서를 갖는 데이터 프로세싱 시스템에 의해, 내비게이션 애플리케이션의 뷰포트에 디스플레이된 지리적 영역에 대응하는 기준 프레임 내에 복수의 포인트 위치를 검색하기 위해 제1 클라이언트 디바이스에서 실행되는 내비게이션 애플리케이션에 액세스하는 단계, 상기 복수의 위치 중 각 포인트 위치는 식별자를 포함하며;
    상기 데이터 프로세싱 시스템에 의해, 제1 클라이언트 및 제2 클라이언트 디바이스 중 적어도 하나의 센서에 의해 검출된 입력 오디오 신호를 수신하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 요청 및 참조 단어를 식별하기 위해 상기 입력 오디오 신호를 파싱하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 요청의 식별에 응답하여, 상기 입력 오디오 신호로부터 파싱된 참조 단어 및 상기 포인트 위치에 대한 식별자에 기초하여, 상기 기준 프레임 내의 상기 복수의 포인트 위치로부터 포인트 위치를 식별하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호의 검출에 응답하여 식별된 상기 포인트 위치를 포함하는 액션 데이터 구조를 생성하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 내비게이션 애플리케이션으로 하여금 상기 포인트 위치를 사용하여 내비게이션 안내 프로세스를 시작하게 하기 위해 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  15. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 관성 운동 유닛으로부터 획득된 데이터에 기초하여 상기 제1 클라이언트 디바이스의 측정된 속도를 식별하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호의 수신과 동시에 디스플레이되는 상기 지리적 영역에 대응하는 상기 기준 프레임의 제1 부분을 결정하고, 관성 모션 유닛으로부터 획득된 상기 제1 클라이언트 디바이스의 속도에 기초하여 상기 뷰포트에 이전에 디스플레이된 상기 지리적 영역에 대응하는 상기 기준 프레임의 제2 부분을 결정하기 위해 상기 내비게이션 애플리케이션에 액세스하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  16. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 지리적 영역 및 상기 내비게이션 안내 프로세스의 경로 라우팅 동작의 목적지 위치에 관한 정의된 근접도 내의 제2 지리적 영역에 대응하는 제1 부분을 갖는 상기 기준 프레임 내의 상기 복수의 포인트 위치를 검색하기 위해 상기 내비게이션 애플리케이션에 액세스하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 참조 단어가 상기 지리적 영역에 대응하는 상기 제1 부분이 아니라 상기 제2 지리적 영역에 대응하는 제2 부분과 관련된다는 것을 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 참조 단어가 상기 제2 부분과 관련된다는 결정에 기초하여 상기 부분 내의 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  17. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 지리적 영역에 대응하는 상기 기준 프레임 내의 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 기준 프레임 내의 상기 복수의 포인트 위치에 대응하는 복수의 제2 위치 식별자를 검색하기 위해 상기 내비게이션 애플리케이션에 액세스하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 제1 클라이언트 디바이스의 제1 위치 식별자 및 상기 복수의 포인트 위치에 대응하는 상기 복수의 제2 위치 식별자에 기초하여 상기 복수의 포인트 위치로부터 상기 포인트 위치를 식별하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  18. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 입력 오디오 신호를 수신하기 전에 정의된 시간 창 내에 수신된 복수의 검색어를 검색하기 위해 상기 내비게이션 애플리케이션에 액세스에 액세스하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 포인트 위치 중 각 포인트 위치 및 상기 복수의 검색어 중 각 검색어에 대해, 시맨틱 지식 그래프를 사용하여 상기 포인트 위치의 식별자와 상기 검색어 사이의 시맨틱 거리를 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 포인트 위치의 식별을 위해, 상기 복수의 식별자와 상기 복수의 검색어 사이의 복수의 시맨틱 거리에 기초하여 상기 복수의 포인트 위치로부터 포인트 위치의 서브세트를 선택하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  19. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작들의 위치 찾기 동작에 대응하는 요청 유형을 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 위치 찾기 동작을 개시하게 하여 상기 뷰포트에 디스플레이된 지리적 영역에서 포인트 위치를 제시하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
  20. 청구항 14에 있어서,
    상기 데이터 프로세싱 시스템에 의해, 상기 요청에 기초하여 상기 내비게이션 애플리케이션에 의해 수행될 복수의 동작의 경로 라우팅 동작에 대응하는 요청 유형을 결정하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 요청 유형을 포함하는 액션 데이터 구조를 생성하고, 상기 액션 데이터 구조를 상기 제1 클라이언트 디바이스에 전송하여, 상기 내비게이션 애플리케이션으로 하여금 상기 요청 유형에 대응하는 내비게이션 안내 프로세스의 경로 라우팅 동작을 개시하게 하고 목적지 위치로서 상기 포인트 위치로의 이동 경로를 식별하는 단계를 포함하는, 네트워크 컴퓨터 환경에서 다수의 애플리케이션 간에 인터페이싱하는 방법.
KR1020217002453A 2018-06-26 2018-08-01 디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱 KR102569372B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862690049P 2018-06-26 2018-06-26
US62/690,049 2018-06-26
PCT/US2018/044756 WO2020005304A1 (en) 2018-06-26 2018-08-01 Interfacing between digital assistant applications and navigation applications

Publications (2)

Publication Number Publication Date
KR20210025076A KR20210025076A (ko) 2021-03-08
KR102569372B1 true KR102569372B1 (ko) 2023-08-22

Family

ID=63174419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002453A KR102569372B1 (ko) 2018-06-26 2018-08-01 디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱

Country Status (6)

Country Link
US (1) US20210199458A1 (ko)
EP (1) EP3607274B1 (ko)
JP (1) JP7176011B2 (ko)
KR (1) KR102569372B1 (ko)
CN (1) CN110869706B (ko)
WO (1) WO2020005304A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11842731B2 (en) * 2020-01-06 2023-12-12 Salesforce, Inc. Method and system for executing an action for a user based on audio input
KR20210089295A (ko) * 2020-01-07 2021-07-16 엘지전자 주식회사 인공지능 기반의 정보 처리 방법
US11240366B2 (en) * 2020-02-03 2022-02-01 Microsoft Technology Licensing, Llc Digital assistant for emergency calling
WO2021163707A1 (en) * 2020-02-14 2021-08-19 Balcony Labs Inc. System and process for selective location-based anonymity and privacy
KR20220059629A (ko) * 2020-11-03 2022-05-10 현대자동차주식회사 차량 및 그의 제어방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117112A1 (en) 2010-11-08 2012-05-10 Michael Johnston Systems, Methods, and Computer Program Products for Location Salience Modeling for Multimodal Search
WO2016200381A1 (en) 2015-06-10 2016-12-15 Nuance Communications, Inc. Motion adaptive speech recognition for enhanced voice destination entry
US20170133010A1 (en) 2013-05-30 2017-05-11 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4093394B2 (ja) * 2001-11-08 2008-06-04 株式会社デンソー 音声認識装置
US8255224B2 (en) * 2008-03-07 2012-08-28 Google Inc. Voice recognition grammar selection based on context
JP5161642B2 (ja) * 2008-04-22 2013-03-13 クラリオン株式会社 情報表示装置及びその制御方法並びに制御プログラム
US20110099507A1 (en) * 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
JP5986468B2 (ja) * 2012-09-25 2016-09-06 富士通テン株式会社 表示制御装置、表示システム及び表示制御方法
AU2014100584B4 (en) * 2013-06-08 2015-03-05 Apple Inc. Device, method, and graphical user interface for synchronizing two or more displays
EP3001329A1 (en) * 2014-09-25 2016-03-30 Fujitsu Limited Method, controller, program and data storage system for performing reconciliation processing
US10268756B2 (en) * 2015-12-18 2019-04-23 Here Global B.V. Method and apparatus for providing natural language input in a cartographic system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117112A1 (en) 2010-11-08 2012-05-10 Michael Johnston Systems, Methods, and Computer Program Products for Location Salience Modeling for Multimodal Search
US20170133010A1 (en) 2013-05-30 2017-05-11 Promptu Systems Corporation Systems and methods for adaptive proper name entity recognition and understanding
WO2016200381A1 (en) 2015-06-10 2016-12-15 Nuance Communications, Inc. Motion adaptive speech recognition for enhanced voice destination entry

Also Published As

Publication number Publication date
CN110869706B (zh) 2023-10-27
CN110869706A (zh) 2020-03-06
US20210199458A1 (en) 2021-07-01
EP3607274A1 (en) 2020-02-12
WO2020005304A1 (en) 2020-01-02
EP3607274B1 (en) 2021-10-06
JP7176011B2 (ja) 2022-11-21
KR20210025076A (ko) 2021-03-08
JP2021529938A (ja) 2021-11-04

Similar Documents

Publication Publication Date Title
US20200258508A1 (en) Interfacing between digital assistant applications and navigation applications
KR102569372B1 (ko) 디지털 어시스턴트 애플리케이션과 내비게이션 애플리케이션 간의 인터페이싱
US10268756B2 (en) Method and apparatus for providing natural language input in a cartographic system
JP7032523B2 (ja) 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
US10140362B2 (en) Dynamic language model
JP5980889B2 (ja) 位置に基づく検索
US11908462B2 (en) Adaptive interface in a voice-activated network
WO2012172160A1 (en) Method and apparatus for resolving geo-identity
KR102502617B1 (ko) 네트워크 시스템의 분산 식별
CN110692040A (zh) 在网络系统中激活远程设备
Janarthanam et al. Evaluating a city exploration dialogue system combining question-answering and pedestrian navigation
CN110710158B (zh) 验证与数字助理应用交接的代理的操作状态
KR20220077258A (ko) 빅데이터 기반 음성인식 poi 시스템, 그 시스템을 위한 처리방법, 그 시스템 처리를 위한 컴퓨터 프로그램 및 그 컴퓨터 프로그램이 저장된 매체

Legal Events

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