Leggere i sottotitoli ad alta voce
La prima esecuzione scarica il modello vocale e il fonemizzatore: circa 98 MB insieme, serviti da questo sito e poi messi in cache dal browser. Il file di sottotitoli o di testo che si trascina qui non lascia mai questa scheda. Scegliere MP3 o M4A scarica altri 31 MB di codificatore, ed è per questo che WAV è il valore predefinito.
Opzioni
Una voce decide l’accento e il timbro e, meno ovviamente, con quale sistema fonetico viene letto il testo. Abbinare una voce spagnola a una frase inglese non fallisce: legge parole inglesi con suoni spagnoli, il che è peggio di un messaggio di errore. Sono offerte sette lingue, non dodici, perché il fonemizzatore incluso in questa pagina non ha una voce per giapponese o cinese. Ascoltare un file breve prima di impegnarsi su uno lungo; ogni voce porta lo stesso modello, quindi cambiare costa una sintesi, non un download.
Quanto in fretta legge la voce, applicato sopra il ritmo che il modello considera naturale. Lenta è 0,8× e veloce è 1,2×: deliberatamente mite, perché oltre circa 1,5× il modello comincia a inghiottire le sillabe e il risultato suona come qualcuno che si affretta anziché come qualcuno che parla in fretta. Quando un blocco di sottotitoli è troppo breve per la sua battuta, questa pagina alza da sé la velocità fino a 1,4× prima di troncare, e quel potenziamento si moltiplica con l’impostazione scelta qui.
WAV è PCM non compresso a 24 kHz mono, scritto qui senza alcun codificatore: è per questo che è il valore predefinito e che per esso non viene scaricato nulla in più. MP3 e M4A richiedono il motore video da 31 MB per comprimere, ma escono circa dieci volte più piccoli: dieci minuti di parlato sono circa 28 MB in WAV e circa 2,8 MB in MP3. Scegliere WAV per provare una voce, MP3 per inviare il file a qualcuno.
Questa pagina trasforma un file di sottotitoli in una traccia vocale che lo segue. Ogni blocco viene letto ad alta voce e posizionato nel momento in cui quel blocco inizia, quindi il risultato è un unico file audio — film.wav — in cui le parole cadono sotto i sottotitoli invece di accavallarsi. Il silenzio riempie gli spazi tra i blocchi e la durata complessiva corrisponde alla fine dell’ultimo blocco, il che significa che l’audio si può appoggiare alla stessa immagine per cui erano stati fatti i sottotitoli.
La ragione per cui questa pagina esiste separatamente da quella di semplice lettura è che la parte difficile è la tempistica. Una frase che impiega quattro secondi a essere detta ma ha un blocco di due secondi non si può semplicemente inserire: correrebbe sotto il blocco successivo, e due voci insieme sono rumore, non narrazione. Ogni riga viene quindi sintetizzata alla velocità che hai scelto, misurata e, se non sta, sintetizzata una seconda volta a una velocità maggiore, fino a 1,4×. Ciò che non sta ancora viene tagliato all’inizio del blocco successivo, e il numero di blocchi a cui è capitato viene riportato come perdita invece di essere inghiottito.
L’elenco delle voci comprende dieci voci in sette lingue: inglese degli Stati Uniti e della Gran Bretagna, spagnolo, francese, italiano, hindi e portoghese brasiliano. Una voce non è solo un timbro: decide con quali suoni di quale lingua viene letto il testo, quindi abbinare una voce spagnola a un testo inglese produce qualcosa che non è né l’una né l’altra cosa. Giapponese e cinese mancano di proposito: il fonemizzatore incluso in questa pagina non ha una voce per nessuno dei due, e elencarli produrrebbe nonsenso dall’aria sicura invece di un messaggio di errore. Il lavoro è locale: circa 98 MB tra modello e fonemizzatore vengono scaricati una volta da questo sito e poi memorizzati dal browser, mentre il file di sottotitoli non lascia mai la scheda. L’uscita è WAV per impostazione predefinita perché non richiede alcun codificatore; scegliere MP3 o M4A carica un nucleo ffmpeg da 31 MB per comprimere il risultato, cosa che vale la pena per qualsiasi cosa tu intenda inviare a qualcuno. L’annullamento qui è immediato: la sintesi gira su un worker proprio e terminarlo la ferma sul momento, invece di aspettare che finisca la frase in corso.
Domande frequenti
Perché il WAV di questa pagina a volte taglia una frase quando il file SRT va bene?
Perché il taglio è causato dal blocco, non dal file. Un blocco che resta sullo schermo per 1,8 secondi non può contenere una riga che impiega tre secondi a essere detta, a meno di spingere la voce oltre 1,4×, e oltre quel punto le parole smettono di essere comprensibili. La pagina prova prima la velocità che hai scelto, poi risintetizza una volta alla velocità che lo farebbe stare, con il tetto di 1,4×. Se ancora sfora, l’audio viene troncato all’inizio del blocco seguente perché due righe non suonino mai insieme, e il conteggio dei blocchi coinvolti compare nel rapporto delle perdite sotto la coda.
Che cosa succede alla formattazione, ai colori e alle posizioni sullo schermo di un ASS quando vengono letti per la narrazione?
Vengono scartati, ed è corretto così: un file audio non ha colore né posizione sullo schermo. Sopravvivono il testo di ogni blocco e i suoi tempi di inizio e fine, che è esattamente ciò di cui il posizionamento ha bisogno. Grassetto, corsivo, tempi di karaoke e override di posizione come {\anN} vengono rimossi dallo strato dei formati prima della sintesi, quindi una riga marcata in corsivo nel file ASS viene letta con la stessa voce del resto. Se ti serve la formattazione conservata, converti prima i sottotitoli: il prodotto di questa pagina è il suono.
Un blocco SRT su due righe può essere letto come una frase continua?
Sì, e lo è sempre. Un a capo forzato dentro un blocco è una decisione tipografica — il punto in cui chi ha sottotitolato ha deciso che la riga stava diventando troppo lunga sullo schermo — non un punto in cui chi parla ha fatto una pausa. Le due righe vengono quindi unite con uno spazio e sintetizzate come un’unica enunciazione, ed è per questo che un blocco diviso su più righe suona come un solo respiro invece che due interlocutori che si alternano. Solo il confine di un blocco produce una pausa nell’uscita.
Quali lingue può davvero parlare la traccia vocale, e che cosa succede con i sottotitoli giapponesi?
Sette: en-US, en-GB, es, fr, hi, it e pt-BR. Giapponese e cinese non sono tra queste perché il fonemizzatore incluso in questa pagina (espeak-ng) non porta una voce per nessuno dei due, anche se il modello vocale è stato addestrato su entrambi. Dare un .srt giapponese a una voce inglese non fallisce in modo evidente: le lettere latine vengono lette come inglese e i kanji vengono saltati o deformati. Il flusso onesto per quelle lingue è aspettare una build che porti un fonemizzatore giapponese o cinese, invece di accettare una traccia che suona plausibile ed è sbagliata.
Vale la pena scegliere MP3 con i 31 MB extra rispetto al WAV predefinito?
Per qualunque cosa più lunga di qualche minuto, sì. Il WAV è PCM mono a 24 kHz non compresso, quindi dieci minuti di narrazione sono circa 28 MB, mentre lo stesso audio codificato in MP3 a 128 kbps è circa 2,8 MB. Il prezzo è che MP3 e M4A richiedono il download una volta del nucleo ffmpeg; ed è per questo che il WAV è il predefinito: se vuoi solo sentire come suona una voce, non viene scaricato nulla in più. Una volta che il codificatore è in cache, riconvertire lo stesso file di sottotitoli con le stesse impostazioni è rapido.