• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mini przeglądarkowy asystent - rozpoznawanie mowy w Javascript

0 głosów
1,004 wizyt
pytanie zadane 7 czerwca 2019 w Nasze projekty przez Dawid_Predecki Obywatel (1,610 p.)

Cześć wszystkim!

Napisałem aplikację, która sposobem działania przypomina Asystenta Google lub Cortanę. Nie jest to oczywiście pełnoprawny asystent, ale sprawuje się nieźle. Chciałbym poprosić Was o przetestowanie i wyrażenie opinii. Korzystając z okazji zapytam czy ma ktoś może jakiś pomysł czym mógłbym zastąpić te else ify? Jeśli chciałbym dodać więcej komend to zrobiłby się niezły bałagan. Z góry dziękuję za każdą opinię i poradę! :)

LINK: Javascript Speech Recognition App

GitHub (tutaj w README macie wszystkie dostępne obecnie komendy, nie ma tego dużo ale na początek wystarczy): Rezpozytorium na GitHub'ie

2 odpowiedzi

+2 głosów
odpowiedź 7 czerwca 2019 przez Milesq Nałogowiec (32,020 p.)
if(message.includes('Otwórz twitter') || message.includes('otwórz twitter') || message.includes('Otwórz Twitter') || message.includes('otwórz Twitter'))

zamiast czegoś takiego użyć wyrażeń regularnych:

/otwórz twitter/i.test('Otwórz twitter')

 

komentarz 7 czerwca 2019 przez Dawid_Predecki Obywatel (1,610 p.)
edycja 7 czerwca 2019 przez Dawid_Predecki
Tylko czy tutaj będę mógł wpisać kilka wariantów komendy? Z różnymi słowami i wielkością liter?
komentarz 7 czerwca 2019 przez Milesq Nałogowiec (32,020 p.)

? Nie rozumiem, wyrażenia regularne służą do sprawdzania czy dany ciąg pasuje do tego co chesz uzyskać, przy czym tu jest pokazane bardzo podstawowe użycie, a na końcu jest dodana flaga 'i' która sprawia że nie jest brana pod uwagę wielkość liter. Ten sam efekt możesz uzyskać tak: 


if(message.toLowerCase() === 'otwórz twitter')

ale dzięki Regexpom można robić bardziej skomplikowane rzeczy w łatwiejszy sposób

komentarz 7 czerwca 2019 przez Dawid_Predecki Obywatel (1,610 p.)

Wybacz, widocznie źle ująłem o co mi chodzi. Przedstawię przykład: jeśli chcesz usłyszeć żart to powiesz opowiedz mi żart lub opowiedz mi dowcip​​​​​​, albo jeszcze inaczej np. rozśmiesz mnie​​​​​​. Jak prostszym sposobem można poradzić sobie z przydzieleniem kilku komend do jednego zadania? Czyli np. obojętnie którą z powyższych instrukcji wydasz, zostanie wylosowany żart. 

komentarz 7 czerwca 2019 przez Milesq Nałogowiec (32,020 p.)
Więc jeśli chcesz zrobić to w sposób standardowy, to możnaby zrobić tablicę ze zwrotami oznaczajacymi żart, i jeśli zwrot jest w tablicy - obsługujesz to. No i jeśli chciałbyś zwiększyć skuteczność rozpoznawania, to możesz podzielić sobie to co dostałeś od użytkownika, na pojedyńcze słowa i sprawdzić ile z nich pasuje do "słowniczka" czyli jakiejś struktury danych którą założysz dla żartu. Aczkolwiek lepiej zastosować podejście z sieciami neuronowymi i pobawić się ai i tensorflow'em
komentarz 7 czerwca 2019 przez Dawid_Predecki Obywatel (1,610 p.)
Ok, dzięki wielkie! Na razie przed twoją odpowiedzią wpadłem na pomysł z tablicami, ale bardzo chętnie wypróbuję również sieci neuronowe oraz tensorflow'a.
komentarz 7 czerwca 2019 przez Tomek Sochacki Ekspert (227,490 p.)
no ja bym tak odważnie nie polecał regexp w tego typu projektach... wydaje mi się, że jednak takie zagadnienia wymagają maksimum optymalizacji, a regexp do najszybszych nie należą... analiza real time to trudny temat, w firmach pracują nad tymi zagadnieniami całe zespoły także nie wiem czy to dobry temat na apkę dla jednego developera... ale nie zniechęcam, może się uda :)
+1 głos
odpowiedź 7 czerwca 2019 przez Milesq Nałogowiec (32,020 p.)

Korzystając z okazji zapytam czy ma ktoś może jakiś pomysł czym mógłbym zastąpić te else ify

Uczenie maszynowe, chwilę będziesz musiał poświęcić na teorię ale jest to bardzo ciekawa dziedzina. Na początek najlepiej posłuchaj podcastów o ML na devtalk

https://devstyle.pl/2017/07/26/devtalk-trio-s01e10-sztuczna-inteligencja/

https://devstyle.pl/2017/10/30/devtalk64-o-machine-learning-z-vladimirem-alekseichenko/

https://devstyle.pl/2019/03/04/devtalk-89-o-algorytmach-genetycznych-z-jakubem-hossa/

Podobne pytania

0 głosów
2 odpowiedzi 2,175 wizyt
pytanie zadane 1 maja 2017 w C i C++ przez Michał Gibas Pasjonat (19,630 p.)
0 głosów
3 odpowiedzi 400 wizyt
pytanie zadane 26 marca 2017 w Nasze projekty przez Radekol Bywalec (2,880 p.)
0 głosów
2 odpowiedzi 1,472 wizyt
pytanie zadane 17 lipca 2020 w Python przez Eliro Stary wyjadacz (12,160 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...