ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

音声認識入力ソフトを調査する(再掲)

この記事は旧ブログからの転載です。記事にしたのは、 1年以上の過去のもので、内容は古くなっております。この記事に興味が方は、Windows 7標準搭載の音声認識を試す(再掲) - ぺんちゃん日記ドラゴンスピーチを使ってみる(再掲) - ぺんちゃん日記もご覧ください。

Windows 7音声認識は実用レベルにないと言うことで、市販ソフトを調査する ことにしました。 音声認識ソフトは何種類か市販されています。有名どころではドラゴンスピーチ とアミボイスでしょうか。だいたい2万円程度の商品です。おそらくこういった市販品の方が精度が高いと思われます。

音声認識ソフト AmiVoice SP2 USBマイク付

音声認識ソフト AmiVoice SP2 USBマイク付


どちらのソフトもそれなりの値段になるので余程の新しい 物好きでない限り、気軽に買えるものではなさそうです。デフレの申し子としましては、ダメもとで買ってみると言うわけにはいきません。ということで相当入念にユーザーレビューを調査しましたが、どちらのソフトも賛否両論がはっきりしすぎて使えるのが使えないのかいまいち判別ができません。どちらのソフトも全く使えないという人も あればものすごく便利だという人もあります。一般的なソフトであれば体験版があるので、実際に使って試すことができますが、この手のソフトに体験版というのはありません。

結論は出なかったのでダメ元で買うしかありません でした。なぜこんなにユーザーレビューにばらつきがあるのかを考えてみましたが、こっち方面のソフトは技術的に日進月歩のところがあって、やっと最近は使えるレベルになってきたのでしょう。ほんの数年さかのぼった記事であっても、正確な現状を反映しているとは言えないかもしれません。

ダメ元で買ったのがドラゴンスピーチです。なぜアミボイスが候補から外れてし まったか、と言うと、ライセンスの違いでした。

ドラゴンスピーチはユーザーに対するライセンスで、同じユーザーが使うなら複数台のコンピュータにインストールすることができます。しかしアミボイスはコ ンピュータに対するライセンスです。同じコンピューターなら何人でも利用できますが、違うコンピュータにはインストールすることはできません。私の利用用 途は2台のマシンを使い分けるので、アミボイスだと2本のソフトを購入しなけれ ばなりません。他人に使わせる予定もありませんので、ライセンス的にはドラゴンスピーチの方が使いやすいです。ライセンス面を考えれば、おそらくほとんどの個人ユーザーはドラゴンスピーチの方がいいでしょう。ドラゴンスピーチはTwitterFacebookに投稿する機能を搭載しているところからも、個人での利用を強く意識していると思います。一方アミボイスはオフィスなどで1台のコン ピュータを不特定多数の職員が使うような利用の仕方を想定しているのではない かと思います。官公庁なので導入事例が多いのは、そういった理由からでしょう。

私はこういう流れでドラゴンスピーチを買いました。金銭的に両者を買うわけにはいかないので、アミボイスを使うことができませんが、おそらくアミボイスも遜色ない実用性を備えている…と私は考えています。どちらを選ぶかはほとんど好みの問題ではないでしょうか?

Windows 7標準搭載の音声認識を試す(再掲)

この記事は旧ブログからの転載です。記事にしたのは、 1年以上の過去のもので、内容は古くなっております。この記事に興味のある方は音声認識入力ソフトを調査する(再掲) - ぺんちゃん日記ドラゴンスピーチを使ってみる(再掲) - ぺんちゃん日記もご覧ください。

どうもしばらくぶりです。

更新が面倒で放置しっぱなしだったこの日記ですが、書きたいと思うだけの理由ができたので、 しばらくは書いてみることにします。更新停止の理由は主にキーボードの入力がしんどいということでした。 この日記はどちらかというとコンピュータ系の話を書く場所という位置づけだったので、 「コンピュータなど動けばいい」とそれほど興味をなくしてしまった私にとっては、 なおさら書かなければいけないという理由がなかったのです。 まぁキーボードの入力がしんどいといっても全く打てない、あるいは打つ必要がない、 とまでは行っていませんでしたから…、ある程度は、たとえ非効率であっても頑張って ぽちぽちやってたんです。が、そろそろ効率のどうのこうのと言う話ではなくなってきたので、 何らかの代替手段が必要な時期が来たわけですね。

