全面管理和连续训练的自动语音识别服务

文档序号:1343626 发布日期:2020-07-17 浏览:25次 >En<

阅读说明:本技术 全面管理和连续训练的自动语音识别服务 (Automatic speech recognition service for comprehensive management and continuous training ) 是由 A·辛格 D·苏瑞史 V·菲洛明 R·古拉班尼 V·朱可夫 S·西瓦苏布拉马尼亚 V·S 于 2018-11-16 设计创作,主要内容包括:描述了用于进行自动语音识别(ASR)的技术。用户可以将音频文件上传到存储位置。然后,所述用户向所述ASR服务提供对所述音频文件的引用。ASR引擎通过以下方式分析音频文件:使用声学模型将音频数据划分为单词,并且使用语言模型识别所述音频文件中说出的所述单词。可以使用音频句子数据来训练所述声学模型,从而使转录服务能够准确地转录冗长的音频数据。对结果加标点符号并进行标准化,并且将所得的转录本返回给所述用户。(Techniques for performing Automatic Speech Recognition (ASR) are described. The user may upload the audio file to a storage location. The user then provides a reference to the audio file to the ASR service. The ASR engine analyzes the audio file by: the audio data is divided into words using an acoustic model, and the words spoken in the audio file are identified using a language model. The acoustic model may be trained using audio sentence data, enabling transcription services to accurately transcribe lengthy audio data. The results are punctuated and normalized and the resulting transcript is returned to the user.)

具体实施方式

描述了用于进行自动语音识别(ASR)的方法、设备、系统和非暂时性计算机可读存储介质的各种实施方案。实施方案提供了在声音文件中获得并自动生成它们包括的语音的转录本的被全面管理和连续训练的ASR服务。根据一些实施方案,用户可以将音频文件(例如,电话质量或更高)上传到存储位置。然后,用户向ASR服务提供对音频文件的引用。然后,ASR引擎通过以下方式分析音频文件:使用声学模型将音频数据划分为单词,并且使用语言模型识别所述音频文件中说出的单词。可以使用两分钟或更长的音频句子数据来训练所述声学模型,从而使转录服务能够准确地转录冗长的音频数据。然后将结果加标点符号并标准化(例如,根据上下文确定是否应将“十一点十五”表示为11:15、11/15、十一点十五等)。然后将所得的转录本返回给用户。

人们和组织正在将越来越多的数据存储在他们希望从中获取价值的音频和视频文件中。存储为音频的内容实际上无法搜索和分析,并且典型的语音识别工具不足以将如此长的格式内容转换成文本。所述服务使组织能够增加其音频和视频内容的可访问性和可发现性。ASR可以应用于多种应用程序。例如,客户联络中心可以将通话录音转换为文本,并分析数据以获得可操作的情报;媒体内容制作者可以使字幕工作流程自动化以获得更大的影响力,而营销人员和广告商可以增强内容发现能力,并基于提取的元数据显示更具针对性的广告。例如,转录本使搜索引擎能够了解视频内容以进行搜索引擎优化,并通过使用提取的见解作为向广告服务器发送的附加信号来传递更多相关广告(诸如在足球比赛中而不是在游泳比赛中展示运动鞋广告)。

大多数语音识别系统提供文本字符串作为输出,而没有标点符号。这使转录难以阅读;需要人工审核或后期处理以添加适当的标点符号。在一些实施方案中,可以自动添加标点符号和格式设置,这大大增加了转录本的可读性和可用性。

图1是示出了根据一些实施方案的被管理并且连续训练的自动语音识别(ASR)服务101的架构的框图。这样的ASR服务可以在提供商网络100中实施和/或由提供商网络100提供。提供商网络100向用户提供利用各种类型的与计算相关的资源中的一种或多种的能力,诸如计算资源(例如,执行虚拟机(VM)实例和/或容器、执行批处理作业、执行代码而不供应服务器)、数据/存储资源(例如,对象存储、块级存储、数据档案存储)、与网络相关的资源(例如,配置虚拟网络,包括计算资源组、内容交付网络(CDN)、域名服务(DNS))、应用程序资源(例如数据库、应用程序构建/部署服务)等。这些和其他计算资源可以作为服务提供,诸如可以执行计算实例的硬件虚拟化服务、可以存储数据对象的存储虚拟化服务等。提供商网络100的用户(或“客户”)可以利用与客户帐户相关联的一个或多个用户帐户,但是这些术语可以根据使用的上下文而在某种程度上互换使用。用户可以经由一个或多个接口(诸如通过使用应用程序接口(API)调用)、经由实施软件开发工具包(SDK)的应用程序103、实施为网站或应用程序的控制台104等在一个或多个中间网络106(例如,互联网)上与提供商网络100进行交互。接口也可以是提供商网络100的控制平面118的一部分,或用作所述控制平面的前端,所述控制平面包括支持和启用可以更直接地提供给客户的服务的“后端”服务。

为了提供这些和其他计算资源服务,提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可以用于为用户提供控制或利用计算实例(例如,使用来宾操作系统(O/S)的VM,所述来宾操作系统使用可能会或可能不会进一步在底层主机O/S上运行的管理程序进行操作;可能或可能不在VM中操作的容器;可以在没有底层管理程序的情况下在“裸金属”硬件上执行的实例)的能力,其中可以使用单个电子装置来实施一个或多个计算实例。因此,用户可以直接利用提供商网络托管的计算实例来执行各种计算任务,或者可以通过提交代码以由提供商网络执行来间接利用计算实例,所述服务提供商继而利用计算实例来执行代码(通常无需用户对所涉及的底层计算实例进行任何控制或了解)。

