最終更新:2024-12-01 (日) 07:59:27 (7d)
Module LLM/Julius
Top / Module LLM / Julius
概要
- Juliusと日本語認識キットのdictation-kitの最新版をビルドして動かしてみる
Juliusのビルド
- apt install build-essential alsa-utils unzip
- apt install zlib1g-dev libasound2-dev libsndfile1-dev
wget https://github.com/julius-speech/julius/archive/refs/tags/v4.6.zip unzip v4.6.zip cd julius-4.6 ./configure --with-mictype=alsa --build=aarch64-unknown-linux-gnu
- パッチを当てる
- Module LLM/マイクのALSAデバイスの挙動がおかしいので対策 (M5_LLM_ubuntu22_04_20241115.axpのテスト用ファームの場合)
- snd_pcm_hw_params_set_format(SND_PCM_FORMAT_S16_LE)ときは指定した2倍のデータをsnd_pcm_readi()で取得してしまっている模様 (S32_LEのときはOK)
- https://github.com/julius-speech/julius/blob/master/libsent/src/adin/adin_mic_linux_alsa.c#L262
- を下記の感じに1行編集
- actual_rate = srate; + actual_rate = 8000; // サンプルレートはJulius標準の16KHzにしたいが指定の2倍のデータが来るので8KHzを指定
- ビルド
make make install # usr/local/binにインストール
dictation-kitのインストール
- 公式はクソ遅いのでミラーからダウンロード
wget https://ftp.jaist.ac.jp/pub/sourceforge.jp/julius/71011/dictation-kit-4.5.zip unzip dictation-kit-4.5.zip cd dictation-kit-4.5/ julius -C main.jconf -C am-gmm.jconf -demo
動作の様子
- 認識するようになったけど精度はいまいち。これはRaspberry Pi 4でやったときも同じ感じなので辞書を作ったりが必要っぽい
- (RPi4の16KHzのほうが気持ち認識精度が高い気はするがそもまで高くはない)
Stat: "default": Audio [Axera Audio] device 6051000.i2s_slv-actt 23f2000.audio_codec-0 [6051000.i2s_slv-actt 23f2000.audio_codec-0] subdevice #0 STAT: AD-in thread created pass1_best: 今日 は sentence1: こんにちは 。 pass1_best: おはよう ござい ま sentence1: おはよう ござい ます 。 <<< please speak >>>
- (RPi4の16KHzのほうが気持ち認識精度が高い気はするがそもまで高くはない)
- ps
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 109679 12.7 16.0 172352 158000 ttyS0 Sl+ 06:24 0:53 julius -C main.jconf -C am-gmm.jconf -demo
DNN?版
$ julius -C main.jconf -C am-dnn.jconf -demo -dnnconf julius.dnnconf ... [44173.055365] Out of memory: Kill process 113714 (julius) score 625 or sacrifice child [44173.137849] Killed process 113714 (julius) total-vm:623492kB, anon-rss:613136kB, file-rss:4kB, shmem-rss:0kB Killed
- Raspberry Pi 4で試したらメモリが1GBくらい必要な模様
- 精度は多少良いが応答性がいまいちだった
ボリュームの調整
- alsamixerを起動
- F4 (Captureデバイスに切り替え)
- 左右でRX RIGHTを選んで12になってたのを38にしたらちょうどいい音量になった
PCMデバイスが開けない場合
- 下記のエラーが出るときはsystemctl stop llm-audio?
Error: adin_alsa: cannot open PCM device "default" (Device or resource busy) failed to begin input stream