Fish Audio S2 API เป็น REST API สำหรับ Text-to-Speech ระดับ Production ขับเคลื่อนด้วยโมเดล 4 พันล้านพารามิเตอร์ ฝึกด้วยเสียงกว่า 10 ล้านชั่วโมง รองรับการโคลนเสียง การสตรีม และมากกว่า 50 ภาษา หากคุณต้องการใช้งาน Fish Audio S2 API อย่างมีประสิทธิภาพ—ตั้งแต่การส่งคำขอ การจัดการข้อมูลอ้างอิง ไปจนถึงการรัน Unit Test—Apidog คือเครื่องมือที่เร็วที่สุดสำหรับการสำรวจ จัดทำเอกสาร และตรวจสอบทุกเอนด์พอยต์ ทดลองใช้ Apidog วันนี้
บทนำ
เสียงที่สร้างโดย AI ก้าวข้ามข้อจำกัดเดิมไปแล้ว โมเดล TTS สมัยใหม่ไม่ฟังดูเหมือนหุ่นยนต์อีกต่อไป—สามารถกระซิบ หัวเราะ และเปลี่ยนโทนเสียงกลางประโยคได้ Fish Audio S2 API คือโมเดล 4 พันล้านพารามิเตอร์ที่ฝึกด้วยเสียงหลากหลายภาษามากกว่า 10 ล้านชั่วโมง สร้างเสียงที่แทบจะแยกไม่ออกจากเสียงมนุษย์จริง
ไม่ว่าคุณจะสร้างระบบอัตโนมัติสำหรับพอดแคสต์ ผู้ช่วยเสียง หรือไปป์ไลน์พากย์เสียงแบบเรียลไทม์ การรวม Fish Audio S2 API ต้องเข้าใจการยืนยันตัวตน การจัดการเสียงอ้างอิง การสตรีม และที่สำคัญคือการเขียน Unit Test เพื่อให้การใช้งานจริงของคุณคงเสถียร
💡ก่อนเรียกใช้ Fish Audio S2 API ครั้งแรก ให้ดาวน์โหลด Apidog ฟรี ทดสอบแท็กอารมณ์ ชิ้นส่วนสตรีมมิ่ง เพย์โหลดการโคลนเสียง และเสียงตอบกลับไบนารีได้ทันที ไม่ต้องมีโค้ด จำลอง ตรวจสอบ และฟังผลได้จาก UI เพื่อให้ TTS integration ของคุณสมบูรณ์แบบตั้งแต่วันแรก
Fish Audio S2 API คืออะไร?
Fish Audio S2 API เป็น HTTP API สำหรับ Fish Speech S2-Pro (TTS แบบโอเพนซอร์ส) ใช้สถาปัตยกรรม Dual-Autoregressive แยกการสร้างความหมายและการสร้าง Codebook เพื่อประสิทธิภาพสูง สังเคราะห์เสียงคุณภาพเยี่ยมที่อัตรา real-time factor 0.195 (NVIDIA H200 เพียงเครื่องเดียว)
ความสามารถหลัก:
| คุณสมบัติ | รายละเอียด |
|---|---|
| ภาษา | ประมาณ 50 ภาษา (อังกฤษ, จีน, ญี่ปุ่น, เกาหลี, อาหรับ, ฝรั่งเศส, เยอรมัน และอื่นๆ) |
| การโคลนเสียง | เสียงอ้างอิง 10–30 วินาที ไม่ต้องปรับแต่ง |
| การควบคุมอารมณ์แบบอินไลน์ | แท็กภาษาธรรมชาติ: [laugh], [whispers], [super happy]
|
| การสร้างเสียงหลายลำโพง | รองรับโทเค็น <|speaker:i|> แบบเนทีฟ |
| การสตรีม | เสียงสตรีมแบบเรียลไทม์ด้วย "streaming": true
|
| รูปแบบเอาต์พุต | WAV, MP3, PCM |
| การยืนยันตัวตน | Bearer Token (Authorization: Bearer YOUR_API_KEY) |
URL พื้นฐานหลังติดตั้งในเครื่อง: http://127.0.0.1:8080 ทุกเอนด์พอยต์อยู่ภายใต้ /v1/
เริ่มต้นใช้งาน Fish Audio S2 API และ Apidog
ข้อกำหนดเบื้องต้นสำหรับ Fish Audio S2 API
เตรียมเซิร์ฟเวอร์ Fish Speech S2-Pro และไคลเอนต์ API ที่รองรับเสียงไบนารี
รันเซิร์ฟเวอร์:
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.compileเพิ่มความเร็วการอนุมาน -
--halfใช้ FP16 ลด RAM GPU
ตรวจสอบสถานะเซิร์ฟเวอร์
curl http://127.0.0.1:8080/v1/health
# {"status":"ok"}
การตั้งค่า Fish Audio S2 API ใน Apidog
ดาวน์โหลด Apidog ฟรี สร้างโปรเจกต์ HTTP ใหม่ ใส่ URL พื้นฐาน http://127.0.0.1:8080 ใน Environments ตั้งค่า Global Header:
Authorization: Bearer YOUR_API_KEY
Apidog จะใส่ Header นี้ให้กับทุกคำขอในโปรเจกต์โดยอัตโนมัติ เหมาะกับการสลับ environment เช่น dev/staging/prod
การส่งคำขอ Fish Audio S2 API ครั้งแรกใน Apidog
การทดสอบเอนด์พอยต์ Text-to-Speech ของ Fish Audio S2 API
สร้างคำขอใหม่ใน Apidog ไปที่ POST /v1/tts ใส่ JSON body:
{
"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
}
สคีมาคำขอ TTS:
คลิก Send ใน Apidog ผลลัพธ์เป็น binary audio (เช่น audio/wav) Apidog แสดง inline audio player ให้ฟังเสียงได้ทันที ไม่ต้องเขียนโค้ด client
การโคลนเสียงด้วย Fish Audio S2 API
การอัปโหลดเสียงอ้างอิงไปยัง Fish Audio S2 API ผ่าน Apidog
โคลนเสียงด้วยฟิลด์ references ใน TTS request ส่งคลิปเสียง base64+transcription
อัปโหลดอ้างอิง:
{
"id": "my-voice-clone",
"text": "This is the reference transcription matching the audio.",
"audio": "<base64-encoded-wav-bytes>"
}
ใน Apidog เลือก body แบบ Binary หรือ Form Data ส่งไฟล์เสียงพร้อม text
ผลลัพธ์:
{
"success": true,
"message": "Reference added successfully",
"reference_id": "my-voice-clone"
}
นำไปใช้ใน TTS ได้ทันที:
{
"text": "This sentence will be spoken in the cloned voice.",
"reference_id": "my-voice-clone",
"format": "mp3"
}
Apidog Panel Reference Management บันทึก template คำขออ้างอิง เปลี่ยน reference_id ได้สะดวก ทดสอบเสียงโคลนหลายแบบกับสคริปต์เดียว
วิธีการ Unit Test การรวม Fish Audio S2 API
ทำไม Unit Test ถึงสำคัญ
การรวม Fish Audio S2 API อาจล้มเหลวโดยไม่รู้ตัว เช่น reference ID ผิด ค่าพารามิเตอร์ผิดช่วง การสตรีมผิดพลาด หรือ format ไม่ตรง Unit Test ช่วยจับข้อผิดพลาดเหล่านี้ก่อน production
ตัวอย่าง Unit Test ด้วย Python (pytest + httpx)
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:
def test_health_check(self):
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):
payload = {
"text": "Unit test: verifying Fish Audio S2 API TTS output.",
"format": "wav",
"seed": 42
}
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
def test_tts_invalid_temperature_raises_error(self):
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
def test_reference_add_and_list(self):
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
list_response = httpx.get(
f"{BASE_URL}/v1/references/list", headers=HEADERS
)
assert "unit-test-voice" in list_response.json()["reference_ids"]
httpx.request(
"DELETE",
f"{BASE_URL}/v1/references/delete",
json={"reference_id": "unit-test-voice"},
headers=HEADERS
)
รัน Unit Test:
pytest test_fish_audio_s2_api.py -v
การรัน Unit Test ของ Fish Audio S2 API ด้วย Apidog
Apidog มีฟีเจอร์ Test Scenarios สำหรับทดสอบอัตโนมัติได้โดยไม่ต้องเขียนโค้ด Python:
- เปิด Collection Fish Audio S2 API
- เลือก Test Scenarios → New Scenario
- เพิ่มคำขอ Health Check, TTS, Add Reference, List Reference
- ตั้ง Assertion: สถานะ 200, header มี
audio, response time < 30000ms - คลิก Run เพื่อรันชุด Unit Test ทั้งหมด
Apidog แสดงรายงานผ่าน/ไม่ผ่าน พร้อม response time และ diff view ส่งออกหรือรันบน CI ได้เลย
คุณสมบัติขั้นสูงของ Fish Audio S2 API
การสตรีมเสียงจาก Fish Audio S2 API
สำหรับแอปที่ต้องการเสียงแบบ real-time ให้ตั้ง "streaming": true ใน request body:
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)
API จะส่ง byte stream ทันที (เสียงแรกประมาณ 100ms) เหมาะกับ use case เสียงสด/interactive
การควบคุมอารมณ์แบบอินไลน์ผ่าน Fish Audio S2 API
ใส่แท็กอารมณ์ใน field text ได้เลย เช่น:
{
"text": "[whispers] The secret is hidden here. [super happy] I found it!",
"format": "wav"
}
โมเดลจะตีความแท็กในวงเล็บเป็นคำสั่งเสียง เช่น [laugh], [cough], [pitch up], [professional broadcast tone], [whisper in small voice]
บทสรุป
Fish Audio S2 API คือ TTS Engine ระดับ Production ที่ใช้งานง่ายผ่าน REST API ตั้งแต่สังเคราะห์เสียง, โคลนเสียง, สตรีมแบบเรียลไทม์ ทุก endpoint ครอบคลุมการสร้างเสียงที่นักพัฒนาต้องการ หากต้องการ integration ที่เสถียร: ควรตั้งค่าพารามิเตอร์ sampling ให้เหมาะสม, จัดการ reference lifecycle อย่างถูกต้อง, และดูแล Unit Test ครบทุก endpoint
Apidog ช่วยลดเวลา onboarding ใช้เพื่อส่งคำขอ Fish Audio S2 API ฟังเสียงไบนารี สร้าง client code อัตโนมัติ และรัน Unit Test ทุก endpoint ได้ทันที—ไม่ต้อง setup test framework เมื่อจะส่งต่อ spec หรือเอกสารให้ทีม/ลูกค้า เอกสารอัตโนมัติของ Apidog จะช่วยให้การสื่อสารเป็นระบบ
ดาวน์โหลด Apidog ฟรี และนำเข้าคอลเลกชัน Fish Audio S2 API เพื่อเริ่มทดสอบได้ทันที
คำถามที่พบบ่อย
Fish Audio S2 API คืออะไร? เป็น REST API สำหรับ Fish Speech S2-Pro (TTS 4B parameter, ฝึกเสียง 10M ชั่วโมง) รองรับโคลนเสียง สตรีม ควบคุมอารมณ์ และ 50+ ภาษา ผ่าน /v1/
ยืนยันตัวตนอย่างไร? ใส่ Authorization: Bearer YOUR_API_KEY ทุกคำขอ กำหนด API Key ด้วย --api-key ตอนรันเซิร์ฟเวอร์ Apidog จัดเก็บ token ที่ environment ใช้กับทุก request โดยอัตโนมัติ
Unit Test โดยไม่ต้องเขียนโค้ดได้หรือไม่? ได้ Apidog มี Test Scenarios สร้างและรัน Unit Test Fish Audio S2 API ทุก endpoint ใน UI ระบุ assertion เช่น status code, response time, header แล้วคลิกรันหรือสั่ง schedule CI ได้เลย
รองรับ output format ใดบ้าง? WAV, MP3, PCM กำหนด format ได้ที่ field "format" ใน TTS body (WAV คือ default)
โคลนเสียงทำงานอย่างไร? อัปโหลดคลิปอ้างอิง 10–30 วินาที + transcript ที่ POST /v1/references/add แล้วใช้ reference_id ใน TTS API ไม่ต้อง fine-tune หรือ retrain
Real-time factor คืออะไร? NVIDIA H200 หนึ่งเครื่อง Fish Audio S2 API ทำ RTF 0.195 (สร้างเสียง 5 วินาที/วินาที) เสียงแรกเร็ว ~100ms
ทดสอบเสียงไบนารีใน Apidog ได้อย่างไร? Apidog แสดง audio player ทันทีเมื่อ API ส่งเสียงไบนารี ไม่ต้อง save file สามารถฟัง ตรวจ header และเพิ่ม assertion ใน panel เดียว
Top comments (0)