# 调整速度
> 变速处理，默认保持原音高，异步任务
> 倍速范围 0.25 到 4
> 与「淡入淡出」一样属于后期处理类操作
`POST /v1/music/generations/adjustSpeed`
## 认证
- `Authorization` (string / 必填) — 所有接口均使用 Bearer Token 进行认证。 获取 API Key：[访问控制台](https://api.oairoute.com/keys) 创建。 请求时在请求头中添加： ```http Authorization: Bearer YOUR_OAIRoute_KEY ```
## 引用源音轨
- `task_id` (string / 必填) — 产出源音轨那次任务的 id。缺失或源无法解析时，提交阶段即返回 400。
- `audio_index` (integer / 可选) — 指向源任务结果 `data.result.music[]` 中的第几首，默认 `1`，从 1 起始。单次生成通常 2 首。
> **Note:** 
> 引用旧作品无需额外记录 id，只需要 `task_id` 与 `audio_index`。
## 请求参数
- `model` (string / 可选) — 音频模型，默认 `suno`，当前仅此一个取值。
- `speed` (number / 必填) — 目标倍速，取值 0.25 到 4。缺失或越界会在提交阶段返回 400。
- `keep_pitch` (boolean / 可选) — 变速过程中是否保留原始音高，**默认 `true`**。
- `title` (string / 可选) — 结果标题，默认 `Untitled`。
## keep_pitch 的取舍
这是本接口最重要的一个参数。
| 取值 | 效果 | 适合 |
|---|---|---|
| `true`（默认） | 变速不变调，人声听起来还是同一个人 | 绝大多数场景 |
| `false` | 变速同时变调，加速变尖、减速变沉 | 特殊效果、chipmunk 风格、DJ 混音 |
想要「同一首歌更快但不变味」，保持默认即可。想要「加快后音色也变得更活泼」，才需要显式传 `false`。
## 倍速怎么选
| 倍速 | 听感 |
|---|---|
| 0.25 | 四分之一速，极慢，适合做氛围或教学 |
| 0.5 | 半速，明显拖长 |
| 0.85 到 0.95 | 稍慢，抒情感更强 |
| 1.0 | 原速 |
| 1.05 到 1.15 | 稍快，常用于短视频节奏 |
| 1.5 | 明显加快 |
| 2.0 以上 | 极快，接近鬼畜 |
短视频场景通常用 1.05 到 1.1，既提升节奏感又不至于失真。
> **Note:** 
> 本端点没有版本维度，传 `version` 会被丢掉，也不影响计费。
## 响应与轮询
- `code` (integer) — 响应状态码，成功为 200。
- `data[].status` (string) — 提交成功时为 `submitted`。
- `data[].task_id` (string) — 任务唯一标识，用于轮询 `GET /v1/music/tasks/{task_id}`。
轮询间隔 3 到 5 秒，典型耗时 30 到 120 秒。中间态 `pending` 或 `processing`，`progress` 为 0 到 100 整数，变化节点不固定。终态 `completed` 或 `failed`。
完成后从 `data.result.music[]` 读取处理后的 `audio_url`。失败原因见 `data.error.message`，预扣额度自动退回。
## 错误码
错误响应的格式、状态码与重试建议见[错误码与限流](../../../support/errors.html)，常见报错的排查步骤见[常见问题](../../../support/faq.html)。
## 使用示例
提交一个任务并拿到 `task_id`：
> **Note:** 
> 提交成功只表示任务已受理。真正的产物要拿返回的 `task_id` 去任务查询接口轮询，`status` 变成 `completed` 之后才有结果。
**调整速度{Adjust speed}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/music/generations/adjustSpeed' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "suno",
    "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
    "audio_index": 1,
    "speed": 1.25,
    "keep_pitch": true
  }'
```
**调整速度{Adjust speed}::Python**
```
import requests
res = requests.post(
    "https://api.oairoute.com/v1/music/generations/adjustSpeed",
    headers={
        "Authorization": "Bearer YOUR_OAIRoute_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "suno",
        "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
        "audio_index": 1,
        "speed": 1.25,
        "keep_pitch": True,
    },
)
print(res.json()["data"][0]["task_id"])
```
**调整速度{Adjust speed}::JavaScript**
```
const url = "https://api.oairoute.com/v1/music/generations/adjustSpeed";
const options = {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "suno",
    "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
    "audio_index": 1,
    "speed": 1.25,
    "keep_pitch": true
  }),
};
fetch(url, options)
  .then((res) => res.json())
  .then((json) => console.log(json))
  .catch((err) => console.error(err));
```
**200 调整速度{Adjust speed}**
```
{
  "code": 200,
  "data": [
    { "status": "submitted", "task_id": "task_01K8D44M0HP1GJWBJYZMKX1XS1" }
  ]
}
```
**变调加速{Pitch-shifted speedup}::cURL**
```
curl --request POST \
  --url 'https://api.oairoute.com/v1/music/generations/adjustSpeed' \
  --header 'Authorization: Bearer YOUR_OAIRoute_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "suno",
  "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
  "audio_index": 1,
  "speed": 1.6,
  "keep_pitch": false,
  "title": "加速版"
}'
```
**变调加速{Pitch-shifted speedup}::Python**
```
import requests
url = "https://api.oairoute.com/v1/music/generations/adjustSpeed"
headers = {
    "Authorization": "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
}
payload = {
      "model": "suno",
      "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
      "audio_index": 1,
      "speed": 1.6,
      "keep_pitch": false,
      "title": "加速版"
    }
res = requests.post(url, headers=headers, json=payload)
print(res.json())
```
**变调加速{Pitch-shifted speedup}::JavaScript**
```
const res = await fetch("https://api.oairoute.com/v1/music/generations/adjustSpeed", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_OAIRoute_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "suno",
    "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K",
    "audio_index": 1,
    "speed": 1.6,
    "keep_pitch": false,
    "title": "加速版"
  }),
});
console.log(await res.json());
```
**200 变调加速{Pitch-shifted speedup}**
```
{
  "code": 200,
  "data": [
    { "status": "submitted", "task_id": "task_01K8D44M0HP1GJWBJYZMKX1XS1" }
  ]
}
```
