SnipHunter API

Audio

音频处理、ASR、语音合成、克隆与变声。

Base URL https://api.sniphunter.com

OpenAPI JSON · 完整 Markdown

请求与响应中的 $ref 在 OpenAPI 的 components 中定义。

40 个接口

Audio

POST/api/v1/audio/ai/alignAlign Audio

词级强制对齐 输入音频 URL + 已有转写文本,返回词/句时间戳列表。 可与 /transcribe 组合:先转写再对齐。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AlignRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/enhanceEnhance Audio

人声增强 / 音频 AI 增强 mode: enhance | denoise engine: mossformer2-se-sr(默认)| resemble

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EnhanceRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/statusGet Ai Status

获取 AI 服务状态

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/ai/transcribeTranscribe Audio

语音转文字 (STT / ASR) 使用 Qwen3-ASR。可选 with_align=true 调用 forced-align 补词级时间戳。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TranscribeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/ttsText To Speech

文字转语音 (TTS) — EdgeTTS / Qwen3-TTS

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TTSRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/tts/voicesGet Tts Voices

获取可用的 TTS 语音列表。 category: sample(Edge 全量→Qwen3 克隆)| qwen3 | edge | all locale: 语种前缀或完整 locale(zh / zh-CN / en / en-US) q: 搜索关键字 用户克隆音色请用 GET /tts/voices/mine(需登录)。 额外返回 languages:按语种聚合的数量,便于前端国际化语言选择。

{
  "parameters": [
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "category",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Category"
      }
    },
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/tts/voices/mineGet My Tts Voices

获取当前用户已保存的克隆音色(文字配音「我的克隆」)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
DELETE/api/v1/audio/ai/tts/voices/mine/{voice_id}Delete My Tts Voice

删除我的克隆音色。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "voice_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "integer",
        "title": "Voice Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/vocal-separateVocal Separate

人声/伴奏分离 使用 Demucs AI 模型分离音频中的人声和背景音乐。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VocalSeparateRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/voice-change/presetsList Voice Change Presets

检索常用变声目标音色示例(Qwen3-TTS 合成,可试听)。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/ai/voice-change/presets/{preset_id}Get Voice Change Preset

单个变声预设;默认合成/返回 Qwen3 试听音。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "preset_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Preset Id"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": true,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-cloneVoice Clone

音色克隆合成(Qwen3-TTS) 用参考音频即时克隆并合成 text;默认写入「我的克隆」音色库, 供文字配音通过 prompt_audio_url 复用。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__audio__ai__VoiceCloneRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-convertVoice Convert

音频变声(Seed-VC) 将 source 音频内容转为参考音色;可用 preset_id(Qwen3 合成示例)或自定义 reference_url。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceConvertRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-designVoice Design

音色设计试听(Qwen3-TTS VoiceDesign) 用自然语言 instruct 描述音色并合成试听音频;确认后调用 POST /voice-design/save 写入「我的克隆」,供文字配音复用。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceDesignRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/ai/voice-design/saveSave Voice Design

确认使用设计音色:将试听音频作为参考音写入「我的克隆」。 不额外合成;后续文字配音通过 prompt_audio_url + Base 模型克隆复用。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceDesignSaveRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/convertConvert Format

音频格式转换

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ConvertFormatRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/extractExtract Audio

从视频提取音频

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtractAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/basic/formatsGet Supported Formats

获取支持的音频格式

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/basic/mergeMerge Audio

音频拼接

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MergeAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/mixMix Audio

混音(添加背景音乐)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/MixAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/splitSplit Audio

按时间切分音频(固定时长或等分 N 段)

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SplitAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/basic/trimTrim Audio

音频裁剪

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TrimAudioRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/denoiseDenoise Audio

AI 音频降噪:engine=resemble(默认)| mossformer2-se

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/DenoiseRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/effects/effectsList Voice Effects

