PDA

View Full Version : system speech



saeedhushmand
دوشنبه 22 خرداد 1391, 19:19 عصر
دوستان با کد زیر صدا به متن تبدیل می شه بعد توی textbox نوشته می شه حالا می خواستم ببینم راهی هست تا کلماتی که می نوسه از بین کلماتی باشه که من براش تعریف کردم



public partial class Form1 : Form
{
SpeechRecognizer rec = new SpeechRecognizer();
public Form1()
{
InitializeComponent();
rec.SpeechRecognized += rec_SpeechRecognized;
}
void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
textBox1.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");
// etc...
var gb = new GrammarBuilder(c);
var g = new Grammar(gb);
rec.LoadGrammar(g);
rec.Enabled = true;
}
}

mahdi.akbari
دوشنبه 22 خرداد 1391, 19:44 عصر
داداش یه توضیحی در مورد این کدات می دی
این فونت های چین ؟

saeedhushmand
دوشنبه 22 خرداد 1391, 19:48 عصر
من کل کد فرم گذاشتم(به جز using ها) یکم دقت کنی می فهمی

Saeed_m_Farid
سه شنبه 23 خرداد 1391, 12:40 عصر
دوستان با کد زیر صدا به متن تبدیل می شه بعد توی textbox نوشته می شه حالا می خواستم ببینم راهی هست تا کلماتی که می نوسه از بین کلماتی باشه که من براش تعریف کردم ...

دوست عزیز با این کد ناقص که چیزی نمیشه گفت! من دقت کردم نفهمیدم، هیچکدوم از اون چیزایی که گفتین تو کد شما نیست!!! یعنی نه صدا تبدیل میشه به متن، نه جایی شما اون متن تشخیص داده نشده رو میریزین جای دیگه ای! فقط همون قسمتی که سوال پرسیدین (Grammar (http://msdn.microsoft.com/en-us/library/system.speech.recognition.grammarbuilder%28v=vs.85 %29.aspx)) بصورت ناقص هست، اونم نگفتین مشکل چیه؟ لینک منبع کد رو بذارید لطفاً؛ rec_SpeechRecognized چی هست؟ پس کد emulated recognition تون کجاست؟ فرضاً شما اون قسمتهای کد رو اینجا نذاشتین و برنامه تون صوت رو تشخیص میده و ... حالا مشکل چی هست؟ غیر از one، two، three، four و ... چیزای دیگه (خارج از گرامر) هم detect میشه؟
البته میشه حدس زد که rec_SpeechRecognized شما حتماً یه EventHandler هست که متن تشخیص داده شده رو میریزه تو textbox شما، ولی باید برای تموم شدن (Completed) عملیات تشخیص گفتار هم یه هندلر نوشته بشه و به EmulateRecognizeCompleted اضافه اش کنید؛ ضمناً کجا شما شروع کردین به گرفتن گفتار؟ من که چیزی تو این کد شما ندیدم! بگذریم، اول یه مثال ساده (http://msdn.microsoft.com/en-us/library/system.speech.recognition.speechrecognizer.aspx) از MSDN در این زمینه ببینید، بعدش هم هیچ آدم عاقلی تک تک کلمه به گرامر اضافه نمیکنه، اونم هارد کد! حداقل یه فایل متنی کنار برنامه بذارین از اون load کنید ...