Contribuir
Contribuições são bem-vindas! Leia o guia de contribuição antes de abrir um pull request. Você também pode propor ideias nas discussões ou ver o backlog do projeto.
Prepare o projeto
Seção intitulada “Prepare o projeto”É necessário o Python 3.10 a 3.13. Se não estiver instalado, o uv o baixa.
-
Instale o FFmpeg e, no Linux, o PortAudio:
Janela do terminal # macOSbrew install ffmpeg# Ubuntu ou Debiansudo apt install ffmpeg libportaudio2# Windowschoco install ffmpeg -
Clone o repositório:
Janela do terminal git clone https://github.com/HenestrosaDev/audiotext.gitcd audiotext -
Instale o uv, que gerencia as dependências e o ambiente virtual.
-
Instale as dependências:
Janela do terminal uv syncO
uv syncinstala o PyTorch com suporte a CUDA, que é um download grande no Linux e no Windows. Sem uma GPU NVIDIA, instale a versão para CPU em vez disso:Janela do terminal uv sync --no-group cuda --group cpu -
Execute o aplicativo:
Janela do terminal uv run src/app.py
Ferramentas de desenvolvimento
Seção intitulada “Ferramentas de desenvolvimento”uv run pre-commit install # verifica e formata o código antes de cada commituv run pytest # roda os testesTraduza a interface
Seção intitulada “Traduza a interface”A interface é traduzida com o gettext. Os textos ficam em res/locales/audiotext.pot, e as traduções de cada idioma em res/locales/<idioma>/LC_MESSAGES/audiotext.po. Os textos que dependem de um número (ex.: {count} file / {count} files) têm uma tradução para cada forma de plural do idioma (msgstr[0], msgstr[1]…), conforme o cabeçalho Plural-Forms do catálogo dele. O mesmo texto pode aparecer duas vezes, uma com um contexto (msgctxt), para ser traduzido de forma diferente em cada lugar: ex.: Done é o status de uma transcrição e, com o contexto files, um filtro dos arquivos de uma pasta.
Quando os textos do código mudarem, ou depois de editar um arquivo .po (ex.: com o Poedit), execute este script. Ele extrai os textos, atualiza os catálogos, compila-os e lista os textos que ainda faltam traduzir ou revisar (marcados como fuzzy), que o aplicativo mostra em inglês até lá. Os testes falham enquanto houver um catálogo desatualizado.
uv run .github/scripts/update_translations.pyPara adicionar um idioma, crie o catálogo dele, traduza-o, compile-o e adicione-o a UI_LANGUAGES em src/utils/i18n.py:
uv run pybabel init -i res/locales/audiotext.pot -d res/locales -D audiotext -l <código>uv run .github/scripts/update_translations.pyMelhore esta documentação
Seção intitulada “Melhore esta documentação”Este site é feito com o Starlight e fica no repositório audiotext-docs. Cada idioma tem a sua própria pasta em src/content/docs (o inglês fica em en).
git clone https://github.com/HenestrosaDev/audiotext-docs.gitcd audiotext-docsnpm installnpm run dev # serve o site em http://localhost:4321npm run build # gera o site em distCada página tem um link Editar página no final que a abre no GitHub.