ラズパイで音声認識(2)Vosk


前回やったラズパイ3+Julius で音声認識の続編

前回ではオフラインでの日本語音声認識はJulius一択と言ってましたが、ここにきてVoskという選択肢が増えました。やってみます。


今回はVoskを使い、インストールしてローカル・オフラインで稼働させてみます。

ラズパイは5(8GB)を使用。

OSイメージはRaspberry Pi OS Desktop (64-bit)Bookworm

注:Lite ではうまくいった試しがないです。使っているPython のALSA系のライブラリが違う?

 

 

 

 

 

 


まず仮想環境を作成。

pipをアップグレードしてモジュール・ライブラリをインストールします。

pyaudioのインストールで以下のようなエラーになった場合

ERROR: Failed building wheel for pyaudio

ERROR: Could not build wheels for pyaudio, which is required to install pyproject.toml-based projects

少し上の行で以下のようなメッセージを見つけた時

fatal error: ‘portaudio.h’ file not found」の場合

>sudo apt-get install portaudio19-dev

fatal error: Python.h: そのようなファイルやディレクトリはありません」の場合

>sudo apt install python3-dev

で、
>pip install pyaudio

 

 

作業環境を作成。

 

日本語モデルのダウンロード・解凍

2パターンあります。軽量な48MBと精度の高い1GB、1GBは精度が高い分50MBに比べてタイムラグは若干長めです。

 

 

 

 

 

 

 

48MBの場合

1GBの場合

 

実行コードのサンプル

sudo nano listener.py

モデルのパスは1GB版(vosk-model-ja-0.22)で設定しています、48MBの場合は vosk-model-small-ja-0.22 に変更してください。

Ctrl-C で終了します。

 

python3 listener.py

サウンド・ライブラリにpyaudioを使っているので読み込み時に盛大にWarningやErrorが表示されますが実行には問題ないので無視してください。

最初に「えーと」という音声が認識されていますが、これは無音のノイズ(?)を拾ったものです。

ラズパイ5でもタイムラグは1~2秒くらいあります。

 

 

 

 

 

 

 

 

 

 

1GB版はかなり認識精度は高いです。

基本的に起動後拾った音はすべて認識し続けていますが、ウェイクワードを設定することで途中で何かの作業をさせることができます。AlexaやSiri のような掛け声のようなものです。ご自分の声で認識精度の高いものを探すといいです。

 

では仮想環境を抜けます。

 


起動時実行

source venv_vosk/bin/activate

cd ~/vosk
python3 listener.py

 


Appendix

音声合成に関しては以下を参照

ラズパイで音声合成(2)AquestTalk・VoiceVox

 


Appendix2

voskをLLMなどでの推論実行時のウェイクワードの検出器として使うというのが現実的?

ウェイクワードに関してはこれも参照

Picovoice/porcupine

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*