# 修改、延续操作

{% hint style="danger" %}
此文档已停止维护，最新文档地址：<https://docs.ttapi.io>
{% endhint %}

### 音乐延伸

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/extend`

延伸生成音乐返回的两首歌其中的一首

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>歌曲ID，需要延长的歌曲</td></tr><tr><td>continue_at</td><td>number</td><td>是</td><td>延长的歌曲从上一首歌曲的多少秒开始延长，单位秒</td></tr><tr><td>prompt</td><td>string</td><td>否</td><td>歌词，自定义模式专用</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题，自定义模式专用</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签，自定义模式专用</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间，自定义模式专用</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间，自定义模式专用</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间，自定义模式专用</td></tr><tr><td>auto_lyrics</td><td>boolean</td><td>否</td><td>是否自动生成歌词<br>自定义模式专用。<br><code>false</code> - 使用输入的歌词生成音乐<br><code>true</code> - 根据输入的歌词进行二次创作，与灵感模式提示词效果一致<br>默认<code>false</code></td></tr><tr><td>vocal_gender</td><td>string</td><td>否</td><td>音色性别 <br><code>Male</code> - 男性<br><code>Female</code> - 女性</td></tr><tr><td>persona_id</td><td>string</td><td>否</td><td>歌手风格ID</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取完整音乐【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/concat`

获取延长音乐后的完整音乐内容，**此接口免费**

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>歌曲ID，上一步返回的music_id</td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取歌词时间线【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/alignedLyrics`

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的musicId，注意<strong>非jobId</strong></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "success",
  "data": {
    "alignment": [
      {
        "end_s": 0.4787234042553192,
        "p_align": 1,
        "start_s": 0.39893617021276595,
        "success": true,
        "word": "[female voice][female vocals][verse]\nЧто"
      },
      {
        "end_s": 0.5585106382978724,
        "p_align": 1,
        "start_s": 0.4787234042553192,
        "success": true,
        "word": "б"
      },
      ...
     ]
   }
}   
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取音乐视频【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/generateVideo`

根据任务结果，生成音乐对应的视频，此接口为**免费接口**

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的musicId，注意<strong>非jobId</strong></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "videoUrl": "https://cdn1.suno.ai/f01dcb24-d479-4f00-9a71-958792e23212.mp4",
        "status": "complete"
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取音乐WAV文件【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/wav`

根据任务结果，生成音乐对应的wav文件，此接口为**免费接口**

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的musicId，注意<strong>非jobId</strong></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "wavUrl": "https://cdn1.suno.ai/2ecd43e6-7a6a-4eb1-b203-1125493ed887.wav"
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 词曲分离

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/stems`

根据任务结果，生成4条音频，实现歌词与背景音乐分离[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)，

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的musicId，注意<strong>非jobId</strong></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}
{% endtabs %}

### 全轨道词曲分离

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/stems-all`

根据任务结果，生成24条音频，实现歌词与背景音乐分离，把音乐中所有乐器和歌词声音进行分离 [定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)，

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的musicId，注意<strong>非jobId</strong></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}
{% endtabs %}

### 音乐翻版

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/cover` &#x20;

