CN112534771B - 在基于声学的数字助理应用中验证触发关键字的系统和方法 - Google Patents

在基于声学的数字助理应用中验证触发关键字的系统和方法 Download PDF

Info

Publication number
CN112534771B
CN112534771B CN201980002173.8A CN201980002173A CN112534771B CN 112534771 B CN112534771 B CN 112534771B CN 201980002173 A CN201980002173 A CN 201980002173A CN 112534771 B CN112534771 B CN 112534771B
Authority
CN
China
Prior art keywords
data processing
processing system
request
application
links
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201980002173.8A
Other languages
English (en)
Other versions
CN112534771A (zh
Inventor
亚历克斯·麦克斯维尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN112534771A publication Critical patent/CN112534771A/zh
Application granted granted Critical
Publication of CN112534771B publication Critical patent/CN112534771B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • G10L17/24Interactive procedures; Man-machine interfaces the user being prompted to utter a password or a predefined phrase
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • 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/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

提供了在基于声学的数字助理应用中验证触发关键字的系统和方法。系统可以从应用开发者计算设备接收用于生成基于语音的软件应用的请求。请求可以包括与由基于语音的软件应用提供的服务相关联的统一资源定位符(URL)以及与URL相对应的标识符。该系统可以识别包括该URL作为目标的多个链接。该系统可以确定具有相应字符串的多个链接的子集,该相应字符串包括对URL的标识符的引用。数据处理系统可以将多个链接的子集与阈值进行比较以确定匹配级别,并且可以基于匹配级别来确定请求的验证状态。

Description

在基于声学的数字助理应用中验证触发关键字的系统和方法
技术领域
本说明书涉及在基于声学的数字助理应用中验证触发关键字的系统和方法。
背景技术
可以将应用安装在计算设备上。计算设备可以执行应用。
发明内容
本公开的至少一个方面涉及一种用于在基于声学的数字助理应用中验证触发关键字的系统。该系统包括数据处理系统,数据处理系统包括至少一个请求管理组件、至少一个链接管理组件、至少一个请求验证组件、至少一个处理器以及存储器。数据处理系统的至少一个请求管理组件可以从应用开发者计算设备接收用于生成基于语音的软件应用的请求。请求可以包括与基于语音的软件应用提供的服务相关的统一资源定位符(URL)和与URL相对应的标识符。数据处理系统的至少一个链接管理组件可以从多个网页的索引中识别包括该URL作为目标的多个HTTP(或其他协议)链接。每个链接可以包括相应字符串。数据处理系统可以解析所述多个链接中的每个链接的相应字符串,以确定具有包括对与该URL相对应的标识符的引用的相应字符串的所述多个链接的子集。数据处理系统可以将所述多个链接的所述子集与阈值进行比较以确定匹配级别。数据处理系统的至少一个请求验证组件可以基于匹配级别确定请求的验证状态。响应于确定请求的验证状态指示请求被验证,数据处理系统可以将触发关键字分配给基于语音的软件应用。数据处理系统可以从移动计算设备接收与触发关键字相对应的音频输入。响应于接收到与触发关键字相对应的音频输入,数据处理系统可以使基于语音的软件应用在移动计算设备上执行。
数据处理系统可以:基于请求中包括的标识符,确定至少一个替代标识符;以及确定所述多个链接的所述子集以包括至少一个链接,所述至少一个链接的相应字符串包括对替代标识符的引用并且不包括对标识符的引用。
数据处理系统可以:确定阈值以对应于第一百分比;确定第二百分比,该第二百分比包括包含在子集中的所述多个链接的一部分;以及将第二百分比与第一百分比进行比较,以确定匹配级别。
数据处理系统可以基于包括在所述多个链接中的链接的数量来确定阈值的值。
数据处理系统可以使用自然语言处理来解析所述多个链接中的每个链接的相应字符串。
数据处理系统可以:确定与从应用开发者计算设备接收到的请求相关联的风险级别;以及基于风险级别确定阈值的值。
数据处理系统可以:确定基于语音的软件应用的类型;确定与基于语音的软件应用的类型相关联的风险级别;以及基于风险级别确定阈值的值。
数据处理系统可以:向代理计算设备传输对包括该URL作为目标的所述多个链接的请求;以及响应于该请求,从代理计算设备接收所述多个链接。
数据处理系统可以:向服务器传输包括对包括该URL作为目标的所述多个链接的请求的远程过程调用(RPC);以及响应于该RPC,从服务器接收所述多个链接。
数据处理系统可以:确定与从应用开发者计算设备接收的请求中包括的URL相对应的顶级域;识别与顶级域相关联的至少一个子域;以及识别所述多个链接以包括包含与子域相对应的URL作为目标的至少一个链接。
数据处理系统可以:响应于确定验证状态指示请求被验证,生成基于语音的软件应用的至少一部分。
数据处理系统可以:向应用开发者计算设备传输请求的验证状态的通知,以使通知被显示在应用开发者计算设备上。
数据处理系统可以:从第二应用开发者计算设备接收用于生成第二基于语音的软件应用的第二请求,第二请求包括与第二基于语音的软件应用提供的第二服务相关联的第二URL以及与第二URL相对应的第二标识符;从所述多个网页的索引中识别包括第二URL作为目标的第二多个HTTP链接,所述多个第二链接中的每个链接包括相应字符串;解析所述多个第二链接的每个链接的相应字符串,以确定具有包括对与第二URL相对应的第二标识符的引用的相应字符串的所述多个第二链接的子集;将所述多个第二链接的子集与第二阈值进行比较以确定第二匹配级别;基于第二匹配级别,确定第二请求的验证状态;以及,响应于确定第二请求的验证状态指示第二请求未被验证,防止第二触发关键字被分配给第二基于语音的软件应用。
本公开的至少一个方面涉及一种在基于声学的数字助理应用中验证关键字的方法。该方法可以包括:通过包括至少一个请求管理组件、至少一个链接管理组件、至少一个请求验证组件、至少一个处理器和存储器的数据处理系统从应用开发者计算设备接收用于生成基于语音的软件应用的请求。该请求可以包括与基于语音的软件应用提供的服务相关联的URL和与URL相对应的标识符。该方法可以包括:通过数据处理系统的至少一个链接管理组件从多个网页的索引中识别包括该URL作为目标的多个HTTP链接。每个链接可以包括相应字符串。该方法可以包括由数据处理系统对所述多个链接中的每个链接的相应字符串进行解析,以确定具有包括对与该URL相对应的标识符的引用的相应字符串的所述多个链接的子集。该方法可以包括由数据处理系统将所述多个链接的所述子集与阈值进行比较,以确定匹配级别。该方法可以包括由数据处理系统的至少一个请求验证组件基于匹配级别确定请求的验证状态。该方法可以包括:响应于确定请求的验证状态指示请求被验证,由数据处理系统将触发关键字分配给基于语音的软件应用。该方法可以包括由数据处理系统从移动计算设备接收与触发关键字相对应的音频输入。该方法可以包括:响应于接收到与触发关键字相对应的音频输入,由数据处理系统使基于语音的软件应用在移动计算设备上执行。
该方法可以进一步包括:由数据处理系统基于请求中包括的标识符,确定至少一个替代标识符;以及由数据处理系统确定所述多个链接的所述子集以包括至少一个链接,所述至少一个链接的相应字符串包括对替代标识符的引用并且不包括对标识符的引用。
该方法可以进一步包括:由数据处理系统确定阈值以与第一百分比相对应;由数据处理系统确定第二百分比,该第二百分比包括包含在子集中的所述多个链接的一部分;以及由数据处理系统将第二百分比与第一百分比进行比较以确定匹配级别。
该方法可以进一步包括:由数据处理系统基于包括在所述多个链接中的链接的数量来确定阈值的值。
该方法可以进一步包括:由数据处理系统使用自然语言处理来解析所述多个链接中的每个链接的相应字符串。
该方法可以进一步包括:由数据处理系统确定与从应用开发者计算设备接收的请求相关联的风险级别;以及由数据处理系统基于风险级别确定阈值的值。
该方法可以进一步包括:由数据处理系统确定基于语音的软件应用的类型;由数据处理系统确定与基于语音的软件应用的类型相关联的风险级别;以及由数据处理系统基于风险级别确定阈值的值。
在下面详细讨论这些和其他方面以及实现。前述信息和以下详细描述包括各个方面和实现的说明性示例,并且提供了用于理解所要求保护的方面和实现的性质和特性的概述或框架。附图提供了对各个方面和实现的说明和进一步的理解,并且被并入本说明书中并构成本说明书的一部分。
附图说明
附图不旨在按比例绘制。在各个附图中,相同的附图标记和标号指示相同的元件。为了清楚起见,可能并非每个组件都在每个附图中标记。在附图中:
图1是用于在基于声学的数字助理应用中验证触发关键字的示例系统的图示;
图2是用于在基于声学的数字助理应用中验证触发关键字的系统的示例操作的图示;
图3是在基于声学的数字助理应用中验证触发关键字的示例方法的图示;以及
图4是示出了可以用来实现本文所描述和示出的系统和方法的元件的计算机系统的总体架构的框图,该系统和方法包括例如图1和图2中所描绘的系统以及图3中所描绘的方法。
具体实施方式
下面是与基于声学的数字助理应用中的验证触发关键字的方法、装置和系统有关的各种概念以及其实现的更详细描述。可以以许多方式中的任何一种来实现上面介绍的和下面将更详细讨论的各种概念。
本公开总体上涉及在基于声学的数字助理应用中验证触发关键字。应用开发者可能希望开发具有基于声学的组件的软件应用。终端用户可以使用这种应用执行各种功能,所述各种功能可能对应于应用开发者提供的一个或多个服务。用户可以通过提供与关联于应用的触发关键字相对应的音频输入(例如,语音输入)来调用应用。例如,触发关键字可以是与开发应用的应用开发者相关联的实体的名称。
正确验证应用的触发关键字在技术上是具有挑战性的。例如,某些应用可能无法运行或运行不正确。例如,运行不正确的应用可能是包含导致应用向用户返回错误信息的缺陷的应用。运行不正确的应用也可能是欺骗性应用,它可能是指从终端用户的角度来看显现为与可信实体相关联但反而与另一个欺骗性实体相关联的应用。例如,应用开发者可能试图通过开发可能会被打算通过应用与可信实体进行交互的用户错误地执行的欺骗性应用来欺骗性地模仿可信实体。因此,当用户与欺骗性应用交互时,该应用可以调用与欺骗性或恶意实体相关联的服务,而不是与用户期望的可信实体相关联的服务。无法运行或运行不正确的应用可能会消耗在其上执行的设备上(诸如在服务器上或客户端计算设备上)的计算资源,诸如处理器容量和电池寿命。无法运行的应用或运行不正确的应用也会消耗链接访问这些应用的计算机的计算机网络上的网络资源,从而减少了可用带宽并增加了网络延迟。本公开的系统和方法提供了用于验证基于声学的数字助理应用的关键字的技术,其可以帮助减少由无法运行或运行不正确的应用消耗的计算资源和网络资源。
本公开的技术解决方案包括一种数据处理系统,该数据处理系统可以以自动化的方式并且具有高准确度地在基于声学的数字助理应用中验证触发关键字。应用开发者可以使用计算设备来提交对于生成或提供应用的请求。请求可以包括与应用相关联的声明的实体的标识符以及对应的统一资源定位符(URL)或其他形式的资源定位符或资源标识符。数据处理系统可以从应用开发者计算设备接收请求。数据处理系统可以识别引用请求中包含的URL的超文本传输协议(HTTP)链接(或任何其他类型的协议或链接)的集合。例如,链接的集合可以是公共可用或可访问的链接,诸如互联网网页中嵌入的链接。数据处理系统可以从可以由一个或多个远程服务器保持的网页索引中检索链接集。
数据处理系统可以将所识别的链接的集合与请求中包括的标识符进行比较以确定该请求是否为欺骗性的。例如,每个链接可以包括目标URL和文本部分,或者可以与目标URL和文本部分相关联。文本部分可以是字符串。例如,链接的字符串可以是或可以对应于显示在Web浏览器中渲染的网页上的文本,以可视地表示链接。数据处理系统可以处理或解析所识别的链接的集合中的每个链接的字符串,以确定每个链接的字符串是否包括对由应用开发者计算设备使用请求提供的标识符的引用。数据处理系统可以尝试将每个链接的字符串的至少一部分与标识符的至少一部分进行匹配。数据处理系统还可以确定一个或多个替代标识符。例如,替代标识符可以是与应用开发者计算设备作为请求的一部分提供的标识符引用相同实体的标识符。因此,数据处理系统可以确定每个链接是否包括标识符或引用相同实体的替代标识符。在以这种方式处理每个链接之后,数据处理系统可以确定其字符串包括对应用开发者计算设备作为请求的一部分提供的标识符的引用的链接的子集。
数据处理系统可以使用所识别的链接子集来验证来自应用开发者计算设备的请求。例如,数据处理系统可以确定在URL和在请求中从应用开发者计算设备接收的标识符之间的匹配级别。较高或较强的匹配级别可以指示合法(例如,非欺骗性)请求的可能性较大,而较低或较弱的匹配级别可以指示从应用开发者计算设备接收到的请求是欺骗性的可能性较大。数据处理系统可以部分地基于被识别为包括对从应用开发者计算设备接收到的请求的标识符(或引用相同声明的实体的替代标识符)的引用的链接的子集来确定匹配级别。
数据处理系统可以基于匹配级别来确定从应用开发者计算设备接收到的请求的验证状态。例如,数据处理系统可以将匹配级别与一个或多个策略或与一个或多个阈值进行比较,以确定验证状态。验证状态可以是指示从应用开发者计算设备接收的请求是否被批准或被验证的二进制状态。数据处理系统可以响应于验证了请求而使触发关键字与软件应用相关联。作为这种关联的结果,用户可以通过提供与触发关键字相对应的音频输入来调用软件应用。触发关键字可以是或可以包括声明的实体或其变化。因此,当用户提供与声明的实体相对应的音频输入时,用户可以调用已经被验证为合法的(例如,不是欺骗性的)应用。
数据处理系统还可以基于匹配级别来确定从应用开发者计算设备接收到的请求是未验证的。例如,数据处理系统可以确定匹配级别不满足一个或多个策略或一个或多个阈值,并且因此可以拒绝从应用开发者计算设备接收到的未验证的请求。基于请求的匹配级别,未验证的请求可以对应于具有相对较高的是欺骗性的可能性程度(例如,与经验证的请求相比)的请求。响应于确定请求未被验证,数据处理系统可以防止将触发关键字与软件应用相关联。结果,当用户提供与触发关键字对应的音频输入时,数据处理系统将不会使应用被调用。因此,通过自动确定针对应用触发关键字是否应被验证,本公开的系统和方法可以减少响应于未验证的触发关键字而执行的无法运行或运行不正确的应用的数量。通过限制无法运行或运行不正确的应用的执行,本公开的系统和方法减少了专用于此类无法运行或运行不正确的应用的计算资源,例如处理器容量和电力使用,同时还增加了否则将被无法运行或运行不正常的应用消耗的可用网络带宽并减少了计算机网络中的时延。
图1示出了用于在基于声学的数字助理应用中验证触发关键字的示例系统100。系统100可以包括应用交付基本结构。系统100可以包括在线应用商店或市场。系统100可以包括数据处理系统102。数据处理系统102可以经由网络105与应用开发者设备160、第三方设备162或客户端计算设备140中的一个或多个通信。系统100可以还与其他设备通信,所述其他设备诸如内容提供者设备或数字表面设备。
网络105可以包括诸如互联网、局域网、广域网、城域网或其他区域网的计算机网络、内联网、卫星网络以及诸如语音或数据移动电话网的其他通信网络。网络105可以用于访问信息资源,诸如可以在诸如笔记本电脑、台式机、平板电脑、数字助理设备、智能手机、可穿戴设备、便携式计算机或扬声器的至少一个客户端计算设备140上呈现、输出、渲染或显示的网页、网站、域名或URL。例如、经由网络105,客户端计算设备140的用户可以访问由数据处理系统102或应用开发者设备160提供的信息或数据。
网络105可以包括或构成显示网络,例如,与内容放置或搜索引擎结果系统相关联的或有资格包括第三方数字部分作为数字部分放置活动的一部分的互联网上可用的信息资源的子集。数据处理系统102可以使用网络105来访问信息资源,诸如可以由客户端计算设备140呈现、输出、渲染或显示的网页、网站、域名或统一资源定位符。例如,经由网络105,客户端计算设备140的用户可以访问由数据处理系统102或应用开发者设备160提供的信息或数据。
网络105可以是任何类型或形式的网络,并且可以包括以下任何一种:点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光网络)网络、SDH(同步数字体系)网络、无线网络和有线网络。网络105可以包括无线链接,诸如红外信道或卫星频带。网络105的拓扑可以包括总线、星形或环形网络拓扑。网络可以包括使用任何一种或多种用于在移动设备之间进行通信的协议的移动电话网络,该协议包括高级移动电话协议(“AMPS”)、时分多址(“TDMA”)、码分多址(“CDMA”)、全球移动通信系统(“GSM”)、通用分组无线业务(“GPRS”)或通用移动电信系统(“UMTS”)。可以通过不同的协议传输不同类型的数据,或者可以通过不同的协议传输相同类型的数据。
系统100可以包括至少一个数据处理系统102。数据处理系统102可以包括诸如具有处理器的计算设备的至少一个逻辑设备以经由网络105与例如客户端计算设备140或应用开发者设备160或其他联网设备或第三方设备162进行通信。数据处理系统102可以包括至少一个计算资源、服务器、处理器或存储器。例如,数据处理系统102可以包括位于至少一个数据中心中的多个计算资源或服务器。数据处理系统102可以包括多个按逻辑分组的服务器,并且可以有助于分布式计算技术。服务器的逻辑组可以称为数据中心、服务器场或机器场。服务器也可以在地理位置上分散。数据中心或机器场可以作为单个实体被管理,或者机器场可以包括多个机器场。每个计算机场中的服务器可以是异构的——一个或多个服务器或机器可以根据一种或多种类型的操作系统平台进行操作。
机器场中的服务器可以与相关联的存储系统一起存储在高密度机架系统中,并且可以位于企业数据中心中。例如,整合服务器可以以这种方式通过在本地化的高性能网络上放置服务器和高性能存储系统提高系统的可管理性、数据安全性、系统的物理安全性和系统性能。包括服务器和存储系统的所有或某些数据处理系统102组件的集中化,以及将它们与高级系统管理工具耦合在一起,允许更有效地利用服务器资源,这节省了电力和处理需求并减少了带宽使用。
系统100可以包括、访问至少一个第三方设备162或以其他方式与至少一个第三方设备162交互。第三方设备162可以包括诸如具有处理器的计算设备的至少一个逻辑设备以通过网络105例如与计算设备140、数据处理系统102或应用开发者设备160进行通信。第三方设备162可以包括至少一个计算资源、服务器、处理器或存储器。例如,第三方设备162可以包括位于至少一个数据中心中的多个计算资源或服务器。
第三方设备162可以提供基于音频的数字部分,以供客户端计算设备140呈现或显示为音频输出数字部分。数字部分可以包括对商品或服务的提供,诸如陈述“Would youlike me to order you a taxi?(您需要我为您预订出租车吗?)”的基于语音的消息。例如,第三方设备162可以包括用于存储可以响应于基于语音的查询而被提供的一系列的音频数字部分的存储器。第三方设备162还可以将基于音频的数字部分(或其他数字部分)提供给数据处理系统102,在数据处理系统102中将所述基于音频的数字部分(或其他数字部分)存储在数据存储库118中。数据处理系统102可以选择音频的数字部分并提供(或指示第三方设备162将音频数字部分提供)给客户端计算设备140。基于音频的数字部分可以排他地是音频或可以与文本、图像或视频数据组合。
第三方设备162可以包括数据处理系统102、与数据处理系统102接合(interface)或以其他方式与数据处理系统102通信。第三方设备162可以包括客户端计算设备140,与客户端计算设备140接合或以其他方式与客户端计算设备140通信。第三方设备162可以包括计算设备140、与计算设备140接合或以其他方式与计算设备140通信,计算设备140可以是移动计算设备。第三方设备162可以包括应用开发者设备160、与应用开发者设备160接合或以其他方式与应用开发者设备160通信。例如,第三方设备162可以将数字部分提供给客户端计算设备140以由客户端计算设备140执行。第三方设备162可将数字部分提供给数据处理系统102,以供数据处理系统102存储。第三方设备162可将与数字部分有关的规则或参数提供给数据处理系统102。
客户端计算设备140可以下载由应用开发者设备160开发的应用。客户端计算设备140可以经由网络105从数据处理系统102下载应用。客户端计算设备可以从应用交付组件110下载应用。客户端计算设备140可以安装应用。客户端计算设备140可以执行应用。客户端计算设备140可以响应于用户输入或触发事件或条件来执行、启动、触发或以其他方式访问或使用应用。应用可以包括前端组件和后端组件。客户端计算设备140可以执行或提供应用的前端组件,而数据处理系统102或应用开发者设备160提供应用的后端组件。
客户端计算设备140可以包括至少一个传感器144、换能器146、音频驱动器148或预处理器150、与至少一个传感器144、换能器146、音频驱动器148或预处理器150接合或以其他方式与至少一个传感器144、换能器146、音频驱动器148或预处理器150通信。客户端计算设备140可以包括光源142或显示设备152,诸如光指示器、发光二极管(“LED”)、有机发光二极管(“OLED”)或用于提供视觉或光学输出的其他视觉指示器。传感器144可以包括例如环境光传感器、接近传感器、温度传感器、加速计、陀螺仪、运动检测器、GPS传感器、位置传感器、麦克风或触摸传感器。换能器146可以包括扬声器或麦克风。音频驱动器148可以向硬件换能器146提供软件接口。音频驱动器可以执行由数据处理系统102提供的音频文件或其他指令,以控制换能器146以生成对应的声学波或声波。预处理器150可以包括具有硬件的处理单元以检测关键字并基于关键字执行动作。在将词项传输到数据处理系统102以进行进一步处理之前,预处理器150可以过滤掉一个或多个词项或修改词项。预处理器150可以将由麦克风检测到的模拟音频信号转换为数字音频信号,并通过网络105将携带数字音频信号的一个或多个数据分组传输到数据处理系统102。在一些情况下,预处理器150可以响应于检测到执行这样的传输的指令来传输携带输入音频信号的一些或全部的数据分组。指令可以包括例如触发关键字或其他关键字或批准,以将包括输入音频信号的数据分组传输到数据处理系统102。
客户端计算设备140可以与终端用户相关联,该终端用户将语音查询作为音频输入(通过传感器144)输入到客户端计算设备140中并接收可以从数据处理系统102(或应用开发者设备160或第三方设备162)提供到客户端计算设备140的从换能器146(例如,扬声器)输出的计算机生成的语音形式的音频输出。计算机生成的语音可以包括来自真实人的录音或计算机生成的语言。
客户端计算设备140(或计算设备或客户端设备或数字设备)可以包括或可以不包括显示器。例如,客户端计算设备140可以包括有限类型的用户接口,诸如麦克风和扬声器。在一些情况下,计算设备140的主要用户接口可以是麦克风和扬声器或语音接口。例如,客户端计算设备140的主要用户接口可以包括基于语音或基于音频的用户接口。客户端计算设备140可以包括显示器并且具有基于语音或基于音频的主要用户接口。客户端计算设备140的主要用户接口可以是会话的。会话用户接口可以指至少部分地由数据处理系统102的自然语言处理器(“NLP”)组件106驱动或促进的用户接口。
数据处理系统102可以包括具有至少一个计算资源或服务器的内容放置系统。数据处理系统102可以包括至少一个接口104、与至少一个接口104接合或以其他方式与至少一个接口104通信。数据处理系统102可以包括至少一个NLP组件106、与至少一个NLP组件106接合或以其他方式与至少一个NLP组件106通信。数据处理系统102可以包括至少一个直接动作应用编程接口(API)108、与直接动作应用编程接口(API)108接合或与直接动作应用编程接口(API)108通信。接口104、NLP组件106和直接动作API 108可以提供会话API或数字助理功能。会话API或数字助理可以与一个或多个基于语音的接口或各种数字助理设备或表面通信或接合,以便提供数据或接收数据或执行其他功能。
数据处理系统102可以包括至少一个应用交付组件110、与应用交付组件110接合或以其他方式与应用交付组件110通信。数据处理系统102可以包括至少一个请求管理组件112、与至少一个请求管理组件112接合或以其他方式与至少一个请求管理组件112通信。系统102可以包括至少一个链接管理组件114、与至少一个链接管理组件114接合或以其他方式与至少一个链接管理组件114通信。数据处理系统102可以包括至少一个请求验证组件116、与至少一个请求验证组件116接合或以其他方式与至少一个请求验证组件116通信。
接口104、NLP组件106、直接动作API 108、应用交付组件110、请求管理组件112、链接管理组件114和请求验证组件116均可以包括例如可编程逻辑阵列引擎或模块的至少一个处理单元或其他逻辑设备,以与数据存储库118或其他数据库进行通信。接口104、NLP组件106、直接动作API 108、应用交付组件110、请求管理组件112、链接管理组件114、请求验证组件116和数据存储库118可以是数据处理系统102的单独的组件、单个组件或一部分。系统100以及诸如数据处理系统102的系统100的组件可以包括硬件元件,诸如一个或多个处理器、逻辑设备或电路。
数据处理系统102可以获取与多个客户端计算设备140(或计算设备或数字助理设备)相关联的匿名计算机网络活动信息。客户端计算设备140或移动计算设备的用户可以肯定地授权数据处理系统102获取与客户端计算设备140或移动计算设备相对应的网络活动信息。例如,数据处理系统102可以提示计算设备140的用户以取得同意以获取一种或多种类型的网络活动信息。客户端计算设备140可以包括移动计算设备,诸如智能电话、平板电脑、智能手表或可穿戴设备。客户端计算设备140的用户的身份可以保持匿名,并且计算设备140可以与唯一标识符(例如,由数据处理系统或计算设备的用户提供的用户或计算设备的唯一标识符)相关联。数据处理系统可以将每个观察与对应的唯一标识符相关联。
数据处理系统102可以与第三方设备162交互。第三方设备162可以包括或指内容提供者的设备。内容提供者可以建立电子内容活动。电子内容活动可以作为内容数据存储在数据存储库118中。电子内容活动可以指对应于共同主题的一个或多个内容组。内容活动可以包括分层数据结构,该分层数据结构包括内容组、数字部分数据对象和内容选择标准。为了创建内容活动,内容提供者可以为内容活动的活动级别参数指定值。活动级别参数可以包括例如活动名称、用于放置数字部分对象的首选内容网络、用于内容活动的资源的值、内容活动的开始和结束日期、内容活动的持续时间、数字部分对象放置的时间表、语言、地理位置、要在其上提供数字部分对象的计算设备的类型。在一些情况下,印象可以指从数字部分对象的来源(例如,数据处理系统102或内容提供者)中提取数字部分对象的时间,并且印象是可计数的。在一些情况下,由于可能会发生点击欺骗,因此机器人活动作为印象可以被过滤并排除。因此,在一些情况下,印象可以指来自Web服务器的对来自浏览器的页面请求的响应的度量,该度量过滤掉机器人活动和错误代码,并记录在尽可能接近渲染数字部分对象以显示在显示设备140上的机会的位置。在一些情况下,印象可以指可见的或可听见的印象;例如,数字部分对象在客户端计算设备140的显示设备152上至少部分可见(例如20%、30%、30%、40%、50%、60%、70%或更多),或可通过计算设备140的扬声器136可听。点击或选择可以指用户与数字部分对象的交互,诸如对可听印象的语音响应、鼠标单击、触摸交互、手势、摇动、音频交互或键盘点击。转换可以指用户针对数字部分对象采取了预期的动作;例如,购买产品或服务、完成调查、访问与数字部分相对应的实体商店或完成电子交易。
内容提供者可以进一步为内容活动建立一个或多个内容组。内容组包括一个或多个数字部分对象和对应的内容选择标准,诸如关键字、词、词项、短语、地理位置、计算设备的类型、一天中的时间、兴趣、主题或垂直。相同内容活动下的内容组可以共享相同的活动级别参数,但是可以具有针对特定内容组级别参数的定制规范,诸如关键字、否定关键字(例如,在主要内容上存在否定关键字的情况下阻止数字部分的放置)、关键字出价或与出价或内容活动相关联的参数。
为了创建新的内容组,内容提供者可以提供内容组的内容组级别参数的值。内容组级别参数包括例如内容组名称或内容组主题以及不同内容放置机会(例如,自动放置或管理的放置)或结果(例如,点击、印象或转化)的出价。内容组名称或内容组主题可以是一个或多个词项,内容提供者可以使用所述词项来体现要被选择的内容组的数字部分对象的话题或主题以用于显示。例如,汽车经销店可以为其出售的每种品牌的车辆创建不同的内容组,并且可以进一步为其出售的每种型号的车辆创建不同的内容组。汽车经销商可以使用的内容组主题的示例包括例如“品牌A跑车”、“品牌B跑车”、“品牌C轿车”、“品牌C卡车”、“品牌C混合动力车”或例如“品牌D混合动力车”。示例内容活动主题可以是“混合动力车”并且包括例如“品牌C混合动力车”和“品牌D混合动力车”两者的内容组。
内容提供者可以向每个内容组提供一个或多个关键字和数字部分对象。关键字可以包括与和数字部分对象相关联或由数字部分对象标识的产品或服务有关的词项。关键字可以包含一个或多个词项或短语。例如,汽车经销店可以包括“跑车”、“V-6发动机”、“四轮驱动”、“燃油效率”作为内容组或内容活动的关键字。在一些情况下,内容提供者可以指定否定关键字以避免、防止、阻止或禁用在某些词项或关键字上的内容放置。内容提供者可以指定被用于选择数字部分对象的匹配类型,诸如精确匹配、短语匹配或宽泛匹配。
内容提供者可以提供一个或多个关键字以供数据处理系统102使用以选择内容提供者提供的数字部分对象。内容提供者可以识别一个或多个要出价的关键字,并进一步提供各种关键字的出价金额。内容提供者可以提供附加的内容选择标准以供数据处理系统102使用以选择数字部分对象。多个内容提供者可以对相同或不同的关键字出价,并且数据处理系统102可以响应于接收到对电子消息的关键字的指示而运行内容选择过程或广告拍卖。
内容提供者可以提供一个或多个数字部分对象以供数据处理系统102选择。当与资源分配、内容时间表、最高出价、关键字和为内容组指定的其他选择标准匹配的内容放置机会变得可用时,数据处理系统102可以选择数字部分对象。在内容组中可以包括不同类型的数字部分对象,诸如语音数字部分、音频数字部分、文本数字部分、图像数字部分、视频数字部分、多媒体数字部分或数字部分链接。数字部分对象(或数字部分)可以包括例如内容项、在线文件、音频、图像、视频、多媒体内容或赞助内容。在选择了数字部分之后,数据处理系统102可以传输数字部分对象以在计算设备140或计算设备140的显示设备152上进行渲染。渲染可以包括在显示设备上显示数字部分,或者经由计算设备140的扬声器播放数字部分。数据处理系统102可以向计算设备140提供指令以渲染数字部分对象。数据处理系统102可以指示计算设备140或计算设备140的音频驱动器148生成音频信号或声波。
数据存储库118可以包括一个或多个本地或分布式数据库,并且可以包括数据库管理系统。数据存储库118可以包括计算机数据存储或存储器,并且可以存储以下中的一个或多个:应用数据120、验证数据122或策略124以及其他数据。数据存储库118可以将应用数据120、验证数据122或策略124存储在一个或多个数据结构、数据库、数据文件、索引或其他类型的数据存储中。
应用数据120可以包括关于应用的信息。应用数据120可以包括关于由应用开发者设备160提交的应用的信息。应用数据120可以包括与应用相关联的元数据。应用数据120可以包括例如应用的标题、简短描述、详细描述、版本标识符、实体、动作、意图、兼容性信息、大小、应用的类型、应用的类别以及其他信息。应用数据120可以包括应用的唯一标识符,诸如字母数字标识符。应用数据120可以包括关于提供或提交应用的应用开发者的信息。
应用数据120还可以包括与应用的开发者的声明的实体有关的信息,该实体可以是与应用开发者设备160的用户相关联的实体。与声明的实体有关的信息可以是词、短语、名称或任何其他类型的识别声明的实体的信息。声明的实体可以是应用开发者设备160的用户声称附属于其的实体。声明的实体可以是企业、品牌或基于Web的服务。与声明的实体有关的信息在本公开中可以被称为标识符。应用的应用数据120可以存储在应用和标识符之间的关联。应用数据120还可包括应用的一个或多个URL。例如,URL可以是提供与应用相关联的服务的网站的地址。应用可以与具有与应用的URL相对应的地址的服务器设备(例如,服务器170)进行交互、访问具有与应用的URL相对应的地址的服务器设备(例如,服务器170)或以其他方式从具有与应用的URL相对应的地址的服务器设备(例如,服务器170)检索信息。URL可以是与应用开发者设备160的用户相关联的网站的URL。例如,URL可以是与雇用应用开发者设备160的用户的公司相关联的网站的URL。因此,在应用的标识符(例如,声明的实体)和应用的URL之间可以有关联。例如,标识符可以包括匹配或对应于URL的文本的至少一部分的词或短语,或者URL可以包括匹配或对应于标识符的至少一部分的词或短语。
在一些实现中,应用数据120可以包括不同于URL的资源标识符。例如,应用数据120可以包括统一资源标识符(URI)。URI可以是或包含识别特定联网资源的字符串。联网资源可以是可通过诸如网络105的计算机网络访问的任何资源。URI可以根据与特定协议相关联的语法被格式化。语法可以是与web地址相关联的语法。即,URI可以是URL或可以包括URL。也可以根据不同的协议格式化URI。例如,URI可以被格式化为统一资源名称(URN)或资源标识符的任何其他格式。URI可以是与应用开发者设备160的用户相关联的联网资源的URI。例如,URI可以是与雇用应用开发者设备160的用户的公司相关联的联网资源的URI。因此,在应用的标识符(例如,声明的实体)和应用的URI之间可能存在关联。
验证数据122可以包括与应用(例如,验证数据122中包括的应用)的验证状态有关或与用于生成应用的请求相关联的数据。可以从应用开发者设备160接收这样的请求。应用或请求的验证状态可以指示应用开发者设备160为应用提供的声明的实体是否被确定为与也由应用开发者设备160提供的应用的URL匹配或与其相对应。应用或请求的验证状态可以是二进制值,该二进制值可以指示应用或请求已被验证或者应用或请求未被验证。例如,数据处理系统102可以确定由应用开发者设备160提供的应用的声明的实体与由应用开发者设备160提供的应用的URL不匹配。数据处理系统102然后可以存储验证数据122以指示应用或请求未被验证(例如,被否定或拒绝)。验证数据122还可包括数据处理系统102可用来确定应用或用于生成应用的请求的验证状态的信息。例如,验证数据122可以包括指向由应用开发者设备160提供的URL的链接的集合。当链接包括URL作为目标时,链接可以被认为是指向URL。链接可以是到诸如网页的基于Web的资源的HTTP链接。链接也可以以不同的方式被格式化。例如,链接可以是指向、引用或识别联网资源的任何数据或数据表示。可以根据标记语言格式化链接。例如,可以使用超文本标记语言(HTML)格式化链接。也可以使用可扩展标记语言(XML)格式化链接。链接可以包括任何引用机制,用于引用可通过计算机网络访问的数据或其他电子资源。链接可以是绑定到诸如基于Web的文件的特定部分的联网资源的特定部分的锚链接(anchor link)。链接可以是下载链接,该下载链接使文件在选择该链接后被下载。链接可以是电子邮件链接,该电子邮件链接使电子邮件程序在选择该链接后被启动或执行。
链接也可以包括字符串。链接的字符串可以是当在诸如客户端计算设备140的计算设备上的web浏览器中渲染链接时被显示以可视地描述该链接的文本。链接的字符串可以是或可以包括与URL相对应的文本,但这不是必需的。例如,链接的字符串还可以包含相对于链接的目标URL的文本附加或不同的文本。
再次参考图1,每个策略124可以是或可以包括一个或多个规则、启发法、指令或其他信息,数据处理系统102可以使用该一个或多个规则、启发法、指令或其他信息来确定可以从应用开发者设备160接收的用于生成应用的请求的验证状态。数据处理系统102可以基于识别指向应用开发者设备160提供的URL的链接的集合来确定请求的验证状态。数据处理系统102可以使用索引或其他数据库或基于Web的链接的集合来识别这样的链接。链接的集合中的每个链接都可以包含对应于URL的目标。链接的集合还可以包括具有与和URL相关联的子域相对应的目标的链接。例如,URL可以是顶级域,并且包含相关子域的目标的链接也可以包含在链接的集合中。链接的集合中的每个链接也可以包含链接文本。链接文本可以是字符串。例如,链接的链接文本可以是在链接被渲染在Web浏览器内的网页上时在Web浏览器中显示的字符的集合。
数据处理系统102可以解析链接的集合中的每个链接的链接文本,以确定其链接文本引用应用的标识符的链接的子集。策略124可以包括用于基于所标识的链接子集来确定来自应用开发者设备160的请求的验证状态的规则、启发法或指令。例如,数据处理系统102可以基于策略124中的一个或多个将链接的子集与阈值或其他标准进行比较,以确定请求是否应被验证。阈值可以是在链接的子集中包括的链接的数量(例如,最小数量)。阈值可以是百分比。例如,数据处理系统102可以确定由链接的子集表示的具有与从应用开发者设备160接收的URL相对应的目标的链接的总数的百分比,并且该百分比可以与由策略124中的一个或多个指定的预定百分比相比较。确定请求是否被验证的标准可以是动态的。数据处理系统102可以存储任意数量的策略124,并且可以基于请求或应用上的各种特性来选择策略124中的特定一个以用于识别用于确定请求的验证状态的标准。例如,策略124指定的阈值可以基于应用的类型、与应用相关联的风险、由应用开发者设备160提供的URL的流行度或应用的请求的任何其他特性。
数据处理系统102可以包括接口104(或接口组件),以使用例如数据分组来接收和传输信息。接口104可以使用诸如网络协议的一个或多个协议来接收和传输信息。接口104可以包括硬件接口、软件接口、有线接口或无线接口。接口104可以促进将数据从一种格式转换或格式化为另一种格式。例如,接口104可以包括应用编程接口,该应用编程接口包括用于在诸如软件组件的各种组件之间进行通信的限定。接口104可以经由网络105与客户端计算设备140、应用开发者设备160或第三方设备162中的一个或多个通信。
数据处理系统102可以与安装在客户端计算设备140上的诸如app的应用、脚本或程序交互,以将输入音频信号传送到数据处理系统102的接口104并驱动本地客户端计算设备的组件以渲染输出音频信号。数据处理系统102可以接收数据分组或包括或识别音频输入信号的一个或多个其他信号。
数据处理系统102可以包括NLP组件106。例如,数据处理系统102可以执行或运行NLP组件106以接收或获取音频信号并解析音频信号。例如,NLP组件106可以提供在人与计算机之间的交互。NLP组件106可以实现用于理解自然语言并允许数据处理系统102从人类或自然语言输入中得出含义的技术。NLP组件106可以实现基于机器学习的技术,诸如统计机器学习。NLP组件106可以利用决策树、统计模型或概率模型来解析输入音频信号。NLP组件106可以例如执行功能,诸如:命名实体识别(例如,在给定文本流的情况下确定文本中的哪些词项映射到诸如人或地点的专有名称,以及每个此类名称的类型是什么,诸如人员、位置或组织)、自然语言生成(例如,将来自计算机数据库中的信息或语义意图转换为可理解的人类语言)、自然语言理解(例如,将文本转换为更形式化的表示,诸如计算机模块可以操纵的一阶逻辑结构)、机器翻译(例如,将文本从一种人类语言自动翻译为另一种语言)、词素切分(例如,将单词分离为单个词素并识别词素的类别,基于被考虑的语言的词的词素或结构的复杂性这可能是具有挑战性的)、问题回答(例如,确定对人类语言问题的回答,其可以是特定的或开放式的)、语义处理(例如,处理可以在识别单词并对其含义进行编码之后发生,以使所识别的词与具有相似含义的其他词相关联)。
NLP组件106可以通过将输入信号与(例如,在数据仓库118中的)存储的、代表性音频波形集进行比较并选择最接近的匹配来将音频输入信号转换为识别的文本。音频波形集可以存储在数据存储库118或数据处理系统102可以访问的其他数据库中。代表性波形在大的用户集上生成,然后可以用来自用户的语音样本进行增强。在音频信号被转换成识别的文本之后,NLP组件106将文本与词匹配,该词例如通过跨用户的训练或通过手动指定与数据处理系统102可以服务的动作相关联。NLP组件106的方面或功能性可以由数据处理系统102或客户端计算设备140执行。例如,本地NLP组件可以在客户端计算设备140上执行以执行下述方面:将输入音频信号转换为文本,并且通过数据分组将文本传输到数据处理系统102,以进行进一步的自然语言处理。
音频输入信号可以由客户端计算设备140的传感器144或换能器146(例如,麦克风)检测到。经由换能器146、音频驱动器148或其他组件,客户端计算设备140可以(例如,通过网络105)向数据处理系统102提供音频输入信号,在数据处理系统102中该信号可以(例如,通过接口104)被接收并提供给NLP组件106或存储在数据存储库118中。
客户端计算设备140可以包括音频驱动器148、换能器146、传感器144和预处理器150。传感器144可以接收或检测输入音频信号(例如,语音输入)。预处理器150可以耦合到音频驱动器、换能器和传感器。预处理器150可以(例如,通过去除某些频率或抑制噪声)对输入音频信号进行滤波以创建经滤波的输入音频信号。预处理器150可以(例如,使用软件或硬件的数模转换器)将经滤波的输入音频信号转换为数据分组。在一些情况下,预处理器150可以将未滤波的输入音频信号转换为数据分组,并将数据分组传输至数据处理系统102。预处理器150可以将数据分组传输至数据处理系统102,该数据处理系统102包括执行自然语言处理器组件、接口、说话者识别组件和直接动作应用编程接口的一个或多个处理器和存储器。
数据处理系统102可以经由接口从预处理器组件接收包括由传感器检测到的经滤波的(或未滤波的)输入音频信号的数据分组。数据处理系统102可以从输入音频信号中识别声学签名。数据处理系统102可以基于在数据库中的查找(例如,查询数据库)来识别与声学签名相对应的电子账户。响应于对电子账户的识别,数据处理系统102可以建立会话和用于该会话的账户。该账户可以包括具有一个或多个策略的简档。数据处理系统102可以解析输入音频信号以识别请求和与请求相对应的触发关键字。
数据处理系统102可以向客户端计算设备140的预处理器150提供状态。客户端计算设备140可以接收对状态的指示。音频驱动器可以接收简档的状态的指示,并基于该指示生成输出信号。音频驱动器可以将指示转换为输出信号,诸如声音信号或声学输出信号。音频驱动器可以基于由音频驱动器生成的输出信号来驱动换能器146(例如,扬声器)以生成声音。
在一些情况下,客户端计算设备140可以包括光源142。光源可以包括一个或多个LED、灯、显示器或用于提供光学或视觉输出的其他组件或设备。预处理器150可以使光源提供与状态相对应的视觉指示。例如,视觉指示可以是打开的状态指示灯、光的颜色变化、具有一种或多种颜色的光图案或者文本或图像的视觉显示。
NLP组件106可以获取输入音频信号。从输入音频信号中,NLP组件106可以识别至少一个请求或与该请求相对应的至少一个触发关键字。请求可以指示输入音频信号的意图或主题。触发关键字可以指示可能采取的动作的类型。触发关键字可以是向客户端计算设备140指示将随后的音频输入转换成文本并将该文本传输到数据处理系统102以进行进一步处理的唤醒信号或热词。例如,NLP组件106可以解析输入音频信号以识别至少一个用于晚上离开家去参加晚餐和看电影的请求。触发关键字可以包括指示要采取的动作的至少一个词、短语、词根或部分单词或派生词。例如,来自输入音频信号的触发关键字“go(去)”或“to go to(去)”可以指示对于交通的需要。在该示例中,输入音频信号(或所识别的请求)没有直接表达对于交通的意图,但是触发关键字指示交通是对于由请求所指示的至少一个其他动作的辅助动作。
NLP组件106可以解析输入音频信号以识别、确定、检索或以其他方式获取请求和触发关键字。例如,NLP组件106可以将语义处理技术应用于输入音频信号以识别触发关键字或请求。NLP组件106可以将语义处理技术应用于输入音频信号,以识别包括诸如第一触发关键字和第二触发关键字的一个或多个触发关键字的触发短语。例如,输入音频信号可以包括句子“I want a ride to the airport(我想要乘车去机场)”。NLP组件106可以将语义处理技术或其他自然语言处理技术应用于包括该句子的数据分组以识别请求或触发短语“want a ride(想要乘车)”和“airport(机场)”。NLP组件106可以进一步识别多个触发关键字,诸如,want(想要)和ride(乘车)。例如,NLP组件106可以确定触发短语包括触发关键字和第二触发关键字。
NLP组件106可以对输入的音频信号进行滤波以识别触发关键字。例如,携带输入音频信号的数据分组可以包括“It would be great if I could get someone thatcould help me go to the airport(如果我能找到可以帮助我去机场的人,那将是很棒的)”,在这种情况下,NLP组件106可以过滤掉一个或多个词项,如下:“it”、“would”、“be”、“great”、“if”、“I”、“could”、“get”、“someone”、“that”、“could”或“help”。通过过滤掉这些词项,NLP组件106可以更准确和可靠地识别触发关键字,诸如“go to the airport(去机场)”,并确定这是对出租车或乘车共享服务的请求。
在一些情况下,NLP组件106可以确定携带输入音频信号的数据分组包括一个或多个请求。例如,输入音频信号可以包括句子“I want to purchase an audiobook andmonthly subscription to movies(我想购买有声读物和电影的每月订阅)”。NLP组件106可以确定这是对有声读物和流式多媒体服务的请求。NLP组件106可以确定这是单个请求或多个请求。NLP组件106可以确定这是两个请求:对提供有声读物的服务提供者的第一请求;以及对提供电影流的服务提供者的第二请求。在一些情况下,NLP组件106可以将多个确定的请求组合成单个请求,并将该单个请求传输给第三方设备162。在一些情况下,NLP组件106可以将各个请求传输给另一个服务提供者设备,或将两个请求单独地传输到同一第三方设备162。
数据处理系统102可以包括直接动作API 108,直接动作API 108被设计和构造为响应于请求基于触发关键字生成动作数据结构。直接动作API 108可以生成动作数据结构以使应用执行对应的动作。直接动作API 108可以将动作数据结构传输到安装在客户端计算设备140上的应用,以使客户端计算设备140执行对应的动作或发起动作。由直接动作API108生成的动作数据结构可以包括安装在客户端计算设备140上的应用的深层链接。然后,安装在客户端计算设备140上的应用可以执行动作或者与应用开发者设备160或第三方设备162通信以执行动作。
数据处理系统102的处理器可以调用直接动作API 108以执行脚本,该脚本生成数据结构以提供给安装在客户端计算设备140、应用开发者设备160或第三方设备162或其他服务提供者上的应用,以获取数字部分、预订服务或产品,诸如来自汽车共享服务的汽车或有声读物。直接动作API 108可以获取来自数据存储库118的数据,以及在用户同意的情况下从客户端计算设备140接收的数据,以确定位置、时间、用户账户、后勤运输或其他信息以允许第三方设备162执行操作,诸如从汽车共享服务预订汽车。使用直接动作API 108,数据处理系统102还可以与第三方设备162通信以通过在该示例中进行汽车共享接取预订来完成转换。
直接动作API 108可以执行指定动作以满足数据处理系统102确定的终端用户的意图。根据其输入中指定的动作以及数据存储库118中的参数或规则,直接动作API 108可以执行识别满足用户请求所需的参数的代码或会话脚本。直接动作API 108可以执行一个应用来满足或实现终端用户的意图。这样的代码可以例如在数据存储库118中查找诸如家庭自动化服务或第三方服务的名称的附加信息,或者这样的代码可以提供音频输出以在客户端计算设备140处渲染以向最终用户询问问题,诸如请求的出租车的预期目的地。直接动作API 108可以确定参数,并且可以将信息打包到动作数据结构中,然后可以将该动作数据结构发送到诸如应用交付组件110的另一组件以被实现。
直接动作API 108可以从NLP组件106或数据处理系统102的其他组件接收指令或命令,以生成或构造动作数据结构。直接动作API 108可以确定动作的类型以便选择存储在数据存储库118中的模板。动作可以由应用交付组件110提供的并且由应用开发者设备160提交的应用来实现。应用可以执行或促进动作的执行。动作的示例类型可以包括例如观看动作、收听动作、读取动作、导航动作或天气动作。动作的类型可以包括或可以提供例如服务、产品、预订、票务、多媒体内容、有声读物、管理订阅、调整订阅、转移数字货币、进行购买或音乐。动作类型可以进一步包括服务或产品的类型。例如,服务的类型可以包括汽车共享服务、送餐服务、洗衣服务、清洁服务、维修服务、家政服务、设备自动化服务或媒体流服务。产品类型可以包括例如衣服、鞋子、玩具、电子器件、计算机、书籍或珠宝。预订的类型可以包括例如晚餐预订或美发沙龙预约。票务的类型可以包括例如电影票、运动场馆票或机票。在一些情况下,可以基于价格、位置、运输类型、可用性或其他属性对服务、产品、预订或票务的类型进行分类。
NLP组件106可以解析输入音频信号以识别请求和与请求相对应的触发关键字,并向直接动作API 108提供请求和触发关键字,以使得直接动作API响应于请求基于触发关键字来生成第一动作数据结构。在识别了请求的类型后,直接动作API 108可以从模板存储库(例如,数据存储库118)访问对应模板。模板可以包括在结构化数据集中的可以由直接动作API 108填充的字段,以促进通过客户端计算设备140检测到的输入音频请求的操作(诸如派遣出租车以在接取地点接取终端用户并且将终端用户运送到目的地位置的操作)。直接动作API 108或客户端计算设备140可以启动或触发应用来实现输入音频中的请求。例如,汽车共享服务应用可以包括以下字段中的一个或多个:设备标识符、接取位置、目的地位置、乘客人数或服务类型。直接动作API 108可以使用值填充字段。为了使用值填充字段,直接动作API 108可以查验、轮询或以其他方式获取来自计算设备140的一个或多个传感器144或设备140的用户界面的信息。例如,直接动作API 108可以使用诸如GPS传感器的位置传感器检测源位置。直接动作API 108可以通过向计算设备140的用户端提交调查、提示或查询来获取更多信息。直接动作API可以经由数据处理系统102的接口104和计算设备140的用户接口(例如,音频接口、基于语音的用户接口、显示器或触摸屏)提交调查、提示或查询。因此,直接动作API 108可以基于触发关键字或请求为动作数据结构选择模板,使用一个或多个传感器144检测到的或经由用户界面获取的信息填充模板中的一个或多个字段,并且生成、创建或以其他方式构造动作数据结构以促进第三方设备162执行操作。
数据处理系统102可以包括应用交付组件110、与应用交付组件110接合或以其他方式访问应用交付组件110。应用交付组件110还可以与数据处理系统102分离。例如,应用交付组件110可以是与数据处理系统102分离的系统或服务器。数据处理系统102可以通过网络105与应用交付组件110通信。
应用交付组件110可以接收由应用开发者设备160提交的或至少部分地基于应用开发者设备160提供的输入生成的应用。应用交付组件110可以保持应用的一个或多个版本。应用交付组件110可以将应用传输到客户端计算设备140。应用交付组件110可以将应用下载到客户端计算设备140上。应用交付组件110可以保持在线应用商店或市场。应用交付组件110可以管理或保持应用开发者设备160或客户端计算设备140的账户。应用交付组件110可以保持账户的简档。账户或简档可以与唯一标识符相关联。账户可以包括可用于购买或订阅应用的金融账户或令牌账户。应用交付组件110可以通过提供诸如电子金融账户的电子账户信息来提示客户端计算设备140的用户为应用付费。
数据处理系统102可以包括请求管理组件112、与请求管理组件112接合或以其他方式访问请求管理组件112。请求管理组件112可以接收、处理和管理来自应用开发者设备160的请求。请求可以是或可以包括对于数据处理系统102生成应用的请求。请求还可以是或可以包括对数据处理系统102将触发词或短语与应用相关联的请求。请求管理组件112可以与应用开发者设备160通信以索求或以其他方式提示应用开发者设备160提供请求。例如,请求管理组件112可以提供用于在应用开发者设备160上显示的界面(例如,图形用户界面)。应用开发者设备160的用户可以与界面交互以提供请求。界面可以提供当提供请求时应用开发者设备160的用户可以选择的一个或多个可选选项。例如,可以使应用开发者设备160的用户能够与请求一起指示标识符。标识符可以是应用开发者设备160的用户希望与应用相关联的字符串(例如,一系列基于文本的字符)。标识符可以对应于与应用开发者设备160相关联的实体,诸如公司或基于web的服务。通过将标识符与请求一起提供,应用开发者设备160的用户可以向数据处理系统102声明标识符与应用相关联。因此,标识符在本公开中也可以引用声明的实体。
也可以使应用开发者设备160的用户能够与请求一起提供URL。请求管理组件112可以接收URL。URL可以对应于提供与该应用相关联的服务的网站的地址。URL可以是与应用开发者设备160相关联的实体的URL,该实体诸如是与从应用开发者设备160接收到的请求中包括的标识符相对应的声明的实体。URL可以是与雇用应用开发者设备160的用户的公司相关联的网站的URL。请求管理组件112还可以处理,解析或以其他方式从信息中提取请求。例如,请求管理组件112可以处理请求以提取包括在请求中的标识符和URL。还可以使应用开发者设备160的用户能够使用请求提供不同的资源标识符。例如,应用开发者设备160的用户可以替代地提供URI。URI可以是识别特定联网资源的字符串。联网资源可以是可通过诸如网络105的计算机网络访问的任何资源。
数据处理系统102可以包括链接管理组件114、与链接管理组件114接合或以其他方式访问链接管理组件114。链接管理组件114可以基于该请求来识别链接的集合。例如,链接管理组件114可以识别每个链接都引用在由请求管理组件112从应用开发者设备160接收的请求中所包括的URL的链接的集合。链接管理组件114可以基于确定每个链接包括对应于请求的URL的目标来识别链接的集合。链接管理组件114还可以确定一个或多个替代URL。替代URL可以是与作为请求的一部分被接收的URL有关的URL。例如,有关的URL可以是到有关网站的URL或与作为请求的一部分被接收的URL表示的顶级域的子域相对应的URL。链接管理组件114可以识别链接的集合,以包括引用一个或多个替代URL的链接。
链接管理组件114可以使用存储在远程计算设备上的信息来识别链接的集合。例如,诸如服务器170的远程计算设备可以保持网页的索引。链接管理组件114可以向服务器170传输请求,以请求具有作为目标的URL(或有关URL)的链接的集合。这样的索引也可以在数据处理系统102上本地保持。例如,数据存储库118或数据处理系统102的另一个存储元件可以存储与网页的索引相对应的信息。在链接管理组件114从远程计算设备请求链接的集合的情况下,链接管理组件114可以使用一个或多个远程过程调用(RPC)来传输请求。例如,链接管理组件114可以构造对具有与由应用开发者设备160提供的URL相对应的目标的链接的集合的请求作为RPC,该RPC可以被提供给远程计算设备。远程计算设备可以识别链接的集合,并且可以通过将链接的集合返回到链接管理组件114来响应于RPC。远程计算设备可以是或可以包括服务器170。远程计算设备也可以是或可以包括代理设备。服务器170可以实现这种代理设备,或者可以在图1所示的图中被替换为代理设备。因此,在本公开中,服务器170也可以被称为代理170。
在识别出具有与应用开发者设备160所提供的URL相对应的目标的链接的集合之后,链接管理组件114还可以识别具有包括由应用开发者设备160提供的标识符(例如,声明的实体)的相应字符串的链接的子集。例如,由链接管理组件114识别的链接的集合中的每个链接可以包括:目标,该目标可以是该链接所引用的web地址;以及字符串或链接文本,该字符串或链接文本可以是与链接相关联的任何文本信息。字符串可以是根据诸如HTTP的标记语言来格式化的文本,该标记语言在链接在诸如客户端计算设备140的计算设备上执行的Web浏览器中被渲染时,使得字符串显示为链接的可视表示。因此,当用户点击或以其他方式选择字符串时,Web浏览器可以访问对应于链接的目标的网站或其他资源。在本公开中,链接的字符串也可以称为链接文本。
链接管理组件114可以将链接的子集识别为其链接文本包括、关于、引用或以其他方式关联于由应用开发者设备160作为请求的一部分提供的标识符的集合的那些链接。链接管理组件114可以解析相应的字符串。解析字符串可以包括处理或分析字符串以从字符串中提取信息。例如,链接管理组件114可以解析链接的字符串以识别字符串的每个单独的词。链接管理组件114还可以解析字符串以确定字符串的每个单独的字符。链接管理组件114可以通过应用语言处理技术来解析字符串。例如,链接管理组件114可以将(例如,由自然语言处理器组件106提供的)自然语言处理技术应用于字符串以确定诸如字符串的话题、主题或观点的信息。
基于针对给定链接的所解析的字符串,链接管理组件114可以确定由应用开发者设备160提供的标识符是否包含在字符串中或在字符串中被引用。例如,链接管理组件114可以将标识符与链接的字符串的每个单个词进行比较以确定匹配。匹配可以是完全匹配(例如,字符串中的至少一个词精确地与标识符匹配)或部分匹配。当针对链接确定了匹配时,链接可以作为链接子集的一部分被包括。即使当链接的字符串与标识符不完全匹配时,链接管理组件114也可以包括链接作为链接子集的一部分。例如,链接管理组件114可以确定一个或多个替代标识符。替代标识符可以是与作为请求的一部分从应用开发者设备160接收的标识符不同的标识符。例如,替代标识符仍可以引用与标识符相同的实体,但是可以包括一个或多个不同的词。替代标识符可以包括实体的替代拼写、替代名称、缩写等。即使当链接的字符串与原始标识符不匹配时,链接管理组件114也可以确定在替代标识符和链接的字符串之间的匹配。通过将标识符和任何替代标识符与链接的集合中的每个链接的字符串进行比较,链接管理组件114可以确定匹配链接的子集。
数据处理系统102可以包括请求验证组件116、与请求验证组件116接合或以其他方式访问请求验证组件116。请求验证组件116可以确定从应用开发者设备160接收到的请求的验证状态。验证状态可以是二进制状态。例如,请求可以被验证或不被验证。请求验证组件116可以部分地基于由链接管理组件114识别的链接的子集来确定请求是否被验证。例如,链接管理组件114可以将链接的子集与一个或多个阈值进行比较。请求验证组件116可以基于存储在数据存储库118中的一个或多个策略124来选择用于比较的阈值。阈值可以是百分比,诸如包括在链接管理组件114识别的匹配链接的子集中的多个链接的百分比。换句话说,阈值可以是包含与请求一起从应用开发者设备160接收的URL、还包含与和请求一起从应用开发者设备160接收的标识符(或替代标识符)匹配的字符串的链接的最小要求部分。例如,阈值百分比可以是10%、20%、30%、40%、50%、60%、70%、80%或90%。阈值也可以是数字,而不是百分比。
请求验证组件116还可以动态地选择阈值。例如,可以基于其他标准选择阈值。标准可以包括应用的类型。例如,某些类型的应用可以比其他类型存在更高的欺骗风险度。具有较高欺骗风险度的应用可以包括与财务有关的应用(例如,银行应用)或可以接收或访问来自用户的隐私或敏感信息的任何应用。对于确定存在较高风险的应用,请求验证组件116可以选择用于验证请求的较高的阈值。请求验证组件116还可以基于作为请求的一部分从应用开发者设备160接收的URL的流行度来选择用于比较的阈值。例如,可以基于包括URL作为目标的链接的总数来确定流行度。因此,请求验证组件116可以为指定更流行的URL的请求选择与指定较不流行度的URL的请求不同的阈值。例如,请求验证组件116可以为与更流行的URL相关联的请求选择较高的阈值。
请求验证组件116可以将具有与标识符或替代标识符匹配的链接文本(例如,字符串)的链接的子集与阈值进行比较,以确定匹配级别。请求验证组件116可以响应于确定链接的子集满足或超过阈值(例如,包括在链接的子集中的链接的数量大于或等于阈值)来确定请求被验证。响应于确定链接的子集不满足或超过阈值(例如,包括在链接的子集中的链接的数量小于阈值),请求验证组件116还可以确定请求未被验证。未验证的请求也可以称为被拒绝或否定。请求验证组件116可以将请求的验证状态例如作为验证数据122存储在数据存储库118中。
图2是在基于声学的数字助理应用中验证触发关键字的系统200的操作的图示。系统200可以包括图1所示的系统100或图4中所示的系统400的一个或多个组件。系统200可以包括数据处理系统102。数据处理系统102可以与应用开发者设备160通信、与应用开发者设备160接合或以其他方式与应用开发者设备160交互。
在ACT 205,应用开发者设备160可以生成请求。该请求可以是对数据处理系统102构建、生成或提供基于语音的软件应用的请求。请求可以包括与应用有关的信息。例如,请求可以包括与应用相关联的声明的实体的标识符以及对应的统一资源定位符(URL)。URL可以与基于语音的软件应用提供的服务相关联。例如,当基于语音的软件应用随后由诸如客户端计算设备140的用户的终端用户执行时,可以由基于语音的软件应用访问URL。当终端用户随后执行基于语音的软件应用时,URL还可以对应于由基于语音的软件应用访问的一个或多个其他网站的顶级域(例如,子域)。标识符可以对应于应用开发者设备160的用户希望其与应用相关联的触发关键字。存在下述风险:应用开发者设备160可能实际上未与请求中提供的标识符表示的声明的实体相关联,而是尝试欺骗性地模仿声明的实体。例如,将应用与欺骗性声明的实体相关联可能会诱骗用户认为他们在执行应用时正在与不同实体进行交互。因此,对于数据处理系统102而言,检测并防止这种欺骗性请求可能是有用的。
数据处理系统102可以从应用开发者设备160接收请求。请求可以例如由图1所示的请求管理组件112接收。在ACT 210,数据处理系统102或诸如请求管理组件112的其组件可以处理请求以确定或从请求中提取URL和标识符。URL可以是网站或提供与应用相关联的服务的其他基于Web的资源的地址。URL可以是与应用开发者设备160的用户相关联的网站的URL。例如,URL可以是与雇用应用开发者设备160的用户的公司相关联的网站的URL。因此,在应用的标识符(例如,声明的实体)和应用的URL之间可以有关联。数据处理系统102还可以(或替代地)处理请求以确定不同类型的资源标识符,而不是URL。例如,数据处理系统102可以替代地处理该请求以确定URI。URI可以是可以包括一个或多个网站的任何联网资源的标识符。
在ACT 215,数据处理系统102可以基于从请求中提取的信息来生成对链接的集合的请求。例如,所请求的链接可以是指向在ACT 210从请求中提取的URL(或URI或其他资源标识符)的链接。换句话说,数据处理系统102可以生成对具有与从应用开发者设备160接收到的请求的URL相对应的目标的链接的集合的请求。请求可以由链接管理组件114生成。请求可以被格式化为例如指定URL的RPC。链接管理组件114可以将请求传输到服务器170,服务器170可以是或可以包括代理。
在ACT 220,服务器170可以识别数据处理系统102在ACT 215请求的链接的集合。例如,服务器170可以托管或存储链接的索引。链接可以是指向网页或其他联网资源的HTTP链接。链接也可以以不同的方式被格式化。例如,链接可以是指向、引用或识别联网资源的任何数据或数据的表示。可以根据标记语言来格式化链接。例如,可以使用超文本标记语言(HTML)格式化链接。也可以使用可扩展标记语言(XML)格式化链接中的至少一些。链接中的至少一些均可以包括用于引用可经由计算机网络访问的数据或其他电子资源的任何引用机制。链接中的至少一些可以是绑定到诸如基于Web的文件的特定部分的联网资源的特定部分的锚链接。链接中的至少一些可以是使得在选择链接时下载文件的下载链接。链接中的至少一些可以是使得在选择链接后启动或执行电子邮件程序的电子邮件链接。服务器170可以搜索索引以识别具有与请求的URL相对应的目标的所有链接。所识别的链接可以一起形成由数据处理系统102请求的链接的集合。服务器170可以将所标识的链接的集合返回至数据处理系统102。例如,可以将链接的集合以对从数据处理系统102接收到的请求的响应的格式返回至数据处理系统102。
在ACT 225,数据处理系统102可以识别从服务器170接收的链接的集合的子集。请求验证组件116可以确定链接的子集。链接的子集可以包括具有与ACT 210中从请求中提取的标识符匹配的链接文本的链接。例如,每个链接可以包括链接文本,该链接文本可以是字符串。链接的字符串可以是在Web浏览器中渲染链接时显示的字符集。请求验证组件116可以通过解析每个链接的字符串以确定字符串是否包括与标识符匹配的至少一部分来识别要包括在子集中的链接。例如,请求验证组件116可以通过确定标识符作为在链接的字符串中的字符集出现来确定匹配。请求验证组件116还可以确定部分匹配。例如,即使没有出现整个标识符,标识符的至少一部分也可以出现在链接的字符串中。请求验证组件116还可以确定一个或多个替代标识符。替代标识符可以是与在ACT 210中从请求中提取的标识符不同的标识符,但仍引用与从请求中提取的标识符相同的实体。例如,替代标识符可以包括实体的缩写或替代拼写。请求验证组件116可以确定在链接和替代标识符之间的匹配,并且因此可以将链接添加到匹配链接的子集中。
在ACT 230,数据处理系统102可以确定请求的验证状态。例如,可以由请求验证组件116确定验证状态。请求验证组件116可以基于由链接管理组件114确定为与请求的标识符或替代标识符匹配的链接的子集来确定验证状态。例如,请求验证组件116可以将匹配的链接子集中的链接数量与从服务器170接收到的链接的总数进行比较,以确定匹配级别。请求验证组件116可以响应于确定匹配级别满足或超过预定阈值而确定请求被验证。请求验证组件116可以响应于确定匹配级别不满足或超过预定阈值而确定请求未被验证(例如,请求被否定或拒绝)。请求验证组件116还可以向应用开发者设备160提供对请求的验证状态的指示。在ACT 235,应用开发者设备160可以从数据处理系统102接收验证状态,使得应用开发者设备160可以被通知请求的验证状态。
在ACT 240处,数据处理系统102可以基于在ACT 230处确定的验证状态来确定请求是否被验证。数据处理系统102可以响应于确定请求未被验证而在ACT 245处防止触发关键字向应用的分配。例如,触发关键字可以是在ACT 210从请求中提取的标识符。当请求未被验证时,它可以指示应用开发者设备160的用户试图欺骗性地将触发关键字(例如,标识符)与在请求中提供的URL相关联的相对较高的可能性程度。结果,(例如,使用客户端计算设备140)调用这样的应用的用户可以处于使在与应用交互时他们提供的信息被用于恶意或欺骗目的的更大的风险。通过防止将触发关键字分配给应用,数据处理系统102还防止用户通过提供触发关键字来触发应用。因此,可以保护用户免受其请求未被验证的欺骗应用的影响。
数据处理系统102可以在ACT 250处确定请求被验证,并且可以通过将触发关键字分配给应用来响应于该确定。数据处理系统102可以从应用开发者设备160接收应用。数据处理系统102还可以生成或构建应用的至少一部分。分配触发关键字可以包括在触发关键字与应用之间创建关联,该关联使得当例如从客户端计算设备140接收到与触发关键字相对应的音频输入时应用被执行或访问。
在ACT 255,客户端计算设备140的用户可以生成音频输入。音频输入可以是语音输入。例如,客户端计算设备140的用户可以说出可以由客户端计算设备140的诸如传感器144或换能器146的组件检测到的词或短语。音频输入可以对应于与由应用开发者设备160在ACT205处生成的请求相关联的应用的触发关键字。例如,触发关键字可以是或可以包括数据处理系统102在ACT 210从请求中提取的标识符,并且客户端计算设备140所生成的音频输入可以对应于触发关键字。客户端计算设备140可以将音频输入传输到数据处理系统102。当数据处理系统102已经确定从应用开发者设备160接收到的请求没有在ACT 240处未被验证时,触发关键字不与应用相关联,并且音频输入的接收将不会导致应用执行。另一方面,触发关键字与应用相关联,并且在数据处理系统102已经确定在ACT 240处验证了从应用开发者设备160接收到的请求时在ACT 260处音频输入的接收可以使应用执行。
例如,应用的执行可以使与应用相关联的动作在ACT 265被提供。动作可以是对触发关键字或由客户端计算设备140提供的任何其他输入或请求的任何响应。以此方式,数据处理系统102可以使应用的至少一部分在ACT 270处在客户端计算设备140上执行。应用的至少另一部分可以例如在数据处理系统102或另一个远离客户端计算设备140的计算机系统上远程执行。因此,当在ACT 240请求已经被验证时,客户端计算设备140的用户可以通过提供与触发关键字相对应的音频输入来与应用进行交互。当请求未被验证时,触发关键字不与应用相关联,并且客户端计算设备140的用户可能无法通过提供对应于触发关键字的音频输入来与应用进行交互。因此,可以防止用户与由数据处理系统102确定为具有较高欺骗风险的应用进行交互。
图3是在基于声学的数字助理应用中验证触发关键字的示例方法300的图示。方法300可以由图1中描绘的系统100的一个或多个组件、系统或元件、图2中描绘的系统200或图4中描绘的系统400来执行。例如,方法300可以由诸如图1所示的数据处理系统102的数据处理系统执行。在ACT 305,数据处理系统102可以接收用于生成应用的请求。应用可以是基于语音的软件应用。数据处理系统102可以从图1所示的应用开发者设备160接收请求。请求可以包含与应用有关的信息。例如,请求可以包括URL和标识符。标识符可以对应于与应用或与应用开发者设备160相关联的实体。例如,标识符可以对应于应用开发者设备160的用户是其诸如雇员的成员的实体。因此,标识符在本公开中也可以引用声明的实体。标识符可以用作应用开发者设备160的用户希望其与应用相关联的触发关键字。例如,触发关键字可以是当作为来自诸如客户端计算设备140的计算设备的音频输入被提供时使应用执行的关键字。存在下述风险:应用开发者设备160(或其用户)实际上没有与由标识符表示的声明的实体相关联,而是尝试欺骗性地模仿声明的实体。例如,将应用与欺骗的声明的实体相关联可能会诱骗用户认为他们在执行应用时正在与不同实体进行交互。因此,对于数据处理系统102而言,检测并防止这种欺骗性请求可能是有用的。
在ACT 310,数据处理系统可以包括包含在请求中提供的URL的链接的集合。例如,链接可以是引用或指向URL的链接。当链接包含URL作为目标时,链接可以指向URL。链接可以是引用基于Web资源或页面的HTTP链接。诸如请求管理组件112或链接管理组件114的数据处理系统102的组件可以从请求中提取URL。可以通过参考网页索引来确定链接。例如,索引可以托管在诸如服务器170的远程计算设备上。数据处理系统102可以将请求传输到远程计算设备,以使远程计算设备返回包括URL的链接的集合。请求可以被格式化为RPC。
在ACT 315,数据处理系统102可以确定链接的子集,该链接包括对在来自应用开发者设备160的请求中提供的标识符的引用。每个链接可以包括相应的字符串,该字符串可以被称为链接文本。当链接的相关联的链接文本或字符串包括或至少部分匹配标识符时,链接可以被识别为引用该标识符。因此,数据处理系统102可以识别链接的子集以包括具有与从请求中提取的标识符匹配的链接文本的那些链接。数据处理系统102可以通过解析每个链接的字符串以确定字符串是否包括与标识符匹配的至少一部分来识别要包括在子集中的链接。例如,数据处理系统102可以将标识符的字符与链接文本中包括的字符进行比较以确定匹配。数据处理系统102还可以确定部分匹配,诸如其中标识符的字符的子集出现在链接的链接文本中而标识符的完整字符集可能不存在的情况。数据处理系统102还可以确定一个或多个替代标识符。替代标识符可以是与请求中包含的标识符不同但仍引用与从请求中提取的标识符相同的实体的标识符。例如,替代标识符可以包括标识符所引用的实体(例如,声明的实体)的缩写或替代拼写。请求验证组件116可以确定链接和替代标识符之间的匹配,并且因此可以将链接添加到匹配链接的子集。在每个链接已经与标识符(或替代标识符)进行比较以确定匹配之后,可以将所有匹配的链接包括在ACT 315中确定的链接的子集中。
在ACT 320,数据处理系统102可以将链接的子集与阈值进行比较。用于该比较的阈值可以是百分比,诸如在ACT 310中识别的、也包括在ACT 315识别的链接的子集中的多个链接的百分比。换句话说,阈值可以是包括与请求一起从应用开发者设备160接收的URL、还包括与和请求一起从应用开发者设备160接收的标识符(或替代标识符)匹配(或至少部分匹配)的字符串的链接的最小部分。阈值也可以是数字,而不是百分比。因此,可以将在ACT 315处识别的链接的子集中包括的链接数量与阈值数量进行比较,以确定链接的子集中包括的链接数量是否满足(例如,达到或超过)阈值数量。
数据处理系统102可以以动态方式为该比较选择阈值。例如,可以基于各种标准来选择阈值。标准可以包括与请求相关联的应用的类型。例如,某些类型的应用可能比其他类型的应用存在更高的欺骗风险度。具有较高欺骗风险度的应用可以包括与财务有关的应用(例如,银行应用)或可以从用户接收或访问隐私或敏感信息的任何应用。对于被确定存在较高风险的应用,数据处理系统102可以选择较高阈值来用于验证请求。数据处理系统102可以基于应用的类型或其他标准来确定与请求相关联的风险级别。风险级别可以是二进制风险级别(例如,高风险或低风险)。风险级别也可以是数值,诸如零和一之间的十进制值或1和10或1和100之间的整数值。数据处理系统102可以部分基于确定的风险级别来选择用于比较的阈值。例如,数据处理系统102可以为较高的风险级别选择较高的阈值,从而需要较高的匹配级别来验证较风险的请求。
在ACT 325,数据处理系统102可以确定请求的验证状态。可以基于在ACT 320处执行的比较来确定验证状态。例如,数据处理系统102可以将具有与标识符或替代标识符匹配的链接文本(例如,字符串)的链接的子集与阈值进行比较以确定匹配级别。当链接的子集达到或超过阈值(例如,链接的子集中包括的链接数量大于或等于阈值)时,数据处理系统102可以确定请求被验证。然而,当链接的子集不达到或超过阈值(例如,包含在链接的子集中的链接数量小于阈值)时,数据处理系统102可以确定请求未被验证。未被验证的请求也可以称为被拒绝或否定。数据处理系统102可以将请求的验证状态存储在例如数据存储库118中。数据处理系统102还可以将验证状态通知给应用开发者设备160。
当请求被验证时(例如,如所确定的验证状态所指示的那样),数据处理系统102可以在ACT 330处向应用分配触发关键字。数据处理系统102可以从应用开发者设备160接收应用的至少一部分。数据处理系统102还可以生成或构建应用本身的至少一部分。将触发关键字分配给应用可以包括在触发关键字与应用之间创建关联,该关联使得当例如从客户端计算设备140接收到与触发关键字相对应的音频输入时应用被执行或访问。因此,也可以将表示触发关键字的音频数据分配给应用。数据处理系统102可以基于在ACT 305处接收到的请求中包括的信息来确定关键字。例如,数据处理系统102可以将触发关键字确定为在请求中所包括的标识符。数据处理系统102可以将触发关键字和应用之间的关联存储在例如数据存储库118中。另一方面,当请求未被验证时,数据处理系统102可以防止关键字与应用相关联。
在ACT 335,数据处理系统102可以接收与触发关键字相对应的音频输入。可以从诸如客户端计算设备140的计算设备接收音频输入。音频输入可以指示客户端计算设备140的用户希望执行、访问或以其他方式与应用交互。例如,客户端计算设备140的用户可能已经下载或以其他方式获取了应用,或者可以访问在数据处理系统102处执行的应用,并且可能希望通过说出触发关键字与用户的客户端计算设备140处的应用进行交互。因此,计算设备140可以执行应用,或者可以经由诸如数据处理系统102的执行应用的远程计算设备来访问应用。计算设备140还可以访问应用的一部分,同时诸如数据处理系统102的远程计算设备执行应用的另一部分。数据处理系统102可以例如使用自然语言处理器组件106来解析音频输入,以确定音频输入对应于在ACT 330处分配给应用的触发关键字。当数据处理系统102确定音频输入对应于触发关键字时,数据处理系统102可以在ACT 340处使执行应用。例如,数据处理系统102可以使应用在从其中接收与触发关键字相对应的音频输入的计算设备(例如,客户端计算设备140)上执行。数据处理系统102还可以使应用在诸如数据处理系统102本身或服务器170的不同的计算设备上执行。在这种情况下,可以将来自应用的输出提供给客户端计算设备140,以允许客户端计算设备140与应用进行远程交互。数据处理系统102还可以使应用的一部分从客户端计算设备140远程执行,而可以在客户端计算设备140上执行应用的另一部分。
因此,使用方法300,客户端计算设备140的用户能够调用、访问或执行先前由数据处理系统102针对潜在欺骗评估过的应用。因为数据处理系统102可以基于相关联的请求未被验证来防止向应用分配触发关键字,所以可以保护客户端计算设备140的用户免于通过提供与触发关键字相对应的语音输入来调用这种应用。数据处理系统102仅在请求被验证之后将触发关键字与应用相关联,从而保护客户端计算设备140的用户免于与欺骗性应用错误地交互。
方法300还可以被重复任何次数以验证附加应用的触发关键字。例如,数据处理系统102可以接收来自诸如应用开发者设备160的开发者计算设备的后续请求。数据处理系统102可以执行与以上结合方法300所述的步骤相似的步骤。在一些情况下,数据处理系统102可以确定未验证后续请求,并且因此可以防止将触发关键字分配给与后续请求相对应的应用。
图4是示例计算机系统400的框图。计算机系统400也可以称为计算设备400。计算机系统400可以包括或用于实现系统100或其组件,诸如数据处理系统102。数据处理系统102可以包括智能个人助理或基于语音的数字助理。计算机系统400包括:总线405或用于传送信息的其他通信组件;以及耦合到总线405以用于处理信息的处理器410或处理电路。计算机系统400还可包括耦合到总线以处理信息的一个或多个处理器410或处理电路。计算机系统400还包括:耦合到总线405以存储信息的主存储器415,诸如随机存取存储器(RAM)或其他动态存储设备;以及将由处理器410执行的指令。主存储器415可以是数据存储库118或包括数据存储库118。主存储器415也可以用于在由处理器410执行指令期间存储位置信息、临时变量或其他中间信息。计算机系统400还可以包括耦合到总线405以存储处理器410的静态信息和指令的只读存储器(ROM)420或其他静态存储设备。诸如固态设备、磁盘或光盘的存储设备425可以耦合到总线405,以持久存储信息和指令。存储设备425可以包括数据存储库118或作为其一部分。
计算机系统400可以经由总线405耦合到显示器435,诸如液晶显示器或有源矩阵显示器,以向用户显示信息。诸如包括字母数字和其他键的键盘的输入设备430可以耦合到总线405,用于将信息和命令选择传送给处理器410。输入设备430可以包括触摸屏显示器435。输入设备430可以还包括光标控件,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送给处理器410并用于控制显示器435上的光标移动。显示器435可以是例如数据处理系统102、客户端计算设备140或图1的其他组件的一部分。
本文描述的过程、系统和方法可以由计算机系统400响应于处理器410执行包含在主存储器415中的指令的布置来实现。这样的指令可以从诸如存储设备425的另一计算机可读介质读入主存储器415中。执行包含在主存储器415中的指令的布置使计算机系统400执行本文所述的说明性过程。也可以采用在多处理布置中的一个或多个处理器来执行包含在主存储器415中的指令。可以使用硬连线电路代替软件指令以及与本文所述的系统和方法一起与软件指令结合。本文描述的系统和方法不限于硬件电路和软件的任何特定组合。
虽然在图4中描述了示例计算系统,但是包括在本说明书中描述的操作的主题可以实现在其他类型的数字电子电路中或在包括在本说明书中公开的结构及其等同结构的计算机软件、固件或硬件或者它们的一个或多个组合中。
对于此处讨论的系统收集有关用户的个人信息或可以利用个人信息的情况,可以为用户提供机会来控制是否程序或特征可以收集个人信息(例如,有关用户的社交网络、社交行为或活动、用户的偏好或用户的位置的信息),或控制是否或如何从内容服务器或其他与用户相关性更高的数据处理系统接收内容。另外,某些数据可以在存储或使用之前以一种或多种方式匿名化,以便在生成参数时移除个人可识别信息。例如,可以对用户的身份进行匿名化,以便无法针对用户确定任何个人可识别信息,或者可以在获得位置信息的情况下将用户的地理位置概括化(诸如如,概括化到城市、邮政编码或州的级别),因此无法确定用户的特定位置。因此,用户可以控制如何收集有关他或她的信息以及如何由内容服务器使用该信息。
本说明书中描述的主题和操作可以实现在数字电子电路或包括本说明书中公开的结构及其等同结构的计算机软件、固件或硬件或者它们的一种或多种的组合中。本说明书中描述的主题可以被实现为被编码在一个或多个计算机存储介质上的一个或多个计算机程序,例如,计算机程序指令的一个或多个电路,以由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或它们中的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质还可以是或包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)。本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收到的数据执行的操作。
术语“数据处理系统”、“计算设备”、“组件”或“数据处理设备”涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、片上系统或上述的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基本结构,诸如web服务、分布式计算和网格计算基本结构。例如,直接动作API 108或NLP组件106和其他数据处理系统102组件可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、app、脚本或代码)可以用任何形式的编程语言编写,并且可以以任何形式部署,该编程语言包括编译或解释语言、声明性或过程语言,该形式包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以对应于文件系统中的文件。计算机程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文件中的一个或多个脚本)、专用于所讨论程序的单个文件中或多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一台计算机或位于一个站点上或分布在多个站点上并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器(例如,数据处理系统102的组件)执行,以通过对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,专用逻辑电路例如是FPGA(现场可编程门阵列)或ASIC(专用集成电路)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如:半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
在本文描述的主题可以实现在计算系统中,该计算系统包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括诸如具有用户可以通过其与本说明书中描述的主题的实现交互的图形用户界面或web浏览器的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连,该数据通信例如是通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,互联网)和对等网络(例如,自组织对等网络)。
诸如系统100或系统400的计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络(例如,网络105)进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实现中,服务器将数据(例如,表示数字部分的数据分组)传输到客户端设备(例如,出于向与客户端设备交互的用户显示数据并从其接收用户输入的目的)。可以在服务器处从客户端设备接收(例如,由数据处理系统102从客户端计算设备140或应用开发者设备160或第三方设备162接收)在客户端设备处生成的数据(例如,用户交互的结果)。
虽然在附图中以特定顺序描绘了操作,但是不需要以所示的特定顺序或以依序来执行这样的操作,并且不需要执行所有示出的操作。可以以不同的顺序执行本文描述的动作。
各个系统组件的分离不需要在所有实现中都分离,并且所描述的程序组件可以被包括在单个硬件或软件产品中。例如,NLP组件106或直接动作API 108可以是单个组件、app或程序,或具有一个或多个处理电路的逻辑设备或数据处理系统102的一个或多个服务器的一部分。
现在已经描述了一些说明性实现,很明显,前述内容是说明性的而不是限制性的,已经以示例的方式给出。特别地,虽然本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是可以以其他方式组合那些动作和那些元件以实现相同的目标。结合一个实现所讨论的动作、要素和特征不旨在被排除在其他实现中的类似角色或实现之外。
在此使用的措词和术语是出于描述的目的,而不应被认为是限制性的。本文中“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“其特征在于”及其变体的使用意在涵盖其后列出的项、其等同物以及其他项目以及排他地仅由其后列出的项组成的替代实现。在一种实现中,本文描述的系统和方法由所描述的元件、动作或组件中的一个或多个的一个、每个组合组成。
对本文中以单数形式提及的系统和方法的实现或元素或动作的任何引用也可以涵盖包括多个这些元素的实现,并且在本文中以复数形式对任何实现或元素或动作的任何引用也可以包含仅包含单个元素的实现。单数或复数形式的引用无意将当前公开的系统或方法、它们的组件、动作或元件限制为单个或多个配置。对基于任何信息、行为或元素的任何动作或元素的引用可以包括其中动作或元素至少部分基于任何信息、松祚或元素的实现。
本文公开的任何实现可以与任何其他实现或实施例组合,并且对“实现”、“一些实现”或“一个实现”等的引用不一定是互斥的,并且旨在指示结合实现描述的特定的特征、结构或特性可以被包括在至少一种实现或实施例中。如本文所使用的这样的术语不一定全部指代相同的实现。任何实现可以以与本文公开的方面和实现一致的任何方式包含性地或排他地与任何其他实现相结合。
对“或”的引用可以被解释为包括性的,使得使用“或”描述的任何术语可以指示单个、一个以上以及所有所描述术语中的任何一个。对“‘A’和‘B’中的至少一个”的引用只能包括‘A’、仅‘B’以及‘A’和‘B’。结合“包含”或其他开放式术语使用的此类引用可能包括其他项。
在附图、详细说明或任何权利要求中的技术特征之后是附图标记,已经包括了附图标记以增加附图、详细说明和权利要求的可理解性。因此,附图标记或它们的存在都对任何权利要求元素的范围没有任何限制作用
本文描述的系统和方法可以以其他特定形式来体现而不背离其特征。前述实现是说明性的,而不是限制所描述的系统和方法。因此,本文所描述的系统和方法的范围由所附权利要求而不是前述描述来指示,并且在权利要求的等同物的含义和范围内的改变被包含在其中。

