> ## Documentation Index
> Fetch the complete documentation index at: https://docs.poyo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 添加伴奏

> 为上传的音频文件生成音乐伴奏

> [!TIP]
>
> 1. 提交后会返回 `task_id`。如果提供了 `callback_url`，当任务状态变为 `finished` 或 `failed` 时，系统会向 `callback_url` 发送 POST 请求。
> 2. 无论是否提供 `callback_url`，都可以通过统一的[查询音乐详情](https://docs.poyo.ai/zh/api-manual/music-series/query-music-detail.md)接口获取结果。

## 使用指南

* 此接口为上传的音频文件生成音乐伴奏
* 通常配合人声分轨或旋律使用，用于制作伴奏音轨
* 适合在不需要制作人的情况下为现有录音添加器乐层

## 参数详情

* 必填参数：

  * `upload_url`：要处理的音频文件 URL

  * `title`：生成音轨的名称

  * `tags`：期望的音乐风格（例如 "relaxing, piano, soothing"）

  * `negative_tags`：要排除的风格（例如 "heavy metal, fast drums"）

* 模型选择：

  * **V6**：音乐表现力更强，人声更自然。

  * **V6\_MINI**：轻量且快速。

  * **V6\_WILD**：更大胆、更具辨识度的音乐表现。

  * **V5\_5**：按你的独特品味调校的个性化模型。

  * **V5**：出色的音乐表现力，生成速度更快

  * **V4\_5PLUS**：音色更丰富（默认）

## 开发者说明

* 使用描述性的标签来引导伴奏风格
* 组合使用正向和负向标签，以精确控制输出
* 回调机制会在三个阶段发送通知：文本生成、首条音轨完成、全部音轨完成

## 可选参数

* `mv` (string)：AI 模型版本。可选值：`V4_5PLUS`（默认）、`V5`、`V5_5`、`V6`、`V6_MINI`、`V6_WILD`。

* `vocal_gender` (string)：人声性别偏好。`m` 表示男声，`f` 表示女声。注意：此参数只能提高概率，不能保证生成指定性别。

* `style_weight` (number)：对风格的遵循强度。范围 0-1，最多 2 位小数。

* `weirdness_constraint` (number)：控制创意偏离程度。范围 0-1，最多 2 位小数。

* `audio_weight` (number)：音频特征的平衡权重。范围 0-1，最多 2 位小数。


## OpenAPI

````yaml zh/api-manual/music-series/add-instrumental.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: PoYo AI - 添加伴奏 API
  description: 为上传的音频文件生成伴奏
  version: 1.0.0
servers:
  - url: https://api.poyo.ai
    description: 生产环境
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Music Generation
      summary: 提交添加伴奏任务
      description: 为上传的音频文件（通常是人声分轨或旋律）生成伴奏
      operationId: submitAddInstrumentalTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitRequest'
            examples:
              basic:
                summary: 基础伴奏生成
                value:
                  model: add-instrumental
                  callback_url: https://your-domain.com/callback
                  input:
                    upload_url: https://storage.example.com/vocals.mp3
                    title: Relaxing Piano
                    tags: relaxing, piano, soothing
                    negative_tags: heavy metal, fast drums
              advanced:
                summary: 高级风格控制
                value:
                  model: add-instrumental
                  callback_url: https://your-domain.com/callback
                  input:
                    upload_url: https://storage.example.com/vocals.mp3
                    mv: V5_5
                    title: Epic Orchestral Background
                    tags: orchestral, cinematic, epic
                    negative_tags: electronic, synth
                    vocal_gender: m
                    style_weight: 0.7
                    weirdness_constraint: 0.3
                    audio_weight: 0.65
      responses:
        '200':
          description: 任务提交成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitResponse'
components:
  schemas:
    SubmitRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: |-
            API 模型标识符。

            此接口必须为 `add-instrumental`。
          enum:
            - add-instrumental
          example: add-instrumental
        callback_url:
          type: string
          format: uri
          description: 接收结果通知的 Webhook 回调 URL
          example: https://your-domain.com/callback
        input:
          type: object
          required:
            - upload_url
            - title
            - tags
            - negative_tags
          description: 伴奏生成的输入参数
          properties:
            upload_url:
              type: string
              format: uri
              description: 待处理音频文件（通常是人声或旋律）的 URL。
              example: https://storage.example.com/vocals.mp3
            title:
              type: string
              description: |-
                生成音乐的名称。

                最多 100 个字符。
              maxLength: 100
              example: Relaxing Piano
            tags:
              type: string
              description: |-
                伴奏期望的音乐风格。

                可指定要包含的流派、情绪或乐器。
              example: relaxing, piano, soothing
            negative_tags:
              type: string
              description: |-
                生成时要排除的音乐风格或特征。

                指定输出中要避免的曲风、情绪或乐器。
              example: heavy metal, fast drums
            mv:
              type: string
              description: |-
                用于伴奏生成的 AI 模型版本。

                - **V6**：音乐表现力更强，人声更自然。
                - **V6_MINI**：轻量、快速。
                - **V6_WILD**：音乐表现更大胆、更有辨识度。
                - **V5_5**：按你的独特品味调校的个性化模型。
                - **V5**：音乐表现力更出色，生成速度更快
                - **V4_5PLUS**：音色更丰富，提供新的创作方式

                默认值：V4_5PLUS
              enum:
                - V4_5PLUS
                - V5
                - V5_5
                - V6
                - V6_MINI
                - V6_WILD
              example: V5_5
            vocal_gender:
              type: string
              description: |-
                生成人声时的首选人声性别。

                - `m`：男声
                - `f`：女声

                **注意**：此参数只能提高指定性别出现的概率，无法保证。
              enum:
                - m
                - f
              example: m
            style_weight:
              type: number
              description: |-
                控制指定风格对生成结果的影响强度。

                取值范围：0-1，最多 2 位小数。

                值越高，越贴合指定风格。
              minimum: 0
              maximum: 1
              example: 0.65
            weirdness_constraint:
              type: number
              description: |-
                控制实验性创意和非常规元素的程度。

                取值范围：0-1，最多 2 位小数。

                - 值较低：音乐更常规
                - 值较高：输出更具实验性和独特性
              minimum: 0
              maximum: 1
              example: 0.65
            audio_weight:
              type: number
              description: |-
                在音频特性与其他生成因素之间取得平衡。

                取值范围：0-1，最多 2 位小数。

                调整最终输出中对音质和声音特征的侧重。
              minimum: 0
              maximum: 1
              example: 0.65
    SubmitResponse:
      type: object
      required:
        - code
        - data
      properties:
        code:
          type: integer
          example: 200
          description: >-
            业务状态码。`200` 表示成功，其他值都表示请求失败。请务必检查这个字段：部分参数校验错误会以 HTTP 200 返回，响应体里的
            `code` 为 `400`。


            - `200`：成功

            - `400`：请求参数无效

            - `401`：API Key 缺失或无效

            - `402`：积分不足

            - `403`：没有权限

            - `404`：资源不存在

            - `408`：请求超时

            - `429`：请求频率超限

            - `500`：服务器内部错误

            - `502`：上游服务错误

            - `503`：服务暂不可用


            详见[错误码](/zh/api-manual/error-codes)。
          enum:
            - 200
            - 400
            - 401
            - 402
            - 403
            - 404
            - 408
            - 429
            - 500
            - 502
            - 503
        data:
          type: object
          required:
            - task_id
            - status
            - created_time
          properties:
            task_id:
              type: string
              example: task-unified-1757165031-uyujaw3d
              description: 任务唯一标识，用于查询任务状态
            status:
              type: string
              enum:
                - not_started
                - running
                - finished
                - failed
              example: not_started
              description: >-
                任务状态。提交后立即返回时始终为
                `not_started`。后续状态请通过[查询任务状态](/zh/api-manual/task-management/status)接口或
                `callback_url` 获取。


                - `not_started`：排队中，等待处理

                - `running`：生成中

                - `finished`：已完成，结果在 `files` 或 `output` 中

                - `failed`：失败，详情见 `error_message`
            created_time:
              type: string
              format: date-time
              example: '2025-11-12T10:30:00'
              description: 任务创建时间，ISO 8601 格式
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        所有 API 接口都需要 Bearer Token 认证。


        创建 API Key：登录 PoYo，进入 **仪表盘 → API
        密钥**（[poyo.ai/zh/dashboard/api-key](https://poyo.ai/zh/dashboard/api-key)），点击创建
        Key。


        在请求头中添加：


        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.