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.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill script-de-transcrição-de-voz-com-injeção-na-janela-ativaAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
3.3 KB, 785 tokens by cl100k_base, as published. Nobody here has run it
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,keyboardetime. - 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) eSILENCE_TIME(ex: 2 segundos).
- 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
win32gui.GetForegroundWindow()e escrever o texto usandowin32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text).
- Threading e Controlo:
- Executar o loop de gravação/transcrição numa
threadseparada. - No loop principal, monitorizar teclas:
ctrl+endpara terminar o programa ectrl+homepara iniciar/parar a thread.
- Executar o loop de gravação/transcrição numa
- Robustez: Incorporar blocos
try-exceptdentro 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
win32guisem importarwin32conpara 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.