Zamień się w AI
Rok 2023 stał się bez wątpienia rokiem sztucznej inteligencji (AI), a jej dynamiczny rozwój w dzisiejszych czasach wzbudza coraz większe zainteresowanie i entuzjazm. W tym porywającym tempie postępu technologicznego, AI przejmuje wiele dziedzin naszego życia, transformując je i wprowadzając nowe możliwości, które jeszcze niedawno wydawały się niemożliwe.
W szczególności, modele językowe, takie jak chat GPT (Generative Pre-trained Transformer), rozpoznawanie mowy oraz syntezę mowy stanowią trzy kluczowe obszary, które zasługują na naszą szczególną uwagę.
Model językowy chat GPT, oparty na zaawansowanej architekturze GPT-3.5 i GPT-4, jest jednym z najbardziej przełomowych osiągnięć w dziedzinie AI. Wykorzystując potężne techniki uczenia maszynowego, chat GPT staje się nie tylko zdolny do generowania tekstów o imponującej jakości, ale również do prowadzenia rozmów, które przypominają interakcje między ludźmi. Dzięki temu, AI staje się nie tylko narzędziem do automatyzacji, ale także partnerem w dialogu, co otwiera nowe możliwości w dziedzinach takich jak obsługa klienta, edukacja czy nawet twórczość literacka.
Rozpoznawanie mowy to kolejna dziedzina, w której sztuczna inteligencja odgrywa kluczową rolę. Dzięki zaawansowanym algorytmom i sieciom neuronowym, AI jest w stanie rozpoznać i interpretować ludzką mowę z niespotykaną wcześniej precyzją. To umożliwia tworzenie zaawansowanych systemów transkrypcji, tłumaczenia oraz interakcji głosowych. W praktyce oznacza to, że AI może być wykorzystywana do automatyzacji procesów związanych z przetwarzaniem mowy, co znacząco usprawnia i ułatwia nasze codzienne czynności.
Synteza mowy stanowi natomiast kolejny krok w przekształcaniu komunikacji ludzkiej przez sztuczną inteligencję. Dzięki nowoczesnym algorytmom i głębokiemu uczeniu się, AI jest w stanie generować naturalnie brzmiące głosy, które mogą być wykorzystywane w różnych aplikacjach, takich jak czytniki tekstów, asystenci głosowi czy nawet w produkcji audiobooków. Rok 2023 przynosi rozwinięcie i udoskonalenie tych technologii, umożliwiając AI generowanie mowy o coraz wyższej jakości i z większą indywidualnością, co prowadzi do jeszcze bardziej realistycznych interakcji z maszyną.
W dzisiejszym wpisie za pomocą prostych narzędzi dostępnych w chmurze takich jak chatGPT autorstwa OpenAI oraz narzędzia syntezy mowy od ElevenLabs sprawdzimy jak możemy stworzyć wirtualną replikę samego siebie.
Rozpoczynamy od utworzenia konta na stronie platform.openai.com/overview. Następnie klikamy w ikonkę profilu dostępną w prawym górnym rogu i przechodzi do „Manage Account”:
Przechodzimy do zakładki API keys i generujemy nowy klucz API.
Nowy klucz kopiujemy do schowka i zapisujemy.
Następnie przechodzimy na stronę https://beta.elevenlabs.io/ i dokonujemy rejestracji. ElevenLabs pozwala na korzystanie z gotowych głosów za darmo, jeżeli jednak chcemy sklonować własny głos musimy wykupić subskrpycję, która dostępna jest za $5 miesięcznie. Ja wybrałem tę opcję.
Przechodzimy do zakładki VoiceLab i klikamy przycisk Add Voice a następnie Instant Voice Cloning.
Nadajemy naszemu głosowi nazwę i wgrywamy próbki naszego głosu. Im więcej próbek tym lepiej, ja wytrenowałem mój głos na 3 nagraniach, każde po około 20 sekund mowy.
Przechodzimy do zakładki Speech Synthesis, wybieramy nasz głos oraz model Eleven Multilingual v1. Do pola tekstowego wprowadzamy przykładowy tekst i testujemy nasz głos.
Jeżeli nasz głos nie jest wiernie oddany, wracamy do zakładki VoiceLab i modyfikujemy nasz wytrenowany głos dodając więcej nagrań, najlepiej bardziej zróżnicowanych.
Jeżeli nasz głos jest już zadowalający, klikamy w ikonkę profilu w prawym górnym roku, następnie w opcję Profile i kopiujemy nasz API Key.
Mamy już przygotowane wszystkie niezbędne narzędzia AI, w ty momencie możemy przejść do implementacji naszego wirtualnego sobowtóra.
Wykorzystamy do niego język programowania python. Otwieramy wybrany przez nas edytor kodu i uruchamiamy terminal.
Rozpoczynamy od konfiguracji środowiska wirtualnego:
python -m venv venv
Następnie nowo utworzone środowisko należy uruchomić:
.\venv\Scripts\activate
Dla systemu windows
source venv/bin/activate
Dla systemu unixowego
Następnie pobieramy bibliotekę ElevenLabs:
pip install elevenlabs
Po zainstalowaniu przechodzimy do implementacji, rozpoczynamy od inicjalizacji narzędzi:
from elevenlabs import generate, play, set_api_key, voices
set_api_key(‘NASZ API KEY ELEVEN LABS’)
Następnie tworzymy main i sprawdzamy dostępne głosy:
if __name__ == "__main__":
voices = voices()
print(voices)
Uruchamiamy nasz skrypt i sprawdzamy w dostępnych głosach pojawia się nasz wygenerowany głos.
Następnie dokonujemy syntezy mowy, naszym głosem z poziomu pythona:
if __name__ == "__main__":
voices = voices()
audio = generate(
text="Cześć, jak się masz?",
voice="michal",
model="eleven_multilingual_v1"
)
play(audio)
Ważne, aby jako model podać eleven_multilingual_v1, który zapewnia język polski, a jako voice naszą nazwę głosu. Text to oczywiście tekst, który ma zostać wygenerowany.
Teraz możemy przejść do połączenia naszego głosu z chatGPT. W tym celu instalujemy bibliotekę openai:
pip install openai
Następnie importujemy ją w naszym kodzie:
import openai
openai.api_key = 'NASZ KLUCZ OPENAI`
Następnie tworzymy metodę, która będzie wykonywała zapytanie do modelu chat gpt w wersji 3.5 turbo:
def get_content_from_chat_35(text):
messages=[
{"role": "system", "content": text}
]
response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
messages=messages,
temperature=0,
max_tokens=800)
return response["choices"][0]['message']["content"]
Oczywiście możemy wykorzystać inne modele, szczegóły dostępne są w dokumentacji: https://platform.openai.com/docs/models/gpt-3-5
Następnie możemy sprawdzić jak radzi sobie nasz model, wpisując odpowiedni prompt:
if __name__ == "__main__":
print(get_content_from_chat_35('Wyobraź sobie, że jesteś pracownikiem firmy Asseco. Jesteś programistą, opowiedz o swoim dniu.'))
* PS Dajemy to bez kodu przewijanego, bo się nam rozjeżdża w układzie.
Na powyższe zapytanie chat odpowiedział:
Rano wstaję o godzinie 7:00 i szybko przygotowuję sobie śniadanie. O 8:00 wychodzę z domu i jadę do biura Asseco, które znajduje się w centrum miasta. Po przyjeździe do biura, wchodzę na swoje stanowisko pracy i włączam komputer.
Następnie sprawdzam swoją skrzynkę mailową, aby zobaczyć, czy nie ma żadnych pilnych zadań do wykonania. Po przeczytaniu maili, zaczynam pracę nad projektem, który jest aktualnie w trakcie realizacji. Pracuję nad kodem, testuję go i wprowadzam poprawki, jeśli są potrzebne.
W ciągu dnia spotykam się z innymi programistami, aby omówić postęp prac i rozwiązać ewentualne problemy. Współpracuję również z zespołem projektowym, aby zapewnić, że projekt jest realizowany zgodnie z wymaganiami klienta.
W międzyczasie biorę udział w spotkaniach z klientami, aby omówić ich potrzeby i przedstawić postęp prac. Współpracuję również z działem testów, aby zapewnić, że projekt jest testowany i weryfikowany zgodnie z wymaganiami.
Po zakończeniu pracy, zapisuję swoje postępy i zamykam komputer. Wychodzę z biura Asseco i wracam do domu, aby spędzić czas z rodziną i odpocząć przed kolejnym dniem pracy.
Oczywiście, to co wprowadzimy do naszego chatu jest tylko kwestią naszej wyobraźni, jedyne co nam pozostaje to połącznie uzyskanej odpowiedzi z silnikiem TTS. Ostateczna wersja kodu będzie wyglądała następująco:
from elevenlabs import generate, play, set_api_key, voices
import openai
set_api_key('NASZ KLCUCZ API ELEVENLABS')
openai.api_key = ''NASZ KLCUCZ API OPENAI'
def get_content_from_chat_35(text):
messages=[
{"role": "system", "content": text}
]
response = openai.ChatCompletion.create(model="gpt-3.5-turbo",
messages=messages,
temperature=0,
max_tokens=800)
return response["choices"][0]['message']["content"]
if __name__ == "__main__":
text = input('Wprowadź zapytanie: ')
content = get_content_from_chat_35(text)
print(content)
voices = voices()
audio = generate(
text=content,
voice="michal",
model="eleven_multilingual_v1"
)
play(audio)
Na bazie powyższego kodu możemy wygenerować dowolne wypowiedzi chatu, które następnie będą odczytane naszym głosem. Możemy również iść o krok dalej i zamiast pojedynczych wypowiedzi skonstruować swego rodzaju Bota, z którym możemy pisać a on będzie odpowiadał naszym głosem. Jeżeli pisanie nie jest dla nas wystarczająco atrakcyjne możemy skorzystać z narzędzi o nazwie STT (speech to text), które automatycznie generują tekst z naszej mowy. Możemy tytaj skorzystać np. z biblioteki dostarczonej przez googla, która będzie zbierała głos z naszego mikrofonu i zamieniała go na tekst, szczegóły możemy znaleźć tutaj: https://cloud.google.com/speech-to-text/docs/transcribe-streaming-audio. W następnej kolejności możemy połączyć to z naszym kodem, który napisaliśmy w dzisiejszym wpisie.
Dzięki wykorzystaniu API narzędzi OpenAI i ElevenLabs, mieliśmy możliwość tworzenia i rozwijania wirtualnej osobowości, która potrafiła komunikować się w sposób podobny do człowieka. Uzyskaliśmy dostęp do potężnych modeli językowych, takich jak chat GPT, które umożliwiły nam generowanie tekstów o imponującej jakości i prowadzenie rozmów na różne tematy.
Nasz eksperyment pozwolił nie tylko na odkrywanie potencjału sztucznej inteligencji, ale również na personalizację i ulepszanie naszej wirtualnej wersji.
Przykład opisany w naszym blogu stanowi jedynie wycinek ogromnych możliwości, jakie oferuje rozwijająca się sztuczna inteligencja. Narzędzia AI, w tym OpenAI i ElevenLabs, które wykorzystaliśmy, są doskonałym dowodem na to, jak szybko postępuje ta technologia. Od modeli językowych o niezwykłej precyzji, przez zaawansowane systemy rozpoznawania mowy, aż po generację realistycznej syntezy głosu - rozwój sztucznej inteligencji w tych obszarach jest zadziwiający.
Narzędzia AI umożliwiają nam tworzenie inteligentnych systemów, które mogą uczyć się, adaptować i doskonalić się w czasie rzeczywistym. W naszym przypadku, za pomocą API OpenAI i ElevenLabs, udało nam się stworzyć wirtualną wersję siebie, ale to tylko wierzchołek góry lodowej. Wielu innych specjalistów i badaczy na całym świecie wykorzystuje sztuczną inteligencję do tworzenia zaawansowanych rozwiązań w dziedzinach takich jak medycyna, przemysł, finanse czy sztuka.
Nasze doświadczenia i eksploracje AI pokazują, że rozwój tej technologii jest dynamiczny i nieustanny. Co jeszcze niedawno wydawało się być tylko możliwe w sferze fantazji, staje się rzeczywistością dzięki postępom w dziedzinie uczenia maszynowego i głębokiemu uczeniu się. Jestem pewien, że przyszłość przyniesie nam jeszcze więcej innowacyjnych narzędzi i zastosowań AI, które zmienią sposób, w jaki żyjemy, pracujemy i tworzymy.
PS Ten wpis napisał człowiek czy chat GPT :)