speech

現在、カテゴリ「speech」の投稿記事を表示中です。

2012年

元日の空に、龍の顔のような雲が見えました。

2011年3月に私はこんなことを書いていました:

「それは危機のように見えるかもしれないが、実は幻想の終わりにすぎない」「危機をいっそう悪化させるのは現状維持のために注ぎ込むエネルギー」ワインバーグ「コンサルタントの秘密」第9章より

10年以上前に京都に住んでいたころ、起業家やNPOや芸術家の人と多く知り合った。みんな口を揃えて「震災が人生を変えた」と語ってくれた。それがどういうことなのか、これから首都圏の人々が理解しはじめるだろう。

今日、日付が1月1日に変わったときに私はこんなことを書きました:

いくら「良い年に」と願っても、待っているだけでは物事は良くならない。自分が動くしかない。険しい道でも歩いて行くしかない。2012年はそんな覚悟の年です。

自分の活動のキーワード「オープンソース・アクセシビリティ・音声インターフェース」は10年前と変わっていません。いや、原点に戻ってきたというべきか。。

2011年はオープンソースのスクリーンリーダー NVDA 日本語版 (nvdajp) のリリースを担当しました。先日、開発者 Skype 会議を行って NVDA 2012.1 の日本語化も担当せよという話になったので、私が担当させていただきます。

昨日、2011年の最後にこんなことを書きました:

音声研究者が膨大な時間とお金をかけて作り出した技術が、もはやタダ同然でみんなの手に。。

音声対話・音声インターフェースの技術がやっと身近なものになりました。
この分野で博士号の学位を授与された研究者・技術者の一人として、「勝負が終わった」のではなく「ゲームのルールが変わった」と捉えながら、新しい現実に向き合い続けていきたい。
そんな風に思っています。

オープンソースのスクリーンリーダーNVDAとその日本語化

昨日、日本音響学会東海支部 技術講習会 視覚・聴覚障害のための支援技術の現状と展望 にて「オープンソースのスクリーンリーダーNVDAとその日本語化」という講演をしました。
スライドは ja.nishimotz.com/screen_reader として私のサイトで公開中です。右上の画像をクリックするとブラウザ内でスライドショウになります。
参加してくださった皆様、企画や運営にかかわられた皆様に御礼を申し上げます。

講演の合間に開発中のバージョンを使って実演を行いました。JTalk による早口音声、かな漢字変換のフォネティック読みや詳細読み、Windows エクスプローラーを例にMSAAのオブジェクト情報とNVDAでの音声化の比較などをお見せしました。点字ディスプレイは機材を持参できなかったので、動画でご紹介しました。
Web閲覧の実演をする時間が取れませんでしたが、NVDA の日本語化を例に、「日本におけるスクリーンリーダーの歴史と現状」をご紹介できたのではないかと思います。

アクセシビリティにおけるGUIの影響についてご質問をいただきました。
一般的にはGUIは「画面表示から文字情報を取り出しにくくなった」「キーボードだけで操作できないアプリケーションが増えた」ということで、アクセシビリティが悪くなった原因と考えられています。
しかし私が10年前に「視覚障害者のための電子メール環境における操作性の検討」で触れた考察ですが、「階層化メニューなどの操作が標準化された」というメリットも無視できないと思います。

操作性の変化の問題よりも大きいのは、時代とともに変化するアプリケーションやサービスの環境に取り残されたくない、という意識でしょう。MS-DOSの時代はパソコン通信の時代でした。Windows の時代は電子メールとWebの時代であり、そして近年のスマートフォンの時代はソーシャルメディアの時代でもあります。

アクセシビリティのためにはメカニカルなスイッチの存在は重要で、タッチインタフェースでアクセシブルなデバイスを作ることは難しい、と考えられてきました。
しかし、Apple の VoiceOver など工夫されたインタフェースの登場は、この常識を変えて、視覚障害をお持ちの方に受け入れられつつあります。Windows 8 の Metro UI は構成要素がシンプルであり、工夫次第では従来の Windows アプリケーションよりもアクセシブルにできるかも知れません。

最後に、最近 iPhone 4S の新機能として話題になった音声認識・音声対話は、そろそろスクリーンリーダーの入力手段として再評価されると考えています。

