Instructions to use onsdevops/tiago-transcricao with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use onsdevops/tiago-transcricao with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="onsdevops/tiago-transcricao")# Load model directly from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq processor = AutoProcessor.from_pretrained("onsdevops/tiago-transcricao") model = AutoModelForSpeechSeq2Seq.from_pretrained("onsdevops/tiago-transcricao", device_map="auto") - Notebooks
- Google Colab
- Kaggle
TIAGO Transcrição — Whisper ajustado para comunicação operativa
Modelo de reconhecimento de fala (ASR) ajustado a partir do
openai/whisper-medium para transcrever
comunicação operativa em português do Brasil — o diálogo por rádio e telefone entre
centros de operação e agentes do setor elétrico.
Faz parte do TIAGO Transcrição, o mecanismo de transcrição de áudio da sala de controle do ONS (Operador Nacional do Sistema Elétrico). O código do pipeline completo — API, worker, diarização, enriquecimento por LLM e infraestrutura — está em ONSBR/TIAGO-Transcricao.
Para que serve
Áudio operativo é um caso difícil para ASR de propósito geral: canal estreito e ruidoso, sobreposição de fala, jargão técnico denso (equipamentos, instalações, manobras) e protocolo de comunicação próprio. Um modelo generalista erra justamente nos termos que importam para o registro operativo.
O ajuste corrige isso no vocabulário e no estilo de fala do domínio.
Uso
from transformers import pipeline
asr = pipeline(
"automatic-speech-recognition",
model="onsdevops/tiago-transcricao",
return_timestamps=True,
chunk_length_s=30,
)
resultado = asr("audio.wav", generate_kwargs={"language": "portuguese", "task": "transcribe"})
print(resultado["text"])
O repositório é autocontido: traz os pesos, as configurações e os arquivos de tokenizer,
então from_pretrained funciona sem depender do modelo base.
Modelo de segmentação
A subpasta segmentation/ traz o modelo de segmentação de falantes (PyanNet) ajustado
no mesmo domínio, usado pelo pipeline para diarização. Ele substitui o componente de
segmentação de um pipeline pyannote; não é um modelo de ASR e não funciona sozinho.
# no pipeline completo, ver o repositorio do codigo
from huggingface_hub import snapshot_download
snapshot_download("onsdevops/tiago-transcricao", allow_patterns="segmentation/*")
Desempenho
Avaliação interna sobre um conjunto de 215 áudios de comunicação operativa real, com transcrição de referência anotada à mão. Comparação com o Amazon Transcribe sobre os mesmos áudios, após a mesma normalização de texto (minúsculas, sem acentos nem pontuação):
| Métrica | Amazon Transcribe | Este modelo |
|---|---|---|
| WER ↓ | 0,414 | 0,406 |
| MER ↓ | 0,404 | 0,354 |
| CER ↓ | 0,329 | 0,283 |
| WIL ↓ | 0,483 | 0,475 |
| WIP ↑ | 0,517 | 0,525 |
Leia com cuidado: o modelo fica à frente nas cinco métricas, mas a margem em WER é estreita (0,406 contra 0,414, com desvios-padrão em torno de 0,2) e mais folgada em CER e MER. Não há intervalo de confiança calculado, e os desvios são altos. Trate como ordem de grandeza, não como superioridade estabelecida.
O WER absoluto de ~0,4 reflete a dificuldade do material: áudio de rádio comprimido, com ruído de fundo e sobreposição de vozes.
Treino
- Base:
openai/whisper-medium(764M parâmetros) - Dados: comunicação operativa real, em português, do Sistema Interligado Nacional
- Hiperparâmetros: batch 48, learning rate 1e-5, warmup 500 passos, 5000 passos no total, fp16, seleção do melhor checkpoint por WER
- Precisão dos pesos publicados: float32
Nota de reprodutibilidade: 5000 passos com batch 48 correspondem a muitas épocas sobre o conjunto de treino, bem acima do usual para ajuste de ASR, e os splits não fixam semente. Quem for reproduzir deve revisar isso.
Limitações e riscos
- Domínio estreito. Ajustado para diálogo operativo do setor elétrico em português.
Fora desse domínio, tende a ter desempenho pior que o próprio
whisper-medium, porque o ajuste especializa o vocabulário. - Viés de vocabulário. Aprendeu nomes de instalações, equipamentos e o protocolo de comunicação do SIN. Pode forçar esses termos em áudio que não os contém.
- Memorização. O modelo foi ajustado em gravações reais de operação. Como qualquer modelo de sequência, pode reproduzir trechos memorizados do treino diante de entrada ambígua ou ruidosa — inclusive nomes próprios e identificadores raros. Não use a saída como evidência de que algo foi dito sem verificação contra o áudio.
- Não é um sistema de identificação. Não identifica quem fala, e não deve ser usado para atribuir falas a pessoas específicas.
- Dados de treino não são distribuídos. As gravações e as transcrições de referência são comunicação operativa real e não acompanham este modelo.
Licença e contato
Apache 2.0.
Mantido pela Comunidade de IA do ONS — cia@ons.org.br. Defeitos e sugestões: as issues do repositório de código.
- Downloads last month
- -
Model tree for onsdevops/tiago-transcricao
Base model
openai/whisper-medium