- Wymagane komponenty
- Schemat obwodu
- Podłączanie głośnika do Arduino
- Programowanie Arduino dla TTS (Text To Speech)
System zamiany tekstu na mowę lub TTS konwertuje zwykły tekst na mowę. Ta technologia umożliwia systemowi wypowiadanie tekstu ludzkim głosem. Istnieje wiele przykładów konwersji zamiany tekstu na mowę, takich jak ogłoszenia w transporcie publicznym, telefony do obsługi klienta, asystenci głosowi w smartfonach lub menu nawigacyjne dowolnego urządzenia. Możesz nawet znaleźć syntezator mowy w programie Microsoft Word, gdzie ustawisz wypowiadanie tekstu zapisanego w dokumencie.
Dziś w tym samouczku dowiemy się, jak utworzyć konwerter tekstu na mowę za pomocą Arduino. Wcześniej używaliśmy TTS z Raspberry pi do mówienia Budzik, a także konwertowaliśmy mowę na tekst w raspberry pi za pomocą klawiatury głosowej Google.
Pierwszym etapem syntezy jest obróbka wstępna lub normalizacji. Ten krok obejmuje konwersję symboli, liczb i skrótów na słowa, które mogą być odczytywane przez maszyny, takie jak „?” zostanie zamieniony na „znak zapytania”.
Drugi etap polega na przemianie znormalizowanego tekstu do fonemów lub fonetycznej transkrypcji. Fonemy to małe części wypowiadanych słów, czyli dźwięki, które tworzą zdania. Ten krok jest naprawdę niezbędny, aby maszyna mogła mówić tak jak ludzie.
Ostatnim krokiem jest synteza fonemów w mowie głosem. Ten krok można osiągnąć różnymi metodami, takimi jak nagrywanie ludzkiego głosu dla różnych słów / fraz lub generowanie podstawowych częstotliwości dźwięku i układanie ich w fonemy lub kopiowanie mechanizmu mówienia.
Wymagane komponenty
- Płytka Arduino
- Mówca
- Obwód wzmacniacza
- Zasilacz regulowany
- Podłączanie przewodów
Schemat obwodu
Tutaj, w tym konwerterze tekstu na mowę, użyliśmy obwodu wzmacniacza, aby zmniejszyć szum i uzyskać czysty dźwięk. Obwód wzmacniający wykonany jest za pomocą cyfrowego LM386. Schemat obwodu pokazano poniżej:
Potencjometr 100K służy do regulacji dźwięku. Dostosuj go, aby uzyskać czysty dźwięk. Jeśli masz jakiekolwiek wątpliwości dotyczące tego obwodu, sprawdź obwód wzmacniacza audio oparty na LM386. Jeśli nie masz dokładnej wartości rezystorów i kondensatorów, użyj tych o zbliżonej wartości.
Podłączanie głośnika do Arduino
Połączenia są bardzo łatwe po wykonaniu obwodu wzmacniacza.
Podłącz zasilanie do obwodu wzmacniacza i podłącz cyfrowy pin 3 swojego Arduino do rezystora 10K i podłącz masę Arduino do masy obwodu. Teraz podłącz głośnik, podłączając jego ujemny zacisk do masy, a dodatni zacisk do kondensatora 220 µF i podłącz zasilanie.
Programowanie Arduino dla TTS (Text To Speech)
Program dla tego syntezatora TTS opartego na Arduino jest również bardzo łatwy, ponieważ biblioteka jest do tego dostępna. Ta biblioteka nazywa się Talkie i może zostać dodana przez menedżera biblioteki. Aby dodać bibliotekę, przejdź do Sketch-> Include Library-> Mange Libraries .
Teraz na ekranie pojawi się Menedżer bibliotek. W pasku wyszukiwania wpisz Talkie i kliknij przycisk instalacji. Biblioteka zostanie zainstalowana.
Ta biblioteka jest bardzo przydatna i zawiera ponad 1000 słów i poleceń. Zawiera kilka przykładów, możesz wypróbować je wszystkie, ale tutaj używamy prostego kodu, aby wyjaśnić działanie.
Możesz także wypróbować inne polecenia podane w bibliotece. Aby uzyskać te polecenia, przejdź do Documents \ Arduino \ libraries \ Talkie \ src, a następnie otwórz pliki nagłówkowe i uzyskaj kilka poleceń, których można użyć do różnych alertów. Istnieje wiele innych bibliotek TTS, takich jak biblioteka jscrane TTS, biblioteka Google TTS itp. Możesz je również wypróbować.
Zacznijmy więc kodować. Najpierw dołącz pliki nagłówkowe. Talkie.h służy do inicjalizacji tej biblioteki i ustawiania cyfrowego styku 3 Arduino jako styku wyjściowego. Vocab_US_Large.h służy do korzystania z powiadomień jesteśmy używania i Vocab_Special.h służy do używania pauzy używamy.
#include „Talkie.h” #include „Vocab_US_Large.h” #include „Vocab_Special.h”
Teraz zdefiniuj wartość obiektu, aby użyć poleceń:
Głos Talkie;
Tutaj ta sama wiadomość zostanie powtórzona w głośniku, więc pozostaw funkcję konfiguracji pustą i wprowadź polecenia w funkcję pętli. Pierwsza komenda voice.say (spPAUSE2) polega na wykonaniu krótkiej przerwy podczas powtarzania komunikatu ostrzegawczego. Kolejne polecenia to tylko proste słowa, które oznaczają: NIEBEZPIECZEŃSTWO NIEBEZPIECZEŃSTWO BURZA NA PÓŁNOCY.
void setup () { } void loop () { voice.say (spPAUSE2); voice.say (sp2_DANGER); voice.say (sp2_DANGER); voice.say (sp3_STORM); voice.say (sp3_IN); voice.say (sp3_THE); voice.say (sp3_NORTH); }
Na koniec wgraj kod do Arduino i podłącz do niego zasilanie. Gdy tylko włączysz obwód, zaczniesz słyszeć alerty! Jeśli nie uzyskasz wyraźnego dźwięku, spróbuj wyregulować pokrętło potencjometru lub sprawdź, czy Arduino otrzymuje odpowiednie zasilanie i upewnij się, że GND Arduino jest podłączone do masy obwodu.
Sprawdź cały kod z demonstracyjnym filmem wideo podanym poniżej.