KR20190137863A - 음성 쿼리들 검출 및 억제 - Google Patents

음성 쿼리들 검출 및 억제 Download PDF

Info

Publication number
KR20190137863A
KR20190137863A KR1020197032939A KR20197032939A KR20190137863A KR 20190137863 A KR20190137863 A KR 20190137863A KR 1020197032939 A KR1020197032939 A KR 1020197032939A KR 20197032939 A KR20197032939 A KR 20197032939A KR 20190137863 A KR20190137863 A KR 20190137863A
Authority
KR
South Korea
Prior art keywords
requests
voice query
voice
query
queries
Prior art date
Application number
KR1020197032939A
Other languages
English (en)
Other versions
KR102349985B1 (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 구글 엘엘씨
Priority to KR1020227000335A priority Critical patent/KR102449760B1/ko
Publication of KR20190137863A publication Critical patent/KR20190137863A/ko
Application granted granted Critical
Publication of KR102349985B1 publication Critical patent/KR102349985B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/005
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/432Query formulation
    • G06F16/433Query formulation using audio data
    • 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • G10L2015/0635Training updating or merging of old and new templates; Mean values; Weighting
    • G10L2015/0636Threshold criteria for the updating
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)
  • Selective Calling Equipment (AREA)

Abstract

컴퓨팅 시스템은 클라이언트 디바이스들로부터 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청들을 수신한다. 시스템은 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다는 것을 식별한다. 이에 응답하여, 시스템은 특정된 시간 간격 동안 수신된 요청들 중 적어도 일부의 분석을 트리거하여, 공통 음성 쿼리를 각각 식별하는 요청들의 세트를 결정하기 위해 적어도 일부 수신된 요청들의 분석을 트리거한다. 시스템은 공통 음성 쿼리의 구분되는 모델을 표시하는 전자 지문을 생성할 수 있다. 그 다음 지문을 사용하여 나중에 클라이언트 디바이스로부터의 요청에서 식별된 불법 음성 쿼리를 검출할 수 있다.

Description

