OpenAI Whisper on tällä hetkellä paras avoimen lähdekoodin vaihtoehto Googlen puheesta tekstiin -ohjelmalle. Se toimii natiivisti 100 kielellä (tunnistetaan automaattisesti), se lisää välimerkkejä ja voi jopa kääntää tuloksen tarvittaessa. Tässä artikkelissa näytämme, miten Whisper asennetaan ja otetaan käyttöön tuotannossa.
Googlen automaattinen puheentunnistus (speech-to-text) API on erittäin suosittu. Tämä API pystyy transkriboimaan ääni- ja videotiedostoja 125 kielellä, ja se ehdottaa erityisiä tekoälymalleja muun muassa puhelujen transkriptiota ja lääketieteellistä transkriptiota varten.
Tässä API:ssa on myös mukavia lisäominaisuuksia, kuten sisällön suodatus, automaattinen välimerkkien käyttö (toistaiseksi vain beta-versiossa) ja puhujan päiväkirjamerkintä (myös beta-versiossa).
Viimeiseksi, niiden API voidaan asentaa tiloihin. On kuitenkin tärkeää huomata, että paikallinen tekoälymalli lähettää jatkuvasti tietoja Googlelle API:n käytön raportoimiseksi, mikä voi olla huolenaihe yksityisyydensuojan kannalta.
Googlen hinnoittelu on periaatteessa 0,006 dollaria / 15 sekuntia perustason puheesta tekstiin -palvelussa ja 0,009 dollaria / 15 sekuntia erityiskäyttötapauksissa, kuten videon tai puhelimen transkriptiossa.
Oletetaan, että haluat analysoida automaattisesti tukitiimillesi soitettuja puheluita (jotta voit myöhemmin tehdä niihin esimerkiksi tunneanalyysin tai kokonaisuuksien poiminnan). Jos sinulla on viisi tukihenkilöä, jotka puhuvat päivittäin 4 tuntia puhelimessa asiakkaiden kanssa, Googlen puheesta tekstiin -liittymä maksaa sinulle 1400 dollaria kuukaudessa.
Jos olet huolissasi kustannuksista tai yksityisyydestä, kannattaa ehkä siirtyä käyttämään avoimen lähdekoodin vaihtoehtoa: OpenAI Whisper.
Whisper on avoimen lähdekoodin tekoälymalli, jonka OpenAI on juuri julkaissut.
OpenAI:lla on historiaa suurten tekoälyhankkeiden avoimesta ulkoistamisesta. Esimerkiksi GPT-2:n kehitti OpenAI pari vuotta sitten. Tuolloin se oli paras koskaan luotu generatiivinen luonnollisen kielen prosessointimalli, ja se pohjusti tietä paljon kehittyneemmille malleille, kuten GPT-3, GPT-J, OPT, Bloom.... Äskettäin he julkaisivat myös hienon CUDA-ohjelmointikehyksen nimeltä Triton.
Kaikkia OpenAI:n malleja ei kuitenkaan ole avattu. Heidän 2 jännittävintä malliaan: GPT-3 ja DALL-E, ovat edelleen yksityisiä malleja, joita voi käyttää vain maksullisen API:n kautta.
Whisper on valloittamassa puheesta tekstiin -ekosysteemiä myrskyllä: se pystyy automaattisesti tunnistamaan syötetyn kielen, transkriboimaan tekstiä noin 100 kielellä, automaattisesti välimerkitsemään tuloksen ja jopa kääntämään tuloksen tarvittaessa. Tarkkuus on erittäin hyvä, ja tätä mallia voi soveltaa mihin tahansa syötteeseen (ääni, video, puhelut, lääketieteelliset keskustelut jne.).
Toinen Whisperin suuri etu on tietenkin se, että voit ottaa sen käyttöön omilla palvelimillasi, mikä on hienoa yksityisyyden suojan kannalta.
Whisper on tietysti ilmainen, mutta jos haluat asentaa sen itse, sinun on käytettävä siihen jonkin verran aikaa ja maksettava taustalla olevista palvelimista ja näytönohjaimista. Jos haluat mieluummin hyödyntää hallittua versiota, voit käyttää NLP Cloudin kaltaista APIa: kokeile Whisperiä ilmaiseksi NLP Cloudissa nyt!.
Sinulla on kaksi vaihtoehtoa, jos haluat asentaa ja ottaa Whisperin käyttöön toistaiseksi. Ensimmäinen on käyttää OpenAI:n Whisper Python-kirjastoa, ja toinen on käyttää Whisperin Hugging Face Transformers -toteutusta. Tutustutaanpa molempiin ratkaisuihin.
Tämä ratkaisu on yksinkertaisin. Sinun on periaatteessa noudatettava OpenAI:n ohjeita. Whisper-projektin Github-tietokannassa..
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.
Kuten edellä todettiin, Whisper on melko helppo asentaa. Se vaatii kuitenkin kehittynyttä laitteistoa. Suorituskorttia suositellaan, jos haluat käyttää mallin suurta versiota.
Jos käytät whisper Python libiä (katso yllä), tarvitset noin 10 Gt RAM-muistia ja 11 Gt VRAM-muistia. Käytännössä se tarkoittaa, että tarvitset vähintään 16 Gt:n näytönohjaimen. Se voi olla esimerkiksi NVIDIA Tesla T4 tai NVIDIA A10.
Tesla T4:llä 30 sekunnin ääni transkriboidaan noin 6 sekunnissa.
Jos haluat parantaa edellä mainittua oletussuorituskykyä, voit tutkia seuraavia strategioita:
OpenAI Whisper on vallankumous puheesta tekstiin -maailmassa. Avoimen lähdekoodin mallin ansiosta kuka tahansa pääsee ensimmäistä kertaa helposti käsiksi huipputason automaattiseen puheentunnistukseen, mikä tekee Whisperistä hyvän vaihtoehdon Googlen puhe-teksti API:lle.
Tällaisen tekoälymallin asentaminen ja käyttöönotto on kuitenkin edelleen haasteellista, koska konepellin alla tarvitaan laitteistoa. Whisperin suurta versiota ei voi oikeastaan käyttää kuluttajille tarkoitetulla laitteistolla.
Jos haluat helposti kokeilla Whisperiä vaivaamatta infrastruktuuria, kokeile sitä NLP Cloud API:lla: kokeile Whisperiä ilmaiseksi NLP Cloudissa nyt!.
Julien Salinas
teknologiajohtaja, NLP Cloud