そんなわけで音声認識に挑戦したネタを少し続けてみます。

なぜ音声認識を始めてみようと考えたかというと、最近購入したノートPCにwebカメラとマイクが 標準で搭載されていたからです。これがあるなら、特別な出費をすることもなく音声認識もできると気がついたのです。 そういえばWindows 7には音声認識入力が標準で搭載されています。これを使っ てキーボードの苦労から脱却できればもうけもんです。

結果としては全く使えませんでした。はい… 。

Windows 7音声認識は今のところ使えるレベルではありません。ここから先はどれだけ使えなかったかのタダの愚痴になりますので、 吉報を期待して情報収集した結果、ここにたどり着いた人。残念ですがここでお帰りくださいw。

Windows 7音声認識を始めるのは簡単です。コントロールパネルからハードウェアとサウンドを選んで、 オーディオデバイスの管理で マイクの接続を確認した後、同じくコントロールパネルからコンピュータの簡単操作を選び音声認識の開始を開きます。

この設定で、マイクの種類を選ぶダイアログがあります。ここ でPC本体に付属したマイクを利用するという選択肢があるの で、ノートPCの内蔵マ イクでも十分な精度が出るだろうと淡い期待をしました。しかし、試してみたと ころ、まったく精度が出ません。意味不明のゴミのような文字がポツポツでるだけなのです… 。 仕方がなくマイク を買いましたorz

マイクを交換した結果どうだったでしょうか。今度は別の問題が出ました。ノイ ズをコマンドとして認識しまうのです。

Windows音声認識では、マイクでWindowsの操作ができるように設計されています。 「スタート」でスタートボタンがクリックされ「アクセサリ」「ワードパッド」で ワードパッドが起動するという寸法です。他にもウインドウ切り替えやボタンクリックなど 一通りの操作ができるようになっています。 これが余計なお節介をして、ユーザが意図しな かった操作を勝手に行ってしまいます。それがもうとてもひどい状態で使える状 態にはありません。勝手に書式設定を変えてしまったり、ツールバーを閉じて しまったり、アプリケーションが起動してきたり、ありとあらゆる誤操作をします。

それでも文章さえ認識してくれればなんとか使うようになるのですが、その文章 認識さえも実用に耐えるレベルではありません。 20年前のワープロが珍変換を するということで、笑い話になったことがありますが、それとほぼ同じレベル の、いやそれ以上の珍変換が展開されます。

…まあダ ジャレとか笑い話を期待するなら、これはこれで愛しいのかもしれませんね。

ということですっぱり諦めました。このマイクどうしよう。

Rails 3 でサーバの再起動なしにライブラリを開発する

行き当たりばったりで開発してきたアプリケーションも近頃ではだいぶ煮詰まってきて、モジュール化しないわけにはいかなくなってきた。そこで、再利用可能な部品については積極的にモジュール化し、libディレクトリに放り込んでいく方針にした。

その方針は賢明な判断であると考えているのだが、一つ大きな問題が…

libディレクトリの下のファイルって、サーバが起動するときにだけ読み込まれ、その後ソースコードを変更しても(サーバの再起動がない限りは)実行結果に反映されないのだよね。モジュールの完成度が十分に高く、修正機会が少なければ問題はない(これまではそうだった)のだけれど、これからはそうもいくまい。

コントローラやモデルのように編集結果が即座に反映してくれれば良いのだけどなぁ。このままでは小さいバグを作り込むたびに、サーバの再起動を要求されて開発意欲が激萎えしてしまうよ。

この問題、実はかれこれ1年以上前から悩んでいて、その度にGoogle先生に問い合わせているのだが、紹介されている方法ではうまくいかなくて何度も挫折してきたのだよね。

