diff --git a/skills/dashscope-image-gen/SKILL.md b/skills/dashscope-image-gen/SKILL.md index cd79e87..aac1199 100644 --- a/skills/dashscope-image-gen/SKILL.md +++ b/skills/dashscope-image-gen/SKILL.md @@ -29,6 +29,12 @@ metadata: i18n: default_locale: en-US source_locale: zh-CN + locales: + - zh-CN + - en-US + zh-CN: + name: 阿里云 文生图 + short_desc: 基于阿里云通义万相的文本生成图片技能 market: icon: >- 1` 时,`choices` 数组会有多个元素,每个 `message.content` 中都有一张图片。需要为每张图片执行下载+上传,然后逐一展示: + +``` +![图片1描述](dc-media://mediaId1) +![图片2描述](dc-media://mediaId2) +``` + +## 错误处理 + +- `success: false` + `error: "未找到匹配的供应商"`:未配置 DashScope Provider 或未启用 +- `success: false` + `error: "未配置 API Key"`:未填写 API Key +- `statusCode: 401`:API Key 无效或已过期 +- `statusCode: 429`:频率限制,稍后重试 +- `statusCode: 400` + `InvalidParameter`:参数错误(如尺寸不支持) +- `statusCode: 403` + `AccessDenied.Unpurchased`:模型未开通,需要在阿里云控制台开通 + +## 注意事项 + +- 通过 compatible-mode 调用是同步的,通常 10-60 秒返回(wan2.7-image-pro 可能更长) +- 结果图片 URL 有时效,必须及时下载 +- 提示词建议用英文以获得最佳效果,中文也支持 +- 如果用户未明确要求模型/尺寸,默认使用 `wan2.7-image` + `1024x1024` diff --git a/skills/xiaomi-tts/SKILL.md b/skills/xiaomi-tts/SKILL.md index da08fa0..f75a9c1 100644 --- a/skills/xiaomi-tts/SKILL.md +++ b/skills/xiaomi-tts/SKILL.md @@ -30,6 +30,12 @@ metadata: i18n: default_locale: en-US source_locale: zh-CN + locales: + - zh-CN + - en-US + zh-CN: + name: 小米 MiMo 语音合成 + short_desc: 基于小米 MiMo 的文本转语音技能 market: icon: >- /tmp/xiaomi-tts-response.json + +# 提取 base64 音频数据并解码 +cat /tmp/xiaomi-tts-response.json | jq -r '.data.choices[0].message.audio.data' | base64 -d > /tmp/xiaomi-tts.mp3 + +# 上传到 media-store +curl -sk -X POST "https://127.0.0.1:${PORT}/api/media/upload" \ + -F "file=@/tmp/xiaomi-tts.mp3;type=audio/mpeg" +``` + +从 JSON 响应中提取 `mediaId` 字段(格式如 `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mp3`)。 + +### 第三步:用 dc-media 协议展示音频 + +在你的回复文本中直接写 Markdown 语法: + +``` +![语音合成结果](dc-media://这里替换为mediaId) +``` + +例如:`![TTS: 你好世界](dc-media://a1b2c3d4-e5f6-47a8-b9c0-d1e2f3a4b5c6.mp3)` + +前端会自动检测 `.mp3` 扩展名并渲染为音频播放器。 + +## 参数映射 + +### 请求体参数(放在 body 中) + +| 参数 | 说明 | 默认值 | +|------|------|--------| +| `model` | 模型名称 | "mimo-v2.5-tts" | +| `messages[0].role` | **必须为 "assistant"** | "assistant"(固定) | +| `messages[0].content` | 要合成的文本 | 必填 | +| `voice` | 音色 ID | "Bingtang"(中文)/ "Mia"(英文) | +| `audio.format` | 音频格式 | "mp3"(可选 "wav") | + +### 用户意图映射 + +| 用户意图 | 参数选择 | +|---------|---------| +| 甜美/可爱 | voice: "Bingtang" | +| 温柔/知性 | voice: "Moli" | +| 年轻男声 | voice: "Suda" | +| 成熟男声 | voice: "Baihua" | +| 英文女声 | voice: "Mia" 或 "Chloe" | +| 英文男声 | voice: "Milo" 或 "Dean" | +| 高音质/无损 | response_format: "wav" | + +## 错误处理 + +- `success: false` + `error: "未找到匹配的供应商"`:未配置小米 MiMo Provider 或未启用 +- `success: false` + `error: "未配置 API Key"`:未填写 API Key +- `statusCode: 401`:API Key 无效或已过期 +- `statusCode: 429`:频率限制,稍后重试 +- `statusCode: 400`:参数错误(如 voice 不存在、文本为空) +- `statusCode: 403`:模型未开通或权限不足 + +## 注意事项 + +- 调用是同步的,通常 3-15 秒返回(视文本长度而定) +- 音频以 base64 返回,无外部 URL 时效问题,但数据量较大时注意 shell 参数长度限制 +- 长文本建议分段合成(每段不超过 500 字),然后逐段上传展示 +- 如果用户未明确要求音色/格式,默认使用 `mimo-v2.5-tts` + 按语言选音色 + `mp3` +- Token Plan 密钥(tp- 前缀)使用 `https://token-plan-cn.xiaomimimo.com/v1` 端点 +- 按量付费密钥使用 `https://api.xiaomimimo.com/v1` 端点 +- media-proxy 会自动根据配置选择正确的端点,技能无需区分