如图1所示,前端服务114可以接收音频识别和定制的模型构建请求。如标号1所示,来自客户端装置的请求可以经由一个或多个中间网络106发送到前端服务114。在一些实施方案中,前端服务114负责以下各者中的至少一者:认证和授权108;向通话录音和日志监测服务发布ASR作业详情(诸如执行时间、等待时间等);以可配置的速率对API限流;与元数据服务116通信以提交用户请求并将作业状态返回给客户;当结果可用时,将转录本(例如,预先签名的虚拟化存储服务统一资源定位符(URL))返回给用户;和/或提供白名单功能。例如,在标号2处,前端服务114可以对从客户端装置102接收的请求进行授权和/或认证。在一些实施方案中,所述请求可以包括对存储在客户音频数据存储库112中的音频文件的引用,该音频文件可能先前已经由客户端装置102更新、由提供商网络100内的其他实体/服务生成等等。可以支持多种语言,包括英语和西班牙语的语音到文本的批量和实时转换。ASR 125为8Khz(电话质量)音频、16Khz(HD话音)音频或更好的音频提供准确的转录。这允许转录高保真录音以及呼叫中心系统中常见的较低质量的电话录音。在一些实施方案中,可以通过APL提供对音频文件的引用。所述引用可以是对存储在客户音频数据存储库112中的单个音频文件或一批音频文件的引用。

在标号3处,前端服务114可以使用请求中提供的许可或其他元数据来确认对客户音频数据存储库112的访问。元数据服务116封装与存储层(例如,数据库服务126)的交互。在标号4处,可以将来自客户端装置102的经认证和/或经授权的请求传递给元数据服务116。在一些实施方案中,元数据服务116负责提供以下各者中的至少一者:提供描述/列出客户请求的功能;获取待处理作业和跟踪作业状态列表;限流和高速缓存以确保存储层不会负担过重;和/或维持对每个帐户的资源、作业等数量的限制。在一些实施方案中,元数据服务116和/或前端服务114可以将日志输出到云监测服务124。日志可能包含诸如作业完成时间、待处理作业的数量、每个帐户的作业数量等数据。

一旦元数据服务116已经确认可以执行请求,则在标号5处将请求传递到控制平面118。控制平面118可以执行作业编排。在一些实施方案中,控制平面118可以例如使用队列服务将作业添加到作业队列中。在标号6处,音频解码器服务(ADS)122可以向队列轮询新作业。一旦识别了新作业(例如,从队列接收到识别所述作业的消息),音频解码器服务122就可以在标号7处下载对应的客户音频文件并验证所述音频文件(例如,确定所述音频文件具有适当的格式和/或质量,并供应解码器实例123以进行音频解码)。一旦验证成功,就可以将客户音频文件传递给ASR引擎125,所述ASR引擎可以在同一解码器实例上运行。音频解码器服务可以监测ASR引擎以获得结果(例如,通过轮询解码器实例上存储输出结果的目录)。在一些实施方案中,控制平面可以在硬件虚拟化服务实例上的专用网络中运行。ADS帐户可能拥有队列,控制平面通过该队列将作业发送到服务。可以在ADS帐户中创建队列发布角色,所述角色允许将消息发布到此队列,并且可以将此角色授予控制平面。控制平面可能是唯一一种使用在ADS帐户中创建的队列发布者角色来通过队列与ADS交互的服务。

如下文进一步讨论的,为了改善客户数据的隔离,可以将解码器实例123提供给专用网络120。当解码完成时,在标号8处,可以将所得的转录本存储在结果数据存储库128中,并且在元数据服务中将作业标记为完成。在一些实施方案中,音频解码器服务监测用于计量目的的使用,并且可以向请求者发送通知以指示作业完成。可以返回转录本,其包括每个单词的时间戳,使得可以将转录本与音频源文件对齐。标记时间戳提供搜索和索引音频和视频资产库的能力;因此,人们可以在语音到文本的转录中搜索特定的单词,并在原始录音中对其进行定位。

在一些实施方案中,在转录期间,ASR引擎125通过基于传入的音频数据增量地生成假设来搜索整个语言模型(LM)127。然后通过称为确定化的过程来缩减和简化假设集。由于较大的LM往往产生更多的假设,因此确定化时间随LM大小的增加而增加。在一些实施方案中,确定化在所有音频都被摄取之后发生,这意味着确定化直接导致用户感知的延迟。在一些实施方案中,在线确定化算法可以与搜索一起增量地进行,从而减少用户感知的延迟。

由于通过搜索整个非常大的语言模型来生成假设可能是耗时的,因此,在一些实施方案中,ASR引擎125可以首先从较小的LM生成假设。然后,ASR引擎125针对具有相同词汇的更大的LM对它们进行重新排名。例如,短语“black see”和“black sea”都是对某些音频数据必不可少的有效搜索假设。一元LM(例如在英语中,是一种基于单个词频率的语言模型)将“black see”排在前面,因为“see”比“sea”更常用。然而,基于单词对的频率的较大的二元LM将“black sea”排在前面,因为其是一个常用词。

通常,为了进行再评分,ASR引擎125在“第一遍”搜索中使用较小的LM来构建初始的假设集。然后使用较大的LM对这些进行再评分,以生成最终的假设。这种再评分方法对第二遍增加了延迟,并且其适用于离线听写用例,但不适用于消息传递。替代地,可以为消息传递实施即时再评分。来自较小的LM搜索的假设在生成搜索假设时立即由较大的LM进行再评分。另外,由于可以在搜索本身期间使用再评分模型,因此,对假设的精简可能会更有效,从而可以为解码器增加较低的延迟。

