w3voice skeletonのインストール
[English version]
はじめに
このドキュメントでは、w3voice skeletonに含まれる「Juliusを用いた音声認識のサンプルプログラム」をあなたのWebサーバにインストールする方法を説明します。
ただし、読者は基本的なUNIXの知識を持つことを前提としています。
また、作者は自他共に認めるold typeなプログラマですので、最近のstyleから見ると、本アーカイブに含まれるプログラム、ドキュメントには非効率、不親切な部分が多々含まれていると思われます。
お気付きの点などございましたら、次のバージョンで反映いたしますので、優しく教えてください。
大変助かります。
動作環境
w3voice skeletonは、以下の環境のWebサーバで動作することを確認しています。
w3voiceのポリシーとして、特殊なプログラムの使用は避け、メジャーなフリーソフトウェアを使い開発を行っています。
このため、細かいバージョンに関係無く、多くの標準的なWebサーバで動作することを期待しています。
足りないプログラムがあるときは、事前にインストールしてください。
- Debian GNU/Linux 4.0 (etch)
- Apache
- Webサーバプログラムです。.cgiの拡張子を持つファイルがCGIプログラムとして動作するように設定してください。
- Perl
- サンプルプログラムではすべてのCGIプログラムがPerlで記述されています。 /usr/bin/perl でPerlが動くことを前提としていますので、パスが異なるときは、.cgiファイルの先頭のパスを書き換えてください。
- sox(/usr/bin/sox)
- アップロードされた音声ファイルのサンプリング周波数を変換(16kHzにダウンサンプリング)するのに使用します。
- fileコマンド(/usr/bin/file)
- アップロードされた音声ファイルを簡易にチェックをするために使用しています。このため、.wavファイルに対してfile hoge.wavのように実行すると、その出力に、"WAVE audio"という文字列が含まれることを仮定しています。
- lsコマンド(/bin/ls)
- Juliusに標準入力を通じてファイル名を与えるときに利用します。lsに対して常にオプションを与えるような設定がなされていると正常に動かないことがありますので注意してください。
音声認識プログラムJuliusのインストール
音声認識プログラムにはJuliusを用います。
JuliusのWebページから、「Juliusの最新版」(Rev. 3.5.3及び4.1で動作確認)と「Linux版 Juliusディクテーション実行キット v3.2」をダウンロードして、適当なディレクトリにインストールしてください。
なお、ディクテーション実行キットには、Julius実行コマンドが含まれていますが、バージョンが古いため、新しいバージョンのJuliusを別途インストールすることをお薦めします。
ディクテーション実行キットは、その中に含まれる、Julius設定ファイル(jconf)と、音響モデル、言語モデルを使用しています。
コンパイルしたJuliusのコマンドは、 /usr/local/bin/julius などにコピーし、ユーザが実行できる状態にしてください。
ディクテーション実行キットは、 /home/nisimura/dictation-kit-v3.2 などの適当なディレクトリにアーカイブの中身を展開するのみで構いません。
w3voice skeletonのダウンロードと展開
w3voice skeletonの最新のアーカイブをここからダウンロードし、Webページの公開用ディレクトリにアーカイブを展開してください。
例えば、 /var/www/ に展開します。
このディレクトリ以下でCGIが実行できるように設定(ExecCGIの有効化)をしてください。
ファイルの構成と設定
音声認識のサンプルプログラムは、skeleton/julius/ 以下のディレクトリに展開されます。
julius/ 以下のファイルを編集し、あなたのWebサーバにあわせたホストネーム、パスに設定を書き換えてください。以下に書き換え(確認)が必要な箇所を示します。
- upload.cgi 録音された発話データをJavaアプレットから受信するCGIプログラムです。
- $baseurl : インストール先のURLを指定してください。
- $basedir : インストール先のディレクトリ名を指定してください。
- $waveout_dir : .wavファイルを保存するディレクトリをフルパスで指定します。
- $file_cmd : fileコマンドのフルパスを指定してください。
- $sox_cmd : soxコマンドのフルパスを指定してください。
- julius.cgi メインの処理を実行するCGIプログラムです。upload.cgiからのredirectによって呼び出されます。
- $waveout_dir : .wavファイルの保存ディレクトリを指定します。こちらは相対パスで指定してください。
- $ls_cmd : lsコマンドのフルパスを指定してください。
- $julius_cmd : 上記でインストールしたJuliusのコマンド本体のフルパスを指定してください。
- $jconf_path : Juliusの設定ファイル(.jconf)をフルパスで指定してください。標準の設定のように、「Linux版 Juliusディクテーション実行キット v3.0」に含まれるfast.jconfファイルをそのまま利用することができます。
- $julius_opt : Juliusの実行オプションを指定します。さまざまなオプションを指定することができますが、-input rawfile は必ず含めてください(.wavファイルを入力とするため)。
- applet.js HTMLから録音Javaアプレットを呼び出すためのJavascriptファイルです。Microsoft Internet ExplorerにおけるActiveX コントロールのアクティブ化の問題を回避するために、HTMLにappletタグを直接埋め込まず、外部jsファイルとして分離しています。
- appletタグのcodebase属性 : w3voice skeletonに付属するJavaアプレットw3voice.jarのベースURL(アプレットのあるURL)を指定します。
- UploadURL(paramタグ) : 録音データを受信するCGIファイルを指定します。通常は upload.cgi において指定した $baseurl 以下の upload.cgi を設定します。
- index.html プログラムのスタートページのHTMLです。とりあえずは書き換える必要はありません。
- error.html エラーのときに表示されるページのHTMLです。とりあえずは書き換える必要はありません。
- w3voice.css HTMLで使用するスタイルファイルです。とりあえずは書き換える必要はありません。
- ディレクトリ save/ 標準の設定では、アップロードされた発話を、save/以下($waveout_dirで指定されたディレクトリ)に [yy][mm][dd][hh][mm][ss].[ip].wav のファイル名で保存します([yy] 西暦, [mm] 月, [dd] 日, [hh] 時, [mm] 分, [ss] 秒, [ip] アクセス元クライアントのIPアドレス)。
- httpデーモンのユーザ権限(www-adminやnobody等)でこのディレクトリに書き込みができるようにしてください。特に支障が無ければ、パーミッションを 777 (a+rwx)に設定してください。
- このディレクトリのファイル名一覧がブラウザから表示される状態(Indexesが有効)になっていると、保存された発話に対して第三者からアクセスを許可することになります。このため、$waveout_dir には適切なアクセス制限をかけるようにしてください。例えば、空のindex.htmlを置くことで、ファイル名の一覧取得を防ぐことができます。
インストール後の動作確認
設定が完了したらWebブラウザから $baseurl にアクセスし、動作を確認してください。
音声入力アプレット w3voice.jar について
w3voice systemでキーとなるコンポーネントがJavaアプレットである"w3voice.jar"です。
このアプレットは、PCのオーディオデバイスにアクセスし、発話を録音、そして、収録データをWebサーバに送信する役割を担っています。
現在、w3voice.jarに含まれるJavaクラスファイルのソースコードは公開していません。
本アーカイブ(w3voice skeleton)に含まれるようにバイトコードでの配布となりますのでご了承ください(どうしてもソースコードが必要な場合は別途ご相談ください。共同研究契約等をお願いすることになるとおもいます。)
また、w3voice.jarの配布条件には本アーカイブと同様にMITライセンスが適用されます。
私たちのw3voiceプロジェクトが配布するJavaアプレットには、電子署名によるコードサイニング認証がなされています。
アプレットに付された署名を確認することで、署名が行なわれた時点から、そのプログラムが一切変更されていないことを確認することができます。
また、コードサイニング認証は、配布元の保証をするものです。
つまり、この署名は、w3voice.jarが、実在する組織である「和歌山大学 聴覚メディア研究室」から配布されたプログラムであることを保証しています。
以下に、私たちの電子署名の情報を記載します(2008年10月現在)。
これと異なる電子署名を持つw3voice.jarは、第三者によって改変されています。
その使用には十分に気を付けてください。
また、電子署名に有無にかかわらず、作者は、本プログラムの動作に一切の責任を負いません。
下記に示す有効期間を過ぎると、署名は無効になりますので、ご注意ください。
- 発行者: CN=Thawte Code Signing CA, O=Thawte Consulting (Pty) Ltd., C=ZA
- 所有者(非認証者): CN=Wakayama University, OU=Auditory Media Laboratory, O=Wakayama University, L=Wakayama, ST=Wakayama, C=JP
- 有効期間: [From: Fri Aug 29 17:40:40 JST 2008, To: Sat Aug 29 15:28:22 JST 2009]
- 証明書のフィンガープリント:
- MD5: A9:40:0C:69:BA:D9:8D:78:C9:5F:DB:2C:43:6C:A4:47
- SHA1: 39:AE:DB:48:B1:DE:78:56:1C:17:2D:DA:F0:31:8D:91:26:2A:F8:7F
Copyright (c) 2007-2008, Ryuichi NISIMURA, All rights reserved.
http://w3voice.jp/skeleton/