1

C# のアプリケーションがあり、音声認識に Kinect センサーを使用しています。

it-ITでCultureを設定することは可能ですか??

問題はメソッド GetKinectRecognizer() にあると思います。このメソッドでは音声認識のプロパティを設定しているためです。

今、私はこの方法を持っています

//riconoscimento vocale
    private SpeechRecognitionEngine RiconoscimentoVocale()
{
    RecognizerInfo ri = GetKinectRecognizer();

    SpeechRecognitionEngine sre;
    try
    {
        sre = new SpeechRecognitionEngine(ri.Id);
    }
    catch
    {
        this.Close();
        return null;
    }
    //vengono aggiunte la parole grammaticali da riconoscere
    var grammar = new Choices();
    grammar.Add("rosso");
    grammar.Add("aiuto");
    grammar.Add("caduto");

    //creo il vocabolario delle parole
    var vocabolario = new GrammarBuilder { Culture = ri.Culture };
    vocabolario.Append(grammar);

    // Create the actual Grammar instance, and then load it into the speech recognizer.
    var g = new Grammar(vocabolario);
    //carico la grammatica
    sre.LoadGrammar(g);
    //aggiungo l'evento per il riconoscimento delle parole
    sre.SpeechRecognized += this.RiconoscimentoParole;

    return sre;
}

private static RecognizerInfo GetKinectRecognizer()
{
    //Console.WriteLine("recognizer info ");
    Func<RecognizerInfo, bool> matchingFunc = r =>
    {

        Console.WriteLine("recognizer info " + r.Culture.Name);
        string value;
        r.AdditionalInfo.TryGetValue("Kinect", out value);
        return "True".Equals(value, StringComparison.InvariantCultureIgnoreCase) && "en-US".Equals(r.Culture.Name, StringComparison.InvariantCultureIgnoreCase);
    };
    return SpeechRecognitionEngine.InstalledRecognizers().Where(matchingFunc).FirstOrDefault();
}

手伝いましょうか?

4

1 に答える 1