> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vidgo.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.vidgo.ai/zh/api-manual/music-series/query-music-detail.md)接口获取结果。

## 使用指南

* 此接口将上传的音轨转换为新风格，同时保留原始旋律
* 上传音频文件并指定期望的转换风格
* 在应用新音乐特征的同时，保留原始旋律和结构

## 参数详情

* **音频上传要求**：

  * 上传的音频时长不得超过 **8 分钟**

  * **注意**：使用 V4\_5ALL 模型时，上传的音频时长不得超过 **1 分钟**

  * 通过 `upload_url` 提供指向音频文件的有效 URL

* 自定义模式（`custom_mode: true`）：

  * `style` 和 `title` 为**必填**

  * `instrumental` 为 `false` 时，`prompt` 为**必填**

  * 字符上限因模型而异：
    * **V4**：`prompt` 3000 个字符，`style` 200 个字符，`title` 80 个字符
    * **V4\_5 & V4\_5PLUS**：`prompt` 5000 个字符，`style` 1000 个字符，`title` 100 个字符
    * **V4\_5ALL**：`prompt` 5000 个字符，`style` 1000 个字符，`title` 80 个字符
    * **V5**：`prompt` 5000 个字符，`style` 1000 个字符，`title` 100 个字符

* 非自定义模式（`custom_mode: false`）：

  * `prompt` 为**必填**，用于描述期望的转换（最多 500 个字符）

  * `style` 和 `title` 应留空

## 使用说明

* 确保音频 URL 可公开访问，且文件时长不超过 8 分钟（V4\_5ALL 为 1 分钟）

* 为获得最佳效果，请使用旋律线清晰的高质量源音频

* `audio_weight` 参数有助于在保留原曲与应用新风格之间取得平衡

## 可选参数

* `negative_tags` (string)：翻唱时要排除的音乐风格或特征。

* `vocal_gender` (string)：人声性别偏好。`m` 为男声，`f` 为女声。注意：此参数只能提高概率，无法保证严格遵循。

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

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

* `audio_weight` (number)：保留原始音频特征的平衡权重。取值 0-1，最多 2 位小数。

