2009년 1월 6일 화요일

퍼온글 : WPF SpeechLib Sample

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using SpeechLib;
namespace tryreco
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
SpRecognition cc = new SpRecognition();

cc.MessageBegin();

cc.BeginRec(textBox1); //Fan:겉코휭渴흙textbox1


}
private void button2_Click(object sender, EventArgs e)
{
SpRecognition cc = new SpRecognition();
cc.MessageEnd();
cc.CloseRec();
}
public class SpRecognition
{
private static SpRecognition _Instance = null;
private SpeechLib.ISpeechRecoGrammar isrg;
private SpeechLib.SpSharedRecoContextClass ssrContex = null;
private System.Windows.Forms.Control cDisplay; //fan:痰윱鞫刻刀稜瘻뺏빈돨匡굶
public System.Windows.Forms.TextBox textbox; //fan:藤속textbox瞳SpRecognition 잚
public SpRecognition()
{
ssrContex = new SpSharedRecoContextClass();
isrg = ssrContex.CreateGrammar(1);
SpeechLib._ISpeechRecoContextEvents_RecognitionEventHandler recHandle =
new _ISpeechRecoContextEvents_RecognitionEventHandler(ContexRecognition);
ssrContex.Recognition += recHandle;
}
public void BeginRec(Control tbResult)
{
isrg.DictationSetState(SpeechRuleState.SGDSActive);
cDisplay = tbResult;
//cDisplay.Text = "dddddddddd"; 꿎桿,옵鹿냥묘瞳textbox1컸쟁鞫刻놔윱

}
public static SpRecognition instance()
{
if (_Instance == null)
_Instance = new SpRecognition();
return _Instance;
}
public void CloseRec()
{
isrg.DictationSetState(SpeechRuleState.SGDSInactive);
}
private void ContexRecognition(int iIndex, object obj, SpeechLib.SpeechRecognitionType type, SpeechLib.ISpeechRecoResult result)
{
cDisplay.Text += result.PhraseInfo.GetText(0, -1, true);
}
public void MessageBegin()
{
textbox =new TextBox() ;
textbox.Text = "Notice :this time ,it Begin recoginse";
MessageBox.Show(textbox.Text);

}
public void MessageEnd()
{
textbox = new TextBox();
textbox.Text = "Notice :this time ,it End recoginse";
MessageBox.Show(textbox.Text);
}
}

}
}

댓글 없음: