Fish Audio S2 API Kullanımı: Apidog ile Eksiksiz Rehber

Herve Kom

Herve Kom

18 March 2026

Fish Audio S2 API Kullanımı: Apidog ile Eksiksiz Rehber

Fish Audio S2 API

Fish Audio S2 API, 10 milyon saatlik ses üzerinde eğitilmiş 4 milyar parametreli bir model tarafından desteklenen, üretim düzeyinde bir metin-konuşma REST API'sidir. Ses klonlama, akış ve 50'den fazla dili destekler. Fish Audio S2 API'sini istek gönderme, referansları yönetme ve birim testleri çalıştırma dahil olmak üzere verimli bir şekilde kullanmak için Apidog, her uç noktayı keşfetmenin, belgelemenin ve doğrulamanın en hızlı yoludur.

Giriş

Yapay zeka tarafından üretilen ses bir eşiği aştı. Modern metin-konuşma (TTS) modelleri artık robot gibi değil; fısıldıyor, gülüyor ve cümle ortasında ton değiştiriyor. Fish Audio S2 API, bu değişimin ön saflarında yer alıyor: 10 milyondan fazla saat çok dilli ses üzerinde eğitilmiş, insan kaydından ayırt edilemez konuşma üretebilen 4 milyar parametreli bir model.

Bir podcast otomasyon aracı, etkileşimli bir sesli asistan veya gerçek zamanlı bir dublaj hattı oluşturuyor olun, Fish Audio S2 API'sini sisteminize entegre etmek sadece tek bir POST isteğinden fazlasını gerektirir. Kimlik doğrulamayı, referans ses yönetimini, akış davranışını ve kritik olarak, entegrasyonunuzun üretimde sessizce bozulmaması için güvenilir birim testleri yazmayı anlamanız gerekir.

💡
İlk Fish Audio S2 API çağrınızdan önce Apidog'u ücretsiz indirin. Duygu etiketlerini, akış parçacıklarını, ses klonlama yüklerini ve ikili ses yanıtlarını saniyeler içinde görsel olarak test edin; kod gerekmez. TTS entegrasyonunuzun ilk günden itibaren mükemmel çalışması için sahte yanıtlar oluşturun, doğrulayın ve doğrudan dinleyin.
düğme

Fish Audio S2 API Nedir?

Fish Audio S2 API, Çift Otoregresif (Dual-AR) mimarisi etrafında inşa edilmiş açık kaynaklı bir TTS sistemi olan Fish Speech S2-Pro'nun HTTP arayüzüdür. Model, anlamsal üretimi (4 milyar parametre, zaman ekseni boyunca yavaş AR) artık kod defteri üretiminden (400 milyon parametre, derinlik ekseni boyunca hızlı AR) ayırarak tek bir NVIDIA H200 üzerinde 0.195 gerçek zaman faktörü ile yüksek kaliteli sentez sağlar.

Fish Audio S2 API'sinin Temel Yetenekleri:

ÖzellikDetay
Diller~50 (İngilizce, Çince, Japonca, Korece, Arapça, Fransızca, Almanca ve daha fazlası)
Ses klonlama10–30 saniyelik referans ses, ince ayar gerektirmez
Satır İçi Duygu KontrolüDoğal dil etiketleri: [laugh], [whispers], [super happy]
Çoklu Konuşmacı ÜretimiYerel <|speaker:i|> jeton desteği
Akış`"streaming": true` aracılığıyla gerçek zamanlı parçalı ses
Çıkış formatlarıWAV, MP3, PCM
Kimlik DoğrulamaTaşıyıcı jeton (Authorization: Bearer YOUR_API_KEY)

Yerel dağıtımdan sonra Fish Audio S2 API temel URL'si `http://127.0.0.1:8080`'dir. Tüm uç noktalar `/v1/` ad alanı altına düşer.

Fish Audio S2 API ve Apidog ile Başlarken

Fish Audio S2 API için Ön Koşullar

