Skip to main content
Glama

Make voice lines (TTS)

make_voice

Convert lines of text into trimmed WAV audio and duration JSON using offline, online, or local text-to-speech engines with per-line voice, language, and delivery controls.

Instructions

Turns lines of text into trimmed WAV files and dur.json. engine "kokoro" is offline (default); "edge" is Microsoft Edge TTS, online; "qwen" is Qwen3-TTS on MLX (Mac with Apple silicon, local, free; voices ryan, aiden, vivian, serena, uncle_fu, dylan, eric, ono_anna, sohee; per-line instruct; numbers spelled out; every take checked for a cut end and by Whisper, bad takes redone). Returns each line's duration. Needs the voice tier (setup.sh deps voice), or for qwen the qwen tier (setup.sh deps qwen; the model, about 3.1 GB, downloads on first use).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "lines": "<lines>",
      "out_dir": "<out_dir>"
    },
    "name": "make_voice"
  }
}

Input Schema

NameRequiredDescriptionDefault
linesYes
engineNo
out_dirYesFolder for <id>.wav and dur.json. lines.json is written there too.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the files written, that qwen takes are checked for cut ends and by Whisper and redone if bad, that numbers are spelled out, and that the ~3.1 GB model downloads on first use. It also states the environment prerequisites (voice tier, or qwen tier for Mac/Apple silicon), which an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and output artifacts are front-loaded, and nearly every clause carries information (deps, model size, voice names, Whisper validation). The qwen parenthetical is heavily nested and run-on, which slightly hurts scanability, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a file-writing tool with no output schema, the description covers what is produced (per-line WAVs, dur.json, lines.json), what is returned (each line's duration), and the environment setup required. Nothing essential for correct invocation appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 33%, so the description must compensate, and it does for the biggest gap: the engine enum has no schema description, yet the description explains each engine's network/local nature and the qwen voice roster and per-line instruct behavior. out_dir and the lines structure are covered by the schema rather than the description, leaving a small residual gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and concrete outputs: turning lines of text into trimmed WAV files and dur.json. An agent immediately knows this is text-to-speech generation. It stops short of explicitly differentiating itself from siblings like check_voice or make_subtitles; check_voice is only named incidentally inside a parameter explanation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is real guidance on choosing among the three engines (kokoro offline default, edge online, qwen local/free on Apple silicon) and on required dependency tiers. However, this is guidance for the engine enum, not for when to pick make_voice over a sibling such as make_subtitles or check_voice; usage relative to alternatives is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.