Agent Skills
› NeverSight/learn-skills.dev
› fish-audio
fish-audio
GitHub通过 AceDataCloud API 调用 Fish Audio 实现文本转语音及声音克隆。支持同步生成旁白、合成多语言语音,并可基于参考音频注册自定义音色,适用于配音与语音合成场景。
Trigger Scenarios
需要生成AI旁白或配音
进行文本到语音的合成
克隆参考音频中的声音
Install
npx skills add NeverSight/learn-skills.dev --skill fish-audio -g -y
SKILL.md
Frontmatter
{
"name": "fish-audio",
"license": "Apache-2.0",
"metadata": {
"author": "acedatacloud",
"version": "1.1"
},
"description": "Generate AI text-to-speech audio and clone voices with Fish Audio via AceDataCloud API. Use when creating voiceover\/narration audio (TTS), synthesizing speech, or cloning a reference voice. Chinese + multilingual.",
"compatibility": "Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared\/authentication.md)."
}
Fish Audio — Text-to-Speech & Voice Cloning
Generate narration / voiceover and clone voices through AceDataCloud's Fish Audio API.
Setup: See authentication for token setup.
Quick Start (TTS — synchronous, ~3s)
curl -X POST https://api.acedata.cloud/fish/audios \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"action":"speech","model":"fish-tts","voice_id":"543e4181d81b4ef6874b0e8fbdf27c78","prompt":"你好,欢迎使用 AceData Cloud。"}'
Response (synchronous — no polling needed for speech):
{"success": true, "data": [{"audio_url": "https://platform.r2.fish.audio/task/....mp3"}]}
→ download data[0].audio_url. voice_id is required. A good default Mandarin
news-anchor voice is 543e4181d81b4ef6874b0e8fbdf27c78.
Endpoints
| Endpoint | Purpose |
|---|---|
POST /fish/audios |
TTS (action: "speech") — synchronous |
POST /fish/voices |
List / register (clone) voices |
Workflows
1. Text-to-Speech (the common case)
POST /fish/audios
{
"action": "speech",
"model": "fish-tts",
"voice_id": "543e4181d81b4ef6874b0e8fbdf27c78",
"prompt": "你的旁白文本。"
}
2. Clone a voice from a reference sample
POST /fish/voices
{
"voice_url": "https://example.com/reference-voice.mp3",
"title": "My Custom Voice",
"description": "Clear, neutral-toned speaker"
}
Then pass the returned id as voice_id in workflow 1.
Parameters — /fish/audios
| Parameter | Type | Required | Description |
|---|---|---|---|
action |
string | yes | Use "speech" for TTS |
model |
string | yes | "fish-tts" |
voice_id |
string | yes | A Fish reference/cloned voice id (default Mandarin: 543e4181d81b4ef6874b0e8fbdf27c78) |
prompt |
string | yes | Text to synthesize |
Gotchas
- TTS (
action:"speech") is synchronous — the response carriesdata[0].audio_url; do NOT poll/fish/tasksfor it. voice_idis required — a bare{"prompt": "..."}returns400 voice_id is required when action is speech.modelmust be"fish-tts"for speech (NOTspeech-1.5); sending a different model returns400 model is invalid if action is speech.- Pricing is based on the byte count of the generated audio. Multilingual is automatic.
Version History
- e0220ca Current 2026-07-05 22:53


