Sblocca il co-pilota di conversazione AI in tempo reale per il tuo telefono
Sblocca il co-pilota di conversazione AI in tempo reale per il tuo telefono. Costruisci uno strumento potente che trascrive e analizza le conversazioni in tempo reale, fornendo suggerimenti e feedback istantanei per migliorare la comunicazione. Migliora i tuoi colloqui, riunioni e interazioni sociali con questo assistente alimentato dall'AI.
21 febbraio 2025

Questo post di blog esplora il potenziale di un co-pilota di conversazione AI in tempo reale che può assistere con compiti come colloqui di lavoro e ricerche sugli utenti. L'autore presenta lo sviluppo di un'applicazione web e mobile che sfrutta modelli avanzati di conversione da voce a testo e di linguaggio per fornire capacità di trascrizione e suggerimento istantanee, evidenziando i vantaggi di uno strumento del genere nel migliorare la comunicazione e la produttività.
Introduzione all'assistente conversazionale IA in tempo reale
Sfide nella costruzione di una trascrizione in tempo reale e inferenza rapida
Costruzione di una demo di assistente conversazionale basata sul web
Sfruttare il kit Whisper per un assistente conversazionale mobile
Conclusione
Introduzione all'assistente conversazionale IA in tempo reale
Introduzione all'assistente conversazionale IA in tempo reale
Quasi un anno fa, intorno a marzo 2023, quando ChatGPT è appena uscito ed è diventato l'argomento più discusso al mondo, ricordo chiaramente di aver visto una demo di Arony in cui ha costruito un "Interview Breaker" - uno strumento ChatGPT che aiuta a superare i colloqui di lavoro. Questa settimana, ho costruito qualcosa chiamato "Interview Breaker" - un proof of concept realizzato con ChatGPT per superare i colloqui di lavoro. Prende la tua esperienza precedente, ascolta la tua conversazione con il tuo intervistatore e ti dice cosa dire, riempiendoti su cose che potresti non sapere.
In qualità di architetto senior, quando do priorità a cosa concentrarmi per un servizio backend, do priorità alla scalabilità. Questo tipo di strumento causerà il caos nel processo di colloquio di lavoro. Di solito, quando emergono queste grandi tecnologie, come i computer o Internet, cambiano tutti i processi che sono emersi prima di loro. Ciò significa che alcune di queste domande potrebbero non avere più senso da porre se guardiamo molto lontano nel futuro.
Ho pensato che fosse un'idea fantastica perché all'epoca stavo attraversando alcuni processi di colloquio di lavoro, quindi avrei amato avere uno strumento in tempo reale che potesse effettivamente aiutarmi a superarli. In realtà ho provato a costruire quel prototipo in cui utilizzava un modello di riconoscimento vocale per generare la trascrizione e utilizzava anche un modello di linguaggio di grandi dimensioni per generare le risposte, ma quel prototipo non ha mai funzionato bene nella vita reale. Uno dei requisiti fondamentali per questi co-piloti di interviste o conversazioni in tempo reale è che devono avere una bassa latenza e funzionare in tempo reale. Se ci volesse 30-40 secondi per generare alcuni risultati, non funzionerebbe davvero. Sfortunatamente, questo è stato il caso lo scorso marzo, poiché sia il modello di riconoscimento vocale che il modello di linguaggio di grandi dimensioni hanno impiegato molto tempo per l'inferenza. Questo era un semplice progetto in teoria, ma molto difficile da costruire in un prodotto utilizzabile nella realtà.
Tuttavia, un paio di mesi dopo, ho visto un altro prodotto che mostrava uno scenario simile ma con prestazioni quasi in tempo reale. Nell'ingegneria aerospaziale, come in motori a reazione o rientro di veicoli spaziali, come affronti queste sfide?
Sfide nella costruzione di una trascrizione in tempo reale e inferenza rapida
Sfide nella costruzione di una trascrizione in tempo reale e inferenza rapida
Ci sono due componenti chiave per costruire un compagno di conversazione in tempo reale: trascrizione in tempo reale e inferenza veloce.
Trascrizione in tempo reale
Raggiungere la trascrizione in tempo reale è una delle sfide più grandi. I modelli di riconoscimento vocale tipici come Whisper non sono progettati per scenari di streaming, in cui l'audio viene elaborato in piccoli frammenti anziché nell'intera registrazione.
Per superare questo, una soluzione comune è creare un ciclo ricorrente che cattura continuamente piccoli frammenti audio (ad es. ogni 2-5 secondi), li invia al modello di riconoscimento vocale e unisce le piccole trascrizioni. Questo approccio richiede ottimizzazioni per garantire l'accuratezza, come il confronto dei timestamp delle parole di connessione per migliorare la trascrizione finale.
Fortunatamente, la tecnologia di riconoscimento vocale è evoluta rapidamente e ora ci sono soluzioni che consentono la trascrizione in tempo reale, come l'utilizzo di modelli incredibilmente veloci ospitati su piattaforme come Replicate o la distribuzione di modelli leggeri come Whisper Kit direttamente sui dispositivi mobili.
Inferenza veloce
La seconda sfida è raggiungere un'inferenza molto veloce con il modello di linguaggio di grandi dimensioni per generare suggerimenti in tempo reale. Per affrontare questo:
-
Scegli un modello di linguaggio veloce e piccolo: Modelli come Meteo 7B sono molto più piccoli e veloci di GPT-4, consentendo una generazione di risposte più rapida con meno risorse di calcolo.
-
Riduci la dimensione dell'input: Man mano che la conversazione si allunga, l'input per il modello di linguaggio può diventare troppo grande. Tecniche come la sintesi del modello di linguaggio possono essere utilizzate per estrarre solo le informazioni rilevanti e ridurre la dimensione dell'input.
-
Ottimizza la generazione dell'output: Ulteriori ottimizzazioni possono essere eseguite per ridurre il numero di token di output, come l'utilizzo di metodi di ingegneria dei prompt.
Combinando queste tecniche per la trascrizione in tempo reale e l'inferenza veloce, è possibile costruire un compagno di conversazione in tempo reale altamente reattivo che possa fornire suggerimenti e supporto preziosi durante le conversazioni.
Costruzione di una demo di assistente conversazionale basata sul web
Costruzione di una demo di assistente conversazionale basata sul web
Per costruire una demo di co-pilota di conversazione basata sul web, utilizzeremo una combinazione di Flask (un framework web Python) e Replicate (una piattaforma per eseguire modelli AI open-source).
I componenti chiave sono:
-
Trascrizione in tempo reale: Utilizzeremo un modello di riconoscimento vocale veloce da Replicate per generare una trascrizione in tempo reale della conversazione. Ciò comporta la cattura continua di piccoli frammenti audio, l'invio al modello di riconoscimento vocale e la giunzione dei risultati.
-
Inferenza veloce: Utilizzeremo un modello di linguaggio piccolo e veloce da Replicate (come Minitram) per generare suggerimenti e risposte in base alla trascrizione in tempo reale. Esploreremo anche tecniche come la riduzione della dimensione dell'input e la sintesi della conversazione per migliorare la velocità.
L'app web avrà le seguenti funzionalità:
- Un campo di testo per l'utente per fornire il contesto sulla conversazione.
- Un pulsante "Registra" per avviare e interrompere la registrazione audio.
- Un pulsante "Ottieni suggerimento" per attivare il modello di linguaggio e ottenere suggerimenti.
- Una visualizzazione in tempo reale della trascrizione.
- Una visualizzazione dei suggerimenti generati.
Sfruttare il kit Whisper per un assistente conversazionale mobile
Sfruttare il kit Whisper per un assistente conversazionale mobile
Dopo aver visto la demo impressionante del co-pilota di conversazione basato sul web, ho deciso di esplorare il potenziale della costruzione di una versione mobile utilizzando il framework open-source Whisper Kit. Whisper Kit fornisce un pacchetto Swift che consente la distribuzione del modello di riconoscimento vocale Whisper direttamente sui dispositivi iOS, consentendo la trascrizione in tempo reale con una latenza minima.
Per iniziare, ho clonato il repository GitHub di Whisper Kit e aperto il progetto di esempio in Xcode. Il progetto include una cartella whisper-ax
, che contiene il codice sorgente per un'app iOS di esempio che dimostra l'utilizzo di Whisper Kit.
Nel file ContentView.swift
, ho prima definito alcune variabili di stato aggiuntive per gestire l'input del prompt e il riepilogo della risposta API dal modello di linguaggio di grandi dimensioni. Ho quindi aggiunto un campo di input per l'utente per personalizzare il prompt, che verrà utilizzato per fornire il contesto al modello di linguaggio di grandi dimensioni.
Successivamente, ho implementato la funzione getSuggestion()
, che è responsabile dell'invio della trascrizione e del prompt all'API Replicate per generare una risposta dal modello di linguaggio Mistral. Questa funzione gestisce la natura in streaming dell'API Replicate, controllando continuamente lo stato fino al completamento della risposta e quindi aggiornando la variabile di stato API_response_summary
con il suggerimento generato.
Infine, ho aggiunto un pulsante "Ottieni suggerimento" che attiva la funzione getSuggestion()
e ho visualizzato il riepilogo della risposta API sotto la trascrizione in tempo reale.
L'app iOS risultante consente agli utenti di avviare una conversazione, vedere la trascrizione in tempo reale e ricevere suggerimenti istantanei dal modello di linguaggio di grandi dimensioni per aiutare a guidare la conversazione. L'utilizzo di Whisper Kit per la funzionalità di riconoscimento vocale, combinato con l'integrazione dell'API Replicate, fornisce un'esperienza di co-pilota di conversazione fluida e reattiva direttamente sul dispositivo mobile dell'utente.
Questo approccio sblocca nuove possibilità per l'assistenza conversazionale contestuale e in tempo reale, dando agli utenti un supporto intelligente durante discussioni importanti, colloqui di lavoro e interazioni sociali. Sfruttando gli ultimi progressi nel riconoscimento vocale e nei modelli di linguaggio di grandi dimensioni, il co-pilota di conversazione mobile può diventare uno strumento prezioso per migliorare la comunicazione e la produttività.
Sono entusiasta di continuare a perfezionare e lucidare questa app di co-pilota di conversazione mobile e non vedo l'ora di condividerla con la comunità non appena sarà pronta per il rilascio. Fatemi sapere se avete interesse nel provare l'app o fornire feedback sul suo sviluppo.
Conclusione
Conclusione
In conclusione, lo sviluppo di un co-pilota di conversazione in tempo reale è un compito complesso che richiede di affrontare diverse sfide chiave. Le principali sfide includono:
-
Generazione di trascrizione in tempo reale: Raggiungere la trascrizione vocale-testo a bassa latenza e accurata è fondamentale per fornire feedback in tempo reale. Tecniche come l'utilizzo di un modello di riconoscimento vocale in streaming e l'ottimizzazione del collegamento tra frammenti audio e testo trascritto sono essenziali.
-
Inferenza veloce del modello di linguaggio di grandi dimensioni: Generare suggerimenti e risposte rilevanti rapidamente richiede l'utilizzo di modelli di linguaggio più piccoli e specializzati che possano fornire tempi di inferenza veloci. Tecniche come la riduzione della dimensione del token di input e la sintesi della cronologia della conversazione possono contribuire a migliorare le prestazioni.
-
Integrazione senza soluzione di continuità: Combinare la generazione di trascrizione in tempo reale e l'inferenza del modello di linguaggio di grandi dimensioni in un'applicazione coesa e user-friendly è fondamentale per fornire un'esperienza fluida ed efficace.
La dimostrazione ha mostrato come queste sfide possono essere affrontate utilizzando una combinazione di tecnologie, tra cui il modello di riconoscimento vocale Whisper, il modello di linguaggio Minstrel e la piattaforma Replicate per una facile distribuzione. Le applicazioni web e mobili risultanti forniscono trascrizione in tempo reale e generazione di suggerimenti, mostrando il potenziale di questa tecnologia per migliorare vari scenari conversazionali, come colloqui di lavoro, interviste di ricerca utente e interazioni sociali.
Complessivamente, lo sviluppo di un co-pilota di conversazione in tempo reale è un'area promettente di ricerca e sviluppo, con il potenziale di migliorare significativamente la qualità e l'efficacia della comunicazione tra esseri umani.
FAQ
FAQ