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

# 音乐生成

> 通过 prompt 参数定义音乐的风格、情绪和场景，通过 lyrics 参数提供演唱的歌词内容。该功能可用于为视频、游戏或应用快速生成独特的背景音乐和主题曲。

## Music 3.0：即刻体验全新音乐生成能力

* 更懂创作意图：语义理解模型升级，减少"AI 味"偏移。
* 音质全面跃升：告别拥挤和浑浊，支持指定乐器与真实技法（滑音、连奏等），一键触达商业唱片级听感。
* 人声合成更自然：新一代人声引擎彻底消除高频"机器嘶嘶声"，可控制旋律、咬字、呼吸与多层和声，逼近真人录音室表现。

## 音乐生成示例

下面以生成一首 1940 年代大乐队摇摆爵士风格的歌曲为例，演示如何通过两步完成从灵感到成品的全流程：先用歌词生成接口，根据主题自动写词；再用音乐生成接口创作，轻松产出一首完整歌曲。本示例重点展示 Music 3.0 在器乐编配和高采样率乐器表现上的能力。

<Steps>
  <Step title="调用歌词生成接口，根据主题生成歌词（可选）">
    只需告诉模型你想要什么主题——比如"欢快的 1940 年代大乐队摇摆爵士"，歌词生成接口就会自动为你写出包含段落结构（Verse、Chorus、Bridge 等）的完整歌词。如果你已经有了歌词，可以跳过这一步。另外即使没有歌词也可以直接进入第二步，调用音乐生成接口，谱曲并生成完整歌曲。

    <CodeGroup>
      ```python 歌词生成 theme={null}
      import requests
      import os

      url = "https://api.minimaxi.com/v1/lyrics_generation"
      api_key = os.environ.get("MINIMAX_API_KEY")

      payload = {
          "mode": "write_full_song",
          "prompt": "欢快的 1940 年代大乐队摇摆爵士（Big Band Swing），充满活力的铜管乐组吹奏着干脆的切分音，标志性的 Walking Bass 贝斯线与跃动的镲片构建极强的律动。中段有一段极具表现力且快速的次中音萨克斯即兴 Solo。"
      }
      headers = {
          "Content-Type": "application/json",
          "Authorization": f"Bearer {api_key}"
      }

      response = requests.post(url, json=payload, headers=headers)

      print(response.text)
      ```
    </CodeGroup>
  </Step>

  <Step title="调用音乐生成接口，谱曲并生成完整歌曲">
    拿到歌词后，通过 `prompt` 设定音乐风格（如 "Big Band Swing, Brass Section, Walking Bass"），将歌词传入 `lyrics` 参数，音乐生成接口会为你编曲、演唱，输出一首完整的歌曲。如果没有歌词，可将 [lyrics\_optimizer](/docs/api-reference/music-generation#body-lyrics-optimizer) 参数设置为 true，则可直接生成歌曲。而且 Music 3.0 支持了纯音乐生成，请参考 [is\_instrumental](/docs/api-reference/music-generation#body-is-instrumental) 参数。

    <CodeGroup>
      ```python 音乐生成 theme={null}
      import requests
      import json
      import os

      url = "https://api.minimaxi.com/v1/music_generation"
      api_key = os.environ.get("MINIMAX_API_KEY")

      headers = {
          "Content-Type": "application/json",
          "Authorization": f"Bearer {api_key}"
      }

      payload = {
          "model": "music-3.0",
          "prompt": "欢快的 1940 年代大乐队摇摆爵士（Big Band Swing），充满活力的铜管乐组吹奏着干脆的切分音，标志性的 Walking Bass 贝斯线与跃动的镲片构建极强的律动。中段有一段极具表现力且快速的次中音萨克斯即兴 Solo。",
          "lyrics": "[Intro]\n[verse]\n听，苔岩在回应空弦的尾音\n雾穿过年轮 将年轮浸润\n漫游的鹿 就忽然停步\n静默如一枚 湿润的菌\n\n[pre_chorus]\n把整座森林的寂静 弹成涟漪...\n\n[chorus]\n直到群青 被洗成更深的群青\n每一片清醒的叶子 都垂下脖颈\n承接碎银般的颤音\n垂落，垂落... 千万条弦在交织\n把天光纺成发亮丝线\n缝补雏鸟羽翼间 疏漏的蓝\n\n[verse]\n泥壤下的根须 开始游移\n蘑菇们撑开 潮润的伞顶\n偷运星光的蚯蚓 暂停书写\n在休止符里 蜷成初生的形\n\n[chorus]\n直到群青 被洗成更深的群青\n每一片清醒的叶子 都垂下脖颈\n承接碎银般的颤音\n\n[bridge]\n当最后一道滑音 漫过树梢\n年轮深处 传来菌丝合唱\n每滴雨都成了 回授的弦\n把未完成的 交给苔衣去延长\n\n[outro]\n而寂静 比雨声更为丰盈\n竖琴把自身 长成梧桐木的年轮\n每圈涟漪 都在收拢时\n藏好一枚欲坠的月亮",
          "audio_setting": {
              "sample_rate": 44100,
              "bitrate": 256000,
              "format": "mp3"
          },
          "output_format": "url"
      }

      response = requests.post(url, headers=headers, json=payload)
      result = response.json()

      print(json.dumps(result, ensure_ascii=False, indent=2))
      ```
    </CodeGroup>
  </Step>

  <Step title="试听生成结果">
    完成上述两步后，你将得到一首完整的歌曲！点击播放即可试听效果：

    <video controls className="w-full aspect-video rounded-xl audio-container" src="https://filecdn.minimax.chat/public/cfc700df-decc-4d8f-8b0d-6c6e282f7089.mp3" />
  </Step>
</Steps>

## 翻唱生成

Music Cover 可以基于已有歌曲生成不同风格的翻唱版本。支持两种模式：

* **一步翻唱**：直接传入参考音频，系统自动通过 ASR 提取歌词。
* **两步翻唱**：先对音频进行前处理，提取并修改歌词后再生成翻唱。

### 一步翻唱（快捷模式）

将参考音频 URL 和风格描述直接传入音乐生成接口，歌词将从音频中自动提取。

<CodeGroup>
  ```python 一步翻唱 theme={null}
  import requests
  import json
  import os

  url = "https://api.minimaxi.com/v1/music_generation"
  api_key = os.environ.get("MINIMAX_API_KEY")

  headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
  }

  payload = {
      "model": "music-cover",
      "audio_url": "https://example.com/original-song.mp3",
      "prompt": "爵士风格，慵懒深夜酒吧，萨克斯",
      "audio_setting": {
          "sample_rate": 44100,
          "bitrate": 256000,
          "format": "mp3"
      },
      "output_format": "url"
  }

  response = requests.post(url, headers=headers, json=payload)
  result = response.json()

  print(json.dumps(result, ensure_ascii=False, indent=2))
  ```
</CodeGroup>

### 两步翻唱（进阶模式 — 支持歌词修改）

如需修改歌词，可使用两步流程：先调用前处理接口提取音频特征和歌词，修改歌词后再生成翻唱。

<Steps>
  <Step title="步骤 1：预处理参考音频">
    调用[翻唱前处理接口](/docs/api-reference/music-cover-preprocess)提取音频特征和结构化歌词。此步骤**免费**（不计费）。

    返回内容包括：

    * `cover_feature_id`：音频特征唯一标识（有效期 24 小时）
    * `formatted_lyrics`：带段落标签（`[Verse]`、`[Chorus]` 等）的结构化歌词，可自由编辑
    * `structure_result`：JSON 字符串，包含段落类型和时间戳
    * `audio_duration`：参考音频时长（秒）

    <CodeGroup>
      ```python 前处理 theme={null}
      import requests
      import json
      import os

      url = "https://api.minimaxi.com/v1/music_cover_preprocess"
      api_key = os.environ.get("MINIMAX_API_KEY")

      headers = {
          "Content-Type": "application/json",
          "Authorization": f"Bearer {api_key}"
      }

      payload = {
          "model": "music-cover",
          "audio_url": "https://example.com/original-song.mp3"
      }

      response = requests.post(url, headers=headers, json=payload)
      result = response.json()

      # 保存 cover_feature_id 并查看提取的歌词
      cover_feature_id = result["cover_feature_id"]
      formatted_lyrics = result["formatted_lyrics"]

      print(f"特征 ID: {cover_feature_id}")
      print(f"提取的歌词:\n{formatted_lyrics}")
      ```
    </CodeGroup>
  </Step>

  <Step title="步骤 2：修改歌词并生成翻唱">
    查看并编辑上一步返回的 `formatted_lyrics`，然后将 `cover_feature_id` 和修改后的歌词传入[音乐生成接口](/docs/api-reference/music-generation)。

    <Note>
      使用 `cover_feature_id` 时，不要传入 `audio_url` 或 `audio_base64`（三者互斥）。`lyrics` 参数为必填（10–1000 字符）。
    </Note>

    <CodeGroup>
      ```python 生成翻唱 theme={null}
      import requests
      import json
      import os

      url = "https://api.minimaxi.com/v1/music_generation"
      api_key = os.environ.get("MINIMAX_API_KEY")

      headers = {
          "Content-Type": "application/json",
          "Authorization": f"Bearer {api_key}"
      }

      # 使用上一步返回的 cover_feature_id
      # 根据需要修改提取的歌词
      modified_lyrics = "[Verse 1]\n这里是修改后的第一段歌词\n用新的文字讲述你的故事\n\n[Chorus]\n全新的副歌部分\n用不同的感觉演唱"

      payload = {
          "model": "music-cover",
          "cover_feature_id": cover_feature_id,
          "lyrics": modified_lyrics,
          "prompt": "爵士风格，慵懒深夜酒吧，萨克斯",
          "audio_setting": {
              "sample_rate": 44100,
              "bitrate": 256000,
              "format": "mp3"
          },
          "output_format": "url"
      }

      response = requests.post(url, headers=headers, json=payload)
      result = response.json()

      print(json.dumps(result, ensure_ascii=False, indent=2))
      ```
    </CodeGroup>
  </Step>
</Steps>

## 推荐阅读

<Columns cols={2}>
  <Card title="音乐生成接口" icon="book-open" href="/docs/api-reference/music-generation" arrow="true" cta="点击查看">
    使用 API 接口，输入歌词和歌曲描述，进行歌曲生成。
  </Card>

  <Card title="翻唱前处理接口" icon="book-open" href="/docs/api-reference/music-cover-preprocess" arrow="true" cta="点击查看">
    对参考音频进行预处理，提取特征和歌词，用于两步翻唱生成。
  </Card>

  <Card title="歌词生成接口" icon="book-open" href="/docs/api-reference/lyrics-generation" arrow="true" cta="点击查看">
    使用 API 接口，输入歌曲描述，进行歌词生成或编辑。
  </Card>

  <Card title="产品定价" icon="book-open" href="/docs/guides/pricing-paygo#音乐" arrow="true" cta="点击查看">
    各模型的定价说明、计费方式及使用限制。
  </Card>

  <Card title="速率限制" icon="book-open" href="/docs/guides/rate-limits#3、我们的-api-的限速具体数值" arrow="true" cta="点击查看">
    为保证资源的高效使用，引入速率限制，以确保服务的可用性、稳定性。
  </Card>
</Columns>
