Four capabilities
Each capability has its own endpoint and billing basis; the prices below are in platform points (¥1 = 1000 points).
Speech synthesis 1 point / char
Text to speech with three voices to choose from: Standard narration, Natural conversation, Lively. Up to 2000 characters per call; output is 22.05 kHz mono WAV.
POST /v1/audio/speech Parameters text / voice / model
POST /v1/audio/speech Parameters text / voice / model
Voice cloning 3 points / char
Zero-shot cloning — all you need is one reference audio clip and its matching text, and you can synthesize new content in that voice with no training.
POST /v1/audio/clone Parameters text / prompt_text / prompt_audio_b64
POST /v1/audio/clone Parameters text / prompt_text / prompt_audio_b64
Speech to text 5 points / second
Chinese and English speech recognition, billed by audio duration. Audio is submitted as base64.
POST /v1/audio/transcriptions Parameters audio_b64
POST /v1/audio/transcriptions Parameters audio_b64
Embeddings 3 points / 1k tokens
Text vectorization for semantic search, clustering and RAG. Two models to choose from: bge-m3 (1024 dimensions) and nomic (768 dimensions).
POST /v1/embeddings Parameters input / model
POST /v1/embeddings Parameters input / model
Model list
S
Speech synthesis
3 voices
Standard narrationtts-001
Natural conversationtts-longxiaoxia
Livelytts-xiaohe
Live
C
Voice cloning
Zero-shot
Voice cloningvoice-clone
Live
T
Speech to text
Chinese & English
Speech to text · zh/enasr-zh
Live
E
Embeddings
Semantic search · RAG
bge-m3 · 1024 dimsbge-m3:latest
nomic · 768 dimsnomic-embed-text
Live
Example calls
The endpoints follow the OpenAI-compatible format, so you can use the official SDKs and just point base_url at ShinLinkAI.
Speech synthesis (curl)
curl https://api.shinloo.com/v1/audio/speech \
-H "Authorization: Bearer sk-sl-…" \
-H "Content-Type: application/json" \
-d '{{"text": "Hello, welcome to ShinLinkAI", "voice": "001"}}' \
--output hello.wav
Embeddings (curl)
curl https://api.shinloo.com/v1/embeddings \
-H "Authorization: Bearer sk-sl-…" \
-H "Content-Type: application/json" \
-d '{{"model": "bge-m3:latest", "input": "the text to index"}}'
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(base_url="https://api.shinloo.com/v1", api_key="sk-sl-...")
with client.audio.speech.with_streaming_response.create(
model="tts-001", voice="001", input="Hello"
) as r:
r.stream_to_file("hello.wav")
Speech synthesis passes the text in the text field (not the OpenAI input); embeddings use the input field. Transcription and cloning require the audio to be submitted as base64.
Billing
Units
¥1 = 1000 points. Speech synthesis 1 point/char (¥0.001/char), voice cloning 3 points/char, transcription 5 points/second (¥0.005/second), embeddings 3 points/1k tokens.
When points are charged
Points are charged when the request is accepted; if the upstream fails they are refunded to your balance automatically, so you never pay for nothing.
Rate limits
Audio endpoints: 20 requests/minute; a single synthesis call is capped at 2000 characters.
Shared balance
Shares exactly the same Key and balance as the chat models — no separate top-up.
Live models and prices can be verified with GET /v1/models .