NVDA 日本語化プロジェクトは、まもなく本家が最終版をリリースする 2011.3 の日本語版に向けて、作業を進めています。先日リリースした jpdev11114 では日本語IMEサポートの改良が完全ではないので、あと数回の開発版スナップショットの公開と検証が必要です。

オラビー・ジャパンの活動としては今後、NVDA 技術を基盤にインタフェースのイノベーションにも取り組んでいく予定です。

NVDAユーザ会広島 報告とMLのお知らせ #nvdajp #nvdahiro

NVDAユーザ会広島(代表:西本卓也 nishimotz [at] gmail.com )は2011年6月13日に最初のミーティングを行いました。
会場での参加者は4名(視覚障害をお持ちの方1名を含む)でした。
また Ustream 配信を行いました(ユニーク視聴者数13)。Twitter経由でのご発言もいただきました(Togetter まとめ)。
より詳しい議事録(案)はこの記事の後半にまとめます。

今後の活動方針について議論し、 nvda-hiroshima メーリングリスト(Google Groups)を作りました。
今後、メーリングリストへの登録を入会の手続きとみなし、ただし会費は無料とします。
詳細な規約や運営についてはひきつづきメーリングリストで議論します。

今後、広島を中心にパソコンボランティア、Webアクセシビリティ、オープンソースなどのイベントに参加していきます。
また、NVDA 本家コミュニティ、NVDA日本語化プロジェクト (NVDAJP) などにも積極的に参加していきます。

続きを読む »

広島への移転のお知らせ

2011年5月16日から、故郷の広島県広島市にて個人事業者としての活動を本格的に開始します。

東日本大震災がなければ、東京大学を退職しても、東京にとどまって技術コンサルタントとして活動するつもりでした。
この1年くらい NVDA 日本語版に本気で取り組まなくてはならないと考え直した結果、@hoozukiyama さんの住む広島への転居は、自然に出てきた選択肢でした。決断を支えてくれた実家の家族、そして kikurako.com として活動中の @kikurako に感謝しています。
今後は広島でアクセシビリティやオープンソースなどのコミュニティをお手伝いしたいと思います。

アクセシビリティ、情報保障、音声技術、パターン認識、オープンソースに関する技術コンサルティング・講演・開発支援などについて、お気軽にご相談いただければ幸いです。遠方での仕事も可能な限り対応いたします。
特に、障害をお持ちの方が参加されるプロジェクトについては、コミュニケーションに関する配慮をさせていただきます。

昨年度末にまとめた博士論文をお世話になった方々にお送りする作業が滞っていることをお詫びします。
また、退職と転居に関してご迷惑をおかけした方々に、改めてご挨拶をさせていただきたいと思います。
今後ともよろしくお願いします。

Open JTalk の音素継続長の不具合を回避する

NVDA日本語化プロジェクト(nvdajp)は、オープンソース日本語音声合成エンジン Open JTalk公式サイト)に基づく音声エンジン JTalk を本家 NVDA に追加しています。

このエンジンで、読み上げるメッセージが長いときに、メッセージの後半で「極端に遅い音声」あるいは「不自然な音声」が生成されるという問題がありました。これは最新の HTS engine API 1.04 および Open JTalk 1.02 と m001 1.02 でも発生します。
もしかしたら MMDAgent や、その他のシステムの一部としてこの音声エンジンをお使いの方も、同じような現象にお気づきかも知れません。

この問題について、完全に解明できたわけではありませんが、このパッチ(github)にて回避できたように見えますので、ご報告します。

なお、この記事は私が libopenjtalk.dll の開発のために、独自に調査した内容です。もし誤り等がありましたら御指摘いただければ幸いです。
続きを読む »

PyCon mini JPNVDA 日本語化プロジェクトの話をしました。運営に関わられた皆様、発表の機会を与えてくださった皆様、プロジェクトを支えてくださる皆様に感謝します。そして今回もまた @hoozukiyama さんにスライド作成から発表まで、何度も助けていただきました。

自分の発表の間はタイムラインを見ていませんでしたが、Togetterなどを見た限りでは、スクリーンリーダを支える技術、アクセシビリティと関わりのある技術について知っていただけたようです。
Ustream配信の録画がありました。2:15あたりから私の話です。

