none
SpeechRecognitionEngineの英語認識について RRS feed

  • 質問

  • C#を使って、英語の音声認識を行おうとしています。

    System.Speech.Recognition.SpeechRecognitionEngineを使っているのですが

    SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));

    とすると、

    型 'System.ArgumentException' のハンドルされていない例外が System.Speech.dll で発生しました

    追加情報:必要な ID の認識エンジンが見つかりません。

    というエラーが出てしまいます。

    英語用の音声認識エンジンがインストールされていないということだと思い、

    https://www.microsoft.com/en-us/download/details.aspx?id=27224

    こちらからMSSpeech_SR_en-US_TELE.msiをダウンロード、インストールしましたが

    状況は一切変わらず同じエラーが出るだけでした。

    どうすればこのエラーを解決できますか。もしくは英語を認識するにあたって良い別の手段はあるのでしょうか。

    よろしくお願いします。

    2016年11月30日 6:54

回答

  • System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()でRecognizerInfoの一覧が得られて、そこからCultureプロパティで対応している言語が得られます。
    一覧にない言語ではエラーになります。

    追加する方法
    手元のWindows8.1 Enterprise 64bitはja-JPとen-USが対応してましたので、試しにコントロールパネルの「言語」から「言語の追加」で追加したら、その言語のRecognizerEngineが得られるようになりました。
    Windows10 Pro/EnterpriseだとPC設定の「時刻と言語」->「地域と言語」->「言語を追加」で英語(米国)を追加し、さらにその言語を選択してオプションから音声認識をダウンロードするとでできました。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2016年11月30日 11:43
  • CultureInfo の代わりに、InstalledRecognizers() メソッド が返す一覧の中から選んでみて下さい。

    その一覧に無いのであれば、インストールが必要です。

    Windows 10 の場合は、[設定]-[時刻と言語]から、[地域と言語]([音声認識]の方ではなく)を開くと言語の追加機能があります。
    そこで特定の言語を追加した後、その言語の[オプション]を開くと、音声認識のダウンロードが行えると思います。

    Windows 10 以外の場合は分かりませんが、検索してみたところ、Windows 7 では Ultimate が必要 という情報がありました。

    2016年11月30日 12:08

すべての返信

  • System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()でRecognizerInfoの一覧が得られて、そこからCultureプロパティで対応している言語が得られます。
    一覧にない言語ではエラーになります。

    追加する方法
    手元のWindows8.1 Enterprise 64bitはja-JPとen-USが対応してましたので、試しにコントロールパネルの「言語」から「言語の追加」で追加したら、その言語のRecognizerEngineが得られるようになりました。
    Windows10 Pro/EnterpriseだとPC設定の「時刻と言語」->「地域と言語」->「言語を追加」で英語(米国)を追加し、さらにその言語を選択してオプションから音声認識をダウンロードするとでできました。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2016年11月30日 11:43
  • CultureInfo の代わりに、InstalledRecognizers() メソッド が返す一覧の中から選んでみて下さい。

    その一覧に無いのであれば、インストールが必要です。

    Windows 10 の場合は、[設定]-[時刻と言語]から、[地域と言語]([音声認識]の方ではなく)を開くと言語の追加機能があります。
    そこで特定の言語を追加した後、その言語の[オプション]を開くと、音声認識のダウンロードが行えると思います。

    Windows 10 以外の場合は分かりませんが、検索してみたところ、Windows 7 では Ultimate が必要 という情報がありました。

    2016年11月30日 12:08
  • gekkaさん、魔界の仮面弁士さん、返信ありがとうございます。

    PC設定から言語を追加し音声認識をダウンロードすることで、CultureInfoにen-USが追加され、無事英語の認識をすることができました。

    大変助かりました。ありがとうございます。

    2016年11月30日 12:55