İlk Fish Audio S2 API çağrınızı yapmadan önce iki şeyin çalışır durumda olması gerekir: dağıtılmış bir Fish Speech S2-Pro sunucusu ve ikili ses yanıtlarını işleyebilen bir API istemcisi.

Fish Audio S2 API sunucusunu başlatın:

python tools/api_server.py \
  --llama-checkpoint-path checkpoints/s2-pro \
  --decoder-checkpoint-path checkpoints/s2-pro/codec.pth \
  --listen 0.0.0.0:8080 \
  --compile \
  --half \
  --api-key YOUR_API_KEY \
  --workers 4

`--compile` bayrağı `torch.compile` optimizasyonunu etkinleştirir; bu, çıkarım gecikmesini yaklaşık 10 kat azaltır ancak ilk başlatmada bir kerelik bir ısınma maliyeti ekler. `--half` bayrağı, azaltılmış GPU bellek kullanımı için FP16'yı etkinleştirir.

Sunucu çalışır duruma geldiğinde, bir sağlık kontrolü ile doğrulayın:

curl http://127.0.0.1:8080/v1/health
# {"status":"ok"}

Apidog'da Fish Audio S2 API'sini Kurma

Apidog'u ücretsiz indirin ve yeni bir HTTP projesi oluşturun. Temel URL `http://127.0.0.1:8080`'i Ortamlar altına ekleyin. Ardından global bir başlık ayarlayın:

Authorization: Bearer YOUR_API_KEY

Apidog bunu ortam düzeyinde saklar, bu nedenle gönderdiğiniz her Fish Audio S2 API isteği jetonu otomatik olarak miras alır; istek başına manuel başlık yapıştırma gerekmez. Bu, geçiş yapabileceğiniz birden fazla Fish Audio S2 API ortamınız (yerel geliştirme, hazırlık, üretim) olduğunda özellikle kullanışlıdır.

Apidog'da İlk Fish Audio S2 API İsteğinizi Yapma

Fish Audio S2 API Metin-Konuşma Uç Noktasını Test Etme

Birincil Fish Audio S2 API uç noktası `POST /v1/tts`'dir. Apidog'da bu URL ile yeni bir istek oluşturun, yöntemi POST olarak ayarlayın ve aşağıdaki JSON gövdesini kullanın:

{
  "text": "Hello! This is a test of the Fish Audio S2 API.",
  "format": "wav",
  "streaming": false,
  "temperature": 0.8,
  "top_p": 0.8,
  "repetition_penalty": 1.1,
  "max_new_tokens": 1024
}

Tam Fish Audio S2 API TTS istek şeması:

ParametreTipVarsayılanAçıklama
textstringgerekliSentezlenecek metin
formatstring"wav"Çıkış ses formatı: wav, mp3, pcm
chunk_lengthint200Sentez parçası boyutu (100–300)
seedintnullTekrarlanabilir çıktı için tohumu sabitle
streamingboolfalseSesi gerçek zamanlı parçalar halinde döndür
max_new_tokensint1024Üretilecek maksimum jeton sayısı
temperaturefloat0.8Örnekleme rastgeleliği (0.1–1.0)
top_pfloat0.8Çekirdek örnekleme eşiği (0.1–1.0)
repetition_penaltyfloat1.1Tekrarlayan dizileri cezalandır (0.9–2.0)
use_memory_cachestring"off"Bellekte referans kodlamayı önbelleğe al

Apidog'da **Gönder**'e tıklayın. Fish Audio S2 API ham ses baytları döndürür. Apidog, `audio/wav` yanıtını otomatik olarak algılar ve arayüzde doğrudan dinleyebileceğiniz satır içi bir ses oynatıcı oluşturur; tek bir istemci kodu satırı yazmanıza gerek kalmaz.

Fish Audio S2 API ile Ses Klonlama

Apidog Aracılığıyla Fish Audio S2 API'ye Referans Ses Yükleme

Fish Audio S2 API, TTS isteğindeki `references` alanı aracılığıyla sıfır atışlı ses klonlamayı destekler. Base64 kodlu bir ses klibini transkriptiyle birlikte iletirsiniz ve model bu sesi çıktı için klonlar.