在一些实施方案中,ASR服务的控制平面118可以连续地扫描数据存储库以获得要执行的作业列表。当检测到一个或多个作业时,可以启动工作流程来执行转录。可以为每个作业启动包括ASR引擎的新实例。ASR引擎125可以将文件(或一批文件)的音频格式转换为WAV。在一些实施方案中,ASR引擎可以将WAV音频传递通过声学模型,以将WAV文件分成一系列单词。在一些实施方案中,模型127可以包括一种或多种语言模型和一种声学模型。这些单词系列中的一些单词可能代表句子,有些可能无法理解。为了进一步优化此输出,可以将其传递通过LM。LM包括语法规则、语言结构和其他语言特定的细微差别。在一些实施方案中,LM可以包括定制术语表,所述定制术语表包括行业术语或其他领域特定的单词或短语。LM分析输入,并确定该系列单词对LM语言是否有意义。例如,输出包括与每个所得句子(或单词系列)相关联的多个假设。假设包括置信度值,所述置信度值指示ASR引擎125相信句子被正确转录的可能性多大。在一些实施方案中,当音频文件包括多个发言人时,每个发言人的部分可以以该发言人标记。然后,每个发言人的标记的音频都可以由语音到文本引擎处理,然后对结果加标点符号并进行标准化。标准化可以包括确定语言的格式设置(例如,根据上下文确定是否应将“十一点十五”表示为11:15、11/15、十一点十五等)。

在一些实施方案中,可以使用更长的句子(例如,两分钟或更长时间的句子)来训练声学模型。在一些实施方案中,声学模型可以是长短记忆(LSTM)神经网络,但是在其他实施方案中,可以使用其他机器学习模型(例如,诸如递归神经网络(RNN)等神经网络)。音频输入可以分段为两分钟块(chunk),其可能会扩展超过两分钟,直到检测到第一个静音为止。在一些实施方案中,可以连续地执行训练。在这样的实施方案中,可以将转录性能与先前(例如,在过去的一天或其他先前的时间段中)处理的音频进行比较,以根据类型、声学特性、客户等来识别准确性上的任何差距。然后可以从音频数据语料库(例如,现有数据集和从客户捕获的数据)中选择数据,并且将其用于训练声学模型以提高准确性。可以连续、每天、每周或根据另一个时间表执行训练循环,以保持声学模型的准确性。

如本文所述,在一些实施方案中可以利用神经网络。神经网络可以包括多层节点,包括隐藏层。隐藏层可以包括与传入和传出的连接链接的节点。这些连接可以被加权。数据可以被传递通过这些层,以生成神经网络的输出。当向神经网络提供数据时,神经网络可以学习,每次被提供新数据时调整与各种连接相关联的权重。可以迭代地执行基于训练数据集的声学模型训练。神经网络调整权重以识别输入音频样本中说出的正确单词。在一些实施方案中,训练可以包括被监督和/或不被监督的训练阶段。当训练数据被传递通过基本模型时,训练数据中说出的单词被分类。在被监督的训练期间,可以从一个或多个计算装置或服务接收关于单词是否已被正确识别的反馈。

在一些实施方案中,可以将正确的分类与神经网络的最终层的输出进行比较。基于此比较,可以将输出和正确分类之间的差异反向传播到神经网络的先前层。可以基于与神经网络相关联的传递函数和/或在这些层之间的传递函数(例如,使用传递函数的导数)来修改该反馈,并且可以使用该反馈来修改与连接相关联的权重。在一些实施方案中,可以使用诸如梯度下降学习规则等增量规则来更新对神经网络中的人工神经元的输入的权重。在一些实施方案中,训练可以使用一个或多个机器学习库。

在训练神经网络期间,可以诸如通过用户或机器学习过程来设置一个或多个参数(有时称为“超参数”)。这些超参数可以包括隐藏的单位、学习率、动量、权重、最大范数、批处理大小、最多尝试次数、最多迭代次数等。通过调整这些参数,可以增加或减少来自反馈的神经网络的改变量(例如,连接的权重的变化)。这可能会影响神经网络学习训练材料的速度以及神经网络执行的准确性。例如,动量会将先前权重的一部分添加到给定连接的当前权重中。通过调整动量,神经网络可以避免在训练期间陷入局部最小值或在训练期间缺失最小值。

图2是示出根据一些实施方案的被管理并且连续训练的自动语音识别(ASR)服务的数据流的框图200。如图2所示,在标号1处,客户将具有音频位置和元数据的作业提交给前端服务114。前端服务支持超文本传输协议(HTTP)安全(HTTPS)协议,并使用负载平衡器将请求分发到队列。在一些实施方案中,前端服务(FES)114然后执行以下检查中的一者或多者:在标号2处,前端服务(FES)114通过授权服务108对请求进行授权,检查帐户是否已列入白名单以访问服务,和/或检查对客户的待处理请求的数量是否未超过阈值。在一些实施方案中,在标号3处,前端服务114然后检查客户是否已经通过请求客户/用户指定的引用的音频文件的元数据给出了所有必需的许可。在一些实施方案中,音频文件引用可以包括到音频存储装置112中的音频文件的链接。在一些实施方案中,可以在虚拟化存储服务202中提供音频存储装置112。

在标号4处,一旦请求已被验证,其就调用元数据服务(“MDS”)116来记录请求元数据。在一些实施方案中,MDS 116是由API网关和事件驱动的计算服务托管的服务。其发布了由FES 114承担的用于进行API调用的角色。该角色可以将FES 114定义为受信任实体。在一些实施方案中,API网关不将角色从一个实体转发到另一实体,并且因此,这实现了跨账户API调用。在一些实施方案中,API网关支持分派给多个实体的多个角色,并且使用事件驱动的计算服务来执行认证。在一些实施方案中,MDS仅暴露HTTPS端点(例如,API网关仅提供公共端点)。在标号5处,MDS通过HTTPS连接将此请求元数据存储在数据库服务表中。