常用变声目标音色(Seed-VC 预设;兼容旧 effects 字段名)。

{
  "parameters": [
    {
      "name": "q",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Q"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    },
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "ensure",
      "in": "query",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false,
        "title": "Ensure"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/fadeFade Audio

淡入淡出

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FadeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/speedChange Speed

变速

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SpeedRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/voice-effectApply Voice Effect

变声效果

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceEffectRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/effects/volumeAdjust Volume

调整音量

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VolumeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/enhanceCreate Audio Enhance Task

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AudioEnhanceTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/transcribeCreate Transcribe Task

语音转写:提交时校验配额,成功后扣减

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TranscribeTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/vocal-separateCreate Vocal Separate Task

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VocalSeparateTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/tasks/voice-convertCreate Voice Convert Task

音频变声(Seed-VC):预设音色或自定义参考音。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceConvertTaskRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AsyncTaskCreateResponse"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/statusGet Voiceover Status

获取配音服务状态 (EdgeTTS)

{
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/synthesizeSynthesize Voiceover

配音合成(支持多段精细配置) - 支持多段文本分别设置音色、语速、音调 - 支持段落间停顿控制 - 支持合并或分段输出 VIP 专属功能。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VoiceoverSynthesizeRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/ttsSimple Tts

简单文字转语音 EdgeTTS(默认)或 Qwen3-TTS;提供 prompt_audio_url 时走克隆合成。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimpleTTSRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/voicesGet Voices

获取可用音色列表 包括系统预设音色和用户克隆的音色。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "locale",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Locale"
      }
    },
    {
      "name": "gender",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ],
        "title": "Gender"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/voices/cloneClone Voice

音色克隆合成(Qwen3-TTS) 用参考音频即时克隆并合成 text;默认写入「我的克隆」音色库。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/src__api__v1__endpoints__audio__voiceover__VoiceCloneRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
POST/api/v1/audio/voiceover/voices/clone/uploadClone Voice Upload

上传参考音频并克隆合成。 支持 WAV、MP3、M4A,最大 10MB。需提供 text。默认写入音色库。VIP 专属。

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "requestBody": {
    "content": {
      "multipart/form-data": {
        "schema": {
          "$ref": "#/components/schemas/Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}
GET/api/v1/audio/voiceover/voices/myGet My Voices

获取我的克隆音色列表

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    }
  }
}
DELETE/api/v1/audio/voiceover/voices/{voice_id}Delete Voice

删除克隆音色(支持数字 id 或 clone_{id})

{
  "security": [
    {
      "HTTPBearer": []
    }
  ],
  "parameters": [
    {
      "name": "voice_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "title": "Voice Id"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {}
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}

数据模型

展开 components
{
  "schemas": {
    "AlignRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "transcript": {
          "type": "string",
          "minLength": 1,
          "title": "Transcript",
          "description": "已有转写文本"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language",
          "description": "对齐语言",
          "default": "Chinese"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "transcript"
      ],
      "title": "AlignRequest",
      "description": "词级对齐请求"
    },
    "AsyncTaskCreateResponse": {
      "properties": {
        "success": {
          "type": "boolean",
          "title": "Success",
          "default": true
        },
        "task_id": {
          "type": "integer",
          "title": "Task Id"
        },
        "status": {
          "type": "string",
          "title": "Status",
          "default": "pending"
        },
        "message": {
          "type": "string",
          "title": "Message",
          "default": "任务已提交,正在处理中"
        },
        "progress_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Progress Token"
        },
        "estimated_time_seconds": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Estimated Time Seconds"
        },
        "created_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created At"
        }
      },
      "type": "object",
      "required": [
        "task_id"
      ],
      "title": "AsyncTaskCreateResponse"
    },
    "AudioEnhanceTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "mode": {
          "type": "string",
          "enum": [
            "enhance",
            "denoise"
          ],
          "title": "Mode",
          "description": "enhance=人声增强; denoise=转调 Moss 降噪",
          "default": "enhance"
        },
        "engine": {
          "type": "string",
          "enum": [
            "mossformer2-se-sr",
            "resemble"
          ],
          "title": "Engine",
          "description": "mossformer2-se-sr=SE→SR+低频回填(默认); resemble=CFM+低频回填",
          "default": "mossformer2-se-sr"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "AudioEnhanceTaskRequest"
    },
    "Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "default": true
        },
        "audio_file": {
          "type": "string",
          "format": "binary",
          "title": "Audio File"
        }
      },
      "type": "object",
      "required": [
        "text",
        "audio_file"
      ],
      "title": "Body_clone_voice_upload_api_v1_audio_voiceover_voices_clone_upload_post"
    },
    "ConvertFormatRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "bitrate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Bitrate"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "ConvertFormatRequest",
      "description": "音频格式转换请求"
    },
    "DenoiseRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "enum": [
            "resemble",
            "mossformer2-se"
          ],
          "title": "Engine",
          "description": "resemble=Resemble UNet;mossformer2-se=MossFormer enhance_wav",
          "default": "resemble"
        },
        "strength": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Strength",
          "description": "已废弃,忽略"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "DenoiseRequest",
      "description": "音频降噪请求:resemble(默认)| mossformer2-se"
    },
    "EnhanceRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "mode": {
          "type": "string",
          "enum": [
            "enhance",
            "denoise"
          ],
          "title": "Mode",
          "description": "enhance=人声增强; denoise=转调 Moss 降噪",
          "default": "enhance"
        },
        "engine": {
          "type": "string",
          "enum": [
            "mossformer2-se-sr",
            "resemble"
          ],
          "title": "Engine",
          "description": "mossformer2-se-sr(默认)| resemble",
          "default": "mossformer2-se-sr"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "EnhanceRequest",
      "description": "人声增强 / 音频增强请求"
    },
    "ExtractAudioRequest": {
      "properties": {
        "video_url": {
          "type": "string",
          "minLength": 1,
          "title": "Video Url"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "video_url"
      ],
      "title": "ExtractAudioRequest",
      "description": "从视频提取音频请求"
    },
    "FadeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "fade_in_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade In Duration",
          "description": "淡入时长(秒)",
          "default": 1.0
        },
        "fade_out_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade Out Duration",
          "description": "淡出时长(秒)",
          "default": 1.0
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "FadeRequest",
      "description": "淡入淡出请求"
    },
    "HTTPValidationError": {
      "properties": {
        "detail": {
          "items": {
            "$ref": "#/components/schemas/ValidationError"
          },
          "type": "array",
          "title": "Detail"
        }
      },
      "type": "object",
      "title": "HTTPValidationError"
    },
    "MergeAudioRequest": {
      "properties": {
        "audio_urls": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "minItems": 2,
          "title": "Audio Urls"
        },
        "interval": {
          "type": "number",
          "minimum": 0.0,
          "title": "Interval",
          "default": 0.0
        },
        "fade_duration": {
          "type": "number",
          "minimum": 0.0,
          "title": "Fade Duration",
          "default": 0.5
        },
        "crossfade": {
          "type": "boolean",
          "title": "Crossfade",
          "default": false
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_urls"
      ],
      "title": "MergeAudioRequest",
      "description": "音频拼接请求"
    },
    "MixAudioRequest": {
      "properties": {
        "main_audio_url": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Main Audio Url"
        },
        "background_audio_url": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Background Audio Url"
        },
        "original_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Audio Url"
        },
        "background_music_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Background Music Url"
        },
        "main_volume": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Main Volume",
          "default": 1.0
        },
        "background_volume": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Background Volume",
          "default": 0.3
        },
        "original_volume": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 3.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Volume"
        },
        "bgm_volume": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 3.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Bgm Volume"
        },
        "main_delay": {
          "type": "number",
          "minimum": 0.0,
          "title": "Main Delay",
          "default": 0.0
        },
        "original_delay": {
          "anyOf": [
            {
              "type": "number",
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Original Delay"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "title": "MixAudioRequest",
      "description": "混音请求(添加背景音乐)\n\n兼容前端历史字段名:original_audio_url / background_music_url 等。"
    },
    "SegmentConfig": {
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "title": "Text",
          "description": "文本内容"
        },
        "voice_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Id",
          "description": "音色ID,为空则使用全局音色"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速 (0.5-2.0)",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调 (-12 ~ +12)",
          "default": 0.0
        },
        "pause_after": {
          "type": "number",
          "maximum": 5.0,
          "minimum": 0.0,
          "title": "Pause After",
          "description": "句后停顿(秒)",
          "default": 0.0
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "情感: happy, sad, neutral, angry"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "SegmentConfig",
      "description": "单句配置"
    },
    "SimpleTTSRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要合成的文本"
        },
        "voice_id": {
          "type": "string",
          "title": "Voice Id",
          "description": "音色ID",
          "default": "xiaoxiao"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调",
          "default": 0.0
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "情感(qwen3)"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "title": "Engine",
          "description": "edge | qwen3",
          "default": "edge"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "qwen3 指令"
        },
        "prompt_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Audio Url",
          "description": "参考音频;有值时走 Qwen3 克隆合成"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "SimpleTTSRequest",
      "description": "简单 TTS 请求(Edge / Qwen3)"
    },
    "SpeedRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "speed_factor": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed Factor",
          "description": "速度倍数"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "speed_factor"
      ],
      "title": "SpeedRequest",
      "description": "变速请求"
    },
    "SplitAudioRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "segment_duration": {
          "type": "number",
          "maximum": 3600.0,
          "exclusiveMinimum": 0.0,
          "title": "Segment Duration",
          "description": "每段时长(秒)",
          "default": 30.0
        },
        "parts": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 100.0,
              "minimum": 2.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Parts",
          "description": "等分为 N 段(优先)"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "max_segments": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Max Segments",
          "default": 50
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "SplitAudioRequest",
      "description": "音频按时间分割请求"
    },
    "TTSRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text"
        },
        "voice": {
          "type": "string",
          "title": "Voice",
          "description": "音色ID:Edge ShortName / 旧短 id / vivian 等 Qwen speaker / edge: 前缀",
          "default": "zh-CN-XiaoxiaoNeural"
        },
        "speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Speed",
          "description": "语速 (0.5-2.0)",
          "default": 1.0
        },
        "pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Pitch",
          "description": "音调 (-12 ~ +12)",
          "default": 0.0
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        },
        "engine": {
          "type": "string",
          "enum": [
            "edge",
            "qwen3"
          ],
          "title": "Engine",
          "description": "edge=云端 EdgeTTS; qwen3=本地(内置 speaker 或 Edge 示例克隆)",
          "default": "qwen3"
        },
        "emotion": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Emotion",
          "description": "qwen3 情感/风格"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "qwen3 指令"
        },
        "prompt_audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Audio Url",
          "description": "参考音频 URL;有值时强制 qwen3 克隆合成"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本;克隆合成时提升相似度"
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "TTSRequest",
      "description": "文字转语音请求(EdgeTTS / Qwen3-TTS / 示例音色克隆)"
    },
    "TranscribeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language",
          "description": "语言代码,None 为自动检测"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式: text, srt, vtt",
          "default": "text"
        },
        "with_align": {
          "type": "boolean",
          "title": "With Align",
          "description": "为 True 时在转写后调用 forced-align 生成词级时间戳(更慢)",
          "default": false
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model",
          "description": "ASR 模型: auto=服务端默认尺寸(不按时长); qwen3=智能档(≤10min→1.7B, >10min→0.6B); qwen3-1.7b / qwen3-0.6b=强制指定"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "TranscribeRequest",
      "description": "语音转文字请求"
    },
    "TranscribeTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "language": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Language"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "text"
        },
        "with_align": {
          "type": "boolean",
          "title": "With Align",
          "default": false
        },
        "model": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Model"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "TranscribeTaskRequest"
    },
    "TrimAudioRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "start_time": {
          "type": "number",
          "minimum": 0.0,
          "title": "Start Time"
        },
        "end_time": {
          "type": "number",
          "exclusiveMinimum": 0.0,
          "title": "End Time"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "start_time",
        "end_time"
      ],
      "title": "TrimAudioRequest",
      "description": "音频裁剪请求"
    },
    "ValidationError": {
      "properties": {
        "loc": {
          "items": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "type": "array",
          "title": "Location"
        },
        "msg": {
          "type": "string",
          "title": "Message"
        },
        "type": {
          "type": "string",
          "title": "Error Type"
        }
      },
      "type": "object",
      "required": [
        "loc",
        "msg",
        "type"
      ],
      "title": "ValidationError"
    },
    "VocalSeparateRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "strategy": {
          "type": "string",
          "title": "Strategy",
          "description": "分离策略: auto, demucs, spleeter",
          "default": "auto"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "VocalSeparateRequest",
      "description": "人声分离请求"
    },
    "VocalSeparateTaskRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "strategy": {
          "type": "string",
          "title": "Strategy",
          "default": "auto"
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "default": "mp3"
        }
      },
      "type": "object",
      "required": [
        "audio_url"
      ],
      "title": "VocalSeparateTaskRequest"
    },
    "VoiceConvertRequest": {
      "properties": {
        "source_url": {
          "type": "string",
          "minLength": 1,
          "title": "Source Url",
          "description": "源说话音频 URL"
        },
        "reference_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference Url",
          "description": "自定义目标音色参考音频 URL;与 preset_id 二选一"
        },
        "preset_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Preset Id",
          "description": "常用变声预设(Qwen3-TTS 合成参考音)"
        },
        "version": {
          "type": "string",
          "enum": [
            "v1",
            "v2"
          ],
          "title": "Version",
          "description": "Seed-VC 版本:v1=DiT;v2=CFM+AR(口音/情感)",
          "default": "v1"
        }
      },
      "type": "object",
      "required": [
        "source_url"
      ],
      "title": "VoiceConvertRequest",
      "description": "音频变声(Seed-VC)请求"
    },
    "VoiceConvertTaskRequest": {
      "properties": {
        "source_url": {
          "type": "string",
          "minLength": 1,
          "title": "Source Url"
        },
        "reference_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Reference Url",
          "description": "自定义目标音色参考音频;与 preset_id 二选一"
        },
        "preset_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Preset Id",
          "description": "常用变声预设 id(Qwen3-TTS 合成参考音)"
        },
        "version": {
          "type": "string",
          "enum": [
            "v1",
            "v2"
          ],
          "title": "Version",
          "description": "Seed-VC 版本:v1=DiT;v2=CFM+AR",
          "default": "v1"
        }
      },
      "type": "object",
      "required": [
        "source_url"
      ],
      "title": "VoiceConvertTaskRequest",
      "description": "音频变声(Seed-VC):参考音或预设音色。"
    },
    "VoiceDesignRequest": {
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "试听文案"
        },
        "instruct": {
          "type": "string",
          "maxLength": 1000,
          "minLength": 1,
          "title": "Instruct",
          "description": "音色自然语言描述,如:30岁成熟男声,低沉温和"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "可选标签名"
        }
      },
      "type": "object",
      "required": [
        "text",
        "instruct"
      ],
      "title": "VoiceDesignRequest",
      "description": "自然语言音色设计试听(Qwen3 VoiceDesign)"
    },
    "VoiceDesignSaveRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url",
          "description": "设计试听音频 URL(作为克隆参考音)"
        },
        "prompt_text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Prompt Text",
          "description": "试听文案(与 audio_url 对齐,供后续 Base 克隆)"
        },
        "instruct": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 1000
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruct",
          "description": "音色描述,写入元数据"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "音色库名称"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "语言",
          "default": "Chinese"
        },
        "gender": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Gender",
          "description": "male / female,可选"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "prompt_text"
      ],
      "title": "VoiceDesignSaveRequest",
      "description": "将试听通过的设计音色写入「我的克隆」"
    },
    "VoiceEffectRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "effect": {
          "type": "string",
          "title": "Effect",
          "description": "效果类型: male, female, child, robot, echo"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "effect"
      ],
      "title": "VoiceEffectRequest",
      "description": "变声请求"
    },
    "VoiceoverSynthesizeRequest": {
      "properties": {
        "segments": {
          "items": {
            "$ref": "#/components/schemas/SegmentConfig"
          },
          "type": "array",
          "maxItems": 100,
          "minItems": 1,
          "title": "Segments",
          "description": "段落列表"
        },
        "global_voice_id": {
          "type": "string",
          "title": "Global Voice Id",
          "description": "全局默认音色",
          "default": "xiaoxiao"
        },
        "global_speed": {
          "type": "number",
          "maximum": 2.0,
          "minimum": 0.5,
          "title": "Global Speed",
          "description": "全局默认语速",
          "default": 1.0
        },
        "global_pitch": {
          "type": "number",
          "maximum": 12.0,
          "minimum": -12.0,
          "title": "Global Pitch",
          "description": "全局默认音调",
          "default": 0.0
        },
        "output_format": {
          "type": "string",
          "title": "Output Format",
          "description": "输出格式: mp3, wav",
          "default": "mp3"
        },
        "merge_segments": {
          "type": "boolean",
          "title": "Merge Segments",
          "description": "是否合并为单个文件",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "segments"
      ],
      "title": "VoiceoverSynthesizeRequest",
      "description": "配音合成请求(多段)"
    },
    "VolumeRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url"
        },
        "volume_factor": {
          "type": "number",
          "maximum": 3.0,
          "minimum": 0.0,
          "title": "Volume Factor",
          "description": "音量倍数,1.0为原始音量"
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "volume_factor"
      ],
      "title": "VolumeRequest",
      "description": "音量调整请求"
    },
    "src__api__v1__endpoints__audio__ai__VoiceCloneRequest": {
      "properties": {
        "audio_url": {
          "type": "string",
          "minLength": 1,
          "title": "Audio Url",
          "description": "参考音频 URL"
        },
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要用克隆音色合成的文本"
        },
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "可选标签;写入音色库名称"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "description": "合成成功后是否保存到「我的克隆」音色库,供文字配音复用",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "audio_url",
        "text"
      ],
      "title": "VoiceCloneRequest",
      "description": "音色克隆合成(Qwen3 即时克隆 + 写入可复用音色库)"
    },
    "src__api__v1__endpoints__audio__voiceover__VoiceCloneRequest": {
      "properties": {
        "voice_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Voice Name",
          "description": "音色标签"
        },
        "audio_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Audio Url",
          "description": "参考音频URL"
        },
        "text": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "title": "Text",
          "description": "要用克隆音色合成的文本"
        },
        "prompt_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Prompt Text",
          "description": "参考音频对应文本(可选)"
        },
        "language": {
          "type": "string",
          "title": "Language",
          "description": "合成语言",
          "default": "Chinese"
        },
        "save_voice": {
          "type": "boolean",
          "title": "Save Voice",
          "description": "是否保存到「我的克隆」音色库",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "text"
      ],
      "title": "VoiceCloneRequest",
      "description": "音色克隆合成请求(Qwen3 即时克隆 + 写入可复用音色库)"
    }
  },
  "securitySchemes": {
    "HTTPBearer": {
      "type": "http",
      "scheme": "bearer"
    }
  }
}