음성 쿼리들 검출 및 억제
본 명세서는 일반적으로 발화된 단어를 인식(음성 인식이라고도 지칭됨)하는 컴퓨터 기반 시스템 및 기법과 관련된다.
음성 기반 클라이언트 디바이스는 가정, 사무실 또는 기타 환경에 배치될 수 있으며 환경을 음성 사용 환경으로 변환할 수 있다. 음성 사용 환경에서, 사용자는 쿼리 또는 명령을 말하여 음성 기반 클라이언트에게 응답을 생성하도록 프롬프트하거나 사용자의 쿼리 또는 명령에 따라 다른 동작을 수행하도록 할 수 있다. 음성 기반 클라이언트가 음성 가능 환경에서 만들어진 모든 발언을 포착하지 않도록 하기 위해, 클라이언트는 사전 정의된 핫워드가 환경에서 검출될 때만 활성화되도록 구성될 수 있다. 핫워드("주의 단어” 또는 "음성 액션 개시 명령"이라고도 함)는 일반적으로 시스템의 주의를 끌기 위해 발화된 미리 결정된 단어 또는 용어이다. 시스템이 사용자가 핫워드를 발화했음을 검출하면, 시스템은 추가적 음성 쿼리들을 수신하기 위한 준비 상태에 진입한다.
본 문서는 클라이언트 디바이스의 환경에서 발생하는 불법 음성 쿼리를 검출하고, 이러한 불법 음성 쿼리에 의해 표시된 동작들을 억제하기 위한 시스템, 방법, 디바이스 및 기타 기법을 기술한다. 일부 구현예에서, 음성 기반 클라이언트들은 클라이언트에 의해 검출된 음성 쿼리들에 대한 응답을 얻기 위해 음성 쿼리 프로세싱 서버 시스템과 네트워크를 통해 통신할 수 있다.
서버 시스템에서 수신된 많은 음성 쿼리가 정당한 목적을 위한 것일 수 있지만(예를 들어, 개인의 질문에 대한 답변을 요청하거나 일회성 트랜잭션의 수행을 호출하기 위한), 모든 음성 쿼리가 좋은 것은 아니다. 일부 음성 쿼리들은 예를 들어 DDoS(분산 서비스 거부) 공격을 수행하기 위해 악의적인 행위자에 의해 사용될 수 있다. 핫워드가 포함하는 비디오의 대화와 같이, 사람이 아닌 미디어 컨텐츠에서 다른 쿼리들이 발생할 수 있다. 의도적으로든 의도하지 않든 비디오가 재생될 때, 핫워드는 음성 기반 클라이언트를 비디오의 다른 대화가 실수로 음성 쿼리로서 캡처되고 프로세싱되도록 요청하는 상태로 활성화시킬 수 있다. 인식될 수 있는 바와 같이, 이러한 대화의 캡처, 전송 및/또는 프로세싱은 계산 리소스의 낭비를 구성할 수 있다. 일부 구현예에서, 본 명세서에 개시된 기법들은 시간의 기간에 걸쳐 다수의 클라이언트 디바이스들로부터 서버 시스템에서 수신된 동일하거나 유사한 쿼리들을 클러스터링함으로써 불법 음성 쿼리들을 검출하는데 사용될 수 있다. 공통 음성 쿼리들의 그룹이 하나 이상의 억제 기준을 만족하는 경우, 시스템은 음성 쿼리를 블랙리스트에 추가하여, 시스템이 후속적으로 수신하는 다른 매칭되는 음성 쿼리들에 의해 표시된 동작의 수행을 억제할 수 있다. 일부 구현예에서, 시스템은 시스템을 악용하려고 시도할 수 있는 잠재적 불법 음성 쿼리들을 검색하기 위한 신호로서 시스템에서의 트래픽의 급증을 식별할 수 있다.
본 명세서에 개시된 발명의 일부 구현예는 컴퓨터로 구현되는 방법을 포함한다. 방법은 하나 이상의 위치들의 하나 이상의 컴퓨터들의 시스템에 의해 수행될 수 있다. 시스템은 클라이언트 디바이스들의 세트로부터, 상기 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청을 수신한다. 그 다음 시스템은 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 제1 기준을 만족한다는 것을 식별한다. 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 제1 기준을 만족한다고 식별함에 응답하여, 시스템은 공통 음성 쿼리를 각각 식별하는 요청들의 세트를 결정하기 위해 상기 특정된 시간 간격 동안 수신된 요청들 중 적어도 일부를 분석할 수 있다. 시스템은 공통 음성 쿼리의 구분되는 모델을 나타내는 전자 지문을 생성할 수 있다. 그 다음, 공통 음성 쿼리의 전자 지문을 사용하여, 시스템은 나중에 클라이언트 디바이스로부터 수신된 요청에서 불법 음성 쿼리를 식별할 수 있다. 일부 구현예에서, 시스템은 시스템에 의해 후속적으로 수신된 하나 이상의 요청들에서 상기 공통 음성 쿼리에 의해 표시된 동작들의 수행을 억제한다.
이들 및 다른 구현들은 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
시스템은 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 하나 이상의 제2 기준을 만족하는지 여부를 결정할 수 있다. 시스템은 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트 상기 하나 이상의 제2 기준을 만족하는 것으로 결정되는지 여부에 기초하여 상기 공통 음성 쿼리의 전자 지문을 생성하도록 선택할 수 있다.
상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 상기 하나 이상의 제2 기준을 만족하는지 여부를 결정하는 단계는 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트에서 요청들의 수에 기초한 값이 임계값을 만족하는지 여부를 결정하는 것을 포함할 수 있다.
상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 제1 기준을 만족한다는 것을 식별하는 단계는 상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 요청들의 볼륨이 임계 볼륨을 만족한다고 결정하는 것을 포함할 수 있다.
상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 요청들의 볼륨은 상기 특정된 시간 간격 동안 수신된 요청들의 절대수, 상기 특정된 시간 간격 동안 수신된 요청들의 상대수, 상기 특정된 시간 간격 동안 수신된 요청들의 속도 또는 상기 특정된 시간 간격 동안 수신된 요청들의 가속도 중 적어도 하나를 표시할 수 있다.
상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트를 결정하기 위해 상기 특정된 시간 간격 동안 수신된 상기 요청들의 적어도 일부를 분석하는 단계는 상기 특정된 시간 간격 동안 수신된 요청들에 의해 식별된 음성 쿼리들의 전자 지문들을 생성하는 것 그리고 상기 전자 지문들 사이의 매치를 결정하는 것을 포함할 수 있다.
공통 음성 쿼리는 클라이언트 디바이스를 활성화하는 핫워드 및 핫워드 다음에 오는 하나 이상의 단어를 포함할 수 있다. 일부 구현예에서, 공통 음성 쿼리는 핫워드를 포함하지 않는다.
본 명세서에 개시된 발명의 일부 구현예는 다른 컴퓨터로 구현되는 방법을 포함한다. 방법은 하나 이상의 위치들의 하나 이상의 컴퓨터들의 시스템에 의해 수행될 수 있다. 시스템은 클라이언트 디바이스들의 세트로부터, 상기 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청을 수신한다. 상기 요청들의 적어도 하나의 서브셋에서 각 요청에 대해, 시스템은 상기 요청에 의해 식별된 각각의 음성 쿼리의 전자 지문을 생성할 수 있다. 시스템은 매칭되는 전자 지문들의 그룹을 결정하기 위해, 상기 요청들의 적어도 하나의 서브셋에서 요청들의 각각의 음성 쿼리들의 상기 전자 지문들을 비교할 수 있다. 시스템은 상기 매칭되는 전자 지문들 그룹들의 적어도 하나의 서브셋에서 각 그룹에 대해, 상기 그룹에서 매칭되는 전자 지문들의 수를 표시하는 각각의 카운트를 결정할 수 있다. 카운트에 기초하여 시스템에 의해 하나 이상의 매칭되는 전자 지문의 그룹들이 선택될 수 있다. 매칭되는 전자 지문들의 선택된 그룹 각각에 대해, 그룹 내의 하나 이상의 매칭되는 전자 지문들에 기초한 각각의 전자 지문은 예를 들어, 매칭되는 전자 지문들을 가지는 후속적으로 수신된 음성 쿼리들에 의해 표시된 동작들의 수행을 억제하는데 사용하기 위한 음성 쿼리 억제 서비스에 등록될 수 있다.
이들 및 다른 구현들은 다음 특징들 중 하나 이상을 선택적으로 포함할 수 있다.
상기 요청들의 적어도 하나의 서브셋에서 각 요청에 대해, 시스템은 상기 각각의 음성 쿼리에 대한 적어도 오디오 데이터를 구별되게 특징화하는 모델을 생성함으로써 상기 요청에 의해 식별된 상기 각각의 음성 쿼리의 전자 지문을 생성할 수 있다. 일부 경우에, 모델은 각각의 음성 쿼리에 대한 텍스트 전사를 추가로 식별한다.
매칭되는 전자 지문들의 선택된 그룹 각각에 대해, 시스템은 각각의 전자 지문을 블랙리스팅된 음성 쿼리들의 데이터베이스에 추가함으로써 그룹에 대한 각각의 전자 지문을 음성 쿼리 억제 서비스에 등록할 수 있다.
시스템은 동작들을 더 수행할 수 있고, 상기 동작들은: 클라이언트 디바이스들의 세트 중 제1 클라이언트 디바이스로부터 송신된 것으로서, 상기 제1 클라이언트 디바이스의 로컬 환경에서 검출된 제1 음성 쿼리를 프로세싱하기 위한 제1 요청을 수신하는 동작; 상기 제1 음성 쿼리의 제1 전자 지문을 생성하는 동작; 상기 제1 전자 지문을 블랙리스팅된 음성 쿼리들의 세트의 전자 지문들과 비교하는 동작; 상기 제1 전자 지문이 상기 블랙리스팅된 음성 쿼리들의 세트의 전자 지문들 중 임의의 것과 매칭되는지 여부를 결정하는 동작; 및 상기 제1 음성 쿼리의 제1 전자 지문이 상기 블랙리스팅된 음성 쿼리들의 세트의 전자 지문들 중 적어도 하나와 매칭된다고 결정함에 응답하여, 상기 제1 음성 쿼리에 의해 표시된 동작을 억제하도록 결정하는 동작을 포함한다.
시스템은 매칭되는 전자 지문들의 그룹들 중 다른 그룹들보다 많은 수의 매칭되는 전자 지문들을 표시하는 카운트를 가지는 그룹들 중 하나 이상에 기초하여 매칭되는 전자 지문들의 그룹들 중 하나 이상을 선택할 수 있다.
시스템은 임계 카운트를 만족하는 카운트를 가지는 그룹들 중 하나 이상에 기초하여 매칭되는 전자 지문들의 그룹들 중 하나 이상을 선택할 수 있다.
시스템은 상기 요청들의 서브셋을 생성하기 위해 상기 수신된 요청들 중 특정한 요청들을 샘플링하는 것을 더 포함하고, 상기 시스템은 상기 요청들의 서브셋 내에 있지 않은 요청들에 의해 식별된 음성 쿼리들에 대해서가 아닌 상기 요청들의 서브셋에서의 요청들에 의해 식별된 각 음성 쿼리에 대한 전자 지문을 생성한다. 일부 구현예에서, 상기 요청들의 서브셋을 생성하기 위해 상기 수신된 요청들 중 특정한 요청들을 샘플링하는 것은 상기 요청들의 서브셋에 포함시키기 위한 요청들을 무작위로 선택하는 것 또는 상기 요청들을 제출한 클라이언트 디바이스들의 하나 이상의 특징들에 기초하여 상기 요청들의 서브셋에 포함시키기 위한 요청들을 선택하는 것 중 적어도 하나를 포함할 수 있다.
시스템은 선택된 매칭 전자 지문 그룹의 제1 그룹에 대해, 제1 매칭 전자 지문 그룹으로부터의 다수의 전자 지문에 기초하여 제1 그룹에 대한 대표적인 전자 지문을 생성하는 동작; 및 상기 대표 전자 지문을 상기 음성 쿼리 억제 서비스에 등록하는 동작을 더 수행할 수 있다.
본 명세서에 개시된 발명의 추가적인 혁신적인 양태는 하나 이상의 프로세서들에 의해 실행될 때 상기 프로세서들로 하여금 본 명세서에 개시된 컴퓨터로 구현되는 방법의 동작을 수행하게 하는 명령어가 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함한다. 일부 구현예에서, 컴퓨터 판독 가능 매체는 하나 이상의 프로세서 및 다른 구성 요소를 포함하는 컴퓨팅 시스템의 일부일 수 있다.
본 명세서에 기술된 본 발명의 일부 구현예들은 다음의 이점들 중 하나 이상을 실현하도록 구현될 수 있다. 시스템은 사용자 계정을 손상시키거나 클라이언트 디바이스 및/또는 서버 시스템의 계산 리소스를 소비할 위험이 있는 음성 쿼리에서 표시된 동작을 차단할 수 있다. 일부 구현예에서, 시스템은 사람의 개입 없이 그리고 음성 쿼리들이 불법 음성 쿼리들의 사전 정의된 마커들을 포함하지 않더라도 불법 음성 쿼리들을 식별할 수 있다. 예를 들어, 시스템은 특정한 지리적 영역 내의 디바이스들에 의해 발행된 음성 쿼리들의 공통 세트가 동일한 음성 쿼리는 특정 시간 간격 내에서 임계 볼륨 또는 빈도를 초과하여 사용자들에 의해 독립적으로 반복되지 않을 것이라는 통계적 추론에 기초하여 불법적이라고 결정할 수 있다. 따라서, 시스템은 이러한 공통적으로 발생하는 음성 쿼리를 불법적인 것으로 분류하고 시스템의 모든 또는 일부 사용자에 대한 쿼리를 영구적으로 또는 일시적으로 블랙리스트팅할 수 있다. 추가적 구성 및 이점은 아래의 설명, 청구범위 및 도면에 기초하여 통상의 기술자에 의해 인식될 것이다.
도 1a는 제1 음성 쿼리에 응답하고 클라이언트 디바이스에서 수신된 제2 음성 쿼리를 억제하기 위한 예시적 프로세스의 개념도를 도시한다.
도 1b는 다수의 클라이언트 디바이스들과 통신하는 음성 쿼리 프로세싱 시스템의 개념도를 도시한다. 시스템은 다수의 디바이스들로부터 트래픽을 분석하여 불법적 음성 쿼리를 식별할 수 있다.
도 2a는 예시적 음성 기반 클라이언트 디바이스의 블록도를 도시한다.
도 2b는 예시적 음성 쿼리 프로세싱 서버 시스템의 블록도를 도시한다.
도 3은 시간이 지남에 따라 시스템에 의해 경험된 트래픽의 볼륨에 기초하여 불법 음성 쿼리를 식별하기 위해 음성 쿼리 프로세싱 시스템에서의 트래픽을 분석하기 위한 예시적 프로세스의 흐름도이다.
도 4는 시간이 지남에 따라 공통 음성 쿼리가 발생하는 빈도에 기초하여 불법 음성 쿼리를 식별하기 위해 음성 쿼리 프로세싱 시스템에서의 트래픽을 분석하기 위한 예시적 프로세스의 흐름도이다.
도 5는 서버 시스템에서 불법 음성 쿼리를 검출하고 음성 쿼리 동작을 억제하기 위한 예시적 프로세스를 나타내는 스윔-레인(swim-lane) 다이어그램이다.
도 6은 클라이언트 디바이스에서 불법 음성 쿼리를 검출하고 음성 쿼리 동작을 억제하기 위한 예시적 프로세스를 나타내는 스윔-레인(swim-lane) 다이어그램이다.
도 7은 본 명세서에 개시된 컴퓨터로 구현되는 방법 및 다른 기법들을 구현하기 위해 적용될 수 있는 예시적 컴퓨팅 디바이스 및 모바일 컴퓨팅 디바이스를 도시한다.
도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다.
본 명세서는 불법 음성 쿼리들을 검출하고 억제하는 컴퓨터 기반 시스템, 방법, 디바이스 및 기타 기법에 대해 설명한다. 일반적으로, 불법 음성 쿼리는 음성 쿼리 프로세싱 시스템이 음성 쿼리를 안전하게 프로세싱할 수 있는 것으로 간주하는 조건에서 발행되지 않는 음성 쿼리이다. 예를 들어, 일부 불법 음성 쿼리들은 악의적 행위자에 의해 음성 쿼리 프로세싱 시스템을 악용하려는 시도, 예를 들어 사기성 거래를 유발하거나 시스템의 부당한 양의 계산 리소스를 소비할 위험이 있는 작업의 수행을 유발하려는 시도로 발행될 수 있다. 일부 구현예에서, 본 명세서에 개시된 기법들은 음성 쿼리들이 다수의(예를 들어, 수십, 수백 또는 수천) 음성 기반 클라이언트들에 동시에 또는 짧은 시간 내에 음성 쿼리 프로세싱 시스템의 백엔드 서버들을 오버로드하기 위한 시도로 발행되는 대규모 이벤트를 검출하고 억제하기 위해 적용될 수 있다. 시스템은 잠재적 위협을 식별하고 불법 음성 쿼리들의 프로세싱을 억제하기 위해 클라이언트 디바이스의 모집단에 걸쳐 들어오는 음성 쿼리 프로세싱 요청들의 특징을 모니터링할 수 있다. 이들 및 추가 기법의 세부 사항은 도면과 관련하여 기술된다.
도 1a는 제1 음성 쿼리(118a)에 응답하고 제2 음성 쿼리(118b)를 억제하기 위한 예시적 프로세스(100)의 개념도를 도시한다. 예를 들어, 제1 음성 쿼리(118a)는 음성 쿼리 프로세싱 시스템(108)이 사용자(104)에 의해 예상되는 방식으로 응답하도록 구성된 적법한 쿼리일 수 있고, 제2 음성 쿼리(118b)는 음성 쿼리 프로세싱 시스템(108)이 요청된 방식으로 쿼리에 동작하는 것을 방지하도록 블랙리스팅된 불법 음성 쿼리일 수 있다.
도 1a에 도시된 바와 같이, 단계 A1 및 A2에서, 음성 쿼리 클라이언트 디바이스(102)는 각각 제1 음성 쿼리(118a) 및 제2 음성 쿼리(118b)를 수신한다. 클라이언트 디바이스(102)는 음성 쿼리를 수신하고 원격으로 위치된 음성 쿼리 프로세싱 시스템(108)과 인터렉션하여 수신된 음성 쿼리를 프로세싱하고 그러한 쿼리에 어떻게 응답할지 결정하는 임의의 적절한 디바이스일 수 있다. 예를 들어, 클라이언트 디바이스(102)는 스마트기기, 모바일 디바이스(예를 들어, 스마트폰, 태블릿 컴퓨터, 노트북 컴퓨터), 데스크톱 컴퓨터 또는 웨어러블 컴퓨팅 디바이스(예를 들어, 스마트워치 또는 가상 현실 바이저)일 수 있다.
일부 구현예에서, 클라이언트 디바이스(102)는 사용자 입력을 수신하고 사용자에게 정보를 제공하기 위해 주로 음성 인터렉션들에 의존하는 음성 기반 클라이언트이다. 예를 들어, 디바이스(102)는 디바이스(102)에 근접하여(예를 들어, 디바이스(102)의 로컬 환경에서) 발화된 미리 정의된 핫워드를 지속적으로 청취하도록 구성된 하나 이상의 마이크로폰 및 핫워더를 포함할 수 있다. 디바이스(102)는 미리 정의된 핫워드를 포함하는 주변 오디오를 검출할 때 활성화되도록 구성될 수 있다. 예를 들어, 도 1a에 도시된 바와 같이, 문구 "OK Voice Service"는 음성 쿼리를 수신할 수 있는 모드로 디바이스(102)를 활성화시키는 핫워드이다. 일부 구현예에서, 음성 기반 클라이언트 디바이스(102)는 사용자에 대한 실질적인 핸즈프리 경험을 용이하게 하여, 사용자가 자신의 손으로 디바이스(102)와 물리적으로 인터렉션할 필요없이 쿼리를 제공하고 응답을 얻을 수 있다.
음성 쿼리는 일반적으로 컴퓨팅 시스템이 단어에 의해 표시된 하나 이상의 동작을 수행하도록 프롬프트하기 위해 발화된 하나 이상의 단어들의 문자열이다. 예를 들어, 제1 음성 쿼리(118a)는 "What's traffic like to work today?"라는 문구를 포함한다. 따라서, 제1 음성 쿼리(118a)는 음성 쿼리 프로세싱 시스템(108)이 쿼리의 의미 및 쿼리에 대한 응답을 결정하기 위해 파싱할 수 있는 자연스러운 대화 방식으로 발화된다. 유사하게, 제2 음성 쿼리(118b)는 "What's on my calendar today?"라는 문구를 포함하는데, 이는 사용자의 일정상의 이벤트를 식별하고 응답을 사용자에게 제시하기 위해 클라이언트 디바이스(102) 및/또는 음성 쿼리 프로세싱 시스템(108)에게 프롬프트하기 위해 발화된다. 일부 음성 쿼리들은 수행될 특정한 동작 또는 명령을 표시하는 접두사로서 캐리어 문구를 포함할 수 있고, 캐리어 문구에 의해 표시된 동작 또는 명령의 파라미터를 표시하는 하나 이상의 단어가 뒤따를 수 있다. 예를 들어, "Call Teresa's school" 쿼리에서 "Call"이라는 단어는 전화 걸기 동작의 수행을 프롬프트하는 캐리어 용어이며, "Teresa's school"이라는 단어는 음성 쿼리에 응답하여 전화를 걸 엔터티를 표시하는 파라미터의 값을 포함한다. 캐리어 문구는 디바이스(102)를 활성화하기 위한 핫워드와 동일하거나 상이할 수 있다. 예를 들어, 사용자(104)는 먼저 "OK Voice Service" 핫워드를 말하여, 디바이스(102)를 활성화한 다음 "Call Teresa's school"라는 쿼리를 말하여 전화 걸기 동작을 프롬프트할 수 있다.
주목할만하게, 도 1a의 예에서, 제1 음성 쿼리(118a)는 인간 사용자(104)에 의해 발화되는 반면, 제2 음성 쿼리(118b)는 오디오 디바이스(106)의 스피커(들)에 의해 재생된 기록 또는 합성된 음성이다. 오디오 디바이스(106)는 클라이언트 디바이스(102)의 가청 범위에서, 예를 들어 클라이언트 디바이스(102)의 동일한 방 또는 다른 로컬 환경에서 음성 쿼리를 생성하는 임의의 오디오 소스일 수 있다. 예를 들어, 오디오 디바이스(106)는 텔레비전, 멀티미디어 센터, 라디오, 모바일 컴퓨팅 디바이스, 데스크탑 컴퓨터, 웨어러블 컴퓨팅 디바이스 또는 음성 쿼리를 재생하기 위한 하나 이상의 스피커들을 포함하는 다른 유형의 디바이스들일 수 있다.
일부 경우에서, 오디오 디바이스(106)는 불법 음성 쿼리를 재생하게 될 수 있다. 예를 들어, 공격자는 제2 음성 쿼리(118b)의 많은 인스턴스가 서로 가까운 시간에 근접하게 재생되도록하기 위해, 제2 음성 쿼리(118b)를 별개의 위치에 있는 많은 오디오 디바이스(106)에 브로드캐스팅함으로써 음성 쿼리 프로세싱 서브시스템(108)을 오버로드하려고 시도할 수 있다. 오디오 디바이스(106) 근처에 위치한 클라이언트 디바이스(102)는 제2 음성 쿼리(118b)의 각각의 인스턴스를 검출하고, 음성 쿼리 프로세싱 시스템(108)에게 실질적으로 동일하거나 유사한 시간에 제2 음성 쿼리(118b)를 프로세싱하도록 요청할 수 있다. 이러한 분산 공격은 클라이언트 디바이스(102)와 근접한 다양한 환경에서 오디오 디바이스(106) 상에서 재생하기 위해 미리 정의된 활성화 핫워드를 갖는 음성 쿼리를 포함하는 바이럴 온라인 비디오의 재생을 이용하거나 또는 비디오 콘텐츠(예를 들어, 텔레비전쇼 또는 광고)를 방송함으로써 발생할 수 있다. 단계 B1 내지 G2와 관련하여 논의된 바와 같이, 시스템(108)은 제1 음성 쿼리(118a)가 적법하다고 결정하고, 음성 쿼리(118a)에 의해 표시된 동작의 수행에 기초하여 제1 음성 쿼리(118a)에 대한 응답을 제공할 수 있다. 대조적으로, 시스템(108)은 제2 음성 쿼리(118b)가 불법이라고 결정할 수 있고, 따라서 제2 음성 쿼리(118b)에 의해 표시된 동작의 수행을 억제하도록 선택한다.
클라이언트 디바이스(102)에 의해 수신된 각 음성 쿼리에 대해, 디바이스(102)는 시스템(108)에 수신된 음성 쿼리를 프로세싱하도록 요청하는 요청을 음성 쿼리 프로세싱 시스템(108)에 생성하고 전송할 수 있다. 요청은 예를 들어 헤더 정보 및 프로세싱될 음성 쿼리를 식별하는 다른 정보를 포함하는 HTTP(hypertext transfer protocol) 메시지일 수 있다. 일부 구현예에서, 음성 쿼리를 식별하는 다른 정보는 음성 쿼리를 나타내는 데이터가 요청 내에 내장되도록 하는 음성 쿼리 자체에 대한 오디오 데이터일 수 있다. 다른 구현예에서, 요청에서 음성 쿼리를 식별하는 정보는 음성 쿼리의 사본이 액세스될 수 있는 네트워크 위치를 표시하는 어드레스 또는 다른 포인터일 수 있다. 음성 쿼리 프로세싱 시스템(108)과 클라이언트 디바이스(102)는 서로 원격으로 위치될 수 있고 하나 이상의 네트워크(예를 들어, 인터넷)를 통해 통신할 수 있다. 클라이언트 디바이스(102)는 네트워크를 통해 음성 쿼리 프로세싱 요청(118a, 118b)을 음성 쿼리 프로세싱 시스템(108)에 전송할 수 있고, 이에 응답하여, 음성 쿼리 프로세싱 시스템(108)은 요청(118a, 118b)에 대한 응답(126a, 126b)을 네트워크를 통해 클라이언트 디바이스(102)에 전송할 수 있다.
요청에 표시된 음성 쿼리를 나타내는 오디오 데이터는 쿼리의 컨텐츠에 대한 오디오 데이터(예를 들어, "What's traffic like to work today?" 또는 "What's on my calendar today?")를 포함할 수 있으며, 선택적으로 쿼리의 컨텐츠에 선행하는 활성화 핫워드에 대한 오디오 데이터를 포함할 수 있다(예: "OK Voice Service"). 일부 경우에서, 오디오 데이터는 쿼리에 추가적인 음향 컨텍스트를 제공하기 위해 짧은 기간 동안 음성 쿼리에 선행하거나 또는 후속하는 오디오의 표현을 더 포함할 수 있다. 클라이언트 디바이스(102)는 다양한 기법을 사용하여 음성 쿼리를 캡처할 수 있다.
일부 구현예에서, 디바이스(102)는 활성화 핫워드의 검출(예를 들어, 2-5초) 후에 고정된 길이의 시간 동안 오디오를 기록할 수 있다. 일부 구현예에서, 디바이스(102)는 사용자가 음성 쿼리를 발언하는 것을 마친 때를 예측하기 위해 훨씬 더 정교한 엔드포인팅 기법들을 사용할 수 있다.
단계 B1에서, 클라이언트 디바이스(102)는 제1 요청(122a)을 음성 쿼리 프로세싱 시스템(108)으로 전송한다. 단계 B1에서, 클라이언트 디바이스(102)는 제2 요청(122b)을 음성 쿼리 프로세싱 시스템(108)으로 전송한다. 요청(122a, 122b)은 각각 제1 음성 쿼리(118a) 및 제2 음성 쿼리(118b)에 대한 오디오 데이터를 포함하거나 또는 이와 달리 식별한다. 음성 쿼리(118a 및 118b)의 프로세싱과 연관된 동작이 여기에서 예시로서 병렬로 설명되지만, 실제로 음성 쿼리(118a 및 118b)는 상이한 시간에 검출되어 직렬 방식으로 서로 독립적으로 프로세싱될 수 있다.
일부 구현예에서, 클라이언트 디바이스(102)로부터 요청을 수신하면, 음성 쿼리 프로세싱 시스템(108)은 요청을 스크리닝하여, 요청에 의해 식별된 음성 쿼리가 적법한지 여부를 결정한다. 음성 쿼리가 적법한 경우(예를 들어, 양성), 시스템(108)은 쿼리에 의해 표시된 동작을 수행함으로써 예상된 방식으로 음성 쿼리를 프로세싱할 수 있다. 그러나, 음성 쿼리가 불법으로 간주되면, 시스템(108)은 쿼리에 의해 표시된 하나 이상의 동작들의 수행을 억제할 수 있다.
예를 들어, 제1 음성 쿼리 프로세싱 요청(122a)을 수신하면, 시스템(108)은 음성 쿼리 억제 서비스를 구현하는 게이트키퍼(110)(단계 C)에 요청(122a)을 제공할 수 있다. 게이트키퍼(110)는 요청(122a)에 의해 식별된 제1 음성 쿼리(118a)를 구분되게 모델링하는 전자 지문을 생성한다. 지문은 제1 음성 쿼리(118a)의 오디오 데이터로부터 도출된 음향 구성을 표현할 수 있고, 선택적으로 제1 음성 쿼리(118a)의 텍스트 전사를 포함할 수 있다. 게이트키퍼(110)는 제1 음성 쿼리(118a)에 대한 지문을 시스템(108)에 의해 블랙리스팅된 음성 쿼리들의 지문들인 데이터베이스(112)에 저장된 지문과 비교할 수 있다(단계 D).
도 1a의 예에서, 제1 음성 쿼리(118a)에 대한 전자 지문과 블랙리스팅된 음성 쿼리 데이터베이스(112)의 지문 사이에 매치가 식별되지 않는다. 따라서, 제1 음성 쿼리(118a)가 적법한 쿼리로서 검증되고, 추가 프로세싱을 위해 검증된 쿼리 프로세싱 서브시스템(116)에 제공된다. 검증된 쿼리 프로세싱 서브시스템(116)은 요청된 동작을 결정하기 위해 제1 음성 쿼리(118a)를 전사하고 파싱할 수 있고, 요청된 동작을 적어도 부분적으로 수행할 수 있다(예를 들어, 사용자(104)가 직장에 가는 경로 상의 교통 상황에 관한 데이터를 수집). 대조적으로, 제2 음성 쿼리(118b)는 또한 게이트키퍼(110)에 의해 스크리닝되고 블랙리스팅된 쿼리의 데이터베이스(112)에서 지문과 매칭되는 지문을 갖는 불법 음성 쿼리로 결정된다. 결과적으로, 음성 쿼리 프로세싱 시스템(108)은 제2 음성 쿼리(118b)에 의해 표시된 동작의 완전한 수행을 억제한다. 예를 들어, 시스템(108)은 음성 쿼리(118b)가 적법한 쿼리가 아니라는 결정에 응답하여 음성 쿼리(118b)를 검증된 쿼리 프로세싱 서브시스템(116)에 제공하지 않을 수 있다.
단계 G1에서, 음성 쿼리 프로세싱 시스템(108)은 클라이언트 디바이스의 제1 요청(122a)에 응답(126a)을 리턴한다. 응답(126a)은 예를 들어, 클라이언트 디바이스(102)가 음성 합성기로 프로세싱하여 직장에 가는 경로 상의 교통 상황에 대한 사용자의 질문에 대한 가청 응답을 생성할 수 있는 텍스트 또는 다른 데이터일 수 있다. 일부 구현예에서, 음성 쿼리 프로세싱 시스템(108)은 제1 쿼리(118a)에 대한 응답으로서 재생을 위해 클라이언트 디바이스(102)로 전송되는 오디오 파일을 생성하는 음성 합성기를 포함한다. 그러나, 제2 쿼리(118b)는 불법인 것으로 결정되었기 때문에, 시스템(108)은 제2 음성 쿼리(118b)에 의해 표시된 바와 같이, 현재 날짜의 일정 이벤트에 관한 질문에 대한 실질적인 응답을 전송하지 않는다. 대신에, 시스템(108)은 제2 음성 쿼리(118b)의 프로세싱이 억제(예를 들어, 차단)되거나 달리 수행될 수 없다는 표시(126b)를 전송할 수 있다. 다른 구현예에서, 음성 쿼리 프로세싱 시스템(108)은 불법 음성 쿼리를 식별하기 위해 차단된 요청에 응답하여 클라이언트 디바이스(102)에 메시지를 송신하지 않을 수 있다. 클라이언트 디바이스(102)는 예를 들어 시스템(108)으로부터의 응답을 기다리는 것을 타임아웃할 수 있다. 타임아웃되면, 디바이스(102)는 로컬 환경에서 활성화 핫워드의 발생을 청취함으로써 다른 음성 쿼리를 수신하기 위해 준비하는 상태에 재진입할 수 있다.
일부 구현예에서, 음성 쿼리 프로세싱 시스템(108)은 트래픽 분석기(114)를 포함할 수 있다. 트래픽 분석기(114)는 시스템(108)이 서비스하는 클라이언트 디바이스(102)의 범위로부터 시간에 걸쳐 시스템에 의해 수신된 요청의 특징을 모니터링한다. 일반적으로, 트래픽 분석기(114)는 다수의 클라이언트 디바이스(102)로부터 수신된 네트워크 트래픽의 트렌드를 식별하여, 불법 음성 쿼리를 자동으로 식별할 수 있다. 트래픽 분석기(114)는 예를 들어, 공통 음성 쿼리에 대해 주어진 시간 간격 동안 수신된 요청들의 볼륨을 결정할 수 있다. 시스템 트래픽 레벨의 급등, 시간이 지남에 따라 공통 음성 쿼리를 프로세싱하기 위해 수신된 요청들의 수의 증가, 또는 이들과 다른 기준의 조합과 같은 특정 기준이 충족되면, 트래픽 분석기(114)는 음성 쿼리를 불법적인 것으로 분류하고, 쿼리의 지문을 데이터베이스(112)에 추가한다. 이와 같이, 쿼리에 대한 지문이 데이터베이스(112)에 등록되어있는 한, 게이트키퍼(110)는 블랙리스팅된 쿼리에 대응하는 음성 쿼리를 억제할 수 있다.
트래픽 분석기(114)에 대한 추가 세부 사항은 도 2b, 3 및 4와 관련하여 설명된다.
도 1b는 다수의 클라이언트 디바이스(102a-i)와 통신하는 음성 쿼리 프로세싱 시스템(108)의 개념도이다. 도 1a는 음성 쿼리 프로세싱 시스템(108)과 특정한 클라이언트 디바이스(102) 사이의 인터렉션에 초점을 맞추었지만, 도 1b는 시스템(108)이 많은 클라이언트 디바이스(102a-i)와 동시에 인터렉션할 수 있음을 보여준다.
클라이언트 디바이스들(102a-i) 각각은 음성 쿼리 프로세싱 요청들(118)을 시스템(108)으로 송신한다. 차례로, 시스템(108)은 요청(118)에서 식별된 음성 쿼리들을 적법한지 아닌지를 분류하기 위해 게이트키퍼(110)로 요청(118)을 스크리닝할 수 있다. 그 다음, 시스템(108)은 쿼리가 적법한 것으로 분류되었는지 여부에 기초하여 음성 쿼리들에서 요청된대로 요청(118)에 응답하거나 음성 쿼리에 의해 표시된 동작의 수행을 억제할 수 있다. 추가로, 클라이언트 디바이스들(102a-i) 중 서로 다른 것은 서로 지리적으로 떨어져 있고, 서로 다른 음향 환경에 위치할 수 있다. 음향 환경은 주어진 클라이언트 디바이스(102)의 청각 범위 내의 영역을 정의하여 디바이스(102)가 사람이 말한 것과 같은 정상적인 가청 레벨(예를 들어, 60-90 dB)에서 발언되는 음성 쿼리를 검출할 수 있도록 한다. 일부 환경에는 그 안에 다수의 클라이언트 디바이스들이 있을 수 있다. 예를 들어, 클라이언트 디바이스(106a 및 106b)는 동일한 음향 환경(152a)에 위치된다. 이와 같이, 디바이스들(106a 및 106b)은 공통 환경(152a) 내에서 발화된 동일한 음성 쿼리들을 검출할 수 있다. 환경(152b)과 같은 다른 환경은 환경에서 발언된 음성 쿼리를 프로세싱하도록 구성된 단일 클라이언트 디바이스(102)만을 포함할 수 있다. 일부 구현예에서, 시스템(108)은 시간에 따라 많은 다른 클라이언트 디바이스들로부터 수신된 음성 쿼리 프로세싱 요청의 트래픽의 트렌드를 분석하는 트래픽 분석기(114)를 포함한다. 트래픽 패턴의 특정 조건이 충족되면, 트래픽 분석기(114)는 다수의 요청들에서 공통적인 음성 쿼리들을 식별하고 이들 쿼리들의 전부 또는 일부를 불법적인 것으로 등록할 수 있다. 이후에 불법 음성 쿼리들의 발생이 검출될 수 있고, 결과적으로 시스템(108)은 쿼리들에 의해 표시된 동작의 수행을 억제할 수 있다.
도 2a 및 도 2b를 참조하면, 예시적 클라이언트 디바이스(200) 및 예시적 음성 쿼리 프로세싱 서버 시스템(250)의 블록도가 도시된다. 클라이언트 디바이스(200)는 로컬 환경에서 발언된 음성 쿼리들을 검출하고, 검출된 음성 쿼리들에 대한 응답을 얻기 위해 음성 쿼리 프로세싱 서버 시스템과 통신하도록 구성된 로컬 음향 환경의 컴퓨팅 디바이스일 수 있다. 일부 구현예에서, 클라이언트 디바이스(200)는 클라이언트 디바이스(102)와 유사한 방식으로 구성된다(도 1a 내지 도 1b). 음성 쿼리 프로세싱 서버 시스템(250)은 하나 이상의 위치들에서 구현될 수 있는 하나 이상의 컴퓨터들의 시스템이다. 시스템(250)은 클라이언트 디바이스들(200)에 의해 검출된 음성 쿼리들에 대응하는 음성 쿼리 프로세싱 요청에 대한 백엔드 동작들을 수행하도록 구성된다. 시스템(250)은 인터넷과 같은 네트워크를 통해 하나 이상의 클라이언트 디바이스(200)와 통신할 수 있다. 일부 구현예에서, 시스템(250)은 시스템(108)과 유사한 방식으로 구성된다(도 1a 내지 도 1b).
클라이언트 디바이스(200)는 컴포넌트들(202-224) 전부 또는 일부를 포함할 수 있다. 일부 구현예에서, 클라이언트 디바이스(200)는 사용자 입력을 수신하고 사용자에게 응답을 제공하기 위해 주로 음성 인터렉션들에 의존하는 음성 기반 클라이언트이다. 예를 들어, 클라이언트 디바이스(200)는 사무실, 주거용 거실, 부엌 또는 차량 내부와 같은 로컬 환경에 설정될 수 있다. 전원이 켜질 때, 디바이스(200)는 저전력 기본 상태를 유지할 수 있다. 저전력 상태에서, 디바이스(200)는 미리 정의된 활성화 핫워드가 검출될 때까지 로컬 환경에서 주변 소음을 모니터링한다. 활성화 핫워드의 발생을 검출하는 것에 응답하여, 디바이스(200)는 저전력 상태로부터 음성 쿼리를 수신하고 프로세싱할 수 있는 활성 상태로 전이한다.
활성화 핫워드를 검출하고 로컬 환경에서 발언된 음성 쿼리들을 수신하기 위해, 디바이스(200)는 하나 이상의 마이크로폰들(202)을 포함할 수 있다. 디바이스는 마이크로폰(202)에 의해 검출된 오디오 신호를 기록하고, 핫워더(204)로 오디오를 프로세싱할 수 있다. 일부 구현예에서, 핫워더(204)는 디바이스(200)의 로컬 환경에서 검출된 오디오 신호를 프로세싱하여 로컬 환경에서 발언된 사전 정의된 핫워드의 발생을 식별하도록 구성된다. 예를 들어, 핫워더(204)는 검출된 오디오 신호 또는 검출된 오디오 신호의 구성이 핫워드에 대해 미리 저장된 오디오 신호 또는 오디오 신호의 미리 저장된 구성과 매칭되는지 결정할 수 있다. 매칭이 결정되면, 핫워더(204)는 디바이스(200)가 웨이크업하도록 트리거링하기 위한 표시를 제어기에 제공하여, 검출된 핫워드에 후속하는 음성 쿼리를 캡처하고 프로세싱할 수 있도록 한다. 일부 구현예에서, 핫워더(204)는 필터 뱅크 에너지들 또는 멜-주파수 켑스트랄 계수들과 같은 오디오 신호로부터 오디오 피처들을 추출함으로써 오디오 신호에서 핫워드를 식별하도록 구성된다. 핫워더(204)는 예를 들면, 지원 벡터 머신(support vector machine) 또는 신경 네트워크를 사용하여 이들 오디오 피처들을 프로세싱하기 위해 분류 윈도우들을 사용할 수 있다.
일부 구현예에서, 클라이언트 디바이스는 오디오 버퍼(206) 및 오디오 프리-프로세서(208)를 더 포함한다. 오디오 프리-프로세서(208)는 마이크로폰(202)으로부터 아날로그 오디오 신호를 수신하고, 아날로그 신호를 핫워더(204) 또는 클라이언트 디바이스(200)의 다른 컴포넌트들에 의해 프로세싱될 수 있는 디지털 신호로 변환한다. 프리-프로세서(208)는 오디오 신호를 결정된 길이로 증폭, 필터링 및/또는 크롭할 수 있다. 예를 들어, 프리-프로세서(208)는 단일 음성 쿼리 및 선택적으로 음성 쿼리에 선행하는 소량의 오디오, 음성 쿼리 바로 다음의 소량의 오디오 또는 둘 모두를 포함하는 오디오의 스니펫들을 생성할 수 있다. 음성 쿼리는 쿼리의 내용에 선행하는 활성화 핫워드를 포함하거나 포함하지 않을 수 있다. 일부 구현예에서, 오디오-프리-프로세서(208)는 피처들(예를 들어, 필터뱅크 에너지들, 스펙트럼 계수들)을 포함하는 음성 쿼리의 피처 표현을 생성하기 위해 음성 쿼리에 대한 초기 오디오 데이터를 프로세싱할 수 있다. 프리-프로세서(208)에 의해 생성된 디지털 오디오 데이터(예를 들어, 음성 쿼리의 프로세싱된 디지털 파형 표현 또는 음성 쿼리의 피처 표현)는 디바이스(200)의 오디오 버퍼(206)에 저장될 수 있다.
클라이언트 디바이스(200)는 시각 정보를 사용자에게 제시하기 위한 전자 디스플레이(212), 가청 정보를 사용자에게 제시하기 위한 스피커(214) 또는 둘 모두를 더 포함할 수 있다. 디바이스(200)가 음성 입력 및 음성 기반 출력에 기초하여 핸즈프리 사용자 인터렉션을 위해 주로 구성된 음성 기반 클라이언트인 경우, 디바이스(200)는 스피커(214)를 통해 재생되는 합성된 음성을 사용하여 사용자 쿼리에 대한 응답을 제시할 수 있다.
일부 경우들에서, 디바이스(200)는 사용자 계정 정보, 클라이언트 디바이스(200), 또는 음성 쿼리 프로세싱 서버 시스템(250)의 악용을 방지하기 위해 억제되는 대상이 되는 불법 음성 쿼리들을 수신할 수 있다. 일부 구현예에서, 클라이언트 디바이스(200)는 클라이언트 디바이스(200)에 의해 검출된 음성 쿼리들을 스크리닝하고, 특정 음성 쿼리들과 연관된 동작들을 억제할지 여부를 결정하기 위한 로컬 게이트키퍼(216)를 포함한다. 게이트키퍼(216)는 핑거프린터(218), 블랙리스팅된 음성 쿼리 데이터베이스(220), 억 제기(222) 및 억제 로그(224)를 포함할 수 있다. 핑거프린터(218)는 음성 쿼리를 위한 전자 지문을 생성하도록 구성된다. 전자 지문은 쿼리의 피처를 식별하는 음성 쿼리의 모델 또는 서명이다. 지문은 쿼리의 음향 피처를 표현하는 오디오 컴포넌트, 쿼리의 전사를 표현하는 텍스트 컴포넌트 또는 둘 모두를 포함할 수 있다. 따라서, 지문은 쿼리의 내용(발화된 내용) 뿐만 아니라 발화된 방식을 모델링할 수 있으며, 이는 스피커 또는 다른 요인에 따라 달라질 수 있다.
게이트키퍼(216)는 로컬(예를 들어, 음향) 환경에서 검출된 음성 쿼리에 대한 지문을 데이터베이스(220)에 저장된 블랙리스팅된 음성 쿼리들에 대한 지문과 비교할 수 있다. 게이트키퍼(216)가 지문과 데이터베이스(220)에서 지문들 중 하나 이상 사이의 매치를 결정하면, 표시가 억제기(222)에 제공될 수 있다. 억제기(222)는 불법인 것으로 결정된 음성 쿼리와 연관된 동작의 수행을 억제한다. 일부 구현예에서, 억제기(222)는 제1 인스턴스에서 동작이 수행되는 것을 차단할 수 있다. 예를 들어, “What meetings do I have with Becky today?" 라는 쿼리가 불법으로 간주되면, 억제기(222)는 시스템이 질문에 대답하기 위해 일정 데이터에 액세스하는 것을 차단할 수 있다. 일부 구현예에서, 억제기(222)는 쿼리가 즉시 불법적인 것으로 식별되지 않았지만 나중에 불법적인 것으로 결정되면 수행된 동작을 되돌릴 수 있다. 예를 들어, 동작이 초기에 수행된 후에 쿼리가 불법적인 것으로 결정되면, 음성 쿼리에서 요청된 사용자 계정 설정 또는 금융 거래에 대한 변경이 취소될 수 있다.
일부 구현예에서, 게이트키퍼(216)는 억제 로그(224)를 유지한다. 억제 로그(224)는 클라이언트 디바이스(200)의 메모리에 저장된 데이터 구조로서, 불법 음성 쿼리에 대한 정보 및 불법 음성 쿼리와 연관된 억제된 동작에 대한 정보를 나타내는 데이터 엔트리를 포함한다. 디바이스(200)는 분석을 위해 억제 로그(224)로부터 원격 서버 시스템, 예를 들어, 음성 쿼리 프로세싱 서버 시스템(250)으로 정보를 주기적으로 전송할 수 있다.
게이트키퍼(216)는 클라이언트 디바이스(200)에서 수신된 모든 음성 쿼리를 스크리닝하여 그것이 블랙리스팅된 쿼리에 대응하는 불법적 쿼리인지 결정할 수 있다. 다른 구현예에서, 게이트키퍼(216)는 전부가 아니라 클라이언트 디바이스들(200)에서 수신된 일부 음성 쿼리들만 스크리닝하도록 선택할 수 있다. 선택은 임의적이거나 정의된 필터링 기준(예를 들어, 수신된 모든 n 번째 음성 쿼리, 특정 시간 동안 수신된 음성 쿼리, 특정한 사용자로부터 수신된 음성 쿼리)에 기초할 수 있다.
클라이언트 디바이스(200)는 또한 디바이스(200)가 하나 이상의 유선 또는 무선 네트워크에 연결될 수 있게 하는 네트워크 인터페이스(210)를 포함할 수 있다. 디바이스(200)는 예를 들어, 패킷 교환 네트워크(예를 들어, 인터넷)를 통해 원격 컴퓨팅 시스템으로 메시지를 송신하고 그로부터 메시지를 수신하기 위해 네트워크 인터페이스(210)를 사용할 수 있다. 일부 구현예에서, 클라이언트 디바이스(200)는 네트워크를 통해 음성 쿼리 프로세싱 서버 시스템(250)으로부터 블랙리스팅된 음성 쿼리 데이터베이스(220)에 추가하기 위한 지문을 획득한다. 일부 구현예에서, 클라이언트 디바이스(200)는 클라이언트 디바이스(200)로부터 수신된 음성 쿼리들에 대한 오디오 데이터를 음성 쿼리 프로세싱 서버 시스템(250)으로 전송할 수 있다. 오디오 데이터는 합법성에 대한 음성 쿼리를 스크리닝하고, 검증된(합법적) 쿼리에서 특정된 임의의 동작을 호출하는 것을 포함하는 음성 쿼리를 프로세싱하기 위해 시스템(250)에 대한 요청과 함께 시스템(250)에 전송될 수 있다.
음성 쿼리 프로세싱 서버 시스템(250)은 도 2b에 도시된 바와 같이, 요청에서 식별된 음성 쿼리들에 대한 오디오 데이터와 함께 하나 이상의 클라이언트 디바이스들로부터 음성 쿼리 프로세싱 요청을 수신하도록 구성된다. 음성 쿼리 프로세싱 시스템(250)은 네트워크 인터페이스(256)를 사용하여 하나 이상의 네트워크를 통해 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(200))와 통신할 수 있다. 일부 구현예에서, 시스템(250)은 하나 이상의 위치에서 다수의 컴퓨터들 사이에서 분산된다. 시스템(250)은 또한 음성 인식기(251), 자연어 프로세서(252), 서비스 허브(254), 게이트키퍼(258) 및 트래픽 분석기(268) 또는 컴포넌트(251-268)의 전부 또는 일부의 조합을 포함할 수 있다.
서버 게이트키퍼(258)는 클라이언트 디바이스(200)에서 게이트키퍼(216)와 관련하여 설명된 것과 동일하거나 유사한 동작을 수행할 수 있다. 그러나, 클라이언트-사이드 게이트키퍼(216)와 달리, 서버 게이트키퍼(258)는 시스템(250)에 연결된 많은 디바이스들로부터의 음성 쿼리를 스크리닝할 수 있다. 예로서, 핑거프린터(260)는 음성 쿼리에 대한 오디오 데이터를 프로세싱하여 음성 쿼리의 전자 지문을 생성할 수 있다. 생성된 지문을 음성 쿼리 억제 서비스에 등록된 지문과 비교할 수 있다. 등록된 지문은 데이터베이스(262)에 저장된다. 억제기(264)는 불법 음성 쿼리와 연관된 동작을 억제한다. 게이트키퍼(258)는 쿼리의 전자 지문이 데이터베이스(262)에 등록된 지문들 중 하나와 매칭되면 음성 쿼리를 불법적인 것으로 분류할 수 있다. 일부 구현예에서, 게이트키퍼(258)는 음성 쿼리를 불법적인 것으로 분류하기 위해서는 동일한 매칭을 요구할 수 있다. 다른 구현예에서, 동일한 매칭이 요구되지 않을 수 있다. 이러한 구현예에서, 게이트키퍼(258)는 지문들이 도출된 음성 쿼리들이 동일하다는 것(예를 들어, 공통 음성 쿼리)을 자신있게 표시하기에 충분히 유사한 지문들 사이에서 매칭을 식별하기 위해 0이 아닌 공차(tolerance)를 허용할 수 있다. 예를 들어, 2개의 지문들 간의 유사성을 표현하는 유사성 점수가 임계값을 만족하면, 게이트키퍼(258)는 지문들 간의 매칭을 결정할 수 있다. 임계값은 매칭에 대한 허용 가능한 공차를 표현하며 고정된 값 또는 특정 파라미터들에 따라 변경되는 동적 값일 수 있다. 불법적인 것으로 분류된 음성 쿼리에 관한 정보 및 불법 음성 쿼리들과 연관된 억제된 동작에 관한 정보는 억제 로그(266)에 저장될 수 있다.
게이트키퍼(258)가 적법한 것으로 검증한 음성 쿼리의 경우, 쿼리들은 음성 인식기(251), 자연어 프로세서(252), 서비스 허브(254) 또는 이들의 조합에 의해 프로세싱될 수 있다. 음성 인식기(251)는 음성 쿼리에 대한 오디오 데이터를 프로세싱하고 음성 쿼리에 포함된 단어들의 시퀀스를 식별하는 텍스트 전사를 생성하도록 구성된다. 자연어 프로세서(252)는 음성 쿼리의 전사를 파싱하여, 음성 쿼리에 의해 요청된 동작 및 동작이 어떻게 수행되어야 하는지를 표시하는 음성 쿼리 내의 임의의 파라미터들을 결정한다. 예를 들어, 음성 쿼리 "Call Bob Thomas"는 전화 통화 동작을 수행하기 위한 요청을 포함하고, Bob Thomas가 통화의 수신자여야 함을 표시하는 수신자 파라미터를 포함한다. 자연어 프로세서(252)에 의해 표시된 바와 같이, 음성 쿼리에서 어떤 동작 및 파라미터가 특정되었는지에 관한 정보를 사용하여, 서비스 허브(254)는 동작을 수행하고 쿼리에 대한 응답을 생성하기 위해 하나 이상의 서비스들과 인터렉션할 수 있다. 서비스 허브(254)는 음성 쿼리에서 특정될 수 있는 동작들 범위를 수행할 수 있는 광범위한 서비스들과 인터렉션할 수 있다. 일부 서비스들은 음성 쿼리 프로세싱 시스템(250) 자체에서 호스팅될 수 있는 반면, 다른 서비스들은 외부 컴퓨팅 시스템에서 호스팅될 수 있다.
일부 구현예에서, 음성 쿼리 프로세싱 시스템(250)은 트래픽 분석기(268)를 포함할 수 있다. 트래픽 분석기(268)는 시간에 따라 시스템(250)에 의해 수신된 데이터 트래픽(예를 들어, 음성 쿼리 프로세싱 요청)을 집계하고 분석하도록 구성된다. 분석 결과에 기초하여, 트래픽 분석기(268)는 불법 음성 쿼리들과 관련될 가능성이 있는 트래픽의 일부를 식별할 수 있다. 이러한 트래픽과 연관된 음성 쿼리는 블랙리스팅된 쿼리들과 매칭되는 후속 음성 쿼리들이 억제되도록 블랙리스팅될 수 있다. 일부 구현예에서, 트래픽 분석기(268)는 감독없이 그리고 음성 쿼리에 대한 사전 지식없이 불법적 음성 쿼리를 식별할 수 있다. 이들 및 다른 구현예에서, 트래픽 분석기(268)는 음성 쿼리와 연관된 동작이 억제되어야한다는 것을 신호하기 위해 의도된 음성 쿼리에서 미리 정의된 워터 마크를 식별하지 않고 불법 음성 쿼리를 추가로 식별할 수 있다(예를 들어, 활성화 핫워드가 광고에서 발화된 경우 디바이스들의 가청 범위에서 음성 기반 클라이언트 디바이스들을 트리거링하는 것을 방지하기 위한 워터마크를 포함하는 텔레비전 광고).
트래픽 분석기(268)는 도 2b에 도시된 컴포넌트들(270-280) 전부 또는 일부를 포함할 수 있다. 핑거프린터(270)는 게이트키퍼(216 및 268)에서 각각 핑거프린터(218 및 260)와 같은 음성 쿼리의 전자 지문을 생성하도록 구성된다. 지문 데이터베이스(272)는 시스템(250)이 일정 기간 동안 수신한 음성 쿼리에 대한 지문을 저장한다. 충돌 검출기(274)는 지문 데이터베이스(272)에서 지문들 사이의 충돌들 또는 매칭들의 수를 식별하도록 구성된다. 일부 구현예에서, 충돌 검출기(274)는 그룹의 크기에 기초하여 지문 데이터베이스(272)에서 매칭되는 지문들의 그룹에 의해 표현된 음성 쿼리를 블랙리스팅하도록 구성된다. 따라서, 트래픽 분석기(268)가 지문들의 매칭되는 그룹의 크기에 의해 표시된 바와 같이, 시간 경과에 따라 충분한 빈도로 시스템(250)에 의해 수신된 요청들에서 공통 음성 쿼리가 나타나는 것을 식별하면, 공통 음성 쿼리는 예를 들어, 음성 쿼리의 지문을 데이터베이스(262) 및/또는 데이터베이스(220)에 추가함으로써 블랙리스팅될 수 있다.
일부 구현예에서, 트래픽 볼륨 분석기(278)는 시간에 따라 시스템(250)에서 수신된 트래픽의 볼륨을 모니터링한다. 분석된 트래픽은 글로벌이거나 또는 트래픽 필터(280)가 음성 쿼리들을 제출한 사용자들 또는 클라이언트 디바이스들의 지리적 위치들, 음성 쿼리들을 제출한 클라이언트 디바이스들의 모델들, 쿼리들을 제출한 사용자들의 프로필 정보 또는 이들 및 다른 기준의 조합과 같은 기준에 기초하여 필터링한 트래픽의 단지 일부일 수 있다. 주어진 시간 간격에서 시스템(250)이 수신하는 요청들의 볼륨이 충분히 높으면(예를 들어, 임계 볼륨을 충족하는 경우), 볼륨 분석기(278)는 수신된 트래픽에서 불법 음성 쿼리들에 대해 검색하도록 충돌 검출기(274)를 트리거할 수 있다. 일부 구현예에서, 충돌 검출기(274)는 트래픽의 상당 부분에서 공통 음성 쿼리가 발생한다고 식별함에 기초하여 트래픽의 세트로부터 불법 음성 쿼리를 식별할 수 있다. 예를 들어, 다양한 클라이언트 디바이스들로부터의 임계수의 음성 쿼리 프로세싱 요청들 또는 트래픽의 샘플 세트에서 요청들의 임계 부분이 동일한 음성 쿼리를 포함하는 것으로 결정되면, 분석기(268)는 음성 쿼리를 블랙리스팅하고, 그것의 전자 지문을 게이트키퍼(216 또는 258)(예를 들어, 음성 쿼리 억제 서비스)에 등록한다.
일부 구현예에서, 정책 관리자(276)는 트래픽 분석기(268)가 트래픽을 필터링하고, 불법 음성 쿼리들에 대한 검색을 트리거하고, 공통 음성 쿼리들을 블랙리스팅하여 기준을 관리한다. 일부 구현예에서, 정책 관리자(276)는 어플리케이션 프로그래밍 인터페이스("API")를 노출하거나 시스템 관리자가 이러한 정책들을 보고 조정할 수 있는 대시보드 또는 다른 인터페이스를 제공할 수 있다.
도 3은 시간이 지남에 따라 시스템에 의해 경험된 트래픽의 볼륨에 기초하여 불법 음성 쿼리를 식별하기 위해 음성 쿼리 프로세싱 시스템에서의 트래픽을 분석하기 위한 예시적 프로세스(300)의 흐름도이다. 프로세스(300)는 음성 쿼리 프로세싱 서버 시스템, 예를 들어 음성 쿼리 프로세싱 서버 시스템(108 또는 250)에 의해 수행될 수 있다. 음성 쿼리 프로세싱 서버 시스템은 시간에 따라 시스템에 의해 수신된 음성 쿼리 프로세싱 요청을 분석하고, 그러한 요청에 의해 표시된 불법 음성 쿼리를 검출하기 위한 트래픽 분석기, 예를 들어, 트래픽 분석기(268)를 가질 수 있다.
단계(302)에서, 음성 쿼리 프로세싱 시스템은 클라이언트 디바이스로부터 로컬 환경에서 클라이언트 디바이스에 의해 검출된 음성 쿼리를 프로세싱하기 위한 요청을 수신한다. 일부 구현예에서, 시스템은 하나 이상의 네트워크를 통해 많은 클라이언트 디바이스들(예를 들어, 수십, 수백, 수천 또는 수백만)과 통신하고, 따라서 많은 음성 쿼리 프로세싱 요청을 수신한다. 음성 쿼리 프로세싱 요청은 일반적으로 시스템이 프로세싱하도록 요청된 단일 음성 쿼리를 식별하지만, 일부 구현예에서 쿼리는 다수의 음성 쿼리들을 식별할 수 있다. 음성 쿼리 프로세싱 시스템은 음성 쿼리를 텍스트로 전사하고 쿼리의 컨텐츠에 의해 표시된 동작을 수행함으로써 음성 쿼리를 프로세싱할 수 있다. 또한, 시스템은 예를 들어, 동작이 성공적으로 수행되었다는 확인, 요청된 동작이 억제되었다는 표시 또는 질문에 대한 답변일 수 있는 음성 쿼리에 대한 응답을 클라이언트 디바이스에 전송할 수 있다. 일부 구현예에서, 음성 쿼리에 대한 오디오 데이터(예를 들어, 압축된 파형 또는 오디오 피처들)는 음성 쿼리 프로세싱 요청 내에 명시적으로 내장된다. 일부 구현예에서, 음성 쿼리에 대한 오디오 데이터는 요청 자체와 별개의 하나 이상의 메시지들에서 서버 시스템으로 전송될 수 있지만, 요청은 오디오 데이터를 제공하는 메시지들을 참조한다. 일부 구현예에서, 음성 쿼리 프로세싱 요청은 서버 시스템이 문제의 음성 쿼리에 대한 오디오 데이터의 사본에 액세스할 수 있는 네트워크 저장 위치를 표시하는 포인터 또는 다른 주소를 포함할 수 있다.
단계(304)에서, 시스템은 시간에 따라 수신된 클라이언트 요청들(예를 들어, 트래픽)의 볼륨을 결정한다. 이 단계는 예를 들어, 트래픽 볼륨 분석기(278)에 의해 수행될 수 있다. 수신된 요청들의 볼륨은 정의된 시간 윈도우와 관련하여 결정될 수 있다. 일부 구현예에서, 시스템은 가장 최근의 시간 기간 동안 수신된 클라이언트 요청들의 볼륨을 결정한다(예를 들어, 지난 30초, 1분, 2분, 5분, 15분, 30분, 1시간, 4시간, 12시간, 24시간 또는 1주에서 수신된 요청들의 수). 시간 간격은 미리 정의될 수 있으며, 자동 또는 사용자 입력에 기초하여 설정될 수 있는 정적 또는 동적 파라미터일 수 있다. 수신된 요청들의 볼륨은 특정된 시간 간격 동안 시스템에 의해 수신된 요청들의 총 수에 기초한 값을 표현한다. 제1 예에서, 볼륨은 특정된 시간 간격 동안 시스템에 의해 수신된 요청들의 절대수를 표시한다. 제2 예에서, 볼륨은 특정된 시간 간격 동안 시스템에 의해 수신된 요청들의 상대수를 표시한다. 제3 예에서, 볼륨은 특정된 시간 간격 동안 시스템에 의해 수신된 요청들의 수에서 변화율을 표시한다. 제4 예에서, 볼륨은 특정된 시간 간격 동안 시스템에 의해 수신된 요청들의 요청들의 수에서 가속도를 표시한다. 제4 예에서, 볼륨은 절대수, 상대수, 변화율 및 특정 시간 간격 동안 시스템에 의해 수신된 요청들의 수에서 가속도 중 둘 이상의 팩터들의 조합에 기초한 값이다.
일부 구현예에서, 시스템은 시간에 따라 시스템에 의해 전체적으로 수신된 요청들의 볼륨을 결정한다(예를 들어, 요청들을 필터링하지 않고 특정 시간 간격 동안 시스템에 의해 수신된 실질적으로 모든 요청들을 카운트). 다른 구현예에서, 시스템은 특정 기준을 만족하는 특징을 갖는 요청에 대해서만 요청들의 볼륨을 결정한다. 예를 들어, 시스템은 인터넷 프로토콜(IP) 주소들의 제한된 세트를 갖는 클라이언트 디바이스들, 특정한 지리적 영역에 위치된 클라이언트 디바이스 또는 사용자, 또는 클라이언트 디바이스의 특정한 모델들로부터 수신된 요청들의 볼륨을 결정할 수 있다.
단계(306)에서, 시스템은 단계(304)에서 결정된 바와 같이, 시간에 따라 시스템에 의해 수신된 요청들의 볼륨이 딥-다이브 트래픽 분석을 트리거하기 위한 하나 이상의 기준을 충족하는지 여부를 결정한다. 단계(306)는 예를 들어 트래픽 볼륨 분석기(178)에 의해 수행될 수 있다. 딥-다이브 트래픽 분석 중에, 시스템은 블랙리스팅되어야하는 임의의 불법 음성 쿼리들을 검색에서 일정 기간 동안 수신된 음성 쿼리 프로세싱 요청을 분석한다. 일부 구현예에서, 요청들의 볼륨이 딥-다이브 트래픽 분석을 트리거하기 위한 기준을 충족하는지 여부를 결정하는 것은 특정한 시간 간격 동안 수신된 요청들의 볼륨을 임계값과 비교하는 것을 포함한다. 예를 들어, 요청들의 볼륨이 특정 시간 간격 동안 시스템에 의해 수신된 요청들의 절대수를 표시하는 경우, 시스템은 수신된 요청의 절대수를 요청들의 임계수와 비교할 수 있다. 수신된 요청들의 실제 수가 임계치를 초과하여 트래픽 스파이크가 표시되면, 시스템은 단계(308)에서 딥-다이브 트래픽 분석을 진행할 수 있다. 요청들의 볼륨이 시간에 따라 시스템에 의해 수신된 요청들의 수의 변화율을 표시하는 경우, 시스템은 관측된 변화율을 임계 레이트와 비교하여 딥-다이브 트래픽 분석을 수행할지 여부를 결정할 수 있다. 딥-다이브 분석을 트리거하기 위한 기준이 충족되지 않으면, 프로세스(300)는 일부 구현예에서 종료되거나 단계(302)로 리턴할 수 있다.
단계(308)에서, 시스템은 수신된 요청들의 딥-다이브 분석을 수행하여, 요청들이 현재 블랙리스팅되지 않은 임의의 불법 음성 쿼리를 포함하는지를 결정한다. 이 단계(308)는 일부 구현예에서 핑거프린터(270), 충돌 검출기(274) 및 트래픽 볼륨 분석기(278)에 의해 수행될 수 있다. 예를 들어, 악성 엔터티가 음성 쿼리 프로세싱 시스템(250)에 대한 분산 캠페인(예를 들어, 분산 서비스 거부(DDOS) 공격)을 시작한 경우, 시스템에 짧은 시간 내에 동일하거나 유사한 음성 쿼리의 많은 인스턴스들을 프로세싱하라는 요청이 넘칠 수 있다. 예를 들어, 텔레비전 또는 컴퓨터 네트워크를 통해 방송되는 비디오가 재생될 수 있으며, 이 비디오는 비디오에서 발언된 음성 쿼리를 포함하는 음성 쿼리 프로세싱 요청들을 생성하기 위해 재생된 비디오의 가청 범위에서 많은 음성 기반 클라이언트를 트리거하도록 구성된다. 일부 구현예에서, 단계(308)에서 시스템의 하나의 목적은 일정 기간 동안 클라이언트 디바이스들로부터 수신된 상당한 수의 요청들 내에서 발생하는 공통 음성 쿼리를 식별하는 것이다. 적법한 사용자로부터의 음성 쿼리에 대한 발언은 일반적으로, 예를 들어 개별 스피커들의 고유한 음성 패턴 및 음성 특징에 기초하여 구별되기 때문에, 시스템은 시간에 따라 이종 클라이언트 디바이스들로부터의 많은 음성 쿼리 프로세싱 요청들에서 발생하는 공통 음성 쿼리를 불법적인 것으로 분류할 수 있다. 예를 들어, 서버 시스템에서 수신된 요청들 세트에 의해 표시된 음성 쿼리들의 볼륨(예를 들어, 수량)이 적어도 임계 볼륨인 경우, 시스템은 음성 쿼리를 불법적인 것으로 플래그할 수 있다. 일부 구현예에서, 공통 음성 쿼리들의 볼륨은 전자 지문들이 서로 매칭되는 음성 쿼리들의 수의 카운트, 텍스트 전사들이 서로 매칭되는 음성 쿼리들의 수 또는 이들의 조합에 기초하여 결정될 수 있다. 볼륨은 매칭되는 전자 지문 및/또는 전사를 갖는 음성 쿼리들의 그룹에서 음성 쿼리들의 수의 절대 카운트, 상대 카운트, 시간에 따른 카운트의 변화율, 시간에 따른 카운트의 가속도 또는 이것들의 조합일 수 있다. 일부 구현예에서, 단계(308)에서의 분석은 제한된 시간 간격 동안 수신된 음성 쿼리 프로세싱 요청들로 제한된다. 시간 간격은 단계(304)에서 적용된 시간 간격과 동일하거나 상이할 수 있다. 일부 구현예에서, 단계(308)에서의 분석은 특정 시간 간격 동안 수신된 음성 쿼리 프로세싱 요청들로 제한되지 않는다. 예를 들어, 온라인 비디오 스트리밍 서비스의 비디오는 짧은 시간 내에 있지 않더라도 상이한 사용자들에 의해 여러번 재생된 수 있다. 시스템은 시간에 따라 비디오에서 음성 쿼리의 공통 발생을 검출하고, 음성 쿼리가 실제 사용자의 음성이 아니라 오히려 재생 가능한 매체의 피처라고 결정할 수 있다. 따라서, 음성 쿼리는 불법적인 것으로 간주되어 블랙리스팅될 수 있다.
단계(310)에서, 시스템은 공통 음성 쿼리의 프로세싱을 요청하는 요청들의 세트는 하나 이상의 억제 기준을 충족하는지 여부를 결정한다. 억제 기준은 공통 음성 기준, 공통 음성 쿼리의 특징(예를 들어, 쿼리가 블랙리스팅된 용어를 포함하는지 여부) 및/또는 추가 기준과 연관된 요청들의 볼륨을 포함할 수 있다. 예를 들어, 시스템은 세트의 크기(예를 들어, 세트 내의 요청들의 볼륨 또는 양)가 임계치 크기를 충족하고 공통 음성 쿼리가 수신된 트래픽에서 충분한 빈도가 발생한다고 표시한다고 결정하면, 시스템은 요청들의 세트 가운데 공통인 음성 쿼리를 불법적인 것으로 분류할 수 있다.
일부 구현예에서, 세트의 크기에 추가하여 또는 대안적으로 신호들(예를 들어, 공통 음성 쿼리에 대한 매칭 지문을 갖는 세트 내의 요청들의 수의 볼륨 또는 카운트)이 요청들의 세트가 억제 기준을 만족하는지 여부를 결정하는 것에 적용될 수 있다. 이들 신호는 음성 쿼리에 대한 응답 또는 음성 쿼리에서 요청된 대로 수행된 동작에 대한 사용자 피드백에 대한 정보를 포함할 수 있다. 시스템은 사용자가 음성 쿼리에 대한 응답을 수락, 거부 또는 수정했는지를 표시하는 데이터를 획득할 수 있다. 공통 음성 쿼리의 각각의 인스턴스들에서 요청된 대로 수행된 동작의 응답들 또는 결과들을 수락, 거부 또는 수정한 사용자들의 분산에 따라, 시스템은 음성 쿼리가 블랙리스팅되어야 하는지 또는 요청들의 세트가 규정된 억제 기준을 충족하는지에 관한 결정을 편향시킬 수 있다. 예를 들어, 시스템이 각각 "What's the traffic like today between home and the park?"라는 음성 쿼리가 각각 포함된 많은 요청들을 수신하면, 시스템은 사용자에게 이 질문에 대한 응답을 얻고 싶다는 확인을 프롬프트할 수 있다. 더 많은 사용자가 시스템이 음성 쿼리를 정확하게 수신했음을 확인하고 질문에 대한 응답을 얻고자 한다는 것을 확인하면, 시스템은 음성 쿼리가 불법적일 가능성이 적은 것으로(억제 기준을 충족할 가능성이 적음) 영향을 받을 수 있다. 대조적으로, 프롬프트에 응답하여 더 많은 사용자가 쿼리를 취소 또는 수정함에 따라, 시스템은 음성 쿼리를 불법적인 것으로 분류할 가능성이 높은 것으로(억제 기준을 충족할 가능성이 높음) 영향을 받을 수 있다.
단계(312)에서, 시스템은 공통 음성 쿼리에 대한 요청들의 세트가 억제 기준을 충족하는지 여부에 기초하여 프로세스(300)에서 경로를 선택한다. 억제 기준이 충족되면, 프로세스(300)는 단계(314)로 진행할 수 있다. 억제 기준이 충족되지 않으면, 프로세스(300)는 예를 들면, 단계(302)로 리턴할 수 있다. 일부 구현예에서, 억제 기준은 널(null) 세트이다. 즉, 공통 음성 쿼리를 식별하는 요청들의 임의의 세트는 세트가 추가 기준을 충족하는지 여부에 관계없이 불법적인 것으로 분류될 수 있다.
단계(314)에서, 핑거프린터, 예를 들어 핑거프린터(270)는 요청들의 세트에서 발생하는 공통 음성 쿼리를 모델링하기 위해 전자 지문을 생성한다. 핑거프린터는 음성 쿼리에 대한 오디오 데이터, 음성 쿼리의 텍스트 전사 또는 둘 모두로부터 전자 지문을 생성할 수 있다. 일부 구현예에서, 지문은 요청들의 세트에 의해 식별된 음성 쿼리들의 세트 중에서 선택된 공통 음성 쿼리의 대표적 인스턴스로부터 도출된다. 공통 음성 쿼리의 대표적 인스턴스는 임의의 적절한 방식으로, 예를 들어, 가장 높은 오디오 품질을 갖는 공통 음성 쿼리의 인스턴스를 선택하거나 또는 대표적 인스턴스를 무작위로 선택함으로써 선택될 수 있다. 일부 구현예에서, 지문은 공통 음성 쿼리의 다수의 대표적 인스턴스로부터 또는 요청들의 세트에 의해 식별된 모든 공통 음성 쿼리들로부터 도출된다. 예를 들어, 공통 음성 쿼리의 다중 인스턴스로부터의 오디오 데이터는 지문을 생성하기 전에 병합될 수 있다. 대안적으로, 각각의 인스턴스에 대해 중간 지문이 생성될 수 있고, 중간 지문들은 병합되어 공통 음성 쿼리에 대한 최종 전자 지문을 형성한다.
단계(316)에서, 시스템의 트래픽 분석기는 공통 음성 쿼리의 전자 지문을 게이트키퍼에 등록한다. 일부 구현예에서, 지문을 등록하는 것은 새로운 음성 쿼리들에 의해 표시된 요청된 동작들을 억제할지 여부를 결정하기 위해 게이트키퍼가 새로운 음성 쿼리들을 검사하는 음성 쿼리들의 데이터베이스, 예를 들어 데이터베이스(262)에 지문을 추가하는 것을 포함한다. 일부 구현예에서, 음성 쿼리는 보편적으로 블랙리스팅되기 보다는 시스템과 인터렉션하는 클라이언트 디바이스들의 서브셋에 대해서만 블랙리스팅될 수 있다. 예를 들어, 시스템이 불법적 음성 쿼리가 특정한 지리적 영역에 있는 디바이스들로부터 발생한다고 식별하면, 시스템은 그 영역에 위치한 클라이언트 디바이스들 또는 사용자들에 대해서만 음성 쿼리를 블랙리스팅할 수 있다. 일부 구현예에서, 시스템은 또한 시간적 제약들을 블랙리스팅된 음성 쿼리에 첨부할 수 있다. 예를 들어, 음성 쿼리는 영구성(만료 없음) 또는 일시적으로 블랙리스팅될 수 있다. 블랙리스트에서 음성 쿼리가 제거된 후, 음성 쿼리의 새 인스턴스는 억제되지 않을 수 있다. 음성 쿼리가 어떻게 블랙리스팅될지 결정하는 시간적 제약, 지리적 제약 및 기타 규칙은 게이트키퍼 데이터베이스에 음성 쿼리의 지문과 함께 등록할 수 있다. 클라이언트 디바이스가 음성 쿼리 스크리닝을 로컬적으로 수행하는 일부 구현예에서, 서버 시스템은 디바이스의 로컬 블랙리스트 데이터베이스를 최신 상태로 유지하기 위해 클라이언트 디바이스에 업데이트를 푸시할 수 있다. 예를 들어, 서버 시스템의 트래픽 분석기가 최근에 불법적인 것으로 분류한 음성 쿼리에 대한 지문이 다수의 클라이언트 디바이스에 전송될 수 있다. 일부 구현예에서, 시스템은 블랙리스팅된 음성 쿼리에 대한 지문을 제한없이 모든 클라이언트 디바이스에 푸시할 수 있다. 다른 구현예에서, 시스템은 블랙리스팅된 음성 쿼리에 대한 지문을 블랙리스트에 의해 커버되는 클라이언트 디바이스들, 예를 들어 특정한 지리적 영역 내의 디바이스들에게만 푸시할 수 있다.
도 4는 시간이 지남에 따라 공통 음성 쿼리가 발생하는 빈도에 기초하여 불법 음성 쿼리를 식별하기 위해 음성 쿼리 프로세싱 시스템에서의 트래픽을 분석하기 위한 예시적 프로세스(400)의 흐름도이다. 프로세스(400)는 음성 쿼리 프로세싱 시스템, 예를 들어 시스템(108 또는 250)에 의해 수행될 수 있다. 일부 구현예에서, 프로세스(400)는 서버 시스템, 예를 들어 트래픽 분석기(268)에서 트래픽 분석기에 의해 적어도 부분적으로 수행된다.
단계(402)에서, 음성 쿼리 프로세싱 시스템은 클라이언트 디바이스로부터 로컬 환경에서 클라이언트 디바이스에 의해 검출된 음성 쿼리를 프로세싱하기 위한 요청을 수신한다. 일부 구현예에서, 시스템은 하나 이상의 네트워크를 통해 많은 클라이언트 디바이스들(예를 들어, 수십, 수백, 수천 또는 수백만)과 통신하고, 따라서 많은 음성 쿼리 프로세싱 요청을 수신한다. 음성 쿼리 프로세싱 요청은 일반적으로 시스템이 프로세싱하도록 요청된 단일 음성 쿼리를 식별하지만, 일부 구현예에서 쿼리는 다수의 음성 쿼리들을 식별할 수 있다. 음성 쿼리 프로세싱 시스템은 음성 쿼리를 텍스트로 전사하고 쿼리의 컨텐츠에 의해 표시된 동작을 수행함으로써 음성 쿼리를 프로세싱할 수 있다. 또한, 시스템은 예를 들어, 동작이 성공적으로 수행되었다는 확인, 요청된 동작이 억제되었다는 표시 또는 질문에 대한 답변일 수 있는 음성 쿼리에 대한 응답을 클라이언트 디바이스에 전송할 수 있다. 일부 구현예에서, 음성 쿼리에 대한 오디오 데이터(예를 들어, 압축된 파형 또는 오디오 피처들)는 음성 쿼리 프로세싱 요청 내에 명시적으로 내장된다. 일부 구현예에서, 음성 쿼리에 대한 오디오 데이터는 요청 자체와 별개의 하나 이상의 메시지들에서 서버 시스템으로 전송될 수 있지만, 요청은 오디오 데이터를 제공하는 메시지들을 참조한다. 일부 구현예에서, 음성 쿼리 프로세싱 요청은 서버 시스템이 문제의 음성 쿼리에 대한 오디오 데이터의 사본에 액세스할 수 있는 네트워크 저장 위치를 표시하는 포인터 또는 다른 주소를 포함할 수 있다.
단계(406 내지 410)에서, 시스템은 음성 쿼리 프로세싱 요청들의 세트에 대응하는 음성 쿼리에 대한 다양한 동작을 수행한다. 일부 구현예에서, 동작들은 시스템에 의해 일정 기간 동안 수신된 실질적으로 모든 음성 쿼리들에 대응하는 음성 쿼리들에 대해 수행된다. 다른 구현예에서, 시스템은 수신된 요청을 샘플링하고, 일정 기간 동안 시스템에 의해 수신된 음성 쿼리의 선택된(샘플링된) 서브셋에만 대응하는 음성 쿼리에 대해 단계(406-410)를 수행할 수 있다. 이러한 구현예에서, 시스템은 단계(404)에서 수신된 음성 쿼리 프로세싱 요청들을 샘플링한다. 요청들은 요청이 클라이언트 디바이스들에 의해 전송되거나 서버 시스템에 의해 수신된 시간, 클라이언트 디바이스 또는 요청을 제출한 사용자의 위치 또는 지리적 영역 또는 이들 또는 다른 팩터들의 조합과 같은 하나 이상의 기준에 따라 샘플링될 수 있다.
단계(406)에서, 핑거프린터는 클라이언트 디바이스로부터 수신된 요청에서 식별된 음성 쿼리에 대한 전자 지문을 생성한다. 일부 구현예에서, 지문은 단계(404)로부터 샘플 세트에서 선택되었던 요청들에 대응하는 음성 쿼리들에 대해서만 생성된다. 단계(408)에서, 음성 쿼리들에 대한 지문은 지문 데이터베이스(172)와 같은 데이터베이스에 추가된다. 지문 데이터베이스는 최근 기간(예를 들어, 마지막 10초, 30초, 1분, 2분, 5분, 15분, 30분, 1시간, 4시간, 1일 또는 1주) 동안 시스템에 의해 수신된 음성 쿼리들에 대한 전자 지문의 캐시를 포함할 수 있다.
단계(410)에서, 음성 쿼리 프로세싱 시스템의 충돌 검출기, 예를 들어 충돌 검출기(274)는 지문 데이터베이스에 표현된 각 고유의 음성 쿼리에 대한 지문들 가운데에서 충돌들의 볼륨을 모니터링한다. 충돌은 데이터베이스에 이전에 저장된 지문과 매칭되는 새로운 음성 쿼리에 대한 지문이 데이터베이스에 추가될 때마다 발생한다. 일반적으로, 충돌은 이전에 검출된 음성 쿼리의 새 인스턴스가 식별되었다고 표시한다. 일부 구현예에서, 데이터베이스 내에서 매칭되는 지문의 각 그룹은 데이터베이스에서 매칭되는 지문의 다른 그룹에 의해 표현된 음성 쿼리와 상이한 동일하거나 유사한 음성 쿼리를 표현한다. 즉, 매칭되는 지문 각 그룹은 프로세싱 요청들의 세트 중에서 공통된 고유의 음성 쿼리를 표현한다. 충돌 검출기는 각 고유의 음성 쿼리에 대해 지문 데이터베이스에서 충돌들의 볼륨을 지속적으로 모니터링할 수 있다. 일부 구현예에서, 주어진 음성 쿼리에 대한 충돌들의 볼륨은 시간에 따라 시스템에 의해 검출된 그룹 내의 매칭되는 지문의 수의 카운트에 기초하여 결정된다. 충돌들의 볼륨은 예를 들어, 충돌들의 절대수, 충돌들의 상대수, 시간에 따른 충돌들의 변화율, 시간에 따른 충돌들의 가속도, 또는 이들 중 둘 이상의 조합을 표시할 수 있다.
단계(412)에서, 시스템은 지문 데이터베이스에 표현된 하나 이상의 고유 음성 쿼리를 불법 음성 쿼리로 분류할지 여부를 결정한다. 음성 쿼리는 최근의 기간 동안 음성 쿼리에 대해 검출된 충돌들의 볼륨에 기초하여 불법으로 간주될 수 있다. 예를 들어, 시스템은 최근의 기간에 걸쳐 음성 쿼리에 대해 검출된 충돌의 볼륨이 충돌들의 임계 볼륨을 충족하면 음성 쿼리를 블랙리스팅할 것을 결정할 수 있다. 충돌 검출기는 지문 데이터베이스에서 매칭되는 지문들의 그룹 및 각 그룹에서 매칭되는 지문들의 수의 카운트를 추적할 수 있다. 그룹들이 매칭되는 지문을 갖는 것에 기초하여 분류되므로, 각 그룹은 상이한 음성 쿼리(예를 들어, 동일한 음성 쿼리 또는 충분히 유사한 음성 쿼리)를 표현할 수 있다. 시스템은 각 그룹에서 매칭되는 지문들의 수의 카운트에 기초하여 하나 이상의 그룹들에 대응하는 음성 쿼리를 분류하도록 선택할 수 있다. 예를 들어, 최상위≪(예를 들어, n = 1, 2, 3, 4, 5 또는 그 이상) 높은 카운트를 갖는 그룹에 대한 음성 쿼리가 선택되어 불법적인 것으로 분류될 수 있고 및/또는 임계 카운트를 충족하는 카운트를 갖는 그룹들에 대한 음성 쿼리가 불법적인 것으로 분류될 수 있다.
일부 구현예에서, 충돌들의 볼륨에 부가하여 또는 대안적으로 신호(예를 들어, 그룹 당 매칭되는 지문의 카운트에 기초한 값)가 음성 쿼리를 불법적인 것으로 분류하고 음성 쿼리를 블랙리스팅할지 여부를 결정하는데 적용될 수 있다. 이들 신호는 음성 쿼리에 대한 응답 또는 음성 쿼리에서 요청된 대로 수행된 동작에 대한 사용자 피드백에 대한 정보를 포함할 수 있다. 시스템은 사용자가 음성 쿼리에 대한 응답을 수락, 거부 또는 수정했는지를 표시하는 데이터를 획득할 수 있다. 공통 음성 쿼리의 각각의 인스턴스들에서 요청된 대로 수행된 동작의 응답들 또는 결과들을 수락, 거부 또는 수정한 사용자들의 분산에 따라, 시스템은 음성 쿼리가 블랙리스팅되어야 하는지 또는 요청들의 세트가 규정된 억제 기준을 충족하는지에 관한 결정을 편향시킬 수 있다. 예를 들어, 시스템이 각각 "What's the traffic like today between home and the park?"라는 음성 쿼리가 각각 포함된 많은 요청들을 수신하면, 시스템은 사용자에게 이 질문에 대한 응답을 얻고 싶다는 확인을 프롬프트할 수 있다. 더 많은 사용자가 시스템이 음성 쿼리를 정확하게 수신했음을 확인하고 질문에 대한 응답을 얻고자 한다는 것을 확인하면, 시스템은 음성 쿼리가 불법적일 가능성이 적은 것으로(억제 기준을 충족할 가능성이 적음) 영향을 받을 수 있다. 대조적으로, 프롬프트에 응답하여 더 많은 사용자가 쿼리를 취소 또는 수정함에 따라, 시스템은 음성 쿼리를 불법적인 것으로 분류할 가능성이 높은 것으로(억제 기준을 충족할 가능성이 높음) 영향을 받을 수 있다.
단계(414)에서, 시스템은 서버 시스템 및/또는 클라이언트 디바이스에서 게이트키퍼에 음성 쿼리에 대한 지문을 등록함으로써 불법 음성 쿼리를 블랙리스팅한다. 일부 구현예에서, 시스템은 도 3의 단계(316)에서 설명된 것과 유사한 방식으로 게이트키퍼(예를 들어, 음성 쿼리 억제 서비스)에 지문을 등록한다.
도 5는 서버 시스템에서 불법 음성 쿼리를 검출하고 음성 쿼리 동작을 억제하기 위한 예시적 프로세스(500)를 나타내는 스윔-레인(swim-lane) 다이어그램이다. 일부 구현예에서, 프로세스(500)는 클라이언트 디바이스, 예를 들어 클라이언트(106 또는 200)와 음성 쿼리 프로세싱 서버 시스템, 예를 들어 시스템(108 또는 250) 사이에서 수행된다. 단계(502)에서, 클라이언트 디바이스는 로컬 환경에서 핫워드를 검출한다. 핫워드를 검출하는 것에 응답하여, 디바이스는 활성화되고, 단계(504)에서 핫워드에 후속하는 일련의 단어들을 포함하는 음성 쿼리를 캡처한다. 단계(506)에서, 클라이언트 디바이스는 수신된 음성 쿼리에 대한 오디오 데이터를 사전 프로세싱한다. 선택적으로, 사전 프로세싱은 수신된 음성 쿼리에 대한 오디오 신호의 피처 표현을 생성하는 것을 포함할 수 있다. 단계(508)에서, 클라이언트 디바이스는 음성 쿼리에 대한 음성 쿼리 프로세싱 요청을 생성하여 서버 시스템에 전송한다. 서버 시스템은 단계(510)에서 요청을 수신한다. 요청을 수신하면, 서버 시스템은 음성 쿼리의 전자 지문을 생성한다. 전자 지문은 단계(514)에서 블랙리스팅된 음성 쿼리들의 데이터베이스에 미리 저장된 다른 지문과 비교된다. 수신된 음성 쿼리에 대한 지문이 블랙리스팅된 음성 쿼리에 대응하는 미리 저장된 지문들 중 어느 하나와 매칭되면, 시스템은 수신된 음성 쿼리가 블랙리스팅되었다고 결정하고 수신된 음성 쿼리에 의해 표시된 동작의 수행을 억제한다(단계(518)). 일부 구현예에서, 서버 시스템은 수신된 음성 쿼리에 의해 표시된 동작이 억제되었다는 표시를 클라이언트 디바이스에 전송할 수 있다(단계(520)). 클라이언트 디바이스는 단계(522)에서 표시를 수신한다. 클라이언트는 억제된 음성 쿼리의 표시를 로그에 기록하고, 억제된 동작에 대한 사용자 통지를 생성할 수 있다.
도 6은 클라이언트 디바이스에서 불법 음성 쿼리를 검출하고 음성 쿼리 동작을 억제하기 위한 예시적 프로세스(600)를 나타내는 스윔-레인(swim-lane) 다이어그램이다. 일부 구현예에서, 프로세스(600)는 클라이언트 디바이스, 예를 들어 클라이언트(106 또는 200)와 음성 쿼리 프로세싱 서버 시스템, 예를 들어 시스템(108 또는 250) 사이에서 수행된다. 도 5의 프로세스(500)와 대조적으로, 도 6의 프로세스(600)는 서버 시스템이 아닌 클라이언트 디바이스에서 로컬로 음성 쿼리를 스크리닝한다. 그럼에도 불구하고, 클라이언트 디바이스는 서버 시스템으로부터 블랙리스팅된 음성 쿼리에 대한 모델 전자 지문을 획득할 수 있다. 블랙리스팅된 음성 쿼리들에 대한 지문은 도 3 및 4와 관련하여 기술된 기법을 사용하여 일부 구현예에서 서버 시스템에 의해 생성될 수 있다.
단계(602)에서, 서버 시스템은 블랙리스팅된 음성 쿼리의 지문을 생성한다. 단계(604)에서, 서버 시스템은 음성 쿼리를 스크리닝하는 로컬 게이트키퍼를 갖는 클라이언트 디바이스에 지문을 전송하는 것을 포함하여, 블랙리스팅된 음성 쿼리에 대한 지문을 전송한다. 단계(606)에서, 클라이언트 디바이스는 서버 시스템으로부터 블랙리스팅된 음성 쿼리에 대한 모델 지문을 수신한다. 단계(608)에서, 클라이언트 디바이스는 지문을 로컬 블랙리스팅된 음성 쿼리 데이터베이스에 저장한다. 단계(610)에서, 클라이언트 디바이스는 디바이스의 로컬 환경에서 핫워드의 발언을 검출한다. 핫워드를 검출하는 것에 응답하여, 클라이언트 디바이스는 핫워드에 후속하는 하나 이상의 단어들을 포함하는 음성 쿼리를 활성화하고 캡처한다(단계(612)). 단계(614)에서, 디바이스는 수신된 음성 쿼리의 전자 지문을 생성한다. 전자 지문은 단계(616)에서 블랙리스팅된 음성 쿼리들의 데이터베이스에 미리 저장된 다른 지문과 비교된다. 수신된 음성 쿼리에 대한 지문이 블랙리스팅된 음성 쿼리에 대응하는 미리 저장된 지문들 중 어느 하나와 매칭되면(단계(618)), 디바이스는 수신된 음성 쿼리가 블랙리스팅되었다고 결정하고 수신된 음성 쿼리에 의해 표시된 동작의 수행을 억제한다(단계(620)).
도 7은 본 명세서에 기술된 기법들을 구현하는데 사용될 수 있는 컴퓨터 디바이스(700)와 모바일 컴퓨터 디바이스의 예시를 도시한다. 컴퓨팅 디바이스(700)는 랩톱, 데스크톱, 워크 스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 모바일 컴퓨팅 디바이스는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(700)는 프로세서(702), 메모리(704), 저장 디바이스(706), 메모리(704) 및 다수의 고속 확장 포트(710)에 연결되는 고속 인터페이스(708) 및 저속 확장 포트(714) 및 저장 디바이스(706)에 연결되는 저속 인터페이스(712)를 포함한다. 프로세서(702), 메모리(704), 저장 디바이스(706), 고속 인터페이스(708), 고속 확장 포트(710) 및 저속 인터페이스(712) 각각은 다양한 버스들을 사용하여 상호연결되며, 공통 마더보드에 또는 적절한 다른 방식으로 장착된다. 프로세서(702)는 메모리(704) 또는 저장 디바이스(706)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(700) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(708)에 연결된 디스플레이(716)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(704)는 컴퓨팅 디바이스(700) 내에 정보를 저장한다. 일부 구현예에서, 메모리(704)는 휘발성 메모리 유닛 또는 유닛들이다. 일부 구현예에서, 메모리(704)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(704)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태 일 수 있다.
저장 디바이스(706)는 컴퓨팅 디바이스(700)에 대한 대형 스토리지를 제공할 수 있다. 일부 구현예에서, 저장 디바이스(706)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 컴퓨터 프로그램 물은 메모리(704), 저장 디바이스(706) 또는 프로세서(702)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체에 유형적으로 수록될 수 있다.
고속 인터페이스(708)는 컴퓨팅 디바이스(700)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 인터페이스(712)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일부 구현예에서, 고속 인터페이스(708)는 메모리(704), 디스플레이(716)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(710)에 연결된다. 구현예에서, 저속 인터페이스(712)는 저장 디바이스(706) 및 저속 확장 포트(714)에 연결된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트(714)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(700)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(720)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랩톱 컴퓨터(722)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 또한, 랙 서버 시스템(724)의 일부로서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(700)로부터의 컴포넌트들은 모바일 컴퓨팅 디바이스(750)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(700), 모바일 컴퓨팅 디바이스(750) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들로 구성될 수 있다.
모바일 컴퓨팅 디바이스(750)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(752), 메모리(764), 디스플레이(754)와 같은 입/출력 디바이스, 통신 인터페이스(766) 및 송수신기(768)를 포함한다. 모바일 디바이스(750)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 프로세서(752), 메모리(764), 디스플레이(754), 통신 인터페이스(766) 및 트랜스시버(768) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(752)는 메모리(764)에 저장된 명령어들을 포함하는 모바일 컴퓨팅 디바이스(750) 내의 명령어들을 실행할 수 있다. 프로세서(752)는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서(752)는 예를 들어 사용자 인터페이스들, 모바일 컴퓨팅 디바이스(750)에 의해 실행되는 어플리케이션 및 모바일 컴퓨팅 디바이스(750)에 의한 무선 통신과 같은 모바일 컴퓨팅 디바이스(750)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(752)는 제어 인터페이스(758) 및 디스플레이(754)에 연결된 디스플레이 인터페이스(756)를 통해 사용자와 통신할 수 있다. 디스플레이(754)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(756)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(754)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(758)는 사용자로부터 명령을 수신하고, 프로세서(752)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(762)는 프로세서(752)와의 통신에 제공되어 다른 디바이스들과 모바일 컴퓨팅 디바이스(750)의 근거리 통신을 가능하게할 수 있다. 외부 인터페이스(762)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(764)는 모바일 컴퓨팅 디바이스(750) 내에 정보를 저장한다. 메모리(764)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(774)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(772)를 통해 모바일 컴퓨팅 디바이스(750)에 제공되고 접속될 수 있다. 상기 확장 메모리(774)는 모바일 컴퓨팅 디바이스(750)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 어플리케이션들 또는 모바일 컴퓨팅 디바이스(750)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(774)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(774)는 모바일 컴퓨팅 디바이스(750)에 대한 보안 모듈로서 제공될 수 있고, 모바일 컴퓨팅 디바이스(750)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리((non-volatile random access memory))를 포함할 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 컴퓨터 프로그램 물은 메모리(764), 확장 메모리(774) 또는 프로세서(752)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다. 일부 구현예에서, 컴퓨터 프로그램 물은 예를 들어 트랜스시버(768) 또는 외부 인터페이스(762)를 통해 전파된 신호에서 수신될 수 있다.
모바일 컴퓨팅 디바이스(750)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(766)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(766)는 GSM 음성 호출(이동 통신용 글로벌 시스템), SMS(단문 메시지 서비스), EMS(확장 메시징 서비스) 또는 MMS 메시징(멀티미디어 메시징 서비스), CDMA(코드 분할 다중 접속), TDMA(시분할 다중 접속), PDC(개인 디지털 셀룰러), WCDMA(광대역 코드 분할 다중 접속), CDMA2000 또는 GPRS(일반 패킷 무선 서비스)와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어, 무선 주파수를 사용하는 트랜스시버(768)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(770)은 모바일 컴퓨팅 디바이스(750)상에서 실행되는 어플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 모바일 컴퓨팅 디바이스(750)에 제공할 수 있다.
모바일 컴퓨팅 디바이스(750)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(760)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(760)은 마찬가지로, 예를 들어 모바일 컴퓨팅 디바이스(750)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 모바일 컴퓨팅 디바이스(750)상에서 동작하는 어플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
모바일 컴퓨팅 디바이스(750)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(780)로서 구현될 수 있다. 또한 스마트폰(782), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 어플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 “기계 판독가능 매체”, “컴퓨터 판독가능 매체”는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 “기계 판독가능 신호”는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 명세서의 시스템들, 방법들, 디바이스들 및 다른 기법들이 사용자들에 관한 개인 정보(예: 컨텍스트 데이터)를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 사용자 정보(예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호들 또는 사용자의 현재 위치에 관한 정보)를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 컨텐츠 서버로부터의 컨텐츠를 수신할지 및/또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 정보가 어떻게 수집되는지 그리고 컨텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
비록 다양한 구현예들이 상술되었지만, 다른 수정들도 가능하다. 추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 구현예들도 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨터들의 시스템에 의해, 복수의 클라이언트 디바이스로부터, 상기 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청을 수신하는 단계;
    상기 시스템에 의해, 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다는 것을 식별하는 단계;
    특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다고 식별함에 응답하여, 공통 음성 쿼리를 각각 식별하는 요청들의 세트를 결정하기 위해 상기 특정된 시간 간격 동안 수신된 요청들 중 적어도 일부를 분석하는 단계; 및
    상기 시스템에 의해 후속적으로 수신된 하나 이상의 요청들에서 상기 공통 음성 쿼리에 의해 표시된 동작들의 수행을 억제하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서,
    상기 시스템에 의해, 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 하나 이상의 제2 기준을 만족하는지 여부를 결정하는 단계를 더 포함하며,
    상기 시스템은 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트 상기 하나 이상의 제2 기준을 만족하는 것으로 결정되는지 여부에 기초하여 상기 공통 음성 쿼리의 전자 지문을 생성하도록 선택하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 청구항 2에 있어서, 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 상기 하나 이상의 제2 기준을 만족하는지 여부를 결정하는 단계는 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트의 요청들의 수에 기초한 값이 임계값을 만족하는지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 선행하는 청구항들 중 어느 한 항에 있어서, 상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다는 것을 식별하는 단계는 상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 요청들의 볼륨이 임계 볼륨을 만족한다고 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 선행하는 청구항들 중 어느 한 항에 있어서, 상기 특정된 시간 간격 동안 상기 시스템에 의해 수신된 요청들의 볼륨은 상기 특정된 시간 간격 동안 수신된 요청들의 절대수, 상기 특정된 시간 간격 동안 수신된 요청들의 상대수, 상기 특정된 시간 간격 동안 수신된 요청들의 속도 또는 상기 특정된 시간 간격 동안 수신된 요청들의 가속도 중 적어도 하나를 표시하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 선행하는 청구항들 중 어느 한 항에 있어서, 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트를 결정하기 위해 상기 특정된 시간 간격 동안 수신된 상기 요청들의 적어도 일부를 분석하는 단계는 상기 특정된 시간 간격 동안 수신된 요청들에 의해 식별된 음성 쿼리들의 전자 지문들을 생성하는 것 그리고 상기 전자 지문들 사이의 매치를 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 선행하는 청구항들 중 어느 한 항에 있어서, 상기 공통 음성 쿼리는 클라이언트 디바이스들을 활성화시키는 핫워드 및 상기 핫워드 다음에 오는 하나 이상의 단어들을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 컴퓨터로 구현되는 방법으로서,
    하나 이상의 컴퓨터들의 시스템에 의해, 복수의 클라이언트 디바이스로부터, 상기 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청을 수신하는 단계;
    상기 요청들의 적어도 하나의 서브셋에서 각 요청에 대해, 상기 요청에 의해 식별된 각각의 음성 쿼리의 전자 지문을 생성하는 단계;
    상기 시스템에 의해, 매칭되는 전자 지문들의 그룹을 결정하기 위해, 상기 요청들의 적어도 하나의 서브셋에서 요청들의 각각의 음성 쿼리들의 상기 전자 지문들을 비교하는 단계;
    상기 시스템에 의해, 상기 매칭되는 전자 지문들 그룹들의 적어도 하나의 서브셋에서 각 그룹에 대해, 상기 그룹에서 매칭되는 전자 지문들의 수를 표시하는 각각의 카운트를 결정하는 단계;
    상기 시스템에 의해, 상기 카운트에 기초하여, 상기 매칭되는 전자 지문들의 그룹들 중 하나 이상을 선택하는 단계; 및
    매칭되는 전자 지문들의 선택된 그룹 각각에 대해, 상기 그룹에서 상기 매칭되는 전자 지문들 중 하나 이상에 기초하는 각각의 전자 지문을 음성 쿼리 억제 서비스로 등록하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 청구항 8에 있어서, 상기 요청들의 적어도 하나의 서브셋에서 각 요청에 대해, 상기 요청에 의해 식별된 상기 각각의 음성 쿼리의 전자 지문을 생성하는 단계는 상기 각각의 음성 쿼리에 대한 적어도 오디오 데이터를 구별되게 특징화하는 모델을 생성하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 청구항 9에 있어서, 상기 모델은 상기 각각의 음성 쿼리에 대한 텍스트 전사를 더 특징화하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 청구항 8 내지 10 중 어느 한 항에 있어서, 매칭되는 전자 지문들의 선택된 그룹 각각에 대해, 상기 그룹에 대한 상기 각각의 전자 지문을 상기 음성 쿼리 억제 서비스로 등록하는 단계는 상기 각각의 전자 지문을 블랙리스팅된 음성 쿼리들의 데이터베이스 추가하는 것을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 청구항 8 내지 11 중 어느 한 항에 있어서,
    상기 시스템에 의해, 상기 복수의 클라이언트 디바이스들 중 제1 클라이언트 디바이스로부터 송신된 것으로서, 상기 제1 클라이언트 디바이스의 로컬 환경에서 검출된 제1 음성 쿼리를 프로세싱하기 위한 제1 요청을 수신하는 단계;
    상기 시스템에 의해, 상기 제1 음성 쿼리의 제1 전자 지문을 생성하는 단계;
    상기 시스템에 의해, 상기 제1 전자 지문을 복수의 블랙리스팅된 음성 쿼리들의 전자 지문들과 비교하는 단계;
    상기 시스템에 의해, 상기 제1 전자 지문이 상기 복수의 블랙리스팅된 음성 쿼리들의 전자 지문들 중 임의의 것과 매칭되는지 여부를 결정하는 단계; 및
    상기 제1 음성 쿼리의 제1 전자 지문이 상기 복수의 블랙리스팅된 음성 쿼리들의 전자 지문들 중 적어도 하나와 매칭된다고 결정함에 응답하여, 상기 제1 음성 쿼리에 의해 표시된 동작을 억제하도록 결정하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  13. 청구항 8 내지 12 중 어느 한 항에 있어서, 매칭되는 전자 지문들의 그룹들 중 다른 그룹들보다 많은 수의 매칭되는 전자 지문들을 표시하는 카운트를 가지는 그룹들 중 하나 이상에 기초하여 매칭되는 전자 지문들의 그룹들 중 하나 이상을 선택하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  14. 청구항 8 내지 13 중 어느 한 항에 있어서, 임계 카운트를 만족하는 카운트를 가지는 그룹들 중 하나 이상에 기초하여 매칭되는 전자 지문들의 그룹들 중 하나 이상을 선택하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  15. 청구항 8 내지 14 중 어느 한 항에 있어서, 상기 요청들의 서브셋을 생성하기 위해 상기 수신된 요청들 중 특정한 요청들을 샘플링하는 단계를 더 포함하고, 상기 시스템은 상기 요청들의 서브셋 내에 있지 않은 요청들에 의해 식별된 음성 쿼리들에 대해서가 아닌 상기 요청들의 서브셋에서의 요청들에 의해 식별된 각 음성 쿼리에 대한 전자 지문을 생성하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  16. 청구항 15에 있어서, 상기 요청들의 서브셋을 생성하기 위해 상기 수신된 요청들 중 특정한 요청들을 샘플링하는 단계는 상기 요청들의 서브셋에 포함시키기 위한 요청들을 무작위로 선택하는 것 또는 상기 요청들을 제출한 클라이언트 디바이스들의 하나 이상의 특징들에 기초하여 상기 요청들의 서브셋에 포함시키기 위한 요청들을 선택하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  17. 청구항 8 내지 16 중 어느 한 항에 있어서,
    매칭되는 전자 지문들의 상기 선택된 그룹들 중 제1 그룹에 대해, 매칭되는 전자 지문들의 상기 제1 그룹으로부터 다수의 전자 지문들에 기초하여 상기 제1 그룹에 대해 대표 전자 지문을 생성하는 단계; 및
    상기 대표 전자 지문을 상기 음성 쿼리 억제 서비스에 등록하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  18. 시스템으로서,
    하나 이상의 프로세서들; 및
    명령어들이 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함하며, 상기 명령어들은 상기 하나 이상의 프로세서들에 의해 실행될 때, 동작들을 수행하게 하며, 상기 동작들은:
    복수의 클라이언트 디바이스로부터, 상기 클라이언트 디바이스의 로컬 환경에서 검출된 음성 쿼리들을 프로세싱하기 위한 요청을 수신하는 동작;
    특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다는 것을 식별하는 동작;
    특정된 시간 간격 동안 상기 시스템에 의해 수신된 음성 쿼리를 프로세싱하기 위한 요청들의 수에 기초한 값이 하나 이상의 기준을 만족한다고 식별함에 응답하여, 공통 음성 쿼리를 각각 식별하는 요청들의 세트를 결정하기 위해 상기 특정된 시간 간격 동안 수신된 요청들 중 적어도 일부를 분석하는 분석; 및
    상기 시스템에 의해 후속적으로 수신된 하나 이상의 요청들에서 상기 공통 음성 쿼리에 의해 표시된 동작들의 수행을 억제하는 동작을 포함하는 것을 특징으로 하는 시스템.
  19. 청구항 18에 있어서,
    상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 하나 이상의 제2 기준을 만족하는지 여부를 결정하는 동작을 더 포함하며,
    상기 시스템은 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트 상기 하나 이상의 제2 기준을 만족하는 것으로 결정되는지 여부에 기초하여 상기 공통 음성 쿼리의 전자 지문을 생성하도록 선택하는 것을 특징으로 하는 시스템.
  20. 청구항 18 또는 19에 있어서, 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트가 상기 하나 이상의 제2 기준을 만족하는지 여부를 결정하는 동작은 상기 공통 음성 쿼리를 각각 식별하는 상기 요청들의 세트에서 요청들의 수에 기초한 값이 임계값을 만족하는지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 시스템.