在标号6处,控制平面(或控制平面服务(“CPS”))118利用清除程序,所述清除程序轮询MDS 116以获取MDS元数据中的待处理作业列表。其可以使用由MDS发布的角色来进行类似于FES的这些API调用。在一些实施方案中,MDS返回作业标识符,所述作业标识符被CPS用于幂等。

在标号7处,清除程序可以将消息发送到在标号8处音频解码器服务(ADS)122正在轮询的预定义的队列130。ADS 122可以接收与排队的作业相对应的消息,并在标号9处从虚拟化存储服务202下载对应的客户音频文件。然后可以将客户音频文件存储到存储位置,诸如ADS中的加密卷和或虚拟存储服务202中的存储位置。在一些实施方案中,ADS可以在虚拟化存储服务中创建客户音频文件的备份。如图所示,在一些实施方案中,音频解码器服务在专用网络120中在一个或多个解码器实例123上运行。

一旦下载,ADS 122就可以在标号10处使用诸如FFMPEG等解码器检查音频文件是否有效。如果验证失败,则可以将请求标记为失败,并终止解码作业。解码器和任何相关联的库都可以安装在解码器实例123上。如果验证成功,那么我们将文件提交给解码器实例123上的ASR引擎。这可以包括将已验证的音频文件从其被下载到的存储位置(验证目录)或任何其他存储位置移动到与ASR引擎相关联的输入目录。工作流程的最后一步是轮询作业并检查作业是否完成。这是通过监测ASR引擎写入结果的输出目录来完成。在一些实施方案中,如果主机在提交或轮询期间发生故障,则我们将从头开始执行(尝试次数有最大限制)。

一旦结果可用,ADS 122就可以在标号11处例如通过安全HTTPS信道将结果上传到虚拟存储服务202中的转录本存储装置114。该结果文件包括客户提交的音频文件的转录本。在12处,ADS 122可以调用MDS以将作业标记为已完成。另外,在一些实施方案中,一旦作业完成,ADS 122就可以删除所有客户文件(包括客户音频文件)以及与从解码器实例123转录客户音频文件相关联的任何其他文件。在一些实施方案中,在转录过程完成之后,可以关闭ADS中的所有过程,除了监测过程以外。所述监测过程继续扫描“输入”目录,然后在其在输入目录中接收到输入之后,可以开始新的转录作业(例如,如上所讨论的,启动所有适当的过程)。在过程关闭期间,ASR还会清除所有临时工件,以确保没有留下任何来自先前转录作业的数据。

如图2所示,在一些实施方案中,可以为每个转录作业创建新的解码器实例。在A处,第一步骤是在音频解码器服务122的专用子网120中供应硬件虚拟化服务204实例。在一些实施方案中,这可以使用在堆栈设置期间创建的密钥对来供应。SDK可以用于调用硬件虚拟化服务API。在一些实施方案中,密钥文件可以被存储到SCP并运行远程命令。可以使用硬件虚拟化服务“createKeyPair”API来生成密钥作为堆栈设置的一部分,并且所生成的私钥可以存储在材料集中并周期性地旋转。在B处,供应的解码器实例123可以具有部署到其上的语言模型和声学模型。可以将ASR引擎和编解码器(例如,FFMPEG)部署到此实例123。每次启动新作业时,就可以在作业完成后供应和删除专用实例。通过使用专用实例,实施方案确保即使第三方软件中存在错误,一个客户的数据也不会泄漏给另一客户。在C处,一旦将转录本上传到转录本存储位置114,就可以终止用于运行解码器的硬件虚拟化服务解码器实例123。在一些实施方案中,从实例中删除文件。如果实例终止失败,则可以设置警报以检测到此情况并采取手动措施。

在一些实施方案中,可以将服务容器化,而不是为每个作业部署实例。然后可以为每个作业部署一个容器。容器提供了轻量级的封包(例如,图像文件),所述封包包括供应用程序运行的各种资源。例如,容器可以包括应用程序在常规操作中使用的配置设置、网络设置、注册表、文件等(例如,统称为“依赖项”),从而将应用程序与其上运行应用程序的底层系统隔离开。多个容器可以在同一主机上运行,并且在它们之间共享底层的O/S,并且在一些实施方案中,还可以共享由多个应用程序使用的那些依赖项。由于容器中的应用程序与底层O/S隔离,因此为了从现有应用程序中创建容器,该应用程序的依赖项(例如文件、注册表、配置和网络设置等)必须是已知的或可发现的。例如,当开始新作业时,控制平面118可以指示容器服务将运行解码器应用程序的容器分配给提供商网络100中的一个或多个计算实例(例如,由硬件虚拟化服务204提供的一个或多个VM)。如上所述,解码器应用程序可以是部署到每个解码器实例的一个或多个应用程序的容器化版本。当作业完成时,可以将容器移除。

图3是示出根据一些实施方案的被管理和连续训练的ASR服务的数据流的框图300。如标号1处所示,用户可以请求上面参考图2讨论的ASR服务的结果。前端服务114可以在标号2处查找请求帐户的身份以对用户进行授权。在标号3处,前端服务可以从元数据服务116检索作业详情。在标号4处,可以从数据库服务中检索作业详情。在标号5处,可以在转录本存储装置114中生成用于结果转录本的预签名URL。

