Skip to content
Back to skills

Audio

ASecurity

Gera áudio (TTS) via ElevenLabs. Use quando o usuário quiser: - Converter texto em fala - Gerar áudio narrado - Enviar mensagem de voz gerada - Criar podcast/narração

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentspythongoshellbashexpressapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 20, 2026

npx -y skills add filipexyz/ravi --skill audio --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audio?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audio
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filipexyz-audio/badge)](https://www.skillsdirectory.com/skills/filipexyz-audio)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: audio
description: |
  Gera áudio (TTS) via ElevenLabs. Use quando o usuário quiser:
  - Converter texto em fala
  - Gerar áudio narrado
  - Enviar mensagem de voz gerada
  - Criar podcast/narração
---

# Audio Generation (TTS)

> Verbos: AGIR (mídia). Compõe com: whatsapp, pages.
> Solução com mais de uma peça? `ravi skills show solucoes` primeiro.

Gera áudio a partir de texto usando ElevenLabs Text-to-Speech.

## Contrato Do CLI

Rode com `--json` sempre que for decidir programaticamente. Com `--json`, falha sai em envelope `{success:false, op, error:{code, message, retryable, suggestedAction, ...}}`.

Taxonomia de saída: `0` sucesso · `1` erro de execução (validação de texto/arquivo) · `2` erro de uso · `3` bloqueio por confirmação — não é falha: nenhum efeito externo foi iniciado e o envelope traz `dryRun:true` e o `plan` resolvido.

Onde o freio existe: `audio generate` roda direto quando apenas gera o arquivo local; exige `--execute` somente com `--send`, antes da geração e da entrega externa. `audio tts` continua dry-run por default porque publica uma requisição que dispara geração e playback downstream. O custo da API, sem estimativa e limite configurado, não é motivo isolado para confirmação. `audio voices`, `audio pending` e `audio blob` são leitura, sem freio.

Compact mode: `audio voices` e `audio pending` aceitam `--fields a,b,c` (ex.: `--fields voiceId,name`).

Checklist antes de responder sobre áudio:

- Tratei exit 3 como bloqueio (revisei a entrega ou execução disparada no `plan`) e não como falha?
- Usei `--execute` somente quando pedi `--send` ou `audio tts`?
- Usei `--fields` nas listagens para não arrastar objetos inteiros?

## Como usar

### Gerar áudio simples
```bash
ravi audio generate "Olá, eu sou o Ravi!"
```

Sem `--send`, a geração e a persistência local rodam imediatamente.

### Com voz específica
```bash
ravi audio generate "Hello world" --voice JBFqnCBsd6RMkjVDRZzb
```

### Com velocidade alterada
```bash
ravi audio generate "Texto rápido" --speed 1.5
```

### Com idioma forçado
```bash
ravi audio generate "Bom dia a todos" --lang pt
```

### Gerar e enviar direto no chat
```bash
ravi audio generate "Mensagem de voz" --send --execute
```

### Gerar a partir de arquivo de texto
```bash
ravi audio generate --text-file roteiro.md --lang fr --send --execute
```

`--text-file` só aceita arquivos relativos ao diretório atual, sem `..`, e apenas extensões `.md` ou `.txt`. Use isso para textos longos em vez de `$(cat ...)`, heredoc, `python -c` ou substituição de shell.

### Com caption custom ao enviar
```bash
ravi audio generate "Conteúdo importante" --send --caption "Escuta isso" --execute
```

### Modelo turbo (mais rápido, menos expressivo)
```bash
ravi audio generate "Quick response" --model eleven_turbo_v2_5
```

### Salvar em diretório específico
```bash
ravi audio generate "Narração" -o /tmp/audios
```

## Opções

| Flag | Descrição | Default |
|------|-----------|---------|
| `--voice <id>` | Voice ID do ElevenLabs | env `ELEVENLABS_VOICE_ID` ou default |
| `--model <model>` | `eleven_multilingual_v2`, `eleven_turbo_v2_5` | `eleven_multilingual_v2` |
| `--speed <speed>` | Velocidade 0.5-2.0 | `1.0` |
| `--lang <code>` | Idioma ISO 639-1 (`pt`, `en`, `es`) | auto-detect |
| `--format <fmt>` | `mp3_44100_128`, `mp3_22050_32`, `pcm_16000` | `mp3_44100_128` |
| `-o, --output <dir>` | Diretório de saída | `/tmp` |
| `--send` | Envia pro chat automaticamente | `false` |
| `--caption <text>` | Caption ao enviar (com `--send`) | início do texto |
| `--text-file <path>` | Lê texto de arquivo relativo `.md` ou `.txt` | nenhum |
| `--execute` | Confirma a entrega externa quando usado com `--send` | não necessário sem `--send` |

## Retorno

O comando retorna o path do áudio gerado + o comando pra enviar:
```
✓ Audio saved: /tmp/ravi-audio-1234567890.mp3
  Send to chat: ravi media send "/tmp/ravi-audio-1234567890.mp3" --execute
```

Se usar `--send`, o Ravi entrega direto via `omni send` em vez de só publicar um evento interno. O retorno passa a refletir ack/erro real da entrega e preserva thread/topic quando existir no contexto.

## Fluxo recomendado

1. Rode `ravi audio generate "texto"` — gera o MP3 local diretamente
2. Para textos longos, salve em `.md` ou `.txt` no diretório atual e use `--text-file caminho-relativo.md`
3. Se precisa enviar pro chat, use `--send --execute` ou copie o comando `ravi media send` do output
4. Pra português, use `--lang pt` pra melhor pronúncia

## Limitações

- Requer `ELEVENLABS_API_KEY` no `~/.ravi/.env`
- Textos muito longos podem demorar
- Voices customizadas precisam do voice ID específico

## Configuração

- `ELEVENLABS_API_KEY` — obrigatória, no `~/.ravi/.env`
- `ELEVENLABS_VOICE_ID` — voice padrão (opcional)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.