← Tutti gli articoli

Come fa un'app a sapere chi sta parlando? Dentro la narrazione automatica a cast completo

Per dare a ogni personaggio di un libro la propria voce, devi prima rispondere a una domanda che sembra banale e non lo è: chi sta dicendo questa riga? Un lettore umano risponde senza accorgersene. Il software va istruito, e l’istruzione è la parte interessante. Su questo si regge la narrazione automatica a cast completo, quindi vale la pena guardarci da vicino.

I casi facili, e perché ingannano

Certi dialoghi ti dicono esattamente chi sta parlando.

«Lei è stato in Afghanistan, lo percepisco,» disse Holmes.

Il tag è lì: un verbo di discorso e un nome, accanto alla citazione. Un programma semplice può trovare le virgolette, cercare un «disse» vicino con un nome proprio, e azzeccarci quasi sempre. Se ogni riga somigliasse a questa, il problema sarebbe risolto in un pomeriggio.

Non è così.

Dove si fa difficile

La prosa vera è piena di dialoghi che nascondono chi parla, e ogni modo di nascondere è un problema diverso.

Righe senza attribuzione. Una volta avviata una conversazione, gli autori lasciano cadere i tag, perché ci si aspetta che il lettore tenga il conto.

«Lei è stato in Afghanistan.» «Come diavolo lo sa?» «Non importa. La questione è della massima importanza.»

Tre righe, nessun nome. Per assegnarle devi tenere presente che stanno parlando in due e che si alternano, poi seguire quel filo finché qualcosa non lo interrompe. Sbaglia il conto una volta e ogni riga seguente si attribuisce alla persona sbagliata.

Tag con pronomi. «Disse lui» e «chiese lei» attribuiscono la riga a una persona che la frase non nomina. Devi sapere chi è «lui» in quel momento, il che significa tener traccia di chi è stato menzionato per ultimo e di chi è addirittura presente nella scena.

Azioni al posto dei tag. Spesso non c’è nessun verbo di discorso, solo un’azione accanto alla citazione.

Holmes si appoggiò allo schienale e unì la punta delle dita. «Questo è un problema da tre pipe.»

Niente ha «detto» niente. Una persona deduce che parla Holmes perché è lui ad agire. Il software deve fare lo stesso salto.

Costruire l’elenco del cast. Prima di poter attribuire una riga a Holmes, devi sapere che Holmes esiste, e che «Sherlock», «il signor Holmes», «Holmes» e, nella narrazione del suo amico, «lui» possono essere lo stesso uomo. Costruire quell’elenco di personaggi con i loro alias dal solo testo, senza un elenco dei personaggi, è un passaggio a sé.

E poi c’è l’ambiguo. La narrazione in prima persona, le lettere citate dentro la storia, una folla dove cinque persone parlano insieme, una riga che l’autore ha lasciato deliberatamente oscura. A volte la risposta onesta è che anche un lettore umano attento si fermerebbe.

Come si sono evoluti gli approcci

I primi tentativi erano a regole: trova le virgolette, cerca «disse X» vicino, ripiega sull’alternanza come fallback. Veloci, e fragili esattamente dove la prosa si fa interessante. Poi sono arrivati i modelli statistici addestrati su libri annotati. Gestivano il contesto meglio, ma si appoggiavano ancora ai pattern di superficie.

Quello che è cambiato di recente è che i grandi modelli linguistici leggono un brano più come lo leggerebbe una persona. Dato un pezzo di libro, un modello capace tiene la scena in mente: chi è presente, chi ha parlato per ultimo, di chi è l’azione accanto alla citazione. Usa tutto questo per attribuire una riga, incluse quelle senza tag. Non è magia e non è perfetto, ma è un passo avanti considerevole rispetto ad abbinare «disse» al nome più vicino.

Cosa fa BookNPC con tutto questo

BookNPC esegue questa analisi su un libro pagina per pagina. Ricostruisce il cast, risolve gli alias e attribuisce ogni riga, comprese le sequenze senza tag. Poi assegna al narratore e a ogni personaggio una voce distinta. Questo è il passaggio una tantum alla base dell’assegnazione delle voci, ed è per questo che ha un piccolo costo: il lavoro sta nella lettura, non nella riproduzione.

Nessun sistema di attribuzione è infallibile sulla prosa difficile, quindi l’app ti tiene in controllo. Mentre riproduce, la riga corrente si illumina nel colore del suo parlante e il nome di chi parla compare sotto la pagina, così vedi chi l’app pensa stia dicendo quella riga. L’elenco completo del cast è lì, e puoi cambiare qualsiasi voce. Se sbaglia in uno scambio complicato, l’errore è visibile e correggibile, non incorporato in silenzio.

Perché questa è la parte difficile, e quella preziosa

Registrare le voci è la metà facile di un audiolibro a cast completo. La metà costosa e abile è sempre stata la regia: decidere chi parla in ogni riga, e come. L’attribuzione automatica del parlante è il software che fa quella regia. È ormai abbastanza precisa da ricavare un cast completo da qualsiasi libro tu porti, non solo dalla manciata che uno studio ha scelto di produrre.

Questa è la meccanica dietro una funzione che, vista da fuori, sembra semplicemente «ogni personaggio ha una voce». Per vederla in azione, dai il cast a un libro ricco di dialoghi in BookNPC e guarda i nomi dei parlanti comparire mentre legge. La guida su cast completo e narratore singolo approfondisce cosa questo fa all’esperienza d’ascolto.