Speech-to-Text & IA | Transcreva qualquer áudio para o português com o Whisper (OpenAI)… sem nenhum custo!

Pierre Guillou
7 min readDec 9, 2022

--

Speech-to-Text em português com Whisper (crédito da imagem: “10 Polite Words for Impolite People”)
Speech-to-Text em português com Whisper (crédito da imagem: “10 Polite Words for Impolite People”)

Paga por um serviço online para obter transcrições de texto de seus arquivos de áudio? E porque não usar um modelo Whisper da OpenAI para fazer esse trabalho… de graça! Precisa especializar um modelo Whisper para as peculiaridades linguísticas de seus arquivos de áudio? Não tem problema, existem scripts e notebooks de ajuste fino (fine-tuning) para isso. Como bônus, este artigo fornece 2 modelos Whisper ajustados em português e francês, bem como interfaces Web de uso, código de inferência e também todos os notebooks correspondentes. Bom Whisper a todas e todos!

[ Atualização em 08/12/2023 ] Novos posts sobre o assunto Speech-to-Text & IA:

Speech-to-Text | Quickly get a transcription of a large audio file in any language with “Faster-Whisper”

Speech-to-Text | Get transcription WITH SPEAKERS from large audio file in any language (OpenAI Whisper + NeMo Speaker Diarization)

Sumário

  • Whisper, modelo Speech-to-Text
  • Whisper multilíngue
  • Whisper ajustado em português e francês
    - Modelos
    - Web APPs
    - Notebooks
  • Código de inferência
  • Recursos

Whisper, modelo Speech-to-Text

OpenAI é conhecida por seus modelos de gerador de texto (GPT3 e, mais recentemente, ChatGPT) e de imagens como DALL-E.

Também acaba de publicar o Whisper in Open Source (portanto, utilizável gratuitamente por todos!), um modelo Speech-to-Text multilíngue que supera a concorrência em termos de qualidade (o Whisper também pode traduzir áudio de um idioma diferente do inglês).

Observação: a gente usa a expressão Speech-to-Text or ASR (Automatic Speech Recognition).

Whisper multilíngue

De fato, no uso zero-shot, ou seja, sem ajustar esse modelo a um determinado idioma por meio de um conjunto de dados de áudio-texto desse idioma, o Whisper já produz um texto de qualidade (de preferência, use a versão Medium ou Large v2).

Quer conferir? Existe no Spaces da Hugging Face uma WebUI (interface Web para todos) que permite testar todas as versões do Whisper multilíngue com qualquer tipo de áudio:

  • gravação de áudio via navegador,
  • arquivo de áudio (mp3, wav, etc.)
  • … e vídeo do YouTube!

Em troca, receberá o texto completo do áudio (transcrição), mas também esse mesmo texto indexado no tempo :-)

Mais uma coisa, quer usar essa WebUI no Google Colab, no seu Cloud, na sua plataforma ou no seu próprio computador? Sem problemas. O criador (Kristian Stangeland) dessa interface publicou um notebook e um guia explicativo (muito simples) para iniciá-la em qualquer plataforma.

E é tudo grátis!

Por exemplo, gosta da música do Chico Buarque “Que tal um Samba?”, e quer que ela seja transcrita em texto? Vamos lá.

  • Abra a WebUI Whisper no Spaces da Hugging Face ou a partir do notebook na sua plataforma.
  • Pesquise no YouTube e copie/cole o link no campo “URL (YouTube, etc.)” na interface.
  • Escolhe como modelo Whisper a versão Medium ou Large v2.
  • Escolhe Portuguese no campo “Language” (também pode deixar esse campo em branco, pois a interface detectará automaticamente o idioma).
  • Escolhe “Transcript” no campo “Task” e aperte o botão “Submit”.
WebUI Whisper na sua plataforma com a transcrição da música “Qua tal um Samba?” do Chico Buarque
WebUI Whisper na sua plataforma com a transcrição da música “Qua tal um Samba?” do Chico Buarque

E voilà! Veja a transcrição abaixo :-)

