DEV Community

Cover image for Fish Audio S2 API Kullanımı: Apidog ile Eksiksiz Rehber
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

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 hızlı ve verimli kullanmak için, istek gönderme, referans yönetimi ve birim testleri uygulamalarında Apidog ile uç noktaları kolayca keşfedebilir, belgeler oluşturabilir ve entegrasyonunuzu doğrulayabilirsiniz.

Apidog'u bugün deneyin


Giriş

Yapay zeka ile üretilen ses artık gerçekçiliğin sınırlarını zorluyor. Modern metin-konuşma (TTS) modelleri, robotik olmaktan çıktı; fısıldayabiliyor, gülebiliyor ve cümle içinde tonlama yapabiliyor. Fish Audio S2 API, 10 milyon saatten fazla çok dilli ses verisiyle eğitilmiş, 4 milyar parametreli bir modelle insan sesinden ayırt edilemeyen konuşmalar üretiyor.

Bir podcast otomasyonu, etkileşimli asistan veya gerçek zamanlı dublaj hattı geliştiriyorsanız, Fish Audio S2 API'yi entegre etmek için yalnızca POST isteği göndermek yetmez. Kimlik doğrulama, referans ses yönetimi, akış davranışı ve güvenilir birim testleri geliştirme konularında doğru adımları takip etmelisiniz.

💡 İlk Fish Audio S2 API çağrınızı yapmadan önce Apidog'u ücretsiz indirin. Duygu etiketlerini, akış parçacıklarını, ses klonlama yüklerini ve ikili ses yanıtlarını görsel olarak test edin; kod yazmanıza gerek yok. TTS entegrasyonunuzun güvenilirliğini arttırmak için hızlıca sahte yanıtlar oluşturun, doğrulayın ve doğrudan dinleyin.

Fish Audio S2 API Nedir?

Fish Audio S2 API, Çift Otoregresif (Dual-AR) mimarisi ile 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 ekseninde yavaş AR) kod defteri üretiminden (400 milyon parametre, derinlik ekseninde hızlı AR) ayrı tuttuğu için tek bir NVIDIA H200 üzerinde 0.195 gerçek zaman faktörü ile yüksek kaliteli sentez sağlar.

Fish Audio S2 API Temel Yetenekleri:

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

Yerel dağıtımdan sonra Fish Audio S2 API'nin temel URL'si http://127.0.0.1:8080'dir ve tüm uç noktalar /v1/ yoluyla erişilir.


Fish Audio S2 API ve Apidog ile Başlarken

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

Fish Audio S2 API çağrısı yapabilmek için öncelikle:

  • Fish Speech S2-Pro sunucusunu dağıtıp başlatmalısınız.
  • İkili ses yanıtlarını işleyebilen bir API istemcisiniz olmalı.

Sunucuyu başlatmak için:

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
Enter fullscreen mode Exit fullscreen mode
  • --compile: torch.compile ile inference süresini ciddi oranda azaltır.
  • --half: GPU bellek kullanımını azaltmak için FP16 modunu etkinleştirir.

Sunucu açıldıktan sonra sağlık kontrolü için:

curl http://127.0.0.1:8080/v1/health
# {"status":"ok"}
Enter fullscreen mode Exit fullscreen mode

Apidog'da Fish Audio S2 API'yi Kurma

  1. Apidog'u indirin ve yeni bir HTTP projesi oluşturun.
  2. Temel URL olarak http://127.0.0.1:8080'i Ortamlar bölümüne ekleyin.
  3. Global başlık olarak aşağıdakini ayarlayın:
Authorization: Bearer YOUR_API_KEY
Enter fullscreen mode Exit fullscreen mode

Böylece her istek bu başlığı otomatik olarak kullanır. Birden fazla ortam (geliştirme, hazırlık, prod) yönetiyorsanız oldukça pratiktir.


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

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

Ana uç nokta: POST /v1/tts. Apidog'da yeni bir istek oluşturun, POST seçin ve aşağıdaki gövdeyi ekleyin:

{
  "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
}
Enter fullscreen mode Exit fullscreen mode

Tüm Fish Audio S2 API TTS parametreleri:

Parametre Tip Varsayılan Açıklama
text string gerekli Sentezlenecek metin
format string "wav" Çıkış ses formatı: wav, mp3, pcm

Gönder'e tıkladığınızda, Fish Audio S2 API ham ses baytları döndürür. Apidog, audio/wav yanıtını algılar ve satır içi ses oynatıcı gösterir; ek kod gerekmeden çıktıyı dinleyebilirsiniz.


Fish Audio S2 API ile Ses Klonlama

Apidog Üzerinden Referans Ses Yükleme

Fish Audio S2 API'de, TTS isteğinde references alanıyla sıfır atışlı ses klonlamayı doğrudan kullanabilirsiniz. Base64 kodlu bir ses klibini ve transkriptini API'ye iletmeniz yeterli.

Referans eklemek için:

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

Apidog'da, İkili (Binary) veya Form Data gövde tipini seçip dosyanızı kolayca yükleyebilirsiniz. API'nin cevabı:

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

Artık TTS çağrılarınızda bu referansı kullanabilirsiniz:

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

Apidog'un Referans Yönetimi panelinde, referans ID'lerini kolayca değiştirip farklı klonlanmış sesleri test edebilirsiniz.


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

Neden Birim Testleri Gerekli?