音乐翻版，修改风格，可使用suno生成或者你自己上传的音&#x4E50;**，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>返回在每条歌曲数组中的<strong>musicId</strong>或者通过上传返回的<strong>music_id</strong>，注意<strong>非jobId</strong></td></tr><tr><td>custom</td><td>boolean</td><td>是</td><td>音频是否自定义<br>true - 音频将从歌词中生成<br>false - 音频将根据提示生成</td></tr><tr><td>mv</td><td>string</td><td>是</td><td><p>使用模型<br>suno使用模型，支持 <code>chirp-v3-0</code> <code>chirp-v3-5</code> <code>chirp-v4</code> <code>chirp-v4-5</code></p><p><code>chirp-v4-5+</code>  <code>chirp-v5</code> <br><br><code>chirp-v4-5-all</code><br></p></td></tr><tr><td>prompt</td><td>string</td><td>否</td><td>歌词</td></tr><tr><td>gpt_description_prompt</td><td>string</td><td>否</td><td>灵感模式提示词</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用，最大长度200字符</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>vocal_gender</td><td>string</td><td>否</td><td>音色性别 <br><code>Male</code> - 男性<br><code>Female</code> - 女性</td></tr><tr><td>persona_id</td><td>string</td><td>否</td><td>歌手风格ID</td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 添加声线

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/add-vocals` &#x20;

添加音乐声线，**只能对自己上传的音乐进行此操作，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>custom</td><td>boolean</td><td>是</td><td>音频是否自定义<br><br>true - 音频将从歌词中生成<br>false - 音频将根据提示生成</td></tr><tr><td>music_id</td><td>string</td><td>是</td><td>通过上传返回的<strong>music_id</strong>，注意<strong>非jobId</strong></td></tr><tr><td>gpt_description_prompt</td><td>string</td><td>是</td><td>灵感模式提示词</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型<br><code>chirp-v4-5+</code>   <code>chirp-v5</code></td></tr><tr><td>prompt</td><td>string</td><td>是</td><td>歌词</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用，最大长度200字符</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>vocal_gender</td><td>string</td><td>否</td><td>音色性别 <br><code>Male</code> - 男性<br><code>Female</code> - 女性</td></tr><tr><td>overpainting_start_s</td><td>number</td><td>否</td><td>上传音乐添加人声的开始时间,<br>默认为0  单位秒</td></tr><tr><td>overpainting_end_s</td><td>number</td><td>否</td><td>上传的歌曲添加人声的结束时间<br>必须小于歌曲的总时长<br>单位秒</td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 添加伴奏

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/add-instrumental` &#x20;

添加音乐伴奏，**只能对自己上传的音乐进行此操作，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>custom</td><td>boolean</td><td>是</td><td>音频是否自定义<br><br>true - 音频将从歌词中生成<br>false - 音频将根据提示生成</td></tr><tr><td>music_id</td><td>string</td><td>是</td><td>通过上传返回的<strong>music_id</strong>，注意<strong>非jobId</strong></td></tr><tr><td>gpt_description_prompt</td><td>string</td><td>否</td><td>灵感模式提示词</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型<br><code>chirp-v4-5+</code>  <code>chirp-v5</code>   <br></td></tr><tr><td>prompt</td><td>string</td><td>否</td><td>歌词</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用，最大长度200字符</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>underpainting_start_s</td><td>number</td><td>否</td><td>上传音乐添加人声的开始时间,<br>默认为0  单位秒</td></tr><tr><td>underpainting_end_s</td><td>number</td><td>否</td><td>上传的歌曲添加人声的结束时间<br>必须小于歌曲的总时长<br>单位秒</td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 替换片段

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/replace-section` &#x20;

**替换歌词片段生成新的音乐，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

{% hint style="info" %}
提示：替换的歌词 要跟原来的歌词有重复的地方，最好相应的时间能对应上

\
infill\_lyrics：表示你要填充或替换进去的“最新歌词片段”。\
prompt：表示上下文，需要把“新歌词”前后的原歌词拼接起来。

\
例子：原歌词是 \[Verse 1]AA \[Chorus]BB \[Verse 2] <mark style="color:red;">**CC**</mark> \[Chorus]DD \[Outro]EE，如果你想把 <mark style="color:red;">**CC**</mark> 替换为 **OO**\
\
infill\_lyrics 就传 OO（要替换的新歌词）。\
prompt 就传 BB \[Verse 2]OO\[Chorus]DD （在新歌词 OO 前后，保留一部分原歌词，拼成上下文）。

这样就能根据 prompt 的上下文和 infill\_lyrics 的新歌词片段，生成最佳的结果。
{% endhint %}

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>音乐ID</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型 <code>chirp-v4-5+</code>  <code>chirp-v4-5</code><br><code>chirp-v4</code>  <code>chirp-v5</code><br>默认<code>chirp-v4-5+</code>  </td></tr><tr><td>prompt</td><td>string</td><td>否</td><td><strong>上下文歌词</strong></td></tr><tr><td>infill_lyrics</td><td>string</td><td>否</td><td>新歌词</td></tr><tr><td>infill_start_s</td><td>number</td><td>是</td><td>开始替换时间，单位：秒</td></tr><tr><td>infill_end_s</td><td>number</td><td>是</td><td>结束替换时间，单位：秒</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不想要的风格</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取音乐MIDI文件

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/gen-midi`

