6

それについてここに投稿があります...しかし、それは私にはうまくいきません。インターネットで見つけた system.speech.dll を追加しましたが、 System.speech が表示されないため使用できません。

エラー 1 型または名前空間名 'SpeechRecognizer' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

エラー 2 型または名前空間名 'SpeechRecogniizedEventArgs' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

このコードを使用しました。Windows Vista 64 を使用しています

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SpeechLib;
using System.Threading;


namespace WindowsFormsApplication13
{
    public partial class Form1 : Form
    {

        SpeechRecognizer rec = new SpeechRecognizer();

        public Form1()
        {
            InitializeComponent();
            rec.SpeechRecognized += rec_SpeechRecognized;
        }

        void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            lblLetter.Text = e.Result.Text;
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            var c = new Choices();

            // Doens't work must use English words to add to Choices and
            // populate grammar.
            //
            //for (var i = 0; i <= 100; i++)
            //  c.Add(i.ToString());

            c.Add("one");
            c.Add("two");
            c.Add("three");
            c.Add("four");
            c.Add("Five");
            c.Add("six");
            c.Add("seven");
            c.Add("eight");
            c.Add("nine");
            c.Add("ten");

            // etc...

            var gb = new GrammarBuilder(c);
            var g = new Grammar(gb);
            rec.LoadGrammar(g);
            rec.Enabled = true;
        }
    }
}
4

5 に答える 5

4

1) プロジェクトに System.Speech への参照を追加する必要があります

2) インターネットで「System.Speech.dll」を探す必要はありませんでした。それは .Net 3 (または 3.5 ですが、やむを得ない理由がない限り、とにかく 3.5 を取得する必要があります) にあるはずです。

編集:

あなたはここを見たいかもしれません:

http://dotnet.org.za/beta/archive/2008/01/06/system-speech-recognition.aspx

于 2009-02-25T12:15:41.493 に答える
4

私はジェームズ・オグデンに同意します。また、「using」ステートメントを追加する必要があります。

using System.Speech.Recognition

または、クラス名を完全修飾します。

于 2009-02-25T12:17:13.970 に答える
1

Vistaで構成した言語と一致する言語エンジンがあることを確認してください。http://support.microsoft.com/kb/934377を参照してください

于 2009-03-16T17:09:53.217 に答える
0

上記の質問に直接当てはまるわけではありませんが、Speech SDK は必ずしも各クライアント コンピューターで利用できるわけではないことに注意してください。Vista には音声認識機能が含まれていますが、XP には含まれていません。これを修正する方法として考えられるのは、XP ユーザーに Speech SDK をインストールしてもらうことです。これには Speech SDK が含まれています。もう 1 つは、Office 2003 (2007 ではない) を依存関係として追加することです。

于 2009-02-26T09:23:18.797 に答える
0

Windows XP の SpeechRecognizer クラスに問題があります。動作する場合と動作しない場合があり、PC を再起動する必要があります。Windows 7では正常に動作します。音声エンジン自体に何らかの問題があると思います。アプリケーションを数回実行すると、動作しなくなります。

このコードを使用しています:

システムを使用する; System.Collections.Generic の使用; System.ComponentModel の使用; System.Data の使用; System.Drawing を使用します。System.Linq を使用します。System.Text を使用します。System.Windows.Forms を使用します。SpeechLib を使用します。System.Threading の使用;

名前空間 WindowsFormsApplication13 { public 部分クラス Form1 : Form {

    SpeechRecognizer rec = new SpeechRecognizer();

    public Form1()
    {
        InitializeComponent();
        rec.SpeechRecognized += rec_SpeechRecognized;
    }

    void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        lblLetter.Text = e.Result.Text;
    }


    private void Form1_Load(object sender, EventArgs e)
    {
        var c = new Choices();


        c.Add("one");
        c.Add("two");
        c.Add("three");
        c.Add("four");
        c.Add("Five");
        c.Add("six");
        c.Add("seven");
        c.Add("eight");
        c.Add("nine");
        c.Add("ten");

        // etc...

        var gb = new GrammarBuilder(c);
        var g = new Grammar(gb);
        rec.LoadGrammar(g);
        rec.Enabled = true;
    }
}

}

于 2010-12-18T11:58:13.107 に答える