概要
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
なにかあればコメントください!