[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NBHXA4X0SD4J5MP6T3CW64":3,"skill-same:01M6NBHXA4X0SD4J5MP6T3CW64":87},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":14,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6NBHXA4X0SD4J5MP6T3CW64","audiocraft-audio-generation",null,"PyTorch library for audio generation including text-to-music (MusicGen) and text-to-sound (AudioGen). Use when you need to generate music from text descriptions, create sound effects, or perform melody-conditioned music generation.","zhengliangliahu-cloud\u002Fskills","zhengliangliahu-cloud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F248268067?v=4","01M6NAQ109P2Y11XSV5D9QJFFY","Lin","01M6NAQ15R1M4E18CA2KPJHC06",1,"MIT","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F18-multimodal\u002Faudiocraft\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"audiocraft","Audio","audiocraft audio generation","generation","Audio Generation","effects","pytorch","audiogen","you","music generation","MusicGen","Text-to-Audio","Text-to-Music","text","music","Transformers","library","multimodal","generate","create","2026-11-10 10:12:30",false,"---\nname: audiocraft-audio-generation\ndescription: PyTorch library for audio generation including text-to-music (MusicGen) and text-to-sound (AudioGen). Use when you need to generate music from text descriptions, create sound effects, or perform melody-conditioned music generation.\nversion: 1.0.0\nauthor: Orchestra Research\nlicense: MIT\ntags: [Multimodal, Audio Generation, Text-to-Music, Text-to-Audio, MusicGen]\ndependencies: [audiocraft, torch>=2.0.0, transformers>=4.30.0]\n---\n\n# AudioCraft: Audio Generation\n\nComprehensive guide to using Meta's AudioCraft for text-to-music and text-to-audio generation with MusicGen, AudioGen, and EnCodec.\n\n## When to use AudioCraft\n\n**Use AudioCraft when:**\n- Need to generate music from text descriptions\n- Creating sound effects and environmental audio\n- Building music generation applications\n- Need melody-conditioned music generation\n- Want stereo audio output\n- Require controllable music generation with style transfer\n\n**Key features:**\n- **MusicGen**: Text-to-music generation with melody conditioning\n- **AudioGen**: Text-to-sound effects generation\n- **EnCodec**: High-fidelity neural audio codec\n- **Multiple model sizes**: Small (300M) to Large (3.3B)\n- **Stereo support**: Full stereo audio generation\n- **Style conditioning**: MusicGen-Style for reference-based generation\n\n**Use alternatives instead:**\n- **Stable Audio**: For longer commercial music generation\n- **Bark**: For text-to-speech with music\u002Fsound effects\n- **Riffusion**: For spectogram-based music generation\n- **OpenAI Jukebox**: For raw audio generation with lyrics\n\n## Quick start\n\n### Installation\n\n```bash\n# From PyPI\npip install audiocraft\n\n# From GitHub (latest)\npip install git+https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Faudiocraft.git\n\n# Or use HuggingFace Transformers\npip install transformers torch torchaudio\n```\n\n### Basic text-to-music (AudioCraft)\n\n```python\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\n# Load model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\n# Set generation parameters\nmodel.set_generation_params(\n    duration=8,  # seconds\n    top_k=250,\n    temperature=1.0\n)\n\n# Generate from text\ndescriptions = [\"happy upbeat electronic dance music with synths\"]\nwav = model.generate(descriptions)\n\n# Save audio\ntorchaudio.save(\"output.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Using HuggingFace Transformers\n\n```python\nfrom transformers import AutoProcessor, MusicgenForConditionalGeneration\nimport scipy\n\n# Load model and processor\nprocessor = AutoProcessor.from_pretrained(\"facebook\u002Fmusicgen-small\")\nmodel = MusicgenForConditionalGeneration.from_pretrained(\"facebook\u002Fmusicgen-small\")\nmodel.to(\"cuda\")\n\n# Generate music\ninputs = processor(\n    text=[\"80s pop track with bassy drums and synth\"],\n    padding=True,\n    return_tensors=\"pt\"\n).to(\"cuda\")\n\naudio_values = model.generate(\n    **inputs,\n    do_sample=True,\n    guidance_scale=3,\n    max_new_tokens=256\n)\n\n# Save\nsampling_rate = model.config.audio_encoder.sampling_rate\nscipy.io.wavfile.write(\"output.wav\", rate=sampling_rate, data=audio_values[0, 0].cpu().numpy())\n```\n\n### Text-to-sound with AudioGen\n\n```python\nfrom audiocraft.models import AudioGen\n\n# Load AudioGen\nmodel = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\n\nmodel.set_generation_params(duration=5)\n\n# Generate sound effects\ndescriptions = [\"dog barking in a park with birds chirping\"]\nwav = model.generate(descriptions)\n\ntorchaudio.save(\"sound.wav\", wav[0].cpu(), sample_rate=16000)\n```\n\n## Core concepts\n\n### Architecture overview\n\n```\nAudioCraft Architecture:\n┌──────────────────────────────────────────────────────────────┐\n│                    Text Encoder (T5)                          │\n│                         │                                     │\n│                    Text Embeddings                            │\n└────────────────────────┬─────────────────────────────────────┘\n                         │\n┌────────────────────────▼─────────────────────────────────────┐\n│              Transformer Decoder (LM)                         │\n│     Auto-regressively generates audio tokens                  │\n│     Using efficient token interleaving patterns               │\n└────────────────────────┬─────────────────────────────────────┘\n                         │\n┌────────────────────────▼─────────────────────────────────────┐\n│                EnCodec Audio Decoder                          │\n│        Converts tokens back to audio waveform                 │\n└──────────────────────────────────────────────────────────────┘\n```\n\n### Model variants\n\n| Model | Size | Description | Use Case |\n|-------|------|-------------|----------|\n| `musicgen-small` | 300M | Text-to-music | Quick generation |\n| `musicgen-medium` | 1.5B | Text-to-music | Balanced |\n| `musicgen-large` | 3.3B | Text-to-music | Best quality |\n| `musicgen-melody` | 1.5B | Text + melody | Melody conditioning |\n| `musicgen-melody-large` | 3.3B | Text + melody | Best melody |\n| `musicgen-stereo-*` | Varies | Stereo output | Stereo generation |\n| `musicgen-style` | 1.5B | Style transfer | Reference-based |\n| `audiogen-medium` | 1.5B | Text-to-sound | Sound effects |\n\n### Generation parameters\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `duration` | 8.0 | Length in seconds (1-120) |\n| `top_k` | 250 | Top-k sampling |\n| `top_p` | 0.0 | Nucleus sampling (0 = disabled) |\n| `temperature` | 1.0 | Sampling temperature |\n| `cfg_coef` | 3.0 | Classifier-free guidance |\n\n## MusicGen usage\n\n### Text-to-music generation\n\n```python\nfrom audiocraft.models import MusicGen\nimport torchaudio\n\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-medium')\n\n# Configure generation\nmodel.set_generation_params(\n    duration=30,          # Up to 30 seconds\n    top_k=250,            # Sampling diversity\n    top_p=0.0,            # 0 = use top_k only\n    temperature=1.0,      # Creativity (higher = more varied)\n    cfg_coef=3.0          # Text adherence (higher = stricter)\n)\n\n# Generate multiple samples\ndescriptions = [\n    \"epic orchestral soundtrack with strings and brass\",\n    \"chill lo-fi hip hop beat with jazzy piano\",\n    \"energetic rock song with electric guitar\"\n]\n\n# Generate (returns [batch, channels, samples])\nwav = model.generate(descriptions)\n\n# Save each\nfor i, audio in enumerate(wav):\n    torchaudio.save(f\"music_{i}.wav\", audio.cpu(), sample_rate=32000)\n```\n\n### Melody-conditioned generation\n\n```python\nfrom audiocraft.models import MusicGen\nimport torchaudio\n\n# Load melody model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-melody')\nmodel.set_generation_params(duration=30)\n\n# Load melody audio\nmelody, sr = torchaudio.load(\"melody.wav\")\n\n# Generate with melody conditioning\ndescriptions = [\"acoustic guitar folk song\"]\nwav = model.generate_with_chroma(descriptions, melody, sr)\n\ntorchaudio.save(\"melody_conditioned.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Stereo generation\n\n```python\nfrom audiocraft.models import MusicGen\n\n# Load stereo model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-stereo-medium')\nmodel.set_generation_params(duration=15)\n\ndescriptions = [\"ambient electronic music with wide stereo panning\"]\nwav = model.generate(descriptions)\n\n# wav shape: [batch, 2, samples] for stereo\nprint(f\"Stereo shape: {wav.shape}\")  # [1, 2, 480000]\ntorchaudio.save(\"stereo.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Audio continuation\n\n```python\nfrom transformers import AutoProcessor, MusicgenForConditionalGeneration\n\nprocessor = AutoProcessor.from_pretrained(\"facebook\u002Fmusicgen-medium\")\nmodel = MusicgenForConditionalGeneration.from_pretrained(\"facebook\u002Fmusicgen-medium\")\n\n# Load audio to continue\nimport torchaudio\naudio, sr = torchaudio.load(\"intro.wav\")\n\n# Process with text and audio\ninputs = processor(\n    audio=audio.squeeze().numpy(),\n    sampling_rate=sr,\n    text=[\"continue with a epic chorus\"],\n    padding=True,\n    return_tensors=\"pt\"\n)\n\n# Generate continuation\naudio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=512)\n```\n\n## MusicGen-Style usage\n\n### Style-conditioned generation\n\n```python\nfrom audiocraft.models import MusicGen\n\n# Load style model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-style')\n\n# Configure generation with style\nmodel.set_generation_params(\n    duration=30,\n    cfg_coef=3.0,\n    cfg_coef_beta=5.0  # Style influence\n)\n\n# Configure style conditioner\nmodel.set_style_conditioner_params(\n    eval_q=3,          # RVQ quantizers (1-6)\n    excerpt_length=3.0  # Style excerpt length\n)\n\n# Load style reference\nstyle_audio, sr = torchaudio.load(\"reference_style.wav\")\n\n# Generate with text + style\ndescriptions = [\"upbeat dance track\"]\nwav = model.generate_with_style(descriptions, style_audio, sr)\n```\n\n### Style-only generation (no text)\n\n```python\n# Generate matching style without text prompt\nmodel.set_generation_params(\n    duration=30,\n    cfg_coef=3.0,\n    cfg_coef_beta=None  # Disable double CFG for style-only\n)\n\nwav = model.generate_with_style([None], style_audio, sr)\n```\n\n## AudioGen usage\n\n### Sound effect generation\n\n```python\nfrom audiocraft.models import AudioGen\nimport torchaudio\n\nmodel = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\nmodel.set_generation_params(duration=10)\n\n# Generate various sounds\ndescriptions = [\n    \"thunderstorm with heavy rain and lightning\",\n    \"busy city traffic with car horns\",\n    \"ocean waves crashing on rocks\",\n    \"crackling campfire in forest\"\n]\n\nwav = model.generate(descriptions)\n\nfor i, audio in enumerate(wav):\n    torchaudio.save(f\"sound_{i}.wav\", audio.cpu(), sample_rate=16000)\n```\n\n## EnCodec usage\n\n### Audio compression\n\n```python\nfrom audiocraft.models import CompressionModel\nimport torch\nimport torchaudio\n\n# Load EnCodec\nmodel = CompressionModel.get_pretrained('facebook\u002Fencodec_32khz')\n\n# Load audio\nwav, sr = torchaudio.load(\"audio.wav\")\n\n# Ensure correct sample rate\nif sr != 32000:\n    resampler = torchaudio.transforms.Resample(sr, 32000)\n    wav = resampler(wav)\n\n# Encode to tokens\nwith torch.no_grad():\n    encoded = model.encode(wav.unsqueeze(0))\n    codes = encoded[0]  # Audio codes\n\n# Decode back to audio\nwith torch.no_grad():\n    decoded = model.decode(codes)\n\ntorchaudio.save(\"reconstructed.wav\", decoded[0].cpu(), sample_rate=32000)\n```\n\n## Common workflows\n\n### Workflow 1: Music generation pipeline\n\n```python\nimport torch\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\nclass MusicGenerator:\n    def __init__(self, model_name=\"facebook\u002Fmusicgen-medium\"):\n        self.model = MusicGen.get_pretrained(model_name)\n        self.sample_rate = 32000\n\n    def generate(self, prompt, duration=30, temperature=1.0, cfg=3.0):\n        self.model.set_generation_params(\n            duration=duration,\n            top_k=250,\n            temperature=temperature,\n            cfg_coef=cfg\n        )\n\n        with torch.no_grad():\n            wav = self.model.generate([prompt])\n\n        return wav[0].cpu()\n\n    def generate_batch(self, prompts, duration=30):\n        self.model.set_generation_params(duration=duration)\n\n        with torch.no_grad():\n            wav = self.model.generate(prompts)\n\n        return wav.cpu()\n\n    def save(self, audio, path):\n        torchaudio.save(path, audio, sample_rate=self.sample_rate)\n\n# Usage\ngenerator = MusicGenerator()\naudio = generator.generate(\n    \"epic cinematic orchestral music\",\n    duration=30,\n    temperature=1.0\n)\ngenerator.save(audio, \"epic_music.wav\")\n```\n\n### Workflow 2: Sound design batch processing\n\n```python\nimport json\nfrom pathlib import Path\nfrom audiocraft.models import AudioGen\nimport torchaudio\n\ndef batch_generate_sounds(sound_specs, output_dir):\n    \"\"\"\n    Generate multiple sounds from specifications.\n\n    Args:\n        sound_specs: list of {\"name\": str, \"description\": str, \"duration\": float}\n        output_dir: output directory path\n    \"\"\"\n    model = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\n    output_dir = Path(output_dir)\n    output_dir.mkdir(exist_ok=True)\n\n    results = []\n\n    for spec in sound_specs:\n        model.set_generation_params(duration=spec.get(\"duration\", 5))\n\n        wav = model.generate([spec[\"description\"]])\n\n        output_path = output_dir \u002F f\"{spec['name']}.wav\"\n        torchaudio.save(str(output_path), wav[0].cpu(), sample_rate=16000)\n\n        results.append({\n            \"name\": spec[\"name\"],\n            \"path\": str(output_path),\n            \"description\": spec[\"description\"]\n        })\n\n    return results\n\n# Usage\nsounds = [\n    {\"name\": \"explosion\", \"description\": \"massive explosion with debris\", \"duration\": 3},\n    {\"name\": \"footsteps\", \"description\": \"footsteps on wooden floor\", \"duration\": 5},\n    {\"name\": \"door\", \"description\": \"wooden door creaking and closing\", \"duration\": 2}\n]\n\nresults = batch_generate_sounds(sounds, \"sound_effects\u002F\")\n```\n\n### Workflow 3: Gradio demo\n\n```python\nimport gradio as gr\nimport torch\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\ndef generate_music(prompt, duration, temperature, cfg_coef):\n    model.set_generation_params(\n        duration=duration,\n        temperature=temperature,\n        cfg_coef=cfg_coef\n    )\n\n    with torch.no_grad():\n        wav = model.generate([prompt])\n\n    # Save to temp file\n    path = \"temp_output.wav\"\n    torchaudio.save(path, wav[0].cpu(), sample_rate=32000)\n    return path\n\ndemo = gr.Interface(\n    fn=generate_music,\n    inputs=[\n        gr.Textbox(label=\"Music Description\", placeholder=\"upbeat electronic dance music\"),\n        gr.Slider(1, 30, value=8, label=\"Duration (seconds)\"),\n        gr.Slider(0.5, 2.0, value=1.0, label=\"Temperature\"),\n        gr.Slider(1.0, 10.0, value=3.0, label=\"CFG Coefficient\")\n    ],\n    outputs=gr.Audio(label=\"Generated Music\"),\n    title=\"MusicGen Demo\"\n)\n\ndemo.launch()\n```\n\n## Performance optimization\n\n### Memory optimization\n\n```python\n# Use smaller model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\n# Clear cache between generations\ntorch.cuda.empty_cache()\n\n# Generate shorter durations\nmodel.set_generation_params(duration=10)  # Instead of 30\n\n# Use half precision\nmodel = model.half()\n```\n\n### Batch processing efficiency\n\n```python\n# Process multiple prompts at once (more efficient)\ndescriptions = [\"prompt1\", \"prompt2\", \"prompt3\", \"prompt4\"]\nwav = model.generate(descriptions)  # Single batch\n\n# Instead of\nfor desc in descriptions:\n    wav = model.generate([desc])  # Multiple batches (slower)\n```\n\n### GPU memory requirements\n\n| Model | FP32 VRAM | FP16 VRAM |\n|-------|-----------|-----------|\n| musicgen-small | ~4GB | ~2GB |\n| musicgen-medium | ~8GB | ~4GB |\n| musicgen-large | ~16GB | ~8GB |\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| CUDA OOM | Use smaller model, reduce duration |\n| Poor quality | Increase cfg_coef, better prompts |\n| Generation too short | Check max duration setting |\n| Audio artifacts | Try different temperature |\n| Stereo not working | Use stereo model variant |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Training, fine-tuning, deployment\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Faudiocraft\n- **Paper (MusicGen)**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05284\n- **Paper (AudioGen)**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2209.15352\n- **HuggingFace**: https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fmusicgen-small\n- **Demo**: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002FMusicGen\n","# AudioCraft: Audio Generation\n\nComprehensive guide to using Meta's AudioCraft for text-to-music and text-to-audio generation with MusicGen, AudioGen, and EnCodec.\n\n## When to use AudioCraft\n\n**Use AudioCraft when:**\n- Need to generate music from text descriptions\n- Creating sound effects and environmental audio\n- Building music generation applications\n- Need melody-conditioned music generation\n- Want stereo audio output\n- Require controllable music generation with style transfer\n\n**Key features:**\n- **MusicGen**: Text-to-music generation with melody conditioning\n- **AudioGen**: Text-to-sound effects generation\n- **EnCodec**: High-fidelity neural audio codec\n- **Multiple model sizes**: Small (300M) to Large (3.3B)\n- **Stereo support**: Full stereo audio generation\n- **Style conditioning**: MusicGen-Style for reference-based generation\n\n**Use alternatives instead:**\n- **Stable Audio**: For longer commercial music generation\n- **Bark**: For text-to-speech with music\u002Fsound effects\n- **Riffusion**: For spectogram-based music generation\n- **OpenAI Jukebox**: For raw audio generation with lyrics\n\n## Quick start\n\n### Installation\n\n```bash\n# From PyPI\npip install audiocraft\n\n# From GitHub (latest)\npip install git+https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Faudiocraft.git\n\n# Or use HuggingFace Transformers\npip install transformers torch torchaudio\n```\n\n### Basic text-to-music (AudioCraft)\n\n```python\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\n# Load model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\n# Set generation parameters\nmodel.set_generation_params(\n    duration=8,  # seconds\n    top_k=250,\n    temperature=1.0\n)\n\n# Generate from text\ndescriptions = [\"happy upbeat electronic dance music with synths\"]\nwav = model.generate(descriptions)\n\n# Save audio\ntorchaudio.save(\"output.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Using HuggingFace Transformers\n\n```python\nfrom transformers import AutoProcessor, MusicgenForConditionalGeneration\nimport scipy\n\n# Load model and processor\nprocessor = AutoProcessor.from_pretrained(\"facebook\u002Fmusicgen-small\")\nmodel = MusicgenForConditionalGeneration.from_pretrained(\"facebook\u002Fmusicgen-small\")\nmodel.to(\"cuda\")\n\n# Generate music\ninputs = processor(\n    text=[\"80s pop track with bassy drums and synth\"],\n    padding=True,\n    return_tensors=\"pt\"\n).to(\"cuda\")\n\naudio_values = model.generate(\n    **inputs,\n    do_sample=True,\n    guidance_scale=3,\n    max_new_tokens=256\n)\n\n# Save\nsampling_rate = model.config.audio_encoder.sampling_rate\nscipy.io.wavfile.write(\"output.wav\", rate=sampling_rate, data=audio_values[0, 0].cpu().numpy())\n```\n\n### Text-to-sound with AudioGen\n\n```python\nfrom audiocraft.models import AudioGen\n\n# Load AudioGen\nmodel = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\n\nmodel.set_generation_params(duration=5)\n\n# Generate sound effects\ndescriptions = [\"dog barking in a park with birds chirping\"]\nwav = model.generate(descriptions)\n\ntorchaudio.save(\"sound.wav\", wav[0].cpu(), sample_rate=16000)\n```\n\n## Core concepts\n\n### Architecture overview\n\n```\nAudioCraft Architecture:\n┌──────────────────────────────────────────────────────────────┐\n│                    Text Encoder (T5)                          │\n│                         │                                     │\n│                    Text Embeddings                            │\n└────────────────────────┬─────────────────────────────────────┘\n                         │\n┌────────────────────────▼─────────────────────────────────────┐\n│              Transformer Decoder (LM)                         │\n│     Auto-regressively generates audio tokens                  │\n│     Using efficient token interleaving patterns               │\n└────────────────────────┬─────────────────────────────────────┘\n                         │\n┌────────────────────────▼─────────────────────────────────────┐\n│                EnCodec Audio Decoder                          │\n│        Converts tokens back to audio waveform                 │\n└──────────────────────────────────────────────────────────────┘\n```\n\n### Model variants\n\n| Model | Size | Description | Use Case |\n|-------|------|-------------|----------|\n| `musicgen-small` | 300M | Text-to-music | Quick generation |\n| `musicgen-medium` | 1.5B | Text-to-music | Balanced |\n| `musicgen-large` | 3.3B | Text-to-music | Best quality |\n| `musicgen-melody` | 1.5B | Text + melody | Melody conditioning |\n| `musicgen-melody-large` | 3.3B | Text + melody | Best melody |\n| `musicgen-stereo-*` | Varies | Stereo output | Stereo generation |\n| `musicgen-style` | 1.5B | Style transfer | Reference-based |\n| `audiogen-medium` | 1.5B | Text-to-sound | Sound effects |\n\n### Generation parameters\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| `duration` | 8.0 | Length in seconds (1-120) |\n| `top_k` | 250 | Top-k sampling |\n| `top_p` | 0.0 | Nucleus sampling (0 = disabled) |\n| `temperature` | 1.0 | Sampling temperature |\n| `cfg_coef` | 3.0 | Classifier-free guidance |\n\n## MusicGen usage\n\n### Text-to-music generation\n\n```python\nfrom audiocraft.models import MusicGen\nimport torchaudio\n\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-medium')\n\n# Configure generation\nmodel.set_generation_params(\n    duration=30,          # Up to 30 seconds\n    top_k=250,            # Sampling diversity\n    top_p=0.0,            # 0 = use top_k only\n    temperature=1.0,      # Creativity (higher = more varied)\n    cfg_coef=3.0          # Text adherence (higher = stricter)\n)\n\n# Generate multiple samples\ndescriptions = [\n    \"epic orchestral soundtrack with strings and brass\",\n    \"chill lo-fi hip hop beat with jazzy piano\",\n    \"energetic rock song with electric guitar\"\n]\n\n# Generate (returns [batch, channels, samples])\nwav = model.generate(descriptions)\n\n# Save each\nfor i, audio in enumerate(wav):\n    torchaudio.save(f\"music_{i}.wav\", audio.cpu(), sample_rate=32000)\n```\n\n### Melody-conditioned generation\n\n```python\nfrom audiocraft.models import MusicGen\nimport torchaudio\n\n# Load melody model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-melody')\nmodel.set_generation_params(duration=30)\n\n# Load melody audio\nmelody, sr = torchaudio.load(\"melody.wav\")\n\n# Generate with melody conditioning\ndescriptions = [\"acoustic guitar folk song\"]\nwav = model.generate_with_chroma(descriptions, melody, sr)\n\ntorchaudio.save(\"melody_conditioned.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Stereo generation\n\n```python\nfrom audiocraft.models import MusicGen\n\n# Load stereo model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-stereo-medium')\nmodel.set_generation_params(duration=15)\n\ndescriptions = [\"ambient electronic music with wide stereo panning\"]\nwav = model.generate(descriptions)\n\n# wav shape: [batch, 2, samples] for stereo\nprint(f\"Stereo shape: {wav.shape}\")  # [1, 2, 480000]\ntorchaudio.save(\"stereo.wav\", wav[0].cpu(), sample_rate=32000)\n```\n\n### Audio continuation\n\n```python\nfrom transformers import AutoProcessor, MusicgenForConditionalGeneration\n\nprocessor = AutoProcessor.from_pretrained(\"facebook\u002Fmusicgen-medium\")\nmodel = MusicgenForConditionalGeneration.from_pretrained(\"facebook\u002Fmusicgen-medium\")\n\n# Load audio to continue\nimport torchaudio\naudio, sr = torchaudio.load(\"intro.wav\")\n\n# Process with text and audio\ninputs = processor(\n    audio=audio.squeeze().numpy(),\n    sampling_rate=sr,\n    text=[\"continue with a epic chorus\"],\n    padding=True,\n    return_tensors=\"pt\"\n)\n\n# Generate continuation\naudio_values = model.generate(**inputs, do_sample=True, guidance_scale=3, max_new_tokens=512)\n```\n\n## MusicGen-Style usage\n\n### Style-conditioned generation\n\n```python\nfrom audiocraft.models import MusicGen\n\n# Load style model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-style')\n\n# Configure generation with style\nmodel.set_generation_params(\n    duration=30,\n    cfg_coef=3.0,\n    cfg_coef_beta=5.0  # Style influence\n)\n\n# Configure style conditioner\nmodel.set_style_conditioner_params(\n    eval_q=3,          # RVQ quantizers (1-6)\n    excerpt_length=3.0  # Style excerpt length\n)\n\n# Load style reference\nstyle_audio, sr = torchaudio.load(\"reference_style.wav\")\n\n# Generate with text + style\ndescriptions = [\"upbeat dance track\"]\nwav = model.generate_with_style(descriptions, style_audio, sr)\n```\n\n### Style-only generation (no text)\n\n```python\n# Generate matching style without text prompt\nmodel.set_generation_params(\n    duration=30,\n    cfg_coef=3.0,\n    cfg_coef_beta=None  # Disable double CFG for style-only\n)\n\nwav = model.generate_with_style([None], style_audio, sr)\n```\n\n## AudioGen usage\n\n### Sound effect generation\n\n```python\nfrom audiocraft.models import AudioGen\nimport torchaudio\n\nmodel = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\nmodel.set_generation_params(duration=10)\n\n# Generate various sounds\ndescriptions = [\n    \"thunderstorm with heavy rain and lightning\",\n    \"busy city traffic with car horns\",\n    \"ocean waves crashing on rocks\",\n    \"crackling campfire in forest\"\n]\n\nwav = model.generate(descriptions)\n\nfor i, audio in enumerate(wav):\n    torchaudio.save(f\"sound_{i}.wav\", audio.cpu(), sample_rate=16000)\n```\n\n## EnCodec usage\n\n### Audio compression\n\n```python\nfrom audiocraft.models import CompressionModel\nimport torch\nimport torchaudio\n\n# Load EnCodec\nmodel = CompressionModel.get_pretrained('facebook\u002Fencodec_32khz')\n\n# Load audio\nwav, sr = torchaudio.load(\"audio.wav\")\n\n# Ensure correct sample rate\nif sr != 32000:\n    resampler = torchaudio.transforms.Resample(sr, 32000)\n    wav = resampler(wav)\n\n# Encode to tokens\nwith torch.no_grad():\n    encoded = model.encode(wav.unsqueeze(0))\n    codes = encoded[0]  # Audio codes\n\n# Decode back to audio\nwith torch.no_grad():\n    decoded = model.decode(codes)\n\ntorchaudio.save(\"reconstructed.wav\", decoded[0].cpu(), sample_rate=32000)\n```\n\n## Common workflows\n\n### Workflow 1: Music generation pipeline\n\n```python\nimport torch\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\nclass MusicGenerator:\n    def __init__(self, model_name=\"facebook\u002Fmusicgen-medium\"):\n        self.model = MusicGen.get_pretrained(model_name)\n        self.sample_rate = 32000\n\n    def generate(self, prompt, duration=30, temperature=1.0, cfg=3.0):\n        self.model.set_generation_params(\n            duration=duration,\n            top_k=250,\n            temperature=temperature,\n            cfg_coef=cfg\n        )\n\n        with torch.no_grad():\n            wav = self.model.generate([prompt])\n\n        return wav[0].cpu()\n\n    def generate_batch(self, prompts, duration=30):\n        self.model.set_generation_params(duration=duration)\n\n        with torch.no_grad():\n            wav = self.model.generate(prompts)\n\n        return wav.cpu()\n\n    def save(self, audio, path):\n        torchaudio.save(path, audio, sample_rate=self.sample_rate)\n\n# Usage\ngenerator = MusicGenerator()\naudio = generator.generate(\n    \"epic cinematic orchestral music\",\n    duration=30,\n    temperature=1.0\n)\ngenerator.save(audio, \"epic_music.wav\")\n```\n\n### Workflow 2: Sound design batch processing\n\n```python\nimport json\nfrom pathlib import Path\nfrom audiocraft.models import AudioGen\nimport torchaudio\n\ndef batch_generate_sounds(sound_specs, output_dir):\n    \"\"\"\n    Generate multiple sounds from specifications.\n\n    Args:\n        sound_specs: list of {\"name\": str, \"description\": str, \"duration\": float}\n        output_dir: output directory path\n    \"\"\"\n    model = AudioGen.get_pretrained('facebook\u002Faudiogen-medium')\n    output_dir = Path(output_dir)\n    output_dir.mkdir(exist_ok=True)\n\n    results = []\n\n    for spec in sound_specs:\n        model.set_generation_params(duration=spec.get(\"duration\", 5))\n\n        wav = model.generate([spec[\"description\"]])\n\n        output_path = output_dir \u002F f\"{spec['name']}.wav\"\n        torchaudio.save(str(output_path), wav[0].cpu(), sample_rate=16000)\n\n        results.append({\n            \"name\": spec[\"name\"],\n            \"path\": str(output_path),\n            \"description\": spec[\"description\"]\n        })\n\n    return results\n\n# Usage\nsounds = [\n    {\"name\": \"explosion\", \"description\": \"massive explosion with debris\", \"duration\": 3},\n    {\"name\": \"footsteps\", \"description\": \"footsteps on wooden floor\", \"duration\": 5},\n    {\"name\": \"door\", \"description\": \"wooden door creaking and closing\", \"duration\": 2}\n]\n\nresults = batch_generate_sounds(sounds, \"sound_effects\u002F\")\n```\n\n### Workflow 3: Gradio demo\n\n```python\nimport gradio as gr\nimport torch\nimport torchaudio\nfrom audiocraft.models import MusicGen\n\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\ndef generate_music(prompt, duration, temperature, cfg_coef):\n    model.set_generation_params(\n        duration=duration,\n        temperature=temperature,\n        cfg_coef=cfg_coef\n    )\n\n    with torch.no_grad():\n        wav = model.generate([prompt])\n\n    # Save to temp file\n    path = \"temp_output.wav\"\n    torchaudio.save(path, wav[0].cpu(), sample_rate=32000)\n    return path\n\ndemo = gr.Interface(\n    fn=generate_music,\n    inputs=[\n        gr.Textbox(label=\"Music Description\", placeholder=\"upbeat electronic dance music\"),\n        gr.Slider(1, 30, value=8, label=\"Duration (seconds)\"),\n        gr.Slider(0.5, 2.0, value=1.0, label=\"Temperature\"),\n        gr.Slider(1.0, 10.0, value=3.0, label=\"CFG Coefficient\")\n    ],\n    outputs=gr.Audio(label=\"Generated Music\"),\n    title=\"MusicGen Demo\"\n)\n\ndemo.launch()\n```\n\n## Performance optimization\n\n### Memory optimization\n\n```python\n# Use smaller model\nmodel = MusicGen.get_pretrained('facebook\u002Fmusicgen-small')\n\n# Clear cache between generations\ntorch.cuda.empty_cache()\n\n# Generate shorter durations\nmodel.set_generation_params(duration=10)  # Instead of 30\n\n# Use half precision\nmodel = model.half()\n```\n\n### Batch processing efficiency\n\n```python\n# Process multiple prompts at once (more efficient)\ndescriptions = [\"prompt1\", \"prompt2\", \"prompt3\", \"prompt4\"]\nwav = model.generate(descriptions)  # Single batch\n\n# Instead of\nfor desc in descriptions:\n    wav = model.generate([desc])  # Multiple batches (slower)\n```\n\n### GPU memory requirements\n\n| Model | FP32 VRAM | FP16 VRAM |\n|-------|-----------|-----------|\n| musicgen-small | ~4GB | ~2GB |\n| musicgen-medium | ~8GB | ~4GB |\n| musicgen-large | ~16GB | ~8GB |\n\n## Common issues\n\n| Issue | Solution |\n|-------|----------|\n| CUDA OOM | Use smaller model, reduce duration |\n| Poor quality | Increase cfg_coef, better prompts |\n| Generation too short | Check max duration setting |\n| Audio artifacts | Try different temperature |\n| Stereo not working | Use stereo model variant |\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Training, fine-tuning, deployment\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues and solutions\n\n## Resources\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Faudiocraft\n- **Paper (MusicGen)**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05284\n- **Paper (AudioGen)**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2209.15352\n- **HuggingFace**: https:\u002F\u002Fhuggingface.co\u002Ffacebook\u002Fmusicgen-small\n- **Demo**: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Ffacebook\u002FMusicGen\n",{"name":5,"tags":49,"author":51,"license":15,"version":52,"description":7,"dependencies":53},[50,28,36,35,34],"Multimodal","Orchestra Research","1.0.0",[24,54,55],"torch>=2.0.0","transformers>=4.30.0","main","75c7c92896e878938460f0bceb23b6ab4a787286","AI-Research-SKILLs\u002F18-multimodal\u002Faudiocraft","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud","A postgraduate student majoring in mathematics.","2026-06-03 19:04:43",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add zhengliangliahu-cloud\u002Fskills --skill audiocraft-audio-generation",{"tool":69,"command":70},"bunx","bunx skills add zhengliangliahu-cloud\u002Fskills --skill audiocraft-audio-generation",{"tool":72,"command":73},"pnpm","pnpm dlx skills add zhengliangliahu-cloud\u002Fskills --skill audiocraft-audio-generation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F18-multimodal\u002Faudiocraft\u002FSKILL.md",true,[77,83],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",16953,"https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F18-multimodal\u002Faudiocraft\u002Freferences\u002Fadvanced-usage.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Ftroubleshooting.md",11412,"https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F18-multimodal\u002Faudiocraft\u002Freferences\u002Ftroubleshooting.md",[88,118,152,176,203,223],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":97,"publishedAt":44},"01M6NBV8V36BCHZ1K9F7EMRJP1","ara-rigor-reviewer","Performs ARA Seal Level 2 semantic epistemic review on Agent-Native Research Artifacts, scoring six dimensions (evidence relevance, falsifiability, scope calibration, argument coherence, exploration integrity, methodological rigor) and producing a constructive, severity-ranked report with a Strong Accept-to-Reject recommendation. Use after Level 1 structural validation passes, when an ARA needs an objective epistemic critique before publication or release.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F22-agent-native-research-artifact\u002Frigor-reviewer\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],"reviewer","ara rigor reviewer","ARA","review","release","audit","integrity","peer review","critique","exploration","scoring","dimensions","coherence","structural","scope","native","argument","epistemic","calibration","Research Artifacts",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":133,"publishedAt":44},"01M6NBTQTZ5G21FFPMEKHQZ3R3","ara-research-manager","Records research provenance as a post-task epilogue, scanning conversation history at the end of a coding or research session to extract decisions, experiments, dead ends, claims, heuristics, and pivots, and writing them into the ara\u002F directory with user-vs-AI provenance tags. Use as a session epilogue — never during execution — to maintain a faithful, auditable trace of how a research project actually evolved.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F22-agent-native-research-artifact\u002Fresearch-manager\u002FSKILL.md",[124,127,128],{"categoryNo":125,"categoryName":126,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[134,135,136,137,138,139,140,141,142,143,144,145,107,146,147,148,149,150,151,100],"research","manager","ara research manager","writing","directory","heuristics","how","knowledge","knowledge management","never","scanning","conversation","maintain","project","end","recording","at","claims",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":162,"publishedAt":44},"01M6NBTCRK24WXZYKBD19RAV09","ara-compiler","Compiles any research input — PDF papers, GitHub repositories, experiment logs, code directories, or raw notes — into a complete Agent-Native Research Artifact (ARA) with cognitive layer (claims, concepts, heuristics), physical layer (configs, code stubs), exploration graph, and grounded evidence. Use when ingesting a paper or codebase into a structured, machine-executable knowledge package, building an ARA from scratch, or converting research outputs into a falsifiable, agent-traversable form.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F22-agent-native-research-artifact\u002Fcompiler\u002FSKILL.md",[158,161],{"categoryNo":159,"categoryName":160,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[163,164,165,166,167,168,139,141,169,107,170,171,113,172,173,174,151,100,117,175],"compiler","ara compiler","PDF","notes","code","logs","ingestion","artifact","input","papers","directories","layer","Knowledge Extraction",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":183,"publishedAt":44},"01M6NBSXGH49PE13PF1H9P7F8N","creative-thinking-for-research","Applies cognitive science frameworks for creative thinking to CS and AI research ideation. Use when seeking genuinely novel research directions by leveraging combinatorial creativity, analogical reasoning, constraint manipulation, and other empirically grounded creative strategies.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F21-research-ideation\u002Fcreative-thinking-for-research\u002FSKILL.md",[182],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[134,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202],"creative","thinking","Creative Thinking","creative thinking for research","for","reasoning","science","use","ideation","frameworks","research ideation","strategies","problem","Analogical Reasoning","Problem Reformulation","novel","directions","orchestra","constraint",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":210,"publishedAt":44},"01M6NBSNHZYM70ZAFXQNESYYBG","brainstorming-research-ideas","Guides researchers through structured ideation frameworks to discover high-impact research directions. Use when exploring new problem spaces, pivoting between projects, or seeking novel angles on existing work.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F21-research-ideation\u002Fbrainstorming-research-ideas\u002FSKILL.md",[209],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[134,211,212,213,214,215,216,217,185,193,218,196,219,220,186,221,222,199,200,201],"brainstorming","ideas","brainstorming research ideas","discovery","projects","work","strategy","discover","impact","guides","Problem Discovery","Research Strategy",{"skillNo":224,"name":225,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":235,"publishedAt":44},"01M6NBS3Z3CJYH5225X73AZN3S","systems-paper-writing","Comprehensive guide for writing systems papers targeting OSDI, SOSP, ASPLOS, NSDI, and EuroSys. Provides paragraph-level structural blueprints, writing patterns, venue-specific checklists, reviewer guidelines, LaTeX templates, and conference deadlines. Use this skill for all systems conference paper writing.","https:\u002F\u002Fgithub.com\u002Fzhengliangliahu-cloud\u002Fskills\u002Fblob\u002Fmain\u002FAI-Research-SKILLs\u002F20-ml-paper-writing\u002Fsystems-paper-writing\u002FSKILL.md",[229,230,231,234],{"categoryNo":125,"categoryName":126,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":232,"categoryName":233,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":129,"categoryName":130,"taxonomyType":131,"taxonomyTypeDesc":132},[137,236,237,238,239,98,240,241,242,111,243,244,245,246,172,247,201,188,248,249],"Paper Writing","systems","paper","Systems Paper Writing","guide","Blueprint","patterns","OSDI","NSDI","ASPLOS","SOSP","targeting","EuroSys","Structural Blueprint"]