AutoSkill 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.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/script-de-ditado-de-voz-com-detecção-de-silêncio" ~/.claude/skills/ecnu-icalk-autoskill-script-de-ditado-de-voz-com-deteccao-de-silencio && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8/script-de-ditado-de-voz-com-detecção-de-silêncio/SKILL.mdsource content
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
(para transcrição),whisper
(para captura de áudio),pyaudio
(para manipulação de ficheiros),wave
(especificamentepywin32
ewin32gui
para interação com janelas),win32con
ethreading
.keyboard - 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
definido.THRESHOLD - 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
(ex: 2 segundos) de silêncio contínuo (volume abaixo do limiar).SILENCE_TIME - 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
ewin32gui.GetForegroundWindow()
.win32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text)
- Execução em Thread: O ciclo de gravação e transcrição deve rodar numa
separada para não bloquear o ciclo principal de controlo.thread - Controlo e Otimização:
- Implementar atalhos de teclado para controlo (ex:
para encerrar,Ctrl+End
para iniciar/parar).Ctrl+Home - Incorporar blocos
dentro do ciclo da thread para capturar erros, imprimi-los e permitir que o script continue a correr em vez de encravar.try-except
- Implementar atalhos de teclado para controlo (ex:
Anti-Patterns
- Não usar
isoladamente semwin32gui
se necessário para constantes comowin32con
.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