Whisper ja ChatGPT: Äänen muuntaminen tekstiyhteenvetoiksi (2023)

Whisper and ChatGPT: Transforming Audio into Text Summaries (1)

Tässä artikkelissa aiomme tutkia OpenAI:n automaattisen puheentunnistusmallin - Whisperin ja sen API:n puheesta tekstiksi -ominaisuuksia. Havainnollistaaksemme transkriptoimme podcastin (mp3-tiedoston) tekstiksi ja käytämme OpenAI:n ChatGPT-sovellusliittymää tekstin yhteenvedon tekemiseen.

Mantium on nopein tapa saavuttaa vaiheen yksi AI -putkilinjassa automatisoidulla, synkronoidulla tiedonvalmistuksella, joka puhdistaa tietosi ja käyttövalmiiksi.Käymmeverkkosivustooppia lisää.

Puhe-tekstiin ymmärtäminen

Puhe-teksti-tekniikka, jota yleisesti kutsutaan automaattiseksi puheentunnistukseksi (ASR), antaa tietokoneille mahdollisuuden tunnistaa ja muuntaa puhutun kielen tekstiksi.Vaikka koneoppimisen ja tekoälyn nykyinen kehitys on ollut jo jonkin aikaa, ovat lisänneet sen tarkkuutta ja saavutettavuutta.Puhe-teksti-tekniikassa on monia potentiaalisia etuja, mukaan lukien alavirran tiedon tuottaminen ja muuntaminen, vammaisten parannettu saatavuus, lisääntynyt tietojen syöttäminen ja transkription tehokkuus sekä parannetut viestintäominaisuudet eri asetuksissa.

Puhe-teksti-tekniikkaa taustalla oleva peruskonsepti on analysoida äänisyöttö algoritmeilla ja tilastollisilla malleilla lausutettujen sanojen ja lauseiden tunnistamiseksi.Tämä suoritetaan jakamalla äänisignaali pienempiin osiin, kuten yksittäisiin ääniin tai foneemeihin, ja vertaamalla näitä komponentteja suureen tietokantaan tunnistettuista sanoista ja kielimalleista.

Kun kirjoitat puheen tekstille, voit käyttää sitä erilaisiin tarkoituksiin, mukaan lukien suljettujen tekstitysten luominen videoihin, mahdollistaa handsfree-keskustelut mobiililaitteilla ja älykkäillä kaiuttimilla ja antaa äänentietojen saatavuutta kuulovammaisille ihmisille.

Tietoja Whisper-mallista

Whisper on OpenAI: n kehittämä huipputekninen automaattinen puheentunnistusmalli.Se hyödyntää Internetistä verkkosivustojen mittakaavan tekstiä koneoppimisjärjestelmien kouluttamiseen.Whisper -lähestymistavan pääpaino on yksinkertaistaa puheentunnistusputken yksinkertaistaminen poistamalla erillisen käänteisen tekstin normalisointivaiheen tarve naturalististen transkriptioiden tuottamiseksi.

Whisper-mallissa käytetään minimalistista lähestymistapaa datan esikäsittelyyn ja juniin ennustamaan transkriptien raa'an tekstin soveltamatta merkittävää standardisointia.Koulutusprosessi perustuu sekvenssit-sekvenssimallien ilmaisulle oppiakseen kartoittamaan lausuntojen ja niiden kirjoitettujen muotojen välillä.

Tämä lähestymistapa mahdollistaa monipuolisen tietojoukon, joka kattaa laajan äänijakauman erilaisista ympäristöistä, tallentamisen asetuksista, kaiuttimista ja kielistä.OpenAI -tiimi kehitti useita automatisoituja suodatusmenetelmiä koulutustietojoukon laadun parantamiseksi.

