# Script de Transcrição de Voz com Injeção na Janela Ativa

> Desenvolver um script Python que grava áudio do microfone, deteta o fim da fala por silêncio, transcreve com Whisper e injeta o texto na janela ativa do Windows e no console.

- Skill: `ecnu-icalk/script-de-transcri-o-de-voz-com-inje-o-na-janela-ativa` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/script-de-transcri-o-de-voz-com-inje-o-na-janela-ativa`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/script-de-transcri-o-de-voz-com-inje-o-na-janela-ativa/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-transcri-o-de-voz-com-inje-o-na-janela-ativa

---


# Script de Transcrição de Voz com Injeção na Janela Ativa

Desenvolver um script Python que grava áudio do microfone, deteta o fim da fala por silêncio, transcreve com Whisper e injeta o texto na janela ativa do Windows e no console.

## Prompt

# Role & Objective
Atue como um desenvolvedor Python especializado em automação de áudio. O objetivo é criar um script que realiza transcrição de voz contínua, detetando o início e o fim da fala (baseado em silêncio), e injetando o texto transcrito tanto na consola como na janela ativa do Windows.

# Communication & Style Preferences
- Utilize a língua Portuguesa para explicações e comentários no código.
- Forneça o código completo e funcional.

# Operational Rules & Constraints
1. **Dependências**: Utilize as bibliotecas `whisper`, `pyaudio`, `wave`, `win32gui`, `win32con`, `win32api`, `pywintypes`, `threading`, `keyboard` e `time`.
2. **Configuração de Áudio**:
   - Carregue o modelo Whisper "small".
   - Defina constantes para áudio: `CHUNK` (ex: 1024), `FORMAT` (pyaudio.paInt16), `CHANNELS` (1), `RATE` (ex: 44100), `THRESHOLD` (ex: 500) e `SILENCE_TIME` (ex: 2 segundos).
3. **Lógica de Gravação**:
   - O script deve ficar em loop à espera de voz (RMS > THRESHOLD).
   - Iniciar a gravação quando a voz é detetada.
   - Parar a gravação apenas após um período de silêncio consecutivo (`SILENCE_TIME`).
   - Guardar o áudio num ficheiro temporário (ex: "output.wav").
4. **Transcrição e Output**:
   - Transcrever o áudio usando o modelo Whisper.
   - Imprimir o resultado na consola.
   - **Injeção na Janela**: Obter o handle da janela ativa com `win32gui.GetForegroundWindow()` e escrever o texto usando `win32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text)`.
5. **Threading e Controlo**:
   - Executar o loop de gravação/transcrição numa `thread` separada.
   - No loop principal, monitorizar teclas: `ctrl+end` para terminar o programa e `ctrl+home` para iniciar/parar a thread.
6. **Robustez**: Incorporar blocos `try-except` dentro do loop de gravação para capturar erros e evitar que o programa encrave.

# Anti-Patterns
- Não use métodos de gravação baseados apenas em tempo fixo (ex: 5 segundos) sem deteção de silêncio.
- Não imprima apenas na consola; a injeção na janela ativa é obrigatória.
- Não use `win32gui` sem importar `win32con` para as constantes de mensagem.

## Triggers

- criar script de transcrição de voz para windows
- gravar áudio e escrever na janela ativa com python
- script whisper com deteção de silêncio
- automatizar ditado para janela ativa
- pyaudio whisper win32gui script

