# Fish Audio S2 Pro - Core.Today AI API > Fish Audio S2-generation TTS: 80+ languages, bracketed natural-language emotion and tone tags, Voice Library voices. Same price as S2.1 Pro; kept for pipelines tuned on S2. Billed per UTF-8 byte. - **Provider**: Fish Audio - **Model ID**: fishaudio/s2-pro - **Category**: Audio & TTS - **Credits**: 105 per 1,000 Korean characters (0.034875 credits per UTF-8 byte; ~35 credits per 1,000 English characters) - **Speed**: Fast - **Quality**: High ## Features - 80+ languages from a single model - Bracketed natural-language emotion and tone tags ([sad], [shouting], [sighing]) - Voice Library voices via reference_id, plus cloned voices - Same price as S2.1 Pro — keep it for pipelines tuned on S2 - mp3 / wav / opus output, speed and volume prosody control ## Use Cases - Korean narration for shorts, ads and explainer videos - Multilingual product voice-overs from one model - Audiobooks and long-form storytelling with emotion tags - Announcements and IVR prompts - Podcast intros and character voices ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **text**: string - Text to synthesize (UTF-8). Billed by UTF-8 bytes — one Korean character is 3 bytes. Emotion, tone and effect cues go in brackets before the text they steer, e.g. [sad] I missed you, [shouting], [sighing], [long-break]. ### Optional - **reference_id**: string (default: 2f06c7a428e9431fadd60af4dfe91763) - Voice ID (32-hex id from the Fish Audio Voice Library). 37 curated voices (15 Fish Official Korean, 18 Korean community, 4 robot/character) can be previewed and copied from the Voice Gallery on this model's Core.Today Docs page (docs/models/fishaudio/…); any other public or cloned voice id works too — you are responsible for the rights to the voice you pass. - **format**: string (default: mp3) - Output audio format. Options: mp3, wav, opus - **mp3_bitrate**: integer (default: 128) - MP3 bitrate in kbps (mp3 only). Options: 64, 128, 192 - **speed**: number (default: 1.0) - Speaking rate multiplier, 0.5–2.0 (1.0 = default). - **volume**: number (default: 0) - Volume adjustment in dB, -20 to 20 (0 = default). - **latency**: string (default: balanced) - balanced favors low latency (default); normal favors stability — a good choice for batch generation. Options: balanced, normal - **normalize**: boolean (default: true) - Expand numbers, dates and units into spoken form. - **temperature**: number (default: 0.7) - Sampling temperature, 0.1–1.0. Lower is more consistent, higher more expressive. - **top_p**: number (default: 0.7) - Nucleus sampling probability mass, 0.1–1.0. - **chunk_length**: integer (default: 200) - Internal chunk length, 100–300. Affects phrasing of long passages. ## Examples ### Core.Today intro Same script as the voice gallery, rendered by S2 Pro. ```json { "model": "fishaudio/s2-pro", "input": { "text": "안녕하세요, 코어닷투데이입니다. 하나의 API 키로 이미지, 영상, 음성 생성 모델을 모두 연결해 보세요.", "reference_id": "29da56534ac84ccd81092be4359a1639", "format": "mp3" } } ``` ### Emotion tags Bracketed natural-language cues, same syntax as S2.1 Pro. ```json { "model": "fishaudio/s2-pro", "input": { "text": "[calm] 오늘의 사용량 리포트를 읽어 드릴게요. [emphasis] 크레딧이 20% 남았습니다.", "reference_id": "d74f023d1525420797aed41b5d421c05" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - The 15 Fish Official Korean voices (지우, 민준, …) are designed by Fish rather than cloned from a person, which makes their rights position the simplest — a good baseline to compare against - The 4 robot voices are registered as English but were measured on Korean: our gateway synthesized a Korean line and our own ASR transcribed it back at 0.85–0.97 similarity. Voices that failed that test are not in the gallery - Voices cloned from named characters or identifiable voice actors are deliberately absent. You can still pass any reference_id to the API — the rights to that voice are yours to clear - Prefer S2.1 Pro for new work — same price, better quality and latency; S2 Pro is here for pipelines already tuned on it - Bracket tags work the same as S2.1 Pro: [happy], [whispering], [break] - Korean is 3 UTF-8 bytes per character — 1,000 Korean characters cost about 105 credits - The docs Voice Gallery samples were rendered with S2.1 Pro; the voice ids are identical, only the model differs ## Documentation https://docs.fish.audio/features/text-to-speech