Claims (20)

1.一种用于在基于声学的数字助理应用中验证触发关键字的数据处理系统,所述数据处理系统包括至少一个请求管理组件、至少一个链接管理组件、至少一个请求验证组件、至少一个处理器以及存储器,所述数据处理系统被配置为:
由所述至少一个请求管理组件从应用开发者计算设备接收用于生成基于语音的软件应用的请求,所述请求包括与由所述基于语音的软件应用提供的服务相关联的统一资源定位符(URL)和与所述URL相对应的标识符;
通过所述至少一个链接管理组件从多个网页的索引中识别包括所述URL作为目标的多个超文本传输协议(HTTP)链接,每个链接包括相应字符串;
解析所述多个HTTP链接中的每个链接的所述相应字符串,以确定具有包括对与所述URL相对应的所述标识符的引用的相应字符串的所述多个HTTP链接的子集;
将所述多个HTTP链接的所述子集与阈值进行比较以确定匹配级别;
由所述至少一个请求验证组件基于所述匹配级别确定所述请求的验证状态;
响应于确定所述请求的所述验证状态指示所述请求被验证,将触发关键字分配给所述基于语音的软件应用;
从移动计算设备接收与所述触发关键字相对应的音频输入;以及
响应于接收到与所述触发关键字相对应的所述音频输入,使所述基于语音的软件应用在所述移动计算设备上执行。
2.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
基于所述请求中包括的所述标识符,确定至少一个替代标识符;以及
确定所述多个HTTP链接的所述子集以包括至少一个链接,所述至少一个链接的相应字符串包括对所述替代标识符的引用并且不包括对所述标识符的引用。
3.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
确定所述阈值以与第一百分比相对应;
确定第二百分比,所述第二百分比包括包含在所述子集中的所述HTTP链接相比于所述多个HTTP链接的部分;以及
将所述第二百分比与所述第一百分比进行比较,以确定所述匹配级别。
4.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为基于包括在所述多个HTTP链接中的链接的数量来确定所述阈值的值。
5.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为使用自然语言处理来解析所述多个HTTP链接中的每个链接的所述相应字符串。
6.根据权利要求1所述的系统其中,所述数据处理系统进一步被配置为:
确定与从所述应用开发者计算设备接收到的所述请求相关联的风险级别;以及
基于所述风险级别确定所述阈值的值。
7.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
确定所述基于语音的软件应用的类型;
确定与所述基于语音的软件应用的所述类型相关联的风险级别;以及
基于所述风险级别确定所述阈值的值。
8.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
向代理计算设备传输对包括所述URL作为所述目标的所述多个HTTP链接的请求;以及
响应于所述请求,从所述代理计算设备接收所述多个HTTP链接。
9.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
向服务器传输远程过程调用(RPC),所述远程过程调用包括对包括所述URL作为目标的所述多个HTTP链接的请求;以及
响应于所述RPC,从所述服务器接收所述多个HTTP链接。
10.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
确定与从所述应用开发者计算设备接收的所述请求中包括的所述URL相对应的顶级域;
识别与所述顶级域相关联的至少一个子域;以及
识别包括包含与所述子域相对应的URL作为目标的至少一个链接的所述多个HTTP链接。
11.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
响应于确定所述验证状态指示所述请求被验证,生成所述基于语音的软件应用的至少一部分。
12.根据权利要求1所述的系统,其中,所述数据处理系统进一步被配置为:
向所述应用开发者计算设备传输所述请求的所述验证状态的通知,以使所述通知被显示在所述应用开发者计算设备上。
13.根据权利要求1-12中任一项所述的系统,其中,所述数据处理系统进一步被配置为:
从第二应用开发者计算设备接收用于生成第二基于语音的软件应用的第二请求,所述第二请求包括与所述第二基于语音的软件应用提供的第二服务相关联的第二URL以及与所述第二URL相对应的第二标识符;
从所述多个网页的所述索引中识别包括所述第二URL作为目标的第二多个HTTP链接,所述第二多个HTTP链接中的每个链接包括相应字符串;
解析所述第二多个HTTP链接的每个链接的所述相应字符串,以确定具有包括对与所述第二URL相对应的所述第二标识符的引用的相应字符串的所述第二多个HTTP链接的子集;
对所述第二多个HTTP链接的所述子集与第二阈值进行比较以确定第二匹配级别;
基于所述第二匹配级别,确定所述第二请求的验证状态;以及
响应于确定所述第二请求的所述验证状态指示所述第二请求未被验证,防止第二触发关键字被分配给所述第二基于语音的软件应用。
14.一种在基于声学的数字助理应用中验证关键字的方法,包括:
由包括至少一个请求管理组件、至少一个链接管理组件、至少一个请求验证组件、至少一个处理器和存储器的数据处理系统从应用开发者计算设备接收用于生成基于语音的软件应用的请求,所述请求包括与由所述基于语音的软件应用提供的服务相关联的统一资源定位符(URL)和与所述URL相对应的标识符;
由所述数据处理系统的所述至少一个链接管理组件从多个网页的索引中识别包括所述URL作为目标的多个超文本传输协议(HTTP)链接,每个链接包括相应字符串;
由所述数据处理系统对所述多个HTTP链接中的每个链接的所述相应字符串进行解析,以确定具有包括对与所述URL相对应的所述标识符的引用的相应字符串的所述多个HTTP链接的子集;
由所述数据处理系统将所述多个HTTP链接的所述子集与阈值进行比较,以确定匹配级别;
由所述数据处理系统的所述至少一个请求验证组件基于所述匹配级别确定所述请求的验证状态;
响应于确定所述请求的所述验证状态指示所述请求被验证,由所述数据处理系统将触发关键字分配给所述基于语音的软件应用;
由所述数据处理系统从移动计算设备接收与所述触发关键字相对应的音频输入;以及
响应于接收到与所述触发关键字相对应的所述音频输入,由所述数据处理系统使所述基于语音的软件应用在所述移动计算设备上执行。
15.根据权利要求14所述的方法,进一步包括:
由所述数据处理系统基于所述请求中包括的所述标识符,确定至少一个替代标识符;以及
由所述数据处理系统确定所述多个HTTP链接的所述子集以包括至少一个链接,所述至少一个链接的相应字符串包括对所述替代标识符的引用并且不包括对所述标识符的引用。
16.根据权利要求14所述的方法,进一步包括:
由所述数据处理系统确定所述阈值以与第一百分比相对应;
由所述数据处理系统确定第二百分比,所述第二百分比包括包含在所述子集中的所述HTTP链接相比于所述多个HTTP链接的部分;以及
由所述数据处理系统将所述第二百分比与所述第一百分比进行比较以确定所述匹配级别。
17.根据权利要求14所述的方法,进一步包括:
由所述数据处理系统基于包括在所述多个HTTP链接中的链接的数量来确定所述阈值的值。
18.根据权利要求14所述的方法,包括:
由所述数据处理系统使用自然语言处理来解析所述多个HTTP链接中的每个链接的所述相应字符串。
19.根据权利要求14所述的方法,包括:
由所述数据处理系统确定与从所述应用开发者计算设备接收的所述请求相关联的风险级别;以及
由所述数据处理系统基于所述风险级别确定所述阈值的值。
20.根据权利要求14至19中任一项所述的方法,包括:
由所述数据处理系统确定所述基于语音的软件应用的类型;
由所述数据处理系统确定与所述基于语音的软件应用的所述类型相关联的风险级别;以及
由所述数据处理系统基于所述风险级别确定所述阈值的值。
CN201980002173.8A 2019-07-17 2019-07-17 在基于声学的数字助理应用中验证触发关键字的系统和方法 Active CN112534771B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/042263 WO2021010997A1 (en) 2019-07-17 2019-07-17 Systems and methods to verify trigger keywords in acoustic-based digital assistant applications

