Orpheus TTS - Português Brasileiro (v1)

Modelo de Text-to-Speech (TTS) para Português Brasileiro, baseado no Orpheus TTS da Canopy Labs.

Vozes Disponíveis

Voz Gênero Descrição
erinome Feminino Voz feminina brasileira (nova)
tara Feminino Voz original Orpheus
leo Masculino Voz original Orpheus
zoe Feminino Voz original Orpheus
zac Masculino Voz original Orpheus
jess Feminino Voz original Orpheus
mia Feminino Voz original Orpheus
julia Feminino Voz original Orpheus
leah Feminino Voz original Orpheus

Tags de Emoção

O modelo suporta tags de emoção no início da frase:

"<laugh> Essa piada foi muito boa!"
"<chuckle> Isso me lembra uma história engraçada."
"<sigh> Que dia longo, estou precisando descansar."
"<whisper> Deixa eu te contar um segredo."
"<gasp> Nossa, que susto!"

Uso

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from snac import SNAC

# Carregar modelo
model = AutoModelForCausalLM.from_pretrained(
    "marcosremar2/orpheus-ptbr-v1",
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("marcosremar2/orpheus-ptbr-v1")

# Tokens especiais
SOH, SOT, EOT, EOH = 128259, 128000, 128009, 128260
SOA, SOS, EOS = 128261, 128257, 128258

# Gerar áudio
voice = "erinome"
text = "Olá, meu nome é Erinome e eu falo português brasileiro."
prompt = f"{voice}: {text}"

text_tokens = tokenizer.encode(prompt, add_special_tokens=False)
input_ids = torch.tensor([[SOH, SOT] + text_tokens + [EOT, EOH, SOA, SOS]], device="cuda")

with torch.no_grad():
    outputs = model.generate(
        input_ids,
        max_new_tokens=1200,
        do_sample=True,
        temperature=0.6,
        top_p=0.8,
        repetition_penalty=1.5,
        eos_token_id=EOS,
        pad_token_id=tokenizer.eos_token_id
    )

# Decodificar tokens de áudio com SNAC
audio_tokens = outputs[0][input_ids.shape[1]:].tolist()
# ... (usar SNAC para converter tokens em áudio)

Dados de Treinamento

Este modelo foi treinado com os seguintes datasets:

Dataset 1: MLS Portuguese (v3)

Propriedade Valor
Dataset marcosremar2/orpheus-tts-pt-br-v3
Fonte Original MLS (Multilingual LibriSpeech) - Portuguese
Tipo de Áudio Audiobooks (áudio natural)
Amostras ~1,000
Idioma Português Brasileiro
Descrição Áudio de alta qualidade de audiobooks em português, usado para treinar o modelo base em PT-BR

Dataset 2: Gemini TTS (Erinome)

Propriedade Valor
Dataset marcosremar2/orpheus-ptbr-dataset-tts-gemini
Fonte Original Áudio sintético gerado pelo Google Gemini TTS
Tipo de Áudio TTS Sintético
Amostras 16,454
Duração Total 24.69 horas
Speaker erinome (voz feminina)
Descrição Voz feminina brasileira com diversos estilos e emoções, gerada sinteticamente para criar a nova voz "erinome"

Resumo dos Dados

Métrica Valor
Total de Amostras ~17,454
Total de Horas ~25+ horas
Idioma Português Brasileiro
Vozes Treinadas tara, leo, erinome

Arquitetura

Processo de Treinamento

  1. Fase 1 (v3): Fine-tuning do modelo base es_it com dados MLS Portuguese
  2. Fase 2 (erinome): Fine-tuning adicional com dataset Gemini TTS para adicionar voz feminina brasileira
  3. Merge Final: Combinação dos LoRAs em um modelo único

Hiperparâmetros

Parâmetro Valor
Learning Rate 5e-5
LoRA Rank 64
LoRA Alpha 128
Batch Size 2
Gradient Accumulation 4
Epochs 1
Precision bfloat16

Limitações

  • O modelo pode gerar áudio com chiado em algumas situações (característica do codec SNAC)
  • Funciona melhor com frases de 5-30 segundos de duração
  • Tags de emoção funcionam melhor no início da frase

Licença

Apache 2.0

Citação

@misc{orpheus-ptbr-v1,
  author = {Marcos Remar},
  title = {Orpheus TTS - Português Brasileiro},
  year = {2025},
  publisher = {HuggingFace},
  url = {https://huggingface.co/marcosremar2/orpheus-ptbr-v1}
}

Agradecimentos

Downloads last month
239
Safetensors
Model size
3B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for marcosremar2/orpheus-ptbr-v1

Adapters
1 model