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.md
source 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

  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