KR1020197032939A 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제 KR102349985B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227000335A KR102449760B1 (ko) 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/593,278 2017-05-11
US15/593,278 US10170112B2 (en) 2017-05-11 2017-05-11 Detecting and suppressing voice queries
PCT/US2018/013144 WO2018208336A1 (en) 2017-05-11 2018-01-10 Detecting and suppressing voice queries

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227000335A Division KR102449760B1 (ko) 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제

Publications (2)

Publication Number Publication Date
KR20190137863A true KR20190137863A (ko) 2019-12-11
KR102349985B1 KR102349985B1 (ko) 2022-01-11

Family

ID=61054580

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227000335A KR102449760B1 (ko) 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제
KR1020197032939A KR102349985B1 (ko) 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227000335A KR102449760B1 (ko) 2017-05-11 2018-01-10 음성 쿼리들 검출 및 억제

Country Status (6)

Country Link
US (4) US10170112B2 (ko)
EP (2) EP3596725B1 (ko)
JP (2) JP6929383B2 (ko)
KR (2) KR102449760B1 (ko)
CN (2) CN110651323B (ko)
WO (1) WO2018208336A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021133155A1 (en) * 2019-12-23 2021-07-01 Mimos Berhad System and method for managing voice query of a presentation
US11967322B2 (en) 2021-05-06 2024-04-23 Samsung Electronics Co., Ltd. Server for identifying false wakeup and method for controlling the same

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10170112B2 (en) * 2017-05-11 2019-01-01 Google Llc Detecting and suppressing voice queries
US10395650B2 (en) * 2017-06-05 2019-08-27 Google Llc Recorded media hotword trigger suppression
US10885919B2 (en) * 2018-01-05 2021-01-05 Nuance Communications, Inc. Routing system and method
US11016957B2 (en) 2018-02-28 2021-05-25 Microsoft Technology Licensing, Llc Sensor data based query results
US10777203B1 (en) * 2018-03-23 2020-09-15 Amazon Technologies, Inc. Speech interface device with caching component
US20190347358A1 (en) * 2018-05-10 2019-11-14 Microsoft Technology Licensing, Llc Query Formulation Using Networked Device Candidates
US10810998B2 (en) * 2018-09-28 2020-10-20 International Business Machines Corporation Custom temporal blacklisting of commands from a listening device
US11165779B2 (en) * 2018-11-29 2021-11-02 International Business Machines Corporation Generating a custom blacklist for a listening device based on usage
EP3906549B1 (en) * 2019-02-06 2022-12-28 Google LLC Voice query qos based on client-computed content metadata
US10659588B1 (en) * 2019-03-21 2020-05-19 Capital One Services, Llc Methods and systems for automatic discovery of fraudulent calls using speaker recognition
US11501761B2 (en) * 2019-04-05 2022-11-15 Samsung Electronics Co., Ltd. Method and apparatus for speech recognition
KR20200117826A (ko) * 2019-04-05 2020-10-14 삼성전자주식회사 음성 인식 방법 및 장치
JP2020181016A (ja) * 2019-04-23 2020-11-05 コニカミノルタ株式会社 情報処理システム、情報処理装置、端末装置、およびプログラム
US11133005B2 (en) * 2019-04-29 2021-09-28 Rovi Guides, Inc. Systems and methods for disambiguating a voice search query
CN112291281B (zh) * 2019-07-09 2023-11-03 钉钉控股(开曼)有限公司 语音播报及语音播报内容的设定方法和装置
CN110474878B (zh) * 2019-07-17 2021-09-24 海南大学 基于动态阈值的DDoS攻击态势预警方法和服务器
US11289086B2 (en) * 2019-11-01 2022-03-29 Microsoft Technology Licensing, Llc Selective response rendering for virtual assistants
US11676586B2 (en) * 2019-12-10 2023-06-13 Rovi Guides, Inc. Systems and methods for providing voice command recommendations
CN111897838A (zh) * 2020-06-28 2020-11-06 中国建设银行股份有限公司 一种交易查询方法、装置、电子设备及其可读存储介质
EP4191577A4 (en) * 2020-09-25 2024-01-17 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE AND ASSOCIATED CONTROL METHOD
WO2022131851A1 (en) * 2020-12-18 2022-06-23 Samsung Electronics Co., Ltd. A method and systems for decoding an audio query
CN113872987A (zh) * 2021-10-18 2021-12-31 深圳追一科技有限公司 一种恶意攻击的防御方法、装置、存储介质和网关
EP4198970A1 (en) * 2021-12-20 2023-06-21 Samsung Electronics Co., Ltd. Computer implemented method for determining false positives in a wakeup-enabled device, corresponding device and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021105A1 (en) * 2014-07-15 2016-01-21 Sensory, Incorporated Secure Voice Query Processing
US20170078324A1 (en) * 2015-09-15 2017-03-16 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
KR20170045123A (ko) * 2015-10-16 2017-04-26 구글 인코포레이티드 핫 워드 인식

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111632A1 (en) * 2002-05-06 2004-06-10 Avner Halperin System and method of virus containment in computer networks
US8166014B2 (en) * 2003-05-02 2012-04-24 Yahoo! Inc. Detection of improper search queries in a wide area network search engine
JP4301102B2 (ja) * 2004-07-22 2009-07-22 ソニー株式会社 音声処理装置および音声処理方法、プログラム、並びに記録媒体
US7933985B2 (en) * 2004-08-13 2011-04-26 Sipera Systems, Inc. System and method for detecting and preventing denial of service attacks in a communications system
US7478429B2 (en) * 2004-10-01 2009-01-13 Prolexic Technologies, Inc. Network overload detection and mitigation system and method
EP1877904B1 (en) * 2005-05-05 2015-12-30 Cisco IronPort Systems LLC Detecting unwanted electronic mail messages based on probabilistic analysis of referenced resources
WO2007033344A2 (en) * 2005-09-14 2007-03-22 Sipera Systems, Inc. System, method and apparatus for classifying communications in a communications system
US20070186282A1 (en) 2006-02-06 2007-08-09 Microsoft Corporation Techniques for identifying and managing potentially harmful web traffic
US8670537B2 (en) * 2006-07-31 2014-03-11 Cisco Technology, Inc. Adjusting audio volume in a conference call environment
US8014308B2 (en) * 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
US8966619B2 (en) * 2006-11-08 2015-02-24 Verizon Patent And Licensing Inc. Prevention of denial of service (DoS) attacks on session initiation protocol (SIP)-based systems using return routability check filtering
US8244752B2 (en) * 2008-04-21 2012-08-14 Microsoft Corporation Classifying search query traffic
KR100987354B1 (ko) * 2008-05-22 2010-10-12 주식회사 이베이지마켓 웹 사이트 내의 부정 코드를 점검하기 위한 시스템 및 그방법
JP5058088B2 (ja) 2008-07-14 2012-10-24 日本電信電話株式会社 サービスコンポーネントの擾乱防止方法、およびサービスコンポーネントの擾乱制御装置
US8255994B2 (en) * 2008-08-20 2012-08-28 Sprint Communications Company L.P. Detection and suppression of short message service denial of service attacks
US8271422B2 (en) * 2008-11-29 2012-09-18 At&T Intellectual Property I, Lp Systems and methods for detecting and coordinating changes in lexical items
US8495742B2 (en) * 2010-05-17 2013-07-23 Microsoft Corporation Identifying malicious queries
US9558677B2 (en) * 2011-04-08 2017-01-31 Wombat Security Technologies, Inc. Mock attack cybersecurity training system and methods
US8812474B2 (en) * 2011-07-14 2014-08-19 Nuance Communications, Inc. Methods and apparatus for identifying and providing information sought by a user
US8561188B1 (en) 2011-09-30 2013-10-15 Trend Micro, Inc. Command and control channel detection with query string signature
US8549645B2 (en) * 2011-10-21 2013-10-01 Mcafee, Inc. System and method for detection of denial of service attacks
US20130263226A1 (en) * 2012-01-22 2013-10-03 Frank W. Sudia False Banking, Credit Card, and Ecommerce System
KR20130140423A (ko) * 2012-06-14 2013-12-24 삼성전자주식회사 디스플레이 장치, 대화형 서버 및 응답 정보 제공 방법
KR20150104615A (ko) * 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
IL231503A0 (en) 2013-03-14 2014-08-31 Verisign Inc Preparing a reliable list of the most active domain name system decoders
US9548047B2 (en) * 2013-07-31 2017-01-17 Google Technology Holdings LLC Method and apparatus for evaluating trigger phrase enrollment
US9002835B2 (en) * 2013-08-15 2015-04-07 Google Inc. Query response using media consumption history
US9443522B2 (en) * 2013-11-18 2016-09-13 Beijing Lenovo Software Ltd. Voice recognition method, voice controlling method, information processing method, and electronic apparatus
US10116676B2 (en) * 2015-02-13 2018-10-30 Time Warner Cable Enterprises Llc Apparatus and methods for data collection, analysis and service modification based on online activity
US10048934B2 (en) * 2015-02-16 2018-08-14 International Business Machines Corporation Learning intended user actions
CN104902070A (zh) * 2015-04-13 2015-09-09 青岛海信移动通信技术股份有限公司 一种移动终端语音控制的方法及移动终端
US9641680B1 (en) * 2015-04-21 2017-05-02 Eric Wold Cross-linking call metadata
US9954891B2 (en) * 2015-05-18 2018-04-24 Verizon Digital Media Services Inc. Unobtrusive and dynamic DDoS mitigation
US9621577B2 (en) * 2015-05-28 2017-04-11 Microsoft Technology Licensing, Llc Mitigation of computer network attacks
US9329762B1 (en) * 2015-06-02 2016-05-03 Interactive Memories, Inc. Methods and systems for reversing editing operations in media-rich projects
US20160373909A1 (en) * 2015-06-17 2016-12-22 Hive Life, LLC Wireless audio, security communication and home automation
US20170024657A1 (en) * 2015-07-21 2017-01-26 Yp Llc Fuzzy autosuggestion for query processing services
US9747926B2 (en) * 2015-10-16 2017-08-29 Google Inc. Hotword recognition
CN106847292B (zh) * 2017-02-16 2018-06-19 平安科技(深圳)有限公司 声纹识别方法及装置
US10170112B2 (en) * 2017-05-11 2019-01-01 Google Llc Detecting and suppressing voice queries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160021105A1 (en) * 2014-07-15 2016-01-21 Sensory, Incorporated Secure Voice Query Processing
US20170078324A1 (en) * 2015-09-15 2017-03-16 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
KR20170045123A (ko) * 2015-10-16 2017-04-26 구글 인코포레이티드 핫 워드 인식

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021133155A1 (en) * 2019-12-23 2021-07-01 Mimos Berhad System and method for managing voice query of a presentation
US11967322B2 (en) 2021-05-06 2024-04-23 Samsung Electronics Co., Ltd. Server for identifying false wakeup and method for controlling the same

