2013年9月5日木曜日

RaspberryPIで赤外線リモコン(1)

秋月電子で頼んでた赤外線リモコンのパーツが届いた。


キモのパーツは赤外線受光モジュールのPL-IRM0101-3と赤外線発光ダイオードOSI5FU511C-40。

例によってhttp://homebrew.jp/show?page=1480のサイトを参考にした。

早速ブレッドボードで回路作って接続。



最初に間違えてhomebrew.jpで赤外線受光モジュールにCRVP1738を利用しているのを忘れてそのままPL-IRM0101-3で置き換えて回路作ってしまった。

CRVP1738とPL-IRM0101-3ではピン配置が異なっていたためショートさせてしまい異臭発生

RaspberryPIも起動せず。

確認してないけどPL-IRM0101-3たぶん壊れたと思う。(*ノω・*)テヘ

で、ピン配置を正しく置き換えてlircdの設定をしたところキチンとリモコンの信号がとれた。

lircdの学習方法がはじめよくわからなかったが、


を参考に学習。

ようは2回ランダム押しした後にひとつひとつ名前をつけながら入力していく感じ。

学習も終わったのでいよいよ出力。

なのだが赤外線でない。

受光モジュールのショートのときに他の部品も壊したのかと抵抗やトランジスタを変えてみても出ない。

テスタで調べてみたところGPIO17から信号は出てるっぽい。

GNDと各部の電流を調べてみたけどよくわからん。
※コレクタ、エミッタ間とか調べればよかったかも・・・

と、ここで気づいたがベースの2k2の抵抗がデカすぎるんでないかと。

2つ目の参考サイトでは1kの抵抗を使ってる。

というわけで抵抗を変えてみたいが2k2と100しか買ってないのでまた後日。

近所のパーツ屋で調達してからリトライ。

いくら品ぞろえ悪い無線関係中心のパーツ屋でも抵抗くらいはあるだろう。



2013年9月1日日曜日

RaspberryPIでJuliusによる音声認識(2)

前回の確認でデフォルトの辞書では使い物にならないことがわかったので

Julius の記述文法を用いて音声認識精度をあげてみた

を参考にコマンドの文法を作成してみた。

詳細は参考サイトを参照してもらうとして、以下の設定ファイルを作成して試してみた。

cmd.grammar
S       :  NS_B CMD NS_E
CMD     :  RADIO CH
CMD     :  RADIO OFF
CMD     :  DENKI
CMD     :  CHOUKOU
CMD     :  JOUYATOU
CMD     :  EAKON ON
CMD     :  EAKON OFF
CMD     :  TENKIYOHOU


cmd.voca
% RADIO
ラジオ  r a j i o
% CH
イチ  i ch i 
ニ  n i 
サン  s a N
ヨン  y o N
ゴ  g o
ロク  r o k u
ナナ  n a n a
ハチ  h a ch i
キュウ  ky u:
ジュウ  j u:
% OFF
オフ  o h u
% ON
オン  o N
% DENKI
デンキ  d e N k i
% CHOUKOU
チョウコウ ch o: k o:
% JOUYATOU
ジョウヤトウ j o: y a t o:
% EAKON
エアコン e a k o N
% TENKIYOHOU
テンキヨホウ t e N k i y o h o:
% NS_B
<s>  silB
% NS_E
<s>  silE

julius.conf
-input mic
-h hmmdefs_ptm_gid.binhmm 
-hlist logicalTri

-n 5
-output 1

-rejectshort 800
-demo
-debug
-lv 5000


コマンド
$ ../dist/bin/julius -C julius.conf  -gram cmd


出力結果は以下のようにほぼ間違いなく認識できるようになった。

pass1_best: <s> デンキ <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> デンキ <s>
pass1_best: <s> ラジオ イチ <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> ラジオ イチ <s>
pass1_best: <s> エアコン オン <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> エアコン オン <s>
pass1_best: <s> エアコン オン <s>        
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 2 sentences have been found
sentence1: <s> エアコン オン <s>
pass1_best: <s> テンキヨホウ <s>          
WARNING: 00 _default: hypothesis stack exhausted, terminate search now
STAT: 00 _default: 1 sentences have been found
sentence1: <s> テンキヨホウ <s>
pass1_best: <s> チョウコウ <s>            
sentence1: <s> チョウコウ <s>
pass1_best: <s><input rejected by short input>
pass1_best: <s><input rejected by short input>

しかし、記述文法方式だと無意味な発音も無理やり認識してしまう。
「こんにちは」と発音しても「デンキ」となってしまう。

勿論スコアがあるのだけどコマンド毎に数値の基準が違ったり、全く別の発音でも高スコアだったりして判定できない。

結局、false positiveが多すぎて使えない・・・うーむ。