投稿者: nishimotz

  • Galatea Dialog Studio

    オープンソースのVoiceXMLインタプリタGalatea Dialog Studioの新しいバージョンをリリースしました。

    Galatea Toolkitは2000~2002年度に情報処理技術振興協会(IPA)の支援で開発が行われ、現在は音声対話技術コンソーシアム(ISTC)の元で開発が続けられています。

    2008年3月上旬に行われるISTC総会では会員向けに2007年度版ソフトウェアの配布と技術解説を行います。その準備作業としてこの数日、私が担当している対話処理系のアップデート作業を行いました。

    これまでISTCおよび情報処理学会の委員会でマルチモーダル対話記述ワーキンググループに参加し、マルチモーダル対話システムのアーキテクチャに関して議論が続けられました。その知見を踏まえてリファクタリングを重ねた結果「Linux用の Galatea Dialog Manager を Windows で動くようにする」という作業の目処が立ち、今回のリリースではその成果を盛り込むことにしました。豊橋技術科学大学のグループで開発されている Windows 版の対話マネージャと区別するために名称を Dialog Studio に変更しました。音声合成には GalateaTalk を、音声認識にはJuliusを使用しますが、いずれも SourceForge.jp でホストされているプロジェクトです。

    Galatea Dialog Studio は現在 Eclipse 3.3 上で開発を行っています。動作環境をJava 6に移行したことで簡単に Cookie に対応することができました。昨年中に行った HTTP の POST メソッドへの対応と合わせて、いろいろなウェブアプリケーションフレームワークとの相性がよくなりました。ドキュメントでは PHP との連携例を記載しましたが、個人的にはこれから Ruby on Rails で VoiceXML アプリケーションを開発するためのツールやライブラリの整備を進めていきたいと思っています。

    Studioと名乗っているのに編集機能がないなど、まだまだお粗末なシステムであることは事実です。やりたいこともたくさん残っています。きちんと情報を公開して、少しでも多くの方に関心を持っていただけるように努力したいと思います。

  • MagicPoint

    そして研究会2日目の金曜日。自分の研究会をセッション一つだけ抜けて、同じ島根大学の中で開催されていたまつもとゆきひろさんの学生向け講演会に顔を出してきました。

    終了後、どぎまぎしながら、名刺交換させていただきました。ThinkPad を閉じようとしているまつもと氏とこんな会話を。

    プレゼンテーションソフトは何を?

    MagicPointです。

    あー、ありましたね(なんて失礼な。。)

    じゃあLinuxなんですね。

    そうです。あー、失敗した(うまく shutdown しなかったらしい)

    お話お上手ですね(なんて失礼な。。)

    私はろくなこと言ってませんね。あちゃあ。

    後半の討論会は最初しか参加できませんでしたが「地域振興の切り札」に祭り上げられたまつもと氏を見ていると、もっとそっとしてあげたい気がしました。

    そんな話を島根大学の縄手先生にしたら「島根県のサイトの読み上げをGalateaTalkでやってたときに、半角仮名文字を読み上げないから文字コード変換をして…とか、まつもとさんが御自身でなさってたみたいですよ」とのこと。そんなNaClさんの足手まといになったGalateaTalkの関係者であることを私はあの場で名乗らなくてよかったのかも知れない。。と思いました。

    あれ以来、Ruby on Rails による VoiceXML アプリケーション開発についてつらつらと検討中です。

  • Rubyのチカラ

    夜中に松江のホテルの部屋で去年の人工知能学会全国大会の招待講演ビデオ配信「Rubyのチカラ」を見ました。

    NaClさんがどういうつもりでまつもと氏を雇っておられたか、という話をその日に伺ったので、「NaClさんの業務にどう役立つか」という観点はおそらくRubyの発展過程で強く意識されたであろう、と思いました。

    そして言語オタクのまつもと氏が人工知能の講演じゃないことを申し訳なさそうに語りはじめた、昨年6月の人工知能学会での講演。Rubyで導入された機能はすべて過去の言語の二番煎じだ、と謙遜しつつも、「単純さよりも自然さが重要」という言語設計のコンセプトがじっくり語られるのを聞いて、私にはある考えが浮かびました。

    プログラミング言語Rubyは、プログラマーに「自然なコーディング」を許容するために設計された「人工知能」なのだ、と。

    どこでどういう省略記法を許すか、という規則を実装したパーザーはルールベースで作り込まれているはずなので、言語を作っている側は人工知能だと思わないで作っているのでしょうが、実務の文脈でいかに自然な記述を許容するか、一つ一つ職人芸で仕様を選択した結果は、「高度な手作り人工知能」と言えるのかも。

    人工知能としての自然言語処理技術では「人間がやりとりする言語のコーパスを集めて、それをどう処理したらいいか検討する」ということが行われるわけですが、「プログラミング言語が使われるシステム開発の現場のコーパスを集めて、それを効率よく記述できるプログラミング言語を設計する」ということがもしきちんと行われたら、Ruby のような言語はもっと工学的に設計できるのかも知れません。そのときに重要なのは「集めるコーパスにリアリティがあること」ではないでしょうか。

    そんな視点を持ちつつ、私もすっかり固くなってしまった頭を柔らかくしながらプログラミングの勉強を続けたいと思ったのでした。