Está a ter dificuldades com a IA ou com o desenvolvimento full-stack? Os nossos especialistas estão aqui para o orientar: aconselhamento personalizado, integração técnica e muito mais. Entre em contacto com [email protected].

Como instalar e implementar o Whisper, a melhor alternativa de código aberto para o Google Speech-To-Text

O OpenAI Whisper é a melhor alternativa de código aberto ao Google speech-to-text a partir de hoje. Funciona nativamente em 100 línguas (detectado automaticamente), acrescenta pontuação, e pode mesmo traduzir o resultado, se necessário. Neste artigo vamos mostrar-lhe como instalar o Whisper e implementá-lo na produção.

Reconhecimento automático da fala

Google Speech-To-Text

A API de reconhecimento automático da fala (speech-to-text) do Google é muito popular. Esta API é capaz de transcrever ficheiros de áudio e vídeo em 125 línguas, e propõe modelos específicos de IA para transcrição de chamadas telefónicas, transcrição médica, e muito mais.

Esta API também tem características adicionais agradáveis como filtragem de conteúdo, pontuação automática (em beta apenas para o momento), e diarização do altifalante (em beta também).

Por último, o seu API pode ser instalado nas instalações. Mas é importante notar que o modelo AI on-prem continuará a enviar dados para o Google a fim de reportar a utilização da API, o que pode ser uma preocupação do ponto de vista da privacidade.

O preço do Google é basicamente $0,006 / 15 segundos para discursos básicos, e $0,009 / 15 segundos para casos de uso específico como transcrição de vídeo ou transcrição de telefone.

Digamos que pretende analisar automaticamente as chamadas telefónicas feitas à sua equipa de apoio (a fim de mais tarde realizar análises de sentimento ou extracção de entidades sobre elas, por exemplo). Se tiver 5 agentes de apoio que passem 4h cada um por dia ao telefone com clientes, a API de fala para texto do Google irá custar-lhe $1.400 por mês.

Se estiver preocupado com custos ou privacidade, poderá querer mudar para uma alternativa de código aberto: OpenAI Whisper.

Sussurro: A Melhor Alternativa ao Google Speech-To-Text

O Whisper é um modelo de IA de código aberto que acaba de ser lançado pelo OpenAI.

O OpenAI tem uma história de grandes projectos de AI em open-sourcing. Por exemplo, o GPT-2 foi desenvolvido pelo OpenAI há alguns anos atrás. Na altura era o melhor modelo generativo de processamento de linguagem natural jamais criado, e abriu o caminho para modelos muito mais avançados como GPT-3, GPT-J, OPT, Bloom... Recentemente, lançaram também um belo quadro de programação CUDA chamado Triton.

No entanto, nem todos os modelos do OpenAI têm sido de fonte aberta. Os seus 2 modelos mais excitantes: GPT-3 e DALL-E, são ainda modelos privados que só podem ser utilizados através do seu API pago.

O sussurro está a levar o ecossistema de fala para texto por tempestade: pode detectar automaticamente a língua de entrada, depois transcrever o texto em cerca de 100 línguas, pontuar automaticamente o resultado, e até traduzir o resultado, se necessário. A precisão é muito boa, e pode aplicar este modelo a qualquer tipo de entrada (áudio, vídeo, chamadas telefónicas, discussões médicas, etc.).

E, claro, outra grande vantagem do Whisper é que pode implementá-lo sozinho nos seus próprios servidores, o que é óptimo do ponto de vista da privacidade.

O sussurro é gratuito, claro, mas se quiser instalá-lo sozinho terá de passar algum tempo humano nele, e pagar pelos servidores e GPUs subjacentes. Se preferir beneficiar de uma versão gerida, pode utilizar uma API como a NLP Cloud: experimente agora Whisper gratuitamente na NLP Cloud!.

Instalação e Implementação do OpenAI Whisper

Tem 2 opções se quiser instalar e distribuir o Whisper por agora. A primeira é utilizar a biblioteca de Sussurros Python do OpenAI, e a segunda é utilizar a implementação de Transformadores de Rosto Abraçadores do Sussurro. Vamos explorar ambas as soluções.

Usando o sussurro Python lib

Esta solução é a mais simples. Basicamente, é necessário seguir as instruções do OpenAI sobre o repositório Github do projecto Whisper.

First install the whisper Python lib:

pip install git+https://github.com/openai/whisper.git

Then install ffmpeg on your system if it is not the case yet:

# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg

# on Arch Linux
sudo pacman -S ffmpeg

# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg

# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg

# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg

Several flavors of Whisper are available: tiny, base, small, medium, and large. Of course the bigger the better, so if you are looking for state of the art results we recommend the large version. Here is a very simply Python script that opens an mp3 audio file stored on your disk, automatically detects the input language, and transcribes it:

import whisper

model = whisper.load_model("large")
result = model.transcribe("audio.mp3")
print(result["text"])

Simple isn't it?

Utilização da implementação do abraço facial

In order to use Hugging Face's implementation of Whisper you will first need to install HF Transfomers, librosa, and Pytorch:

pip install transformers
pip install librosa
pip install torch

You also need to install ffmpeg (see above).

Now, here is a Python script that does transcription in English:

from transformers import WhisperProcessor, WhisperForConditionalGeneration
import librosa

speech, _ = librosa.load("audio.mp3")

processor = WhisperProcessor.from_pretrained("openai/whisper-large")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large")

model.config.forced_decoder_ids = processor.get_decoder_prompt_ids(language = "en", task = "transcribe")
input_features = processor(speech, return_tensors="pt").input_features 
predicted_ids = model.generate(input_features)
transcription = processor.batch_decode(predicted_ids)

print(processor.batch_decode(predicted_ids, skip_special_tokens = True))

There are 2 limitations with this Hugging Face implementation. First you need to manually set the source language (no automatic input language detection is implemented yet). And secondly no automatic chunking is applied, which means that you cannot transcribe content that is larger than 30 seconds...

Maybe these limitations will be solved in future releases?

A nice thing though is that there is a Tensorflow implementation available too, which means that you can use XLA compilation and get much faster response times.

Requisitos de Hardware

Como vimos acima, o Whisper é bastante fácil de instalar. No entanto, requer hardware avançado. Recomenda-se a utilização de uma GPU se se quiser usar a versão grande do modelo.

Se utilizar o sussurro Python lib (ver acima) precisará de cerca de 10GB de RAM e 11GB de VRAM. Isto significa que, na prática, necessitará de uma GPU de pelo menos 16GB. Pode ser um NVIDIA Tesla T4, por exemplo, ou um NVIDIA A10.

Num Tesla T4, transcreverá 30 segundos de áudio em cerca de 6 segundos.

Considerações de desempenho

Se quiser melhorar o desempenho por defeito acima mencionado, aqui estão várias estratégias que pode explorar:

Conclusão

O OpenAI Whisper é uma revolução no mundo da fala para o texto. Pela primeira vez, qualquer pessoa pode aceder facilmente ao estado da arte do reconhecimento automático da fala graças a este modelo de código aberto, o que torna o Whisper uma boa alternativa à API de fala para texto do Google.

A instalação e implementação de um modelo de IA ainda é um desafio, no entanto, devido ao hardware necessário debaixo do capô. A versão grande de Whisper não pode realmente funcionar com o hardware de consumo.

Se quiser tentar Whisper facilmente sem se preocupar com considerações infra-estruturais, por favor experimente na NLP Cloud API: experimente agora Whisper gratuitamente na NLP Cloud!.

Julien Salinas
CTO na NLP Cloud