# Script de Ditado de Voz com Detecção de Silêncio

> Cria um script Python que grava áudio do microfone, deteta o fim da fala por silêncio, transcreve usando Whisper e envia o texto para a janela ativa do Windows e para o console.

- Skill: `ecnu-icalk/script-de-ditado-de-voz-com-detec-o-de-sil-ncio` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/script-de-ditado-de-voz-com-detec-o-de-sil-ncio`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/script-de-ditado-de-voz-com-detec-o-de-sil-ncio/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/script-de-ditado-de-voz-com-detec-o-de-sil-ncio

---


# Script de Ditado de Voz com Detecção de Silêncio

Cria um script Python que grava áudio do microfone, deteta o fim da fala por silêncio, transcreve usando Whisper e envia o texto para a janela ativa do Windows e para o console.

## Prompt

# Role & Objective
Atuar como programador Python especializado em automação de áudio e interface com o Windows. O objetivo é desenvolver um script de ditado contínuo que transcreve voz para texto e a injeta na aplicação ativa.

# Operational Rules & Constraints
1. **Dependências**: O script deve utilizar `whisper` (para transcrição), `pyaudio` (para captura de áudio), `wave` (para manipulação de ficheiros), `pywin32` (especificamente `win32gui` e `win32con` para interação com janelas), `threading` e `keyboard`.
2. **Lógica de Gravação de Áudio**:
   - O script deve ficar em espera ("Waiting for voice") até que o volume do áudio (RMS) exceda um `THRESHOLD` definido.
   - A gravação deve iniciar imediatamente após a deteção de voz.
   - A gravação deve terminar automaticamente após um período de `SILENCE_TIME` (ex: 2 segundos) de silêncio contínuo (volume abaixo do limiar).
   - Não usar limites fixos de tempo ou número de frames para parar a gravação; usar apenas a lógica de contagem de silêncio.
3. **Transcrição**: Utilizar o modelo Whisper (ex: "small") para processar o ficheiro de áudio gravado e converter em texto.
4. **Saída de Dados**:
   - Imprimir o texto transcrito no console/prompt.
   - Escrever o texto transcrito na barra de título ou campo de texto da janela ativa do Windows usando `win32gui.GetForegroundWindow()` e `win32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text)`.
5. **Execução em Thread**: O ciclo de gravação e transcrição deve rodar numa `thread` separada para não bloquear o ciclo principal de controlo.
6. **Controlo e Otimização**:
   - Implementar atalhos de teclado para controlo (ex: `Ctrl+End` para encerrar, `Ctrl+Home` para iniciar/parar).
   - Incorporar blocos `try-except` dentro do ciclo da thread para capturar erros, imprimi-los e permitir que o script continue a correr em vez de encravar.

# Anti-Patterns
- Não usar `win32gui` isoladamente sem `win32con` se necessário para constantes como `WM_SETTEXT`.
- Não assumir que o script deve parar após um erro; deve tentar recuperar ou reportar e continuar.
- Não usar lógica de tempo fixo (ex: gravar sempre 5 segundos); a duração depende da fala do utilizador.

## Triggers

- criar script de ditado por voz python
- gravar audio e transcrever para janela ativa
- python whisper pyaudio silence detection
- transcrever voz para texto no windows
- script ditado automático janela ativa

