OpenAI Whisper on tänase seisuga parim avatud lähtekoodiga alternatiiv Google'i kõne-tekstile. See töötab algupäraselt 100 keeles (automaatselt tuvastatud), lisab kirjavahemärke ja suudab vajadusel isegi tõlkida tulemust. Selles artiklis näitame teile, kuidas Whisperit paigaldada ja tootmisse juurutada.
Google'i automaatne kõnetuvastus (speech-to-text) API on väga populaarne. See API on võimeline transkribeerima audio- ja videofaile 125 keeles ning pakub konkreetseid tehisintellekti mudeleid telefonikõnede transkribeerimiseks, meditsiinilise transkribeerimise jaoks jne.
Sellel API-l on ka toredaid lisafunktsioone, nagu sisu filtreerimine, automaatne kirjavahemärgistamine (hetkel ainult beetaversioonis) ja kõnelejate päevikustamine (samuti beetaversioonis).
Viimaks, nende API-d saab paigaldada ruumidesse. Kuid oluline on märkida, et kohapealne AI-mudel saadab jätkuvalt andmeid Google'ile, et teatada API kasutamisest, mis võib olla privaatsuse seisukohast murettekitav.
Google'i hinnakujundus on põhimõtteliselt $0,006 / 15 sekundit põhilise kõne-teksti jaoks ja $0,009 / 15 sekundit konkreetsete kasutusjuhtumite, nagu video transkriptsioon või telefoni transkriptsioon, jaoks.
Oletame, et soovite automaatselt analüüsida oma tugimeeskonnale tehtud telefonikõnesid (näiteks selleks, et hiljem teostada nende põhjal sentimentaalanalüüsi või üksuste väljavõtteid). Kui teil on 5 tugiagenti, kes veedavad iga päev 4 tundi klientidega telefonikõnes, siis maksab Google'i kõne-teksti API 1400 dollarit kuus.
Kui olete mures kulude või privaatsuse pärast, võite minna üle avatud lähtekoodiga alternatiivile: OpenAI Whisper.
Whisper on avatud lähtekoodiga tehisintellekti mudel, mille on äsja välja andnud OpenAI.
OpenAI-l on olnud palju kogemusi suurepäraste tehisintellektiprojektide avatud hankimise vallas. Näiteks GPT-2 arendas OpenAI paar aastat tagasi. Toona oli see parim generatiivne loomuliku keele töötlemise mudel, mis on kunagi loodud, ja see sillutas teed palju arenenumatele mudelitele nagu GPT-3, GPT-J, OPT, Bloom... Hiljuti andsid nad välja ka toreda CUDA programmeerimisraamistiku nimega Triton.
Kõik OpenAI mudelid ei ole siiski avatud. Nende 2 kõige põnevamat mudelit: GPT-3 ja DALL-E on endiselt privaatsed mudelid, mida saab kasutada ainult nende tasulise API kaudu.
Whisper on võtmas kõne-teksti ökosüsteemi tormiliselt: see suudab automaatselt tuvastada sisendkeele, seejärel transkribeerida teksti umbes 100 keeles, kirjavahemärgistada tulemust automaatselt ja vajaduse korral isegi tõlkida tulemust. Täpsus on väga hea ja seda mudelit saab kasutada mis tahes sisendi puhul (audio, video, telefonikõned, meditsiinilised arutelud jne).
Ja muidugi on Whisperi teine suur eelis see, et saate seda ise oma serverites kasutusele võtta, mis on privaatsuse seisukohast suurepärane.
Whisper on muidugi tasuta, kuid kui soovite seda ise paigaldada, peate kulutama sellele inimlikku aega ning maksma aluseks olevate serverite ja GPUde eest. Kui eelistate kasutada hallatavat versiooni, saate kasutada API-d, näiteks NLP Cloudi: proovi Whisper'i nüüd tasuta NLP Cloudis!.
Teil on 2 võimalust, kui soovite Whisperit hetkel paigaldada ja kasutusele võtta. Esimene on kasutada OpenAI Whisperi Python raamatukogu ja teine on kasutada Whisperi rakendus Hugging Face Transformers. Uurime mõlemat lahendust.
See lahendus on kõige lihtsam. Põhimõtteliselt tuleb järgida OpenAI juhiseid. Whisper projekti Githubi repositooriumis.
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.
Nagu eespool nägime, on Whisperit üsna lihtne paigaldada. Siiski nõuab see täiustatud riistvara. Kui soovite kasutada mudeli suurt versiooni, on soovitatav kasutada GPU-d.
Kui kasutate whisper Python lib (vt eespool), siis on vaja umbes 10 GB RAM-i ja 11 GB VRAM-i. See tähendab, et praktikas vajate vähemalt 16 GB GPU-d. See võib olla näiteks NVIDIA Tesla T4 või NVIDIA A10.
Tesla T4 puhul transkribeerite 30 sekundit heli umbes 6 sekundiga.
Kui soovite parandada eespool mainitud vaikimisi jõudlust, on siin mitu strateegiat, mida saate uurida:
OpenAI Whisper on revolutsioon kõnest tekstiks maailmas. Esimest korda saab igaüks tänu sellele avatud lähtekoodiga mudelile hõlpsasti ligi tipptasemel automaatsele kõnetuvastusele, mis teeb Whisperist hea alternatiivi Google'i kõnetekstide API-le.
Sellise tehisintellekti mudeli paigaldamine ja kasutuselevõtt on siiski keeruline, sest kapoti all on vaja riistvara. Whisperi suur versioon ei saa tegelikult töötada tarbijaravimil.
Kui soovite lihtsalt proovida Whisperit, ilma et peaksite vaeva nägema infrastruktuuriga, siis proovige seda NLP Cloud APIs: proovi Whisper'i nüüd tasuta NLP Cloudis!.
Julien Salinas
NLP Cloudi tehnoloogiajuht