ottema/nemotron-3.5-asr-ptbr
Nemotron 3.5 ASR — Brazilian Portuguese
Adaptação para português brasileiro do `nvidia/nemotron-3.5-asr-streaming-0.6b`, com fine-tuning em aproximadamente 366 mil amostras de fala PT-BR (CORAA + Multilingual LibriSpeech + Mozilla Common Voice 9.0).
O modelo é indicado para reconhecimento de fala em português brasileiro em aplicações de batch e streaming de baixa latência.
Destaques
- 600 milhões de parâmetros
- Especializado em português brasileiro
- Encoder Cache-Aware FastConformer + decoder RNNT
- Streaming nativo com chunk sizes configuráveis (80 ms a 1.12 s)
- Compatível com NVIDIA NeMo
- WER normalizado menor que o modelo base (zero-shot) e que o Whisper Large v3 no split oficial de teste do CORAA
A arquitetura e o tokenizer são herdados integralmente do checkpoint base da NVIDIA. O fine-tuning adapta as representações acústicas e linguísticas para fala em português brasileiro.
Benchmark
CORAA — split oficial de teste
Todos os modelos foram avaliados sobre as mesmas 12.676 amostras (≈ 17,6 horas) do split oficial de teste do CORAA, com a mesma rotina de normalização textual aplicada a referência e hipótese.
O split de teste foi usado exclusivamente para avaliação e não foi incluído no fine-tuning. O treinamento utilizou apenas os splits de treino e validação do CORAA.
WER/CER normalizados: lowercase, remoção de pontuação e normalização de espaços, aplicados igualmente a referência e hipótese.
FLEURS pt-BR — teste
Benchmark público comparável (`google/fleurs`, config pt_br, split test, 919 amostras), avaliado sob a mesma rotina de normalização para ambos os modelos:
Para referência, o card do modelo base NVIDIA reporta 5.48% WER em FLEURS Portuguese (LangID, chunk 1.12 s) sob a normalização deles — condições de normalização e decoding diferentes das usadas aqui. Portanto, o resultado da NVIDIA não deve ser interpretado como uma comparação direta ou como evidência de regressão deste checkpoint.
A diferença entre WER raw (28.63%) e normalizado (10.37%) ocorre principalmente porque o modelo não foi otimizado para reproduzir pontuação e capitalização das referências do FLEURS. Para aplicações focadas no conteúdo lexical da transcrição, o WER normalizado é a métrica mais representativa.
Comparação por amostra vs Whisper Large v3
Comparando o WER normalizado dos dois modelos amostra a amostra (vitória = WER estritamente menor):
- Este modelo venceu em 37.5% das amostras
- Whisper Large v3 venceu em 23.1%
- Os 39.4% restantes foram empates
Na análise comparativa de erros, este modelo produziu 66 casos classificados como alucinação, contra 223 do Whisper Large v3 (cerca de 70% a menos). Critério: classificação por heurística sobre os pares referência/hipótese — hipóteses contendo inserções sem correspondência lexical com a referência. Esses números são exploratórios e não devem ser interpretados como uma avaliação humana formal de alucinação.
Configuração da avaliação
- Nemotron (ambos): NeMo 2.8.0rc0, decoding greedy RNNT, transcrição offline em batch (não-streaming),
target_lang="pt-BR" - Whisper Large v3: pacote
openai-whisper,whisper.load_model("large"),transcribe(language="pt")com parâmetros default de decoding, fp16 em GPU - Áudio: 16 kHz mono
- Método: mesmos áudios e referências para todos os modelos; normalização idêntica aplicada a referência e hipótese (lowercase, remoção de pontuação, colapso de espaços)
Uso
import nemo.collections.asr as nemo_asr
model = nemo_asr.models.ASRModel.from_pretrained("ottema/nemotron-3.5-asr-ptbr")
outputs = model.transcribe(["audio.wav"], target_lang="pt-BR")
print(outputs[0].text)Para melhores resultados, use áudio mono a 16 kHz. Testado com NeMo 2.8.0rc0; compatibilidade com outras versões pode variar.
Streaming cache-aware
O modelo herda a arquitetura de streaming cache-aware do checkpoint base. A inferência streaming pode ser feita com os utilitários do NeMo:
python examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py \
model_path=nemotron-3.5-asr-ptbr.nemo \
dataset_manifest=manifest.json \
target_lang=pt-BR \
att_context_size="[56,13]"Valide a configuração de contexto/chunk desejada contra a versão do NeMo em uso antes de deploy em produção.
Dados de treino
Total: 366.317 amostras (≈ 264 horas de áudio) de fine-tuning. Este checkpoint não distribui os áudios originais; usuários devem cumprir as licenças das respectivas fontes de dados.
Configuração do fine-tuning
- Épocas configuradas: 15 (5.000 batches por época)
- Duração máxima de batch: 20 segundos
- Acumulação de gradiente: 10 passos
- Learning rate:
5e-5 - GPU: RTX A4500 20GB, precisão mista
- Checkpoint selecionado por menor
val_wer - Modelo base:
nvidia/nemotron-3.5-asr-streaming-0.6b
Usos pretendidos
- Transcrição de fala em português brasileiro
- Aplicações de atendimento e contact-center
- Transcrição de reuniões
- Interfaces de voz
- Pesquisa em ASR streaming
- Fine-tuning para domínios específicos
- Pipelines locais/privados de processamento de fala
Avalie o modelo no seu próprio domínio de áudio antes de uso em produção.
Requisitos aproximados
- Download do checkpoint: ~2.55 GB (formato
.nemo) - Inferência recomendada: GPU NVIDIA com ≥ 4 GB de VRAM (testado em RTX A4500 20 GB)
- Framework testado: NeMo 2.8.0rc0
- Áudio: WAV mono, 16 kHz
- Decoding padrão do benchmark: greedy RNNT (offline em batch)
- Funciona em CPU, porém significativamente mais lento
Exemplo
Transcrição de uma amostra do split de teste do CORAA:
Referência: "Certo, e aí, quanto tempo você mora aqui, né, nesse bairro?" Transcrição do modelo: "certo e aí quanto tempo você mora aqui né nesse bairro"
Limitações
- Otimizado para português brasileiro; o desempenho em outros idiomas do modelo base pode ter degradado (catastrophic forgetting não avaliado).
- O desempenho varia com sotaque, qualidade de gravação, ruído de fundo, microfone e domínio.
- O benchmark não garante desempenho equivalente em ligações telefônicas, fala médica, áudio far-field ou outros domínios especializados.
- Casos raros de repetição de tokens foram observados em ~0.14% das amostras de teste.
- O modelo pode produzir texto incorreto ou fabricado, especialmente com silêncio, ruído ou áudio fora de domínio. Revisão humana é recomendada para aplicações de alto impacto.
Licença
Distribuído sob a OpenMDW-1.1, herdada do modelo base NVIDIA. Os datasets de treino mantêm suas próprias licenças e requisitos de atribuição.
Agradecimentos
Este trabalho é baseado no NVIDIA Nemotron 3.5 ASR e no framework NVIDIA NeMo, e agradece às equipes e comunidades do CORAA, Multilingual LibriSpeech e Mozilla Common Voice.
Desenvolvido e ajustado por Ottema AI como parte da nossa pesquisa em tecnologias de fala acessíveis para o português brasileiro.
