Um modelo chamado “Tiny” parece, à primeira vista, a escolha mais simples para rodar localmente. No Ming-3.0-TTS, a lógica é inversa: comece pelo checkpoint denso 0.5B e deixe o Tiny para os casos em que gerar podcasts com múltiplos locutores é indispensável. Há, porém, uma ressalva importante sobre hardware: a InclusionAI documenta testes em H800/H20, não um requisito mínimo para GPUs de consumo.
Escolha o checkpoint antes de montar o ambiente
O Ming-3.0-TTS oferece dois checkpoints, com backbones, conjuntos de dependências e pontos de entrada distintos. O 0.5B é a opção mais sensata para a primeira instalação. Já o Tiny justifica sua estrutura maior quando semelhança de voz ou diálogos com vários locutores pesam mais do que a simplicidade de implantação.
| Critério de decisão | Ming-3.0-tts-0.5B | Ming-3.0-tts-tiny |
|---|---|---|
| Arquitetura | Backbone denso Qwen2.5-0.5B | Ling V3 MoE, 7.9B no total / 1.3B ativos |
| Classe oficial de API | ming_tts.MingTTS | ming_tiny.MingTinyTTS |
| CLI principal | infer.py | infer_tiny.py e scripts de execução com um clique |
| Ambiente de referência | PyTorch 2.6, CUDA 12.4 | Python 3.10.15, PyTorch 2.7.1+cu118 |
| Hardware documentado | Testado em H800-80GB e H20-96G | H800 recomendado |
| Motivo exclusivo para escolhê-lo | Checkpoint denso menor; maior precisão em coreano e nos controles básicos nos testes do fornecedor | Modo de podcast com múltiplos locutores; maior semelhança de locutor em chinês/inglês nos testes do fornecedor |
| Tamanho publicado do checkpoint | Cerca de 2,96 GB, segundo a comparação de arquivos relatada pela OrcaRouter | Cerca de 18 GB no Hugging Face |
Os dois checkpoints produzem áudio a 44,1 kHz, suportam sete idiomas e separam clonagem de voz, design de voz, emoção, dialeto e outros controles em modos de tarefa específicos. O repositório oficial distribui ambos sob licença MIT e informa que o Tiny exige um ambiente dedicado, pois suas dependências fixadas diferem das do 0.5B.
O termo “Tiny” se refere ao processamento MoE ativo, e não ao tamanho dos pesos armazenados. O model card do Tiny aponta 7.9B de parâmetros no backbone, aproximadamente 1.3B ativos por token e um repositório de aproximadamente 18 GB.
Configuração local: do clone à validação do checkpoint
Uma instalação local confiável do Ming-3.0-TTS mantém os dois modelos em ambientes separados. Clone o código oficial uma vez, instale somente os requisitos do checkpoint escolhido, baixe seus pesos e execute o script de pré-validação correspondente antes de carregar o modelo.
Instale o ambiente do 0.5B
O caminho básico pelo repositório é curto:
git clone https://github.com/inclusionAI/Ming-3.0-tts.git
cd Ming-3.0-tts
conda create -n ming-tts python=3.10 -y
conda activate ming-tts
pip install -r requirements.txt
O model card do 0.5B informa que a configuração de referência usa PyTorch 2.6, CUDA 12.4 e transformers==4.46.3. FlashAttention é opcional; o fallback é o SDPA do PyTorch. Esse fallback garante compatibilidade, mas o projeto não publica qual é a perda de desempenho associada a ele.
Números, datas, unidades e símbolos passam por normalização de texto com FST. Instale a versão fixada do Pynini via Conda:
conda install -c conda-forge pynini==2.1.6
pynini não tem uma wheel universal. A opção --no_text_normalization ignora essa etapa, mas envia abreviações, datas, números e símbolos brutos ao sintetizador. Portanto, é um recurso de diagnóstico, não um padrão para produção.
Instale o Tiny em outro ambiente
Não instale o Tiny por cima do ambiente do 0.5B. A configuração oficial fixa Python 3.10.15, wheels CUDA 11.8, PyTorch e torchaudio 2.7.1, além de transformers==4.46.3:
conda create -n ming-tiny python=3.10.15 -y
conda activate ming-tiny
pip install -r requirements-tiny.txt
O Tiny usa computação BF16, um loop MoE portável e estado recorrente em FP32. A InclusionAI recomenda uma NVIDIA H800, enquanto a documentação não traz um caminho compatível para CPU, Apple Silicon, GGUF ou llama.cpp.
Baixe e valide qualquer um dos checkpoints
A CLI do Hugging Face permite salvar os pesos em um diretório local previsível:
pip install "huggingface_hub[cli]"
hf download inclusionAI/Ming-3.0-tts-0.5B \
--local-dir Ming-3.0-tts-0.5b
python tools/preflight.py --model_path Ming-3.0-tts-0.5b
Para o Tiny, troque o ID do modelo e execute seu próprio verificador:
hf download inclusionAI/Ming-3.0-tts-tiny \
--local-dir Ming-3.0-tts-tiny
python tools/preflight_tiny.py --model_path Ming-3.0-tts-tiny
Os scripts de pré-validação checam a estrutura do checkpoint e do tokenizer sem carregar os pesos. Usuários na China continental podem usar o comando de download do ModelScope documentado no README do projeto.
Gere um arquivo antes de subir um servidor
A primeira validação útil é gerar um WAV pela CLI do repositório. Para clonagem de voz com o 0.5B, informe o texto de destino, um WAV de referência, a transcrição exata desse áudio e --use_spk_emb. A transcrição faz parte do caminho de condicionamento; não é um metadado opcional.
python infer.py \
--model_path Ming-3.0-tts-0.5b \
--task TTS \
--language_id English \
--text "The release candidate passed every audio check." \
--prompt_wav_path reference.wav \
--prompt_text "This is the exact speech in the reference recording." \
--use_spk_emb \
--output output/first.wav
A saída deve ser um WAV de 44,1 kHz. Se a validação do checkpoint passar, mas esse comando falhar, verifique a compatibilidade entre CUDA e PyTorch, além do arquivo de referência, antes de acrescentar uma interface ou camada de servidor. Os repositórios do Hugging Face distribuem os checkpoints; ambos os model cards deixam claro que a inferência prática exige o repositório separado no GitHub.
O áudio de referência deve estar limpo, e sua transcrição precisa ser exata. A documentação oficial não define uma duração ideal para a referência; não transforme uma regra prática não documentada em requisito rígido de validação.
Exponha o Ming-3.0-TTS em um único endpoint de voz
O SGLang-Omni pode disponibilizar qualquer um dos checkpoints em uma GPU via POST /v1/audio/speech. O cookbook do SGLang para Ming-3.0-TTS deixa o pré-processamento na CPU e coloca o backbone junto do decodificador AudioVAE na mesma GPU.
Inicie um checkpoint:
sgl-omni serve --model-path inclusionAI/Ming-3.0-tts-0.5B
Depois, solicite um WAV:
curl http://127.0.0.1:8000/v1/audio/speech \
-H "Content-Type: application/json" \
-d '{
"model": "inclusionAI/Ming-3.0-tts-0.5B",
"input": "The local speech endpoint is ready.",
"response_format": "wav",
"seed": 123
}' \
--output speech.wav
Esse endpoint aceita wav, mp3, flac ou pcm; WAV é o formato padrão. Uma entrada vazia retorna HTTP 400. O campo model precisa corresponder ao checkpoint usado para iniciar o servidor.
Não projete a reprodução em torno de streaming no estilo token a token. Segundo o cookbook do SGLang, stream=true ainda espera a geração terminar e devolve um único corpo de resposta PCM completo. Ele também aceita apenas uma gravação de referência para clonagem; uma segunda referência é rejeitada.
Controles são modos de tarefa, não opções combináveis
Os controles do Ming-3.0-TTS funcionam como contratos de tarefa separados. Em vez de misturar todos os controles disponíveis em uma chamada, selecione a tarefa correspondente ao resultado que você busca.
| Objetivo | Tarefa no 0.5B | Tarefa no Tiny | Regra importante de entrada |
|---|---|---|---|
| Clonar uma voz | TTS | seed | Áudio de referência e transcrição exata |
| Alemão, espanhol, francês, coreano ou japonês | MULTILINGUAL | multilingual | Referência e transcrição; idioma de destino explícito |
| Risadas, suspiros ou respirações no texto | TTS | paralinguistic | Chinês ou inglês; use as tags inline documentadas |
| Direção de interpretação em linguagem natural | FREEFORM | freeform | Referência não é recomendada; não combine com outras tarefas de controle |
| Criar uma voz a partir de texto | VOICE_DESIGN | voice_design | Sem áudio de referência |
| Definir emoção | EMOTION | emotion | Áudio de referência; sem transcrição da referência |
| Definir velocidade, tom e volume | BASIC | basic | Forneça os três controles |
| Sichuanês ou cantonês | DIALECT | dialect | Sem language_id |
| Roteiro com múltiplos locutores | Não suportado | podcast | Uma referência e transcrição por locutor; cada linha começa com speaker_N: |
O cookbook oficial afirma explicitamente que o modo free-form não pode ser combinado com design de voz, vozes integradas, emoção, dialeto ou atributos básicos. Vários eventos paralinguísticos em uma mesma frase são suportados, mas as limitações do repositório informam que a estabilidade continua inferior à observada com eventos únicos.
O que as métricas comprovam — e o que não comprovam
As evidências públicas mais fortes apontam o 0.5B como padrão e o Tiny como uma opção especializada. Resultados da Artificial Analysis reproduzidos no README oficial colocam o Ming-3.0-TTS em 1,069 de Controlled Voice Elo e 93,2% de robustez de pronúncia em outubro de 2026, mas essas alegações de leaderboard se aplicam ao modelo 0.5B e não comprovam a qualidade do Tiny.
As avaliações do fornecedor revelam uma troca real entre os checkpoints. Nos dados de avaliação Seed-TTS, o 0.5B registra WER em chinês/inglês de 0,800%/1,584%, enquanto o Tiny registra 0,820%/1,666%. O Tiny apresenta maior semelhança de locutor nos dois idiomas: 0,781/0,728, contra 0,758/0,691 do 0.5B. Esses números vêm das tabelas de avaliação da InclusionAI, não de um teste local reproduzido.
O Tiny não é superior de forma uniforme nos sete idiomas. A tabela multilíngue oficial mostra CER em coreano de 6,000% para o Tiny, ante 1,728% para o 0.5B. Apenas o Tiny suporta podcasts e registra 2,03% de CER em podcasts, 0,561 de similaridade condicional de locutor e 2,12 de UTMOS, mas a InclusionAI também lista a qualidade prevista do áudio de podcast como um ponto a melhorar.
Na prática, a conclusão é específica: escolha o 0.5B para a primeira implantação, para coreano e para menor complexidade operacional; avalie o Tiny para geração de podcasts ou quando a semelhança de voz medida nas suas próprias referências justificar o checkpoint maior.
Valide a implantação no seu hardware
Conseguir concluir a configuração oficial não prova que a solução é viável em produção numa GPU de consumo. Um critério de aprovação deve registrar pico de VRAM, tempo até o primeiro WAV concluído, fator de tempo real, taxa de falhas e qualidade de saída nas condições exatas de idioma e áudio de referência usadas pela aplicação.
“Ainda não há GGUF/llama.cpp, nem benchmarks em GPUs de consumo.” — @TeksEdge no X
A observação coincide com os limites das evidências oficiais: a documentação do 0.5B cita H800-80GB e H20-96G como sistemas de teste, enquanto o Tiny recomenda H800. Nenhum model card oficial publica resultados para RTX 4090, RTX 3090, Windows, WSL2, macOS, VRAM mínima ou fator de tempo real.
Use esta sequência de aprovação/reprovação:
- Execute o script de pré-validação correspondente e guarde sua saída com a revisão do checkpoint.
- Gere um WAV curto por um caminho com voz integrada ou sem locutor e, depois, repita com o formato de referência usado em produção.
- Meça o pico de VRAM e o tempo de parede para textos curtos, medianos e longos de produção.
- Avalie separadamente inteligibilidade e identidade do locutor em todos os idiomas que serão disponibilizados.
- Teste cada controle necessário como uma tarefa própria; rejeite configurações que dependam de combinações não suportadas.
- Faça teste de carga do comportamento de API com forma de onda completa, incluindo timeouts de requisição e concorrência.
Sem essas medições, “roda localmente” significa apenas que a pilha de referência consegue carregar e sintetizar no hardware de datacenter documentado.
Perguntas frequentes sobre Ming-3.0-TTS
O Ming-3.0-TTS roda em uma RTX 4090 ou 3090?
O lançamento oficial não publica um valor mínimo de VRAM nem benchmarks em GPUs de consumo. O checkpoint 0.5B é o ponto de partida mais plausível, mas valide localmente o pico de alocação e o fator de tempo real antes de se comprometer com qualquer uma das placas.
O Ming-3.0-TTS funciona no Windows ou macOS?
Os ambientes de referência oficiais são stacks Linux baseadas em CUDA. Não há suporte documentado para Windows nativo, WSL2, Apple Silicon, MLX, GGUF ou llama.cpp no repositório oficial.
O Ming-3.0-TTS pode ser usado comercialmente?
O código e os checkpoints distribuídos usam licença MIT. Os mantenedores proíbem impersonação enganosa ou sem consentimento nas orientações de uso e pedem que fala sintética seja identificada quando puder ser confundida com uma gravação real.
A API do SGLang transmite áudio em tempo real?
Não. O comportamento documentado de stream=true conclui a geração antes de devolver um único corpo de resposta PCM, portanto os clientes devem tratá-lo como geração de resposta completa, não como reprodução incremental.
Devo usar Ming-3.0-tts-0.5B ou Tiny?
Comece pelo 0.5B se busca um checkpoint menor, implantação mais simples, síntese em coreano e trabalho comum com um único locutor. Use o Tiny quando a geração de podcasts com múltiplos locutores for obrigatória ou quando uma avaliação local confirmar que suas pontuações maiores de semelhança de locutor em chinês/inglês se transferem para as suas vozes.