OpenAI Whisper je k dnešnímu dni nejlepší open-source alternativou k převodu řeči na text od společnosti Google. Funguje nativně ve 100 jazycích (automaticky je rozpoznán), přidává interpunkci a v případě potřeby dokáže výsledek i přeložit. V tomto článku vám ukážeme, jak Whisper nainstalovat a nasadit do produkce.
Rozhraní API pro automatické rozpoznávání řeči (převod řeči na text) společnosti Google je velmi populární. Toto rozhraní API dokáže přepisovat zvukové a video soubory ve 125 jazycích a navrhuje specifické modely umělé inteligence pro přepis telefonních hovorů, lékařský přepis a další.
Toto rozhraní API má také další příjemné funkce, jako je filtrování obsahu, automatická interpunkce (zatím pouze v beta verzi) a diarizace mluvčího (také v beta verzi).
A konečně, jejich rozhraní API lze nainstalovat v prostorách. Je však důležité si uvědomit, že lokální model umělé inteligence bude nadále odesílat data společnosti Google za účelem vykazování využití rozhraní API, což může být z hlediska ochrany osobních údajů problém.
Ceny společnosti Google jsou v podstatě 0,006 USD / 15 sekund pro základní převod řeči na text a 0,009 USD / 15 sekund pro specifické případy použití, jako je přepis videa nebo přepis telefonu.
Řekněme, že chcete automaticky analyzovat telefonní hovory uskutečněné vašemu týmu podpory (abyste na nich mohli později provést například analýzu sentimentu nebo extrakci entit). Pokud máte 5 pracovníků podpory, z nichž každý stráví denně 4 hodiny telefonováním se zákazníky, bude vás rozhraní API pro převod řeči na text od společnosti Google stát 1 400 USD měsíčně.
Pokud máte obavy o náklady nebo soukromí, možná byste měli přejít na alternativu s otevřeným zdrojovým kódem: OpenAI Whisper.
Whisper je open-source model umělé inteligence, který právě vydala společnost OpenAI.
OpenAI má za sebou historii open-sourcingu skvělých projektů umělé inteligence. Například GPT-2 byla vyvinuta společností OpenAI před několika lety. Ve své době to byl nejlepší generativní model zpracování přirozeného jazyka, jaký byl kdy vytvořen, a připravil cestu pro mnohem pokročilejší modely, jako jsou GPT-3, GPT-J, OPT, Bloom... Nedávno také vydali pěkný programovací framework CUDA s názvem Triton.
Ne všechny modely OpenAI jsou však otevřenými zdroji. Jejich 2 nejzajímavější modely: GPT-3 a DALL-E jsou stále soukromé modely, které lze používat pouze prostřednictvím jejich placeného API.
Aplikace Whisper bere ekosystém převodu řeči na text útokem: dokáže automaticky rozpoznat vstupní jazyk, poté přepsat text v přibližně 100 jazycích, automaticky interpunkci a v případě potřeby i přeložit výsledek. Přesnost je velmi dobrá a tento model můžete použít na jakýkoli druh vstupu (audio, video, telefonní hovory, lékařské rozhovory atd.).
Další velkou výhodou služby Whisper je samozřejmě to, že ji můžete sami nasadit na svých vlastních serverech, což je skvělé z hlediska ochrany osobních údajů.
Whisper je samozřejmě zdarma, ale pokud si ho chcete nainstalovat sami, budete muset strávit nějaký čas a zaplatit za základní servery a grafické procesory. Pokud chcete raději využívat spravovanou verzi, můžete použít rozhraní API, jako je NLP Cloud: vyzkoušejte Whisper zdarma na NLP Cloud!.
Pokud chcete Whisper nainstalovat a nasadit, máte dvě možnosti. První z nich je použít knihovnu Whisper Python od OpenAI a druhou možností je použít implementaci Whisperu od Hugging Face Transformers. Pojďme prozkoumat obě řešení.
Toto řešení je nejjednodušší. V podstatě musíte postupovat podle pokynů OpenAI. v repozitáři Github projektu Whisper.
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.
Jak jsme viděli výše, Whisper se poměrně snadno instaluje. Vyžaduje však pokročilý hardware. Pokud chcete používat velkou verzi modelu, doporučujeme použít grafický procesor.
Pokud použijete knihovnu Whisper Python (viz výše), budete potřebovat přibližně 10 GB RAM a 11 GB VRAM. V praxi to znamená, že budete potřebovat minimálně 16GB grafický procesor. Může to být například NVIDIA Tesla T4 nebo NVIDIA A10.
U vozu Tesla T4 přepisujete 30 sekund zvuku přibližně 6 sekund.
Pokud chcete zlepšit výše uvedený výchozí výkon, můžete využít několik strategií:
OpenAI Whisper je revolucí ve světě převodu řeči na text. Díky tomuto modelu s otevřeným zdrojovým kódem má poprvé kdokoli snadný přístup k nejmodernějšímu automatickému rozpoznávání řeči, což z Whisperu dělá dobrou alternativu k rozhraní Google speech-to-text API.
Instalace a nasazení takového modelu umělé inteligence však stále představuje výzvu kvůli hardwaru, který je pod kapotou vyžadován. Velká verze Whisperu skutečně nemůže běžet na spotřebitelském hardwaru.
Pokud si chcete Whisper snadno vyzkoušet, aniž byste se museli zabývat infrastrukturou, vyzkoušejte jej na rozhraní NLP Cloud API: vyzkoušejte Whisper zdarma na NLP Cloud!.
Julien Salinas
Technický ředitel společnosti NLP Cloud