OpenAI Whisper ir labākā atvērtā pirmkoda alternatīva Google runas teksta pārnesei. Tā darbojas 100 valodās (tiek automātiski atpazīta), pievieno interpunkciju un vajadzības gadījumā var pat tulkot rezultātu. Šajā rakstā mēs parādīsim, kā instalēt Whisper un izvietot to ražošanā.
Google automātiskās runas atpazīšanas (runas teksta) API ir ļoti populāra. Šis API spēj transkribēt audio un video failus 125 valodās, un tas piedāvā īpašus mākslīgā intelekta modeļus telefona zvanu transkripcijai, medicīniskai transkripcijai u. c.
Šim API ir arī patīkamas papildu funkcijas, piemēram, satura filtrēšana, automātiskā interpunkcija (pagaidām tikai beta versijā) un skaļruņu diarizēšana (arī beta versijā).
Visbeidzot, to API var instalēt telpās. Taču ir svarīgi atzīmēt, ka vietējais AI modelis turpinās sūtīt datus uzņēmumam Google, lai ziņotu par API izmantošanu, kas var radīt bažas no privātuma viedokļa.
Google cenas pamatā ir 0,006 ASV dolāru par 15 sekundēm pamata runas teksta pārvēršanai un 0,009 ASV dolāru par 15 sekundēm īpašiem lietošanas gadījumiem, piemēram, video transkripcijai vai telefona transkripcijai.
Pieņemsim, ka vēlaties automātiski analizēt atbalsta dienestam veiktos tālruņa zvanus (lai vēlāk veiktu, piemēram, noskaņojuma analīzi vai būtņu ieguvi). Ja jums ir 5 atbalsta dienesta aģenti, kas dienā pa telefonu ar klientiem pavada 4 stundas katrs, Google runas teksta API jums izmaksās 1400 ASV dolāru mēnesī.
Ja jums ir bažas par izmaksām vai konfidencialitāti, iespējams, vēlēsieties izvēlēties alternatīvu ar atvērto pirmkodu: OpenAI Whisper.
Whisper ir atvērtā pirmkoda mākslīgā intelekta modelis, ko nupat laidis klajā OpenAI.
OpenAI jau iepriekš ir atklāti pieejami lieliski mākslīgā intelekta projekti. Piemēram, OpenAI pirms pāris gadiem izstrādāja GPT-2. Tajā laikā tas bija labākais jebkad radītais ģeneratīvais dabiskās valodas apstrādes modelis, un tas pavēra ceļu daudz progresīvākiem modeļiem, piemēram, GPT-3, GPT-J, OPT, Bloom... Nesen viņi izlaida arī jauku CUDA programmēšanas ietvaru Triton.
Tomēr ne visi OpenAI modeļi ir atklāti. Viņu 2 aizraujošākie modeļi: GPT-3 un DALL-E joprojām ir privāti modeļi, kurus var izmantot tikai ar viņu maksas API.
Whisper strauji pārņem runas teksta pārneses ekosistēmu: tas spēj automātiski noteikt ievades valodu, pēc tam transkribēt tekstu aptuveni 100 valodās, automātiski veikt interpunkciju un vajadzības gadījumā pat tulkot rezultātu. Precizitāte ir ļoti laba, un šo modeli var izmantot jebkura veida ievades datiem (audio, video, telefona zvaniem, medicīniskām diskusijām utt.).
Un, protams, vēl viena liela Whisper priekšrocība ir tā, ka varat to izvietot pats savos serveros, kas ir lieliski no konfidencialitātes viedokļa.
Whisper, protams, ir bezmaksas, taču, ja vēlaties to instalēt pats, jums būs jāvelta tam zināms laiks un jāmaksā par pamatā esošajiem serveriem un GPU. Ja vēlaties izmantot pārvaldītas versijas priekšrocības, varat izmantot API, piemēram, NLP Cloud: izmēģiniet Whisper bez maksas NLP mākonī tagad!.
Jums ir 2 iespējas, ja pašlaik vēlaties instalēt un izvietot Whisper. Pirmā ir izmantot OpenAI Whisper Python bibliotēku, bet otrā - izmantot Whisper implementāciju Hugging Face Transformers. Izpētīsim abus risinājumus.
Šis risinājums ir visvienkāršākais. Būtībā jums ir jāseko OpenAI norādījumiem. projekta Whisper Github repozitorijā.
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.
Kā redzējām iepriekš, Whisper ir diezgan viegli instalēt. Tomēr tam nepieciešama uzlabota aparatūra. Ja vēlaties izmantot modeļa lielo versiju, ieteicams izmantot GPU.
Ja izmantojat Python bibliotēku Whisper (sk. iepriekš), jums būs nepieciešams aptuveni 10 GB RAM un 11 GB VRAM. Tas nozīmē, ka praksē jums būs nepieciešams vismaz 16 GB GPU. Tas varētu būt, piemēram, NVIDIA Tesla T4 vai NVIDIA A10.
Izmantojot Tesla T4, 30 sekunžu audioierakstu varat transkribēt aptuveni 6 sekundēs.
Ja vēlaties uzlabot iepriekš minēto noklusējuma veiktspēju, varat izmantot vairākas stratēģijas:
OpenAI Whisper ir revolūcija runas teksta pārraides pasaulē. Pirmo reizi ikviens var viegli piekļūt jaunākajai automātiskajai runas atpazīšanai, pateicoties šim atvērtā koda modelim, kas padara Whisper par labu alternatīvu Google runas teksta API.
Tomēr šāda mākslīgā intelekta modeļa instalēšana un izvietošana joprojām ir izaicinājums, jo tam ir nepieciešama aparatūra. Lielo Whisper versiju nav iespējams palaist uz patērētāju aparatūras.
Ja vēlaties izmēģināt Whisper, neraizējoties par infrastruktūras apsvērumiem, izmēģiniet to NLP Cloud API: izmēģiniet Whisper bez maksas NLP mākonī tagad!.
Julien Salinas
NLP Cloud tehniskais direktors