Spisu treści:
- Krok 1: Jak skonfigurować środowisko?
- Krok 2: Dlaczego rośnie popyt na Arduino?
- Krok 3: Zacznijmy !!!!
- Krok 4: Wymagane komponenty
- Krok 5: Jak to właściwie działa?
- Krok 6: Okablowanie komponentów
- Krok 7: Dostarczenie kodu do płyty Arduino
- Krok 8: Program/Szkic
- Krok 9: A co z napisanymi kodami?
- Krok 10: Funkcja pętli
- Krok 11: Jak zaimportować obiekty rozwiązania BitVoicer Server?
- Krok 12: Wniosek
Wideo: Rozpoznawanie mowy: 12 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Cześć wszystkim………
To moja druga instrukcja, którą publikuję
Więc witaj wszystkich…
W tym Instruktażu nauczę Cię, jak zbudować rozpoznawanie głosu za pomocą płyty arduino.
Myślę więc, że masz już wcześniej doświadczenie z płytkami arduino. Jeśli nie, to wcale nie jest to duży problem. Ale polecam się do tego przyzwyczaić, ponieważ jest bardzo ciekawie się nim bawić i tworzyć fajne projekty z niego zgodnie z twoją kreatywnością i wiedzą na ten temat.
Tak więc dla osób, które nie mają wcześniejszego doświadczenia w korzystaniu z arduino:
Arduino to sprzęt komputerowy o otwartym kodzie źródłowym, który jest produkowany przez firmę, która ma dużą społeczność projektantów i producentów. Można go traktować jak mały komputer, który może być używany do sterowania innymi obwodami elektronicznymi
Arduino jest zaprogramowane w stworzonym przez siebie środowisku, które można łatwo pobrać z ich strony internetowej
Krok 1: Jak skonfigurować środowisko?
Wystarczy wyszukać w google "pobierz arduino"
Kliknij "Arduino - oprogramowanie"
Będziesz mógł zobaczyć "Pobierz Arduino IDE"
Wybierz w zależności od systemu operacyjnego
Pobierz i zainstaluj
Czyli pomyślnie zainstalowałeś oprogramowanie i możesz napisać swój kod dla arduino i za pomocą kabla możesz podłączyć płytkę arduino do komputera i wstawić kod.
Krok 2: Dlaczego rośnie popyt na Arduino?
Niedrogi
Płytki Arduino są niedrogie w porównaniu z innymi platformami mikrokontrolerów. Będzie kosztować około 50 dolarów.
Wieloplatformowy
Oprogramowanie dla Arduino działa w systemach operacyjnych Windows, Macintosh OS i Linux. Jeśli pomyślimy o innych układach z mikrokontrolerem, będzie on działał tylko w Windowsie lub innymi słowy ograniczony tylko do okien.
Oprogramowanie typu open source i rozszerzalne
Oprogramowanie jest open source, dzięki czemu ludzie zaczęli się nad nim dogłębnie studiować i włączać biblioteki (zawierające zestaw funkcji do jego obsługi) innych języków programowania.
Proste i łatwe środowisko programowania
Korzystanie z Arduino IDE (oprogramowanie, o którym już mówiliśmy…) jest łatwe w użyciu dla osób, w tym początkujących, ponieważ duża ilość zasobów jest dostarczana przez samo Arduino, które jest dostępne w Internecie za darmo. o tym.
Open source i rozszerzalny sprzęt
Plany płytek Arduino są publikowane na licencji Creative Commons, dzięki czemu osoby mające doświadczenie w projektowaniu obwodów mogą tworzyć własną wersję modułu, mają też prawo do rozbudowy technologii i mogą ulepszać ją dodając do niej funkcje.
Krok 3: Zacznijmy !!!!
Powiedziałem już, że ten projekt skupia się głównie na rozpoznawaniu głosu za pomocą Arduino i umożliwieniu mu wykonywania niektórych zadań.
Mówiąc wyraźniej ……
Odbiera sygnały dźwiękowe dostarczane przez użytkownika, które można wykryć poprzez mruganie diody LED, po czym konwertowane są na syntezowaną mowę.
Krok 4: Wymagane komponenty
Główne komponenty wymagane do tego projektu to:
Arduino Due x 1
Mikrofon elektretowy Spark Fun x 1
Spark Fun Mono Amp Breakout x 1
Głośnik: 0,25 W, 8 omów x 1
Deska do krojenia chleba x 1
Dioda LED 5 mm: czerwona x 3
Rezystor 330 omów x 3
Przewody połączeniowe x 1
Lutownica x 1
Serwer BitVoicer
Jest to serwer rozpoznawania i syntezy mowy do automatyzacji mowy.
Krok 5: Jak to właściwie działa?
1. Wykrywane są fale dźwiękowe, a następnie przechwytują te fale i są wzmacniane przez płytkę Sparkfun Electret Breakout.
2. Wzmocniony sygnał uzyskany z powyższego procesu zostanie zdigitalizowany i buforowany/przechowywany na płytce Arduino za pomocą znajdującego się w niej przetwornika analogowo-cyfrowego (ADC).
3. Próbki audio zostaną dostarczone do BitVoicer Server przy użyciu obecnego portu szeregowego Arduino.
4. BitVoicer Server przetworzy strumień audio, a następnie rozpozna zawartą w nim mowę.
5. Rozpoznana mowa zostanie zmapowana do poleceń, które zostały już wcześniej przez siebie zdefiniowane, następnie zostanie odesłana z powrotem do Arduino. Jeśli jedno z poleceń polega na syntezie mowy, BitVoicer Server przygotuje strumień audio i wyśle go do Arduino.
6. Arduino zidentyfikuje dostarczone polecenia i wykona odpowiednią akcję. Jeśli zostanie odebrany strumień audio, zostanie on umieszczony w kolejce do klasy głośników BVS i odtwarzany za pomocą DUE DAC i DMA.
7. Wzmacniacz SparkFun Mono Audio Amplifier wzmocni sygnał DAC, dzięki czemu będzie mógł napędzać głośnik 8 Ohm i będzie słyszany przez niego.
Krok 6: Okablowanie komponentów
Pierwszym krokiem jest podłączenie różnych komponentów w płytce stykowej, a także z płytą arduino, jak pokazano na rysunku
Pamiętaj, że użyta tutaj płytka arduino to DUE, istnieją różne inne modele, które zostały wyprodukowane przez Arduino, z których każdy działa na różnych poziomach napięcia
Większość płyt Arduino pracuje na 5 V, ale DUE działa na 3,3 V
DUE używa już analogowego odniesienia 3,3 V, więc nie potrzebujesz zworki do pinu AREF
Och, przepraszam, zapomniałem powiedzieć, że pin AREF to „ANALOGOWY PIN REFERENCYJNY”, który jest obecny na płycie arduino, jak pokazano na następnym rysunku (jest to arduino UNO, ale jest podobny na podobnej stronie w przypadku DUE)
Pin AREF na DUE jest połączony z mikrokontrolerem przez mostek rezystorowy
Aby użyć pinu AREF, rezystor R1 musi zostać odlutowany od PCB [Printed Circuit Board]
Krok 7: Dostarczenie kodu do płyty Arduino
Musimy więc wgrać kod na płytkę Arduino, aby mógł działać w zależności od instrukcji zawartych w kodzie.
Bardzo łatwo to zrobić. Szczegółowo wyjaśnię każdemu z nich, czym się zajmują i jak działają.
Jak zainstalować bibliotekę?
Więc wcześniej musimy wiedzieć, jak zainstalować biblioteki BitVoicer Server w Arduino IDE,.to w oprogramowaniu arduino.
Więc w tym celu otwórz Arduino IDE
Na górnym panelu kliknij "Szkic"
Następnie kliknij „Dołącz bibliotekę”
Następnie kliknij „Zarządzaj biblioteką”
Następnie otworzy się menedżer bibliotek i zobaczymy listę bibliotek gotowych do instalacji lub już zainstalowanych
Wyszukaj bibliotekę do zainstalowania, a następnie wybierz numer wersji
Tutaj instalujemy biblioteki BitVoicer Server, które są niezbędne do tego projektu
Jak zaimportować bibliotekę.zip?
Biblioteki mogą być również dystrybuowane jako plik lub folder ZIP
Nazwa folderu to nazwa biblioteki
Wewnątrz folderu będzie plik.cpp, plik.h i często plik words.txt, folder przykładów i inne pliki wymagane przez bibliotekę
Od wersji 1.0.5 Arduino IDE można w nim zainstalować biblioteki innych firm
Nie rozpakuj pobranej biblioteki, pozostaw ją bez zmian
W tym celu przejdź do szkicu> Dołącz bibliotekę> Dodaj bibliotekę.zip
Wybierz lokalizację pliku.zip i otwórz go.
Wróć do menu Szkic > Importuj bibliotekę.
Jeśli jest poprawnie zaimportowany, ta biblioteka będzie widoczna na dole menu rozwijanego podczas nawigacji.
Krok 8: Program/Szkic
Jest to program, który należy wgrać do Arduino.
Można to zrobić po prostu podłączając płytkę Arduino do komputera i wgrywając ją na płytkę.
Krok 9: A co z napisanymi kodami?
Przyjrzyjmy się teraz, co tak naprawdę robi każda z funkcji zapisanych w kodzie ………..
Odniesienia do bibliotek i deklaracje zmiennych
Zanim o tym porozmawiamy, musimy znać i rozumieć kilka podstawowych terminologii. Obejmują one:
-
BVSP
Jest to biblioteka, która daje nam prawie wszystkie zasoby potrzebne do wymiany informacji z serwerem BitVoicer
Istnieje protokół znany jako BitVoicer Server Protocol, który jest implementowany przez klasę BVSP. Jest to wymagane do interakcji z serwerem
-
BVSMic
Jest to biblioteka, która implementuje wszystkie rzeczy wymagane do nagrywania dźwięku za pomocą konwertera analogowo-cyfrowego (ADC) Arduino
Ten dźwięk jest przechowywany w wewnętrznym buforze klasy i można go pobrać, a następnie wysłać do silników rozpoznawania mowy, które są dostępne na serwerze BitVoicer
-
BVSSpeaker
Jest to biblioteka zawierająca wszystkie niezbędne zasoby wymagane do odtwarzania strumieni audio wysyłanych z serwera BitVoicer
W tym celu płyta Arduino musi mieć wbudowany przetwornik cyfrowo-analogowy (DAC)
Arduino DUE to jedyna płytka Arduino, która posiada zintegrowany przetwornik cyfrowo-analogowy
Biblioteki BVSP, BVSMic, BVSSpeaker i DAC, odniesienia do nich są zapisane w pierwszych czterech wierszach, które tworzą początek programu
Po zainstalowaniu BitVoicer Server możesz znaleźć BitSophia, który zapewnia wszystkie te cztery biblioteki
Gdy użytkownik doda odwołanie do biblioteki BVSSpeaker, automatycznie wywołana zostanie wspomniana wcześniej biblioteka DAC
Klasa BVSP służy do komunikacji z BitVoicer Server
Klasa BVSMic służy do przechwytywania i przechowywania dźwięku
Klasa BVSSpeaker służy do odtwarzania dźwięku za pomocą Arduino DUE DAC
2. funkcja konfiguracji
Funkcja konfiguracji służy do wykonywania określonych czynności, takich jak:
Aby ustawić tryby pinów i ich stany początkowe
Aby zainicjować komunikację szeregową
Aby zainicjować klasę BVSP
Aby zainicjować klasę BVSMic
Aby zainicjować klasę BVSSpeaker
Ustawia również „obsługę zdarzeń” (wskaźniki funkcji) dla zdarzeń frameReceived, modeChanged i streamReceived klasy BVSP
Krok 10: Funkcja pętli
Wykonuje pięć głównych operacji:
1. funkcja keepAlive()
Ta funkcja polega na zapytaniu serwera o informacje o stanie.
2. funkcja odbioru()
Ta funkcja ma na celu sprawdzenie, czy serwer wysłał jakieś dane, czy nie. Jeśli serwer wysłał jakiekolwiek dane, przetworzy je.
3. Funkcje isSREAvailable(), startRecording(), stopRecording() i sendStream()
Funkcje te służą do kontrolowania różnych ustawień nagrywania dźwięku, a po uzyskaniu dźwięku wyśle ten dźwięk do serwera BitVoicer.
4. Funkcja odtwarzania ()
Ta funkcja służy do odtwarzania dźwięku, który został umieszczony w kolejce w klasie BVSSpeaker.
5. odtwórzDalejLEDNote()
Ta funkcja służy do kontrolowania sposobu migania diody LED.
6. Funkcja BVSP_frameReceived
Ta funkcja jest wywoływana za każdym razem, gdy funkcja receive() zaczyna identyfikować, że odebrano jedną kompletną ramkę. Tutaj uruchamiamy polecenia uzyskane z serwera BitVoicer. Polecenia sterujące miganiem diod LED mają 2 bajty. W tym pierwszym bajcie wskazuje pin, a drugi bajt wskazuje wartość pinu. Tutaj używamy funkcji analogWrite(), aby ustawić odpowiednią wartość dla pinu. W tym czasie musimy również sprawdzić, czy otrzymano polecenie playLEDNotes, które jest typu Byte. Jeśli został odebrany, ustawiam playLEDNotes na true i będzie monitorować i oznaczać aktualny czas. Ten czas zostanie wykorzystany przez funkcję playNextLEDNote do synchronizacji diod LED z utworem.
7. BVSP_modeZmieniona funkcja
Ta funkcja jest wywoływana za każdym razem, gdy funkcja receive() identyfikuje zmianę trybu w kierunku wychodzącym (Server Arduino). BitVoicer Server może wysyłać dane lub dźwięk w ramkach do Arduino. Zanim komunikacja przejdzie z jednego trybu do drugiego, BitVoicer Server wysyła sygnał. Klasa BVSP identyfikuje ten sygnał i zgłasza lub flaguje zdarzenie modeChanged. W funkcji BVSP_modeChanged, jeśli użytkownik wykryje, że komunikacja przechodzi z trybu strumieniowego do trybu ramkowego, będzie wiedział, że dźwięk się zakończył, aby użytkownik mógł powiedzieć klasie BVSSpeaker, aby przestała odtwarzać dźwięk.
8. Funkcja BVSP_streamReceived
Ta funkcja jest wywoływana za każdym razem, gdy funkcja receive() identyfikuje, że próbki audio zostały odebrane. Po prostu pobiera dźwięk i umieszcza go w kolejce do klasy BVSSpeaker, aby funkcja play() mogła je odtworzyć.
9. Funkcja playNextLEDNote
Ta funkcja działa tylko wtedy, gdy funkcja BVSP_frameReceived identyfikuje polecenie playLEDNotes. Kontroluje i synchronizuje diody LED z dźwiękiem wysyłanym z BitVoicer Server. Aby zsynchronizować diody LED z dźwiękiem i poznać prawidłową synchronizację, można użyć bezpłatnego oprogramowania Sonic Visualizer. Pozwala nam oglądać fale dźwiękowe, dzięki czemu osoba może stwierdzić, kiedy został naciśnięty klawisz fortepianu.
Krok 11: Jak zaimportować obiekty rozwiązania BitVoicer Server?
Skonfigurowaliśmy BitVoicer Server do pracy z Arduino.
Istnieją cztery główne obiekty rozwiązania dla serwera BitVoicer: Lokalizacje, Urządzenia, BinaryData i Schematy głosowe.
Przyjrzyjmy się tym szczegółowo:
Lokalizacje
Reprezentuje fizyczną lokalizację, w której instalowane jest urządzenie.
Możemy stworzyć lokalizację o nazwie Dom.
Urządzenia
Są uważani za klientów BitVoicer Server.
Podobnie jak przy tworzeniu lokalizacji, możemy stworzyć urządzenie Mixed, dla ułatwienia nazwijmy je ArduinoDUE.
Czasami zdarzają się przepełnienia bufora, więc aby to wyeliminować musiałem ograniczyć Data Rate w ustawieniach komunikacji do 8000 próbek na sekundę.
BinaryData to rodzaj polecenia, które BitVoicer Server może wysłać do urządzeń klienckich. W rzeczywistości są to tablice bajtów, które można łączyć z poleceniami.
Gdy BitVoicer Server rozpozna mowę związaną z tym poleceniem, wysyła tablicę bajtów do urządzenia docelowego.
Z tego powodu utworzyłem jeden obiekt BinaryData dla każdej wartości pinu i nazwałem je ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff i tak dalej.
Musiałem więc stworzyć 18 obiektów BinaryData, więc proponuję pobrać i zaimportować obiekty z pliku VoiceSchema.sof, który znajduje się poniżej.
Czym więc jest schemat głosu?
Schematy głosowe to miejsce, w którym wszystko się łączy. ich główną rolą jest określenie, w jaki sposób zdania powinny być rozpoznawane i jakie polecenia muszą być wykonane.
Dla każdego zdania możesz zdefiniować tyle poleceń, ile potrzebujesz i kolejność ich wykonywania.
Możesz także zdefiniować opóźnienia między każdym z dostarczonych poleceń.
BitVoicer Server obsługuje tylko 8-bitowy dźwięk mono PCM (8000 próbek na sekundę), więc będzie trzeba przekonwertować plik audio do tego formatu, obecnie jest tak wiele opłat za konwersję online i polecam https://audio.online -convert.com/convert-to-wav.
Możesz zaimportować (Importowanie obiektów rozwiązania) wszystkie obiekty rozwiązania, których użyłem w tym projekcie z poniższych plików.
Jedna z nich zawiera urządzenie DUE, a druga zawiera schemat głosowy i jego polecenia.
Krok 12: Wniosek
Proszę bardzo !!!
Zrobiłeś niesamowity projekt i możesz z nim porozmawiać
Więc zacznij mówić………………
Możesz mrugać diodami LED i jednocześnie możesz powiedzieć, że śpiewa piosenkę, jeśli zajdzie taka potrzeba, jej kod został już dostarczony
Więc ukończyłem mój drugi instruktaż !!!!!!!!
Tak……
Myślę, że wszyscy to zrozumieli…
Jeśli ktoś ma jakieś pytania, proszę mnie zapytać
Następnym razem wymyślę doskonały Instruktaż…
Do widzenia…
Do zobaczenia wkrótce……………
Zalecana:
Sztuczna inteligencja i rozpoznawanie obrazu za pomocą HuskyLens: 6 kroków (ze zdjęciami)
Sztuczna inteligencja i rozpoznawanie obrazów za pomocą HuskyLens: Hej, co słychać, chłopaki! Akarsh tutaj z CETech. W tym projekcie przyjrzymy się HuskyLens firmy DFRobot. Jest to moduł kamery zasilany sztuczną inteligencją, który jest w stanie wykonać kilka operacji sztucznej inteligencji, takich jak rozpoznawanie twarzy
Rozpoznawanie mowy za pomocą Arduino (Bluetooth + LCD + Android): 6 kroków
Rozpoznawanie mowy z Arduino (Bluetooth + LCD + Android): W tym projekcie zamierzamy wykonać rozpoznawanie mowy za pomocą Arduino, modułu Bluetooth (HC-05) i LCD. zbudujmy własne urządzenie do rozpoznawania mowy
Rozpoznawanie mowy za pomocą Google Speech API i Pythona: 4 kroki
Rozpoznawanie mowy przy użyciu Google Speech API i Python: Speech RecognitionRozpoznawanie mowy jest częścią przetwarzania języka naturalnego, które jest poddziedziną sztucznej inteligencji. Mówiąc prościej, rozpoznawanie mowy to zdolność oprogramowania komputerowego do identyfikowania słów i fraz w języku mówionym
Retro synteza mowy. Część: 12 IoT, automatyka domowa: 12 kroków (ze zdjęciami)
Retro synteza mowy. Część: 12 IoT, automatyka domowa: Ten artykuł jest dwunastym z serii instrukcji dotyczących automatyki domowej, dokumentujących, jak stworzyć i zintegrować urządzenie do retrospekcji mowy IoT z istniejącym systemem automatyki domowej, w tym wszystkie niezbędne funkcje oprogramowania, aby umożliwić t
Jak korzystać z narzędzia mowy w systemie Mac OS X 10.5 Leopard: 3 kroki
Jak korzystać z narzędzia mowy w systemie Mac OS X 10.5 Leopard: Jestem wielkim fanem Harry'ego Pottera i zawsze chciałem móc rzucać zaklęcia. Czy nie byłoby fajnie móc kogoś znokautować jednym słowem? A co powiesz na możliwość otwarcia drzwi bez klucza? Potem natknąłem się na tę instrukcję