首页龙虾技能列表 › baiyin-cover-sing-skill — 技能工具

baiyin-cover-sing-skill — 技能工具

v1.0.0

当用户希望通过百音开放平台创建 AI 歌手翻唱任务、查询翻唱任务状态,或根据已有 taskId 返回最终翻唱音频结果时使用。

0· 1·0 当前·0 累计
by @jiuping520 (baiyin)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/14
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
The skill's instructions line up with a Baiyin cover-singing API, but metadata and declared requirements are inconsistent (missing env var declarations and mismatched owner info), so verify origin and credentials before installing.
评估建议
This skill appears to be genuine instructions for a Baiyin cover-singing API, but the package metadata has inconsistencies: the runtime docs require BAIYIN_OPEN_URL and BAIYIN_OPEN_KEY whereas the registry lists no required env vars, and the _meta.json ownerId differs from the registry owner. Before installing or providing credentials: 1) Confirm the skill's source and homepage (who published it). 2) Only provide an API key with minimal scope or a test key, and verify the BAIYIN_OPEN_URL is the ...
详细分析 ▾
用途与能力
The SKILL.md describes creating/queried cover-singing tasks on a Baiyin open platform and only references Baiyin API endpoints — this matches the stated purpose. However, the skill metadata (registry section) lists no required environment variables while the runtime instructions explicitly require BAIYIN_OPEN_URL and BAIYIN_OPEN_KEY; additionally _meta.json shows ownerId "baiyin" while registry owner id differs. These metadata mismatches are inconsistent with the declared purpose/capability.
指令范围
Instructions are narrowly scoped to calling Baiyin API endpoints (list models, create task, query task) and to using the Baiyin upload endpoint for non-public audio. They do not instruct reading arbitrary system files or sending data to unrelated external endpoints. Expected behavior for an API-integration skill.
安装机制
No install spec or code files (instruction-only), so nothing is written to disk or installed. This minimizes supply-chain risk.
凭证需求
The instructions require BAIYIN_OPEN_URL and BAIYIN_OPEN_KEY (appropriate for calling the API), but the skill metadata declares no required env vars or primary credential — an inconsistency. The skill will need an API key and base URL to function; ensure those are scoped and provided intentionally. Also confirm the skill owner identity before sharing keys.
持久化与权限
Skill is user-invocable, not always-enabled, has no install tasks, and does not request persistent system privileges. No elevated persistence requested.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/14

Initial release of the baiyin-cover-sing-skill: - Enables users to create, query, and retrieve results of AI cover singing tasks via the Baiyin open platform. - Guides users to upload audio files for public URLs when only local paths or attachments are provided. - Ensures model selection is completed before task creation, displaying available models for user choice. - Implements minimal questioning: only prompts for required parameters; provides default values for optional ones. - Handles gender transition scenarios with pitch shift suggestions and requires user confirmation before applying. - Enforces UTF-8 encoding on task names and flags any text result anomalies, guiding users to retry if necessary. - Returns clear task creation status, result links, and concise error handling for all major API response codes.

● 无害

安装命令 点击复制

官方npx clawhub@latest install baiyin-cover-sing-skill
镜像加速npx clawhub@latest install baiyin-cover-sing-skill --registry https://cn.clawhub-mirror.com

技能文档

当用户希望通过百音开放平台创建 AI 歌手翻唱任务、查询翻唱进度,或获取最终翻唱结果时,使用这个 skill。

前置要求

  • BAIYIN_OPEN_URL
  • BAIYIN_OPEN_KEY

公网地址处理

  • 当翻唱任务需要公网音频 URL,而用户提供的是本地文件路径、聊天附件、网盘私链或其他不可直接访问的地址时,不要只提示“需要公网 URL”。
  • 直接指导用户先使用百音开放平台文件上传接口上传文件,拿到公网地址后再继续当前流程。
  • 上传接口:POST {BASE_URL}/api/open/v1/file/upload
  • 认证方式:Authorization: Bearer Content-Type: multipart/form-data
  • 表单字段:file 必填,filename 选填,dir 选填
  • 成功后从返回的 data.url 取公网地址,填入 inputFullUrl 等需要 URL 的字段
  • 不要求用户自行准备 OSS、CDN 或其他外部存储;优先提示百音开放平台上传能力

接口地址

  • 查询可用歌手模型:GET {BASE_URL}/api/open/v1/cover/models
  • 创建任务:POST {BASE_URL}/api/open/v1/cover/sing
  • 查询任务:GET {BASE_URL}/api/open/v1/tasks/{taskId}

首要前提

开始创建 AI 歌手翻唱任务前,必须先确认 modelId

  • 如果用户还没有提供 modelId,必须先调用 GET {BASE_URL}/api/open/v1/cover/models
  • 先把可用模型列表展示给用户选择,再继续创建翻唱任务
  • modelId 未明确前,不要继续收集 typereverbTypeformatpitchShift 这类次级参数
  • 不要猜测、编造或默认填充 modelId

