O que me surpreendeu ao executar o texto em nossa própria hardware é o quão pequeno é o modelo. Um arquivo, 78 MB, com 904 alto-falantes distintos. Isso é menos do que uma explosão de fotos de um telefone e cerca de um décimo do que um único modelo de linguagem de médio alcance pesa, e dele vem uma voz que você não colocaria imediatamente como sintético. Eu medi três das oito vozes que a ferramenta expõe: seus tons medianos são 103 Hz, 184 Hz e 242 Hz, que é uma faixa genuína de uma voz masculina baixa a uma feminina alta, fora do mesmo arquivo com um número diferente.
tl;dr: O motor está funcionando na própria caixa do site, usando o modelo Libritts-R. Medido: 113 caracteres produziram de 5,8 a 6,1 segundos de áudio em cerca de 3 a 4 segundos de tempo de parede, para que ele sintette mais rápido do que você pode ouvir. Você obtém um mono WAV de 22.050 Hz, que é cerca de 2,6 MB por minuto. O controle de velocidade funciona, mas é comprimido: a faixa total de 0,7 a 1,5 produz um spread de 1,61x em vez de 2,14x Os números implicam e 0,85 é indistinguível de 1,0. O mesmo texto nunca é o mesmo áudio duas vezes. o Ferramenta de texto para fala Caps a entrada em 3.000 caracteres.
O que está falando?
Piper, um mecanismo neural de texto em fala, rodando como seu próprio contêiner ao lado do aplicativo da web, com um modelo treinado em Libritts-R.
Vale a pena conhecer esse corpus, pois explica a qualidade e o caráter da saída. São cerca de 585 horas de leitura em inglês, originalmente das gravações de audiobook LibriVox, e depois passam por um modelo de restauração de fala para limpar a qualidade de gravação do material de origem. Os palestrantes são voluntários lendo livros de domínio público.
Então, as vozes soam como pessoas lendo em voz alta, porque era exatamente isso que elas estavam fazendo. O modelo é bom em frases declarativas e parágrafos de prosa, que é o que ouviu. É menos convincente em qualquer coisa conversacional, porque ninguém nos dados do treinamento estava conversando.
O arquivo de modelo contém 904 alto-falantes e a ferramenta expõe oito deles. Os IDs no código são os próprios do modelo, escolhidos para abranger o alcance e não para serem os oito melhores, o que é uma distinção que vale a pena ter em mente se nenhum dos oito se adequar a você.
As oito vozes são diferentes umas das outras?
Sim, mensurável. Eu gerei a mesma frase em três deles e calculei a frequência fundamental mediana dos quadros sonoros:
| voz | ID do alto-falante | mediana f0 |
|---|---|---|
| voz 2 | 3 | 103,3 Hz |
| voz 5 | 45 | 183,8 Hz |
| voz 8 | 150 | 242,3 Hz |
Essas não são variações de um tema. A fala masculina adulta normalmente gira em torno de 85 a 155 Hz e fala feminina adulta em torno de 165 a 255 Hz, então essas três ficam na parte inferior, no meio e no topo da faixa humana normal.
As durações foram quase idênticas, 2,07 a 2,08 segundos para a mesma frase, então a troca de voz muda o timbre e o tom sem alterar o ritmo. Isso torna o oito genuinamente intercambiável para um determinado script, o que importa se você está produzindo um conjunto de clipes e deseja gravar um deles.
Quão rápido é?
Mais rápido do que ouvir, que é o número que importa.
| Medir | apreço |
|---|---|
| Entrada | 113 caracteres |
| áudio produzido | 5,77 a 6,08 segundos |
| tempo de parede | 2.994 a 3.929 ms |
| proporção | Cerca de 1,5 a 1,9 vezes o tempo real |
Portanto, um minuto de áudio leva de trinta a quarenta segundos para ser produzido, e o máximo de 3.000 caracteres funciona em cerca de dois e três quartos de minuto para algo abaixo de dois minutos de espera.
A ressalva é que uma solicitação é atendida por vez. O servidor executa um único slot de síntese deliberadamente: medido na caixa, um texto sozinho leva cerca de 2,2 segundos e três de uma vez de uma só vez levam cerca de 9 segundos cada, então o paralelismo não compra nada no rendimento total e custa a primeira pessoa na fila sete segundos. Até vinte pedidos podem esperar; além disso, a ferramenta diz que está ocupada, em vez de fazer você esperar vários minutos.
Há também um orçamento por visitante de vinte gerações a cada dez minutos, o que é alto o suficiente para que o uso normal nunca o atinja e baixo o suficiente para que ninguém transforme a caixa em uma fábrica de audiolivros gratuita.
O que você recebe de volta?
Um arquivo WAV, descompactado e vale a pena saber o tamanho antes de você fazer um longo.
codec pcm_s16le
sample rate 22,050 Hz
channels 1 (mono)
bit depth 16
Isso é 44,1 KB por segundo de áudio, então aproximadamente 2,6 MB por minuto, e um total de 3.000 caracteres de corridas perto de 7 MB. A amostra de 113 caracteres acima foi de 254.508 bytes por 5,77 segundos.
Descompactado é o padrão correto para algo que você irá editar ou converter, pois é o formato que todo editor recebe sem reclamar e não tem perda de geração a ser adicionada. É o padrão errado para algo que você enviará ou e-mail, e a correção é uma etapa: execute o wav O conversor de áudio E pegue o MP3 ou M4A. seu guia Coberturas que escolher e a resposta curta para a fala é que qualquer coisa acima de 128 kbps é boa.
A taxa de 22.050 Hz é a do modelo e é metade da taxa de CD. Vale a pena notar que o Libritts-R é distribuído em 24 kHz, então o modelo sai abaixo da taxa do corpus com o qual aprendeu; essa é a configuração do Piper, e não qualquer coisa perdida aqui. Para uma voz, não é digno de nota, pois a energia da fala fica bem abaixo de 11 kHz, que é o que 22.050 Hz carrega. Isso significa que a saída não será transferida como uma gravação de estúdio, e reamostrar para cima não acrescenta nada.
O controle de velocidade faz o que diz?
Ele muda a velocidade, e não tanto quanto o número sugere. Esta é a curva medida:
| ajuste de velocidade | duração | razão para 1,0 | Linear daria |
|---|---|---|---|
| 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, então o controle funciona na direção que você espera e comprimida em ambas as extremidades. A faixa total de 0,7 a 1,5 deve ser de 2,14x em duração e mede 1,61x. A configuração 0,85 está a 1% de 1,0, ou seja, não faz nada que você possa ouvir.
O mecanismo é que a configuração é passada para o modelo como uma escala de duração, e o preditor de duração do modelo decide quanto tempo cada fonema fica. Ele trata a escala como uma dica forte e não como um multiplicador.
A leitura prática: use 0,7 ou 1,5 se desejar um ritmo visivelmente diferente e não espere que as configurações intermediárias lhe dêem um controle fino. Se você precisar de uma duração exata, gere em 1.0 e altere o andamento de um editor de áudio, onde o número significa o que diz.
Por que o mesmo texto nunca é o mesmo áudio duas vezes?
Porque o modelo toma uma nova decisão sobre o tempo em cada corrida.
Enviei uma solicitação idêntica duas vezes, o mesmo texto, a mesma voz, a mesma velocidade. Os resultados foram de 6,084 segundos e 6,002 segundos, e os arquivos diferem byte para byte. Nada é armazenado em cache e nada semeado.
Isso é inerente a essa família de modelos: o preditor de duração é estocástico, portanto, os comprimentos dos fonemas variam ligeiramente entre as corridas, mesmo com cada entrada fixa. A variação medida aqui é de cerca de 1,4%, o que é inaudível como uma diferença de ritmo e claramente visível como uma diferença no comprimento do arquivo.
Duas consequências. Se uma tomada tem uma pausa constrangedora ou uma palavra que caiu de forma estranha, gerá-la novamente é uma solução real, e não uma superstição. E se você estiver produzindo um conjunto de clipes que devem combinar, gere-os em uma sessão e mantenha o que você recebe, porque voltar amanhã para uma linha de substituição fornece uma linha que é uma fração de segundo diferente.
Por que existe um limite de 3.000 caracteres?
Por causa do que está por trás disso, em vez de qualquer coisa sobre o texto.
Três mil caracteres são aproximadamente dois e três quartos de minuto de fala e cerca de 7 MB de WAV, produzidos em um único slot de síntese que todos compartilham. Um capítulo de 30.000 caracteres ocuparia esse slot por vinte minutos e manteria um buffer de 70 MB na memória ao fazê-lo.
Para qualquer coisa mais, divida os limites dos parágrafos e junte-se às partes. É melhor praticar de qualquer maneira: um erro no parágrafo nove custa a você o parágrafo nove em vez de todo o capítulo, e o conversor de áudio Entrará e converterá o conjunto posteriormente.
Dividir a frase no meio é a única coisa a ser evitada, porque o modelo decide a entonação por enunciado. Uma frase cortada pela metade produz dois fragmentos que soam como frases completas, com um tom de queda no meio do pensamento.
Para que serve e o que não é?
Bom para qualquer coisa escrita para ser lida em voz alta, o que é uma categoria mais restrita do que parece.
| funciona bem | funciona mal |
|---|---|
| Narração sobre um vídeo ou slides | Diálogo entre personagens |
| Uma versão de áudio de um artigo | Qualquer coisa que precise de emoção ou ênfase |
| Acessibilidade: ouvir seu próprio rascunho | Nomes e lugares fora do inglês comum |
| Voz de espaço reservado para um protótipo | Tempo preciso para um corte de vídeo |
| Pronúncia de uma frase que você escreveu | Cantar ou qualquer coisa musical |
O padrão na coluna da direita é Control. O modelo oferece voz, velocidade e assento para ouvir. Não há como enfatizar uma palavra específica, inserir uma pausa de um determinado comprimento, alterar a entonação em uma pergunta ou soletrar um acrônimo. Essas são as coisas que uma API profissional do TTS expõe por meio da marcação, e isso não tem nada disso.
A primeira linha da coluna da esquerda é onde ela ganha seu lugar. Uma voz lendo sua própria escrita para você é a ferramenta de revisão mais rápida que existe, porque uma frase que não funciona é óbvia no momento em que alguém a diz.
Você pode ouvir uma voz antes de se comprometer com ela?
Não, e essa é a única peça da interface que eu mudaria.
As oito vozes são uma lista suspensa de rótulos: Voz 1 a Voz 8, sem amostra anexada a nenhuma delas. A única maneira de descobrir o que parece ser o Voice 6 é gerar com ele, que ocupa o slot de síntese compartilhada, leva alguns segundos e conta contra suas vinte gerações a cada dez minutos.
Para um único que é bom. Para escolher uma voz para um projeto, significa fazer um teste de oito tomadas da mesma linha antes de começar, o que representa um décimo do seu orçamento gasto na decisão.
A abordagem prática é fazer um teste com uma linha curta e não com o script. Uma frase de uma dúzia de palavras volta em cerca de dois segundos e informa o tom e o personagem, que é tudo o que você está escolhendo. Em seguida, mude para o texto real depois de escolher.
A tabela anteriormente neste guia é um atalho parcial: a voz 2 é baixa, a voz 5 é média, a voz 8 é alta. Os cinco que não medimos ficam em algum lugar entre eles.
Como ele se compara a uma voz de nuvem?
Não favoravelmente em polonês, e essa não é a comparação que importa aqui.
Uma API comercial oferece uma prosódia melhor, dezenas de idiomas, controle de marcações sobre pausas e ênfase e vozes treinadas para transmissão. Se você está produzindo algo para publicação, vale a pena o dinheiro.
O que isso lhe dá em vez disso é que o texto nunca sai do hardware do próprio site, e a saída é sua sem conta por personagem e sem conta. Para os usos na coluna da esquerda acima, principalmente ouvir seu próprio rascunho de leitura de volta, a diferença no polonês não vale uma conta na nuvem e uma chave de API.
O resumo honesto é que este é o equivalente a TTS de um microfone embutido decente. É bom o suficiente para você parar de perceber que está lá, e não o que você usaria para gravar um álbum.
Você pode usar o áudio comercialmente?
Provavelmente, com atribuição, e a licença merece uma aparência cuidadosa e não um sim.
O motor Piper é licenciado pelo MIT. O modelo aqui é treinado em Libritts-R, que OpenSLR distribui como "licença: CC BY 4.0", e CC BY 4.0 permite que o uso comercial seja fornecido.
O cuidado é garantido porque os metadados de citação do papel Libritts-R carregam uma string de licença diferente, a variante não derivativa não comercial. Isso provavelmente é uma sobra em um modelo de citação em vez de uma declaração de intenção, e a página de distribuição é o sinal mais forte, mas os dois discordam e não estou em condições de resolvê-lo para você.
Então: para qualquer coisa incidental, essa não é uma pergunta que alguém fará. Para um produto comercial criado no áudio, leia você mesmo a licença do modelo de voz específico e siga as dicas em vez de fazer a leitura de uma página do conjunto de dados.
O que você deve verificar antes de publicar o áudio?
Quatro coisas, na ordem em que erram.
- Ouça a coisa toda. Isso parece óbvio e rotineiramente ignorado, e é a única maneira de pegar um nome incorreto.
- Qualquer substantivo próprio, acrônimo ou unidade. O modelo não possui dicionário que você pode editar. Se "Osei" ou "GDPR" for errado, a correção está soletrando foneticamente no texto de entrada e aceitando que a entrada agora é feia.
- O comprimento, contra o slot que precisa preencher. Lembre-se de que o ritmo é apenas vagamente controlável, então deixe espaço em vez de planejar o segundo.
- Converta antes do upload. 2,6 MB Um minuto de WAV não é o que você deseja em uma página da web.
Por que ele é executado no próprio servidor do site?
Porque os textos que as pessoas leram em voz alta são frequentemente seus próprios escritos inéditos.
Um rascunho, um roteiro, uma carta de apresentação, um discurso, uma mensagem que eles não têm certeza sobre o envio. A alternativa convencional publica em um serviço que cobra por personagem, mantém o texto em termos que ninguém lê e exige uma conta antes da primeira palavra.
Aqui ele vai para um contêiner ao lado do aplicativo da web, é sintetizado e volta como um arquivo. Os custos são visíveis em todas as medidas acima: um slot de cada vez, um teto de 3.000 caracteres, um mono de 22 kHz e uma voz que é boa e não transmitida. Em troca, o texto foi lido por uma máquina em que você já confiava na página.



