"OpenAI Whisper" yra geriausia atvirojo kodo alternatyva "Google" kalbai į tekstą. Ji veikia 100 kalbų (automatiškai nustatoma), prideda skyrybos ženklų ir prireikus gali net išversti rezultatą. Šiame straipsnyje parodysime, kaip įdiegti "Whisper" ir įdiegti ją į gamybą.
"Google" automatinio kalbos atpažinimo (kalbos į tekstą) API yra labai populiari. Ši API gali transkribuoti garso ir vaizdo failus 125 kalbomis ir siūlo specialius dirbtinio intelekto modelius telefono skambučių transkripcijai, medicininei transkripcijai ir kt.
Ši API taip pat turi puikių papildomų funkcijų, pavyzdžiui, turinio filtravimo, automatinės skyrybos (kol kas tik beta versijoje) ir kalbėtojo dienoraščio rašymo (taip pat beta versijoje).
Galiausiai, jų API galima įdiegti patalpose. Tačiau svarbu pažymėti, kad patalpose įdiegtas AI modelis ir toliau siųs duomenis "Google", kad praneštų apie API naudojimą, o tai gali kelti susirūpinimą privatumo požiūriu.
"Google" kainodara iš esmės yra 0,006 JAV dolerio už 15 sekundžių už pagrindinį kalbos keitimą į tekstą ir 0,009 JAV dolerio už 15 sekundžių už konkrečius naudojimo atvejus, pvz., vaizdo įrašų transkripciją arba transkripciją telefonu.
Tarkime, norite automatiškai analizuoti pagalbos komandai skambinančius telefono skambučius (kad vėliau galėtumėte atlikti, pavyzdžiui, nuotaikų analizę arba išgauti subjektus). Jei turite 5 pagalbos tarnybos darbuotojus, kurie per dieną telefonu su klientais praleidžia po 4 val., "Google" kalbos į tekstą API jums kainuos 1 400 USD per mėnesį.
Jei nerimaujate dėl išlaidų ar privatumo, galbūt norėsite pereiti prie atvirojo kodo alternatyvos: "OpenAI Whisper".
"Whisper" yra atvirojo kodo dirbtinio intelekto modelis, kurį ką tik išleido "OpenAI".
"OpenAI" turi puikių dirbtinio intelekto projektų atvirų šaltinių istoriją. Pavyzdžiui, prieš porą metų "OpenAI" sukūrė GPT-2. Tuo metu tai buvo geriausias kada nors sukurtas generatyvinis natūralios kalbos apdorojimo modelis, kuris atvėrė kelią daug pažangesniems modeliams, tokiems kaip GPT-3, GPT-J, OPT, Bloom... Neseniai jie taip pat išleido puikią CUDA programavimo sistemą Triton.
Tačiau ne visi "OpenAI" modeliai yra atviri. Jų 2 įdomiausi modeliai: GPT-3 ir DALL-E vis dar yra privatūs modeliai, kuriais galima naudotis tik per mokamą API.
"Whisper" užkariauja kalbos į tekstą ekosistemą: ji gali automatiškai nustatyti įvesties kalbą, tada transkribuoti tekstą maždaug 100 kalbų, automatiškai sudaryti skyrybos ženklus ir, jei reikia, net išversti rezultatą. Tikslumas yra labai geras, o šį modelį galima taikyti bet kokiai įvesties informacijai (garso, vaizdo įrašams, telefono skambučiams, medicininėms diskusijoms ir t. t.).
Žinoma, dar vienas didelis "Whisper" privalumas yra tas, kad galite patys jį įdiegti savo serveriuose, o tai labai naudinga privatumo požiūriu.
Žinoma, "Whisper" yra nemokama, tačiau jei norite ją įdiegti patys, turėsite skirti šiek tiek laiko ir sumokėti už pagrindinius serverius ir GPU. Jei pageidaujate naudotis valdoma versija, galite naudoti API, pavyzdžiui, NLP Cloud: išbandykite "Whisper" nemokamai "NLP Cloud" dabar!.
Jei šiuo metu norite įdiegti ir įdiegti "Whisper", turite dvi galimybes. Pirmoji - naudoti "OpenAI" "Whisper Python" biblioteką, o antroji - naudoti "Whisper" įgyvendinimą "Hugging Face Transformers". Išnagrinėkime abu sprendimus.
Šis sprendimas yra paprasčiausias. Iš esmės jums reikia vadovautis "OpenAI" instrukcijomis "Github" projekto "Whisper" saugykloje.
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?
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.
Kaip matėme pirmiau, "Whisper" gana lengva įdiegti. Tačiau jai reikia pažangios techninės įrangos. Jei norite naudoti didelę modelio versiją, rekomenduojama turėti GPU.
Jei naudojate "Python" lib "Whisper" (žr. pirmiau), jums reikės maždaug 10 GB RAM ir 11 GB VRAM. Tai reiškia, kad praktiškai jums reikės bent 16 GB GPU. Tai galėtų būti, pavyzdžiui, "NVIDIA Tesla T4" arba "NVIDIA A10".
Su "Tesla T4" 30 sekundžių garso įrašą perrašysite per maždaug 6 sekundes.
Jei norite pagerinti pirmiau minėtą numatytąjį veikimą, galite pasinaudoti keliomis strategijomis:
"OpenAI Whisper" yra revoliucija kalbos į tekstą pasaulyje. Pirmą kartą dėl šio atvirojo kodo modelio kiekvienas gali lengvai naudotis moderniausiu automatiniu kalbos atpažinimu, todėl "Whisper" yra gera alternatyva "Google" kalbos atpažinimo iš teksto API.
Tačiau tokio dirbtinio intelekto modelio diegimas ir įdiegimas vis dar yra iššūkis dėl reikiamos aparatinės įrangos. Didelė "Whisper" versija iš tikrųjų negali veikti su vartotojiška aparatine įranga.
Jei norite išbandyti "Whisper", nesirūpindami infrastruktūra, išbandykite ją naudodami NLP Cloud API: išbandykite "Whisper" nemokamai "NLP Cloud" dabar!.
Julien Salinas
"NLP Cloud" techninis direktorius