vosk - VOSK音声認識ツールキット

(VOSK Speech Recognition Toolkit)

Created at: 2019-03-21 06:49:51
Language: C
License: Apache-2.0

AndroidおよびLinux用のKaldiAPIについては、VoskAPIを参照してください。これはサーバープロジェクトです。

これが生涯音声認識システムのVoskです。

コンセプト

2019年の時点で、ニューラルネットワークベースの音声認識機能は、トレーニングで使用できる音声データの量に関してかなり制限されており、パラメーターをトレーニングして最適化するために膨大な計算能力と時間を必要とします。ニューラルネットワークには、人間のようなワンショット学習に問題があり、その決定は目に見えない条件に対してあまり堅牢ではなく、理解して修正するのが困難です。

そのため、大信号データベースのコンセプトに基づいたシステムを構築することにしました。オーディオフィンガープリント方式を適用します。オーディオはチャンクに分割され、チャンクはLSHハッシュ値に基づいてデータベースに保存されます。デコード中に、データベース内のチャンクを検索するだけで、可能な電話が何であるかがわかります。これは、結果のデコードについて適切な決定を下すのに役立ちます。

このアプローチの利点は次のとおりです。

  • 非常にシンプルなハードウェアで100000時間の音声データをすばやくトレーニングできます
  • サンプルを追加するだけで、レコグナイザーの動作を簡単に修正できます
  • トレーニングデータセットで十分に表現されているため、認識結果が正しいことを確認できます。
  • 何千ものノード間でトレーニングを並列化できます
  • 生涯学習パラダイムをサポートします
  • この方法をより一般的なニューラルネットワークトレーニングと組み合わせて使用​​すると、認識精度が向上します。
  • システムはノイズに対して堅牢です

短所は次のとおりです。

  • インデックスは本当に巨大で、単一サーバーのメモリに収まるとは期待されていません
  • モデルの一般化機能にはかなり疑問がありますが、同時にニューラルネットワークの一般化機能にも疑問があります。
  • 今のところ、セグメンテーションには従来のASRが必要ですが、将来的には自分でセグメント化する可能性があります。

将来的に物事を持っているといいでしょう:

  • 多言語トレーニング
  • 私たち自身のセグメンテーション
  • モバイルに合うようにモデルを縮小するツール
  • このAIパラダイムを実装するための専用ハードウェア

使用法

要件をインストールするには、

pip3 install -r requirements.txt

トレーニング/検証データを準備するには、次の2つのファイルを作成します。

  • wav.scp
    ファイルシステム内のwavファイルに子宮をマップするリスト
  • phones.txt
    音素とタイミングを含むCTMファイル。アラインメントからのCTMファイルか、デコードからのCTMファイルである可能性があります

KaldiASRツールキットを使用して作成できます

インデックス作成

データベースにデータを追加するには、

python3 index.py wavs-train.txt phones-train.txt data.idx

これにより、データベースdata.idxにデータが追加されるか、新しいデータが作成されます。

検証

デコード結果を確認するには、

python3 verify.py wavs-test.txt phones-test.txt data.idx

このツールは、インデックス内のセグメントを検索し、疑わしいセグメントを報告します。これらのセグメントを追加で確認し、後でデータベースに追加して、認識の精度を向上させることができます。

関連する論文とリンク