获取生成音乐对应的MIDI文件，[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td><p>通过 <strong>stems-词曲分离</strong> 或 <strong>all-stems-全轨声曲分离</strong> 获取其中的一首歌的 music_id<br></p><p><strong>注意：</strong></p><ol><li>普通音乐的 music_id 也能执行，官网只支持词曲分离和全轨分离任务的 music_id</li><li>不可跨账号执行，任务存在有效时限</li></ol></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200（生成中）" %}

```json
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "state": "running"
    }
}
```

{% endtab %}

{% tab title="200（成功）" %}

```
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "state": "complete",
        "instruments": [
            {
                "name": "Synth Voice",
                "notes": [
                    {
                        "pitch": 60, "start": 11.166666666666666, "end": 11.333333333333334, "velocity": 0.49606299212598426
                    },
                    {
                        "pitch": 60, "start": 11.5, "end": 11.666666666666666, "velocity": 0.49606299212598426
                    },
                    {
                        "pitch": 60, "start": 11.833333333333334, "end": 12, "velocity": 0.49606299212598426
                    },
                    {
                        "pitch": 58, "start": 12.166666666666666, "end": 12.333333333333334, "velocity": 0.49606299212598426
                    },
                    {
                        "pitch": 58, "start": 12.5, "end": 12.666666666666666, "velocity": 0.49606299212598426
                    },
                    {
                        "pitch": 60, "start": 12.833333333333334, "end": 13, "velocity": 0.49606299212598426
                    },
                    ...
                ]
            }
        ]
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 重制音乐

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/remaster`&#x20;

> 对生成的音乐进行重制，音质提升，对用Suno AI Remaster功能

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>生成接口返回的musicId，不可跨账号，账号用光下线后将不可调用，如需要相关操作请尽快执行</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型 <code>chirp-v4-5+</code>  <code>chirp-v4</code> <code>chirp-v5</code><br>默认<code>chirp-v5</code> </td></tr><tr><td>variation_category</td><td>string</td><td>否</td><td>控制歌曲被转换程度，chirp-v5 模型下支持此参数<br>可选范围：<code>subtle</code>  <code>normal</code>  <code>high</code></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
       "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 歌手风格自定义【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/persona`

> 根据歌曲提取歌手风格ID

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>音乐ID</td></tr><tr><td>name</td><td>string</td><td>是</td><td>歌手名称</td></tr><tr><td>describe</td><td>string</td><td><sub>否</sub></td><td>歌手描述</td></tr><tr><td>vox_audio_id</td><td>string</td><td>否</td><td><strong>获取歌手VOX接口</strong>中生成的ID，指定片段的歌曲作为依据生成歌手风格ID</td></tr><tr><td>vocal_start_s</td><td>number</td><td>否</td><td>如果传入 vox_audio_id 此参数为必传，值与 <strong>获取歌手VOX接口</strong> 中入参一致</td></tr><tr><td>vocal_end_s</td><td>number</td><td>否</td><td>如果传入 vox_audio_id 此参数为必传，值与 <strong>获取歌手VOX接口</strong> 中入参一致</td></tr><tr><td>styles</td><td>string</td><td>否</td><td>风格</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "string",
    "message": "string",
    "data": {
        "persona_id": "string" //用在生成音乐接口中指定人声
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 生成BPM【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/gen-bpm`

> 根据生成的歌曲生成BPM

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>音乐ID</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "SUCCESS",
    "message": "success",
    "data": {
        "avg_bpm": "", //平均bpm
        "max_bpm":"", //最大bpm
        "min_bpm":""  //最小bpm
    }
}    
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 获取歌手VOX【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/vox`

> 截取音乐片段获取歌手的 vox\_audio\_id

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>music_id</td><td>string</td><td>是</td><td>音乐ID</td></tr><tr><td>vocal_start_s</td><td>number</td><td>否</td><td>人声开始时间，单位秒</td></tr><tr><td>vocal_end_s</td><td>number</td><td>否</td><td>人声结束时间，单位秒<br><strong>注意：结束时间 - 开始时间 应大于0，小于等于30</strong></td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "string",
    "message": "string",
    "data": {
        "id": "string", // vox_audio_id 用做“歌手风格自定义”中的入参
        "status": "string", //状态
        "source_clip_id": "string", //原始音乐ID
        "vocal_start_s": 0, //人声开始时间，单位秒
        "vocal_end_s": 0, //人声结束时间，单位秒
        "wave_response": {
            "waveform_aggregates": [
                {
                    "mip_map_level": 0,
                    "data": [
                        [
                            0
                        ]
                    ]
                }
            ]
        }
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### TAG风格增强【免费】

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/upsample-tags`

> 音乐tag风格增强

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="178">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>tags</td><td>string</td><td>是</td><td>风格</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
    "status": "string",
    "message": "string",
    "data": {
        "upsampled_tags": "string" //增强后的风格
    }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 音乐合成-**Mashup**&#x20;

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/mashup` &#x20;

**根据两首歌曲混合生成一首新的歌曲，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>mashup_music_id</td><td>array</td><td>是</td><td>混合音乐ID列表，<strong>必须为两首音乐</strong><br>['xxx','xxx']<br>返回在每条歌曲数组中的<strong>musicId</strong>或者通过上传返回的<strong>music_id</strong>，注意<strong>非jobId</strong></td></tr><tr><td>custom</td><td>boolean</td><td>是</td><td>音频是否自定义<br>true - 音频将从歌词中生成<br>false - 音频将根据提示生成</td></tr><tr><td>mv</td><td>string</td><td>是</td><td><p>使用模型<br>suno使用模型，支持  <code>chirp-v3-5</code> <code>chirp-v4</code> <code>chirp-v4-5</code></p><p><code>chirp-v4-5+</code>  <code>chirp-v5</code> <br><br><code>chirp-v4-5-all</code><br></p></td></tr><tr><td>prompt</td><td>string</td><td>否</td><td>歌词</td></tr><tr><td>gpt_description_prompt</td><td>string</td><td>否</td><td>灵感模式提示词</td></tr><tr><td>instrumental</td><td>boolean</td><td>否</td><td>是否生成纯音乐<br>默认 false</td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用，最大长度200字符</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>vocal_gender</td><td>string</td><td>否</td><td>音色性别 <br><code>Male</code> - 男性<br><code>Female</code> - 女性</td></tr><tr><td>auto_lyrics</td><td>boolean</td><td>否</td><td>是否自动生成歌词,自定义模式专用<br><br>false - 使用输入的歌词生成音乐<br>true - 根据输入的歌词进行二次创作，与灵感模式提示词效果一致<br><br>默认 false</td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 灵感生成-Sample

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/sample` &#x20;

**根据传入的一小段音频或者哼唱的旋律，生成完整的歌曲，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>custom</td><td>boolean</td><td>是</td><td>音频是否自定义<br><br>true - 音频将从歌词中生成<br>false - 音频将根据提示生成</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型 <code>chirp-v3-5</code> <code>chirp-v4</code> <code>chirp-v4-5+</code> <code>chirp-v4-5</code> <code>chirp-v5</code> <code>chirp-v4-5-all</code></td></tr><tr><td>music_id</td><td>string</td><td>是</td><td>样本音乐ID<br>通过上传返回的<strong>music_id</strong>，注意<strong>非jobId</strong></td></tr><tr><td>chop_sample_start_s</td><td>number</td><td>是</td><td>样本音乐开始时间<br>单位：秒<br>默认：0</td></tr><tr><td>chop_sample_end_s</td><td>number</td><td>是</td><td>样本音乐结束时间<br>单位：秒<br>默认：60</td></tr><tr><td>prompt</td><td>string</td><td>否</td><td>歌词</td></tr><tr><td>gpt_description_prompt</td><td>string</td><td>是</td><td>灵感模式提示词</td></tr><tr><td>instrumental</td><td>boolean</td><td>是</td><td>是否生成纯音乐<br>默认值: <code>false</code></td></tr><tr><td>title</td><td>string</td><td>否</td><td>标题</td></tr><tr><td>tags</td><td>string</td><td>否</td><td>风格标签，自定义模式专用，最大长度200字符</td></tr><tr><td>negative_tags</td><td>string</td><td>否</td><td>不希望生成的风格标签</td></tr><tr><td>style_weight</td><td>number</td><td>否</td><td>音频风格权重 0-1之间</td></tr><tr><td>weirdness_constraint</td><td>number</td><td>否</td><td>音频奇妙度权重 0-1之间</td></tr><tr><td>audio_weight</td><td>number</td><td>否</td><td>音频权重 0-1之间</td></tr><tr><td>vocal_gender</td><td>string</td><td>否</td><td>音色性别 <br><code>Male</code> - 男性<br><code>Female</code> - 女性</td></tr><tr><td>auto_lyrics</td><td>boolean</td><td>否</td><td>自定义模式专用<br>false - 使用输入的歌词生成音乐<br>true - 根据输入的歌词进行二次创作，与灵感模式提示词效果一致是否自动生成歌词</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}

### 创建音效-Sounds

<mark style="color:green;">`POST`</mark> `https://api.ttapi.io/suno/v1/sounds`

**根据描述创建短循环，单拍子和音效，**[定价详见](https://docs-zh.mjapiapp.com/ttapi-zhong-wen-wen-dang#suno-ding-jia)

**Headers**

| Name         | Value                  |
| ------------ | ---------------------- |
| Content-Type | `application/json`     |
| TT-API-KEY   | `用于请求授权 TT-API 的API密钥` |

**Body**

<table><thead><tr><th width="229">参数</th><th width="108">类型</th><th width="116">是否必须</th><th>描述</th></tr></thead><tbody><tr><td>sound</td><td>string</td><td>是</td><td>描述你想要的声音</td></tr><tr><td>mv</td><td>string</td><td>是</td><td>使用模型 目前只支持 <code>chirp-v5</code></td></tr><tr><td>type</td><td>string</td><td>是</td><td>类型，可选值：<br><code>one-shot</code>   <code>loop</code></td></tr><tr><td>bpm</td><td>number</td><td>否</td><td>每分钟节拍数<br>≥ 1  &#x3C;= 300</td></tr><tr><td>key</td><td>string</td><td>否</td><td>音调。可选值：<br>C<br>C#<br>Cm<br>C#m<br>D<br>D#<br>Dm<br>D#m<br>F<br>F#<br>Fm<br>F#m<br>G<br>G#<br>Gm<br>G#m<br>A<br>A#<br>Am<br>A#m<br>B<br>B#<br>Bm<br>B#m</td></tr><tr><td>isStorage</td><td>boolean</td><td>否</td><td>是否转存，false即返回官方源地址。<br>可选值 <code>true</code>  <code>false</code>，默认<code>true</code></td></tr><tr><td>hookUrl</td><td>string</td><td>否</td><td>回调通知地址，当设置此参数，任务成功或者失败降会向该地址发送一个post请求，携带数据与查询任务结果中返回一致</td></tr></tbody></table>

**Response**

{% tabs %}
{% tab title="200" %}

```json
{
  "status": "SUCCESS",
  "message": "",
  "data": {
    "jobId": "ed1a1b01-7d64-4c8a-acaa-71185d23a2f3"
  }
}
```

{% endtab %}

{% tab title="400" %}

```json
{
  "status": "FAILED",
  "message": "error message",
  "data": {}
}
```

{% endtab %}
{% endtabs %}
