skills-vault/skills/voice-generation
wantsong e69a195ee3 docs: record voice-gen env cleanup 2026-06-15 06:55:52 +08:00
..
docs/examples feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
scripts feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
src/voice_gen feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
tests feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
.gitignore feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
INSTALL.md feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
MIGRATION.md docs: record voice-gen env cleanup 2026-06-15 06:55:52 +08:00
README.md feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
SKILL.md feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00
pyproject.toml feat: migrate voice-generation skill 2026-06-15 06:45:39 +08:00

README.md

voice-generation

Batch text-to-speech via the mmx CLI, with a local registry of custom MiniMax voice clones.

This vault Skill is named voice-generation. The Python package, module, and command remain:

package: voice-gen
module: voice_gen
command: voice-gen

Install

See INSTALL.md for the current skills-vault installation workflow.

Short version from the repository root:

conda env create -f environment.yml
conda activate skills-vault

pip install -e .\skills\voice-generation

powershell -ExecutionPolicy Bypass -File .\scripts\install-skill.ps1 -Skill voice-generation -Force -InstallClaudeLink

External requirements:

  • Conda
  • mmx CLI v1.0.16+ (npm install -g mmx-cli)
  • mmx auth login once

Quick Start

# 1. Initialize a project
voice-gen init

# 2. Register a custom voice
voice-gen voices add ./samples/wantsong.mp3

# 2b. Or pull existing voices from the server
voice-gen voices pull

# 3. Put Markdown scripts in scripts/
echo "Hello, this is a test." > scripts/hello.md

# 4. Generate audio
voice-gen gen --voice wantsong scripts
# -> output/hello.mp3

Commands

Command Purpose
voice-gen init Create voices.json, scripts/, and output/ in the current working directory.
voice-gen voices add <audio> Upload audio; friendly name is derived from the filename stem.
voice-gen voices list [local|server] List voices. Default scope is local; server queries MiniMax files.
voice-gen voices pull [--auto] [--force] [--dry-run] Sync server-side voices into the local registry.
voice-gen voices cleanup Dedupe by source filename, keeping the oldest.
voice-gen gen --voice <name> <input-dir> [--out DIR] [--format mp3|wav|flac|pcm|opus] Batch synthesize Markdown scripts.

How It Works

The CLI wraps MiniMax voice operations:

  • Voice audio is uploaded with a direct MiniMax file upload call.
  • Uploaded files are registered through the MiniMax voice clone API.
  • Synthesis uses mmx speech synthesize.

On Windows, mmx is a .cmd shim from npm, so subprocess calls are routed through cmd /c where needed.

Project Layout

skills/voice-generation/
  SKILL.md
  INSTALL.md
  environment.yml
  pyproject.toml
  src/voice_gen/
  tests/
  docs/examples/

Runtime project files are created where the user runs voice-gen init:

voices.json
scripts/
output/

Development

# Inside the skills-vault Conda env
python -m pytest

# Smoke tests may call real MiniMax services and consume quota.
python -m pytest --run-smoke

As An Agentic Skill

The root SKILL.md exposes this tool to Agentic systems. The public installed Skill path is:

C:\Users\wangq\.agents\skills\voice-generation

Claude and other private Skill folders may link to that public installation path.