Advertisement
D3NCE

KÜNSTLICHE INTELLIGENZ IN C# SCHREIBEN – PART 6 – WIKIPEDIA

Dec 21st, 2018
1,557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.81 KB | None | 0 0
  1. Video URL: https://www.youtube.com/watch?v=dXAl510Bf4U
  2.  
  3. Hier ist der Teil nur für Wikipedia:
  4.  
  5. case "was ist youtube":
  6. s.SpeakAsync("Ich suche mal schnell, hmm hier ich habe etwas gefunden das dich interessieren könnte");
  7. lbl_ans.Text = "Ich habe folgendes gefunden";
  8.  
  9. WebClient client = new WebClient();
  10.  
  11. using (Stream stream = client.OpenRead("http://de.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&explaintext=1&titles=YouTube"))
  12. using (StreamReader reader = new StreamReader(stream))
  13. {
  14. JsonSerializer ser = new JsonSerializer();
  15. Result result = ser.Deserialize<Result>(new JsonTextReader(reader));
  16.  
  17. foreach (Page page in result.query.pages.Values)
  18. txt_info.Text = page.extract;
  19. s.SpeakAsync(txt_info.Text);
  20. }
  21.  
  22. break;
  23.  
  24. Und die Klassen:
  25.  
  26. public class Result
  27. {
  28. public Query query { get; set; }
  29. }
  30.  
  31. public class Query
  32. {
  33. public Dictionary<string, Page> pages { get; set;}
  34. }
  35.  
  36. public class Page
  37. {
  38. public string extract { get; set;}
  39. }
  40.  
  41. Und hier ist noch einmal der gesamte Code:
  42.  
  43. using System;
  44. using System.Collections.Generic;
  45. using System.ComponentModel;
  46. using System.Data;
  47. using System.Drawing;
  48. using System.Linq;
  49. using System.Text;
  50. using System.Threading.Tasks;
  51. using System.Windows.Forms;
  52. using MaterialSkin;
  53. using MaterialSkin.Controls;
  54. using System.Speech.Synthesis;
  55. using System.Speech.Recognition;
  56. using System.Xml;
  57. using System.Web;
  58. using System.IO;
  59. using System.Net;
  60. using System.Text.RegularExpressions;
  61. using System.Windows.Forms.VisualStyles;
  62. using Newtonsoft.Json;
  63.  
  64. namespace d3nce_voicerecognition
  65. {
  66. public partial class Form1 : MaterialForm
  67. {
  68. #region Deklaration der Engine
  69. SpeechRecognitionEngine h = new SpeechRecognitionEngine();
  70. SpeechSynthesizer s = new SpeechSynthesizer();
  71. #endregion
  72.  
  73. #region Startup Configuration
  74. public Form1()
  75. {
  76. InitializeComponent();
  77. var materialSkinManager = MaterialSkinManager.Instance;
  78. materialSkinManager.AddFormToManage(this);
  79. materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;
  80. materialSkinManager.ColorScheme = new ColorScheme(Primary.Red800, Primary.Red600, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE);
  81. }
  82. #endregion
  83.  
  84.  
  85.  
  86. private void Form1_Load(object sender, EventArgs e)
  87. {
  88. lbl_time.Text = DateTime.Now.ToShortTimeString();
  89. lbl_date.Text = DateTime.Now.ToLongDateString();
  90.  
  91. Choices commands = new Choices();
  92. commands.Add(new string[]{"hallo","wie geht es dir","wie spät ist es","welcher tag ist heute","youtube ist da","was ist youtube", "was ist youtube"});
  93.  
  94. GrammarBuilder gbuilder = new GrammarBuilder();
  95. gbuilder.Append(commands);
  96.  
  97. Grammar grammar = new Grammar(gbuilder);
  98.  
  99. h.LoadGrammar(grammar);
  100. h.SetInputToDefaultAudioDevice();
  101. h.SpeechRecognized += recEngine_SpeechRecognized;
  102.  
  103. h.RecognizeAsync(RecognizeMode.Multiple);
  104. s.SelectVoiceByHints(VoiceGender.Female,VoiceAge.Adult);
  105.  
  106. s.SpeakAsync("Wie kann ich dir helfen");
  107. }
  108.  
  109. void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
  110. {
  111. lbl_quest.Text = e.Result.Text;
  112. switch (e.Result.Text)
  113. {
  114. #region hallo
  115. case "hallo":
  116. s.SpeakAsync("hallo dence");
  117. lbl_ans.Text = "hallo d3nce";
  118. break;
  119. #endregion
  120.  
  121. #region wie geht es dir
  122. case "wie geht es dir":
  123. s.SpeakAsync("gut und dir");
  124. lbl_ans.Text = "gut und dir?";
  125. break;
  126. #endregion
  127.  
  128. #region welcher tag ist heute
  129. case "welcher tag ist heute":
  130. s.SpeakAsync("heute ist der " + DateTime.Now.ToString("d"));
  131. lbl_ans.Text = "heute ist der " + DateTime.Now.ToString("d");
  132. break;
  133. #endregion
  134.  
  135. #region wie spät ist es
  136. case "wie spät ist es":
  137. s.SpeakAsync("es ist " + DateTime.Now.ToString("HH:mm"));
  138. lbl_ans.Text = "es ist " + DateTime.Now.ToString("HH:mm") + "Uhr";
  139. break;
  140. #endregion
  141.  
  142. #region youtube ist da
  143. case "youtube ist da":
  144. s.SpeakAsync("Wunderbar, Willkommen bei einem neuen Tutorial zum Thema Artificial Intelligence. Viel Spaß dabei");
  145. lbl_ans.Text = "Wunderbar, Willkommen bei einem…";
  146. break;
  147. #endregion
  148.  
  149. #region Wikipedia
  150. case "was ist youtube":
  151. s.SpeakAsync("Ich suche mal schnell, hmm hier ich habe etwas gefunden das dich interessieren könnte");
  152. lbl_ans.Text = "Ich habe folgendes gefunden";
  153.  
  154. WebClient client = new WebClient();
  155.  
  156. using (Stream stream = client.OpenRead("http://de.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&explaintext=1&titles=YouTube"))
  157. using (StreamReader reader = new StreamReader(stream))
  158. {
  159. JsonSerializer ser = new JsonSerializer();
  160. Result result = ser.Deserialize<Result>(new JsonTextReader(reader));
  161.  
  162. foreach (Page page in result.query.pages.Values)
  163. txt_info.Text = page.extract;
  164. s.SpeakAsync(txt_info.Text);
  165. }
  166.  
  167. break;
  168. #endregion
  169. }
  170.  
  171. }
  172.  
  173. #region Methoden für Wikipedia
  174. public class Result
  175. {
  176. public Query query { get; set; }
  177. }
  178.  
  179. public class Query
  180. {
  181. public Dictionary<string, Page> pages { get; set;}
  182. }
  183.  
  184. public class Page
  185. {
  186. public string extract { get; set;}
  187. }
  188. #endregion
  189. }
  190.  
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement