TR ▾
API anahtarı al

Whisper API Sunucusu: Kurulum Seçenekleri ve Metin Adımı

Bir Whisper API sunucusu, ses kabul eden ve transkripsiyon döndüren bir HTTP hizmetidir. Yalnızca konuşmayı işler, bu nedenle kelimelerle daha sonra yapmak istediğiniz her şey için ayrı bir metin modele ihtiyaç duyulur.

güncellendi

Bir sunucudan temiz metin satırlarına akan sesin izometrik illüstrasyonu

Temel noktalar

  • Whisper bir konuşmadan metne modelidir; bir sunucu onu bir uç nokta arkasına sarar.
  • Barındırılan bir uç nokta kiralayabilir, kendi sarmalayıcınızı kendi başınıza barındırabilir veya yerel bir ikili çalıştırabilirsiniz.
  • Bu API yalnızca metindir: transkripsiyondan sonraki adımı yapar, ses adımını değil.
  • İki aşama, OpenAI SDK'sını iki kez kullanarak birkaç satır Python ile bağlanır.

Kısa cevap

Whisper, OpenAI tarafından yayınlanan açık kaynaklı bir konuşma tanıma modelidir. Tek başına bir model dosyası ve bazı çıkarım kodlarıdır. Bir sunucu, uygulamanızın Python işlevlerini doğrudan çağırmak yerine bir ses dosyası gönderip metin alabilmesi için önüne bir HTTP arayüzü koyar.

Çoğu sunucu, OpenAI transkripsiyon uç noktasının yapısını POST /v1/audio/transcriptions taklit eder; bu uç nokta, ses dosyası ve model adını içeren çok parçalı bir yükleme alır. Aynı yapı, aynı istemci kütüphanesinin barındırılan bir hizmetle, kendi makinenizdeki bir konteynerle veya başkasının yazdığı küçük bir sarmalayıcıyla iletişim kurabilmesini sağlar.

  • Girdi: bir ses dosyası, genellikle mp3, wav, m4a veya benzeri.
  • Çıktı: düz metin veya sunucuya bağlı olarak segmentler ve zaman damgaları içeren JSON.
  • Dahil değil: özetler, düzgün bir metne çeviri, eylem öğelerinin çıkarılması. Bunlar bir dil modeli gerektirir.

Bir Whisper sunucusu elde etmenin üç yolu

1. Barındırılan bir uç nokta

OpenAI barındırılan bir transkripsiyon uç noktası sunar ve diğer sağlayıcılar Whisper tabanlı transkripsiyon da satar. Kullanım başı ödeme yaparsınız, donanımı yönetmezsiniz ve sesinizi başkalarının altyapısına gönderirsiniz. Ödeme modelleri sağlayıcılar arasında farklılık gösterir ve konuşma hizmetleri genellikle ses süresine göre ücretlendirme yaptığı için, bir hacme bağlı kalmadan önce mevcut fiyatlandırmalarını kontrol edin.

2. Kendi kendine barındırılan bir sarmalayıcı

Birkaç açık kaynaklı proje, Whisper'ı veya onun yeniden uygulamalarını, OpenAI transkripsiyon yolunu taklit eden bir web sunucusunun içine sarar. Bunu, bir GPU'ya sahip bir makinede Docker'da veya daha yavaş işleme kabul ederseniz CPU üzerinde çalıştırırsınız. Bu, sesin nereye gideceği konusunda size kontrol sağlar. Ayrıca model indirmeleri, güncellemeler, kuyruk yönetimi ve yeniden başlatmalarla ilgili sorumluluğu da size yükler.

3. Yerel bir ikili

whisper.cpp projesi, modelin C ve C++ portudur ve deposu bir örnek HTTP sunucusu içerir. Sıradan dizüstü bilgisayarlarda ve küçük sunucularda çalışır; bu da onu bir prototip veya günde birkaç kayıt transkripsiyon yapan tek bir kullanıcı için iyi bir seçenek yapar. Yüzlerce saatlik toplu işler için, GPU destekli bir hizmet genellikle daha pratiktir.

Sesin nereye gidebileceğine, ayda kaç saat işlediğinize ve hizmeti kimin sürdürdüğüne göre üç soruya göre seçin. Aşağıda açıklanan metin adımı, üçünden herhangi biriyle aynı şekilde çalışır.

Metin LLM API'sinin transkripsiyondan sonra nereye oturduğu

Ham bir Whisper transkripsiyonu, bir metin duvarıdır. Az paragraf ayrımı vardır, konuşmacı adları ayrıca diyarizasyon eklenmedikçe eksiktir ve dolgu kelimeler kalır. Whisper ayrıca ürün adları, jargon ve özel adlarla ilgili hatalar yapar. Neredeyse her gerçek proje, metin üzerinde çalışan ikinci bir aşama ekler.

