Ponieważ po opublikowaniu ostatniego filmu na moim kanale Moja Szuflada wiele osób pyta mnie o kwestię związane z klonowaniem głosów oraz automatycznym generowaniem audiobooków, poniżej zamieszczam skróconą i nieco zmienioną wersję napisanego przeze mnie artykułu pt. „Jak pisać, aby AI zrozumiała?”. Pierwotny tekst powstał do monografii wydawanej przez Uniwersytet im. Adama Mickiewicza w Poznaniu. Zainteresowanych tematem wykorzystania prostego języka w kontekście generowania tekstów audio odsyłam do samej monografii. W poniższym fragmencie pozostawiłem jedynie części bezpośrednio odnoszące się do klonowania głosów oraz tworzenia książek audio.
ElevenLabs i tworzenie audiobooków z wykorzystaniem AI
W dobie cyfryzacji coraz więcej osób sięga po książki w formie audio, tak zwane audiobooki. Przy tym mało kto zdaje sobie sprawę, że książka audio ma już 90 lat. Pierwsze egzemplarze audiobooków dostępne były na płytach winylowych. Jednak dopiero po wielu latach, za sprawą miniaturyzacji i usług streamingowych czytelnicy powszechnie docenili ich wygodę i odmienny sposób przekazywania treści. Bardziej relaksujący i mniej absorbujący odbiorcę. Wzrost ich popularności sprawił, że na rynku pojawiają się nowe możliwości oraz narzędzia ułatwiające tworzenie audiobooków. Wśród nich znalazła się także generatywna sztuczna inteligencja. W niniejszym artykule krok po kroku omówię proces adaptacji książki do formatu audio, zwracając uwagę na kluczowe etapy i wyzwania z jakimi może spotkać się osoba tworząca tego typu publikację.
Skąd pomysł na audiobooka?
W roku 2023 spełniłem jedno ze swoich wielkich marzeń. Napisałem książkę. W sumie pracowałem nad nią prawie osiem lat, więc nikogo nie powinno dziwić, że chciałem aby jak najwięcej osób miało możliwość zapoznania się z jej treścią. Jako osobie, która na co dzień zajmuje się kwestiami dostępności dla osób ze szczególnymi potrzebami, bardzo zależało mi na tym, aby abstrahując od jej treści formę książki zaprojektować w jak najbardziej uniwersalny sposób. Na szczęście mogłem poprosić o pomoc najlepszego w Polsce specjalistę od dostępnego składu publikacji. Przygotował dla mnie książkę, zarówno w wersji elektronicznej w formatach PDF oraz EPUB, jak i w drukowanej z użyciem wielu udogodnień dla osób słabowidzących.
Jednak gdy już miałem gotowe wszystkie trzy wersje książki zdałem sobie sprawę, że zapomniałem o audiobooku. Uświadomiwszy sobie to niedopatrzenie, zacząłem analizować posiadane możliwości.
Stworzenie książki audio, generalnie jest dość łatwe. Wystarczy nam dobry mikrofon, odpowiednio wyciszone pomieszczenie i sami możemy nagrać audiobooka. Miły głos oraz ładna dykcja stanowić będą dodatkowy atut takiej publikacji. Jednak konieczny do spełnienia jest jeszcze jeden warunek. Musimy być w stanie samodzielnie przeczytać treść książki. Ja, będąc osobą niewidomą, nie mogę tego zrobić płynnie. Czy to czytając tekst w alfabecie brajla, czy powtarzając fragmenty książki odczytywane syntezatorem mowy przez komputer.
Skoro sam nie mogę, to postanowiłem zlecić to zadanie ekspertom. Wbrew pozorom jest to dość prosta sprawa. Wielu profesjonalnych lektorów oferuje swoje usługi w Internecie. Możemy zapoznać się z próbkami ich nagrań i zadecydować, czyj głos ożywi naszą książkę. W tych okolicznościach warunek jest tylko jeden – odpowiednio zasobny portfel. I tu niemile się zdziwiłem. Usługi lektorów są dość drogie. Książkę planowałem rozpowszechniać bezpłatnie, na otwartej licencji. Na jej wydanie nie tylko nie posiadałem żadnych środków finansowych, ale również w przyszłości z tego tytułu nie mogłem spodziewać się żadnych tantiem. A wyłożenie z własnej kieszeni tak dużej sumy było zdecydowanie poza moim zasięgiem.
I gdy już się miałem poddać, ostatecznie rezygnując z książki audio, nagle sobie przypomniałem, że przecież istnieje możliwość automatycznego stworzenia audiobooka na podstawie książki elektronicznej. Co więcej, instrukcję tworzenia takich książek opisywałem w Mojej Szufladzie już dziesięć lat wcześniej. Jednak do ich generowania wykorzystywane były syntezatory mowy, które tylko z grubsza swoim brzmieniem przypominały głos człowieka. Były ewidentnie elektroniczne i bardzo sztuczne w odbiorze. Niewiele osób było w stanie słuchać dłuższych tekstów odczytywanych w ten sposób. To jednak wystarczyło, abym dokonał przeskoku myślowego i uświadomił sobie, że od niedawna na świecie istnieje ktoś, a właściwie coś, co mogłoby pomóc rozwiązać mój problem.
Generatywna sztuczna inteligencja
30 listopada 2022 r. firma OpenAI zaprezentowała narzędzie o nazwie ChatGPT. Była to pierwsza na świecie, publicznie dostępna, generatywna sztuczna inteligencja. Początkowo stworzona z myślą o operacjach na tekście, nazywana w skrócie Gen AI – bardzo szybko przestała zajmować się tylko tym typem treści i zaczęła przetwarzać dźwięk oraz obraz. A w obszarze przetwarzania dźwięku największe uznanie błyskawicznie zyskała firma ElevenLabs.
Założona w grudniu 2022 przez dwóch Polaków – Piotra Dąbkowskiego oraz Mateusza Staniszewskiego firma jest pierwszym polskim tzw. jednorożcem, czyli startupem, który na rynku osiągnął wycenę ponad miliarda dolarów. W ciągu półtora roku działalności z technologii ElevenLabs zaczęli korzystać pracownicy 41 proc. firm z listy Fortune 500. Głównym produktem startupu jest model AI umożliwiający generowanie ludzkiej mowy z wprowadzonego tekstu. Za sukcesem ElevenLabs stoi ogromna złożoność stworzonego modelu sprawiająca, że generowany głos jest niezwykle realistyczny i łudząco podobny do głosu człowieka. To właśnie ta ostatnia cecha sprawiła, że postanowiłem wykorzystać ten model AI do stworzenia własnego audiobooka.
Możliwości ElevenLabs
Już pierwszy kontakt z narzędziem internetowym zlokalizowanym pod adresem www.elevenlabs.io uświadomił mi dwie rzeczy. Po pierwsze, że takiego rozwiązania właśnie szukałem. I po drugie, że przyjdzie mi spędzić sporo czasu zanim w pełni poznam wszystkie jego możliwości. A są one na prawdę imponujące.
Narzędzie udostępnia użytkownikom bazę kilkuset najróżniejszych głosów – męskich, żeńskich, nieokreślonych płciowo, należących do osób młodych, w średnim lub starszym wieku, żywiołowych i bardzo spokojnych. Samo przeglądanie i odsłuchiwanie poszczególnych głosów było dla mnie nie lada przyjemnością. Dobieranie ich barw i brzmień do konkretnej treści, grupy odbiorców czy lokalizacji, w której miałyby być one słyszane, było niezwykle interesujące. Przecież zupełnie innym głosem będziemy generować wypowiedzi dla dziecięcej zabawki, powiadomień głosowych w transporcie publicznym czy komunikatów ewakuacyjnych. Nawet ograniczając się tylko do jednego obszaru zainteresowań, na przykład przygodowej książki audio dla młodzieży, dobierając odpowiedni głos możemy taką publikację dodatkowo spersonalizować. Przykładowo pod kątem nastolatek. Użyjemy wtedy głosu młodej kobiety, mówiącej w szybki, dynamiczny sposób.
Każdym z głosów dostarczanych przez ElevenLabs użytkownik może odczytać dowolny tekst w jednym z dwudziestu dziewięciu wspieranych języków. Wśród nich oczywiście znajduje się język polski. W podobny sposób można tworzyć dubbing do nagrań audio-video oraz książki audio. Jednak kwestią, która najbardziej mnie zainteresowała i sprawiła, że ostatecznie postanowiłem użyć ElevenLabs była możliwość sklonowania własnego głosu i wykorzystania go do stworzenia audiobooka. Skoro książka była mojego autorstwa uznałem, że jeśli tylko istnieje taka możliwość, to powinna ona zostać odczytana moim własnym głosem.
Ekonomia, głupcze!
Jak się jednak szybko okazało, nie wszystko jest za darmo. Imponujące możliwości to jedno, ale finanse muszą się zgadzać. Dlatego musiałem dobrze przyjrzeć się wszystkim planom subskrypcyjnym ElevenLabs i wybrać taki, który z jednej strony zapewni mi wszystkie potrzebne opcje, a z drugiej nie puści mnie z torbami.
Poszczególne plany taryfowe różnią się między sobą przede wszystkim ilością tekstu, który miesięcznie możemy przekonwertować na mowę – od 5000 do 2000000 znaków. Ponadto ilością i jakością klonowanych głosów, licencją na użytkowanie wygenerowanych treści czy dostępem do generatora książek audio. Ceny wahają się od 0 do $330 miesięcznie dla klientów indywidualnych i niewielkich firm. Po analizie wszystkich pakietów stwierdziłem, że ten o nazwie Pro idealnie spełni moje oczekiwania. W jego ramach mogę sklonować swój głos w wysokiej jakości, dowolnie używać wygenerowanych treści i przetwarzać do 500000 znaków miesięcznie. Książka ma około 450000 znaków. Założyłem, że przy jej generowaniu na pewno potrzebne będą jakieś poprawki. Do tego jeszcze dodatkowy czas na sklonowanie mojego głosu. Oszacowałem, że całość adaptacji książki do audiobooka nie potrwa dłużej niż dwa miesiące. Pakiet Pro kosztował $99 więc przy średnim kursie dolara całość nie powinna kosztować mnie więcej niż 800 zł. Była to kwota jaką bez problemu mogłem wydać, więc bez wahania kliknąłem w przycisk: Rozpocznij dzisiaj.
Klonowanie głosu
Jeśli chcemy stworzyć klon własnego głosu, to musimy dostarczyć narzędziu jego próbkę. Powinna ona mieć postać nagrań audio wysokiej jakości, trwających nie dłużej niż trzy godziny. Co niezwykle istotne, klonowane są nie tylko brzmienie i barwa naszego głosu, ale także styl wypowiedzi. Dlatego jeśli przygotujemy nagranie, na którym sami będziemy na głos odczytywać jakąś książkę, to sklonowany głos będzie brzmiał dokładnie tak samo. Czyli jak osoba czytająca książkę. Niestety, nigdzie w ElevenLabs o tym nie piszą. Dopiero kilka samodzielnych prób klonowania głosu niższej jakości uświadomiło mi, że mogę mieć wpływ na to, jak książka będzie odbierana. A ponieważ zależało mi na nieco innej niż klasyczna ekspresji, rejestrując swój głos, zamiast monotonnie recytować jakąś treść, ze swadą opowiadałem o ostatnich wakacjach. Dzięki temu zabiegowi, mój sklonowany głos brzmi bardziej dynamicznie. Osoby, które miały okazję odsłuchać audiobooka stworzonego z użyciem tego głosu twierdziły, że w trakcie lektury momentami miały wrażenie, że siedzę obok nich i osobiście opowiadam im własną historię. Z kolei osoby, które klonując swój głos postąpiły zgodnie z instrukcjami ElevenLabs narzekają, że kopia ich głosu brzmi smutno i monotonnie.
Samo nagranie powinniśmy stworzyć przy zapewnieniu jak najlepszych warunków akustycznych – ciche pomieszczenie, wytłumione i bez pogłosu. Rejestrator głosu powinien posiadać odpowiednio dobre mikrofony i pop filtr tłumiący odgłosy wydychanego powietrza. Ja posłużyłem się stosunkowo prostym, lecz posiadającym doskonałe mikrofony, popularnym rejestratorem cyfrowym Zoom H1. Skonfigurowałem i ustawiłem go zgodnie z zaleceniami ElevenLabs. Finalnie nagraną próbkę głosu przesłałem do narzędzia i obserwowałem status jego klonowania.
I jak się okazało, czekać musiałem o wiele dłużej niż się tego spodziewałem. ElevenLabs nie klonuje głosów na bieżąco. Ponieważ firma wykorzystuje do tego zewnętrzne, bardzo szybkie komputery, najpierw gromadzi odpowiednio dużą liczbę próbek głosów. Gdy jest ich już wystarczająca ilość, całość poddaje klonowaniu. W efekcie na samo sklonowanie mojego głosu w wysokiej jakości czekałem równo dwa miesiące. Niestety, ElevenLabs w żaden sposób nie uprzedza użytkowników o tak długim czasie oczekiwania. Było to dla mnie niezwykle frustrujące, gdy każdego kolejnego dnia, gdy zaglądałem na swoje konto w serwisie, zamiast sklonowanego głosu widziałem jedynie komunikat Pending (ang. w toku).
Narzędzie do generowania książek audio
Oczywiście w tym czasie nie próżnowałem. Przedłużające się oczekiwanie na sklonowanie głosu postanowiłem produktywnie wykorzystać na przygotowanie treści książki do jej konwersji na audiobooka. ElevenLabs w pakiecie Pro posiada narzędzie, które ten proces ułatwia. Pozwala ono stworzyć całą strukturę książki audio. Podzielić ją na różne sekcje, rozdziały, akapity, podtytuły itd. Możliwe jest zaprojektowanie odczytu treści z podziałem na różne głosy. Dzięki temu bohaterom książek nadać można indywidualne głosy. Dopasować je do ich wieku, płci i temperamentu. Można także jednym kliknięciem wygenerować całego audiobooka z podziałem na pliki zawierające odpowiednie metadane z tytułami rozdziałów, danymi autora, wydawnictwa itd.
Przyznam, że tworzenie takiej książki audio było dla mnie niezwykle ekscytujące. W ramach testu wygenerowałem w ten sposób krótkie opowiadanie zawierające scenę dialogu. Efekt finalny przypominał słuchowisko radiowe. Całość wymagała sporo pracy i drobiazgowego ustawiania głosów, ale efekt był spektakularny. W mojej książce głównym narratorem jest autor, więc w o wiele większej publikacji na szczęście nie musiałem podejmować tak skomplikowanych zabiegów.
Generowanie treści audio
Tymczasem samo generowanie treści audio za pomocą narzędzia ElevenLabs jest bardzo prostym i intuicyjnym procesem. Wystarczy w pole edycyjne wpisać lub wkleić interesujący nas tekst i kliknąć przycisk: Generate Speech (ang. Generuj wypowiedź). I już po chwili z głośników komputera usłyszymy wprowadzoną przez nas treść odczytywaną syntetycznym głosem. A jeśli wypowiedź nam się od razu spodoba, natychmiast możemy ją pobrać na dysk w formie pliku mp3.
Z bazy głosów możemy wybrać taki, który najbardziej będzie pasował do wprowadzonego tekstu, lub po prostu najbardziej będzie nam się podobał. Z kolei w ustawieniach głosu regulujemy jego stabilność – określającą zakres podobieństwa do oryginału, wysokość, styl wypowiedzi i wzmocnienie. Są to wartości, które zmieniamy jeśli nie dysponujemy głosem spełniającym nasze oczekiwania. Jednak nawet wtedy, gdy znajdziemy taki, który będzie nam odpowiadał, warto na początku wygenerować kilka tych samych wypowiedzi z użyciem różnych ustawień głosu. Sam niejednokrotnie przekonałem się, jak bardzo może zmienić się brzmienie i odbiór wygenerowanej wypowiedzi, po przestawieniu tylko jednego parametru. Jeśli jednak od razu dobierzemy głos odpowiadający nam barwą, wysokością czy tempem mówienia, to z tych ustawień w ogóle nie musimy korzystać.
Do generowania mowy ElevenLabs wykorzystuje dwa stworzone przez siebie modele. Oba – V1 oraz V2 są w stanie generować wypowiedzi w wielu językach. Większym Poliglotą jest model V2, ponieważ na chwilę obecną obsługuje on aż 29 języków. Jednak co istotne, nie każdy głos może być obsługiwany przez nowszy i bardziej wydajny model V2. starsze głosy obsługiwane są tylko przez wcześniejszy model. Niestety, w bibliotece głosów nie znalazłem możliwości ich filtrowania, ani żadnej informacji, określającej z jakim modelem współpracuje dany głos. Dopiero po wybraniu jednego z nich pojawia się informacja o ewentualnych ograniczeniach.
Pierwsze problemy
Bardzo szybko zauważyłem, że narzędzie ElevenLabs nie radzi sobie z odczytywaniem liczb i liczebników. A jeśli już jakąś liczbę udało się prawidłowo odczytać, to bardzo często w nieprawidłowej odmianie. Przykładowo, jeśli w tekście pojawiał się zapis „1 maja obchodzimy święto pracy.”, to generowany głos odczytywał ten tekst jako „Jeden maja obchodzimy święto pracy.”. Żaden inny zapis, na przykład 1go czy 1-go nie był prawidłowo interpretowany. Po wygenerowaniu wypowiedzi syntetyczny głos anonsował je jako „Jeden go…”. Z kolei zapis daty, przykładowo „…rok 2015.” odczytywany był całkowicie bez odmiany. Raz jako „…rok dwa tysiące piętnaście”, a innym razem jako „…rok dwa zero jeden pięć.”.
Następnym problemem okazały się skróty i skrótowce. Narzędzie odczytywało je w całkowicie losowy sposób. Raz literując jak skróty, a innym razem odczytując w całości jak skrótowce. Nie istniały żadne zauważalne reguły sprawiające, że w danej sytuacji dochodziło do takiej a nie innej interpretacji.
Jednak czarę goryczy przelał całkowity brak prawidłowego odczytywania powszechnych w języku polskim skrótów w rodzaju „itp.”, „itd.” czy „m.in.”. Wygenerowane wypowiedzi brzmiały w tym wypadku jak bełkot pijanego lub bardzo chorego człowieka. Przykładowo zapis „Sp. z o.o.”, zamiast „Spółka z ograniczoną odpowiedzialnością” odczytywany był jako „S p zoo, eło, eło, oo”. Inne skróty rozwijane były nieprawidłowo. Na przykład „ds.” interpretowany był jako „do skład” a „tj.” jako „tył ja to”. Z kolei „itp.” odczytywany był litera po literze, a „itd.” już poprawnie jako cała fraza: „i tak dalej”.
Słowniki wymowy
Ewidentnie powodem tych problemów były niewłaściwie przygotowane słowniki wymowy narzędzia ElevenLabs. Są one niezwykle istotnymi komponentami wszystkich syntezatorów mowy. Odpowiadają za prawidłową wymowę słów i zdań. Zawierają informacje o tym, jak wymawiać poszczególne litery, sylaby i wyrazy w danym języku. Przykładowo, to od instrukcji w słowniku wymowy zależy, czy syntezator mowy nazwę Facebook odczyta literalnie – zgodnie z pisownią zdefiniowanego języka syntezatora, czy jako „Fejsbuk”. Słowniki wymowy określają interpretację tekstu, jego wymowę dla poszczególnych słów i sylab. Uwzględniają również takie aspekty jak akcent, intonacja czy długość poszczególnych głosek.
Szybko zauważyłem istotne różnice w słownikach wymowy między modelami V1 oraz V2. Ten drugi radził sobie lepiej z odczytem cyfr i liczb. Jednak on także nie był w stanie analizować przetwarzanego tekstu i kontekstowo stosować prawidłowej odmiany dla języka polskiego. Z kolei interpretacja skrótów odbywała się zupełnie losowo. Część lepiej rozwijana była przez model V1 a część przez V2. Przy czym pojawiały się różnicę wynikające na przykład z lokalizacji danego skrótu w zdaniu. Jeśli skrót „itd.” występował na końcu zdania, to interpretowany był on prawidłowo. Gdy jednak pojawił się w środku zdania, to odczytywany był litera po literze.
Wiele narzędzi wykorzystujących syntezę mowy posiada zaimplementowany edytor słownika wymowy. Każdy czytnik ekranu używany przez osoby niewidome ma taką funkcję. Dzięki niej każdy użytkownik do słownika może dodawać indywidualne wyjątki, wymowę nazw własnych, rozwinięcia mniej popularnych lub charakterystycznych dla danego języka skrótów. Niestety, jak się okazało, narzędzie ElevenLabs nie posiada takiego mechanizmu. W efekcie, chcąc zapewnić prawidłową wymowę poszczególnych słów przy generowaniu audiobooka, w całej książce musiałem rozwinąć lub fonetycznie zapisać wszystkie skróty, nazwy i daty, zapewniając im od razu prawidłową odmianę. Oczywiście wiązało się to z kilkukrotnym przejrzeniem całej publikacji. Nie wystarczyło zwykłe użycie funkcji Znajdź i Zastąp. Przez kilka godzin zmuszony byłem wykonywać iście benedyktyńską pracę. Do tej pory nawet nie podejrzewałem, jak wielu skrótów odruchowo używam w trakcie pisania. Co więcej, już przy generowaniu audiobooka okazało się, że jednak kilka cyfr oraz skrótów mi umknęło, co zaowocowało koniecznością ponownego generowania konkretnych fragmentów książki.
Problemów ciąg dalszy
Po wprowadzeniu w książce wspomnianych zmian byłem już gotów do generowania audiobooka. I wtedy, niemal natychmiast natknąłem się na problem, którego wcześniej w ogóle się nie spodziewałem.
Okazało się bowiem, że sztuczna inteligencja nieprawidłowo przekształca stworzoną przeze mnie treść na mowę. Odczyt dowolnego fragmentu zaczynał się prawidłowo, lecz po kilku lub kilkunastu zdaniach, generowany głos zmieniał język wymowy na rosyjski, czeski lub ukraiński. Parę polskich zdań czytał uwzględniając obcą wymowę, po czym wracał do języka polskiego.
Dopiero po wielu próbach i testach udało mi się ustalić, że modele językowe używane przez narzędzie ElevenLabs zupełnie nie radzą sobie z przekształcaniem długich zdań na mowę. I nie chodziło tu tylko o losowe przełączanie języka wymowy, ale także o wyraźne spowalnianie przy dłuższych wypowiedziach, wstawianie dużej ilości wdechów, powtórzeń i wtrąceń dyskursywnych. Coś co miało brzmieć naturalnie, brzmiało jak nagranie odtwarzane z mocno porysowanej i zacinającej się płyty gramofonowej.
Praktycznie za każdym razem, gdy miałem do czynienia z długim zdaniem, generowane ono było w znacznie wolniejszym tempie.
Żeby pozbyć się efektu sztuczności, czasem wystarczyło ponowne wygenerowanie wypowiedzi tego samego fragmentu tekstu. Jednak kilkukrotnie zmuszony byłem przerabiać przydługie konstrukcje, aby sztuczna inteligencja poradziła sobie lepiej z ich interpretacją. Na szczęście wtedy już byłem studentem kierunku Prosty język w instytucjach publicznych na wydziale Filologii Polskiej i Klasycznej Uniwersytetu im. Adama Mickiewicza w Poznaniu i dobrze wiedziałem co mam w takiej sytuacji robić.
Po prostu, pisz prosto
Korzystając z prawa autora do ingerowania w treść książki, przygotowując do adaptacji kolejne jej fragmenty, do tekstu systematycznie zacząłem wprowadzać zmiany. Jedna z pierwszych dotyczyła licencji na jakiej została opublikowana książka. Przy próbie przekształcenia zdania o długości 28 wyrazów, wygenerowana wypowiedź zawierała kilka bardzo nienaturalnych odgłosów zaczerpywania powietrza. Wystarczyło jednak uprościć informację o licencji, aby wygenerowana wypowiedź zabrzmiała bardzo płynnie i naturalnie.
Oczywiście ani nie mogłem, ani nie chciałem w ten sposób upraszczać treści całej książki. W końcu nie w tym celu zostały stworzone zasady prostego języka. Jednak widząc efekty generowania audiobooka z uproszczonego tekstu, przy adaptacji dalszej treści postanowiłem skorzystać z części tych zasad.
Przygotowując kolejne fragmenty książki, dzieliłem je na akapity. Starałem się wszędzie tam, gdzie to tylko było możliwe, skracać długie zdania. Jak się szybko okazało, jako autor, nie stroniłem od wielokrotnie złożonych konstrukcji. Dzięki nowemu spojrzeniu i ich przeredagowaniu, mogłem je podzielić na trzy a czasem nawet i cztery krótsze zdania.
Wyrzucenie z tekstu wielu niepotrzebnych znaków interpunkcyjnych sprawiło, że ta sama treść zaczęła być prawidłowo generowana i nabrała naturalnego tempa i rytmu wypowiedzi. Zdania stały się mniej złożone, co wydatnie przełożyło się na lepszą ich interpretację i prawidłowy dobór języka wypowiedzi.
Jednak kluczową kwestią okazał się podział tekstu na akapity. Moje testy wykazały, że ElevenLabs optymalnie radzi sobie z tekstami o długości do 400 znaków. Jeśli materiał wejściowy był niewiele dłuższy – 600 do 700 znaków, to nadal istniała duża szansa, że zostanie z niego wygenerowana poprawna wypowiedź. Jednak mniej więcej 30% prób kończyło się niepowodzeniem. Najczęściej w wygenerowanych wypowiedziach, pod sam ich koniec, automatycznej zmianie ulegał język mówiącego na rosyjski, czeski lub ukraiński. Chcąc nie chcąc musiałem większe akapity dzielić na mniejsze.
W trakcie pracy z tekstem wolałem, aby akapit był krótszy – przykładowo na 300 znaków, niż używać dłuższych fragmentów i ryzykować wygenerowanie nieprawidłowej wymowy. Ponowne generowanie tego samego fragmentu treści zwykle powodowało automatyczną zmianę stylu wypowiedzi. To z kolei wymuszało kolejne przetwarzanie tego samego tekstu, aż do momentu, w którym ponownie uzyskiwałem pierwotny i pożądany w danym momencie fabuły styl wypowiedzi. Ostatecznie okazało się więc, że paradoksalnie szybciej było generować wypowiedzi z krótszych fragmentów treści.
Nieustannie wyrzucałem przecinki i upraszczałem interpunkcję. Przekonałem się wtedy, że korekta książki, którą dotychczas uważałem za bardzo dobrą, pozostawia jednak wiele do życzenia. Znak myślnika zamieniałem na kropki i przecinki. Dzięki temu generowane wypowiedzi bardzo zyskały na dynamice. Ku mojemu zdziwieniu, narzędzie ElevenLabs w żaden sposób nie interpretowało takich znaków jak wielokropek, dwukropek, średnik czy cudzysłów. Oryginalny tekst podzielony na akapity i ze zmodyfikowaną interpunkcją wyglądał zupełnie inaczej.
Szybko odkryłem, że tekst po takiej redakcji podoba mi się znacznie bardziej. Mnie osobiście czytało się go szybciej i płynniej. Co więcej, wygenerowany brzmiał lepiej, a w trakcie generowania, ani nie zmieniał tempa wypowiedzi, ani języka wymowy. Wszystko wskazywało na to, że odkryłem receptę na sukces przy automatycznym tworzeniu książek audio.
Krytyczna intonacja
Moja radość okazała się przedwczesna. W trakcie generowania pierwszych zmodyfikowanych fragmentów książki przekonałem się, że narzędzie ElevenLabs potrafi na różne sposoby interpretować generowane wypowiedzi. Niestety, robi to w zupełnie losowy sposób. Ten sam tekst może zostać odczytany bardzo wolno i posępnie, radośnie i dynamicznie, a także całkiem przeciętnie. I dopóki dana treść nie zostanie wygenerowana w formie audio, użytkownik nie ma pojęcia co usłyszy.
Oczywiście znając kontekst danego fragmentu i poznawszy jego wygenerowaną interpretację możemy się z nią nie zgodzić i wygenerować nową wypowiedź, w innej interpretacji. Jednak użytkownik nie ma możliwości określenia jej rodzaju. Do dyspozycji ma jedynie przycisk uruchamiający proces ponownego generowania wypowiedzi z tego samego tekstu oraz pewność, że nowa wypowiedź będzie różniła się od poprzedniej.
Osobny problem stanowi dysharmonia. Niestety, może pojawić się ona, zarówno w jednym, jak i dwóch różnych, wygenerowanych osobno fragmentach wypowiedzi. W tym drugim przypadku zawsze możemy jeden fragment stworzyć od nowa w taki sposób, aby stylem pasował do całości. Jednak, gdy dysharmonia pojawia się w obrębie jednego fragmentu, zawsze musimy go przeredagować, usuwając z treści znaczniki wskazujące odmienną treść – na przykład cudzysłowy dla cytatu.
Zmianę stylu tej samej wypowiedzi przy jej ponownym generowaniu pozornie możemy uznać za działanie pozytywne. Jednak ten mechanizm obarczony jest sporym błędem. Już wcześniej wspominałem o takiej sytuacji. Gdy w wygenerowanej wypowiedzi coś nam się nie spodoba i na przykład skrócimy przetwarzany fragment tekstu – ElevenLabs wykryje generowanie tej samej treści i automatycznie uzna to za chęć zmiany stylu wymowy. W efekcie stworzy nam fragment całkowicie nie pasujący stylem do wcześniejszych wypowiedzi. Wtedy my, chcąc uzyskać pożądany efekt, proces powtórnego generowania musimy powtarzać aż do skutku.
Halucynacje
Problemem, który od samego początku towarzyszy Gen AI jest jej halucynowanie. W ten sposób określa się losowe generowanie przez model sztucznej inteligencji danych, które nie są zgodne z rzeczywistością. Dotychczas z przejawami halucynacji Gen AI spotykałem się jedynie przy wykorzystywaniu otwarto źródłowego modelu Whisper stworzonego przez OpenAI. Jest to narzędzie, którego regularnie używam do automatycznego generowania napisów i transkrypcji do nagrań audio-video. W tym wypadku halucynację Gen AI miały postać jednego lub dwóch dodatkowych wierszy napisów, automatycznie dodawanych na końcu generowanego pliku. Ich treść najczęściej stanowiła losową zbitkę słów zaczerpniętych z przeprowadzonej transkrypcji.
W ElevenLabs halucynacje mają postać jednego lub dwóch zdań dodawanych na końcu wygenerowanej wypowiedzi. Podobnie jak w przypadku wspomnianych napisów, nie mają one większego sensu. Stanowią zbitkę od kilku, do kilkunastu losowo zestawionych wyrazów. Nie istnieje również żadna reguła, która pozwoliłaby przewidzieć ich występowanie. A główny problem polega na tym, że brzmią one dokładnie tak samo, jak poprzedzające je słowa. Dlatego aby je wykryć, konieczne jest bardzo uważne wsłuchiwanie się w koniec każdej wypowiedzi. Najczęściej ponowne przetworzenie tej samej treści rozwiązywało problem występowania halucynacji. Jedynie raz czy dwa musiałem skrócić przetwarzany akapit, aby ElevenLabs wygenerował z niego wypowiedź pozbawioną niepożądanych dodatków.
Ostatecznie chcąc wygenerować audiobooka pozbawionego halucynacji, brzmiącego naturalnie, gdzie sąsiadujące fragmenty wypowiedzi nie będą diametralnie różniły się między sobą tempem i stylem , musimy ręcznie i osobiście generować akapit po akapicie. Oprócz czasochłonności takiego podejścia, wiąże się ono jeszcze z dwoma niedogodnościami. Po pierwsze w ten sposób powstaje wiele plików MP3, które później musimy połączyć w jeden – na przykład rozdział. Po drugie, każde kolejne wygenerowanie fragmentu treści wiąże się ze zmniejszeniem przysługującego nam w ramach subskrypcji limitu znaków. W moim wypadku książka posiadała ok. 450000 znaków, a przy tworzeniu audiobooka z odpowiednio przygotowanego i poprawionego tekstu przetworzyłem ich prawie 1000000.
Przypomnę, że wcześniej optymistycznie zakładałem, że stworzenie książki audio zajmie maksymalnie dwa miesiące. Tymczasem samo sklonowanie mojego głosu tyle trwało. Doliczając do tego kolejne dwa miesiące na wygenerowanie książki audio, mój planowany budżet przekroczony został dokładnie o 100%.
Dostępność ElevenLabs
Jednym z podstawowych powodów, które sprawiły, że sięgnąłem po narzędzie ElevenLabs, była jego cyfrowa dostępność. Jako osoba niewidoma, komputer obsługuję za pomocą czytnika ekranu. Więc narzędzie, z którego chciałem korzystać, musiało być dla niego dostępne.
W chwili, gdy zainteresowałem się ElevenLabs, było to bardzo młode rozwiązanie. Na rynku funkcjonowało dopiero od kilku miesięcy. Cały jego frontend, czyli warstwa widoczna dla użytkownika, stworzony został z użyciem klasycznego języka HTML w jego piątej wersji (HyperText Markup Language – ang. Język znaczników hipertekstowych). Dzięki temu całość narzędzia była bardzo dobrze dostępna cyfrowo. Jednak już w trakcie pracy z ElevenLabs zauważyłem, że wraz z jego kolejnymi aktualizacjami i dodawaniem nowych funkcji, pogorszeniu ulega dostępność narzędzia dla czytnika ekranu.
Zaczęło się od drobnych problemów. Przy kolejnej aktualizacji z interfejsu narzędzia zniknęły etykietki, dzięki którym czytnik ekranu informował do czego służą poszczególne przyciski panelu sterowania generowaniem mowy. Gdy zgłaszałem twórcom wykryte problemy, otrzymywałem zapewnienia szybkiej naprawy. Jednak z czasem było tylko gorzej. Bardzo szybko pojawiły się kolejne błędy dostępności. Nieprawidłowo zaetykietowane pola edycyjne, brak struktury nagłówkowej, błędna konstrukcja tabel, zbyt niski kontrast czcionki do tła czy brak możliwości obsługi narzędzia z poziomu klawiatury.
Generowanie kolejnych fragmentów książki, coś co wcześniej wykonywałem szybko i bez namysłu, nagle zaczęło ode mnie wymagać stosowania najróżniejszych sztuczek. Musiałem zacząć wykorzystywać funkcje czytnika ekranu, z istnienia których część ich użytkowników nawet nie zdaje sobie sprawy. Tworzyłem wirtualne lokalizacje na ekranie. Zmuszałem przeglądarkę internetową do wyłączania styli. Jako osoba niewidoma – zamiast z klawiatury, korzystałem z touchpada komputera, używając kursora myszy do obsługi ElevenLabs. Na szczęście użytkownikiem czytnika ekranu jestem już od trzydziestu lat, więc w tym czasie udało mi się poznać kilka nietypowych sposobów obsługi komputera, które teraz pomogły mi doprowadzić ten projekt do szczęśliwego zakończenia.
Liczba problemów z dostępnością cyfrową rosła w zastraszającym tempie. Niedługo po tym, jak skończyłem generować audiobooka, do interfejsu ElevenLabs wprowadzono kilka dynamicznych elementów działających w oparciu o technologię JavaScript. Sprawiły one, że aktualnie osoba z niepełnosprawnością, używająca technologii asystujących, praktycznie nie jest w stanie samodzielnie korzystać z ElevenLabs. Na przestrzeni sześciu miesięcy narzędzie stało się bardzo słabo dostępne dla osób używających czytników ekranu.
ElevenLabs – Czy warto?
Pomimo wielu problemów z dostępnością cyfrową, jakie towarzyszyły mi na końcu generowania audiobooka uważam, że było warto sięgnąć po to narzędzie. Spełniło ono wszystkie moje oczekiwania. Było proste i bardzo intuicyjne w obsłudze. Jest to doskonałe rozwiązanie dla osób, które niewielkim kosztem chcą stworzyć prawdziwą, pełnowartościową książkę audio.
Oczywiście część praktyk firmy ElevenLabs może budzić wątpliwości i nomen omen generować pytania. Na przykład czy w oczekiwaniu na sklonowanie głosu konieczne jest opłacanie tak wysokiego abonamentu przez okres kilku miesięcy? Czemu po wygenerowaniu głosu w ramach odpowiednio droższego abonamentu, już nie można z niego korzystać w tańszej subskrypcji? Czemu narzędzie nie posiada prostego edytora słownika wymowy? Czemu nie radzi sobie z odczytem dłuższych zdań? Albo dlaczego firma całkowicie przestała dbać o dostępność cyfrową? Jednak pomijając te zastrzeżenia, ElevenLabs – przynajmniej na tę chwilę, nadal stanowi najlepsze narzędzie do generowania audiobooków. W żaden sposób nie można tego nazwać automatycznym tworzeniem książek audio, ale jest to znacznie bardziej zautomatyzowany, szybszy i tańszy proces, niż klasyczne nagranie z udziałem lektora.
Aktualnie ElevenLabs jest narzędziem bardzo słabo dostępnym dla części osób niepełnosprawnych. Głównie niewidomych oraz użytkowników korzystających jedynie z klawiatury. Opisane powyżej problemy nie są nietypowe i mogą zostać stosunkowo łatwo rozwiązane przez firmę. Osobiście uważam, że na obecnym etapie dynamicznego rozwoju narzędzia, dostępność cyfrowa padła ofiarą oczekiwań akcjonariuszy spodziewających się szybkiego wdrażania nowych funkcji i dużych zwrotów z inwestycji. Myślę jednak, że w momencie osiągnięcia stabilizacji rynkowej, ElevenLabs zapewni właściwy poziom dostępności cyfrowej. Wynika to głównie ze specyfiki rynku amerykańskiego oraz wymagań towarzyszących zamówieniom publicznym. Produkty niedostępne cyfrowo nie mogą być kupowane i użytkowane przez administrację publiczną.
Generatywna sztuczna inteligencja rozwija się każdego dnia. Już w chwili pisania tego artykułu algorytmy ElevenLabs potrzebują znacznie krótszych próbek głosu do jego sklonowania w wysokiej jakości, niż miało to miejsce w czasie, gdy kopiowałem swój głos. Błędy przy przetwarzaniu dłuższych tekstów praktycznie już nie występują dla języka angielskiego. Oznacza to, że narzędzie do generowania książek audio jest już w pełni funkcjonalne dla tekstów angielskich. Jestem pewien, że niedługo udoskonalone zostaną algorytmy dla pozostałych wspieranych języków. Wkrótce do narzędzi typu ElevenLabs przesyłać będziemy jedynie tekstową treść publikacji wraz z prostym promptem, określającym jak ostatecznie powinien brzmieć wygenerowany audiobook. A niewiele później powstaną aplikacje, w których wystarczy jedynie otworzyć interesujący nas dokument, aby został on automatycznie odczytany głosem naszego ulubionego lektora, w idealnym tempie oraz z najbardziej odpowiadającą nam intonacją. Wszystko zgodnie z indywidualnymi, ustawionymi wcześniej preferencjami. Czego sobie i Państwu życzę.
Stworzonego przeze mnie za pomocą narzędzia ElevenLabs audiobooka można bezpłatnie pobrać i odsłuchać ze strony:
www.mojaszuflada.pl/zakochany/
Piotr Witek