Skocz do zawartości

Sterowanie robota poprzez proste komendy głosowe


kknd99

Pomocna odpowiedź

Witam! To mój pierwszy post na tym forum , więc proszę o wyrozumiałość. Zacząłem interesować się robotyką od pewnego czasu. Chciałem zaprojektować swojego pierwszego robota , który miałby poruszać się za pomocą prostych komend głosowych: lewo,prawo,do przodu,do tyłu ewentualnie szybciej/wolniej. Konkretnie chodzi mi o to jak rozwiązać problem rozpoznania mowy. Jakiego języka użyć? Miałem do czynienia z C++ ale czytałem , że BASCOM jest przyjazny dla początkujących programowanie robotów.Być może ktoś ma dostęp do takiego algorytmu albo do takiego , którego będzie można zmodyfikować do tego celu?? Będę wdzięczny za jakiekolwiek informacje , linki itp.

Link do komentarza
Share on other sites

Pewnie to co teraz powiem to będzie dla Ciebie czarna magia ale

takie podstawowe rozkazy prawo, lewo, tył, przód, ew. szybciej, wolniej

możesz rozpoznawać używając filtrów rezonansowych przy czym im więcej

komend tym większe ryzyko pomyłek. Jeżeli będziesz wypowiadał

daną komendę akcentując jakąś głoskę dla każdej komendy

inną to możesz tak dobrać częstotliwość filtru by móc daną komendę poprawnie

rozpoznać.

To jest chyba najprostszy sposób jak zrobisz kilka takich filtrów to będziesz mógł

rozpoznawać kilka komend i w zależności od tego jaka komenda zostanie

rozpoznana robot wykona odpowiednią czynność czym pokieruje np. mikrokontroler.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Jeżeli chcesz coś takiego zrobić to proponuje zacząć od samego rozpoznania czy dźwięk (np. klaśnięcie) istnieje lub nie. Możesz użyć kilku mikrofonów i lokalizować źródło dźwięku.

W ten sposób poznasz podstawowe zagadnienia i problemy związane z analizą dźwięku.

Odradzam robienie na sam początek tak dużego projektu, myślę że na forum jest niewiele osób, które podjęły by się takiego wyzwania. Ja jak na razie mam dużo za małą wiedzę żeby coś takiego zrobić.

Link do komentarza
Share on other sites

Jakie masz doświadczenie w robotyce? Sądząc po tym iż nie wiesz jakiego języka użyc nie duże. Ale mogę się mylić. Może zaczniesz od czegoś prościejszego.

Apropo tematu to wątpię aby w bascomie można było zrobic sterowanie poprzez głosowe komendy, ale nigdy nie używałem bascoma więc nie wiem.

Link do komentarza
Share on other sites

Ja bym to zrobił tak, że sygnał z mikrofonu przetwarzałbym do postaci cyfrowej za pomocą przetwornika ADC i porównywał do zapisanych w pamięci wzorców. No ale żeby coś takiego zrobić trzeba mieć całkiem sporą wiedzę o cyfrowym przetwarzaniu sygnałów i o tym jaki charakter mają wydawane przez człowieka dźwięki (wymawiane głoski).

Oczywiście da się to zrobić w Bascomie, ale najprościej napisać to w C albo Asemblerze. W sumie Asembler wydaje się do tego typu zadań najlepszy. No i polecam jakiś procesor sygnałowy DSP np. Shark ale na zwykłym AVRku też by się to udało zrobić jeśli jesteś dobrym programistą.

Takie porównywanie wymawianych wyrazów z zapisanym wzorem jest zaimplementowane w telefonach nokii np 6610 do głosowego wybierania numerów. Możnaby napisać aplikacje na telefon która wysyłałaby komendy na interfejs szeregowy (zaimplementowany w nokiach) i odbierać te komendy za pomocą AVRka który z kolei sterowałby ruchami robota.

Link do komentarza
Share on other sites

Jak to zrobić... No można próbować sposobami które podał nes86, albo Elektryk0, ale szczerze mówiąc, na pierwszego robota nie ma takiej potrzeby, co więcej próba uruchomienia takiego sterowania może być baardzo denerwująca.

W wielu telefonach jest takie rozpoznawanie głosu na podstawie wypowiedzianego wcześniej wyrazu. Skuteczność... hm... prościej wybrać numer ręcznie. Również w "bardziej zaawansowanym" rozpoznawaniu mowy tj. w I-droidzie (chyba wszyscy wiedzą o co chodzi) robot rozpoznawał słowo średnio po 10 próbach.

Nie polecam sterowania głosem początkującym.

Link do komentarza
Share on other sites

Skoro mówimy o metodach wykonania takiego sterowania, to zapomnieliście wspomnieć o najprostszej - sterowanie przez port LPT lub COM, wykorzystując program do rozpoznawania mowy - IBM Via Voice na przykład. Jedyny minus to przewód łączący robota z komputerem, ale nie wyobrażam sobie, żeby nawet bardzo zapalony początkujący rozwiązał ten problem tak jak to opisaliście wcześniej... Choć oczywiście mogę się mylić 🙂

pozdrawiam

Link do komentarza
Share on other sites

W mniejszych robotach myślę że niema sensu stosowania głosu do kierowania robotem. Lepszy efekt(i łatwiejsze wykonanie) da już sterowanie pilotem na podczerwień. W rozpoznawanie mowy można się zabawić już w większych robotach gdzie załaduje się laptopa na pokład i program rozpoznawania mowy.Bo w porównaniu do tych z noki to one działają lepiej choć mają jeden mankament. Pracują prawidłowo tylko z jednym głosem (jedna osobą).

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.