İlk olarak, `POST /v1/references/add` kullanarak adlandırılmış bir referans yükleyin:

{
  "id": "my-voice-clone",
  "text": "This is the reference transcription matching the audio.",
  "audio": "<base64-encoded-wav-bytes>"
}

Apidog'da, ses dosyasını doğrudan yüklemek için **İkili (Binary)** gövde tipini kullanın veya dosya ve metin alanlarını birlikte iletmek için **Form Verileri (Form Data)**'ne geçin. Fish Audio S2 API şunları döndürür:

{
  "success": true,
  "message": "Reference added successfully",
  "reference_id": "my-voice-clone"
}

Şimdi bunu `reference_id` kullanarak TTS çağrılarınızda referans alın:

{
  "text": "This sentence will be spoken in the cloned voice.",
  "reference_id": "my-voice-clone",
  "format": "mp3"
}

Apidog'un **Referans Yönetimi** paneli (Koleksiyonlar altında), bu isteği yeniden kullanılabilir bir şablon olarak kaydetmenizi sağlar, böylece aynı senaryoya karşı birden fazla klonlanmış sesi test ederken `reference_id` değerini değiştirerek sesleri kolayca değiştirebilirsiniz.

Fish Audio S2 API Entegrasyonları Nasıl Birim Test Edilir?

Fish Audio S2 API için Birim Testleri Neden Önemlidir?

Bir Fish Audio S2 API entegrasyonu, otomatik birim testleri olmadan görünmez olan çeşitli hata modlarına sahiptir: artık var olmayan bir referans kimliği, aralık dışı bir `temperature` değeri, yanlış tüketilen bir akış yanıtı veya bir ses formatı uyuşmazlığı. Birim testleri, bu regresyonları kullanıcılara ulaşmadan önce yakalar.

Python ile Fish Audio S2 API için Birim Testleri Yazma

İşte `pytest` ve `httpx` kullanarak temel Fish Audio S2 API akışlarını kapsayan bir Python birim test paketi:

import pytest
import httpx
import base64

BASE_URL = "http://127.0.0.1:8080"
API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}


class TestFishAudioS2API:
    """Fish Audio S2 API uç noktaları için birim testleri."""

    def test_health_check(self):
        """Birim testi: Fish Audio S2 API sağlık uç noktası 'ok' döndürüyor."""
        response = httpx.get(f"{BASE_URL}/v1/health", headers=HEADERS)
        assert response.status_code == 200
        assert response.json()["status"] == "ok"

    def test_tts_basic_request(self):
        """Birim testi: Fish Audio S2 API TTS ikili ses döndürüyor."""
        payload = {
            "text": "Unit test: verifying Fish Audio S2 API TTS output.",
            "format": "wav",
            "seed": 42,  # Deterministik birim testi çıktısı için sabit tohum
        }
        response = httpx.post(
            f"{BASE_URL}/v1/tts",
            json=payload,
            headers=HEADERS,
            timeout=60,
        )
        assert response.status_code == 200
        assert response.headers["content-type"] == "audio/wav"
        assert len(response.content) > 1000  # Minimum geçerli ses boyutu

    def test_tts_invalid_temperature_raises_error(self):
        """Birim testi: Fish Audio S2 API, aralık dışı sıcaklığı reddeder."""
        payload = {"text": "test", "temperature": 99.0}
        response = httpx.post(
            f"{BASE_URL}/v1/tts",
            json=payload,
            headers=HEADERS,
            timeout=30,
        )
        assert response.status_code == 422  # Doğrulama hatası bekleniyor

    def test_reference_add_and_list(self):
        """Birim testi: Fish Audio S2 API referans yönetimi uç noktaları."""
        # Bir referans ekle
        with open("test_reference.wav", "rb") as f:
            audio_b64 = base64.b64encode(f.read()).decode()

        add_response = httpx.post(
            f"{BASE_URL}/v1/references/add",
            json={
                "id": "unit-test-voice",
                "text": "This is a unit test reference audio.",
                "audio": audio_b64,
            },
            headers=HEADERS,
        )
        assert add_response.json()["success"] is True

        # Referansın listede göründüğünü doğrula
        list_response = httpx.get(
            f"{BASE_URL}/v1/references/list", headers=HEADERS
        )
        assert "unit-test-voice" in list_response.json()["reference_ids"]

        # Temizle: birim testinden sonra referansı sil
        httpx.request(
            "DELETE",
            f"{BASE_URL}/v1/references/delete",
            json={"reference_id": "unit-test-voice"},
            headers=HEADERS,
        )

