音声認識エンジンの入れ替え

Naoqiの音声認識エンジンは、優れているのだろうが、気に入らない。最も気に入らないのは、ワイルドカードによる音声認識がほとんどできないことだ。しかしその難しさは理解できる。ので、なんとかこちらでも工夫をしたいと思っていた。
が、この間、電子書籍の検索とダウンロードをロボットとの対話で行おうとすると、なかなかやっかいなのだ。たとえば、「あ」で始まる著者を探すようにという指示をロボットに与える、Dialogを実現しようとしたが、こうした1語の認識すら難しい。事前に「あ い う ・・」などという、1語のconceptを事前に与えておいても、間違う。いろいろな工夫もあるだろうが、実に面倒になってきた。認識エンジンの細かい設定の調整ができればいいのだろうが、また、メソッドがあるので、そうした設定が可能であるかのようだが、なんら解説がない。
あのSiriのようなレベルのものがあれば良いと思う。
それは難しいにしても、なんとかならないかと探していたらjuliusというフリーソフトがある。試してみたら結構いけるし、細かい設定や、ルールの指定など、自由度が高い。
たとえば、なんのルールも設定せずに、
「わしだ」
という、名前の単語を認識できた。単語レベルでは果物の名前も、事前ルール抜きにほとんど認識できる。また、
「わたし名前はわしだです」
は、
「わたしの名前はわし出すです」
と、まちがったが、結構いけてる。多少のルールを追加すれば、この程度の文章は、完全認識に行けるような気がする。
ライブラリにもできるということなので、NaoqiのC++から、このライブラリを呼び出すことを試みようと思う。一つ不安は、ロボットのマイクデバイスをjuliusで呼び出すことができるかどうかだ。それさえ可能であれば、あとはなんとかなる。

ロボットに、epubフォーマット電子書籍を読み上げさせる

業界標準のepubフォーマットで組版された電子書籍を、ロボットNAOに読み上げさせるためのローカルモジュール(wsbook)を有限会社ネット書房と共同で開発した。

特徴は次のような点にある。
(1)ロボットとの対話で音読を制御できる
(2)ルビがふってある場合は、ルビの方を読み上げる
(3)指定されたファイル順に読み上げる
(4)ロボットが読み上げる1行には限界があるが、任意の場所で区切らずに、句読点(、。)などで区切った読み方にして、不自然さを回避する。
(5)読了を中止した場所を記憶して、その場所から再開する
(6)書籍の長さは、記憶領域以外の制限はない(長い本でも最後まで読み上げられる:1巻、2巻と分けれている場合は別だが)
(7)自分の書棚の本のリストを読み上げる
などの機能を組み込んだが、まだ、次のような問題はある。
(1)ルビがふっていない、旧仮名遣いの読み上げを間違える。(かなり高度な処理が求められる)
(2)ルビがふっていない、漢字の読みを間違える(学習させる必要があるが、たとえば、どのような状況で金を「かね」とよみ、また「きん」とよむか。文脈解析、自然言語処理の機能が必要になる)
(3)中止は、言葉によるか、前頭部タッチによるかだが、少しバタバタしている。
今後、
(1)ネット書房が有する青空文庫11,000冊のepub書籍を自由に、ロボットに直接(パソコンやスマホを介さずに)ダウンロードして読むことができるようにする。
(2)Gutenbergの30,000冊の英文書籍を読み上げられるようにする。
(3)ユーザーが有しているepub電子書籍を読めるようにする
などの対応を予定している。