Um samba, que tal um samba? Puxar um samba, que tal? Para espantar o tempo feio Para remediar o estrago Que tal um trago? Um desafogo, um devaneio Um samba pra alegrar o dia Pra zerar o jogo O coração pegando fogo E cabeça fria Um samba com categoria Com calma Cair no mar, lavar a alma Tomar um banho de sal grosso Que tal sair do fundo do poço? Andar de boa Ver um batuque lá no cais do Valongo Dançar o jongo lá na pedra do sal Entrar na roda da gamboa Fazer um gol de bicicleta Dar de goleada Deitar na cama da madre Despertar a poeta Achar a rima que completo o subílio Fazer um filho, que tal? Pra ver crescer, criar um filho Num bom lugar, numa cidade legal Um filho com a pele escura Com formosura Bem brasileiro, que tal? Não com dinheiro Mas a cultura Que tal uma beleza pura? No fim da borrasca Já depois de criar casca E perder a ternura Depois de muita bola fora da meta Engorruco a coluna ereta, que tal? Juntar os cacos e a luta Mantendo o rumo e a cadência Esconjurar a ignorância, que tal? Desmantelar a força bruta Então, que tal puxar um samba? Puxar um samba legal Puxar um samba porreta Depois de tanta amutreta Depois de tanta cascata Depois de tanta derrota Depois de tanta demência E uma dor, filha da puta, que tal? Puxar um samba Que tal um samba? Um samba

E as primeiras linhas da transcrição textual com informações de tempo:

1
00:00:00,000 → 00:00:29,000
Um samba, que tal um samba?

2
00:00:29,000 → 00:00:31,000
Puxar um samba, que tal?

3
00:00:31,000 → 00:00:34,000
Para espantar o tempo feio

4
00:00:34,000 → 00:00:38,000
Para remediar o estrago

Whisper ajustado em português e francês

Mas, como qualquer modelo de Deep Learning, também é possível ajustar o Whisper com um conjunto de dados de áudio-texto em um determinado idioma, a fim de melhorar ainda mais a qualidade dos textos produzidos.

Isso pode ser muito útil quando se trata de usar o Whisper em um campo específico (medicina, call centers, etc.) e/ou com condições de áudio específicas (ruído ambiental, tipo de voz, etc.).

Assim, com o objetivo de promover a multiplicação de modelos Whisper ajustados a diferentes idiomas, a Hugging Face associada à Lambda lançou esta segunda-feira, dia 5 de dezembro, o Whisper Fine-Tuning Event 🤗.

Hugging Face x Lambda: Whisper Fine-Tuning Event
Hugging Face x Lambda: Whisper Fine-Tuning Event

Esse evento online é gratuito e permite que qualquer pessoa inscrita tenha acesso aos notebooks e scripts de fine-tuning do Whisper, conjuntos de dados de áudio-texto em diferentes idiomas e GPUs para afinar os modelos do Whisper! (notebooks e scripts de fine-tuning dos modelos Whisper)

Modelos

Nesse contexto, consegui ajustar 2 modelos Whisper (versão Medium) usando os áudio-textos do dataset Mozilla Foundation Common Voice 11.0:

Web APPs

Também, criei um APP no Spaces da Hugging Face por cada modelo.

Interface Whisper em português finetuned por Pierre Guillou
Interface Whisper em português finetuned por Pierre Guillou

Aqui estão os links:

Notebooks

E como o autor da Web UI Whisper fez, criei 2 notebooks para rodar esses APP na sua plataforma :-)

Código de inferência

Por fim, se quiser usar um modelo Whisper em produção para suas necessidades profissionais por exemplo (e desenvolver assim sua própria interface), deve acessar o código diretamente.

Então coloquei no github um notebook (inference_code_whisper_example_with_Portuguese.ipynb) onde precisa só definir o idioma e o modelo do Whisper para usar. O restante do código é usado para obter a transcrição de texto de um arquivo de áudio.

Para testar o código, usei o modelo Whisper em português.

Recursos

Sobre o autor: Pierre Guillou é consultor de IA no Brasil e na França. Entre em contato com ele por meio de seu perfil no LinkedIn.

--

--

Pierre Guillou

AI, Generative AI, Deep learning, NLP models author | Europe (Paris, Bruxelles, Liège) & Brazil