Posted at

raspi最新カーネルでjuliusを動かす

More than 1 year has passed since last update.


概要

RaspberryPi3で音声認識ソフトウェアjuliusを動かそうとすると以下のようなエラーが出ることがあり

Stat: adin_oss: device name = /dev/dsp (application default)

Error: adin_oss: failed to open /dev/dsp
failed to begin input stream

このエラーはカーネルバージョンが最新でなければ以下のコマンドで回避できます

sudo modprobe snd-pcm-oss

juliusのインストールや使い方は以下の記事を参考に。

ラズパイと音声認識でLチカ

しかし、先日発売されたRaspberryPi3b+ではカーネルのバージョンが最新である必要があり

最新のカーネルではsnd-pcm-ossのモジュールが含まれていないため

先ほどのコマンドを入力すると以下のようになってしまいます

sudo modprobe snd-pcm-oss

modprobe: FATAL: Module snd-pcm-oss not found in directory /lib/modules/4.14.34-v7+

この回避方法を以下で説明していきたいと思います


回避方法  


カーネルバージョンのダウングレード (RaspberryPi3b+以外)

RaspberryPi3b+は最新バージョンでないと動かないので飛ばしてください。

エラーの原因は


  • 最新のカーネルではsnd-pcm-ossのモジュールが含まれていない

であるためカーネルをダウングレードすればいいというお話。

以下のコマンドで4.5.59にダウングレードすると先ほどのコマンドが通るようになる

sudo rpi-update a6b3e852ca70f2a12850b4542438583cc3b29788


使用するサウンドドライバを変更する(*最新カーネル対応)

最新カーネルで動かしたい場合は,juliusのコンパイルの際にサウンドドライバをoss標準でないものに指定する必要があります

sudo apt-get install osspd-alsa

sudo aptitude install libasound2-dev
./configure --with-mictype=alsa
make
make install

これでできるはずです

ちなみにデバイスをしていするために以下のコマンドでカードを確認して正しく指定する必要があります

arecord -l

export ALSADEV=hw:1

なにかあればコメントください!