HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

可扩展的动态类语言建模方法和系统与流程

2021-01-28 17:01:25|399|起点商标网
可扩展的动态类语言建模方法和系统与流程

本申请是国际申请日为2016年12月30日、中国申请号为201680085432.4、发明名称为“可扩展的动态类语言建模方法、用于生成话语转录的系统、计算机可读介质”的发明专利申请的分案申请。

该文件总体上涉及自动语音识别和使用基于类的语言模型来将语音转录成文本。



背景技术:

语音识别已经成为与计算设备交互的广泛采用和频繁使用的模式。语音输入可以比传统输入模式(诸如通过键盘键入)更方便和有效。例如,移动计算设备可以提供语音识别服务作为通过触摸屏上的虚拟键盘键入字符的可替换的输入模式。一些计算设备被配置为接受来自用户的话音命令作为在计算设备上执行某些动作的快捷方式。可以使用预测一个或多个术语序列在语音中出现的可能性的语言模型将话音命令和其他语音转录为文本。一些语言模型将相关术语分组到类中,并且可以预测在语音样本中出现术语类的可能性。



技术实现要素:

该文档总体上描述了用于使用基于类的语言模型动态地适应用于用户的个体话音查询的语音识别的系统、方法和其他技术。通常,语音识别系统能够生成查询特定的类模型,该每个类模型包括用户在他/她处于特定上下文时可能说的相关术语的集聚(collection)(例如,当用户正使用媒体播放器应用时的歌曲标题)。系统还获得基于类的语言模型的集合。集合中的每个基于类的语言模型可以对应于特定类,并且可以指示包括属于特定类的至少一个术语的语言序列的概率。在一些实施方式中,集合中的每个基于类的语言模型可以对应于多个候选类中的不同的一个。

然后,语音识别系统访问包括表示语言中的剩余术语集合的残余(residual)一元语法(unigram)的通用语言模型。例如,残余一元语法可以是表示语言中很少出现的术语或者在语言模型的词汇表之外的术语的未知术语一元语法。然后,系统在语言模型内的残余一元语法的每个实例处插入与每个类模型相关联的各个类符号。因此,处理过的语言模型可以包括在残余一元语法的每个实例处的多个类符号。

在语音解码过程期间,对于被确定为包括残余一元语法的特定候选转录,系统首先标识适当的类符号以替换残余一元语法的实例(例如,基于由基于类的语言模型指定的相应概率),并且然后,从由相对应的类模型指定的术语的集聚中选择特定术语以插入候选转录序列中的类符号的位置。例如,可以通过对用户话语的对应部分按发音地转录并识别由类模型指定的术语的集聚内的最类似发音的(phonetic)转录的术语,来选择特定术语。在这点上,当用户的话语包括使用基本语音识别技术不太可能准确地识别的陌生的或不常见的术语时,系统能够从查询特定的类模型的集合中动态地插入类术语,以有效地改善识别能力。

一些实施方式可以包括由一个或多个计算机执行的方法。该方法可以包括从用户接收话音查询,该话音查询包括(i)与用户的话语相对应的音频数据,以及(ii)与音频数据或用户中的至少一个相关联的上下文数据。响应于接收到话音查询,然后生成一个或多个类模型。一个或多个类模型共同地标识(i)基于与音频数据或用户中的至少一个相关联的上下文数据确定的第一术语集合,以及(ii)对于第一术语集合中的每个相应术语,被分配相应术语的相应类别。第一术语集合中的至少一些术语被分配给多个类中的不同类。然后可以访问包括表示术语集合的残余一元语法的语言模型。可以针对多个类当中的每个相应类来处理语言模型,以在语言模型内出现的残余一元语法的每个实例处插入与相应类相关联的相应类符号。然后使用修改的语言模型生成用户的话语的转录。

这些和其他实施方式可以包括以下特征中的一个或多个。例如,生成用户的话语的转录可以包括访问与第一术语集合内的一个或多个术语被分配给的各个类相对应的一个或多个基于类的语言模型。然后对于被插入到修改的语言模型中的每个相应类符号并且至少基于由与由相应类符号所指示的相应类相对应的基于类的语言模型中的特定的一个所指示的概率,确定相应类内的术语在候选语言序列内、候选语言序列中与相应类符号的位置相对应的位置处出现的相应概率。然后生成使用所确定的概率的用户的话语的转录。

一个或多个类模型可以包括标识第一术语集合的单个类模型。此外,第一术语集合中的每个相应术语可以利用标识相应术语被分配给的相应类的相应类符号来标记,并且单个类模型可以包括被分配给多个类中的不同类的术语。

生成一个或多个类模型可以包括生成对应于不同类的多个类模型,以及将多个类模型合并到包括被分配给不同类的术语的单个类中。

残余一元语法可以表示语言模型中的文本样本的语料库(corpus)内不频繁出现的术语。

残余一元语法可以与标识第二术语集合的残余类模型相关联。可以通过将第一术语集合添加到残余类模型来生成一个或多个类模型。

处理语言模型可以基于访问残余类模型,并且基于至少在多个类当中被分配的在残余类模型中的第一术语集合来识别多个类。

其他形式(version)包括对应系统和在计算机存储设备上编码的被配置为执行方法的动作的计算机程序。

在附图和以下描述中阐述了一个或多个实施方式的细节。根据说明书、附图和权利要求,其他潜在的特征和优点将变得显而易见。

这些方面的其他实施方式包括对应系统、装置和在计算机存储设备上编码的被配置为执行方法的动作的计算机程序。

一些实施方式可以包括一种方法,该方法包括在数据处理硬件处接收用户说出的语音查询;数据处理硬件获取与语音查询相关联的上下文数据;数据处理硬件使用语言模型生成用于所述语音查询的候选转录序列,所述候选转录序列包括表示所述语言模型的语言的词汇表外术语的基于类的符号;数据处理硬件基于上下文数据获取属于特定类别的用户特定术语列表;数据处理硬件通过将所获取的用户特定术语列表合并到语言模型中来更新语言模型;以及数据处理硬件使用更新的语言模型生成用于所述语音查询的转录,该转录包括一系列术语,该一系列术语包括从用户特定术语列表中选择的用户特定术语之一,以代替基于类的符号。

