使用 DeepSpeech 在你的應用中實現語音轉文字
應用中的語音識別不僅僅是一個有趣的技巧,而且是一個重要的無障礙功能。
計算機的主要功能之一是解析數據。有些數據比其他數據更容易解析,而語音輸入仍然是一項進展中的工作。不過,近年來該領域已經有了許多改進,其中之一就是 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,你可以將語音的錄音轉錄成書面文字。你可以從在最佳條件下干凈錄制的語音中得到最好的結果。然而,在緊要關頭,你可以嘗試任何錄音,你可能會得到一些你需要手動轉錄的東西。
為了測試,你可以錄制一個包含簡單短語的音頻文件:“This is a test. Hello world, this is a test”。將音頻保存為一個 ??.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,看看它能為你做什么。