Lisäksi OpenAi-tiimi kehitti ”transkriptio-tyyppisiä” oppimista monia heuristiikkaa koneiden luomien kopioiden havaitsemiseksi ja poistamiseksi harjoitustietoaineistosta.Tässä yhteydessä termi ”transkriptio-ese” kuvaa ASR: n tuottamien transkriptien ilmiötä, jotka eivät ole naturalistisia eivätkä heijasta tarkasti sitä, kuinka ihmiset puhuvat.Monet Internetissä olevat kopiot eivät ole ihmisen tuottamia, vaan olemassa olevien ASR-järjestelmien tuotosta.

Whisper käyttää äänikielen ilmaisinta varmistaakseen, että puhuttu kieli vastaa transkription kieltä.Jos nämä kaksi eivät vastaa, (ääni-, transkripti) -paria ei sisälly tietojoukkoon puheentunnistuskoulutuksen esimerkkinä.Ryhmä suorittaa myös duplisaatiota transkriptiotasolla koulutustietojoukon ja arviointitietojoukkojen välillä saastumisen välttämiseksi.

Whisperin malliarkkitehtuuri on kooderi-dekoderimuuntaja.Malli voi suorittaa monia erilaisia tehtäviä samassa tulo -äänisignaalissa, kuten transkriptio, käännös, äänen aktiivisuuden havaitseminen, kohdistaminen ja kielen tunnistaminen.

Esimerkki - Yhteenveto podcast -transkriptioiden suurista teksteistä Whisperin ja ChatgPT -sovellusliittymän avulla

Tässä opetusohjelmassa opimme podcastin (äänitiedoston) kirjoittamisen tekstiin ja käyttämällä sitten Openain chatgPT-sovellusliittymää (GPT-3.5 Turbo -malli) tiivistämään transkription.Hyödyntämme Openain sovellusliittymän käsittelemään tekstin ja tallentamaan yhteenvetoisen tulosteen tiedostoon.

On tärkeää huomata, että GPT-3.5 Turbon merkkiraja on 4097 tokenia sovellusliittymää kohden.Suurten tekstien käsittelemiseksi meidän on varmistettava, että teksti on jaettu pienempiin paloihin, kukin merkkirajan sisällä.Siksi toteutamme tunnuslaskurin panosten rahakkeiden lukumäärän mittaamiseksi ja jakamaan sen vastaavasti.

Mantiumin avulla voit ladata äänitiedot liittimellä, esikäsittelyllä ja suorittaa erilaisia muunnoksia, kaikki muutamalla napsautuksella.Käymmeverkkosivustoaloittaa.

Äänitiedosto

Podcast, jota aiomme käyttää tässä opetusohjelmassaSelviytynyt chatgpt Christian Hubickin kanssaohjelmistotekniikan mukaan päivittäin.Olemme jo ladanneet MP3 -tiedoston tätä opetusohjelmaa varten.

Vaihe 1: Tuo vaadittavat kirjastot

Tuo ensin tarvittavat kirjastot:

Tuo OpenAiImport TikTokenIMport Whisper
Vaihe 2: Literoi podcast Whisperilla

Lataamme nyt kuiskausmallin ja kirjoitamme podcastin.Transkriptoitu teksti tallennetaan tiedostoon.”Pohja” on version kuiskausmallin nimi 74 miljoonalla parametrilla.

malli = whisper.load_model ("base") # korvata /path/to/your/podcast/file.mp3 polulla # podcast -tiedostoon, jonka haluat transkribti.result = mall.transcribor ("/polku/to/sinun/podcast/file.mp3")print(result [text"] >)rucle = tulos ["teksti"]# kirjoita transkriptit tiedostoon avoimen kanssa ("transcripts.txt", "w") f: f.write(tulos ["teksti"]) f.write ("\ n") f.close ()

Tässä on kuva kirjoitetusta tekstitiedostosta.

Whisper and ChatGPT: Transforming Audio into Text Summaries (2)
Vaihe 3: Määritä aputoiminnot

Määrittelemme seuraavat auttajatoiminnot:

1.count_tokens (): Laskee rahakkeiden lukumäärän tietyssä tekstissä.

def count_tokens(text): encoding = tikttoken.get_encoding("cl100k_base") num_tokens = len(encoding.encode(text)) return num_tokens