Also Published As

Publication number Publication date
EP3596725A1 (en) 2020-01-22
KR102449760B1 (ko) 2022-09-30
JP6929383B2 (ja) 2021-09-01
US10170112B2 (en) 2019-01-01
US20190156828A1 (en) 2019-05-23
JP7210634B2 (ja) 2023-01-23
KR102349985B1 (ko) 2022-01-11
US20180330728A1 (en) 2018-11-15
US20220284899A1 (en) 2022-09-08
JP2021119388A (ja) 2021-08-12
EP3596725B1 (en) 2023-06-21
CN113053391A (zh) 2021-06-29
CN110651323B (zh) 2021-04-09
US20200357400A1 (en) 2020-11-12
EP4235651A2 (en) 2023-08-30
CN110651323A (zh) 2020-01-03
JP2023052326A (ja) 2023-04-11
KR20220008940A (ko) 2022-01-21
EP4235651A3 (en) 2023-09-13
JP2020519946A (ja) 2020-07-02
US11341969B2 (en) 2022-05-24
WO2018208336A1 (en) 2018-11-15
US10699710B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
KR102349985B1 (ko) 음성 쿼리들 검출 및 억제
US10657463B2 (en) Bot-based data collection for detecting phone solicitations
US10446140B2 (en) Method and apparatus for identifying acoustic background environments based on time and speed to enhance automatic speech recognition
US10320780B2 (en) Shared secret voice authentication
US11210461B2 (en) Real-time privacy filter
KR20190077075A (ko) 기록된 미디어 핫워드 트리거 억제
KR20190103308A (ko) 기록된 미디어 핫워드 트리거 억제
US20080294439A1 (en) Speech screening
CN113412516A (zh) 基于客户端计算的内容元数据的话音查询QoS
CN110197663B (zh) 一种控制方法、装置及电子设备
US11165779B2 (en) Generating a custom blacklist for a listening device based on usage
JP7515641B2 (ja) 音声クエリの検出および抑制
Ramasubramanian Speaker spotting: Automatic telephony surveillance for homeland security

Legal Events

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