Så här installerar och distribuerar du Whisper, det bästa alternativet med öppen källkod till Google Speech-To-Text

OpenAI Whisper är det bästa alternativet med öppen källkod till Google tal-till-text i dagsläget. Det fungerar naturligt på 100 språk (automatiskt upptäckta), lägger till interpunktion och kan även översätta resultatet om det behövs. I den här artikeln visar vi hur du installerar Whisper och distribuerar den i produktion.

Automatisk taligenkänning

Google tal-till-text

Googles API för automatisk taligenkänning (tal-till-text) är mycket populärt. Detta API kan transkribera ljud- och videofiler på 125 språk och föreslår särskilda AI-modeller för transkribering av telefonsamtal, medicinsk transkribering med mera.

API:et har också trevliga tilläggsfunktioner som innehållsfiltrering, automatisk interpunktion (endast i betaversion för tillfället) och talardagboksering (också i betaversion).

Slutligen kan deras API installeras på plats. Det är dock viktigt att notera att AI-modellen på plats fortsätter att skicka data till Google för att rapportera API-användning, vilket kan vara ett problem ur integritetssynpunkt.

Googles prissättning är i princip 0,006 USD/15 sekunder för grundläggande tal-till-text och 0,009 USD/15 sekunder för specifika användningsområden som videotranskription eller telefontranskription.

Låt oss säga att du automatiskt vill analysera telefonsamtal till ditt supportteam (för att senare utföra en analys av känslor eller utvinning av enheter på dem). Om du har fem supportmedarbetare som spenderar 4 timmar vardera per dag i telefon med kunderna kostar Googles API för tal-till-text 1 400 dollar per månad.

Om du är orolig för kostnader eller sekretess kan du byta till ett alternativ med öppen källkod: OpenAI Whisper.

Viskar: Det bästa alternativet till Google Speech-To-Text

Whisper är en AI-modell med öppen källkod som just släppts av OpenAI.

OpenAI har en historia av öppen källkod för stora AI-projekt. GPT-2 utvecklades till exempel av OpenAI för ett par år sedan. Vid den tidpunkten var det den bästa generativa modellen för behandling av naturliga språk som någonsin skapats, och den banade väg för mycket mer avancerade modeller som GPT-3, GPT-J, OPT, Bloom... Nyligen släppte de också ett trevligt CUDA-programmeringsramverk som heter Triton.

Alla OpenAI:s modeller har dock inte släppts på öppna källor. Deras två mest spännande modeller: GPT-3 och DALL-E, är fortfarande privata modeller som endast kan användas via deras betalda API.

Whisper tar ekosystemet för tal-till-text med storm: det kan automatiskt upptäcka inmatningsspråket, sedan transkribera text på omkring 100 språk, automatiskt interpellera resultatet och till och med översätta resultatet om det behövs. Noggrannheten är mycket god, och du kan tillämpa modellen på alla typer av indata (ljud, video, telefonsamtal, medicinska diskussioner osv.).

En annan stor fördel med Whisper är naturligtvis att du kan distribuera det själv på dina egna servrar, vilket är bra ur integritetssynpunkt.

Whisper är naturligtvis gratis, men om du vill installera det själv måste du lägga ner tid på det och betala för de underliggande servrarna och GPU:erna. Om du föredrar att dra nytta av en hanterad version kan du använda ett API som NLP Cloud: prova Whisper gratis på NLP Cloud nu!.

Installera och distribuera OpenAI Whisper

Du har två alternativ om du vill installera och distribuera Whisper för tillfället. Det första är att använda OpenAI:s whisper Python-bibliotek och det andra är att använda Hugging Face Transformers implementering av Whisper. Låt oss utforska båda lösningarna.

Användning av whisper Python-libexet

Denna lösning är den enklaste. Du måste i princip följa OpenAI:s instruktioner. på Whisper-projektets Github-arkiv..

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?

Användning av implementeringen av Hugging Face

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.

Maskinvarukrav

Som vi såg ovan är Whisper ganska lätt att installera. Det kräver dock avancerad hårdvara. En GPU rekommenderas om du vill använda den stora versionen av modellen.

Om du använder whisper Python lib (se ovan) behöver du cirka 10 GB RAM och 11 GB VRAM. Det innebär att du i praktiken behöver en GPU på minst 16 GB. Det kan till exempel vara en NVIDIA Tesla T4 eller en NVIDIA A10.

På en Tesla T4 kan du transkribera 30 sekunders ljud på cirka 6 sekunder.

Överväganden om prestanda

Om du vill förbättra den standardprestanda som nämns ovan finns det flera strategier som du kan prova:

Slutsats

OpenAI Whisper är en revolution inom tal-till-text-världen. För första gången kan vem som helst enkelt få tillgång till toppmodern automatisk taligenkänning tack vare denna modell med öppen källkod, vilket gör Whisper till ett bra alternativ till Googles API för tal-till-text.

Att installera och distribuera en sådan AI-modell är dock fortfarande en utmaning på grund av den hårdvara som krävs under huven. Den stora versionen av Whisper kan egentligen inte köras på konsumentmaskinvara.

Om du enkelt vill prova Whisper utan att behöva bry dig om infrastrukturen kan du prova det på NLP Cloud API: prova Whisper gratis på NLP Cloud nu!.

Julien Salinas
CTO på NLP Cloud