Huomaa, että koodausmalli CL100K_BASE on tarkoitettu vain GPT-3.5-turbo-mallille, jos käytät toista mallia,Tässä on luetteloOpenai -malleista, joita Tiktoken tukee.

2.Process_input_text ():Aputoiminto vastaa annettujen tietojen käsittelystäsijoita tekstija luomalla yhteenvetoversio jakamalla se pienempiin paloihin.Se jakaa tekstin paloiksi, jotka perustuvat suurimpien sallittujen rahakkeiden perusteella.Tämä toiminto on ratkaisevan tärkeä suurten tekstien käsittelemiseksi ja sen varmistamiselle, että jokainen palka on merkkirajan sisällä, varmistaen, että emme ylitä merkkirajaa sovellusliittymää kohden, kuten alla oleva virheviesti osoittaa.


"Virheellinenquestror: Tämän mallin suurin kontekstipituus on 4097 rahakketta. Viestisi kuitenkin johtivat 15489 rahakkeeseen. Pienennä viestien pituutta."

Whisper and ChatGPT: Transforming Audio into Text Summaries (3)

Transkriptoitu tiedosto on 15489 merkintä, kuten yllä on esitetty.Katsotaanpa alla olevaa esikäsittelykoodia varmistaaksesi, että emme käy yli maksimaalisen merkkivallan.

def process_input_text(syöttöteksti, max_tokens, api_avain): openai.api_key = api_avain numerotunnusten, tokens = count_tokens(input_text) chunks = [] t:lle alueella(0, numerotunnusten, max_tokens): chunks.append:ttokensma ]) summarised_text = "" total_tokens_input_text = 0 total_tokens_summary = 0 num_chunks = 0 osissa paloina: chunk_text = encoding.decode(chunk) print(f"Nykyinen osa: {chunk_text}") yhteenveto = gener_text_summary total_tokens_input_text += count_tokens(chunk_text)[0] total_tokens_summary += count_tokens(yhteenveto)[0] num_chunks += 1 return summared_text, total_tokens_input_text, total_tokens_summary, num_chunks

Huomaa, että koodissa on kolme muuttujaa seuraamaan Input_Text: n kokonaismerkkejä ja tiivistelmää tekstiä ja palojen kokonaismäärää.

3.generate_summary (): Lähetä pyynnön OpenAI -sovellusliittymään ja vastaanottaa yhteenveto tekstin vastauksena.Lisäsimme CHATGPT API -kehotteen luomaan yhteenveto.Jos et ole tuttu, katsoblogiSe esittelee aiheen.

def generate_summary(input_text, model="gpt-3.5-turbo", temperature=0): system_content = "Olet hyödyllinen yhteenveto. Yhteenveto tarkalleen sisällöstä" # Puskuritunnisteet ottamaan huomioon mallin kontekstin pituuden buffer_tokens = 50 # Laske suurin sallittu käyttäjätunnus max_user_tokens = 4097 - count_tokens(system_content)[0] - puskurin_tunnisteet user_tokens = count_tokens(input_text)[1][:max_user_tokens] user_content = encoding.decode,ples.crehatmodel. messages=[ {"role": "system", "content": system_content}, {"role": "user", "content": user_content} ], temperature=temperature ) palautuksen valmistuminen["valinnat"][0] ["viesti"]["sisältö"]

Yllä olevassa koodissa meillä onmax_user_tokensMuuttuja, joka laskee sallittujen käyttäjämerkkien enimmäismäärän.Mallin kokonaismäärä on 4097 tokenia.Se vähentää järjestelmän sisältöön ja puskurimerkkejä kokonaismerkin kokonaisrajasta sallittujen kokonaismäärän kokonaismäärästä.Sillä aikaapuskuri_tokensovat lisätunnuksia, jotka on varattu sen varmistamiseksi, että malli ei ylitä enimmäisrajaansa luodessaan vastauksia. Tämä estää mahdolliset virheet, joita voi ilmetä merkkirajan ylittämisestä.

Vaihe 4: Päätoiminto