今回こそ何とか解決してやるぞ!と決意してねばり腰で挑みました。参考にしたのはここ
environments/development.rbでexplicitly_unloadable_constantsを使う形。具体的には、こんな感じ。

ActiveSupport::Dependencies.autoload_paths << File::join( Rails.root, 'lib')
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'Editor'

これでlibディレクトリにあるファイルを自動で再読み込みしてくれるようになる。

そこでさらにlib/editorに次のように書いて、希望のモジュールを読み込む。

module Editor
  require_dependency "editor/editor"
  require_dependency "editor/elements"
  require_dependency "editor/tsort"
  require_dependency "editor/zsort"
end

これでモジュールEditorは、サーバの再起動なしにソースコードの変更を反映してくれるようになる。

ちなみに、試してみて、うまくいかなかったやり方はこちら。こちらの環境ではautoload_pathsが期待通りに動いてくれていない感じ。

注意事項としてライブラリの再読み込みをやりすぎると嫌な現象を引き起こす恐れがあるらしい。最読み込みが必要なモジュールとそうでないものがあるので、変にハマらないように、必要最低限のモジュールだけを対象にしたほうが良いみたいね。そういう意味で、この設定は開発環境だけで有効になるように書いてあるの。

web世界での漫画的表現をもう一度考え直す

ぺったんRと言うossプロジェクトに参加しています。このプロジェクトの主旨は、表題の通りです。

近年では漫画のweb進出が活発で、日々たくさんの漫画がwebに公開されています。 web上で漫画を表現するための試みも様々なアプローチで実践されています。面白い漫画が簡単に閲覧できる環境はほぼ出来上がっているといっていいでしょう。

ただし、この環境は人間から見た完成であって、コンピュータから見れば意味不明な画像のページが羅列されているだけの未開の世界に過ぎません。人間は画像の中の文章と絵を瞬時に判別できますが、コンピュータはそれを理解できません。例えば、検索エンジンクローラーなどは、そのページのコンテンツがどのような内容なのか処理することはできません。検索エンジンにインデックスされないのであれば、いくら漫画を作ってもwebの資産とはならないのです。

かつてwebに対する理解が乏しかった頃のことです。 中小企業などは自社の「ホームページ」を作成する際、紙のカタログをスキャンした画像を掲載することでwebに対応しました。これに対して、 web系の技術者たちは彼らのwebに対する理解の浅さを嘲笑しました。 HTMLでマークアップされていないページなどに、 Webコンテンツとしての資産価値はないと。

現在のweb漫画はこれと同じことが起きているはずなのですが、ここに突っ込む意見を聞いたことがありません。 HTMLの表現力も昔に比べて格段に上がっているので、マークアップによる漫画表現といえども鑑賞に堪えうるものになると思います。我々の主張はそこにあります。ぺったんRは漫画的表現をブラウザなどで簡単にマークアップするためのツールです。

ということで、かれこれ2年以上を費やして開発しているのですが、スキルの未熟さもあってまだまだ発表できる完成度にありません。とりあえず試作品は動いていて、スクリーンショット程度ならお見せできるのですが… 。

f:id:yasushiito:20140412102057p:plain

ご覧いただければわかるかと思いますが、セリフのテキスト部分を選択しています。テキストと画像が分離していることが理解いただけるでしょう。

今回はこれくらいで終わります。続きはまたいずれ… 。

やっと動画の掲載の仕方がわかった。

ブログに自分がアップロードしたYouTubeの動画を掲載したかったのだが、うまくいかなかった。動画を貼り付けるボタン押しても検索ダイアログから動画を見つけられないので。自分の動画はあまりにもランクが低過ぎて検索ではうまくいかないの。

わかってみれば非常に簡単。

はてなブログといえど、 YouTubeの動画はiframeで埋め込んでいるだけだった。てっきりはてな記法なんかで記述しなければならないと思ってた。 YouTubeのサイトから自分の動画を閲覧して、共有タブから埋め込みコードをコピペするのが正解。