图4是示出根据一些实施方案的被管理和连续训练的ASR服务的控制平面和解码器环境的框图400。如所讨论的,图4中所示的虚拟化存储服务、工作流服务、虚拟化硬件服务、数据库服务和其他被管理的服务402可以由ASR服务使用。为了改善客户数据隔离,控制平面118可以包括公共网络404和可以访问被管理的服务402的一个或多个主机实例406。所述控制平面还可以包括专用网络408,所述专用网络包括编排器410。可以将第三方软件部署到音频解码器服务122中的专用子网中的单独专用网络120中的解码器实例123。在一些实施方案中,专用子网上的解码器实例123不具有任何出站访问,并且可以仅允许由来自编排器410的控制平面118完全控制的入站连接。解码器实例123未被准许彼此通信。同样,单个解码器实例负责单个作业。在一些实施方案中,许可(例如,SSH)允许将客户音频数据推送到在专用网络120中为此作业供应的解码器实例,并允许从解码器实例中获取结果。在一些实施方案中,音频解码器服务122还可以包括公共网络412,所述公共网络包括一个或多个除错实例,所述除错实例使开发人员能够为解码器实例123进行除错。

在一些实施方案中,可以使用定制机器图像来启动解码器实例123。可以创建隔离的环境(例如,沙箱),在该环境中对客户提交的音频文件进行验证和解码。默认的沙箱域可能会限制应用程序读取和写入专门传递给应用程序的文件描述符的能力(例如,可能会限制应用程序打开或以其他方式访问其他文件)。还可以创建定义将沙箱中的应用程序限制为执行解码器和/或访问特定的解码器库(例如,FFMPEG和相关联的库)的有限许可的策略。

图5是示出根据一些实施方案的用于进行自动语音识别的操作500(例如,方法的操作)的流程图。在配置有可执行指令的一个或多个计算机系统的控制下执行一些或全部操作500(或本文所述的其他过程,或其变型和/或组合),并将所述操作实施为代码(例如,可执行指令、一个或多个计算机程序、或者一个或多个应用程序),所述代码通过硬件或其组合在一个或多个处理器上共同执行。所述代码例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。所述计算机可读存储介质是非暂时性的。在一些实施方案中,操作500中的一个或多个(或全部)由其他附图的前端服务114、元数据服务116和/或控制平面118执行。

操作500包括:在框502处,由提供商网络接收执行自动语音识别(ASR)的请求,所述请求包括对音频文件的引用。在框504处,使用引用来检索音频文件。在一些实施方案中,可以通过授权服务对请求进行授权,以确定与同请求相关联的账户相关联的待处理请求的数量是否未超过阈值。

在框506处,由ASR引擎使用语言模型和所述音频文件生成所述音频文件的转录本,所述ASR引擎和所述语言模型由部署到所述提供商网络中的专用网络的实例来实施。在一些实施方案中,可以使用声学模型将音频文件划分为多个单词。可以使用先前处理的音频数据来训练声学模型,以根据类型、声学特性或客户特定语言中的一者或多者来识别所述声学模型中的不准确性。在一些实施方案中,语言模型是基于随请求接收的元数据选择的多个语言模型中的一个。

在一些实施方案中,请求可以被发送到控制平面,所述控制平面对多个请求进行编排。所述控制平面可以执行工作流以对请求执行ASR。在一些实施方案中,控制平面可以轮询排队的作业(例如,待处理请求)以对新作业执行ASR。在一些实施方案中,可以为每个请求提供单独的解码器实例。例如,可以供应解码器实例以生成音频文件的转录本。一旦确定转录完成,就可以取消供应解码器实例。在一些实施方案中,解码器实例被实施为部署在专用网络中的容器。

在框508处,返回音频文件的转录本。在一些实施方案中,框508可以包括将转录本上传到存储服务提供商,以及返回存储服务提供商中对转录本的引用。

图6是示出根据一些实施方案的用于进行自动语音识别的操作600(例如,方法的操作)的流程图。在配置有可执行指令的一个或多个计算机系统的控制下执行一些或全部操作600(或本文所述的其他过程,或其变型和/或组合),并将所述操作实施为代码(例如,可执行指令、一个或多个计算机程序、或者一个或多个应用程序),所述代码通过硬件或其组合在一个或多个处理器上共同执行。所述代码例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。所述计算机可读存储介质是非暂时性的。在一些实施方案中,操作600中的一个或多个(或全部)由其他附图的前端服务114、元数据服务116和/或控制平面118执行。

操作600包括:在框602处,由提供商网络接收执行自动语音识别(ASR)的请求,所述请求包括对音频文件的引用。在框604处,使用与请求相关联的账户数据,通过授权服务对请求进行授权。在一些实施方案中,使用与请求相关联的账户数据,通过授权服务对请求进行授权可以包括确定账户已被列入白名单,以及确定对账户的待处理请求的数量未超过阈值。

在框606处,供应解码器实例以生成音频文件的转录本,所述解码器实例包括ASR引擎和语言模型,所述解码器实例部署到提供商网络中的专用网络。在框608处,使用引用将音频文件的副本提供给解码器实例。在框612处,由ASR引擎使用语言模型和音频文件的副本来生成音频文件的转录本。在框612处,在确定转录完成之后取消供应解码器实例。在框614处,返回对音频文件的转录本的引用。

在一些实施方案中,提供商网络可以接收第二请求以执行ASR。第二请求可以包括对第二音频文件的第二引用。可以供应第二解码器实例以生成第二音频文件的转录本。当确定转录本完成时,可以取消供应第二解码器实例。

