文字转语音
Text to speech 让 Anyy 从文本合成音频,并把结果作为 scoped artifact 和 outbound 音频附件投递。
模型可见工具是 tts 工具集中的 text_to_speech。Provider、voice、format 和限制来自用户配置,不来自工具参数。
配置
最小 OpenAI-compatible 配置:
tts:
enabled: true
provider: openai
timeout_ms: 60000
max_chars: 4096
openai:
model: tts-1
voice: alloy
base_url: https://api.openai.com/v1
api_key_ref: env:OPENAI_API_KEY
response_format: mp3
voice:
auto_tts: false
当 tts.enabled 省略时,只有配置了 provider 才认为 TTS 启用。空的 tts.provider 会禁用服务。
Provider 选项
支持的 provider 路径:
| Provider type | 配置位置 | 说明 |
|---|---|---|
| Built-in OpenAI | tts.openai,并设置 provider: openai | 使用 model、voice、base_url、credential ref 和 response_format。 |
| Named command provider | tts.providers.<name>.type: command | 运行本地命令并注册输出音频。 |
| Named OpenAI-compatible provider | tts.providers.<name>.type: openai 或 openai-compatible | 在命名 provider 下使用和 OpenAI 相同的字段。 |
| Chat audio provider | tts.providers.<name>.type: openai-chat-audio | 使用 chat-audio synthesis 选项。 |
Custom command providers 可以设置 command、args、cwd、env、output_format、content_type、timeout_ms 和 max_chars。
Provider env 中的 secret refs 会在启动前解析。
Preview
Gateway 运行时,dashboard 和 RPC 层提供 TTS preview 操作。Preview 使用与运行时工具相同的已配置 provider 和 voice 路径。
如果 preview 失败,先检查 provider 凭据和 tts.provider,再排查渠道投递。
Auto TTS
voice.auto_tts 控制 voice/audio 对话是否默认用语音回复。配置 TTS provider 不会自动把每条回复都变成音频。
当 tts 工具集可见且 provider 已配置时,仍可显式使用 text_to_speech 工具。
消息投递
工具接受一个参数:
| 参数 | 含义 |
|---|---|
text | 要合成的必填文本。Provider-specific 字符上限适用,过长输入会被截断。 |
成功时返回包含 artifact_ref 的 JSON,也可能包含 artifact_id、content_type 和 filename。
生成语音通过 artifact store 保存。兼容 provider 和渠道可以把它渲染为 voice bubble;否则会作为普通音频附件发送。
失败模式
| Status | 含义 |
|---|---|
blocked_unavailable | TTS 服务或 provider 不可用。 |
blocked_invalid | 必填文本或 session 字段无效。 |
error | Provider synthesis 失败。 |
生成音频 artifact 管理见 Artifacts。