Communitygithub.com

henrCh1/meeting-to-text

Habilidade de IA para transcrição local de reuniões e diarização de falantes (SenseVoice + 3D-Speaker). Conversão offline de vídeo/áudio para texto com separação de falantes (< 3 GB).

O que é meeting-to-text?

Esta skill oferece uma solução robusta e completamente offline para transcrição de reuniões e diarização de falantes, utilizando os modelos SenseVoice para reconhecimento de fala e 3D-Speaker para separação de falantes. Ideal para cenários onde a privacidade e a confiabilidade são essenciais, ela permite processar arquivos de áudio e vídeo localmente, sem depender de serviços em nuvem. O consumo de memória é inferior a 3 GB, tornando-a acessível em hardware modesto. A skill integra extração de áudio de vídeos, reconhecimento automático de fala (ASR) de alta precisão e capacidade de identificar e rotular diferentes participantes em uma conversa, sendo perfeita para reuniões, entrevistas ou palestras. Suporta agentes como Claude Code, Cursor e Codex, e seu funcionamento é baseado em pipelines Python e scripts de linha de comando, garantindo flexibilidade e controle total sobre os dados processados.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add henrCh1/meeting-to-text

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que meeting-to-text faz?

Habilidade de IA para transcrição local de reuniões e diarização de falantes (SenseVoice + 3D-Speaker). Conversão offline de vídeo/áudio para texto com separação de falantes (< 3 GB). Habilidade de agente inteligente para transcrição de reuniões local e puramente offline, integrando extração de áudio/vídeo e ASR de alta precisão.

Visão Geral

Esta habilidade utiliza modelos de IA de última geração para transcrever e diarizar reuniões, entrevistas ou qualquer gravação de áudio ou vídeo, completamente offline. Ela combina:

  • Extração de áudio: Separa a faixa de áudio de arquivos de vídeo automaticamente.
  • Reconhecimento de fala (ASR): Utiliza o modelo SenseVoice para converter fala em texto com alta precisão.
  • Diarização de falantes (Speaker Diarization): Emprega o modelo 3D-Speaker (mais especificamente 3D-Speaker Speaker Embedding seguido por um componente de diarização) para identificar "quem falou o quê" e separar os diferentes falantes.

Pré-requisitos

  • Sistema Operacional: Linux, macOS ou Windows (com suporte a Python e GPU/multi-processamento).
  • Hardware: Recomendado pelo menos 4 GB de RAM (a skill em si consome < 3 GB). GPU com CUDA é opcional, mas acelera o processo significativamente.
  • Software:
    • Python 3.8 ou superior.
    • ffmpeg (para extração de áudio).
    • Pip e ambiente virtual Python (recomendado).

Instalação

  1. Clone o repositório:

    git clone https://github.com/henrCh1/meeting-to-text.git
    cd meeting-to-text
    
  2. Crie e ative um ambiente virtual:

    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    # .\venv\Scripts\activate  # Windows
    
  3. Instale as dependências:

    pip install -r requirements.txt
    

Uso

Comando Básico

Para transcrever um único arquivo de áudio ou vídeo:

python transcribe.py --input caminho/para/seu/arquivo.mp4

Para arquivos de áudio como MP3, WAV, etc.:

python transcribe.py --input caminho/para/seu/arquivo.wav

Opções

  • --input (obrigatório): Caminho para o arquivo de áudio ou vídeo.
  • --model (opcional): Especificar qual modelo ASR usar (padrão: SenseVoice).
  • --device (opcional): Forçar dispositivo (cuda ou cpu).
  • --output (opcional): Caminho para salvar a transcrição (padrão: diretório do input com sufixo _transcript.txt).

exemplo:

python transcribe.py --input reuniao.mp4 --output reuniao_transcrito.txt --device cuda

Saída

O script gera um arquivo de texto com timestamps e falantes identificados:

[00:00:00 - 00:00:05] Falante_1: Olá, bem-vindos à reunião.
[00:00:05 - 00:00:10] Falante_2: Obrigado. Vamos começar.
[00:00:10 - 00:00:15] Falante_1: Primeiramente, gostaria de discutir o projeto.

Como Funciona (Fluxo Interno)

  1. Extração: Se o arquivo for vídeo, ffmpeg extrai a faixa de áudio.
  2. Pré-processamento: O áudio é normalizado e segmentado.
  3. ASR com SenseVoice: O modelo SenseVoice transcreve cada segmento em texto.
  4. Diarização com 3D-Speaker: O modelo 3D-Speaker extrai embeddings de fala e agrupa segmentos por similaridade, identificando os falantes.
  5. Pós-processamento: Os resultados são combinados, com timestamps e rótulos de falantes, e salvos em arquivo de texto.

Suporte a Agentes

Esta skill pode ser integrada a agentes de IA como:

  • Claude Code: Pode ser invocada como uma ferramenta para processar arquivos de reunião.
  • Cursor: Scripts podem ser executados via terminal integrado ou configuração de comandos personalizados.
  • Codex: Pode ser usada como um script executor de alta privacidade para dados de áudio.

Personalização

  • Modelos: Você pode modificar o arquivo config.json para trocar os modelos padrão.
  • Idiomas: O SenseVoice suporta múltiplos idiomas (configurável nas opções).

Notas

  • Certifique-se de que o ffmpeg está instalado no sistema.
  • Para GPU, instale PyTorch com suporte CUDA (pip install torch==versao+cu121).
  • O modelo 3D-Speaker será baixado automaticamente na primeira execução.

Licença

Este projeto é distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.

Habilidades Relacionadas