Kjo është ende një punë në vazhdim e një projekti tim aktual. Por nuk e gjeta (lehtësisht) këtë në internet, kështu që mendoj se ia vlente ta shpërndaja.

Kështu që javën e kaluar Whisper (modeli i transkriptimit audio) u lëshua si burim i hapur nga OpeanAi, që ishte një veprim i lezetshëm (edhe pse ata ndoshta po bëjnë vetëm pëshpëritje për të trajnuar GPT-4 dhe më tej). Mund ta shkarkoni dhe ta ekzekutoni në disa audio, në nivel lokal. Por nëse jeni si unë dhe nuk keni një GPU të ulur përreth dhe nuk dëshironi të prisni orë të tëra për të transkriptuar një audio të shkurtër, mund të përdorni Google Colab falas për ta transkriptuar atë tek ju në disa sekonda ose minuta.

Pasi e bëra këtë, m'u kujtua një ide e vjetër e imi për të bërë një model klasifikimi për të transkriptuar podkastet që më pëlqejnë, me një etiketë që thoshte se cili pjesëmarrës tha cilin rresht të tekstit. Diçka si kjo:

Personi A: Hej, çfarë mendoni për DreamStudio?

Personi B: Po, është një faqe e bukur.

Personi A: Sigurisht që është.

Whisper nuk e ka atë (të paktën jo ende), dhe mendoj se për çdo sistem të tillë do t'ju duhej një hap i personalizuar i rregullimit të modelit për të klasifikuar një zë specifik, kështu që do t'ju duhet ta rregulloni atë në çdo person të ri.

Pashë këtë tutorial vërtet të zoti se si të bësh klasifikimin e zërit (TLDR: ai përdor një metodologji nga një konkurs Kaggle për tingujt urbanë dhe mori një saktësi mjaft të mirë). E provova, gjë që është shumë e lehtë me kodin e tij, dhe mora të njëjtat rezultate të mira. Por më duhej ta rregulloja modelin për të klasifikuar zërat që doja (njerëzit nga podkasti që më pëlqen). Është shumë e lehtë për të marrë orë dhe orë të tëra të audios së podcast-it, por më duhen të dhëna të etiketuara për të klasifikuar njerëzit, dhe kjo është pjesa e vështirë. Ndoshta zakonisht kanë 2+ persona të përfshirë, kështu që ata

Ka disa tutoriale dhe disa njerëz në internet që thonë se mënyra më e lehtë për të etiketuar të dhënat audio është të shkarkoni audacity dhe të shënoni seksione të të dhënave me një etiketë. E provova, por është shumë e ngadaltë për ta bërë me dorë. Kështu që mendova të përdor pëshpëritjen për të më ndihmuar me etiketimin. Duket si një ide e mirë sepse transkriptimet e pëshpëritjeve janë diçka e tillë:

Kështu që unë mund të përdor vulat kohore për të prerë skedarin e madh audio në shumë pjesë të vogla. Secili prej tyre është (zakonisht) një person i vetëm që flet diçka:

from pydub import AudioSegment
audio_file= "audio_name.mp3"
audio = AudioSegment.from_mp3(audio_file)

for (i,x) in enumerate(data["segments"]):
    start = x["start"] * 1000
    end = x['end'] *  1000
    text = x['text'] * 1000
    trecho = audio[start:end]
    trecho.export(f"./small_audios/{i}.mp3", format="mp3")

Pas kësaj, unë mund të vazhdoj dhe të dëgjoj secilën nga audiot dhe ta vendos atë në dosjen e duhur (secila dosje përfaqëson një person):

Dhe më vonë, unë thjesht mund të bëj të njëjtin proces që bëra me këtë tutorial. Siç thashë, është ende një punë në vazhdim, pastaj planifikoj të kthehem këtu për të shkruar se si përfundoi.

Unë imagjinoj se krijimi i një tubacioni me atë + shumë audio podcast + disa kontrolle manuale mund të përfundojë në një proces për të klasifikuar njerëzit nga çdo podcast shumë lehtë.

Më vonë, pashë këtë tutorial ku ai përdori grupimin për të ndarë pjesët audio midis pjesëmarrësve (grupeve). Unë mendoj se mund ta përdor këtë teknikë së bashku me seksionet e krijuara nga Whisper për të marrë etiketat më shpejt.