Birim test paketini şununla çalıştırın:

pytest test_fish_audio_s2_api.py -v

Apidog ile Fish Audio S2 API Birim Testlerini Çalıştırma

Python birim testlerinin ötesinde, Apidog'un yerleşik bir **Test Senaryoları** (otomatik test) özelliği vardır ve bu özellik aynı Fish Audio S2 API kontrollerini yerel bir Python ortamı olmadan çalıştırır. Apidog'da:

  1. Fish Audio S2 API koleksiyonunuzu açın
  2. **Test Senaryoları** → **Yeni Senaryo**'ya tıklayın
  3. İstekleri ekleyin: sağlık kontrolü → TTS isteği → referans ekle → referans listesi
  4. TTS isteği için **Doğrulamalar** sekmesinde şunları ekleyin:
  1. Tüm birim testi dizisini yürütmek için **Çalıştır**'a tıklayın

Apidog, her Fish Audio S2 API doğrulaması için yanıt süreleri ve fark görünümleri ile birlikte bir geçme/kalma raporu oluşturur. Bu raporu dışa aktarabilir veya bir CI tetikleyicisi üzerinde çalışacak şekilde planlayabilirsiniz, böylece Apidog'u herhangi bir test framework'ü başlangıç kodu yazmadan Fish Audio S2 API'niz için birim test çalıştırıcısı haline getirebilirsiniz.

Gelişmiş Fish Audio S2 API Özellikleri

Fish Audio S2 API'den Ses Akışı

Gerçek zamanlı oynatma uygulamaları için Fish Audio S2 API, parçalı akışı destekler. İstek gövdenizde `\"streaming\": true` ayarlayın:

import httpx

with httpx.stream(
    "POST",
    "http://127.0.0.1:8080/v1/tts",
    json={
        "text": "Streaming audio from the Fish Audio S2 API in real time.",
        "format": "wav",
        "streaming": True,
    },
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    timeout=None,
) as response:
    with open("streamed_output.wav", "wb") as audio_file:
        for chunk in response.iter_bytes(chunk_size=4096):
            audio_file.write(chunk)

Fish Audio S2 API, tam sentez tamamlanmadan önce ses baytlarını döndürmeye başlar; ilk sesin gelme süresi yaklaşık 100 ms'dir. Bu, kullanıcının anında geri bildirim beklediği canlı ses uygulamaları için uygulanabilir hale getirir.

Fish Audio S2 API Aracılığıyla Satır İçi Duygu Kontrolü

Fish Audio S2 API, doğal dil duygu etiketlerini doğrudan `text` alanında iletir:

{
  "text": "[whispers] The secret is hidden here. [super happy] I found it!",
  "format": "wav"
}

Özel bir parametreye gerek yoktur; model, köşeli parantez içindeki etiketleri prozodi talimatları olarak yorumlar. Fish Speech kaynağından geçerli etiket örnekleri: `[laugh]`, `[cough]`, `[pitch up]`, `[professional broadcast tone]`, `[whisper in small voice]`.

Sonuç

Fish Audio S2 API, temiz bir REST arayüzü aracılığıyla gerçekten üretim düzeyinde bir TTS motoru sunar. Temel sentezden sıfır atışlı ses klonlamaya ve gerçek zamanlı akışa kadar altı uç nokta, bir geliştiricinin ihtiyaç duyduğu tüm ses üretimi iş akışlarını kapsar. Güvenilir bir entegrasyonun anahtarları şunlardır: doğru örnekleme parametrelerini (`temperature`, `top_p`, `repetition_penalty`) ayarlamak, referans ses yaşam döngüsünü doğru yönetmek ve her uç noktanın sözleşmesini doğrulayan bir birim test paketi sürdürmektir.