スライドは下記です。「おまえ誰よ?」を作りそびれたのが残念です(笑)

なお、テキストだけのスライドなので、中身を下記に転載します。
こういうことをすると Sphinx でプレゼンテーションとかやってみたくなりますね。。
自己紹介で喋った昔の話は、いずれ改めてブログ記事にしたいと思います。

続きを読む »

参加型授業を目指して

9月末から半年間、東京女子大学で非常勤講師をしています。4年ぶりに機会を与えていただきました。
情報福祉とコミュニケーションをテーマに、視覚障害、聴覚障害のある方々を支援する技術や現場の実情をお話ししつつ、私が東京女子大学の先生方や学生さんと続けてきた研究(音声による視覚障害者の支援技術)も紹介しています。
そして問題の本質に迫るために「ヒューマンインタフェースの原則」を考える必要があることを、少しずつ伝えていきたいと考えています。
続きを読む »

NVDAjp 2010.2に向けて

NVDAjp 2010.2に向けて開発メンバーは作業を進めています。
ここでは私の作業状況を簡単にお知らせします。
2010.2 ベースの JTalk の話速を速くする実装の目処は立っており、 bazaar のレポジトリ
lp:~nishimotz/nvdajp/with_jtalk
rev.3531 として launchpad.net に置いてあります。

ただし、このレポジトリには zjtalk.py と jtalk.py の2つのエンジンがあり、(内部の実装はどちらも _jtalk.py です)zjtalk のほうは音声設定で話速のスライダーが出てきます。

jtalk.py のほうは話速設定がうまくできません。話速設定のために supportedSettings をいじると espeak が起動時エラーで落ちます。
なぜ espeak に影響が及ぶのかいまだに不明なのですが、zjtalk.py にリネームしたら解決したので、クラスを読み込んで初期化する順序に依存する問題と思われます。この現象は silence.py で試しても同じでした。

それから NVDAjp そのものではないのですが、10月の開発ミーティングの後の交流会の議論を踏まえて
「読み上げの改良のための情報を集めるサイト」
を試作しました。
Python でなく Ruby on Rails で作ってますが(笑)
こちらについても時間ができたら改良に取り組みたいので、御意見を伺えれば幸いです。

追記(11月15日)
10月30日に 2010.2j がリリースされています。
話速設定については将来のバージョンで追加される予定です。

NVDA jpdev100909

やっと NVDA に音声合成エンジンが搭載され、開発版としてリリースされました!!

今日と明日はオープンソースカンファレンスというイベントでデモをしています。私は明日参加して、夕方のライトニングトークに出ます。

メーリングリストでさっそく動作報告、御要望などいただいています。1週間前にやっと最低限の動作をするようになったエンジンが、皆様のマシンで動いているとお知らせいただき、大変嬉しく思っています。

読み上げが始まるまでの遅延や、速度などの設定変更がない、という問題は私も承知しています。すこし時間をいただければ幸いです。
音声エンジン以外の機能との役割分担を整理する必要がある部分は、開発メンバーで話し合って検討したいと思います。

この機会に、特に、音声エンジンに関する作業方針について、私自身の考えをお伝えしておきます。

私自身はアクセシビリティや音声技術の研究を本業としております。今回組み込んだエンジンはもともと Open JTalk(New BSDライセンス)というもので、音声技術に関するプロジェクトでご一緒してきた研究グループの最新成果(GalateaTalkの関連技術)です。私は本家のメンバーと連絡を取りながら今回の作業を進めています。ちなみに現在使っている声はその研究室の卒業生の方の音声とのことです。

限られた作業時間の中で、商用ソフトウェアのように多くの御要望にお応えすることは難しいかも知れません。しかし、いただいた御要望、不具合報告、御提案をきちんとデータベース化して、なるべく対応したいと思っています。

音声エンジンについては、何か読みのおかしいところを場当たり的に修正すると、これまで正しく読めていた部分に悪影響が及ぶ、ということがあります。テストの手順をまとめて環境を整備することは重要です。
矛盾が起こらないように時間をかけて慎重に作業させていただく場合もあります。「簡単なことが、なぜすぐに直せないのか」とお思いのことも
あるかも知れませんが、もし疑問があればご説明しますので、御了承いただければ幸いです。

