[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FF9W2AWY2S9C85NQJTYK5":3,"skill-same:01M71FF9W2AWY2S9C85NQJTYK5":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":13,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M71FF9W2AWY2S9C85NQJTYK5","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.","gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","gjbvsjjvgm-sketch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F278511911?v=4","01M71F3JXKZQ70H2KCHHTXKZDA","01M71F3JY8A79Z3NZBW08TF4JD",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fmlops\u002Fmodels\u002Faudiocraft\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"Audio","audiocraft","audiocraft audio generation","generation","Audio Generation","when","pytorch","effects","audiogen","you","music generation","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\ndependencies: [audiocraft, torch>=2.0.0, transformers>=4.30.0]\nmetadata:\n  hermes:\n    tags: [Multimodal, Audio Generation, Text-to-Music, Text-to-Audio, MusicGen]\n\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,"author":48,"license":14,"version":49,"metadata":50,"description":7,"dependencies":55},"Orchestra Research","1.0.0",{"hermes":51},{"tags":52},[53,27,35,34,54],"Multimodal","MusicGen",[24,56,57],"torch>=2.0.0","transformers>=4.30.0","main","93bbc269671fbb340afa15b36a8766f15dc30df2",".yousef\u002Fskills\u002Fmlops\u002Fmodels\u002Faudiocraft","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch","2026-04-27 02:51:28",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill audiocraft-audio-generation",{"tool":70,"command":71},"bunx","bunx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill audiocraft-audio-generation",{"tool":73,"command":74},"pnpm","pnpm dlx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill audiocraft-audio-generation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fmlops\u002Fmodels\u002Faudiocraft\u002FSKILL.md",true,[78,84],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",16953,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fmlops\u002Fmodels\u002Faudiocraft\u002Freferences\u002Fadvanced-usage.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Ftroubleshooting.md",11412,"https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002F.yousef\u002Fskills\u002Fmlops\u002Fmodels\u002Faudiocraft\u002Freferences\u002Ftroubleshooting.md",[89,128,156,172,191,212],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":109,"publishedAt":43},"01M71G6TJ2RAQ1J0PV3K6D9GQA","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[95,98,101,106],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":107,"categoryName":108,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000036","内容创作者",[110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,32,126,127,28],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","superpowers","paths","test-driven-development","for","test-driven",{"skillNo":129,"name":125,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":141,"publishedAt":43},"01M71G6R81013R3T7W5VP56GCB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[133,136,139,140],{"categoryNo":134,"categoryName":135,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":137,"categoryName":138,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":107,"categoryName":108,"taxonomyType":104,"taxonomyTypeDesc":105},[142,143,118,144,145,110,146,119,147,122,123,148,149,150,151,152,153,154,155,28],"test","test driven development","driven","testing","debugging","refactor","red-green-refactor","cycle","green","systematic","bugfix","implementing","systematic-debugging","test-first",{"skillNo":157,"name":154,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":43},"01M71G6N0Y546JZEDF25E2PMCE","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[161],{"categoryNo":137,"categoryName":138,"taxonomyType":20,"taxonomyTypeDesc":21},[163,146,151,110,142,118,122,164,123,165,166,167,112,168,125,169,127,170,171,28],"systematic debugging","use","bug","root-cause","problem-solving","problem","fixes","phase","root cause",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":184,"publishedAt":43},"01M71G6J0DXEGY48GH4KVW2SJH","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[178,179,180,181],{"categoryNo":99,"categoryName":100,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},{"categoryNo":107,"categoryName":108,"taxonomyType":104,"taxonomyTypeDesc":105},{"categoryNo":182,"categoryName":183,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000037","律师与法务",[118,185,122,144,110,114,115,186,117,119,187,121,188,189,123,112,190,125,127,28],"subagent driven development","code quality","delegation","parallel","delegate","fresh",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":199,"publishedAt":43},"01M71G6EFFBQX6634E6XHB09Y1","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[197,198],{"categoryNo":134,"categoryName":135,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[200,114,119,201,110,202,121,203,204,205,206,122,207,208,209,123,125,210,211,127],"code review","requesting code review","commit","verification","security scan","pipeline","loop","reviewer","fix","auto","static","auto-fix",{"skillNo":213,"name":214,"nameZh":6,"description":215,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":218,"publishedAt":43},"01M71G6CM8ANSWVFXCN9AAD58Y","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[214,110,219,115,118,120,220,122,221,222,223,224,225,226,112,227,228,229,126,230],"directory","markdown","workspace","work","write","implementation","do","active","plan mode","inspect","mode","plan-mode"]