La cosa che mi ha sorpreso di eseguire da testo a discorso sul nostro hardware è quanto sia piccolo il modello. Un file, 78 MB, con 904 altoparlanti distinti. È meno di un'esplosione di foto del telefono e circa un decimo di quello che pesa un singolo modello di lingua di fascia media, e da esso esce una voce che non posizioneresti immediatamente come sintetica. Ho misurato tre delle otto voci che lo strumento espone: le loro altezze mediane sono 103 Hz, 184 Hz e 242 Hz, che è un intervallo genuino da una voce maschile bassa a una femmina alta, con lo stesso file con un numero diverso passato.
tl; dr: Il motore è Piper funzionante sulla scatola del sito, utilizzando il modello Libritts-R. Misurato: 113 caratteri hanno prodotto da 5,8 a 6,1 secondi di audio in circa 3-4 secondi di tempo di parete, quindi sintetizza più velocemente di quanto tu possa ascoltare. Ottieni un mono wav da 22.050 Hz, che è di circa 2,6 MB al minuto. Il controllo della velocità funziona ma è compresso: l'intera gamma da 0,7 a 1,5 produce uno spread di 1,61x in durata anziché 2,14x I numeri implicano e 0,85 è indistinguibile da 1.0. Lo stesso testo non è mai lo stesso audio due volte. la Strumento di sintesi vocale Input maiuscole a 3.000 caratteri.
Cosa sta facendo il parlare?
Piper, un motore neurale da testo a voce, in esecuzione come proprio contenitore accanto all'app Web, con un modello addestrato su Librits-R.
Vale la pena conoscere quel corpus, perché spiega sia la qualità che il carattere dell'output. Si tratta di circa 585 ore di lettura del discorso in inglese, originario di Librivox Audiobook Recordings, quindi sottoposto a un modello di ripristino vocale per ripulire la qualità di registrazione del materiale sorgente. I relatori sono volontari che leggono libri di pubblico dominio.
Quindi le voci suonano come le persone che leggono ad alta voce, perché è esattamente quello che stavano facendo. Il modello è bravo a frasi dichiarative e paragrafi di prosa, che è ciò che ha sentito. È meno convincente in qualsiasi cosa colloquiale, perché nessuno nei dati di allenamento stava conversando.
Il file modello contiene 904 altoparlanti e lo strumento ne espone otto. Gli ID nel codice sono quelli del modello, scelti per coprire la gamma piuttosto che per essere i migliori otto, il che è una distinzione che vale la pena tenere a mente se nessuno degli otto ti soddisfa.
Le otto voci sono diverse l'una dall'altra?
Sì, in modo misurabile. Ho generato la stessa frase in tre di essi e ho calcolato la frequenza fondamentale mediana dei fotogrammi vocali:
| voce | ID altoparlante | mediana f0 |
|---|---|---|
| Voce 2 | 3 | 103,3 Hz |
| Voce 5 | 45 | 183,8 Hz |
| Voce 8 | 150 | 242,3 Hz |
Quelle non sono variazioni su un tema. Il discorso maschile adulto in genere è incentrato su 85-155 Hz e il linguaggio femminile adulta intorno a 165-255 Hz, quindi questi tre si trovano in basso, al centro e alla parte superiore della normale gamma umana.
Le durate erano quasi identiche, da 2,07 a 2,08 secondi per la stessa frase, quindi cambiare la voce cambia timbro e tono senza cambiare ritmo. Ciò rende gli otto realmente intercambiabili per un determinato script, il che conta se stai producendo un set di clip e vuoi ri-registrarne uno.
Quanto è veloce?
Più veloce dell'ascolto, che è il numero che conta.
| Misurare | valore |
|---|---|
| Ingresso | 113 caratteri |
| audio prodotto | Da 5,77 a 6,08 secondi |
| epoca datipica | 2.994 a 3.929 ms |
| rapporto | Circa 1,5 a 1,9 volte in tempo reale |
Quindi un minuto di audio richiede da trenta a quaranta secondi per essere realizzato, e il massimo di 3.000 caratteri si svolge a circa due e tre quarti di minuto di discorso per qualcosa di meno di due minuti di attesa.
L'avvertenza è che una richiesta viene servita alla volta. Il server esegue deliberatamente un singolo slot di sintesi: misurato sulla scatola, un solo testo richiede circa 2,2 secondi e tre contemporaneamente impiegano circa 9 secondi ciascuno, quindi il parallelismo non acquista nulla in totale e costa alla prima persona in coda sette secondi. Fino a venti richieste possono attendere, oltre che lo strumento dice che è occupato piuttosto che farti aspettare diversi minuti.
C'è anche un budget per visitatore di venti generazioni ogni dieci minuti, che è abbastanza alto da consentire al normale uso non lo soddisfa mai e abbastanza basso che nessuno trasformi la scatola in una fabbrica di audiolibri gratuita.
Cosa prendi?
Un file WAV, non compresso, e le dimensioni valgono la pena prima di crearne uno lungo.
codec pcm_s16le
sample rate 22,050 Hz
channels 1 (mono)
bit depth 16
cioè 44,1 kb al secondo di audio, quindi all'incirca 2,6 MB al minutoe una corsa completa di 3.000 caratteri atterra vicino a 7 MB. Il campione di 113 caratteri sopra era di 254.508 byte per 5,77 secondi.
Uncompressed è l'impostazione predefinita giusto per qualcosa che si modifica o converte, poiché è il formato che ogni editor assume senza lamentarsi e non ha alcuna perdita di generazione da aggiungere. È l'impostazione predefinita sbagliata per qualcosa che stai per caricare o inviare un'e-mail e la correzione è un passaggio: esegui il wav il convertitore audio e prendi l'MP3 o l'M4A. La sua guida copre quale scegliere e la risposta breve per il discorso è che qualsiasi cosa pari o superiore a 128 kbps va bene.
La velocità di 22.050 Hz è quella del modello ed è metà della velocità del CD. Vale la pena notare che Libritts-R è distribuito a 24 kHz, quindi il modello emette al di sotto della velocità del corpus che ha appreso, cioè la configurazione di Piper piuttosto che qualsiasi cosa persa qui. Per una voce è insignificante in entrambi i casi, poiché l'energia vocale è ben al di sotto degli 11 kHz, che è ciò che trasporta 22.050 Hz. Significa che l'output non passerà per una registrazione in studio e il ricampionamento verso l'alto non aggiunge nulla.
Il controllo della velocità fa quello che dice?
Cambia la velocità, e non tanto quanto suggerisce il numero. Questa è la curva misurata:
| velocità | durata | Rapporto a 1,0 | lineare darebbe |
|---|---|---|---|
| 0,7 | 7.268 s | 1.195 | 1.429 |
| 0,85 | 6.142 s | 1.010 | 1.176 |
| 1.0 | 6.084 s | 1.000 | 1.000 |
| 1.25 | 5.271 s | 0,866 | 0,800 |
| 1.5 | 4.516 s | 0,742 | 0,667 |
Monotono, quindi il controllo funziona nella direzione che ti aspetti e compresso su entrambe le estremità. L'intervallo completo da 0,7 a 1,5 dovrebbe essere uno spread di 2,14 volte e misura 1,61x. L'impostazione 0,85 è entro l'1% di 1,0, ovvero dire che non fa nulla che tu possa sentire.
Il meccanismo è che l'impostazione viene passata al modello come scala di durata e il predittore di durata del modello decide quanto tempo ottiene ciascun fonema. Tratta la scala come un forte indizio piuttosto che un moltiplicatore.
La lettura pratica: usa 0,7 o 1,5 se vuoi un ritmo notevolmente diverso e non aspettarti che le impostazioni intermedie ti diano un controllo preciso. Se hai bisogno di una durata esatta, genera a 1,0 e cambia il tempo in un editor audio, dove il numero indica ciò che dice.
Perché lo stesso testo non è mai lo stesso audio due volte?
Perché il modello prende una nuova decisione sul tempismo ad ogni corsa.
Ho inviato una richiesta identica due volte, stesso testo, stessa voce, stessa velocità. I risultati sono stati 6,084 secondi e 6,002 secondi e i file differiscono per byte. Niente è memorizzato nella cache e nulla è seminato.
Ciò è inerente a questa famiglia di modelli: il predittore di durata è stocastico, quindi le lunghezze dei fonemi variano leggermente tra le esecuzioni anche con ogni input fisso. La variazione qui misurata è di circa l'1,4%, che è impercettibile come differenza di ritmo e chiaramente visibile come differenza nella lunghezza del file.
due conseguenze. Se una ripresa ha una pausa imbarazzante o una parola che è arrivata in modo strano, generarla di nuovo è una vera soluzione piuttosto che una superstizione. E se stai producendo un set di clip che devono corrispondere, generale in una sessione e mantieni ciò che ottieni, perché tornare domani per una riga sostitutiva ti dà una linea che è una frazione di secondo diversa.
Perché c'è un limite di 3.000 caratteri?
a causa di ciò che si trova dietro, piuttosto che di qualsiasi cosa nel testo.
Tremila caratteri sono circa due e tre quarti di minuto di discorso e circa 7 MB di WAV, prodotti in un unico slot di sintesi che tutti condividono. Un capitolo di 30.000 caratteri occuperebbe quello slot per venti minuti e conserverebbe un buffer di 70 MB in memoria mentre lo eseguiva.
Per un po' più di tempo, dividi sui limiti del paragrafo e unisci le parti. Questa è comunque una pratica migliore: un errore nel paragrafo nove ti costa il paragrafo nove piuttosto che l'intero capitolo, e il convertitore audio si unirà e convertirà il set in seguito.
Dividere la frase centrale è l'unica cosa da evitare, perché il modello decide l'intonazione per enunciato. Una frase tagliata a metà produce due frammenti che suonano entrambi come frasi complete, con un tono in caduta nel mezzo del pensiero.
A cosa serve e cosa non lo è?
Buono per tutto ciò che è scritto da leggere ad alta voce, che è una categoria più ristretta di quanto sembri.
| Funziona bene | funziona male |
|---|---|
| Narrazione su un video o diapositive | Dialogo tra i personaggi |
| Una versione audio di un articolo | tutto ciò che ha bisogno di emozioni o enfasi |
| Accessibilità: ascoltare la tua bozza | Nomi e luoghi al di fuori dell'inglese comune |
| Voce segnaposto per un prototipo | Tempistica precisa per un taglio video |
| Pronuncia di una frase che hai scritto | canto, o qualsiasi cosa musicale |
Il modello nella colonna di destra è il controllo. Il modello ti dà una voce, una velocità e un posto da cui ascoltare. Non c'è modo di sottolineare una parola particolare, inserire una pausa di una data lunghezza, cambiare intonazione su una domanda o scrivere un acronimo. Queste sono le cose che un'API professionale TTS espone attraverso il markup, e questo non ne ha.
La prima riga della colonna di sinistra è dove si guadagna il suo posto. Una voce che legge la tua scrittura a te è lo strumento di correzione di bozze più veloce che ci sia, perché una frase che non funziona è ovvia nel momento in cui qualcun altro la dice.
Riesci a sentire una voce prima di impegnarti?
No, e questo è l'unico pezzo dell'interfaccia che cambierei.
Le otto voci sono un menu a discesa di etichette: Voice 1 fino a Voice 8, senza alcun campione collegato a nessuna di esse. L'unico modo per scoprire come suona la voce 6 è generare con essa, che occupa lo slot di sintesi condiviso, richiede alcuni secondi e conta contro le tue venti generazioni ogni dieci minuti.
Per un unico che va bene. Per scegliere una voce per un progetto significa fare un'audizione a otto riprese della stessa linea prima di iniziare, che è la maggior parte di un decimo del tuo budget speso per decidere.
L'approccio pratico è quello di fare un'audizione con una linea breve piuttosto che con il tuo script. Una frase di una dozzina di parole torna in circa due secondi e ti dice il tono e il carattere, che è tutto ciò che scegli tra. Quindi passa al testo reale una volta che hai scelto.
La tabella precedente in questa guida è una scorciatoia parziale: la voce 2 è bassa, la voce 5 è media, la voce 8 è alta. I cinque che non ho misurato si sono seduti da qualche parte tra loro.
Come si confronta con una voce cloud?
Non favorevolmente sullo polacco, e questo non è il confronto che conta qui.
Un'API commerciale ti offre una migliore prosodia, dozzine di lingue, controllo di markup su pause e enfasi e voci addestrate per la trasmissione. Se stai producendo qualcosa per la pubblicazione, vale la pena.
Ciò che questo ti dà invece è che il testo non lascia mai l'hardware del sito e l'output è tuo senza fattura per carattere e senza account. Per gli usi nella colonna di sinistra sopra, in particolare ascoltando la tua bozza rileggeta, la differenza in Polacco non vale un account cloud e una chiave API.
Il riassunto onesto è che questo è l'equivalente TTS di un microfono integrato decente. È abbastanza buono che smetti di notare che è lì, e non quello che useresti per registrare un album.
Puoi usare l'audio in commercio?
Probabilmente, con attribuzione, e la licenza merita uno sguardo attento piuttosto che un sì.
Il motore Piper è autorizzato al MIT. Il modello qui è addestrato su libritts-r, che OpenSLR distribuisce come "licenza: CC di 4.0"e CC da 4.0 consente l'uso commerciale fornito l'attribuzione.
L'assistenza è giustificata perché i metadati delle citazioni del Libritts-R Paper hanno una stringa di licenza diversa, la variante non commerciale dei derivati. Questo è molto probabilmente un avanzo in un modello di citazione piuttosto che una dichiarazione di intenti, e la pagina di distribuzione è il segnale più forte, ma i due non sono d'accordo e non sono in grado di risolverlo per te.
Quindi: per qualsiasi cosa incidentale, questa non è una domanda che nessuno farà. Per un prodotto commerciale basato sull'audio, leggi tu stesso la licenza sul modello vocale specifico e prendi consigli piuttosto che leggere la mia pagina di set di dati.
Cosa dovresti controllare prima di pubblicare l'audio?
Quattro cose, nell'ordine sbagliano.
- Ascolta tutto. Sembra ovvio e viene regolarmente saltato, ed è l'unico modo per prendere un nome pronunciato male.
- qualsiasi nome proprio, acronimo o unità. Il modello non ha dizionario che puoi modificare. Se "osei" o "GDPR" errato, la correzione è scrivibile foneticamente nel testo di input e accettando che l'input è ora brutto.
- La lunghezza, contro la fessura che deve riempire. Ricorda che il ritmo è solo vagamente controllabile, quindi lascia spazio piuttosto che pianificare il secondo.
- Converti prima del caricamento. 2,6 MB Un minuto di WAV non è quello che vuoi su una pagina web.
Perché viene eseguito sul server del sito?
Perché i testi che le persone hanno letto ad alta voce sono spesso i loro scritti inediti.
Una bozza, una sceneggiatura, una lettera di presentazione, un discorso, un messaggio che non sono sicuri di inviare. L'alternativa convenzionale lo pubblica su un servizio che fattura per carattere, mantiene il testo sotto i termini che nessuno legge e richiede un account prima della prima parola.
Qui va a un contenitore accanto all'app Web, viene sintetizzato e torna come file. I costi sono visibili in ogni misura sopra: uno slot alla volta, un soffitto di 3.000 caratteri, un mono da 22 kHz e una voce che è buona piuttosto che trasmessa. In cambio il testo è stato letto da una macchina di cui ti fidavi già con la pagina.



