因此,我正在嘗試C#語音識別,我使用System.Speech.Recognition,並且,我在互聯網上搜索,嘗試了幾段代碼以進行一些基本的語音識別,最好的我能找到的是這樣的:PlatformNotSupportedException使用.NET語音識別
using System;
using System.Text;
using System.Windows.Forms;
using System.Speech.Recognition;
namespace SpeechRecognition
{
public partial class MainForm : Form
{
SpeechRecognitionEngine recognitionEngine;
public MainForm()
{
InitializeComponent();
Initialize();
}
private void Initialize()
{
recognitionEngine = new SpeechRecognitionEngine();
recognitionEngine.SetInputToDefaultAudioDevice();
recognitionEngine.SpeechRecognized += (s, args) =>
{
foreach (RecognizedWordUnit word in args.Result.Words)
{
// You can change the minimun confidence level here
if (word.Confidence > 0.8f)
freeTextBox.Text += word.Text + " ";
}
freeTextBox.Text += Environment.NewLine;
};
}
private void startButton_Click(object sender, EventArgs e)
{
try
{
recognitionEngine.UnloadAllGrammars();
recognitionEngine.LoadGrammar(new DictationGrammar());
RecognitionResult result = recognitionEngine.Recognize(new TimeSpan(0, 0, 20));
if (result != null)
{
foreach (RecognizedWordUnit word in result.Words)
{
freeTextBox.Text += word.Text + " ";
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void startAsyncButton_Click(object sender, EventArgs e)
{
recognitionEngine.UnloadAllGrammars();
recognitionEngine.LoadGrammar(new DictationGrammar());
recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
}
private void stopButton_Click(object sender, EventArgs e)
{
recognitionEngine.RecognizeAsyncStop();
}
private void startAsyncGrammarButton_Click(object sender, EventArgs e)
{
try
{
recognitionEngine.UnloadAllGrammars();
Grammar cg = CreateSampleGrammar();
recognitionEngine.LoadGrammar(cg);
recognitionEngine.RecognizeAsync(RecognizeMode.Multiple);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private Grammar CreateSampleGrammar()
{
Choices commandChoices = new Choices("Calculator", "Notepad", "Internet Explorer", "Paint");
GrammarBuilder grammarBuilder = new GrammarBuilder("Start");
grammarBuilder.Append(commandChoices);
Grammar g = new Grammar(grammarBuilder);
g.Name = "Available programs";
return g;
}
}
}
現在,我想這一點,和其他一些人,他們都產生了同樣的錯誤,一個PlatformNotSupportedException,錯誤,它說:「沒有識別器安裝」。
有沒有辦法解決這個問題?我正在運行Windows 7 64位。
請不要用「C#」等來標題。這就是標籤的用途。 – 2012-03-16 16:35:59
對,對不起。 – Stan 2012-03-16 16:42:11
不需要抱歉!現在你知道了。 – 2012-03-16 16:48:09