tool_synthesize_speech
Turn text into natural-sounding speech using a cloned voice or custom voice design, with optional ASMR effects for immersive listening.
Instructions
Generate speech audio with a cloned voice (from voice_name) OR voice design (from instruct), or both.
Three usage modes:
Cloned voice: pass voice_name='claudia_asmr', omit instruct.
Voice design: pass instruct='whisper, female, low pitch', omit voice_name.
Hybrid: pass both voice_name AND instruct to add style to a cloned voice.
Returns dict with: output_path, duration_s, sample_rate, channels, model, voice_name, generation_time_s, and (if any ASMR effect ran) asmr_applied.
ASMR pipeline: highpass(60Hz) -> lowpass -> stereo_pan -> reverb -> binaural -> padding. All ASMR params default to OFF (passthrough). Output is stereo whenever any stereo-capable effect (stereo_pan, reverb, binaural_beat_hz) is active.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to speak. Use punctuation (. ? !) for natural pauses; combine with silence_padding_ms for ASMR-style long pauses between sentences. | |
| speed | No | Speech rate factor. 1.0 = normal. <1 = slower (ASMR-like), >1 = faster. | |
| reverb | No | Reverb mode: 'none' (off), 'small_room' (ASMR-tight, ~18% mix, HF-damped), 'large_room' (spacious, longer tail). None = off. Default = off. | |
| instruct | No | Voice design keywords (OmniVoice specific, case-sensitive, English OR Chinese, comma+space separated, NEVER mix). Examples: English: 'whisper, female, low pitch' (ASMR sweet spot) English: 'male, young adult, british accent' Chinese (full-width comma ,): '女,低音调,耳语' See README §'Voice design keywords' for the full list of 22+ accepted keywords. Combine with voice_name to add style to a cloned voice. | |
| language | No | Target language for synthesis. Default: 'Italian'. OmniVoice supports 600+ languages. Common: 'English', 'Italian', 'French', 'German', 'Spanish', 'Japanese', 'Chinese', 'Korean'. | Italian |
| num_step | No | Diffusion steps. Higher = better quality, slower. 32 (default) is a good balance. 16 for fast drafts, 64 for production quality. | |
| period_s | No | Period in seconds for L<->R/L->R/R->L panning modes. ASMR sweet spot: 2.0-3.0s. Ignored if stereo_pan is None or 'center'/'L'/'R'. | |
| stereo_pan | No | Stereo panning mode for ASMR. One of: 'center' (mono -> stereo, equal L/R), 'L' (hard left, R muted), 'R' (hard right, L muted), 'L<->R' (alternating L/R, ASMR 'whisper in each ear' effect, sweet spot period_s=2-3s), 'L->R' (slow sweep L to R then back, sawtooth), 'R->L' (slow sweep R to L then back, sawtooth). None = no panning (passthrough). | |
| voice_name | No | Saved voice name from a prior clone_voice_from_audio call (e.g. 'claudia_asmr'). Optional: omit to use only voice design via 'instruct'. | |
| output_path | No | Output WAV path. Default: 'mcp_voice_studio/data/outputs/synth_<timestamp>.wav'. For long ASMR tests use a stable path like '/home/.../outputs/asmr_test.wav'. | |
| guidance_scale | No | Classifier-free guidance scale. 2.0 default. Higher = more prompt-faithful. | |
| reverb_damping | No | Reverb HF damping 0..1. 0 = classic Schroeder (metallic ring at high reverb). 0.5 (default) = soft HF rolloff in reverb tail, recommended. 1.0 = heavy damping (dark tail). Ignored if reverb is None or 'none'. | |
| binaural_beat_hz | No | Binaural beat frequency in Hz (L channel = 200Hz carrier, R channel = 200Hz+beat). 0 = off (default, RECOMMENDED for clean output). Perceived as brainwave entrainment: 4-8 Hz = theta-alpha (sleep/relax), 10-15 Hz = alpha-beta (focus), 15-40 Hz = beta (alert). Carrier amplitude is fixed at 0.0005 (-66dBFS, sub-audible). | |
| lowpass_cutoff_hz | No | Lowpass cutoff in Hz for warmth/intimacy. 0 = off. ASMR sweet spot: 5000-7000 Hz (cuts above 7kHz for 'headphones' feel). | |
| highpass_cutoff_hz | No | Highpass cutoff in Hz for DC/sub-bass cleanup. Default = 60 Hz (always on). 0 = off. ASMR standard: 60-80 Hz to remove room rumble without affecting voice. | |
| silence_padding_ms | No | Milliseconds of silence inserted between sentences (split on . ? !). Position is weighted by sentence length. 0 = off. ASMR sweet spot: 400-800 ms. |