图7示出了根据一些实施方案的示例性提供商网络(或“服务提供商系统”)环境。提供商网络700可以经由一个或多个虚拟化服务710向客户提供资源虚拟化,所述虚拟化服务允许客户购买、出租或以其他方式获得虚拟化资源的实例712,所述虚拟化资源包括但不限于在一个或多个数据中心中的一个或多个提供商网络内的装置上实施的计算和存储资源。本地IP地址716可以与资源实例712相关联;本地IP地址是提供商网络700上的资源实例712的内部网络地址。在一些实施方案中,提供商网络700还可以提供客户可以从提供商700获得的公共IP地址714和/或公共IP地址范围(例如,互联网协议版本4(IPv4)或互联网协议版本6(IPv6)地址)。

通常,提供商网络700经由虚拟化服务710可以允许服务提供商的客户(例如,操作包括一个或多个客户装置752的一个或多个客户端网络750A-750C的客户)将分派或分配给客户的至少一些公共IP地址714与分派给客户的特定资源实例712动态地相关联。提供商网络700还可以允许客户将先前映射到分配给客户的一个虚拟化计算资源实例712的公共IP地址714重新映射到也分配给客户的另一虚拟化计算资源实例712。使用由服务提供商提供的虚拟化计算资源实例712和公共IP地址714,服务提供商的客户(诸如客户网络750A-750C的运营商)可以例如实施特定于客户的应用程序,并且在诸如互联网等中间网络740上呈现客户的应用程序。中间网络740上的其他网络实体720然后可以生成到由客户网络750A-750C发布的目的地公共IP地址714的流量;流量被路由到服务提供商数据中心,并在数据中心经由网络基底路由到当前映射到目的地公共IP地址714的虚拟化计算资源实例712的本地IP地址716。类似地,来自虚拟化计算资源实例712的响应流量可以经由网络基底路由回到中间网络740上并到达源实体720。

如本文中所使用的,本地IP地址是指提供商网络中的资源实例的例如内部或“专用”网络地址。本地IP地址可以在由互联网工程任务组(IETF)的意见请求(RFC)1918保留的地址块内和/或具有由IETF RFC 4193指定的地址格式,并且可以在提供商网络中可变。来自提供商网络外部的网络流量不被直接路由到本地IP地址;相反,流量使用映射到资源实例的本地IP地址的公共IP地址。提供商网络可以包括网络装置或设备,所述网络装置或设备提供网络地址转化(NAT)或类似功能以执行从公共IP地址到本地IP地址的映射,反之亦然。

公共IP地址是由服务提供商或客户分派给资源实例的互联网可变网络地址。例如,经由1:1NAT转化路由到公共IP地址的流量,并将所述流量转发到资源实例的相应本地IP地址。

一些公共IP地址可以由提供商网络基础设施分派给特定资源实例;这些公共IP地址可以称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,标准IP地址到资源实例的本地IP地址的映射是所有资源实例类型的默认启动配置。

至少一些公共IP地址可以被分配给提供商网络700的客户或由其获得;然后,客户可以将其分配的公共IP地址分派给分配给客户的特定资源实例。这些公共IP地址可以被称为客户公共IP地址,或简称为客户IP地址。代替在标准IP地址的情况下由提供商网络700分派给资源实例,可以由客户例如经由服务提供商提供的API将客户IP地址分派给资源实例。与标准IP地址不同,客户IP地址被分配给客户帐户,并且可以由相应客户根据需要或期望将其重新映射到其他资源实例。客户IP地址与客户的帐户而不是特定的资源实例相关联,并且客户控制该IP地址,直到客户选择释放它为止。与常规的静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户帐户相关联的任何资源实例来掩盖资源实例或可用性区域故障。例如,客户IP地址使客户能够通过将客户IP地址重新映射到替换资源实例来解决客户资源实例或软件的问题。

图8是根据一些实施方案的向客户提供存储虚拟化服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务820向客户提供多个计算资源824(例如,VM)。例如,可以将计算资源824出租或租赁给提供商网络800的客户(例如,实施客户网络850的客户)。每个计算资源824可以被提供一个或多个本地IP地址。提供商网络800可以被配置成将分组从计算资源824的本地IP地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源824的本地IP地址。

提供商网络800可以提供例如经由本地网络856耦合到中间网络840的客户网络850、经由耦合到中间网络840和提供商网络800的硬件虚拟化服务820来实施虚拟计算系统892的能力。在一些实施方案中,硬件虚拟化服务820可以提供一个或多个API 802,例如web服务接口,客户网络850可以经由所述API访问由硬件虚拟化服务820经由例如控制台894(例如,基于web的应用程序、独立应用程序、移动应用程序等)提供的功能。在一些实施方案中,在提供商网络800处,客户网络850处的每个虚拟计算系统892可以对应于租赁、出租或以其他方式提供给客户网络850的计算资源824。

根据虚拟计算系统892和/或另一客户装置890的实例(例如,经由控制台894),客户可以例如经由一个或多个API 802访问存储虚拟化服务810的功能以从由提供商网络800提供的虚拟数据存储库816的存储资源818A-818N中访问数据和将所述数据存储到其中。在一些实施方案中,可以在客户网络850处提供虚拟化的数据存储网关(未示出),所述客户网络可以本地高速缓存至少一些数据,例如经常访问的或关键数据,并且可以经由一个或多个通信信道与虚拟化数据存储服务810进行通信,以从本地高速缓存上传新的或修改的数据,使得维护数据的主要存储库(虚拟化数据存储库816)。在一些实施方案中,用户可以经由虚拟计算系统892和/或在另一个客户装置890上安装和访问虚拟数据存储库816的容量,该容量对用户表现为本地虚拟化存储装置898。

尽管未在图8中示出,但是还可以经由API 802从提供商网络800内的资源实例访问虚拟化服务。例如,客户、设备服务提供商或其他实体可以经由API 802从提供商网络800上的相应虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一个虚拟网络内的一个或多个资源实例。