Nyt toteutamme päätehtävän, joka tulee:

  • Aseta sovellusliittymän avain
  • Määritä syöttöteksti (kirjoitettu podcast)
  • Käsittele syöttöteksti ja luo tiivistelmä teksti
  • Tallenna yhteenveto teksti tiedostoon
Jos __name__ == "__main__": api_key = "api-avain" openai.api_key = api_key input_text = tulos ["text"] max_tokens = 4097 yhteenveto_text, total_tokens_input_text, total_tokens_summary, num_chunks = prosess_input_text (INTONS_TEXT, API_TEKES, API_TEKS,"Kokonaismerkit input_text: {total_tokens_input_text}") tulosta (f "Total -tokens tiivistetyssä tekstissä: {total_tokens_summary}") tulosta (f "prosessoitujen palasten lukumäärä: {num_chunks}") tulosta (tiivistelmä_text) avoimen kanssa ("Yhteenveto.txt "," w ") tiedostona: file.write (tiivistelmä_text) file.close ()

Korvaa "sinun_openai_api_key”Varsinaisella sovellusliittymäsi avaimella.

Yllä olevasta kuvasta voimme nähdä seuraavat mittarit, koska se selittää miksi meidän piti jakaa input_text ennen yhteenvedon luomista;

  • Tunnuksia yhteensä input_text: 15450
  • Yhteenveto -tekstin kokonaismerkit: 509
  • Käsiteltyjen palojen lukumäärä: 5

Tässä on yhteenveto koko jaksosta (tunti, kuusitoista minuuttia ääntä).

Whisper and ChatGPT: Transforming Audio into Text Summaries (4)

Tässä on koko koodi yhdessä

Tuo tikTokenIMport Openai# Aseta koodaus globaalina muuttujanaCoding = tiktoken.get_encoding ("cl100k_base") def count_tokens (text): tokens = koodaus.encode (teksti) num_tokens = len (tokens) return num_tokens, tokensdef generate_summary (syöttö_text, malli = "GPT-3.5-turbo ", lämpötila = 0): system_content =" Olet asiantuntija tehdä vahvoja tosiasiallisia yhteenvetoja. "\" Ota käyttäjän lähettämä kirjoitettu teksti ja tuota tosiasiallinen hyödyllinen yhteenveto. "\" Anna yksityiskohtainenYhteenveto, se on hyvin muotoiltu. "\ "Älä sisällytä mitään, mikä ei ole mukana toimitetussa tekstissä" # puskurin rahakkeet, jotta mallin kontekstin pituus puskuri_tokens = 50 # Laske käyttäjän enimmäismäärät sallittu max_user_tokens = 4097 - count_tokens (system_content) [0] - puskuri_tokens käyttäjä_tokens = count_tokens(input_text) [1] [: max_user_tokens] user_content = koodaus.decode (user_tokens) täydennys = openai.chatcompletion.create (malli = malli, viestit = [{"rooli": "System", "sisältö": system_content}, {{"Rooli": "Käyttäjä", "Content": User_Content}], lämpötila = lämpötila) Paluu loppuun ["Valinnat"] [0] ["viesti"] ["Content"] DEF Process_Input_Text (input_text, max_tokens, API_KEY):Openai.api_key = api_key num_tokens, tokens = count_tokens (input_text) chunks = [] t: lle alueella (0, num_tokens, max_tokens): chunks.append (tokens [t: t+max_tokens]) yhteensä. Yhteenveto_text = ""= 0 num_chunks = 0 Chunk for Chunks: chunk_text = koodaus.decode (chunk) print (f "nykyinen chunk: {chunk_text}") Yhteenveto = generate_summary (chunk_text) yhteenveto_text += yhteenveto_tokens_input_text += count_Tokens (CHUNK_TEX) [0]total_tokens_summary += count_tokens (yhteenveto) [0] num_chunks += 1 paluu yhteenvetona_text, total_tokens_input_text, total_tokens_summary, num_chunksif __name__ == "__main__": api_key = "api-avain" api-apui.api_key = api_key indust_te_text "api-api-appi" api-api-appi_tey_te_text "api-api-name= 4097 Yhteenveto_text, total_tokens_input_text, total_tokens_summary, num_chunks = prosessi_input_text (input_text, max_tokens, api_key) print (f "Total tokens in syöte_text: {Total_Tokens_input_text}") tulostus (f "kokonaistunnisteet. tulosta (f"Käsiteltyjen palojen lukumäärä: {num_chunks}") tulosta (tiivistelmä_text) avoimella ("tiivistyksen.txt", "w") tiedostona: file.write (tiivistelmä_text) file.close ()

