ラベル Raspbian の投稿を表示しています。 すべての投稿を表示
ラベル Raspbian の投稿を表示しています。 すべての投稿を表示

2013年9月19日木曜日

Ruby + google音声認識APIによるRaspberryPIでの音声認識

「googleの日本語音声認識を自由に呼び出して使う方法」を参考にRubyからgoogle音声認識APIを叩いてみた。

まず事前準備として

RaspberryPIにUSBマイクで音声入力を参考に、録音
$ arecord -D plughw:1,0 -d 10 -f cd test.wav
ffmpegパッケージでtest.wavをtest.flacに変換
$ ffmpeg -i test.wav -vn -ac 1 -ar 16000 -acodec flac test.flac
あとは以下のスクリプトを実行。

----
----

実行結果
$ ruby gvoicerecog.rb
#<Net::HTTPOK 200 OK readbody=true>
{"status":0,"id":"1b69aa31b6bfac4059d6409566f4950e-1","hypotheses":[{"utterance":"あいうえお","confidence":0.5210862},{"utterance":"あ い う え お"},{"utterance":"アイウエオ"},{"utterance":"あいうえお aa"},{"utterance":"あいうえお うー"}]}

juliusと違ってかなりの認識精度。

それにRaspberryPIの負荷もほとんどない・・・

便利すぎる。

ただ家電コントローラ的にはリモコン操作に慣れてしまったのでもはや使い所がない。
うーむ。ちょっと利用方法を考える。

  • 人口無脳的チャット
  • 自由記述による検索
  • 天気予報とかwikipediaとか(出力が音声だと使いにくくない?)
ぬぬー。求むアイディア。

2013年8月28日水曜日

USBラジオ RDPC-101(5) カスタムカーネル作成・・・コンパイルエラー

Raspberry Pi(Raspbian)用カーネルをクロスコンパイルを参考にカスタムカーネルを作成してみた。

詳細は参考を見てもらうとして、最終的にカーネルのビルドで以下のエラーが発生。
途方に暮れる。


$ DEB_HOST_ARCH=armhf fakeroot make-kpkg --arch arm --subarch armhf  --cross_compile arm-unknown-linux-gnueabi- --revision 0.1 --us --uc kernel_image modules_image


... 略 ...

  LD      drivers/staging/vt6656/built-in.o
  LD      drivers/staging/winbond/built-in.o
  LD      drivers/staging/wlan-ng/built-in.o
  LD      drivers/staging/zram/built-in.o
  LD      drivers/staging/zsmalloc/built-in.o
  LD      drivers/staging/built-in.o
  CC      drivers/thermal/thermal_sys.o
  CC      drivers/thermal/bcm2835-thermal.o
drivers/thermal/bcm2835-thermal.c:21:23: fatal error: mach/vcio.h: No such file or directory
compilation terminated.
make[3]: *** [drivers/thermal/bcm2835-thermal.o] エラー 1
make[2]: *** [drivers/thermal] エラー 2
make[1]: *** [drivers] エラー 2
make[1]: ディレクトリ `/home/mihara/raspberrypi-cross/linux' から出ます
make: *** [debian/stamp/build/kernel] エラー 2


なんだろう。
Raspbianのgithubのソースコードそのままではビルドできないのか。

それともなにか間違えているのだろうか。うーん。

2013年8月23日金曜日

RaspberryPI+GC-10復旧

RDPC-101用モジュール作成失敗によりカーネルモジュールを一切読み込まなくなったので、

結局、SDカード作成からやり直し。

スクリプトのバックアップはとってあったので短期間で復旧できた。

・・・RDPC-101はどうしたものか。


素直に組み込みカーネルパッケージ作成した方が良いのかも。
ヤレヤレ。

2013年8月22日木曜日

USBラジオ RDPC-101(4) RaspberryPIでのカーネルモジュール作成・・・失敗

前回の記事で作成したカーネルモジュールの動作を確かめるべくRDPC-101をつないで見たところ、

[   48.873982] usb 1-1.3.3.4: new full-speed USB device number 7 using dwc_otg
[   48.976675] usb 1-1.3.3.4: New USB device found, idVendor=10c4, idProduct=818a
[   48.976707] usb 1-1.3.3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   48.976724] usb 1-1.3.3.4: Product: FM Radio
[   48.976737] usb 1-1.3.3.4: Manufacturer: SILICON LABORATORIES INC.
[   49.058014] radio_rdpc101: disagrees about version of symbol module_layout

のようなログがでた。どうも認識はしたらしい。

しかし/dev/を確かめてみたところ、/dev/radio0がない。

[   49.058014] radio_rdpc101: disagrees about version of symbol module_layout

のところからして何か間違えたらしい。

ヤレヤレと思いつつひょっとしたらと再起動してみたら、
一切のモジュールを読み込めなくなった。

lsmodしてもひとつもモジュールが表示されない。

ネットワークなどはカーネル組み込みなので動作するもののGC-10のシリアルモジュールのデバイスが作成されない。

うーむ。困った。

とりあえずバックアップをとったけど、最悪SDカードの作り直しになるかも

2013年8月21日水曜日

USBラジオ RDPC-101(3) RaspberryPIでのカーネルモジュール作成

警告

以下の手順で再起動後にRaspbianのカーネルモジュールが一切読み込まれなくなりました。

きっと何か間違っています。


USBラジオ RDPC-101(2)と同様にdkmsであっさりビルドできると思っていたのだが、Raspbianだと動作しているカーネルのヘッダーパッケージがないらしくモジュールがビルドできない様子。

どうも自分でカーネルソースを取得して展開する必要があるらしい。

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=71&t=17666

フォーラムの記事を参考にやってみたらカーネルモジュールのビルドができたので手順をのっけとく。

(1) カーネルソースの取得

https://github.com/raspberrypi/linux/の3.6.yブランチの右サイドバーの「Download Zip」からlinux-rpi-3.6.y.zipをダウンロードする。



(2) カーネルソースの展開

# cd /usr/src
# unzip linux-rpi-3.6.y.zip


(3) make oldconfigとmake module_prepare

# cd linux-rpi-3.6.y
# zcat /proc/config.gz > .config
# make oldconfig
# make modules_prepare

8
(4) Module.symversの取得(必要?)

wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers


(5) symlink作成

# mkdir /lib/modules/`uname -r`
# pushd /lib/modules/`uname -r`
# ln -s ${KSRC} source
# ln -s ${KSRC} build
# popd

# pushd /usr/src
# ln -s ${KSRC} linux-`uname -r`
# ln -s ${KSRC} linux
# popd

これでradio_rdpc101-0.0.1のMakefileが通るようになる。
dkmsでのモジュールビルドも可能(カーネルパッケージをアップグレードするとカーネルソースがなくなってdkmsコケるかも知れないけど)。

とりあえあえずここまで。
あとで追記します。