AutoSkill 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.
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_GLM4.7/script-de-transcrição-de-voz-com-injeção-na-janela-ativa" ~/.claude/skills/ecnu-icalk-autoskill-script-de-transcricao-de-voz-com-injecao-na-janela-ativa && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/script-de-transcrição-de-voz-com-injeção-na-janela-ativa/SKILL.mdsource content
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
- Dependências: Utilize as bibliotecas
,whisper
,pyaudio
,wave
,win32gui
,win32con
,win32api
,pywintypes
,threading
ekeyboard
.time - Configuração de Áudio:
- Carregue o modelo Whisper "small".
- Defina constantes para áudio:
(ex: 1024),CHUNK
(pyaudio.paInt16),FORMAT
(1),CHANNELS
(ex: 44100),RATE
(ex: 500) eTHRESHOLD
(ex: 2 segundos).SILENCE_TIME
- 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").
- 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
e escrever o texto usandowin32gui.GetForegroundWindow()
.win32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text)
- Threading e Controlo:
- Executar o loop de gravação/transcrição numa
separada.thread - No loop principal, monitorizar teclas:
para terminar o programa ectrl+end
para iniciar/parar a thread.ctrl+home
- Executar o loop de gravação/transcrição numa
- Robustez: Incorporar blocos
dentro do loop de gravação para capturar erros e evitar que o programa encrave.try-except
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
sem importarwin32gui
para as constantes de mensagem.win32con
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