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.
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
-
--compile:torch.compileile 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"}
Apidog'da Fish Audio S2 API'yi Kurma
- Apidog'u indirin ve yeni bir HTTP projesi oluşturun.
- Temel URL olarak
http://127.0.0.1:8080'i Ortamlar bölümüne ekleyin. - Global başlık olarak aşağıdakini ayarlayın:
Authorization: Bearer YOUR_API_KEY
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
}
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>"
}
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"
}
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"
}
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,
)
Testleri çalıştırmak için:
pytest test_fish_audio_s2_api.py -v
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:
- Fish Audio S2 API koleksiyonunuzu açın.
- Test Senaryoları > Yeni Senaryo'ya tıklayın.
- Sırasıyla sağlık kontrolü, TTS isteği, referans ekleme ve referans listeleme isteklerini ekleyin.
- TTS isteği için Doğrulamalar sekmesinde:
- Yanıt durumu =
200 - Yanıt başlığı
content-typeiçindeaudioiçeriyor - Yanıt süresi <
30000ms
- Yanıt durumu =
- Ç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)
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"
}
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.
Top comments (0)