Mozilla 的机器学习团队继续致力于 DeepSpeech,这是一种自动语音识别 (ASR) 引擎,旨在将语音识别技术和训练模型公开提供给开发者。DeepSpeech 是一种基于深度学习的 ASR 引擎,具有简单的 API。我们还提供预训练的英语模型。
我们最新的版本 v0.6 提供了迄今为止质量最高、功能最丰富的模型。在本概述中,我们将展示 DeepSpeech 如何通过启用客户端、低延迟和隐私保护的语音识别功能来改变您的应用程序。
持续低延迟
DeepSpeech v0.6 包含大量性能优化,旨在让应用程序开发者更容易使用该引擎,而无需对系统进行微调。我们新的流式解码器提供了最大的改进,这意味着 DeepSpeech 现在可以提供一致的低延迟和内存利用率,无论要转录的音频长度如何。应用程序开发者可以获取部分转录,而无需担心出现大的延迟峰值。
DeepSpeech 由两个主要子系统组成:声学模型和解码器。声学模型是一个深度神经网络,接收音频特征作为输入,并输出字符概率。解码器使用波束搜索算法将字符概率转换为文本转录,然后由系统返回。
在 一篇之前的博客文章中,我讨论了我们如何使声学模型可流式传输。现在这两个系统都能够流式传输,应用程序中不再需要仔细调整的静音检测算法。 dabinat 是 DeepSpeech 代码库的长期志愿者贡献者,他贡献了此功能。感谢他!
在下图中,您可以看到同一音频文件在 DeepSpeech 中实时处理,分别是在解码器优化之前和之后。该程序在大约每秒请求一个中间转录,同时转录音频。虚线表示程序已收到最终转录的时间。然后,从音频信号末端到虚线的距离表示用户停止说话后必须等待多长时间才能计算出最终转录,并且应用程序能够做出响应。
在这种情况下,最新版本的 DeepSpeech 在音频结束后的 260 毫秒内提供了转录,比实施流式解码器之前快 73%。对于更长的录音,这种差异会更大。音频文件第 2 秒和第 3 秒的中间转录请求也在短时间内返回。
保持低延迟对于保持用户对应用程序的参与度和满意度至关重要。DeepSpeech 支持低延迟语音识别服务,无论网络状况如何,因为它可以在用户设备上离线运行。
TensorFlow Lite、更小的模型、更快的启动时间
我们添加了对 TensorFlow Lite 的支持,这是一个针对移动和嵌入式设备优化的 TensorFlow 版本。这将 DeepSpeech 包的大小从 98 MB 减少到 3.7 MB。它将我们的英语模型大小从 188 MB 减少到 47 MB。我们通过 训练后量化 完成了此操作,这是一种在训练完成后压缩模型权重的技术。TensorFlow Lite 是为移动和嵌入式设备设计的,但我们发现它在 DeepSpeech 中甚至在桌面平台上也更快。因此,我们将其在 Windows、macOS 和 Linux 以及 Raspberry Pi 和 Android 上提供。使用 TensorFlow Lite 的 DeepSpeech v0.6 在 Raspberry Pi 4 的单个核心上运行速度快于实时。
下图比较了 DeepSpeech 版本 v0.4.1、v0.5.1 和我们最新版本 v0.6.0 的启动时间和峰值内存使用情况。
我们现在使用少 22 倍的内存,启动速度快 500 倍以上。与我们应用于语言模型的优化相结合,包括推理代码和经过训练的英语模型的完整 DeepSpeech 包现在减少了 50% 以上。
API 中的置信度值和时间元数据
此外,新的解码器公开了时间和置信度元数据,为应用程序提供了新的可能性。我们现在在 API 中提供了扩展的功能集,而不仅仅是文本转录。您还可以获得转录中每个字符的时间元数据信息,以及每个句子的置信度值。
下面的示例显示了从 DeepSpeech 中提取的来自示例音频文件的时间元数据。API 返回的每个字符的时间都分组为单词时间。您可以在下面看到波形。单击“播放”按钮收听示例。
Te Hiku Media 正在使用 DeepSpeech 开发和部署第一个 毛利语 自动语音识别器。他们一直在探索使用我们新解码器中的置信度元数据来构建毛利语数字发音助手。最近,他们从新西兰的战略科学投资基金获得了 1300 万新西兰元投资,用于构建 Papa Reo,一个多语言平台。他们从新西兰英语和毛利语开始。
Windows/.NET 支持
DeepSpeech v0.6 现在为 Windows 提供了软件包,包括 .NET、Python、JavaScript 和 C 绑定。Windows 支持是人们一直要求的功能,由 Carlos Fonseca 贡献,他编写了 .NET 绑定和示例。感谢 Carlos!
您可以通过查看 WPF 示例(如下图所示)找到有关 Windows 支持的更多详细信息。它使用 .NET 绑定在 DeepSpeech 周围创建一个小型 UI。我们的 .NET 软件包在 NuGet Gallery 中提供。您可以直接从 Visual Studio 安装它。
您可以看到我们存储库中提供的 WPF 示例。它包含演示从音频文件以及从麦克风或其他音频输入设备进行转录的代码。
集中式文档
我们已将所有语言绑定的文档集中在一个网站上,deepspeech.readthedocs.io。您可以找到 C、Python、.NET、Java 和 NodeJS/Electron 软件包的文档。鉴于提供的各种语言绑定,我们希望让查找适合您平台的正确文档变得更容易。
训练模型的改进
随着 TensorFlow 1.14 的升级,我们现在利用了 CuDNN RNN API 用于我们的训练代码。此更改使我们的训练时间快了大约 2 倍,这意味着更快的实验和更好的模型。
除了更快的训练,我们现在还支持在线特征增强,如 Google 的 SpecAugment 论文 中所述。此功能由 Iara Health 贡献,这是一家巴西初创公司,为医疗专业人员提供转录服务。Iara Health 已使用在线增强来改进他们的生产 DeepSpeech 模型。
上面的视频展示了一位客户使用 Iara Health 系统。通过使用语音命令和听写,用户指示程序加载模板。然后,在查看 MRI 扫描结果时,他们口述他们的发现。用户可以在不打字的情况下完成报告。Iara Health 已针对这种专门的用例训练了自己的巴西葡萄牙语模型。
最后,我们还删除了所有假定已知采样率为 16kHz 的剩余点。DeepSpeech 现在完全能够以不同的采样率训练和部署模型。例如,您现在可以更容易地使用电话数据训练和使用 DeepSpeech 模型,电话数据通常以 8kHz 记录。
试用 DeepSpeech v0.6
DeepSpeech v0.6 版本 包括我们的语音识别引擎以及经过训练的英语模型。我们为六个平台提供二进制文件,并且如上所述,具有对各种编程语言的绑定,包括 Python、JavaScript、Go、Java 和 .NET。
包含的英语模型是在来自 Common Voice English、LibriSpeech、Fisher、Switchboard 的 3816 小时转录音频上训练的。该模型还包括大约 1700 小时的转录 WAMU(NPR)广播节目。它在 LibriSpeech 测试干净基准上实现了 7.5% 的单词错误率,并且在 Raspberry Pi 4 的单个核心上比实时速度更快。
DeepSpeech v0.6 包含了我们迄今为止最好的英语模型。但是,用于训练它的数据大部分是美式英语。因此,它在其他英语方言和口音上的表现并不像它可能的那样好。其他语言和方言中缺乏公开可用的语音数据是 Common Voice 被创建的部分原因。我们希望构建一个未来,让威尔士语、巴斯克语或苏格兰英语的使用者能够使用与目前美式英语、德语或普通话等拥有大型市场的语言使用者相同的质量标准的语音技术。
想参与 Common Voice 吗?你可以通过阅读一小段文字来捐赠你的声音。或者验证 40 种不同语言的现有录音,更多语言即将推出。目前,Common Voice 代表着世界上最大的公共领域转录语音数据集。该数据集包含近 2400 小时的语音数据,涵盖 29 种语言,包括英语、法语、德语、西班牙语和普通话,以及威尔士语和卡比尔语等。
v0.6 版本现已在 GitHub 以及您最喜欢的包管理器上提供。您可以下载我们的预训练模型,并在几分钟内开始使用 DeepSpeech。如果您想了解更多信息,可以在 GitHub 版本 中找到详细的版本说明;安装和使用说明可以在我们的 README 中找到。如果您没有找到所需内容,也可以使用我们的 讨论论坛。
关于 Reuben Morais
Reuben Morais 是 Mozilla 机器学习团队的高级研究工程师。他目前专注于缩短机器学习研究与现实世界应用之间的差距,为用户带来隐私保护的语音技术。
19 条评论