Back to skills
SkillHub ClubAnalyze Data & AIFull StackBackendData / AI

ressemble

Text-to-Speech and Speech-to-Text integration using Resemble AI HTTP API.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
3,084
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
B77.6

Install command

npx @skill-hub/cli install openclaw-skills-ressemble
ttssttaudioaivoice

Repository

openclaw/skills

Skill path: skills/adriano-vr/ressemble

Text-to-Speech and Speech-to-Text integration using Resemble AI HTTP API.

Open repository

Best for

Primary workflow: Analyze Data & AI.

Technical facets: Full Stack, Backend, Data / AI, Integration.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: openclaw.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install ressemble into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/openclaw/skills before adding ressemble to shared team environments
  • Use ressemble for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: ressemble
displayName: Ressemble - Adriano
version: 1.0.0
description: Text-to-Speech and Speech-to-Text integration using Resemble AI HTTP API.
author: Adriano Vargas
tags: [tts, stt, audio, ai, voice]
---

# Ressemble – Text & Voice AI Integration

This skill integrates OpenClaw with the Resemble AI HTTP API, enabling:

- πŸŽ™ Speech-to-Text (audio transcription)
- πŸ”Š Text-to-Speech (voice synthesis)

It uses direct HTTP calls to Resemble's production endpoints and supports asynchronous transcription polling.

---

## Features

### resemble-tts
Generate high-quality speech audio from text input.

Supports:
- Custom `voice_uuid`
- MP3 output format
- Base64 audio return

### resemble-stt
Transcribe audio files to text using Resemble AI.

Supports:
- Multipart audio upload
- Automatic polling until transcription is complete
- Returns clean transcript text

---

## Requirements

You must define the environment variable:

```bash
export RESEMBLE_API_KEY="your_api_key_here"


---

## Skill Companion Files

> Additional files collected from the skill directory layout.

### _meta.json

```json
{
  "owner": "adriano-vr",
  "slug": "ressemble",
  "displayName": "Ressemble TTS e STT",
  "latest": {
    "version": "1.0.1",
    "publishedAt": 1771954042125,
    "commit": "https://github.com/openclaw/skills/commit/7190d92f9fd6c2ef3801a356fe019c33a83a4c7a"
  },
  "history": [
    {
      "version": "1.0.0",
      "publishedAt": 1771876037146,
      "commit": "https://github.com/openclaw/skills/commit/bfba510a2a3b791e1de3a7519ae9e23d31cc7a35"
    }
  ]
}

```

### scripts/stt.sh

```bash
#!/usr/bin/env bash
set -euo pipefail

if [[ "${1:-}" == "" ]]; then
  echo "Usage: stt.sh <audio-file>"
  exit 1
fi

INPUT_AUDIO="$1"

if [[ ! -f "$INPUT_AUDIO" ]]; then
  echo "File not found: $INPUT_AUDIO"
  exit 1
fi

if [[ -z "${RESEMBLE_API_KEY:-}" ]]; then
  echo "Missing RESEMBLE_API_KEY"
  exit 1
fi

echo "🎀 Sending audio for transcription..."

RESPONSE=$(curl -s -X POST "https://app.resemble.ai/api/v2/speech-to-text" \
  -H "Authorization: Bearer $RESEMBLE_API_KEY" \
  -F "file=@${INPUT_AUDIO}")

JOB_ID=$(echo "$RESPONSE" | jq -r '.id')

if [[ "$JOB_ID" == "null" ]]; then
  echo "Failed to create STT job"
  echo "$RESPONSE"
  exit 1
fi

STATUS="processing"

while [[ "$STATUS" == "processing" ]]; do
  sleep 2
  STATUS=$(curl -s "https://app.resemble.ai/api/v2/speech-to-text/${JOB_ID}" \
    -H "Authorization: Bearer $RESEMBLE_API_KEY" | jq -r '.status')
done

if [[ "$STATUS" != "completed" ]]; then
  echo "Transcription failed"
  exit 1
fi

TRANSCRIPT=$(curl -s "https://app.resemble.ai/api/v2/speech-to-text/${JOB_ID}" \
  -H "Authorization: Bearer $RESEMBLE_API_KEY" | jq -r '.transcript')

echo "$TRANSCRIPT"

```

### scripts/tts.sh

```bash
#!/usr/bin/env bash
set -euo pipefail

if [[ "${1:-}" == "" ]]; then
  echo "Usage: tts.sh \"text\" [VOICE_UUID]"
  exit 1
fi

TEXT="$1"
VOICE_UUID="${2:-01aa67f7}"
OUTPUT_FILE="/tmp/resemble_$(date +%s).mp3"

if [[ -z "${RESEMBLE_API_KEY:-}" ]]; then
  echo "Missing RESEMBLE_API_KEY"
  exit 1
fi

echo "πŸ”Š Generating speech..."

RESPONSE=$(curl -s -X POST "https://f.cluster.resemble.ai/synthesize" \
  -H "Authorization: Bearer $RESEMBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"voice_uuid\": \"$VOICE_UUID\",
    \"data\": \"$TEXT\",
    \"output_format\": \"mp3\"
  }")

SUCCESS=$(echo "$RESPONSE" | jq -r '.success')

if [[ "$SUCCESS" != "true" ]]; then
  echo "TTS failed:"
  echo "$RESPONSE"
  exit 1
fi

echo "$RESPONSE" | jq -r '.audio_content' | base64 -d > "$OUTPUT_FILE"

echo "MEDIA:$OUTPUT_FILE"

```

ressemble | SkillHub