• 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

Object Storage Arubacloud
0 głosów
877 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,510 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 1,944 wizyt
pytanie zadane 1 maja 2017 w C i C++ przez Michał Gibas Pasjonat (19,610 p.)
0 głosów
3 odpowiedzi 308 wizyt
pytanie zadane 26 marca 2017 w Nasze projekty przez Radekol Bywalec (2,880 p.)
0 głosów
2 odpowiedzi 1,272 wizyt
pytanie zadane 17 lipca 2020 w Python przez Eliro Stary wyjadacz (12,160 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...