Design clássico · Sênior
Texto→fala (estilo ElevenLabs)
Projeto de entrevista clássico. Pontos centrais: vocoder, clonagem de voz, streaming e MOS.
Resposta curta
Projeto de entrevista clássico. Pontos centrais: vocoder, clonagem de voz, streaming e MOS. O caso pede o desenho de um sistema que transforma texto em fala realista, no estilo dos serviços comerciais de voz sintética. É um problema clássico de entrevista de projeto de sistemas de ML.
01 · CONTEXTO
O que o sistema precisa fazer
O caso pede o desenho de um sistema que transforma texto em fala realista, no estilo dos serviços comerciais de voz sintética. É um problema clássico de entrevista de projeto de sistemas de ML. O curso de System Design de IA generativa da Educative inclui um módulo sobre o projeto de um sistema de geração de fala realista; este caso não reproduz esse módulo e se apoia em artigos científicos e na documentação pública de um fornecedor de voz.
02 · DOIS ESTÁGIOS
Do texto ao espectrograma, do espectrograma à onda
Uma arquitetura divide o problema em dois estágios. No Tacotron 2, uma rede sequência a sequência mapeia caracteres para espectrogramas mel, seguida de um WaveNet modificado que atua como vocoder e sintetiza a forma de onda no domínio do tempo.
O modelo acústico mapeia caracteres para espectrogramas mel.
O vocoder sintetiza a forma de onda no domínio do tempo a partir do espectrograma.
No diagrama, a última aresta liga o vocoder à aplicação.
O vocoder é a peça que mais varia. O WaveNet é autorregressivo: cada amostra de áudio é condicionada a todas as anteriores. Outra família usa redes adversariais generativas (GANs) para produzir formas de onda brutas, como o HiFi-GAN.
| Critério | WaveNet | HiFi-GAN |
|---|---|---|
| Resultado reportado no artigo | Ouvintes o acharam mais natural que sistemas paramétricos e concatenativos, em inglês e mandarim | Áudio de 22,05 kHz com alta fidelidade, 167,9 vezes mais rápido que o tempo real em uma GPU V100 |
Há ainda modelos de estágio único. Segundo o artigo do VITS, alguns modelos de ponta a ponta recentes tinham qualidade de amostra abaixo da dos sistemas de dois estágios; o VITS propõe um método paralelo de ponta a ponta que, segundo os autores, gera áudio mais natural que os modelos de dois estágios então atuais.
Um mesmo texto pode ser falado de várias maneiras, com tons e ritmos diferentes. O VITS propõe, ainda, um preditor estocástico de duração para sintetizar fala com ritmos diversos a partir do texto.
03 · QUALIDADE
Como medir se a voz soa natural
Uma métrica citada nos artigos é o MOS (mean opinion score), uma avaliação humana subjetiva. O Tacotron 2 reportou MOS de 4,53, comparável ao MOS de 4,58 da fala gravada profissionalmente.
04 · STREAMING
Servir áudio enquanto o texto ainda chega
Quando o texto chega aos poucos, o desenho depende dos protocolos de comunicação. A API de WebSocket de TTS do ElevenLabs foi feita para gerar áudio a partir de texto parcial, e a documentação a indica quando o texto é transmitido ou gerado em blocos e quando se precisa de alinhamento entre palavra e áudio.
O cliente envia o texto ao gateway aos poucos, em blocos.
O segmentador divide o texto em trechos antes do modelo.
No diagrama, o modelo acústico se liga ao repositório de perfis de voz.
O vocoder sintetiza a forma de onda a partir da representação acústica.
O áudio volta ao cliente em blocos, para reprodução em tempo real.
O streaming tem um custo. Como as gerações são parciais, há buffering, o que pode causar latência um pouco maior que uma requisição HTTP padrão, e trabalhar com WebSockets pode ser mais difícil e complexo.
| Critério | HTTP padrão | WebSocket |
|---|---|---|
| Latência | Pode ser um pouco menor quando o texto já está inteiro | Pode ser um pouco maior por causa do buffering |
| Complexidade | Mais simples | Pode ser mais difícil e complexo |
A escolha do modelo também é uma troca. Segundo a documentação, o Flash v2.5 oferece latência ultrabaixa de 75 ms, enquanto o Multilingual v2 entrega a maior qualidade de áudio, com expressão mais nuançada. Para textos longos, a documentação recomenda dividir em segmentos e usar streaming; ela também traz uma orientação específica para manter o fluxo natural de prosódia entre blocos.
05 · CLONAGEM DE VOZ
Uma voz escolhida e uma voz clonada
Um exemplo de como servir várias vozes com o mesmo modelo está no WaveNet: um único WaveNet captura as características de vários falantes e alterna entre eles condicionando na identidade do falante.
Em um serviço comercial, a clonagem aparece em duas modalidades. O Instant Voice Cloning é criado a partir de amostras de áudio curtas, com menos de dois minutos. O Professional Voice Cloning exige áudio de treino mais extenso para a maior fidelidade.
| Critério | Clone instantâneo | Clone profissional |
|---|---|---|
| Áudio de entrada | Amostras curtas, com menos de dois minutos | Áudio de treino mais extenso, para a maior fidelidade |
| Compartilhamento na Voice Library | Não pode ser compartilhado publicamente | Pode ser compartilhado publicamente |
A documentação descreve uma tecnologia de voice-captcha que verifica que os clones profissionais são criados a partir das próprias amostras de voz da pessoa.
Perguntas frequentes
O que é Texto→fala (estilo ElevenLabs)?
Projeto de entrevista clássico. Pontos centrais: vocoder, clonagem de voz, streaming e MOS.
O que o design de Texto→fala (estilo ElevenLabs) cobre?
Ele está organizado nestas seções: O que o sistema precisa fazer, Do texto ao espectrograma, do espectrograma à onda, Como medir se a voz soa natural, Servir áudio enquanto o texto ainda chega e Uma voz escolhida e uma voz clonada.
Quanto tempo leva Texto→fala (estilo ElevenLabs) e qual é o nível?
Leva cerca de 16 minutos para ler e tem nível Sênior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.