核心模式

根据用户表达判断当前模式。除非必要,不要要求用户自己选择技术字段名。

  • 创建模式
- 用户要发起一个新的 AI 翻唱任务 - 需要明确的 modelId - 如果没有 modelId,先进入模型查询步骤,而不是直接创建任务
  • 状态模式
- 用户要查询进度、状态,或是否翻唱完成 - 需要当前会话里明确的 taskId,或者用户消息里直接提供的 taskId
  • 结果模式
- 用户要查看翻唱结果、音频链接、伴奏/人声拆分结果等 - 和状态模式共用同一个任务查询接口 - 可以在用户明确要求“继续查”“轮询等待”“等到出结果”为止时持续轮询

参数策略

只要已经能组成合法翻唱请求,就不要为了可选字段反复追问用户。

  • 从对话中提取已有字段:
- modelId - taskName - inputFullUrl - type - reverbType - format - pitchShift
  • 用户没写时使用默认值:
- type = 0 - reverbType = 3 - format = "mp3"
  • 如果用户意图中包含明显的男女声转换,在创建任务前先提醒 pitchShift 建议值:
- 男转女建议升调 +12 - 女转男建议降调 -12 - 只有用户明确接受或自行指定后,才把对应 pitchShift 写入请求
  • 只有在请求信息不足以组成可用翻唱任务时,才追问。

字段映射规则

  • modelId
- 必须使用用户明确提供的模型 ID。 - 不要猜测或编造模型 ID。
  • taskName
- 优先使用用户提供的任务名称。 - 如果用户没有明确命名,但请求意图明确,可以推断一个简短可用的任务名。
  • inputFullUrl
- 用户提供整曲音频 URL 时带上。 - 没提供时不要虚构。
  • type
- 只允许 01。 - 用户未指定时默认 0
  • reverbType
- 只允许 123。 - 用户未指定时默认 3
  • format
- 只允许 mp3wavm4aflac。 - 用户未指定时默认 mp3
  • pitchShift
- 用户明确要求升降调时填写。 - 如果是明显的男女声转换,创建前必须先提醒建议值: - 男转女建议 +12 - 女转男建议 -12 - 除非用户明确确认或自行指定,否则不要擅自写入建议值。 - 没提且也不存在明显的男女声转换时省略。

请求体

创建翻唱任务时使用如下基础结构:

{
  "modelId": "",
  "taskName": "",
  "inputFullUrl": "",
  "type": 0,
  "reverbType": 3,
  "format": "mp3",
  "pitchShift": 0
}

编码规则

  • 发送包含中文的 taskName 等文本字段时,必须确保请求体使用 UTF-8 编码。
  • 如果当前调用方式不能稳定发送 UTF-8 中文,优先改用明确指定 UTF-8 的请求方式。
  • 不要把 ??、乱码、替代字符当作有效任务名称或结果文本。

任务查询结果

对于 cover_record 任务,查询接口会返回标准化状态,以及以下结果字段:

  • recordId
  • internalTaskId
  • userTaskId
  • audioUrl
  • inferenceUrl
  • inputFullUrl
  • inputVocalUrl
  • inputInstrumentalUrl
  • format
  • score

可能状态:

  • queued
  • processing
  • succeeded
  • failed

结果校验

  • 当任务进入 processingsucceeded 后,检查返回结果中的关键文本字段是否可读。
  • 如果任务名称、结果文本或关联名称出现乱码、??、空值且与原始请求明显不一致,视为异常结果。
  • 异常结果不能作为最终交付返回给用户。
  • 出现名称或文本异常时,要明确说明编码或写入异常,并建议重新创建任务或改用稳定编码方式重试。

对话行为

  • 如果用户说“用这个模型翻唱”“帮我做个 AI 翻唱”,并且已经给出 modelId,就直接创建任务。
  • 如果用户要做 AI 翻唱,但还没给出 modelId,先调用 /api/open/v1/cover/models,把可选模型列给用户选。
  • 如果用户请求中存在明显的男女声转换意图,在创建前先提醒 pitchShift 建议值:
- 男转女建议升调 +12 - 女转男建议降调 -12
  • 这类提醒属于创建前的重要参数提醒,不算为了可选字段反复追问。
  • 如果用户说“查下这个翻唱任务”“完成了吗”“把结果给我”,且上下文指向明确,就复用当前会话最近一个翻唱 taskId
  • 如果没有明确 taskId,但用户要查状态或结果,就直接让用户提供 taskId
  • 只要请求已经足够创建翻唱任务,就不要追问 reverbTypeformat 这类可选字段;但如果存在明显的男女声转换意图,仍要先提醒 pitchShift 建议值。
  • 将“板式”“plate”视为 reverbType = 1
  • 将“大厅”“hall”视为 reverbType = 2
  • 将“无混响”“dry”视为 reverbType = 3