Tipik ikinci aşama görevleri:

  • Noktalama işaretlerini düzelt, paragraflara böl, yanlış başlangıçları kaldır.
  • Bir görüşmeyi veya dersi birkaç maddeye özetle.
  • JSON olarak kararları, isimleri ve tarihleri gibi yapılandırılmış verileri çıkar.
  • Konuşulan materyali bir makaleye, bir senaryoya veya gösteri notlarına yeniden yaz.
  • Temizlenmiş metni çevir veya yerelleştir.

İşte bu hizmet burada uyar. uncensored adlı bir modele, 100.000 token'lık bir bağlam penceresine ve akışa sahip, OpenAI uyumlu bir metin API'sidir. İki saatlik bir röportaj transkripsiyonu genellikle tek bir istekte sığar, bu da daha küçük bağlam pencerelerinin size dayattığı parçalama mantığını atlayabilirsiniz. Daha uzun materyaller için istek ayrıntıları için hızlı başlangıç dokümanlarına bakın.

Model, yasal yetişkin kullanımı için içerik reddi olmadan cevap verecek şekilde ayarlanmıştır. Bu, transkripsiyon hatları için önemlidir çünkü kaynak ses öngörülemezdir: röportajlar, podcast'ler, kurgu okumaları ve destek aramaları güçlü dil ve zorlu konular içerir. Konuşmacı küfür ettiği için bir transkripsiyonu temizlemeyi reddeden bir model, ödemeli bir transkripsiyon çalışmasını boşa harcar. Tek katı sınır, reşit olmayanlarla ilgili cinsel içerik içeren hiçbir şeyin kabul edilmemesidir.

Çalışan iki aşamalı bir hat

OpenAI Python SDK'sı, farklı temel URL'lerle iki istemci oluşturmanıza olanak tanır. Biri Whisper sunucunuza, diğeri bu API'ye işaret eder. Kendi transkripsiyon hizmetiniz için ortam değişkenlerini ayarlayın; ikinci istemci bu site için temel URL'yi kullanır.

import os
from openai import OpenAI

# Stage 1: any Whisper-compatible transcription server you run or rent.
stt = OpenAI(base_url=os.environ["STT_BASE_URL"], api_key=os.environ["STT_KEY"])

# Stage 2: the text model.
llm = OpenAI(base_url="https://api.whisperapis.com/v1", api_key=os.environ["LLM_KEY"])

with open("call.mp3", "rb") as f:
    transcript = stt.audio.transcriptions.create(
        model=os.environ["STT_MODEL"],  # the model name your server expects
        file=f,
    )

resp = llm.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "Clean up this transcript: fix punctuation, keep every statement, no commentary."},
        {"role": "user", "content": transcript.text},
    ],
    temperature=0.2,
)
print(resp.choices[0].message.content)

Yanlış anlaşılması kolay olan iki ayrıntı vardır. Birincisi, transkripsiyon model adı sunucunuzun beklediği şeydir, bu yüzden burada bir ortam değişkeninden gelir. İkincisi, metin API'si için anahtar, konuşma hizmeti için sahip olduğunuz herhangi bir anahtardan ayrıdır; her biri yalnızca kendi ana bilgisayarını kimlik doğrular.

Bir kabuk tercih ediyorsanız, metin adımı düz bir sohbet tamamlama isteğidir:

curl https://api.whisperapis.com/v1/chat/completions \
  -H "Authorization: Bearer $LLM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "user", "content": "Summarize this transcript in five bullet points: ..."}
    ]
  }'

Kimlik doğrulama, Authorization başlığında bir Bearer anahtarıdır ve uç noktalar POST /v1/chat/completions ve GET /v1/models'dir. Bir anahtarı API anahtarı sayfasından alabilirsiniz; yeni hesaplar 7 gün boyunca geçerli ve kart olmadan orada tek tıkla $0,50 deneme kredisi talep edebilir.

Pratikte bozulan şeyler

Büyük ses dosyaları

Çoğu Whisper sunucusu yükleme boyutunu sınırlar ve uzun kayıtlar bir istek sırasında zaman aşımına uğrayabilir. ffmpeg gibi bir araçla sesi on ila otuz dakikalık parçalara bölün, her parçayı transkripsiyon yapın, ardından metni birleştirin. Metin API'si 100.000 token'a kadar kabul ettiği için parçaları birleştirip tek bir istek olarak gönderebilirsiniz. Bu API'deki istek gövdesi sınırı 8 MB'tır; bu, herhangi bir transkripsiyon için gerekenlerden çok daha fazlasıdır.

Hız ve eşzamanlılık sınırları

Tam bir anahtar 8 eşzamanlı istek ve dakika başına 300 isteklere izin verir; deneme anahtarı 2 ve 60'a izin verir. Çok sayıda işçi ile bir kuyruk çalıştırıyorsanız, onu anahtarınızın eşzamanlılığına kadar sınırlayın. Üstüne gitmek HTTP 429 döndürür, dakika başı istekler için rate_limited kodu veya aynı anda çok fazla için concurrency kodu ile. Akışlı bir istek, akış bitene kadar yuvasını korur, bu yüzden takılan bir istemci beklediğinizden daha uzun bir süre için bir yuva bloke edebilir. Geri çekilin ve yeniden deneyin; yanıt Retry-After: 5 başlığını taşıyorsa, o kadar bekleyin.

