こんにちは
盤屋の試験員です。
今回は前回の続きで細かい制御をするつもりだったんですけど、思い付きで音声入力をやってみたいと思います。
最近、業務効率化で音声入力に挑戦してるんですが、Windowsの音声入力って精度悪いですね・・・仕方ないんで、難しい文章は諦めて認識しやすい文言で入力システムを作ることを目指してみました。
~~ キーワードでデータベースを呼び出す。 ~~
まずは、顧客情報の入ったデータベースとなるCSVファイルを用意します。
↓こんな感じで
一番左の”呼称”を呼び出すためのキーワードにしています。
フルネームで呼ぶのは長いですしね。ニックネームとか簡単な方が良い場合もあるので融通の利くようにしてます。2列目以降のデータ(氏名や住所)が詳細データになります。
キーワードを音声で拾えるようにVB.netで””ExcelVoice.exe”というアプリを作ってバックグラウンドに待機させておきます。
音声認識は、System.Speech.Recognition クラスを使えば実装できます。
必要なくなったら終了できるように、システムトレイに常駐させて、右クリック→終了で終われるようにしておきます。
エクセルへの出力は"Microsoft Excel Object Library"で操作してもいいんですが色々と面倒くさいのでここでは単純にSendkeyステートメントを使います。マクロや"Object Library"を使ってしまうと"戻る”が効かないのですが、この方法なら"戻る"が使えるんですよね。
あと、Webの入力フォームにも対応できるのも大きいです。ぶっちゃけキーボード入力であれば何でもござれになりますんで。
一応、音声で誤入力すると面倒なんで"Ctrl"を押したときにだけ音声入力を有効にするように仕込みます。
ただ、エクセルでは"Ctrl+Enter"は確定時セルを移動しないという動きになるので、押しっぱなしは誤動作の原因です。
"Function"とかならいいんですが、なんか押しにくいんで"Ctrl"キー長押しで対応する事とします。
入力待機でビープ音を鳴らし、一定時間入力が無いときは誤動作防止で自動で音声入力を停止させます。
これで完成です。
早速エクセルで実験してみます。
実際に動作させた結果がこちら
これ、”Ctrl”キーしか触ってませんし、エクセル側にマクロも関数も仕込んでないです。ついでに顧客情報となるデータベースとなるデータもエクセルブックには入ってません。
動きとしては、想定通りの動きに出来ました。
ソースを少々いじれば、Webなどの入力フォームでも使えそうです。
今回はここまでです。
次回は未定ですが、いいネタがあればUPしたいと思います。
音声入力の実装を依頼される方はこちらまで↓↓