2016-04-06 17 views
-2

Hey çocuklar ben m new in this C# so i don çok şey biliyorlar ve eğer vokal komutları ile google'da nasıl arama yapabilirim diyebilirseniz minnettar olacağım ^^. İşte C# google sesli arama

adım benim tüm code.Explain adımdır edin:. D

{

public partial class Form1 : Form 
{   

    SpeechSynthesizer s = new SpeechSynthesizer(); 
    Choices list = new Choices(); 
    Boolean wake = true; 
    public Form1() 
    { 
     SpeechRecognitionEngine rec = new SpeechRecognitionEngine(); 
     list.Add(new String[] { "hello", "how are you", "what time is it", "what day is it", "open google", "wake", "sleep", "restart", "open studio", "close studio", "search", "standby", "mute", "unmute", "up", "down", "hex system up"}); 
     Grammar gr = new Grammar(new GrammarBuilder(list)); 
     try 
     { 
      rec.RequestRecognizerUpdate(); 
      rec.LoadGrammar(gr); 
      rec.SpeechRecognized += rec_SpeachRecognized; 
      rec.SetInputToDefaultAudioDevice(); 
      rec.RecognizeAsync(RecognizeMode.Multiple); 
     } 
     catch { return; } 


     InitializeComponent(); 
    } 
    public void KillProg(String s) 
    { 

     System.Diagnostics.Process[] procs = null; 
     try 
     { 
      procs = Process.GetProcessesByName(s); 
      Process prog = procs[0]; 
      if (!prog.HasExited) { prog.Kill(); } 


    }finally 
     { 
      if (procs != null) 
      { 
       foreach (Process p in procs) 
       { 
        p.Dispose(); 
       } 
      } 
     } 
}  


    public void restart() 
    { 
     Process.Start(@"D:\here.exe"); 
     Environment.Exit(0); 
    } 
    public void say(String h) 
    { 

     s.Speak(h); 

    } 

    public static void ExecuteCommand(string Command) 
    { 
     System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c" + Command); 
     procStartInfo.RedirectStandardOutput = true; 
     procStartInfo.UseShellExecute = false; 
     procStartInfo.CreateNoWindow = true; 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo = procStartInfo; 
     proc.Start(); 
     proc.Close(); 
    } 
    //Speech Commands 
    private void rec_SpeachRecognized(object sender, SpeechRecognizedEventArgs e) 
    {    
     String r = e.Result.Text; 
     if (r == "wake") { say("The system is listening sir"); } wake = true; 
     if (r == "sleep") { say("The system will no more listen sir"); } wake = false; 
     if (wake == true)    
     { 
      if (r == "hex system up") {Process.Start(@"C:\Program Files\Rainmeter\Rainmeter.exe"); say("Welcome back sir     the system is loading and all energy is stabilized  ,   now i am at 100% capacity"); } 
      if (r == "down") { ExecuteCommand("C:/nircmd.exe changesysvolume -10000"); } 
      if (r =="up") {ExecuteCommand ("C:/nircmd.exe changesysvolume 10000");} 
      if (r == "unmute"){ExecuteCommand ("C:/nircmd.exe mutesysvolume 0"); say("system unmute sir");} 
      if (r == "mute") {say("mute now!"); ExecuteCommand ("C:/nircmd.exe mutesysvolume 1");} 
      if (r == "standby") { say("The system will enter in waiting mode sir"); ExecuteCommand("C:/nircmd.exe standby"); }  
      if (r == "close studio") { KillProg("WDExpress"); } 
      if (r == "open studio") { Process.Start(@"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\WDExpress.exe"); } 
      if (r == "hello") { say("Hi"); } 
      if (r == "how are you") { say("Great , and you?"); } 
      if (r == "what time is it") { say(DateTime.Now.ToString("hh:mm")); } 
      if (r == "what day is it") { say(DateTime.Now.ToString("M/d/yyyy")); } 
      if (r == "open google") { Process.Start("https://www.google.ro"); } 
     } 





    } 

    private void say() 
    { 
     throw new NotImplementedException(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

    } 

    public bool c { get; set; } 

    public int r { get; set; } 

    public int rnd { get; set; } 
} 

: D i yeni kütüphaneler ya da yeni bir giriş ya da yeni "kullanarak" şeyler eklemelisiniz if (söyle }

cevap

1

SpeechRecognitionEngine, birden çok "modu" vardır. Komut modunda, bunu, tanımlayabileceği bazı önceden tanımlanmış sözcükler verdiğiniz anlamına gelir. Bunu, isteğe bağlı sözcükleri tanımasına izin veren Dikte modunda kullanmak için, bir örnek ekleyin. System.Speech.Recognition.DictationGrammar Dilbilgisi olarak SpeechRecognitionEngine, bunu yaparak: rec.LoadGrammar(new DictationGrammar());. Bu yapıldıktan sonra SpeechRecognitionEngine keyfi kelimeleri tanıyacaktır.


gerçek google arama bölümünü yapmak için, bunu yaparak google şey için arama yapabilirsiniz: System.Diagnostics.Process.Start("http://www.google.com/search?q=" + StringToSearchFor). Bu, rec_SpeechRecognized yönteminde kullanılabilir. Örneğin, tanınan metnin "google" ile başlayıp başlamadığını kontrol edip, ardından gelenleri arayın.

Örnek:

private void rec_SpeachRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     if (e.Result.Text.StartsWith("google ")) 
     { 
      System.Diagnostics.Process.Start(
       "https://www.google.com/search?q=" + e.Result.Text.Substring(7) //"google " is 7 characters long. 
      ); 
     } 
     ... 
    } 

İlgili blog yazısı: http://csharp-tricks-en.blogspot.dk/2011/03/speech-recognition-part-1-dictation-mode.html

+0

Hey cevap ama man teşekkürler: di için, google kelime aramak için rastgele bir kelime ve sonra programı söylemek istiyorum ör: köpek dediğimde program köpek için google'da arama yapacak, ya da kedi, diyecek bir şey: D biliyorsunuz vokal komutu rastgele bir sözcük tanımlamıyor: D –