音声認識の研究者に広く使われているHTKというソフトウェアがあります。
数ヶ月前にリリースされた Ver 3.4.1 をいじりながら、多くの人が「HTKは難しい」と言うのはなぜなのか、改めて考え直しています。
「そんな難しくないですよ」と言いながら、いろいろ試したり説明をしようとしたら、私自身が落とし穴にはまり、落ち込んでしまうこともあります。
HTK は HMM(隠れマルコフモデル)による音声認識のためのツールキットです。最初はケンブリッジ大学で開発され、有償ソフトウェアになったのは 1993 年だそうです。その後 Microsoft に買収され、現在はケンブリッジの手に戻って、無償で配付されています。最新版の英語マニュアル(HTKBook)は384ページにもおよぶ膨大なPDFファイルです。
十数年にわたる音声認識研究の歴史が詰まっている HTK は、最近に至るまで拡張が続いています。今回、久しぶりにチュートリアルを精読してみたら、知ってるつもりで知らなかった機能にいくつか気づくことができました。と同時に、拡張を繰り返してきたツール全体の仕様の見通しの悪さ、コマンドラインオプションの覚えにくさ、などなど、課題もいろいろあるように感じました。
HTKBookのチュートリアルをできるだけそのまま実行してみようとして、チュートリアルの説明と挙動が異なる箇所があること、配付サイトで公開されているファイルだけではチュートリアルを完全に再現できないこと、などにも気づきました(私の誤解かも知れませんが)。
フリーソフトでつくる音声認識システム – パターン認識・機械学習の初歩から対話システムまで
- 作者: 荒木雅弘
- 出版社/メーカー: 森北出版
- 発売日: 2007/10/17
- メディア: 単行本(ソフトカバー)
- 購入: 16人 クリック: 124回
- Amazon.co.jpで詳細を見る
荒木先生が書かれた参考書は HTK の手っ取り早い入門として学生からも評判がよいのですが、突っ込んで使いこなしたい場合には、自力でマニュアルを読んで理解をしなくてはなりません。
最近、信号処理やパターン認識の分野で Matlab や R などスクリプト言語系のツールが普及しつつあります。性能や言語仕様の利便性などの議論はともかく、学習の容易さという点からは高く評価できるでしょう。
また、個人的には Ruby on Rails の勉強において script/console がとても有用であることに気づきました。いわゆる「コード補完」が有効であることにも驚いたし、irb で “hello”.methods を実行すればStringクラスのメソッド一覧が簡単に見られる、というのも目からウロコでした。
プログラミング言語がプログラマーと言語処理系のインタフェースであるとすれば、「ユーザインタフェースの原則」がプログラミングという行為においても重要ではないかと思います。
- やりたいことが完結に記述できること
- やりたいことがコマンド名、関数名、メソッド名として「連想が容易」であること
- 連想された記述法が正しいかどうか、対話的にフィードバックを得られること
などがインタプリタ系言語の嬉しいところです。そう考えていると、
- 西本 卓也: “音声インタフェースとWebアクセシビリティ,” ヒューマンインタフェース学会第4回SIGACI研究談話会/第30回UAI研究会, 15th Nov 2008.
- 西本 卓也,岩田 英三郎, 櫻井 実, 廣瀬 治人: “探索的検索のための音声入力インタフェースの検討,” 情報処理学会研究報告 2008-HCI-127(2), pp.9-14, Jan 2008.
- 西本 卓也, 志田 修利, 小林 哲則, 白井 克彦: “マルチモーダル入力環境下における音声の協調的利用 —音声作図システムS-tgifの設計と評価—,” 電子情報通信学会論文誌 D-II, Vol.J79-D-II, No.12, pp.2176-2183, Dec 1996.
において議論してきた「インタフェースの原則」と重なってきます。
HTKでは数千個という膨大な学習データを扱ったり、膨大なパラメータ数の統計モデルを学習することができます。しかし、やりたいことを完結に記述できるか、コマンドやオプションを容易に連想できるか、操作のフィードバックが容易に得られるか、などと考えると、あちこちに落とし穴(ノーマンの7段階モデル流に言えば「淵」)がありそうです。
HTKについて考察していると「音声認識による機械と人間のインタフェース」にとどまらず「HTK と研究者のインタフェース」についても考えたくなってしまいます。