Raspberry Pi 3 Juliusで音声認識(2)

スポンサーリンク

ライブラリ

前回でマイクの設定が終わりました。
ここからはJuliusをインストールについて説明します。

まずは必要なライブラリをインストールします。

$ sudo apt-get install libasound2-dev

Julius

Juliusをインストールして行きましょう。
本体とキットの2つが必要なので、それぞれ次の手順でインストールします。

Julius本体

Julius(ver4.4.2.1)をソースからインストールします。
$HOME直下にjuliusディレクトリを作成して、その中へ移動します。

$ mkdir julius
cd julius

Juliusをダウンロードします。バージョンは2018.06時点で最新の4.4.2.1を使用します。

$ wget https://github.com/julius-speech/julius/archive/v4.4.2.1.tar.gz

解凍します。

$ tar xvzf v4.4.2.1.tar.gz

解凍してできたフォルダの中へ移動します。

$ cd julius-4.4.2.1/

コンパイルします。
この時、必ず–with-mictype=alsaオプションをつけてください。
これをつけないと以降の処理で失敗します。

$ ./configure --with-mictype=alsa
$ make
$ sudo make install

念のためバージョンを確認してみます。

$ julius --version

キット

julius-kitディレクトリを作成し、音声認識用辞書キットと文法認識キットをダウンロード&解凍します。

$ mkdir julius-kit
$ cd julius-kit
$ sudo wget https://osdn.net/dl/julius/dictation-kit-v4.4.zip
$ sudo wget -O grammar-kit-v4.3.1.zip https://github.com/julius-speech/grammar-kit/archive/v4.3.1.zip
$ unzip dictation-kit-v4.4.zip
$ unzip grammar-kit-v4.3.1.zip

テスト

$HOMEに戻り、テストしてみます。

$ cd $HOME

以下のコマンドを入力し、テストしてみます。

$ julius -C julius/julius-kit/grammar-kit-4.3.1/testmic.jconf -charconv SJIS UTF-8

STAT: include config: julius/julius-kit/grammar-kit-4.3.1/testmic.jconf
STAT: include config: julius/julius-kit/grammar-kit-4.3.1/hmm_ptm.jconf
STAT: jconf successfully finalized
(略)
Stat: adin_alsa: device name from ALSADEV: "plughw:1,0"
Error: adin_alsa: cannot open PCM device "plughw:1,0" (No such file or directory)
failed to begin input stream

((´д`))なんだと…

念のためカードとデバイスを確認してみます。

$ arecord -l

**** ハードウェアデバイス CAPTURE のリスト ****
カード 0: Device [USB PnP Sound Device], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

( ´・ω・)変わっとるやないか。。。

ALSADEV=”plughw:1,0″としているので認識できないようですので、変更します。

$ sudo vim /etc/profile

# 最終行
# export ALSADEV="plughw:1,0"
export ALSADEV="plughw:0,0"

再起動します。

$ sudo reboot

再チャレンジしてみます。

$ julius -C julius/julius-kit/grammar-kit-4.3.1/testmic.jconf -charconv SJIS UTF-8
STAT: include config: julius/julius-kit/grammar-kit-4.3.1/testmic.jconf
STAT: include config: julius/julius-kit/grammar-kit-4.3.1/hmm_ptm.jconf
STAT: jconf successfully finalized
(略)
Stat: adin_alsa: device name from ALSADEV: "plughw:0,0"
Stat: capture audio at 16000Hz
Stat: adin_alsa: latency set to 32 msec (chunk = 512 bytes)
Stat: "plughw:0,0": Device [USB PnP Sound Device] device USB Audio [USB Audio] subdevice #0
STAT: AD-in thread created
<<< please speak >>>

できました!

<<< please speak >>> と入力を促されているので、話しかけてみます。
テストでは「りんご」「みかん」「ぶどう」を認識しますので、やってみます。

STAT: AD-in thread created
pass1_best: <s> 蜜柑 です </s>
sentence1: <s> 蜜柑 です </s>
pass1_best: <s> リンゴ です </s>
sentence1: <s> リンゴ です </s>
pass1_best: <s> ぶどう です </s>
sentence1: <s> ぶどう です </s>
<<< please speak >>>

正しく認識しているようです。

ただ、何を話しかけても「りんご」「みかん」「ぶどう」としか認識しませんww

「ピーマン」 → 「りんご」
「あーーー」 → 「みかん」
「ラズパイ」 → 「みかん」

となりましたww

次回はこの認識精度を上げるため、自分用の辞書を作りたいと思います。
あ、上記のテストを終了するにはCTRLCを押してください。
以上、お疲れ様でした!

スポンサーリンク

コメント

  1. もち より:

    juliusのインストールのところでmakeをすると
    Makefile:56: ターゲット ‘libsent’ のレシピで失敗しました
    make: *** [libsent] エラー 1
    となってしまいました.

    • RetaxAdmin より:

      コメントありがとうございます!
      こちらの件について最新のjulius4.5で確認しましたが、再現しませんでした。

      推測ですが、libasound2-devが正しくインストールされていないのではないかと思います。
       1. $ sudo apt-get install libasound2-dev
       2. $ ./configure –with-mictype=alsa
       3. $ make
      でお試しください。
      もしダメなようであれば、環境を書いていただけると助かります。