AmiVoice SP APIでAmiVoice SPが起動できない?

Pocket

音声認識ソフト”AmiVoice SP2″を自作ソフトに組み込む際に一瞬ハマったので公開。

AmiVoice SP2は日本語の音声をマイクやwavファイルから入力し、それをテキストに変換できる強力な有料ソフトです。いわゆる音声認識ソフトと呼ばれるものですね。

AmiVoice SP2は一般価格だと2万円程度のソフトです。無償の音声認識ライブラリとしてはJuliusrospeex等もあるんですが、AmiVoiceのメリットとしてGUIがしっかりしてる事に加えてWindows用のAPI(APIは無償公開)が整っているというメリットもあるので、個人的にはWindows上で遊ぶ場合ならAmiVoice SP2を推します。

 

で…このAmiVoice SP2 APIですが、チュートリアルを試したら失敗しました。具体的にはAmiVoice SP2の自動起動がナゼか失敗するようです。実行環境は以下の通りです。

  • Visual Studio 2013 Community
  • Windows 8.1 通常版 日本語版
  • C# + Windows Formでサンプルコードそのまま使用
  • ターゲットプラットフォームは.NET Framework 4.5

原因はよくわかってない(ネットで調べても何も出てこない)んですが、作ったプログラムの実行前にあらかじめAmiVoice SPを起動しておかないとダメみたいです。ローカルビルド無しでサンプルに同梱のexeファイルを実行するとAmiVoiceが起動されてない場合に自動で起動してくれるので、ビルド環境の問題のようですが…

サンプル版のコードはVisual C# 2010とかいう古代兵器で作られてるみたいなので、多分.NETとかコンパイラのバージョン関係の問題なんでしょうかね。

 

仕方ないので、私のコードではAPIに頼らずProcessを使って無理やり起動処理を代行するコードを書きました。ポイントは初期化中のAmiVoiceにプロセス間通信をしようとすると吐かれるエラーを拾い、OKが貰えるまで接続試行を繰り返すところです。

Task.Delay使ってるあたりがダサいですが、まあ応急処置ということで…。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です