Site Overlay

Előadásból olvasmányos jegyzet, automatikusan, mesterséges intelligenciával

Képtelen vagyok egy előadást úgy végig ülni, hogy a lényeg megmaradjon, nem tudok 1-2 óráig egy beszélő emberre figyelni és abból tanulni, olvasással viszont igen. Ha te is ezzel küzdesz, ez egy hasznos tool lehet.

Fotó: Andrea Piacquadio: https://www.pexels.com/hu-hu/foto/hajnal-emberek-no-kave-3755755/

Hosszú évek óta küzdök a fent leírt problémával, de eddig nem lett rá megoldásom, csak a folyamatos küzdelem. Néhány napja viszont kijött az OpenAI két új API-val:

  • ChatGPT: ezt már nem kell bemutatni senkinek, viszont ez eddig csak böngészőből volt elérhető. API-n keresztül csak a GPT-3 modellt lehetett használni, ami nem képes kontextus kezelésre és 10x drágább, mint a most bemutatott GPT-3.5-Turbo, ami ugyanaz a modell, amit a ChatGPT használ, mindössze $0.002/1k token áron.
  • Whisper: egy speech-to-text modell, ami a legtöbb nyelven ért, így magyarul is, meglepően jól. A modell elérhető volt már korábban is, de API-n keresztül még nem, így kellett hozzá egy erősebb GPU, erre viszont már nincs szükség, $0.006/perc áron elérhető.

Ezzel a két modellel és némi Python kóddal megoldható ez a fájdalmas probléma és egy 1.5-2 órás előadás kevesebb, mint $1 költséggel olvasmányos szöveggé alakítható.

A kód publikusan elérhető a github-omon.

Hogyan működik?

Mivel a Whisper API maximum 25mb-os fájlokat tud kezelni, ezért egy normál előadást fel kell bontani több részre. A kódot .m4a audio formátummal teszteltem (ezt adja a QuickTime Player egy képernyő felvétel hang exportálása során), ebből egy előadás 200-250mb, ezt 10 perces darabokra bontva bőven beleférünk a limitbe. Erre egy egyszerű megoldást nyújt a pydub Python könyvtár.
A darabolás után minden részletet egyesével beküld a Whisper API-n, majd visszakapja az elhangzottak szó szerinti leiratát, ami magyar nyelven is meglepően jó eredményt ad, néhány typot leszámítva tökéletes.
A visszakapott darabokat pedig egy nagy szövegtömbbé legozzuk.

Mivel egy előadás szó szerinti leiratát nem túl kényelmes olvasni, főleg ha nem egy TED Talk-ról beszélünk, hanem egy átlagos egyetemi előadásról, itt még nem vagyunk készen. Bár élőbeszédben nem feltűnő vagy zavaró a sok ö-zés, tehát-ozás, több másodperces szünetek, pontatlanul egyeztetett alany-állítmány, tagolatlan mondatok, olvasva kifejezetten borzasztó, de még ezek nélkül sem túl olvasmányos.

Ekkor jön jól a ChatGPT, ami kifejezetten ügyes a fogalmazásban, szövegírásban és hasonló nyelvi területeken, még magyarul is. Viszont neki is vannak korlátai és egy 1.5 órás előadás leiratával nem birkózik meg egyben.

Ahhoz, hogy hatékony eredményt kapjunk, a szöveg felosztom ~300 szavas részekre, figyelve arra, hogy csak mondathatárnál vágja el a nagy szövegtömböt. Majd ezt egyesével már képes feldolgozni a ChatGPT és olyan szöveggé alakítani, amit könnyű olvasni, mégis megmarad a lényeg és a tények.
A 300 szavas határ kísérletezéssel alakult ki. Hosszabb szöveget már hajlamos összefoglalni, mintsem átfogalmazni, így sok részlet elveszik, rövidebb szövegnél pedig egy egységen belül kevesebb kontextusa van, ami pontatlanságokhoz vezethet, mivel egyik részből a másikba nem lát át, így ez egy kellemes optimumnak tűnik.

A ChatGPT-t két utasítással/prompt-tal látom el:

  • kap egy “system” üzenetet, ami beállítja a “személyiségét”, például: “Te egy egyetemi előadó vagy egy pszichológia képzésen”
  • illetve egy bevezetőt a szöveghez, ami utasítja arra, amit várunk tőle: “A következő szöveg egy előadás hangfelvételének AI-al készült leirata. Fogalmazd át könnyen olvashatóvá, miközben minden információt és tényt megtartasz. Te vagy az előadó, fogalmazz érdekes stílusban:”

Ha megkaptuk minden részlet átiratát, akkor egyszerűen egy újabb szövegtömböt alakítunk ki belőlük, majd exportáljuk a tartalmat.

Exportálásnál létrehoz doc, pdf és epub formátumot is, így a legtöbb eszközön olvasható eredményt kapunk. Kifejezetten kényelmes Kindle-ön olvasni egy szóban elhangzott előadást. Egy 1.5 órás előadás szó szerinti leirata 17 A4-es oldal lett, az átfogalmazott verzió 11 oldal.

Egyelőre csak magyarul teszteltem, de működnie kell más nyelvekkel is, ehhez természetesen szükség van az említett prompt-ok módosítására.

Fotó: freestocks.org: https://www.pexels.com/hu-hu/foto/technologia-tablagep-konyv-olvas-12627/

Használat

A használatához szükség van némi Python tapasztalatra és egy OpenAI API kulcsra.
Részletes útmutató a Github-omon.

Egyelőre elég fapados, nem egy kész alkalmazás, csak egy Python kód. Ha úgy érzitek, hogy hasznos az ötlet és szívesen használnátok, akkor igyekszem egy user-friendly alkalmazássá összekalapálni, ezt jelezzétek kommentben, vagy privátban bárhol.

Az eredményeket természetesen mindenki saját felelősségre használja. Előfordulnak még typok, furán használt szavak, de összességében elégedett vagyok vele. Jobb eredményekért érdemes lehet kipróbálni különböző promptokat, esetleg a szövegdarabolás mértékének állítását.

Funfact

Magának a kódnak is egy részét a ChatGPT írta, nagyon meg tudja gyorsítani a fejlesztést azzal, hogy a favágós részeken (pl. fájlok rendezése, audio daraboló algoritmus, stb.) nem kell gondolkodni, nyugodtan lehet fókuszálni a nagy egészre.

Ha tetszett a cikk, akkor kövess Facebook-on is!

Leave a Reply