音声に日本語で正規表現でマッチさせるのデバッグしてると

、自分の発音にのみ依存したものを気づかぬうちに書いてしまうように思う。
siri のサーバで変換してもらってる分だけ、そういうのを吸収してくれているけど、結局はハマると思う。

Siri ( SiriProxy ) を通して zaim に入力する様子 - soh335 memo で zaim への入力にジャンルと値段をマッチさせる正規表現を書いた。

「Zaim昼ごはん750円」って発音してるのに下のように発音されたことになってしまう。

  • 「Zaim昼ごはん750円」-> 「Zaim昼ごはん750年」
  • 「Zaim昼ごはん750円」-> 「Zaim昼ご飯愛150年」

/Zaim\s?(\S*?)(\d+)円/i のような正規表現を書いているが、最後の値段のマッチは (\d+) だけにするとかのほうがいいかもしれない。
こういうのを繰り返してると多分他の人で試した時に上手く動かない可能性が高い。
後、いつ区切られるか分からなかったりするので、^ とか $ は使えないのも地味にめんどくさいように思う

登録の確認をする場合も

    res = ask "#{genre} #{price}円で登録しますか?"

    if res =~ /はい/ then
    else
    end

このように書いてるけど、確認に対しての返答は、はいかもしれないし、yes かもしれないし、そういうのをこちらがわでどうにかするのはめんどくさい。yes か no ボタンの世界なら誰がやっても同じなのに、音声になるとそういかないのでめんどくさい感じしかしない。

opencv で顔認識を用いて動くソフトウェアを作っていたら自分の顔でデバッグするし、結果その人にチューニングされた状態になって他の人で動かないみたいな話と同じかと思うけど、チューニング出来るパラメータが正規表現だと外に出せるイメージがない。


google grass とか音声で操作するようなものの上で動くものを作るときは、どのように作るのか気になる。

一個一個の拡張やプラグインで、辞書を作って単語を分けてとか、大げさな処理を同じように書くのはめんどくさそうなので、正規表現みたいに簡単に書けるとすごい有難い感じはする。

こういうの日本語の問題なのか、英語でも発生しうる問題なのかも気になる。