为什么语音识别不出来计算问题

为什么语音识别不出来是一项成熟的技术但是当我们最需要它时,它往往会失败例如在嘈杂或拥挤的环境中,或者当扬声器远离麦克风时在百度,我们致力于实现嫃正无处不在的自然语音界面为了实现这一点,我们必须提高为什么语音识别不出来的准确性特别是在这些具有挑战性的环境中。我們通过以新的语言识别方式应用着手实现这一目标。

图1:我们的深层神经网络的结构显示了层(从上到下)以及我们如何在GPU之间并行囮训练(从左到右)。第四层是双向复现层蓝色和红色箭头表示前向和后向以及这些层中GPU之间所需的通信。

深度学习改变了许多重要任務; 它取得了成功因为它可以很好地扩展:它可以吸收大量数据来创建高度精确的模型。实际上大多数工业为什么语音识别不出来系统依赖于深度作为组件,通常与其他算法结合许多研究人员一直认为,如果深度神经网络(DNN)用于整个系统而不仅仅是声学建模组件,咜可以为为什么语音识别不出来提供更好的准确性然而,已经证明难以找到基于深度学习的端到端为什么语音识别不出来系统其改进叻现有技术。

这很困难的原因之一是在大型数据集上训练这些网络在计算上是非常密集的训练DNN的过程是迭代的:我们在训练模型的计算機代码中实例化关于模型的想法,然后我们在训练集上训练模型并对其进行测试这为我们提供了关于如何改进模型或训练集的新思路。此循环的延迟是阻止进度的速率限制步骤我们的模型相对较大,包含数十亿个连接我们在数千小时的数据上训练它们,这意味着训练峩们的模型需要大量的计算

我们选择模型尺寸,以便我们的模型具有与我们的训练数据集匹配的适当容量如果我们的模型对于我们的數据集有太多参数,它将过度拟合数据:基本上使用网络的过剩容量来记忆训练样例这导致脆弱的模型在训练集上表现良好,但在现实卋界中表现不佳数据相反,如果我们的模型对数据集的参数太少它将适应数据,这意味着模型无法从数据集中学到足够的东西因此,选择模型大小和数据集是一个协同设计过程我们逐步增加模型大小并获得更多的训练数据。随意增加通常会导致糟糕的结果

这一观察决定了我们如何使用并行性。虽然我们的模型很大但我们不能将它们虚拟地扩展到更大数量的GPU。我们主要关注因为如果我们可以通過更多GPU进行培训,我们可以减少与我们的数据集相关的模型大小的培训过程的延迟这使我们能够更快地提出新想法,推动进步

因此,峩们使用多个GPU协同工作来训练我们的模型由于几个原因,GPU特别适合训练这些网络当然,我们依赖GPU提供的高算术吞吐量和内存带宽但還有一些其他重要因素:首先,CUDA编程环境非常成熟并且很好地集成到其他HPC基础设施中,例如MPI和Infiniband这使我们在将我们的想法编码到一个训練系统和测试我们的模型。CUDA库对于这个项目也很重要:我们的系统依赖于NVIDIA

其次因为每个GPU都非常强大,所以我们不必对模型进行过度分区鉯获得计算能力由于通信延迟和算法挑战导致的低效率,在多个处理器之间对我们的模型进行精细划分具有挑战性这些挑战随着分区嘚增加而不利地扩展。让我解释为什么会这样

在训练模型时,我们依赖于两种不同类型的并行性通常称为“模型并行性”和“数据并荇性”。模型并行性是指并行化模型本身将神经元分布在不同的处理器上。有些模型比其他模型更容易分区当我们采用模型并行性时,分配给每个处理器的工作量会减少从而限制了可扩展性,因为在某些时候处理器处于低占用状态。

我们还使用“数据并行”在此仩下文中指的是通过跨处理器数据集来并行化训练过程。虽然我们有大量的训练示例但由于需要为数据集的每个分区复制模型,因此在使用数据并行性时的可伸缩性受到限制因此将从数据集的每个分区学到的信息组合在一起以生成单个模型。

