Lås upp AI-samtalskopilot i realtid för din telefon

Lås upp en AI-samtalskopilot i realtid för din telefon. Bygg ett kraftfullt verktyg som transkriberar och analyserar samtal i realtid och ger direkta förslag och feedback för att förbättra kommunikationen. Förbättra dina intervjuer, möten och sociala interaktioner med denna AI-drivna assistent.

19 februari 2025

party-gif

Det här blogginlägget utforskar potentialen hos en AI-samtalskopilot i realtid som kan hjälpa till med uppgifter som jobbintervjuer och användarforskning. Författaren visar upp utvecklingen av en webb- och mobilapplikation som utnyttjar avancerade tal-till-text- och språkmodeller för att tillhandahålla omedelbar transkriptions- och förslagsfunktionalitet, och belyser fördelarna med ett sådant verktyg för att förbättra kommunikation och produktivitet.

Introduktion till AI-samtalskopilot i realtid

För nästan ett år sedan, runt mars 2023, när ChatGPT just hade kommit ut och blivit det hetaste ämnet i världen, minns jag tydligt att jag såg en demo från Arony där han byggde ett "Interview Breaker" - ett ChatGPT-verktyg som hjälper dig att knäcka jobbintervjuer. Den här veckan byggde jag något som kallas "Interview Breaker" - en proof of concept gjord med ChatGPT för att knäcka jobbintervjuer. Den tar din tidigare erfarenhet, lyssnar på din konversation med din intervjuare och säger vad du ska säga, och fyller på saker du kanske inte vet.

Som en senior arkitekt, när jag prioriterar vad jag ska fokusera på för en backend-tjänst, prioriterar jag skalbarhet. Den här typen av verktyg kommer att ställa till med kaos i jobbintervjuprocessen. Vanligtvis, när sådana här stora teknologier dyker upp, som datorer eller internet, förändrar de alla de processer som uppstod före dem. Det innebär att en del av de här frågorna kanske inte längre gör någon mening att ställa om vi tittar långt in i framtiden.

Jag tyckte att det var en fantastisk idé eftersom jag faktiskt gick igenom några jobbintervjuprocesser då, så jag skulle älska att ha ett verktyg i realtid som faktiskt kan hjälpa mig att knäcka det. Jag försökte faktiskt bygga den där prototypen där den använde en tal-till-text-modell för att generera transkriptet och också använde en stor språkmodell för att generera svar, men den prototypen fungerade aldrig bra i verkligheten. En av de hårda kraven för de där realtidsintervju- eller konversationsmedhjälparna är att de måste ha låg latens och vara i realtid. Om det skulle ta 30-40 sekunder för den att generera några resultat, skulle det inte fungera. Tyvärr var det fallet i mars förra året, eftersom både tal-till-text-modellen och den stora språkmodellen tog ganska lång tid att dra slutsatser.

Men ett par månader senare såg jag en annan produkt som visade ett liknande scenario men med nästan realtidsprestation. Inom flygplaningenjörskonst, som i jetmotorer eller rymdfarkosternas återinträde, hur närmar du dig de här utmaningarna?

Utmaningar vid byggande av realtidstranskript och snabb inferens

Det finns två nyckelkomponenter för att bygga en realtidskonversationsmedhjälpare: realtidstranskript och snabb inferens.

Realtidstranskript

Att uppnå realtidstranskription är en av de största utmaningarna. Typiska tal-till-text-modeller som Whisper är inte utformade för strömningsscenarier, där ljudet bearbetas i små bitar snarare än hela inspelningen.

För att övervinna detta är en vanlig lösning att skapa en återkommande loop som kontinuerligt fångar upp små ljudbitar (t.ex. var 2-5 sekund), skickar dem till tal-till-text-modellen och sätter ihop de små transkripten. Den här metoden kräver optimeringar för att säkerställa noggrannhet, som att jämföra tidsstämplar för anslutande ord för att förbättra det slutliga transkriptet.

lyckligtvis har tal-till-text-tekniken utvecklats snabbt, och det finns nu lösningar som möjliggör realtidstranskription, som att använda otroligt snabba modeller som är värdbaserade på plattformar som Replicate eller genom att distribuera lättare modeller som Whisper Kit direkt på mobila enheter.

Snabb inferens

Den andra utmaningen är att uppnå mycket snabb inferens med den stora språkmodellen för att generera förslag i realtid. För att hantera detta:

  1. Välj en snabb och liten språkmodell: Modeller som Meteo 7B är mycket mindre och snabbare än GPT-4, vilket möjliggör snabbare svarsgenerering med mindre beräkningsresurser.

  2. Minska inmatningsstorleken: När konversationen blir längre kan inmatningen till språkmodellen bli för stor. Tekniker som språkmodellsammanfattning kan användas för att extrahera endast relevant information och minska inmatningsstorleken.

  3. Optimera svarsgenerering: Ytterligare optimeringar kan göras för att minska antalet utdatatokens, som att använda metoder för promptingenjörskonst.

Bygga en webbbaserad samtalskopilotdemo

För att bygga en webbbaserad konversationsmedhjälpardemo kommer vi att använda en kombination av Flask (ett Python-webbramverk) och Replicate (en plattform för att köra öppen källkods-AI-modeller).

