OpenAI Whisper

O OpenAI Whisper é um modelo de transcrição e tradução de código aberto. Suporta mais de 90 idiomas. Eis o que pode fazer, como o utilizar e as aplicações do mundo real.

Resumo rápido

  • O OpenAI Whisper é um modelo de reconhecimento automático de fala (ASR) de última geração para reconhecimento de fala multilíngue, tradução de fala e identificação de idioma e foi treinado em 680.000 horas de áudio, 99 idiomas.

  • O modelo utiliza uma arquitetura Transformer de codificador-descodificador para ser mais adaptável e ter um melhor desempenho em vários sotaques e ambientes desafiantes, ao mesmo tempo que oferece funcionalidades como carimbos de data/hora ao nível da palavra e geração de legendas multilingues.

  • A API do Whisper é de fácil utilização e integração, permitindo que os programadores utilizem as suas funcionalidades para transcrição e tradução em tempo real, ao abrigo da licença MIT permissiva, que suporta a utilização individual e comercial.

O que é o OpenAI Whisper?

Arquitetura do modelo OpenAI Whisper : Fonte Open AI: https://openai.com/index/whisper/ Arquitetura do modelo OpenAI Whisper : Fonte Open AI: https://openai.com/index/whisper/

O OpenAI Whisper é um modelo de reconhecimento de fala (também conhecido como ASR) e pode efetuar o reconhecimento de fala multilingue. É um dos melhores no espaço ASR porque foi treinado em 680.000 horas de dados de áudio multilíngues supervisionados e suporta 99 idiomas oficialmente. Isto significa que pode lidar com uma tonelada de sotaques e vocabulários com elevada precisão e trabalhar sem problemas em diferentes idiomas. E é um dos melhores modelos disponíveis no mercado.

E também tem IA generativa, o que o ajuda a lidar com muitos sotaques e vocabulários. A OpenAI está realmente a ultrapassar os limites do que é possível com o reconhecimento de voz, pelo que esta é uma excelente ferramenta para programadores e empresas.

Principais caraterísticas do Whisper

Uma das melhores coisas sobre o modelo Whisper é a transcrição e tradução multilingue, mais de 90 idiomas. Isto torna-o uma excelente ferramenta para casos de utilização global, desde a transcrição de chamadas de conferência internacionais até à tradução de meios de comunicação em línguas estrangeiras para inglês. O Whisper é bom mesmo em condições difíceis, ambientes ruidosos ou vários sotaques, pelo que é perfeito para utilização no mundo real.

Além disso, o Whisper pode gerar legendas multilingues para todos os formatos de media, para que o seu conteúdo seja acessível a um público global. O modelo também pode fornecer marcas de tempo ao nível da palavra para que as transcrições se alinhem com o áudio, o que é muito útil para edição de vídeo e criação de conteúdos.

São muitas funcionalidades fantásticas.

Como funciona o Whisper

Arquitetura do Whisper: Fonte de IA aberta Arquitetura do Whisper: Fonte de IA aberta

O modelo Whisper utiliza uma arquitetura de rede neural que foi pré-treinada numa vasta gama de dados de áudio para que se possa adaptar a diferentes estilos de fala. No seu núcleo, utiliza uma arquitetura Transformer codificador-descodificador, um design sofisticado que combina várias tarefas num modelo, para que não tenha de lidar com a complexidade dos sistemas ASR.

Quando utiliza o Whisper, este processa as entradas de áudio através de uma estrutura de codificador-descodificador e prevê texto a partir de codificações de áudio. Durante a descodificação, são utilizados tokens específicos de tarefas especiais, pelo que o modelo pode executar muitas tarefas de PNL.

Estes tokens actuam como especificadores de tarefas ou alvos de classificação, permitindo ao Whisper lidar com tarefas adicionais, como a identificação de idiomas, carimbos de tempo ao nível da frase, transcrição de discurso multilingue e tradução de discurso para inglês.

