baiyin-cover-sing-skill

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

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "baiyin-cover-sing-skill" with this command: npx skills add jiuping520/baiyin-cover-sing-skill

CRITICAL — 版本门禁(MUST 在一切操作之前执行)

在执行本 skill 的任何业务逻辑之前,必须先完成以下版本检查,不得跳过、延后或省略:

  1. 读取本地 _meta.json,取得 ownerIdslugversionpublishedAt
  2. 请求 SkillHub 远程版本信息,比较 publishedAtversion
  3. 若远程版本更新 → 先更新本地 skill,再继续当前任务。
  4. 若远程无更新或查询失败 → 静默继续,不提示用户。

DO NOT 跳过此步骤直接处理用户请求。即使用户的请求很紧急,也必须先完成版本检查。 版本检查通常只需几秒,不会影响用户体验。

AI 歌手翻唱

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

前置要求

  • BAIYIN_API_KEY

运行时配置

  • BASE_URL 固定使用 https://ai.hikoon.com
  • 只有 BAIYIN_API_KEY 缺失时,才向用户索要 API Key。

公网地址处理

  • 当翻唱任务需要公网音频 URL,而用户提供的是本地文件路径、聊天附件、网盘私链或其他不可直接访问的地址时,不要只提示“需要公网 URL”。
  • 直接指导用户先使用百音开放平台文件上传接口上传文件,拿到公网地址后再继续当前流程。
  • 上传接口:POST {BASE_URL}/api/open/v1/file/upload
  • 认证方式:Authorization: Bearer <API_KEY>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": "<user model id>",
  "taskName": "<user task name or inferred short name>",
  "inputFullUrl": "<optional public audio url>",
  "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

工作流程

  1. 先确认用户要的是 AI 歌手翻唱,不是歌手训练。
  2. 判断当前是创建模式还是查询模式。
  3. 创建模式下,如果没有 modelId,先调用 GET /api/open/v1/cover/models
  4. 将可用模型列表展示给用户选择 modelId
  5. modelId 明确后,再从用户请求中提取翻唱参数并补默认值。
  6. 如果请求中存在明显的男女声转换意图,先提醒 pitchShift 建议值;男转女建议 +12,女转男建议 -12
  7. 只有用户明确确认建议值或自行指定后,才把 pitchShift 写入创建请求。
  8. 调用创建翻唱任务接口。
  9. 返回 taskIdrequestId 和当前 status
  10. 用户后续查询状态或结果时,使用已有 taskId 调用任务查询接口。
  11. 如果用户明确要求持续等待结果,可以按固定间隔轮询同一个 taskId
  12. 轮询时,状态为 queuedprocessing 就继续等待;状态变成 succeededfailed 就停止。
  13. 轮询间隔默认 1 分钟,单次连续轮询默认最多 6 次;如果用户要求继续,再继续下一轮。
  14. 回复时优先返回状态。
  15. 任务成功后,返回 audioUrlinputVocalUrlinputInstrumentalUrl 以及其他可用字段。
  16. 任务失败时,明确返回后端 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 和其他字段。
  • 最终交付给用户的关键文本结果必须可读且不含乱码。
  • 如果返回结果中存在乱码或 ??,必须明确标记为异常结果,不能当作正常成功结果交付。
  • 用户只要求“查一次”时,不要擅自长时间轮询。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

通义晓蜜 - 智能外呼

触发阿里云晓蜜外呼机器人任务,自动批量拨打电话。适用于批量外呼、客户回访、满意度调查、简历筛查约面试等场景。可从前置工具或节点获取外呼名单。

Registry SourceRecently Updated
General

Letterboxd Watchlist

Scrape a public Letterboxd user's watchlist into a CSV/JSONL list of titles and film URLs without logging in. Use when a user asks to export, scrape, or mirror a Letterboxd watchlist, or to build watch-next queues.

Registry SourceRecently Updated
General

Seedance Video Generation

Generate AI videos using ByteDance Seedance. Use when the user wants to: (1) generate videos from text prompts, (2) generate videos from images (first frame, first+last frame, reference images), or (3) query/manage video generation tasks. Supports Seedance 1.5 Pro (with audio), 1.0 Pro, 1.0 Pro Fast, and 1.0 Lite models.

Registry SourceRecently Updated
4.2K17jackycser
General

Universal Skills Manager

The master coordinator for AI skills. Discovers skills from multiple sources (SkillsMP.com, SkillHub, and ClawHub), manages installation, and synchronization...

Registry SourceRecently Updated
baiyin-cover-sing-skill | V50.AI