Fish Audio S2 API entegrasyonunda; silinmiş referans ID'leri, geçersiz parametreler, akış yönetimi hataları veya format uyuşmazlıkları gibi görünmeyen hatalar olabilir. Otomatik birim testleriyle bu tür sorunları erkenden tespit edebilirsiniz.

Python ile Fish Audio S2 API Birim Testleri

Aşağıda, pytest ve httpx kullanarak temel akışları kapsayan bir birim test paketi örneği bulabilirsiniz:

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,
        )
Enter fullscreen mode Exit fullscreen mode

Testleri çalıştırmak için:

pytest test_fish_audio_s2_api.py -v
Enter fullscreen mode Exit fullscreen mode

Apidog ile Birim Testleri Otomatikleştirme

Python dışında, Apidog'un Test Senaryoları özelliğiyle kod yazmadan görsel olarak birim testleri oluşturabilir ve çalıştırabilirsiniz:

  1. Fish Audio S2 API koleksiyonunuzu açın.
  2. Test Senaryoları > Yeni Senaryo'ya tıklayın.
  3. Sırasıyla sağlık kontrolü, TTS isteği, referans ekleme ve referans listeleme isteklerini ekleyin.
  4. TTS isteği için Doğrulamalar sekmesinde:
    • Yanıt durumu = 200
    • Yanıt başlığı content-type içinde audio içeriyor
    • Yanıt süresi < 30000ms
  5. Çalıştır'a tıklayarak tüm test dizisini başlatın.

Apidog, her doğrulama için yanıt süresi ve rapor oluşturur. Bu raporları dışa aktarabilir ya da CI süreçlerine entegre edebilirsiniz.


Gelişmiş Fish Audio S2 API Özellikleri

Gerçek Zamanlı Ses Akışı

Canlı oynatma senaryolarında streaming özelliğini kullanarak sesin anında gelmesini sağlayabilirsiniz:

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)
Enter fullscreen mode Exit fullscreen mode

Bu yöntemle tam sentez bitmeden ses verisi almaya başlayabilirsiniz. Özellikle düşük gecikmeli uygulamalar için idealdir.

Satır İçi Duygu Kontrolü

Duygu ve tonlama için, metin içinde köşeli parantezli etiketler kullanın:

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

Ekstra parametreye gerek yoktur. Örnek etiketler: [laugh], [cough], [pitch up], [professional broadcast tone], [whisper in small voice].


Sonuç

Fish Audio S2 API, REST arayüzü ile tam anlamıyla üretim düzeyinde bir TTS çözümü sunar. Temel sentezden, sıfır atış ses klonlamaya, gerçek zamanlı akıştan duygu kontrolüne kadar tüm iş akışlarını hızlıca uygulayabilirsiniz. Entegrasyonunuzu güvenli ve sürdürülebilir kılmak için:

  • Örnekleme parametrelerini (temperature, top_p, repetition_penalty) doğru ayarlayın,
  • Referans ses yönetimini otomatize edin,
  • Birim test paketinizi sürekli güncel tutun.

Apidog ile:

  • İlk API isteğinizi birkaç dakikada atın,
  • İkili ses yanıtlarını doğrudan dinleyin,
  • Otomatik birim testleri ve API dokümantasyonunu zahmetsizce oluşturun.

Apidog'u ücretsiz indirin ve Fish Audio S2 API entegrasyonunuzu hemen test etmeye başlayın.


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ı ile ses klonlama, akış, duygu kontrolü ve 50+ dil desteği sağlar.

Nasıl kimlik doğrulama yapılır?

Her istek başlığına Authorization: Bearer YOUR_API_KEY ekleyin. Anahtar, sunucu başlatılırken --api-key ile tanımlanır. Apidog, bu anahtarı ortamda saklar ve tüm isteklere uygular.

Kod yazmadan birim test yapılabilir mi?

Evet. Apidog'un Test Senaryoları ile herhangi bir Fish Audio S2 API uç noktasını kodsuz olarak test edebilirsiniz. Doğrulamalar tanımlanır ve Apidog bunları ister manuel ister CI ile otomatik çalıştırır.

Desteklenen ses formatları neler?

Fish Audio S2 API, WAV, MP3 ve PCM formatlarını destekler. TTS isteğinde format alanı ile seçebilirsiniz; varsayılan wav'dır.

Ses klonlama nasıl çalışır?

10–30 saniyelik referans ses ve transkriptini POST /v1/references/add ile yükleyin. Sonrasında reference_id ile TTS isteği atabilir, klonlanmış ses çıktısı alırsınız.

Gerçek zaman faktörü nedir?

NVIDIA H200 üzerinde Fish Audio S2 API, akış açıkken 0.195 RTF'ye ulaşır; saniyede yaklaşık 5 saniye ses üretir. İlk sesin gelme süresi yaklaşık 100 ms'dir.

Apidog'da ses yanıtı nasıl test edilir?

Fish Audio S2 API ikili ses döndürdüğünde, Apidog satır içi bir ses oynatıcı oluşturur. Dosyayı indirmeden doğrudan yanıt panelinde dinleyebilir, başlıkları ve doğrulamaları kontrol edebilirsiniz.


Fish Audio S2 API ile ilgili daha fazla pratik örnek ve entegrasyon için Apidog'u keşfetmeyi unutmayın!

Top comments (0)