Publications (2)

Publication Number Publication Date
CN112534771A CN112534771A (zh) 2021-03-19
CN112534771B true CN112534771B (zh) 2024-04-19

Family

ID=67515144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980002173.8A Active CN112534771B (zh) 2019-07-17 2019-07-17 在基于声学的数字助理应用中验证触发关键字的系统和方法

Country Status (5)

Country Link
US (3) US11217243B2 (zh)
EP (2) EP4134842A1 (zh)
KR (2) KR20240067283A (zh)
CN (1) CN112534771B (zh)
WO (1) WO2021010997A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220132931A1 (en) * 2019-02-14 2022-05-05 Amosense Co., Ltd. Heater for cigarette-type electronic cigarette device, and cigarette-type electronic cigarette device comprising same
KR20240067283A (ko) * 2019-07-17 2024-05-16 구글 엘엘씨 음향 기반 디지털 어시스턴트 애플리케이션에서 트리거 키워드를 검증하는 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823922B1 (en) * 2014-12-22 2017-11-21 Amazon Technologies, Inc. Source code mapping through context specific key word indexes and fingerprinting
CN107871501A (zh) * 2016-09-27 2018-04-03 Fmr有限责任公司 使用智能语音识别的自动化软件执行方法
CN108551766A (zh) * 2016-12-30 2018-09-18 谷歌有限责任公司 用于与服务提供者的会话建立的自然语言处理
CN108738362A (zh) * 2017-02-15 2018-11-02 谷歌有限责任公司 基于多层级引用符数据生成应用的深度链接
US10210868B2 (en) * 2014-06-24 2019-02-19 Google Llc Device designation for audio input monitoring

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006605B1 (en) * 1996-06-28 2006-02-28 Ochopee Big Cypress Llc Authenticating a caller before providing the caller with access to one or more secured resources
US6205204B1 (en) * 1996-06-28 2001-03-20 Distributed Software Development, Inc. System and method for identifying an unidentified person using an ambiguity-resolution criterion
US7376740B1 (en) * 2000-06-13 2008-05-20 Microsoft Corporation Phone application state management mechanism
AU2002255774A1 (en) * 2001-03-14 2002-09-24 United Parcel Service Of America, Inc. Systems and methods for initiating returns over a network
US7233655B2 (en) * 2001-10-03 2007-06-19 Accenture Global Services Gmbh Multi-modal callback
US20040064442A1 (en) * 2002-09-27 2004-04-01 Popovitch Steven Gregory Incremental search engine
US7769820B1 (en) * 2005-06-30 2010-08-03 Voltage Security, Inc. Universal resource locator verification services using web site attributes
US20080255835A1 (en) * 2007-04-10 2008-10-16 Microsoft Corporation User directed adaptation of spoken language grammer
US11093692B2 (en) * 2011-11-14 2021-08-17 Google Llc Extracting audiovisual features from digital components
US9070301B2 (en) * 2012-06-04 2015-06-30 At&T Intellectual Property I, L.P. System and method for improved human learning through multi-sensory stimulus
KR20150104615A (ko) * 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US10748529B1 (en) * 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US20140337030A1 (en) * 2013-05-07 2014-11-13 Qualcomm Incorporated Adaptive audio frame processing for keyword detection
US9892729B2 (en) * 2013-05-07 2018-02-13 Qualcomm Incorporated Method and apparatus for controlling voice activation
US20150011195A1 (en) * 2013-07-03 2015-01-08 Eric Li Automatic volume control based on context and location
US20170187866A1 (en) * 2015-10-17 2017-06-29 Eric Qing Li Automatic Volume Control Based on Context and Location
US9786296B2 (en) * 2013-07-08 2017-10-10 Qualcomm Incorporated Method and apparatus for assigning keyword model to voice operated function
US20180322536A1 (en) * 2014-01-14 2018-11-08 Google Inc. Resource utilization based cross device transmissions
CN104852883A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 保护账号信息安全的方法和系统
US20210234832A1 (en) * 2014-05-12 2021-07-29 Tocmail Inc Computer Security System and Method Based on User-Intended Final Destination
US9959863B2 (en) * 2014-09-08 2018-05-01 Qualcomm Incorporated Keyword detection using speaker-independent keyword models for user-designated keywords
US10074360B2 (en) * 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9930098B2 (en) * 2015-01-23 2018-03-27 Hughes Network Systems, Llc Method and system for ISP network performance monitoring and fault detection
US9887995B2 (en) * 2015-03-20 2018-02-06 Cyberdeadbolt Inc. Locking applications and devices using secure out-of-band channels
WO2017011742A1 (en) * 2015-07-15 2017-01-19 Chappy, Inc. Systems and methods for screenshot linking
US9959887B2 (en) * 2016-03-08 2018-05-01 International Business Machines Corporation Multi-pass speech activity detection strategy to improve automatic speech recognition
US20170289338A1 (en) * 2016-03-31 2017-10-05 Microsoft Technology Licensing, Llc Enabling stateful dynamic links in mobile applications
US10104152B2 (en) * 2016-04-28 2018-10-16 TeamMate Licensing B.V. Inter-application communication and integration broker
US10313348B2 (en) * 2016-09-19 2019-06-04 Fortinet, Inc. Document classification by a hybrid classifier
US20180210701A1 (en) * 2017-01-25 2018-07-26 Essential Products, Inc. Keyword driven voice interface
US10360916B2 (en) * 2017-02-22 2019-07-23 Plantronics, Inc. Enhanced voiceprint authentication
US10362047B2 (en) * 2017-05-08 2019-07-23 KnowBe4, Inc. Systems and methods for providing user interfaces based on actions associated with untrusted emails
US10403299B2 (en) * 2017-06-02 2019-09-03 Apple Inc. Multi-channel speech signal enhancement for robust voice trigger detection and automatic speech recognition
US10650844B2 (en) * 2018-01-18 2020-05-12 Wipro Limited Method and response recommendation system for recommending a response for a voice-based user input
US10782981B2 (en) * 2018-01-26 2020-09-22 Avaya Inc. Systems and methods of dynamic port assignment
US11386412B1 (en) * 2018-04-12 2022-07-12 Wells Fargo Bank, N.A. Authentication circle management
US10928918B2 (en) * 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10861444B2 (en) * 2018-09-24 2020-12-08 Rovi Guides, Inc. Systems and methods for determining whether to trigger a voice capable device based on speaking cadence
US11100923B2 (en) * 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11049496B2 (en) * 2018-11-29 2021-06-29 Microsoft Technology Licensing, Llc Audio pipeline for simultaneous keyword spotting, transcription, and real time communications
US11468071B2 (en) * 2018-11-30 2022-10-11 Rovi Guides, Inc. Voice query refinement to embed context in a voice query
US11790153B2 (en) * 2018-12-20 2023-10-17 Atlassian Pty Ltd. Systems and methods for creating and managing smart hyperlinks
US11200894B2 (en) * 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11265297B2 (en) * 2019-07-03 2022-03-01 Microsoft Technology Licensing, Llc Securely sharing context between web frames
KR20240067283A (ko) * 2019-07-17 2024-05-16 구글 엘엘씨 음향 기반 디지털 어시스턴트 애플리케이션에서 트리거 키워드를 검증하는 시스템 및 방법
DE102019218808B3 (de) * 2019-12-03 2021-03-11 Sivantos Pte. Ltd. Verfahren zum Trainieren eines Hörsituationen-Klassifikators für ein Hörgerät

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210868B2 (en) * 2014-06-24 2019-02-19 Google Llc Device designation for audio input monitoring
US9823922B1 (en) * 2014-12-22 2017-11-21 Amazon Technologies, Inc. Source code mapping through context specific key word indexes and fingerprinting
CN107871501A (zh) * 2016-09-27 2018-04-03 Fmr有限责任公司 使用智能语音识别的自动化软件执行方法
CN108551766A (zh) * 2016-12-30 2018-09-18 谷歌有限责任公司 用于与服务提供者的会话建立的自然语言处理
CN108738362A (zh) * 2017-02-15 2018-11-02 谷歌有限责任公司 基于多层级引用符数据生成应用的深度链接

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Acoustic Modeling in the STC Keyword Search System for OpenKWS 2016 Evaluation;Medennikov, I等;《19th International Conference on Speech and Computer (SPECOM)》;20170916;全文 *
机器人嵌入式语音识别系统设计与开发;周艳萍;《中国优秀硕士学位论文全文数据库》;20130515;全文 *

Also Published As

Publication number Publication date
EP3785396B1 (en) 2022-09-21
KR102664371B1 (ko) 2024-05-13
KR20240067283A (ko) 2024-05-16
US20210335353A1 (en) 2021-10-28
US20220122608A1 (en) 2022-04-21
US11217243B2 (en) 2022-01-04
CN112534771A (zh) 2021-03-19
US20240144928A1 (en) 2024-05-02
US11869504B2 (en) 2024-01-09
WO2021010997A1 (en) 2021-01-21
EP4134842A1 (en) 2023-02-15
EP3785396A1 (en) 2021-03-03
KR20220017464A (ko) 2022-02-11

Similar Documents

Publication Publication Date Title
US11829435B2 (en) Secure digital assistant integration in web pages
US11924644B2 (en) Secure communication in mobile digital pages
US11361066B2 (en) Secure digital assistant integration in web pages
US20240144928A1 (en) Systems and methods to verify trigger keywords in acoustic-based digital assistant applications
CN113646742A (zh) 使用应用模板生成和更新基于语音的软件应用
CN114600081A (zh) 经由动态更新自然语言处理与应用交互
US20220308987A1 (en) Debugging applications for delivery via an application delivery server
EP3729259B1 (en) Assessing applications for delivery via an application delivery server

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant