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

  1. Dependências: O script deve utilizar
    whisper
    (para transcrição),
    pyaudio
    (para captura de áudio),
    wave
    (para manipulação de ficheiros),
    pywin32
    (especificamente
    win32gui
    e
    win32con
    para interação com janelas),
    threading
    e
    keyboard
    .
  2. 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
      THRESHOLD
      definido.
    • 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.
  3. Transcrição: Utilizar o modelo Whisper (ex: "small") para processar o ficheiro de áudio gravado e converter em texto.
  4. 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()
      e
      win32gui.SendMessage(handle, win32con.WM_SETTEXT, 0, text)
      .
  5. Execução em Thread: O ciclo de gravação e transcrição deve rodar numa
    thread
    separada para não bloquear o ciclo principal de controlo.
  6. Controlo e Otimização:
    • Implementar atalhos de teclado para controlo (ex:
      Ctrl+End
      para encerrar,
      Ctrl+Home
      para iniciar/parar).
    • Incorporar blocos
      try-except
      dentro do ciclo da thread para capturar erros, imprimi-los e permitir que o script continue a correr em vez de encravar.

Anti-Patterns

  • Não usar
    win32gui
    isoladamente sem
    win32con
    se necessário para constantes como
    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