[PT-BR] Whisper da OpenAI
Tags: deeplearning, openai, python
Published: 2023-06-12 01:30:54

Esta postagem é parte de uma série em que apresento de maneira concisa e prática os conceitos e funcionalidades de modelos de IA abertos e prontos para serem utilizados no desenvolvimento de diversas aplicações. O formato do texto é no estilo TL;DR (Too Long; Didn’t Read), permitindo que você tenha uma visão rápida e eficiente dos modelos apresentados.

## TL;DR - Whisper, da OpenAI

[Whisper](https://github.com/openai/whisper) **é um modelo de reconhecimento de fala** (ele está na categoria de "general-purpose speech recognition model", caso você queira pesquisar mais pela internet) de uso geral desenvolvido pela **OpenAI**. Ele é um modelo de IA treinado em um grande conjunto de dados de áudio e também é um modelo multitarefa que pode realizar reconhecimento de fala multilíngue, tradução de fala e identificação de idioma. Mesmo que muitas das aplicações do Whisper sejam para a língua inglesa, ele também entende bem o português. 

Ele foi treinado em aproximadamente 680.000 horas de dados supervisionados :exploding_head: (dados que já são previamente categorizados) coletados da web, com a tarefa tornar o mais eficiente possível o mapeamento entre pares de falas (áudio) e suas formas transcritas (texto). O objetivo de modelos de reconhecimento de áudio-fala, do qual o Whisper faz parte, é "traduzir" a palavra falada em texto com a menor variação de erro possível. 

:speaker: Whisper é um modelo gratuito e de código aberto! Embora muitos serviços da OpenAI sejam acessados através de suas APIs, **o Whisper pode ser usado localmente em seu sistema sem a necessidade de conexão com a internet ou qualquer outro serviço**, apenas usando o seu pacote python oficial.

## Playground

Tudo o que é necessário para executar o modelo localmente são:

1. Um ambiente python. 
2. Instalar o pacote oficial via pip (existem outras formas no site):

- `pip install -U openai-whisper` 
- ou usando o repositório `pip install git+https://github.com/openai/whisper.git`

A partir daqui, basta seguir os exemplos de código do [repositório oficial no github](https://github.com/openai/whisper).

:hugs: O Whisper também está disponível no [Huggingface da OpenAI](https://huggingface.co/openai) e pode ser usado através do Transformers ([aqui](https://huggingface.co/openai/whisper-medium) está a documentação para uma das versões na plataforma).

## Versões disponíveis

O Whisper oferece cinco modelos diferentes (**tiny**, **base**, **small**, **medium** e **large**) cada um com um número variável de parâmetros. A escolha do modelo ideal depende de vários fatores, incluindo o hardware disponível e da qualidade dos dados que serão utilizados. É fundamental realizar experimentos para determinar a melhor opção. As especificações de cada versão de modelo e o suporte multi-idioma [estão aqui nessa tabela](https://github.com/openai/whisper#available-models-and-languages). 

:hammer_and_wrench: **Um exemplo:** Em testes realizados no Google Colab, foi possível transcrever com sucesso, e com uma qualidade muito boa, um áudio de aproximadamente 9 minutos em português. O modelo utilizado foi a versão **medium** e o tempo total de execução foi de cerca de 10 minutos, utilizando apenas a CPU e com baixo consumo de memória RAM.

## Resumindo

O Whisper é um modelo poderoso (licença MIT) para tarefas de reconhecimento de fala. Além disso, pode ser utilizado em conjunto com outras áreas/técnicas de IA, como o processamento de linguagem natural (NLP). Por exemplo, é possível transcrever um áudio e aplicar reconhecimento de entidades (NER) ou análise de sentimento no texto gerado. As opções de uso são muito interessantes e [aqui](https://github.com/openai/whisper/discussions/categories/show-and-tell) está uma lista de casos de uso da comunidade.

## Referências
[Whisper - OpenAI](https://openai.com/research/whisper)
[Whisper - Github oficial](https://github.com/openai/whisper)
[Huggingface da OpenAI](https://huggingface.co/openai)