* `persona_id` (string)：应用于翻唱曲目的 Persona ID。如何生成 persona\_id，请参阅 [generate-persona](https://docs.vidgo.ai/zh/api-manual/music-series/generate-persona.md)。


## OpenAPI

````yaml zh/api-manual/music-series/upload-and-cover-audio.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Upload and Cover Audio API
  description: 将音轨转换为新风格，同时保留原始旋律
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
    description: 生产环境
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Audio Cover
      summary: 提交上传并翻唱音频任务
      description: 将音轨转换为新风格，同时保留原始旋律
      operationId: submitUploadCoverAudioTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitRequest'
            examples:
              custom-mode:
                summary: 自定义模式 - 完全控制
                value:
                  model: upload-and-cover-audio
                  callback_url: https://your-domain.com/callback
                  input:
                    upload_url: https://cdn.vidgo.ai/temp/audio/my-track.mp3
                    prompt: Transform into an upbeat electronic dance version
                    style: EDM, Electronic
                    title: 舞曲混音
                    custom_mode: true
                    instrumental: false
                    mv: V5
                    negative_tags: Slow, Sad
                    style_weight: 0.8
              simple-mode:
                summary: 简单模式 - 基础翻唱
                value:
                  model: upload-and-cover-audio
                  callback_url: https://your-domain.com/callback
                  input:
                    upload_url: https://cdn.vidgo.ai/temp/audio/my-track.mp3
                    prompt: Create a jazz version of this track
                    custom_mode: false
                    instrumental: false
                    mv: V4_5PLUS
              instrumental:
                summary: 纯音乐翻唱
                value:
                  model: upload-and-cover-audio
                  callback_url: https://your-domain.com/callback
                  input:
                    upload_url: https://cdn.vidgo.ai/temp/audio/my-track.mp3
                    prompt: Epic orchestral transformation
                    style: Orchestral, Cinematic
                    title: 史诗管弦乐版
                    custom_mode: true
                    instrumental: true
                    mv: V5
      responses:
        '200':
          description: 任务提交成功
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitResponse'
components:
  schemas:
    SubmitRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          example: upload-and-cover-audio
        callback_url:
          type: string
          format: uri
          description: |-
            用于接收结果通知的 Webhook 回调 URL。

            接收任务完成更新的接口。
          example: https://your-domain.com/callback
        input:
          type: object
          required:
            - upload_url
            - prompt
            - custom_mode
            - instrumental
            - mv
          description: 音频翻唱生成的输入参数
          properties:
            upload_url:
              type: string
              format: uri
              description: >-
                上传音频文件的 URL，无论 `custom_mode` 和 `instrumental` 为 true 还是 false
                都必填。


                确保上传的音频时长不超过 8 分钟。


                **注意**：使用 V4_5ALL 模型时，上传的音频时长不得超过 1 分钟。
              example: https://cdn.vidgo.ai/temp/audio/my-track.mp3
            prompt:
              type: string
              description: >-
                对期望风格转换的描述。


                - 自定义模式（`custom_mode: true`）：`instrumental` 为 `false` 时必填。prompt
                会作为歌词内容。


                - 非自定义模式（`custom_mode: false`）：始终必填。prompt 作为转换的核心创意。


                各模型字符上限：

                - **V4**：最多 3000 个字符

                - **V4_5 & V4_5PLUS**：最多 5000 个字符

                - **V4_5ALL**：最多 5000 个字符

                - **V5**：最多 5000 个字符
              maxLength: 5000
              example: Transform into an upbeat electronic dance version
            style:
              type: string
              description: |-
                翻唱版本的音乐风格说明。

                `custom_mode` 为 `true` 时必填。

                各模型字符上限：
                - **V4**：最多 200 个字符
                - **V4_5 & V4_5PLUS**：最多 1000 个字符
                - **V4_5ALL**：最多 1000 个字符
                - **V5**：最多 1000 个字符
              maxLength: 200
              example: EDM, Electronic
            title:
              type: string
              description: |-
                翻唱曲目的标题。

                `custom_mode` 为 `true` 时必填。

                各模型字符上限：
                - **V4**：最多 80 个字符
                - **V4_5 & V4_5PLUS**：最多 100 个字符
                - **V4_5ALL**：最多 80 个字符
                - **V5**：最多 100 个字符
              maxLength: 80
              example: Dance Remix
            custom_mode:
              type: boolean
              description: |-
                启用高级参数自定义模式。

                - 为 `true` 时：可完全控制风格、标题等参数。`style` 和 `title` 变为必填字段。

                - 为 `false` 时：简化模式，只需 `prompt` 即可进行风格转换。
              example: true
            instrumental:
              type: boolean
              description: |-
                指定输出是否为纯音乐（无人声）。

                - 为 `true` 时：生成不含任何人声的纯音乐曲目。

                - 为 `false` 时：基于原曲生成带人声的音乐。
              example: false
            mv:
              type: string
              description: |-
                用于音频翻唱生成的 AI 模型版本。

                - **V5**：音乐表现力更出色，生成更快。
                - **V4_5PLUS**：音色更丰富，创作方式更多，最长 8 分钟。
                - **V4_5**：提示词理解更智能，生成更快，最长 8 分钟。
                - **V4_5ALL**：提示词理解更智能，生成更快，最长 8 分钟。
                - **V4**：人声质量提升，最长 4 分钟。
              enum:
                - V4
                - V4_5
                - V4_5ALL
                - V4_5PLUS
                - V5
              example: V5
            negative_tags:
              type: string
              description: |-
                翻唱中要排除的音乐风格或特征。

                指定输出中要避免的流派、情绪或乐器。
              example: Slow, Sad
            vocal_gender:
              type: string
              description: |-
                翻唱版本的偏好人声性别。

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

                仅在 `instrumental` 为 `false` 时生效。

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

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

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

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

                - 值较低：音乐更常规
                - 值较高：输出更具实验性和独特性
              minimum: 0
              maximum: 1
              example: 0.5
            audio_weight:
              type: number
              description: |-
                平衡原始音频特征的保留程度。

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

                值越高，保留的原始旋律和结构越多。
              minimum: 0
              maximum: 1
              example: 0.7
            persona_id:
              type: string
              description: >-
                应用于翻唱曲目的 Persona ID。


                仅在启用自定义模式（`custom_mode: true`）时可用。


                用于为音频翻唱应用特定的 Persona 风格。


                如何生成 persona_id，请参阅
                [generate-persona](/zh/api-manual/music-series/generate-persona)。
              example: persona_456
    SubmitResponse:
      type: object
      required:
        - code
        - data
      properties:
        code:
          type: integer
          example: 200
          description: HTTP 状态码
        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
              example: not_started
              description: 初始任务状态
            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：


        进入 **仪表盘 → API 密钥**（[API Key
        管理页面](https://vidgo.ai/apis/dashboard/api-key)）获取你的 API Key


        在请求头中添加：


        ```

        Authorization: Bearer VIDGO_API_KEY

        ```

````

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