transcritorio 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. transcritorio-0.2.0/LICENSE +21 -0
  2. transcritorio-0.2.0/NOTICE +34 -0
  3. transcritorio-0.2.0/PKG-INFO +245 -0
  4. transcritorio-0.2.0/README.md +200 -0
  5. transcritorio-0.2.0/pyproject.toml +97 -0
  6. transcritorio-0.2.0/setup.cfg +4 -0
  7. transcritorio-0.2.0/transcribe_pipeline/__init__.py +7 -0
  8. transcritorio-0.2.0/transcribe_pipeline/__main__.py +5 -0
  9. transcritorio-0.2.0/transcribe_pipeline/app_service.py +976 -0
  10. transcritorio-0.2.0/transcribe_pipeline/app_settings.py +99 -0
  11. transcritorio-0.2.0/transcribe_pipeline/ask.py +133 -0
  12. transcritorio-0.2.0/transcribe_pipeline/assets/transcritorio_icon.ico +0 -0
  13. transcritorio-0.2.0/transcribe_pipeline/assets/transcritorio_icon.svg +10 -0
  14. transcritorio-0.2.0/transcribe_pipeline/audio.py +89 -0
  15. transcritorio-0.2.0/transcribe_pipeline/boundary_check.py +407 -0
  16. transcritorio-0.2.0/transcribe_pipeline/capabilities.py +361 -0
  17. transcritorio-0.2.0/transcribe_pipeline/channels.py +505 -0
  18. transcritorio-0.2.0/transcribe_pipeline/cli.py +718 -0
  19. transcritorio-0.2.0/transcribe_pipeline/config.py +251 -0
  20. transcritorio-0.2.0/transcribe_pipeline/cuda_installer.py +114 -0
  21. transcritorio-0.2.0/transcribe_pipeline/diagnostics.py +172 -0
  22. transcritorio-0.2.0/transcribe_pipeline/diar_signals.py +231 -0
  23. transcritorio-0.2.0/transcribe_pipeline/diarization.py +371 -0
  24. transcritorio-0.2.0/transcribe_pipeline/glossario.py +662 -0
  25. transcritorio-0.2.0/transcribe_pipeline/gui_launcher.py +147 -0
  26. transcritorio-0.2.0/transcribe_pipeline/gui_tk.py +240 -0
  27. transcritorio-0.2.0/transcribe_pipeline/install_tools.py +152 -0
  28. transcritorio-0.2.0/transcribe_pipeline/llm_env.py +141 -0
  29. transcritorio-0.2.0/transcribe_pipeline/llm_worker.py +410 -0
  30. transcritorio-0.2.0/transcribe_pipeline/manifest.py +295 -0
  31. transcritorio-0.2.0/transcribe_pipeline/mlx_whisper_runner.py +494 -0
  32. transcritorio-0.2.0/transcribe_pipeline/model_manager.py +1755 -0
  33. transcritorio-0.2.0/transcribe_pipeline/onnx_env.py +144 -0
  34. transcritorio-0.2.0/transcribe_pipeline/parakeet_runner.py +623 -0
  35. transcritorio-0.2.0/transcribe_pipeline/parakeet_worker.py +130 -0
  36. transcritorio-0.2.0/transcribe_pipeline/progress_bar_fallback.py +35 -0
  37. transcritorio-0.2.0/transcribe_pipeline/project_store.py +909 -0
  38. transcritorio-0.2.0/transcribe_pipeline/qc.py +266 -0
  39. transcritorio-0.2.0/transcribe_pipeline/recent_projects.py +41 -0
  40. transcritorio-0.2.0/transcribe_pipeline/render.py +618 -0
  41. transcritorio-0.2.0/transcribe_pipeline/research_context.py +93 -0
  42. transcritorio-0.2.0/transcribe_pipeline/review_store.py +393 -0
  43. transcritorio-0.2.0/transcribe_pipeline/review_studio_qt.py +11880 -0
  44. transcritorio-0.2.0/transcribe_pipeline/runtime.py +444 -0
  45. transcritorio-0.2.0/transcribe_pipeline/search.py +380 -0
  46. transcritorio-0.2.0/transcribe_pipeline/status.py +78 -0
  47. transcritorio-0.2.0/transcribe_pipeline/summarize.py +152 -0
  48. transcritorio-0.2.0/transcribe_pipeline/token_vault.py +271 -0
  49. transcritorio-0.2.0/transcribe_pipeline/ui_banners.py +53 -0
  50. transcritorio-0.2.0/transcribe_pipeline/ui_docs_panel.py +234 -0
  51. transcritorio-0.2.0/transcribe_pipeline/ui_shell.py +64 -0
  52. transcritorio-0.2.0/transcribe_pipeline/ui_tokens.py +134 -0
  53. transcritorio-0.2.0/transcribe_pipeline/utils.py +212 -0
  54. transcritorio-0.2.0/transcribe_pipeline/voice_recognition.py +172 -0
  55. transcritorio-0.2.0/transcribe_pipeline/whisperx_runner.py +302 -0
  56. transcritorio-0.2.0/transcribe_pipeline/words.py +127 -0
  57. transcritorio-0.2.0/transcritorio.egg-info/PKG-INFO +245 -0
  58. transcritorio-0.2.0/transcritorio.egg-info/SOURCES.txt +60 -0
  59. transcritorio-0.2.0/transcritorio.egg-info/dependency_links.txt +1 -0
  60. transcritorio-0.2.0/transcritorio.egg-info/entry_points.txt +5 -0
  61. transcritorio-0.2.0/transcritorio.egg-info/requires.txt +23 -0
  62. transcritorio-0.2.0/transcritorio.egg-info/top_level.txt +1 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rogerio Jeronimo Barbosa
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,34 @@
1
+ Transcritorio — third-party components bundled with distributed binaries.
2
+
3
+ NOTE (2026-08): this notice applies to the LEGACY standalone releases
4
+ (.exe/.dmg/AppImage, v0.1.x), which bundled FFmpeg builds. The current
5
+ distribution channel (Python wheel on PyPI installed via uv) bundles no
6
+ third-party binaries: FFmpeg comes from the user's package manager
7
+ (winget/brew/apt) and Python dependencies come from PyPI under their own
8
+ licenses.
9
+
10
+ The Python source in this repository is licensed under the MIT License (see LICENSE).
11
+
12
+ Some distributed release artifacts bundle static builds of FFmpeg (ffmpeg + ffprobe),
13
+ which are licensed under the GNU General Public License (GPL). The bundled builds
14
+ come from the following upstream sources, which also provide the corresponding
15
+ source code required by the GPL:
16
+
17
+ - Windows x86_64: https://github.com/BtbN/FFmpeg-Builds (GPL 3.0 shared build)
18
+ - macOS arm64: https://evermeet.cx/ffmpeg/ (GPL 3.0 static build)
19
+ - Linux x86_64: https://johnvansickle.com/ffmpeg/ (GPL 3.0 static build)
20
+
21
+ Using, redistributing or modifying the bundled FFmpeg binaries is subject to the
22
+ terms of their license. The Python source of Transcritorio (MIT) and the bundled
23
+ FFmpeg binaries (GPL) are distributed together as a convenience; this repository
24
+ as source does not include, require or derive from FFmpeg's source code.
25
+
26
+ This product also relies on the following open-source libraries (each under its
27
+ own permissive or compatible license; not bundled as binary):
28
+
29
+ - WhisperX https://github.com/m-bain/whisperX BSD-2
30
+ - faster-whisper https://github.com/SYSTRAN/faster-whisper MIT
31
+ - mlx-whisper https://github.com/ml-explore/mlx-examples MIT
32
+ - pyannote.audio https://github.com/pyannote/pyannote-audio MIT
33
+ - PySide6 https://pypi.org/project/PySide6/ LGPL
34
+ - torch https://pytorch.org BSD-3
@@ -0,0 +1,245 @@
1
+ Metadata-Version: 2.4
2
+ Name: transcritorio
3
+ Version: 0.2.0
4
+ Summary: Transcricao local de entrevistas em portugues brasileiro, com separacao de falantes (WhisperX + pyannote). Nenhum audio sai do computador.
5
+ Author: Rogerio Jeronimo Barbosa
6
+ License: MIT
7
+ Project-URL: Homepage, https://antrologos.github.io/Transcritorio/pt/
8
+ Project-URL: Repository, https://github.com/antrologos/Transcritorio
9
+ Project-URL: Changelog, https://github.com/antrologos/Transcritorio/blob/main/CHANGELOG.md
10
+ Project-URL: Issues, https://github.com/antrologos/Transcritorio/issues
11
+ Keywords: transcricao,whisper,whisperx,diarizacao,entrevistas,pesquisa-qualitativa,asr
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Natural Language :: Portuguese (Brazilian)
15
+ Classifier: Operating System :: Microsoft :: Windows
16
+ Classifier: Operating System :: MacOS
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
20
+ Requires-Python: <3.14,>=3.10
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE
23
+ License-File: NOTICE
24
+ Requires-Dist: PySide6==6.11.0
25
+ Requires-Dist: whisperx==3.8.5
26
+ Requires-Dist: pyannote-audio==4.0.4
27
+ Requires-Dist: faster-whisper==1.2.1
28
+ Requires-Dist: torchcodec==0.7.0
29
+ Requires-Dist: huggingface_hub>=0.28.1
30
+ Requires-Dist: python-docx>=1.2.0
31
+ Requires-Dist: jiwer>=3.0.0
32
+ Requires-Dist: keyring>=24
33
+ Requires-Dist: cryptography>=42
34
+ Requires-Dist: onnx-asr<1.0,>=0.12
35
+ Requires-Dist: onnxruntime>=1.20
36
+ Provides-Extra: build
37
+ Requires-Dist: pyinstaller>=6.0; extra == "build"
38
+ Provides-Extra: mac
39
+ Requires-Dist: mlx-whisper>=0.4.0; extra == "mac"
40
+ Provides-Extra: cuda
41
+ Requires-Dist: torch>=2.7; extra == "cuda"
42
+ Requires-Dist: torchaudio>=2.7; extra == "cuda"
43
+ Requires-Dist: torchvision>=0.22; extra == "cuda"
44
+ Dynamic: license-file
45
+
46
+ # Transcritório
47
+
48
+ [![PyPI](https://img.shields.io/pypi/v/transcritorio)](https://pypi.org/project/transcritorio/)
49
+ [![License](https://img.shields.io/github/license/antrologos/Transcritorio)](LICENSE)
50
+ ![Platforms](https://img.shields.io/badge/plataformas-Windows%20%7C%20macOS%20%7C%20Linux-informational)
51
+ [![Site](https://img.shields.io/badge/site-antrologos.github.io%2FTranscritorio-44d7b6)](https://antrologos.github.io/Transcritorio/pt/)
52
+
53
+ **Transcreva entrevistas sem enviar seu áudio para a nuvem.**
54
+ Aplicativo desktop gratuito para transcrição automática e separação de falantes em português brasileiro.
55
+
56
+ - **100% local** — o áudio nunca sai da sua máquina; compatível com LGPD e com qualquer TCLE razoável.
57
+ - **Português brasileiro nativo** — baseado no Whisper (modelo de transcrição de fala da OpenAI) treinado com ampla variação dialetal.
58
+ - **Gratuito e código aberto** — licença MIT, desenvolvido no IESP-UERJ / CERES. Sem assinatura, sem telemetria (o primeiro uso pede apenas uma conta gratuita da Hugging Face para baixar o modelo de separação de falantes).
59
+
60
+ Site do projeto: **[antrologos.github.io/Transcritorio](https://antrologos.github.io/Transcritorio/pt/)** (passo a passo com imagens)
61
+
62
+ ## Instalação
63
+
64
+ O Transcritório é instalado pelo [uv](https://docs.astral.sh/uv/), que baixa o Python e todas as dependências **das fontes oficiais** (Microsoft, PyPI, PyTorch). É uma vez só; no dia a dia você abre pelo atalho da área de trabalho.
65
+
66
+ **Windows 10/11, sem terminal (recomendado)** — baixe o instalador de um clique e clique duas vezes nele:
67
+
68
+ **[⬇ Instalar-Transcritorio.bat](https://github.com/antrologos/Transcritorio/releases/latest/download/Instalar-Transcritorio.bat)**
69
+
70
+ Ele faz sozinho os três comandos abaixo, mostra o progresso e abre o programa no final (se o Windows perguntar "Deseja executar este arquivo?", confirme — o script é [auditável](scripts/Instalar-Transcritorio.bat) e só instala de fontes oficiais assinadas). Para atualizar depois: [Atualizar-Transcritorio.bat](https://github.com/antrologos/Transcritorio/releases/latest/download/Atualizar-Transcritorio.bat).
71
+
72
+ **Windows 10/11, pelo terminal** — abra o *Prompt de Comando* (menu Iniciar → digite `cmd` → Enter) e cole os três comandos, um por vez:
73
+
74
+ ```bat
75
+ winget install astral-sh.uv
76
+ winget install Gyan.FFmpeg
77
+ uv tool install transcritorio
78
+ ```
79
+
80
+ Feche e reabra o Prompt, digite `transcritorio` e pressione Enter. O programa abre e cria o atalho **Transcritório** na área de trabalho — a partir daí, é só clicar nele.
81
+
82
+ Guia detalhado com solução de problemas: [`docs/INSTALL_WINDOWS.md`](docs/INSTALL_WINDOWS.md)
83
+
84
+ **macOS (beta)** — no Terminal, com [Homebrew](https://brew.sh):
85
+
86
+ ```sh
87
+ brew install uv ffmpeg
88
+ uv tool install transcritorio
89
+ ```
90
+
91
+ Em Apple Silicon (M1/M2/M3/M4), use `uv tool install "transcritorio[mac]"` para transcrever com aceleração Metal. Sem Gatekeeper: não há app para "autorizar". Guia: [`docs/MAC_INSTALL.md`](docs/MAC_INSTALL.md)
92
+
93
+ **Linux (beta)** — no terminal:
94
+
95
+ ```sh
96
+ curl -LsSf https://astral.sh/uv/install.sh | sh
97
+ sudo apt install ffmpeg # ou o gerenciador da sua distribuição
98
+ uv tool install transcritorio
99
+ ```
100
+
101
+ Guia: [`docs/LINUX_INSTALL.md`](docs/LINUX_INSTALL.md)
102
+
103
+ - **Atualizar:** `uv tool upgrade transcritorio` (o app avisa quando há versão nova).
104
+ - **Reparar:** menu **Ajuda → Reparar instalação** (não afeta projetos, áudios nem modelos).
105
+ - **Aceleração NVIDIA (opcional, 3–9× mais rápido):** menu **Transcrever → Instalar aceleração NVIDIA**.
106
+
107
+ > **Por que não tem mais instalador `.exe`?** As versões em instalador (.exe/.dmg/AppImage) foram descontinuadas: sem assinatura digital paga, antivírus e SmartScreen bloqueavam a instalação para boa parte dos usuários. O formato atual usa apenas componentes assinados pelos distribuidores oficiais e elimina esses bloqueios. Histórico e downloads antigos: [`docs/LEGACY_STANDALONE.md`](docs/LEGACY_STANDALONE.md).
108
+
109
+ ---
110
+
111
+ ## Para pesquisadores
112
+
113
+ ### O que você consegue fazer
114
+
115
+ - **Importar** áudios e vídeos (MP3, WAV, M4A, MP4 e outros) — arraste para a janela, um arquivo ou uma pasta inteira.
116
+ - **Transcrever** em português brasileiro com alta acurácia (90–96% em áudios limpos), com **dois motores locais**: Whisper (o padrão, nas variantes small a large-v3-turbo, escolhidas conforme a sua máquina) e o **Parakeet pt-BR "TAGARELA"** (experimental, muito rápido em CPU). Ao transcrever, o app pergunta quantas pessoas falam — entrevista a dois ou **grupo focal** (até ~8 participantes). Gravações em **16 outros idiomas** também transcrevem, com tempos por palavra.
117
+ - **Separar falantes** automaticamente — e nomeá-los ouvindo amostras: o diálogo **"De quem é esta voz?"** toca trechos de cada voz para você dizer quem é. Vozes recorrentes do projeto (ex.: a sua) passam a ser **reconhecidas automaticamente**. Uma **verificação acústica** confere cada troca de falante e marca com 🔍 as trocas duvidosas, no ponto exato do áudio.
118
+ - **Revisar no Estúdio** com player sincronizado, forma de onda interativa, cores por falante e edição por bloco — o duplo clique numa palavra leva o áudio até ela. Painéis ajustáveis: recolha o vídeo, amplie os blocos, trabalhe do seu jeito.
119
+ - **Analisar com AI local** (✨ nada sai do seu computador): **resumo com índice temático** de cada entrevista, **glossário de nomes** do projeto com **revisão de grafias** (a AI encontra "Joao/João/Jono" e você decide, ocorrência por ocorrência, com a grafia certa editável), e **"Perguntar às entrevistas"** — uma pergunta em português, respondida com citações dos trechos.
120
+ - **Exportar** em DOCX, MD, SRT, VTT, CSV, TSV e formato NVivo (importa direto no NVivo, Atlas.ti, MAXQDA ou num script R/Python). A aba **Documentos** reúne tudo que o app produz, com data e botão de abrir.
121
+ - **Tudo offline** depois do download inicial dos modelos (uma única vez; o tamanho depende do perfil de instalação — ver abaixo).
122
+
123
+ ### Requisitos por tipo de instalação
124
+
125
+ O assistente de primeiro uso examina a sua máquina e sugere o perfil
126
+ adequado — nada é imposto, e dá para mudar depois em **Ferramentas →
127
+ Gerenciar modelos…**. Números medidos (disco = aplicativo + modelos;
128
+ tempos em CPU de 8 núcleos — em 4 núcleos, conte aproximadamente o dobro):
129
+
130
+ | Perfil | O que faz | Máquina | Disco | 1 h de áudio |
131
+ |---|---|---|---|---|
132
+ | **Essencial** | Só transcrever (modelo `small`) | 2+ núcleos, 4 GB RAM | ~3,5 GB | ~1 h (CPU) |
133
+ | **Padrão** | + separar falantes + tempos por palavra | 4+ núcleos, 8 GB RAM | ~5 GB | ~1–1,5 h (CPU) |
134
+ | **Padrão + GPU** | idem, com aceleração NVIDIA (`large-v3-turbo`) | GPU NVIDIA 4 GB+ VRAM | ~10 GB | ~5–10 min |
135
+ | **Completo** | + análise com AI local (resumo, glossário, perguntar) | GPU NVIDIA 6 GB+ VRAM, 16 GB RAM | ~19 GB | ~5–10 min |
136
+
137
+ > **Máquina modesta, pressa grande?** O motor experimental **Parakeet
138
+ > pt-BR (TAGARELA)** transcreve ~25× mais rápido que o tempo real **em
139
+ > CPU** (1 h de áudio em poucos minutos, sem placa de vídeo) — escolha-o
140
+ > clicando no selo **Modelo** da barra inferior (ou em **Ferramentas →
141
+ > Configurar transcrição…**). Por ser experimental, revise com um pouco
142
+ > mais de atenção.
143
+
144
+ ### Primeiros passos
145
+
146
+ **1. Instale e abra.** Siga a seção **Instalação** acima (três comandos, uma vez). Depois, abra pelo atalho **Transcritório** da área de trabalho. No primeiro uso, um assistente em português prepara os modelos de IA — e pergunta se você quer a identificação de falantes (opcional).
147
+
148
+ **2. Crie um projeto.** Abra o Transcritório e vá em **Projeto → Novo projeto…** Dê um nome (ex.: `tese-entrevistas-2026`) e escolha uma pasta. O app cria uma estrutura `.transcricao` com áudios, transcrições e metadados lado a lado — fácil de fazer backup e arquivar.
149
+
150
+ **3. Adicione os áudios ou vídeos.** Clique em **Adicionar mídia…** (ou arraste arquivos para a janela). Ao transcrever, o app pergunta quantas pessoas falam (entrevista, grupo focal, número exato ou automático) — e **Editar propriedades…** permite ajustar por arquivo depois (idioma, falantes, rótulos).
151
+
152
+ **4. Clique em Transcrever e revise no Estúdio.** O botão **Transcrever** faz o fluxo completo: prepara o áudio, transcreve, separa os falantes e monta o texto editável. Ao final, o diálogo **"De quem é esta voz?"** toca uma amostra de cada voz para você nomeá-las — os nomes valem para a transcrição inteira. Tempos realistas para 1 hora de entrevista: **~5–10 min** em máquina com GPU NVIDIA ou Apple Silicon, **~20–30 min** em notebook recente sem GPU, **~40–60 min** em máquina modesta. Ao final, abra o **Estúdio de Revisão** para ouvir o áudio sincronizado com o texto, ajustar trechos com a forma de onda e exportar. Guia visual completo no [site do projeto](https://antrologos.github.io/Transcritorio/pt/#how).
153
+
154
+ > **Modelos de IA no primeiro uso:** o Transcritório baixa os modelos uma única vez (~5 GB só para transcrever; ~7 GB com identificação de falantes); depois roda offline. A **identificação de falantes é opcional**: quem quer apenas transcrever não precisa de cadastro algum. Quem a ativa é orientado pelo assistente a criar uma conta gratuita na [Hugging Face](https://huggingface.co/), aceitar os termos do modelo pyannote e colar um *token* de leitura — tudo em português, e dá para ativar depois sem repetir as transcrições.
155
+
156
+ ### Privacidade e ética
157
+
158
+ - **Processamento 100% local:** o áudio da entrevista nunca é enviado a servidores externos.
159
+ - **Sem coleta de dados, sem telemetria:** nenhum dado sai do seu computador. O único cadastro externo é a conta gratuita da Hugging Face, usada apenas uma vez para baixar o modelo de separação de falantes.
160
+ - **Código-fonte aberto sob licença MIT:** auditável por qualquer pessoa, incluindo o setor de TI da sua instituição.
161
+ - **Compatível com LGPD e TCLE:** você mantém controle integral sobre o áudio do informante e pode demonstrar a cadeia de custódia dos dados.
162
+
163
+ **Texto pronto para submissão ao CEP** (copie e cole no seu projeto de pesquisa):
164
+
165
+ > A transcrição e a separação automática de falantes dos áudios coletados nesta pesquisa serão realizadas por meio do software Transcritório (Barbosa, 2026), uma aplicação de desktop gratuita e de código aberto (licença MIT), desenvolvida no IESP-UERJ/CERES. Todo o processamento ocorre localmente na máquina do pesquisador, sem envio do material a servidores externos, em conformidade com a Lei nº 13.709/2018 (LGPD) e com o TCLE assinado pelos participantes. O software utiliza os modelos Whisper (Radford et al., 2022) para transcrição e pyannote.audio (Bredin et al., 2020) para separação de falantes, ambos executados offline.
166
+
167
+ ### Como citar
168
+
169
+ Barbosa, R. J. (2026). *Transcritório: transcrição local de entrevistas em português brasileiro* (v0.2.0) [Software]. IESP-UERJ/CERES. https://github.com/antrologos/Transcritorio
170
+
171
+ ```bibtex
172
+ @software{barbosa2026transcritorio,
173
+ author = {Barbosa, Rog{\'e}rio Jer{\^o}nimo},
174
+ title = {Transcrit{\'o}rio: transcri{\c{c}}{\~a}o local de entrevistas em portugu{\^e}s brasileiro},
175
+ year = {2026},
176
+ version = {0.2.0},
177
+ publisher = {IESP-UERJ/CERES},
178
+ license = {MIT},
179
+ url = {https://github.com/antrologos/Transcritorio}
180
+ }
181
+ ```
182
+
183
+ O GitHub também exibe o botão **"Cite this repository"** no menu lateral, com os mesmos dados em formato APA e BibTeX, lendo o arquivo [`CITATION.cff`](CITATION.cff).
184
+
185
+ Modelos de IA utilizados:
186
+ - Radford, A., Kim, J. W., Xu, T., Brockman, G., McLeavey, C., & Sutskever, I. (2022). *Robust speech recognition via large-scale weak supervision*. arXiv. https://arxiv.org/abs/2212.04356
187
+ - Bredin, H., Yin, R., Coria, J. M., Gelly, G., Korshunov, P., Lavechin, M., Fustes, D., Titeux, H., Bouaziz, W., & Gill, M.-P. (2020). *pyannote.audio: neural building blocks for speaker diarization*. ICASSP 2020. https://arxiv.org/abs/1911.01255
188
+
189
+ ---
190
+
191
+ ## Para desenvolvedores
192
+
193
+ Se você quer rodar do código-fonte, contribuir com pull requests ou auditar o pipeline:
194
+
195
+ - **Setup de ambiente, CLI e primeiros commits:** [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md)
196
+ - **Arquitetura do pipeline e estrutura de arquivos:** [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)
197
+ - **Histórico de experimentos e decisões de modelo (testes A/B, variants):** [`docs/EXPERIMENTS.md`](docs/EXPERIMENTS.md)
198
+ - **Checklist pré-release (canal standalone legado):** [`docs/PACKAGING_CHECKLIST.md`](docs/PACKAGING_CHECKLIST.md)
199
+ - **Segurança de tokens:** [`docs/SEGURANCA_SEGREDOS.md`](docs/SEGURANCA_SEGREDOS.md)
200
+ - **Instalação no macOS:** [`docs/MAC_INSTALL.md`](docs/MAC_INSTALL.md)
201
+ - **Instalação no Linux:** [`docs/LINUX_INSTALL.md`](docs/LINUX_INSTALL.md)
202
+ - **Aceleração MLX no Apple Silicon:** [`docs/MLX_WHISPER_MACOS.md`](docs/MLX_WHISPER_MACOS.md)
203
+ - **Troubleshooting macOS/Linux:** [`docs/MAC_LINUX.md`](docs/MAC_LINUX.md)
204
+ - **Code signing no Windows (encerrado — canal standalone aposentado):** [`docs/WINDOWS_CODE_SIGNING.md`](docs/WINDOWS_CODE_SIGNING.md)
205
+
206
+ ### Estrutura do repositório
207
+
208
+ ```
209
+ transcribe_pipeline/ pacote Python principal (GUI, CLI, runners, render)
210
+ scripts/ instaladores .bat de duplo clique + wrappers CMD/PS1 (dev)
211
+ packaging/ (LEGADO) spec do PyInstaller, Inno Setup, hooks
212
+ tests/ toy tests (isolados) e smoke tests
213
+ docs/ documentação completa
214
+ .github/workflows/ ci.yml (testes) e publish.yml (tag v* → PyPI);
215
+ release.yml é o build standalone LEGADO (manual)
216
+ ```
217
+
218
+ ---
219
+
220
+ ## Status
221
+
222
+ | Plataforma | Estado | Notas |
223
+ |---|---|---|
224
+ | Windows 10/11 | Suportada | CPU por padrão; aceleração NVIDIA opcional pelo extra `[cuda]` (menu do app). |
225
+ | Linux x64 | Beta | Mesmo canal `uv tool install transcritorio`; CPU. |
226
+ | macOS (Apple Silicon) | Beta | `uv tool install "transcritorio[mac]"` habilita a aceleração Metal (MLX). |
227
+
228
+ As versões em instalador (.exe/.dmg/AppImage) foram descontinuadas — ver [`docs/LEGACY_STANDALONE.md`](docs/LEGACY_STANDALONE.md).
229
+
230
+ Histórico do desenvolvimento (era do app standalone): [`docs/STANDALONE_APP_ROADMAP.md`](docs/STANDALONE_APP_ROADMAP.md).
231
+
232
+ ## Contribuir e reportar bugs
233
+
234
+ - Bugs e sugestões: [GitHub Issues](https://github.com/antrologos/Transcritorio/issues).
235
+ - Discussões de metodologia e uso em pesquisa qualitativa são bem-vindas no mesmo canal.
236
+ - Pull requests: siga o estilo do código existente; toy tests passando em Windows/Linux/macOS; sem refatoração além do escopo.
237
+
238
+ ## Licença e autoria
239
+
240
+ Software distribuído sob **licença MIT** (veja [`LICENSE`](LICENSE)).
241
+ Autor: **Rogério Jerônimo Barbosa** — IESP-UERJ / CERES — [antrologos.github.io](https://antrologos.github.io/) — [ORCID 0000-0002-6796-4547](https://orcid.org/0000-0002-6796-4547).
242
+
243
+ Agradecimentos às bibliotecas e modelos sobre os quais este projeto se apoia: [Whisper](https://github.com/openai/whisper) (OpenAI), [WhisperX](https://github.com/m-bain/whisperX), [faster-whisper](https://github.com/SYSTRAN/faster-whisper)/CTranslate2, [mlx-whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper), [pyannote.audio](https://github.com/pyannote/pyannote-audio), [Parakeet pt-BR](https://huggingface.co/nvidia) (NVIDIA) via [onnx-asr](https://github.com/istupakov/onnx-asr), [Qwen](https://github.com/QwenLM) (análise local), [GLiNER](https://github.com/urchade/GLiNER) (nomes), [PyTorch](https://pytorch.org/), [PySide6/Qt](https://pypi.org/project/PySide6/), [FFmpeg](https://ffmpeg.org/) e [uv](https://docs.astral.sh/uv/) (Astral).
244
+
245
+ No canal atual, o ffmpeg/ffprobe vêm do gerenciador de pacotes do sistema (winget/brew/apt) — nada é embutido. Nas releases legadas em instalador, o ffmpeg/ffprobe embutidos eram builds GPL de terceiros (BtbN para Windows, evermeet.cx para macOS, johnvansickle.com para Linux); veja [`NOTICE`](NOTICE) para a lista de componentes dessas versões e seus termos.
@@ -0,0 +1,200 @@
1
+ # Transcritório
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/transcritorio)](https://pypi.org/project/transcritorio/)
4
+ [![License](https://img.shields.io/github/license/antrologos/Transcritorio)](LICENSE)
5
+ ![Platforms](https://img.shields.io/badge/plataformas-Windows%20%7C%20macOS%20%7C%20Linux-informational)
6
+ [![Site](https://img.shields.io/badge/site-antrologos.github.io%2FTranscritorio-44d7b6)](https://antrologos.github.io/Transcritorio/pt/)
7
+
8
+ **Transcreva entrevistas sem enviar seu áudio para a nuvem.**
9
+ Aplicativo desktop gratuito para transcrição automática e separação de falantes em português brasileiro.
10
+
11
+ - **100% local** — o áudio nunca sai da sua máquina; compatível com LGPD e com qualquer TCLE razoável.
12
+ - **Português brasileiro nativo** — baseado no Whisper (modelo de transcrição de fala da OpenAI) treinado com ampla variação dialetal.
13
+ - **Gratuito e código aberto** — licença MIT, desenvolvido no IESP-UERJ / CERES. Sem assinatura, sem telemetria (o primeiro uso pede apenas uma conta gratuita da Hugging Face para baixar o modelo de separação de falantes).
14
+
15
+ Site do projeto: **[antrologos.github.io/Transcritorio](https://antrologos.github.io/Transcritorio/pt/)** (passo a passo com imagens)
16
+
17
+ ## Instalação
18
+
19
+ O Transcritório é instalado pelo [uv](https://docs.astral.sh/uv/), que baixa o Python e todas as dependências **das fontes oficiais** (Microsoft, PyPI, PyTorch). É uma vez só; no dia a dia você abre pelo atalho da área de trabalho.
20
+
21
+ **Windows 10/11, sem terminal (recomendado)** — baixe o instalador de um clique e clique duas vezes nele:
22
+
23
+ **[⬇ Instalar-Transcritorio.bat](https://github.com/antrologos/Transcritorio/releases/latest/download/Instalar-Transcritorio.bat)**
24
+
25
+ Ele faz sozinho os três comandos abaixo, mostra o progresso e abre o programa no final (se o Windows perguntar "Deseja executar este arquivo?", confirme — o script é [auditável](scripts/Instalar-Transcritorio.bat) e só instala de fontes oficiais assinadas). Para atualizar depois: [Atualizar-Transcritorio.bat](https://github.com/antrologos/Transcritorio/releases/latest/download/Atualizar-Transcritorio.bat).
26
+
27
+ **Windows 10/11, pelo terminal** — abra o *Prompt de Comando* (menu Iniciar → digite `cmd` → Enter) e cole os três comandos, um por vez:
28
+
29
+ ```bat
30
+ winget install astral-sh.uv
31
+ winget install Gyan.FFmpeg
32
+ uv tool install transcritorio
33
+ ```
34
+
35
+ Feche e reabra o Prompt, digite `transcritorio` e pressione Enter. O programa abre e cria o atalho **Transcritório** na área de trabalho — a partir daí, é só clicar nele.
36
+
37
+ Guia detalhado com solução de problemas: [`docs/INSTALL_WINDOWS.md`](docs/INSTALL_WINDOWS.md)
38
+
39
+ **macOS (beta)** — no Terminal, com [Homebrew](https://brew.sh):
40
+
41
+ ```sh
42
+ brew install uv ffmpeg
43
+ uv tool install transcritorio
44
+ ```
45
+
46
+ Em Apple Silicon (M1/M2/M3/M4), use `uv tool install "transcritorio[mac]"` para transcrever com aceleração Metal. Sem Gatekeeper: não há app para "autorizar". Guia: [`docs/MAC_INSTALL.md`](docs/MAC_INSTALL.md)
47
+
48
+ **Linux (beta)** — no terminal:
49
+
50
+ ```sh
51
+ curl -LsSf https://astral.sh/uv/install.sh | sh
52
+ sudo apt install ffmpeg # ou o gerenciador da sua distribuição
53
+ uv tool install transcritorio
54
+ ```
55
+
56
+ Guia: [`docs/LINUX_INSTALL.md`](docs/LINUX_INSTALL.md)
57
+
58
+ - **Atualizar:** `uv tool upgrade transcritorio` (o app avisa quando há versão nova).
59
+ - **Reparar:** menu **Ajuda → Reparar instalação** (não afeta projetos, áudios nem modelos).
60
+ - **Aceleração NVIDIA (opcional, 3–9× mais rápido):** menu **Transcrever → Instalar aceleração NVIDIA**.
61
+
62
+ > **Por que não tem mais instalador `.exe`?** As versões em instalador (.exe/.dmg/AppImage) foram descontinuadas: sem assinatura digital paga, antivírus e SmartScreen bloqueavam a instalação para boa parte dos usuários. O formato atual usa apenas componentes assinados pelos distribuidores oficiais e elimina esses bloqueios. Histórico e downloads antigos: [`docs/LEGACY_STANDALONE.md`](docs/LEGACY_STANDALONE.md).
63
+
64
+ ---
65
+
66
+ ## Para pesquisadores
67
+
68
+ ### O que você consegue fazer
69
+
70
+ - **Importar** áudios e vídeos (MP3, WAV, M4A, MP4 e outros) — arraste para a janela, um arquivo ou uma pasta inteira.
71
+ - **Transcrever** em português brasileiro com alta acurácia (90–96% em áudios limpos), com **dois motores locais**: Whisper (o padrão, nas variantes small a large-v3-turbo, escolhidas conforme a sua máquina) e o **Parakeet pt-BR "TAGARELA"** (experimental, muito rápido em CPU). Ao transcrever, o app pergunta quantas pessoas falam — entrevista a dois ou **grupo focal** (até ~8 participantes). Gravações em **16 outros idiomas** também transcrevem, com tempos por palavra.
72
+ - **Separar falantes** automaticamente — e nomeá-los ouvindo amostras: o diálogo **"De quem é esta voz?"** toca trechos de cada voz para você dizer quem é. Vozes recorrentes do projeto (ex.: a sua) passam a ser **reconhecidas automaticamente**. Uma **verificação acústica** confere cada troca de falante e marca com 🔍 as trocas duvidosas, no ponto exato do áudio.
73
+ - **Revisar no Estúdio** com player sincronizado, forma de onda interativa, cores por falante e edição por bloco — o duplo clique numa palavra leva o áudio até ela. Painéis ajustáveis: recolha o vídeo, amplie os blocos, trabalhe do seu jeito.
74
+ - **Analisar com AI local** (✨ nada sai do seu computador): **resumo com índice temático** de cada entrevista, **glossário de nomes** do projeto com **revisão de grafias** (a AI encontra "Joao/João/Jono" e você decide, ocorrência por ocorrência, com a grafia certa editável), e **"Perguntar às entrevistas"** — uma pergunta em português, respondida com citações dos trechos.
75
+ - **Exportar** em DOCX, MD, SRT, VTT, CSV, TSV e formato NVivo (importa direto no NVivo, Atlas.ti, MAXQDA ou num script R/Python). A aba **Documentos** reúne tudo que o app produz, com data e botão de abrir.
76
+ - **Tudo offline** depois do download inicial dos modelos (uma única vez; o tamanho depende do perfil de instalação — ver abaixo).
77
+
78
+ ### Requisitos por tipo de instalação
79
+
80
+ O assistente de primeiro uso examina a sua máquina e sugere o perfil
81
+ adequado — nada é imposto, e dá para mudar depois em **Ferramentas →
82
+ Gerenciar modelos…**. Números medidos (disco = aplicativo + modelos;
83
+ tempos em CPU de 8 núcleos — em 4 núcleos, conte aproximadamente o dobro):
84
+
85
+ | Perfil | O que faz | Máquina | Disco | 1 h de áudio |
86
+ |---|---|---|---|---|
87
+ | **Essencial** | Só transcrever (modelo `small`) | 2+ núcleos, 4 GB RAM | ~3,5 GB | ~1 h (CPU) |
88
+ | **Padrão** | + separar falantes + tempos por palavra | 4+ núcleos, 8 GB RAM | ~5 GB | ~1–1,5 h (CPU) |
89
+ | **Padrão + GPU** | idem, com aceleração NVIDIA (`large-v3-turbo`) | GPU NVIDIA 4 GB+ VRAM | ~10 GB | ~5–10 min |
90
+ | **Completo** | + análise com AI local (resumo, glossário, perguntar) | GPU NVIDIA 6 GB+ VRAM, 16 GB RAM | ~19 GB | ~5–10 min |
91
+
92
+ > **Máquina modesta, pressa grande?** O motor experimental **Parakeet
93
+ > pt-BR (TAGARELA)** transcreve ~25× mais rápido que o tempo real **em
94
+ > CPU** (1 h de áudio em poucos minutos, sem placa de vídeo) — escolha-o
95
+ > clicando no selo **Modelo** da barra inferior (ou em **Ferramentas →
96
+ > Configurar transcrição…**). Por ser experimental, revise com um pouco
97
+ > mais de atenção.
98
+
99
+ ### Primeiros passos
100
+
101
+ **1. Instale e abra.** Siga a seção **Instalação** acima (três comandos, uma vez). Depois, abra pelo atalho **Transcritório** da área de trabalho. No primeiro uso, um assistente em português prepara os modelos de IA — e pergunta se você quer a identificação de falantes (opcional).
102
+
103
+ **2. Crie um projeto.** Abra o Transcritório e vá em **Projeto → Novo projeto…** Dê um nome (ex.: `tese-entrevistas-2026`) e escolha uma pasta. O app cria uma estrutura `.transcricao` com áudios, transcrições e metadados lado a lado — fácil de fazer backup e arquivar.
104
+
105
+ **3. Adicione os áudios ou vídeos.** Clique em **Adicionar mídia…** (ou arraste arquivos para a janela). Ao transcrever, o app pergunta quantas pessoas falam (entrevista, grupo focal, número exato ou automático) — e **Editar propriedades…** permite ajustar por arquivo depois (idioma, falantes, rótulos).
106
+
107
+ **4. Clique em Transcrever e revise no Estúdio.** O botão **Transcrever** faz o fluxo completo: prepara o áudio, transcreve, separa os falantes e monta o texto editável. Ao final, o diálogo **"De quem é esta voz?"** toca uma amostra de cada voz para você nomeá-las — os nomes valem para a transcrição inteira. Tempos realistas para 1 hora de entrevista: **~5–10 min** em máquina com GPU NVIDIA ou Apple Silicon, **~20–30 min** em notebook recente sem GPU, **~40–60 min** em máquina modesta. Ao final, abra o **Estúdio de Revisão** para ouvir o áudio sincronizado com o texto, ajustar trechos com a forma de onda e exportar. Guia visual completo no [site do projeto](https://antrologos.github.io/Transcritorio/pt/#how).
108
+
109
+ > **Modelos de IA no primeiro uso:** o Transcritório baixa os modelos uma única vez (~5 GB só para transcrever; ~7 GB com identificação de falantes); depois roda offline. A **identificação de falantes é opcional**: quem quer apenas transcrever não precisa de cadastro algum. Quem a ativa é orientado pelo assistente a criar uma conta gratuita na [Hugging Face](https://huggingface.co/), aceitar os termos do modelo pyannote e colar um *token* de leitura — tudo em português, e dá para ativar depois sem repetir as transcrições.
110
+
111
+ ### Privacidade e ética
112
+
113
+ - **Processamento 100% local:** o áudio da entrevista nunca é enviado a servidores externos.
114
+ - **Sem coleta de dados, sem telemetria:** nenhum dado sai do seu computador. O único cadastro externo é a conta gratuita da Hugging Face, usada apenas uma vez para baixar o modelo de separação de falantes.
115
+ - **Código-fonte aberto sob licença MIT:** auditável por qualquer pessoa, incluindo o setor de TI da sua instituição.
116
+ - **Compatível com LGPD e TCLE:** você mantém controle integral sobre o áudio do informante e pode demonstrar a cadeia de custódia dos dados.
117
+
118
+ **Texto pronto para submissão ao CEP** (copie e cole no seu projeto de pesquisa):
119
+
120
+ > A transcrição e a separação automática de falantes dos áudios coletados nesta pesquisa serão realizadas por meio do software Transcritório (Barbosa, 2026), uma aplicação de desktop gratuita e de código aberto (licença MIT), desenvolvida no IESP-UERJ/CERES. Todo o processamento ocorre localmente na máquina do pesquisador, sem envio do material a servidores externos, em conformidade com a Lei nº 13.709/2018 (LGPD) e com o TCLE assinado pelos participantes. O software utiliza os modelos Whisper (Radford et al., 2022) para transcrição e pyannote.audio (Bredin et al., 2020) para separação de falantes, ambos executados offline.
121
+
122
+ ### Como citar
123
+
124
+ Barbosa, R. J. (2026). *Transcritório: transcrição local de entrevistas em português brasileiro* (v0.2.0) [Software]. IESP-UERJ/CERES. https://github.com/antrologos/Transcritorio
125
+
126
+ ```bibtex
127
+ @software{barbosa2026transcritorio,
128
+ author = {Barbosa, Rog{\'e}rio Jer{\^o}nimo},
129
+ title = {Transcrit{\'o}rio: transcri{\c{c}}{\~a}o local de entrevistas em portugu{\^e}s brasileiro},
130
+ year = {2026},
131
+ version = {0.2.0},
132
+ publisher = {IESP-UERJ/CERES},
133
+ license = {MIT},
134
+ url = {https://github.com/antrologos/Transcritorio}
135
+ }
136
+ ```
137
+
138
+ O GitHub também exibe o botão **"Cite this repository"** no menu lateral, com os mesmos dados em formato APA e BibTeX, lendo o arquivo [`CITATION.cff`](CITATION.cff).
139
+
140
+ Modelos de IA utilizados:
141
+ - Radford, A., Kim, J. W., Xu, T., Brockman, G., McLeavey, C., & Sutskever, I. (2022). *Robust speech recognition via large-scale weak supervision*. arXiv. https://arxiv.org/abs/2212.04356
142
+ - Bredin, H., Yin, R., Coria, J. M., Gelly, G., Korshunov, P., Lavechin, M., Fustes, D., Titeux, H., Bouaziz, W., & Gill, M.-P. (2020). *pyannote.audio: neural building blocks for speaker diarization*. ICASSP 2020. https://arxiv.org/abs/1911.01255
143
+
144
+ ---
145
+
146
+ ## Para desenvolvedores
147
+
148
+ Se você quer rodar do código-fonte, contribuir com pull requests ou auditar o pipeline:
149
+
150
+ - **Setup de ambiente, CLI e primeiros commits:** [`docs/DEVELOPMENT.md`](docs/DEVELOPMENT.md)
151
+ - **Arquitetura do pipeline e estrutura de arquivos:** [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)
152
+ - **Histórico de experimentos e decisões de modelo (testes A/B, variants):** [`docs/EXPERIMENTS.md`](docs/EXPERIMENTS.md)
153
+ - **Checklist pré-release (canal standalone legado):** [`docs/PACKAGING_CHECKLIST.md`](docs/PACKAGING_CHECKLIST.md)
154
+ - **Segurança de tokens:** [`docs/SEGURANCA_SEGREDOS.md`](docs/SEGURANCA_SEGREDOS.md)
155
+ - **Instalação no macOS:** [`docs/MAC_INSTALL.md`](docs/MAC_INSTALL.md)
156
+ - **Instalação no Linux:** [`docs/LINUX_INSTALL.md`](docs/LINUX_INSTALL.md)
157
+ - **Aceleração MLX no Apple Silicon:** [`docs/MLX_WHISPER_MACOS.md`](docs/MLX_WHISPER_MACOS.md)
158
+ - **Troubleshooting macOS/Linux:** [`docs/MAC_LINUX.md`](docs/MAC_LINUX.md)
159
+ - **Code signing no Windows (encerrado — canal standalone aposentado):** [`docs/WINDOWS_CODE_SIGNING.md`](docs/WINDOWS_CODE_SIGNING.md)
160
+
161
+ ### Estrutura do repositório
162
+
163
+ ```
164
+ transcribe_pipeline/ pacote Python principal (GUI, CLI, runners, render)
165
+ scripts/ instaladores .bat de duplo clique + wrappers CMD/PS1 (dev)
166
+ packaging/ (LEGADO) spec do PyInstaller, Inno Setup, hooks
167
+ tests/ toy tests (isolados) e smoke tests
168
+ docs/ documentação completa
169
+ .github/workflows/ ci.yml (testes) e publish.yml (tag v* → PyPI);
170
+ release.yml é o build standalone LEGADO (manual)
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Status
176
+
177
+ | Plataforma | Estado | Notas |
178
+ |---|---|---|
179
+ | Windows 10/11 | Suportada | CPU por padrão; aceleração NVIDIA opcional pelo extra `[cuda]` (menu do app). |
180
+ | Linux x64 | Beta | Mesmo canal `uv tool install transcritorio`; CPU. |
181
+ | macOS (Apple Silicon) | Beta | `uv tool install "transcritorio[mac]"` habilita a aceleração Metal (MLX). |
182
+
183
+ As versões em instalador (.exe/.dmg/AppImage) foram descontinuadas — ver [`docs/LEGACY_STANDALONE.md`](docs/LEGACY_STANDALONE.md).
184
+
185
+ Histórico do desenvolvimento (era do app standalone): [`docs/STANDALONE_APP_ROADMAP.md`](docs/STANDALONE_APP_ROADMAP.md).
186
+
187
+ ## Contribuir e reportar bugs
188
+
189
+ - Bugs e sugestões: [GitHub Issues](https://github.com/antrologos/Transcritorio/issues).
190
+ - Discussões de metodologia e uso em pesquisa qualitativa são bem-vindas no mesmo canal.
191
+ - Pull requests: siga o estilo do código existente; toy tests passando em Windows/Linux/macOS; sem refatoração além do escopo.
192
+
193
+ ## Licença e autoria
194
+
195
+ Software distribuído sob **licença MIT** (veja [`LICENSE`](LICENSE)).
196
+ Autor: **Rogério Jerônimo Barbosa** — IESP-UERJ / CERES — [antrologos.github.io](https://antrologos.github.io/) — [ORCID 0000-0002-6796-4547](https://orcid.org/0000-0002-6796-4547).
197
+
198
+ Agradecimentos às bibliotecas e modelos sobre os quais este projeto se apoia: [Whisper](https://github.com/openai/whisper) (OpenAI), [WhisperX](https://github.com/m-bain/whisperX), [faster-whisper](https://github.com/SYSTRAN/faster-whisper)/CTranslate2, [mlx-whisper](https://github.com/ml-explore/mlx-examples/tree/main/whisper), [pyannote.audio](https://github.com/pyannote/pyannote-audio), [Parakeet pt-BR](https://huggingface.co/nvidia) (NVIDIA) via [onnx-asr](https://github.com/istupakov/onnx-asr), [Qwen](https://github.com/QwenLM) (análise local), [GLiNER](https://github.com/urchade/GLiNER) (nomes), [PyTorch](https://pytorch.org/), [PySide6/Qt](https://pypi.org/project/PySide6/), [FFmpeg](https://ffmpeg.org/) e [uv](https://docs.astral.sh/uv/) (Astral).
199
+
200
+ No canal atual, o ffmpeg/ffprobe vêm do gerenciador de pacotes do sistema (winget/brew/apt) — nada é embutido. Nas releases legadas em instalador, o ffmpeg/ffprobe embutidos eram builds GPL de terceiros (BtbN para Windows, evermeet.cx para macOS, johnvansickle.com para Linux); veja [`NOTICE`](NOTICE) para a lista de componentes dessas versões e seus termos.
@@ -0,0 +1,97 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "transcritorio"
7
+ version = "0.2.0"
8
+ description = "Transcricao local de entrevistas em portugues brasileiro, com separacao de falantes (WhisperX + pyannote). Nenhum audio sai do computador."
9
+ readme = "README.md"
10
+ license = { text = "MIT" }
11
+ authors = [{ name = "Rogerio Jeronimo Barbosa" }]
12
+ # Teto necessario: torchcodec/torch/PySide6 demoram a publicar wheels para
13
+ # CPython novo — sem o teto, o uv escolhe o Python mais recente da maquina
14
+ # (ex.: 3.14) e a resolucao falha (bug real de beta tester, 2026-08-24).
15
+ # Com o teto, o uv baixa sozinho um 3.12/3.13 gerenciado.
16
+ requires-python = ">=3.10,<3.14"
17
+ keywords = ["transcricao", "whisper", "whisperx", "diarizacao", "entrevistas", "pesquisa-qualitativa", "asr"]
18
+ classifiers = [
19
+ "Development Status :: 4 - Beta",
20
+ "Intended Audience :: Science/Research",
21
+ "Natural Language :: Portuguese (Brazilian)",
22
+ "Operating System :: Microsoft :: Windows",
23
+ "Operating System :: MacOS",
24
+ "Operating System :: POSIX :: Linux",
25
+ "Programming Language :: Python :: 3",
26
+ "Topic :: Multimedia :: Sound/Audio :: Speech",
27
+ ]
28
+ dependencies = [
29
+ "PySide6==6.11.0",
30
+ "whisperx==3.8.5",
31
+ "pyannote-audio==4.0.4",
32
+ "faster-whisper==1.2.1",
33
+ "torchcodec==0.7.0",
34
+ "huggingface_hub>=0.28.1",
35
+ "python-docx>=1.2.0",
36
+ "jiwer>=3.0.0",
37
+ "keyring>=24",
38
+ "cryptography>=42",
39
+ # Motor experimental Parakeet pt-BR (TAGARELA) via ONNX (E4-4).
40
+ # onnxruntime CPU: ~13x tempo real medido na RTX 4060 (so CPU);
41
+ # onnxruntime-gpu NAO entra no extra [cuda] — conflita com o pacote
42
+ # CPU e exigiria cuDNN proprio, sem ganho necessario.
43
+ "onnx-asr>=0.12,<1.0",
44
+ # Piso 1.20 (ultima serie com wheel py3.10); em py3.11+ resolve 1.29+.
45
+ "onnxruntime>=1.20",
46
+ ]
47
+
48
+ [project.urls]
49
+ Homepage = "https://antrologos.github.io/Transcritorio/pt/"
50
+ Repository = "https://github.com/antrologos/Transcritorio"
51
+ Changelog = "https://github.com/antrologos/Transcritorio/blob/main/CHANGELOG.md"
52
+ Issues = "https://github.com/antrologos/Transcritorio/issues"
53
+
54
+ [project.scripts]
55
+ transcritorio-cli = "transcribe_pipeline.cli:main"
56
+
57
+ [project.gui-scripts]
58
+ transcritorio = "transcribe_pipeline.gui_launcher:main"
59
+
60
+ [project.optional-dependencies]
61
+ build = ["pyinstaller>=6.0"]
62
+ # Apple Silicon Metal acceleration via MLX. Installs only on macOS ARM64
63
+ # (mlx framework does not build on Windows/Linux). Safe to leave off the
64
+ # default dependency set — the runtime code path checks availability and
65
+ # falls back to the CPU whisperx path.
66
+ mac = ["mlx-whisper>=0.4.0"]
67
+ # Aceleracao NVIDIA (opcional, v0.2): declara torch/torchaudio/torchvision
68
+ # explicitamente para que o uv resolva os TRES do indice cu128 do PyTorch
69
+ # (ver [tool.uv.sources]) — misturar torch-cu128 com torchaudio/vision CPU
70
+ # do PyPI quebra por ABI. Sem este extra, tudo vem transitivamente do PyPI,
71
+ # que no Windows e CPU-only: o caminho seguro e o caminho default.
72
+ # pip puro: pip install "transcritorio[cuda]" --extra-index-url https://download.pytorch.org/whl/cu128
73
+ cuda = ["torch>=2.7", "torchaudio>=2.7", "torchvision>=0.22"]
74
+ # NAO existe extra [llm], de proposito: transformers>=5.13 (necessario para
75
+ # o Qwen3.5 da analise local) exige huggingface-hub>=1.5, e o whisperx
76
+ # 3.8.5 trava hub<1.0 — irreconciliavel no mesmo ambiente (uv lock,
77
+ # 2026-08-25). A analise local usa um AMBIENTE DEDICADO gerenciado pelo
78
+ # app (transcribe_pipeline/llm_env.py), criado sob demanda via uv — mesmo
79
+ # padrao do cuda_pack. O LLM ja roda em subprocesso por desenho.
80
+
81
+ [tool.uv.sources]
82
+ torch = [{ index = "pytorch-cu128", extra = "cuda" }]
83
+ torchaudio = [{ index = "pytorch-cu128", extra = "cuda" }]
84
+ torchvision = [{ index = "pytorch-cu128", extra = "cuda" }]
85
+
86
+ [[tool.uv.index]]
87
+ name = "pytorch-cu128"
88
+ url = "https://download.pytorch.org/whl/cu128"
89
+ explicit = true
90
+
91
+ [tool.setuptools.packages.find]
92
+ include = ["transcribe_pipeline*"]
93
+
94
+ [tool.setuptools.package-data]
95
+ # assets/* (icones): sem eles o app instalado por uv rodava sem icone de
96
+ # janela e o atalho da area de trabalho herdava o icone do pythonw.
97
+ transcribe_pipeline = ["py.typed", "assets/*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,7 @@
1
+ """Local transcription pipeline used by Transcritorio projects."""
2
+
3
+ __version__ = "0.2.0"
4
+
5
+ # Build timestamp — set automatically by build.ps1 before PyInstaller runs.
6
+ # If this is "dev", the app is running from source (not a frozen build).
7
+ __build__ = "dev"
@@ -0,0 +1,5 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ raise SystemExit(main())