VOSK
Kaldiがベースの完全ローカルで動作する音声認識ツールキット
日本語モデルが用意されてるしマイクでのストリーム認識もできる!!
こういうの待ってた。
Pythonで使ってみる
試した環境
- Windows 10
- python 3.9.6
- pip 21.1.3
インストール
pip で一撃で入る
ただしpoetry環境だとエラーが出てインストールできなかった。
Python標準のvenv環境からpipコマンドにてインストールした
pip install vosk
モデルの準備
↑ここからJapaneseのものをダウンロードする。
2022/05/13時点での最新はvosk-model-small-ja-0.22
サンプルプログラムの入手
ここからクローン
git clone https://github.com/alphacep/vosk-api.git
実行
vosk-api/python/example/
に様々なサンプルプログラムが置いてある。
このディレクトリに、ダウンロードしたモデルのzipをmodelという名前にリネームして解凍する。
マイクでのストリーム認識はvosk-api/python/example/test_microphone.py
で試せる。
python test_microphone.py
結果
partialが認識途中の結果
textが最終結果
所感
- 簡単なコマンド入力とかなら全然使えそう
- VADとかは特になく、ずーっと聞き続けている
- モデルがとても小さい(50MBくらい)
- 語彙が少ない感じはある
- 最終結果が返ってくるまでは少し遅いかな
- 最近PyAudioが使いづらくなってきたのでsounddeviceでのサンプルは助かる
その他
- iOSでもAndroidでもMacでもLinuxでも動くらしい(M1 Macは無理)
- 辞書は追加できるっぽい
- サーバーでの大語彙認識もできる(?)とintroductionには書いてある
- 話者識別もできるらしい。とintroductionには書いてある
- ラズパイでも動くがRaspbianのみ
- ラズパイゼロは遅すぎるので動かないと書いたあったが、Raspberry Pi Zero 2 W だとどうか(動かしたい)
- ROSパッケージもある! https://github.com/alphacep/ros-vosk
- UnrealEngineのプラグインもある! https://www.unrealengine.com/marketplace/en-US/product/d3c56f7d6af44915a9c818659b4a3d2e
- Unityも! https://github.com/Yeti47/Vosk4Unity