אנו נעבוד על הממשק הגרפי Windows Forms App.
ראשית יש להוסיף את ההפניה System.Speech
וכן נוסיף את ההפניה ל DLL
למעשה, אנחנו הולכים לשלוט במוזיקה במחשב שלנו,
ווליום, עצור, המשך, הקודם הבא,
אז בוא נתחיל
באירוע Form1_Shown של הפורום
נכתוב את הקוד הבא
יש לציין שלאורך כול התוכנית לא תהיה יציאה מהאירוע From1_Shown חוץ מעלאת אירוע Recognizer_SpeechRecognized.
באירוע Recognizer_SpeechRecognized
אשר מתרחש בזיהוי דיבור,
נכריז תחילה על משתנה מסוג SpeechSynthesizer אשר נותן הודעה למשתמש בקול (פלט קולי)
אחריו נבדוק את טקסט הדיבור
ואם הטקסט שווה ממש נעצור,נמשיך,נגביר,נלמיך,נעבור שיר
במקרה זה רק אם טקסט הדיבור שווה ממש לטקסט קורה הפקודה
אך אם רוצים משהו יותר גמיש אפשר להשתמש בפונקציה Contains שבודקת אם טקסט הדיבור של המשתמש מכיל את הטקסט
בהצלחה
כמובן שאפשר להוסיף כול מה שרוצים ב case
אז נשאר רק לאחל קידוד נעים!!!
ראשית יש להוסיף את ההפניה System.Speech
C#:
באמצעות System.Speech.Recognition;
באמצעות System.Speech.Synthesis;
C#:
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
ווליום, עצור, המשך, הקודם הבא,
אז בוא נתחיל
באירוע Form1_Shown של הפורום
נכתוב את הקוד הבא
יש לציין שלאורך כול התוכנית לא תהיה יציאה מהאירוע From1_Shown חוץ מעלאת אירוע Recognizer_SpeechRecognized.
C#:
Hide();
באמצעות (
SpeechRecognitionEngine מזהה = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("he-US")))
{
// צור וטען דקדוק הכתבה.
identifier.LoadGrammar(new DictationGrammar());
// הוסף מטפל לאירוע מזוהה דיבור
recognizer.SpeechRecognized += Recognizer_SpeechRecognized;
// הגדר קלט לזיהוי הדיבור.
identifier.SetInputToDefaultAudioDevice();
// התחל זיהוי דיבור אסינכרוני ומתמשך.
identifier.RecognizeAsync(RecognizeMode.Multiple);
// השאר את חלון המסוף פתוח.
בעוד (נכון)
Console.ReadLine();
}
אשר מתרחש בזיהוי דיבור,
נכריז תחילה על משתנה מסוג SpeechSynthesizer אשר נותן הודעה למשתמש בקול (פלט קולי)
C#:
SpeechSynthesizer synth = new SpeechSynthesizer();
ואם הטקסט שווה ממש נעצור,נמשיך,נגביר,נלמיך,נעבור שיר
C#:
switch (e.Result.Text)
{
case "Start":
synth.Speak("Start music");
keybd_event((byte)Keys.MediaPlayPause, 0, 0, 0);
break;
case "stop":
synth.Speak("Stop music");
keybd_event((byte)Keys.MediaPlayPause, 0, 0, 0);
break;
case "next song":
synth.Speak("next song");
keybd_event((byte)Keys.MediaNextTrack, 0, 0, 0);
break;
case "First song":
synth.Speak("First song");
keybd_event((byte)Keys.MediaPreviousTrack, 0, 0, 0);
break;
case "up":
synth.Speak("volume up");
keybd_event((byte)Keys.VolumeUp, 0, 0, 0);
break;
case "down":
synth.Speak("Volume down");
keybd_event((byte)Keys.VolumeDown, 0, 0, 0);
break;
}
}
אך אם רוצים משהו יותר גמיש אפשר להשתמש בפונקציה Contains שבודקת אם טקסט הדיבור של המשתמש מכיל את הטקסט
בהצלחה
כמובן שאפשר להוסיף כול מה שרוצים ב case
אז נשאר רק לאחל קידוד נעים!!!
הנושאים החמים