自动语音识别输出的域特定纠正
文献发布时间:2023-06-19 09:46:20
技术领域
本发明的实施例涉及自动语音识别输出的域特定纠正。具体而言,实施例接收自动语音识别(ASR)引擎的输出并且提供该输出的域特定纠正。
背景技术
语音正成为用于在多个应用中进行交互的优选技术。例如,普遍存在的设备和自动语音识别(ASR)引擎的可用性已经使得企业能够以由客户以口语形式进行的查询驱动的对话形式提供其交互服务。
然而,ASR引擎的输出可以包括错误。用于输出的常规错误纠正技术可以被描述为手动错误纠正、基于备选假设的错误纠正、基于模式学习的错误纠正以及后期编辑错误纠正。这些技术可以使用人为干扰。这些技术可以根据预定义的词汇集(词典字词或域特定的字词)或使用n元语法(n-gram)上下文信息来创建模型。在从词汇集中遍历已知字词的网格并找到替换之后,对正确字词的搜索结束。
发明内容
根据实施例,提供了用于自动语音识别的输出的域特定纠正的计算机实现的方法。计算机实现的方法包括操作。接收自动语音识别引擎的输出。从输出中提取字母数字序列,其中字母数字序列表示自动语音识别引擎的错误翻译。生成针对字母数字序列的候选。基于与候选相关联的分数来对候选进行排名。选择候选中具有分数中的最高分数的候选。通过用所选择的候选替换字母数字序列来纠正输出。返回经纠正的输出。
根据其他实施例,提供了用于自动语音识别的输出的域特定纠正的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有包含在其上的程序代码,该程序代码由至少一个处理器可执行,以执行操作。接收自动语音识别引擎的输出。从输出中提取字母数字序列,其中字母数字序列表示自动语音识别引擎的错误翻译。生成针对字母数字序列的候选。基于与候选相关联的分数来对候选进行排名。选择候选中具有分数中的最高分数的候选。通过用所选择的候选替换字母数字序列来纠正输出。返回经纠正的输出。
在其他实施例中,提供了用于自动语音识别的输出的域特定纠正的计算机系统。该计算机系统包括:一个或多个处理器、一个或多个计算机可读存储器和一个或多个计算机可读的有形存储设备;以及程序指令,该程序指令被存储在一个或多个计算机可读的有形存储设备中的至少一个计算机可读的有形存储设备上,以供一个或多个处理器中的至少一个处理器经由一个或多个存储器中的至少一个存储器执行,以执行操作。接收自动语音识别引擎的输出。从输出中提取字母数字序列,其中字母数字序列表示自动语音识别引擎的错误翻译。生成针对字母数字序列的候选。基于与候选相关联的分数来对候选进行排名。选择候选中具有分数中的最高分数的候选。通过用所选择的候选替换字母数字序列来纠正输出。返回经纠正的输出。
附图说明
现在参照附图,在附图中,相同的附图标记表示对应的部分,贯穿附图:
图1以框图形式图示了根据特定实施例的计算环境。
图2图示了根据特定实施例的ASR引擎的输出的纠正的示例。
图3以流程图形式图示了根据特定实施例的用于纠正ASR引擎的输出的操作。
图4以流程图形式图示了根据特定实施例的用于生成候选列表的操作。
图5图示了根据特定实施例的用于生成候选列表的递归公式的伪代码。
图6A和图6B以流程图形式图示了根据特定实施例的用于对候选列表上的候选进行排名并且从候选列表中选择候选的操作。
图7图示了根据特定实施例的用于分层隐马尔可夫模型(HMM)的顶层架构。
图8A图示了根据特定实施例的用于非提取状态的字词HMM的示例架构800。
图8B图示了根据特定实施例的用于提取状态的示例架构810。
图9图示了根据特定实施例的从查询“我的订单号excite for ate在哪里”中提取字母数字部分。
图10A图示了根据特定实施例的概率P(C|A)的计算。
图10B图示了根据特定实施例的概率P(A|C)的计算。
图10C图示了根据特定实施例的对正向技术等式的示例修改1020。
图11图示了根据特定实施例的计算节点。
图12图示了根据特定实施例的云计算环境。
图13图示了根据特定实施例的抽象模型层。
具体实施方式
已经出于说明的目的呈现了本发明的各种实施例的描述,但这些描述并不旨在是穷举性的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变型对于本领域的普通技术人员而言将是明显的。选择了本文中所使用的术语是为了最好地解释实施例的原理、对市场上发现的技术的实际应用或技术改进,或使得本领域的其他普通技术人员能够理解本文中所公开的实施例。
图1以框图形式图示了根据特定实施例的计算环境。在图1中,计算设备100被耦合至数据存储库150。计算设备100包括自动语音识别(ASR)引擎110和自动语音纠正引擎120。数据存储库150存储统计参数160、域规则170和纠正模型180。
在某些实施例中,自动语音纠正引擎120包括提取模块122、候选生成模块124和候选排名模块126。
使用映射182和其他特征184来训练纠正模型180。在某些实施例中,基于表示ASR引擎110的错误翻译的字母数字序列的输入,纠正模型180输出候选列表和相关联分数。可以基于统计参数160和域规则170来调整这些分数。在某些实施例中,纠正模型180学习字母数字序列以及字母数字序列在并入导致输出中的错误翻译的其他特征184(诸如噪声和用户的不同口音)的情况下发声的不同方式的映射182。
在某些实施例中,域规则170由通过业务知识驱动的规则组成。例如,业务知识可以指示16个字符的库存单位(SKU),这16个字符由以下各者组成:6个字符制造者代码、2个字符批次(lot)代码、6个字符产品代码以及2个字符变化代码。这种业务知识帮助自动语音纠正引擎120确定停顿,在常规语言中标识字符序列的长度,使用子长度来建立转变并且对候选进行排名。
在某些实施例中,统计参数160包括:a)每个语声(phonetic sound)与语料库中可能的字符的关联(即,局部关联)和b)每个语声在整个语料库中的发生率(即,全局关联)。
ASR引擎110将口语字词和字母数字序列转换成输出的文本。然而,输出可以包含表示ASR引擎110的错误翻译的字母数字序列。自动语音纠正引擎120纠正这些错误翻译。字母数字序列可以被描述为字符的任何非词典序列。例如,字母数字序列可以包括字母字符、数字字符、特殊字符(例如连字符)、符号、空格等的任意组合(例如字母数字序列可以具有所有数字、所有字母字符、数字与字母字符的组合,等等)。例如,在查询“我的订单号excite4ate在哪里?”中,表示错误翻译的字母数字序列是“excite 4ate”,其包括字母字符、空格和一个数字字符。
在许多情况下,在来自ASR引擎110的输出中检测到的小错误并不那么重要,这是由于它们不会改变整个句子的含义,但可以存在语音的正确性和准确性很重要的特定部分。通常,重要的字母数字序列包括订单号、地址、电话号码和不是词典字词的其他字符或数字序列。一些应用依赖于这些重要的字母数字序列是正确的。
这些重要的字母数字序列可以根据应用而改变。例如,对于电子商务领域,用户可以通过订单号或货号查询订单,并且如果错误地捕获了订单号或货号本身,那么应用无法继续处理用户的请求。自动语音纠正引擎120能够纠正从ASR引擎110输出的词典字词中错误捕获到的内容。
利用实施例,自动语音纠正引擎120能够处理字母数字序列中的错误。字母数字序列的固有性质是其为上下文和域无关的。此外,通常无法限定字母数字序列与先前或后续字词同时出现的可能性。此外,自动语音纠正引擎120增强了识别语音的字母数字序列的准确性。
在某些实施例中,自动语音纠正引擎120在不参考原始声音的情况下纠正ASR引擎110的输出。
在某些实施例中,首先,自动语音纠正引擎120生成候选列表,该候选列表可以是用户说出的实际字母数字序列。自动语音纠正引擎120使用用于生成候选的语音相似性。在这些实施例中,其次,自动语音纠正引擎120对列表上的候选进行排名并且选择候选。自动语音纠正引擎120可以使用机器学习技术找到每个候选的分数,并根据每个分数对候选进行排名。利用实施例,自动语音纠正引擎120通过ASR以较高准确性纠正错误的字母数字识别。如果附加业务知识经由域规则170而可获得,那么自动语音纠正引擎120可以使用该附加业务知识来进一步提高准确性。
利用实施例,自动语音纠正引擎120与语言无关。因此,假定存在将该语言中的字词映射到音素集的词典,自动语音纠正引擎120可以用于任何口语。
在某些实施例中,自动语音纠正引擎120提供基于语音相似性的域无关的技术,以用于列举ASR引擎110的输出中的非词典字词(字母数字字词)。在某些实施例中,自动语音纠正引擎120从可能的字母数字序列的指数形式较大的搜索空间中列举一些可能的候选。一种用于学习各种不规则性(例如背景噪声、多种口音等)的机器学习途径,这些不规则性导致ASR引擎110误解字母数字序列和输出错误。自动语音纠正引擎120可以存储以映射的形式学习到的信息,并且可以使用从映射中学习到的统计参数来反转这些不规则性以取回预期的字母数字序列。自动语音纠正引擎120组合从数据中学习到的统计参数,以便准确地对候选进行排名。在某些实施例中,通过如下步骤来提高排名的准确性:使用以下启发法(强调因数)在口语字母数字序列中的停顿之后增加第一口语音节的权重,考虑字母数字序列的全局和局部关联以及ASR引擎110输出的失真语音两者,以及惩罚在从数据中学习到的映射中不具有关联的候选。
在某些实施例中,自动语音纠正引擎120提供了域无关的技术,其用于通过如下步骤来针对字母数字序列纠正ASR引擎110的输出:基于字母数字字符序列的语音相似性来标识替换候选,以及使用多段比较途径和迭代前缀段提取技术。
在某些实施例中,自动语音纠正引擎120使用模型化语音中的字母数字噪声和口音变化的模糊逻辑技术,以针对字母数字序列进一步评估和反转ASR引擎110的输出中的错误。模糊逻辑技术使用启发法来确定强调因数,以在口语序列中的可配置的停顿之后对第一口语音节使用较高权重,应用全局和局部关联技术的组合以执行失真的语音输出的纠正,并且进一步惩罚在从训练数据中学习到的映射中不具有关联的候选。
图2图示了根据特定实施例的ASR引擎110的输出的纠正的示例。在图2中,用户说出“我的订单号X848在哪里?”,其被输入到ASR引擎120。ASR引擎120将输入转换成文本,并且输出“我的订单号excite 4ate在哪里?”。将ASR引擎120的输出输入到自动语音纠正引擎120,该自动语音纠正引擎纠正错误以输出“我的订单号X848在哪里?”
利用实施例,在给定包含从一般语音到文本转换的字母数字序列的任何句子或查询的ASR引擎110的输出的情况下,自动语音纠正引擎120纠正已被错误地捕获为字词的字母数字序列。利用实施例,自动语音纠正引擎120的输入是ASR引擎110的文本输出,并且自动语音纠正引擎120的输出是作为输入向ASR引擎110说出的最有可能的字母数字。
图3以流程图形式图示了根据特定实施例的用于纠正ASR引擎的输出的操作。控制从方框300处开始,其中,自动语音纠正引擎120接收到ASR 110的输出(例如“我的订单号excite 4ate在哪里?”)。在方框302中,自动语音纠正引擎120从ASR引擎110的输出中提取字母数字序列(例如“excite 4ate”),其中该字母数字序列表示ASR引擎110的错误翻译。在某些实施例中,找到表示错误翻译的多个字母数字序列,并且,自动语音纠正引擎120在输出方框310中的经纠正的输出之前对这些字母数字序列中的每一个执行方框304至308的处理。
在方框304中,自动语音纠正引擎120生成候选(例如6148、6A48、X848、XE48、XY48)。在方框306中,自动语音纠正引擎120对候选(例如1)X848、2)XE48、3)6148、4)XY48、5)6A48)进行排名。在方框308中,自动语音纠正引擎120通过用所选择的候选来替换字母数字序列来纠正ASR引擎110的输出(例如“我的订单号X848在哪里?”)。在某些实施例中,自动语音纠正引擎120通过用最高排名的候选替换可能的字母数字序列来纠正ASR引擎110的输出。在方框310中,自动语音纠正引擎120返回ASR引擎的经纠正的输出。初始地,ASR引擎110可能已经接收到关于一些交易的语音通信(例如查阅发票、访问账户、下订单等),并且经纠正的输出用于完成交易。
在某些实施例中,自动语音纠正引擎120包括提取模块122、候选生成模块124和候选排名模块126。提取模块122从ASR引擎110的输出(例如句子或查询)中提取字母数字序列。候选生成模块124找到候选列表,这些候选接近于(在声学空间中)被错误检测到的字词。候选排名模块126基于从数据中学习到的统计参数来对候选进行排名。然后,将最有可能的候选添加回ASR引擎110的输出中的适当位置中并且返回。
图4以流程图形式图示了根据特定实施例的用于生成候选列表的操作。图4的处理可以由自动语音纠正引擎120的候选生成模块执行。
控制从方框400处开始,其中自动语音纠正引擎120接收到表示ASR引擎的错误翻译的错误的字母数字序列。在方框402中,自动语音纠正引擎120将字母数字序列分解成语音段。在方框402中,自动语音纠正引擎120确定是否已选择了所有语音段。如果选择了所有语音段,则处理继续到方框412,否则,处理继续到方框406。
在方框406中,从第一前缀段开始,自动语音纠正引擎120从语音段中选择下一个前缀段(在从语音段中移除所选择的前缀段的情况下)。在方框408中,自动语音纠正引擎120确定针对所选择的前缀段是否存在一个或多个语音匹配的字母数字。如果针对所选择的前缀段存在一个或多个语音匹配的字母数字,那么处理继续到方框410,否则,处理循环回到方框404。在某些实施例中,如果针对所选择的前缀段未找到语音匹配的字母数字,那么在方框412中,前缀段本身用于创建候选列表。在方框410中,自动语音纠正引擎120将一个或多个字母数字添加为前缀段的候选。例如,针对“excite”的前缀段,字母数字可以是:X8、XE、61、XY或6A。从方框410中,处理继续到方框404。
在方框412中,自动语音纠正引擎120针对语音段中的每个段使用一个或多个字母数字来创建候选列表。在方框414中,自动语音纠正引擎120输出候选列表。
因此,自动语音纠正引擎120通过递归过程列举在语音上类似于前缀段的可能的候选。
图5图示了根据特定实施例的用于生成候选列表的递归公式的伪代码。自动语音纠正引擎120将这组音素用于ASR引擎110的输出(ASR的语音表示)和字母数字两者。音素可以被描述为声音的单位。任何字词可以基于其声音而被分解成音素序列,而与语言无关。ARPABET是有助于表示字词的音素序列的语音转录技术中的一者。词典可以用语言中的字词/字母及其语音表示的映射来构建。CMPU发音词典(CMUdict)是使用ARPABET的、包含英语的字词/字母及其语音表示的映射的词典的示例。因此,如果存在针对将该语言中的字词映射到音素集的任何语言的词典,那么自动语音纠正引擎120使用这种词典来生成适当的候选。
图6A和图6B以流程图形式图示了根据特定实施例的用于对候选列表上的候选进行排名并且从候选列表中选择候选的操作。控制从方框600处开始,其中自动语音纠正引擎120接收到表示ASR引擎的错误翻译的字母数字序列的候选列表。在方框602中,从候选列表中的第一候选开始,自动语音纠正引擎120选择下一个候选。在方框604中,自动语音纠正引擎120将候选的语音表示与ASR引擎的输出对准,以得到最小编辑距离(例如,excite=X8是接近的并且具有较小编辑距离)。方框604的操作可以被描述为将候选的语音表示与原始ASR输出对准以确定其接近度的过程。编辑距离可以被描述为以从原始ASR输出到达候选的改变(插入、更新或删除)的数量。
在方框606中,自动语音纠正引擎120使用纠正模型来生成候选的分数。在方框608中,自动语音纠正引擎120使用统计参数160与域规则170的任何组合可选地调整候选的分数。在某些实施例中,基于候选字母数字序列的表示ASR引擎110的错误翻译的输入,纠正模型180输出候选的分数(即,候选对于表示错误翻译的异步序列准确的可能性的概率)。然后,可以基于统计参数160和域规则170来调整分数。在特定的附加实施例中,分数是基于统计参数160、域规则170和纠正模型180的任意组合的。
在方框610中,自动语音纠正引擎120将候选、最小编辑距离和分数存储在排名列表中。在方框612中,自动语音纠正引擎120确定是否存在要从候选列表中选择的另一候选。如果存在要从候选列表中选择的另一候选,那么处理继续到方框602,否则,处理继续到方框614(图6B)。
在方框614中,自动语音纠正引擎120基于分数对排名列表中的候选进行排序。在方框616中,自动语音纠正引擎120从经排序的候选中输出最有可能的准确候选。在某些实施例中,具有最高分数的候选被输出。在某些实施例中,分数和最小编辑距离用于从经排序的候选中选择最有可能的准确候选。例如,如果多个候选具有类似分数,那么自动语音纠正引擎120可以选择多个候选中具有较小的最小编辑距离的一个候选。在某些实施例中,一旦使用编辑距离来建立接近度,那么可以使用附加技术(统计参数、域规则和机器学习模型的输出)对候选进行排名。
在某些实施例中,自动语音纠正引擎120为候选中的每一个给出可能性分数,该可能性分数是所说出的实际字母数字。为此,自动语音纠正引擎120用由ASR引擎110输出的成对的错误语音表示和正确的预期字母数字序列来训练纠正模型。纠正模型180学习字母数字序列与字母数字序列可以在并入其他特征184的情况下发声的各种方式之间的映射182,其他特征184诸如噪声、用户的不同口音以及使字母数字序列将被ASR引擎110错误地翻译的任何特征。映射182可以使用神经网络或输入数据的简单动态编程对准中的任一者来构建。纠正模型180学习字母数字序列的各种语音表示。这些语音表示容忍不规则性,诸如背景噪声、不同口音等。一旦映射可用,自动语音纠正引擎120就连同统计参数一起对候选进行排名。假设ASR引擎110的输出是A且一个候选是C,那么自动语音纠正引擎120在给定该ASR输出或等效地给定P(C|A)的情况下计算该候选的可能性。图10A图示了根据特定实施例的概率P(C|A)的示例计算1000。
字母数字序列和候选被分解成其相应的音素集,并使用动态编程进行对准。图10B图示了根据特定实施例的概率P(A|C)的示例计算1010。
强调因数在口语序列中的停顿之后增加了第一口语音节的权重。这样做是为用户说出字母数字所发出的初始语音提供更高置信度。
分数是由ASR引擎110基于字母数字的全局关联和局部关联(统计参数160)的平均值和语音表示的对准段来计算的。全局关联跨字母数字将该映射的重要性纳入考虑。局部关联在该特定字母数字Ci内的映射当中将该映射的重要性纳入考虑。对没有出现在从数据中学习到的映射中的关联处以惩罚。
在某些实施例中,字母数字序列提取是基于分层隐马尔可夫模型(HMM)的。在某些实施例中,自动语音纠正引擎120使用分层HMM从ASR引擎110的输出中提取被错误翻译的字母数字序列。然后,自动语音纠正引擎120使用纠正模型180来纠正被ASR引擎110错误翻译的这些字母数字序列。
图7图示了根据特定实施例的用于分层HMM的顶层架构700。分层HMM由两种级别组成:顶层短语HMM,其状态发出短语;以及底层字词HMM,其状态发出字词。wh-元素可以被描述为由wh-字词(什么、谁、哪个、何时、何地、为什么、如何)中的一者引入的从句。在图7中,WHADVP表示wh-元素的字词副词短语,而NP表示名词短语。具有字母数字的短语状态被称为提取状态。另外,SQ代表是/否问题。
图8A图示了根据特定实施例的用于非提取状态的字词HMM的示例架构800。此处,字词HMM的状态可以发出任何类型的字词(例如任何词性的字词)。图8B图示了根据特定实施例的用于提取状态的示例架构810。此处,字词HMM的状态可以发出作为数字序列或字符序列或两者的字词。
在某些实施例中,可以利用对适应HMM中的多个级别和提取特定的状态(字母数字)的修改,使用用于训练HMM(诸如正向技术、反向技术和维特比(viterbi)技术)的动态编程途径来执行训练过程。为了进行训练,实施例为模型提供大量句子和其中包含字母数字序列的查询。这些字母数字序列在短语级别和字词级别两者下被标记。图10C图示了根据特定实施例的对正向技术等式的示例修改1020。反向技术和维特比技术可以按照类似方式修改。
图9图示了根据特定实施例的从查询“我的订单号excite for ate在哪里”中提取字母数字部分。图9图示了用以标记查询所占用的最有可能的路径。状态之间的粗体转变表示最有可能的路径。虚线连接每种状态与该状态发出的字词。外部框表示短语级别状态(WHADVP、SQ、NP、字母数字等),并且框内的转变表示字词级别状态及在字词级别状态之间的转变。在该示例中,所提取的字母数字是“excite 4ate”。这种技术可以用于查找句子或查询内的字母数字部分的可能位置。
不同于取决于通过词典和其他已建立的辞典表示的语言辞典和域知识的常规系统,自动语音纠正引擎120与这种辞典无关。
不同于未能识别字母数字语音模式或针对字母数字语音模式具有较高误码率的常规系统,自动语音纠正引擎120针对字母数字模式良好地执行。
不同于使用依赖于相对于标准辞典的相似性或频率的置信度评分机制的常规系统,自动语音纠正引擎120提供候选的简短列表,并基于字母数字语音组合对这些候选的相似性进行评分。
不同于具有指数级复杂度的用于字母数字语音识别的常规系统,自动语音纠正引擎120按照多项式时间复杂度缩小适合于ASR引擎110输出的实时处理的候选。
实施例适用于机器人过程自动化和业务过程自动化(BPA)的对话系统,该业务过程自动化涉及在分销、保险、金融和其他行业中基于人对机器以及基于机器对机器的声音交互。
利用实施例,自动语音纠正引擎120不需要原始的口语句子或序列。
图11图示了根据特定实施例的计算环境1110。在某些实施例中,计算环境是云计算环境。参照图11,计算机节点1112仅是合适的计算节点的一个示例,并且不旨在暗示对本文中所描述的本发明的实施例的使用范围或功能性的任何限制。不论如何,计算机节点1112能够被实现和/或执行上文中所阐述的任何功能性。
计算机节点1112可以是计算机系统,其可与若干其他通用或专用计算系统环境或配置一起操作。可以适合于与计算机节点1112一起使用的熟知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式设备或膝上型计算机设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括上述系统或设备中的任一者的分布式云计算环境等。
可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述计算机节点1112。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机节点1112可以在由通过通信网络链接的远程处理设备来执行任务的分布式云计算环境中实践。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地计算机系统存储介质和远程计算机系统存储介质两者中。
如图11中所示,计算机节点1112以通用计算设备的形式示出。计算机节点1112的组件可以包括但不限于一个或多个处理器或处理单元1116、系统存储器1128和将包括系统存储器1128的各种系统组件耦合到一个或多个处理器或处理单元1116的总线1118。
总线1118表示若干类型的总线结构中的任何一种的一个或多个,包括使用各种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、加速图形端口和处理器或本地总线。通过示例而非限制的方式,这些架构包括行业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和外围组件互连(PCI)总线。
计算机节点1112通常包括各种计算机系统可读介质。这种介质可以是由计算机节点1112可访问的任何可用介质,并且其包括易失性和非易失性介质、可移除和不可移除介质。
系统存储器1128可以包括呈易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)1130和/或高速缓存存储器1132。计算机节点1112还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅通过示例,可以提供存储系统1134以用于从不可移除的非易失性磁性介质(未示出且通常被称为“硬盘驱动器”)读取和写入到不可移除的非易失性磁介质。尽管未示出,但可以提供用于从可移除的非易失性磁盘(例如“软盘”)读取和写入到可移除的非易失性磁盘的磁盘驱动器以及用于从可移除的非易失性光盘(诸如CD-ROM、DVD-ROM或其他光学介质)读取或写入到可移除的非易失性光盘的光盘驱动器。在这种情况下,每个驱动器都可以通过一个或多个数据介质接口连接到总线1118。如将在下文进一步描绘和描述的,系统存储器1128可以包括至少一个程序产品,该程序产品具有被配置为实施本发明的实施例的功能的一组(例如至少一个)程序模块。
具有一组(至少一个)程序模块1142的程序/实用程序1140可以通过示例而非限制的方式被存储在系统存储器1128中以及存储在操作系统、一个或多个应用程序、其他程序模块和程序数据中。操作系统、一个或多个应用程序、其他程序模块以及程序数据中的每一个或它们的某种组合可以包括联网环境的实现。程序模块1142通常实施如本文中所描述的本发明的实施例的功能和/或方法。
计算机节点1112还可以与以下各种装置通信:一个或多个外部设备1114,诸如键盘、指向设备、显示器1124等;使用户能够与计算机节点1112交互的一个或多个设备和/或使计算机节点1112能够与一个或多个其他计算设备通信的任何设备(例如网卡、调制解调器等)。这种通信可以经由输入/输出(I/O)接口1122发生。然而,计算机节点1112可以经由网络适配器1120与一个或多个网络(诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如互联网))通信。如所描绘的,网络适配器1120经由总线1118与计算机节点1112的其他组件通信。应理解,尽管未示出,但其他硬件和/或软件组件可以与计算机节点1112结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据档案存储系统等。
在某些实施例中,计算设备100具有计算机节点1112的架构。在某些实施例中,计算设备100是云基础架构的一部分。在特定备选实施例中,计算设备100不是云基础架构的一部分。
云实施例
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其他类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户账号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参照图12,描绘了说明性云计算环境1250。如所示的,云计算环境1250包括一个或多个云计算节点1210,利用该一个或多个云计算节点,由云的消费者使用的本地计算设备(诸如(例如)个人数字助理(PDA)或蜂窝电话1254A、台式计算机1254B、膝上型计算机1254C和/或汽车计算机系统1254N)可以通信。节点1210可以彼此通信。这些节点可以在一个或多个网络(诸如如上文所描述的私有云、共同体云、公共云或混合云,或他们的组合)中物理地或虚拟地分成组(未示出)。这允许云计算环境1250提供基础架构即服务、平台即服务和/或软件即服务,云的消费者不需要为其维护本地计算设备上的资源。应理解,图2中所示的计算设备1254A至1254N的类型仅旨在作为说明,并且应理解,计算节点1210和云计算环境1250可以通过任何类型的网络和/或网络可寻址连接(例如使用web浏览器)与任何类型的计算机化设备通信。
现在参照图13,示出了由云计算环境1250(图12)提供的一组功能抽象层。预先应理解,图13中所示的组件、层和功能仅旨在作为说明,且本发明的实施例不限于此。如所描绘的,提供了以下层和对应功能。
硬件和软件层1360包括硬件组件和软件组件。硬件组件的示例包括:大型主机1361;基于精简指令集计算机(RISC)架构的服务器1362;服务器1363;刀片服务器1364;存储设备1365;以及网络和联网组件1366。在一些实施例中,软件组件包括网络应用服务器软件1367和数据库软件1368。
虚拟化层1370提供了抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1371;虚拟存储装置1372;虚拟网络1373(包括虚拟专用网络);虚拟应用和操作系统1374;以及虚拟客户端1375。
在一个示例中,管理层1380可以提供下文所描述的功能。资源供应1381提供了对计算资源和用于在云计算环境内执行任务的其他资源的动态获取。当在云计算环境内利用资源时,计量和定价1382提供了成本跟踪,并且为这些资源的消费开具账单或发票。在一个示例中,这些资源可以包括应用软件许可。安全性为云的消费者和任务提供身份验证以及提供对数据和其他资源的保护。用户门户1383为消费者和系统管理员提供对云计算环境的访问。服务级别管理1384提供云计算资源分配和管理,以使得能够满足所需的服务级别。服务级别协议(SLA)规划和实行1385提供了根据SLA预期未来需求的云计算资源的预先安排和获取。
工作负载层1390提供了可以利用云计算环境的功能性的示例。从此层可以提供的工作负载和功能的示例包括:映射和导航1391;软件开发和生命周期管理1392;虚拟课堂教学传递1393;数据分析处理1394;交易处理1395;以及自动语音识别的输出的域特定纠正1396。
因此,在某些实施例中,将根据本文中所描述的实施例实现自动语音识别的输出的域特定纠正的软件或程序被提供为云环境中的服务。
附加实施例细节
在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
可以将这些计算机可读程序指令提供给计算机的处理器或其他可编程数据处理装置以产生机器,从而使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的手段。这些计算机可读程序指令还可以被存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用,从而使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现在流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图图示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能性和操作。在这方面,流程图或框图中的每个方框可以表示指令的模块、段或部分,该模块、段或部分包括用于实现指定的(多种)逻辑功能的一个或多个可执行指令。在一些备选实现中,方框中所提到的功能可以不按图中所提到的顺序发生。例如,连续示出的两个方框事实上可以作为一个步骤被实现,以部分或完全在时间上重叠的方式同时被执行、基本上同时地被执行,或者取决于所涉及的功能性,这些方框有时可以按照相反的顺序被执行。还要注意,框图和/或流程图图示的每个方框以及框图和/或流程图图示中的方框的组合可以由专用的基于硬件的系统来实现,该专用的基于硬件的系统执行指定的功能或动作或实施专用硬件和计算机指令的组合。
除非另有明确说明,否则术语“一个实施例(an embodiment)”、“实施例”、“多个实施例”、“该实施例”、“该多个实施例”、“一个或多个实施例”、“一些实施例”和“一个实施例(one embodiment)”是指“(多个)本发明的一个或多个(但并非全部)实施例”。
除非另有明确说明,否则术语“包括(including)”、“包括(comprising)”、“具有”及其变型表示“包括但不限于”。
除非另有明确说明,否则所列举的项目列表并不暗示任何或所有的项目是互相排斥的。
除非另有明确说明,否则术语“一”、“一个”和“该”是指“一个或多个”。
除非另有明确说明,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的设备可以通过一个或多个中间件直接或间接通信。
对具有彼此通信的若干组件的实施例的描述并不暗示需要所有这些组件。相反,描述了各种可选组件以说明本发明的各种可能的实施例。
当在本文中描述单个设备或物品时,将明显的是,可以使用多于一个设备/物品(无论他们是否协作)来代替单个设备/物品。类似地,在本文中描述了多于一个设备或物品(无论他们是否协作)的情况下,将明显的是,可以使用单个设备/物品来代替多于一个设备或物品,或可以使用不同数量的设备/物品来代替所示数量的设备或程序。备选地,设备的功能性和/或特征可以由未被明确地描述为具有这种功能性/特征的一个或多个其他设备来实施。因此,本发明的其他实施例不需要包括设备本身。
出于说明和描述的目的,已经呈现了对本发明的各种实施例的前述描述。并不旨在详尽地展现所公开的精确形式或将本发明限制于所公开的精确形式。鉴于以上教导,许多修改和变型都是可能的。本发明的范围不旨在由该详细描述限制,而是由所附权利要求书限制。以上说明书、示例和数据提供了对本发明的组合物的制造和使用的完整描述。由于可以在不脱离本发明的精神和范围的情况下做出本发明的许多实施例,因此本发明的实施例在下文中所附的权利要求书中。
前述描述提供了本发明的实施例的示例,并且可以在其他实施例中进行变型和替换。
- 自动语音识别输出的域特定纠正
- 使用用户纠正的自动语音识别学习