
Whisper, büyük bir ses veri kümesi üzerinde eğitilmiş genel amaçlı bir otomatik konuşma tanıma modelidir. Model çok dilli transkripsiyon, konuşma çevirisi ve dil tespiti yapabilir.
Whisper; sesli asistan, sohbet botu, İngilizceye konuşma çevirisi, toplantılarda otomatik not alma ve transkripsiyon gibi amaçlarla kullanılabilir.
Transkripsiyon, konuşulan dili metne dönüştürme işlemidir. Geçmişte bu işlem manuel yapılırken, artık konuşulan dili doğru şekilde anlayabilen Whisper gibi yapay zekâ destekli araçlar var.
Python diline dair temel bilginiz varsa, OpenAI Whisper API'sini uygulamanıza entegre edebilirsiniz. Whisper API, çeşitli OpenAI hizmet ve modellere erişmenizi sağlayan openai/openai-python paketinin bir parçasıdır.
LangChain ile yapay zekâ uygulamaları geliştirme hakkında daha fazla bilgi edinmek için LangChain & OpenAI API ile Multimodal Yapay Zekâ Uygulamaları Geliştirme - AI Code Along etkinliğimizi inceleyin; burada Whisper konuşmadan metne AI ile YouTube video içeriğini nasıl yazıya dökeceğinizi ve ardından içerikle ilgili soruları sormak için GPT'yi nasıl kullanacağınızı keşfedeceksiniz.
Transkripsiyon için iyi kullanım alanları nelerdir?
- Analiz, kolay erişim ve kayıt tutma için röportajların, toplantıların, derslerin ve podcast'lerin yazıya dökülmesi.
- Altyazılar (YouTube), kapalı altyazılar (Zoom toplantıları) ve konuşulan dilin çevirisi için gerçek zamanlı konuşma transkripsiyonu.
- Kişisel ve profesyonel kullanım için konuşma transkripsiyonu. Sesli notların, mesajların, hatırlatıcıların, notların ve geri bildirimlerin yazıya dökülmesi.
- İşitme engelli kişiler için transkripsiyon.
- Metin girdisi gerektiren ses tabanlı uygulamalar için transkripsiyon. Örneğin, sohbet botu, sesli asistan ve dil çevirisi.
Hangi diller destekleniyor?
OpenAI Whisper API tarafından transkripsiyon ve çevirilerde desteklenen diller şunlardır:
Afrikaanca, Arapça, Ermenice, Azerice, Beyaz Rusça, Boşnakça, Bulgarca, Katalanca, Çince, Hırvatça, Çekçe, Danca, Felemenkçe, İngilizce, Estonca, Fince, Fransızca, Galiçyaca, Almanca, Yunanca, İbranice, Hintçe, Macarca, İzlandaca, Endonezce, İtalyanca, Japonca, Kannada, Kazakça, Korece, Letonca, Litvanca, Makedonca, Malayca, Marathi, Maori, Nepalce, Norveççe, Farsça, Lehçe, Portekizce, Rumence, Rusça, Sırpça, Slovakça, Slovence, İspanyolca, Svahili, İsveççe, Tagalog, Tamilce, Tayca, Türkçe, Ukraynaca, Urduca, Vietnamca ve Galce.
Büyük-v2 model kullanılarak Fleur veri kümesi için Sözcük Hata Oranı (WER) dökümü aşağıdaki şekilde, dillere göre kategorize edilmiştir. WER ne kadar küçükse, transkripsiyon doğruluğu o kadar iyidir.

Hangi dosya biçimleri destekleniyor?
Whisper API'nin desteklediği dosya biçimleri mp3, mp4, mpeg, mpga, m4a, wav ve webm'dir. Şu anda yükleme dosya boyutu 25 MB ile sınırlıdır. Daha büyük dosyalarınız varsa, bunları pydub kullanarak daha küçük parçalara bölebilirsiniz.
OpenAI API ile sesten metne
Bu bölümde, transkripsiyon ve çeviri için OpenAI API'yi kullanacağız. Ayrıca çeşitli çıktı biçimlerine de bakacağız.
Kurulum
OpenAI Python API'yi pip ile kurabilirsiniz.
pip install openai
Ardından, OpenAI API web sayfasına girip profil fotoğrafına tıklayarak ve "View API keys" seçeneğini seçerek API anahtarları oluşturmamız gerekiyor. Tüm yeni OpenAI hesapları 5 $ ücretsiz kredi ile gelir, bu nedenle kredi kartı bilgisi ekleme konusunda endişelenmenize gerek yok.

