fish-ttslisted
Install: claude install-skill Sallyn0225/sallyn-skill
# Fish Audio 文字转语音
用 Fish Audio 的 TTS API(`POST https://api.fish.audio/v1/tts`)把文本合成为自然语音。
本 skill 自带零依赖 Python 脚本(仅标准库),用户通过 `config.json` 配置 API key、默认模型、默认音色和音质参数;支持音色库搜索、零样本音色克隆与多说话人对话。
## 工作流程
1. 检查配置:skill 根目录(`scripts/` 的上一级)是否存在 `config.json`。
- 不存在 → 执行 `python scripts/fish_tts.py init` 生成,然后请用户提供 API key(在 fish.audio 的 API Keys 页面创建)并填入;用户未提供 key 时先询问,不要凭空编造。
- 已存在 → 直接使用;不确定内容时运行 `python scripts/fish_tts.py config` 查看(key 打码显示)。
2. 若用户没有指定音色(reference_id):
- 用 `python scripts/fish_tts.py voices --search <关键词>` 搜索音色库,把候选音色的 id/名称列给用户挑选;或询问用户是否有自己的克隆音色 id;把选定的 id 写进 config.json 的 `reference_id` 作为默认。
3. 确认文本与参数(格式、语速、音量等;中文配音注意语速和停顿),执行合成(见命令速查)。
4. 脚本把音频保存到 `-o` 指定路径(默认 `tts-<时间戳>.<格式>`),stdout 输出 JSON(含保存路径、模型、字节数)。向用户报告文件路径;可顺带用系统播放器打开,或告诉用户如何试听。
## 命令速查
脚本路径:`<skill根目录>/scripts/fish_tts.py`(下文以 `scripts/fish_tts.py` 代指)。
```bash
# 初始化配置(把 config.example.json 复制为 config.json)
python scripts/fish_tts.py init
# 查看当前配置(key 打码)
python scripts/fish_tts.py config
# 基础合成(用 config.json 里的 model + reference_id)
python scripts/fish_tts.py tts --text "你好,欢迎收听今天的节目。" -o hello.mp3
# 指定音色合成(voice id 用 voices 子命令查)
python scripts/fish_tts.py tts --text "..." --reference-id <voice-id> -o out.mp3
# 长文本(从文件读,UTF-8)
python scripts/fish_tts.py tts --text-file 台本.txt --speed 1.2 --volume 2 -o dub.mp3
# 搜索音色库
python scripts/fish_tts.py voices --search 女声
python scripts/fish_tts.py voices --language zh --page-size 20
# 零样本音色克隆(参考音频 + 逐字转录,10-30 秒干净样本效果最好)
python scr