Nyckelkomponenterna är:

  1. Realtidstranskript: Vi kommer att använda en snabb tal-till-text-modell från Replicate för att generera ett realtidstranskript av konversationen. Detta innebär att kontinuerligt fånga upp små ljudbitar, skicka dem till tal-till-text-modellen och sätta ihop resultaten.

  2. Snabb inferens: Vi kommer att använda en liten, snabb språkmodell från Replicate (som Minitram) för att generera förslag och svar baserat på transkriptet i realtid. Vi kommer också att utforska tekniker som att minska inmatningsstorleken och sammanfatta konversationen för att förbättra hastigheten.

Webbappen kommer att ha följande funktioner:

  • Ett textinmatningsfält för användaren att tillhandahålla kontext om konversationen.
  • En "Spela in"-knapp för att starta och stoppa ljudinspelningen.
  • En "Hämta förslag"-knapp för att utlösa språkmodellen och få förslag.
  • En realtidsvisning av transkriptet.
  • En visning av de genererade förslagen.

Utnyttja Whisper Kit för en mobil samtalskopilot

Efter att ha sett den imponerande demonstrationen av den webbbaserade konversationsmedhjälparen bestämde jag mig för att utforska potentialen i att bygga en mobilversion med hjälp av det öppna källkods-ramverket Whisper Kit. Whisper Kit tillhandahåller ett Swift-paket som möjliggör distribution av Whisper tal-till-text-modellen direkt på iOS-enheter, vilket möjliggör realtidstranskription med minimal fördröjning.

För att komma igång klonade jag Whisper Kit-GitHub-databasen och öppnade exempelprojektet i Xcode. Projektet innehåller en whisper-ax-mapp, som innehåller källkoden för en exempeliOS-app som demonstrerar användningen av Whisper Kit.

I ContentView.swift-filen definierade jag först några ytterligare tillståndvariabler för att hantera promptinmatningen och sammanfattningen av API-svaret från den stora språkmodellen. Jag lade sedan till ett inmatningsfält för användaren att anpassa prompten, som kommer att användas för att ge kontext till den stora språkmodellen.

Därefter implementerade jag getSuggestion()-funktionen, som ansvarar för att skicka transkriptet och prompten till Replicate-API:et för att generera ett svar från Mistral-språkmodellen. Den här funktionen hanterar den strömningsbaserade naturen hos Replicate-API:et, kontrollerar kontinuerligt statusen tills svaret är klart och uppdaterar sedan API_response_summary-tillståndsvariabeln med den genererade förslaget.

Avslutningsvis lade jag till en "Hämta förslag"-knapp som utlöser getSuggestion()-funktionen, och visade API-svarssammanfattningen under realtidstranskriptet.

Den resulterande iOS-appen låter användare starta en konversation, se transkriptet i realtid och få direkta förslag från den stora språkmodellen för att hjälpa till att styra konversationen. Användningen av Whisper Kit för tal-till-text-funktionaliteten, kombinerat med integrationen av Replicate-API:et, ger en smidig och responsiv konversationsmedhjälparupplevelse direkt på användarens mobila enhet.

Den här ansatsen öppnar upp nya möjligheter för realtids-, kontextmedveten konversationsassistans, vilket ger användare intelligent support under viktiga diskussioner, intervjuer och sociala interaktioner. Genom att utnyttja de senaste framstegen inom talidentifiering och stora språkmodeller kan den mobila konversationsmedhjälparen bli ett värdefullt verktyg för att förbättra kommunikation och produktivitet.

Slutsats

Sammanfattningsvis är utvecklingen av en realtidskonversationsmedhjälpare en komplex uppgift som kräver att flera nyckelutmaningar hanteras. De primära utmaningarna inkluderar:

  1. Realtidstranskriptgenerering: Att uppnå låglatent, noggrann tal-till-text-transkription är avgörande för att kunna ge realtidsfeedback. Tekniker som att använda en strömningsbaserad talidentifieringsmodell och optimera kopplingen mellan ljudbitar och transkriberad text är väsentliga.

  2. Snabb inferens med stora språkmodeller: Att generera relevanta förslag och svar snabbt kräver användning av mindre, specialiserade språkmodeller som kan ge snabba inferenstider. Tekniker som att minska inmatningstoken-storlek och sammanfatta konversationshistoriken kan hjälpa till att förbättra prestandan.

  3. Smidig integrering: Att kombinera realtidstranskriptgenerering och inferens med stora språkmodeller till en sammanhängande, användarvänlig applikation är avgörande för att tillhandahålla en smidig och effektiv upplevelse.

Demonstrationen visade hur dessa utmaningar kan hanteras med en kombination av teknologier, inklusive Whisper tal-till-text-modellen, Minstrel-språkmodellen och Replicate-plattformen för enkel distribution. De resulterande webb- och mobilapplikationerna ger realtidstranskription och förslagsgeneration, vilket visar potentialen hos denna teknologi att förbättra olika konversationsscenarier, som jobbintervjuer, användarforskningsintervjuer och sociala interaktioner.

Overlag är utvecklingen av en realtidskonversationsmedhjälpare ett lovande forsknings- och utvecklingsområde, med potential att avsevärt förbättra kvaliteten och effektiviteten i människa-till-människa-kommunikation.

FAQ