Text-to-Speech
Transformers
Safetensors
Portuguese
llama
text-generation
tts
portuguese
brazilian
orpheus
speech-synthesis
text-generation-inference
Instructions to use marcosremar2/orpheus-ptbr-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use marcosremar2/orpheus-ptbr-v1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-to-speech", model="marcosremar2/orpheus-ptbr-v1")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("marcosremar2/orpheus-ptbr-v1") model = AutoModelForCausalLM.from_pretrained("marcosremar2/orpheus-ptbr-v1", device_map="auto") - Notebooks
- Google Colab
- Kaggle
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
- Modelo Base: canopylabs/3b-es_it-ft-research_release
- Tipo: Causal Language Model (LLaMA-based)
- Parâmetros: ~3B
- Codec de Áudio: SNAC 24kHz
- Fine-tuning: LoRA (merged)
Processo de Treinamento
- Fase 1 (v3): Fine-tuning do modelo base es_it com dados MLS Portuguese
- Fase 2 (erinome): Fine-tuning adicional com dataset Gemini TTS para adicionar voz feminina brasileira
- 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
- Canopy Labs pelo modelo Orpheus TTS original
- SNAC pelo codec de áudio
- MLS Dataset pelos dados de audiobooks em português
- Downloads last month
- 239