Mídia Faren - Guia Completo (HTML)

Esta página contém as mesmas informações técnicas do README.md, com visual organizado.

Ilustrações do projeto

Banner do fluxo de resumo de sessão Interface principal do Mídia Faren

Áudio de exemplo incluído para teste imediato

  • Arquivo: data/Oneshot-ODiaboDoPoco-Terca.ogg
  • Contexto: one-shot no cenário de The Witcher
  • Mesa: 3 jogadores
  • Sistema: DND 5e 2024

Player do exemplo

Ouvir exemplo OGG (link direto)

Use este arquivo para validar transcrição, marcação de tempo/falantes, glossário e o fluxo de resumo.

Windows Sem Git obrigatório Flask Transcrição + Mixagem GPU CUDA opcional

Links rápidos desta documentação:

1) O que este pacote contém

Estrutura runtime incluída vazia: data/uploads/, data/transcribe_cache/, downloads/, logs/.

2) Requisitos obrigatórios

  1. Python 3.11+ (3.13 também funciona) - python.org/downloads/windows
  2. FFmpeg (full shared) - gyan.dev/ffmpeg/builds
  3. Microsoft VC++ Redistributable (x64) - learn.microsoft.com VC++ redist

Recomendado para desempenho: Driver NVIDIA (link) e CUDA Toolkit (link).

3) Instalação do zero (sem Git)

  1. Baixe o ZIP do projeto.
  2. Descompacte em uma pasta local (ex.: C:\midia-faren).
  3. Execute executar.bat.
  4. Aguarde os passos de instalação/validação.
  5. Acesse http://127.0.0.1:5000/.

3.1) Fluxo GitHub (clonar, commitar e publicar)

Repositório oficial: https://github.com/FarenRavirar/midia-faren/

Clonar o repositório

git clone https://github.com/FarenRavirar/midia-faren.git
cd midia-faren

Para trabalhar só no pacote de instalação:

cd instalacao\\midia-faren

Commits e push (fluxo básico)

git status
git add .
git commit -m \"chore: atualizacao da documentacao e instalacao\"
git push origin main

Baixar ZIP sem Git

No GitHub: Code -> Download ZIP.

Publicar ZIP em Releases (recomendado)

  1. Criar tag e enviar:
git tag -a v1.0.0 -m \"release v1.0.0\"
git push origin v1.0.0
  1. No GitHub: Releases -> Draft a new release, selecione a tag e anexe o ZIP do pacote.
  2. Gerar ZIP localmente (PowerShell):
Compress-Archive -Path \".\\instalacao\\midia-faren\\*\" -DestinationPath \".\\instalacao\\midia-faren-v1.0.0.zip\" -Force

4) O que o executar.bat faz

Flags úteis

executar.bat --setup-env --recreate-venv --ffmpeg-path-auto

5) FFmpeg: como garantir detecção

Ordem de busca do app:

  1. tools\ffmpeg\bin\ffmpeg.exe
  2. C:\tools\ffmpeg\ffmpeg-7.1.1-full_build-shared\bin\ffmpeg.exe
  3. ffmpeg no PATH

Teste:

ffmpeg -version

6) GPU vs CPU (comportamento real)

.venv_cuda\Scripts\python -c "import torch; print(torch.cuda.is_available(), torch.version.cuda)"

7) Backends de transcrição

Disponíveis na UI: whisper_cpp, faster_whisper, whisperx.

Recursos: chunking + overlap, checkpoint por chunk, retomada/reprocessamento, guardrails anti-loop, glossário persistente.

8) Modelos (qualidade x velocidade)

Modelo Velocidade Qualidade Link
tinyMuito altaBaixaopenai/whisper-tiny
baseAltaBaixa/médiaopenai/whisper-base
smallMédia/altaMédiaopenai/whisper-small
mediumMédiaBoaopenai/whisper-medium
large-v3Mais lentoMuito altaopenai/whisper-large-v3
distil-large-v3Mais rápidoPróxima do large-v3distil-whisper/distil-large-v3

Arquivo de referência: MODELOS_DOWNLOAD.txt.

Onde cada modelo fica

9) Importante sobre whisper_cpp neste pacote

Para manter o repositório leve no GitHub, binários grandes e modelos .bin do whisper_cpp não são incluídos.

  1. Abrir MODELOS_DOWNLOAD.txt.
  2. Baixar modelos ggml-*.bin.
  3. Copiar para transcriber\models\.
  4. Selecionar backend/modelo na UI.

10) Fluxo recomendado: Craig -> Transcrição estruturada -> NotebookLM

Regra principal

Para resumo de sessão no NotebookLM, a fonte principal deve ser a transcrição em texto (TXT/SRT), com timestamps corretos e separação por falantes/personagens quando aplicável.

O M4A mixado pode ser usado como fonte complementar, mas não substitui a transcrição estruturada.

Pipeline recomendado no projeto

  1. Gerar transcrição completa na aba Transcrição.
  2. Confirmar saída em .txt e .srt com marcação temporal e falantes.
  3. Revisar trecho final para evitar cauda repetitiva/loop.
  4. (Opcional) gerar M4A em Conversor -> Mixagem.
  5. Acessar NotebookLM.
  6. Criar notebook e enviar primeiro TXT/SRT.
  7. Usar o prompt da seção 10.2 para gerar o resumo.

10.1 Passo a passo no NotebookLM

  1. Acesse NotebookLM.
  2. Crie novo notebook.
  3. Adicione a transcrição (.txt ou .srt) como fonte principal.
  4. Aguarde indexação da fonte.
  5. (Opcional) adicione o M4A como fonte complementar.
  6. Cole o prompt da seção 10.2 no chat.
  7. Idioma: Português (Brasil).

10.2 Prompt pronto (modelo genérico)

Gere um resumo da sessão de RPG baseada na transcrição "[nome da transcrição]" no cenário "[nome do cenário]".

Quero um texto em formato de conto narrado em primeira pessoa do plural ("nós"), como se um dos jogadores estivesse contando para amigos o que aconteceu.

Regras do resultado:
1) Não faça análise técnica da mesa.
2) Não foque em elogiar ou exaltar pessoas específicas.
3) Conte os acontecimentos da sessão com narrativa fluida e empolgante.

Estrutura esperada:
1) Abertura da sessão:
   - como nós chegamos;
   - contexto inicial do local;
   - quem eram os personagens presentes.

2) Desenvolvimento:
   - conflitos e tensões;
   - estratégias que nós tentamos;
   - decisões e indecisões;
   - reviravoltas, surpresas e consequências;
   - acontecimentos importantes em ordem clara.

3) Fechamento:
   - estado final do grupo;
   - perguntas em aberto;
   - gancho para continuação.

Diretriz de fidelidade:
- Use os nomes e fatos das fontes enviadas (transcrição com timestamps/falantes + notas de contexto), sem inventar fatos fora do material.
- Se algo estiver ambíguo, indique como possibilidade em vez de afirmar com certeza.

Final obrigatório (adapte ao contexto):
"Vamos ver aonde essa trama vai nos levar na próxima sessão."

10.3 Bloco de notas de contexto

[NOTAS DE CONTEXTO DA SESSAO]

Nome do audio: [nome do audio]
Nome do cenario: [nome do cenario]
Sistema: [sistema de RPG]
Resumo do contexto inicial: [contexto inicial da sessao]

Personagens de jogadores:
- Jogador: [nome do jogador 1]
  Personagem: [nome do personagem 1]
  Conceito: [raca/classe/profissao]
  Vinculo ou origem: [faccao/cidade/clan/grupo]
  Motivacao atual: [objetivo na sessao]

- Jogador: [nome do jogador 2]
  Personagem: [nome do personagem 2]
  Conceito: [raca/classe/profissao]
  Vinculo ou origem: [faccao/cidade/clan/grupo]
  Motivacao atual: [objetivo na sessao]

NPCs importantes:
- NPC: [nome do NPC 1]
  Papel na historia: [funcao]
  Relacao com o grupo: [como influencia o grupo]

- NPC: [nome do NPC 2]
  Papel na historia: [funcao]
  Relacao com o grupo: [como influencia o grupo]

Termos e nomes que nao devem ser corrigidos:
- [termo 1]
- [termo 2]
- [local 1]

Observacoes de pronuncia ou escrita:
- [nome dificil 1] -> [forma correta]
- [nome dificil 2] -> [forma correta]

11) Verificações pós-instalação

.venv_cuda\Scripts\python -c "import flask,requests,yt_dlp; print('core_ok')"
.venv_cuda\Scripts\python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.version.cuda)"
.venv_cuda\Scripts\python -c "import importlib.metadata as md; print(md.version('whisperx'), md.version('faster-whisper'), md.version('ctranslate2'))"

12) Troubleshooting rápido

ffmpeg não encontrado

Erro de dependência Python

executar.bat --setup-env --recreate-venv

Transcrição lenta

Loop/repetição no final

13) Publicação no GitHub

14) Smoke test de 10 minutos

Checklist completo no arquivo: SMOKE_TEST_10_MIN.md.

Critério de aprovação rápido:

  1. App sobe e a UI abre.
  2. Conversão curta termina com sucesso.
  3. Transcrição curta gera .txt e .srt.
  4. Cancelamento de job funciona.
  5. Sem erro crítico persistente no final de logs/app.log.

15) Checklist final

Créditos: desenvolvido por Paulo "Faren" Lima, do Artifício RPG.