giggle-generation-speech
Use when the user wants to generate speech, voiceover, or text-to-audio.
Skill by giggle-official
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/giggle-official-giggle-generation-speech
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/giggle-generation-speech
What's inside
- Skill name
giggle-generation-speech- Description
- Use when the user wants to generate speech, voiceover, or text-to-audio. Converts text to AI voice via Giggle.pro TTS API. Keep the user informed until audio is ready: message before long waits, use Cron/sync poll so the user need not ask for progress. Triggers: generate speech, text-to-speech, TTS, voiceover, read this text aloud, synthesize speech.
- License
- MIT
- Instructions
- 191 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (3)
- SKILL.md
- requirements.txt
- text_to_audio_api.py · scripts/
SKILL.md (first lines)
# Text-to-Audio
Synthesizes text into AI voice/voiceover via giggle.pro. Supports multiple voice tones, emotions, and speaking rates.
## ⚠️ Review Before Installing
**Please review the following before installing.** This skill will:
1. **Write** to `~/.openclaw/skills/giggle-generation-speech/logs/` – Task state files for Cron deduplication
2. **Register Cron** (30s interval) – Async polling when user initiates speech generation; removed when complete
3. **Forward raw stdout** – Script output (audio links, status) is passed to the user as-is
**Requirements**: `python3`, `GIGGLE_API_KEY` (system environment variable), pip packages: `requests`
---
**API Key**: Set system environment variable `GIGGLE_API_KEY`. Obtain it at [giggle.pro](https://giggle.pro/) while logged in: **left sidebar** → **API Key** (**API 密钥**). The script will prompt if not configured.
> **No inline Python**: All commands must be executed via the `exec` tool. **Never** use heredoc inline code.
> **No Retry on Error**: If script execution encounters an error, **do not retry**. Report the error to the user directly and stop.
## Execution Flow (Phase 1 Submit + Phase 2 Cron + Phase 3 Sync Fallback)
Speech generation typically takes 10–30 seconds. Uses "fast submit + Cron poll + sync fallback" three-phase architecture.
> **Important**: **Never** pass `GIGGLE_API_KEY` in exec's `env` parameter. API Key is read from system environment variable.
---
## Continuous progress updates (default; user need not put this in their prompt)
TTS is usually **10–30 seconds**; Phase 3 sync wait can run up to **`--max-wait` (default 120s)**. The user does **not** need to nag for progress.
1. **After Phase 1 submit**, say the task is submitted, give `task_id`, and set expectation: **usually 10–30s**, may need up to ~2 minutes on slow runs.
2. **Keep polling without being asked**: register **Cron ~30s** for `--query`, and always run **Phase 3** `--query --poll` as fallback—**do not** wait for the user to say “check now.”
3. **On each poll** (Cron or `--query`): if still JSON/`processing`, paraphrase and say you are still waiting; from the **2nd** JSON poll onward, on **every other** Cron tick you may send one minimal line (e.g. “Still generating…”) so the thread is not dead silent.
4. **When done**: forward full **signed audio** links (plain-text success from script); on failure, forward the error. If nothing completes after **~15 minutes** of wall-clock retries/Cron, explain, give `task_id`, remove Cron, suggest retry.
5. **If the user explicitly opts out** of Cron pings, skip Cron but still run `--query` when they ask; Phase 3 `--poll` can remain your primary path if appropriate.
---
### Phase 0: Guide User to Select Voice and Emotion (required)
**Before submitting, you must guide the user to select voice and emotion. Do not use defaults.**
1. Run `--list-voices` to get available voices:
```bash
python3 scripts/text_to_audio_api.py --list-voices
```
2. Display the voice list to the user in a readable format (voice_id, name, style, gender, etc.) and guide them to pick one
3. Ask the user's preferred emotion (e.g. joy, sad, neutral, angry, surprise). Use neutral if no preference
4. Only after the user confirms voice and emotion, proceed to Phase 1 submit
---
### Phase 1: Submit Task (exec completes in ~10 seconds)
**First send a message to the user**: Speech task submitted; usually finishes in 10–30 seconds. **You will query automatically and send the link as soon as it is ready**—no need to nag for progress.
```bash
# Must specify user-selected voice and emotion
python3 scripts/text_to_audio_api.py \
--text "The weather is nice today" \
--voice-id "Calm_Woman" \
--emotion "joy" \
--speed 1.2 \
--no-wait --json
# View available voices
python3 scripts/text_to_audio_api.py --list-voices
```
Response example:
```json
{"status": "started", "task_id": "xxx"}
```
**Immediately store task_id in memory** (`addMemory`):
```
giggle-generation-speech task_id: xxx (submitted: YYYY-MM-DD HH:mm)
```
---
### Phase 2: Register Cron (30 second interval)
Use the `cron` tool to register the polling job. **Strictly follow the parameter format**:
```json
{
"action": "add",
"job": {
"name": "giggle-generation-speech-<first 8 chars of task_id>",
"schedule": {
"kind": "every",
"everyMs": 30000
},
"payload": {
"kind": "systemEvent",
"text": "Speech task poll: exec python3 scripts/text_to_audio_api.py --query --task-id <full task_id>, handle stdout per Cron logic. If stdout is non-JSON plain text, forward to user and remove Cron. If stdout is JSON (still processing), keep Cron; from the 2nd JSON poll onward, alternate: every other poll send user one brief line (e.g. Speech still generating…). If stdout is empty, remove Cron immediately, do not send message."
},
"sessionTarget": "main"
}
}
```
**Cron trigger handling** (based on exec stdout):
| stdout pattern | Action |
|----------------|--------|
| Non-empty plain text (not starting with `{`) | **Forward to user as-is**, **remove Cron** |
| stdout empty | Already pushed, **remove Cron immediately, do not send message** |
| JSON (starts with `{`, has `"status"` field) | Keep Cron; per this section, from 2nd JSON poll onward send a brief line every other poll |From giggle-official/skills, MIT.
More from giggle-official/skills
- 0.504score
giggle-minimax-h3-gen
giggle-official
Use when the user wants to generate AI video, optimize video prompts, or work with MiniMax-H3.
SkillBFreshness: BClaude Code +9 - 0.474score
discord-auto-deploy
giggle-official
Auto-deploy a Discord AI bot connected to OpenClaw Gateway.
SkillCFreshness: CClaude Code +9 - 0.471score
giggle-generation-tv-avatar-video
giggle-official
Talking-head video from image + driving audio: submit tasks via the wrapped generation API and poll for results; requests go through the Giggle gateway.
SkillCFreshness: CClaude Code +9 - 0.469score
discord-markdown
giggle-official
Discord-specific markdown syntax for formatting message strings.
SkillCFreshness: CClaude Code +9 - 0.469score
discord-bot
giggle-official
Discord bot development - community management, moderation, notifications, and AI integration
SkillCFreshness: CClaude Code +9 - 0.467score
dashboard
giggle-official
Build and serve visual dashboards for any agent — install hub, register modules, add widgets, push data, accessible from anywhere via stable URL.
SkillCFreshness: CClaude Code +9 - 0.456score
ai-director
giggle-official
AI短剧生成全流程:账号管理、编剧、视频生产。集成X2C计费系统,适用于商业化部署。包含 ad-account-manager(账号管理)、ad-writer(编剧提示词)、ad-producer(视频生产)三大模块。
SkillCFreshness: CClaude Code +9 - 0.455score
giggle-seedance2-gen
giggle-official
Use when the user wants to generate AI video, optimize video prompts, or work with Seedance 2.0.
SkillCFreshness: CClaude Code +9 - 0.414score
giggle-generation-image
giggle-official
Supports text-to-image and image-to-image.
SkillDFreshness: DClaude Code +9 - 0.414score
giggle-generation-scripts
giggle-official
Generates Chinese script content based on narrative pacing and dialogue mechanisms common in Jiang Wen films.
SkillDFreshness: DClaude Code +9 - 0.411score
giggle-generation-drama
giggle-official
Use this feature when users want to generate videos, shoot short films, or view available video styles.
SkillDFreshness: DClaude Code +9 - 0.411score
dailyhot-api
giggle-official
全网热榜聚合 API 服务 — 基于 DailyHotApi 开源项目,本地自动部署,零配置获取 40+ 平台实时热搜数据。覆盖抖音、微博、知乎、B站、百度、今日头条、快手等主流平台。触发词:热点、热搜、趋势、热榜、trending、hot topics。
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Mar 25, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/giggle-official/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from giggle-official
- 0.504score
giggle-minimax-h3-gen
giggle-official
Use when the user wants to generate AI video, optimize video prompts, or work with MiniMax-H3.
SkillBFreshness: BClaude Code +9 - 0.474score
discord-auto-deploy
giggle-official
Auto-deploy a Discord AI bot connected to OpenClaw Gateway.
SkillCFreshness: CClaude Code +9 - 0.471score
giggle-generation-tv-avatar-video
giggle-official
Talking-head video from image + driving audio: submit tasks via the wrapped generation API and poll for results; requests go through the Giggle gateway.
SkillCFreshness: CClaude Code +9 - 0.469score
discord-markdown
giggle-official
Discord-specific markdown syntax for formatting message strings.
SkillCFreshness: CClaude Code +9 - 0.469score
discord-bot
giggle-official
Discord bot development - community management, moderation, notifications, and AI integration
SkillCFreshness: CClaude Code +9 - 0.467score
dashboard
giggle-official
Build and serve visual dashboards for any agent — install hub, register modules, add widgets, push data, accessible from anywhere via stable URL.
SkillCFreshness: CClaude Code +9
Cite this page
giggle-generation-speech skill. Agent Mart. https://agentmart.dev/skills/giggle-official-giggle-generation-speech (last updated 2026-10-24)