OpenAI Whisper, bugün itibariyle Google konuşmadan metne en iyi açık kaynaklı alternatiftir. Yerel olarak 100 dilde çalışır (otomatik olarak algılanır), noktalama işaretleri ekler ve gerekirse sonucu bile çevirebilir. Bu makalede Whisper'ı nasıl kuracağınızı ve üretime nasıl dağıtacağınızı göstereceğiz.
Google'ın otomatik konuşma tanıma (konuşmadan metne) API'si çok popülerdir. Bu API, 125 dilde ses ve video dosyalarını yazıya dökebiliyor ve telefon görüşmelerinin yazıya dökülmesi, tıbbi yazıya dökme ve daha fazlası için özel yapay zeka modelleri öneriyor.
Bu API ayrıca içerik filtreleme, otomatik noktalama (şu an için yalnızca beta sürümünde) ve konuşmacı günlüğü oluşturma (beta sürümünde) gibi güzel ek özelliklere de sahiptir.
Son olarak, API'leri tesis içinde kurulabilir. Ancak, şirket içi yapay zeka modelinin API kullanımını raporlamak için Google'a veri göndermeye devam edeceğini ve bunun gizlilik açısından endişe verici olabileceğini belirtmek önemlidir.
Google'ın fiyatlandırması temel olarak konuşmadan metne için 0,006 $ / 15 saniye ve video transkripsiyonu veya telefon transkripsiyonu gibi özel kullanım durumları için 0,009 $ / 15 saniyedir.
Diyelim ki destek ekibinize yapılan telefon aramalarını otomatik olarak analiz etmek istiyorsunuz (örneğin daha sonra bunlar üzerinde duygu analizi veya varlık çıkarımı yapmak için). Müşterilerle telefonda her gün 4 saat geçiren 5 destek temsilciniz varsa, Google'ın konuşmadan metne API'si size ayda 1.400 dolara mal olacaktır.
Maliyetler veya gizlilik konusunda endişeleriniz varsa, açık kaynaklı bir alternatife geçmek isteyebilirsiniz: OpenAI Whisper.
Whisper, OpenAI tarafından henüz piyasaya sürülen açık kaynaklı bir yapay zeka modelidir.
OpenAI, harika yapay zeka projelerini açık kaynak olarak sunma konusunda bir geçmişe sahiptir. Örneğin GPT-2 birkaç yıl önce OpenAI tarafından geliştirildi. O zamanlar şimdiye kadar oluşturulmuş en iyi üretken doğal dil işleme modeliydi ve GPT-3, GPT-J, OPT, Bloom gibi çok daha gelişmiş modellerin önünü açtı. Son zamanlarda, Triton adında güzel bir CUDA programlama çerçevesi de yayınladılar.
Yine de OpenAI'nin tüm modelleri açık kaynaklı değildir. En heyecan verici 2 modelleri: GPT-3 ve DALL-E, hala yalnızca ücretli API'leri aracılığıyla kullanılabilen özel modellerdir.
Whisper, konuşmadan metne ekosistemini kasıp kavuruyor: giriş dilini otomatik olarak algılayabiliyor, ardından yaklaşık 100 dilde metni yazıya dökebiliyor, sonucu otomatik olarak noktalayabiliyor ve hatta gerekirse sonucu çevirebiliyor. Doğruluk oranı çok iyi ve bu modeli her türlü girdiye uygulayabilirsiniz (ses, video, telefon görüşmeleri, tıbbi tartışmalar vb.)
Ve elbette, Whisper'ın bir diğer büyük avantajı da kendi sunucularınızda kendi başınıza dağıtabilmenizdir, bu da gizlilik açısından harika bir şeydir.
Whisper elbette ücretsizdir, ancak kendi başınıza kurmak istiyorsanız, üzerinde biraz insan zamanı harcamanız ve temel sunucular ve GPU'lar için ödeme yapmanız gerekecektir. Yönetilen bir sürümden yararlanmayı tercih ederseniz, NLP Cloud gibi bir API kullanabilirsiniz: Whisper'ı şimdi NLP Cloud'da ücretsiz deneyin!.
Şu an için Whisper'ı kurmak ve dağıtmak istiyorsanız 2 seçeneğiniz var. Birincisi OpenAI'nin whisper Python kütüphanesini kullanmak, ikincisi ise Whisper'ın Hugging Face Transformers uygulamasını kullanmak. Her iki çözümü de inceleyelim.
Bu çözüm en basit olanıdır. Temel olarak OpenAI'nin talimatlarını izlemeniz gerekir Whisper projesinin Github deposunda.
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.
Yukarıda gördüğümüz gibi, Whisper'ın kurulumu oldukça kolaydır. Ancak gelişmiş donanım gerektirir. Modelin büyük sürümünü kullanmak istiyorsanız bir GPU önerilir.
Eğer whisper Python lib kullanırsanız (yukarıya bakın) yaklaşık 10GB RAM ve 11GB VRAM'e ihtiyacınız olacaktır. Bu da pratikte en az 16GB'lık bir GPU'ya ihtiyacınız olacağı anlamına gelir. Örneğin bir NVIDIA Tesla T4 veya bir NVIDIA A10 olabilir.
Bir Tesla T4'te 30 saniyelik sesi yaklaşık 6 saniyede yazıya dökersiniz.
Yukarıda bahsedilen varsayılan performansı iyileştirmek istiyorsanız, işte keşfedebileceğiniz birkaç strateji:
OpenAI Whisper, konuşmadan metne dünyasında bir devrim niteliğindedir. Whisper'ı Google konuşmadan metne API'sine iyi bir alternatif haline getiren bu açık kaynak modeli sayesinde ilk kez herkes son teknoloji otomatik konuşma tanımaya kolayca erişebiliyor.
Böyle bir yapay zeka modelinin kurulumu ve dağıtımı, kaputun altında gerekli olan donanım nedeniyle hala bir zorluktur. Whisper'ın büyük versiyonu tüketici donanımı üzerinde gerçekten çalışamaz.
Altyapı sorunlarıyla uğraşmadan Whisper'ı kolayca denemek istiyorsanız, lütfen NLP Cloud API üzerinde deneyin: Whisper'ı şimdi NLP Cloud'da ücretsiz deneyin!.
Julien Salinas
NLP Cloud'da CTO