Sliter du med AI eller fullstack-utvikling? Ekspertene våre er her for å veilede deg: skreddersydde råd, teknisk integrasjon og mer. Ta kontakt på [email protected].

Hvordan installere og distribuere Whisper, det beste åpen kildekode-alternativet til Google Speech-To-Text

OpenAI Whisper er det beste åpen kildekode-alternativet til Googles tale-til-tekst per i dag. Det fungerer naturlig på 100 språk (oppdages automatisk), det legger til tegnsetting, og det kan til og med oversette resultatet om nødvendig. I denne artikkelen viser vi deg hvordan du installerer Whisper og setter det i produksjon.

Automatisk talegjenkjenning

Google tale-til-tekst

Googles API for automatisk talegjenkjenning (tale-til-tekst) er svært populært. Dette API-et kan transkribere lyd- og videofiler på 125 språk, og det foreslår spesifikke AI-modeller for transkripsjon av telefonsamtaler, medisinsk transkripsjon og mer.

Denne API-en har også fine tilleggsfunksjoner som innholdsfiltrering, automatisk tegnsetting (bare i beta for øyeblikket) og høyttalerdiarisering (også i beta).

Til slutt kan deres API installeres på stedet. Men det er viktig å merke seg at den lokale AI-modellen vil fortsette å sende data til Google for å rapportere API-bruk, noe som kan være en bekymring fra et personvernperspektiv.

Googles priser er i utgangspunktet $ 0,006 / 15 sekunder for grunnleggende tale-til-tekst, og $ 0,009 / 15 sekunder for spesifikke brukstilfeller som videotranskripsjon eller telefontranskripsjon.

La oss si at du ønsker å automatisk analysere telefonsamtaler til supportteamet ditt (for senere å utføre sentimentanalyse eller enhetsutvinning på dem for eksempel). Hvis du har 5 supportagenter som bruker 4 timer hver per dag på telefonen med kunder, vil Googles tale-til-tekst-API koste deg $ 1400 per måned.

Hvis du er bekymret for kostnader eller personvern, kan det være lurt å bytte til et alternativ med åpen kildekode: OpenAI Whisper.

Whisper: Det beste alternativet til Google Speech-To-Text

Whisper er en AI-modell med åpen kildekode som nettopp er lansert av OpenAI.

OpenAI har en historie med store AI-prosjekter med åpen kildekode. For eksempel ble GPT-2 utviklet av OpenAI for et par år siden. På den tiden var det den beste generative naturlige språkbehandlingsmodellen som noensinne er laget, og den banet vei for mye mer avanserte modeller som GPT-3, GPT-J, OPT, Bloom ... Nylig ga de også ut et fint CUDA-programmeringsrammeverk kalt Triton.

Ikke alle OpenAIs modeller har imidlertid vært åpne kilder. De to mest spennende modellene deres: GPT-3 og DALL-E, er fortsatt private modeller som bare kan brukes gjennom deres betalte API.

Whisper tar økosystemet for tale-til-tekst med storm: Det kan automatisk oppdage inndataspråket, deretter transkribere tekst på rundt 100 språk, automatisk tegnsetting og til og med oversette resultatet om nødvendig. Nøyaktigheten er svært god, og du kan bruke denne modellen på alle typer input (lyd, video, telefonsamtaler, medisinske diskusjoner osv.).

Og selvfølgelig er en annen stor fordel med Whisper at du kan distribuere det selv på dine egne servere, noe som er bra fra et personvernperspektiv.

Whisper er selvfølgelig gratis, men hvis du vil installere det selv, må du bruke litt menneskelig tid på det, og betale for de underliggende serverne og GPU-ene. Hvis du foretrekker å dra nytte av en administrert versjon, kan du bruke et API som NLP Cloud: prøv Whisper gratis på NLP Cloud nå!.

Installere og distribuere OpenAI Whisper

Du har to alternativer hvis du vil installere og distribuere Whisper for øyeblikket. Den første er å bruke OpenAIs whisper Python-bibliotek, og den andre er å bruke Hugging Face Transformers-implementeringen av Whisper. La oss utforske begge løsningene.

Bruke Python-biblioteket whisper

Denne løsningen er den enkleste. Du trenger i utgangspunktet å følge OpenAIs anvisninger. på Github-repositoriet til Whisper-prosjektet.

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?

Bruk 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.

Krav til maskinvare

Som vi så ovenfor, er Whisper ganske enkelt å installere. Det krever imidlertid avansert maskinvare. En GPU anbefales hvis du vil bruke den store versjonen av modellen.

Hvis du bruker whisper Python-biblioteket (se ovenfor), trenger du rundt 10 GB RAM og 11 GB VRAM. Det betyr at du i praksis trenger minst en 16 GB GPU. Det kan for eksempel være en NVIDIA Tesla T4 eller en NVIDIA A10.

På en Tesla T4 vil du transkribere 30 sekunder med lyd på rundt 6 sekunder.

Ytelseshensyn

Hvis du vil forbedre standardytelsen nevnt ovenfor, er det flere strategier du kan utforske:

Konklusjon

OpenAI Whisper er en revolusjon i tale-til-tekst-verdenen. For første gang kan alle enkelt få tilgang til toppmoderne automatisk talegjenkjenning takket være denne åpen kildekode-modellen, noe som gjør Whisper til et godt alternativ til Googles tale-til-tekst-API.

Å installere og distribuere en slik AI-modell er imidlertid fortsatt en utfordring på grunn av maskinvaren som kreves under panseret. Den store versjonen av Whisper kan egentlig ikke kjøres på forbrukermaskinvare.

Hvis du enkelt vil prøve Whisper uten å bry deg med infrastrukturhensyn, kan du prøve det på NLP Cloud API: prøv Whisper gratis på NLP Cloud nå!.

Abhinav
Utviklingsingeniør hos NLP Cloud