Wybierz region
pl
  • PL
  • EN
Wydrukuj

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 :)


Michał Torzewicz

Wywodzący się ze start-upu Architekt z pioniu Business Intelligence, na co dzień związany z technologiami głosowymi i wykorzystaniem narzędzi ML w aplikacjach biznesowych. W wolnym czasie spędza czas w towarzystwie znajomych lub podróżuje kupując bilety na ostatnią chwilę (ahoj przygodo!).


Wydrukuj