小胖有技能|AssemblyAI 在 PyTorch 中建立端到端的语音识别模型,利用( 六 )


小胖有技能|AssemblyAI 在 PyTorch 中建立端到端的语音识别模型,利用
文章图片
如何提高准确性
语音识别需要大量数据和计算资源 。 这个示例是在LibriSpeech(100小时的音频)的一个子集和一个单独的GPU上进行训练的 。 为了获得最先进的结果 , 你需要对数千小时的数据进行分布式训练 , 并且需要在许多计算机上分布数十个GPU 。
提高准确性的另一种方法是使用语言模型和CTC波束搜索算法对CTC概率矩阵进行解码 。 CTC类型模型非常依赖此解码过程来获得良好的结果 。 这里有一个方便的开源库允许你这样做 。
本教程的使用范围更广 , 与BERT(3.4亿个参数)相比 , 它是一个相对较小的模型(2300万个参数) 。 尽管收益递减 , 但似乎你的网络规模越大 , 它的性能就越好 。 正如OpenAI的研究“DeepDoubleDescent”证明的那样 , 一个更大的模型并不总是等同于更好的性能 。
该模型具有3个CNN残差层和5个双向GRU层 , 允许你在具有至少11GB内存的单个GPU上训练合理的批处理大小 。 你可以调整main函数中的一些超级参数 , 减少或增加你的用例和计算可用性的模型大小 。
小胖有技能|AssemblyAI 在 PyTorch 中建立端到端的语音识别模型,利用
文章图片
基于深度学习的语音识别的最新进展
深度学习是一个快速发展的领域 。 似乎你一个星期都不能没有新技术得到最先进的结果 。 以下是在语音识别领域中值得探索的几个方面 。
转换器
转换器席卷了自然语言处理世界 。 首先在论文中介绍了“无可或缺的注意力” , 转换器已经出现和修改 , 几乎击败所有现有的NLP任务 , 取代了RNN的类型体系结构 。 转换器查看序列数据完整上下文的能力也可以转转移到语音中 。
无人监督的预训练
如果你密切关注深度学习 , 你可能听说过BERT , GPT和GPT2 。 这些Transformer模型首先用于使用未标记文本数据的语言建模任务 , 并在各种NLP任务上进行了微调 , 获得了最新的结果 。 在预训练期间 , 该模型学习了一些语言统计方面的基础知识 , 并利用该能力在其他任务上表现出色 。 我们相信这项技术在语音数据方面也具有广阔的前景 。
词块模型
我们的模型在上面定义了输出字符 。 这样做的一些好处是 , 在进行语音推理时 , 模型不必担心词汇量不足 。 对于单词chat , 每个字符都有自己的标签 。 使用字符的缺点是效率低 , 由于你一次只能预测一个字符 , 该模型更容易出现错误 。
使用整个单词作为标签已经探索了 , 在一定程度上取得了成功 。 使用这种方法 , 整个单词chat将成为标签 。 如果使用整个单词 , 你就必须对所有可能的词汇进行索引来才能进行预测 , 这会使内存效率低 , 在预测过程中可能会遇到词汇量不足的情况 。 最有效的方法是使用单词片段或子单词单位作为标签 。
你可以将单词分割成子单词单元 , 使用这些子单词作为标签 , 即chat , 而不是单个标签的字符 。 这不仅解决了词汇量不足的问题 , 并且效率更高 , 与使用字符相比 , 它需要更少的步骤来进行解码 , 而且不需要对所有可能的单词进行索引 。 词块已成功用于许多NLP模型(如BERT) , 自然可以解决语音识别问题 。
原文链接:https://hackernoon.com/building-an-end-to-end-speech-recognition-model-in-pytorch-with-assemblyai-5o8s3yry
本文由AI科技大本营翻译 , 转载请注明出处 。
小胖有技能|AssemblyAI 在 PyTorch 中建立端到端的语音识别模型,利用
文章图片
重构ncnn , 腾讯优图开源新一代移动端推理框架TNN
墨奇科技汤林鹏:如何用AI技术颠覆指纹识别?
性能超越最新序列推荐模型 , 华为诺亚方舟提出记忆增强的图神经网络
研发的未来在哪里?Serverless云开发来了!


推荐阅读