Sonraki adımda, “Create new security key” düğmesine tıklayın, anahtar adını yazın ve ardından oluşturulan anahtarı kopyalayın.

API anahtarınızı bir ortam değişkeni ile ayarlayın
Aşağıdaki komutu terminale yazarak API anahtarını yerel sistemimizde ayarlayabiliriz. Bu komut, OpenAI hizmetlerini kullanmanız için bir API ortam değişkeni ayarlar.
export OPENAI_API_KEY='sk-...kMEM'
API anahtarınızı OpenAI paketiyle ayarlayın
Python programınız içinde openai.api_key kullanarak bir anahtar ayarlayabilirsiniz. Bu yöntem API'nızı ifşa ettiği için önerilmez.
import openai
openai.api_key = "sk-...kMEM"
DataLab'de API anahtarınızı kolayca ayarlayın
Eğer DataLab kullanıyorsanız, Environment > artı simgesine tıklayın ve ardından ortam değişkenlerinizin ad ve değerlerini girin.

Ardından, Bağlan düğmesine tıklayarak ortam değişkenini etkinleştirmeniz gerekir.

Veri kümesi
İngilizce
Marvin Minsky'nin yapay zekâ üzerine röportajı YouTube videosunun küçük bir bölümünü kullanıp sesi çıkaracağız. marvin_minsky.mp3 dosyası bir dakikalık süreye ve 970 KB boyuta sahiptir.
İspanyolca
Barselona'daki insanlar yapay zekâyı nasıl kullanıyor? başlıklı İspanyolca YouTube videosundan küçük bir bölüm keserek Easy_spanish_315.mp3 dosyasını oluşturduk. 509 KB boyutunda ve 20 saniye uzunluğundadır.
İngilizce Transkripsiyonlar
Transkripsiyon API'si oldukça basittir. Ses dosyasını with ifadesiyle yükleyip ses nesnesini openai.Audio.transcribe içine eklemeniz yeterlidir. Transcribe işlevi yalnızca bir model adı ve ses nesnesi gerektirir, ancak daha iyi doğruluk için language argümanları sağlayabilirsiniz.
import openai
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(transcript)
of theories called Steps Toward Artificial Intelligence around 1970. That sort of charted several possible lines of research, which pretty much predicted what several communities of researchers would do in the next 20 years. Those predictions started to fall apart around--so that paper was 1970, roughly. By the late 1980s, the world had changed. It was interesting because when I started research in that general area, almost all of my students soon became professors.
Her bir işlevin ne yaptığını hızlıca gözden geçirmek için OpenAI API Python kısa notlarına göz atın. Metin üretimi, konuşma transkripsiyonu, görsel üretimi, gömme (embedding) ve daha fazlası için çeşitli OpenAI API komutlarını bu kısa notlardan öğrenebilirsiniz.
Alternatif Çıktı Biçimleri
Önceki örnekte çıktı yanıt biçimini basit metin olarak ayarladık, ancak bunu her zaman SubRip altyazıları (response_format="srt"), video metin izi altyazıları (response_format="vtt") ve üstveri (response_format="verbose_json") olarak değiştirebilirsiniz.
Örneklerimizde, altyazı çıktısı almak için response_format değerini “srt” olarak değiştireceğiz.
with open("Audio/marvin_minsky.mp3", "rb") as audio_file:
transcript2 = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="srt",
language="en"
)
print(transcript2)
Görüldüğü gibi, çıktı metni zaman damgalarına göre bölünmüştür.
1
00:00:00,000 --> 00:00:10,960
of theories called Steps Toward Artificial Intelligence around 1970.
2
00:00:10,960 --> 00:00:24,320
That sort of charted several possible lines of research, which pretty much predicted what
3
00:00:24,320 --> 00:00:31,920
several communities of researchers would do in the next 20 years.
4
00:00:31,920 --> 00:00:42,040
Those predictions started to fall apart around--so that paper was 1970, roughly.
5
00:00:42,040 --> 00:00:48,200
By the late 1980s, the world had changed.
6
00:00:48,200 --> 00:00:56,760
It was interesting because when I started research in that general area, almost all
7
00:00:56,760 --> 00:01:16,920
of my students soon became professors.
İspanyolca Transkripsiyon
Whisper, 98 dilde eğitildiği için birden fazla dilde yazıya dökebilir. Bunun için language argümanını değiştirmeniz gerekir.
Bizim örneğimizde İspanyolca bir ses dosyasını yazıya döküyoruz ve bunun için language="es" ayarladık.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
transcript_es = openai.Audio.transcribe(
file = audio_file,
model = "whisper-1",
response_format="text",
language="es"
)
print(transcript_es)
¿Qué crees que es la inteligencia artificial? ¿Qué creo que es? Eh... no sé, no sé cómo describirlo. Algo que no es natural, obviamente. Eh... Pues la inteligencia artificial es mediante... mediante datos, eh... introducirle a un algoritmo.
İspanyolcadan İngilizceye Çeviriler
Sesinizi yalnızca İngilizce transkripsiyona çevirebilirsiniz.
Örnekte, translate işlevine İspanyolca bir ses dosyası vereceğiz ve bu işlev İspanyolca ses dosyasını İngilizceye çevirecek.
with open("Audio/easy_spanish_315.mp3", "rb") as audio_file:
translate = openai.Audio.translate(
file = audio_file,
model = "whisper-1",
response_format="text",
language="en"
)
print(translate)
What do you think artificial intelligence is? What do I think it is? I don't know how to describe it. Something that is not natural, obviously. Artificial intelligence is, through data, introduced to an algorithm.
Bu örneği denemek için bu DataLab çalışma kitabına gidin. İçinde ses dosyaları ve kaynak kodu bulunur. Çalışması için tek yapmanız gereken çalışma kitabının bir kopyasını almak ve bir ortam değişkeni ayarlamak.
Ayrıca Python'da OpenAI API üzerinden ChatGPT kullanımı adlı öğreticiyi de inceleyin. Bu öğretici, gpt-3.5-turbo modelini kullanarak sohbet tamamlamaları için OpenAI API'sinden nasıl yararlanacağınızı öğretir.
Transkripsiyon Performansı Nasıl İyileştirilir?
Bir istem (prompt) argümanı kullanarak transkripsiyon kalitesini artırabiliriz. prompt argümanında kısmi bir transkripsiyon sağlayarak modele yazım stili, noktalama, büyük/küçük harf kullanımı ve yazım konusunda yardımcı oluruz.
Mevcut istem sisteminin önemli bir dezavantajı, üretilen metin üzerinde çok az kontrol sunmasıdır. Ayrıca, süreç bir kişinin sesi kısmen manuel olarak yazıya dökmesini gerektirdiğinden otomatikleştirilemez.
Sırada ne var?
Bu dersteki örnek kodu kullanarak bir sesli asistan oluşturabilir ya da Iron Man'deki J.A.R.V.I.S. benzeri bir sistem yapabilirsiniz. Bunu başarmak için kullanıcı arayüzünü ve Whisper, metinden konuşmaya ve ChatGPT API'lerini nasıl birleştireceğinizi belirlemeniz yeterlidir; bunu canlı eğitimimizde ele aldık.
ChatGPT'ye yeniyseniz, en iyi istem yazma uygulamalarını öğrenmek ve ChatGPT'yi iş değerine dönüştürmek için Introduction to ChatGPT kursunu alabilirsiniz. Ayrıca GPT-4 ve üretken modellerin nasıl çalıştığını öğrenmekle ilgileniyorsanız GPT-4 nedir ve neden önemlidir? yazısını okuyun. Aşağıda daha fazla kaynak da bulabilirsiniz:
