Kæmper du med AI eller full-stack-udvikling? Vores eksperter er her for at vejlede dig: skræddersyet rådgivning, teknisk integration og meget mere. Kontakt os på [email protected].

Sådan installeres og implementeres Whisper, det bedste Open Source-alternativ til Google Speech-To-Text

OpenAI Whisper er det bedste open source-alternativ til Google speech-to-text i dag. Den fungerer naturligt på 100 sprog (automatisk registreret), tilføjer tegnsætning og kan endda oversætte resultatet, hvis det er nødvendigt. I denne artikel vil vi vise dig, hvordan du installerer Whisper og implementerer den i produktion.

Automatisk talegenkendelse

Google Tale-til-tekst

Googles API til automatisk talegenkendelse (tale-til-tekst) er meget populær. Denne API kan transskribere lyd- og videofiler på 125 sprog, og den foreslår specifikke AI-modeller til transskription af telefonopkald, medicinsk transskription og meget mere.

API'et har også gode ekstra funktioner som f.eks. indholdsfiltrering, automatisk tegnsætning (kun i betaversion i øjeblikket) og talerdagbogføring (også i betaversion).

Sidst af alt kan deres API installeres på stedet. Det er dog vigtigt at bemærke, at den lokale AI-model fortsat vil sende data til Google for at rapportere API-brug, hvilket kan være et problem ud fra et privatlivsaspekt.

Googles priser er grundlæggende 0,006 USD/15 sekunder for grundlæggende tale-til-tekst-transskription og 0,009 USD/15 sekunder for specifikke anvendelsestilfælde som videotransskription eller telefontransskription.

Lad os sige, at du ønsker at analysere telefonopkald til dit supportteam automatisk (for senere at kunne udføre f.eks. en stemningsanalyse eller udvinding af enheder på dem). Hvis du har 5 supportmedarbejdere, der hver bruger 4 timer om dagen på at tale i telefon med kunderne, vil Googles tale-til-tekst-API koste dig 1.400 USD om måneden.

Hvis du er bekymret for omkostninger eller privatlivets fred, bør du måske skifte til et alternativ med åben kildekode: OpenAI Whisper.

Hvisk: Det bedste alternativ til Google Speech-To-Text: Whisper: Det bedste alternativ til Google Speech-To-Text

Whisper er en AI-model med åben kildekode, der netop er blevet frigivet af OpenAI.

OpenAI har en historie med open source af store AI-projekter. F.eks. blev GPT-2 udviklet af OpenAI for et par år siden. På det tidspunkt var det den bedste generative model til behandling af naturligt sprog nogensinde, og den banede vejen for langt mere avancerede modeller som GPT-3, GPT-J, OPT, Bloom... For nylig har de også udgivet en fin CUDA-programmeringsramme kaldet Triton.

Det er dog ikke alle OpenAI's modeller, der er blevet open source-beskyttet. Deres 2 mest spændende modeller: GPT-3 og DALL-E, er stadig private modeller, som kun kan bruges via deres betalte API.

Whisper er ved at tage tale-til-tekst-økosystemet med storm: den kan automatisk registrere indgangssproget, derefter transskribere tekst på omkring 100 sprog, automatisk sætte tegnsætning på resultatet og endda oversætte resultatet, hvis det er nødvendigt. Præcisionen er meget god, og du kan anvende denne model til alle former for input (lyd, video, telefonopkald, medicinske diskussioner osv.).

Og en anden stor fordel ved Whisper er naturligvis, at du selv kan installere det på dine egne servere, hvilket er fantastisk med hensyn til beskyttelse af personlige oplysninger.

Whisper er naturligvis gratis, men hvis du selv vil installere det, skal du bruge noget tid på det og betale for de underliggende servere og GPU'er. Hvis du foretrækker at drage fordel af en administreret version, kan du bruge et API som NLP Cloud: Prøv Whisper gratis på NLP Cloud nu!.

Installation og implementering af OpenAI Whisper

Du har 2 muligheder, hvis du vil installere og implementere Whisper i øjeblikket. Den første er at bruge OpenAI's whisper Python-bibliotek, og den anden er at bruge Hugging Face Transformers implementering af Whisper. Lad os undersøge begge løsninger.

Brug af whisper Python-libren

Denne løsning er den enkleste. Du skal grundlæggende følge OpenAI's instruktioner på Github-repositoriet for Whisper-projektet.

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?

Brug af implementeringen af 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 hardware

Som vi så ovenfor, er Whisper forholdsvis nem at installere. Det kræver dog avanceret hardware. En GPU anbefales, hvis du ønsker at bruge den store version af modellen.

Hvis du bruger whisper Python Lib (se ovenfor), skal du bruge omkring 10 GB RAM og 11 GB VRAM. Det betyder, at du i praksis skal bruge en GPU på mindst 16 GB. Det kunne f.eks. være en NVIDIA Tesla T4 eller en NVIDIA A10.

På en Tesla T4 kan du transskribere 30 sekunders lyd på ca. 6 sekunder.

Overvejelser om ydeevne

Hvis du ønsker at forbedre den ovenfor nævnte standardydelse, kan du undersøge følgende strategier:

Konklusion

OpenAI Whisper er en revolution inden for tale-til-tekst-verdenen. For første gang kan alle nemt få adgang til state-of-the-art automatisk talegenkendelse takket være denne open source-model, hvilket gør Whisper til et godt alternativ til Googles tale-til-tekst API.

Installation og implementering af en sådan AI-model er dog stadig en udfordring på grund af den hardware, der kræves under motorhjelmen. Den store version af Whisper kan ikke rigtig køre på forbrugerhardware.

Hvis du ønsker at prøve Whisper uden at skulle bekymre dig om infrastruktur, kan du prøve det på NLP Cloud API'et: Prøv Whisper gratis på NLP Cloud nu!.

Julien Salinas
CTO hos NLP Cloud