Modelos disponíveis e seu desempenho

O Whisper tem seis modelos, para diferentes casos de uso. Quatro deles são modelos apenas em inglês, que geralmente têm um desempenho melhor do que os modelos multilingues. O grande conjunto de dados de treino (mais de 680.000 horas de áudio) tem um grande impacto no desempenho dos modelos em todos os idiomas.

O desempenho do modelo é avaliado utilizando as taxas de erro de palavras (WER) e de caracteres (CER) para cada língua. O modelo turbo é uma versão mais rápida do modelo grande, é mais rápido com uma perda mínima de precisão, um equilíbrio entre velocidade e precisão. Esta variedade de modelos permite-lhe escolher o que melhor se adapta às suas necessidades de velocidade e precisão.

A disponibilidade de modelos apenas em inglês e multilingues garante que os utilizadores podem escolher o modelo que melhor se adapta às suas necessidades específicas. Quer seja para transcrição de alta precisão em inglês ou suporte multilingue robusto, a gama diversificada de modelos da Whisper fornece uma solução para cada cenário.

Instalação e configuração

O Python 3.9.9 e o PyTorch 1.10.1 foram usados para treinar e testar o modelo, mas o Whisper é compatível com as versões 3.8 a 3.11 do Python. Há também uma dependência de alguns pacotes Python, nomeadamente o tiktoken da OpenAI para a implementação do tokenizador. Instale com o seguinte comando:

pip install -U openai-whisper

Um componente importante para a instalação é o FFmpeg, uma ferramenta de linha de comando necessária para o processamento de áudio, que pode ser instalada usando comandos específicos do sistema operacional. Além disso, caso o tiktoken não forneça uma roda pré-construída para sua plataforma, será necessário instalar o Rust também.

Usando o Whisper via linha de comando

Para aqueles que preferem usar o Whisper através da linha de comando, o processo é simples. Os utilizadores podem enviar ficheiros de áudio para o Google Colab para transcrição sem precisarem de configurar um ambiente local. A transcrição de um ficheiro de áudio envolve o carregamento do modelo Whisper e a utilização da função de transcrição. A definição predefinida utiliza o modelo turbo para uma transcrição eficiente.

Além disso, os utilizadores podem especificar o idioma para transcrever o discurso não inglês com a opção -language, ou traduzir o discurso para inglês utilizando o comando -task translate. O Whisper suporta uma variedade de formatos de áudio, desde que sejam compatíveis com o FFmpeg. Esta flexibilidade torna o Whisper uma ferramenta acessível para utilizadores com diferentes níveis de conhecimentos técnicos.

Para transcrever o discurso em ficheiros áudio:

whisper audio.flac audio.mp3 audio.wav --model turbo

Para transcrever numa língua como o japonês:

whisper japanese.wav --language Japanese

Adicionando a tarefa de tradução:

whisper japanese.wav --language Japanese --task translate

Implementando o Whisper em Python

A implementação do Whisper em Python envolve a configuração de um ambiente virtual e a garantia de que todas as dependências sejam atendidas. Os usuários precisam criar um ambiente virtual usando conda e instalar os pacotes necessários como PyTorch com suporte CUDA. Essa configuração permite que o Whisper processe o áudio com uma janela deslizante de 30 segundos, realizando previsões autorregressivas para transcrições precisas.

A função de transcrição pode tomar o caminho do ficheiro áudio e a língua como parâmetros para transcrever o áudio da fala. O Whisper também fornece uma função detect_language, que identifica o idioma falado juntamente com pontuações de probabilidade para cada idioma detectado.

A função de descodificação converte ainda os espectrogramas log-Mel em transcrições, assegurando uma experiência de fala para texto sem falhas.

importar whisper

model = whisper.load_model("turbo")

# carrega o áudio e corta-o para caber em 30 segundos
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)

# Fazer o espetrograma log-Mel e passar para o mesmo dispositivo que o modelo
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)