说明性系统

在一些实施方案中,实施如本文描述的用于进行自动语音识别的技术的一部分或全部的系统可以包括通用计算机系统,所述通用计算机系统包括一个或多个计算机可访问的介质或被配置成访问一个或多个计算机可访问的介质,诸如图9所示的计算机系统900。在所示实施方案中,计算机系统900包括一个或多个处理器910,所述处理器经由输入/输出(I/O)接口930耦合到系统存储器920。计算机系统900还包括耦合到I/O接口930的网络接口940。虽然图9将计算机系统900示出为单个计算装置,但是在各种实施方案中,计算机系统900可以包括一个计算装置或被配置成一起工作作为单个计算机系统900的任何数量的计算装置。

在各种实施方案中,计算机系统900可以是包括一个处理器910的单处理器系统,或者可以是包括若干处理器910(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器910可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器910可以是通用或嵌入式处理器,其实施多种指令集架构(ISA)中的任一者,诸如x86、ARM、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA。在多处理器系统中,处理器910中的每一个可以通常但不一定实施相同ISA。

系统存储器920可以存储可由处理器910访问的指令和数据。在各种实施方案中,可以使用任何合适的存储器技术(诸如随机访问存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或任何其他类型的存储器)来实施系统存储器920。在所示的实施方案中,实施一个或多个期望函数的程序指令和数据,诸如上文所述的用于在提供商网络环境中调整虚拟网络的大小的那些方法、技术和数据,被示为作为代码925和数据926存储在系统存储器920内。

在一个实施方案中,I/O接口930可以被配置成协调处理器910、系统存储器920和装置中的任何外围装置(包括网络接口940或其他外围接口)之间的I/O流量。在一些实施方案中,I/O接口930可以执行任何必要协议、定时、或将来自一个部件(例如,系统存储器920)的数据信号转换为适合于由另一个部件(例如,处理器910)使用的格式的其他数据变换。在一些实施方案中,例如,I/O接口930可以包括对通过各种类型的外围总线而附接的装置的支持,诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方案中,例如,I/O接口930的功能可以分成两个或更多个单独部件,诸如北桥接器和南桥接器。此外,在一些实施方案中,I/O接口930(诸如到系统存储器920的接口)的功能中的一些或全部可以直接并入到处理器910中。

例如,网络接口940可以被配置成允许数据在计算机系统900与附接到一个网络或多个网络950的其他装置960(诸如图1所示的其他计算机系统或装置)之间交换。在各种实施方案中,例如,网络接口940可以经由任何合适的有线或无线通用数据网络(诸如以太网的类型)来支持通信。此外,网络接口940可以支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网络(SAN)(诸如光纤信道SAN)、或经由I/O任何其他合适类型的网络和/或协议进行的通信。

在一些实施方案中,计算机系统900包括使用I/O接口930(例如,实施外围部件互连版本(Express(PCI-E)标准)或另一种互连(诸如快速路径互连(QPI)或超路径互连(UPI))的总线)连接的一个或多个卸载卡970(其包括一个或多个处理器975,并且可能包括一个或多个网络接口940)。例如,在一些实施方案中,计算机系统900可以充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分进行操作),并且一个或多个卸载卡970执行可以管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,卸载卡970可以执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器传输/复制操作等。在一些实施方案中,这些管理操作可以由卸载卡970与由计算机系统900的其他处理器910A-910N执行的管理程序协作(例如,根据来自管理程序的请求)来执行。然而,在一些实施方案中,由卸载卡970实施的虚拟化管理器可以容纳来自其他实体(例如,来自计算实例本身)的请求,并且可以不与任何单独的管理程序协作(或为其服务)。

在一些实施方案中,系统存储器920可以是计算机可访问的介质的一个实施方案,所述计算机可访问的介质被配置成存储如上所述的程序指令和数据。然而,在其他实施方案中,可以接收、发送程序指令和/或数据或者将其存储在不同类型的计算机可访问的介质上。一般来说,计算机可访问的介质可以包括非暂时性存储介质或存储器介质,诸如磁或光介质,例如经由I/O接口930耦合到计算机系统900的磁盘或DVD/CD。非暂时性计算机可访问的存储介质还可以包括任何易失性或非易失性介质诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,所述介质可以包括在计算机系统900的一些实施方案中作为系统存储器920或另一类型的存储器。此外,计算机可访问的介质可以包括经由通信介质诸如网络和/或无线链路(诸如可以经由网络接口940实施)传送的传输介质或信号(诸如电、电磁或数字信号)。

在先前描述中,描述了各种实施方案。为了说明的目的,阐述了具体的配置和细节以便提供对实施方案的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实施实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。

在本文中使用带有虚线边框(例如,大划线、小划线、点划线和点)的带括号的文本和框来示出向一些实施方案添加额外特征的可选操作。然而,这样的符号不应被认为是意指这些是唯一的选项或可选操作,和/或在某些实施方案中具有实线边框的框不是可选的。

对“一个实施方案”、“实施方案”、“示例性实施方案”等的引用指示所描述的实施方案可以包括特定的特征、结构或特性,但是每个实施方案可以不必包括特定的特征、结构或特性。而且,这样的短语不一定指相同的实施方案。此外,当结合实施方案描述特定的特征、结构或特性时,无论是否明确描述,都认为结合其他实施方案实现这样的特征、结构或特性是在本领域技术人员的知识范围内。

此外,在上述各种实施方案中,除非另外特别指出,否则诸如短语“A、B或C中的至少一者”之类的分离性语言应理解为是指A、B或C,或其任何组合(例如A、B和/或C)。因此,这样的分离性语言通常并不意味着并且不应理解为暗示给定实施方案要求A中的至少一者、B中的至少一者或者C中的至少一者各自都存在。