ドラゴンスピーチ用途に新しいUSBヘッドセットマイクを購入した。

1年ほど前のことになりますが、ドラゴンスピーチに標準添付されていたヘッドセットマイクが故障したため、新しくヘッドセットマイクを購入しました。

標準添付のヘッドセットは認識精度には問題なかったのですが、三ヶ月ほど使ったあたりでノイズが混じるようになり、半年後には全く認識しなくなりました。おそらく使い方が悪かったのだろうと思いますが、同じものを購入してまた壊れるのも嫌なので、今度は別の製品を選びました。


スピーカーはモノラルです。マイクの位置も左側しか選べません。グレードダウンではありますが、音声認識に関しては十分な性能が出ています。

性能が出ているのであれば、話はこれで終わってしまうので、もう少し。

ヘッドセットの弱点は使用時に着脱しなければならないことです。身体の自由がきかないから音声認識入力を利用しているのに、ヘッドセットを着脱できるはずがないのですね。そもそも煩わしくって、ついつい利用するのが億劫になってしまいます。まぁ、それでたびたびキーボードの横に置いてあるヘッドセットに向かって(ダメ元で)音声を飛ばしてみるわけです。これが、ある程度使い込んだ状態なら、横から話しかける程度でもそれなりに認識してくれたりします。もちろん精度は落ちるので、平易な文章で、なおかつ滑舌よく喋らないといけませんが… 。非常時にはこういう使い方も出来なくは無いかな。まぁ、そんなことをするなら、スタンドマイクパターンを適用しろって話ですけどね。

ドラゴンスピーチでスタンドマイクを使ってみる

これまでの経緯

ドラゴンスピーチを使い始めて1年以上が経過しました。使いこなすわけでもなく、使わないわけでもなく、なんとなく使っている感じです。永遠の初級者といったところでしょうか。

ドラゴンスピーチ初心者脱出の壁はなんといってもマイクでしょう。マイクと仲良くなる事が大きな壁といえます。私もなんだかんだで、これに悩みました。この一年間で試したマイクが四つ。ソフトに付属しているマイクを除けば三つを購入、金額にすれば、 1万円以上を投入したことになります。

そこで今回は、試行錯誤の末、それなりに満足するところまでたどり着いた一つのパターンを紹介します。

スタンドマイクパターン

スタンドマイクのメリットはなんといっても装着せずに使えることです。ヘッドセットを頭に装着せずとも、デスクに置かれたマイクに向かって話しかけるだけで音声入力を利用できます。もちろん、無線ヘッドセットのように充電の必要もありません。デメリットとしては、認識精度の低下があります。ドラゴンスピーチの開発チームもヘッドセットを推奨しており、スタンドマイクは弊害が多いことを指摘しております。

実際の認識精度

では、口元五センチから二十センチに離れることで、どの程度の問題が起きるでしょう?それは環境によるので、試してみるまでわからない、と言ってしまうと身も蓋もないでしょうか。
私がこれまで1年ほど使ってみた経験から、マイクの位置が多少離れてもそれほど実害がないことが分かってきました。慣れないうちはマイク位置の調整がすごくシビアに感じましたが、結局のところマイクが近すぎて息のノイズを拾っていたのであって、ある程度離れる分については認識精度の急激な低下は見られませんでした。これならばスタンドマイクでも計算できそうだったので購入したのがこちらです。

SONY エレクトレットコンデンサーマイクロホン PCV80U ECM-PCV80U

SONY エレクトレットコンデンサーマイクロホン PCV80U ECM-PCV80U

ニコニコ動画の「歌ってみた」界隈で高評価を得ている製品です。ちょっと不安なのが音声レベル。これまで使ってきたマイクのなかには、感度が高すぎたり低すぎたりして安定しなかった経験があるので、どの程度の調整が効くのか、使ってみるまで分からないという問題があります。製品レビューの中にもプリアンプを間にかませて接続している事例もあるので、別途中継機器を購入しなければならないかもしれません。このマイクはUSB接続だけでなく、マイク端子に直接接続することもできるので、 USBがダメなら、マイクからつなげば良いでしょう。

