制御プログラムに音声認識を試してみたいです。C# でテスト プログラムを作成しましたが、これをデバッグしているときに毎回エラーが発生しました -
System.Runtime.InteropServices.COMException (0x80004005): Calling part of COM return error HRESULT E_FAIL.*
in System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer recognizer, Boolean inproc)
in System.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase()
in System.Speech.Recognition.SpeechRecognitionEngine.LoadGrammar(Grammar grammar)
エラーの原因はengine.LoadGrammar(new DictationGrammar());
On my notebook I installed CZECH OS Vista で、OS の言語と音声認識の言語が違うのかもしれません。
英語以外の OS で system.speech を使用して開発する方法はありますか、またはいくつかのステップで間違っていますか? 言語に問題はありません。音声認識に英語を使用したいのですが、英語の Vista または MUI 言語パックが入手できません。
完全なコードは以下のとおりです。
どうもありがとう!
using System;
using System.Windows;
using System.Speech.Recognition;
namespace rozpoznani_reci_WPF
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SpeechRecognitionEngine engine = new SpeechRecognitionEngine();
try
{
engine.LoadGrammar(new DictationGrammar());
engine.SetInputToDefaultAudioDevice();
engine.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
}
catch(Exception e)
{
//MessageBox.Show(e.ToString());
textBox1.Text = e.ToString();
}
}
void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result != null)
{
textBox1.Text = e.Result.Text + " ";
}
}
}
}