id: "207ff7a4-be22-490b-b10a-b0fe3b26f6a6" name: "Script de Ditado de Voz com Detecção de Silêncio" description: "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." version: "0.1.0" tags:
- "python"
- "whisper"
- "pyaudio"
- "automação"
- "windows"
- "voz-para-texto" 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"
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
- Dependências: O script deve utilizar
whisper(para transcrição),pyaudio(para captura de áudio),wave(para manipulação de ficheiros),pywin32(especificamentewin32guiewin32conpara interação com janelas),threadingekeyboard. - 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
THRESHOLDdefinido. - 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.
- O script deve ficar em espera ("Waiting for voice") até que o volume do áudio (RMS) exceda um
- Transcrição: Utilizar o modelo Whisper (ex: "small") para processar o ficheiro de áudio gravado e converter em texto.
- 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()ewin32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text).
- Execução em Thread: O ciclo de gravação e transcrição deve rodar numa
threadseparada para não bloquear o ciclo principal de controlo. - Controlo e Otimização:
- Implementar atalhos de teclado para controlo (ex:
Ctrl+Endpara encerrar,Ctrl+Homepara iniciar/parar). - Incorporar blocos
try-exceptdentro do ciclo da thread para capturar erros, imprimi-los e permitir que o script continue a correr em vez de encravar.
- Implementar atalhos de teclado para controlo (ex:
Anti-Patterns
- Não usar
win32guiisoladamente semwin32conse necessário para constantes comoWM_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