USBによる接続

ドラゴンスピーチでは、マイク端子接続よりもUSB接続の方が推奨されています。付属のUSB変換ケーブルが使えれば言うことありません。そこでまずUSB接続に挑戦です。

結果としては失敗です!

OSのコントロールパネルから、録音レベルを最大まで上げても音をほとんど拾いません。ものによっては「マイクブースト」と言う調整項目があるようですが、このマイクではそれが出ません。変換ケーブルにもボリュームはないみたいだし、これ以上の調整はできないようです。プラグインパワータイプのマイクということで、電源が必要のでしょうか? 電源ならUSBから供給できるはずなので、そんなことはないと思うのですが…どうしてつながらないんでしょうね? まぁとにかく、 USBでは使えないことが判明しました。

マイク端子による接続

気を取り直して、マイク端子での接続です。認識に問題はなく、マイクブーストによる調整も可能のようで、十分な音量を拾うことができます。しかしながら、 PC内蔵の音源ボードがショボいのか、音質がものすごく悪いです。ドラゴンスピーチでマイクのチェックを実行してみましたが、ほとんど言うことを聞きません。

この買い物は失敗じゃ!

低音質環境での音声入力

まあしかし買ってしまったものは仕方がない。失敗した己に対する罰として、あえて辛い環境に身をおくのも悪くないでしょう。もしかしたら、使っているうちに問題が解決するかもしれません。マイクのチェックを無理矢理通して後はひたすらディクテーションです。これが不思議なもので、ディクテーションを繰り返すことで、そこそこ使える程度まで認識できるようになってしまったのです。うむ、少々イライラすることはあるが、大抵の事は入力できるぞ。

プリアンプを通してのUSB接続

ということで、半年ほどは残念な音質で音声入力を行ってきましたが、消費税増税の駆け込み需要のどさくさに紛れて買っちゃいました、プリアンプ。マイク本体よりもずっと高価なので、これでも繋がらなかったらどうしよう? と不安にならないわけではないですが、こんな機会でもなければ買えません。

audio-technica マイクロフォンアンプ AT-MA2

audio-technica マイクロフォンアンプ AT-MA2

プリアンプにはUSB変換ケーブルと接続するためのケーブルが付属していないので、これも購入します。

さらに、電源も必要なのでアダプタのためのコンセントも確保します。ケーブルだらけでぐちゃぐちゃになるのが残念ですが仕方ありません。

このパターンは接続事例があるだけあって、無事成功です。プリアンプのボリュームとOSのコントロールパネルからの録音レベル調整で最適な音量を拾うことができました。音質もクリアで、マイクのチェックもすんなり通り、周囲の雑音を交わして自分の声だけを拾ってくれます。マイクと口元の位置関係もかなり大雑把であっても十分な認識をしてくれます。


ディクテーションはしなくても十分に使えます。せっかくなので、自宅のデスクトップマシンから、これまで使ってきたドラゴンスピーチのプロファイルをエクスポートしてきて、ノートPCにインポートです。これで辞書も含めた環境構築の完成です。

スタンドマイクの使用感

マイクスタンドは重量感があり安定していますが、高さが少々足りません。マイクの角度を上げるとお尻のケーブルが曲がってしまいます。仕方がないので、台の上に乗せて使っています。鼻息が音声入力の邪魔をすることはありませんが、マイクの正面から話すよりも少し横にずらして使うのが良いかと思います。

まとめ

スタンドマイクをプリアンプに接続し、そのプリアンプからマイクに付属しているUSB変換ケーブルに接続します。プリアンプを間にかませることで、マイクだけでは足りない音声レベルを増幅してコンピュータに入力します。マイクやPCなどの環境によっては、プリアンプを使わなくてもいけるかもしれません。もっと良い方法を誰か模索してくれると助かります。この環境には充分に満足しているので、ハードウェアが壊れるまではいじる事はないでしょう。