一些实施方式可以包括一种系统,该系统包括:数据处理硬件;和与数据处理硬件通信并存储指令的存储器硬件,该指令在由数据处理硬件执行时使数据处理硬件执行一个或多个操作,包括:接收用户说出的语音查询;获取与语音查询相关联的上下文数据;使用语言模型生成用于所述语音查询的候选转录序列,所述候选转录序列包括表示所述语言模型的语言的词汇表外术语的基于类的符号;基于上下文数据获取属于特定类别的用户特定术语列表;通过将获取的用户特定术语列表合并到语言模型中来更新语言模型;以及使用更新的语言模型生成用于语音查询的转录,该转录包括一系列术语,该一系列术语包括从用户特定术语列表中选择的用户特定术语之一以代替基于类的符号。

附图说明

图1是具有用于转录话语的自适应查询特定的语音识别能力的示例性系统的概念图。在一些实施方案中,图1中描绘的系统可以被用于执行本文中所描述的方法。

图2描绘了将基于类的模型与未知词模型组合以生成拼接的类模型的图形表示。

图3a-图3c描绘了由用于转录用户的话语的基于类的语言模型生成的字词网格(wordlattice)的图形表示。图3a示出了在其中标识的未知字由残余一元语法(#unk)指示的初始字词网格。图3b示出了在其中在残余一元语法的每个实例处将与不同类模型相关联的各个类符号插入到来自图3a的字词网格中的中间字词网格。图3c示出了在其中选择了最可能的类并且来自类的个体术语被拼接到来自图3b的字词网格中的扩充的字词网格。

图4是用于使用基于类的语言模型动态地适应用于用户的个体话音查询的语音识别的示例性过程的流程图。

图5是可以在其上实施本文描述的过程或其部分的计算设备的框图。

在附图中,相同的附图标记始终表示对应的部件。

具体实施方式

该文档总体上描述了用于使用基于类的语言模型动态地适应用于用户的个体话音查询的语音识别的系统、方法和其他技术。该系统和方法可以解决与自动语音识别相关联的问题并自动将语音转录成文本。在一些实施方式中,响应于接收到话音查询和相关联的上下文数据,语音识别系统编译(例如,即时地)类模型,该类模型指定与潜在地与话音查询(例如,用户联系人、本地餐馆名称、用户先前使用的应用)相关的特定上下文相对应的术语的集合。每个类模型指定分配有类模型内的术语集合的类名称(例如,歌曲类、联系人类等)。每个类模型还与对应的基于类的语言模型相关联,该语言模型指示包括属于特定类的至少一个术语的语言序列的概率。

当用户的话语包括使用基本语音识别技术不太可能准确地识别的陌生的或不常见的术语时,语音识别系统利用类模型和对应的基于类的语言模型以允许更具适应性的识别能力。例如,语音识别系统可以在通用语言模型内合并残余一元语法(例如,表示不可能包含在语言中的未知术语的一元语法),然后在通用语言模型内的残余一元语法的每个实例处插入来自类模型的术语的集聚的预测类术语,以便增加由用户提供的陌生或不常见术语的识别准确度。此外,因为类模型和对应的基于类的语言模型中的每一个指定用户特定的活动的术语和概率(例如,基于在特定上下文中的先前的用户数据),所以使用这种技术的识别能力能够在逐个查询的基础上被调节。

对于上下文,语言模型通常能够确定给定的术语序列将在语言中出现的可能性(例如,概率)。例如,n-元语法(n-gram)模型可以指示跟着特定术语之前的n-1个术语的序列的特定术语的概率。因此,4-元语法模型可以指示短语“汽车是<乱码>”中的第四个术语是“红色”、“蓝色”、“破碎”、“大”或另一术语的相对统计可能性。

在一些实施方式中,语言模型分配给术语的序列的概率反映了被用于训练语言模型的数据集合中的序列的统计出现。例如,可以通过检查来自诸如网页和其他电子文档、查询日志、书籍、社交媒体等的来源的大量语言来开发语言模型。在源数据中的术语的序列的相对频率可以被确定为并被用作为语言模型的基础。然而,在创建语言模型时产生的一个考虑是,通常难以在足够大的数据体上训练模型以可靠地评估语言中出现的许多术语的所有置换的可能性。为此,可以采用基于类的语言模型,该模型利用语言中的相关术语当中的统计,从而允许语言模型预测术语的序列的可能性,即使对于在训练数据中不常出现的术语也是如此。

基于类的语言模型通常是被编程为确定给定的术语的序列和类符号将在语言中出现的可能性(例如,概率)的语言模型。在一些实施方式中,可以通过用对应的基于类的符号替换属于预定义的术语类(例如,局部地相关的术语类)的、训练数据中的原始术语来训练基于类的语言模型。例如,考虑训练句子“larry最喜欢的消遣是看seinfeld重播和吃pizza”。这个句子可以被处理为用对应类符号替换其基于类的术语,如下所示:“#name最喜欢的消遣是看#tv_show重播和吃#food。”从句子中去除的基于类的术语然后可以被添加到相应类模型(例如,“larry”可以被添加到#names类模型中,“seinfeld”可以被添加到#tv_show类模型中,而“pizza”可以被添加到#food类模型中)。类模型可以各自包括属于该模型的相应类的术语的集聚,并且还可以存储指示该类中的每个术语在语言或给定话语中出现的相对概率的数据。例如,#tv_show类模型可以包括电视节目的列表,并且可以包括每个节目在给定语言样品中出现的相应概率。在运行时,语音识别器中的基于类的语言模型然后可以基于与基于类的术语相邻或其附近的术语和/或基于语言序列外部的上下文数据来标识在话语或其他语言序列中的基于类的术语的类。一旦类别被标识,语言模型可以访问对应类模型,该类模型指示所标识的类的术语的列表,以及从类别模型中选择用于话语的转录的一个或多个基于类别的术语。例如,语音系统中的正在解码“larry最喜欢的消遣是在看seinfeld重播和吃pizza”的话语的基于类的语言模型可以基于前面的术语“看”和“吃”,分别确定该话语包括来自#tv_show类和#food类两者的基于类的术语。语言模型的#tv_show类可以包括从其中选择术语“seinfeld”的大量不同的电视节目标题的(例如,基于该话语的声学分析、和/或基于外部上下文(诸如指示seinfeld是说话者的最喜欢的节目的说话者简档数据))。类似地,可以从#food类中选择术语pizza。

在一些情况下,语音系统可以动态地生成针对指定的说话者、指定的话语的上下文或两者定制的类模型。这些定制的类模型可以有助于准确解码包括基于类的术语的话语,该术语包括与一般语言相比在特定说话者的词典中过多呈现的基于类的术语。例如,在语言中的训练样本的广泛基础上已被训练的一般的基于类的语言模型更可能错误地将话语“我邀请jacki到家里吃饭”转录为“我邀请jackie到家里吃饭”(拼写错误的名字),因为尽管在发音上相同,但是作为英语名字,名字“jackie”比名字“jacki”更常见。然而,与一般人群相比,一些说话者更可能指的是不带e的“jacki”,诸如与“jacki”是朋友、家人或同事的说话者,或者以其他方式和“jacki”频繁交流的说话者。因此,在确定用于话语的转录之前,语音系统可以动态地生成说话者(用户)特定的类模型,该类模型将来自说话者的包括名字“jacki”的话语的可能性偏离为高于“jackie”的可能性。

在一些实施方式中,基于类的语言模型可以通过用基于类的术语扩充一般基于类的语言模型中的基于类的术语的列表来生成,该基于类的术语被确定为与要被解码的话语的上下文(诸如关于话语的说话者的信息)相关。在基于类的语言模型中的类可以仅包括被确定为与话语的上下文相关的基于类的术语(例如,用户特定的或话语特定的术语),或者它们可以包括通常确定的和用户特定或话语特定的术语的混合。在一些实施方式中,可以将未包括在静态或一般语言模型的类中的术语添加到定制的动态生成的语言模型的类。在一些实施方式中,可以在定制的动态生成的语言模型中适应节与一般语言模型中的术语相关联的概率。例如,在接收到转录由bill说的话语的请求时,语音识别系统可以(例如,从本地或远程上下文服务器)获得与bill和/或要被转录的指定话语相关联的上下文数据。上下文数据可以包括例如说话语的位置的指示、bill的联系人列表中的姓名的列表、bill在社交媒体上连接到的用户的姓名的列表、或者这些和更多的组合。上下文数据可以显示bill最亲密的联系人中的一个是jacki。因此,语音系统可以动态生成用于转录bill的话语的定制#names类模型,该模型可以被结合到动态的、用户特定的基于类的语言模型中。定制语言模型可以将bill的所有或一些联系人添加到#names类,和/或可以重新计算#names类中的术语之间的概率分布。例如,术语“jacki”可以被分配更高的概率,而术语“jackie”可以被从类中去除或被分配更低的概率。

在一些实施方式中,语音系统可以针对其接收以转录话语的每个请求自动且动态地生成定制的基于类的语言模型。例如,如果语音系统被实施为基于云的服务用于转录来自广泛用户的话语,则语音系统可以为提交转录话语的请求的指定用户动态地生成定制基于类的语言模型(例如,在用户是说话者的假设下)。然而,在语音系统已转录话语之前,语音系统可能不知道对于任何给定的请求,在话语中涉及哪些类(如果有的话)。因此,语音系统可以在即时生成对于其上下文数据是可用的所有类的动态类模型。例如,在从用户bill接收到对转录话语的请求时,语音系统可以动态地生成包括一系列定制类的基于类的语言模型。在构造自定义类和语言模型之后,语音系统然后可以使用定制语言模型来解码话语,并确定对于话语的转录。

图1是示例性语音识别系统100的概念图,其具有用于转录用户102的话语的自适应查询特定的识别能力。系统100包括用户设备110,其接收编码由用户102提交的话音查询104a的话语的音频数据104b。用户设备110还获得和/或存储与用户102相关联的上下文数据104c(例如,历史活动数据),或者与话音查询104a相关联的上下文数据104c(例如,参考查询内包括的信息、当前用户位置等)。

通常,图1中的示例示出了系统100如何被用于生成对于话音查询的转录,该话音查询包括可能被传统语音识别系统检测为未知词的异常或不常见的词。例如,这样的语音识别系统分别错误地将术语“labygama”和“ogcar”转录为“ladygaga”和“oscar”,因为后者术语更有可能出现在一般语言模型指定的语言内。然而,系统100利用其对类模型和基于类的语言模型的使用,可以改为使用下面描述的技术来正确地转录话音查询104a内包括的异常或不常见的术语。

系统100还包括具有相关联的数据库122的服务器120,该数据库122存储类模型130a和130b以及对应的基于类的语言模型132a和132b,以及残余一元语法模型130c。服务器120包括诸如语言模型处理器124和转录模块126的软件模块,如下面更具体地描述,该软件模块执行与语音识别相关的过程。

参照图1中描绘的示例,用户最初地向话音查询104a提交放置从联系人传送的歌曲的指令(例如,“播放从ogcar传送的labygama歌曲”)。话音查询104a被编码为音频数据104b,并与上下文数据104c一起被从用户设备110发送到服务器120。然后,服务器120启动语音识别过程,其包括生成并使用动态类模型130a和130b以在候选转录序列内插入类术语。语音识别过程的输出是转录104d,然后其响应于接收到的话音查询104a被提供回给用户设备110用于输出。

系统100最初地在用户设备110处检测话音查询104a的话语。用户设备110通常可以是任何类型的电子计算设备,其能够检测并记录音频数据,并且有助于在用户设备110上或在服务器120处或者两者本地地处理音频数据。例如,用户设备110可以是智能手机、平板计算设备、笔记本计算机、个人台式计算机、智能手表或任何其他类型的可穿戴的计算设备、或任何其他类型的电子设备。在一些实施方式中,用户设备110可以包括在操作系统内运行的语音识别服务或在用户设备110上执行的应用。语音识别服务可以将语音转换为文本,或者可以响应于从用户102接收话音命令而对用户设备110执行某些动作。

用户设备110还可以包括:当用户102说出话语时检测音频信号的麦克风;以及对音频信号进行数字化的模拟-数字(analog-to-digital,a/d)转换器。用户设备110还可以包括用于通过有线和无线网络与其他计算机通信的网络接口、电子显示器和其他用户输入机构,其中一些在下面关于图5来描述。

在检测到话音查询104a的话语时,用户设备110将话语的音频数据104b提供给可以位于用户设备110、服务器120或两者上的语音预处理器。语音预处理器通常可以充当语音识别器的第一级,其被配置为将话语转录为文本。语音预处理器可以生成能够由解码器及其相关联的语言模型识别的处理过的语音数据。在一些实施方式中,预处理器包括声学模型,其根据音频数据104b确定话语的音素或其他语言单元。

声学模型可以确定在话音查询104a的话语的短时间间隔中说出的最可能的候选音素或语言单元的集合。然后,解码器可以使用该数据来转录话语。解码器可以包括通常以比声学模型更高的语义级别操作的语言模型或者与其结合操作。例如,虽然声学模型可以将音频信号的非常短的片段映射到短语言单元(例如,音素),而很少(如果有的话)考虑语言单元如何拼接在一起以形成连贯的转录,但是语言模型可以理解语言单元的集聚以确定反映语言中可能出现的术语的实际序列的转录结果。

系统100的语音识别器可以在用户设备110上本地地实施,或者从用户设备110远程地实施(例如,在服务器120上)。在一些实施方案中,识别器的不同组件可以本地地实施,而其他组件可以远程地实施。在远程地实施语音识别器的实施方案中,用户设备110可以将音频数据104b发送到在与用户设备110分离且分开的一个或多个计算机上实施语音识别器的服务器120。例如,用户设备110可以通过因特网将音频数据104b(例如,以压缩和加密的格式)传送到服务器120。然后,服务器120可以通过将接收到的音频数据104b提供给语音预处理器和解码器120来处置接收的音频到数据104b,并且然后执行如下所述的识别过程。

在接收到上下文数据104c(以及可选地接收音频数据104b)时,服务器生成各自包括属于相应类模型的特定类的术语的集聚(例如,如图1所描绘的歌曲和联系人类模型)的类模型130a和130b的集合。在每次提交的话音查询之后,由服务器120编译类模型130a和130b,使得术语的集聚在查询提交时准确地反映最新(up-to-date)信息。作为示例,如果用户102在最近提交的话音查询之后但在话音查询104a的提交之前将新联系人添加到他/她的联系人列表,则在接收到音频数据104b之后编译类模型130a,使得新添加的联系人被包括在类模型130a内。在这方面,数据库122内的存储的类模型可以由服务器120在逐个查询的基础上进行调整,以更准确地反映类相关的信息(例如,联系人列表)的变化。

在一些实施方式中,除了调整预先存在的存储的类模型之外,服务器120还能够响应于接收到话音查询(例如,响应于接收到与话音查询相关联的上下文数据104c)而生成新的类模型。例如,如果接收到的上下文数据104c指示用户最近执行了与新的术语组相关联的特定动作(例如,执行与用户已经进入的新位置相关的动作),则服务器120可以生成新的类模型。在其他示例中,服务器120还能够在用户处于特定上下文中时(例如,在用户临时地处于特定位置的旅行期间)生成与用户相关联的新的临时类模型预定时间。在这些示例中,服务器120可以能够基于上下文数据104c内包括的上下文信息来标识在识别过程中使用的可应用的类模型。

尽管图1描绘了由服务器120响应于接收到话音查询104a而编译的类模型的两个示例,但是在其他实施方式中,服务器120能够基于与话音查询104a或上下文数据104c相关联的信息来编译更多数量的类模型。例如,如果上下文数据104c指示用户行为方面的大的变动和/或如果话音查询104a包括大量陌生的或未知的词,则服务器120可以编译大量类模型以增加生成准确转录的概率。

服务器120还可以获得分别对应于编译过的类模型130a和130b的基于类的语言模型132a和132b的集合。在一些实施方式中,系统可以在接收到包括音频数据104b和上下文数据104c的话音查询之前已经生成并存储基于类的语言模型132a和132b。语言模型132a和132b可以是在语言序列上被训练的基于类的语言模型的集合,这些语言序列包括类符号而不是最初在语言序列中出现的基于类的术语。例如,可以通过标识全部包括歌曲名字(即特定类别术语)的文本样本的集合(即语言序列)、预处理文本样本以用类符号(例如,#songs)替换文本样本中的歌曲名字、并且然后使用预处理的文本样本训练语言模型使得语言模型标识语言中的术语的不同组合将包括如#songs类符号所指示的歌曲名字的概率,来生成对应于歌曲类的第一基于类的语言模型。尽管具有各自包括#contacts类符号的处理过的文本样本,但可以采用类似的过程来生成与联系人类相对应的第二基于类的语言模型。例如,在图1所描绘的示例中,与针对在候选转录序列的“从……传送”之后出现的类术语指定的较低的概率“0.31”相比较,语言模型132a指定较高的概率“0.63”。这指示在候选转录序列内的术语“从……传送”之后更可能出现的联系人类术语。该概念在图3b中更具体地描绘。

在一些实施方式中,可以基于用训练数据训练语言模型来专门地针对特定用户训练基于类的语言模型132a和132b,该训练数据包括由用户102提交的包括类术语的先前句子或示例。如本文针对其他过程所述,可以在连续查询提交之间迭代地执行用于基于类的语言模型130a和130b的训练过程(procedure),以基于重现用户行为和/或由用户设备110获得的更新的上下文数据来调整指示的相应概率。

在服务器120编译类模型130a和130b时,服务器120还获得残余一元语法模型130c并将所获得的模型合并到初始语言模型142中。一般而言,残余一元语法模型130c可以标识由于各种原因中的任何一个可能对识别有问题的列表术语。例如,残余一元语法模型130c可以包括先前由系统100的语音识别器错误地转录的术语的集聚,其不可能被包括在由语音识别器的语言模型指定的语言内,或者是在用户102的词汇表外(out-of-vocabulary,oov)。在其他情况下,残余一元语法模型130c可以包括其中用户102已随后发送重复查询的查询中包括的术语,这指示所包括的术语被语音识别器错误地识别。在一些实施方式中,还可以在由用户102的连续查询提交之间动态调整残余一元语法模型130c,以基于语音识别器的识别性能来调整残余一元语法的集聚。

在一些实施方式中,在编译类模型130a和130b并获得残余一元语法模型130c之后,服务器120然后可以通过联结类模型130a和130b以及残余一元语法模型130c来生成并集模型。并集模型包括由类模型130a和130b指定的各个类术语中的每一个,以及由残余一元语法模型130c指定的术语。关于图2更具体地描述了并集模型生成的示例。在一些实施方式中,可以标记从类模型130a和130b联结到并集模型中的术语,以便指示与它们相关联的类。例如,并集模型中出现的从#songs类模型获取的第一个术语可以在并集模型中被表示为“<song>歌曲_名字</song>”,而并集模型中出现的从#contacts类模型获取的第二个术语可以在并集模型中被表示为“<contact>联系人_名字</contact>”。

现在参照语言模型处理器124,在由系统100执行的语音识别过程的开始之前离线处理初始语言模型142。初始语言模型142可以是通用语言模型,其为术语的集聚指定相应概率的集合,这些概率指示相应术语出现在与语言模型相关联的语言内的可能性。

在接收到话音查询104a之前,语言模型处理器124处理初始语言模型142并生成处理过的语言模型144。语言模型处理器124可以使用各种技术生成修改的语言模型144。在一些实施方式中,语言模型处理器124将残余一元语法合并到初始语言模型142中作为训练前(pre-training)的特征。在这样的实施方式中,在数据上训练初始语言模型142,在该数据中用残余一元语法符号(例如,“#unk”)替换属于特定类的术语。在运行时,初始语言模型142然后对在转录序列内任何给定位置处的类术语是包括在残余一元语法模型130c内的术语的可能性进行评分。

在一些实施方式中,语言模型处理器124将残余一元语法符号合并为训练后的过程(procedure)。作为一个示例,在训练初始语言模型142之后,语言模型处理器124可以最初地在也被包括在由所获得的残余一元语法模型130c指定的术语的集聚内的术语的每个实例处插入与残余一元语法(例如,“#unk”)相关联的符号。在一些实施方式中,可以提供残余一元语法以指示语言模型142的词汇表内的其他术语表示话语的不正确转录的可能性。在一些实施方式中,语言模型处理器124可以在语言模型内的残余一元语法的每个实例处插入与类模型130a和130b中的每一个相关联的类符号,以便生成修改的语言模型144。在所描绘的示例中,初始语言模块142内的术语“labygama”和“ondogula”最初被标识为残余一元语法,并且然后用与类模型130a和130b的歌曲类和联系人类相对应的两个类符号(例如,“#song”,“#contact”)替换在初始语言模型142中的这些术语的实例。

转录模块126使用修改的语言模型144来生成用于话音查询104a的转录104d。例如,转录模块126可以最初将与类模型130a和130b相关联的类符号插入到处理过的语言模型144内的残余一元语法的每个实例中,以便生成处理过的语言模型146。在图1所描绘的示例中,转录模块126用与类模型130a和130b相关联的两个对应类符号替换残余一元语法符号的两个实例。插入的类符号表示用于在候选转录序列的字词网格内插入类术语的可替换的转录途径。针对图3a-图3c更具体地描述该过程。

然后,转录模块126为话音查询104a生成候选转录序列(例如,“播放从#contact传送的#song”)。在生成候选转录序列时,转录模块126最初使用处理过的语言模型144标识在其中可能包括残余一元语法符号的序列内的位置(例如,播放从#unk传送的#unk)。

然后,转录模块126为残余一元语法符号的每个实例选择适当的类符号以替换残余一元语法符号。例如,转录模块126基于由基于类的语言模型132a和132b指示的相应概率来标识适当的类模型。在图1中所描绘的示例中,转录模块126基于指定在“播放”之后出现歌曲术语的、比由语言模型132a为联系人术语指定的概率更高的概率的语言模型132b来选择#song符号以替换候选转录序列内的残余一元语法符号的第一实例。同样地,转录模块126基于指定在“从……传送”之后出现联系人术语的、比由语言模型132b为歌曲术语指定的概率更高的概率的语言模型132a选择#contact符号以替换候选转录序列内的残余一元语法符号的第二实例。

在插入对于候选转录序列内的残余n-元语法的实例的适当的类符号之后,转录模块126然后针对对应类符号选择最可能的类术语以插入。在一些实施方式中,基于将类模型内的术语中的每一个与话音查询104a的话语的对应部分的发音转录进行比较来选择最适当的术语。例如,转录模块126从歌曲类插入类术语“ladygama”以替换候选转录序列内的对应类符号,因为该术语最类似于由编码用户102的话语的音频数据104b所指示的话语“le-diga-ma”。同样地,转录模块126从联系人类选择类术语“ogcar”来替换候选转录序列内的对应类术语,因为该术语最类似于由音频数据104b指示的话语“og-ca-ar”。

在图1中所描绘的示例中,尽管术语“labygama”和“ogcar”被标识为残余n-元语法,但是它们仍然被包括在生成的转录104d中,因为当用户处于与类模型130a和130b相关联的上下文中(例如,联系人列表和播放列表)时,基于类的语言模型132a和132b指示这些术语的高概率。在这方面,插值的语言模型146指示对于“labygama”比对于“ladygaga”更高的概率,“ladygaga”是通用语音识别器基于查询的增加的可能性而可能预测包括“labygaga”而不是“labygama”的最接近的术语。转录模块126然后使用插值语言模型146来插入“#song”类符号的术语“labygama”和“#contact”类符号的术语“ogcar”,得到所生成的转录104d。

图2描绘了将基于类的模型130a和130b与残余一元语法模型130c组合以生成并集模型130d的图形表示。如本文关于图1所讨论的,基于类的模型130a和130b指定各自被分配给特定类(例如,歌曲类和联系人类)的术语的集聚,而残余一元语法模型130c指定可以是例如不太可能在由用户102所说出的语言内出现的未知词、用户102的词汇表外的术语、或潜在地导致识别不准确的其他术语的术语的集聚。

服务器120将类模型130a、130b和残余一元语法模型130c联结成单个并集模型130d以改善初始语言模型142的处理。例如,并集模型130d的生成允许语言模型处理器124使用单个模型处理初始语言模型142,而不是使用各种个体类模型的连续处理。如所描绘的,并集模型130d包括每个类模型的术语的集聚中的每一个以及与和每个类相关联的相应类符号相对应的类标识符。

图3a-图3c描绘了由用于转录用户102的话音的语言模型生成的字词网格300a-300c的图形表示。网格300a-300c总体上指示语言序列中的术语、n-元语法和/或类符号的可能转变,其表示话音查询的候选转录。网格300a-300c还可以将指示转换将在语言序列中出现的可能性的分数分配给转变中的每一个。例如,图3a示出话音查询中的初始术语可以是“play”或“pray”,如从节点302a到302b的转换所指示。尽管未示出,但是可以对每个转换进行评分。例如,网格300a可以指示第一个术语是“play”的70%的可能性和第一个术语是“pray”的仅30%的可能性。给定前面的术语是“play”或“pray”,则字词网格300a指示话音查询中的第二个术语是来自节点302b的出站转换中的任何一个(例如,“lady”、#unk或“labrador”)的相应概率。在一些实施方式中,语音解码器可以选择通过具有如由转换所指示的最高分数的网格的路径作为话音查询的最可能的转录。

图3a示出了语言模型已经生成并且包括由#unk未知术语符号表示的残余一元语法的初始字词网格300a。图3b示出了中间字词网格300b,在中间字词网格300b中在未知符号的每个实例处将与不同类模型相关联的各个类符号插入到来自图3a的字词网格中字词网格。图3c示出了扩充的字词网格300c,在扩充的字词网格300c中选择了最可能的类并且来自类的个体术语被拼接到来自图3b的字词网格中字词网格。

通常,系统100最初标识特定候选转录序列(例如,图1中的“labygama”和“ogcar”)的残余一元语法的集合。然后,系统100将未知符号插入到所标识的残余一元语法的每个实例中。在识别过程期间,系统100然后将与被确定为对于残余一元语法的每个实例最适合的类模型相对应的类符号插入到候选转录序列内的残余一元语法的对应位置中。最后,系统100然后将从适当的类模型的术语的集聚当中的最可能的术语插入到类符号的每个实例中。

最初参照图3a,字词网格300a被示出用于转录用户102的话音查询104a的话语。字词网格300a被表示为包括语词之间的可能边界相对应的一个或多个节点302a-g的有限状态转换器。字词网格300a包括对于由字词网格300a表示的话语的候选转录中的可能词的多个路径。另外,路径中的每一个可以具有作为来自对应节点的正确边缘的特定边缘的一个或多个权重或概率。权重可以由语言模型确定,并且可以基于例如对于话语音频信号的对应部分的声学与该边缘的词之间的匹配方面的置信度以及该词在语法和/或词汇上与字词网格300a中的其他词的配合有多好。例如,在由n-元语法语言模型确定的字词网格中,给定词的概率可以基于该词跟随紧接着前面的n-1个词的统计可能性。

在图3a中所描绘的示例中,系统100标识包括节点302b和302d之间以及实例302f和302g之间的残余一元语法的可能的实例的可能的路径。然后,系统100生成包括残余一元语法符号312和314的可替换的路径。

现在参照图3b,中间字词网格300b在字词网格300a中的残余一元语法符号312和314的每个实例处提供类模型130a和130b的可替换的路径。如所描述的那样,字词网格300b包括节点302b和302d之间的两个可替换的基于类的路径-一个具有“#contact”类符号,其中可以插入来自类模型130a的候选的基于类的术语,而另一个具有“#song”类符号,其中可以插入来自类模型130b的候选的基于类的术语。字词网格300b还包括用于相同类模型的节点302f和302g之间的两个可替换的基于类的路径。在这两个示例中,系统100在字词网格内的残余一元语法符号的每个实例处为所有编译的类模型生成可替换的路径。例如,尽管图3b描绘了两个类模型,但是如果系统100已经编译了五个类模型,则在节点之间的残余一元语法符号的每个实例处,字词网格300b将包括表示来自五个编译的类模型中的每一个的基于类的术语的可替换的路径的五个可替换的路径。在一些实施方式中,系统可以通过访问从多个类模型中标识标记的术语的并集模型来标识在残余一元语法符号的每个实例处插入的类符号的集合。基于指示与并集模型中的各个术语相关联的类的标记,对于由并集模型中的术语表示的类的全部或一些,系统可以将类符号插入到字词网格300b中。

每个可替换的基于类的路径还与指示基于类的术语是在两个特定节点之间、包括在话音查询104a的话语的转录内的正确术语的可能性的概率相关联。可以基于例如针对转录序列内的先前或随后路径预测的术语、与用户102相关联的当前上下文、与接收到的话音查询104a相关联的上下文、以及其他类型的语言指示符来计算相应的基于类的路径概率。在一些情况下,候选序列内的某些术语可以与特定类模型相关联。例如,候选的转录内诸如“play”或“rewind”的话音命令的存在可以与歌曲类相关联,而诸如“从……传送”或“向……发邮件”的其他短语可以与联系人类相关联。

在所描绘的示例中,节点302b和302d之间的、“#contact”符号的基于类的路径与概率“0.36”相关联,而“#song”符号的可替换的基于类的路径与概率“0.43”相关联。这指示存在来自歌曲类的术语被包括在话音查询104a的正确转录序列内的该位置中的更高的可能性。相反,节点302f和302g之间的、“#contact”类符号的基于类的路径与概率“0.31”相关联,而“#song”类符号的可替换的基于类的路径与概率“0.63”相关联,这指示存在来自联系人类的术语被包括在话音查询104a的正确转录序列内的该位置中的更高的可能性。

现在参照图3c,示出了字词网格300c,其中为节点302b和302b以及节点302f和302g之间的残余一元语法的每个实例选择了最可能的类。在该示例中,为节点302b和302b之间的第一基于类的路径选择歌曲类,为节点302f和302g之间的第二基于类的路径选择联系人类。

系统100选择与每个类相关联的术语的集聚内的最可能的术语以插入到候选转录序列内的类符号的每个实例中。在一些情况下,基于标识类模型内的最类似于话语的对应部分的发音转录的特定术语来选择类术语。例如,在图1中,转录模块126选择歌曲术语“labygama”以插入到候选转录序列中,因为该术语最类似于由音频数据104b指示的话语“le-di-ga-ma”。

在一些实施方式中,不是从对应类模型中选择在类符号的每个实例处插入的类术语,而是系统100可以改为从诸如图2中描绘的并集模型130d的组合模型中选择类术语。在这样的实施方式中,系统100可以将并集模型130d内的类标识符针对类符号的每个实例进行匹配,以过滤并选择最可能的术语以插入到转录序列的位置中。

图4是用于使用基于类的语言模型动态地适应用户的个体话音查询的语音识别的示例性过程400的流程图。简而言之,过程400可以包括接收话音查询(410)、生成与各个类相关联的一个或多个类模型(420)、访问语言模型(430)、处理对于每个相应类的语言模型(440)、以及生成转录(450)。

更详细地,过程400可以包括接收话音查询(410)。例如,服务器120可以接收来自用户102的话音查询104a。话音查询104a可以包括与用户102的话语相对应的音频数据104b,以及与音频数据104b或用户102相关联的上下文数据104c。例如,如图1所描绘的那样,上下文数据104c可以是被存储在用户设备110上的联系人的列表,或者与由用户先前播放的歌曲相关联的元数据(例如,歌曲标题、艺术家名字)。

过程400可以包括生成与各个类相关联的一个或多个类模型(420)。例如,响应于接收到话音查询104a,服务器120可以生成基于与音频数据104b或用户102相关联的上下文数据104c来共同地标识术语的集合的类模型130a和130b。类模型130a和130b还可以共同地标识被分配了该术语的集合中的每个相应术语的相应类。这些术语中的至少一些被分配给不同的类。例如,如图1所描绘的那样,类模型130a和130b各自与不同的类(例如,#song类和#contact类)相关联,并标识与每个相应类相关联的术语的集合。

过程400可以包括访问语言模型(430)。例如,服务器120的语言模型处理器124可以访问包括表示在与语言模型144相关联的语言内不可能出现的术语的集合的残余一元语法符号的处理过的语言模型144。如先前关于图1所描述的那样,在一些实施方式中,处理过的语言模型144可以由语言模型处理器124通过使用训练数据(该训练数据包括替换例如语言中的未知术语或满足一些其他标准的术语的残余一元语法或类符号)训练初始语言模型142来生成。在其他实施方式中,语言模型处理器124可以处理训练后(post-training)的初始语言模型142以合并包括在残余一元语法模型130c内的术语以生成处理过的语言模型144。

过程400可以包括处理对于每个相应类的语言模型(440)。例如,服务器20的语言模型处理器124可以处理语言模型144以生成语言模型146。该处理可以包括在语言模型144内出现的残余一元语法的每个实例处插入与相应类相关联的相应类符号,以便生成语言模型146。在图1中所描绘的示例中,语言模型处理器124分别将与歌曲和联系人类相关联的符号“#song”和“#contact”插入“#unk”符号的每个实例中。可以执行插入使得每个类模型进入残余一元语法的每个实例中。

过程400可以包括生成转录(450)。例如,服务器120的转录模块126可以使用修改的语言模型144生成用户102的话语的转录104d,然后响应于接收到的话音查询104a发送该转录104d用于输出。

在一些实施方式中,转录模块126可以访问与和类模型130a和130b相关联的、类模型130a和130b内包括的术语被分配给的(例如,歌曲类和联系人类)类相对应的基于类的语言模型132a和132b。转录模块126然后确定在候选语言序列中与被插入到修改的语言模型144中的每个相应类符号的相应类符号位置相对应的位置处,相应类别内的术语出现在候选语言序列内的相应概率。该确定至少基于由与由和类模型130a和130b相关联的相应类符号指示的相应类相对应的基于类的语言模型132a和132b中的特定的一个所指示的概率。例如,对于处理后的查询“播放从#contact传送的#song”,在相应类符号的每个实例处,转录模块126可以基于由类模型130a和130b共同地标识的术语来标识要被放置在相应类模型的实例中的术语,然后标识与出现在由基于类的语言模型132a和132b指定的候选识别序列内的术语相关联的对应概率。然后,转录模块126可以使用利用基于类的语言模型132a和132b确定的概率来生成用户102的话语的转录104d。可替换地,在其他情况下,转录模块126可以最初生成在基于类的语言模型132a和132b内包括确定的概率的插值的语言模型146,然后使用插值的语言模型146生成转录104d。

图5是可以被用于实施本文档中描述的系统和方法的作为客户端或作为服务器或多个服务器的计算设备500、550的框图。计算设备500意图表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。计算设备550意图表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能手机和其他类似的计算设备。

此外,计算设备500或510可以包括通用串行总线(universalserialbus,usb)闪速驱动器。usb闪速驱动器可以存储操作系统和其他应用。usb闪速驱动器可以包括输入/输出组件,诸如可以被插入另一计算设备的usb端口的无线发送器或usb连接器。这里示出的组件、它们的连接和关系以及它们的功能仅仅意在是示例性的,并不意味着限制本文档中描述和/或要求保护的本发明的实施方式。

计算设备500包括处理器502、存储器504、存储设备506、连接到存储器504和高速扩展端口510的高速接口508、以及连接到低速总线514和存储设备506的低速接口512。组件502、504、506、508、510和512中的每一个使用各种总线互连,并且可以被安装在公共主板上或者以其他适当的方式安装。处理器502可以处理用于在计算设备500内执行的指令,包括在存储器504中或存储设备506上存储的用以在外部输入/输出设备(诸如耦合到高速接口508的显示器516)上显示gui的图形信息的指令。在其他实施方式中,可以适当地与多个存储器和多个类型的存储器一起使用多个处理器和/或多个总线。并且,可以连接多个计算设备500,每个设备提供例如作为服务器库(serverbank)、刀片服务器组或多处理器系统的必要操作的部分。

存储器504存储计算设备500内的信息。在一个实施方案中,存储器504是易失性存储器单元或多个易失性存储器单元。在另一实施方案中,存储器504是非易失性存储器单元或多个非易失性存储器单元。存储器504还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备506能够为计算设备500提供大容量存储。在一个实施方式中,存储设备506可以是或包含计算机可读介质(诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储器设备),或者包括存储区域网络中的设备或其他配置的设备的阵列。计算机程序产品可以有形地被体现在信息载体中。计算机程序产品还可以包含指令,当该指令被运行时执行一个或多个方法,诸如上面描述的那些方法。信息载体是计算机可读介质或机器可读介质,诸如存储器504、存储设备506或处理器502上的存储器。

高速控制器508管理用于计算设备500的带宽密集型操作,而低速控制器512管理较低带宽密集型操作。这种功能的分配仅仅是示例性的。在一个实施方式中,高速控制器508例如通过图形处理器或加速器被耦合到存储器504、显示器516,并且被耦合到可以接受各种扩展卡(未示出)的高速扩展端口510。在实施方式中,低速控制器512被耦合到存储设备506和低速扩展端口514。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、定点设备、麦克风/扬声器对、扫描仪或诸如交换机或路由器的网络设备。计算设备500可以以多种不同的形式被实施,如图中所示。例如,它可以被实施为标准服务器520,或者在这样的服务器组中被实施多次。它还可以被实施为机架服务器系统524的部分。此外,它可以在诸如膝上型计算机522的个人计算机中被实施。可替换地,来自计算设备500的组件可以与移动设备(未示出)(诸如设备550)中的其他组件组合。这样的设备中的每一个可以包含计算设备500、550中的一个或多个,并且整个系统可以由彼此通信的多个计算设备500、550组成。

计算设备500可以以多种不同的形式被实施,如图中所示。例如,它可以被实施为标准服务器520,或者在这样的服务器组中被实施多次。它还可以被实施为机架服务器系统524的部分。此外,它可以在诸如膝上型计算机522的个人计算机中被实施。可替换地,来自计算设备500的组件可以与移动设备(未示出)(诸如设备550)中的其他组件组合。这样的设备中的每一个可以包含计算设备500、550中的一个或多个,并且整个系统可以由彼此通信的多个计算设备500、550组成。

计算设备550包括处理器552、存储器564和输入/输出设备(诸如显示器554、通信接口566和收发器568)以及其他组件。设备550还可以被提供有存储设备(诸如微驱动器或其他设备)以提供附加的存储。组件550、552、564、554、566和568中的每一个使用各种总线互连,并且几个组件可以被安装在公共主板上或者以其他适当的方式安装。

处理器552可以执行计算设备550内的指令(包括存储在存储器564中的指令)。处理器可以被实施为包括分离的和多个模拟和数字处理器的芯片的芯片组。此外,可以使用多个架构中的任何架构来实施处理器。例如,处理器510可以是cisc(complexinstructionsetcomputers,复杂指令集计算机)处理器、risc(reducedinstructionsetcomputer,精简指令集计算机)处理器、或misc(minimalinstructionsetcomputer,最小指令集计算机)处理器。处理器可以提供例如设备550的其他组件的协调,诸如用户接口的控制、由设备550运行的应用以及通过设备550的无线通信。

处理器552可以通过控制接口558和被耦合到显示器544的显示器接口556与用户通信。显示器554可以是例如tft(thin-film-transistorliquidcrystaldisplay,薄膜晶体管液晶显示器)显示器或oled(organiclightemittingdiode,有机发光二极管)显示器、或者其它适当的显示器技术。显示器接口556可以包括用于驱动显示器544以向用户呈现图形和其他信息的适当的电路。控制接口558可以从用户接收命令并将它们转换用于提交给处理器522。此外,可以提供与处理器552通信的外部接口562,以便使能设备550与其他设备的近区域通信。外部接口562可以在一些实施方式中例如提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。

存储器564存储计算设备550内的信息。存储器564可以被实施为计算机可读介质或媒体、易失性存储器单元或多个易失性存储器单元单元、或非易失性存储器单元或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器574并且扩展存储器574通过扩展接口572被连接到设备550,扩展接口572可以包括例如simm(singleinlinememorymodule,单列直插式存储器模块)卡接口。这样的扩展存储器574可以为设备550提供额外的存储空间,或者还可以存储用于设备510的应用或其他信息。具体地,扩展存储器574可以包括进行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器574可以被提供为用于设备550的安全模块,并且可以用允许设备550的安全使用的指令来编程。此外,可以经由simm卡提供安全应用连同附加信息,诸如以不可入侵的方式将识别信息放置在simm卡上。

存储器可以包括例如闪速存储器和/或nvram存储器,如下所讨论的那样。在一个实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,当该指令被运行时执行一种或多种方法,诸如上述方法。信息载体是计算机可读介质或机器可读介质,诸如存储器564、扩展存储器574、或处理器552上的可以例如通过收发器568或外部接口562接收的存储器。

设备550可以通过通信接口566无线地通信,其在必要的情况下可以包括数字信号处理电路。通信接口566可以提供各种模式或协议下的通信,诸如gsm话音呼叫、sms、ems或mms消息、cdma、tdma、pdc、wcdma、cdma2000或gprs以及其他。这种通信可以例如通过射频收发器568发生。此外,可能会出现短程通信,诸如使用蓝牙、wifi或其他这种收发器(未示出)。此外,gps(globalpositioningsystem,全球定位系统)接收器模块570可以向设备550提供附加的导航相关的和位置相关的无线数据,该数据可以由在设备550上运行的应用适当地使用。

设备550还可以使用音频编解码器560可听地通信,该音频编解码器560可以接收来自用户的口语信息并将其转换成可用的数字信息。音频编解码器560同样地可以(诸如通过扬声器)例如在设备510的听筒(handset)中为用户生成可听的声音。这样的声音可以包括来自话音电话呼叫的声音,可以包括记录的声音(例如,话音消息、音乐文件等),并且还可以包括由在设备550上操作的应用生成的声音。

计算设备550可以以若干不同的形式被实施,如图中所示。例如,它可以被实施为蜂窝电话480。它还可以被实施为智能手机582、个人数字助理或其他类似移动设备的部分。

这里描述的系统和方法的各种实施方式可以在数字电子电路、集成电路、专门设计的asic(applicationspecificintegratedcircuits,专用集成电路)、计算机硬件、固件、软件和/或这些实施方式的组合中实现。这些各种实施方式可以包括在包括至少一个可编程处理器的可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该至少一个可编程处理器可以是专用的或通用的,该至少一个可编程处理器被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。

这些计算机程序(也熟知为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言,和/或以汇编/机器语言实施。如本文所使用的,术语“机器可读介质”“计算机可读介质”是指被用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(programmablelogicdevice,pld)),其包括将机器指令作为机器可读信号来接收的机器可读介质。术语“机器可读信号”是指被用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,这里描述的系统和技术可以在具有显示器设备(例如,用于向用户显示信息的crt(cathoderaytube,阴极射线管)或lcd(liquidcrystaldisplay,液晶显示器)监视器)和键盘和指示设备(例如,用户可以通过其向计算机提供输入的鼠标或轨迹球)的计算机上实施。其他种类的设备也可以被用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学输入、语音输入或触觉输入。

这里描述的系统和技术可以在包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有用户可通过其与这里描述的系统和技术的实施方式交互的图形用户界面或web浏览器的客户端计算机)、或这样的后端、中间件或前端组件的任何组合的计算系统中实施。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)和因特网。

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由于在各个计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而产生。

已经描述了许多实施例。然而,应该理解的是,在不脱离本发明的精神和范围的情况下,可以进行各种修改。此外,图中描绘的逻辑流程不要求所示的特定顺序或相继顺序来实现期望的结果。此外,可以从所描述的流程中提供其他步骤,或者可以从所描述的流程中消除步骤,并且可以将其他组件添加到所描述的系统或从所述系统中去除。因此,其他实施例在以下权利要求的范围内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips