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
SenseVoicepara converter fala em texto com alta precisão. - Diarização de falantes (Speaker Diarization): Emprega o modelo
3D-Speaker(mais especificamente3D-Speaker Speaker Embeddingseguido 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
-
Clone o repositório:
git clone https://github.com/henrCh1/meeting-to-text.git cd meeting-to-text -
Crie e ative um ambiente virtual:
python -m venv venv source venv/bin/activate # Linux/macOS # .\venv\Scripts\activate # Windows -
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 (cudaoucpu).--output(opcional): Caminho para salvar a transcrição (padrão: diretório doinputcom 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)
- Extração: Se o arquivo for vídeo,
ffmpegextrai a faixa de áudio. - Pré-processamento: O áudio é normalizado e segmentado.
- ASR com SenseVoice: O modelo SenseVoice transcreve cada segmento em texto.
- Diarização com 3D-Speaker: O modelo 3D-Speaker extrai embeddings de fala e agrupa segmentos por similaridade, identificando os falantes.
- 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.jsonpara trocar os modelos padrão. - Idiomas: O SenseVoice suporta múltiplos idiomas (configurável nas opções).
Notas
- Certifique-se de que o
ffmpegestá 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.