# detetar a linguagem falada
_, probs = model.detect_language(mel)
print(f "Idioma detectado: {max(probs, key=probs.get)}")

# Descodificar o áudio
opções = whisper.DecodingOptions()
resultado = whisper.decode(model, mel, options)

# imprimir o texto reconhecido
print(result.text)

Aplicações do Whisper no mundo real

Aplicações do mundo real do modelo Whisper no reconhecimento de fala Aplicações do mundo real do modelo Whisper no reconhecimento de fala

O poderoso reconhecimento de fala do Whisper significa que ele é útil em muitas aplicações do mundo real. Por exemplo, pode transcrever discussões em reuniões, converter conteúdo educacional em texto e legendar automaticamente vídeos. As empresas utilizam o Whisper para automatizar a transcrição e poupar tempo e recursos.

Em cenários de serviço ao cliente, o Whisper permite a comunicação multilingue em tempo real. As instituições de ensino utilizam o Whisper para ajudar na aprendizagem de línguas, fornecendo transcrições e traduções exactas de palestras. Nos cuidados de saúde, ajuda a transcrever as interações com os pacientes, a simplificar a documentação e a reduzir a administração.

O modelo é melhor do que outros para lidar com áudio de formato longo, pelo que as transcrições são claras e exactas. A diarização do orador (o processo de identificação e rotulagem dos oradores numa gravação áudio) pode melhorar ainda mais a clareza da transcrição em cenários com vários oradores. A transcrição em tempo real significa uma melhor experiência para o utilizador durante eventos e chamadas ao vivo, pelo que o Whisper é imprescindível em muitas tarefas de processamento de fala.

Limitações e considerações

O Whisper é ótimo, mas não é perfeito. A API do Whisper não suporta streaming de ficheiros áudio e só processa ficheiros completos. Os ficheiros de áudio com mais de 25 MB têm de ser comprimidos ou divididos em partes mais pequenas para serem processados. O limite de 30 segundos para ficheiros de áudio significa que pode ser necessário dividir gravações mais longas.

A precisão da transcrição é afetada por uma má qualidade de áudio e demasiado ruído de fundo. O Whisper não se dá bem com todos os dialectos e sotaques, especialmente os menos comuns. A OpenAI tem políticas de conteúdo que restringem os tipos de conteúdo que podem ser transcritos utilizando a API do Whisper.

O escalonamento do Whisper também pode ser um desafio devido à necessidade de conhecimentos especializados em IA e a despesas substanciais com hardware.

Alternativas ao OpenAI Whisper