Johtopäätös

Yhteenvetona voidaan todeta, että tässä artikkelissa tutkittiin Openai's Whisperia, automaattista puheentunnistusmallia ja sen sovellusliittymää transkriboida ja chatgpt -sovellusliittymää, jotta voidaan tehdä yhteenveto podcast -sisällöstä.Opimme puhe-teksti-tekniikan perusteista sekä siitä, kuinka kuiskausmalli koulutettiin, mukaan lukien sen arkkitehtuuri.

Osoitimme, kuinka podcast transkriboida tekstiin kuiskaten mallin avulla ja tiivistät transkriptiot OpenAi's ChatgPT -sovellusliittymällä.Keskustelimme myös merkkivalojen merkityksestä ja suurten tekstien käsittelystä jakamalla ne pienempiin paloihin.

Hyödyntämällä sekä Whisperin että ChatgPT: n voimaa, voimme muuttaa suuret määrät puhutun sisällön tiivistelmäksi kirjalliseksi tekstiksi avaamalla uusia mahdollisuuksia saavutettavuuteen, tietoanalyysiin ja sisällön luomiseen.

Mitä me Mantiumissa teemme

Yksi takea tästä opetusohjelmasta on, että audiointegraatio on tärkeä tietolähde, mutta miksi?Se voi tarjota arvokkaita oivalluksia siitä, että muut lähteet eivät välttämättä ole helposti saatavissa.
Lisäksi äänen kanssa työskentely voi olla vaikeaa varsinkin tuotantoasetuksissa, koska ääni on esikäsiteltävä, jotta se olisi mallille hyväksyttävässä, tehokkaassa muodossa.

Mantiumin äänitietojen integroinnin avulla sinun ei kuitenkaan tarvitse kirjoittaa pitkää koodia esikäsittelyäänen ja lisäämään muunnoksia, kuten yhteenvetoja.Mantiumissa rakennamme liittimiä, jotka tekevät äänitiedostojen lataamisesta helpoksi, esim.Suorita zoom -kokouksista transkriptio, muunnos, kuten yhteenveto ja muut ominaisuudet, kaikilla on muutamalla napsautuksella.Käymmeverkkosivustooppia lisää.

Viitteet

  1. Vahva puheentunnistus laajamittaisen heikon valvonnan avulla
  2. Kuiskaa github repo
  3. Esittelyssä chatgpt ja kuiskaussovellusliittymät

Seuraa meitä

  • Whisper and ChatGPT: Transforming Audio into Text Summaries (5)
  • Whisper and ChatGPT: Transforming Audio into Text Summaries (6)
  • Whisper and ChatGPT: Transforming Audio into Text Summaries (7)
  • Whisper and ChatGPT: Transforming Audio into Text Summaries (8)
Top Articles
Latest Posts
Article information

Author: Ms. Lucile Johns

Last Updated: 27/08/2023

Views: 5801

Rating: 4 / 5 (41 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Ms. Lucile Johns

Birthday: 1999-11-16

Address: Suite 237 56046 Walsh Coves, West Enid, VT 46557

Phone: +59115435987187

Job: Education Supervisor

Hobby: Genealogy, Stone skipping, Skydiving, Nordic skating, Couponing, Coloring, Gardening

Introduction: My name is Ms. Lucile Johns, I am a successful, friendly, friendly, homely, adventurous, handsome, delightful person who loves writing and wants to share my knowledge and understanding with you.