株式会社ライブキャストロゴ 株式会社ライブキャスト

7月末頃に、Adobe – Adobe AIR Contest 2010が開催されることをtwitterで知りました。

応募資格は、2010年8月31日までにAdobe AIR Galleryに作品を申請する。

ということで、なにか作って応募したいと思っていたのですが、ちょうどそのころ、gTranslatorのリリースに向けて、追い込みをかけていたところだったので、あまり余裕がありませんでした。

が、既存の作品でも応募可能ということなので、TranslatAIRを応募してみようと思いました。

ただ、既存のアプリケーションを応募するだけでは面白みがないので、AIR 2.0もリリースされたことですし、AIR 2.0の新機能を使った何かを実装したいと思っていました。

gTranslatorでは、当時、TranslatAIRにはなかった音声認識、TextToSpeechの機能を実装したので、逆に、デスクトップアプリにも同じような機能があっても面白いのではないかと思い、この機能を実装できたら応募しよう!と。

そういえば、Adobe AIR Dayにいってきました!で、AIR 2.0のセミナーに参加したときに、音声認識エンジンを使っていたデモがありました。

Voice Launcher – マイク音声によってアプリケーションを起動する音声認識型 アプリケーション起動ソフト | デベロッパーセンター
こちらを参考にさせていただきました。

こちらでは、大語彙連続音声認識エンジン Juliusという音声認識エンジンを使っていますが、今回、私は、Windowsの音声認識エンジンを利用することにしました(質はJuliusの方がいいと思います)。

なぜかというと、JuliusはJavaベースなのでJREが必要になるのと、パッケージングするものを極力少なくし、必要最低限のインストールのみで利用できる状況を作りたかった、という思いがあったからです(決め手は、オリジナリティを取り入れたいという、エンジニアとしての意地でしょうか?)。

それと、Windowsの音声認識エンジンは、Windowsスクリプティングホストから操作できるようなので、比較的容易に実装できそうだったのと、Windows7、Windows Vistaには、音声認識エンジンがデフォルトでインストールされているが選考のポイントでした。

また、音声認識エンジンを操作するスクリプトを組んで、NativeProcessでコールすれば、AIR 2.0的な要素も含まれる!と。

MacのAppleScriptは未経験なもので、今回は見送りました。いずれ、機会があれば実装してみたいと思います。

一番苦労したのは、、、
音声認識エンジンを操作するスクリプトの部分でした(まだまだ、改善の余地あり・・・)。

それと、今回、Flex SDK 4.1を使用したのですが、Flex SDK 3系からの移行で、はまったところがあります。デフォルトのテーマの違いについてです。

テーマをSpark(Flex 4のデフォルト)に変更すると、影響が大きいので、テーマは変更したくありませんでした。

Flex 3とFlex 4との違い | デベロッパーセンター
の後半の「テーマの変更」というところに、やり方がありました。

実行してみると、、、

あれ?

翻訳画面の言語選択するComboBoxに、リストが表示されていないぞ。

nolist

あれあれ?

TitleWindowを使った、メッセージが表示されない。。。

nomessage

これは困りました。

いろいろ調べていると、同じような問題を抱えていた方がいらっしゃいました。
Adobe Forums: ComboBox (Halo) does not showing all…

ですが、解決していないようです。

半分あきらめかけたころ、最初にビルドしたときに、警告が出ていたのを思い出しました。もしや、それをはずしたのが原因か?試しに、一からやりなおすか。

ということで試してみると、Flex 3 compatibility mode(Flex 3互換性モード)の使用が関係していそうだということがわかりました。

プロパティでこれを選択していると、なぜだか、ComboBoxやTitleWindowの表示がおかしくなってしまうのです。

Flex 3互換性モードについて調べていると、原因を発見することができました。

Flash Builder 4でFlex 3互換モードを使うとポップアップが鏡像反転 – Brezzaの日記

スタイルを定義しなおせばいいんですね。

確かに鏡像反転の状態です。鏡像反転するのはComboBoxやTitleWindowだけではないかもしれませんね。このキーワードを思いつけば、解決も早かったかもしれません。

鏡像反転していたComboBoxは、

combobox

なおりました!

TitleWindowは

message

なおりました!!

一からやり直したことで、解決の糸口が見つけられました。時には、スタートラインに戻ってみることも大事ですね。

是非、試してみてください!

TranslatAIR

今回のバージョンは1.0.4になります。AIR 2.0のランタイムが必要となりますので、

error_native

error_update

のようなエラー画面が出る場合には、大変お手数ですが、アンインストールしてから、再度インストールしていただけますよう、お願いいたします。