Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Generate retro robotic speech audio using SAM (Software Automatic Mouth), the classic C64 text-to-speech synthesizer. Use for /sam command to generate voice messages. Supports /sam on/off toggle mode where all responses are spoken in SAM voice. Supports pitch, speed, mouth, and throat parameters for voice customization.
Generate retro robotic speech audio using SAM (Software Automatic Mouth), the classic C64 text-to-speech synthesizer. Use for /sam command to generate voice messages. Supports /sam on/off toggle mode where all responses are spoken in SAM voice. Supports pitch, speed, mouth, and throat parameters for voice customization.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Generate WAV audio files using the classic SAM text-to-speech engine -- the iconic robotic voice from the Commodore 64 era.
Node.js 18+ Run npm install in the skill directory to install dependencies
State file: memory/sam-mode.json
When SAM mode is enabled, ALL text responses are converted to SAM voice messages. Implementation: Set enabled: true in memory/sam-mode.json Confirm with voice message: "SAM mode enabled. I will now speak in robotic voice."
Return to normal text-to-text communication. Implementation: Set enabled: false in memory/sam-mode.json Confirm with text: "SAM mode disabled. Back to text."
Read memory/sam-mode.json at session start to know current state.
Generate response text as normal Convert to SAM TTS: node scripts/sam-tts-wrapper.js "response" --output=/tmp/sam-XXX.wav --quiet Send the generated WAV file as audio output Include brief text caption if helpful
Respond with normal text (default behavior).
Generate a one-time voice message using SAM TTS (works regardless of SAM mode state). Implementation: Extract text after /sam Generate WAV: node scripts/sam-tts-wrapper.js "text" --output=/tmp/sam-XXX.wav --quiet Return the WAV file as audio output
Enable SAM mode for all responses.
Disable SAM mode.
Report current SAM mode state (text response).
All parameters accept 0-255 range values. Store defaults in memory/sam-mode.json: ParameterDefaultEffectpitch64Voice pitch (higher = higher pitch)speed72Speech speed (lower = faster)mouth128Mouth cavity size (affects resonance)throat128Throat size (affects timbre)
Set pitch parameter (0-255).
Set speed parameter (1-255, lower is faster).
Set mouth parameter (0-255).
Set throat parameter (0-255).
Primary wrapper script. Outputs JSON metadata for automation. node scripts/sam-tts-wrapper.js "Hello world" --output=/tmp/out.wav --quiet node scripts/sam-tts-wrapper.js "Hello world" --output=/tmp/out.wav --quiet --pitch=80 --speed=60 Options: --output=PATH (required) - Output WAV file path --quiet - Suppress debug output, output only JSON --pitch=N, --speed=N, --mouth=N, --throat=N - Voice parameters --phonetic - Input is phonetic notation Output format: {"success":true,"outputPath":"/tmp/sam.wav","duration":1.44,"size":31741}
Standalone CLI tool with human-readable output. node scripts/sam-tts.js "Hello world" output.wav --pitch=80 --speed=60
{ "enabled": false, "pitch": 64, "speed": 72, "mouth": 128, "throat": 128 } Read at session start. Update when user toggles mode or changes parameters. Create the memory/ directory if it doesn't exist.
User: /sam on Agent: [Voice: "SAM mode enabled. I will now speak in robotic voice."]
User: "What's the weather?" Agent: [Voice: "Current temperature is 72 degrees with partly cloudy skies."]
User: /sam off Agent: SAM mode disabled. Back to text.
User: /sam Hello there Agent: [Voice: "Hello there"]
User: /sam pitch 100 Agent: Pitch set to 100. User: /sam Testing higher pitch Agent: [Voice with pitch=100: "Testing higher pitch"]
For precise pronunciation, use --phonetic flag: Vowels: IY (bee), IH (bit), EY (bay), AE (bat), AA (father), AH (bought), AO (hot), OW (boat), UH (book), UW (boot), ER (bird), AX (about) Numbers 1-8 indicate stress: HEH4LOW (emphasized second syllable) See references/phonemes.md for the full phoneme chart.
Format: WAV (RIFF/WAVE PCM) Sample rate: 22050 Hz Bit depth: 8-bit Channels: Mono
sam-tts/ +-- SKILL.md +-- package.json +-- scripts/ | +-- sam-tts-wrapper.js | +-- sam-tts.js +-- references/ | +-- phonemes.md +-- memory/ +-- sam-mode.json
The skill outputs WAV format by default. Some messaging platforms require different audio formats.
(Warning): Before installing ffmpeg or any conversion tools, the agent MUST ask the user for confirmation. Do not auto-install dependencies. Example agent prompt: "This platform requires OGG/OPUS format. I need to install ffmpeg for audio conversion. Would you like me to proceed with the installation?" Only proceed with installation after explicit user approval.
ffmpeg -i input.wav -c:a libopus -b:a 24k output.ogg
ffmpeg -i input.wav -c:a libmp3lame -b:a 64k output.mp3
WAV works directly -- no conversion needed. Note: The agent should detect the target platform and handle format conversion as needed, but always with user consent for any new dependencies.
Skill by: fourthdensity Active Dependency: sam-js by discordier The npm package used for TTS synthesis (JavaScript/Node.js port) Historical Lineage: sam-js builds upon earlier community ports: SAM by Stefan Macke (C adaptation) SAM by Vidar Hokstad (refactoring) SAM by 8BitPimp (refactoring) Original SAM (Software Automatic Mouth) (c) 1982 Don't Ask Software (now SoftVoice, Inc.) License Note: The original SAM software is considered abandonware. The JavaScript adaptation is provided as-is. See the sam-js repository for full license details.
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.