Comparação de vários modelos de reconhecimento de voz, incluindo o Whisper (https://images.surferseo.art/2bd289bc-ba19-4b5c-91dc-49b3a2edd451.png)

Ao escolher alternativas ao OpenAI Whisper, é necessário considerar o caso de utilização, o orçamento e os requisitos do projeto. Os modelos de código aberto como o Kaldi, o Wav2vec 2.0, o Vosk, o SpeechBrain e o Nvidia Nemo têm caraterísticas e capacidades diferentes. O Kaldi é um modelo ASR tradicional que utiliza um pipeline de vários componentes, o que pode ser menos fácil de utilizar.

O Wav2vec 2.0 tem uma arquitetura única com um front-end de extração de caraterísticas, mas é treinado em audiolivros. O Whisper é exato, mas mais lento do que alternativas como o Wav2vec 2.0, que processa o áudio mais rapidamente.

A comparação de modelos ASR envolve considerar a usabilidade, a arquitetura do modelo, os dados de treino e a velocidade de inferência.

Melhores práticas para otimizar o Whisper

É possível ajustar o modelo para o seu caso de uso específico e obter melhor precisão e velocidade. O ajuste fino pode fazer uma grande diferença, adaptando o modelo ao áudio e ao idioma que está sendo processado. A redução do ruído de fundo é fundamental para obter melhores resultados do Whisper.

Executar o Whisper em ambientes de áudio controlados minimizará os erros e as alucinações nas transcrições. Estas práticas recomendadas irão permitir-lhe tirar o melhor partido do Whisper para todas as suas necessidades de processamento de voz.

API OpenAI Whisper

Uma visão geral da interface da API OpenAI Whisper Uma visão geral da interface da API OpenAI Whisper

A API do OpenAI Whisper foi concebida para ser fácil de utilizar, de modo a poder ser integrada no seu software existente. Os programadores podem utilizar a API para permitir a transcrição em tempo real e a tradução de línguas nas suas aplicações. A API suporta vários idiomas para que possa alcançar uma base de utilizadores global.

Sendo um projeto de código aberto, pode modificar e personalizar o software para o seu caso de utilização. A utilização de APIs que aumentam o Whisper pode proporcionar-lhe funcionalidades que o modelo original não tem e um melhor desempenho global.

Documentação e recursos de suporte disponíveis para que você comece a trabalhar.

Termos de licenciamento e uso

O OpenAI Whisper está licenciado sob a Licença MIT. Pode usar, modificar e distribuir o código livremente, desde que inclua o aviso de licença original em todas as cópias. Isto significa que pode usar o Whisper em projectos pessoais ou comerciais e integrá-lo no seu próprio software proprietário sem ter de abrir o seu próprio código fonte.

No entanto, você deve incluir o aviso de direitos autorais original e o texto da licença em qualquer distribuição do Whisper para estar em conformidade com a Licença MIT. Não há garantia, então você não pode responsabilizar os autores por quaisquer problemas que surjam com o uso do código.

Então é isso.

Resumo

Em resumo, o OpenAI Whisper é um grande passo em frente no reconhecimento de voz. O seu poder, suporte multilingue e flexibilidade fazem dele uma ferramenta para muitas aplicações, desde a automatização de negócios ao apoio educativo. Apesar de suas limitações, o Whisper é melhor do que muitos outros e é um item obrigatório no espaço ASR.

À medida que avançamos com as tecnologias de reconhecimento de fala, a abordagem e a natureza de código aberto do Whisper permitirão desenvolvimentos futuros. Ao utilizar o Whisper, os programadores e as empresas podem quebrar as barreiras linguísticas e comunicar globalmente.

Perguntas mais frequentes

O que é o OpenAI Whisper?

O OpenAI Whisper é um poderoso modelo de reconhecimento automático de voz (ASR) que suporta 99 idiomas, tornando-o altamente versátil para aplicações multilingues. O seu design robusto aumenta a precisão nas tarefas de reconhecimento de voz.

Como é que o Whisper lida com ambientes ruidosos?

O Whisper lida eficazmente com ambientes ruidosos, mantendo uma elevada precisão, tornando-o adequado para várias aplicações do mundo real, apesar das condições difíceis.

Quais são as limitações do Whisper?

O Whisper enfrenta limitações como a incapacidade de transmitir ficheiros de áudio, uma duração máxima de áudio de 30 segundos e uma precisão reduzida quando se lida com má qualidade de áudio ou dialectos pouco comuns. Estes factores podem afetar significativamente a sua usabilidade em contextos variados.

Como o Whisper pode ser otimizado para um melhor desempenho?

Para otimizar o Whisper para um melhor desempenho, o ajuste fino do modelo para atender aos requisitos específicos do aplicativo e minimizar o ruído de fundo são estratégias essenciais que podem melhorar muito sua precisão e velocidade de processamento.

Quais termos de licenciamento se aplicam ao Whisper?

O Whisper está licenciado sob a Licença MIT, que permite aos utilizadores utilizar, modificar e distribuir livremente o código com restrições mínimas. Isto oferece uma flexibilidade significativa tanto para os programadores como para os utilizadores. Arquitetura do modelo Whisper da OpenAI Arquitetura do modelo Whisper da OpenAI