Suno 音乐生成 API 教程

AI音乐创作平台,一键生成原创音乐、歌曲和配乐

AI作曲

智能音乐创作

歌词生成

自动填词配唱

多种风格

支持9+音乐流派

即时预览

实时生成试听

一、基础音乐生成

快速开始

import requests
import json

# Suno AI 音乐生成 API
def generate_music(prompt: str, style: str = "pop"):
    url = "https://api.n1n.ai/v1/audio/music/generate"
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    
    data = {
        "prompt": prompt,
        "model": "suno-v3.5",
        "style": style,  # pop, rock, jazz, classical, electronic
        "duration": 30,  # 秒
        "instrumental": False,  # 是否纯音乐
        "lyrics": None  # 自定义歌词(可选)
    }
    
    response = requests.post(url, headers=headers, json=data)
    
    if response.status_code == 200:
        result = response.json()
        return result["audio_url"], result["task_id"]
    else:
        raise Exception(f"生成失败: {response.text}")

# 生成带歌词的歌曲
def create_song_with_lyrics(title: str, lyrics: str, genre: str):
    data = {
        "model": "suno-v3.5",
        "title": title,
        "lyrics": lyrics,
        "genre": genre,
        "mood": "uplifting",  # 情绪:uplifting, melancholic, energetic
        "tempo": "medium",  # 节奏:slow, medium, fast
        "voice_type": "female"  # 声音类型
    }
    
    response = requests.post(
        "https://api.n1n.ai/v1/audio/music/create-song",
        headers=headers,
        json=data
    )
    
    return response.json()

# 使用示例
audio_url, task_id = generate_music(
    prompt="创作一首关于夏天海滩的欢快歌曲",
    style="tropical house"
)

print(f"音乐生成中... Task ID: {task_id}")
print(f"音频地址: {audio_url}")

二、支持的音乐风格

Pop

流行音乐

朗朗上口、节奏感强

Rock

摇滚乐

电吉他、强烈节奏

Jazz

爵士乐

即兴、复杂和弦

Classical

古典音乐

交响乐、管弦乐

Electronic

电子音乐

EDM、合成器音色

Hip-Hop

嘻哈音乐

说唱、节奏感

R&B

节奏蓝调

灵魂乐、情感丰富

Country

乡村音乐

吉他、叙事性强

Ambient

氛围音乐

空间感、冥想

三、高级音乐功能

专业创作工具

# 高级音乐生成功能
class MusicGenerator:
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "https://api.n1n.ai/v1/audio/music"
    
    def remix(self, audio_url: str, style: str):
        """重新混音现有歌曲"""
        response = requests.post(
            f"{self.base_url}/remix",
            headers=self._get_headers(),
            json={
                "source_audio": audio_url,
                "target_style": style,
                "preserve_vocals": True,
                "mix_ratio": 0.7  # 原曲保留比例
            }
        )
        return response.json()
    
    def extend_music(self, audio_url: str, duration: int):
        """延长音乐长度"""
        response = requests.post(
            f"{self.base_url}/extend",
            headers=self._get_headers(),
            json={
                "source_audio": audio_url,
                "additional_duration": duration,
                "seamless_loop": True
            }
        )
        return response.json()
    
    def generate_variations(self, task_id: str, count: int = 3):
        """生成多个变体版本"""
        response = requests.post(
            f"{self.base_url}/variations",
            headers=self._get_headers(),
            json={
                "original_task_id": task_id,
                "variation_count": count,
                "diversity": 0.8  # 变化程度
            }
        )
        return response.json()
    
    def custom_instrumental(self, instruments: list, bpm: int, key: str):
        """自定义乐器编曲"""
        response = requests.post(
            f"{self.base_url}/instrumental",
            headers=self._get_headers(),
            json={
                "instruments": instruments,  # ["piano", "guitar", "drums"]
                "bpm": bpm,  # 节拍速度
                "key": key,  # 调性 如 "C major"
                "structure": ["intro", "verse", "chorus", "verse", "chorus", "outro"]
            }
        )
        return response.json()

# 批量生成背景音乐
def batch_generate_bgm(scenes: list):
    generator = MusicGenerator(API_KEY)
    results = []
    
    for scene in scenes:
        result = generator.generate_music(
            prompt=scene["description"],
            style=scene["style"],
            duration=scene["duration"]
        )
        results.append(result)
    
    return results

四、应用场景

🎬 内容创作

  • ✅ 视频配乐
  • ✅ 播客片头曲
  • ✅ 游戏背景音乐
  • ✅ 广告配乐

🎵 音乐制作

  • ✅ Demo创作
  • ✅ 编曲灵感
  • ✅ 背景音轨
  • ✅ 音乐教学