Serwisy partnerskie:
Close icon
Serwisy partnerskie

Terminal ChatGPT, który mówi z wykorzystaniem Google TTS

Article Image
Elmax
Ten projekt przenosi terminal ChatGPT opisany w EFY w listopadzie 2023 r. na wyższy poziom. Teraz mówi on z jakością VoiceGPT. W nowym projekcie funkcja wypowiadania pytań i odpowiedzi jest realizowana z użyciem modułu dźwiękowego MAX98357A. Siła i jakość dźwięku z głośnika jest imponująca, jest on wolny od zniekształceń, trzeba to usłyszeć, aby uwierzyć.

Wszystkie komponenty, w tym wyświetlacz, należy połączyć zgodnie ze schematem. W miejsce regulatora napięcia typu 7805 można użyć zasilacza o napięciu wyjściowym równym 5 V. 

Należy zwrócić uwagę, że pin GAIN wzmacniacza MAX98357A jest podłączony do masy w celu zwiększenia mocy wyjściowej. Usunięcie tego połączenia nieznacznie zmniejszy moc wyjściową. 

Klawiatura PS2, podobnie jak klawiatura USB, potrzebuje tylko dwóch przewodów sygnałowych do połączenia z mikrokontrolerem, który w tym przypadku jest urządzeniem typu data-in. Dlatego można wykorzystać piny G34 i G35 płytki ESP32, które stanowią wejścia cyfrowe. Tych pinów nie należy używać do sterowania ekranem TFT, diodami LED, przekaźnikami itp. jednak doskonale nadają się do współpracy z klawiaturą. Oczywiście klawiaturę PS2 można podłączyć do dowolnych innych pinów GPIO. 

Prowadzenie rozmów przez ChatGPT

Prowadzenie rozmów przez ChatGPT jest proste dzięki przełomowemu rozwiązaniu Google TTS (text-to-speech) i wykorzystaniu płytki ESP32. We wcześniejszych projektach stosowano kilka darmowych, sterowanych sprzętowo bibliotek dźwiękowych, takich jak ESP8266SAM.h, AudioOutputI2S.h i AudioGeneratorRTTl.h. Pomimo, że działają one poprawnie także na płytce ESP32, jakość dźwięku jest rozczarowująca. W przypadku dłuższej wypowiedzi maleje jej zrozumiałość, ma się wrażenie jakby ktoś mówił przez długą rurę. Biblioteka AudioGeneratorRTTL.h generuje piękne dzwonki, jednak nie pozwala na tworzenie komunikatów głosowych. Dlatego wybór padł na Google TTS.

Aby wzmacniacz MAX98357A z interfejsem I²S współpracował z Google TTS wymagane są tylko trzy połączenia z pinami GPIO i dostęp do Internetu. Ponadto niezbędne są cztery pliki nagłówkowe, dostępne na GitHub w postaci skompresowanej do pliku zip. 

W ramach jednego konta Google TTS może bezpłatnie wypowiedzieć milion znaków miesięcznie. Ponadto, liczba znaków wypowiadanych za jednym razem jest ograniczona do dwustu. Po przekroczeniu tych ograniczeń wymagane jest płatne konto Google TTS. Dlatego warto stosować skróty i zamiast Electronics For You powiedzieć EFY.

Wystarczy zadać pytanie, poszukać odpowiedzi lub poprosić o fragment kodu, a moduł ESP32 z klawiaturą PS2 pomoże w stworzeniu opisu problemu na ekranie TFT. Następnie moduł ESP32 wyśle pytanie do ChatGPT, a uzyskane dane wyjściowe zostaną wyświetlone na tym samym ekranie. Jednocześnie głośnik podłączony do wzmacniacza MAX98357A będzie wypowiadał tekst widoczny na ekranie. 

Do tej pracy nie jest wymagany komputer multimedialny, choć niezbędne jest połączenie internetowe i własny klucz dostępu do interfejsu API ChatGPT, stanowiący jedyne kryterium dostępu do interfejsu API openai.com. Nie jest wymagane użycie loginu i hasła.

Można się zastanawiać, dlaczego w projekcie użyto starej klawiatury PS2 zamiast nowszego modelu USB. Podjęto próbę użycia małej klawiatury USB, jednak nie komunikowała się ona z modułem ESP32. To samo dotyczyło klawiatury Bluetooth.

Kod oprogramowania został opracowany w Arduino IDE. Należy w nim skonfigurować klucz do API OPEN AI oraz SSID i hasło dla Wi-Fi. Skompilowany kod źródłowy trzeba przesłać do modułu ESP32, wybierając odpowiedni port COM i płytkę ESP32. 

Montaż i testowanie urządzenia

Układ można zmontować na płytce drukowanej ogólnego przeznaczenia, jak to zrobiono w prototypie wykonanym przez autora. Najpierw na płytkę ESP32 należy wgrać skompilowany kod źródłowy terminala. Następnie, przed przystąpieniem do montażu, należy zapoznać się z tabelami od 2 do 4. Gdy wszystko jest gotowe należy włączyć zasilanie i odczekać pewien czas.

Opóźnienia używane wewnątrz pętli są dość specyficzne. Można je dostosować, ale zaleca się rozpoczęcie prób od podanych wartości. W razie potrzeby, po uzyskaniu zrozumiałych dźwięków można dokonać korekt.

Aby przeczytać ten artykuł kup e-wydanie
Kup teraz
Firma:
AUTOR
Źródło
Elektronika dla Wszystkich kwiecień 2025
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Generatory wysokiego napięcia
1/10 Dlaczego nie powinno się pracować z generatorami wysokiego napięcia w pobliżu sprzętu pomiarowego?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"