Documentação: English (README.md) · Português (esta página)
CLI para geração de áudio estéreo a 44.1 kHz a partir de prompts de texto, com dois checkpoints Hugging Face (mesma biblioteca stable-audio-tools):
| Uso | Modelo | Duração máx. | Comando |
|---|---|---|---|
| Música / ambientes longos | Stable Audio Open 1.0 | ~47 s | --profile music (padrão) |
| Efeitos / SFX curtos | Stable Audio Open Small | ~11 s | --profile effects |
Ambos os repositórios podem ser gated: aceita os termos no Hub e define HF_TOKEN. Stability AI Community License (LICENSE.md em cada repo): pesquisa e uso não comercial; uso comercial com teto de receita (ver texto atual no repositório e stability.ai/license). Resumo: GameDev/README_PT.md — Licenças.
- Dois perfis —
music(Open 1.0, até ~47 s) eeffects(Open Small, até ~11 s; defaults ~8 steps, CFG 1.0, samplerpingpong) - Geração text-to-audio — áudio estéreo conforme o modelo escolhido
- Presets para game dev — ambient, battle, menu, footsteps, weather, UI, nature, dungeon, tavern, etc.
- Múltiplos formatos — WAV, FLAC, OGG
- Batch processing — gerar vários áudios a partir de ficheiro de prompts
- Seed — reprodutibilidade total
- Trim automático — remoção de silêncio no início e no fim
- Metadados JSON — parâmetros de geração gravados ao lado do áudio (inclui
seed_effective, sigmas, trim, versão da CLI) - Gestão de VRAM — limpeza automática após cada geração
- Python 3.10+
- PyTorch 2.1+ (CUDA recomendado)
- ~4 GB de VRAM (geração em GPU)
- Token HF (se o modelo exigir autenticação):
HF_TOKEN
Na raiz do repositório GameDev:
cd /caminho/para/GameDev
./install.sh text2soundGuia geral: docs/INSTALLING_PT.md · EN
cd Text2Sound
bash scripts/setup.sh
source .venv/bin/activatepython3 scripts/installer.py --use-venvtext2sound generate "ocean waves crashing on a sandy beach at sunset"
text2sound generate "epic orchestral battle music" --duration 45 --steps 120
text2sound generate "short alien laser shot" --profile effects -d 1.5
text2sound generate "footsteps on gravel" -d 5 -s 80 --format flac
text2sound generate "rain and thunder" --seed 42 --cfg-scale 8--profile music(padrão):stabilityai/stable-audio-open-1.0--profile effects:stabilityai/stable-audio-open-small--modeltem prioridade sobre o perfil: aceita o ID HF completo ou aliasesmusic,full,effects,small,sfx
text2sound generate "loop" --model small -d 8
text2sound generate "score" --model music -d 30text2sound presets # listar presets disponíveis
text2sound generate --preset battle "" # usar preset diretamente
text2sound generate --preset ambient "with gentle river flowing" # preset + customO diretório de saída usa -O / --output-dir (em generate, -d é sempre duração).
# Ficheiro prompts.txt (um prompt por linha, # = comentário)
text2sound batch prompts.txt --format flac -O sounds/
text2sound batch prompts.txt --seed 1000 # seeds 1000, 1001, 1002, … por linhatext2sound info # ambiente, GPU, modelo, configuração
text2sound --help # ajuda completa| Preset | Tipo | Duração |
|---|---|---|
| ambient | Ambiente calmo | 45s |
| battle | Música de combate | 30s |
| menu | Música de menu | 30s |
| footsteps-stone | Passos em pedra | 5s |
| footsteps-grass | Passos em relva | 5s |
| rain | Chuva com trovão | 45s |
| wind | Vento forte | 30s |
| thunder | Trovão isolado | 8s |
| ui-click | Click de interface | 2s |
| ui-confirm | Confirmação | 3s |
| forest | Floresta | 45s |
| ocean | Ondas do mar | 45s |
| dungeon | Dungeon escura | 30s |
| tavern | Taverna medieval | 30s |
| explosion | Explosão | 5s |
| sword-clash | Espadas | 3s |
| magic-spell | Magia | 4s |
| victory-fanfare | Fanfarra de vitória | 8s |
| Parâmetro | Default | Descrição |
|---|---|---|
--duration |
30 | Duração em segundos (máx. ~47 música, ~11 efeitos; mín. 0.5) |
--steps |
100 | Passos de difusão (8–150; efeitos ~8) |
--cfg-scale |
7.0 | Classifier-free guidance (1–15) |
--sigma-min |
0.3 | Noise schedule mínimo |
--sigma-max |
500 | Noise schedule máximo |
--sampler |
dpmpp-3m-sde | Tipo de sampler |
--seed |
aleatório | Seed para reprodutibilidade |
--trim/--no-trim |
trim | Remover silêncio no início e no fim |
Text2Sound/
├── src/text2sound/
│ ├── cli.py # CLI Click (generate, batch, presets, info)
│ ├── generator.py # Pipeline Stable Audio Open
│ ├── presets.py # Presets de áudio para game dev
│ ├── audio_processor.py # Processamento de áudio (trim, etc.)
│ └── utils.py # Utilitários
├── config/
│ ├── requirements.txt
│ └── requirements-dev.txt
├── scripts/
│ ├── setup.sh # Setup do venv + deps
│ └── installer.py # Instalador standalone
└── tests/
| Variável | Descrição |
|---|---|
HF_TOKEN |
Token Hugging Face para autenticação (ou HUGGINGFACEHUB_API_TOKEN) |
HF_HOME |
Diretório de cache Hugging Face (padrão: ~/.cache/huggingface) |
PYTORCH_CUDA_ALLOC_CONF |
Configuração de alocação CUDA (auto-definida se vazia) |
O GameAssets pode invocar text2sound automaticamente durante um batch:
- No
manifest.csv, adicionar colunagenerate_audiocom valortruenas linhas desejadas. - No
game.yaml, configurar o blocotext2sound(duração, passos, formato, etc.). - Correr
gameassets batch— o áudio é gerado após a imagem 2D de cada linha.
# GameAssets invoca text2sound por linha com generate_audio=true
gameassets batch --profile game.yaml --manifest manifest.csvVariável TEXT2SOUND_BIN se o comando não estiver no PATH.
pip install -e ".[dev]"
pytest tests/ -v
# Excluir testes lentos (carregam modelo/GPU):
pytest tests/ -v -m "not slow"- Código: MIT — LICENSE.
- Pesos: Stable Audio Open 1.0 e Stable Audio Open Small — Stability AI Community License (aceitar no Hub; condições de uso comercial e limite de receita no
LICENSE.mdde cada repositório e em stability.ai/license).