Apidog öğrenme eğrisini önemli ölçüde kısaltır. İlk Fish Audio S2 API isteğinizi iki dakikadan kısa sürede göndermek, ikili ses yanıtlarını doğrudan dinlemek, kopyala-yapıştır istemci kodu oluşturmak ve bir test framework'ü yapılandırmadan her Fish Audio S2 API uç noktasına karşı otomatik birim testleri çalıştırmak için kullanın. API spesifikasyonunu ekibinizle paylaşmaya veya Fish Audio S2 API entegrasyonunu paydaşlar için belgelemeye hazır olduğunuzda, Apidog'un otomatik olarak oluşturulan belgeleri her şeyi senkronize tutar.

Apidog'u ücretsiz indirin ve bugün test etmeye başlamak için Fish Audio S2 API koleksiyonunu içe aktarın.

düğme

SSS

Fish Audio S2 API nedir? Fish Audio S2 API, 10 milyon saatlik ses üzerinde eğitilmiş 4 milyar parametreli bir metin-konuşma modeli olan Fish Speech S2-Pro'nun REST arayüzüdür. `/v1/` altındaki HTTP uç noktaları aracılığıyla ses klonlama, akış, duygu kontrolü ve 50'den fazla dili destekler.

Fish Audio S2 API ile nasıl kimlik doğrulanır? Her istek başlığında bir `Bearer` jetonu gönderin: `Authorization: Bearer YOUR_API_KEY`. API anahtarı, `--api-key` bayrağı aracılığıyla sunucu başlatılırken yapılandırılır. Apidog, bu jetonu ortam düzeyinde saklamanıza olanak tanır, böylece tüm Fish Audio S2 API isteklerine otomatik olarak uygulanır.

Fish Audio S2 API entegrasyonlarını kod yazmadan birim test edebilir miyim? Evet. Apidog'un Test Senaryoları özelliği, herhangi bir Fish Audio S2 API uç noktasına karşı görsel bir arayüz aracılığıyla birim testleri oluşturmanıza ve çalıştırmanıza olanak tanır. Doğrulamaları (durum kodu, yanıt süresi, başlık değerleri) tanımlarsınız ve Apidog bunları talep üzerine veya bir CI programına göre yürütür; test framework'ü kurulumu gerekmez.

Fish Audio S2 API hangi ses formatlarını destekler? Fish Audio S2 API, sesi WAV, MP3 veya PCM formatlarında döndürür. TTS istek gövdenizdeki `\"format\"` alanı ile formatı belirtin. WAV varsayılandır.

Fish Audio S2 API'de ses klonlama nasıl çalışır? 10–30 saniyelik bir referans ses klibini ve transkriptini `POST /v1/references/add` adresine yükleyin. Ardından `\"reference_id\"` aracılığıyla referans kimliğini herhangi bir TTS isteğine iletin. Fish Audio S2 API, bu sesi herhangi bir ince ayar veya ek model eğitimi olmaksızın klonlar.

Fish Audio S2 API'nin gerçek zaman faktörü nedir? Tek bir NVIDIA H200 üzerinde, Fish Audio S2 API, akış etkinleştirildiğinde 0.195 RTF (gerçek zaman faktörü) elde eder, bu da saniyede yaklaşık 5 saniye ses ürettiği anlamına gelir. İlk sesin gelme süresi yaklaşık 100 ms'dir.

Apidog'da Fish Audio S2 API yanıtlarını nasıl test ederim? Fish Audio S2 API ikili ses döndürdüğünde, Apidog otomatik olarak satır içi bir ses oynatıcı oluşturur. Çıktıyı doğrulamak için dosyayı yerel olarak kaydetmenize gerek kalmaz; aynı Apidog istek panelinden dinleyebilir, yanıt başlıklarını kontrol edebilir ve doğrulamalar ekleyebilirsiniz.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin