O VoiceStudio chegou ao #1 do GitHub Trending em setembro. A descrição foi o que me pegou: a alternativa open source e totalmente local ao ElevenLabs — clonagem de voz, dublagem, um catálogo de 646 idiomas, sem cadastro, sem chave de API, sem cobrança por caractere.
Eu já tinha pago quase $200 ao ElevenLabs pelas narrações em inglês e japonês. Então a pergunta não era abstrata. Um Mac com 16 GB consegue rodar essa coisa? É difícil de configurar? A voz é boa o bastante para colocar diante de clientes pagantes? E se a resposta for sim, o que exatamente o ElevenLabs vende que um app local não consegue oferecer?
O histórico do git deste experimento vai de 17 de outubro de 2026 (o primeiro commit da especificação de TTS local) a 26 de outubro (as duas edições localizadas concluídas). São nove dias, não um trimestre. Os conjuntos de áudio em chinês e coreano estão completos: 258 pares cada, 3 h 06 e 3 h 25 de narração.
O que o VoiceStudio realmente é
O VoiceStudio é um app desktop, não um script Python que precisa de vigilância constante. Ele envolve uma API local e expõe um catálogo de 16 motores de TTS e 11 motores de reconhecimento de fala em uma única interface. Roda em macOS, Windows, Linux e Docker. O app é AGPL-3.0 (repositório, consultado em 25 de outubro de 2026).
O repositório tinha cerca de 85,000 estrelas até 25 de outubro, cerca de seis meses depois de ser criado em 9 de abril de 2026. Foi o repositório no topo do GitHub Trending em pelo menos dois dias de setembro. A licença é a primeira surpresa. O app é open source; os pesos dos modelos não têm automaticamente a mesma licença. O motor padrão OmniVoice tem termos separados, e seus pesos pré-treinados são não comerciais (ficha do modelo, consultada em 25 de outubro de 2026). O CosyVoice 3 — motor que acabei usando — é Apache-2.0. O VoxCPM2 também é Apache-2.0.
Essa distinção é a primeira lição de verdade. "Alternativa open source ao ElevenLabs" é uma afirmação sobre o aplicativo. Não é uma afirmação sobre os pesos, as vozes ou a saída. Se você usa isso em um trabalho pago, precisa fazer a arqueologia das licenças por conta própria, motor por motor.
Um Mac com 16 GB consegue rodar?
Consegue. Nem sempre bem, e nem sempre com o motor que você queria.
A configuração não foi a parte difícil. Instalar o app, abrir, escolher um motor, deixar baixar os pesos. Difícil foi encontrar um motor que terminasse um lote de 258 slides nesta máquina sem cair.
Tentei o VoxCPM2 primeiro. Ele roda no MPS da Apple e soa bem. Sob carga em um Mac Apple Silicon com 16 GB, derrubou a memória livre para cerca de 8%, o swap passou de 9 GB e as requisições estouraram o timeout. Um piloto do módulo 1 produziu 1 de 36 slides antes que eu o interrompesse. O modelo não estava produzindo uma voz ruim; não conseguia concluir um lote longo sob pressão de memória.
Passei para o CosyVoice 3 na CPU. Ele concluiu a carga de trabalho. O clipe de referência precisa ter 30 segundos ou menos, uma restrição real ao clonar uma voz. A amostra de 30 segundos que usei era mono de 24 kHz.
E ainda assim o lote falhou — por um motivo que não tinha nada a ver com o modelo.
A falha que parecia um problema do modelo
Depois de uma hora, eu tinha 4 de 258 pares de áudio. Os logs mostravam novas tentativas, depois 429s do pool local de workers, depois jobs órfãos. A conclusão óbvia era que o motor local não dava conta do chinês.
Dava. O problema era o fetch do Node. O timeout padrão de headers dele é de cinco minutos. Alguns slides em chinês levavam de cinco a sete minutos para sintetizar. O cliente abandonava a requisição enquanto o worker ainda a gerava, depois tentava de novo e enfileirava um segundo job para o mesmo slide. A fila enchia de trabalho que ninguém mais esperava.
Uma nova tentativa não resolve nada se o servidor ainda está trabalhando na requisição que você abandonou.
Quando a síntese de voz passou a usar um transporte http/https do Node com timeout maior, o módulo 1 terminou 36/36. O primeiro checkpoint completo em chinês chegou a 258/258 pares e 3 h 05 m 57 s de narração. Levou 28 h 12 m 41 s de tempo decorrido do primeiro ao último arquivo — um número que inclui falhas, pausas, hardening e novas tentativas, não um benchmark limpo de síntese. O pior slide levou 37 minutos em três tentativas.
Esse é o retrato honesto da inferência local. O modelo não é uma caixa mágica que transforma texto em áudio na velocidade da demo. É um job em lote com uma cauda longa, e é na cauda que mora a engenharia.
A máquina definiu a arquitetura
Um Mac com 16 GB não é um servidor de TTS. Slides normais terminavam em 2–6 minutos; os patológicos levavam 13–23. O pior levou 37m 09s em três tentativas. Toda melhoria séria no pipeline foi para sobreviver à máquina lenta, não para ganhar de um serviço hospedado em velocidade.
Os controles que sobreviveram:
- Um ponto de extensão
TtsEngine, para que a narração local ou hospedada pudesse ser escolhida explicitamente, em vez de ficar fixa no código. O ponto entrou em 19 de outubro; a seleção local veio em 21 de outubro. - Um timeout de transporte de verdade, porque a suposição padrão de cinco minutos era menor que o trabalho.
- Locks de execução única e de workers, parada em caso de falha e um worker drenado antes de tentar de novo, porque reenviar para um motor ocupado não é tentar de novo.
- Chunks de frases com retomada, porque recomeçar do zero um slide de 30 minutos desperdiça o único recurso escasso da máquina.
- Substituição segura, porque uma nova tentativa de gravação que falhou não pode destruir a boa gravação anterior.
- Reset do worker por módulo, como precaução contra deriva de memória em uma execução longa.
- Normalização da taxa de amostragem, porque uma montagem produziu uma faixa de áudio de 63 minutos ao concatenar segmentos de 24 kHz e 44.1 kHz. Parecia um arquivo plausível até eu conferir a duração.
caffeinate -i, documentado em 24 de outubro — o oitavo dia. Eu vinha rodando lotes de várias horas em um Mac livre para tirar uma soneca. É a linha menos sofisticada do pipeline e talvez a mais importante. Me senti um noob. E eu era um.
A questão não é que o pipeline seja impressionante. É que o pipeline é o produto. Os oito dias foram dedicados a fazer um motor local lento se comportar como infraestrutura: parar em caso de falha, retomar de onde quebrou, nunca substituir uma boa gravação por outra não verificada e manter a máquina acordada.
Por que o cantonês ficou de fora
Em 21 de outubro, tirei o cantonês do programa. O motivo foi evidência, não ideologia: não havia um caminho local validado para cantonês neste curso. O VoxCPM2 não tinha suporte a yue. O CosyVoice lista yue, mas eu não o tinha validado para este curso. Eu poderia ter entregue um chute, ou usado uma voz que ninguém tinha ouvido naquele idioma. Uma edição errada em cantonês é pior do que nenhuma edição em cantonês. O site ainda tem um locale zh-HK para artigos; o curso é em chinês simplificado, não em chinês tradicional nem cantonês.
O pipeline consegue produzir um arquivo em um idioma para o qual o modelo não foi validado. A barreira precisa ser uma pessoa dizendo não.
258/258 não é o mesmo que correto
O primeiro checkpoint completo em chinês tinha 16 slides com pelo menos uma frase faltando. A contagem de slides estava certa. Os pares existiam. A narração ainda estava errada em dezesseis slides. Esses slides foram identificados ao conferir a cobertura do texto em relação ao roteiro e corrigidos um a um.
Isso mudou o critério. "Todos os arquivos existem" virou "todos os arquivos existem, a narração cobre o roteiro e uma amostra de cada módulo foi ouvida". Paridade total é o critério; um lote verde não é o produto.
A qualidade é boa o bastante?
As amostras corrigidas que ouvi são boas o bastante para este curso; a aprovação completa é um gate separado. É uma decisão minha como responsável pelo produto, não uma certificação.
Transcrevi o áudio com o ASR local e comparei com o roteiro. A média dos primeiros spot checks foi 0.903. A média do checkpoint completo em chinês foi 0.908. São notas normalizadas de similaridade textual, não medidas de naturalidade ou semelhança com o locutor. O pior slide — módulo 4, slide 8 — marcou 0.776; o ASR entendeu errado um nome de marca. Um slide com alternância de idiomas no módulo 6 produziu texto sem sentido, depois um parágrafo repetido, depois um corte; o chunking por frase o corrigiu para 0.909.
A voz é clara, consistente e reconhecivelmente minha — para o meu ouvido. Não tem o polimento do ElevenLabs. As edições em chinês e coreano não passaram pela revisão linha a linha de um falante nativo; eu as revisei com um editor de IA e ouvi amostras. Essa limitação pertence à página do curso, não só a um post de blog.
Se o seu padrão é "parece locução de estúdio", pague alguém. Se é "clara, consistente, minha e boa o bastante para ensinar", o local agora está ao alcance.
Quanto custou
ElevenLabs: quase $200 pelas narrações em inglês e japonês, incluindo o clone de voz.
Local: um Mac, nenhuma fatura adicional de TTS por caractere nessas execuções, nenhum gasto com TTS ou ASR em nuvem. O primeiro checkpoint em chinês custou 28 horas de tempo decorrido por 3 horas de áudio, além do tempo de engenharia e QA na tabela acima. O consumo de eletricidade não foi medido.
Os $200 compraram uma voz, um fluxo de trabalho e o uptime de outra pessoa. O caminho local trouxe menos dependência de uma API de narração hospedada, processamento local da voz e uma conta que não cresce a cada nova renderização — e custou dias de engenharia em um timeout que nunca esteve no modelo. A redação das traduções ainda usou o Claude em nuvem; só a narração e o ASR ficaram no Mac.
Afinal, quão defensável é o ElevenLabs?
Aqui preciso ter cuidado, porque um curso em um Mac não é um mercado.
O que mudou para esta carga de trabalho foi a conta marginal de narração. Se você tem autorização para clonar a voz, a carga é em lote, você consegue verificar a saída e tolera uma cauda lenta, a inferência local elimina o custo por caractere de outra passada ou outro idioma. Essa é uma consideração real para um desenvolvedor escolhendo uma API para um pipeline em lote.
O que um serviço hospedado ainda oferece é mais difícil de substituir:
- Um teto de qualidade. A saída que testei localmente não é a melhor voz hospedada que já ouvi.
- Latência. Um lote local leva minutos por slide. Um produto que responde em tempo real é outro problema de engenharia.
- Confiabilidade operacional. Tive que depurar um timeout de cinco minutos, um teto de memória, a drenagem de workers e uma licença.
- Direitos de voz e conformidade. Clonar voz é uma questão jurídica, não um recurso. Usar uma API hospedada não transfere a responsabilidade do cliente por garantir os direitos e consentimentos.
- Amplitude. O CosyVoice lista suporte aos meus quatro idiomas de lançamento; validei o chinês, e a validação do coreano está em andamento. Um produto global precisa de muitos mais.
A conclusão honesta é mais estreita do que "o open source mata o ElevenLabs". A inferência local mudou a conta para a minha carga de re-renderizações em lote. Não substituiu o produto ao qual você recorre quando latência interativa, um catálogo amplo de vozes, suporte contratado ou um teto de qualidade específico importa. Essas são minhas avaliações a partir de um projeto, não uma previsão de mercado.
Por que isso virou uma história de curso
Eu não pretendia escrever sobre modelos de voz. Eu pretendia lançar um curso em mais idiomas do que conseguia produzir sozinho.
O mesmo modelo operacional ensinado no curso foi o que produziu a edição em chinês e está produzindo a em coreano: pesquisar, planejar, construir um pipeline, verificar a saída, manter sob responsabilidade humana as partes que precisam disso. Um operador de publicidade, Claude para rascunhar as traduções, uma voz local de pesos abertos para a narração, nenhum fornecedor de localização, nenhum estúdio de dublagem.
Foi assim que apliquei partes do modelo operacional ao meu próprio produto.
Se você trabalha com publicidade e se pergunta se a IA é ameaça ou alavanca, esta é a versão da alavanca. Você não precisa de uma equipe grande. Precisa de gosto, de um checklist e da disposição para depurar a última milha.
O que eu diria a outro desenvolvedor
- Teste a opção local quando você tiver autorização para clonar a voz, a carga for em lote, puder verificar a saída e tolerar uma cauda lenta.
- Pague pelo serviço hospedado quando precisar de latência em tempo real, um catálogo amplo de vozes, disponibilidade garantida por contrato ou um teto de qualidade específico.
- Confira a licença dos pesos antes de construir um produto pago sobre um app "open source". AGPL-3.0 permite uso comercial sob suas condições; os pesos do modelo e os direitos sobre a voz são questões separadas.
- Teste o pior caso, não a demo. O pior caso não é um prompt maior. É um slide longo com alternância de idiomas, um timeout de transporte e uma fila de novas tentativas ao mesmo tempo.
FAQ
Um Mac com 16 GB consegue rodar clonagem de voz local?
Consegue. O CosyVoice 3 roda na CPU; o VoxCPM2 precisava de mais folga de memória do que esta máquina tinha sob carga. Espere minutos por slide, não segundos.
TTS open source é bom o bastante para um curso pago?
As amostras corrigidas em chinês que ouvi são claras e consistentes, sem polimento de estúdio. É uma decisão minha como responsável, não uma validação por um falante nativo.
O VoiceStudio é gratuito para uso comercial?
O app é AGPL-3.0, que permite uso comercial sob suas condições. Os pesos dos modelos têm suas próprias licenças; os pesos pré-treinados do OmniVoice são não comerciais. Confira cada motor antes de lançar.
As edições em chinês e coreano foram traduzidas por IA?
Sim — os rascunhos foram feitos com Claude e revisados com um editor de IA, não por um falante nativo. A narração e o ASR rodaram localmente, com o CosyVoice 3 e o modelo de transcrição local, respectivamente; o rascunho da tradução usou a nuvem.
Quanto tempo leva um curso de 258 slides?
O checkpoint em chinês: 28 horas de tempo decorrido para 3 h 06 m de áudio, incluindo falhas e novas tentativas, seguido de uma rodada de correção de 16 slides. O checkpoint em coreano: 31 horas para 3 h 25 m, incluindo um desvio por causa de um worker travado e a correção de dois slides.
O curso
O curso é AI-Native Media Operations — sete módulos, dezesseis templates e narração em inglês, japonês, chinês simplificado e coreano.