La chose qui m'a surpris à propos de l'exécution de texte à discours sur notre propre matériel est la petite taille du modèle. Un fichier, 78 Mo, contenant 904 enceintes distinctes. C'est moins d'une rafale de photos de téléphone et environ un dixième de ce que pèse un seul modèle de langage de milieu de gamme, et de lui une voix que vous ne placeriez pas immédiatement en tant que synthétique. J'ai mesuré trois des huit voix que l'outil expose : leurs hauteurs médianes sont de 103 Hz, 184 Hz et 242 Hz, ce qui est une plage authentique d'une voix masculine basse à une voix féminine élevée, du même fichier avec un nombre différent passé.
tl;dr : Le moteur fonctionne sur la propre boîte du site, en utilisant le modèle Libritts-R. Mesuré : 113 caractères ont produit 5,8 à 6,1 secondes d'audio en environ 3 à 4 secondes de temps de mur, ce qui fait qu'il se synthétise plus rapidement que vous ne pouvez écouter. Vous obtenez un mono WAV de 22 050 Hz, soit environ 2,6 Mo par minute. Le contrôle de la vitesse fonctionne mais est compressé : la gamme complète de 0,7 à 1,5 produit un écart de 1,61x en durée plutôt que le 2,14x. Les nombres impliquent, et 0,85 est impossible à distinguer de 1,0. Le même texte n'est jamais le même audio deux fois. le Outil de texte à parole L'entrée de majuscule à 3 000 caractères.
Qu'est-ce que tu parles ?
Piper, un moteur de synthèse vocale neurale, fonctionnant comme son propre conteneur à côté de l'application Web, avec un modèle formé sur libritts-r.
Ce corpus vaut la peine d'être connu, car il explique à la fois la qualité et le caractère de la sortie. Il s'agit d'environ 585 heures de lecture de la parole en anglais, originaire des enregistrements de livres audio LibriVox, puis soumise à un modèle de restauration de la parole pour nettoyer la qualité d'enregistrement du matériel source. Les intervenants sont des bénévoles qui lisent des livres du domaine public.
Donc, les voix ressemblent à des gens qui lisent à haute voix, car c'est exactement ce qu'ils faisaient. Le modèle est doué pour les phrases déclaratives et les paragraphes de prose, ce qu'il a entendu. C'est moins convaincant à quelque chose que la conversation, car personne dans les données d'entraînement n'avait de conversation.
Le fichier modèle contient 904 haut-parleurs et l'outil en expose huit. Les identifiants du code sont ceux du modèle, choisis pour s'étendre sur la plage plutôt que pour être les huit meilleurs, ce qui est une distinction à garder à l'esprit si aucun des huit ne vous convient.
Les huit voix sont-elles différentes les unes des autres ?
Oui, mesurablement. J'ai généré la même phrase dans trois d'entre eux et calculé la fréquence fondamentale médiane des trames vocales :
| voix | ID de haut-parleur | médiane f0 |
|---|---|---|
| Voix 2 | 3 | 103,3 Hz |
| Voix 5 | 45 | 183,8 Hz |
| Voix 8 | 150 | 242,3 Hz |
Ce ne sont pas des variations sur un thème. La parole masculine adulte est généralement centrée autour de 85 à 155 Hz et la parole des femmes adultes autour de 165 à 255 Hz, de sorte que ces trois-là sont assis en bas, au milieu et en haut de la portée humaine normale.
Les durées étaient presque identiques, de 2,07 à 2,08 secondes pour la même phrase, donc changer de voix change de timbre et de hauteur sans changer de rythme. Cela rend les huit véritablement interchangeables pour un script donné, ce qui compte si vous produisez un ensemble de clips et souhaitez réenregistrer un.
C'est rapide ?
Plus rapide que l'écoute, ce qui compte.
| Mesurer | évaluer |
|---|---|
| Entrée | 113 caractères |
| audio produit | 5,77 à 6,08 secondes |
| heure de paroi | 2 994 à 3 929 ms |
| proportion | Environ 1,5 à 1,9 fois en temps réel |
Ainsi, une minute d'audio prend trente à quarante secondes à faire, et le maximum de 3 000 caractères fonctionne à environ deux et trois quarts de minutes de discours pour quelque chose de moins de deux minutes d'attente.
La mise en garde est qu'une demande est servie à la fois. Le serveur exécute délibérément un seul emplacement de synthèse : mesuré sur la boîte, un seul texte prend environ 2,2 secondes et trois à la fois prend environ 9 secondes chacun, donc le parallélisme n'achète rien dans le débit total et coûte à la première personne dans la file de sept secondes. Jusqu'à vingt demandes peuvent attendre, au-delà de l'annonce de l'outil, plutôt que de vous faire attendre plusieurs minutes.
Il existe également un budget par visiteur de vingt générations toutes les dix minutes, ce qui est suffisamment élevé pour que l'utilisation normale ne le rencontre jamais et suffisamment bas pour que personne ne transforme la boîte en une usine de livres audio gratuit.
Que reçois-tu ?
Un fichier wav, non compressé, et la taille vaut la peine d'être connue avant d'en faire un long.
codec pcm_s16le
sample rate 22,050 Hz
channels 1 (mono)
bit depth 16
Cela représente 44,1 Ko par seconde, donc à peu près 2,6 Mo par minute, et une course de 3 000 caractères complète atterrit près de 7 Mo. L'échantillon de 113 caractères ci-dessus était de 254 508 octets pendant 5,77 secondes.
Uncompressed est le bon défaut pour quelque chose que vous allez modifier ou convertir, car c'est le format que prend chaque éditeur sans plainte et il n'a aucune perte de génération à ajouter. C'est la mauvaise valeur par défaut pour quelque chose que vous allez télécharger ou envoyer un e-mail, et le correctif est une étape : exécutez le wav via Le convertisseur audio Et prenez le MP3 ou le M4A. son guide Couvre les choix à choisir, et la réponse courte pour la parole est que tout ce qui est à ou au-dessus de 128 kbps est acceptable.
Le taux de 22 050 Hz est propre, et il représente la moitié du taux de CD. Il convient de noter que Libritts-R est distribué à 24 kHz, de sorte que le modèle est sorti en dessous du taux du corpus dont il a appris; c'est la propre configuration de Piper plutôt que tout ce qui est perdu ici. Pour une voix, c'est banal dans les deux sens, car l'énergie de la parole se situe bien en dessous de 11 kHz, ce qui est ce que porte 22 050 Hz. Cela signifie que la sortie ne passera pas comme un enregistrement en studio, et le rééchantillonner vers le haut n'ajoute rien.
Le contrôle de la vitesse fait-il ce qu'il dit ?
Cela change la vitesse, et non autant que le chiffre le suggère. C'est la courbe mesurée :
| Réglage de la vitesse | durée | rapport à 1,0 | Linéaire donnerait |
|---|---|---|---|
| 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 |
Monotonic, donc le contrôle fonctionne dans la direction que vous attendez, et compressée aux deux extrémités. La plage complète de 0,7 à 1,5 devrait être un écart de 2,14 fois la durée et mesure 1,61x. Le réglage 0,85 est à moins de 1% de 1,0, c'est-à-dire qu'il ne fait rien que vous puissiez entendre.
Le mécanisme est que le paramètre est passé au modèle sous la forme d'une échelle de durée, et le propre prédicteur de durée du modèle décide de la durée de chaque phonème. Il traite l'échelle comme un indice fort plutôt que comme un multiplicateur.
La lecture pratique : utilisez 0,7 ou 1,5 si vous voulez un rythme sensiblement différent, et ne vous attendez pas à ce que les réglages intermédiaires vous donnent un contrôle précis. Si vous avez besoin d'une durée exacte, générez à 1,0 et modifiez le tempo dans un éditeur audio, où le nombre signifie ce qu'il dit.
Pourquoi le même texte n'est-il jamais le même audio deux fois ?
Parce que le modèle prend une nouvelle décision concernant le moment de chaque exécution.
J'ai envoyé une demande identique deux fois, même texte, même voix, même vitesse. Les résultats étaient de 6,084 secondes et 6,002 secondes, et les fichiers diffèrent pour l'octet. Rien n'est mis en cache et rien n'est ensemencé.
Cela est inhérent à cette famille de modèles : le prédicteur de durée est stochastique, de sorte que les longueurs des phonèmes varient légèrement d'un essai à l'autre même avec chaque entrée fixe. La variation mesurée ici est d'environ 1,4 %, ce qui est inaudible comme une différence de rythme et clairement visible comme une différence de longueur de fichier.
deux conséquences. Si une prise a une pause maladroite ou un mot qui a atterri étrangement, la générer à nouveau est une véritable solution plutôt qu'une superstition. Et si vous produisez un ensemble de clips qui doivent correspondre, générez-les en une seule session et conservez ce que vous obtenez, car revenir demain pour une ligne de remplacement vous donne une ligne qui est une fraction de seconde différente.
Pourquoi y a-t-il une limite de 3 000 caractères ?
À cause de ce qui se cache derrière, plutôt que quoi que ce soit dans le texte.
Trois mille caractères font environ deux et trois quarts de minutes de discours et environ 7 Mo de WAV, produit dans un seul emplacement de synthèse que chacun partage. Un chapitre de 30 000 caractères occuperait cette fente pendant vingt minutes et contiendrait un tampon de 70 Mo en mémoire tout en le faisant.
Pour tout ce qui est plus long, divisez les limites des paragraphes et joignez les pièces. C'est une pratique de toute façon : une erreur au paragraphe neuf vous coûte le paragraphe neuf plutôt que sur le chapitre entier, et le Convertisseur audio Joindre et convertir l'ensemble par la suite.
La division à mi-parcours est la seule chose à éviter, car le modèle décide de l'intonation par énoncé. Une phrase coupée en deux produit deux fragments qui ressemblent tous les deux à des phrases complètes, avec un ton qui tombe au milieu de la pensée.
A quoi ça sert et qu'est-ce que c'est pas ?
Bon pour tout ce qui est écrit pour être lu à haute voix, qui est une catégorie plus étroite qu'il n'y paraît.
| Fonctionne bien | Fonctionne mal |
|---|---|
| Narration sur une vidéo ou des diapositives | Dialogue entre personnages |
| Une version audio d'un article | Tout ce qui nécessite une émotion ou une emphase |
| Accessibilité : entendre votre propre projet | Noms et lieux en dehors de l'anglais courant |
| Voix d'espace réservé pour un prototype | Calendrier précis d'une coupe vidéo |
| Prononciation d'une phrase que vous avez écrite | chanter ou quoi que ce soit de musical |
Le modèle dans la colonne de droite est Contrôle. Le modèle vous donne une voix, une vitesse et un siège pour écouter. Il n'y a aucun moyen de mettre l'accent sur un mot particulier, d'insérer une pause d'une longueur donnée, de changer d'intonation sur une question ou d'épeler un acronyme. Ce sont les choses qu'une API TTS professionnelle expose par balisage, et cela n'a rien de tout cela.
La première ligne de la colonne de gauche est celle où elle gagne sa place. Une voix qui vous lit votre propre écriture est l'outil de relecture le plus rapide qui soit, car une phrase qui ne fonctionne pas est évidente au moment où quelqu'un d'autre le dit.
Pouvez-vous entendre une voix avant de vous y engager ?
Non, et c'est le seul élément de l'interface que je changerais.
Les huit voix sont une liste déroulante des étiquettes : Voix 1 à Voix 8, sans échantillon attaché à aucune d'entre elles. La seule façon de savoir à quoi ressemble la voix 6 est de générer avec lui, qui occupe la machine à sous de synthèse partagée, prend quelques secondes et compte contre vos vingt générations par dix minutes.
Pour un ponctuel, c'est bien. Pour choisir une voix pour un projet, cela signifie auditionner huit prises de la même ligne avant de commencer, ce qui représente la majeure partie de votre budget consacré à la décision.
L'approche pratique consiste à auditionner avec une courte ligne plutôt que votre script. Une phrase d'une douzaine de mots revient en deux secondes environ et vous indique le ton et le caractère, ce que vous choisissez. Passez ensuite au texte réel une fois que vous avez choisi.
Le tableau ci-dessus est un raccourci partiel : Voice 2 est faible, Voix 5 est Mid, Voix 8 est haute. Les cinq que je n'ai pas mesurés se situaient quelque part parmi eux.
Comment se compare-t-il à une voix de nuage ?
Pas favorablement sur le polonais, et ce n'est pas la comparaison qui compte ici.
Une API commerciale vous offre une meilleure prosodie, des dizaines de langues, un contrôle des balises sur les pauses et des accents, ainsi que des voix formées pour la diffusion. Si vous produisez quelque chose pour la publication, cela en vaut la peine.
Ce que cela vous donne à la place, c'est que le texte ne quitte jamais le propre matériel du site, et que la sortie est à vous sans facture par caractère et sans compte. Pour les utilisations de la colonne de gauche ci-dessus, en particulier en entendant votre propre brouillon, la différence de polonais ne vaut pas un compte cloud et une clé API.
Le résumé honnête est qu'il s'agit de l'équivalent TTS d'un microphone intégré décent. Il est assez bon d'arrêter de remarquer qu'il est là, et non ce que vous utiliseriez pour enregistrer un album.
Pouvez-vous utiliser l'audio commercialement ?
Probablement, avec attribution, et la licence mérite un regard attentif plutôt qu'un oui.
Le moteur Piper est sous licence MIT. Le modèle ici est formé sur Libritts-R, qui OpenSLR distribue comme "Licence : CC par 4,0" ;, et CC par 4.0 permet une utilisation commerciale à condition que l'attribution soit donnée.
Les soins sont justifiés car les propres métadonnées de citation du papier Libritts-R portent une chaîne de licence différente, la variante non commerciale non dérivée. C'est probablement un reste dans un modèle de citation plutôt qu'une déclaration d'intention, et la page de distribution est le signal le plus fort, mais les deux ne sont pas d'accord et je ne suis pas en mesure de le résoudre pour vous.
Donc : pour tout ce qui est accessoire, ce n'est pas une question que quelqu'un va poser. Pour un produit commercial basé sur l'audio, lisez vous-même la licence sur le modèle vocal spécifique et prenez des conseils plutôt que de lire une page d'ensemble de données.
Que devez-vous vérifier avant de publier de l'audio ?
Quatre choses, dans l'ordre, elles tournent mal.
- Écoutez le tout. Cela semble évident et est régulièrement sauté, et c'est le seul moyen d'attraper un nom mal prononcé.
- Tout nom, acronyme ou unité propre. Le modèle n'a pas de dictionnaire que vous pouvez modifier. Si "OSEI" ou "GDPR" sort mal, le correctif l'épele phonétiquement dans le texte d'entrée et accepte que l'entrée soit laide.
- La longueur, contre la fente, doit être remplie. N'oubliez pas que le rythme n'est que lâchement contrôlable, alors laissez de la place plutôt que de planifier la seconde.
- Convertir avant de télécharger. 2,6 Mo par minute de WAV n'est pas ce que vous voulez sur une page Web.
Pourquoi s'exécute-t-il sur le propre serveur du site ?
Parce que les textes que les gens ont lus à haute voix sont souvent leur propre écriture non publiée.
Un brouillon, un script, une lettre de motivation, un discours, un message qu'ils ne savent pas envoyer. L'alternative conventionnelle le publie sur un service qui facture par caractère, conserve le texte en termes que personne ne lit et exige un compte avant le premier mot.
Ici, il va à un conteneur à côté de l'application Web, est synthétisé et revient sous forme de fichier. Les coûts sont visibles dans chaque mesure ci-dessus : un emplacement à la fois, un plafond de 3 000 caractères, un mono 22 kHz et une voix qui est bonne plutôt que diffusée. En échange, le texte a été lu par une machine que vous aviez déjà confiance avec la page.