最少追问原则

只有在以下情况下才追问:

  • 请求里没有明确 modelId
  • 请求里没有足够信息推断出可用的任务名称
  • 用户要查询状态或结果,但当前上下文没有明确 taskId

不要为了确认以下内容单独追问:

  • 可选的 inputFullUrl
  • type
  • reverbType
  • format
  • pitchShift

工作流程

  • 先确认用户要的是 AI 歌手翻唱,不是歌手训练。
  • 判断当前是创建模式还是查询模式。
  • 创建模式下,如果没有 modelId,先调用 GET /api/open/v1/cover/models
  • 将可用模型列表展示给用户选择 modelId
  • modelId 明确后,再从用户请求中提取翻唱参数并补默认值。
  • 如果请求中存在明显的男女声转换意图,先提醒 pitchShift 建议值;男转女建议 +12,女转男建议 -12
  • 只有用户明确确认建议值或自行指定后,才把 pitchShift 写入创建请求。
  • 调用创建翻唱任务接口。
  • 返回 taskIdrequestId 和当前 status
  • 用户后续查询状态或结果时,使用已有 taskId 调用任务查询接口。
  • 如果用户明确要求持续等待结果,可以按固定间隔轮询同一个 taskId
  • 轮询时,状态为 queuedprocessing 就继续等待;状态变成 succeededfailed 就停止。
  • 轮询间隔默认 1 分钟,单次连续轮询默认最多 6 次;如果用户要求继续,再继续下一轮。
  • 回复时优先返回状态。
  • 任务成功后,返回 audioUrlinputVocalUrlinputInstrumentalUrl 以及其他可用字段。
  • 任务失败时,明确返回后端 error,不要假装结果已生成。

模型列表返回使用规则

调用 GET /api/open/v1/cover/models 后:

  • 使用 data.rows 作为可选模型列表
  • 至少向用户展示 modelIdmodelName
  • descriptiontagsdemoUrlisRecommended 时,一并展示,帮助用户选择
  • 用户未选定 modelId 前,不要继续进入创建任务步骤

输出格式

  • 创建任务后,回复中应包含:
- 简短确认 - taskId - 当前 status - 有必要时补一句参数理解摘要
  • 轮询或查询时,保持回复简洁,先说状态。
  • 如果用户要求轮询等待,回复中应说明这是轮询结果,并在结束时明确说明是成功结束还是失败结束。
  • 任务成功时,输出顺序优先:
- audioUrl - inputVocalUrl - inputInstrumentalUrl - inferenceUrl - format - score

错误处理

  • 创建任务返回 400 时,说明请求参数不合法或不完整,并让用户修正模型 ID 或请求字段。
  • 创建任务返回 401 时,说明百音开放平台 API Key 无效或当前环境不可用。
  • 创建任务返回 402 时,说明账户余额不足。
  • 查询任务返回 404 时,说明任务不存在,并让用户提供正确的 taskId
  • 任务状态为 failed 时,有后端错误信息就直接返回。

示例

示例 1:

  • User: Use model_123 to make a cover task called Night Song
  • 识别结果:
- create mode - modelId = "model_123" - taskName = "Night Song" - type = 0 - reverbType = 3 - format = "mp3"

示例 2:

  • User: Use model_456 to cover this song: https://example.com/song.mp3
  • 识别结果:
- create mode - modelId = "model_456" - inputFullUrl = "https://example.com/song.mp3" - infer a short taskName

示例 3:

  • User: 帮我做一个 AI 翻唱,但我还没选模型
  • 下一步:
- 调用 GET {BASE_URL}/api/open/v1/cover/models - 把返回的 rows 展示给用户选择 modelId

示例 4:

  • User: Check the last cover task
  • 识别结果:
- status mode - reuse the most recent cover taskId from the same conversation when available

示例 5:

  • User: Show me the result for task_abc123
  • 识别结果:
- result mode - query GET /api/open/v1/tasks/task_abc123 - return audioUrl and related fields when status is succeeded

回复规则

  • 在任务查询结果明确为 succeeded 之前,不要声称翻唱已经完成。
  • 最终结果以任务查询接口返回字段为准,不要猜。
  • 如果状态还是 queuedprocessing,就如实返回,不要虚构音频结果。
  • 即使成功结果里没有 inputVocalUrlinputInstrumentalUrl,也要返回已有的 audioUrl 和其他字段。
  • 最终交付给用户的关键文本结果必须可读且不含乱码。
  • 如果返回结果中存在乱码或 ??,必须明确标记为异常结果,不能当作正常成功结果交付。
  • 用户只要求“查一次”时,不要擅自长时间轮询。
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务