- 托管版 S2.1 通过 Gateway 上的
fish-audio语音提供商运行,可用于各个频道、语音留言、Talk 和电话服务。 - 本地版 S2 Pro 通过现有的
mlxTalk 提供商在原生 macOS 应用中运行。它始终在 Mac 上运行,不需要 Fish API 密钥。
托管 S2.1
安装fish-audio-speech 插件:
fish-audio-speech。提供商和 TTS 配置 ID
仍为 fish-audio。
从 Fish Audio API 密钥 页面设置 API 密钥:
speakerVoiceId 是可选的。不设置时,Fish Audio 会使用其默认语音。
为兼容现有的社区插件,也接受 FISH_AUDIO_API_KEY,但 FISH_API_KEY 才是 Fish SDK 的标准环境变量。
托管模型
对于普通音频,该提供商请求 MP3;对于原生语音消息,请求 48 kHz 的 Opus;对于电话通信,请求 8 kHz 的原始 PCM。对于 Discord 语音,OpenClaw 会在 Fish Audio 的分块 HTTP 响应到达时立即使用,而不是等待整个音频片段完成。
表现力语音
S2 和 S2.1 接受内联自然语言标签。将标签放入朗读文本中:[whisper]、[laughing]、[excited]、[sad]、[pause],以及诸如 [professional broadcast tone] 之类的自由格式指令。
语音选择与克隆
使用/tts status 查看当前激活的提供商,使用 /tts audio <text> 生成一次性音频片段。Fish 语音 ID 可以来自你自己训练的语音或 Fish 公共语音库。OpenClaw 会优先列出你的语音,然后列出数量有限的热门公共语音。
语音提供商使用已有的语音 ID;它不会上传录音或创建语音模型。创建语音是 Fish Audio 应用或 API 中一项单独且涉及同意的操作。
macOS 上的本地 S2 Pro
原生 macOS 应用捆绑了一个隔离的 MLX TTS 辅助程序。在 Apple 芯片设备上,将现有的mlx Talk 提供商指向 8 位 Fish 转换版本:
本地参考音色
当 Gateway 和 macOS 应用共享同一文件系统时,配置一段 10–30 秒的清晰参考录音及其准确转录文本:referenceAudioPath 会在运行原生应用的 Mac 上解析,而不是在远程 Gateway 上解析。文件会保留在本地:应用仅将其传递给隔离的 MLX 辅助程序。本地 Fish 输出会以 PCM 流的形式传入 Talk 播放,因此语音可以在较长的生成过程完成之前开始播放。
本地 MLX 目前仅适用于原生 macOS Talk。其他频道和客户端使用由 Gateway 选定的托管语音提供商。iOS 和 Android 继续保留现有的原生/系统及 Gateway Talk 路径。
故障排查
Fish Audio API key missing:设置FISH_API_KEY或tts.providers.fish-audio.apiKey。- HTTP 401:在 Fish Audio 验证 API 密钥。
- HTTP 402:所选托管模型需要可用额度或相应的方案权限。
- 本地模型回退到系统语音:确认使用的是 Apple 芯片、磁盘空间充足,并核对 Hugging Face 模型 ID 是否准确。
- 本地克隆效果不匹配:使用干净的单说话人音频,并确保
referenceText与其完全一致。