私からなにか NVDA に関する改良の提案をさせていただき、ユーザの皆様にご評価いただき、私の研究に御協力いただく、といったお願いをすることがあるかも知れません。もちろん、その場合は事前にお許しを得たいと思います。

それから、デイジー書籍の作成支援ツールに使える音声合成が欲しい、という問い合わせも、私個人に対していただいています。今年の春にスタートしたサピエというシステムの立ち上げを、私もすこしだけお手伝いしています。JTalk エンジンを NVDA で鍛えていただいて、いずれデイジーでも活用していただけるように、と考えております。

  • 2010-09-11: OSC参加は無事に終了しました。なお、Open JTalk に関する記述を一部訂正しました。

NVDAのための音声エンジン

NVDA日本語版は先日「ベータ版」という形で新たに公開されました。
http://accessibility.mitsue.co.jp/archives/000256.html

ベータ版に間に合わなかった音声エンジンの方を私が頑張ってるところです。。
8月末までにNVDAのための音声合成をやると宣言したのですが、とうとう今日で8月も終わりです。

New BSD ライセンスで公開されているエンジン Open-JTalk を Python から ctypes 経由で叩けるようにする作業を進めてきました。
さきほどやっと speak や stop などの基本コマンドが動くようになりました。

いまのところ成果は github の私のレポジトリにあります:
http://github.com/nishimotz/libopenjtalk
この中の lib というサブディレクトリが DLL 関連です。

cygwin gcc-3 の minGW 互換モードで DLL を作っています。
Python は cygwin 版 2.5 と Win32 版 2.6 の両方でチェックしています。
(ただし後述の nvwave.py の制約で cygwin 版 2.5 には非対応になりました)

ただし、技術的な制約で、open-JTalk に組み込まれている mecab (形態素解析エンジン)を使わず、単独で配布されている Win32 版の mecab DLL を組み合わせて使っています。(そのほうがライセンスも管理しやすいはず)

今後の拡張性や保守性を考慮して、オリジナルのエンジンが main 関数でやっている処理を python でほぼ実装しなおしました。
もともと Open-JTalk は HTS_Engine_API の中でオーディオ出力を行っていたようです。しかしスクリーンリーダのためには(音声対話システムであっても)「再生中の音声を自由に止める機能」が必要であるため、HTS_Engine_API 側のオーディオデバイス処理は(configureのオプションで)無効化しました。

ctypes でポインタやダブルポインタを渡す処理を苦労して書きましたが、Python 側にバッファのメモリ管理をやらせるとハマりやすい、ということが分かったので、DLL 側で malloc のラッパー関数を作ってごまかしつつあります。あとでメモリリーク対策が必要になりそうですが。。

NVDA が espeak の中でどのようにオーディオを叩いているかも調べました。(ctypesの参考になりました。。)
http://ja.nishimotz.com/espeak

Windows マルチメディア API で音声出力する部分が nvwave.py という Python のコードでコールバック処理もふくめて実現されています。
驚きでした。
この NVDA 的なやり方を見習って jtalk.py の実装を行いました。ただし DLL から音声波形をコールバックで受け取るのではなく、生成された波形をまとめて nvwave の player に渡しています。
この _espeak.py の実装では、メインスレッドとバックグラウンドスレッドでコマンドキューを共有し、バックグラウンドのスレッドがキューの再生を行っています。さらに stop 命令を受け取ると、キューの中で「時間がかかる処理」だけを削除し、モードの切り替えなどの処理はキャンセルしないで順次実行する、ということになっています。
このような処理は私が「ウチコミくん」で最初に Visual Basic Ver.6 で実装し、そして Galatea Dialog Studio でも実装したものです。
懐かしいような嬉しいような気もします。
そして Python という言語の奥の深さを感じます。

残った仕事は synthDrivers を継承して NVDA 用のドライバークラスを書くことです。
スクリーンリーダーに統合して、安定して動けばいいのですが。。

今回つくった音声合成エンジンでは、かなり多くの部分を Python で実装してあるので、例えば文字列の前処理くらいなら簡単にカスタマイズできそうです。

明日の夜は久しぶりに NVDA 日本語化プロジェクトの開発ミーティングです。

« 古い投稿