private void ZamawiamKoszyk(int ja) { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); rozpoznawanieMowy.dodajSlowa(new string[] { "Procesor", "Dysk Twardy", "Pamięć RAM", "Koniec" }); Historia = Visibility.Visible; //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = (StanyRozmowy)ja; } else { if (string.Compare("Koniec", e.Result.Text) == 0) { Powiedz("Dziękujemy, towary niedługo zostaną wydane"); new DodajDoBazy().dodajZamowienie(ListaZamowien, new CzytajZBazy().pobierzIDKlienta(uzytkownik.imie)); new AktualizacjaBazyDanych().aktualizujDane(ListaZamowien); Historia = Visibility.Hidden; stanRozmowy = StanyRozmowy.WyborTrybu; } else if (string.Compare(e.Result.Text, "Procesor") == 0) { Powiedz("Wybrales kupno procesora"); stanRozmowy = StanyRozmowy.WyborProcesora; } else if (string.Compare(e.Result.Text, "Dysk Twardy") == 0) { Powiedz("Wybrales kupno dysku twardego"); stanRozmowy = StanyRozmowy.WyborDysku; } else if (string.Compare(e.Result.Text, "Pamięć RAM") == 0) { Powiedz("Wybrales kupno pamieci ram"); stanRozmowy = StanyRozmowy.WyborRAMu; } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = (StanyRozmowy)ja; }; Powiedz("Posiadasz w koszyku " + listaZamowien.Count + " zamówień. Chciałbyś zamowić dysk twardy," + " procesor czy Pamięć ram? Jeśli byś chciał zakończyć kupowanie powiedz koniec"); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void PobierzHaslo() { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); foreach (Uzytkownik user in userzy) { rozpoznawanieMowy.dodajSlowa(user.haslo); } //rozpoznawanieMowy.dodajSlowa(uzytkownik.haslo);//czytaj hasla z bazy danych //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = StanyRozmowy.ZapytanieOHaslo; } else { if (string.Compare(uzytkownik.haslo, e.Result.Text) == 0) { odpowiedzSystemu = parserXML.parsuj("HasloOk.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.WyborTrybu; } else { odpowiedzSystemu = parserXML.parsuj("HasloNieOk.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.BledneHaslo; } } }; //dodanie obsługi jak się nie udało rozpoznać rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.NieRozpoznaneHaslo;//ustawienie stanu rozmowy Debug.WriteLine("Nie rozpoznano usera " + e.ToString()); }; //rozpoznawanieMowy.SRE. odpowiedzSystemu = parserXML.parsuj("ZapytajHaslo.vxml"); Powiedz("Witaj " + uzytkownik.imie + " " + odpowiedzSystemu.Prompt); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void WyborTrybu(int ja) { ListaZamowien = new ObservableCollection <PozycjaZamowienia>(); ListaSprzetu = new ObservableCollection <Sprzet>(); Debug.WriteLine("Wybor trybu"); rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); rozpoznawanieMowy.dodajSlowa("Nowe"); rozpoznawanieMowy.dodajSlowa("Historia"); //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = (StanyRozmowy)ja; } else { if (string.Compare("Nowe", e.Result.Text) == 0) { odpowiedzSystemu = parserXML.parsuj("NoweZamowienie.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.NoweZamowienie; } else if (string.Compare("Historia", e.Result.Text) == 0) { odpowiedzSystemu = parserXML.parsuj("HistoriaZamowien.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.HistoriaZamowien; } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = (StanyRozmowy)ja; }; odpowiedzSystemu = parserXML.parsuj("WyborTrybu.vxml"); Powiedz(odpowiedzSystemu.Prompt); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void WyborLiczbySztuk(int ja) { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); for (int i = 1; i <= new CzytajZBazy().pobierzSprzet(wybranySprzet.sprzet.idSprzetu).iloscSztuk; i++) { rozpoznawanieMowy.dodajSlowa(i + ""); //czyta jedno zamiast 1, lel } //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = (StanyRozmowy)ja; } else { for (int i = 1; i <= ListaSprzetu.Count; i++) { if (string.Compare(i.ToString(), e.Result.Text) == 0) { wybranySprzet.sprzet.iloscSztuk = i; wybranySprzet.liczba = i; Application.Current.Dispatcher.Invoke(new Action(() => ListaZamowien.Add(wybranySprzet))); Application.Current.Dispatcher.Invoke(new Action(() => stanRozmowy = StanyRozmowy.NoweZamowienie)); } } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = (StanyRozmowy)ja; }; Powiedz("Ile chciałbyś sztuk sprzętu? Podaj liczbę z zakresu 1 - " + new CzytajZBazy().pobierzSprzet(wybranySprzet.sprzet.idSprzetu).iloscSztuk); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void KupnoDyskuTwardego(int ja) { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); ListaSprzetu = new CzytajZBazy().pobierzDyskiTwarde(); for (int i = 0; i < ListaSprzetu.Count; i++) { ListaSprzetu[i].text = new CzytajZBazy().pobierzDyskTwardy(ListaSprzetu[i].idSprzetu).PobierzOpis(); } SprzetVisible = Visibility.Visible; for (int i = 1; i <= ListaSprzetu.Count; i++) { rozpoznawanieMowy.dodajSlowa(i + ""); //czyta jedno zamiast 1, lel } for (int i = 1; i <= ListaSprzetu.Count; i++) { ListaSprzetu[i - 1].numerNaLiscie = i; } OnPropertyChanged("ListaSprzetu"); //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = (StanyRozmowy)ja; } else { for (int i = 1; i <= ListaSprzetu.Count; i++) { if (string.Compare(i.ToString(), e.Result.Text) == 0) { Powiedz("Wybrałeś dysk numer " + i); //Dispatcher PozycjaZamowienia poz = new PozycjaZamowienia { sprzet = ListaSprzetu[i - 1], liczba = 1 }; wybranySprzet = poz; SprzetVisible = Visibility.Hidden; stanRozmowy = StanyRozmowy.LiczbaSztuk; } } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = (StanyRozmowy)ja; }; Powiedz("Który dysk cię interesuje, podaj numer"); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void OdczytHistorii(int ja) { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); int liczbaZamowien = new CzytajZBazy().pobierzLiczbeZamowien(uzytkownik.imie); for (int i = 1; i <= liczbaZamowien; i++) { rozpoznawanieMowy.dodajSlowa(i + ""); //czyta jedno zamiast 1, lel } //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = (StanyRozmowy)ja; } else { for (int i = 1; i <= liczbaZamowien; i++) { if (string.Compare(i.ToString(), e.Result.Text) == 0) { odpowiedzSystemu = parserXML.parsuj("WyborHistoria.vxml"); Powiedz(odpowiedzSystemu.Prompt + " " + i); Powiedz("Skład zamówienia:"); ObservableCollection <Zamowienie> lista = new ObservableCollection <Zamowienie>(); lista = new CzytajZBazy().pobierzZamowienia(uzytkownik.imie); ObservableCollection <PozycjaZamowienia> pom = new ObservableCollection <PozycjaZamowienia>(); foreach (PozycjaZamowienia poz in lista[i - 1].lista) { pom.Add(poz); } ListaZamowien = pom; Historia = Visibility.Visible; foreach (PozycjaZamowienia poz in lista[i - 1].lista) { Powiedz("Zamówiłeś: " + poz.typ + " o parametrach " + poz.sprzet.text); } Historia = Visibility.Hidden; stanRozmowy = StanyRozmowy.WyborTrybu; } } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = (StanyRozmowy)ja; }; Powiedz("Obecnie posiadasz " + new CzytajZBazy().pobierzLiczbeZamowien(uzytkownik.imie) + " zamówienia. " + "Które cię interesuje"); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//rozpoznaj slowo }
private void PobierzNazweUsera() { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz" }); userzy = new CzytajZBazy().pobierzUzytkownikow(); foreach (Uzytkownik user in userzy) { user.imie = user.imie.Replace(" ", string.Empty); user.haslo = user.haslo.Replace(" ", string.Empty); rozpoznawanieMowy.dodajSlowa(user.imie); } //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { Debug.WriteLine("Przyszedl event"); string imie = e.Result.Text; if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = StanyRozmowy.ZapytanieOLogin; } else { foreach (Uzytkownik user in userzy) { if (string.Compare(user.imie, imie) == 0) { uzytkownik = user; stanRozmowy = StanyRozmowy.ZapytanieOHaslo; //ustawienie stanu rozmowy break; //jak znalazlem to koncze szukanie } } if (stanRozmowy != StanyRozmowy.ZapytanieOHaslo) //ja poprzenida petla nie znalazla usera to znaczy ze go nima { odpowiedzSystemu = parserXML.parsuj("LoginNieOk.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.BlednyLogin;//ustawienie stanu rozmowy } else if (stanRozmowy == StanyRozmowy.ZapytanieOHaslo) { odpowiedzSystemu = parserXML.parsuj("LoginOk.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.ZapytanieOHaslo; } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.NieRozpoznanyLogin;//ustawienie stanu rozmowy Debug.WriteLine("Nie rozpoznano usera " + e.ToString()); }; odpowiedzSystemu = parserXML.parsuj("ZapytajLogin.vxml"); Powiedz(odpowiedzSystemu.Prompt); rozpoznawanieMowy.rozpoznajSlowoZeSlownika();//start metody rozpoznawania jednego słowa ze słownika }
private void PobierzWszystko() { rozpoznawanieMowy.czyscSlownik();//przed rozpoznawaniem czyscimy slownik rozpoznawanieMowy.dodajSlowa(new string[] { "Wyjdź", "Powtórz", "Login", "Hasło" }); userzy = new CzytajZBazy().pobierzUzytkownikow(); foreach (Uzytkownik user in userzy) { user.imie = user.imie.Replace(" ", string.Empty); user.haslo = user.haslo.Replace(" ", string.Empty); rozpoznawanieMowy.dodajSlowa(user.imie); rozpoznawanieMowy.dodajSlowa(user.haslo); } //dodanie obsługi udanego rozpoznania rozpoznawanieMowy.SRE.SpeechRecognized += (object sender, SpeechRecognizedEventArgs e) => { string imie = e.Result.Text; if (string.Compare(e.Result.Text, "Wyjdź") == 0) { stanRozmowy = StanyRozmowy.Pozegnanie; } else if (string.Compare(e.Result.Text, "Powtórz") == 0) { stanRozmowy = StanyRozmowy.ZapytanieOLogin_Haslo; } else { Debug.WriteLine(e.Result.Text); if (string.Compare(e.Result.Text, "Login") == 0) { login = true; } else if (string.Compare(e.Result.Text, "Hasło") == 0) { haslo = true; } else if (login) { foreach (Uzytkownik user in userzy) { if (string.Compare(user.imie, imie) == 0) { uzytkownik = user; loginText = imie; } login = false; } } else if (haslo) { foreach (Uzytkownik user in userzy) { if (string.Compare(user.haslo, imie) == 0) { uzytkownik = user; hasloText = imie; } haslo = false; } } if (hasloText != null && loginText != null) { if (string.Compare(uzytkownik.imie, loginText) == 0 && string.Compare(uzytkownik.haslo, hasloText) == 0) { Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.WyborTrybu; } else { odpowiedzSystemu = parserXML.parsuj("BladInit.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.ZapytanieOLogin;//ustawienie stanu rozmowy } } } }; //dodanie obsługi jak się nie udało rozpoznać usera rozpoznawanieMowy.SRE.SpeechRecognitionRejected += (object sender, SpeechRecognitionRejectedEventArgs e) => { odpowiedzSystemu = parserXML.parsuj("NieRozpoznano.vxml"); Powiedz(odpowiedzSystemu.Prompt); odpowiedzSystemu = parserXML.parsuj("BladInit.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.ZapytanieOLogin;//ustawienie stanu rozmowy }; odpowiedzSystemu = parserXML.parsuj("Login_Haslo.vxml"); Powiedz(odpowiedzSystemu.Prompt); rozpoznawanieMowy.rozpoznajSlowaZeSlownika();//start metody rozpoznawania jednego słowa ze słownika }
private void Kontroler() { dodajDane(); //przeskoczPoczatek(); while ((int)stanRozmowy < (int)StanyRozmowy.Pozegnanie) //rozmowa trwa az wejdziemy w stan zakonczenia jej { switch (stanRozmowy) { case StanyRozmowy.Powitanie: //witamy usera odpowiedzSystemu = parserXML.parsuj("Powitanie.vxml"); Powiedz(odpowiedzSystemu.Prompt); stanRozmowy = StanyRozmowy.ZapytanieOLogin_Haslo; break; #region logowanie case StanyRozmowy.ZapytanieOLogin_Haslo: //zapytanie o login PobierzWszystko(); //w tej metodzie nadpisujemy stan rozmowy jak zwroci ona wynik stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; //to bedzie nadpisane jak metoda (nie)rozpozna break; case StanyRozmowy.ZapytanieOLogin: //zapytanie o login PobierzNazweUsera(); //w tej metodzie nadpisujemy stan rozmowy jak zwroci ona wynik stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; //to bedzie nadpisane jak metoda (nie)rozpozna break; case StanyRozmowy.ZapytanieOHaslo: //pytamy o haslo PobierzHaslo(); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; #endregion #region bledny login haslo case StanyRozmowy.BlednyLogin: PobierzNazweUsera(); //w tej metodzie nadpisujemy stan rozmowy jak zwroci ona wynik stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; //to bedzie nadpisane jak metoda (nie)rozpozna break; case StanyRozmowy.BledneHaslo: PobierzHaslo(); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.NieRozpoznanyLogin: PobierzNazweUsera(); //w tej metodzie nadpisujemy stan rozmowy jak zwroci ona wynik stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; //to bedzie nadpisane jak metoda (nie)rozpozna break; case StanyRozmowy.NieRozpoznaneHaslo: PobierzHaslo(); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; #endregion case StanyRozmowy.WyborTrybu: Debug.WriteLine("STAN - WYBÓR TRYBU"); WyborTrybu((int)StanyRozmowy.WyborTrybu); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.HistoriaZamowien: OdczytHistorii((int)StanyRozmowy.HistoriaZamowien); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; #region zamawianie case StanyRozmowy.NoweZamowienie: ZamawiamKoszyk((int)StanyRozmowy.NoweZamowienie); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.WyborProcesora: KupnoProcesora((int)StanyRozmowy.WyborProcesora); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.WyborRAMu: KupnoPamieciRam((int)StanyRozmowy.WyborRAMu); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.WyborDysku: KupnoDyskuTwardego((int)StanyRozmowy.WyborDysku); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; case StanyRozmowy.LiczbaSztuk: WyborLiczbySztuk((int)StanyRozmowy.LiczbaSztuk); stanRozmowy = StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze; break; #endregion case StanyRozmowy.OczekiwanieNaRozpoznanieLubSynteze: //nic nie robimy jak czekamy Thread.Sleep(100); break; default: break; } } if (stanRozmowy == StanyRozmowy.Pozegnanie) { odpowiedzSystemu = parserXML.parsuj("Pozegnanie.vxml"); string nazwa = ""; try { nazwa = uzytkownik.imie; } catch { } Powiedz(odpowiedzSystemu.Prompt + nazwa); System.Windows.Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => System.Windows.Application.Current.Shutdown())); } else if (stanRozmowy == StanyRozmowy.BrakOdpowiedzi) { } else if (stanRozmowy == StanyRozmowy.PrzerwanoRozmowe) { } }