在应用程序中,如何使用Mozilla DeepSpeech实现语音转文本

728 阅读2分钟

计算机的主要功能之一是解析数据。有些数据比其他数据更容易解析,而语音输入仍然是一项进展中的工作。不过,近年来该领域已经有了许多改进,其中之一就是DeepSpeech,这是Mozilla的一个项目,Mozilla是维护Firefox网络浏览器的基金会。DeepSpeech是一个语音到文本的命令和库,使其对需要将语音输入转化为文本的用户和希望为其应用程序提供语音输入的开发者非常有用。

安装DeepSpeech

DeepSpeech是开源的,根据Mozilla公共许可证(MPL)发布。你可以从其GitHub页面下载源代码。

要安装,首先为Python创建一个虚拟环境。

$ python3 -m pip install deepspeech --user

DeepSpeech依靠的是机器学习。你可以自己训练它,但最简单的是在你刚开始时下载预训练的模型文件。

$ mkdir DeepSpeech
$ cd Deepspeech
$ curl -LO \
https://github.com/mozilla/DeepSpeech/releases/download/vX.Y.Z/deepspeech-X.Y.Z-models.pbmm
$ curl -LO \
https://github.com/mozilla/DeepSpeech/releases/download/vX.Y.Z/deepspeech-X.Y.Z-models.scorer

用户的应用

通过DeepSpeech,你可以将语音的录音转录成书面文字。你可以从在最佳条件下干净地录制的语音中得到最好的结果。然而,在紧要关头,你可以尝试任何录音,你可能会得到一些你可以用作手动转录的起点。

为了测试的目的,你可以录制一个包含简单短语的音频文件,"这是一个测试。世界你好,这是一个测试"。.wav 将音频保存为一个名为hello-test.wav 的文件。

在你的DeepSpeech文件夹中,通过提供模型文件、评分器文件和你的音频,启动一个转录。

$ deepspeech --model deepspeech*pbmm \
--scorer deepspeech*scorer \
--audio hello-test.wav

输出被提供给标准输出(你的终端)。

this is a test hello world this is a test

你可以通过使用--json 选项获得JSON格式的输出。

$ deepspeech --model deepspeech*pbmm \
-- json
--scorer deepspeech*scorer \
--audio hello-test.wav

这将显示每个词和一个时间戳。

{
  "transcripts": [
    {
      "confidence": -42.7990608215332,
      "words": [
        {
          "word": "this",
          "start_time": 2.54,
          "duration": 0.12
        },
        {
          "word": "is",
          "start_time": 2.74,
          "duration": 0.1
        },
        {
          "word": "a",
          "start_time": 2.94,
          "duration": 0.04
        },
        {
          "word": "test",
          "start_time": 3.06,
          "duration": 0.74
        },
[...]

开发人员

DeepSpeech不仅仅是一个转录预先录制的音频的命令。你也可以用它来实时处理音频流。GitHub仓库DeepSpeech-examples中充满了JavaScript、Python、C#和Android的Java。

大部分艰苦的工作已经完成,所以集成DeepSpeech通常只是引用DeepSpeech库,并知道如何从主机设备上获得音频(你通常通过Linux上的/dev 文件系统或Android和其他平台上的SDK来完成)。

语音识别

作为一个开发者,为你的应用程序启用语音识别不只是一个有趣的技巧,而是一个重要的可访问性功能,使你的应用程序更容易被有移动问题的人、低视力的人和喜欢保持双手的慢性多任务者使用。作为用户,DeepSpeech是一个有用的转录工具,可以将音频文件转换为文本。无论你的使用情况如何,请尝试DeepSpeech,看看它能为你做什么。