LLM'nin göremeyeceği transkripsiyon hataları

Whisper yanlış kelimeyi duyduyorsa, metin modeli yalnızca yanlış kelimeyi görür. Hatta hatayı bile düzeltebilir ve onu kasıtlı gibi gösterebilir. İsimler ve terimler için bir sözlük sistem istemine koyun ve modele tahmin etmek yerine belirsiz pasajları işaretlemesini söyleyin. Kritik materyaller için, orijinal transkripti temizlenmiş olanın yanında tutun.

Hayali dolgu

Whisper bazen sessizlik veya müzik sırasında uydurma metin üretir. Göndermeden önce sessizliği kesin ve ikinci aşamadan, yerinde olmayan cümleleri işaretlemesini isteyin. Düşük bir temperature (örneğin 0.2), temizleme işlemini kaynağa yakın tutar.

Bu API ne yapmaz

Ses transkripsiyonu yapmaz. Ses girişi yok, konuşma çıktısı yok, görüntü veya video oluşturma yok, gömme yok ve ince ayar yok. Bağımsız bir sağlayıcı tarafından yürütülen, bir sohbet tamamlama uç noktasının arkasında barındırılan bir metin modelidir ve OpenAI'nin veya başka bir model satıcısının resmi API'si değildir. Projenizin her iki yarıya da ihtiyacı varsa, ilk aşama için bir konuşma sunucusuna ve ikinci aşama için bu hizmete ihtiyacınız vardır.

İstemler eğitim için kullanılmaz. Bu, konuşma sağlayıcınızın sesle ne yaptığından ayrıdır, bu nedenle sağlayıcının kendi şartlarını okuyun.

Maliyet planlaması için, metin tarafı ön ödemeli krediden her milyon girdi token başına $0,15 ve her milyon çıktı token başına $0,50 token başına faturalandırılır. Bu kredi asla sona ermez. fiyatlandırma sayfası bakiye yükleme boyutlarını ve bonusları listeler. Başarısız veya reddedilen istekler için ücret alınmaz; bu da tekrar döngülerinin size maliyetini artırmamasını sağlar.

Başlamak için mantıklı bir yol

  1. Barındırılan veya yerel bir Whisper uyumlu bir sunucu çalıştırın ve bir dakikalık dosya için metin döndürdüğünden emin olun.
  2. Bir hesap oluşturun, deneme kredisi talep edin ve yukarıdaki curl komutunu kısa bir transkriptle çalıştırın.
  3. Python betiğini kullanarak iki istemciyi, istediğiniz temizleme stili için kendi sistem isteminizi kullanarak birbirine bağlayın.
  4. Tek dosya akışı çalışana kadar yalnızca bir kuyruk ekleyin ve onu anahtarınızın eşzamanlılığına göre boyutlandırın.

Çabanın çoğu, bağlantı koduna değil, isteme ve ses işlemeye harcanır. Ölçeklendirmeden önce, iyi bildiğiniz bir kayıtlarla başlayın, çıktıyı duyduklarınızla karşılaştırın ve talimatları ayarlayın.

Sorular ve cevaplar

Bir Whisper API sunucusu, OpenAI API'si ile aynı mı?

Hayır. Whisper bir modeldir ve sunucu, onu HTTP üzerinden sunan herhangi bir programdır. OpenAI barındırılan bir sürüm çalıştırır ve birçok kişi aynı transkripsiyon rotasını kopyalayan açık kaynaklı araçlarla kendi sunucularını çalıştırır.

Bu API ses dosyalarını transkribe edebilir mi?

Hayır. Sadece metin kabul eder. Ses adımı için bir konuşma hizmeti veya kendi Whisper sunucunuzu kullanın, ardından transkripti buraya gönderin.

Metin adımı için hangi model adını kullanmalıyım?

Model kimliği olarak uncensored'ı, base URL olarak https://api.whisperapis.com/v1'i ve anahtarınızı Bearer token olarak kullanın.

Ne kadar uzun bir transkript gönderebilirim?

Bağlam penceresi 100.000 token'dır ve hem istem hem de tamamlama işlemini kapsar. Bu, tek bir istekte birçok çok saatlik kaydı karşılamak için yeterlidir.

Denemek için bir kart gerekiyor mu?

Hayır. Yeni kullanıcılar, kayıt olduktan sonra API anahtarı sayfasında tek bir tıklama ile $0,50 deneme kredisi alabilir, kart gerekmez.

Anahtarınız tek bir formun uzağında

Bir hesap oluşturun, anahtarı kopyalayın ve base URL'yi değiştirin. Kurulum bu kadar basit.

API anahtarı al