Oatda Generate Speech

v1.0.1

Generate speech or audio from text using OATDA's unified audio API. Triggers when the user wants to convert text to speech, create narration, voiceovers, acc...

0· 46·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for devcsde/oatda-generate-speech.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Oatda Generate Speech" (devcsde/oatda-generate-speech) from ClawHub.
Skill page: https://clawhub.ai/devcsde/oatda-generate-speech
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: OATDA_API_KEY
Required binaries: curl, jq
Config paths to check: ~/.oatda/credentials.json
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install oatda-generate-speech

ClawHub CLI

Package manager switcher

npx clawhub@latest install oatda-generate-speech
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name and description are TTS-focused and the declared requirements (curl, jq, OATDA_API_KEY, ~/.oatda/credentials.json) are appropriate and expected for calling the OATDA HTTP API and extracting a stored API key.
Instruction Scope
SKILL.md only instructs using curl and jq to call OATDA endpoints and to resolve the API key from either OATDA_API_KEY or ~/.oatda/credentials.json. Reading the local credentials file is expected for convenience, but it's a sensitive operation: ensure the credentials file contains only the OATDA key and that the agent will not print the full key. The jq expression used to extract the key may be brittle if the file format differs.
Install Mechanism
No install spec (instruction-only), so nothing is written to disk or downloaded. This is low risk and appropriate for a simple wrapper around curl/jq.
Credentials
Only a single provider credential (OATDA_API_KEY) and an expected config path are requested. Requiring either an env var or reading ~/.oatda/credentials.json is proportionate to the stated functionality.
Persistence & Privilege
always is false and the skill does not request system-wide changes or modify other skills. Autonomous invocation is allowed by default but combined with the limited scope here it does not raise additional red flags.
Assessment
This skill appears to do only what it says: call OATDA's speech API. Before installing, confirm you trust oatda.com and inspect ~/.oatda/credentials.json to verify it contains only the OATDA key. If you are cautious, set OATDA_API_KEY in the environment instead of relying on a credentials file, restrict the key's permissions if possible, and avoid pasting the full key into chat or logs. Also test with a limited or expendable key to verify behavior. If your credentials file has unexpected contents or other secrets, do not install/use the skill until you remediate that file.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🔊 Clawdis
Binscurl, jq
EnvOATDA_API_KEY
Config~/.oatda/credentials.json
Primary envOATDA_API_KEY
latestvk97apzg0pns72y6nqe7d78ra3185k079
46downloads
0stars
2versions
Updated 1d ago
v1.0.1
MIT-0

OATDA Speech Generation

Generate spoken audio from text through OATDA's unified audio API.

API Key Resolution

All commands need the OATDA API key. Resolve it inline for each exec call:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}"

If the key is empty or null, tell the user to get one at https://oatda.com and configure it.

Security: Never print the full API key. Only verify existence or show first 8 chars.

Model Mapping

User saysProviderModel
tts, tts-1, openai tts (default)openaitts-1
tts hd, tts-1-hdopenaitts-1-hd
gpt tts, gpt-4o mini ttsopenaigpt-4o-mini-tts

Default: openai / tts-1 if no model specified.

If the user provides provider/model format directly (for example openai/tts-1), split on /.

Common OpenAI voices include alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, and shimmer. Use alloy if the user does not specify a voice.

⚠️ Models change over time. If a model ID fails, query oatda-list-models with ?type=audio first.

Discovering Audio Model Parameters

Query available audio models and inspect supported_params before sending optional fields:

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X GET "https://oatda.com/api/v1/llm/models?type=audio" \
  -H "Authorization: Bearer $OATDA_API_KEY" | jq '.audio_models[] | {id, supported_params}'

Look for:

  • audio_modes containing tts
  • supported voice values
  • allowed response_format values
  • optional fields like instructions or language

API Call

The speech endpoint returns binary audio, not JSON. Always save the response to a file.

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/speech" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "<PROVIDER>",
    "model": "<MODEL>",
    "input": "<TEXT_TO_SPEAK>",
    "voice": "alloy",
    "response_format": "mp3",
    "speed": 1.0
  }' \
  --output speech.mp3

Common Parameters

  • input: Text to convert to speech, max 15000 characters
  • voice: Voice name, e.g. alloy, nova, shimmer
  • response_format: mp3, opus, aac, flac, wav, pcm, mulaw, or alaw
  • speed: 0.25 to 4.0, default 1.0
  • instructions: Optional tone/style guidance for supported models
  • language: Optional language code for supported models

Success Handling

If the request succeeds, tell the user where the file was saved, for example:

Speech generated successfully: speech.mp3

If headers matter, use curl -D headers.txt while still saving the audio body with --output.

Error Handling

HTTP StatusMeaningAction
401Invalid API keyTell user to check their key
402Insufficient creditsTell user to check balance
400Bad request / model not supportedCheck model format and query oatda-list-models with type=audio
429Rate limited or monthly capWait briefly and retry once
500Provider errorShow the error message if returned

Example

export OATDA_API_KEY="${OATDA_API_KEY:-$(cat ~/.oatda/credentials.json 2>/dev/null | jq -r '.profiles[.defaultProfile].apiKey' 2>/dev/null)}" && \
curl -s -X POST "https://oatda.com/api/v1/llm/speech" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OATDA_API_KEY" \
  -d '{
    "provider": "openai",
    "model": "tts-1",
    "input": "Welcome to OATDA, one API to direct all.",
    "voice": "alloy",
    "response_format": "mp3",
    "speed": 1.0
  }' \
  --output speech.mp3

Notes

  • Endpoint: /api/v1/llm/speech
  • Use input, not prompt, for TTS requests
  • Always save the response with --output
  • Use oatda-list-models to discover available audio models
  • Equivalent capability name: generate_speech
  • Related skills: oatda-list-models, oatda-transcribe-audio, oatda-translate-audio

Comments

Loading comments...