所公开的技术的至少一些实施方案可以根据以下条款进行描述:

1.一种计算机实施的方法,其包括:

由提供商网络接收执行自动语音识别(ASR)的请求,所述请求包括对音频文件的引用;

使用与所述请求相关联的帐户数据,通过授权服务对所述请求进行授权;

供应解码器实例以生成所述音频文件的转录本,所述解码器实例包括ASR引擎和语言模型,所述解码器实例被部署到所述提供商网络中的专用网络;

使用所述引用将所述音频文件的副本提供给所述解码器实例;

由所述ASR引擎使用所述语言模型和所述音频文件的所述副本生成所述音频文件的转录本;

在确定所述转录本完成之后,取消供应所述解码器实例;以及

返回对所述音频文件的所述转录本的引用。

2.如条款1所述的计算机实施的方法,其还包括:

由所述提供商网络接收执行ASR的第二请求,所述请求包括对第二音频文件的第二引用;

供应第二解码器实例以生成所述第二音频文件的转录本;以及

在确定所述转录本完成之后,取消供应所述第二解码器实例。

3.如条款1至2中任一项所述的计算机实施的方法,其中使用与所述请求相关联的帐户数据,通过授权服务对所述请求进行授权包括:

确定所述帐户数据已列入白名单;以及

确定对所述帐户数据的待处理请求的数量未超过阈值。

4.一种计算机实施的方法,其包括:

由提供商网络接收执行自动语音识别(ASR)的请求,所述请求包括对音频文件的引用;

使用所述引用检取所述音频文件;

由ASR引擎使用语言模型和所述音频文件生成所述音频文件的转录本,所述ASR引擎和所述语言模型由部署到所述提供商网络中的专用网络的实例来实施;以及

返回所述音频文件的所述转录本。

5.如条款4所述的计算机实施的方法,其还包括:使用声学模型将所述音频文件划分为多个单词。

6.如条款5所述的计算机实施的方法,其还包括:

使用先前处理的音频数据来训练所述声学模型,以根据类型、声学特性或客户特定语言中的一者或多者来识别所述声学模型中的不准确性。

7.如条款4至6中任一项所述的计算机实施的方法,其还包括:供应所述实例以生成所述音频文件的所述转录本;以及

在确定所述转录本完成之后取消供应所述实例。

8.如条款4至7中任一项所述的计算机实施的方法,其还包括:

将所述请求发送到控制平面,所述控制平面对多个请求进行编排;以及

由所述控制平面执行工作流程以对所述请求执行ASR。

9.如条款4至8中任一项所述的计算机实施的方法,其中所述语言模型是基于随所述请求接收的元数据而选择的多个语言模型中的一个。

10.如条款4至9中任一项所述的计算机实施的方法,其还包括:

通过授权服务对所述请求进行授权,以确定与同所述请求相关联的账户相关联的待处理请求的数量未超过阈值。

11.如条款4所述的计算机实施的方法,其中返回所述音频文件的所述转录本还包括:

将所述转录本上传到存储服务提供商;以及

返回所述存储服务提供商中对所述转录本的引用。

12.如条款4至11中任一项所述的计算机实施的方法,其中所述实例被实施为部署在所述专用网络中的容器。

13.一种系统,其包括:

由第一一个或多个电子装置实施的提供商网络;以及

由第二一个或多个电子装置在所述提供商网络中实施的自动语音识别(ASR)服务,所述ASR服务包括在执行时致使所述ASR服务执行以下操作的指令:

接收执行自动语音识别(ASR)的请求,所述请求包括对音频文件的引用;

使用所述引用来检取所述音频文件;

由ASR引擎使用语言模型和所述音频文件生成所述音频文件的转录本,所述ASR引擎和所述语言模型由部署到所述提供商网络中的专用网络的实例来实施;并且

返回所述音频文件的所述转录本。

14.如条款13所述的系统,其中所述指令在执行时还致使所述ASR服务:

使用声学模型将所述音频文件划分为多个单词。

15.如条款14所述的系统,其中所述指令在执行时还致使所述ASR服务:

使用先前处理的音频数据来训练所述声学模型,以根据类型、声学特性或客户特定语言中的一者或多者来识别所述声学模型中的不准确性。

16.如条款10至12中任一项所述的系统,其中所述指令在执行时还致使所述ASR服务:

供应所述实例以生成所述音频文件的所述转录本;并且

在所述转录本被生成之后取消供应所述实例。

17.如条款13至16中任一项所述的系统,其中所述指令在执行时还致使所述ASR服务:

将所述请求发送到控制平面,所述控制平面对多个请求进行编排;并且

通过所述控制平面执行工作流程,以对所述请求执行ASR。

18.如条款13至17中任一项所述的系统,其中所述语言模型是基于随所述请求接收的元数据而选择的多个语言模型中的一个。

19.如条款13至18中任一项所述的系统,其中所述指令在执行时还致使所述ASR服务:

通过授权服务对所述请求进行授权,以确定与同所述请求相关联的账户相关联的待处理请求的数量未超过阈值。

20.如条款13所述的系统,其中返回所述音频文件的所述转录本的指令在执行时还致使所述ASR服务执行以下操作:

将所述转录本上传到存储服务提供商;并且

返回所述存储服务提供商中对所述转录本的引用。

因此,本说明书和附图应被视为说明性的而非限制性的。然而,将显而易见的是,在不脱离如在权利要求中阐述的本公开的更宽广精神和范围的情况下,可以对本公开做出各种修改和改变。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:语音转换的方法及训练方法、智能装置和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!