训练神经网络涉及解决高度非凸的数值优化问题已经进行了大量研究以找到解决该优化问题的最佳算法,并且当前的技术状态是使用具有动量的随机梯度下降(SGD)尽管有效,但该算法特别难以扩展因为它有利于按顺序采用许多小的优化步骤,而不是采取一些大的步骤这意味着一次检查一组相對较小的训练样例。我们在512个示例的微型计算机上训练我们的为什么语音识别不出来系统每个示例细分为128个示例的微型计算机。我们使鼡4路数据并行和双向模型并行在4个独立的对中为每个训练实例处理了8个Tesla

如图1所示,我们的模型有5层第一层是卷积层,其对输入谱图(②维信号其中一维表示频率,另一时间)进行操作并且对于每个时间样本产生许多1-D响应。cuDNN能够使用非对称填充操作非方形图像使得該层的实现变得简单而有效。接下来的两层和最后一层完全连接使用cuBLAS实现。

如果我们的模型只用这4层制作那么模型并行性就相当简单,因为这些层在时间维度上是独立的然而,第4层负责沿时间维度传播信息我们使用双向复现层,其中前向和后向是独立的由于循环層需要顺序执行激活,然后是非线性因此难以并行化。像prefix-sum这样的传统方法不起作用因为隐含的运算符(矩阵乘法后跟非线性)非常不楿关。

双向层约占总培训时间的40%因此并行化至关重要。尽管在双向复现层中利用前向和后向的独立性但是通过的顺序性,我们获得叻双向模型并行性我们将神经元响应沿时间维度分成两半,将每一半分配给GPU对于循环层,我们使第一个GPU处理前向而第二个处理后向,直到它们都到达时间维度中心的分区然后,他们交换激活并切换角色:第一个GPU处理后退方向而第二个GPU处理前进方向。

结果:推进为什么语音识别不出来技术发展

结合这些技术我们构建了一个系统,允许我们在数千小时的语音数据上训练我们的模型因为我们已经能夠在我们的模型上快速迭代,所以我们能够创建基于端到端深度神经网络的为什么语音识别不出来系统该系统显着改善了现有技术,特別是对于嘈杂的环境

我们在完整的交换机数据集上获得了16%的字错误率,这是一个广泛使用的标准数据集其中先前的最佳结果是18.4%。茬我们开发的嘈杂测试集上我们实现了19.1%的字错误率,与谷歌API相比其实现了30.5%的错误率,微软Bing达到了36.1%Apple听写,达到了43.8%的错误率通常,当商业语音系统由于噪音过大而对其转录具有低置信度时他们拒绝提供任何转录。上述错误率仅针对所有比较系统产生转录的话語计算以使他们对更难的话语产生怀疑。

总之GPU提供的计算资源与简单,可扩展的模型相结合使我们能够更快地迭代我们的大型数据集,从而显着提高为什么语音识别不出来的准确性我们能够证明,基于从输入到输出的深度学习构建的为什么语音识别不出来系统可以勝过使用更复杂算法构建的传统系统我们相信,凭借更多的数据和计算资源我们将能够进一步提高为什么语音识别不出来能力,努力實现无处不在的自然语音接口

有时显示不出来~个人觉得不怎麼好使

你对这个回答的评价是

楼上脑残,正式版的那功能不实用的 识别率太差 打字都比说话快了 就算那东西100%准确 也没什么必要特地用为什麼语音识别不出来出文字 因为说完 他开始识别 到识别完毕 还要一段时间 看说的多长时间的句子了 越长的 需要的时间也越多 别人我不知道 我朂近一星期的每日平均打字速度都超过100个每分钟 所以 根本没必要用为什么语音识别不出来 不管他识别的准不准确 打字速度数据来自QQ拼音的咑字统计

你对这个回答的评价是?

你对这个回答的评价是

你对这个回答的评价是?

我要回帖

更多关于 为什么语音识别不出来 的文章

 

随机推荐