Worstel je met AI of full-stack ontwikkeling? Onze experts staan klaar om je te begeleiden: advies op maat, technische integratie en meer. Neem contact op met [email protected].

Whisper installeren en implementeren, het beste open-source alternatief voor Google spraak-naar-tekst

OpenAI Whisper is het beste open-source alternatief voor Google spraak-naar-tekst vanaf vandaag. Het werkt native in 100 talen (automatisch gedetecteerd), het voegt interpunctie toe, en het kan zelfs het resultaat vertalen indien nodig. In dit artikel laten we u zien hoe u Whisper installeert en in productie neemt.

Automatische spraakherkenning

Google spraak-naar-tekst

De API voor automatische spraakherkenning (spraak-naar-tekst) van Google is zeer populair. Deze API kan audio- en videobestanden in 125 talen transcriberen, en stelt specifieke AI-modellen voor voor transcriptie van telefoongesprekken, medische transcriptie, en meer.

Deze API heeft ook leuke extra functies zoals inhoudsfiltering, automatische interpunctie (voorlopig alleen in bèta), en sprekersdagboek (ook in bèta).

Ten slotte kan hun API ter plaatse worden geïnstalleerd. Maar het is belangrijk op te merken dat het on-premise AI-model gegevens naar Google blijft sturen om het API-gebruik te rapporteren, wat vanuit privacyoogpunt een punt van zorg kan zijn.

De prijsstelling van Google is in principe $ 0,006 / 15 seconden voor eenvoudige spraak-naar-tekst, en $ 0,009 / 15 seconden voor specifieke gebruiksgevallen zoals videotranscriptie of telefoontranscriptie.

Stel dat u telefoongesprekken met uw supportteam automatisch wilt analyseren (om er later bijvoorbeeld een sentimentanalyse of entiteitsextractie op uit te voeren). Als u 5 supportmedewerkers hebt die elk 4 uur per dag aan de telefoon zitten met klanten, kost de spraak-naar-tekst-API van Google u 1.400 dollar per maand.

Als u zich zorgen maakt over de kosten of de privacy, kunt u misschien overstappen op een open-source alternatief: OpenAI Whisper.

Fluisteren: Het beste alternatief voor Google spraak-naar-tekst

Whisper is een open-source AI-model dat net is uitgebracht door OpenAI.

OpenAI heeft een geschiedenis van open-sourcing van grote AI-projecten. GPT-2 bijvoorbeeld werd een paar jaar geleden ontwikkeld door OpenAI. Destijds was het het beste generatieve model voor natuurlijke taalverwerking ooit gemaakt, en het maakte de weg vrij voor veel geavanceerdere modellen zoals GPT-3, GPT-J, OPT, Bloom... Onlangs hebben ze ook een mooi CUDA programmeerraamwerk uitgebracht, genaamd Triton.

Maar niet alle modellen van OpenAI zijn open-sourced. Hun 2 meest opwindende modellen: GPT-3 en DALL-E, zijn nog steeds privé-modellen die alleen via hun betaalde API kunnen worden gebruikt.

Whisper verovert het spraak-naar-tekst ecosysteem: het kan automatisch de invoertaal detecteren, dan tekst transcriberen in ongeveer 100 talen, het resultaat automatisch interpunctie geven en zelfs vertalen indien nodig. De nauwkeurigheid is zeer goed, en u kunt dit model toepassen op elke soort invoer (audio, video, telefoongesprekken, medische discussies, enz.)

En natuurlijk is een ander groot voordeel van Whisper dat u het zelf kunt implementeren op uw eigen servers, wat geweldig is vanuit het oogpunt van privacy.

Whisper is natuurlijk gratis, maar als u het zelf wilt installeren zult u er wat menselijke tijd aan moeten besteden, en moeten betalen voor de onderliggende servers en GPU's. Als u liever profiteert van een beheerde versie, kunt u gebruik maken van een API zoals NLP Cloud: probeer Whisper nu gratis op NLP Cloud!.

Installeren en implementeren van OpenAI Whisper

U hebt 2 opties als u Whisper wilt installeren en implementeren. De eerste is om OpenAI's Whisper Python library te gebruiken, en de tweede is om de Hugging Face Transformers implementatie van Whisper te gebruiken. Laten we beide oplossingen verkennen.

Gebruik van de Fluister Python lib

Deze oplossing is de eenvoudigste. Je moet in principe de instructies van OpenAI volgen op de Github repository van het Whisper project.

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?

Het gebruik van de Hugging Face implementatie

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.

Hardwarevereisten

Zoals we hierboven zagen, is Whisper vrij eenvoudig te installeren. Het vereist echter geavanceerde hardware. Een GPU wordt aanbevolen als u de grote versie van het model wilt gebruiken.

Als je de whisper Python lib gebruikt (zie hierboven) heb je ongeveer 10GB RAM en 11GB VRAM nodig. Dit betekent dat u in de praktijk minstens een 16GB GPU nodig hebt. Dat kan bijvoorbeeld een NVIDIA Tesla T4 zijn, of een NVIDIA A10.

Op een Tesla T4 transcribeert u 30 seconden audio in ongeveer 6 seconden.

Prestatie-overwegingen

Als u de bovengenoemde standaardprestaties wilt verbeteren, zijn er verschillende strategieën die u kunt onderzoeken:

Conclusie

OpenAI Whisper is een revolutie in de spraak-naar-tekst wereld. Voor het eerst kan iedereen gemakkelijk toegang krijgen tot state-of-the-art automatische spraakherkenning dankzij dit open-source model, waardoor Whisper een goed alternatief is voor de Google spraak-naar-tekst API.

Het installeren en implementeren van een dergelijk AI-model is echter nog steeds een uitdaging vanwege de hardware die onder de motorkap nodig is. De grote versie van Whisper kan niet echt draaien op consumentenhardware.

Als u Whisper eenvoudig wilt proberen zonder u zorgen te maken over de infrastructuur, probeer het dan op de NLP Cloud API: probeer Whisper nu gratis op NLP Cloud!.

Julien Salinas
CTO bij NLP Cloud