From 74c850a4563a7b21144cbea84e4023a3cba2d8c7 Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 12:40:30 +0800 Subject: [PATCH] chore: import upstream snapshot with attribution --- .github/actions/audiocraft_build/action.yml | 31 + .github/workflows/audiocraft_docs.yml | 32 + .github/workflows/audiocraft_linter.yml | 17 + .github/workflows/audiocraft_tests.yml | 22 + .gitignore | 62 + CHANGELOG.md | 80 + CODE_OF_CONDUCT.md | 80 + CONTRIBUTING.md | 35 + LICENSE | 21 + LICENSE_weights | 399 ++++ MANIFEST.in | 15 + Makefile | 44 + README.md | 92 + README.wehub.md | 7 + assets/CJ_Beatbox_Loop_05_90.wav | Bin 0 -> 1881644 bytes ...ing_as_birds_chirp_and_a_pigeon_cooing.mp3 | Bin 0 -> 15228 bytes assets/bach.mp3 | Bin 0 -> 160496 bytes assets/bolero_ravel.mp3 | Bin 0 -> 161280 bytes assets/chord_to_index_mapping.pkl | Bin 0 -> 1750 bytes assets/electronic.mp3 | Bin 0 -> 73395 bytes assets/epic.wav | Bin 0 -> 384058 bytes assets/salience_1.th | Bin 0 -> 742684 bytes assets/salience_1.wav | Bin 0 -> 1280058 bytes assets/salience_2.th | Bin 0 -> 742684 bytes assets/salience_2.wav | Bin 0 -> 1280058 bytes assets/sep_drums_1.mp3 | Bin 0 -> 102920 bytes ...and_a_humming_engine_approach_and_pass.mp3 | Bin 0 -> 15228 bytes audiocraft/__init__.py | 28 + audiocraft/adversarial/__init__.py | 22 + .../adversarial/discriminators/__init__.py | 10 + audiocraft/adversarial/discriminators/base.py | 34 + audiocraft/adversarial/discriminators/mpd.py | 106 + audiocraft/adversarial/discriminators/msd.py | 126 ++ .../adversarial/discriminators/msstftd.py | 134 ++ audiocraft/adversarial/losses.py | 228 +++ audiocraft/data/__init__.py | 10 + audiocraft/data/audio.py | 351 ++++ audiocraft/data/audio_dataset.py | 587 ++++++ audiocraft/data/audio_utils.py | 374 ++++ audiocraft/data/info_audio_dataset.py | 110 + audiocraft/data/jasco_dataset.py | 312 +++ audiocraft/data/music_dataset.py | 270 +++ audiocraft/data/sound_dataset.py | 330 +++ audiocraft/data/zip.py | 76 + audiocraft/environment.py | 176 ++ audiocraft/grids/__init__.py | 6 + audiocraft/grids/_base_explorers.py | 80 + audiocraft/grids/audiogen/__init__.py | 6 + .../grids/audiogen/audiogen_base_16khz.py | 23 + .../audiogen_pretrained_16khz_eval.py | 68 + audiocraft/grids/compression/__init__.py | 6 + audiocraft/grids/compression/_explorers.py | 55 + audiocraft/grids/compression/debug.py | 31 + .../compression/encodec_audiogen_16khz.py | 29 + .../grids/compression/encodec_base_24khz.py | 28 + .../compression/encodec_musicgen_32khz.py | 34 + .../grids/diffusion/4_bands_base_32khz.py | 27 + audiocraft/grids/diffusion/__init__.py | 6 + audiocraft/grids/diffusion/_explorers.py | 66 + audiocraft/grids/magnet/__init__.py | 6 + audiocraft/grids/magnet/audio_magnet_16khz.py | 32 + .../audio_magnet_pretrained_16khz_eval.py | 74 + audiocraft/grids/magnet/magnet_32khz.py | 47 + .../magnet/magnet_pretrained_32khz_eval.py | 87 + audiocraft/grids/musicgen/__init__.py | 6 + audiocraft/grids/musicgen/_explorers.py | 93 + .../grids/musicgen/musicgen_base_32khz.py | 43 + .../musicgen/musicgen_base_cached_32khz.py | 67 + .../grids/musicgen/musicgen_clapemb_32khz.py | 32 + .../grids/musicgen/musicgen_melody_32khz.py | 65 + .../musicgen_pretrained_32khz_eval.py | 99 + .../musicgen_stereo_finetune_32khz.py | 57 + .../grids/musicgen/musicgen_style_32khz.py | 25 + audiocraft/grids/watermarking/__init__.py | 6 + audiocraft/grids/watermarking/_explorers.py | 115 ++ audiocraft/grids/watermarking/audioseal.py | 31 + audiocraft/grids/watermarking/kbits.py | 91 + audiocraft/losses/__init__.py | 28 + audiocraft/losses/balancer.py | 136 ++ audiocraft/losses/loudnessloss.py | 204 ++ audiocraft/losses/sisnr.py | 97 + audiocraft/losses/specloss.py | 149 ++ audiocraft/losses/stftloss.py | 207 ++ audiocraft/losses/wmloss.py | 104 + audiocraft/metrics/__init__.py | 14 + audiocraft/metrics/chroma_cosinesim.py | 72 + audiocraft/metrics/clap_consistency.py | 84 + audiocraft/metrics/fad.py | 329 +++ audiocraft/metrics/kld.py | 220 ++ audiocraft/metrics/miou.py | 42 + audiocraft/metrics/pesq.py | 50 + audiocraft/metrics/rvm.py | 110 + audiocraft/metrics/visqol.py | 216 ++ audiocraft/models/__init__.py | 23 + audiocraft/models/audiogen.py | 93 + audiocraft/models/builders.py | 397 ++++ audiocraft/models/encodec.py | 506 +++++ audiocraft/models/flow_matching.py | 516 +++++ audiocraft/models/genmodel.py | 267 +++ audiocraft/models/jasco.py | 326 +++ audiocraft/models/lm.py | 587 ++++++ audiocraft/models/lm_magnet.py | 500 +++++ audiocraft/models/loaders.py | 268 +++ audiocraft/models/magnet.py | 88 + audiocraft/models/multibanddiffusion.py | 191 ++ audiocraft/models/musicgen.py | 338 ++++ audiocraft/models/unet.py | 214 ++ audiocraft/models/watermark.py | 111 ++ audiocraft/modules/__init__.py | 22 + audiocraft/modules/activations.py | 96 + audiocraft/modules/chroma.py | 66 + audiocraft/modules/codebooks_patterns.py | 548 +++++ audiocraft/modules/conditioners.py | 1763 +++++++++++++++++ audiocraft/modules/conv.py | 243 +++ audiocraft/modules/diffusion_schedule.py | 272 +++ audiocraft/modules/jasco_conditioners.py | 300 +++ audiocraft/modules/lstm.py | 25 + audiocraft/modules/rope.py | 125 ++ audiocraft/modules/seanet.py | 258 +++ audiocraft/modules/streaming.py | 131 ++ audiocraft/modules/transformer.py | 755 +++++++ audiocraft/modules/unet_transformer.py | 67 + audiocraft/modules/watermark.py | 102 + audiocraft/optim/__init__.py | 16 + audiocraft/optim/cosine_lr_scheduler.py | 48 + audiocraft/optim/dadam.py | 248 +++ audiocraft/optim/ema.py | 85 + audiocraft/optim/fsdp.py | 206 ++ audiocraft/optim/inverse_sqrt_lr_scheduler.py | 38 + .../optim/linear_warmup_lr_scheduler.py | 35 + .../optim/polynomial_decay_lr_scheduler.py | 47 + audiocraft/py.typed | 0 audiocraft/quantization/__init__.py | 9 + audiocraft/quantization/base.py | 99 + audiocraft/quantization/core_vq.py | 404 ++++ audiocraft/quantization/vq.py | 115 ++ audiocraft/solvers/__init__.py | 17 + audiocraft/solvers/audiogen.py | 19 + audiocraft/solvers/base.py | 631 ++++++ audiocraft/solvers/builders.py | 377 ++++ audiocraft/solvers/compression.py | 328 +++ audiocraft/solvers/diffusion.py | 279 +++ audiocraft/solvers/jasco.py | 287 +++ audiocraft/solvers/magnet.py | 276 +++ audiocraft/solvers/musicgen.py | 749 +++++++ audiocraft/solvers/watermark.py | 716 +++++++ audiocraft/train.py | 163 ++ audiocraft/utils/__init__.py | 6 + audiocraft/utils/audio_effects.py | 457 +++++ audiocraft/utils/autocast.py | 40 + audiocraft/utils/best_state.py | 81 + audiocraft/utils/cache.py | 324 +++ audiocraft/utils/checkpoint.py | 161 ++ audiocraft/utils/cluster.py | 75 + audiocraft/utils/deadlock.py | 58 + audiocraft/utils/export.py | 79 + audiocraft/utils/export_legacy.py | 70 + audiocraft/utils/notebook.py | 32 + audiocraft/utils/profiler.py | 38 + audiocraft/utils/samples/__init__.py | 5 + audiocraft/utils/samples/manager.py | 386 ++++ audiocraft/utils/utils.py | 326 +++ config/augmentations/default.yaml | 65 + config/conditioner/chords2music.yaml | 38 + config/conditioner/chroma2music.yaml | 46 + config/conditioner/clapemb2music.yaml | 44 + config/conditioner/drums2music.yaml | 42 + config/conditioner/jasco_chords_drums.yaml | 50 + .../jasco_chords_drums_melody.yaml | 60 + config/conditioner/none.yaml | 19 + config/conditioner/style2music.yaml | 59 + config/conditioner/text2music.yaml | 30 + config/conditioner/text2sound.yaml | 24 + config/config.yaml | 75 + config/dset/audio/audiocaps_16khz.yaml | 11 + config/dset/audio/default.yaml | 10 + config/dset/audio/example.yaml | 10 + config/dset/audio/musiccaps_32khz.yaml | 12 + config/dset/default.yaml | 10 + config/dset/internal/music_10k_32khz.yaml | 11 + config/dset/internal/music_400k_32khz.yaml | 10 + config/dset/internal/sounds_16khz.yaml | 12 + config/model/encodec/default.yaml | 54 + config/model/encodec/encodec_base_causal.yaml | 11 + .../model/encodec/encodec_large_nq4_s320.yaml | 13 + .../model/encodec/encodec_large_nq4_s640.yaml | 13 + config/model/lm/audiogen_lm.yaml | 36 + config/model/lm/default.yaml | 47 + config/model/lm/model_scale/base.yaml | 3 + config/model/lm/model_scale/large.yaml | 7 + config/model/lm/model_scale/medium.yaml | 7 + config/model/lm/model_scale/small.yaml | 8 + config/model/lm/model_scale/xsmall.yaml | 8 + config/model/lm/musicgen_lm.yaml | 36 + config/model/none.yaml | 4 + config/model/score/basic.yaml | 17 + config/model/watermark/default.yaml | 41 + .../solver/audiogen/audiogen_base_16khz.yaml | 70 + config/solver/audiogen/debug.yaml | 61 + config/solver/audiogen/default.yaml | 40 + config/solver/audiogen/evaluation/none.yaml | 5 + .../audiogen/evaluation/objective_eval.yaml | 29 + config/solver/compression/debug.yaml | 55 + config/solver/compression/default.yaml | 160 ++ .../compression/encodec_audiogen_16khz.yaml | 10 + .../compression/encodec_base_24khz.yaml | 10 + .../compression/encodec_musicgen_32khz.yaml | 10 + config/solver/default.yaml | 108 + config/solver/diffusion/debug.yaml | 106 + config/solver/diffusion/default.yaml | 107 + config/solver/diffusion/encodec_24khz.yaml | 11 + config/solver/jasco/chords.yaml | 81 + config/solver/jasco/chords_drums.yaml | 88 + config/solver/jasco/chords_drums_melody.yaml | 97 + config/solver/jasco/drums.yaml | 87 + config/solver/jasco/jasco_32khz_base.yaml | 78 + config/solver/magnet/audio_magnet_16khz.yaml | 104 + config/solver/magnet/magnet_32khz.yaml | 90 + config/solver/musicgen/debug.yaml | 61 + config/solver/musicgen/default.yaml | 131 ++ config/solver/musicgen/evaluation/none.yaml | 5 + .../musicgen/evaluation/objective_eval.yaml | 24 + .../solver/musicgen/musicgen_base_32khz.yaml | 55 + .../musicgen/musicgen_melody_32khz.yaml | 56 + .../solver/musicgen/musicgen_style_32khz.yaml | 58 + config/solver/watermark/debug.yaml | 207 ++ config/solver/watermark/default.yaml | 212 ++ config/solver/watermark/robustness.yaml | 15 + config/teams/default.yaml | 12 + config/teams/labs.yaml | 28 + dataset/example/electro_1.json | 1 + dataset/example/electro_1.mp3 | Bin 0 -> 240667 bytes dataset/example/electro_2.json | 1 + dataset/example/electro_2.mp3 | Bin 0 -> 320827 bytes demos/audiogen_demo.ipynb | 175 ++ demos/jasco_app.py | 364 ++++ demos/jasco_demo.ipynb | 352 ++++ demos/magnet_app.py | 351 ++++ demos/magnet_demo.ipynb | 214 ++ demos/musicgen_app.py | 526 +++++ demos/musicgen_demo.ipynb | 232 +++ demos/musicgen_style_app.py | 380 ++++ demos/musicgen_style_demo.ipynb | 245 +++ docs/AUDIOGEN.md | 158 ++ docs/CONDITIONING.md | 146 ++ docs/DATASETS.md | 82 + docs/ENCODEC.md | 180 ++ docs/JASCO.md | 223 +++ docs/MAGNET.md | 237 +++ docs/MBD.md | 117 ++ docs/METRICS.md | 131 ++ docs/MUSICGEN.md | 419 ++++ docs/MUSICGEN_STYLE.md | 200 ++ docs/TRAINING.md | 312 +++ docs/WATERMARKING.md | 40 + egs/example/data.jsonl | 2 + jasco_demo.ipynb | 489 +++++ model_cards/AUDIOGEN_MODEL_CARD.md | 79 + model_cards/JASCO_MODEL_CARD.md | 152 ++ model_cards/MAGNET_MODEL_CARD.md | 109 + model_cards/MUSICGEN_MODEL_CARD.md | 105 + model_cards/MUSICGEN_STYLE_MODEL_CARD.md | 58 + mypy.ini | 4 + requirements.txt | 29 + scripts/__init__.py | 5 + scripts/chords/build_chord_maps.py | 92 + scripts/chords/extract_chords.py | 73 + scripts/chords/job_array_example.sh | 17 + scripts/mos.py | 286 +++ scripts/resample_dataset.py | 207 ++ scripts/static/style.css | 113 ++ scripts/templates/base.html | 16 + scripts/templates/index.html | 28 + scripts/templates/login.html | 20 + scripts/templates/results.html | 17 + scripts/templates/survey.html | 131 ++ setup.cfg | 14 + setup.py | 63 + tests/__init__.py | 5 + tests/adversarial/__init__.py | 5 + tests/adversarial/test_discriminators.py | 67 + tests/adversarial/test_losses.py | 159 ++ tests/common_utils/__init__.py | 9 + tests/common_utils/temp_utils.py | 56 + tests/common_utils/wav_utils.py | 29 + tests/data/__init__.py | 5 + tests/data/test_audio.py | 239 +++ tests/data/test_audio_dataset.py | 352 ++++ tests/data/test_audio_utils.py | 120 ++ tests/losses/__init__.py | 5 + tests/losses/test_losses.py | 103 + tests/metrics/__init__.py | 5 + tests/metrics/test_pesq.py | 45 + tests/models/test_audiogen.py | 53 + tests/models/test_encodec_model.py | 60 + tests/models/test_multibanddiffusion.py | 53 + tests/models/test_musicgen.py | 65 + tests/models/test_watermark.py | 30 + tests/modules/__init__.py | 5 + tests/modules/test_activations.py | 29 + tests/modules/test_codebooks_patterns.py | 246 +++ tests/modules/test_conv.py | 203 ++ tests/modules/test_lstm.py | 32 + tests/modules/test_rope.py | 168 ++ tests/modules/test_seanet.py | 115 ++ tests/modules/test_transformer.py | 253 +++ tests/quantization/test_vq.py | 20 + tests/utils/__init__.py | 5 + tests/utils/test_audio_effects.py | 112 ++ 309 files changed, 37314 insertions(+) create mode 100644 .github/actions/audiocraft_build/action.yml create mode 100644 .github/workflows/audiocraft_docs.yml create mode 100644 .github/workflows/audiocraft_linter.yml create mode 100644 .github/workflows/audiocraft_tests.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 LICENSE_weights create mode 100644 MANIFEST.in create mode 100644 Makefile create mode 100644 README.md create mode 100644 README.wehub.md create mode 100644 assets/CJ_Beatbox_Loop_05_90.wav create mode 100644 assets/a_duck_quacking_as_birds_chirp_and_a_pigeon_cooing.mp3 create mode 100644 assets/bach.mp3 create mode 100644 assets/bolero_ravel.mp3 create mode 100644 assets/chord_to_index_mapping.pkl create mode 100644 assets/electronic.mp3 create mode 100644 assets/epic.wav create mode 100644 assets/salience_1.th create mode 100644 assets/salience_1.wav create mode 100644 assets/salience_2.th create mode 100644 assets/salience_2.wav create mode 100644 assets/sep_drums_1.mp3 create mode 100644 assets/sirens_and_a_humming_engine_approach_and_pass.mp3 create mode 100644 audiocraft/__init__.py create mode 100644 audiocraft/adversarial/__init__.py create mode 100644 audiocraft/adversarial/discriminators/__init__.py create mode 100644 audiocraft/adversarial/discriminators/base.py create mode 100644 audiocraft/adversarial/discriminators/mpd.py create mode 100644 audiocraft/adversarial/discriminators/msd.py create mode 100644 audiocraft/adversarial/discriminators/msstftd.py create mode 100644 audiocraft/adversarial/losses.py create mode 100644 audiocraft/data/__init__.py create mode 100644 audiocraft/data/audio.py create mode 100644 audiocraft/data/audio_dataset.py create mode 100644 audiocraft/data/audio_utils.py create mode 100644 audiocraft/data/info_audio_dataset.py create mode 100644 audiocraft/data/jasco_dataset.py create mode 100644 audiocraft/data/music_dataset.py create mode 100644 audiocraft/data/sound_dataset.py create mode 100644 audiocraft/data/zip.py create mode 100644 audiocraft/environment.py create mode 100644 audiocraft/grids/__init__.py create mode 100644 audiocraft/grids/_base_explorers.py create mode 100644 audiocraft/grids/audiogen/__init__.py create mode 100644 audiocraft/grids/audiogen/audiogen_base_16khz.py create mode 100644 audiocraft/grids/audiogen/audiogen_pretrained_16khz_eval.py create mode 100644 audiocraft/grids/compression/__init__.py create mode 100644 audiocraft/grids/compression/_explorers.py create mode 100644 audiocraft/grids/compression/debug.py create mode 100644 audiocraft/grids/compression/encodec_audiogen_16khz.py create mode 100644 audiocraft/grids/compression/encodec_base_24khz.py create mode 100644 audiocraft/grids/compression/encodec_musicgen_32khz.py create mode 100644 audiocraft/grids/diffusion/4_bands_base_32khz.py create mode 100644 audiocraft/grids/diffusion/__init__.py create mode 100644 audiocraft/grids/diffusion/_explorers.py create mode 100644 audiocraft/grids/magnet/__init__.py create mode 100644 audiocraft/grids/magnet/audio_magnet_16khz.py create mode 100644 audiocraft/grids/magnet/audio_magnet_pretrained_16khz_eval.py create mode 100644 audiocraft/grids/magnet/magnet_32khz.py create mode 100644 audiocraft/grids/magnet/magnet_pretrained_32khz_eval.py create mode 100644 audiocraft/grids/musicgen/__init__.py create mode 100644 audiocraft/grids/musicgen/_explorers.py create mode 100644 audiocraft/grids/musicgen/musicgen_base_32khz.py create mode 100644 audiocraft/grids/musicgen/musicgen_base_cached_32khz.py create mode 100644 audiocraft/grids/musicgen/musicgen_clapemb_32khz.py create mode 100644 audiocraft/grids/musicgen/musicgen_melody_32khz.py create mode 100644 audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py create mode 100644 audiocraft/grids/musicgen/musicgen_stereo_finetune_32khz.py create mode 100644 audiocraft/grids/musicgen/musicgen_style_32khz.py create mode 100644 audiocraft/grids/watermarking/__init__.py create mode 100644 audiocraft/grids/watermarking/_explorers.py create mode 100644 audiocraft/grids/watermarking/audioseal.py create mode 100644 audiocraft/grids/watermarking/kbits.py create mode 100644 audiocraft/losses/__init__.py create mode 100644 audiocraft/losses/balancer.py create mode 100644 audiocraft/losses/loudnessloss.py create mode 100644 audiocraft/losses/sisnr.py create mode 100644 audiocraft/losses/specloss.py create mode 100644 audiocraft/losses/stftloss.py create mode 100644 audiocraft/losses/wmloss.py create mode 100644 audiocraft/metrics/__init__.py create mode 100644 audiocraft/metrics/chroma_cosinesim.py create mode 100644 audiocraft/metrics/clap_consistency.py create mode 100644 audiocraft/metrics/fad.py create mode 100644 audiocraft/metrics/kld.py create mode 100644 audiocraft/metrics/miou.py create mode 100644 audiocraft/metrics/pesq.py create mode 100644 audiocraft/metrics/rvm.py create mode 100644 audiocraft/metrics/visqol.py create mode 100644 audiocraft/models/__init__.py create mode 100644 audiocraft/models/audiogen.py create mode 100644 audiocraft/models/builders.py create mode 100644 audiocraft/models/encodec.py create mode 100644 audiocraft/models/flow_matching.py create mode 100644 audiocraft/models/genmodel.py create mode 100644 audiocraft/models/jasco.py create mode 100644 audiocraft/models/lm.py create mode 100644 audiocraft/models/lm_magnet.py create mode 100644 audiocraft/models/loaders.py create mode 100644 audiocraft/models/magnet.py create mode 100644 audiocraft/models/multibanddiffusion.py create mode 100644 audiocraft/models/musicgen.py create mode 100644 audiocraft/models/unet.py create mode 100644 audiocraft/models/watermark.py create mode 100644 audiocraft/modules/__init__.py create mode 100644 audiocraft/modules/activations.py create mode 100644 audiocraft/modules/chroma.py create mode 100644 audiocraft/modules/codebooks_patterns.py create mode 100644 audiocraft/modules/conditioners.py create mode 100644 audiocraft/modules/conv.py create mode 100644 audiocraft/modules/diffusion_schedule.py create mode 100644 audiocraft/modules/jasco_conditioners.py create mode 100644 audiocraft/modules/lstm.py create mode 100644 audiocraft/modules/rope.py create mode 100644 audiocraft/modules/seanet.py create mode 100644 audiocraft/modules/streaming.py create mode 100644 audiocraft/modules/transformer.py create mode 100644 audiocraft/modules/unet_transformer.py create mode 100644 audiocraft/modules/watermark.py create mode 100644 audiocraft/optim/__init__.py create mode 100644 audiocraft/optim/cosine_lr_scheduler.py create mode 100644 audiocraft/optim/dadam.py create mode 100644 audiocraft/optim/ema.py create mode 100644 audiocraft/optim/fsdp.py create mode 100644 audiocraft/optim/inverse_sqrt_lr_scheduler.py create mode 100644 audiocraft/optim/linear_warmup_lr_scheduler.py create mode 100644 audiocraft/optim/polynomial_decay_lr_scheduler.py create mode 100644 audiocraft/py.typed create mode 100644 audiocraft/quantization/__init__.py create mode 100644 audiocraft/quantization/base.py create mode 100644 audiocraft/quantization/core_vq.py create mode 100644 audiocraft/quantization/vq.py create mode 100644 audiocraft/solvers/__init__.py create mode 100644 audiocraft/solvers/audiogen.py create mode 100644 audiocraft/solvers/base.py create mode 100644 audiocraft/solvers/builders.py create mode 100644 audiocraft/solvers/compression.py create mode 100644 audiocraft/solvers/diffusion.py create mode 100644 audiocraft/solvers/jasco.py create mode 100644 audiocraft/solvers/magnet.py create mode 100644 audiocraft/solvers/musicgen.py create mode 100644 audiocraft/solvers/watermark.py create mode 100644 audiocraft/train.py create mode 100644 audiocraft/utils/__init__.py create mode 100644 audiocraft/utils/audio_effects.py create mode 100644 audiocraft/utils/autocast.py create mode 100644 audiocraft/utils/best_state.py create mode 100644 audiocraft/utils/cache.py create mode 100644 audiocraft/utils/checkpoint.py create mode 100644 audiocraft/utils/cluster.py create mode 100644 audiocraft/utils/deadlock.py create mode 100644 audiocraft/utils/export.py create mode 100644 audiocraft/utils/export_legacy.py create mode 100644 audiocraft/utils/notebook.py create mode 100644 audiocraft/utils/profiler.py create mode 100644 audiocraft/utils/samples/__init__.py create mode 100644 audiocraft/utils/samples/manager.py create mode 100644 audiocraft/utils/utils.py create mode 100644 config/augmentations/default.yaml create mode 100644 config/conditioner/chords2music.yaml create mode 100644 config/conditioner/chroma2music.yaml create mode 100644 config/conditioner/clapemb2music.yaml create mode 100644 config/conditioner/drums2music.yaml create mode 100644 config/conditioner/jasco_chords_drums.yaml create mode 100644 config/conditioner/jasco_chords_drums_melody.yaml create mode 100644 config/conditioner/none.yaml create mode 100644 config/conditioner/style2music.yaml create mode 100644 config/conditioner/text2music.yaml create mode 100644 config/conditioner/text2sound.yaml create mode 100644 config/config.yaml create mode 100644 config/dset/audio/audiocaps_16khz.yaml create mode 100644 config/dset/audio/default.yaml create mode 100644 config/dset/audio/example.yaml create mode 100644 config/dset/audio/musiccaps_32khz.yaml create mode 100644 config/dset/default.yaml create mode 100644 config/dset/internal/music_10k_32khz.yaml create mode 100644 config/dset/internal/music_400k_32khz.yaml create mode 100644 config/dset/internal/sounds_16khz.yaml create mode 100644 config/model/encodec/default.yaml create mode 100644 config/model/encodec/encodec_base_causal.yaml create mode 100644 config/model/encodec/encodec_large_nq4_s320.yaml create mode 100644 config/model/encodec/encodec_large_nq4_s640.yaml create mode 100644 config/model/lm/audiogen_lm.yaml create mode 100644 config/model/lm/default.yaml create mode 100644 config/model/lm/model_scale/base.yaml create mode 100644 config/model/lm/model_scale/large.yaml create mode 100644 config/model/lm/model_scale/medium.yaml create mode 100644 config/model/lm/model_scale/small.yaml create mode 100644 config/model/lm/model_scale/xsmall.yaml create mode 100644 config/model/lm/musicgen_lm.yaml create mode 100644 config/model/none.yaml create mode 100644 config/model/score/basic.yaml create mode 100644 config/model/watermark/default.yaml create mode 100644 config/solver/audiogen/audiogen_base_16khz.yaml create mode 100644 config/solver/audiogen/debug.yaml create mode 100644 config/solver/audiogen/default.yaml create mode 100644 config/solver/audiogen/evaluation/none.yaml create mode 100644 config/solver/audiogen/evaluation/objective_eval.yaml create mode 100644 config/solver/compression/debug.yaml create mode 100644 config/solver/compression/default.yaml create mode 100644 config/solver/compression/encodec_audiogen_16khz.yaml create mode 100644 config/solver/compression/encodec_base_24khz.yaml create mode 100644 config/solver/compression/encodec_musicgen_32khz.yaml create mode 100644 config/solver/default.yaml create mode 100644 config/solver/diffusion/debug.yaml create mode 100644 config/solver/diffusion/default.yaml create mode 100644 config/solver/diffusion/encodec_24khz.yaml create mode 100644 config/solver/jasco/chords.yaml create mode 100644 config/solver/jasco/chords_drums.yaml create mode 100644 config/solver/jasco/chords_drums_melody.yaml create mode 100644 config/solver/jasco/drums.yaml create mode 100644 config/solver/jasco/jasco_32khz_base.yaml create mode 100644 config/solver/magnet/audio_magnet_16khz.yaml create mode 100644 config/solver/magnet/magnet_32khz.yaml create mode 100644 config/solver/musicgen/debug.yaml create mode 100644 config/solver/musicgen/default.yaml create mode 100644 config/solver/musicgen/evaluation/none.yaml create mode 100644 config/solver/musicgen/evaluation/objective_eval.yaml create mode 100644 config/solver/musicgen/musicgen_base_32khz.yaml create mode 100644 config/solver/musicgen/musicgen_melody_32khz.yaml create mode 100644 config/solver/musicgen/musicgen_style_32khz.yaml create mode 100644 config/solver/watermark/debug.yaml create mode 100644 config/solver/watermark/default.yaml create mode 100644 config/solver/watermark/robustness.yaml create mode 100644 config/teams/default.yaml create mode 100644 config/teams/labs.yaml create mode 100644 dataset/example/electro_1.json create mode 100644 dataset/example/electro_1.mp3 create mode 100644 dataset/example/electro_2.json create mode 100644 dataset/example/electro_2.mp3 create mode 100644 demos/audiogen_demo.ipynb create mode 100644 demos/jasco_app.py create mode 100644 demos/jasco_demo.ipynb create mode 100644 demos/magnet_app.py create mode 100644 demos/magnet_demo.ipynb create mode 100644 demos/musicgen_app.py create mode 100644 demos/musicgen_demo.ipynb create mode 100644 demos/musicgen_style_app.py create mode 100644 demos/musicgen_style_demo.ipynb create mode 100644 docs/AUDIOGEN.md create mode 100644 docs/CONDITIONING.md create mode 100644 docs/DATASETS.md create mode 100644 docs/ENCODEC.md create mode 100644 docs/JASCO.md create mode 100644 docs/MAGNET.md create mode 100644 docs/MBD.md create mode 100644 docs/METRICS.md create mode 100644 docs/MUSICGEN.md create mode 100644 docs/MUSICGEN_STYLE.md create mode 100644 docs/TRAINING.md create mode 100644 docs/WATERMARKING.md create mode 100644 egs/example/data.jsonl create mode 100644 jasco_demo.ipynb create mode 100644 model_cards/AUDIOGEN_MODEL_CARD.md create mode 100644 model_cards/JASCO_MODEL_CARD.md create mode 100644 model_cards/MAGNET_MODEL_CARD.md create mode 100644 model_cards/MUSICGEN_MODEL_CARD.md create mode 100644 model_cards/MUSICGEN_STYLE_MODEL_CARD.md create mode 100644 mypy.ini create mode 100644 requirements.txt create mode 100644 scripts/__init__.py create mode 100644 scripts/chords/build_chord_maps.py create mode 100644 scripts/chords/extract_chords.py create mode 100644 scripts/chords/job_array_example.sh create mode 100644 scripts/mos.py create mode 100644 scripts/resample_dataset.py create mode 100644 scripts/static/style.css create mode 100644 scripts/templates/base.html create mode 100644 scripts/templates/index.html create mode 100644 scripts/templates/login.html create mode 100644 scripts/templates/results.html create mode 100644 scripts/templates/survey.html create mode 100644 setup.cfg create mode 100644 setup.py create mode 100644 tests/__init__.py create mode 100644 tests/adversarial/__init__.py create mode 100644 tests/adversarial/test_discriminators.py create mode 100644 tests/adversarial/test_losses.py create mode 100644 tests/common_utils/__init__.py create mode 100644 tests/common_utils/temp_utils.py create mode 100644 tests/common_utils/wav_utils.py create mode 100644 tests/data/__init__.py create mode 100644 tests/data/test_audio.py create mode 100644 tests/data/test_audio_dataset.py create mode 100644 tests/data/test_audio_utils.py create mode 100644 tests/losses/__init__.py create mode 100644 tests/losses/test_losses.py create mode 100644 tests/metrics/__init__.py create mode 100644 tests/metrics/test_pesq.py create mode 100644 tests/models/test_audiogen.py create mode 100644 tests/models/test_encodec_model.py create mode 100644 tests/models/test_multibanddiffusion.py create mode 100644 tests/models/test_musicgen.py create mode 100644 tests/models/test_watermark.py create mode 100644 tests/modules/__init__.py create mode 100644 tests/modules/test_activations.py create mode 100644 tests/modules/test_codebooks_patterns.py create mode 100644 tests/modules/test_conv.py create mode 100644 tests/modules/test_lstm.py create mode 100644 tests/modules/test_rope.py create mode 100644 tests/modules/test_seanet.py create mode 100644 tests/modules/test_transformer.py create mode 100644 tests/quantization/test_vq.py create mode 100644 tests/utils/__init__.py create mode 100644 tests/utils/test_audio_effects.py diff --git a/.github/actions/audiocraft_build/action.yml b/.github/actions/audiocraft_build/action.yml new file mode 100644 index 0000000..b71f8e5 --- /dev/null +++ b/.github/actions/audiocraft_build/action.yml @@ -0,0 +1,31 @@ +name: audiocraft_build +description: 'Build audiocraft env.' +runs: + using: "composite" + steps: + - uses: actions/setup-python@v2 + with: + python-version: 3.9 + - uses: actions/cache@v3 + id: cache + with: + path: env + key: audiocraft_env-${{ hashFiles('**/requirements.txt') }} + + - if: ${{ steps.cache.outputs.cache-hit != 'true' }} + name: Install dependencies + shell: bash + run: | + sudo apt-get update + sudo apt-get install libsndfile1-dev ffmpeg + python3 -m venv env + . env/bin/activate + python -m pip install --upgrade pip + pip install 'numpy<2' torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 + pip install xformers==0.0.22.post7 + pip install -e '.[dev,wm]' + - name: System Dependencies + shell: bash + run: | + sudo apt-get update + sudo apt-get install libsndfile1-dev ffmpeg diff --git a/.github/workflows/audiocraft_docs.yml b/.github/workflows/audiocraft_docs.yml new file mode 100644 index 0000000..96340df --- /dev/null +++ b/.github/workflows/audiocraft_docs.yml @@ -0,0 +1,32 @@ +name: audiocraft_docs +on: + push: + branches: [ main ] + +jobs: + run_docs: + name: Run docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/audiocraft_build + - name: Config git + run: | + git config --global user.email "defossez@fb.com" + git config --global user.name "Alexandre Défossez (autodoc)" + + - name: Reset branch + run: | + git branch -f gh-docs main + git checkout gh-docs + + - name: Make docs + run: | + . env/bin/activate + make api_docs + git add -f api_docs + git commit -m api_docs + + - name: Push branch + run: | + git push -f -u origin gh-docs diff --git a/.github/workflows/audiocraft_linter.yml b/.github/workflows/audiocraft_linter.yml new file mode 100644 index 0000000..60479fa --- /dev/null +++ b/.github/workflows/audiocraft_linter.yml @@ -0,0 +1,17 @@ +name: audiocraft_linter +on: + push: + branches: [ main ] + pull_request: + branches: [ main, audiocraft_pub_main ] + +jobs: + run_linter: + name: Run linter + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/audiocraft_build + - run: | + . env/bin/activate + make linter diff --git a/.github/workflows/audiocraft_tests.yml b/.github/workflows/audiocraft_tests.yml new file mode 100644 index 0000000..e347636 --- /dev/null +++ b/.github/workflows/audiocraft_tests.yml @@ -0,0 +1,22 @@ +name: audiocraft_tests +on: + push: + branches: [ main ] + pull_request: + branches: [ main, audiocraft_pub_main ] + +jobs: + run_tests: + name: Run tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./.github/actions/audiocraft_build + - name: Run unit tests + run: | + . env/bin/activate + make tests + - name: Run integration tests + run: | + . env/bin/activate + make tests_integ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..40392ac --- /dev/null +++ b/.gitignore @@ -0,0 +1,62 @@ +# Byte-compiled / optimized / DLL files +__pycache__ +*.py[cod] +*$py.class + +# C extensions +*.so + +# macOS dir files +.DS_Store + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +.ipynb_checkpoints + +# Tests and linter +.pytest_cache/ +.mypy_cache/ +.coverage + +# docs +/api_docs + +# dotenv +.env +.envrc + +# virtualenv +.venv +venv/ +ENV/ + +# egs with manifest files +egs/* +!egs/example +# local datasets +dataset/* +!dataset/example + +# personal notebooks & scripts +*/local_scripts +*/notes +.vscode/ +/notebooks +/local_scripts +/notes diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7c53fc7 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,80 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [1.4.0a2] - 2025-01-14 + +Add training and inference code for JASCO (https://arxiv.org/abs/2406.10970) along with the [hf checkpoints](https://huggingface.co/facebook/jasco-chords-drums-melody-1B). + +## [1.4.0a1] - 2024-06-03 + +Adding new metric PesqMetric ([Perceptual Evaluation of Speech Quality](https://doi.org/10.5281/zenodo.6549559)) + +Adding multiple audio augmentation functions: generating pink noises, up-/downsampling, low-/highpass filtering, banpass filtering, smoothing, duck masking, boosting. All are wrapped in the `audiocraft.utils.audio_effects.AudioEffects` and can be called with the API `audiocraft.utils.audio_effects.select_audio_effects`. + +Add training code for AudioSeal (https://arxiv.org/abs/2401.17264) along with the [hf checkpoints]( https://huggingface.co/facebook/audioseal). + +## [1.3.0] - 2024-05-02 + +Adding the MAGNeT model (https://arxiv.org/abs/2401.04577) along with hf checkpoints and a gradio demo app. + +Typo fixes. + +Fixing setup.py to install only audiocraft, not the unit tests and scripts. + +Fix FSDP support with PyTorch 2.1.0. + +## [1.2.0] - 2024-01-11 + +Adding stereo models. + +Fixed the commitment loss, which was until now only applied to the first RVQ layer. + +Removed compression model state from the LM checkpoints, for consistency, it +should always be loaded from the original `compression_model_checkpoint`. + + +## [1.1.0] - 2023-11-06 + +Not using torchaudio anymore when writing audio files, relying instead directly on the commandline ffmpeg. Also not using it anymore for reading audio files, for similar reasons. + +Fixed DAC support with non default number of codebooks. + +Fixed bug when `two_step_cfg` was overriden when calling `generate()`. + +Fixed samples being always prompted with audio, rather than having both prompted and unprompted. + +**Backward incompatible change:** A `torch.no_grad` around the computation of the conditioning made its way in the public release. + The released models were trained without this. Those impact linear layers applied to the output of the T5 or melody conditioners. + We removed it, so you might need to retrain models. + +**Backward incompatible change:** Fixing wrong sample rate in CLAP (WARNING if you trained model with CLAP before). + +**Backward incompatible change:** Renamed VALLEPattern to CoarseFirstPattern, as it was wrongly named. Probably no one + retrained a model with this pattern, so hopefully this won't impact you! + + +## [1.0.0] - 2023-09-07 + +Major revision, added training code for EnCodec, AudioGen, MusicGen, and MultiBandDiffusion. +Added pretrained model for AudioGen and MultiBandDiffusion. + +## [0.0.2] - 2023-08-01 + +Improved demo, fixed top p (thanks @jnordberg). + +Compressor tanh on output to avoid clipping with some style (especially piano). +Now repeating the conditioning periodically if it is too short. + +More options when launching Gradio app locally (thanks @ashleykleynhans). + +Testing out PyTorch 2.0 memory efficient attention. + +Added extended generation (infinite length) by slowly moving the windows. +Note that other implementations exist: https://github.com/camenduru/MusicGen-colab. + +## [0.0.1] - 2023-06-09 + +Initial release, with model evaluation only. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..83f431e --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,80 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic +address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a +professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all project spaces, and it also applies when +an individual is representing the project or its community in public spaces. +Examples of representing a project or community include using an official +project e-mail address, posting via an official social media account, or acting +as an appointed representative at an online or offline event. Representation of +a project may be further defined and clarified by project maintainers. + +This Code of Conduct also applies outside the project spaces when there is a +reasonable belief that an individual's behavior may have a negative impact on +the project or its community. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at . All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..a3e9507 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contributing to AudioCraft + +We want to make contributing to this project as easy and transparent as +possible. + +## Pull Requests + +AudioCraft is the implementation of a research paper. +Therefore, we do not plan on accepting many pull requests for new features. +We certainly welcome them for bug fixes. + +1. Fork the repo and create your branch from `main`. +2. If you've added code that should be tested, add tests. +3. If you've changed APIs, update the documentation. +4. Ensure the test suite passes. +5. Make sure your code lints. +6. If you haven't already, complete the Contributor License Agreement ("CLA"). + +## Contributor License Agreement ("CLA") +In order to accept your pull request, we need you to submit a CLA. You only need +to do this once to work on any of Meta's open source projects. + +Complete your CLA here: + +## Issues +We use GitHub issues to track public bugs. Please ensure your description is +clear and has sufficient instructions to be able to reproduce the issue. + +Meta has a [bounty program](https://www.facebook.com/whitehat/) for the safe +disclosure of security bugs. In those cases, please go through the process +outlined on that page and do not file a public issue. + +## License +By contributing to encodec, you agree that your contributions will be licensed +under the LICENSE file in the root directory of this source tree. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b93be90 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Meta Platforms, Inc. and affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE_weights b/LICENSE_weights new file mode 100644 index 0000000..108b5f0 --- /dev/null +++ b/LICENSE_weights @@ -0,0 +1,399 @@ +Attribution-NonCommercial 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial 4.0 International Public +License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial 4.0 International Public License ("Public +License"). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and +conditions. + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + j. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + k. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + l. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database for NonCommercial purposes + only; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..4bfcf45 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,15 @@ +include Makefile +include LICENSE +include LICENSE_weights +include *.md +include *.ini +include requirements.txt +include audiocraft/py.typed +include assets/*.mp3 +include datasets/*.mp3 +recursive-include config *.yaml +recursive-include demos *.py +recursive-include demos *.ipynb +recursive-include scripts *.py +recursive-include model_cards *.md +recursive-include docs *.md diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..27ed214 --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +INTEG=AUDIOCRAFT_DORA_DIR="/tmp/magma_$(USER)" python3 -m dora -v run --clear device=cpu dataset.num_workers=0 optim.epochs=1 \ + dataset.train.num_samples=10 dataset.valid.num_samples=10 \ + dataset.evaluate.num_samples=10 dataset.generate.num_samples=2 sample_rate=16000 \ + logging.level=DEBUG +INTEG_COMPRESSION = $(INTEG) solver=compression/debug rvq.n_q=2 rvq.bins=48 checkpoint.save_last=true # SIG is 5091833e +INTEG_MUSICGEN = $(INTEG) solver=musicgen/debug dset=audio/example compression_model_checkpoint=//sig/5091833e \ + transformer_lm.n_q=2 transformer_lm.card=48 transformer_lm.dim=16 checkpoint.save_last=false # Using compression model from 5091833e +INTEG_AUDIOGEN = $(INTEG) solver=audiogen/debug dset=audio/example compression_model_checkpoint=//sig/5091833e \ + transformer_lm.n_q=2 transformer_lm.card=48 transformer_lm.dim=16 checkpoint.save_last=false # Using compression model from 5091833e +INTEG_MBD = $(INTEG) solver=diffusion/debug dset=audio/example \ + checkpoint.save_last=false # Using compression model from 616d7b3c +INTEG_WATERMARK = AUDIOCRAFT_DORA_DIR="/tmp/wm_$(USER)" dora run device=cpu dataset.num_workers=0 optim.epochs=1 \ + dataset.train.num_samples=10 dataset.valid.num_samples=10 dataset.evaluate.num_samples=10 dataset.generate.num_samples=10 \ + logging.level=DEBUG solver=watermark/robustness checkpoint.save_last=false dset=audio/example + +default: linter tests + +install: + pip install -U pip + pip install -U -e '.[dev]' + +linter: + flake8 audiocraft && mypy audiocraft + flake8 tests && mypy tests + +tests: + coverage run -m pytest tests + coverage report + +tests_integ: + $(INTEG_COMPRESSION) + $(INTEG_MBD) + $(INTEG_MUSICGEN) + $(INTEG_AUDIOGEN) + $(INTEG_WATERMARK) + + +api_docs: + pdoc3 --html -o api_docs -f audiocraft + +dist: + python setup.py sdist + +.PHONY: linter tests api_docs dist diff --git a/README.md b/README.md new file mode 100644 index 0000000..67218f8 --- /dev/null +++ b/README.md @@ -0,0 +1,92 @@ +# AudioCraft +![docs badge](https://github.com/facebookresearch/audiocraft/workflows/audiocraft_docs/badge.svg) +![linter badge](https://github.com/facebookresearch/audiocraft/workflows/audiocraft_linter/badge.svg) +![tests badge](https://github.com/facebookresearch/audiocraft/workflows/audiocraft_tests/badge.svg) + +AudioCraft is a PyTorch library for deep learning research on audio generation. AudioCraft contains inference and training code +for two state-of-the-art AI generative models producing high-quality audio: AudioGen and MusicGen. + + +## Installation +AudioCraft requires Python 3.9, PyTorch 2.1.0. To install AudioCraft, you can run the following: + +```shell +# Best to make sure you have torch installed first, in particular before installing xformers. +# Don't run this if you already have PyTorch installed. +python -m pip install 'torch==2.1.0' +# You might need the following before trying to install the packages +python -m pip install setuptools wheel +# Then proceed to one of the following +python -m pip install -U audiocraft # stable release +python -m pip install -U git+https://git@github.com/facebookresearch/audiocraft#egg=audiocraft # bleeding edge +python -m pip install -e . # or if you cloned the repo locally (mandatory if you want to train). +python -m pip install -e '.[wm]' # if you want to train a watermarking model +``` + +We also recommend having `ffmpeg` installed, either through your system or Anaconda: +```bash +sudo apt-get install ffmpeg +# Or if you are using Anaconda or Miniconda +conda install "ffmpeg<5" -c conda-forge +``` + +## Models + +At the moment, AudioCraft contains the training code and inference code for: +* [MusicGen](./docs/MUSICGEN.md): A state-of-the-art controllable text-to-music model. +* [AudioGen](./docs/AUDIOGEN.md): A state-of-the-art text-to-sound model. +* [EnCodec](./docs/ENCODEC.md): A state-of-the-art high fidelity neural audio codec. +* [Multi Band Diffusion](./docs/MBD.md): An EnCodec compatible decoder using diffusion. +* [MAGNeT](./docs/MAGNET.md): A state-of-the-art non-autoregressive model for text-to-music and text-to-sound. +* [AudioSeal](./docs/WATERMARKING.md): A state-of-the-art audio watermarking. +* [MusicGen Style](./docs/MUSICGEN_STYLE.md): A state-of-the-art text-and-style-to-music model. +* [JASCO](./docs/JASCO.md): "High quality text-to-music model conditioned on chords, melodies and drum tracks" + + +## Training code + +AudioCraft contains PyTorch components for deep learning research in audio and training pipelines for the developed models. +For a general introduction of AudioCraft design principles and instructions to develop your own training pipeline, refer to +the [AudioCraft training documentation](./docs/TRAINING.md). + +For reproducing existing work and using the developed training pipelines, refer to the instructions for each specific model +that provides pointers to configuration, example grids and model/task-specific information and FAQ. + + +## API documentation + +We provide some [API documentation](https://facebookresearch.github.io/audiocraft/api_docs/audiocraft/index.html) for AudioCraft. + + +## FAQ + +#### Is the training code available? + +Yes! We provide the training code for [EnCodec](./docs/ENCODEC.md), [MusicGen](./docs/MUSICGEN.md),[Multi Band Diffusion](./docs/MBD.md) and [JASCO](./docs/JASCO.md). + +#### Where are the models stored? + +Hugging Face stored the model in a specific location, which can be overridden by setting the `AUDIOCRAFT_CACHE_DIR` environment variable for the AudioCraft models. +In order to change the cache location of the other Hugging Face models, please check out the [Hugging Face Transformers documentation for the cache setup](https://huggingface.co/docs/transformers/installation#cache-setup). +Finally, if you use a model that relies on Demucs (e.g. `musicgen-melody`) and want to change the download location for Demucs, refer to the [Torch Hub documentation](https://pytorch.org/docs/stable/hub.html#where-are-my-downloaded-models-saved). + + +## License +* The code in this repository is released under the MIT license as found in the [LICENSE file](LICENSE). +* The models weights in this repository are released under the CC-BY-NC 4.0 license as found in the [LICENSE_weights file](LICENSE_weights). + + +## Citation + +For the general framework of AudioCraft, please cite the following. +``` +@inproceedings{copet2023simple, + title={Simple and Controllable Music Generation}, + author={Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez}, + booktitle={Thirty-seventh Conference on Neural Information Processing Systems}, + year={2023}, +} +``` + +When referring to a specific model, please cite as mentioned in the model specific README, e.g +[./docs/MUSICGEN.md](./docs/MUSICGEN.md), [./docs/AUDIOGEN.md](./docs/AUDIOGEN.md), etc. diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..1d28810 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`facebookresearch/audiocraft` +- 原始仓库:https://github.com/facebookresearch/audiocraft +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/assets/CJ_Beatbox_Loop_05_90.wav b/assets/CJ_Beatbox_Loop_05_90.wav new file mode 100644 index 0000000000000000000000000000000000000000..2e2d9c5b47c7b96515e03ec2d21aa77d71b14a6d GIT binary patch literal 1881644 zcmW)o1zeMB8^#&y4mLVAN_xOZ=~Ph^6}wx{Q9t|Wv5xK0V|RB4NOuYnBHbaiWZh$I z`yS>0dl&ECy}jqT?(4oE7R*XccFnUlTN1Z8Y4eVKbds5w8N|%oEb*h68R?6;8O)4i zwsGCQb!K20gsIVpGqo5kO?^h1smEw*8Z)?l(TW1CoJM$;-Y53_&FQp_HkZ8Q5|cEIel*>1CyX4A|TnVd}sL;KVd z-AMCRvBNgKl6%)gl&zS!~X_vK%GhYhqTi**ww|K!&ET~m{Yb5wzsj{v6XgL?cT8dVAZnzWm(yAZBOXd>aY`X zLBFn8cMZQ4KhwhA;x1wjqHm&d0yZG;zaZEn=++hJxaxZK{mH|V%Bha2E@7!~-bCm` zgwf8JhVnwaMVv;YKs+E6lgtIPGxsblinq_vDJgDDJh6m-gb z7A=_e+Wwk7lguDT!h_%&iOYz?u1&6ZPn}1VV~*oN>i?*Jq4uHHK-NN*!I#7RNM5AX zR!gi@mJ-W!%p#1n%0;DBn`@jX4wRep|LC*Gv&a_|cNA{Jk;4i;LXZV3g0*71u+yhz zOzl>jQXo`TsvF8z%J9zxBSoYk@b6PlmpeF#HH5dzU^DvB4|4lG3h#a5C0i|fq9+j9O)Xl z-fO!Tjp{{xNhl$_uqd#&?D)iS9&;)4cG$x(s-Ke|-^O6G9eWl_M))B-a0$2pOS$D< z>+{x^@Ne+3&^6E-&@5;uW+CRCRhiWzw@+?N*BICLR^?Wa77Hz`?R@NL9?l--0oZ^b z?^tg~JAb?D)YsG`+r_rkb{%%BEdOWufm}vjK-@&!OE^Plzzkwe!|%bT!6V>n!1cF* z_(ERkN^~TJr$Qs5h&x4M(J|p2p^``7pPP6xaYO!A{y|x$ydi%r|EBCwYSc*0UBz3) zb;%3KI?-N{UW}2bRS@-%il<@=l!B|H&quRHsz<($433-}y*7Gg_~vj?&-WgmAMrm( zbslxCKR7>pdLnzKI`LiB4ZaO?OSYB7<*&})RB@~#zp0@qukBkKw#BjKZo|h0Vy#{U6ZF|>J(gGi_7`Qlcd&Fv-F}`7B=g6nt;@+RF($;{w z8FlrIgN^uh$9Au#s3x!an0mXqfVzWVU6n2EEvj}zhj)K?KX*tuWZCD|x3On`&(WSs zJ>|X4y&=6bdSCVD_HP;8KRRQ4(fC@<4i1l};vso7UM;VK_gwT@gp*mz66AB`%axmy z>s32c>FPD=d|jmuKV>yFISJG6pZsUCS=XEFs}HDy)yZnP z2CALX;U_N`?i&gqwUD0(A;J;sg&iXDiLa@dRKB&``k})MhYm&`y!^buo#B)0BlK2ypYr(6BiF6m?Y#SS_bpz#y$<*s_bKtI^$GV&@N@F_ z^mhwn2L2m-Ex0VKChXkw%hQ=r!BJnM8>64bzKJbPs7&~oG@fKW13BZ?%=6vRxG)?hx%}J8+Lerz^p&5Mep;Hoc+uhyfK!W4 zE`GZB$>Qb9mn?^^G_9~+LR~^nqo+BixTZwUiJnuEo}Yea(X~YZbA9JpCR3BYBxEL} zr_4(^nz}#r;EX*p*2k}k7shkqSxH_=eetdFEfMt*k68Cuul=6;_4;)9-1ofg+2B^| zHtg2tW^hrvK%ESZ2krORCp$zrEOwghWa)r)kWe|)jrdh~35thOp@gXO$YaR$kmZml zeTZJGlB<+5v22z&QCvAuG9l!1_)Xk8?u)UKM8ygw# z95;>2$6=$|k*QJ1XaI-7aTv#sKOML+@UiPzmuHtl*WT_;-RIkmv^CUK);+1ZS9QAT zXjNL}tjZlFTT0FroGf@yaJyivq`#!8{A)S8Xs`&9Ysk5ke~+e6pt5UicLjpOVdjyOU0#q zg)M~(b7tqnW`||#a;3TO0)2jV-ut|Xtg$RoCOY$M#_^2o%#WG7vbJWGf64z6krA8` z{WV&nt+GRD1Yn0z)-`ty=o66e?+YDWr zuKPW=dOq~L?xFYE_b%w0*B3evG_Yo9mJ+6-pszh`ImzdAOzP% zS4GYehJ+{ONI%Hm%gaGKIaiyi?E%cxq-X}UKedxy&h3j)ymAlg2-rLsuHuDBk$l|f4g*k`ig=d8) zMZ`t8MKhu;BdL)G!uN-_N47?OjjD>86+SEcQRw5)ijeA%?LoVP{th}8^n=yG>J1nU zs9`m-s={i+zD3nX^~UtYn8ldK9FIK_`#$+yvioe;*~(dpSu2xQCXXhJC!{AVPOwjO zNK8yhN|Gc=lWry5P7)*t6XwLvi@%rnAn{qsvy_!{m(M*p>*TE2F=;XDBDO|siuofZ zEj~SdD%LFSVa)TG(O7P*CSfvRXVR`DQxYUOKP5kfpT7!Iz}7AOXMcvXJBSrNxYOeFCjI-Cebpn zFSaN4O4!w~+Td@&=fls2M@5B4RmBv?JdC&<@gewiuz<;7%H3t|t*~!Mo#Mpx&TvA@3n;;q~zK&`nSeb8qv1%ubqNO$5_Y!wSQ#$$OJ@t*bUd z6QkLw*{vzpRB6s@E@j{leb3}7g1JRgk$QldHDa{#8s&=0CsP?#ak9NOS zuQh1#lf=mzleZ>4^j>)KZc_Ov%;gJq89`$3rY`M8E6q`8#u&dGet}#^BVIm zGuyk^yT-TCmlA3b+B3apy2o_)>5_1u}ZBqdTqJs@bBUC`n2m zk&kE*cQJQp{O9<_;myN$dmr?+baZrRTc=v@wmfXXw&Gh8nvgcB$ljf~JM#r#`j_x8 zt1?$*{+DqnqbjpHlafQuIh=neKecdn;ajl$my*vV`^t8gjg=3VCsf8%_EdIOMpcDZ zU9P@Rz5VO9uani<>X~1Yzv62#wX5q^)-7*b+&J$?%8&mw|JnS%=Izb87In+pj+Y&W zdiM3~@7vV}>6_|(-1DI4WY3A7k=~!Zw*5B!UIU&30Ym;ndxv)qqefAq5#tf#ceuB? zqk<8ESR@i{mTi=cD2J3~ni9?W$#s)jaDVxkd`zDpA0Qzh?wEm2LZ{+W@SjNUNu88d z$};LA>RroQmhm<*HuLP}*rhw9IY8(JryfQJ!_t}JY~f6De&hVgIoBoI1?z@(b9SS< zXL+;vX+G*=N*Lr^Qs_|;}Y4UmGci(Rna|Lq^a}{$ja}je6 zGll8Ev}aB*`ApwH@4#`^C~Hg5rXXXGKFBWECiqOysi2{tfgnY&EO>Ru%8&yg`$GCd zdPClXz6$*sRvGp={6lzScwM+SOc+)kQWm0QDOja}C4t&NO&|u4!^~y&`40Fd_$K*o z^4;uP?pxvO?Ca|L()*3~R`2cJfB78tsq(4u$?(bYvG%p|J?DGDH

ioWV+AVZ(4? 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�%>MaYfzhr;!ja>()EZFD5^8O&Hr7Mzl^5!B^(14s z`0JZn&8*a+l=Ql_p&ROTwXvg-W1u=f?TIBi4%l0?WA!9*@(A?hiHIji{9rgk zRg`s2{Px?hK>k%Xs>x_mV&lIEy$U5~gpbladKNXC+Kka_4&JF5w3n;eb*(l!`zM~K z7yoG_DZS}u05-kL)!_fe~dO>6WgdgmQRpK>uPm9$4H5nzKGIC?T_6u zLS05%+k*CY0iE(C=Y5O#?09XGHeH>izUH~CP*yA9S}bj;x?C-T-BX%4>_lw}IkDA< zVU$(#qOnat1M(>WB`f~eY`l*rqcbaPt((pxwELuZx(?FE7SZM!q7%&|no?9LuFS(< zok~lqWg!llpGfa4YKQEm&+OL@X@%8d>Pqb49{4+-X)m+J;L+PnZ)2Hhm_Q&tj?fqV0tfHeHRjE?(e4j9m5c(bU3reXYDu%HiqDi_G7F=l=`xahJIRra)|S z3vc8q$^Cjws~Jd5g*uFYsk!H~u$)&Y{}8(=O>8EQvYDI;$>r#ahPnf---8BkYC-LY zc2HY}h1nA>+yQlu+Ewjj%ZU5ft%Zr{tj6+gtTs?D5gB`|JXB=7>TC2ecEM=)LEjj` zSUt`dV-!P%Jy9Q`Y3`@zRa1A-HwF+jY(o29hHvH#mb&!+u7NIrB)-JHjp!P6ty-4& zX7Ztn-BxZP$=)cn@LL}y#?g`Jmc#aiQe&wfln+V)ylA_@H5DLt+A}KUQ}e6M_2&8s<%E&|@ANQbIQRFh5<;$u z?>#+!+R==aaV3@mx1kMw-wEIYalMT265`pqs{$Khni8}^R!Q#f5%$#@U;G_>)Dka} zn9n)<6E|pUrmAXX$RB@Yy`dj=QkoI}o1)BArl6UTg{^y`N1?pa~bOe#VP~nXizbqAXGt zDz)(n6(zbLF}f_+45f%%H8z`=J$SR7#68O5+4+<4uQlzpXLWM)gi8NhO&a?kk z#4QwSnlg!AlwC{qs`o7E?bdGGLPIT)A4Cm}YSoNFdV z(k5C%Z5uXLcdqF^?W6!4nQCeUwIyTu9QgdJkbsSNuhUcOi6!H3A+?}do_Oy}YnC-g z8Gt_0j=ou$XtP6=zGf;RB`vY*)_O}uv9!8)3FgCNDM{@9CH8(M#_rL|2<~%QB_3B- z8}D%zBO}_>Ph&iNq6s+$NaE^o0iq8*5C(TesSM!%oMRUW3N zoTOb=BjTK0&822W=gE(aGr;U`?z8sVzQ6!+LGe|-!k?Ll7;0XwA(k3X-J={(=F!fU zffd-8`;ZZjY44-yJ85ZOXV`BSbddtc!j`nJ$9VDH>mT%!j?<2-j1gP$@omC~liQig zc>q60PLBUdd#Am_%X9`Sxg@^GxWuZm^OR>ObFou%DNB%_Pw}wrbL@5eNj}>yI0;pp z)tyzy671mU;&5RLmq6xh!z=e32EiNigLxu!I`l|=tlq-6FoQAl8PD=2ZEgfTTE@de z$}wdPHe)CJ$72~u#Yc09YpF-<{yzH4eYVZWeGxD1B=o*iyhr90p6aheCvqYuPa7&pjAOGG`KHcA_%CUUxA z91BejOb(p&U+@nM4hdEuN)V5@wD=iAnxXY!jCiNN*2`+8H79N52j0sH$gm^m&}HD~ zO~YmzL3~tXS|Vgvt*x=y%oMKJM*J&%@vr7ZUmv0jQ66)Ds%aIq z^+ddPqrJzXT@~Yb4?zBZgX@z5Mv)f|^+Fhzec&j5<-X;@X1+!r9Vc-FxX=60k>f#R zpGXGyXX}#{4?Ut3eu=i&h<_6IYKT46o~lQM0=WVk@Fz?pJ{1KaSz zxp*j2qnkd&d-9!a=eTFN3&qG4qb8Z8$H+Fn9{XnO0Wk*0P+=PUf&5&@2z?bV%k$ui zU{W}Zr}2O1)HCaIXkWRBGs=60CO9WLQ8|=wSl8jf@Sx;YikI*pqva+%uZ_vO=^EBK ztemTi%ZpyQ4ZcqXXBKB2Vj35{SG@Uyxr526u~dX;?gdz(Q~cBXUjv^4`vbcJpYbJx zkr(MRb?Z2~_&&BZ@KWZ2zcL3|Jq^D{Kk7bp@wV|Ehf}&8J#MA;pY{TKuPFTartpJW z!`B-O2c{vqcTRtH|8DPp-X+FdBQg{fx*d21H}ra7BXR@UnD&+E@HZF)SJd0;a$<** z{S*AV@oIjH@jk{Oa#|;vQ}N&AN7BA9v!my=QM;&F@sWJAzFO-X>m1jSxe|j~;au!I z9%Ek&$wB>rN5{u&Sy!2x%o5aPSq+Qwv*U+jhPF`42G4b@Z>+C0e8XUjFERYEzpOww z)v3w`ci~rUf_>19sKjD?7^)UWJK{L*sD-rJg7xyZtA;BRnYk75IEZ}wfnP5p{<6h* zH*Vl97{>_O4!t7`W@;8*o|89FAn-~3q#j2acJ{UPt@1DP-@?c0bjEhpg~_xXzj#lx zkGadc&)YfJE%;1*iu8-E4&wNc#K-r;zwGVq?p_beEH#|@aX;t${BHRz3orR?|6Tvq z$nB9o{6GCaX<6UNmsQj#WuUK*FWei;+kmn1tmB$vB0kfM#2=QM%Zd2rHZ#Du6n=ye zhy-r~35{6B8KM_`-Gkh@(eFp&ohXRTAu{v|KKdc}4D~Sri1|)_>krM4K zQPPpLyk}(Fwt?M{hV0t7!LVRB{*_9M_l30lnxA~$u2h*ghTeDqAJ*Ey_P}yulMx?| z%^>buQr=%y)W~PtBxkt^br2U}$3`Gyjt~cw`V)f~vAV*{j_@?{T(nMFE!`1r$+JEM z-`9WvT?2hCK6aVk@9}$iFX&Id%LPlw$ z12(*{BLhTnI`a;joq>aal6b9h8Ci^M=<|Oe+k@yWt%whGBcuHXti;AJz6M|?qzq;a zmM7~YCGzVydiP=c$a!G*Tw&a6th7>E!lgFhj>q%=;ol!T9z2By=z8d(9bL~%gf1OE z)sxCeC96A|ySSsUW14Tg?`q`5$YIm~sYu*&EwZ*EzAOX1>W=%WJ9Ug?F~nX@$@94z zyct{AWo=5uy^nW3>C4LYVek$zSznAX~PBZ4J9Y47Tf7|c7bgbIvo)Y}mG5;*!(I8P5bG<}|USLE0d# z75#csaBr|MI=nlm1s?|<1}si|FfoL0dZgY->U28NJDTJBJAkitF5c96!NtKT^t*+Q z8IDV66nE8kYMiiSVF}^VwqwkRhYz?2HT>LU{lwDZX`S&$ZNM9Qkv1CAV>&WY^Q04!?kXVy!y}BW7JUUD8lp-|9>AUg`RXA za~ws7`^gwvk~TY+NVaeTUxhy4J6vmA4BZWVg3B`q{aDw6Y7gpV?IkX71i#Axb)P!R znq>Whc0Uhaz(xEaJ)kx^mKHD``yV=z@6Fsnh4G{|4qL_XOByqr5|>A z5Iy|{*AZ~IoJn}+VoOIuM=I>lXV?no8IM!be>2dJpTG-fL7PbiZ*mj%PCVuxR!=}% zRJF2dNwoxhsjaiAa}QQm3V27=&|QxyyA@%##Ygx3fulGM9Q>?~Y-H6Pcf5p=D;%ZW zQqVi;~V4q+|yoM90*w7&O&Hs&xNHP6Q*{&^B8vggj;`}?1z&)pM2PjXNfLm*Rr9uUmdn7EFEn6_s;Lm7t}C%8h$H$wri>@GpuL>*|0HeXV}D8 z<6{ko**E4W_eA$N>UkV=U3R^5e{{ccJ#bBPk9FS&yB(ItUDAD&IwN!FCy%weT4Aas zmQ*Ir#+%_H!yd)BALD>)r>hl}OA^EOcaxVe#xdP- z(RI~z4;;rnD-9Q69g*8vu9>bo)aE?zI_FAG4F4sv zUdeE6B%Vpi`=GbJAr|>nc~3p!XI4kpImPg!rsF+7Q*AciXtTM|+L#oa8>~nS=%jJP zXh7_t91)ozM0zfgSMM@n8o7Cnqp0eUA&`+grd5I3L{`qD7pTFgz%}wKW3WyPs(ic& zd2EV*#9}aYV7&)9(8-c4kKsd3h2wjlYap#Od0h zbFQZ!cT`#{N#VIg(cd1x9DFV8X7rGjM5=@>m=zB9Lbxug@!u3O3K}W#mx^p24L`O5 zed`4AwkYnAu&O^RA8qFQOT1!x&`Im5SY7x)#Ev+n-@TAWn7Vwey-VQj83E(na zurA^Kx=2K!gOvxK`)2$#2C_K;R&Z>*vDrd7u#k_0?&E)1Wo@!%n@i1R*yiG&{-l0Y zvm+lTS+lLa_?&9fhR?CL1^APb;B(B0Py8~xe_@qhrncltWwTP0c+W(2j=B=Rb~l(0 z!q<>Ysf6S!r^EIVKjIyHve(Gxs(>A*z>q#k+&>lLS$>#GvGJeG!zUyXBU}8LE zdlyWrOL*UfW%R(V)w3Hm#w>E6*63HL7<8EIrw7iNW4#QEN8WAtZA+PGH z;@a&vlag?$$h<4)PibMkNVdXY+G?0$SvTPrHFEt$9jJTG59FZc7_#FfAmmBH0#k z$TPS~Os+rvyY_IrKk&SJ5aYNCPsfQjaSU;#sj%AiFrLI9!g|{{ZybV0SduofhjxCI z_-dk{JNPzuFW8RuJy98|T!dHX3BC^w_xJSw=U?H!8a#<#XB5%!ipHtnw%~iR#&eN3 zxey*hHa^n^;|2dPLc!00r-4{L-S^OY%X^6o(usloWO_~vG(oN=B=Xjie9D^CGAioJ z;wwSj!71Lc-cp|8o{65(o@~g(hg6K-P2PBUGE3*fm|UkWQZ?&`xy(Pyf8KY(H;DZ` zWvvwcME<1Y$6g|Dd;v0b1XZJ7peHAX&s!T^B0YLVYpR^IhLzol_qgRClXd|W4F?zl zh|1qJ{_w~0*Yo`CDH13W_#1v8!k2O3*L#5tzZ>T2f#Ahp6)&f@=j3=i*Le5&(^B@Q62`;`pBs_0|w zkUL}1;!{y`@-6Y{4en*`-PkR!;m$?ib-##xeFq(|t)sC+b&*r(cGcWy+g4uX^U7x|)j$@)u9PGx@b9(%glx>R?R z%Rv8nL}us%bhFFuqwdLJ!^6I~UbvQ%M_QQ7yFaMab^|@@AzZiJa2RuStf^L0YwWD)%#5vZfvm=AF!H*>O`Yl(=_u&V;vVVh<9bW3 zUPbQBdfqox5E*(MS@hj{O}s`?DyT)VmkjK#wfYnMFx|{jzG1-$!Gf^P<{&=?7-Nl~FU((q z_x&}mVVv@wL@!`}8wxCa!4hToec^@0t$9Z{}juP{XhfSUs z`#wGKllR1p7Z68FLcCxxjH?ppkt5+}ogvPX4O{*vvGeZqj*rN{erj7)GEHNldFHm# zTJ_0INJXEzf}NRBPoS&nH>D!^eX)p6wDj~&2kUJYo4`P8P zM{_wwPP|`BLR9cD9__|l|6TlMIpH!*g@ZZ+cJnR#=aJa!_wdU&oL-0G`su7n_WCaL zX7N!p#VV^nuJ3U2nq5xA;fGOe;>T*@s7tnRJ0fLm9EGtp6L8k~h@mEh+vKL+PMGe{ zCppGAdZK|Xam{xXa_4ieBNsh@1{e>&)&b`pXF6EjJ&=9ErMN_`$-zK)yBCpno7|h- zJ*e&ZhTP@~9G0#-MBnUBb>A*X%I@S0ABNeSmG>2QB?G&Zv!e4h z^0znR%vNe|X5x(yqrxVIt!AIIoQs?qoaL(U;>+U4UFqJ09lp}}8E$q=Y6tY8Zs+b8 z$6~aJ*)3*PcLDc#{P*#Zn|t94B_vMx60ZL+7y?77XIYX=?yn>rC7_Pc1J_&E5Z6T4 zT;8#hgZ$(KdU_bbO?4L;$I?!sP zh}ZVipYlx05H}B^X|zzgtGQvA*U?&NQ;F_xfe+gepH3O#tcQ@FCavKRePbLlvm9~f z)>KW1ARf~RpLTh&#^%CbeL^0`OJeX7uunFTd$NeEt$A=BD-5GBY#OK=m`#-zXD|?mYdWw39q1;-kehYj5d2{kCkHwXe6ONJ zA~(Qg?aq;l26F}L1*!%7fvOWOQHyg@*sYssT=ir;*&%ozERx*|{;1^m-+@%k3gxE%ykr-dwbohO5@DkpJ zxw^u)jM_|9d`$uk1D}Ymq(z^}gXC{Ze4qsK{|NO{yAwwnL%j1kV`nySK5!xM(fDX2 z!Z#>cl<&xw%1m6ri!W+B9#6@gsYcA}tpAeV9f%od3paHj@@^a4hi&FAa}PT8KC+nZ z;HQj_eVv$NE`ggl6K=_CvOSmK;X6UQEP{L-hb{0AdG5mIw<~EN-xryyVUyf8M=@^Q zM+V-7_c;n?^+lfOEjUv#;pf~ZPh<+${fKz=7JSTi;Xys*`D{jq@G#DOgn!o(mP|O; za2a36Ec)3pbfAUU#R zE%2*~Im$YQQB!!ibFH%+brl=YXD!u<&ed8w#8{RG9Ww)*zn$=?D#Im=?VxxyHsb;q zPJUwZr-|tbM^3Ua&JaWTK^*oUY7}&(PfKpZ2e6yECr8zz>P~nG3CVtu8VjX~<+ma} ze+RB?Ge;9gF?2WK?N=wp@m_zcZ-X0A4TfodIHTFn8UI439pW6|?2pf&E;3^rl?V2- zzw^BNa0YcD29cYft0v=KbuBUH*pK=pXUUQ{%QZ}(_RA#4Xvg1hB{asVf62@n#Q0gr zmCNOIe|4`QcP0uwp(M3rKV~92g9{R0 zS!|dh*wij!>lyI{-6NKgob9?uMj|ccFtO_`)<&xa5jWU(p*Q$_OOplImO2X=;lT_> zPF$n@&`Y@WQN%jl^SlG-M-rEinB-5gN3-zGqb=7pSg3ObD&hP6nbtQB*H=?GkRwa7*AP&_~OzT>5a#s$05ll zSIHrL%DY8oQcd^Qol8fF_Z`CDxrOr^fz8;4y2KT+ zXV1bEA52{K9lrL8@IQnT*#uu)5o9=|HB)jB&Jic;0~7ofnRX4ZKZgW|1~+qMmAN;2 z;1w)IFFV2!8Uz{ze!>cBPBn@G@av8Xhm0$idZnH5Ac|~1gFmqz{Pm7_?qZ;8WPxv; zJ(!)Xj|RopFWlq3=sU$YejTH>5r9*94bJo+?1l-*^ru|+Wb!`G!LN}V%RTToURqD> zH_eG(PqQo}$Yi9>HdBSocOO2XaJ#y3ud?EoU%Rj0BAOICx&uDV=e*y}MGrj-cV{aMxB_HgOE&aJ_EDBS2D9L(y=OFe1&_Lu?R&b29lTbLaWN>^WuPqL|o1LsLwVjqzzp;X|9D3aiGR9o` zH*AGFa6hDWiqux>OAYg#@GugfH(mjhlgFp{6|J(3l(@lCt>H{hp5r8SvMPB1Ly0Ta zanx~i1-bOxdNr=0A9b7lp(@Wa*K^kis`Ye3UUpPEE1&VpmZDnCceo%fV)xaM?_1Pu z>KnLWpQt$A*456H+nL8Hb#g0kzougM@1+*gQeufI;LZ(Hho}{`ztAhQI|e(4Itx*s z=aK$IZ-#$$H1Y7k_$A-r0n$T<}%WQ48k>v5j($ijE`Xa?V#5a~40;EyNeg zQu8Mh{OL{Pm-VBvRe)smuE;WZZ$zyF$Ft4GB}2OmKWw*=Cn1B zp2S35$&@%S>+H4Nb^(Q*beR#k}$lc1#{g%AvOT_utQq5u&I+Nr{=Z43444&9f zbGW%2J^o+(Yd&~FE^;*Gea5R;vjO+#8tk|nb6d6U$l%`4> ztrcz1r;2a9Dq5*cwslg+Bf?eo`PvI;lM27b@w+6L4fNxzNb&@@CHMqeBDt6vH&NCd|*%Ea*Rze;%J^s|BS_&ld58@qxc1{pq^=sJLsgbKyiF`@ct&YDWjPY?hzT+h1s^vz1nQKk8U=`aHu}nBaeegkg z%`fm$b(sH`@cuMbVpE&38kJ$TA=}1_FOvTJiI$#-{IqXWQ`ri;st0`bR>-)$w46NT z2bF-+Dcn;N9^@Q+`K!s?yNcd3lQtSoZ1OI4;7Q`4Z_$Y?^3kdyL%QP=|As^qZVSc)991Q{!GkPFoO=xK_M43i zenPfkX`bIZxZPcq?oeqQY71i7tFT>L@YJSKpCXc6lrAhgjDB?#yQDi>ro@LO&*35M zs19|c`w*jxkG;BzF}XVSl+;Aq3txByoUZ=xi&BvJR-gE@MnrEQ?K~5@Q!8Ypm;3-9 z(y%d^+4pF#>(qbgiP`Aw6VyKR!iU5crr|RZ{bV2G_fzt}qp;66pdU)^*axEJm9gtS z;V+7SFV_NjUJ_eS^c<-RAe`^l`1bzh=!@ZHRb|N}kPP48SoBAk(vxp~7=7*?+5b+) zkBoru5gOS}JY19MLHV^!$d$?<1BhT>*Ma1!*8+p#yiL=lQo~{$zD751_bRL}C10mG z*R+N#7s+9)NsJ^u-bAUfeT>=}$EZY*lo|n_kRV4ndIxmQ_3Bzx?#91J%j4YXKag7y z+}kC@5F?R8@!{rPCFlKLtoLtRZ$ZxMllp;d!}w}5_yMgMJLA*WKaL>!(O<*hJ_w0pX2tb_gSS&_(LCEMSE0ZB3(ZY{sX&5030ad^nBKCYK@q z?r~m{2Qq_L-WY5!_MCxWiH*13&twG*U0zBzbJ+2UWcpdQl42Hkihx%!Csgafk9W?_!tQ7dp zWt&RuuPXJ~b0R0g&{e-6b7h>B{Dw!^iKn@uUf5?co=)R@Cs zO68)Rw}-(o51oAuPk0zniAFrZDzvpJ^qbT4xbjYIkXMbMp*lK)imm#Xem+WV^Q1q3B32Y=V5K z!`=tc*A~)`x-qI3rB77n2$RYFoKFuNC7f869Y$tsBY$|2Eyb47N9U^J!5U=7X}IiC zi*phf4%UMw;3=31q@Pvf=##-AWT@0D{$2lHB;a?XiG_S!#F091ZYzM~NH3*#_r^Bs z2TOPkGGRZu%`POxU^vFLs1VeNwKpP(SFwIYWWX0>@mBisS)M_Du3tDnGH(S^W|^{- zh|_2^ox$|tH%eK2Td}#9ugLwB+{j5hy*Bu2=b+2XC6}r_{jx1jx(Uy=B;28P{Mv$! zF3Tk+dj!v2_9gkJqv3{RWxSCJmr^k0uP|&Y_UJ3_TDtcV)0qc1A{<6^lACN0B-SQAi0-AK?l$jlmi7o zed^drZ2_tC(H{%|O@MIWzEe*-Il50-)|L9%lG`tJwWZcaO>6?m?H^-~CCjKewfc(N zb+#LlTRMc}G$YrVEGoNJNEdYZ;jAl@e3x}ES|5+&d54EI(la(%=`2~a`Ph15y}H!X>6X{5Bjhw~()=AzVMtc1j@fqbiK zd&(-?wIZdi);b_LVN$y?0(3;a4MIvu9*EREs1Kz6$`r5)>;)%*)Df3D5Uasacv)7#2N6W>2 zvT%%?oK+$uuLqyVbL?E%CW@`zay5_WJ5TxlfnTy*_9MA!@$6c$vG6_X_C96#NA~RH zY7K02Ki}m1WO;I1rl+D$#)Tzju*P?L9qGfeA30AsmgH5-b)@HNvvFo|=*gcr@+~$_&n1jv>c?&Gd#VzR$CHz?k=m^U--aZu@;Gk~e$6aRWbKTcY|dwN9o8yXcMXw}ZJ5`>UQcX?CTKR&H>=^> z`kVeH9H#30mfY@~c+>Kdhfo3;TN%Gg9b0>eU}kUKX1+nghR4Sx|(`^|V0N zO${>AI&*^(jA^A9*-C+Opb{EP4J@a+KUxH;FrR`Snf4&Bm-J@9vTLL(zsLKe{KHcu!lq?SXF8hgyMssIuLY|Gn_e z_oEI>fAsXxXi<~k4Ua{G9?2*>#2#NKFlQpu7<(@M7W;Dq%SPGDWo#eE+~FLpzy0Q* z-u5wNp4b|)KRKG5TL(t>eylTswTCc<_uwj|9)ipl9YFkY5pV?M{N=mYHu78Ui+sxU zx8nL+^IxvN8&@v#Dx%33<$lXO7r$3c?x@_yviOSg<5$bWeJ=^*u9jyFu`&MS*&SXu@RQFkNUC>?5U;^UAni>4#75CNa}yfa*||hNUpl9BQ+$`aP2Z>;JR~gFY-{|Me0hXv!$)n zGf#=cOvSGZXi){ZW94mINm^|#?qw!>G?M>W*eZv;eF^Tb)MPKq+6B3HvR|2UvPCu^ z>q@-?`OM01St84d0mBv$#N>QN~}8^OO4H@qpA_lizYx z(m&2meBjJRJ?S;NCP6lAOjv$v6TWxa1a19@+V^mQ4tKk!|~YssU22V|a1 zGA6u4u8WQ-a{o5+Lf(rdpHlPZ8v1~I6CbjyCu=@u#JtZ~ah+wd&Kj&1L9wr}lG@G-}gZRPVFXDgG8 zm*2P=mAfLkg^Z2zTgFlu3+1HD&t%9ksc0{KB@fT7 zAT6Uf&+adtxzu|o!}F7VSW|drNUNswOOac3@y#}*_e!4?xg|aUkxk9*9^S<6`y!iU z5_u-FpcfDuUf$0lvZ@D=c~S#v1Q6LX8B7BcfP9||r0(f#FbRzNg^7Hh%6hVV377|_ zFh}0|G6QRJCU(Unwjay-BiZi={txH>1f-t4TXOEN^~W(s))A>Eb+dYLUfnn^sk=Im zGaJr!li9EAa~l6eY7S*?AC~v#zesGU(<-q!`7T!^Qn@#K7|faje(h7%m;LqUe`}=X z-^jg2+|hR2nNHlnwtP0_?$zU-$};(^!?$Y4JbA}KP42f$GB1KH#BTuaozbcZ+SC)QO%Jy9sXD!)JE%qS$k#{D@yuwIW*@tXX?$g z)?9T1&agV?SIgdytQ)~R*=IeL*5{YZlM$pfBTF-mBfn+2>`Ru*er3d!^~HA-ypC*$W`#D!5me*rsuN>?5cCzmq|96!l`JUL@$a%_{$@)*2p0T~`K|Y_b zw+FxWDR)IIG}-?%WaT^L;&*$LmT^|BlSr%rv1B~I-c^~9gAi9d^F=FA#_$v03jIlD(M(a0HJxHpde&sI9 zh!d^nM30J+(I`{&lacZD3D4v)El*mfe9BmQ7JupqG|gS`;hgeHjbQ` zjP1YoA)iOtS|-_pEIGs3N-vQ~u20TO=0#t>XcAZGi)UGSjyrJKz7O(w$?j8^xI@>t zN4M!0(o64gUqy2fcGz{+IM14rNiUiA*IDDPz20wqM1IS3ho!PlS^u1U^b_{ok#iAA zaF?Dd`;_%$xm?pp{>%A_-XiPBIm^6L-1)QokG_@@_O%}2YJcDJb6nvmejWaGU*(?d zw4cpR`~J%J9k#{%AOAPwcNQyJtYNW~*YGL!vP1{gGRg0?zm~7VgR>lKc>(^RdHCy> zvUKIIZPwcR*~K%J{cmOut68>^wPYLFkL+(Pb7dR(E$hhfw-AGnbC5}nyOASq9xub|QTw<}7|BdFxM7TY@BHULrKZ@!iUIIj+2ANPJ>)E@7Nu49-scJ#vn64MDEKu*bgu z*Ce{WNFtFv;&BtXBU-$Sd@_QFUq_@(v=n-RoRR(^vPEQwv~y{jA~$}wN$FcMiA0c| zDZN=Hd43`n{#$d$~O2O|$`Nm(q6RQzqew$ZwgXT}ivy#&$c{o2)Os z##Q)lr1t41mTs}zlgKF9`+s1wz25KRi7bllC0kf7ePXk{rpPuq7x|P)WS7W7k$xio zq9x;D=7^1P)Se^r&jFDj@_wdhxhr;uNC+8gMdr#K6H6o-clh<&Pxkxsw+}^Rx%j{Y z;!ly~vP|M`;vW;6EBcAZvyss^8o!^I%oE*3)|0V9tSb2}ty=8oAN-ehOo?vu-rn}3 z{rQnOGEY9G2A@n)GgL-%v7P0;3i2tF^oEeFLq*Sv9?_&-$tch8X=`0#e~Xryk9In|KtDah0^~L@+%Q~fcP1tM~cpo9Bn1FJ*A{yCr272r8mob`7ZO) z(EtCW_lx&BGqOSW0e|v84Lv^{5+ExQL*Az*9)Vow%z15%S@dSHI7*;xi$|w|{Y~n- z=CdO^vP?WWW$fjpSVPvSjMh%YTKlsiRz@W(8JR0@hAYE=Sx4rJl~e;eK-R5-9U-4J zu?Fg31&GyD7n`6ipSAfV^JQI`YS~MKy(XTi=B&}kUPtE3wle)*U$_vm&HwIK_Fd1m zQ=*R{b!g;ls<5W4FYC&_{`YwDTc-a<)mOkvQMLc?PS0%JqC2D|1f->;L_#E`L5`C;j?1mB$(`N*_qp@l-~0aWe&+7%%Eg@-`R-l5p`y`i>6i*w;(|PAeIwzT&WOTAol|o;X&RxUkoz}T>cvZ-K&pTcQ zl^Mrv*-=%kYk*$+nwBPVQulk^ux_HrNnpsWoB3loAkIs#!2L+JAS$hv`%ZVIbM&8%(^JzK`d<^DD5jD&Y8g>H#aU82iPGtQ^gW96%%gl7 z8QLeCG4(Eemrx+-iRc{tK7EI5Vl*r0T;4U#J?Og>X-E->)K_GarkGogCCi(%@*_qBVeQ+8jQSZtBb3D9(`1(n{d$JMvcEEF#(PzZ-|E#N6u~ zZIr%6ccj_K;0(!*gd^!7P?8p$x6wIT^%$&XbUn3&Rz9*((!R5blIBU)Nk>K{`Htk& zyz6N8n^?W+ovxydWLlC1NgF2_(D=`mw@=3%SuyV#(pSl%PEtV_o1@v1eUvtmok@x$ zxtV;JBrDTK_oHJZeUOYz-`DYN`aL@Da3P8sBFVy$G^nj4UC{5-y~v`FcfHeY(wgZQ zRW&B5grpF94w6^s-cH-|p3iAFMNE?p?pP=CWa&J4nlyKksY%bg1FewsLedOL|0JEB zj?rhbQLi1bu21KkZ&Sqajof{*t4`=ezW6+Gy60m*1Hc z_#xP!NFQ=+OpZq6{2pCP_aU1OT|=K~Wu))WJ*X|ttaE%NWY@`SGo7dBP;=?ek(O!3 z5GB)p=biQ)YNT^{vUJ`#`mWP6c|8 zG0t`5%cuJ|Q3;Q8sr_Lt?UO%K3nkhRs(W#}B;m+nI|azj+&XzLk5-v6<3bBI^QKbLe{7BaM&R;Izxp1|82Aou%W>z5o8t)imd6 zCOhqRtVqr=Cz`_fUD|j0{BCYL==1+>)Hd22PU5uFneEQ3r(gd6+eTa^&ntHgy+D0& zA=d&$xO)G)k&a8)!zXerQ)I~^t=Q3wN%Nu>@` zPo{ZK{s(#ye~N?8kYrAO#BGTGG$%gUrKin_lKb$j<8`8VuqyFD(^8D5mOF*yxu44|zbhvF!ZfmGj|GRe4^U%nW zEuW+mdeI7%+b#d;8|owKumAQRjia+U#~f?Of6>QjTxet{5|ca<&PMwbcSSE}-6M+% zX@Ys9M^r##P5+%e8gF{#`TXS?5{{r5#08+kYA9Bs6hx6$#ujVu^+o-{qj=16xY zS(!XCw2|aYznkYpp*7Z_n7rpDI?7wsN#=EED^HpwDS+mJvk^TxasjQs&L6$gvAp9X z9XJvKohK?JYYxpHXXXCid(r*qGhIXb4z)U~uM?p{@}m>=K<_lRG@FT5oq7G={k(ad zN5}M@cg&%PJetT`{hfJ0t#sz}|ITf)kkK4-WDgqK|BiItSUaPicbu$g)U$N0Lkpyb z(2HiVGxm9u;Ls9{6Y1?V)?|ey4V|=dvObi=i}WMsMVcnXn>e~RY2BnBl7>v0a-K%* z=+yOcwM0i_Bdv{eV0z{0%XOjA(KQY5qW3)QF7G^P!=y`-PEPxDKJPk5Q>ME*+F+ip zpQp>ym9#ncbo6sax38IdM>^L4x+1lQv`K0?{Stkqd*tc*^i==VRw?p^yv?M6J25z9 ziE}h-r+=uwD1U-*E{f%9lSOm;(wRAA#Ubx>Vf3{VUqpUD@-@;%Gmkhh`4nj^XdLol zkn%p$F=uv?J%#LuG~Y-!C3_-8fjZhL%{ZEY4tICvINjILTpi9%N9nU;FCxvAD1^T8 z{~vSw=&3m8*fnWY$eY!)@2ng&!>JY2K4;6b?+{gy?T5Gp(G*2Pk)_k|uu@;qXX>ZI zxp$zuIMnA{N8h8~pz9qUE_pHNuJnmsbT7w_MEkT+A5;I64XtFZc3(R8GmQ^fmK-Zd zo-L_jE=@aQ>)4ctzMaS_ipL^r!fQA}_PYwXWA8*;k!69rGj!as$T-wN){IJ+Ddls2 zi@Y|}5^4|q_A59}ZK5{Pi_Vd~i!5OD9Mpf*cTW4s{zo=H`cG6v_F%_rzMI_Aoa zgCHJ8Itp_w!V(yEsybCIos>^zP=$g#nY1n1aB9GNRG zF3wp~&D?XOv68)oj?uNG^^uo}j?oHBt1E5vYh;fhnTw=u$L8<^zYxrA3w_t|NTug~ zKNC7CX`qh({06@B5G~BWohiS-(V!eHlJukN&`$rsUCGD$9RL5tryG#-$-m}kx}>er zd1@Qkdgxj5Hs{!X?Lv-Em~31m3pyM1g)<(Gf7r1$xDek$x;$lmMRWU`ED%orI(C}(kDBgBzf0FsTgYEc<3rz}>**Ki9JQNdXOdxP>}Z7P z8nQT0yXZ4Lqmx@f@+^%n#n#dp8VSloc#8iN*W=j1XgsMMWV51o+NeJ%?|`nSjmClO zf7C|0KWXe_*CHzswVi&SWG?y@8V|=N_VoX*qu(Psq;`?tk|JA3YbEW^v3uRZ-6*5t z7LHK`P|B^im#guTrbzx*inyTbNs}hcIPd#(jC+T@TBwvWSgVtCu-5ZxfDw6B>jV^pR6XNaX2!fisR19u>e`QpGe~%Dks^G_#^%0 zX$!=A=|1$VWLqO1O8!F97Rdig78dGjqT|zu@}Tz9*wEZ2zD0f`;-oa{6eqD7F&Y#H zLfo1BCgg7+-bWIwqw78-mH^(Nxac{~=e{mrOu`A0Qs^8#GwH^p-4dsvHW4o(xsf<3 z{XS6w@v2g}zd$hzv`SXX(z;wBWsL9sie zUy%=v?nf~&%aDmcBS(CWo`s})vI&qKf@py55l5S;{nU@d0VrRAY#6jIktc-KQnIR0 zGzvu^5Y0H2D&k3`GiKpANlrI%>44%)sO}Td1o2+dC5Z0H8bJJ<<}JnJ&{gyt)Haff z$yZ7q7vcw?tX>3D9-&3ggb&cuC-auyfB;-aeL55*9)Ck&?Xyy6=^~&0!Dq3aG zLPtb>mVn1~D|+uKo}(jb3w;F28HTzlIp%o00BY%iJdyj@1G8!$vPG*Q`kBX5 z_6AifM2)Iq__c|+*F@we0TmKYcOTI*C(+W?=#$5&tI`~NM{;$;v)4n`;3iyI1JqO- zZTuHJjACZ)f)1*J(rZA6qE#o3h$L3|yvVgNFc zdSE;$#w!3m*9xBep6JUac;yE#Qy^s(Kzoa0Bl()eky~gbMShU?z7uHMi}tKT%R1os z2P4nv2JTCd6O|xwQzR3~3{7!uFGP(K_o8fUigxp%Cn%z4q$=@caYR9XkbOUloU~QQvTchNuK-SAq1>1Z00+5t;rI80hR9+rfd4Y+ zRpPeWK%GmG*EJ5gUn`K|6~$;5hy2|%zT zfxY!G?sFWp`!vxqH}0Y%Y7J4;<*&d%D34hFS)jAQm?tjR4N&=Y@W3tT`KzGx0hr-G zpxy;(ePqe506m;y`d1)7U>9^opRkh!B(p3i8^2dQS)C3VO6jgQv{d)^*>THbPeXQC4x*nhgPA&HrxXV;< zo{up{KSut=Qt;kGpuIIX)*Cc=AGK{3xsHQoh{9dKhd6=}0Fo?b@nC!>6L+nSb7w)% zU68%F5_9Sk^x+F&c3eVTiuzd5TcN7Z5#%2iL$!pT(HB*4^iOd4wU`%uG1?{YJJk|z zCY~WD`7C%*Q#@4{w0jQfUJO8f$6NSB+B4~Tlrh>H6;%eHVyOoht20p7tuE7mup~NbcdtL0I{pnA5h%^5+=CP1z-7QL~|1q6{d27VzBPh|fZ7-|IlS-iNvDgmDDLIq~>>h*O0hzcLYnJ1`!@M?UIt=P9>A7ftCM~*+?M!$!Z>^t!ML-C*D z(=coP1ZI~6?4!3(GXWKPpp_k{2B5qBsK>d7n~j=u-=cQMHehD{fvS$P;sq1mQzdNFTP}#vYl%$H6-*jy z17ELI{CE2(@Ll4uwsr^R7}J%X$fp32XEbs`UqM}=G;EXcd^E>KV-8XVQ*-RmxNOHv zBYZBJwS!PwttHltRj8a&o%@zcVg7NCvmeI_+tJuC@Q#__9zQ_}7{=^jHUs7RDRN!A z0TZDmaAR5_u8t(f)h*|GkygVwK>h#EjWP%ktSIBF*#*wqIv zMT9-h1*9@k7#z=Me5Fq|el^Bptfz8^x!1TC>?H8yVC>)6L?Gg=;~Mbeq_$FTJ1urN zI6BzS+7N5uk-aHO1NoVC#OxI+A9Cx3j7g{neN3(=*Fz=Hi;)A7^@*bHc7fESHQp1R zPvawOL%pdUGW%IPDgbs7h6{x4Kg ztFIT*&4l1yDpygylk3Q>QSmaCZDsY#Zj@v5Sz?KlqA63@0!$q!hYIT5T#?GiH-KsW z1*$c;^;6nD`~A2kv=R@a-cBQ9nVzh5*80We#5$k_bg@5<9ShYC)zs@7^Q4V(G0#E8 zwok{l2ctPBf=xm%61ClHlsn3Y%vg8+SozpCVWYU-JJ&lhZpY4NW@Vhp`YgKubB$e+ zT0gC#_l|PXSg4l?R}5FRO2pnkJ?tNVwNjM%z+FpyFWNV>Ce$vm*mWgvE@@dxqm<_C zMYkAg7Gxr~BJZ<3xYg2RX*p_1&PC0Sw^8HZH*1bn88te826E1B)?_R3#rOe|N*(z{$1TNPNn{ZZ*T0z99Ar~>h+!5J&GZ0$*WYT_g(^P4b-W}spc zRih~kjKzD>0QrJ4N%_~l8M~oos9(C;x-W`?6yjELX^GA8ljbn99&pAs#!`S@*4|Dx zP8v0VbAB8(ge=sv>!@dI!_2tZl-F*Z&K3h9<<5@H4dB_kW+rvrvWxYI%e)+^n!e|3{dg?FgYw_jri&*7O>u>41!oP>dTHRxtc$NRv z-WF>VtrJa;?*-1nI`?!vO@Co5G^+tyRpsV$L+nSfpmEPwY2CIe0CVUVf1dYq`M3>2 zSa?tQTIuTh&{x58MKQ#?;y<9><;c<7&b`9l@(uAbfzAGkOau2`>w;ymi@2Hqai8nf zT~A_X0I&JX@W%g)*OM2?EtpR3D#j~DXBOD0!hZg_R#ZD-{A8Zu3iESOAx*K|R?sdI zp8?r_8oP(hf(&V>pR41vQ(9wG(;bSsC_d?9sgZDiKZ`mZ>w!5_Ds(y+34Ikl1*DBG zp6@(Wq*Y=Fbvia_t+g83NDa7r>=}Rkz;bE3IMw)FzZ=PnjI`2XuZow&R!T@-Wv`C? z8+jC29RD;?jW5hMwhyAVSyek7RZHIhdPPa=A7G14iTwsy_?uXpSXb0ByU)DF=3{L13xRbubRqGr6Kzz)6*1D1QMIl;>JsAQ>Le z!t8RcjLgd=nFa3NMp5IwQPJ#y3P1b!qd+$)%nwIBh9~ANb7A~E)=Qvfpw8X^pa|AM z4Ye((DfER=!{`DGiC@M1Qj{Cd-A3*EgIHIZL29TDe2y`(k+F8DAvy#ySYOm@s{#Z9 z-u=7l2;_n5);+5$_;NXMjQ9cS0NP+BK@{?#PSJj>Z|SjvF#%W&CijTT&?o3?G+w{N zR_2y51(}sbf1{c8gGJg$1^#`0jl5i*0PTNo4eJ z!7@g=UfKS^J|#30M~Q{Sg7)y(40WPf*xF%@1BS$J{CK_>YPvUq-HAiZ{0!4&Ed<7e zEM)T2p#@ezC5?r#L9z9~+sokx2)F(2z#+(%^`kkF2G;M^Wuc7t61a%Jz;^SU)yRqg zxAR@#28{rg&t=G>AEM%6b)m0t7MlBykx`LRz-qo_$+6F6UC!|P16|#JxIR>Cs1s4~ zM}zM24sf!LhShKc^P#fbU*7Ng#dk^gLU>?|Fb0K(g}0cct!AjoTocvzjzXS)Wc*`% zZ11x#DxEz8ygu*lm|=aSev1WWsjI2h!!-17LQ2bCV$NtOgM9s;%pu=Ucg0Ur`3ZX8lM|)pt zDVOq}^;JSe(v$jqy(qAe6jV+YfTm*rrz#(+N$$nEH;>!Qd6mO*HMF&(@h(jMUA5iN zC>yh|XhG}P?S7YeEXi^yVJ6?)JZ79#^J#}rMe!YW68iygJU)>Xd4@aeY5-i$YN*X} z5A~8eK{Hzb%&K~*pZhxSKbCsl^0@d0+$gnzS}SuxCNRMgTT}O?ejvA$YH4o+h4_pf zgue3{pU%C*_u+p=-L2`sH#igf9b9o~tSjm)%1UV^gerb(qYI+l^^tl<)VBXydMZ_O zUjXdTBIAA3!cE8#Wrx4B|MggD%cr(fJE8W{DpYj(8hYGQR7IV|ypNfBlDWjb#bt38 zcN-Xsqm9PK5?2BDYr-!;Ht8u$V@fj_&w{ z=^N@R$Fy-*(-r*!^D{fed%)`v=LjpUy4FkeAGNx<+)QW3b8Eaqy>Gf-b)C*0k-Z`k ziT);zmDYQ?8AgvztCnFNd++2;7iMz%NWg^~-Ij(%IZPU`>P0=XMQF zbOp}iP(7kgH5Bt3=o9mRRZ`Y>%)1gbA4Ab;YHO{Nb^-OSzxHhNJYhGom$BZZ8ug4m zSj&eAzX`hZqvVI?-xFAA_1zIyfP2b@n12~xED-B$+%m>P)*frlGS>r_>MM`WGX!=j zUeD4RaD}+zLKX31Y@gj4wOjv4IhY*sw($0fejg2_H&6HIujwhi625fbLElQy@-p*1 zYad@xcnJCWW^AXm76Dp(@XJs=?=Rl!X-iYz1 zoAbnP#mm0Gd>;W5rjaVD#j+n|6$j4PHCa+V^z`)H0*c%u)EoWSJw-o-Sbk}#^ktfM+QajM$fBjVWVu!{me#ytlx&rNS{xQ4$m1+!WB z=SV&Kb92XhVs#k3}WhhM}MVkU{*fxpwln;u(WKg!yXxkW9j-jRP$%KOU( z9@&NBheBTjC&9|LFMrvBTaxP~uT(EYQnIIH=Szt0Gty^rU#Xk8jrRf-^G9wu)0iuX z+TC-EuQb6u*7cWE)AJ*LO!ya$t9AO<+D@*B@SE=~e;M9lmWC&Uo`v64r;GPx%XiVc z*nKfR1Xh)r!bIsNdxJ~27stZt@Q5!Kv7V$}D-cX;nZLU>AneK7ma$Vh;rXdxokCtA zKl^P^3Qp4sn7pTm*OT_NubjCOpwI4+QrT!$OOObmC+uB@Nc-Cix}U;pf+v+=k&NADD^ z%YDZ85huuEENl<P5|mTE{~E{z?C&nkjzfNn%JOUv#B8GL|BI#Sa1+XGt?`EDc%V z)~FPHIOSSOt3W^hMk~YU5}gn&5-S(K2;0d{F)lRDHz|KZ|1w{}@PV9tSp&1Wu*Ry3)MwUZxXfDC*cK&_n6(jnJGsCwFCcHU#o9tPE3EUwl{k!H_+KBNt%uh}XSfFmRWTR%c#>H%ni5`YK8UU50^$YWhIFw`>UVRtWbxrIBgH*e0)M1d z&3D9jORbsS`e}LSS7Xxp6}%?Bs;ti$o%v_hiHs4>sScvH9@{z)?NtPLGd|t+zMChjSyuveF*$X`*;6W=zl@xTo=^OeyhAz@zXeR<;l^qsNB<_)ApS2~ zT{tEdmkuO$*qeewv)(X%GmGcTSL9l9r=%u11z)hi(&1&P4+~!?lvQAukrdkfB;V7J z@v|#4`Qy|(zGiYQYl!|;_><^Y_BGd5;E)e=^|kxBswAqpOENmtp*YXlZi^SX=1d+EEik0B2(0xG18int#ql9+L^>GoCiaOk<(JYovfyq~AMU!WhmHU2R3 z`m?LSJ>dv{!qd=yEby~CU+i#p-IqPHTZB5ghYHJ6jMNmlKHnq!d(K;WA?phNk8q#= zlPizW`8Uxfo}KyEi)N87YOkc93zW=1IsYT0Q}EfN(7$7}qlxW>+@*^o9h0{_D|dI^ z^OYHsJqOa7rq)U+n3$*a3s1{Qwi>$@virn@>vFug*;gH5zHXjiHwt^@G*4qu5eqY& z-66XhaFVLHz5^~qU-ywj8~bGJAdpTD>etm7(G}W#ajN&aZ;JOSJJ^+Kr5SGf%R~ik zkx)&SBk#T}|9n4CPWR?-TC_lcrUe+aZSZ*T!%!j5=f36M`ie_C8$KN@8Og^K5wD6b z__wXUBBP_N)vnV0r1Z1``G1I4R)g6!vKH8V*>oWP?6xFhq`OMuM^7i;L-8MZrQSnr z6%uleTIXX`#PaWlv$byYhn%mY)uP43M@oI+BHu2$HaO05#m59TrkUbh?oe<@Mi2d| zRXcf0ffN30@8j^rj9!@&UfxW6!&djpDMP%2ys6e)wLmyMIM#0JdY|tq77@czO&}bU z(^iEHb%XY!w8B@`_l0PE@EfNk zdPQ#MxFYXGYsJG%lILJR7pk$Pa^8PB2|@3Qo7XX>CxNo-QRw@2)jxtUD{tcrO2AX z`HUXH@Qc#V%G#~mOZWxtxogZL5m{^T3^?iBc`&}+>2c!BI;FS~?m zL{22WU@pT;yAH@hBcMaAgpI$veATl>DePSsdt&?K+6XnC}_4Yrn8Gx|1XNW+z;fkLho zF)3rfWn=bkp%NRbxE!})XW#-YNQ zkHR_HPo8P1vE;MKza+-!V&=IQubS=Md-6>y$|im5d7OFnQS~Py9!12jlbaT2%F5yw zuHr9WJdz@u)+gy@fyc=!QaZ$HXg9+}f<0n?+e5s&l6Lr}`B#SSWPI=}K0W@TrN@)+=R#|X3}$v%Z-!T7UuR8moOg6!m%F%Y zP_$j>La1VJ4c|d3ofgi&N$4i*Qm;poBCCQ$43GXNvzlMb9Aii6sag-{Am2zy@@er^ zv9)#Ed>ED^1q@D~=?VdJvo9?1pYf0QCembAbGu*cd!w> zIT80UZm4|RGdq6QJ|7K*--iu7=L zRvr!v%DqBEd9+{(DeBcw@eBds2(j!-+yOaXff|LYdOwy{M{eey-TRJ`Im9t+amd%v_nqI`X>GNr++T0BHTD~GrZic?1UmD|eMc${wB6WjTEc|YJjVJiYlZJ5?X>t;^_LhFgdH`8|vT_O<>pJ+{ z(qKBD-&oUzb`D(+eSyLKk4h)4dQZfjc`2vsX0|U zuV&lR+#SSD(oW%XE|qJ;x`CmC`ZlhNSYJDC&yP? z6sfTUd}^*OaL;<1yUc^YX`Ui<5{g*An{P#LhwGb1_1B=wj~7l$&w(*`&fKP@*+HwQ zP(*ISoa6lZL-l>FX!Icv0Suw8>=(`n)7&1{JN96!U2KMxq#|xTFaTQfGt~{?+L&Aa%&H`Y%L~B7CckL)k3oEw&ck2(B#OU zk>voX7@t@lFYRvcTEn&EPqVM{mF=0pm#Y!`6!t>DS>3!4WmTV6O?wtIVuqLylYMo) zeVL-}7qI)B23pq&*i?F{r6L9O)w&`ylGnF^<+u6CU)`_V7Mf_-Dn>)c=;imByU_Y7*?Dd$LYCTRIbrqE-DBnq%7>yM*4XujW z0eCL&!f$jOn75;tpzA~6U{#Bot{=JIg%M15_b^wH#1JVif8sxq6yUyLt3+A{M@Hs{ zwy?LkYSJ>fkNqP?Uo%_D+vG<6I)SUg9Pv?nOJbrCG(7hx4UU;}VE?NiCUca$#aFN(j z`+m4cq_&h)=L-Jel3izSxgolJrXJ=&ddYX39eb4m+*H_rUHIn-Cy@XB7LDxOl z*WOBWao4l9S!%Ft_K9d#c$=7CUYOiJ^)c)iC*TjSAJ4Y$#s|jVhL39+P^UY?hB?+4 zpq~J4++x<^S|oY__vlf4BT(%M0G+)e_Y*hTHOKvm>l^n{zN(NeG!Yg7A>gQMDlm1Q zuxniH;ycWD_2I^Oy(MCyVz5y?@_prR9O#mCiSHovLF9xfY?XH?H@xlLKrS&`8NE@H zzAgU?@0BY{yQK_a8MKp@@Y_x`E*nQ zV=~>3tesY6eVTSaFQi?AJ$Qh(qVK5E(_03<^9|AUk?PT1k-~A*qK^NYSf+iX$>tPe zw|l93Fx#7*gR0aWjq1i^t%&wn{Gi>2`+^pLz%zbto*A>|4>!ND3p*9-mkeFomLtX9rz%-IY5%MbeN8k$8(^{*|t-c^xs*)ml(kL`GUY;jRJq> z52gvz6j&1Z5&x8d7@Dih8FxW=I2d5uHFbZ${3LuY{K_6@SoojDBT{ESa4s$ZjksZ? zN?0%k8WJKa{M-??6ZTb1blb)RM0Ge?+xh#mSQHaj*tQQl>->$r5pLrL+?c5_7CehXVFqwP@>z`T^? zH{{{K$5s)=*AF(+qQIyh4+OU(%o*k&SDRB@{SuALB4$;qg4KvC$*uIHdanqV#il@> z`Pf~Q>B83#1mOBfIW@B1j)>u#@)G&8)H|s`_6zo2bV=lb6|nvUvg=pI3uC!jPy5D5 zHiKqss~gshYwTlgoNudtf#hEmy^K zDL;FLEep({Ea7W$2>XZ~fjGNlTz@TWgygKrnFI9?^es{ixw>bU$4b<6taw-V>#^ApVy zUE%NPD?SwGdF%UD*c57S2MDIUUFHd}i`y#QpL zV%`vJp&@QYv}q(BZWi7O9{z^e;w{8~T|(5^A5tYb%TveeiOsggy;Rc6 zW*^VoW${)KE{Dw&+~U8$KOg5w_nZ%mO6m+;mwh?Ca^`76wHcm>=dx1NGd1Fkq-Csm zX~!zqOW+5-hA|Bpgk>rpMgb~`jNv`n9?Ux9z(ndgG1uOfO5xcUR1 z#Rg{abM_G8<|?CVVRys0$ujKSK~%e%{4Q7Nc&SMNo8X1towU;9G)mLI`45!;Fv zTqE7KJtck)7%_kHP56zN>u-TqTzT=}dGE;6@FDg*TLBiiL++-`Y5s_?QJLzoq>geQ z{%gJfSC89*`RccNnw4Yct%ATgzQ_E)+-Cn^KSaD)dBn`HFF!~hs}@uL65C3}1JS@~ zPg(Clb`(1RSYI2(~!z%BskIz|Qsl#y2ZdTIS zqz=kN<#c3u69(UPOF6Vw^&PBt-KHaTtB`6FlnbFHs%m8)pr3ayrdx-R}qs~+xsd~qKbL; zA*SuF+Xp}TRQEHzojxg)6_kxj`V7Q`9YAc+N@!n7e1+W@>-CnT*2z_pjpW1d9bQ2^ zctJ!={*K7dFZ3yTv&iLeb+#D$Q9dJIufVoIara%*?a%kTXv^Xk^8K5CGPjoNuia7&eWuRYJ7OK6j~zBz8B`VhSzJuWW(D(V ztd=cvJGldFHSV7Nn?5VrHM&RctUM^Zsz^s~5%25zXzgR8lCe1UQ!FhsC3yCwo^GfS zb(%|XzitdRI++v9mZ@daW)~V#xVipNYx%tAvnoK@I}JM96G{sC!h=I^drx?G6@5|c zK-#K&quI6WZF8g9Locqc%&C;~VaCCiuSRc04gy>7lvq%@t_<_=@(x)Of0k5fyqwOa zaTCygcOp|G!+{?0T(~7H6gCOf`7V4taO>Yg6GBt6`(&5X8|xQ@cH(f%vjI}3RNVia z|Cd6w3LE*B4(GpanP@woN#na|2Z*vK`e4LdUV?UV_rZ>EhF*NUCkkJ#tp zd(v!RhF4YlMJHr`khR$uZH!|tv8&j_>@xl!pU-!}*A9M@FBzL@qc_vPMNGmLb&6Ua zF_njapW4)XX1qjy&rr<$qTM7N|HrwtuA)#DH=Jl3deY>IG^gX}Vv zPnwl<0r8y+vP)z)i984&f&cliR9@b|o@3u+o3X9@bNnaM%I3Q!y_7bYqs)IIpGUI8 z8^WD~TF!fFbyXMoiQPRXJszQzutN-sPvvA~Jy!5z!D_)tnddW(WF%+2h>VV8`I`E> zmg!yg!$L(02NLnPZN0D-DiP&JVV|%kQZ15}^I3Ka%$JhDH~!qS(9=12RdQ6QCGL$3 zj6BP1n)z8UGpBfhP4x7w@C8yDrd(DID!(E+xRiC$Y#Y06T}9l=g-z z&jQ!E3i{J0SCo4Jv-Juhw*NqUz%F2Ttv1`5b@jX2TN*s3Ikj>I;&~oJHhU=NR~jOI zp(!+!O2IWb7o&rstAO9t+Kd?AVXnLizh)=jcfQf7S5oVHKJwg$ulE)8a`YB35=+YO z$s2&PwO1RjeXG`2-_`~FiMCFwhnT#jMmuAV+D)w!+?7*OyQn?~_F+-6wpdDOrhLK; ze<(f|U-1p{MdY$dl2k=% z#<$?tLAPucH6nFFCxiR5t7l)&Xqj;<^l7L9Vii}&hvl2T@&MXu@7=&`We#hfYInoa z!W9gck%l?<3M9Bvd|&=IUgHJ66Mv5_i3qAvoXR&A&Ldt^7Tbt_A@-=9R#xk-)=^Iz z$Bl#fF1<=f3GIeWZv`U18R;|WI@g4MD19g&^3?FwgpG7O+VLoSGJGrcI5yqrYpf3S z3~`2FwC0v^OSpT``n`Oaz=put!23yFt`nz1R@;gg?S@(bt-$l;&kAMy`SKiib_(qK zE!3*&CAJv1Dz!^mrNF*Garb7WRTi@b>RH@`Gz0pW10@Ir87 zeJSAE?>mZTDWO-^|Iwf8*W4wTrEE5vVfkW`o=?voe=q)od6yjrWa-YxROrkd;@(ys zDy=>DJVTTh$_?0_cK}7~cxZKKR(9L$K59F4UVKMnzK?&oAdMaA|z=Sf|(m#PiZV7DiG0alNhuowaNW8nHyy|Hrej*Nq-ThU>jSm$j3B&nm{C-5842!=R zkFz@4o$JTl2WHr6V~FucU#ZWx2ilJi`&?MAEoY0YM40KN+={zDunM~a(QGR;(!J#5!*VCS;+JUB3d=*K3D8N><8|f?k$L&n~iLb8vJYg zI`38QXzxPr6n-H83EP34#f{>cB2%J~_0)WdnCFK;JG+FK*(=aN64oXwBepnJEB+Ae zloBPFEO$D4gq;txyummm9aD%V3z|)_cnC6!B#nI7~7RyBPC)e0Bjo!M%&P z`$ItA?PDj~jg5Qy+tI5LU7M?!u;G-l&X_sYI;$<(wvZdg9YvPQ5@bd#1~ROK?3j+= zzh$iZ<{yZM9|U~E>xg^Z3dGd4?9c4y=*PD4s_}EkB03DD!%l2Bwm1B=moeTGgr&kI zAyeps7^G@;n!Oh^KMt`+tr0^x+N^ILKwQsqv%7iT`o;<&KJQo9RW>7j`YpC1sIEJ- zy}4YJzsVmL)(PFj2JqItA&rrGNwtL}L5FU59vMD6@$7v~w|P9;FV+s6BlWf80o^j{Hr*`Z6$i1S*=_jk_hCn?0+jL#n1`p3MFiWudlqz_9(G-Ol-0r- zVKujI*#}{Bv=Z&nFE^N*OmVghdl2!IUgYJ}Mm)S=XU3k}*X(=9t4YGV7=w7e3ebhV z7x#mE&6XaBKB*Meo@+yhY0I_?zrkXy)a=SvCAggD}g zw{w4StC-D9E8u=U1-9=*V6+e-Uj=tLcYdxkw@}T1^`+eJTtlIk@P)KRLM)gx zANIdDuy!usH}W%Jqko?p%T)pP>DS1khD>2O?6=gUH_tuHoRD zoB3z_KEW0W@!k1Oh^4>B7UxtT03WfRV>UOi2LcJxhfKd$kvCTjarW6v6ZS_==d#?5 zm_o=f9pgR*%;q1N%FJZuAe$c%BNi;>jm6g7D(+90>=X5cIslR*B62qJg_SU) zd-X}yA}fTbz}4<6?kDJ<(>x65d@J6^zQHyHO5F~`3A!zjEL`Sv=vJfkp}K9vjkm2X z;3O-o^^onVoAu0p%}n#58A0UTF7spPplz)|)+%$qxz;+3OqEfwDrN`s9c{3-Lj7HR zUmdSnk>qGVt)fmcHXE8*-TKkIj_AIn)_D7vJq0E_HkKRP@jAx$p^Ws;X#TA#$sc)?Q0j zHT8)W)n=$)siVS!!r{=<(BI*+;cDTM;oFFs*b-b6^uQj}CekP}GTb-(ckobfH{$)`ranUK!`QbU?cHx%cwc!=vaiPJXK*$Of zjRYcd)tPD;t%NoVvH8!{yXtc7Tdf{`tH1V+c3#`3P0!wR$UVtzB!j9m&awdD1eFOHgvB=|l!0bm( zL_g*)WIYyjJx&~Czh`Ih1Nd=V2Uu+mV4a@HUl(=>zX~&jk;2Vo|XK;)yjSU76{b=$WOARo;}VA`b9PX^u2pS}o6!YbZsOosfB!3ZsN2 z(pYJLr=w?yGDW!yxqY|tqcX=c+SAS3+}qRJ%Ddk4wdWQ*g$I#Ca7J1$>4*UjO6R3o zi0}CbS!Ive&FmuhDhtC`6A~{%JD(vXE2jKhz9L@}{}4Mv-L@f8-Vz&&tECla?O-V^W{TIOE7AnWplxw3 zMc{=`#9?A%_{r+?75N>AIc_b!fhfth1Qjy)YH7K2NZKPck?Kgx#RcLL^m7xTs<2M{ zL98d&l*h;;WmOK#FXX3kTU<3;7%Qw1zJ(XQr4WMd-4rrYf2JAph&{_z=SzT7wc)?V zm^Byb3vUXIgvGFj4dXxL$MK{2dE7KuehYHz*&mUea+Y}=oarC<44_T9&oQT&65#(^ z*&XaWP{b-A(6_{TcoebIJ5bl4KVDa$dwj%3|00ZY%i*{ z{t@24LJmM7$WzaeyGnJ=d!W|*IOM1LyUB4HTRde~`w4a@2PYdCU2?ptT9zu_YtWoGL^eY3trf7^J+c+2RB z82z90bNUrM%P@@2W`Fajalx2jd}pYJ0O_@&`GxTF?_w zLsO(^{g8e~&(fFUuGf*>^BQ7%Qjm9*rWJ!{yA8DEY1$?2A1$QCw6C=9wFWr40rBZ) z^uP6FqlnQ<@2{8CU(s*s|LQTFG0I^75bWmTwXxbRb*tJJdUatfpVm}ws(*pk0d23= z7_os%wC`}Aby|`JQSc8hxSX!3TDtZ^JEfoeH1)WFv*fv$sB~MTN%xbY$Lti(n}wk7 zmN3)I2j)%lb89RrazxG5h^yx;%~YUE?lRY#ruovWg`D21b~$*s|BdalHd=xeHcwiA zSf^wAW948s*=Db|dqFo^7XL237BcA;{9hLT7P-RHfdIW1v=NNghShojF%Vr<5Ke69p|6MKiy_eoC}!0fJgF}D$qC`8a9lV7$*!T`7X;xAp^i{lC@U=E7w~5xt4D+^p^Q`- zS)89s&823@_KS%(5P5i6JSXlFx8eP)m@U2#Pl$)aYv6ZHr3O-tlp(z?zlO{#Sw0}` zlD?5L{-% zZ!4{oQ_68Aq~s`Dkt_BTSAFG~@7d(p;@Rlg?6Euv4;-_ISUT!C;rYw+w)b7{X75h# z0`Cvr0p8)>iQehn72fsUect2V+1~HGHN6eIBfMk1mRIoA@-^|5@m2Fx_cio=;2Yta z?^~L?jrDzr_a(j!zMa0kzGJ?ZzNpXVFX&J47xlm5uja4rujjAmf6dSOJ^p>ZBfjr_ z%aE=0%-6)<+TX`N&_B}unLo>~`I`sY1y1@e!1B7(|H2>g2mPjhk$;819r8>j_`mdL z_*MVwfu?~mfiD7TKuBts)IMoX;B=ryph;k4;Pb$xz{9`~fsKK-fnI@$fv;h|xgS^& z*dC}FXcj0LsDlUg70hJR6N}b z^vfLIkG^kw>wM#JtTgf)4|y+pzw|Ehj>P|t-VeO2H=p;V$M(cLN$@BM-kY8b&s|R# z*3mn#+)ehp?rH03?&;yF?|H{#D#^%5*sAnZK2sVgofTOrrTihEmp_%i!Zu&-CVwpZ z*khk_ax6#o*?Y-cbCIWzSChTT35c3_ zL`s5gcVZo}4E~AR&`PEwUWi2WCa!?pGMJEzFVUND3p#2vxFA?yiRcHWhoRtz zXa>WJiw|ZfvZ`|t`*#K3`6y(N?+Bj^*BR!_MogL$F(JS0b@q3zm_hp^`)>Owdnfxq zdx5P4682=9AAG0;_(Q*1E3At!PH^B?Ek*q7ZA%_Tf-#ow=*jn(kC~4Em$K7*)ZEWJ z3f4^<5CV%$0`%u@CZDGDuNwo5QN|~RH;|l<8ipFi!+WIBZ_@A5_tX#23-kf{ z|8)0t{d7Zh?O~sa)FtYQw3XV^+RL!EUDF=ap3)A~j?$VmZrTTsk2h;}Y5Ho0YB(A% zO`iIldYXEU+Djdv{-pY@+N8=>jZ}?QbyM|Lbx?ItWvM!H)T&{wL+}8 zr?{{9PjORm1!V`yM8zaUFBCt8ui{tJkEUZyN1Dzyoo+gc`RJyRO_5DuO)*WPri`Z4 zCLwI*5_z@!w)}>CgM5vAjC=&j5P4VmUvjRTDQ}Y1%V=_vJVYKSH_CLfPqKVjp6oHo zL)it{8QF2!QA|(DPNOc9EtX}<(q!H;fh=4WBKu3$K{i)5TeeEJLe@vtOXg^_G`?zl z*7&+Hud$-Bq_MtH+*sE5yRo{lw6O+D9~<8`K5o3*Sk(BnktbuyGGwh}DY7_Oq%24l zDD#pf%A#=2EJQQ4l?|5lmMxLZk?oLelx>l%k!?f$SGG^~pX{RSp6r_J9IopSw%(Cl zk*RSH?jY&XU@n&Zk(p%*nXjB9&ydH~gK#r-|E?h$q;sscq9_Jj;De*-bB+9yZCF#7!OwcLhs9R?t9y z7pn+Wj8zO(Y*egNWGmLAEK_X9^s3^l;=3YWQKBeR{8D^Ws1;I0E2Rh#A7hnkl#7+S zlpB?olqZ!>m3NhYlwXv56>=n@H+2_ua$U8qJM_5?`epjnh`C&%pQ+!C z)_zNWQU6>2NpIDw^ddumVWgp-VJqTVjw9~xk>Q4cVzd~>8V4D7BF6l*@gO9V_r@Sd zM&rPRu+g;4blP+f7N|l~kXZmrcQ1T%>!FF=HaD6p&7l@ANE4$hS1o5COZi{izBqYA=HmR-HmT8Z(Z?rE#H2)R56u$Kg zN3>(BW4Ys|QQPFwT#N4*{KmUKCL$`lXi%0E}L9?D>2)E@<}Zvmq%GlsdCIgxpsnT_%MC`R>vq4DK016b~? zF|1y!$*lgY39LS>Q>+~)EC3e6~Bszz*QJbJ}xa zF}h9WT;UwzyyX1HDdxQ67&tW;0nMC9E}uJ++nu|QyOx{Fy~zE_eTFeMkNboBoU7;7 za9eow=Pl=5 z<{jca=H>9d^742(o|qTNXYG0IW^ZSA0VgY|Ve?5Obe=~nEe=mO>{~rGW zU&8;%rz1v-F94)Rpy3<%bqH-&^8E!YL3=@>V3?qXV4`5KU@DfD3uX!~362U%1fK;) zL8HK3XczbiIYN=pPv|3L3LOHqpjn_5cnRskFrlX~UKlLwBkU-gDI6CY&wYi#0cd=Y>y&cZ4s54_fMT%=3izg&**%LikIl5Z1L+wXhL1t`?zL zs1be_e#9~Nh2Mk)LW@u*m0;FMsf zV3Z(LkcrYB^DI1JzMzI*&oAJA<9|T?&M(2d5O3u=e-VEbzX!iRKbfC}x0lZM=ST8Q zJOck4uY~u6_m+2&cN3oMeY{b;sk~@j3XjC&@QfY=p2dU0b9yj&Y7d9UJC7gmgdXzf z>oL+J+9S*!fqeIsTh6`5eaXFxdJ)s*+^yWU++JKBH<(N3dUM&_KrWN(&y{m* zoSU5IoaLNs&M3}IPFK!QP6(vVTF9X}h(%q`-is*W)oA}q*dy7q*gY_fV|QSa*m_RmYa1(()rn<;|KBB-NtqVrPi8&7vFFUC%+JgqdL0>Iv(4AT0hy zNOZs5u7c@nFBq?8q908L+m{s<<}$GHy$6rkMQ~otgUvY(Rs^k+()`0&=gf6}1gh}_ z_@<^flfds3?Q9D#aSCj2?qDq{aO_22p6&S8u@Y9!ZixRPIs}MAF9TBK7JB}zh{zvr zPq%lo2Othdg@g(ZfInUjtH3DROj{>ge|ViTY)&i3_SsryJ!!peU13FpoOKM4g~2Uy zVS(kh<%gvTi~tSr)|SG$`UEKS{g$DYNtOt3Q&`PZc*m+?2Y6+^V7_JE4cT$Jc`-ES zp74M~KvyP#iKfx?(Ntu*W_n;+ZQ2S8>IhgNQ%x*juk1#Oslli5cji z`frdv_v`!V2kRsCv3hUFpaQ**o~mc+6*{f%yY9E{sqUrjhVC{P6OO|AJ6#tKtF4Dl zp!3%G>4J1&I;M`JtJli4`Pz?=Qg3LpwL7&_wbLQ14%T+l_JF*QstwQvY3W*~R<3D+ zwfCLoq~?@nCCWUMWhjd@i#5YFBQ$MMVo^d+JW&90Qh!$$s*kFVK)Ri+o&hO$k$M57 zmSyUd>J{oW>ecEc>c#4@z_E2uw^N6yL)APrSM8>Ds%lkYRe|cg>W=EB>YVDd>Zs}v zq@Zn(h8C+Psm7~@s0P4;-2>8bM^$@B$Qh~>Ra;eS{A!1#L{&KOCK0L-Re~x;6{ixZ z{8XOs786uPrAFDPtW%1W70N1QDM}GaA<8G^TjdMoL*;GMJIdF}XUccVmzd^a&2{BP z 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

16GqCX)H{N7HE`}nA!4yt-`=T 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

hmptl2>FMQ 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�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�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 z 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

>UI=4U7a{$9L78rMpU- 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 (G^25*!mbakU|o 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%0A;ddg1f@{xoA66;ldhGCbAU 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%0DF6w5bUI*@U36KN*JnU^OVsNd-n)m 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

  • #T^uhhW$5K;mdY!L! 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 z zP=I^+m&@Pv!8Q6D`h@vdE)}}Bqvc7BxGkg@>_N{n7vJ1~>yW-axlpgr10KaaM}PhaJSi)B6Z+^e=xNC~5uu+YtCGDG zsa@&llj!sFL7z4cJu83XMXr-^Q2~4%Ql?mY>w{8w0Q?&XdTSw;#9W^d-Vm2(!8hFS z8C`ggMP!k=p=<76QE z0s7?h(fOE&SA4L}ny;w=z5q2$8_-H0gpomf$4@}LhaTgWe@@#jw5Rmvm!W4|gMMi} zzP%Ry-72)`OY!a^w38$`(KF|R@9%+kc?ib#nQUOjAz#q<)Y10(e7SLs^Vy#0Qjuk!xEI z)*MD|Z#x*@*2j}WEyd>?BVi2y zuK|814EB?8%O&yX7Qu4>ek;K@`H3Px3?p-!<3{8XhvPSx7LIo$e%5vdwlM{J$Gv53 zh7R8=28+dZ@VJwY%l-cd-Yy@X{KuPT>m$Z$-}(Ip9{aaA4xjNZk2S||AK_Z#xH{>* zXK|hJxbU1YXa55B)}IMw73nj09?$X14_FV0zDfRNJwwF9<+2Wl=Ze>+6UW1f>!SeM znug<<=wI6>|1*y@uPL&A$@$H|@3FZX;zji7Cp24fj{_ozw`dG)p|8MzjVom(y zg6|k|oLhaHksn-!OyfM{3upUg!6w0mV=THm>ciUk+WOk~T49!cdsG5-!p!0>{xO%1 zc&80MYmQNeUy(iIm@Mnqr}`%Q7NIt932I^fK(3w3W6k1h-|twP_gzv76b!#J*L@SlAH&PXB7 z6VIQ=Kc|JYPdYG$c@0IN4lx>5)bB|a$6qmchwnzCVcQsAl>47m!M4<*6{zX5%LPH5P_1< z)*hZ>Q$(e8{NF8&Y)DZUWS|j)l3EszcgpyEOV;T8x2y!@C=&cjWmb!`u}b>C8;`&E z{mRHsal5$up2*$x@kj2YP zzkTC4O1b~7ojC`_*gs?NM(}(|?c+!Z>2svbk#08tSpu?1N5RAW4Ib`)HXS|K47_4y zbq0F5d47L(6MD>TFy>^~Pja069QyGa@Fnk|e}9I4`!#y&cj&u6qc2W|CqbVt2mTfP zRt$o{gOFpalOxd@{H26a(6 zc$~rCr}54SygCB^?Ew67j{O|MtAFw7W%w`G;p5-MzCQG4f}X-Fp=ZL!&wc-h<#U@d z{9BQattr6c=kw2P%fVJ=`TyI*2^xxQP7G_K)j zU&5C2aoO)d(c8S`fB!1}=lkd3=kvU9%!RLS;B%gz$Jk0P>otxF&lAtod#r`WF%4T} z!ci}Rb0oo862KdE!_&0jyye5^)8p9Z;V&b6DXaes(F3I zo_n69S6C-~_51$F=81nBxNbh^H*&jp9O=XJd(Zr5>5YFIxs}{%9&N@kH~d%J&-mp9 ze#vDp#^Lw)i|6<)W1HJJUi>cO0NNcG<0?LG;+XJ^AAvEq$?KW|N5^TVD6JSH0DrA!Qwawjd?ca(AaJ<*U7evxl*

    q_lNBs_mr&`$(rr)KHDy` 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
    &Yg6k@6-_HX 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

    %Iy4iZdo5_IQQiEw0`##%2 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 literal 0 HcmV?d00001 diff --git a/assets/a_duck_quacking_as_birds_chirp_and_a_pigeon_cooing.mp3 b/assets/a_duck_quacking_as_birds_chirp_and_a_pigeon_cooing.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..71be35a12d3e97993996806d6a94175568b2761f GIT binary patch literal 15228 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

    6c2V~GvfKjpfERn&bY{FV;DMb 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

    WdXR38Bwvn9_bsNDjiadG36ExmHfdkg0_894T-` zqvKn=UsvK;rCMyD!@kscx_;$s@ia(_?(nAcZlt{Sx*Li7$C=T|>Q80y3ZP-7`-x6b z>M{yVDp_}jh%RB_<2L&HkhhOLjxXSVdz5ALo>t+>7@Bn4o~(8EoFKl8+zZGTL$Zut z#YC}TY0S?rpSKEbrSAm;)hzU|OMA1>W!djX8D$9pqp>-Rh*1eL`Lw)bFwcz3aJ5gp z!h|7v1S=(NA0>d>Y(eT9dJGyWu4#~eMR9CKI)~|Yth44ct2Nfl7Di?I?nZx;rp8Nt z1Ykp%p+U8tkI07}LdL~{32SppdgCHfVut5?QP75`h3U^mVec)QC^tJc{Vxg@#EY86>LA|y)su?g+cy9Ld_Jtqpx4`w~w_ECu+Vd zvq>v!(i$fYqE8+;#wV&$>+uOsZtN;v0C++G=Ro*wSly(VYa|VotQLb{C{AeoeIk9m z&5U(8R_3^Bz|NezAV_s?@!`56$~qw3)`_rq$me%ow{j7vfZRR zJ&&HSE_1K$9AEtNUD&O7vy86p`S3Q)C z$dGxaobP#+?3IJmV3k+Z4xFrZUJhmbfZ(3SSj~h|?ll#Ys^mCNFXx^_JfRDs=%YPS z%-}6-jY%4gK_;MwFH+YYP~L^x#Jr%0*u*yCk^Qpt=gIp8|A)dPgkDPn%X*jiXo47Q zMal%m#Ys>!)+HtGh?&*cscBdfWr%r<>y!*A6chW<R#lx_HP z-W=9(Cav4~eU})U9uG=RY4hDyMqd_NMDu{mH{B4eTMvfI`lSgeImTwEi>Nd!I!3(1 z9TTkliJ6Zfm#gJ6#2qKXh@ykE|}lcrf-5Ddu``X=fh|gJs!XYJoNHP4vp?j{6G39 z^iEhwu}I|Z0${+re2lwo+6e~(+#pM-H$y0JZsW=R-W1U@vjqZU>W~vXc~u3*w+txk zV~LQ~4h@$6%JlFlCq6Ziv}X4ruwTvQJdz3D2^H4~>#UtWTBaw!=EAzySoasEm-)J) jvb2gUKQ}KAPsRV)AId5Ni!jH&8G-`-&%X8l|3&`~3XB&k literal 0 HcmV?d00001 diff --git a/assets/bach.mp3 b/assets/bach.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..16d0da76cdae45a067c0d3360503509768fa0b34 GIT binary patch literal 160496 zcmXV0cRbbK|G%y+*|IXTw@?Vz-m-VHvy#XtE~6k@wMWK&AC@dg2zd)1=aAciAIDR$2Y7 zwD{U`_!cC2j0%kAglB3cv)&JP_Grp(*Utb{;6KdpXlstHUnM)~4T1SjjvS=u014ki5U2mss=P&61hJ*CX;o<1P^| z{2&D-loh!|t(lnnDiGq-SsrrNnMR@=-|O-W#vecLygIa{d1RkCP5${k1D32Qsd*{| zrxsdzr(j3ibb^a{cZwU#lZq!FY$&PRA^r^H_h4ojVmPd~izi`Lg{=B#QYj)5QYvOh zOP&&!N~Q9{pa&~IYQ{XUZ2DoFxBm;bXDlDjmgupB!45hzINhJvcWaS)BVNq75O7^uZY0vjPnFuka?1<7W?Dve2)H>?gLj zxnnHc3-lB@owR$v%}d9QNNe&}(Ou#_C(VYUA(fPFge+&KtPalZiU_FHrKDjx5YT;u9 zTXV+>o@4Hf$qcjlNZNOBs8MNDs9r|c^4@?(&yhS+pdjmy;-%n+VzL|w6}?jJoT!Z& zkFFL@T^neoHogbnT?1|K!rrUCbN0MjtA}`EGw-BJ~+ z*c41^y~TZ#F}mQ3l2d(q-jwH!3i zm+c>-qR0jP#wkN9$txv=rX%`QRVOz}ans6F6uWDJ-!g7YgzEhYvfeQurL)rxHK8!t zlD%YHWyrIG^_7p zQ?$HLArJ3czLQd__8LZRy_Jb3qQ9F&P&)b#A!-b|%AvcHbSf^+oq1aTj& zx>HV5-&xCC^PJngFOZ1>ofh63Bk;dM5m8B##c~BdwK}yqi9TPgA*1~E1 zpUBEyqxn`?7>noI$=Si#!O29{sxd3nOL|%*=6DGJs`RV(tLEXL8i14J6Q=1W?M!sX zGcTM>ROY?Z3&|i+jD}IPw}OS+f>t{WKl6O6tw>1x^^WeR9`;S?bTJ%*c(fJL?O@$& z(Q;W@BdE3?D1q)cQVC5z!c_y?#GN1v0O;&yP$re;AgO}#&uvY-sDA85nY(Qs*a$#2 z88a&vgp6z8vtUthP~GcRFTuTbHB#2CH`YTGR>fw_r%X4$QI3w~Ia6!2aaFaWj5|7_$>;{81B*#V)29|< ziIBXEj^*LFHl=J=UTO(kXlG4>x$LxsRop$C#~nOcxT^_JGJ-&YQ*tn;`kEXPL8)%} zNNoKwnW{G1CPJ1dYGw9b=;{2fb9+e})&bS(nafhh;~`CB9@j{yF1g9ji_%TO8hwqB zGX`sbG!Yzd5MBuZWRmI)^bU?b>hHMT>i_n9XBFY^$mOyu~NSxGU%dvD<2P1x5r=6)AXs#m-JJM?{C z$wjyw`hhUa!WXzx?%gJ?8HiA8SsGx~jeQ1CFT>x<`(hEt(pU!pP`^hNc&l#B24EkN zLycP!D1;LtUX&9yKgPqdpDW7BdsJ26e?z^j_zKh z%cOU#5M%__lm8H+gb+r0OkLeJpEU9qu~({Yp>*6cJW#b%wW_U`&Cd4n6nNZez3pkc zeLHr;dmwapWhpx{f1aB)Jhy9o%3SZ0pfmz$xjrVwR_yiF(cab`=);ZSTlE&&6M_`p_-1a;3Ncih{9VH?s^1`3Ql~$Z58=3h>?_=rnAy)r|ZMh#ZBF z*ApaF37CL*>jQO4vxlsT{#>q`s&{3c;F?vnC+`R2s*3@+1At>;0MP$^^p+~O@tNw3 zR4a*#j0Pm9{oV_>&5;0fNtu@dLVS$lBcj*Fd$YhJD302WuG;m3s1Wy??AFYrlm{2QN zm$|<+{O~WzQAI#^^ejA)jOK0>wjoZ{1xd8Q_SJ2FO(Mnj+T&_%@3E=nJn*Rx(V~wl z;koZ*>}|$u0X+gW`VLtXFkBSJ@@3=cG1$S?xErAr%|dSea`!K}y_I^CWWKugxdce^ zCTD;UQ1GLcgI5GS)Kptcei3ibb~HBJ{$zZH{51ErToYc=9{)s2PhnO%V$v+1((&e_ zu}ZT&w-V7*v5-khgzt1n-&6jhxht@{b+h`8I<8DN^!IknW}$8JR6=w{m1?^0VH*D} zjS3ro+XtzcSy8U{$Mdz6ZkUr=`W7%e-@q~dCsetAFHQGVQdEZSaH;u}alu{Gl>NsC zbo{Po69f*JF#e?;!IPJFT@ZhdW|{63pO6|IQv@M%cTor6iF=nX=CYdMQHu^S!+0a> za@+2x;BJWXYy)2gHI2+nuCLiOcvs0G0p-FWpO*;c0flY9HTjDk?@wVKvv$#NtoF+f z!m!3#2~Z!709hAyiWS2NgOs^j2{hsc;paA3>V|0;PSXHF$pww{Ta>Tn-A>U(QrkVT zD$j#;;r<~+34!j~TY4fzHypgY#gufuCGqju;Srkht8I`uE*BQ~o|X1|0FD!x=CbN9 ziE)+VClFD-TvN#^8iZ&}V00;h++~}EdF<-+Yd(Of;y)rjxEgKLiy&pO4wHtC<(WOC zJV5E#v$Va|pevV5Ya_pOSvfvR>8>2Q&CaX6k#9oltwo^U48E`P->wNh`Op+s;N!|4 zq4Kt{_@Z7D$xw{dhnF54jfep7TkUd9>z9Y$DMPtSs+Y1%+ke@FM&ewpzceASEfie2 zyz!fncWlyf_}YGoug7oFGn#(BDLT9i#-m5)-x`mA zbt*bSO|c~zTHc}a*%+Z`bwB<)>Bx*IIy(1~7dU>{>zA^L(+6fTQmlqNW=5uzU; zU!|JwBz8|j{`%*d_dQUIIi?At=`mBjF^S5#fHnU8OBANx{f+_v=`E=!l`-5K5};}Y zv;o*U0MX&X&Ckcrl`nH@_BrV*VjS2&a=?(ZMoBL3f4YmtWlz3S{`~0VCsFa9OaI+J2{KpWv)-ePw#UqDBs165sBt+7E} zvP)`MpJwOkdg>l3{xeYmgaGnic!!L1F`@ltc}2Wn4vV)`?Fz~-|7NSKEEr3Oef;Bh zc3|em;}Erv9Qv&7^UWnUn3~GzNWd%toeDc%1DI;m&Ql08B!c3;B{}W1Swv7!8olSr z)<^Ri>YVF```HV0!SR`i@>gTa?qjsJLphSrjJm{E?Fb_yV}-QRiYM31kZK1OPS4#e zrX?lrcFHBxc+XY5n$7x1A;f9F-)1A5LlZlet^71c1sV0cd7)G#MIQbG=u7FnN`r{b z*a)f9bY{L8$l6OvxKw|TKZ}iuK#EY}xLn2w=?9+D@a2ioa(wqWg{JdK>k+RmVAZ~% z;uPaB<%l3~d4y(EcbF@ar-VIzIZi$s^Yy-Tal}p2&nveTVSm@; zR6hOV5F-Ryschy=9re>}FYkv^-MfUeE4z)}(o#$Dz0)ssQE-nTCA~6-+zwai)G03q z1^WAIIs*lvxZ21>xJ@zE5`dZs6f5X)$7DvS43pET`Ao8LF;~PweqEOzE$Ne8OlA98 z+1-jF61g4X`>oCC+*C9HYez8>CV{#O`cY=5Z1BZSY&~Wj0Q{Q3;jHtL z5dPCV-Gq$`a{aBy<4L+CnYW`EbFvI5P9h=eix#WhEk=GRuDNX^F;@rU7IK13!O`IA zX)l@8@0=3UJ0Gi!?q|>$Sj=fRHz+H}HQP z5{`h*DVu&Hk4`hF9w}5xu%)QEw5o19iBv8YmB9$prPl)i;9Xi0K@e?1<0hXjEQzA# zMs!UP_+QUhRioE+KkfTD4-4azH=cde`ZYJ)QDxCSdONJ%u7fzRnwzZ$hQ8*2G(q5x zQ%jG(d0a6XK_D6lp_Mqf!6lKC)TkeKeMtKC@VlqqH3QeYR9y@D;m4SdQ`L6wFr;@M z{1X1*u*Vua4E>u3Z@Nz%SYLaqd`h|VL4aSN^vQU&;5BClBEowJa4Ap8L(T^2xp=MBg#ITac|P9bI11jYrAPa9WNmsKGoIy$nn*a(~1C6t>*`)W&+=f5@TnWzeh>ksEstjln* z3*={X-Md5ElE(@|Qh&7*Vg5YFhWlD|ySJAUTZ}kBQvkHU81OxkhJy$60BOy@l}^K( zcwc{*K9h%_0i}K9GhNAmQ|PqVAlp!)PDV@^Yq4BBek{&7eh0?o0v zaXMhwH}_-(O71TxxV0^`YphMogdWSB)gtGNH_241!DK1*DHST*A`uwgJ=CwpI&9eC zEPgx`pTLR|K)zvq&4ZF#l(*jtdtHScZtv#=YQiK4+P5 z4$_iY2gGT_rRVn)2~Z0MIDm#T0yIXgsiS3Y(zvzvhtUm9E+SeVCBiZ?F%5zST`K;j z)tB|BJyB!7&H1PzLyuq7SLm|_iruJ@qMCn*xQOzV)Q4)pJL&{L7O~IF93C$TFj@WO z!Ej2IRO6nTfAyxXpLuP`)hzPf;!Kle8Na8dY`pr`UxN0vmmuzm8oPwI25lq zoPT?`qkI0LS!1ACyO+F1m}wc!0G;Y?iu5OTvkFraM5Ve6hWYVjN@jaKl6UbL<7e@O*g#*zN02=wIWP)Kg_|IQO*(JMf zL0CJ0d!Y_+5tm&RRrQ`~_fEX-zab+?gBT>g+TM-2^`4w0>>omQ5NN*g%(v^75Hn%h z5vl6%5!zc$v4Tf`b!s2Coh86NJd$Ex5#OeLOt`P50GRSs{(hj1u-T6ODEFc@ZtP_M zG;?(5wfj-!p;1w>ThN<9)%3h+3WZTK z3Z>SXF2|rJIP(vk?QEoHHCgVDDkt5=1`YA$yD`Jhd63ODcXZCNHh3Qa20kI;-JE1- z)O$@mcc_HAgtNYi3JI8Aj(byQVJc~GiR3p&nax1{EPD(9Ld_-2|#ionLM?J&SmE--*B z1UvjjtS6~Tb*}T9I;HA^_|i9r246MlMIzh3I$t**cc1=T!^~yiK%E`*Wr@d}yDXFL ztS6;k!JE(~P|wswCC-#~75d@`z8Y!gOC$hl2NCN||Dv2mAOuq^LC8aL-@O2*G92I? zF{T-_z4@b8L9WZo>nVOsRU@L4>V(08Ah*itKloGxWvG!Aynv;H=q8`eK zuEi-{hP%F}EZGtF! zw({%J{t7bth_<|WzbD$o_ZQ>lYupEcJ^F15%|w^EE;$wNYQz#5q%|P=$C|KCZh(W zcc0vuJlo?sjIlv6xJL6}`Dtppvyh8&7o&)0IT8;R``OUoAXUDLIh|y zM-QGqZ|PaC0h^o#lZb%IA8TM&QiYCykd;nrqq3ean%LiF@Xt*_F)M0pw-fg3D~S+~ z%n4&UXDDmjFS|EHzn6D!^Aj$XT4cwImx6e?O#T-=U)JfUb3>{TNCEhtFCZ9z*%DVS z2oc?@zw|R+JKWRCM&m0AvBImB#g*a1gstyhFM##?>J!FgvT+n|RSfKKeVPtCDXF+N z*t{GYJ`rwV5lD%!>Wy{1m1wH!a|S*FX>=$?8ZR)^zBYh>j#N(<{7sl)d`AR>Phx)sBI(tK%y~5rG*pXSCZ;VG3M3u1vZzB5}Y{ ziJf5a6jBaeP$9$L{q^f(h;YIDGLjFAOCggH<3g4w@(kUpAtgBr`pjl9PjA&@Z{hl) zsdR<E2n+W50=QfAIc<63DGl#4N9hwzCxb6 zv1KP$!1v-De==+j_>JaZtgSUW(*}I|;q@#^Q~%uB{LTrm%kX*8u6pB{k7JLviFg<9ji;cbS0?F<5Yg z|ATvPu@%sdQ6(p@-iWYaM_P=);ly0F`235{K^Jc?pg{E#k>rtor2qWpi2Vef3=q4z1e-l@8pY zPtVK@)%vp#OoSi9(o2xaoy-W@$Depi`d+>%&N^HWh((-Euit$iF=Kl%;OV9G=iN2} zJ)@)}N`h*ti*8@EWUP&Iq1 zayu&x6-m<1wBP?WlD*HY5$&F>;i%{JLn*l|F)-M(y4~6@S9m|*tQLoh z=x_l{&rItc|JI(U%E&UvFaCI@5~SqT@bCM<}8ki5gBIn^kakv&N@n3=>!w-KVCzp^Rsd_ zJ|a*8NC)&l2n@vmrvD+-76DzbU)Vjkhw<>rD|9;WN@Nc-*;mq!%oeI^JF7azH#+lh zrheZIRznxHYcEx@GQ))7$7`75)9b`UYNnqlRWh~x4ts7LFkf&A-G=iRzHhYo`Ic1X zGl%jAg(@3AqP$}N6UkWR8cV|8Ax5FzCE_9DWNQF{e(eMDK_2>1)_z~X-yO5dFG|}X zVcOIM{J(cEQXJDf@LttYNq9nOFs(v-ExpHYRjBZoj$yUh{%V8U`={3o|CW4D6NsHy zS$%a)QaTeXQ4o9ncJ%03n-BisLC16k6DFm2FvAg2_TDuRwFM?i;Kl06!ae++9fYrf z?n$l|V;sPYq`~bd!Ln~{%(@%Kr=2le$%@W=zn=V5Xqs(o(DHmO%N!q$J4VP~!9M+H zPFS3vNOs}a}`wE&Eef0?Evo@d6{u85A@7l6Q5TPU;ip7Eo{fc;U!nM;K z7Ut}#!g;BWRZ7eM5Ne5lZkd=*9au!Wi*%1ERfihlhk9 zz>y@pegj-iV4n$SxVEV2)+`kM$NTiD30J1Vsp3F|fqa75Tx`{wRGj=LW6>)i+SQN% zvH<&IC*stsSSJE2Y)JG{uj^z^QRn3hK#~g!Z}XVn=MT`5nohb^jVr#WkVPh-Sa+@d z8goG(HzUEu58l{Zk0`q!3a`g$@n&R+=~8FmL|$}SEFbyPuNeRJPxF~hU_)ri z+=p#sKdF~_k$@3EGN+!DzCXD90*WA-*xu`4Py%Ry{@b{-5UOH8pY(m(2p?@K2Bl~q zB`cY-DG}#>^sW)pq9d)z*(yBDu-U|Ric5+i#SG{&=5U=WP+G*4`vPw8=@yqf3}x~x zo-pjV*d*c~Ld_89jONT9b)@4XeR$W?f)TEP_q{p*RIDAALMHy`>;`$;5KZh zQ$eL3(+$ut6diG2qN(a=@ze>F5(QraWzW@QwDjUH6JD0Oec>mU=ATN}wuvwim~!*W zGcm2pJ+<{-Hk`1bc9u)&aE<%ZX+5hQrIL!3E3#3nVS55*a6D|dRFH$uN9$Y&L@E8% z3$m)>$F2B7B2qk5NOD7jycPT&3hu(EAB8dwGjf$HWFc4Qw_kp3o0#lTl-RC6+`aq= zW91&FDNNR!EV_kd)!yolJRP;H;*6#|hmUkF3lmhP73*)@uV0Hi#}p7`J?iLXp}Jn-vdEI{iW%StEJ991|n8Q z1pgsa4}p$ZEjS%mh`R4}*Evn2g->xFp5#CCuYpO~Sf@ejeQln;@j_vbOv^FJa`V!qn`i!hsTej!r~((%}$TyN>$aj!zrF}8*r(7Tf8Z_ z?@qT%eZG{Ao+o_Vo3Xa1*Mc}f`T+F}UP|Bnk`urH_)Ckcr1rdl?uw;~G#zwum_Ncq zlHp|>f$TfwPv|_oO~>@_&ocw^kHi{0cpDQb5;NvH#C(e{)}oeg4!v>FvB-WttM;lC z1~T9^Kp(ZlYo0tzqV+BXNOZpnj|!FY%ql}< zQq!)v-jce_WHdc_io*<+q}jkmZl6eNo93>P4z;Sz=-%*Wf49#j1?i|vxR)ab;38iUdr(pw%Pcjzgp2eOAk_V8*HHyyXld>pH?)PcjR_NZ0iie z5xMRI!M8WPv=|!S3HhRTMCm0;o`D|tr|N^bF)#;CK}qyA!{uF?3ZtoxkM*&)1i}HP z@IabJv?NOJT|HULIvxM?nb+ZP-1@rr*!6pma7-;yn)(LPIXprxfkJimk+!K|PRuR% zf(d(HDLps?CSr&~2fzTstzA4wo%4ES+2{17m?n0-SkQmM0r2c-a6!1zY{%}gPQ&W5 z0{`p1_)TjSb(?^`Dud*Zf7y)kKuU+WyqB43cYdh^3V|dq`qbad?0*PFK*vlLc9EJJ zc6#@el&W7R6l$9_@adUE3hwU4b9i->N#Q$!F}hd6eb3BSyG-EAdtj%xL*@x@y5PJ% z&1X!^-8fy&|Gu=*y9N~{?dTr!e=os#2$LGZ_6<_g20yRLzBX&;I)#II=MkjHHMJ`^ z7zXGy-$Q&r+k%;Dpu(7sW~ZN8TTZ$yyabno5Y-YgZU#%=ao>{@zl`>K%OP&Bn4C_S zf;sOi`=_Rt`K)bqnbk^KYMqXLhrRBfG1o@x(N0rWJ_5hp#oiI2~?xk1mSF<(=~_wqHvV;gNg= z3~M^3*nh`r6Om=q))6FwKGVL4O~e(bi3CV@ock(f2vNyI~u1Y^-Gy;QW-ahKo@)u#ldS-K9(wv5(4- z4dD*J%ZwOzToqWtTbA;v;aTJwG-VwRX+9jr6DlBfz(0iWT5i^4arZzo%t2V8(5bE< zAz9O`LG*~$PpDotHm`ddDJe)xK*!=`{cP#QEy(@2(mhplG~|ZYvR-zjQh#Jp)V=RA zxtT@-*8*8$_D^Cys;wahx01gxCxw-0g7SQvqj(Ga8+Alh zs0B{9!j17YI`~V9A1yHgU`XOLs+{}P+OQ_yo}lo>kr+PYWG@Nw@DJE}T0TjBHs&qx zoiuE}PI4h{VhcgL?y|O8#9_WVNx~N!@{Fn5^@cA9*Fn_md<+c-7n!n%0`X4F7~&j! z2@UNHpxkq_Owi>uVER#O=@AImk9emFfvO4c+B+P2PqEX+1gvCz6#p~N`sVP2KQ8p$ zLDjn9wI2Y~1A7wZ%j%po{5DEhY2m16u=$$~*g0H)wE)0#5MXjZtGSk(n z*q2^IqfXwTtF26d^~-Q-<*_1Fxji?P== z&Ll&-!k%>cJ_03XV3rN<+52J~L0Q24QHb@e??o6-I}2l= z;QMz^Ca+y<$b0`Zf3IFeV1S6qRW0mNltHCA{}y;`fubj%XTnm!Pp^T!e@wutKL30i z$En6U)ow6ooc1%=8J8yq!Fvl$ZycALn`bghT5|7Pso)}<7$*Gp-g?HVJyC(y9&Q(A z%CSoM8UA+^XrM{*c-U%6OeO92KMIXNpcAGGo=DAoiv)!qN;ORhZ#3=W+M55`3W=Sb z6&{W)62*{C_Sq~m(D)vgh@#<2h~q;rjKx)|s_{a&Yu@?{Wm|s^D4*mH;#z!fo)q<@ zYEJ~`iK&x{#NryANRs)#?v@NWV!%mb%E_7^4{lB3%1uSEM=2bEg#o~TD8JRfEB|Cx z@_lR^vjgdPo$0$N-uw)CoB6Gco=?$Py91Wfe7)~uL?|tua$CpqHE&gKkbRxZ>gQ#A zUr95U*o?ls;rb#hoapH!+RLmy` zm)e|r;XCOuB`ZIx_rUHuO(L2Eci#FJZ>jcqLJD4PeI}E13-sSI_BvkR-W}4?%mVZ! zFZruDO|+#2>sq`lczC)Aekp*qmSk=xL;XgcuS2(%k$2$^DzZ+0m)b;<4$H_0a8sn}q=~ zEjlI;A=(w`Lnx_|x!croN&63>HOYRu?Ow~+DzbpDRqa>|9r{=A>u9HIX9yU&{8WP zN8L6gH-wOJPx;g_{5PGZ8ngS-VjHqjujI;beJnOY+8ETYiy$2d?GV#ze+Zk4f9;&i ztlt9%AZj`EI?|quQ?AHm!|61{37?J8qRuM3GzD$sLf;vY1ChxrCU>MH9N?Iqd>wCotvscppFb;Y)3!eEtaq z)S;;BTA1FNZ{tTAUI>J@yg-)D`x#4bl3m7j!X2^mJ3wqw28=)&>TZ2(&8|DUVT1Pw zV!d@1^9XuG?qW|64MxLwT{GkakoN%o9~YXKbIXFGj3@Mr$`pf-Q7|A}K*^@7PWOGn zs&dtHNs@FTt%HC^BdfeOJlj%qZ^iYzkS_KiX5;q^RdgL@G~=1NaZY3*OD(*jQH!&H zz8RQ>*p9xc*8PXj5n_T@T(Q{Gxgww-Ly&(OVMd~q=uVZ*@GM{ zO8Ch#XA6cEuL@?#@6>revuggb#g4zW#knii{Zplvf?tSZE%7b=jWy}`X^(g}goqgb z$I236u0?GFN#cfg37>V+e|hPpurDX(2j~{usZB2(`hgkLvlWc=I6r$MtBLB~UB`QR zm>bdFKUmEFpie_#pI8yqv{Fb%;$ZyTb|fB&kR+ zHW`qoqmX!nT-PDcod@&3=@>93dJ0&nI{)O{VEYD{lk~J2WIJALtK@_(tP9{L^T_bc zHrc*VfTfEgifIma5+g*$_=lOE~_Pf)kTSqQXT)A9%Zg z-@aDI!Mv+#MW{Z=XDrY8w;B8ne?jsxOh#~S`XJsm!CtxD@INo%9>KoVlGSN!yUd*$z-4m9locfY&+b!G}dnwfDZn1e-LdyieB0~x!&#?rp2EE|=QKF}Ve)TEVsvZ+q`UnR*>9;&G89TK|K8eTDM+U}Ma zAY%IU=f>pWYT4Q;LD}ky5Bg9M`n~=8#dTw)QTdquUn6i-*D1lnellaq|;tzP(txk%wcVu!)QiDG_mK#`;r=B39NEa zi3#G|7inD53hn_Re16D3>03CQp!sog@Fg{&+G8%Ln0W4r+%keK#Quj$)4`virh7li zN*^=iEHpy|QaC5_-~UjTs;*^|9H%&jpS`3W9T)~DW4M-9ThK_2b-*G{2K(~sNKZ_l z^AmyXlhi!b%}u8OoLX>2Lm+BaZGF*(pAyE25>;-N!HDW0uLQnz=MRcM8~imLo(QqQ zWMx@?Q4e~O+xJBEK6750F;$6TW%KU1+i@h{JuG||(&c(&uMIoNM`8*eH(@5rZ~o)Z zHUzq1GGivG8Q|^ReV|N{oFJuXR{ieS9#-?GPA0=f>fDM4ULqyvWPuYQD zuko7E*m&BQ^V>{afG_z~^IdAi$9-CgEMf6OlZ3F)g4+bA;L^hIPamFoQ1T#P21nrq zf8xYRqvYQ0fOWa>n@*o7w=SO*quHOl7K&kJ4Z8W>L)xBi>Ha!VzErlo zpBZiU_w)z56ZA>j_knUYHtJ7I`ncQDB5)OTIHq%cI)cZr9rLpjak5-mRAJ{i3Uyw6 zF=00BEqyfzJ?NhD(vG~A#919cDmqxw<63EXCKSkvbm9Q1F0zXgQtde ziYAichxCvg$)%f3Zj{@A!RHsCA|+nsu%m<>zwelZ)wqH8fA_O0mTYltcX3gk{}4h( z5b~QE&jgsibN8<6#cR0)H*Krxc4OMqTG6(%I({YD7We#v4W6ejlGgT|hd)9hwX)d? z5`rQH3cvYTC+_n^OjHGWDUVd$x;{7X#8t2H*ZZ^SYjStzgZ&$(;;bpk570#~=3U$O z3TZzF0iYnP3r3>Xn%VKPEddwXyZB(Xn?@@tBPco&UrLC-y6(fHF79Bx*EDuBjDajC zdoA9bk;$=b&A)#0$440?@66NHphhR3yN010Wv}Dq@ouXgA{ifatdlwsIcc)fXpVLC zAqN^XL71C&r+++ToauV|Q;w+2jXX(Y0U!->Xd|Mz$#*(Ec3jzfN({f{&9+^$%r{JV z=OO-K+1(>D$slu^vxZ%Rh?4!a8moZ`rzR2neT8d-(~e3N3m0Vm2!NYl4si-50Y)X| zs%!h^XN^blMj@YGA4^|4L=~fvjw29=iXOiSA?#r37YQ!1ZQOuO=iyMH{*r-T!KOZ? zN^*VUjORzz*x6t$+sE7y61DKXv4GV=}*Y z-E7v;%htu@7M3L2e#7B*;iv)@UQR?q zUo*gWCyn9f`D@=;m9Jo2J90~eI#RSxT@0*;Hb2Xl3|yCK8jO)dsk?D z32>u6M4JsK=ferW+khJS%IFfE#o2NS@gw^HyT|Tj3xly+YnwV^JjID(FDE`&>i>xM zo4@+V;B7D@9n%(8K*6P-FJ{nG5L9eFtYfMbZ!HaKreMeKGV>}rZJBI||LUS@pDYA+ zqL*={P_7qsn$z~sr%6o7Bb*Hl-yL`<^6!kU?FGt9x*-54w4kB784lc@LScFx6zVVU1wQ(d{7WZ`cVerP$$>UlOcg?M=}aLHV^z)k!^Xfpy@U@|=; zc5l|kGlAcm-ZH7O{NLF2F|^G)Fs8$@S{q-J094g{v&~0SdoaTdtHs?qjfI^SKA$)i zpodDP6Wtdd2sVoIp}H3Kwc1frb{$^sX+<>*kb4Sw z=z7tyuHl(>nXQGJEw%MV?WB-SEp4;ds(!uIa2O@57a?pUf!ThfKF@|{)StWO*6{=Z z!@KxN4Ysv8@VB|#cO1SW$$+0kV1}r~_{WL4tj9fKG13jZkl*o@-saCK-c}M)f0q`r z8q_@reat~g2DM+k9ypXaHt>lG>G3szcLM% z3WuJO*IB)s^;_au+BU0m!;cPoPChM{Innil(*Kn^P`;vYiG5NN%u>7In=q+LSD z4=JQhf~K~SLEHOu4}>C26V5DC!fDkL4$_u7I-N;OhhMu82LgZ$fG*M^t5Hq3 zndeWcKbu`B)vF~j$emBdul>z`)HU%hpFHI$)xVZ zzg^pecV3Rc!xF}zBc#63Up{O&;-W|}WSi&aM%)&s;;G;BN}j|8K zb`=$jkyaivVzCek*K7RD2C*JD=!aEDKicG4f#1(B{!43JwYT1xh~D>NTf;dn-AS#Y zs0Pc(J<<@cCkBQOdeDV-o5VAGw;m4`wXUJfTe--%OrkjUJ1Q2p^iwI-zVqUz5{q2e z9}Sk}%1gDaaEzsFoar{)jvXNFc&+Nen)%rle%ve4P(y+D@J`9cKqi>P2WQ+Z-01`; zOPSKkVdbgps4+n+YSh%yu;-Oz=XjU2zy>SxIwwo?|4VffGJd)@(=kDuf#c%2&ztxB}S;mCe3%gZW z+MQ%?9;7=0!GnI)T3RcIQ)X|w|K!NGnpqHEEr@L{X%3;WU_L`LCGu5ufV--kcIO3|%h_)tv%F473@eM9K?T0tQwtvPQuV61QAJ9q?a3$X&qp`g zaCYJ<5q_W~?RpFH3+=OKA-ENaqOqmbar+Z}aT@=Qq&r>L+gIT`BT}P+AY9iw2nCy) zRRi0mC@dU+OlmN5`#)_%LsPv5l-}D%9RIODEh#9Nlqx%Xt5~KY&&eDg+xFoOca3fW znTWV7p{d~gLWES*W@=Fq(zS#QFAnd4O?(mp=$N&Mz-PR<53BoJ6&_Fnu+VM5n^Lv= z+FIiQ$JEW|rR9#=G*^^ymj*YewhAtVYpW+e|1|Z?3*|2d>G#|Q#GJ;%3>mCcb|{+W z`bHHjzo&LnWDNuq`%XWJn)>pUh4z%44^g7_zj3+k2trDWdCvp;01rI{JpXGQ#ba4aV#2e!XgEX!wHU2ZEV`1RARBe7!#^x`k$+iE)8Y~x(B*}u=7 z7!#zFF>;DJng@?oyF0s%ll4Zf!>|5moO9&ZX+En(>Piz)erg1JN4`n1;H!7-uF^;Z z)0p8>pjROb7f^ zgc~(j_og7rj1%jgyK+PN-byQuM>%~>l9t^ZN!a@Q$7Z?=b&^y#+s-vnbnUhW*z@ga zq>IQdNvRIE76>`oOa)-H&uo|bBmN28B0II2>td&wPm^uU%cp9h{ee`dD%^OO7DJQJ zxW^|vOAI|03Hffp!`%gu9CO%FP8M%TbCwN8CxR7xw|eB?xFsMC@7sdE|9ZcB?n7VO zw|kN;*1=pPyJW+G+@})T*y#BG)Fa>grrICU`*nK^=b!13c?o^+OFMJd3u|BYF0k@o zN?K^vPs`hi4{_-`DnCiIK4`4D;9R@b#GvtyLr4f=oT>GmL`Il%onE6;Ra2rLlXgQD z6@j6UAl{erh!qoQsmA;?z3VmqtXv2z4Sw>G(CD1}^B+%?pjtT!WtZCG>{C`BgJ5*A zga|&$Jz7c4tIKHZSpi)Hi7o2>l*?E$nDM&wqz&mh%>$jGo zOFFfKit(+NUEpXZiu>(JPS#=^=DbNtmMG~Jw(3WJiv?F|{T4swmP$pKAju|QD=dlWjgapo#(HmMKz#E{G&ys{nmfU{i@?@%fm2UQ_;j9(D z;lOD!y2j;5RTh&d}Vn&%P(4}!Ky2&=iba-+`ul*Zt1~@6W+%d1) zqt4P~dYx_99QZ2i_%)tO_lX=;icpZF)%D8%2IO^!UL~huEiQeTgKxVEbF?Jz1q6I9 z<(=W5e3NFvBtjPjDFsH=uOry6u&{r52+tvysqOB8rQ$Om)<&ng_(UIF{J30w$=}TIB*jozZ>f{6ChyGA_#Z`Fcs|Zj=V;?(Xgm5s+?>265@`lKj%$ zU6Rt>g2aj-(!C(H_p|=~&zpU@pS}0oGuO?b>qlShlniv>A?pshuVawa0=;lCHw=P z!QV;!!PZuutvI5~gJu`d#AsHUCIhOL(lb~^(^11dq5^j@Civ}EbWw;K*ojFipE}AD z7)+(3PWCWkR$d5|F&`eRFq`N<@YKWkx3rFSS35 zaTj^1*?@(IPs-nvZ|I=nVhIWVjc2L(UnQF4Bg4KZzi0ZK^D~S^!gniM6{U5c z7=b0K8=ZOAhbsmQ1E5H6;oSfn3l?awskPo!4%-Pt4A2E0YlOwgeui*&Jl8MmyYf>L zRF;GdCFOZWhd8{=_}#Bps+-c&zqmz@d>u`n=Z$zAg%CQk@w=o7ENgk(>sUAF-=ddE zEBuxOsOl)IG0m+685)WI=QJBXK0cfMRK)!cp`Cxz2fbxHae1SusW>SD`FIwKe?k&` zjfT3m+v>OvH~o;C$WX0v{iErZ5^YZ`fEorL><XbL3i_}fzgN9MzbDx+jm1la>;)uC9v2XXgPxjmj-l>cC}O}0U=eY1al#Bf>IC3q zH1K@Ced1ob&x8}Tt{g}73F8PGYw00v=4tvSS;m`{9@fpvVGtB>DDDIOy#u2OdG9nR zX4i~Yg-i*vJf;|H%0E)YfWuyd3wUz#^uTwdAh2Rx*rUPHy}p!RsT)Z-Z={n4JLT`@ ziLS1h(04y=u#R(-nB-T+D{Fqb7226(A;^)%x?iwC$L}Z;MFe|H_rqd``hg#YQ^oHO zG4a}|t2g>A9ue&z@O7U*VE7FBA3|p#NCifVCp`KdcB(xW|F~^zB^`JS;k&S~dEYc# zyTZ$gjL(Igfc}Vf9$GPC@;6WIa+MD8t#u2kfP`sL$nL{9!NI=OGe3H65AMuhSVG&( zy?{<{Hd5xmLTW>exXQYP6b$%F^Qr%k_!Yd;0Dzxe8h3_FOeDD6W4%<7ap`2*O=-#H zG^jF33V9NSq@fIMC--4yTr-=>s7>!?WG(bgxDJ&};>E39dcptgkPV0w$X>{@l7CHF zA5rwsOnkZ3_dP9tEtAm-Qm49yQa!HbAnldhf6vzf6yRYx003){Tg?|uV8ks_&IK=m zm2-t;-@t22a~xBM$I=Z=zlZI3WMT2avtHpnoz*>X4nBSrQU2W;V@ht~Ge(ca^^=3h z?Hf#tS@=;Y6Qs6qRTX{PCkU?^R(8fVL-8>GsG7P_z-FrEB=L)Y%Ijp)BAd+|THE0W~<~Kw!-EO{j zLL$ma7l2+cF0SznxcYxXaCkq|u4}k^;F@5;syb^`6PVy*p?6B&L7Tu*1BDO4ZwdjR z1fGyY{Z_A~Ue3ei9T3A+`q%dp?Hj&Q=x)s}7_gSs8aDN+D11yLX|4orJfE*p;6mrg~$PQ1U=?cAA81Uwhg;~4+m-ZKhq_Hc|ujX(_ zFm~n|l9(b5-$if_2F}nw0k^EIc-s6$yhzvr%MG%{Rg{jB_^dZuyV|*z6)yK&ZL&>x zs6AUmC-&jP>o6z8l3HM-G+iJ4G&4IMAt>z>n4+3s)SW|%>wVDxw8Q3sEVwup&ixGl zKt1ro68Mq&FNO|4h zqrW%6ihOBABwG0OPm5EfZ?oBRBb8q855Hf^fgJH7;EUWPOlh(T8z()Rg|}0~(#VsQ zFK&t1+l|r=o$x4{3x2ailIB>zXuc@x0(k=OS02zcA9)qRZf0<<+8s%Iffp_mIsZ0w z77ZO7>GujoOD%%nJX^ttkSu-kVG157?TL9oU zs_|<=D`eV_{yKG)YS^*6q$LS~{)}oSoeIK^&IN4l2yYrzA3;0JG?q6jT4~?9aQO%J zM-6XX{(26;Pp0r-un`;0=RRBTBQ=1I=pWKrJTh12&KboLJr&L5{-Oki8hDTp*rr*k zOjQ^7#A2_!LF{T&sROMUe0jK9BhNUYOU^{D=$S>OE3z#?H9=8bnx}{>!Rqf=*!5V% zca|Rv{a?p=9)d(>zW7965aQ^R8~lN(ArV@tSI6JE7}9XUf0q>qz{sRtzz>Cw1wba8 zOREMSUQ<6WOF@CD+(T{NVPu-LrZBcbQuV})1XQB`!fq=A2C#nVTW)LOaXTxWq&D=- zgoNTVW|zx`e(K;0QP-e;Zv4I=4VOs`y29le%K&g){?c3f{d*?v`etQ6@N60&(kfa! zG-_s=?{0PEXgi+gRFdQ>qIaGyIm2cAF0-(QwJh=>Xi>w|@`$#=E+Vjb^otG=<)iXg zBaPKZl|yXcW#Dr5OZU|85l>ett2|K@d^+$ZzzRrgye+87Q8^csh9<%;UPwDf1Lz_( z=e56OZ!_YLTCUY>JjkJCsj2VVkvY;8;SI6N$n}vPqBc;XqM)oz3%-rn6)At&O5Lea zeUWAdo`QqIfWZvPPPC5 zjEJ2-2CLZWv&s4B!{;pEZJ=2Cr!69yjL6ovn=8yJl2yl2u6kKwVPc=OGbU`6q6*mb z97>yN{8H6J(=$~KHT3Z@3|{9JsQ{Ubz`*xEuq|1$->8_xobMj7n749jhJ}gPL_J5o zL%~;=N4w_Cw6e1FzuTnoa~NptdCe;sO(Z@kyx?_VmO70sQ=Ln-<~qK37L6yvmt@D``@rr zfi1{w8QgC?aET<6mS}WYub5d}#J~)$s)A)=dvW(l!5~l^E{GR?>XTt{$^45iV7htw zFUvtdNH{vnC)oP(CdWOqA6~h{2dh|A7HD57RUNbBV0_$W03UO#LC)c&Ju!L_A|4ae z%Y}7K&J&mNbfYG0jhj5rI-L*&t4AN7zB%}_H^O9Ip@g9Kc*qrr6`dALvCi|0Z6FFf zDOeyvV9fBC>4ecxE({-z5&G17`Wydecfbb$nB4*V8WOCLX);2#*BJ~bYtoN6D(Z*^ zDOz!4%f2Nfzmgc#cGYE%Ec8t)sR=^+>@kkdIvA~)^J4norGRW}_!KeTOmi$>SQh-S zNC%4H@AS?rkRmnPyYZvn=T$KLUDPd-&I92MB{S@U4T--EiF`S5M~YO%G}WH}xVf-+ z{v%dSRu&_C+kFY!m`8nzMZ-zHM_R_%38>BV{#sMqjyewqLoZk;W>_T4TYyp#m<5{t zV}7XU*3*y^Um_V&Z|;UK>E5npvQt!7RBJj>los`M&+vVloA?l&8P&Eq!b_Ck$!$^5eV^0 z=lcn+)2H{CxqVhOF7a0?dX?p-_*tw@J~1_PmCeVj;6i&K8vLS#5~fX~&R9s6PHdNi zx?)c4m=n)%*kb&0ek1r8pOhe}j6krq4MjBW3i~hX)4D$5ZxmSCtEmZm^$e7M|J@$= z7x-UkmH9vr&#GBA&YHesP&ycqzZJ3;k%g1uo@MA4pEjVMw24>9YiP&PDn_&ONp`!5Z7$^pk<@*Xm zdj|Rp9LG>hvsI)RfqGB~zYu$P@IN356tAjyL7I9ayj?}Z`0iH=$LrK zVyXvT%f%!hD5?Cbw$rNFZtqH2{~Z;Nc1+PUC}ipH`+1bfJ)1sL25OY>BC%M9_WOc9 z{PCMkwc!Ph!pkahw%M=b&GDyU-QP4$%uZfe!<+bz;A02?e?X=iqKPDl32)gCe+ZB# z8py8G;QiJ{ zL-J!TmL0nmFi_mD3|GmH1)UvQtUWuyzllhwyPRUgT>W1N!Hex&h51^x{37Gpo->K^ zqyzyaxHHy0Pjj1-PxgPjst4SE1IiCXn|s0VVw+STB6~!g8ACb+d(o36Uz(my(2vLj z(|9-71XqVhi(19%&^+Pn=>Y2i7PgfUl2tz&;SsI&Vl83T_ni&(IyevBLGq!*4!pPn zjqqeXP=BEu^t;v_=A~biCTXu{iVK5+iYF)(O6=m5A_!cytrE6VmL9CoNS94dk%ozC zF}%Zsp1mZwRtSd)OACA`{$r3)76=AwK+0=uXb!gF`u+>J-H*j%Do_=aVKMf8mFUIc z1dBHEU@rO$%8Z0O7=rbRdDNJZ{rHG(?=jq*yfiD%S;VcRFZe{l*%J5HyB;@7v%R)v zbBZI1 zLO1e9t`19o=o_PUGM>tuFLsbN>9C&`eF&7-w{D)-^&SMScRJ>6g4ZcE8|sBfLC4W% z?&4tmom$A@nB%@yUGUgg`?718Xm~M0H=h zfs$TjJMp3?^RYnGe|%gj34RN8H+PNaQnmY8+3s8*rT&=8}?-?l83(=$Y3yOY@y2(_#PNj zInB-g1dAV|z5HlH4{ij?2btY579vfKM#|LaeLvs_Dpd!d^Bh2|(XUnXvwt*O^uu^u z=&E4~qdQs?8xFgKfEUW>MUMDnC?@zjpnZSn-I8m(Q`tgWBv~Q#82oHP^hl627H%~l zAiN@snjtlQg=E*K1r6r>@-2HUiSYy86{s?G5SP=7 zMj)P*5oC#%LNkgQtt2g-6fWhD?1?XHI7DqsvpuL!^w+oMXI)AyXnt+j|KyljVb)Gs zmuBSXR%w|=qgz^dd9Autk(t9!eO6U>N+xazt|@{e1Sd`@3{6h3%|DsPi6&Yd8zw-F zj4G>1Q@xl^`Jq%(;1y2lUJ*JFSN)nL4HT|=-9CitCqIUN)9ymzPyh6A={p80!A<5aAax^XD0U z{^@(#jS6%TK(!3930S7$*f}XIvl+NdOi#w@G5ljIl*e;3rVdq+!_ohY~}~ z)wSi_7w5_f(4Ox7wWh$|UFkaVU8c8U^C5pcUi7kjs;6eIt*aiCKM|QdwgLr_wSO$Nwk=n*$IMy_n9E4*O4Y_;^SXBPrhhMB}ut zHdLeP-v*x3_;vDmvbWK+Mv$_lqRhjfN#tjhaaKGe6j4L7i3#f1W>6bfH*)KJ6_>~- z?cdjJihWT!nHlo^K^b$o$D(*PPyIEvvQ+^xt)sAph^xDzG84k}cs>BIuo8ahOu+`f zhk(W7d!fvzaXO5v_a=(P82ZE9ee7DC#PFWQDpXECMU9oUM0EB!Gm;|17xQ5DO2+%4 zJyB_toLqO+w@4@?=Igo9F&Z*Qqn8ybVv_6X6*S{%!zaA^DcBv5Zu`%38?^xMCgYHj zQR@l3M||&_XL4Hc@N0MIC?67g~^FQb&T8VraWmg*>+5=j^V}Z!vSJef3B0 zFK2%%jhpms>+3O3BIOtieJYKd)f=uelax;vkUL6>dzXOlrq$pU8RQ7&AY%c~GrQLSK^TLV?l$l}jx z;J3x>Uj_)2>u#&c!E9Dhc!NUMc4wEt?OzO?h9LRs89QSuoI2K+nmS?R$M?Z$IRQPL z_w+0*HB=r(@Xg4`my3YHyCg;;%@^R&-y;M%?D7qF2KC+rIR1iEVoZ%y?F;z5e&Q_1J8}{g{Ti^OIdGO zt!8uTl^3Yd@nJb(2Xnh|*((X6D8U61+~r5P;^I^znJ7|{4i0A~mHf)KzvTOG=y6Ny zbeWDa7EE55D(KRQ%7YZlp~?aMX-t}v?{qH!6JS%BP{nI{dpR-lrXd&+(G7A0#Gwas z#so0jC)M91ZZv{On@WesW$eQ>=|$=Bnq# zO0m0DUEh1~>+Tz%2NyMZiZGT5KUJF&`~+U0(z0EsqG|-wdIbemLcgtPCUwe~Zlpu3 zaIDTm{Oayu4Bl7-Wf6`VLsppNPH?S4=KKBJ8qAz7+H;0Ls$ICCrQG@2f%mbG=0ChF z$+D5@6y!4OB0(&J`ddtN+0@uP_Q`(;?S~-#(pf#h)%7-0RSmSQ2~6}fx2}`EY0h9i zd&#O{;*&dOLuQeL04EHvDprEZCV;1rEt5~+_tVY(i-h9XU zlaAQZ+{q4Ip1As_GoG6pkbp88#-^kpdI(Kg8o=#&tW-^&$CSh-1ZU=CBxmP{KJTQ% zE57Rfqf+JRr*-EyD4PE%z+D)a5VUF1@KN!)Hu77hI^>7H7Y8fn3*iY~zt8yV7q?XQ ztJZNZiCL2Zm@jylK~oH1MWZZwZ;Rxdi^!izZFU~3vXPVYWtnN&vOOL0^wLhp9tnBA z-@Jd>fmbMiY&Sn*DJAPK1>?&B^*1%ynE@{VJh zVn|_7?*8>{L7bOffwx0t7OY~}k{Ye?ZOdw>6}|{=)f~am zi;`faA_INCmN&Wv*UEe4mqJs#o z)Jva}0)y4=z_pZ9=i88Ffp({DI$Ac1@5!-dPgH=PxY^mUh5%P>X5q`3)SVDOcUcQM zQEcccAHd8AM^Hjbr4iIn|8GS-+h%pFiGx6?DZ7kqK=1Gk@@-U(LNMOSV{2)JBz4IBS zd9~%UEo%CW4>?BoZ16g4y0gC2*U)oio1tta5SRuEyv1Dho2S0{UU4puLIU>&te_n< z0zVIYw?is)N9F?fz!&fxBmnL*0k5{mANS6~0DfvV`N)v!5>Ajj!sYdc!D^qKPw<2L2VgDSmUQ&21}#<#|$s%1wW6%2I4C8k&9$~CQLC5d;gXkJ3^e< z3`6#1+%;i8ky%ogP3(udi4dVIi~=AkOsh~CFG`Y$MSqs_{vC$bU$%zFlR{XYgn(Oo z3wI-+R_a9u=(^-}7r)z|2{_En*Ji_Es;q_QmGXhdnyhz}CH%Cyj}wc;quTOXd@%&P zK9(PxcXsj2h#IF%ihur9gXWq!7e1_pHGjKKh{Nvewn(LD4P^sh_~*2oD`BNY1Q7W8 zf%6R{lM6_a>d)jb{511_S&lCA-8$Sub4K?l5bma6n9%N}aK@=ClizUEp3O=(B<)v^ z&y<_Ylfb{8^8WKZ8^<;4!3wG@nzmiHa6ip!Pc9zpIWj@CwY7YTLd>K}o2qrY)RM16 zAJu#8V%H=?BG33q**Rzj=>Z+XtRNERj@Bo1&!?aExE}mNx zf2N~@WZmK36$^+jqjCvx>w(=K4fho;Sh6%u(-SUHUPu+!r)hB3`VZD0b%hZ7=7zSU zxM5u2QA`VQ9^Qf{=FRbPZF}Rd?iBW zFI~5va#fxgrj%8`EEk0DGiBPo>_CRSw!5m0Q=yNbfLGxNmOhFn;%?kZ$nZ_G)7zEo zG@(uan)Ln2%`ym(Ijy}I*jXlcluS%7KCh{&k9YF^N@1IVr|Y1K_$~%d=I_rWxsa%S zypYs3P#OtCL%KL>YGrM>hxaEY@i z5Q-?~b0cYn=yQa+l6r!$0%tMVj3V0*(thdC^z3l)ZzxK;*yCx>EK-&r3;TK593u82 z@IrBziBkUJvxH(y7uMA8-sqT}Zl^D1Y^d~~x?8%Mlq@R1TGcAbeXj_jNLyq;+S-9nF0kD9YW0|CVg zSajB*;@-rwJnFFXBBcg!&hgy-F%o>tDh2bqo$5SW+j*Hb*c-HUj|s_<#UK?iAcq)+ z{~1$1mA18F*y?PXT>*s=WSw%TBkO@mGrZJhWL~{>zg?mTP0$7k9>2&(;gke0mHXUM z!;0^AG!`gNmRsTHDd7XDNz!y`OT?#M?|hrNVaATjv>AMAs&`rVn*QB-U#emvm-1^C z(1|+}705&ZFiM|ytiW&kl%PX<9rEjB*k(O@CeZJQL9br>+KRYeR zC}CB0Pwn52(##X5t zEtkW9oHj?0?xcTVnJ|Sw=!RYKAc6W;tmmB><%k%En;S}+xzO~z0_Xq{kDJx3 zzK`^_)@zj8AQ)z02(JU}9yv2^|JHj|tB!BzI9T^4pE$LXn=ju|LD3@c?}ph={QH;C zd{ji8r~GWTrOY8mV|C1oGt2^pDwnZ-Igx)`4BB#d_i!$i(}8MOnQ0sF;L513t&!zq z%pvGrzz!_Af+64UBueq(%JLVG=#Y)`DQoEPR0h=`QB5pGAv=t|YOm}G@f+19OhPPY zsuKtnBL52j{I{g+@cUaM+TN(;hI9o0i?_w&X~sn0YglUsUc*jL)tKZ!Zag15iu-03Z=g<6BlBnmukufTDx_uT%tNr>1nwy}k{ep`W z>61-Zyb~QxgXmK8cYBAo=o3$(*4~XRGTx{xxuUfnulQ+h z2Y~Zo&+8G3=WD8jnOzS?n`}uv9lif*F3jaaGjC5~$S!P?hzLb+P$IoY5Lw8G`wa-4 z^T;S)RUK6n*c##?A|)9GBPcju`G>P%;EP^arg_f}O$1AA)0~p5a&;z1I-4sDA}K%) zEzW-=^t~}HLs|o0zlAS@vqB7&yzRG>=Vhv_Dp0GC@bxFr%{&BFE2}>(@Xeaf^cHc3 zBX$k{J(a_p42jcCIRn;p*B**0dG#8MGb9k;JC%=1ibjCWn1YhEc9Q`a4%`q(IYr`4 zdn*bBWV@&I1pFM$3$S7coXL7%(ax4ocKietebIc!ZiD}bZEUSdv}^i^QzsBZ;}lU9 zhDFKy>)X}u6-%5_NWBURMI8!fwms>nFEAf5~7npOazwhkB z^H~i{#+ZU5B>xW~omIy(gM9N>PTP{NV&ga9ZVCcAA|IKL`Jp7gYKV}tBbagUR${SL zJhT-IV`JluYCezf%O2>>r*CpFC(gY)_Nlqr;2*;(R=V5*} z$JT@imL$}VlfgzG@lelN4~i-Qwr$APk0&;~l+H6Hn&+do*T}+K2AJ65b!2-UIO?y< z-(!bUR1FXSbyBI4i{o+4=={xsWRqU}y&dDS4^2y0#i|$6&u^FBvS+b5IpndyMV{G>H(a z0amk>@704=Z~xTTCswHP{MG>W#dgaKv?*+=i`lF>jj(GThJpn%H@=}3aETC@+y8oH z2lB0cw95;?{k8GL{oPza8WYvvtm2a=2xWz|x_z#5n~?CgW#j;O`mr%2Ea>s&1;Z~# zbKsVJ+u$EUXCNeWMZKdl@qKGnxD2HxcY27_q;k-RCpx#%C#Mh;u2+tMG8Ct(ULj!< zj;;99cvy!>)ac3_8}a?b8&M)9v!vGg8@F`j0E@O!Hbn8w+7(>X#i?Kw9&vvn?9eUX z>8S@z#fm6+VD7&_0XDDVen*SG1ZA>#tfTGn(QSj@h17UP6rE;Mrh6Zhz-SOqjbUT3 zz(l+ge?^lnYX-%fk70_Kw~j*|xdz2wm}DNkA0o4h&g@F-5fdHcF~djlB=-&18?*=u zc&SG2dUg+ek&@7;$#Iy8*yNsb_xpO=zz{$^@RyYdU4Ih4W1ZU+!AY(~P+CosqTHs8 zN2uOEblWt>2sz$XjhZyFrVekAEba={O& zD2rG-&WUJhibyh(h$2%cmL!b8=@0>?F8Ej)R#rvHi$nGTNJ0O81$1${j-wkCwbh=b zHmkYZ3;rQ=6oPo9uxyR3zh!Qh+xG!GG=Z4XppM^bBevw&`!373SbgUy;oR}Vd1j<> zvE5hZIPInkuH*lh1kzp_p7py1urv>TmTMNV5KT(6`s)qPpA=W19rY|b;glsttb;}- z0}E#!>!yU?vC{~_o4z=W^Md7zy}m=+9AGB@6|_03>7+7)<9|pwWnf%*g9(S;GqzgjD}T6)MMD~v7&tb=Ti787-W9zV^d|57Bgt#1 z=adGZK>jzbcmkT-LVR3Xcs^hm3RO^*cBDWYN&*tZ2|#rNfv+FZ;>qoisK)^#wgZ!}pDE zZ&HcvvYQ^qS5xuNJ~ssyoi><-WKnQL|Ne047h=xqs`ZDWzbDNTWB?e!noEI=fuonh zNzsn;O7#Da&^iDoeC6XATKJ-7_lKuK1HW=ih zDTtcVION(L$xzuVIt9uP<;f_&+;o4aQ^urYixho3QBfsOy!+wlBpbsziulVk$95Sn zJ94*v00NaQhp$+CIfUFI(~GYhn{zzxZ_K@X*E`XM29Pjg>gdQXlz1Qg7t$#>6g%-6 z1B!;m&&G=ylpC5%zFP7qbI>=hsB*d#QQ(f|))U>n8GQ1K6pM4zV=G&9kdg0xF za-3_R_N0FxTaQl^C=`WggMfxgUz~y_`;$~M(_8MM$si&m8Zt`dP)UmRjlS8G3W3yi zs()$q9nZ9s#b%;F!8IBCw_w*Gb+iC{;v%{dS%y_==zqtz>La@VFyPC{envF2(E%i;yP^EoQ z%QbBRW#^h{@2cupxL|)vPiZ*0;qrrCb$`p+X)lhCjw7nE2rC0JcOCx}jh&yR0bA(8 zwoX*;(4Y)I_aJqW?HG0nL5wU-^@RnD8g1GY> z)(W{UK?jcO2W~Kc<3kxeSN^!2SD1vLnLz|5WT(LcAw>Qy+r)8)KYtoK@6UX3bHiR z3sf}!5Q1~tWQrQj{01%7Xp`F?5c4r7Nwq55^isp$*g>-dm1j}SSQxTGmm&SXaps;{ zk^`wq!z!X2{Nhc5Dp%{S>83(K+AT=R$_NyqVY;Yo+={A!gspM-I~UK*5e^e`6N_7N z0*9~g)eo%{q!#6!QG#GOv9KPMLO!aYmTmYAO?9eZ;3?0HWWKfv#EcjM0;zz|#EaXP zj5xZ|m}N2y>cXYBkPIqEs!V0nL~CMV zOZ0z9_8hdV9-u=LR!HG9EWOYdIIaGm%vLu%7<({k3wR*S9g~y+?`K> z`P`m0lT7W|TM2(TBLySZMH=)8_wV|&%7XqXpyQIe_C94-xr3x6Nb`8O^Ty-fw|!p5@=D; zJDticGs62G)(Ixu@=Vw=#@RRaV2@} zPyf3G?+AocDypjHURI=P`-4OLEG231grk1Y51sjo-TwDy&=hiM2JB zG($N?TQ*Tw!6ERKPNSZIRhTFVeZ>LijLC-(w#eW2W&0e1s_fk~?>#EYaoGny{tXy5 zBBXP=G>zXp)aU-DAIgb35r@ZZq*QXia?AtT@~tYHvmCS8B_>*M(aC+&n=hx!!f?Q< zt_6ANZzy*2)-TdH)IGd^KuH5Xk=JNba2BVK=UpPBQ>6=3$k4r3yWtA^kj!c;MkUm_0N5ksD=3vLg_N>FsE3>Mn;>wi zE#)%mn9Jm0H84=W0~MgxA4?-z;9*{uxDb7!N*9vYRXAC6mHUQ>n(cyYo0~% z8BUSzYh;F-hZ?G4IGm0WtESXxiopE)e5G!Kaot)Ap1d{>-1b3K_OP9~$^|iCdf?vU zJ(yKA-@nE>)wuivBIC(guJ3Q^G}a0ZJ%e)Fc!W@4^g&P@2Y|-pYKVhxZf4xp@$QE? z;?UXr7b*e7=+{anp? z`8_)#cTsVJKK=}gfBBW1PcbT>5#Q{j&hBL=OW{b1!e^B8QWuS2t!QitDOO%2SBl0h zroS0fj`Lu1{F01wnClcfVoF5yUl=3JXP|i{NQ{iENCElhca;H-+KSAT*Nf&%OWOoy z_##v_|2v1^Vk||?6ZVLd_l(EtR+rB4FO*Vs%$@krUn+xRS&hTWR>Dm6IX^RJmhmvh zF(^U_$jXR0tUasj;ExH_TSOQGkZ}b znVV;o@?_@egWNlYzO*J|}t|6t++{aH%Suxur>i z(sccHQz4{^2GmhEKqll_toGJc-6jJez5+7cNvZt8jXV^KR8zqjF@jjEz*PN|Zec)v zBd2RAWB@sldeQ%u41KsyBA3~OJ2I41np`I`IW2}ArOSKMBBDezWO8I4S>^8xI!>G9 zV^Y*P3x&{ds`X(t;Xmt88bI^W#?Y{L4|61KBuD2A1u=Jm2e$iAby=9hrC{gGqjvHi z5rVej6J9@?M5q0ZcKLc7^R?h=PqDu>9gR$J)j z;x`$wpuXa@{732ipFf{A{#XQk`(^t*<;c{BGM7+Vg~PP+)?!t6iI40LF#iLh>>}Ar zq){Ig9`=6-5!`VuIpaEQy;JxhF5#4!puQ|tC($AkM!^h?ArYhsWDUPOF{$6?bIDeb z9$Z03u0gD3^(wDdWd>GW-Icz)T$+Z( z-3yKlDB?Uz24i@h0)hM#N5f!q z2#0kk&M#qCzidhBk|Rt5FC1s+K9Sf(xq6Lti3VivQ`fsE-}r2K=P3bXbS%M{yhIl|3oaK-i>a`m}x=TLF&c}GC>fBrT-$4cxtxa_% z?mkK&y8lB6359dkSv0)K-1hi2oKu)yIf4(P>aN0btKm8YHU48pHRKwq(MIE@pE4xK zpo1S#xv%2@nIM&z5)rkHyb+r2PpT&dRqXIPi+uBuMd((k`4Xo=(v)fn$IULe_@JhA z6d?Ozm8jT?2&wM7*uCjmCi7cr-Faa=idJmA&XDqV{=!?EVkJ}2iNQ_@9|e)w+uQ^X zb#Sq>B9_1CQ30*YWChOciDhELhMc~mW5g<%+kE`JhPiPI)iXHAwcwdv?GgvoFN4Im zzK?MRK?1ZHvjz<0wF2=hWeGTqvtCXu^G2%rg7JLS$onqnISd5WjmVZ#83*5lD0f*t zZMKET%or5!s1go0fcs3H!Jv1UM7+=<+WuC=*Dv9Zp`V)Vqr3a0?U^^F`=-_B**3^gnXpqub_^A#XYHwp zmjsV<^G&RRuAr9ULR!uBquUe*aueGT9n|{(`=}^4U7Brm`$eHmXd8J_@3e-j?h+2Ot-ig>-C@nr=*F}F0vmQYd{Bs8 zBXZ*~Sy57In?H7`dkXW~#(t{3w3C! z=?0;Rc6KK~S!(~5d5|xv&n|D4tT-+cq3_Z&*}uqXwLBW@IJ-#tXGx54=}X9N@~@@= z_b$_qk$7s;f!-e3No(z7Z1EAkDC@MZG=(&KJ^G6nQCD;`&DAA_kn=uQr`mqna5qkr zg1LRu=Hw|GL-N4nKnjr^o+IxNkv&N0ZRd(B`SLzwez2+pLF*2c0-Y{XGm(~sal*z! zG;}{%ouAwxbU17)yg$fzQ%s_f$-5GDdd? z0-XkplC_hPXMtXCmIV;~mC4x5nHZ&iyei@BS=y&F-s`^2U?_5eJmt?iQJs4+I{&6> zwminj`WHgSA&4)Wi+i{(`BqGDYP&WOeif-uU0?Z7NUj|;r@>+4bYe%dbx5I68v8>r zDT0YHBIJ}*R=t8g9=9V|{3Mt>PsC*}QAG#o?g*-~mGhd<9xpw6mVJ<-ch}5*de{Zc zq($lk$ZTp8tJ#5_9-F_coqiX@+^b#0 z@?kkA3B~BGfS6@@#cNEhf-}q&vml~1l3D{wB7oEeD)U=PPWi|iqoVO8dPP^Jnt4^- z1`}?;Z=Pr6bFw6i5)nUyP+RmEMog`n@`I})S{I7NL~dV93cgfCrVS!gNwkoa}}Z9Z63s?1uQnPNsP3)J!J$$&{KeWHgP#;Nph?-@zTbmX{mdqR=~ zL$lpyrk%&m*DeHB#(Fw7TxX7A6iF3@cp}5qyEbxVmuh6z%LX>^%d99L3!KzU*?6r9 zE^%54l>77z^B84+;QT@?)$UV%T~xeZpdN_L;P5ruB&oDfPr_bRx8w+4{J}T$waJzf(^4^tNXa3W8rIlyd@k$Q_>d}#lzmTvs{V4edRzs< zYVV8sWB=X{I-RR>0uisbYbtS{6M7n~kM(rfTwC3+J?%`1by9W*=p{@({d&et)?u|LC%2V(~ESg>^^Dz$cn(Pof5)dAY_VWX@&jyN}hcodeOU57O|7ba)UamTn7KCV0yY?K`3DOThQK?w!hEEMLGu7@- zHi)IM?Cz(Md}5?`C+(RmeKj4QvoN!&@^ksG#z%kZQ-qUz^mxF*3#gvo`pRr&R{pXO zI-{zSIR{b&|8A&tOrMYr;hp@bUu;zMehEdHL6||aTp`-;EC)fJ`6nnPiyK|L9A0UK z^Hm0vYf0QPbzvpR@Z6R!*jz3n+S3;kMoZj9N1Iqu$T2A%GJd=cN6O=+fMm11pORpY z!EXmk*2#tuf5pHOZZC_E+#?#TN5B}?4!HYpd-%>DRnh^OJ%NFHiDvH?&fy_5Wjeb> z;zUx0S%CWpiD|GZ>ogxL5hG`(9Z`N(Yly>nIg9$QG?W!HSJ&!;>DnJieU-9^ z#?#>pqKjc|tRrg_wgc?Rweau7E0bz^UoTvrR$rvgfdFvm$y0Un`f&jj0>4N~bwlyK z(TRxjA42c}-cQciATB-2_b3~EA5>$o_$xW;l6Vnfzt~o%Ybw9Pv1-8GZvR2<1iO>1 z#bc0h=!`~m2SOtq!`=zkhapUEDR#`3qqeXioASsZN72rg#0#saznnPIsM{>(gl3r* zZl_|?`U<(a-aYc`a1-Hz_v6`b4t4&_uOSl?>hlo1dWAlyQ;P-40Z;CyL`4!|c?^t>@P;Y=rM+PH2&! zBorciGL=U;RiSCr$`7oZJyK5=V zFTp*UBBZVA5!g`E3=(;UkmuZ4(J7|76LO-z>Dbjr>Khw*8tUQ4rRpebH(hqmUf`no zy}uWCA}*?<`|@dIhymY#Nq5IX-3(Y#Ja$q^wyih5L#lY3|^cPYNEQ2kgl!kEc<(~^D0c+FzQpC63S{J ztT~`oUNW$FFbaS&I2GrK#_HPB+UkCnR~e~&`fl~cq?cWpb`XLUirj*DBQ`krE?ON= zc*T#*X*?RC`K`iwd$}%h){fv2-h{SgkjeD1rFiJQFyo}J>nsk!N9T+B9Kn{2WsQ;q z;HkP{-cWrV2}5Aaf0sx^b(QYA#S;vP@3wZrXQv3G6N6~aqQ{M_zsKU~%&_olNFui1 znMOCZE~QwO(x{-%`Z*@h`fBy@L?=Gp9@b8_v8aNqv35X9qtqI#X3Al3uF^b~;)BQY ziaBz~Q5zmZ|AycImqrkmKFxdEqeR=pG|baJj=CWogwJ2fp&4V+Rl818=K@DxL3lXX z(r!P7x_DABJSI0|A~UTr6${^IFOV&sLOpn|Bh%A9B298P(5z;12znDS@PGF?OpzDn zm^ONlxHIEGHa;YuU%W6`Z5ItH;ZZEWk!BV~refA9Vj)}4kY0N=ClIrKC-BZvR!57V z*l-7gr+dQ)QLe%Gg=(+5a-nI!mAy^zwnR^fLI615+`~q_-4rG%E++2OOPkJ zsrr8`on=&8UAKjU7Kh?m+}+*X-J!T^ixqcwcXxL$1zMoEJ1tV&-3jOB{l?9Y{LIM6 z%-Uz~wby)R5cX+J^ij%ji}9Go@t-JOp68Ebi|EOSmaW0=l=XPEVv7PnaomA-3ijoO zd36JLhCt3urvk|BEm*5>#!{35x2CPWIzcDbDvzo1-~?k*3IrPuv+Zs}2u~Chg<`Pa zhQduUfYF*cuedH_sJwdSA58rh@S-F2E5pD3qAM%TixWgk6$(_pUgV_WVV#2AjGDh* zOyhD4@Tnh$ozQp;|NkmC4LJ_MI0jkoulZY@>mg_La@Gkeiu>lcbVe7JP__U0&{9{#>qM^n;8-xL>7RI|=TOLoSXyJ9a1s>F4VJM+!R4 z?@0_&VKI4DSRGwf9Cy+(UMidt-x@qWx4095OvS3cC$-*O|MTT?@blr8Y^Y%|Z*Dem z+t~!&(&jq(^grM;13iTmCw5+Z-aoZ}#&NJ1ScRTwmMP+|ab&WbatB^ielr_@g+qA% zpoa2?0mb+i>}MopID*@LJcK0~tLz8IUZoV=apM$e9T>lME|QN=u!EWP_(>!m5LM3G zedhNtLGYK0Mp``s!6`Se&?38$uu%H;cjnfTIbHEA8WrOgJFQSQk0fTiNp+*H<-k>dHJ(>JZext$yz z)V&A@JW6^AbqIizMSX$Xw1%{!2{dj-!#481$)-vAFvxAe5*56OL8 zUJlqWN250HmTL}H?Wnlj7$nC2ywABkR=mB}~8SJHC}$+vm#ye?aI^jAZ5v z53_jf;+f9eitqwZra!m!Xcs*z>6knw0+sk?st#Rvtb8VMz*Wd5#ILz(;a6PHpo85zcCivm|Wj?yV(71Vox@l`*qr{ts z7CERk4Z_5uu){{pISplZTXluN|GMr(yw{^)bx2@G-&KBvu5|R{c9ty@2Zg?OFHH9d zvIM#Iz7Zvw!S=a8{ihJbKJ?5oX5pqKW@61CYz`kE$J8rZ$L-!6m1*rC-k}DX{80P| zY@Ek1;~c?}i)kf)BZ)7vem^Z0#<0q@?_c`*VgNPR|$povpUQ98?C z-ILgRwN;1Ep^-InBQPowWmeS!`eRIB$^oi%zZ3ZZm7Ml4SpQF06nWjO*KOlzm(S~z z+il+u5}O|6hAOD;=8{HtjI!K9<0IwIzrx*V!peCnCIo#MeFkBn>DYKR@c4+6zYy#B zF~^BaSg2yReOUinkkv|0L%mxTyi67b<#yPl9Lt=Q^&#ndjiSL~2LXl*obF5WWlx#A z3Y4)r4aZ!M)@iad#e$vp^zD$Nv5&f<<{Y=7J+QO{A|n<9ZP6Dyx*~CwhvgH~q;Pb> zJC)H&cq&VxooXYa3`J3jYkiCD0k5CA%g{7B*ozp#DHYhf_ZJ(|G#lBrRw}X&nAv_d zn$y@D?TBSPU9t$Mocm89hy`zyQu!6xu}TYWt>4Tx6J<1>tbS*AFe0<;I{TAe=k6R( zMTWo|F`yt5T=4aP4yr-KbTH#SGq)q?pq+lA8K=lPmC+6NV*x9NbLF#YT18-cQu^+;`=oZk>%Q|VKn(^^^VoE)8Oa6)oVOWC$ z#LXRk>%M54l&Tr~w__vKGE6=m##!THI3|o!lKJ23pI^O?(F{-*F8$pgvr5RH@*mHI zKc(ysV8;19O0CADIYWTfaG7eB-0IUIr7a0Ukm=h-4H z85I%zun|Mx`6s8#Ku#@f>+RMwI8?!90#}%@+B|-Tu7wvk)#AlYt{SKH@?}V}K&{5v zk*K;TP~&;Cd4ASp?XKmYM!_&p714nzR|22r&;XS2l_MH({w!i%Ud7&HgQa(z4IT&{ z6l2A@ocpI9onu_f)p;hS4vEi*oWPQHX2Jx_?moMm8dhtuO4ACU|9)BQYnyGkIFKv+ z#L|1$H?hf7&Wwk`{hv7nGI9#NOew#slv-pieQa!1*@9x)%Usu|C?0@s)gDE-ibM51 z1U$3Zz zOk>`>P z>eZ5j9RY6*C;xMfYENDWv%^X!1sj`B3J$Y33itV@+?!@4$50%HxLX-!V#XW>w-p&a zzS~}l4n%mCTgwx5s9|G3DS?JwlkWd`f=^bLL0iJe4!lZWT8H+cA_k{rq1X6 zma&(NK8yy&td1Uvr-GW3Y+J{#aD)}*|H|(dYu6ODPJ2=QbWo(jYH`m=5q%+pR|`~E z)1T70AZFYf~Kl(UfA6Am80U2s(h1b_WlZ$7dh&`zv_+4KHx@+)`o zVjqNF%`XAs$zY>WT8CNwPa((!9*AY~l+h8xJp957RbID1f ziT*jn(q0HLdwg3GgyrLueVa^>J|@wIE8y#@suxF9oWO5j=DTth_-E-=fB@LMJOUvx zQ#Vn?Q^0(8)K*z6*3jP+_!!kp9+#aixBcxG*ihteJjLcWo6ltrXMT)|E_Zr1$dQf9 zvH3h>5ghU2GWY%)B;{NejS)+PKF#&jQ5~*@#p#8+@fYVn8z?Fyq>q@KO^p+A;3fm# z0FAQkuYPhmG){ZAe>H{li1xmHSUC;zgvvgTRdbejrkze~#kWPxA!vEU4UU@b-}?Db zaJ}7alC<2;4;ru~F`uWT#{9r24u3jyg*iTdf}&zAZlg-!`L@!8+p_zeURP9BLzGd> zfI?M?5}hI-&nMnWsq}}4AuswwbFr|415u%P(IN1@x!QN#^S20=5;PNmZli#S#U836 zT(Q~_%d|0^Gc2&L3>Q=TKXVGi3I3OI{FKSC$;i@sOGu#^S#OZBuH8M@AJ5V$i$Rah zqmJo)#d~2hNX{$|OMGNqe9jAd%7AF(ud_1WC2=rK&K@aICwv9g9Oma~O@&V+4GcD3 zMu^Nv`gsZAoRLo!%Fs%X zkeyOabf$6Kp@(u|`;6(O;ka^CBYGw28anw)!Z{66ssrn@>S!i(`s`mBJV(WL=_{y7 zbu=#ym{)TaqT)Xr9evBN9me~wh9Ki|Oq7Zas)k}#mUhNwkm!-``HXe!^-#WeR@}ig zVohHpV9u1hNhGTaMFz2H5cPS|3@OEMm0*Smy@Hr=>L5AmP4~z_m~s4mFj;qqDa~A7 znFt~|(LFZ(NbLn$w)H&nc_e}7>}&i}e15ci-v%Q=v7DL6u*8mWRo(22#l(GQ0o zE-$I)VL>1mIznd|+Z)&7mJt$+JzhsbO-gBfAyGl%_<_d;3z=ff&EL~YVD)r~%6 z*@kQI=lw?%Np1_uc2kRU_!_M=h*;O!U&)x{QH#jJ8is!ucTC^4N!u45Bt*O}G2Qk3SAis;^ahdcahJ zCmQ)Z)Exz^6!rW19lk$Y6DoTO{!<8YV!dNmdS%w?`fTalC^X)T{3n-^8MQ^+AG1<8 zvYu-vAD!)+(RQ-Lz^#c3@B-lokD>>{M z1&YXfX5f5lSBGlb`H^X+ZaK!~V#{0=Nx--5n3 zwZi3~(3$89%+HVhUJt8-WCDqy3>W0J$Q(cu`iVAy8^$(9E07-TtaWqQme=3ip#U-&#A5R8DZ@+mU$ta;?xjG09SDyWjb4vr71nZ&9% zGQCTr8C`HvwC9qbe5XCu+czg?zS-^F`!*i#gLE$Wh3U1q6pihoy(sV_Jg89fk@Lr+ zqPz;n8}C{#-nRxQc`KYcdP!s|g25~NnLCDxCz-jibj)y(DI(?3WqCR7UOvsy=j%z< z@oHb26TKomar_AmT2ar~?~NJXjHemp!|iDT+`nf>+h!pl{8RW%IKwNKmWYJRQ7k8@ zb8nN|YH3%#7p$@av+STLE(JC+xNO~VZvCfvA47%{0ix#Gm636M6HDgWcF)=KuLE6^ zeI;4B&z0WKA6SW?Gn}q(zLu|ef4jJ3ZXJwAY3|n)$bGW!s)`T*g)zRd|tY~ zZhWV1xu$ig5bk5Irk%P!qE3>J(lohv(V@qgqZOegj#hU#``ptfD|)Q8#Nj~|)GOqz zE7?wMZy(o_p*N;&<88qiwjc^gtp&mOi>RKm3aR;oAA?0%{m{O@iq;9K50*95 zT&HKS)Z<`$y}LY@)Rry1$(~a^IZ`JoJ$k5-qoEjsmod!@oNbQbs+bqpSm3>(C<>Mz z#$Hc$n}UwkU0kDZ=)0-8sqD|GDiSAv)s|H|gIiF*wqv$&xyK6Lp3^<;Q(g>bOD3eK zM@o}ZQ_g#3;GYtRbg}T#5hGw3>w8Y4xukL6Y%qiGrSU%o_iKdr-&hwjp^1@$=#`#4 zG1_BP+O_+YrR(^#!i!m5gP z#jeOCVEO4mPT4t3mS98W_Ku3P2QUHy3DD)oycUfQ|)suYI}cd)xT2@TiL80Ix#`mTL8{{aRz#;^?LGLqMhiZ_>Bs!SY{dnei0i8HYuIn z$!Fk07KM4hh=J`7X$)I+{gxfK`~MV*fQE@Tp8mz9UF5G=Lt;-`gG%is8n4tfxXw~} zojyQZIJvZqXXUGZ`g_|xSM0tH%lKL=cHV*`(w*vMdE;S4d&nwK>MOx^9{&DF^#dFcX( zlbMplv)9ViOW_l2l7;Au`KK3qC{dM-T9nv`GdjZx!d)7HkTgjo*1WwfP;hG~F#1w6QbF+X+uNe$rmp8GLlDLjc8dz-o?(&#svlz;k9>*iZMGWKnGCYT3d6G@e)>m z@X+#mL@mB8p-93Gz97H4i*EzK`4uV;?nSEsz+K!p%9&@%I!MHD!tt)RaU}UM{ zuCB$8&wnca+FgUJAe6DBjCD5_gq|b-X*V&uXVlKxS85p{N#j&IWa>*%GPL)U$&##* z$|I{biY0;jL{CiK6#)X?Eepeb%(3o^@1NM9$xuMz@?FD=w;{*P75Uv#|Ewb79)DsT zhc`I(XHNaoZlFg_YQoa!LE@S==J_578}}akr0TFQSZ1n${D; zHN%?qiOYO55CpW1q+!0<7^Y@l7J&gHksg0^?3R+PxTWA#M&{4l@T*eT=NrV|ewuJO zk04JmEV}a`>X{LRNcHzq-rwVi>D0B1(jv-Ip6t&#g(oKR6vTK;YYx?vR(uyu_WshB zJ>0h)7JLKjR320w+JA9=n7P?J7TfeF7ni~HEL1u^!poHe+n~p*ETpIFaPYUyOA9F2 z7K^HyI|pKAsNX1av8I<}egHze+tdE5Aq$)WR#_09GYc>h2O z022)}QeZ)U{_bcUg!HlZxdZ$mC`=6Hc47j~u3gT>Nv-<%Q(furo2v_RSO8?A(^fp& zn!YH|l?t)&=)=gjWyFR)j}$rl1kb1GEuGw!>~=Z}C`lga`PN0ti`yTr!JiM&$yM!f z>%{Y%GdTV61T4l0xm#Fz&wHtB~gj-A21mx@VYKINP8Q(s~-*Q%uoYmzNFTWzKzMUSK9> z1!rsjtsiU^1*t-4)aDXQ0u%!>HKpLTs7B0(&lP+A+i%DFrb^~_(}rHg+pF>5EjWFP zKNK8x2{w6OzGq{9ptVudkjN_{l*)@1+GfG_#m&XHtRHQ4nu?(RB)j1$cJ-ik zeLKx}XN4*;Us@IP0bW~bjx6#;2|FbqbofX1uL=3O!>UgK7OK-r+IKQ9q7Z%@a4EV4 zOo3l*)<=rb48zz@5z3UrB4X*%j?twslTYFG-VzwJixW@~XfU~zA}@$P$1ELp5eRy< ziN!ccjJ1iUx1qWpwfqK#uFw1PiRQV`-yf%b+MT7vI;2oCQC>Ig;HFzPf%&t!W8&W?#f;YeYfnU2-iAAX?^CY#R28$Yat zmdL9vU$3jz`Qg^Lr&-XFutf8fWt0=~B*r0z&~eIcJy$V3y6$*7c};W0|Mh61ZF4B#Ha$sAYccauq+3jIfde;R z9MjI!99{Hf)tLO{=ZQ<;0ZQItKG!Em$nu}WZi&ypfKA_P;7$M5d*Ho=iLsXZx55|d z3vVPz$BrZh1jC;X9FgC+a+HNgWms~wVp+fQ`JLnlsd8TbHn1iE@0lg4*pR-?q~wmc z|H{Xk%g?p&FQDdr|68b^3gUQqpmw=)sSWH1foN0L_#C(x|5~{r7Vg|{nQyDZp+&7X z+p_f=5shtWwkSR4MMoa9O`zkyaXFMA=o8}&UvvR?)6-mL;qv;}IeJY<=TzOFnu+T+ zV5Bd(7)1Qix33@YtqrdVl4V-V54;5Ka8+oqDi8_mD@rvo$Vy>Ui~^A`1h!S3>7dQ zDgRglYoW0)dWAj6=|Y+K(UeWal~c6XOP7E3PJj&h-_!w>v`A#(&lBGA>921dumkGt zE{tZ6Pp{8^6QSYKm6P&d3n1po_rgXnH*Dam<(mdP<7L1S0?CUGIxw4Wt^cu1o*rRD z7GX3Ov8Wgd1kJYbfh}(SKODLxDhT=!QbLC;#JcnfZ=!JN@%pstXLMcSs)Y_$w=oBP zb|N%C4OMU33Ymx^RCOvQGm&<6lwg{Czk>sZC`F3)dKy$30D=j?u=! zAMOFsMu=3vi<;@ex+u4ASqnju_!mVaeD|O{%Ca1M7g^e$hn>~jDjfq}mOUyrfuBYE z&ZKQlerShhl5KAE4E_FGi1jmmE~xi>(U$0ujR;Ki&Rspi`sxhg*?M@~Ie>(qpq$Xb zfuJBy2MxvLIPyZ)mPfv(a8b1mvHOYUgr8eJ$uY^-82fi^FV5hA+b3w_@U>pa@R5Uj z^7i$^>c4Q3=6sdiAR*6-8kS}Jzu896N=a(kt|lfMo>O! zjhdPzMF@p;4z`Ns%94AkO49i-f*}t*anA8{QvV2sXbJlFQFmKJOeX{}yvp9xG~91j z!4GVAvNE-zaBu%fS27#LA_)3%J4K!0qn@;5aQ5t0s&>Lvn{p&R43dH?-SkKF|Tl-RpnBa|o7L!Vao~@<1+l#+;WfTPD zxVvd7Iq(M3LBGFB>Q9&p&M9}M@O{E}+;DUn_6+k2ykbuMRJn+{{DwxcGq{!dQWXrR z@Fnumneo-bq+Xecr)L-QXFK*U?q@XZH{M~vc=zc0qCMgu5UiNJqK$upz&Vsc>eO^X znI(^!0wWQ=emW8xgUY{+{cxsd&P|%9xasU2Z?xpi(9G_#~9IJxZ(ZAq*nrctU zH$B@tn>w61MQJEUDE2sqJI(x{hU>%MlByiu3TY>8!GA%vDktQ-DOA^2i7mbEFipEL zlYcx{n4z8#epwnc3FV3W*YuGh2SInTtlJ$LacM+OC<~ni#0(mmRko=os}M6o6jD&+ zyw{{W1gw5>D#G=c}0{X#yMn$FN z&#;P)k`mWHXNS+HLndx|I3ix^N{#)S6$^@z5m5O@Y3f2ND90YWL4|9jhl8)15UrqW{ZKeJ^$Dp zB{Qa;GK6r|X&0~kJU0JNA)X-UDi!_Xb4GXdgIrX-ZY9 zaofzifu2)L>5T@?5@)}A-NO2$ej!ifUn_hZeYbf5R!Yjsg5aoG(sa`kKJc$@4kU5K zS^Uy&~_AqT*SlJiIectcZo!l9bSDVlmMI}f2yB|DP-1>6**@kxv$aZ z)RCqmRR3d6rcA14&zu3nGmHH$-1F}KVH(A~G~wI%CPwS2E89aI2>c!9XWep^Nm4NE zJjKpVxRKzFCZf@jjKW6zf}(m$f{v}O?OlmsH*&_9auoRXr!@B;YPFQOG|4j#XZNOd zV9wRx!JkszhsV?RLoj6YD@95L5`xE|W%pzZ(nOqyH;dtmiJMc6+>ssBV61n4ApXZ+ zfAhJKAHra64}<*R2=093XpM&=M$+yxP@^HIS-ez1RsfqUcKSJ4=E8*|fIcYXp2hM$A?m_1@ zDgDHAX$}7LSm*UZ0K6N&$Yw8qk=o7m?LH8%p9Q2P%Rh5mBBhQ0jHdt4ctZej7f$3N zK#|ijjx{aP{EXm~jn@CS6ZVN}lajaV3HRUzjF9JmI_8$y=)E0VqyOPG5CBvkz>0y9 z9mZV-QMP1y&?@3}a#G3PzviVosM;9YzC~H8%rIEl?`q}MRi&RkCm-K#mNb^h zfA}Hkq4}_P8+c8sVFIWERsAinv^2Xs1;EcA$D*h2*a%b_8k)%-#E@$uXJ1TImK#63 z3Fl(-FLtFqPr|9g<6Q8n|0!ezAqA@#9G?krX^d|;375ph=;a&A);*}JQ=C9TA4V_S z2MJ_Q<+L28%{Cun6>VQ%!dFgM91EEX^4^W_-;#Y6&U+G&Uhj*aDqCF|$^Y}AN}KGM zikS(JS6BUh7X8Sf`SAx41V0mbkw91Yz@P8;+jXc&xrJ!IH8jBYcKGWk*>8`?VU}l@ z_0-O1aNrZC1C|Sz);XczTNc7wKf~pTlo;eQ5qZ`F3@V$Xx>bxoIH~2>lsif%r$y|c zzoo}f>80Jutmzta)fBZ|bAvULwEB>5VHZgS|G?uliuWFmdG`eZwhAT!3C|)woj)-3 z)^9DJP0(Nvn&B}Qxib)YMT48I7977&b*#*+bOse$Z#V~@pYH=c6Mw|;W7?Fu4y&gO zv;!Ec0CIg{;okeZXQ2HjYhC^O+wc0r)o6xtn<3p8flD);ArRz?(g4@XM4CUT=C3k? zn76aa!Q<61nvP+u;ugpW$?q=ec7mA&v7O z@N}i3Boo*UHH#7hfr3*#BI8B~5Ejh1(+0G2rNQqe9XMY6ab9K9R=+l_jn40V^Tp{7 zR0}14`OR9`!>T4?`lEPtV*M!VeeM&Htd2aUzMcmA=)C22ytp5+)kDo%Ju#`3HB3LTg7TF6pq1%RC zhHdU#1p9$^m%F!OtUw_D{b>RyDS;IOA-XX>Gy0b${n6W3)5@kWU4rWi3w5_g2(xCp z(ErK2y}LuXAlzJ9{+~kWAn0`n;NXnwlU z!l>hR3Dd9%D;U6DPtO01`5l=`{Omy8Jh%m{V2~w&;JEhM(M4L!5?>el^Ac~au#`mped z%O^_E2NEDk40qCxNpjCnO5bc0$vOJu9Ruhb1GrJ0sno|wcc&Nt-V3cr=Rg0b<5|R2 zg(b)gQjh24?y{EGeuzk3zQ=U<-2-Z36rjZvQjDqx^(Sv7{EI77h_|}67_NJA z_TptvtZdM&SyWjXN)nPWG!Nx*nz4 zonFvjt;^UvgQf>LW>TN+P_u${B1`hAihrBE6snqxsSWk^MDzsc<%l-^uo=0>8%z6A zdTTQEk_jAbspev;PiG!EQ?3MIfW&F?s}78li%s7=Gu@`tvk?41_q2>(lP@{OSIq{h zTE6~C`|?8Fw~j1CX(T!cHF@ya=SXm?q(#*PuM@a)F&PH{-b?mPr`SZoY0t;K!WR4@ z=sLvb-L@=~tRdJfM7X+e3 zmK82AviD!*Tc8h)1l{8M%n~Uu`v3+=Nz;0&wjtRGjMTJKBOn(POuSGis;9A#gGi=C zl(rCevON9SfayJ`qUDfJVjG2Brkq#eSgTc)vxusNKEWgyP96b6Hz~Qq#Y%^ymnr{H zS(m-;?p^U9gIxc$*NGota}z!%NR`h(Z{E|4EXPC?d^3`7^FZO6ZuuodqLuW!eCfqN zZ=_5oP?9?rAcxeDBxA7h=@#f?Um=M%Y;97tN$M((jP%~6=-kbqE$Z3j`Gz73c8C}fN1C5 zTk$0@3II|7SQNmLo*jU~%=2V|=SD!VMpB!^92;u5RH0u{kVgIz7xxR#A=f1En;`Ss zD$~;SO$wJCx5@$*u<$YzI5cxcL14v_xM)$iD-H=Yt^K$B&~k?hycM4MONVPMLV({F z8b5=n{y6V5ttXUVfl;Hdu-r_d9~SjPxQbfnJgfi2e@b1sUGDGnQm^>?*XKZTLS&uf zLgY)Q78-#lA47DkgiuxM;aut@@5_GdLpv`d-wAR)2Y`2AocB(t zXqL<8CM@6keK9ZxukhvG130RG>7Vp`Xa*RZ9+O?;PfpQVT|9e1QczI5%r?%J@}Lrl z&JzI!-saqiaxRx1GlkrrSQW@MF>=Tx`EUwYW})XL9eBUaUy;LD#U|MLi=tkV!y{@v zuicV5yD_qs-(6%~@=rp^6YE7aa9?tqGicC08Qj$mZZQ$5UM}S;H>p!+ETnZfKMc!+ zmCNRQt#VMaYP=}9vB}IZPPfe);}uF2lIIyk_N*p7W1t>(k*>zpedi9m#D#D7Afjfx zW3uYOfODCO`q3E3yJN*WeeOX2p31HnC8}-Bx@#;zd#&YiHXDwaB?p_=d1k$kDPfn3 z2}(v$VCXPlK>2#&|LI@0fJIAvVna@Jj9av1KnZH4XdbFnrK73CgzdW|qf-Vm;PfJT z;5KFRNq~dmDE7bS&~6ZPiSp|4u_l+E0wakqgIC-+x3&_y>c>2my8H0-_nv|Ymtzyi zAEcT`onF$3tL*E}I*@KwE%J=dNr-uX1&up&`1a}dqB@;QR#n#6$gV`wot7@Ytlvth zPXccf1@2~Sjk~wZJq4E6!{keXN#-1MazBwFhwN<1S((&X?cFW#Qf--q2}SR?6?vrq zX?#t@Kmr}Kf*du|5A=C^&(<;NL>6CT4b>vnP-B~cihLE|km zzm)J~0%PkUe$iuL35-VaBk{mq@t7?me>^{(?X2|9@>k(6pA+jK1Ttu%jBRb1q8EI- zm`Lvlf>(pum;p>#v=T~kzY&Mzz5Yr14@TCDtpA*>zo_#6GF5QG%m4(ZFCsW0kRDaH#+B*t;OSyWcFs@GT4lt)%yjLa=|)7Ujo zAd-`-O+}U1Kh>joH>fCaDi5PLw`ASd*~=MLdD$2ON0*4J7^>eaQh#q~M9jV@x%>I^ zUSJXVMDZL(v@>sv73+MNO5b?gssg4qLns#u-#?iwv=oWEQob07;UkhosB6$AaU$Zw zee^Uz)NCXC;%Ssg_Qo)hHI!@HaIZlGeV^nbOHh-Ra-i5hb-FW*;|N7DTHisdY&aw9 zmrxSek^gCPOTh57)U}XJGOwYMj>~Z$4V|v~=g;jx#XfGSL8UZ&=Cr&5`=yvF#lu5| z(ea$VWutBGO7KW8Q<4Qq13UUy-mG~7r&e&6C3AMmX0gMvJJ>FZFz+jw2PHlc!>-(o z{TNqvw#fXhhsklJn|`hIEphvmoU(C8oAZdDcsTZs9NUJ|xM`Q$A6~amzG^)c!l@58 z_&&~Fk3mbA0O_vcuNt(mU#T#R>+_}XKhPB0D`9>!z}lY{HQU=;I+Z%;7A2%CB_5qE z{F{)@@UPZ2{mcA6?h-_y4CR&MQ-MXp=$<#B{iQg6Nt4PtI+e{dB~> z<3MRxkQf=XVZxGpYS1#lj4P8R)jz+0W?3b|J_Eo#8RO7bNlcETiT5F!g^24Viz&b<0icDU< zV<#lcvKqOPDU!fd-~H?6M^UK>*%iMSJ-3H(wk#z6;wqV`X&esRYn?J~x$5^XJixS6 zRp=VjTSJmmDI=#eM-uf$t51?aH1i8uYNnN(^VwxD_!|gvrK&uZ8u~>#Qz?I!oJgpZ z$u{-#PXloG_TswHzXjHHGUR-;Us5?yY3byn13Pq*&*u{Jy9@Z(2{jGg^|G^_r<7=! ze;f{-`cB4A?i2I<1C5GL8~1ltDjJ^xUjh4Q%oJGYypA)9h{}&@cJ-3nNRI58E^goQ z*$dG6BiKkqu~BF6M^|sFBxt<|&P3+RlbOOy?9&OB)=qhS2~FYGMHI~H9IP4dGo8eh zvS*%XhiKmrVh15!{r_?~pux(Jz8ubX6I%Nzq2Fn-9*9#QN5~!op-UpNh668yas}uZzs`ja%Bt|(`l@Hc zRW2|P?V*==PbwG@fPP!^#by20AX)+|FP#jx-l>l7BlGkp<>8nyS3g_6H!jbCn#iCk zsk%0;W(S1xJBZ=^jS_R2V=YnHYTtF|Dl~m)_Nr)fyk_j(ewilM4?9cOOXuB4n}fe{ z`1|*yi3|cpzg6HhKJ5mH?_Tzv z`K#4;{Hy8vtNd6yj@uup9dw2dF*Vb!zi+LDW3MqmFZGrVKp$y-dlpw5R6wj#Da`TvV22E64F7RFB+ zB*@bs{*834G?xY|baaq0i+9`IWY5Y&vdfq3sF$A9f6jni)&1J?+ifkN!Bu|~cpP4q z1Oh3hjE}DrZDd82L9Q)7K9w{vf)I7WL@KR>r4{~S6zcQ%u)_@g|9l@44xtIF|~ zqqb~VYwZ@J@p~YzwFj|RSgDO4OprU^SryrvW8O0%t#I+^RPLWWGYM>@&||KOrKEh3 zBEVyWwj2B^iu`O8M=iL1b{=(5>^UDz1u<8PD($puD$-UNGpt#@VhHWNj1r7YLr^@< zfE9#fP^ZQ2-&QN1KFy>~1A3@a$!&IwXrKDXrs7DS~=b4gpai zEtnyh%Kw`$jLqtr$aIC_f>N_PS!}vFtDU^0|9ZUoO763!yP%=7q|C=4@Y;y-W}Ua7 z|Kkh>UH{w7NZQhWHFO#TL#n%ae5TQ6#)xz-%-|j;Os!wXbv+kc#{{9v9n_%-K-k2x z6M^q&X3!wWmVTq&VZsZx=JUBz6G6yTulj@4!zMy|=Zj?e8G+%U2K$BrgAhW{4?AO` z-m%hc3sqbn_i+TBjD0TNjQ2-LSXZ$=w2Q?xJRQ*!v6)MoeJ&j!>9w^#IXoqqPIBeR zO<-UZB(Us*wcuvQnUgdsuDF)d-Y&=}&9R84DU@_->nB^}^4l!}TZfMs3u*FqcDx|{ z`Jp!}>2u8PPHRft@a7UBJY1#zX-(UL#Sp>NJKqU96C^|&c(-7K`iY+jUTdQ`8B>bk zOHM-?tI}MV+~lzf6QulWOFr2B&V@xm z1r+Mht$&DUzPx>lXEB!+x_DS!6C8V;FY zqm_N~;pvu3<{W*GgSC!;H4R7M3IF%ob*rP^%(*aTI9u}W<(_S?TJ@%3v;GM(ID}E3 zPH%qlwREyED&oJ`cBz9P=sC$%$WCF;=$IkijG+XDpVln0>W1B)s>UvqA?ORboxS%A z@V8gK6oucZL31K0YK-;6V3Xj#bupDlpX*kCLn={>F}uojzb=eZ&I;$o)8A`2%1sx| zcm@VN^{Sk7ZW~ASn6Bx4e={0t7HunZvP(C@&iYOSLf-!2WUkaSw8ETKuc>^m1Wu!I zN9lNpF?Ey@<@wk5j9|)MV4x4hkRsA4Uwb}CzXV9xmv}HtV+35?BF6eS6rH*FNwHV> zYy!V)wfnV@$+cTg{?OQ+nBo*NV^n>jmRcVZyRwSK-o3vy0q8^EpztN&0^bx_Bj)Pc z!l}el!m`TR3z>(murmFO){4k0jSZi=AtZRjCdA=cJ ze9if1e_+HAej+ULpF+nW(1-GRcE>_Ymh=MaX7Qe}{?rzgb=A#LwI?2tRb4WHs^`E> zYaoPqFG2<-rpG*n1wZw5JdtFvn8gCK!peK+>JX_5owh+ZJ(dG7N{N%stUTTvG|d&NVZh|9`d1GoA~{RU<&+HHGY)7 zLH`!mYO@55m?Q^FjpZ6lOu!?Xx6CuFp_CfUC2g8}Ac{<6XHDT$43s3@6c=-kcP%TC$_O2i|QyO5#?Pgp&Ca^E!%Q zGqkm=^q9W=x{Bm-7IYu^Wa=_}Bn~Kobg59;JzcA=*Y-BP_TV-n2E2kpWzJu7SO}lT z93T66)K&}!ypY)qE=hGl!>@WTph#?{;)oeqb-M~fv5=h zKYn`zqq|P#x!*hsRHQ6DF;yFDz(eu3Uq6u?F?gS|>D8HJEM`n>Ie5Tk0*eM)ti6k* zd0UNXzMb!)%f|m(<&HrT@762FhfH^N3=A=5ho58eX)P+F?%6Hq94znXFKADIw`G)$ zSi3Au?b&H9%jA^k+}N%^x+z+$s0a3e?1=)LEDPBi0c@*fbVv@8qRvVp4+GsJKYaqO zMvUafd#CrgAY=A;m;PO&sCVNWqI6rGd(0N2LuR<#JSuhwp)h+to1XQ2^mY>{C?gnF zE&xT~8g@@}5ULP%2ZBgXr%Kz>8G!$YU}Fl4kRYRyDRAutV*CrZlkOR$Qlce>qjMO) zP8Airu;|jMW?W9LydPPH!IMhb<@#lwm|T_f^pWmES{3jPUhnaRQOOY$APljTJSQzZ zTFI0UPkz*ls7yKMdOti#WZDoPhI4}~*G)f;Ai^-jkb55d+>NYa&r$l@f^+=v5rx&? zk~f7L`(pC1GjElTFG!iC1=@u}?iSff03ERL8fbDdN(KU9ISmpXUnCF{XP##hX^_7V zm1%WDiOCr06Zg9I-l$Gg9e0!Yu%dH1NCA(48&_`Ci+ybO78vt+& z+y?UA#Dqiktz^)w`T0W@@Y%fZXWKzdSsWjX4W6T2mvn^Af4Zy|1y%J@p8u1iLy=D~ z7~%DyHKc3d;m=ln@#Th+PWz#9oW{K2G6)Y@82&Ey?|gErtGSO7htHI0S-TzqUIDP7 z2_&=OCQ(HPJBpes#gz>s4hy7($Q}XJBm;e4-e>X$^zTZ_ZXv|C@RFuXf5 z$89^ril(mJ+&Xs`xS9KjBoL5&>s$;4_KAR9ybkdv=J!O^$AL*JI*oX$U0*Wg@6<@G z#CqCVQFEQogWHD1Mfs2OI7(LwTeMBL7TjJ3lX@F7(`YuZ@?%6NFtzGmOikH^t_4kt z_qs6_RG%@h0oA$p`g;nS8h-Q>KJ(W~P3YBG%P%$Kc#(RLU^IpBkPtddl&=Per76Xf zSe*Jt;>d0Bu$S9i2-30Z{Vwo9N|gl1ODLIRWU)`X6M;7Z59h^ezq>W-e~VGxfsxNk z-W|Y!bdtc~e+og&DS-9D0y_Vm9m={fPS7oq0r72c$g9au|yOUVBI3 zEhz{;=MoT8JwK44MZ|7*QqCV9-Au=RoM6DHTWrE7dFI6#A3Mn`DRs{v|6>s=5uwF) zxIkftdg*LcT*(%SEudO^&lU$)*a-$)MnBoje6_5WBsh#m=Z+I@NQOS}D(&nChJnd< znlQ0qqRj6%=peYGavgEP`HJM95iK=TEs=DgH8tDo_=(qDSsJKikd#DP7x;6{Sz~ffT+MLr><3KfkfjJ;>#-(u|Iq)s{RrD(I_}vHA95$&d({{P`i^c9#CYKf= z3!@X6{kw*bQ4y`d(T!XJ1k^olUva-`BYav|-K0Xi({OD3Q@^mo>i9k;x7PUw*V_B+v(FWZ%@-zr zUxtHYDBrZ6rxYa191oaF2c`Yw@ozdxpyH&whj| ziWSmD@9wfvz$yMYXBo>(51-K`=dbE-S1w0M>-3%f#vDMO+nAx{5w+mwhC2XU1;QH+ z4jr+|uUA4$-73mL^9HOz=+-~}VmBo-|Df1E3~V2_K4Wb!qZKs6Omg8~9jAL*Yd!bc zL8Qjr;`@)ClOZj0KeRR-|lzs2wvDSR?525`?4@AbAC1&w!spR*mV>T+9Oom83&1|o8Uy`|FwhVc? ziJf5HqI(>rH)T4obFQch#cg+OfpPke#xZ7Gd+@!-nR3s&=DyhzfA^ytdh_+wA3vgO zyj5JH*|2gTIXB0(X2Y))QnR-y7*v-ZT1}+fM9QkYR1(vj0qo0O4&58;0wR5MV0Lht=YYD8qtHT{;0* zf2+oX8r~ed2!5^vA42)@K4z*$>*931+|2%1@JdUol2_D|Kt^05@-BV#vyFm{j}I9d zJFepkvObC^)^~K07Ea+WPv_5b0QYKDlz6|}dxKT8M#Jm~_Oix!9miuT7mL0|5AxTm zbyo*m_iozB4vf*99hBY^DTa=>ETB~Cy~yRhF1E+3fW>&gBOZ|~z1L)JbDpnAX#;h9 zoFoq+y&PR*6!)b>xSVDx{zMorshN1-a0WO{QA*jJ*rW}3KOf`Ejzc_ba;m-RTBTT^=l=Bhmu&K6lg611 zw$e+xoMbnG6?uzMSz7+UVZSI_o~cP6Oc+1Xu7Qm2=Wl+-K3soQ|56RbDQfvQivF^s z&}Z@%c!Kn~$@u7qX5D^JGwa={ydZ2l6XsfoWgsH7y%CNoP_~{+UP7AE*lF z(4K(Vmz*vu(y`IgyJ;OKYW(TjJf*~hYs>kFD>sZ^zvG~BdnzzzyOy(2?9DcJKhLGl z&+K|rY9GK6{59w%Dp!O2>D)!^171Dg z&7Q>7T%jA6Je3?>z5CjoYX{cy8hL3+g!=qwT3>U$Cy((td?K%YSvw^;Ku3qk78TPr z2y?vVRnRq(*!-Zn$Dzfk%SwBtk&byo&z#I!{=Uw2gG|fz(BnL?1so`Y;qtK*7*)xt zIlqxz>J{dduQ#;5tZ2oB+dMXN@hvYuObXXUz|Rv&b`;}`D2JGH99~G8hVGbRnkEzn z2=B;&r{DhSf=0v)4$V9nL*$H4y?dJvcB!808&mFZi4AZD8A2qw z128=-dgK_dZy3(GGYq=aeY$&o(anBBFidC_?_`f#M%R^avzA-Tua30#N40JPwF+MG z*l^_Jmfo#v_Sy}5HVyio1$#85P<}dyJYaJmvbi@6 z8mWudd!h@3HvX$!ygL@d)sFz8MATOra=5dl=VpU!+~MuM;>j z)8S?;M@}G^QLfJsRSPX))JT3kz%k__qciEph1j|PpeG-&;a_7zbGNnohn%b#w-;93 zCOR&QW&Xowi#A*cTp`#4wB7?lN?->~|5C3|$GM-)KC?O>O5THEA)=hDNw^bhIRI*E zGk2Cz6&W)HL_K^Dd#{K4=Z@&Ih`lwWhX|^%Tq$Oo>(7B?`o{)ug~=V0LpmBS$q5=U z1oQyQw>tmRceR61&@?wZI1oXSlN{JiX%?v?c3RDRhEXvbCvFL);)mMp?d|-69n|6b zhg8!9h3D_VIsi>DFu5AV9K*OSu!-#dDOyE=LEeu!4Exsl4eGCKW{n)5LhI$hRRyzG zR-(!)I1N76DCT6-oQY2Ndv6}Hsv`;OYUa!!yfPQv1Ns$A$Kmd+xn9kN3BQusnr|sp zyXtwE4cnP;Z;`myrfg!sNi;X`dOTOg=o5+l>F7*ug4+QWHc8XKC|ll)5xY1|{^D~> z@=>EYkBB{6=Mkq`L#ga%>$ey;Y9&0MyGsL}V7*e85cuTMBsJYFc(@0?QQqw~`}eSk z%6CfAOZS)RKE-<~EBu);8w5{veD=|_Z9;I`n4~CLIY9o^Fnb#MUv(B+X?-pkrqq&g z4y%I}kBbjaH(53g#<%5aTtM1hT0-a5?w6M@Uk7v(wdpV5E*yZN4R zRWro(K%9QB+_hs@T^{_bx;E|&>j{;y#FodW6~bJp30=rF-dH#@#GswjQLSyK-YIJ+ zR{(*hjB&31)er(9Pc5V0=hDp{FR?y59r~o9G1=7Be{L)1IBARPE*mPP;nS-3@kz~P zyB%`n(RtaTE7#{{7WE&Rw9Ewfz^SOK@)ir{HX`^b!ll8in4)XRvExL^v*^Q87vf*` zl*Za)trQDmST>oed^JCfK&bBP(j-PDH&<8g(9E!F6VX`R$*Q~7q7TQ04x#4L$kw*? z>b|5MEx4AWCq?vBEN00N4D^fO6e~3Z?6ySb6 zGS5rE=A*D_HGM*0c2Z{-;R0uq39>zJ%&s#e63hPDUv2cfeK8EOwV?as((OIhMY(82 zAQMK+1rhr;QWnTdzp8vs1|Dk3j@P<=JUwt!Zp;ZR`1c=M9_^vI?Db z!buh+TtYbOzEdoTM3FYtTjnyVaGj<|c0;I#gqTbcN=^APIJtxp>ZO@b)TS2lv2(9C z$aX~mYNz1+=UpqAKuD7^)Fr|DD%-q00NGv+nUSz5b+S-NA%_=~lwLyYQ$(y{U|#^L1%7Z8^eb z@(*`mGoXa7Loh+ft3`>67vus8UUCUp6-_ z%G?5v@`z?B1WeW1v7%7UTNJkq?|$7z9@aC|Jfs7;Scua41!xzBFTh-%_khhcb#_jD zeVzif)9Q79+GN~X$EJOi@~rE4_J0Uv#v-q)Eof*N@!D%nOWC;_r6M^fX$js$m3D9i+?Fe6ud#4x=l>v)qvh09 zi9FIFA+}kv#4!@D`Z-DWo0@L)kFr`#AWTvR-WB~QUZNb>A|tr7&8 z*JZ%s2n_-(7GK`5otr-@&j24Y)%4GODkbWy9|{q5_Gmmz+vJ9ig%m|NocGAWj{Y;ZqeE183}CYnVeKUrL_H8#R4%IJ`YHgBAP6kJCTwxMmK zxdsKT+rX&q_l9`1&n&KN01IA02RZgdHletNq_8R4A}@R~L!=E?ow84j>c!ZWH^z<~0@)nzqhm<%-l z8-nY}!23>`&4_ZlcVo|OI%ZCls-uO4l7G)ELdgspH50gm<)#OQV6@ZBPSZ1Veb597 zJ%;2rC^AG$BA@Hc!5KsBHg}J|LI9YI{L}yg-wkqAwPc+O_#A*j)CoQ}_^4)Q#x#oE zz^Q-ACoyb!iUqSfv`IeOcBv~g<+G;a61<~9w@($EU+j%@j@~06<{bhs zd5?9KRp7mBf#s*0;PE!r@E?YhUG6;SE6cMnm=Tn%pFGM9Z7R3`;3=Zz7Mugw38ptu zy_^SN?wF_)ZZh8q$W9ewnY5qc%GSn_aj42O%QDZWlrS#*pgDbWYx@jUaVdintu3dQ zTAThONuRz3ro`(w$uXj0>ii{u@D?9KqZ|SOc=^Qk?a-h5BN!N{!{R5`wbnfi;|>Xk ztbXIBrj9CL=WC%sbMf+48?d`wo7TzJ8@P?ZC)W6R?CylzE1nH%>zYcQEzKdR>Fuy? zS?77s1n$?{8E^P+kY0lQIda1LBG`n0KagXXk6b*uBVo30KaQ{`DgSou8wJ~e*V9}t zjz@m`SbwAZq`&4ceIWOGn(-a4jcf?|iy7WTb4L3#T4bs@;UCb%vHN|PE)%@8(XCt_ zh@%^-TNwf-LLtBquxC%yiHy3R^(D+ZGq2A)v=Q}tGyZtstJC$BalC>uJ;fx?`;OZG zX(Wq4$b;hZO`1k{R%+}6c6GTg*;sU%g>>!Gs~g?&sv1oe{@xDS-D2`pM4}$$%kj4> ze*Xcv23nt>N)BT|C(i+3=tv4=LFMh$Q2=B_MO@-X^Q|;4#l`j`%`z0So37$2vE=sy z8_(S_EN=tcQbj_g0<<48r%@ufZ83ZN+~9diE#mV*%E2*whBg0T_-YKEi3dB*Kg0{-hAms;WAl&<^M0Tlg+11t1v+0 zmNB6u_%QG$q7_&gjsam|u&cfg=OU5*#xNQ)^TpYGbwT~n#gZJ+!-l7jpu4u zw{hjzp@v0kJys>k>2#5H1Mk;Eldt8g{a!by2wCUWUlZpZ7oU9>dSr@Mz3iEtUGzph1)S8EMlM zk1#mpq~5T@=gPms0#BlvK)hUUNyJJmOxAKVLx@U6DO`ajt%LL?P#KDnflwqvVqiSK zW@2ydc^MGF-Rw5N3jk^xE#koD9Ic*`-Ao-@|6Y}Fk@qzUl)GKq5Dz=|v)t<=O8cP| zWB2fIyMExFRp5tVG?o2$vh1R15y`Jmmvnd#43T=N(k~2$mOp`2ez6c}E#?2OhFU?$ zt>TLY8d9{DSkUc%UGCh*sF_Odw^1HKXH2SGI#Froi~2pxxq_B~HO7k8bVG1pD5330 z7Dclh{aBx0Ys2tw@w}moS|*ug{kvJwvky^_G#`ui9*~`iegH8g0Jraj_!BPIkIDhy zrjq&|CYr@63$g>zp<3A7@8o>R(C1-4p*ic_`y4289xBr8bBbnA_>>uOFph+;lt;7V zds;Oi$ImtLmXFT?|JsOHgXuqn0}Q~5gLuxl8@L$-*^b_LzKRHlL{@}a{C+KXwP>WA zq+i^V`m;1y5Ys9$L*A(59l6a54ap_N#OKKTxQ2-=1_h=sEbo-s7|qEfk-Ywr-}9%I zgH6T3fd2P~G>8H43jEye$P2P9?UnMiOseSESkyasC9pQPX1V2y;b-*S%g*;I8*Uin zs)4P(mA?+Vf2_4YCPu;wkf`}#yZ*{w4L;NaheYq*i+D(zD&+Ac-|cXdoz-IE_)ZeG zt1GYe^P!R47?U9QCWKe<$;{t6-gc|B_B0q5Jp|dXzyji;Y2&36j?0AqhtOaoa0jMM`uH*v+yb$gq!?>rMaN!$fvz4_U!-L5OG z-PO=G`h2J2wU#S?qlG4xH^F@tP;3UFYeRv?9wY18^9Q7Zvu~prF(PHNGX*_u6pWE< z$saM}DH|)O#-n6URuzAuF$_!|;Wt#60>6UE46O`Es@=Q6 zlp9@at7hKSFe0n7U`A-A2cUK(KE*#We&3?YhUXZiEYB#4^bVxMxGn3KSy*aA3?O9} z=hVT*1h2%c!uiee7idrRAuB*fOWPUd&)U!dQ|&2O7aI|u{;jdQ9o;_FF5ejJKutFGBS38XVLKUc3jkRQm=~9 zknAawcuz3C=ddH5hq@K%hXaaY^L4&H*Q_T$AT-)Cz{5d>GoG@uS^5seUDjuPRIE@N zvu~OXZmwoj=w>O6wIc8eGX(A5;=;yRS=r;Krq{2C4mE=bm{sOG&FTh^;1DNSYyl4h zA1m5@#Zosyo;NW$Ev1Nex@A6*Nj7y@skykLLYw!$xm=R(b&7aG=VPsn5h;KF;{qe* z2btTS&9diYg{dS4x7sDfeYS~4R7SPCD6zjMdQw)zIz^Cubwj^B@+u0m`#+b}S+$S6 zWt)0hd%Wi#0!B#xYZ^Pw%e9vDa&5GKP+Pp)eU5ev~(b@ zi8DX&hRhbMh+7VIty}vcrD$p6BK8A|uIp#SZ+tf2c-{3k-xEu$;rQf?c)r{S-&zHM zFZA1uT#prW7G3??wV#dyC$OliVLH{9!iZ#ae3DJ>?&>HDvJ2NDs$gL^)@&$H6$SvnAu-KS<}y=>K%R(9jr-02Zx#)2y7YGG&#MB;`=c7 z9_fxpEmdD?WT%B{=>v*HNMmu!r<$2z5Gr9_!l&i%I7W`@XF6@$*SsQP^i)rtD0@s@ zQ6^WWOT|so3Jfd;o*~DiTKUGlk&=R(u{Zji<~gY3aCHbNqODk?Ol^e=1wZ{m=uadH zpV|f@(D=+@ELqL%&?j|-#R@UY{Y}qDObWtzGaeIeY7?VTx-eoa;`@li84##}!!^nJ zEjAV7UW_Z!aLH#96r7oOhL_~*L5_l1TbjRiL8)1_fTuX?n*gU$#qI&ng6Z=7_|SWp z#R;Pb&}h;c)S$B`{jSf9s~L9AAfe1<$pzNmD;S##5~y^AI76)< zdsoYYm4<&gNxsG5>Mf@oi4Bu=(T-ZS%^v}zA zPeRu~M}I++#a-R4&K+mC&Eb5&tu3Uq!7aa`;DwYFDjpa4E-!>2lz~yvmW48NKdkbO ze^zM0q+roI{~jqP{{dR7&+Xfgk?5gOr=sG|tsD0NM~>k70HSLyw- zn~Rgq1RvzNo^wSRG__OW8^dJ~2FF`=mOLj|5gFSnF$d z#p#4?Y6vlhH7#~Rd_KXOA@ClUS}}tmKk5b}QKFv6CfG2VNmt6Pne#s`RWX}dqRc!m zH{f$E&h2Nu2~Ad3vFsKSt~}igKu@9fs)V35tF^9SoneeKzDo6Pjytj$QxC+9ez}r` zUg~}ySAZLTTi>}HQ&(Q!6=BctWNwFKt%Grmf}6867SSj2`F&V7xN_3f!{fey_=8h<@Vo4Vp~olk+2j(gW;q)c+#R&=w}i`7MKcH}H4 zVv5XMqC#Gk>fzir`*cQaS`hj-9Ku{1)*0NylJ#e0yUg{clfWby!)2f&2cHQyW%yH? zdAr%VvGhrENch{HyXSI3H2X=M&J>)*^L-3?UVIR!*n-!U{y*2RJKhX&s6|#2tggN5 z67q^fHYaj9-0gmxTtyLHxHCAYv_t;6>L(rf({kJ7`;`M82aoL0rQ$h~lh&nAwB)R^ zGD`gr3*oKV6XsUn{w`QTdWv1DPbop=z0n3r-H;+tJ+fk?I+KEyjGZGWb0ktzxvGs` zTT%d7=Dq*uBs%TIeHH~f**fIGDghH-s+9Vlh~nWk<>0*Kj%6aPlFVZRGz+E?jt@}z zEDk7P03vr=Kc@eK04YYciNlP%ghf+~`|z0m5-%gux$4|5bm57#Mfc-HD{SRl|#40UKNu_zXbHtvzsq?nf8`x|41_mCrfrhs+Z-nJts|?h}ZOp5V z=mWWnmj9ZoQ8qheP^-}z+lm*l6uk5uX6v{Yx>EhvN0bQjYGB7Hz9#o*_5WVjM+{=n z0#_E5RYRR{bl9bivu+BXAzziB0|5mYxEgS4M4hN;rq;V}6ciXJqn1sr)rE~A!GXeX zxj@4`^Fc^Ne-|vNuZa3m%s4ounm*(Fr!8@cW|v;$d=vai`weFK6WQCnQnhBUmvu^b z_1`0!xB(AwVF97_IVeYafX_m%9$@9Q5iLjmUET1TH_Y%HcXtOzEW-BNh^yTfUY}CM z=9%r!4-W(reWx|M=8keogWVw*g}P;Hblcwce?CIir!s+>Zh%fFS7-V016kM!Mr(S&DCGFB4&oCWLG_75 zzSS~5K2Z#?Olf*;S7(!|7wFQ=r}{ViLvvSrLj=WlUVI$x@=wYD9Q#g*9T(LgtH&lj zPBNAWw`x*LFIjqO3GT=u|KDansvon4RLi$ty(~b*TNzB9(*s0QTti!W zHRg_~#_T0mTC%VJC6(g*b$@_?B&hXPvQ%q2x1W%|wu8y7!wOpEtwi z)sziKv}Gu;9Nt@TL!fYo@5mZ( z7IS>K8Z=2V1hfo2xAClQB4Z;MDlhc46eRFyqXJDb$T~$-{IVv?imj{I0&kWDR@*-{ z%V-flXn(ZMEetLY+VD$@Rn=`@&f}60Fc#4 zj_1iwpeD}g%Xv;=(%;6U{Hk&zL zRzeseLWvd!*FyI{KvEwj{vz~6@ky%01b5M5Sf}&P>8pgMEG);41?GvFvE+XUA^gx$ ztc-VYINv&PG)dVt+9YfFn>9=BXIbVq1QwKKE;=qHCprgm48)GaZL7r(Q{@px7oe^f z58hsLdysxSFJzDoTw1X$UvA6|1scjuOd$Y_B7%&J(K9Rj3wiL)aaBA}$vJGSb@bj# zykJPVm6a8))713*4Jrd%-c)seBy7vq)B0HG@j9R7k$3o?MMjxwP`{x4n8JKVps4Ox z+|UVkS+|XCef9=%XOEGRQ%B>6`WA~(&0)2PBzNCwk;nb)PkE2(+Yf3eQk!lrIy}NT z@`sZYs=J`zP&>QJWt!iR^E)y?54=E$*fg-*KPx-|R;LW7qiw`mFzjqv9FRI2sR&rZ zO*`auC=D9}9XchP+S3A>^(gq8QT(~{9i@!Uq%b=r*x*E@f-sFn;VGh6XHc7<#~Zem zsWV_#{3{ml`5K|#{@2(B&-qrml}u@}x8hwEojkN}%Z}5=M-P-O9%s0L2CD~kT*4+& zZ---yIP3ewK;2=D3SQG>($UvL&3B!~-l(1N9gWU*`%W#M#$8*rr6}|Nx*TGbtFc=5 zz~cIBaU$O5B;T7Z6{w)4+AC*N-*g+FEPcas1iaB%5J05*)O+c^&b??`gCn?Hy1qZs zJD_GNvIMF`S?vC=yi>wX*o|H$^L$jh!s52_x6iT-yDGTRjQMu?_<@NM_81mTeOh3~ zp$_Kg(X9=afM-DAdH^7E3^zegD$D@-enk*1>fR?%8eC2eb)+MaA}28mTf+j%O>%Z2 z9pbeWRn4z>?l1P!v2@Z|+>}Sf$iMB~O^!8dG*!X8BO+gmLiYtu;dW3g&o+p84zqIdzU)W^keLlkmBDm`4HY*d=>FQ%Vyaav;gNSIFY7Fws zCzOvkzV=5bV|VGMK-2$dD=ttXVZnyj{c3^LKd2r7f!nMCRvE8@1%J?iq9;$j-++M} znU1oHDXOVZFiv9yDu@<@s^s3J8kIxt^9o_3pPXLUflusET?r!Ln`Jq%z=~fn=9>T6 zu>JK3Yu#y;q*IT?^(*K7;v+MX-?!J5Nk8`(X=-hXh!B!$Fytz>yzU=DyOAjTR>lT6 zoSukZF&uj=i*&R=#dE~(gIqbspS!ZWtJS0a?HpqZ@Ug@xc=|>c1%wAeHW_-Mnw+y= z${caWtncn&zGS@k$JQaPx95;E`v{Dq-GmSNKpd^Ox;oqKKTeNDPkLLn;uAk|8pziq zW+-9acJN8CBXU;;y#5&YsMmDXFBP&qG$4`e1Gcc&5`*i%JX@+6ulRu&XbsLEIZ)KNEEhgD1;SXeQj<}eG`Ug*lB2@l#n&0&}X^M}1z7{sf_Z@~}b9Aq*BPW1rLRJ+NqPpb+%)nG+dXAx$ z<9r9S;w0}~qy3oM4i2AK9vOfS!_Be;d&vr9yM3Oz8MEvKU6LOMuG{;W(SHBj&VEYF z5RfBzZknkc7QGEJU*=|`#YC@aC_)JttC;qyJTzY|HP5TzEW!RT^Z)k{3clsyDW4I@ zdAbjg%aQ!DLCA<@M4vDDgU1_$IORv5p1i~*ojyzhA*X;`cGrArl`1ys#IT}ULkghIlS-y$Q2MUpD6p=i8Y5s?> ze(YRY*UtZRi0Mm(K|U}Ws9MO$>etTWGJl-CG=ZPwh?S;D!R0yjvfs!sEhn~Z0y`?2 zkeF29#w!Hj*!DbsdC#qe2vKi^0IAd?oEwR#)j^i!!^}^oq>r>!%gQg3m~xY+WYr`e zJvL6q$*;HKubb^H9@(z#bn}Pib^miVM7Y^2&NP6l5aF^_GWQ6&oZ~J+;H9-{fI}4E zkkmM9SCyV(7U)pdrKeZS-4vL}Za-v5d%2?9{dWjB440Y8d%ifYTZZW2U2oLwRm9Fr z;Ef1cc&$9J3pD5IT(N|zShvfI$L|DX9tu%l@=sB1s31?eZ^D#}U)em}ees52KIy%L z_XXitEaGUf>$X3;KncY|>lVtvaMfTAXzd?^p1*1!dU`b48ZWcYZ^=D`sI#xO4j|ii z{iVv!$$|h`k$GASU%B~13~xI+(bg(em<-@QXNMW)0)E!&zw>BA)nVH>tB8?-tzOvp!g*gKrI)ao! zu@Q^XOJEKT27o=FF{Rr>79kSl5trarVwtjL7BFW>5Vystx z=Q&6>J+==C%eavj?X|5~70L?9g>v>%N|Uz8V|x?^IJ#c^FZAIT2>Hs&_!LL7(^#!Z z#;(yK%`VX3TuSG+5w~YxeCgoP&;L?!o`hR;m>|lE!bxNWnk8&(NbqKlh7QAN zP1Y-Kd;g|XMH{U=`?fk)wxE<-jmNuxtd#F(Su>1PDYpeaAZr=8!`pO z-MKNf2nE*#{82RORbs{LkLh%P-@p%2;2P!HV@`T7Y&hPqCtSBPwR1Ipq zdqkx!YSb0s+u%|P8OUu!NBMjRm8Qs@f7$m>1{cti*?!hk70SgKvHV)m=+Pj4=?IE{v z>kU=Q@v=KSN)RgVn1tr$Nb)isrmw>rWg@A>z4@WWB6Hk(U@|>#GrVLxHH0L#MpL#jKFq%d z{^}qIdWKqgmxA_=K@9@Aa!aE5?CkNR))gv&+d=8hOkAV=yNmKfqFA0MD^h)vM=_In zvKzZCg5_QEljkcwHWni0+5uO}b5rb?hFk4ko{Gezv;Pb#<{w{dLI)ak?%eIGL9|4~ z9p2Mr-;p&)j$v<>)kJp!bq^mujF6rLvmFy<;U!$yDqvN}6v>oy=n0X~uMWQ7UgE=y z0_}_EsvOxizYEKm2}+9gCdgs9qqXvj^6c< z(^;=ZHW71~pq0J}jc$rKEaDx;W8A!|5)Htfy`mA8SNAZ{5&nnJ79s@C${ewlvvlxi zY_+S(z-AKD(iH5H%l_cj6<@~cN|#Qzow}9dq3JqSuU8<6auK-Pb;@pjR=hQ~2YI>< z3T>-3pD}EU>T{u8ZoCIhqp(e571w6H)lH8uY$dHLT`}eTqE+{XLqNEL^iA0&G)lqO zwzg=jv+EK9*Qkm)G~5F@VJGNSu9xmL`0#O?q{6K6(Q69pm#8jt0%($BiaD(ONDQj=Ub*o z2V}RWiji49}&6Q6=D4MxM@6g)maZ`|hZ{4wjO-*p5QYU8s znwURvU+KjB^_`$|mZOByyqdqQz3jGUE-4!hyoW<7N<&poiZ%NNy)q9%-^@R;13kz@ zeb7}0foNGn35QRUYL%^%vW;ulNaCKSdV=6u;J;FPD>n3qe+aFCkRP;-C(jKz9h>@E zr0PWYYT&>w$CWLubn7ns8Li3XC~7j{)=5F+ zzOk+0fTmk8=C#=&Vs55^Tw#bvLBeHUh)o)Ajbja#UwD%=svot~?t9G)P^>MzbrY&` zjTaQf?SCEjmFh(?y!w?sIqp7(i#`Qf-QIw?%c!h(J51~68)Q067th^4X^nBqvfBD0 z66??jsgur!Z%|YKi}VRRbZw)A+ed$7(o?zII*>y&vZdxaJ?6>Vpr+9m`Wpo$j;%5J z)Q`@K-fOCW^>y}8L>SpKvR(t+MGN#1S6i1R^9AtX%wdFXK5zgwdHgazT?T>ackkKj<0#g$ ztI0?!4AkQkGT`(1a4r>J#;xZh_#9`b=((A=r*gH;x~OdBg#5zzsph}fP8 zI-b`jTaf5RkoGzq&MACR$B;78fU@{B_~u?nfAojbhZD0KqQOG1NtDanyz@W|Fz%AGtbda1#}kGsmrsFJ1fDXYO&*+mPf`p{Lk;g@e2rLKyQATGTByrvTs&O zK0OU4qL(UY!l#tN3Wv+hP!H(8Nqc3Kt?0aQAuJt9futsn$0>?Z^ zcfa1~>H7lFuril5yoYG#r1A7*g~5L{m=SVBEMv0(K`=&7e9j-?W}Z!Nc7~Vq)?v47 z^%fsoR$;)&aL@z=M7NUARL&iB*0$QYAuMn|4HKH+&@@Y8nzagg$DG&40jhrdC!V4qN1VEi+ijTjIB&i_kdW8nS4hB>x;G+q0TA(z!Qf*_Se|3nSW2@Ex5mR><$>%ShQyP0&G3XIZGIy~I}K*{6+1(eLUE zoUHF?DVXYc$=fbND45rciYrG%Z+apgbq?Y2U^oQGiOAqFo{*RiaI4>{S==w!rJ3smn%+b z5YlK7(nB(>Z`@B}=kEB$ikxdISB9-e6N^K7KK@W-vO_hUbvCVWqKT;*rf_mY#+yp- zejE1dg`ZCgLPbU8Xs3}7Mxv{zrQ~?2Jd;nfZ1cXF5sih%m~U^ z^rN$Qv5DkKeX#6St7SV>-=Z5clO1&0!qv-;7a>O%&G7u`;9%szZt3ycEh1Am{MKQr zY1@&Q;r@1f3&DdNu#=bBI-&`9n{--`t|K#RYy#|&a8-hAZ8Je(Vb8pWTG%7HE|;;d zz-jJd>#l^kZX|QbzJw9&A8m%~sKEjkXUa)2;a27qvfBP!Sjk46_1~|(PY$`2LGKT@ z4~Goq`HYUf&fnr~8^Fy5>IWQFoMa%$;O<^jMI_92Pu&-%t48vVwGJ4c-i>vog2FuS zcg47S*-4*&2Z+b<>rgob+uhhG@aNDQJ;d=Cr!^EAEta+=i1iG73` z49E*AtBD}5B&+vS|6Wga8NU>c;r7vnpR}J?$On3U#rnQ~e9ZGdhepQ<5b`OHnFp`LTf^hNR=abF zm%Wd6wF8!X4$P;%@ePCbs$@}=`Yk0sqcT%SVK+)#Y8MBuX1)3Gxk}e>9W1I~=nB_4 zUyVdI7v!Nl>tua{`QTT3=eo)k-s4W_;jY|YuHErozKEG2qs*M;fvjWJv&Go_2uHhl z-5<)y`DGIB3$JVt?^dUc@|sZ;Q_QSx%gO5g#;5zjbzn#vCS!!)%{D_M?*sbsy!uRl zsj_gNW5>@MuIQ!jEUo_fI?><0fuka2_TnhQFvul0g-Pr*e}2*Cve}dF_@GT7({zu4 z63WBNjihdu(2+w@(ADnqyD=Q#c)ncmM>ulZoQQ^p12y4B(t-}>gFL!KAX&6+!@=Ca z#-e@OpsKXd4zu@Q@dv8uITu=@HK7>cI_5$&Spkum0ZlxHMdB?{FuMbGBsHaqdpe~| z{|js}QjUkO%*DVB+-F}qc;DzjBVnNHHVxk8I{2%evDmdYp81R>)}*&2J|kAC?-Q;Y zEUu5>0ZbrcDwn{xb2=?vRG`wjvTkjQ#*PhEEfTlV{#Qdwk;t1`#%||^idLt^T2hTk zDX;yl>N?LCoy(4I^BRt7*_FVk-)&)M4L2{KTYqH`YcrqWEIlr!V!-D8XuC6r))=*w zA(w_+Tac7348`I)aCn5#n7r_k5wg)hS-qpv$O)KfevYmLwLc|>rAD7_aY!r>Qdnyrf;ZI~oVfUj9jMv$ZT z@{kE%Q80h7fFQHZ$NpYix(UQ-EORi~c5qOrR&ru^KjGz77_ z69IO>=Fj9{z&v~iHHwNi5~sMjG~c+AmU;5eO^)%=YVOO->C)jvyg=yX${Z4b(+M># z1S{YkZA$#zC?QGq&JG~^nk)Pza{M8G+~9{ZD}OCkWTjGK0SWiJ6QzgG*-sG=0CMYd za}2N9v}OJ%i#(nc@%7i)H;@R#c4$go51kOnRRasz&`wjOTw#q5{&3t?+lb+@NQwiU*2!pX-L-g%0M`fx>gn!u`14Ufhcl_q22*>M(mk#aoYi6;Rx%+_2kD8FzSh(6z!+KIflhi;vq?jOLx zCZYqM)_O#laRA^RrUe6R01sN9(J(ybZaj=is-T|#tZ^vV;OYdBZ~Mb+s%|NLj!NZg zI$R@-ywZ+1qTH_S?;iP1?3PF!WJ4a?Nr|T(D+?L&4%=NyrdeOMNo@U>l8}{R($e`>s#@0N-&pa{X$BBZNsi;WPE)8 z3x?}3UIu)Xo~=LT9)ZkTSva?+k8(CoVL}o&0Nn&|jL4uYF6LwAaeF1+|K&(UzaZD}Utok<#H{UDZFT3%PAD0I8^T;DncuT@Hu}bl`Mdg@q^vH1=YHUaEi2BnZ`8Y}vYr79;(A^D+HLZ)z=fbt|@~v}L3^ ziS=~x6gjW!x9W+u%R7GRA}nG2k^Q30dG`eS+}&d}B4R<)2Ws7)XSo8ztVe-DO3UFx z2JnPK69khPYEw|EZepZ>@q+2&n+sA0{g|a0<{2CU^(+a)R8qpslqAt3hK(!PHH*nC zy1Fl2Q@jtXPzsz%nuG8}g-f6wpVatPWhu72$Y$q{wGRN4Lq!mN6flGTW9cf~nqa^7 z=tjD`LApV@yFoxYB_|TTA~3p@?nZKSmy`n1-7SK^D2WjRwr~Ef?{B!DbDndZbBD{m zRYSjcMlpbD&8YWyP+TeME<;O^%Q#w7M~Pz?hbdxeYp7^k=WxSNsV)CPBvsUha(??~ zM=gRg_qO>!tT+xo{_|P@W2G*UTaOyR2E?~0oLA#{a~c4KJp%Fr|! z=|lTXwzS|2y_l+wTjd~cRgK>*7&XOu!H?|JiRtJ3#e@F-(`Y^i*dJ7NAUh71)T*}F zO8fXUeV%>XF!s{hDwL}@6u{S^J^?J_RzK>c&v7cU*2#LAS%5hh;7hsN344=@~p7db$aj2CL!M)R!f5 zL|V_BsINCBZX%xI@|NUH;X5tCb8?17`*J-WloL13W4V;%M9I>GU$s=fV?#Ny*2^71 zD=4M;kCRVC+&?~|2!b7|LAcP?yD5Xghxn`H{s~@qw0BsZZp9k~(wEwTN#9G&fKE!w zE5?`-7meMt_)1<5Q~>0x`cN9{J!}cBP8*s057f*I%G7=%ZUfPzUa`^d$wA7#8!&<@ z|KhBaaxP}=xq#k1^mqZeVYCmnh>JTv7t5hNtpu*dr8es^&bR9S5P|^EF|GA`jN}A$ zxWU%;#P9IyRFU`?Hc?Z0h~8G00o${Qc4Gmm4?xIz+pU7T>td}m$tQIovscUcfGnr2 zy!YjP_?IeDkU9sVh=+?5eHnND;W&`l(o1sQ{b5z~xIvE0Z)-NVY6`Dn!s=&)n6 z6``)q2sWI9LaWe`(l-zMNx8v}2uF!A$tm z_?7{rA%v&?kaQed37@d6$DVVapZdHKR9)m4RY0VKky*8K0|y1^gTJV8F^N9{FX(261Sx#+5kN5q9)KSA#*ssEw4plF!MOqLAqW|P}VV@nu44R8K zOunH5>~mc$ESCR%=FiD|SY4+kxp zQ5H*KIbJ!{r}z=o*yy*{0?iXE2vCxkIGz_%%a2;YY%lJh-di$B*6HajCHV`cjhKkN5Ukmh_6~j(dWX$(|U^$zW7T;(R%<$^kUL7PgMj$$_k%|h< zIol+B7B6Dk<=&U~2zWNODrOj0XI?x|$S=J%^UrRM_j9mEgS({7LylAXZhW$u(bcG4 zDM~h9S5jSMtqB4_uAv!}pxZN6*S6Q9@402K4l)njr2PDD zQ?{ZrENiJaf-r_v(wrP1eqJeBe}vK8Z7)5?-wE|Cf5ZD%Lx-Vg?p6yPA|@KIwZW4P zJUI!9{;z9An^Ghx!EJFB!Wjge+Gi?VGB)U_S`zGm=CV;Yg%l7Lk{}h<2##kN7F@@t z@4ACG3=-%6DGr(kcRRL8FQz5#8i+8h{aD{Fp>>~E@N9GUPa4wYY2XcMrtW}25DCG8 zO8svnV*F35Y-3~#ll5UHw`zI2`1C5qEdr=2u!E&A$Uk)9vj*9EtKk{pha^Pi4~{)Z+Hgo(i_AxJ^> zv{P4`p=wU<4y@fdYtQ?_gC&#Okr-h0nNo>CdRajpd1J?EEU?l*-)EbaGFPDM*lpU%Suw(yJ&^;92+N3d4jljz&b)8DiQl^D^UG;qc6ol zxt=Q*#v+kECg=rCT^cB~or374e^xa_-)b+|xTQJ|9e#jSp1)O(?yoXOt!B&$B>V-y zitnqduA0Q==0Ds}uv?5z^<`(@5tM7YHb@+QH2daTskrm6hW-N3baaWi#J7JbaGpcjPRHtbAd1DB-XxHCA&;s)s#WNF zSOWds9a^W1Thz|?5XF)w>b`6p<=_{Ucbr(r0x=7f`pjh^S#bApp5zjLx4Jsi4n1&5 z{_Yv13@_R^ag$Ln>|=g5QT{3oj6wbC+jdpPT|X&`UTM!yy03@Tm?VBWO3dv{VPctG z2$mPrL>0TgBJ<1lNsagf87FY}Y>T*- z@0d->dbUwRGXiLRu4W^WTb>li5r|@cIUKjzw~VqkDw3D3b}JIwkVjA)zr*FfTKHmm zyW%2h=<4mMXx!E50xCCiL)yl<;1uG90S@|uct#v=3fdH%{JH`=fp_0U=BIily$gv^ z=n$z&9A5pv&%Ba%<_t4BaZe`$vYe&U%t~i!98~@xbObPZ^&|HD8xP0ykvp#Ky7ZnrjM=tm7t z6)D#{?JcKSWhRpm0kG^=1xHEIXD6$Z(m$#VRnmU5&SJ#P+lT5&6Y{k&^&2}IjF-qz z&*z(6f-_mK81fF{mA3y5K~;*L?`bBl9o@M*Sy0GXGb7L~^A+`8P|Ye7iFsk;o_YO9 zpM1I{Y+W3g)cF-S0D2*xq}NugPmXxj#_r}Z8$ofjwyfMD6c~t?KB*yA$A~g zV#XilkBJLzwc#-xOWd=8TRSzKZ4NA(sq9=Y>|8sA(c6S&hnC6ggg!ANGY|-P3h*is zG$=Ic`;3Z2_LwTVDG=VrNN((hyzWGdbkmQqG)?ifufn&DZGE_~Mz;8Sw*FB*seoeejJrY^XfVW_9-E99M!J6`+T z(mwiqeyrFID6zn?>~+UXb|QYAwq2%~3={LJy4%BHYxBc;jK!@;;DQBUlYG{{VO(+n zCfc4oW?c&m6{RD7-6UfYi2_i}?p(-xgtQI53=f8;o#63WUp0b@=lFgr4YSQxkfc*x zgT@-mcI&4|6;J5f)=;awmCMv2z$zi)a;#1IkjTd_K$kn!NK}IMMgOg3z_T{I|0g0J znFCRtc=AF1XlW_H8c_ZIIq}q{>3+zKlTXWTh|@DHl7e_2=N)Re&)3IYD5W?%mMZR7 zRtOPOnf?)64#ll#@zW7Tm?HX0N~}}%WGOcHl<|~uG@4s%;@cOwF)T=rG>IF1#0IRQ zi^^;Md^nGQO2LI%4=rHJKNS0|695pPGyg{WIMDEubjae(SB^Kd-&PZP5Q6I)lch{r zH@ab604Pm&7sYu6J+lw>vu&wJc|#qN_0r$Pd7D(qJdaqk8t=oy8zWbEE!MJk)RT#5xctHK9&|Fu;}pO%D-<&d0VR_ z?nIJ+OWMiEmJ4S17K6MH)~_Qkth050#JeMg2cA)uU2=ZPCUqM z^+i9$2eXJx&k=m$41^X;zLnZrHr&uNVv19!Bzl+bncyBkj(b0aQ+-EJi6M_+N2Z@X zPD(TejWO7Iz3`a8R0-NRA^36QH;LEAU7+f~y&bQK$1T%{yU!aVY&Y|Hjzajnclhr5JH z2;sy-C}(7fe7fwWO0=r(aY*qq$=7KDil;dc*Ylr$*9Vnf$P_$lBM(yEcUBOdI;8Q^ zXLeuXn9)n0+^Q3#jFphDKIvAOKvpXFgW=Gvvc6tqVJ0GO>KW0nv<7EDOtGMZVgh1u z45T^dP{y%b*qEB(J@~yhW^023_)S_LI~|H@c54HF1}eo1ekMp(`L4pKGpsVpljaPi z=qvFS?Q0{282OJJlRUHTSkQtNpM#Vaw&tn|4Yxi?az%S_6oZ{RSl`!@_3aVxOm3pW zP_mr3CU8#ZwcU;!AJjx#(FFbj`&oq*&&`}fT@_tBTp#7CK3nyczB2gEZuM(wW z98a-a1BVGRfE3bcCVsW28~jeJ`O#+R5MG2^?q!Gar!M+(BFs-n!Hc zQeWTnYfV`lEplwQNmBvrW|fEa7Q5UsN8V3AH`ILuNboQcd_#{PuW{OkD=_jxnRZ-Mtx7zp zn+~lt6`uP6kTzw?}_t1(9&kJJKVe%}`bnzp`kE}MLh(;OSO?!@mX8Sr^ zS2MMi-(Ebm(Y(c6idXtY``yFSKq;dfW}YSIhRXPXI0wxKk3i$Mdo z5tg28u^i9fJ~_bRiG0gc;4SBaB9aN9K7inhS7PUt-Zx=0>s)U&>kYV>4&#t(=<;4Cx z(uvr#-a9+cCkGI41qNr^DT4P`4zKm%f=Bju+1A~aV28~p)iNRmnF6-t?5-T&Svcf{ z5!@%t-x<#8n8k6@UNLjlC6c4hbcUXdGxQ|A!EA>%(tt?sjQnezoK2P=xvWh_kkgT~A zWo{C^pT9zjO%zt;2~K6wDb!+xgO-W~6iuG+8XTs_;)jnr;eZd9mThbz-*vQ#@)*oDV$DG~1OI}O~d8!}0N zx^A+f#qmFRR4D_PS)A$=y)R_Yxp)akPXu58YF~k{gYw=?_XaDwLUw8@-}3bVk9DNXSahyD*D_SHPkz1#kPvh$YJn@d<+ego=gvTohp7UXP0rmf(Km zp%jLbPBF-6_LcRxWVtTtpdnP@r%!t!4~&ShXMLoWI$32i6m?2>(U@4q#FQNpD9`7R z;PnCNb=uP8T2bwmlPNgl2&{y=!@ByaYDEZDtDV<KT$0^vlIDUUv2{9s!sH2Tle_cp6;McKPIwn{1?k>(~7>O*m=29%3GyqZ= zch7hYKjoD`D>rieaP^76(&JTj_EqmGDY6X;G|y)3F@-i0kzu`EvXL@;99hr6&>UM+ zrHX{q+#TdRKN4kWpZ>VuyH{+U>u#;yvq*HN`KR$cV^{1OwPD?Bh01x$yJ^tOQ^|`9 z#L>ikao!X1!T)?ev;I=Ei&Z!+R^}e-k6j#&=XIC|lNXZB;Gd!A_Eb#T`Kv=~ihPRnFdG14>BSHu|gJ_K(Z zy?c2HT+?O#Qm3*3cyW)|c?{V>gd-3Q+INk38(}`)odroe?zI^}c8#nGoI#46^nk_$ zx{Vv{R+BqEV102YO0i}&xxHav%9|WqGpNMwHfTn23Q`XBtoAbE$5nUCGp=A={F<)v z+@YXg((YEtmqVNe$#bym5pjIe^q^u88>zsfu~_HsyRyDDqf2dt{K~eEkMUSRiOr;; zZVZe%;>xdrey#{(JN3)d6qhO6wXQCm|K~ZjxNCM}{la~psT)|1=wIsZKp^Hok~7ml zM8}m7l15*$xyz>Ye$LjUD>{y`8s&x&NpCcNtt} zOkmF~;(!h3lr-bOyi57!)K#7r)U?K`3yg}`{qCqG&cYoHCp$*u?n1xSXIz!|Gpn9K zPhSyta=B7UJEsp!GIqf!!KKJ*+Xde;si-x^q7fT9X#{#)}0?qn? z#X-Qm0#jx(yIB7D_4hZd8tPrCuYaUNK~mk89vv_32WYD#3b6NZ@@*ASZqe<`IQ$Rr zf)zEPb7A_^O1fqvS>SIrk~2c7&(8wzHooKIe+caZP`h*&=gxTjtnu>rWJ{A0%f+;7 z6>bKT>pgF7Gv&^p9eYholp-@{2j;MpcuWP|6}o{x9_+h6o8||&xh}}wThJN+_O>6o z*lepX8-}nwL4~(sXm4K;w@=94hZP!Geu*1?qsH~0S_5!QegW3Mhv-KfAf8y^MNmku zBvbGB?Bp)T*U$50Vlx7bi{Ahmcn%|pm|PVA>x)&x76a~?>I*--U0%hfIT*{K7am^Y zuAy{hOH}<5w&a?-mWy1>$M%q>dk5~x+ygY|_B&HCEoa`rv^R^bIz*aVENyU6+H1rX zu;U>w1OZ)dtIn}16e~ogHXLn&<65U=s+dGN6j$y$Gf2ln!WsXk)kh-Ks=I9e*M!$JA@>ZaeE4#Syp_ta z&V8vrfyQ#TgOHTgyGOY1^Wt!i(oG0DGk%&*LiK@lzSNwd*9Nhu)yZu{r$JEJu)nRt zyEcb)2V}l8?^hwL%Q6A5ZK_X7YFF@IQYsf{XNK@0)oO3Gw_{`o2Mpzi6$E17LYQeI{R-G28o-r_?MdS{TG1)`y^8r zs%|8$w)!*ks?UI%qvR*W@D#X^O?eB}ETGdVLfDAebyp~_$?$OYay>xCXO63MtqYc4 zP_8-iX*2l2AgtT8!M(sH=`QUvPVhARUk&X5Q2UYbP-iCj7XQdtXDH9?HjnAH&PcUq1 zm88uGbWI-T145K0MhdQfh0@hQ3t>NSc|s!7&iPxrxpv1~3ya^GR=(VlI&nqrD~yU( zu8=}D;8On-3@(FMj73+7#gKLSCP$VWtH55P0K^}`!8&Q5SHWrHaYSAk0ONt5m4D-= zKmNA}sV$~kwymz+l(?P{4w`jy{Olz7GAT3P#=UKysU-0+q6^QYrt}B+){#*Iw#8LGyzO>cY`q!w2 z;jkR>Tp7{V%iQ>K?vl|?BZdPMla>DqPPqV}IqI$;5z=!^$mKygG~%0zX;x0@4u1N# z^of@Pd1*gSJq0nyi@;BPLDx7Sc;}c~WSVBHVpJonODh<%fAjH2G;6~ynSB9B&LDwl z=0Qf4_PqLyT+3c@`_qZ{GGQyJ2LorXp&<(Ib{>=%(Q$fwEuVvU1i?*_R=84U52UuA zpo+>w;v{aP`UW5VG;yPcDKE_y`uba(f2<1?^#rwhd<2L8cP*=$oTc<FzLjP($`JBxh|e9-9&OBM1b0;dv1* zmes3SZ~PwZ%K* zc9$T7?=PN?4_c;}Tbf zZI_eHr)`|i8bYrAb#|xZ;_eCSe>H>*!Mo92IKGk@FsT7Q%YuVHhxzK(>a>)6t*COV z=3(0TTCpaNhb}8F*Q>R3_Pk_^SSV+BbHwvVj;GUv$JHJ$s7vRkmM|1ZR7$lrDLo)R zSl%~Kp!6ys*pxaV(ioUuUN=v+bK(ri$3{9Q9kJB(qDCBzKlg<#A~}hOSi0>qD8mWj zw>;u(uJsbdakZ~|{YxCSyZBtR<`fxLquVeDG`yFz@?f)r zyfni=_ieu|3`yK9X#9wpVT(o;C0lp{+N(@rK16nHB7b~^`tSEK)2I7BoN6WbK6`n* zLc0t%kaR44#ZzLbyzxk#TQTDpX$rlOKZ3Tvk%vOWAMbJKNe^k|ttlWBa3EYVIR8$? zg;lYG-OesuJM?#T!{?W%Qmx{As>;0njTX+BuOBjv`G`z++p^qVHTdXx{|6>jp|JdR zd{Har?#Ab?6y76djXh{oB&GX5tv*uVwPS7JcE&sT`X55&35j05w#Xy6k2Ob~ShPZ+ z`85&IY!vyn)m;spYL<=posEeH;^E@t^$A1A{?4d%(A2m8thU%b{mQ9kqgObPYhQNa z7s4R(3uoLzy&c#T&~Y00veLuujFd;co=TD*53ElaT!Dh{)zYO5c;Ul%u9xc8VJ8wh zH=r@NNsQi3CE`FHQHsfC-$)X$Cc;6X-)f@XQZcZ_Rn9Whz@t0A?+E+Euz^;|(f*&i z-2qa`)^HeQNVIVR%t;ca**Z?cG&;SXmZ3PN@TX+87>U76tsigon#_1>9OMpq7C>Ak zZJn6+qpLDlb!c7NGiqc)3G{I3EXjLGPwdgMhBRO3ZiD5mt3wHsjw}JM%A09#-rEO zSIvl^F@fYMaKz41Kk^^?cVZp4HhA^Uv{*N;`{JKCB}(E=t!RrOQ^o0DsJKo4 z@~04^5vHN>9he0w3l0h=TW0a+wwtj}&<@>t$lGo+k-+f731|VMQ6}B?n_}#H;r^dL z+Z{NLFIHA8LWzGc&AI(i<_q?A;G>qyL8=3kTwG+{+}XyZ?5I)#r)(?1@zn5gm1arW zkU!D|Lg}yuq=XJ+rYt~EN~ z{_c47s049~r7HJ*=Af_M0#=onq^Dis2pj7dW)ryEP#oXRc-H>V^VoP=Jru#rwyvt) z?q7@@+1X|7!uJro#N83$h$FIErYI?rpl|e@jh1bH$!f+r1(z)EVKtq-dcXC8VUewAh>qA^e+odju@F5RY!p8P6p&K6_2wAbYzIk zdZBrQN*A+YIQZD}X5g`Z`Zp<@0nnsP=T7)!lifXXd+p2f*)d85ScY{Z1!fA%O^66(*3}XRtjqXLOC3hWd zh?1(C-NXqF+?v%x#q>?k-}RVg3u~p~bP|gQnKu6(3~l2U!#rOHCFg442VZ00d9 zI#IyL79onF4`q1qI2N*FLc(~|ejda6LAY0+?*x7VHWYa@z6u75V$mL$CSlWf`^MG1A)T5-u!A*I*gINWuN({a2FQ!&;L! zO%b7{1r7a>vC6{PsVD&O_0-f{y1{cf5mEVtk62DX+q%5PufOwxe~p ze#|v#n~8ddcL9~Fr|>ArCj6_ai7A=tJa3pbU+TS>(&@WX!w4bitEf!ZhZpoYW4@B+ z!JxpZvX&~Eog`?nz^-8{R`aU`3n$yHK^L8|U&Z)iRC<&bQ?=yj-jq4c2$tZ!>^sS8 zZVF3*lh!uZ3nLGmn99nM_cqd=KgD7b{XECq;JzvbAOXj5@$NO9VV z-H@OZ+3EabMQP!Win+zV*~h)cSDzn%Gi>djZA%X2U4>}J2rJW|rjbMjfV?!6Uu4TH zWIApzj#GOs1JO)seXHB%@LgcxgT*|M74vEd;x=1b+^@MG6x^J7Eo>l#sOy$_ zDkJtz%QKzv*p?%G4tOv|u>R|EH=$_Ry3=_;*<#mYB%u+h1RoSLt`##O{>TNsjODR8 z=FxwIU)=3^|*-?Kq&?cyVeOO*K zQXxy?s_ZH>>M&Xm;zD`CA^}N0SEF8KIv1OwfqU`U>sx~>8I(aC2lVlGppd`67YSaW zMzxVeap(coKZ*U+EJV!cAYEvQ&JFKLuf1ub~NrQQ(Icc<{)cM7U|0RqfP3Rauv= z0E+GwWN{loP}fgn`T3C^|2C({e+YG7&tO4BR?xO$?Ai<5iZ?8wUfXJF7*qjn%ghum z-z;zV#NaZb%MQeBo+kxZ}>;bjOYxbZutiBV?{g<+n1`q=5l`eRx{Q^{KwgYozi+{k9uU@?2L!!7>1 za~B=v#T+WO!?{l;*T$6&T^Gy`-lZi!I?sIu8zLijiEAGfUd&k%j7OaDM+vq{`dWyt zELogKt8$k(EpQUvdOM<|RqMDE*#G3Kcffw8yaTQ={^({{`9thLvs=sd_47c6qLW)Z z#+(I0T5g!Ps+uoUht`q+RmAx+ay4@>)QRCr5fVgkes%C zs)A9!6i|I}0!@QSzUB+2|JUV?Ls1{p%sdE8hU{^>>*UZH5_#|Bb=+OUf-6p1Z{q`U zJ0nXMRRAmi0G|wT)XISWuS$Ul9dL^K84u~Ew)fZ`tJ2vhN4b&$PQ&ua2Py-q@7=aY zW|~`@W^Ni&48eo@whL&nktu6y{ZE({jAFjlZaP|@peLjsdERFpz0Q|Pmx9)!DJy8| zX)(Fn1`!**oYRV;imX1W6N^7vdwsI|GfTgvtfpzXCnUXJVU(}sgz1$u`WPM8=ZA|b zB?3lP;LKUJtr%S*W#Wd>AODifK85T59Nq`NSo@;9vGLmNCv(7f78Wc2IuCC->pLNi z#;3-^iH71T^yDA3$-gQXqEDC*Z7+r)Y{c+TAppjndy3If&|fz$+hv475m`|l0g9CA zOC~4fH!XZ)F{cv}oC$Fo!^WO3A9h;kRFU2DnN0UC-_fhzNI^B3Bri3lYqgUloE?Zs zm`*f2x_udr#YYo&$6dh`u)@eJ8M7pi-m6I*?yyt1QcO)xM$pDe(VL-te&2HxYU%M% zmT{Hk9hG?hW!>{Ic<1>ua&|x>gbcy!lQTO$GqJM88e4b4YQ-0lQq|EknTxBa@sG}w z<1Hvh6~)zwR|Ifu;yL_Ib#b^rrBE3tZaBoG`n>bqjCr2$?+P^0ZV}i4L(@bMQi=aZKmudCg0Z41R?r z1@&>T<<8B{Nvu_G?d@qXN@9f-54oFcSkzyWL5Mp#zn!0d_RT_TSTjNm!y`f^dvDNq z9@V6pRd1-Ikl`4&^P1$S`+HHGW5?U_c2s=kG>G{d)vvI*Bet;JGT_c)GO5Udmpa;K zxp>y2K|Z#ue6QuQ$P(}o(3uHId9}qw-8nnBX`?lYdYK=1W~!MXQk$OUtq@QvONz`b zB61;{Ph0%!l%rUUJrR8%#y=`KWDHaE!}!yX^@=0gkkCI^z1NOwM#aP5NaU#m7#Ax4 zAW_NPvVOPt*TmWE!D-^x+_l30*U+TyyfLY=%T}K8>WDuHyLJO;@O<6P( zY2D+~F5hQ$Ve0Sux`qo*oACzf?gdyCi9y8O9iIfi!k>zg|F)GIZUKik?|?V-lJHsb zzp938x++A_##yj3sEWC?oy#7F%1ZRxz|bL?o5-_{*?JCUTz|hA~9dHKH@?j_K5I){JntG#9m>PlbaH zm3KsI;uXF!k2#cQylFVne75gQ+;qVL`kss z%WD7aE!z6>wIh37<$-31{~yb&U$q_PBntd^r&+Q`wPs4oMb{I76-r(_WxZdB#H-&H z+gZ9?YE3$_}2uU`5g;>D_>d46e}$CG*NR( z`SHfCU}QcFc^!b#cn_9voomzwR5Ip_N^*k)5=O)JG!}26um^Yt41-vrS^;(e1$S!~ z291R(S-44$uuy*mGsMXnEyTx-`b_9c*P9M;WG-QujS+|m#WvLnm(~sFt!lU>oAs1@ z)5;NaB5@LQ$dnBP|CSS+^ny3xqSNIE6!tetDjQ2bL1{Q~N_k7|z~p=|d5(B#T1Rs; zA7;a~x|7z*yC=V+d0E*15CWjWWM>wH=uO^mc1zoX0~7hAbSqmgsiVL0K#~4`3Ne|e zp(wCX86m&KJk8=Z}t?GQeho8-)-0J3?{HtR#E&bblN*iOVA2|hK0s+o2yy9-3)?o!s z`W{Td9eG^uIDwW@4C%V)mmIAJ&YU_o8j-a+KDaXOdFW^;>4JR0OA6zy)?)1 zFcG6H=VVx0L|hNP8li7f98EWPGz!1%vv^Qdr_Od{a{1K%dYEMFRp9tgLBMrY9pjEV6&7Lric=G4GS5?aM0?% z?@srppdir5EjtqfB9_6A^R7CH>M!)QNFImIj4Tvdb}Sc^SIFAfYDAmEGPz~0zA$Tp zBC`L}k;2&3VN+1Ucn~l45)(iHqhE=ODvzbi+Ozj13j*vZjf7ekTDk-&-`v8&Dqto3 zUpfNb$JNdaFhF1>J-!;;->!Q4xMgvZ<>Sf>H|?Xc*hyFDlFjhU#+U%fU7G?`x4SwE zWwGz*NMhe_;N$$f7^4odoL!`rD=C&tc?`_Y?Jdu@l11(7%U#P zw|qwJM;Ox|ojLVvzRTSkuWJ3_J#^4 zvv;TnD#`>dX3pvSKSI~CbH`_VqBhR!JoYvJB_!VI$FyDwg%-UOLmFO;8Azo!auATR z;>u1QivHff8bC#=&rsWn*?l#`jOgOb7fk6+C0nzyV%5Fu!w;!mjfjlLtDCbWroL+I z#WSHKmOkEDy$50bJdvFp+_lo%*1ln0Tjd=ua||=&y5lR%30c2?1{ z+?PAdV=-tj+!d!uQNaU8^*kj=Uomz30jfB-79|Pw; zA6Gw(T3m@agpycIQK{+ASs!QWx~a$4k?uwuyHyo+se<;jPKy}xbk(6G4u7wr-;DkU z9fDud8UI1Uy3{9#(me*3R|FYH=fS5;o&S<6j|n;@RM=7Q-KkY$nWM|H~*6V^5i|lW2$DEJh&hc?d{9eE%y44Ta03xt+u5R)D5F6)p@g$W?}Q>sRR`J0peJIXzd%J z85h6!+Pp9PMYZDhf{agR8kaWy6pQ2-Mb?L@~PzlORCe~ZI_7OF`up79ry@<77h8_)=~+)>zK$ ztWkF1Es2a%~i#)}=3vlm3s@llPO z{Gi1a{KXxe+Oz9l4M9TD2vwKdF3EyyxhxCp%YlhRkNTCZuZ2F*^Y}-XidRMH1o+x$ z8PxMRqD~pz-k|Ha8@s0oWnbE9vcaJSDFi3r@#enuhmM(L%L0AxHCKgJ#T%Psi*)d0gW1B z{#BBL6fC<9Uzw|ZgvN?3!xS-N(HY082L&Q59U6*Fh00BWCV1)%BSXcsrfNY(s&^`- zFPKC>&v&=O#=jk4r@oes3)h^#-6wOnbycxZ-~~q!zhOgFXhI=Ydb!w&FyS4E@*XMh z1V|T%ys%f?#T2w-PQp8H?q>LO#Wh`n12FYB)+~s!O1y^w;N+~5 z_`cTY%k-;_C;8&|RV^I}qrxlHWLqN`!zAizE_KNtuf18qsp$b zvQU!iUb={4;kOkz7FwL_4s^b=YL4KtL#gudiBf#9YINfgbVk4i*oaWrP^g!R56lhe z*|DR^Urt>EA)Bt1B8E1HmKXzUtO>#4*hCH|3(Re&zh#)LJ(d?si;F)%<(ZG1=KHx4U88*QwnB_wwZnwwf}8k zDIPVb*~E_SzBOgE7-n@wgrblCson(^I~4K#6w2HA@PpN7mhk24uH_vV8mCl|8jI_t z$r5JIt?yz}Vkvs(?|&t92tZvIFhwp-t!&iRwjAQ$;@$V?)`|)F_|dvL=kRbOh99n4 zRgdsHJqpq}`OxbrYV7OH}y6 z01B-KL_5Xn-Guzm_zJr;1g5~dd(W|ex%K9sPVQ`9&nsV(qT3k|IVsWQSNlV&eM12l z003J1DsEa;tso^aEXM{*KWtJ2TZnT5jDf8w5*Y1mA3_>ItxvnvtbB@5E4eTe(BE}Q zMpoDBRby}_cetUdE?x%$C)sA$OoX^12aB)VG|nZC?WGGbQA}t`7zZ0?+JOU7L>Rj8 zLB)e4a~3KjBTJl%0sVJ-kH5GHzzJ{O70AsH(a8Zc%O))GnUXVt@`C9w1bW+LSchKk zT4Cu3;1zva`tPJLj)u}%;c9P4@qX2#GWC5=>kvF$8FQXK=t}@dVfkVh!)C6HZXure0bgWbypcbz367Cj>(tF&fbNYX1A&N zN`UbN|J^V9pz&O(f8P+Y$pHm)7L2W#jHA|Z?Q3Eazx9aJj)|anWVv!zm2$Ckpq9^y zTX+0U^Nj8wi;Pv*He8+kXmeDWl}?f8;ic=HA7pe0w>lT##1U z|5@QSs)2`234UNQM)E1f{|7SLpj<6DZME}N^dU6d0Pk0RXOuV_xvpF4fHMim(yv=1 z(o~`W>BB9%#G;n9(&v`dRz@`94!p?RFPnIO)czJ*7YlBKWCr&LZgRL6dWSNhJrOWx zSrDTWmSA?!Uz@S9$lJb+0L=8){s-g}ch1(bi`{F^Nch0((;~<$LPMVbl)crLaI{xO zec*xZw6jw7HQAUZf3U=#Tfs`BNOo``x^#?8SDoZ|XHCgE=Q3oJ0pOaoOa_z{=8|9C z)L1akLeAqCBMv+O^`1e!@Dy9l1lJk`wt>#P4+2XC!W?L@yyck5-CY1-e0DU)eb=t+ z`R%e~VLatBmEzK1|UP8s41eNS4^ed3_JW<{wSIJSRV5q+4Tz27|==6Z-?7u zm18iOeBplWczrq6uV$JbnARS19$$oJ3^}eb1~8ZaeGxRpBlt?lrHDF4OWCiyPQvf) zTH2~u>c0=0bbgsWg|XqW8~S$eE@o!CsM9q7>1*@#eXG+HCQS7|HW=kAiWV(;MpQ$| zmnSO&oXj%xf=6rLIeQp?5%d^wh+lv1?}p4{>#d>m(h(M~;-bC~i5DUjNZ0fPd@m^)b*qBl~3_<4Je`ml(o2OOPJSCU1F*{bn zz#WsQ&?v50w=7IyzKfcv%IQvAC0i0@9-Z&(yo8CyC+U8J(I=z{aq+_)UxNK8SW_E6lMK~wV2Bu#KD*3@6e3c_h$&_oO2IJh&#s( z^o!$Of@eltaPIesrhf<_X$rCYGui|ydWNd&TJ{j##Km52J_q%|@+{}i)jY{sEM2=y zT}OZUlhJfgQN8T!fLA@_H^VK! zUhKIS?C{EVykGl$p?T-)`)5GOY=mKgoUSA8?32PNDgkZOVUvfgK{*5+Fb8<^If912 zP?V+6ZlLAJbJSk>gKk{k+^g|T&!dOc=IPb_E=u#rcDT7#4Y>$5X4|LyF{eep@;wE; zf@iPu!K32u)x0-#=d_Z4l3(d8B`&7e{{4+--m|hLLIOq|2)%hrqaALzsrr6+w+&zX zRoED9L@^2$b#U6ZsS4n^$;W+Z&6AFvdVBk<#Ij`NvTmtgC|Dy8F^6cFJ9bn4{oMb@ z(pfk(`F?GD8zC`Zbi;trozl{bu7RX9k`mGg(vmW|rMtVNyOeH}?iNHr?_hsv$)z-e4-A^$tdMj;LRphK`yU|QN6 z$yip|_^U%UM38}Xp&?*jxLdmig$IN62FRYRH%BHSF#U1~^Gezv=19?B4Q#PVdJBoY z_KzSgFXNHkbg+s1%~QnsmI$Z2xjbfo?Mrqs+p+gdVlhYkRM$E>knpTB>YzGsUN8Id z`D01TX-UVG7@&0;y$^B)gg(zZ61d^(?)_@;1DDgPT|cJS`?IC!*}!$(5iWO%_)x(C z27zWd`rTs;!PcXEwgqk2#g4L2y_PWHzak zZ&f`&2!L!WOZ=PhqB86_8G1vwRy4AK_hM5g{S1Wj5^7_P=Ax<-&#SgG2A*B&u4+C; zH)#+4ejN6n+d!uk?2AFWZt&uCd#o{a2>~$-5&iatxy+&kN+{2CXJsB#)AtZkIg-y< z46dILX$jMm|ZeVaZt{!%j*j;Sp+_<(p=%m_5(OIvJ6{t zf!GEdFG$FDLecYnsz?wYCQe~SV|B*-=M;R15rV~|+@U7VV>~1hWdn~=b?jz26<7#z zO|`y>qz?=!6;VEHEZmeiJ#Kq2)24s`qMHREna{dlKxwv<=%V25yiCM*bHy>;oZ(yp zwD>>diN`LM7#eLVWvHXQWnCpTo16S!UpJYvSFf|SrQdo8-tUo_m2H}lO;vJGz?z_R zMv9!9^o3&L)wh8?E{-T=@Flk0hK-!aGTJy4mWtw4iXG&foBrc-F6(ROJIvJ6_N+8e zt3Zec^MFx(yRa62<(3!E+Z`zy16n2S+Y0_Sqf04jazyZ6EC$0&?9S??!Lsx5T$owx zktRSc!&9#BU4gN#!K?F1UF`;r6}`7trGaZ=qlh;~TNA=f$LL7H%9Eco)w5%8G0d@) zqT32jJWN)PjoegU&WCS0jk3;PJHLuXZ{=#MxdoTM)z$fw3`lfd^b=(R05)2&tG`X5 zBkOW?^|Y|gH^WDP5Pm#Cb$qj*#pYcO&j*n;UN3&;z789dTp#Q?$nhYRv8^RtMz)XD zEX!QnXB-Lps1wi#vGqq7hLN$|5SBv8|Gni70kYU!V;vg0fLBk;Nahuh*cTnoE9JG# z-BN9C!ZSFYQR&F1|D}FVkFHOqs>fKbH(bNCDp@%ucRm_HAe$+kZU$eI@%UUNwbJR{ zM6ke>!Uu*M39?QpYrVtbx}(n|0vBofWF_?7RacLUvrOOYt6_`w;jK`MWcY62rj|;c za5(C_OzBgb$0x9(g+Y;Ruvn-_bF)Z4qkTcvU~eccu~7(?=>t=Xo7pbuc>-$i5ZS^^u4&bMQ_RkEDP0jN$JXNyV=P(GBEe z1Zw&y0qBi|UGNutdtF5GLGZnwN|X8tHI96yK~M7NRnk+?Mm~c}QPs|jqNK7(gktbZ z3LmIWbxA-33gf(!xSoL(o}2^4v-){H9(pjTZcmP#_8_gPH?gu%=l!R;+o2T{KUJQc0nq zt1o`>&4;p+;x!VAcF9MJ?aI`y+z0?jW)#ZEOP27*QnP2Z$OU+yFt9gg=sELSvOeYK zkQ?QwYP8Smv`m7n{Kc~I%FYEz;D$p{w&H=qI~Ph%2{*RN01u9IERszvWcY2>pN5fk z0D5mnR#jOwqh^DuNOmP(0UU({xv_1Zo1ps!b`|0}swwEZD03XPkof&W0?t*T4Hh<4 z+uB8M)`$1B{FA(R?;mpo8Xp2{ZLL@Fg%~9W&u8}&x`*(l*yQ4)%?RW415Wp2p@_VY z=Jb3i)!Iw@>sp|Be!t{7%R%ZbFNWodJ&NIzMh=o`gFn@;!@ONdXZN|2Zxvn(_YFvq z8vHbzI#)F~Kd4;UmP&9m-l9KZG||8_6Krb7@udGYwl1gj^(pxLX~nHnSKCz)T82Ys zKCwq&KN79_3UdMi66k{LnOiISC{aY2bI}Uv*}U!M#;zpSN%2tqc2N9IY{1t@ulXKR zyErpn7XT*23Pr)mwMv}eEP2ikjb_WEPW;bZ?gSt!z^(SQ2|n_Q@zCBzF$J4vP`gh7x6H_Dovwr0XkMq$3w|{3p%H*@lALFPsWFf?DeyT+OJQ3!=ARhU2~tP3m4`lrs@yV_Z*+`r5$6O&?r}#B=I{%%oXeEJ-3}_ zI*kpal#54Vx(M^h5CUt!`=rF<^pTwRZei9iznG_GhF%Jkq5H)0qflVW@xgm}&JOx1 zal!~q?U~8Gn6Cn@&j~&i#yPZ3UFhb#E!_H7Lr=>o5C(XIerB$zf}Mgr!#gm%gIl!; zUphS1YPa~~RBXOSGn=kd91#P`Yv)=r0G)4;Dih^XHnf|rVB`?9%{GT{Sk@QBkB$or zDfE|$l|&mG_s@U>GeXbx*_o)3=D)E`7D$<_#DHgC{q%oJj&VJu#tnpFMdxN>FhyB3 zo4jl{PXd_n^t@4+?mjpe+#r{a8ruk>j+}l@9MIvD|G`|$K11GO727)H^1-xJ25P0D z_)u>&A8y`#-vqhwJK5<^@B!t47zRJ){%TkNLE$do)rii(ioZ3g`%OjZPZHC<9v+-j z2C2DNdT^{=W9jh=j=Tl|vV`3DiP7G@LVfv7#9ZDVGVD2*bkaQeWusn6q)){ZQ4kHy z86*0iA3^D7mJO3IN$J;$i9}}N{`9?d=6Zyf6!xk%6 zFxpGc>;kGQD7k>ar}2EA<-V*JSxHC;^#C_z!2u6uL%X8H0i_scJJI*IhbMj zuK?~9!j+4PAk8EMx}B$4t?`}k!+O0`tzof$gr4G|##prvkL0;bb`P_y^P{i_V%b$Y z5x^+?UAs~)NL6>o10528itP#$xFMd&ORrj(kt#ZA`dXltWj#5t33}`0OBQu%E&sk< zp63IuUHxyeX@dpVUdr`5+glLpU`SztV2w~0t*}UV3X$eizmb?x6ZG4VN%?}&H}LuK zVov(njE?@BSa)_LFL0QJ}pchz0$0dA6bF*<;CMtFea*K zF3?+ClVuom$DFQ``_AN+52bh@$ znpO(;RtuYie~=05sqGOAoAy@>t@65|GW)>`vBmN~$@>E;Yx75=DEpKF{{&`QJT&qUUl<5CP~4B79_#+yXA|rH2pvbr9Mg?<-#(|G24(jM0v7xF)Hq7sF7f2j6uja0cs4)Zm+esUtShZ8mk*52eP$`D{gcgB)x{`~BRS0z>?o83{-^{bP3Ps0Xq zugNw#Vpl3t-{5168yCG|{8(sJp055ylEtQt({ZVp=;E|%do)QKU2bXE!2e-I|C`s} zMn+ss^zU}hLq@wu2}7#QDRC-MG+P@qS#T0;p~SEKo1F*Qmz#^860MMcxxCzJC`oxw za3xNtbU~^n*&8Hc!Nq)Iv9DaXP~OFgbHXpdNF< zPkzd3UO=;-8zn3_>`L)VApx0-Hb{lltZV;?(9_fhbWT6*fMcv~E@!7^gPnjqkS=l} z@p{vVz$!AWI--q6$LryzzZ66zMP&~bhBMnc6kx?EYWK?tg2#|lVm@OyUuNbd@*_iE zi=a%IBKM`tsgkWTb@F^CFInbys=@cXP~p24C(lGVm;zzgnkGF6wZ`9?YR+Dd`_$Cu zXlPnTE-aT2Phj0&ote< zG<5bAbJWKa7-WE+)(iN_S`A3ahF*+jm=ON_Q#*YA{6v8DjFRow)aCFbCx5v<_e) zUN{dpSaXushe1+5XJlRUFp-&Hu|u8MU1@~>5qc5@Q!*%7>f5 zwR`>Jc5hN6mvAclwE8_d4goAr>I*v%KZOj1%wWP6IL*$b4C}~tnF`2$0JT#P%; z5h@tj^yx_+uQ0rm-}s|k-aP*Yeg5ui?sB1GivBzA?T{g?6e<^v)ug$P?r%aWG!0Ex zudBaLp<)22?JGC74!pd=qCTJc4A?qFj--fqt#5Y~Yxp*?->|9;GQ@tqcRM)b3Gj_2 z5ve-jr+Klx*@$FQ@4tZ9swOC*Y1Tr@r`l43gF_N_sXfZh?sH~eT5@W9KmEZ5km4(S z_SZQOdSGHM%7~o>Ar^^kAv*LZQWq)IEr%N~PbLJ()McqL@nW!uL>qc^wB+D!zwpoK z1WHRJeVSBDP)ZPiNzP^pDWfTyBa%`5z&(;!#mcc}Xx!GOL=v zPibGgouX1EWTNXQc8=BHcd?!T9x{n}bPQ*iYB~=b241V?!IR{goWZb9$=ZMSH_nI& z%&v~P5=jRH$Zg8l$ICZsZLtljXc_(O)AD|}-gW+ZG$IF^3zx}>JJ|&_wkdy`i+<-j zuX)|V)J^~(LGb@-AjHH%MH?K9GkCW&s$=pdTf0R1SHS!$Pk9QDHHt~{hW+S#YY>#2 zKpvLN>yH?Sh^)Wintl(#HNg78<0dj*nxV~Wz8mS~VE0*n!Z5L_x`^D!LEt5rU*q&q zfKI#Ed&x{QBv0<(=V!(*gz<^D7{1&rn;$X*!o`?8D!7@&QfvF(z@(7)`KLm;Zl%@c zk%kfmi%3+tb3OeSIj*g6Y9-e=b1O`%50!`>=FCQW?y;6{cODw;sa%{Mt>~q9P=FxR z`T&Y4BNtHV$1B$&7hQAJJHErUl%SLNB~+fVM1$R*VHm@fZX-`A!Dwc&P%`vu#k6uJ z6Z3ZYTQs06Igd-G0=0`MMl7EkM>Y!)qxWU&KSGBQpx?|R4f@CnLq>8D8+Za35zD|i z=++yRu%lF(5=eG6y!Ti#`Tn^2`wS2S(8SbRk?R3A@Clmhv3#vbMSFa$)Cu^e{zHM? zgUgb54C_N%<$GUpO|TlfiP3SHxURU@yHoj7(F;$*t~y()nNL)@&lCkUsL1%mNgIp> zis*w<*Lqf(W>?CZo}9v z1^44A05$Mc5yWgYn?w>$9@ks5$~fp(orX^SAseOi72%sVC7e7Am4<$*zpu=>OEq zmGoNwtD$0eS5b*P3!?Jt+Ee(CH54mRwSY(*VJWCvZBNd>TLo?`qr5~({$a0YO>WNC z)p=OEo{`B(_VU$Rqc6}(1=P`iAypgqmFB|w1iguV@*yLVu{S<#RZxq!r-g0}`DBkb z)+&AsIrsaLI%aIPsC~_=O880P)^p0%7VZ|K;>Eb`xRYK#@Dxnp+oQgH6ccXWzy31D zrs=w^yMK6m^(=nWieuiEt&aD#nw~)(5$`UMczWQhd`eT6jAlCx?}!eYp9`wiSNUIv z)Q-~yV2G}Zg?>WFE5~JFXlg7f_sT(hTRr9E+$OI78yyv9o}{{Wf|L7JE*UnvIqzQz zthV*M)L75njQP;7_0od1Ic-@xS&Yl#N+jA{5R42t9qVlCqAfI8pPM4US^k%NB!KVtFfh z>+{^{tcnV-MhqT3mvY({0f9i`w%uTVK^`@h@dG_VLk4JNK)S-zu;cHXgInZEmCQH(0dIs4st$ z-1-O9Qplm-A(qd07=gX$5#HQr2q)!(x%-A!WFa7&iJfw$9c1xIQ+90dbmClw$I~sV za$tK(i~323DuQ&hgR(NO{{%fO3iDK4iQSN>Lbf)~^2xLHoI&A*&vAAM%|*j;!~9zp z3kOy+#M|pLa$=@RU@ngD@W89Fs`)AyQ81mYr2>)dh6M&4CRP^{B|f^1dg#vj`P_*~Ajf z>+<~aTxp9UQ6{lo4!O#haab?nLq{RIgyg41);tk@M6%kI7J@Ys zp_76{L5WB!>ypOSLOAPOeF>Y>&G8Xq;$P7?^;(&rK=927W;qEpZK98P@o5^HEQ9pm zE}qQk8-S}d-@$tke=2zw%SN+f3>VcG;&hB3w^pM^lhtqOR|WaK_4<+*CDo0mj{Xp0 zSCwAMXDXYP*bUSaJU;%-&1F4$mQ`)%XTFftZX6_=(RcQy@{7~f#}6;?thFbZnXGO- zw03&AA!6EoNilPo`KCm?ScxwT1%G%Bbog90z0t4OPRlOjlim;9Igag16O=Uz~e zJv+L2Sk0KsZV3;Saz*5lM1(S7n4@vLapMirwfyp>EZg?YRO^h`7xjV{t(8sH?>5|u zX$^j;WM~awIz@dJ+R0$~t)+m1A@pL&>Pl9_>}Rca@}@gvP%#C^sL`|GO=&fE=UVIT}^LBd@K*QUkM+SG^1Z`R_gk^ZBi8bLoPSXLNr$_ zY?dD9ak{}x9}^rhDShz^#&JwdVpe}-avD_!(;oh`_OFJXoUu^ZCLB1a^bOJ4IIJyG zz(jfU6Qg{+@4&F4)T)t`*kz`6lG4GvN9V=z+6Wbb$VMg2+6zlIo09*9kA2oXAO&>$(ZBG^BiVV^&Q*K~Mn9-Cl28u0!HpVlu zL>*!8^c?k@RE1A9O=Hf>FQG3dm5t3PYO$UCmXbhsq_)sLm1 z`oZybp~K_XzBW24BmuKE9V6)A8do?1x>d}vYGLJUOmnYS6d1eTvRLl_t@cFFv4UFN z3fE=s=Q80UfgV+gQ07?O#U9!1Jte12Yh;C(b_O#Ji!!r%ubE?7(+`XB>xReEwXcsr z2@h}}N^rasN@t9IFx{XbwrLU=^g&DAfFn|oVhMS|YJ0#cDf#`Dt)(L$q7*titEYq8 zP7ECug7rzfRN^%6aM2UM*mTFPD(R_u`)Vm*!;NA{{~w{JZu<`{d|cHb*ThOh)cha; z4Cv&H6{z0~ASk>EuZBMsc%>BB7Pq@EoGX?*bx1hktUh0)fW>bYxfO-TaoNMTgKZ6d zM<*;#oEl8F!+A%u>EAJ!-`JGV4E-30FvpPx7tiiBL+H1s_r^_>tEWzb&E1L+ytgyo zm7V1;=;?yUXD~uI^T)N`4F9clYW?t1T{+&SCY9R1)q(iPoXxF_WB{A0K|WgR?2wuB zZq{Nh`;SkkkEX(I!kyB4p`Uot+STKV_G!Tk4&-%WZM0*GKc3qvTjgchAL{p>nSIx~ z^qrAEeh|C4p&d5fF*TesqX9&)CA)u_f=8HO`44cin6skxZ|IBMb?S3HoLF2%y{U;X z;iCQ1j=)Jg_qxv}kdJRR;NZ$YDbLon-Bu;&tFjiv!TOjE4P#lexol>Tkw4Pe(txtk zKCbF^6`@1uOpDYO14-D*i*&qMb7ft`a3UKI9&DErADtXi)<^AhJJu-$3 zUEGNd>@`?CIvq^Em+xXpOskDL+d@;&1}m)CHg9`o3)DMQ+KiBY6G%i(3)&C8RT|!W zW3)G|3{zws9tN;|?=u@w7^E}vf|0moAxi-edTAD3msQUItH5G}dH;YtU3en^B& zaVMCk)P&zO@x_Jg2@YxYZ>?I&5sc4alq+p`bwKwoK_MEB+rmvs`AuBM(nr3E!=GLC zOM4LJ1GzXxw!VP{fq6ru+Bt4zpsJJy-x{Pqn{PY*<-btyCp8ud6U)drJLQH+I4gm5 zX)czFzgS6~^`>gl{`F04BQb^?0M!h1m7WDi2cj-6I#dSAf864q8#_K$^+1ei~Xt z!1>&_992zf0ir_j5Mku#88XV5Mp!0j+=)XwBIWgwKX>1@_SGVT%zH!m@Mzp$L{I7 zbtc$~h8YAnJ*;kA=1C6?fLmN~zS!!YT$t2ErnOlw#uo4W6Et21qVPP`kcLB#P57_h z)+qJZg|pDfN)73-B+J15qup;%DhsX*1jB{8JR;5=##?vpz=TngEATbRe zCN6LNP8zz8=9?=TgVLl4Sz(d=s%&Iw44!f?IX%Vk7SuCo-&+w!#+vNFx#>iPiug4Y zc8YTp=bU=GJZ{PC*iTI}wl`;MK>iH%Z`|iD;7HqHQ9gB56(S<1+jiC{HedkvxHWYnI2CdATDu%%lFLfu&SR$?VnVX#p%2mwU1Y`vG%@ zoVI9_BL!Aq{r)H-448ry9=d}eDg6i5mw#4Dt-pNn8|p|)>PY(7TyF=?*jZd{YaV9D`#DYcd1?7DxsrSH4?QL?S- z?t^|SWk+n{yq5`W9h^W2BKnMoW#NN9FdKiJXRAWW+WOy1?ny59?B6lu*JCL28{2$e z6+D&0s3z_#9U2QOORAb8i>QtAzC%x;JzcdXvRJ2(l2O2<{)&YTWW{G%HH}-c!Ca_c z5$$bk-C(r53{N!}x@YDIhwOL9Eyv7HF&SwRKGW`d79CvMlkCj*u9gMl0ggZ!Ft2ZyYRTvOY7(u;i>OOkFrNckq2IumPP|?EBfic?1;4PA-iC9~fb9VC8 zg`@gI-NVEMSB_)t6ntJx0%>$Emjp(JtId$4YMqfU#q`Ggox8`5 z17_)U;M(K%^pctKt^-hwMRT*{#g6#pasFX1N$;y6LcG9HQZ5UjpFQ)Y3Mx8{IfEUS z0p+;Q8R~stb}+1D@+o7b_PkiP=8c{kvEj0+$SnQuQ0)uT>vmhwXWQqfKsBt;g<>)q7FS8+DJbw--ZdUOesZ8N_LrT>O-x4eFnCh^!U(F_*%_ zLTdPGxBXVKw6a+`0mb?IKqmD5nhU+g~2LeZSHuBgpg`2d`~vcT$G3@tfcR zl`IQ=P=?0~o8Rtx>l#PauA!w2&^qLNM6w%l8$X`V$^M)gmx%twUwlkKY)W4>%^}gk zHRW`VEkybE2M<6Xh#mw**+?j#W$`9A|NBDYZRm_BAsF*GYN^K9(Az+Uqb{bGBbMRa zTu7U!AGcrIsENA(?+F)|MWgXGDH%>ChwbNW#H!j$rK9fod42fmo72@UZvy|ob`xa7pow2DVfUf!42rGgn7 z!;SB&X32^+3M8vyU&(IcCQ&7ZX7x?;5UnkYfLD^S1-v!M?gR=urM=Hd)&*Sd#O_?> zaQxgfY%zd95WNx%G@9U;ro|IUqsUlaCI6=s7!rYq$a->D=g|{aFoBbR(UG*I?c416yKhNJ{oisZ zI@MX-NyI#U1_6aP)Ov%kLSb^cD+LI-5PVUb59Zu!76?OfD~|AR?-vm+Vkzy@;=n!% zn_c^lx;hqJ>t8cOG~P5l-`)m{eu7*4tOW74boRi@6}eO1C@u0lnA+z|m2Z!8>*)Wg z2Wv{}5rLg~CPt#3;h$2`gO?-Y0t2t`BY~S%vPzZ~gUGqI=hkZFcri9@X=G}$F5V2a z$3`BuK;bP9_E=HC z*b}A8l$l1`=j{?RL_H8ws66K)!M z3;>*T3$KIM@6SDa&SrV6=iBT-<7G*J3rj-k%P|sC%Yz?$tB!SiCp0KjmFimRp6r0W z?e)&ayVlESS#Pz|;1n`&EP}6|(UApe9_RHJNAbAXNe)H#0mXYh&$<31$kLw zYcX_WZ!I>*`mBOK>RYLf+HSz$QrxnmAB!(tGLoohZO;=Gnmg_V@&OS5=tyoLz1)~0 zDZjZIti|5RF^xzVGf^NP#`)ZqqqgV0aZ?L#(;O^BZA3n-U=76^ z$;A_vOo!&HohjpCQO*Ox0z}uTlTsxfSKO1!Dm}Sw{YMD&gYoGcBEPU;{2eR7;DenN z!k}8~AZ_rm&>%E+gy>WXLn@H&$vad0_Bz5SrGsScDwxH7+wvIyTW}Wr?mihYAv&_d zz@D7NO!UN$&_4-(cZR;w-0sXn64z?N0>_GOZzXrnEO(@$)0rhXfmlOo%5s|Iq!3*9 zs`#@e&^JC6U5X)4m_6RfS^yGKyN8jCPqYFoZO*CW7+4px^Q=rzGF4tDk@$qUcYfSb z))dZ#u2$BYKyQI3U^4EVKuZ+hiayil!7iJ1U%Z!^Bc0eRtVE*5I`_v!z>h5THxJ;c zXaICRgQD@^>^a-lnpn~suj#QVf+n#st@MRt>0iWWyxIPf*vl|BHA0X_(M>6j7p%GfM6-t0VJjIku9mF7zH0iolb=}uWd;gXj*Rm@h1$>~=6T5GNGKE+$L07rXtk=wybJW6dg>nc)0*e7SqY zx8zudYRV^m76QQ`NhQNUN}2${m2DC!?vV1ywW3YyU$$|xvQ`V35YO-?MM{l6Rj&@OCf zah3D5?t!wA@l~+cugR4u*)BLpszpcGkrJFm<2EUIV7MEW<}C=szxl`qkWHMZN}I`` zO%j_729$@4K^I|9M`BS_wD>m)Sgs3<9_QI$Msi_DqEDHejvb?sV;1=IPjq(`0QGG< z0&mI1OnX`|-1zVFv2j8(c5LpXekVJ3Rg1q_Rs0Ig;HsTaUhO-(J>{+4T5y~rlz^HKNyIT-|`<8VnC%J#^k9P(ij6kj8b5MjSN0k5GA>al0N*T>6!T- zBW4p#;eJ;8PDa+SflV{B5cxDZ6da~SQJx<_Xaup^yMk9f1C2%u5jVR@W1{)#l*vcx zPdQ6>(m;wqI7-~aK@qO&3YV8+%zZ~ULjV( z`by4@)g7)~=sqhqGh|4-IK!AN_;T%G_|N;dEuL#J;Lu(~DWcb=%5V~A-rnj~o$G1G zK;F~5rr6XQgAM`?WDgzYkZMjJ_Yi-relRBXYfLbX<2Ws+ z#IxR{6wBR`SRT4`8ASYXtwAR#x|}pyDX86`Uq^R3bis89L;=5g)tsk3K#l9Kyp1D6 z)bjP)+pGq&A8G8nL5n&lfn9wh_FwrG-(2iUq@EBDN?$7hAttOe`tl_!;r{@dyKf0x&?QCb9D; zjaA6LXdtrZWwUec(0`{gtii+mwz1Tx%Xe%`3MAPRPAbm^m%mWPKt~S=RY5y3N|DRT z)bfuqDW)csiF?f#;p$XUN?Ge14$3oI$S(bcrJ3Wd z4;LXJ{?g~Va6)L#^4B7#2=jKU-M&R)3@Yh9O!G7Dpq?l;vp#9KT3MZqnHxv&0Cvz2 zF8%lz%TUQdNz~oVp1}KU+8Pp69_c-UHL1vdak*Acy<8pbqywgmzP5z{x%r+j_C+$C zTJ7szXB^ATaGa?q(4mPn7km);tD~0xRM{vZCM|RqJe%GR&dXbCq_J2w1f%Q#jwu)c zp!}UFO%4LMQ;kWXNox3D+NL7eGZa+$DYG$;+!CfAM3zYOJ z5=SM;gakhvxYMZr776)Ow0W38h6{Cp4qo>G#X)l?K^@O(eqZMEsWF#C{1@ zgwl{v*P{p>bK3-t&<-v^779Ayy*Ec$s~%<7{zo{PK^OpB8RIC`QK2SG%LaVg#1?-C$5*Q!emTQuekD}e*?Pu~KY@+I=9XAz z@k2y@icQMJRyPctP=IAF+x|m+znfZdUWukLdv`YPwD)bR|7f)F>Y{ok#ma11M6xDI zY&AVMIx@FTO8L%9=fSQ+V-*iCo)|BqPIq=6nb4hHGZ4;Ize^mVqapQGoyg)#^yd(y zzOev;$@W-^`C~N;T-C}VaxH8_+UqFKcP?L4agI>_z1h*hEc?1&HNXrDi9P}bqZ4CV zB%LbNv!c@KFuPH?a27kk(!&wi+$>e?gM61TQ{4_UBzDDz=yk2qS40;W5l>z*tdJfL zUe{x{Ivr<=78kSJACqvwdUE-za)y1i(TFJ=B;u#tSgR8XQ{M&dT1Y}nK*&cXNGcSgdh3=!BoMOG>+pLFNjuB@H!7{E5a%o zc)Hq1S>F#h-%=jOc{HM60HFY2(=)PHp*{ZyT?P`I(JGF6!=)@__3x}hJi!2e8nvfh z&J)LSx0rlMzZ@_w2kJ9aDPZ-WsPuoSOy6XUP$8ve|J;5th2DnW&s2CdwmUⅈphb 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

    Gxb(2sH(UHIgQpb!e_Dwzuh0l^KXa_aW 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

    >gm4b?pUBcXS&@2&%yL(lH@fK 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 literal 0 HcmV?d00001 diff --git a/assets/chord_to_index_mapping.pkl b/assets/chord_to_index_mapping.pkl new file mode 100644 index 0000000000000000000000000000000000000000..402669dffce94dc600fd2ce274b55b6aaffb3905 GIT binary patch literal 1750 zcmXAp>7yJ|5XIBeJu~kK5(Gi4V~HSbOPUbO+PFMx5<9PjNEll@f`o`IsKj<---&(S zi7lV~Q~90h`O-bNs?Ires%~%2cKqL(<-bjFp(Rr>%(7$@Lt;rkhK4nIRSc=6<#=ff znKcIE7@F4X7J0uDL(7`IaZxRap>2&Wp$Ti0MGTXc4#qt9vgWXk&$gr+!`{~Hccy37 z#ITPgWeodTt5=Pu*O5BM8Y3v?TDw$5j)wg#B^ty2&=NYpl0gjfVBpVz))*2x2*A4j zU~883+k9*E$vDK)t~4A9ik^pA(u-k%WxafW^usMhS`0@3&f`crDLil#LO?zm0?v=I zbd=*n$I^a|;$!KPTgd8eP0!ZPL)fCTDI3~JS z_&AeWHtI;vsn*hqJUz{_K|Vt3=^`J-aE3Jpb&qFau*#Mo2e75g39!PcQG1p(M|I-a z!bkTq1g~C8&N;LP&AGH+@my|gCWYTrod->av-2(Md+r6GGyX2~t{8X>J@rUNAGAsb z15DP4hB{DWWRuKHfT}DlLH31c5bi}-%HhRY3ZHpU0Qr}Q7?evPb}y%FQgEP@6kMh> z!k1G|_7#%jX;;!V2UpQ;C+~J*xLQD*tUy-Yi(#eY@qd-Iz;n)Pw9AOORt6Bd4siXy zUfyXyHz2Rdwe~k+6`(hHu}|b??KL^KSXLGyn6`;}S{hF!NOaz+S?XXlTsb>?o4Z5Z z?Us=N+ZtVjyafFY7q7Rqu7Kb=4{Ay8q}5vXUD{?4#u_}(cVm_B%RM&1NN`Gu?*+m) z=00op>M6uY>e!(fOq0q7waPyChjf>`;SJCf;(Hk79(zRh1|g5i zVgehn!iTYmVIcl7_2UPR6Y-MG*7mP}NS+WWI<{bme?p!V4h#Ae(mnfW2$b=Re;ZuI zv)(METiux<&OC?5&hotO6TB~o*8xno#Ot>CrJ`=TwdA`l)r&p?&R(*~`Ya#d+{+Bo z4bz6cq7BRS_NwG^m!k&Z^*g|Hn%B6%2zgyA2LBt@_6+s%COL(yeam^>?YG4%sCOJ( z(|Xrh4927H>Cj={*MKMn`U5tx@Fn?B-!L?Pgh}4@$6AAa44>%x=el;%fBp6;>@NN@ zj3|5^KG%2JiN4TwJH(fm>Pz#Lj^K&mYpsu(`bMk3=P-tEk?j(`bJ@C%-}}ZY?FUu5 z>L0xo7xEJoPVh5ml`wwM)I9B1zGxo%O_gr^@2X_Qfct}}r~N5XUAiD|eycoH78$bX6$V&oHLTTtP!CBZjxp@(S zmxV>e(bBSViptm2G_`g04UNn#t!*9f&aNI_J~wX%1&7{y5D^s}n~;=}k(HZY__(Zs zTvb!w-1@Ym`&s|s$k@b-m-CBDE30p}cHZwFd^|b(dj8|rpP5|DnQ$>@8R3^CR^SC$5^X1>$|Nr&>E5E=6an1k$c*V(t1>Xw-0O%1#03b@ZS+ir3c<~*iBQ8!v z95c6bGUw&&`&6^y$Y};A02DH)PsMmzcSRD{i@SIQ01@>m=5E_H8#)9o48TrDNg-sQ z?A6ueJoe<{rxta$=CQZFAs{fHRL`Kgx~7s=6Mh}dfdxZh2vz<;bxq}TC_)7q6ApBq zd;4ou1#~fx41c_~Hh3}4$M^B$$CvtHe{Lc%ZOUp@_XRatyDau_9w3w5# zsm5S8(R+buJ2K@WuG8tmxCXJq*fsm=ot(=4=gv&2V|U9HRwSM>NIuzUYAyJyzG-E+ zOpKA;6W#?++a0^McEaw<~ty?3ya76K$4F35hrMGHzenjZWEt z0e~^x9D{NS_ui&YUFM#R#f?|9_o>j~tz>@Ye1mW!9mKU=Jsp#P6;@4}lwEm!)C;rN zS_{sS={a`2?%~Kb7-;rQoBM<@?;PAr#P@ss;wNjo&HnzwT-`7Lc)+aXsa|7{Sh=(@ z*&{I?HOTk<_m3uLxv+C@m+AUHI(9+aIsnMOldi$w2JXEej(CA1Tc7VZhtUx}s-i~w z%OZ;zVzUTGTOZ+nhqnFqz#g$7c0Mn52_ov};3dZhh+ze}a3M8Z*(>cqVNdzo;oL68 zl-DD7?LB-WTk@D`*%Mm=pP>Ok?-~7qtMTpdhJFE@ygufg)dbD>ayoIN^t&!u>}o|E zoT8-qS>uz5SHM|p$`%8pu0{+a;!X!AbloJx%ol13{Fco{kE}g+n`~Y3ThDpjzvhwW z&_(gAK|oO~5>8QNZAp9q zcMwV!6-%2mH-BJn85Ljb9n$NptxlwiAAk1tX_!pBdjC?Xu_tz<5ob5(k&4cqS#dWE z5VEws`)q1WX3u8EBWbPT8VH-c;5+2miwWkm7cPt_ZOL*mYhNj!_z9k`@dv>xWLSok z(}qWRFSDeRq(FEW%&&yR0gC+_#$m)Rf>t!+% zl9Tqd8+_FCT78lKi=Ci;?by+wNXe(`*sq9YQ#Wy)yF!dJ?83n-@442I-qP>biR)a9 zJ6A2&{~#wHajxS0GNP;R!rsy&005vsY`O}=O$gv02X zt%Oa#eg-|Tw2GK+&|x}oI3yuZKO4r6aAc|E%P%?;j3K3#&R>sKj;95RrCi1Bpglww zQyaRyTe%$W*suqb?Guz{1yd<^Xe&s?OOCaY?;adFjjghGJ@_#Ye;Zgt#1}ixQoXYiDmd46(QY4Q9-E3_9wGu$quGN%LP8XnEGIw-DU$^RcziOU z=DH!Yk(lbwT;udXgDM&%rnP5PxzdF+ii>fI#8~cEX=aCHGf*nMX`52(5stQEyyk(N zm?h!1%#bwCJd(N{9kb={PlSJ}eP=`3CsAsjCThEY%-Q)oST-f5M@`Kiw?_?We<=sV zLsbDt-a$G>(W2-$?&55NAP;?XK)$RxzV(RDab1 zqc#Re097X>DTN&9T7*k=ZoZ_24OdC)lom+U;R8X5VMsi`ksM@Jw*s0+56Nbre~q8o zL*-Uv(OZ?24Bei{7%Xgcan>ad7DRI>t01jrTC1|+H-3c8*jt#WRBdFSibhRlDE=U) z5Pfdx@-ia7&*)#|_HwV*dC^=b#D7$7wS8+yv%J4l&DCZit-U+0>c$Q>5vyJz3F7x~ zFM>p6w?rl!VwP@q=Xs~vi{4hC3EMIo~+o=#Mm;fk>EWGdRR3gH6U5 z%cDEo@!9APb~gH}Mc4hmTLpJn>z~!ajn&5jRtC*uMa=2#Q=jNESnQ?^sAf<29*G5~ zb);aIs;#{y&h(w)s{{s0>poyol^6LXrGFyN9&Ae-kn*(jBs0u=3XfJo1+6fyiwJ?Z zfZ4t*HBwz74?l>|5Jm!M(r^L+@5}`9mDHVJxhE*RU|hCL1)HDUaT^Q*dP!2H1)4^b zjKeE20>T9fO{l?ipv#*pgk7fPlz$B$H3N#`nWEseWof23c()br_f-RjL=-8GV- z+V=rBp6oX&!Y#W~dcu#}-+H`1$sc%FeQ->>7#Ju5r)~jI0!;G3(KLOfAMwZRcwGU8 z6wQz@MN0tgCVOcfkU6UV6s!83EnL4t*e=@s?@;R|Cz)(u7bT)CI4ouec$rq)aeWAu zSdNVJX_d(1O>DnUwG;*h7>$|GGoTy_gv}y~HX0eX)^40io-E`4V_1pb8r{sgtova9 zAa^+=S)Jk2e^t&P@GLs3e>Gd(`Jnb^X1g()4fm7m&M7W?-)XwrTxlKIyf-iaS!mGJ zMR7TJuKYlRHFMzeq;718be+REEB(t`@0{ub;1*Zz zzqZ{UKDZX28WI8KSBM(o+`QWirO#26*!+M)7{O+32aEHtUqoqTEo8{!S+C0`H*V&i zoHmRGnS37dC}Y%aJvg*_*#`P_#(sw~FE5FGQ4?g|;FN^lbq2X|(qp$wnK^t(4k*{l z6>b7Xo%(T(Tm3rkHd(bpO2^<~<+bXCkHnzrEV@=S6@)FEwtxZ{Ea@1I+>I$7q+8+| z6qgG#&g~5WdSu;wWKcRzf1M8=ap{D6<}CfPb(Q#PUhm=6_+agwIdzlmh_WBmsE%GL z2*>LXlLafL0z?!QQq09$Ky}PN#muT2`Yau(^eS&eTsN3CH5EjxHdW_@47StO>l65g zC#;!#Q^yU;=rYZD2I~a5$32?LI!&pnIB0}%8mu`2hO9u>v{seelOWh2WF9D>!)^?g z81%a}yGCz8WAxm%Jy8@kpt2?S8sZ@qRvftW2QHZcQ~|&%B*0J_MItk0fzVAab~^`_;GAN|3S(=H zUiVU8yZsM*DJ773#na@NbtrXA1z`X+?IGZ??CulArvnhXqVh#+N0u^{WreP%*UFWW zeK87B&qR}&iOZsvTnQFT(&iN1eWoXa$o+gv;}3FIKKJ*R zR~xez)5LO&xMP`qo3vPJeVci0GO>Z0Vz`UvT@SytpR>QW7%OakMZ{6sbp|(c1I5}r z{kQDsdAXYnZ`Mu(`Mx{m8QdPYqrwv{{X!K;vbc%Bh8QkR3 zTWR5&`p$v!uhLk!U6ea3(d9KL0o5behd-ds1JYDXLbeRPEX&)Rv>}*r5N(eA^q^A1iAP!Q3@7fh4zUroLl4s0OE?{{PN=1Loh@(oC-ERm}%0=r+C>Ln6y2PvAu`h^HQ#0bDUAZIN1P{ccGiX1Y+k=ZY6{ciCEfmy*)l=Ga(eB8tP=Vs?}XihcHB>2Q|jir6CHL0Uj9QiIyxQ0TY zi=|$ov~0YGLAp1F?`^-gEXniYVV4nDqZAt+45O<0?#;K;jV2Zu!wX{B$#?-PGo(Pqp|cjN*A%P4C$Qxco7aI3NCN&O0MEB z{DMKNt+R_nHLn*8BD1-rZv*?n7c;X~jJb>!!{(Dh=2R~01&o**@7!^G1^;U-0_A!V zO)XEEbptts!tzO;d}tTWcn_rrC#(3vt(H}pQHrc?|iuTdUrLmJ~I|IaqDzFST zt(<@gB9&3zE?pvy9MC$u7Bk<&AFw;05T7I8)kL|OJ8K3Z7g%pFNDcO_%xT zTiDVa^V9{9e`lGd-AUwpAhv5f{Axb^EQ8S*-rRyNRp(wttj&Arr-7yzN(*TjC)b+A z?E+2LUzLhY*;ly;X!XoFg7~f#dMl=|ZZa?P?+1?G{MpiN@*c(LRgDSz%$L8#w9#;| zsj#jr8gY;(kon0S$>f=${jou3JgN-B6bAfE5gtaQpbH<4SSN->ms2VO!V-)7Rc3Lo zCngsy)Cj31$K+*&NJY*45) zNs2{2Mmf<8m%H)blJ$^5)tpfxCO;)D?)5G524{E_ZKktw+)8}_ww})JF&e-TCR-g% z6VF>twJr2gem6k*Hh(7@$cEZE#5k${>VA3ZI;3M!b!~*n%O)u8NFG6I=d!#>8DK`SF-8;bg-4_ud=)_faCpHf-cUL z8b;Xf^}UC%fP|$Y2dA~|`g@(+bs_*lj;uNTx};t{Yc#hiR7jm22PQ6fX!!Z98wIGV z264HGfFGtUS6-bI^ek3nnHtMH*|}9db0=tP`gw8WP7*p$yJN-cMvR`z(bl`H4{|*R z6(Y6d+q$eswp-Rmjd`30@);lemW3j79eaiXziMdL9`h?^7Tswu`xO_CY_t86uu&E5lTt#;%7AV++JyXB zQH7Rth+0*07?O6tLTqwGwNtJuEQIYXSIvmi6-%^AT5R8a;JDcNwq)axY`rMun5g`+|bsJ%4kH&A%|eh|JZ|8~5uRR}*w<_HI?rkP%*J z6DK~9suYI+ATDQjSKw$_C=sl$i~|?{P=@2U_-|#%x62o8RLMigfH1^{1j7{f6b`bc!aVe)5eJV%tZ(zx1MhKxE{^dv4Tp z+$gm7Y}Qp=$xuEohCKbM^-DHq<1_>)Cwp3!Ss!j%jDo>lbB8YkjxY z*yeIHQKEap^OE1@OD>y0(^A=JL@~bUTUqN z8|M(!+58pGRaRnisAo+O_J|)#s_yX~OzeJG^?P@EOfF~3lQxcgu*wS(PM7|0)H z7fxbj%&O=6M3KcH;wF5&5ViPmpufq{&nB=bQlNqFB2i+r_ade{%@%`JI&+cAzJlH0@mDU4k6ur!x0+kt%LBR52cvIu#X>p54mCqy zuY^G(_6M}oD|ri8Mrt{Od)R;lDSH{rqf2O%98g3*1Dr!}Rq7Rl8CiFRw;SwZirf=2 z@kkJ2jP$4|1u|icYhq;NrMi`MS5tX{ONlnjT(uH|Oq^cm^HymyK3=z-EEJ{|7n6=x=u})^eR8_$?&vb{nW?{}zdBm6mqt$D1N?o3Ll^Qb zT!ho>&lV_K7uSMdnMvXK-ZVfkYt&qcT=h@CxRlUDSKk)E%$#j0~gOIP(&5tTjsXRaSaVU7~j8cr?OSm?GW>Q`))!1pn$3Z+W}w?3qOdMZE}@N;4n@xYVEse zNDL@a_20A~KHAy(l|V-c^nq^NQA|+9g|P6?#~ASt@SRM0jJV6Ju+*c-_(AqYSmbV+ zh}IGvWE%OT-JLSHfsGlXDVH2kL7@`O9nR%Uw{tD?yCs5;_4Hg^UaxqwcdxdO^~Rzj zFC_Osbw*5Mja&49)2KR;ZM-auT&18RBF>xYYDb2w;qH&7;csNjhYrT*aX3HG)I=KF zozWYKObO`G$(ut7Un%Ex54YuPp!Gk5L|`e@#N*zxj%KO~o@DNy>-$U``pleE6m$wm zYz&~cXp0%FPZDK6q+#yT$rzt=4xLxTr zY(M*AskuJWv;wbPIw4~(FU}XQ#JB3vsVLvbvi4?^V&7Vca z?aLh^>OvRY9x63$k6vejGh8?Ng;J#C)tdvO0&=GSAgK39Uh3AgiZMIIS786E(5o;Q zDbD&4iL{Y%UDJAy>q#iJXhdyc%B##&o6fkm<>MZ7NvG@15+W@jX?MB%^>N@m-j;QE z#Hf{4c(5CdF0=lNF+I4AMb^gp)v=jD&kWS5aHIj)?>$7frb0^nXF)z`jObg!n&4vN z=OMaVba5cl?v8YSv+zo3CBv4 zBblOuGR$PfHLS388L88Okg3M89Zw#25m}j?ShkzR6f2isv1;d%H;x%wV-jVa!oaVr zA^Mzd8EMpuuwUOQFqftr$s1qC^+wjZ2#l1xVDtgh;lR}IX*F{aKt*j+cpVRJ&YMHKc#J~>hg>;rm@?7YakH0?DBy!C2G|wPKcU1 zs^V+JlWX(?bXayHS)t$3QPUp=w{HGu`#mVkJ7#tTUQ{n$R#evIx&2~%wfgR-C%-h$HV00M6P#D|@grHDE!ic#=>`Ck;pejozq-K<<`n}`^YO+hlALJfK ze{**>ipcw~`@laFuUdB#3HS%OXV+__k4=p%BOKga*>ek?OS&IgwK};(}Z!3ur^0b*-e^TYp$Py;#KVFPIsGj2v#mQ0(6Qh{^n{FoewPU#d-;z;@D8N;dQL10omddU{AngS?=y_RrD)vhrF-7hMS za`JhhW$txo{5*8a$8qL^Xl7kp%64YZ#9SR)$UroQXw$xMnyHlhZEk!2`8^F8!!FY` z73SJsF4R9iNqyV<};D%qjepD2oYP#e`% z&$h&T*niGeQ=y?+$srXpHLvr7Slm{&Nc+9vrQPeeG1G-0u_#;}taaEiR@Gs!IVYjs zrK*HxdZI|MGs|fUIQ(#dDPv*EXH$4d< z2hbYL!Y|D)S8dBTSGx3jo;wpLaGXM_R!kRFj!l_G`e?6e`apBWi5H^r!TJFZWN0TdpI3-LrN z-nP!}_e7~~+YFSdb*ZANMQ>VfdSvnlTX0oQWsBm(jERyY{YCQuS^F75S@rD+Bj!RQ z#!nTV3H79+DxcIFLj2Fg1NC$pnI1rVU+RvSyG$2(q&y!z?c8V*6q%o)0bb6{vu0lA zo-6!jTR(l8+b8l$F>lT~qFu9G++MQcjf+U4)?d;C-r};Mm+7xq?qj4dbP9DmIlv(z zV&&fU9A;@mCUhtH>D&$b#YGvV-KB5}ejFBD8k7cxrkh1+@=;oW!^j(MW6IEWNZwaH z_2LJ-dBKB~vDZ8)v{H>EFI|sPF%e||@p@TzKz^cjf>eml1kAV&16i7T za~GzbS=WVGHhJrxt%QE{NewR2AU-K`FI?lH$w4xCI{ErD=m2k+nb0Ry?l>`e3J3$3 zLNgpha14vUmlJQp{Ugzd_TQ)_vpQeA$s z)pv_sQ~tFB^qfm$kLzdeY9v#034nR}8KhCeLi*z$QlyqwR-xM;tY#ZxgCkjYNdVpS5Yj!yDaC#4F#g>6XNUYUwbB`Of$4`Zmd40cxY- ztTqF5Nz}XudV)YHwZ%>eh)(KM{Zk&#D_?ECKid!z@VV>Kxj3j@!A5Ji{;s zdXXGN0~wgf7{@@7M+b&6xl7}K_vEQXu?bSU%0L=&ws%KuRs4{Im$}*s*n0y3l2i}5aj8QDyE35#$Z%h#<@T&Dr-l!3F2OXrxgVR$>D$T#w z%~y;UqBXRw>r#`bW(;JL7BXkI0tZuY+-*S`!`OSGvIA$%rt|>^{4b=ff+4bD*=s{6 z+C&LM#4VeXG`*42N#xE|M1N7OqShU@mIr1DdsylB#(G{gR*vb)Q=L7|!Y^nexRe;b zn!2RhmppELaHu@k{J}=N-iQc@3in!XEM^@x(tV`gNx<)G=cq))(!&Y!u$Qrh5hjuJ z+a5=L*dk-mI!3=X)&r~{vt?=)`0e!b+&;7r<}1kKBS}P7-v7&E3%1Jkxtg5U-&(i< zWQ%?4hWSFnB0O7@8ck)5Apf!MALPcv&JCOmFXD3Of02VHE7f`ZH!gQ9+$^Sd3qB9O zVg}|GWYF2JlW0Ld7Uj?z$jiZeg?nei4HrdjluJGx6J#hd>9hjknpoyPU5}Q(!6Ib4AG|ObN;^7Mv?Fe7CSm zXOZZG=LdZ><7WE>t6G|0z?4q+Lyf3=CnEXFrTfM=w;3X1v=ejIN8u z)gTk-8KyYn^Q%r^fQ5NzB8*o0;rrdXnJdB-aMoxiENXT>nx7^&$gqYM<{>t8V5%XW zz}Nh3(nxh|f&G*t7>z<2FadJlUR=UZ4&j@u3d+^}YcaYq0g1^^S-3p-)xhQA>v!y# zXE^-(pkM63g5;74q&&*(Cwq);hkvo>2dhyIaT5=QUJhsTyejv6@3@mY%6Vur9-VAg zn|8)Jdi@}){J2R4xG?{BuC~NJH@0$f_Owk-F!TQ9{u8?wN1BeOBSemQw3<*!^A6WsR{V7BxRMRf#^QLc|_A4L>PuBU^xQfQ`vI+$ z73A9KA3YCHgNqYe23W z4oC3J=h*1zZ_DhOR!4T)GTwZ$4*8ZnnOkpCw<07qyeU?GM@WXbm?%Upo-y|o3A}2* z2^5zdf6Ncb%09cCRxHBf4(_43ADykEF%-U$6N4A&EO#yLFQ!d-wvq2k@5H5|un*#t zsJ^kpi=Jj>0en&@y2;iU0%4BXA?pjGZFNph`O=+K-|@Duc%V$zXgEJGT2;GxH!yDm zvENk`r15&{j>R$Tmj-8JZCjsm+zm_n)V$1;cg8>ilKf77roT}=kYw9%QtZQ|chjMK z?XL$&leY1X;=8`Kp|WR+NndX6RGqR4Prx{T*FK#f55tV+ikJsBjOIQ&k5xAGquI6n zM#Fkl5zcen)R?|m5|gA0wogID2mnGa&IU_52@60)d-v$+Wg|6wECzz7Xr)I!3T#>6 zKh4Sc7j_KQGSq3SjV|8U_R2;H_+@x6n`f>-Sys+q9DFy9->K)t#JCi&;+%j*xIZE{ zed%1nY3ia}&gfr}yFlfC3Q0~z>z(+7Zg(;YtXtJ%IU~}+-Slw#vQ8c*n^={6vj$T$ zV9|G&Xx6f!5gzS-+GsVU+HNMMG3)kG)l)KiEcQx$HJ@SD3pQJr>QA${p0v$zj;9vp z#WfY8Uq!Xr@_saFw%C-}`g&gdgpuwB$hfw-@Xa~ZNbBo*(e+(giS@zk%gwfEdP|PD z)e>7gL4OiX=D@e03&_+4aY zkL{fo@rpGa0SeQ411zSfiF@OjUZ3Za9rRV^jE0>Ku2`zd4a9#`2dzGbK6q5*^gKe- zM)$1O0*P+Q?rq!GFt5?#I-8F>5)RB0=?qM_gFy^e$Xo7_Ir%vo_U7Xh((6*Mc2Z(+ zBl&@)pbmJ@!Yj`gg$C*vfNpdqAqZfg!C04DH?JJC#=%_J7q^0RS} zp;yl(jFS~aKBETZPjGbQ2xK3YMrKZqRiN)=26awYD6@LKoX0NU-3Mhq$ShG_!E?$? z4bTR3F8hDI5uXDCPtro3QE@EkxA845eYbhi=b3H94oIzc{e#>L#kW1@>!SZR#VWv& ztn@#HBn!%R8sCTKsMFDny+xc+DrRx0wo2ZH{hc~%leXXn`sNXOHEmiK-`fONhAuyc zr1+m3`n@T-ZDl{mz2^2&+IsDY#;l>W6UN6LxUF9Y$h@Q-+mMF_7OOD9Djc(WP3%ep5G1G@>`~R>c;*1kc}ssuPc9 zos1ybst!`DKu1^6nQ02hk~ug_g!=wSIxXUo%i@%+-6<(Xq))+IWVD@hq7 z`T(wYR;%Oyx?kg-;0FxsAVXJ;_j8tI1gN*&z0HO&@cc zGEh6)`wC-PFLu`vU&+@(@AG!p@q49{rCz3<%gB8Y#jgVJpeeT$B+f6 zhaM*>J7h~*dAX#^xaYLJrcV|?M`n_Y8&0gnR>qf7Mf}A&INfvwx>{nY`e>ky1)7oD zJrZ%a2bZ>G?6PeXZO3$OGMSa-R4!givPh$m&^o5pje&V)M#GCLgwx$k#NJ<*zXZN; z8jk%Wb_t-E94y;;OIH+!GDmD7qNa8Khmjcf!@Yi*i$FV3pL8gghsg`P<+!j)DZ$Gx zw@!@&F#udQ8FGTv#pyY93et$x*w@l&n)Q4Ej-J~E1sJNb*AkJ*6obDtw^DYuOtxr~}fPlXesn%-kVlKDxw zAvcV&1DCc0`R33a6h~P+&O+M)VWRO>?EZYCQ5=S>#X1@Vy6WgheQGJ6#r>3$%G5!p zZHCFz)1@k|PO+(!;p*+kgCEY3{Uh%FXc$uh>cpej=-PCg{wp&#-e~7@Nt3yfR2`kD3XSw!H$rt z3VaD;&EPPncmNfz2BKX$TaczMd(*%{OOqj?KCVzk{kq%a;V+|wr7AcZq^@h|*kZ&u zzck<9SapR7oFTKA#eI>We%c%x7eSMTmZPVd6_%p}goR@??va@%V>rD3It!7_Nu;JL zQoq9j)o1yG+&bVJ+3BTd?%jZY4D03AY{kqqz{MdQP6U7}t3`n95jU=z>HFY|r`=JH z#@3$`^cOJi@oc&_KP}zSTPtxAiZF|_{f6WZwSU=kua^A0BD8wqhrS%1)9$Te%d7L0 zN8s^D9$ncia+6(?_X>&9r7m9g0VIm`{+ocTEuH&oU*9l3BAW?7 z4z$1D?`wV$rEjyQ_-56^1uoCsER3f(txVFmm>TqAi_eU((y&#|%PjpxYO`sTg7;^m zy*TdyOio`fYGh-y??|b?!5v_h0C}eg#Tf|zzAl?8GKi zBExrk#ERcb?gwU{Z`Z~x8wNCF4T#y3M9eW3^Q97{Vo=VaV>gRLaUVI2U%u5&q7-@v zP3A-8druyo%*oxsTe}SXptU^=nv3O&J}Z!J;yHU}-`dLIM>rwBm~Q+K`S$M=k!wFa zqFZy1VrR(aoLjk4D!Em8O=FeIxpf>76Zv`^R@4i*?BCEq>{dzu=A~#r0#<87 z6;9b;oF^fn1QqK`!l=BWiH`;{IN?FLQ3GZACt2K3fYVE<;k4A3Kp%Y|KgbMa=AJ_S zgWMYcO{Vipp*y&XKaw8N3jl~Bv-LT8E_(lGf0q*COD3xB~I7@-n8BOb+lgZyv{aMfbp&gAkH!ts!mP$o#N=k8pTH*yN&v068D$~O)s-|VRxWxWPGiLSOjH;kLTzKy zaKQD>D~$^aXfW4!hwoTcYTpL8GsiGKErxuB~QSFoXYCQdrFwJp4k7?f`+HuTG|FKSrgY$|rjl(X-Y%zQ0HfxfO^4%>PJraY6?nCRk(neTnnkf=F4V0E$Eqr$P*+iJ+Vp>{vccY zUC@4q?-J3+=YAaE8ClLQ)0H$Q3yz)-HMe>u3jKAB@#~I@n0xxwheGvcnVNn*HuvBP zz!i(B2uhF?<}KP3H=~5sWR5^Ar87WEf#K4d=wKlzRWA-18?mH&!p!goxq9Mxx6Aa) z+kY7Q&jv44NWRjgJN*CVyAr^3TJg6Ta2rrSv@5%3ngFK*ED3#EO$aEywA4U1R3uZT zW&zr&Gr!d5A)&E!D5Ow^KUnq=wi%GCF%e0A8Ba{hfI1OCH|d*f^ds5k zvvgzkVIqMkQ(ul9EpJ7qj*ZbDAT;n#zZ-9+Oq^sFrV@qXb`BZE<1aD6#F!DnqbjMO z*dhd;dYf7zUcwOWsQ$$4dtT91iP5(q$3*OcRGiMBqkfjS4;U7$(;#h8M$&Q5K00x~ zvLE%4kxMv?cI8uZS*OmEpG4yfW_=R$S=xDE!-mMysDbV$_gEA(OHYb3L}RLrSv{z0 z%I~5cQi9U;d@ggv+dU|}Lt;0C>_{4%GThiJr;~C?IUe}%iyAvGg~RTX3aG-6lvN{k zI}fU+LI*0Q8z}YlXz$xMX#;H$(OF*E-ZI*ItLnTx0CfdY$ca{|v8b@dvqF;CYAZ^@;9Y|9=cC$~ar$ z(rt>~e_8Uy5TnJu5>2MpTA8~AgiwKloFBMne#4$YS&z^q;S5)$8NYci}{l#!)* z(>K?Mh?J?RsqRE|L*0y(O?APz)yO={eVnJIS+0Hq9RJq(sHk)Lbei?sPGD zvOl(YwfEOdUsG`ey_HLy9EV3Gr1PT_uJP2xu^(P;JDwAJRMkF=JT-BFLQICi+f5^Z zbG8i(cjE}G&4txw?a*Y$ z8uNXHasr5m@Kn*v-4oO;BS!Liu||w;_-^*b_H{Oh@IFTWD|zok1Z{lUunD|6qKWFR@CIbn?|hXKNOLkPU$P}_6Yw}?_y!CQ!JX^ z`i@~+ge~x1W@PzI-SQYUFOE7anRUPMGM`RvF?x{X{s|s1;l8p)P>YcI!u=}SGyqO= zr{v=xDc1-iS5v^)d5Y{ji~Y9C;(w5fNIri|cuBD~YVr?q0yF7K44;9xe~>#$Ffl^i z_V;+%IqP!tA+Y7BnX1#M?v14{%T4GIeRYVT$%a&4|2ib;?fXwc-mkcWUe6PXINtG4 zjihq4<0yr51Q__>Nl^pI!+)h0oS_Nu6|QIlZWq^-FvCF5UzzIm6z`|S3q*?S_Cnp2 zz;8QzOBSN89@(;KWm&!A)O+`o_v`kvs;F^1wd{NtQIv*y;gM%1KsztD%7UNEPlCUI zUC>VZ%64!feoQ%Jzv;>RVEK_o;hiHkhbT>qkqVy2Qg@r4g0>FUE`jd)aUO0T{2b6Wa zX7)E)THWraWrB@Xy!Z)Dt}caMqZYl~Lu5QtcjPf>&WM}J-9yK}q{PD!b+5M3LJ&z( z&&O)8h*&H|X}B6#_7#*AD&rSQQ^udoEzP*r5@rp9n^!5I+`4w1gb)G*2oNAt6M839snUCq-b?5m=^(bydv6Iv>Ag2W zP(zh2T@X;ZQgjPe6!qZ#_I}^*jPvI_V`QZKN%E{~%(>QF^S+m&1Gr~-<5V5jh5VIs@Gj3EJ<)RiK`|Re*Edf_?SBVh2CJ`E&Vv2YYrAS zW*5BBQy+|Ws~({-1{I%(cS@QP4#{qqwiil@quB;Is$F){Mv?-!QxK^(6(#1PP?90F zMk_RlTJn&o3vG|(&TYr&FKnZao9y=`M{j%PYUfmF!EH;7qMxKkd5QQ?uraxxTABS^ zQ#Nj}F|y=MCK%N`o=GxLdT5S7p=-snGquo}F2KAL-Q?tU+~1nQl*DgL&T}NaxBgA6 zDDp&=mi?3Qe~|NzEvw@ucN!y&C2rpy%t0=T!{|8hFw#^fF4|tFEO7x1h?bPi$0~l2 zFzyE9r{mb1U^#2e?~yL(_z!KWn&|r5wLSjcAx+(JaUyD|V3@cIM;4KP{>q9H|p$ zGoKuHI7Wv!>G9xm=PgFgpUmry5IIprqHT0n|?MZ zksB3JtG&(|FGsGe;2b1C{cX;xN%Vv)^--%WE6JPQkkH1-7}gOALGfT73B(#kL_&OA zTFPJo%RlzADwvQ7Iv`IvNQ|3C?;OvORcLsvIUxlA#?6O#_gA)bI6%-k4=Z|kIcaDanzUYwM z%s-KBnm#r^DC_{DvvS1KUAN;0x1-|*iJ?vl$3^fmvT@;HcC02PiQLQ2jC9P6*rDmPk9J~wRJGw1^C8>??#7!tsYo{?zvGlno-dTW@W|Gv zf&Oh3|8MKGy#P`3xSx)f3Z$D#(3htWkoRqLt*@X+G{Eb@vyUI$dfSx6VwdDzq?5{* zB|K4kK`6<{$7KVG-1#9#(Uz(dD+OaF5*fUr6rVpHI`TGiv3awj)r9$?14O{_mMw^p z@j=W4h@&re5wMPNO@2=(6K2c!rZy79H_9coW^S{ zpb&wqHgA_?pT0)!k9of(zvxUYSxX=UJUNpFuselneeOc-i8WBHcu&U{-bKzB6wd&j zij;^$lot>1|8j^Yd0>X{bn$vb%vJS~sA=P_n09aCfQWSf8HT6F5u1_>-;-*5Hq^b0 zk*fSv@ikFvKO(HWHxb!oe~{bB{Oajq8k_0h1R7nj3xF67tM)JwF}5z$tLN~&K4jY3jUW#a(eC`Le5EakLYo3(hL z?|v34$_UdHTFk+rqBP>0v3-~MrA)Kw?r@4>|H>UOYOB||j3*=K_PxTyL|tM$haerb zUh+%!T-|Wm&o>VomNdJ`>5OB!hUS7*MfFaAAg1W-P%!ptH*dew`6URuy%%0%3( zuYleW6gn0Dsc|8hi9dA0FKavffujJXLD0{hHuGv+1074P2)&ETQGjidy~Sr1v!Xsb zOU^N@$D|U01fb#~+-*^mLi$>jQ>m7?ln9U02}Mv`YYyk!Gf?tHBp=O$O^TXUdx%n$ zY2n#$bsO&$MSL`7HnkorzIgEmxwn~Lhg{}ji=yWKiE=#TnX=T!FqMCzoDkITb6iA0 zXTaXIhI%CuG0pGgv+T7A7O}3^Ejnhg9{5A)H?ucmiPtZjf8$(?nv|)H?ZfTTg$QZj zlYzyc+AnNN*O_ndJgR>n7EN9Is{wvFKa~0Fs+wY%JQ)-FHGp#vIvNlcT?wX4ROeKS zr7WN62*zZ6BBJw&F+s*E!AaKCWi#llCInAg6+PQVgDI4`N(u1knrWhLo>{4(fX4R0 z#SG8zC;4pNRH$+W#)WRUX(Ay2)Jy2(O#E=D1bR%NN1sh~WoK5{DEYi1yiO~a%}75e zL-sn4%|VjX{d9zQF4@aFF5+J@rH_g|6$)sEMx~Oz^vH|5;p$!sUbhfvRh)Fs%R8Ci z3gWLVIj}S3LC!|fRO)ruZ4a2uR;LY{pM5`L`|f2#O);i9rC-8hx6V|s?>&|9*`8Dw zq0T%$`G&MJqB6%E3qS#&_nJ>nm#UKKrG_$QaU2bJKd@^O(q7mj@4PaO_Z9^KGY)~^ zlVk|IFbZZc#?A}^p94xA%mllJ2MTMFzTC3L7DyaK6X=i}0fmB10JiZNn_QSZqGUXu zjEef2YaE%pC-m+KiuPWDA#DsJhFxm0lv%|)BT-5}myA=ddWOaFIl>FZkACEXR%^w? zr*J1yOY9i{fce-giUf69)3$KP5n|yvcXxm$I5z5!hw1q=hP^v1@5dw z@>a<;yCk+~JlA#sw;eqTdr=KKkr5Zz5uz43z{|azib%7HkTEkK3@LOa^uAV zZ3)-waH%7vlsIs%3on}i$fLdEbJ`ct!pa<`i0pBW;MejgL|T=~^!U+;U10Rk5KapS zq5xoS2Bhbryzm$`Y*J}ry4{1JO_4Wind6eb|F3KK_mB9<>bw8>?A7mQ#a#^liHiTE z*T0`Ymj-%LBiDE08pnC9HBNH$b8 z37zN@7r{8DDrY#rmNqhPA8lEZxjfnKB$HQRu0HD~Y?E7m=Hdul6Goi`uA2K&Z)Ec| zRMQ!A=j$ekB%AKF1Q~Tm$gAfsSxR<|sv8&bxCSYUwbd%0HQVSmxAB<2k>orb8gJE< ze5TG~$7Lu^#7`qRU zO;f^RWj^k{euncxQanHU1`E|vi$pQr*}Y&%~&j*i+M zgee)lFjK)euAm4;jn}Q!Eccwp)S6pJ92~@UhaRp|_O4k>(%Xi*%d+KH?an;&c;HF( z!SZdRd?->VZ{$JZM1AYhvP1J8!RV!;)Dz2F_J5GuB>772Y@zM_KgewXfIRGjTGXB- zm$dyom-8?Rnf_rH&dNGBvK}dDzBryrAAE%;AhFEzCF1CLhjlpOMH!u+HpB?^kjh27@cd>b#VQ)!Lk zKsL-J3iFkuC+L(!9u4(az5`uLJ2PXx$0KDp7{?bww7<8dbNu!^mnyVg zLz%8PH{ZBDKmVb3a1w_y^~19W2b+Qd@kAe3!%_1=%(k)tqcq9W_ZzIJf~P&z63lCE z{X&-0w7=U_08@*qb2hcnHG>ocXaOk@1R&CyB!GBx5HV?&Yp(JKSKH)dQNJMpUs%ifarK zf0mRm&TAPuXJa(zUy`>Fu|h50@rn5SW7JBKP{nM~Qun93ghozdrdh?geBH5dcg2L# zhq^`WeB!H#uhB>rV$|x!G-T;dyWCIEw^wfSyG2Cfe-mqdwpxoP)nx+w8@ZRaw%)fh zt(ho@cWv4y-5q048V4znJmq;Gi7sGg_q;w$DvcbNv5tA>Z1Skn_zn+#KdJHo8$O)# z{f=XIZ8|Y~)U(0z-D2E5hcPu5NkPe{CJHQMaFz!a6LVaY9C*yCEQW}kh40P94V52+ z8!&<-OPZSq1;|Bj*Ov%F) z6_Y6#(ESV!2UFW?_?nSWGcw3n)g6}MoU6%@vR>+5UrGv5<@15lRc>Hk2t*d@OoB=G za00_yhQ<}4lMkTZ?Bhm-v!lw+7gTNJ#rRC;MdibuZFqPY)4DHo-;a%T)mN2im2Y_U zfG$qUN$jG5pxdax6$9-hw-7)vWsTtN#Qn<+A9LL@-}b9Qe63{1HTZCGqik>ax+(%`pyn# z-Y5A~B<2Wadp23tAJ6ZxKTpbhvwHoLe0;o#+Akj6n@pU}_5J>;0R0h~bV;3^oX-Pa z#VzQyz3i^L4-Gr{JbvM>b67j5zx?={fv1T~f#5xiB~gjLjQNxi`ZXgjsq1~^9+m9e z{ZC?8y1h(B2n(HK650D;pn#?SI+Ay9nAw^ zOOLa=Uw3ofFBseU>Ga;x?58`UU=M5W49APEB4ccEuO-3J8=s|Cv=6D$C2oYM!>gq! zX^cDh=lVtQ4fICv#Vd}a4bf#7J=(94q@@Xbzb=WQ7*VLbd> zZ1aWYJlfreq?q_Ga=f&ERu81Oe}deK+2aL$Rc!m|pu!0U%#4=`*75>$cnb;IH`luZ zNTL?A>xK$bVQr@{xANLanDg$~ZH>4YFi{{QxC{*;^hL<%*CQOlbR!p9&fA(_06XH4 z`3*mDvV&`nnNHZMna~Bg+K}$TSNDT$;AKNUaTUrIW3Nqth|90fxDl8UYm_c7kQM@_ z!f~a^Go>599mGwCecOuzRvt8zV22MX5H33Y03GoZm14p!ib%d~Y5>uS7SAKIraQ@5(4!20WH;W zpEv==fV!dARSd=vH^b;NihO8Tw02PRD#>9tuA4W;m-SO7a(f>NTbqwsiAu_c*wV2( zSS-Zw>zNLx9d4VP(h6@UcOd&0Mg2sjM2>DTY&biP?FfC&82-yQZI`cVo!48f29WC^ zVBK&$bX~yx>X(IZSv7v$_c+S-MjwZ|Ex-A!36B{`Dubo?scfM$~ zylBK|d&aBMv6GkwRkqmGr|YuZKpz@(h`7ucc(;J>_M>Zr7xb47R#md}rRw^xoh{PP zQpSMPvp8gS*vj$5PAu7kw%!grS2)ds7tZOPR`Xy42WYh30qE~A&;i|GAF>!-%7Q}I z4SXq*xpRp)nX$I*AU-+^)UKa^qUBM0g}#UIkC-x%xt_Lc_tdR(p|6@%8umK}4Gn61 zLl%{bljVoJSpuBDgvO;n`*i}PRP7!}yu>EGSNY}WDe&bcpqW4_lXzAqgjqPb;RGFI~JT@|r|01J@l zN&yXa^y&8Qjvd&vP0WVU0L#qLwY4!K!=W7nUjqvPieLV9=H5k?wb|N>7I&{^{;)oN z%;be23{o3iXDhJLhpFUvCzBG0Zs6#rYil4{z@8y1Z1Mljq?qjkHLofR_BUm5Xc5nNS+7#MHity!q;NmV5^^44kL ztz5i3p={jfxn0w@$n8UC(v~b#^|&Re3ZXud?sjPMDsNi0GQD#M69R1ub`6zG#%Gp# zWjiU7$6N|NhkEtEm?_hWV*TTaKz6}cB`SORjtl-0QlB;~OCk#7!iJul=aU=@=5Wd# zUel{JFDL&vQrf@_kFjmMp_V8&BVN&1HmIsl`Ukm_nDYU*S^Yvp`9PTIm z6Xmk0+(RR(jqu|ad<&y}QbT@?TfLjh*RQ4fSg^Ki)gl>=o}H_KJ5y`6FRJ*b^A%!U z4$q`sTlAX?%#x>D6#&3^B zadR${8uGSFq`pUDmfXi|M9)3|a%#%V=e9B{C(5Hrbxm;%sYf@LWA8MsoZ! zcN?~BFPSt@|1P$`uFdqY4hoc@A1#T4RM{;3sEy4KrFiC~I{t**cp=L~4=FM4IcwW@ zZ)&w#PtXD1a8ZQZT zf}ZU(@ZT3HoqP%@aJ<69{xtT*u(FpSp_+I-HPl~>7^t2OF|{dJBsDisIk;yH2crN0 zP>C9WC9Q^#k-^*}%e+&F)M3IeIO};pXcwYxY2ovLYFiHybOd@a5Jn_2@Pi4VP@WWI zzZ2f%tetLs^dVyETaM6U|A&l_jOiHRSlDefX;05_J>QAR*=!$j%Ru2mMVXO;ECECY zSc31Mpu14sw6n&jZs`#-j4~0VNDQmY@s5Y2%oJT4a7gkNx1`m1UQHT5LUiPlyRxQG zFxDis^1dlKe5E4oU6#5Z@DFmIaOcggM*8a$D*w*q-W4kt9sft)RoCJ%vb1$+cj+3S z9~|v`uE925?a#x>@rI?V{*mHoVmKh&!D_9go9*EHZ0l1Axo;jEzM1iCpsyoaHDjAo zyRz?}o=DsBm>h;lj?ArtrtTRB!biG9OldP2CLAy2xwN_$9)C@F*qg*zhF$SIH7H#- zvpj7yErjblI|R{Ps@+J{+pcFSOiAwIoTeBx~J# zC%H!>!dooHAB5a2C#bcF*+>LE8GO#nZ~g#S2Q*20EB`#EokE*$Y)7L8LwWv9Ev<08 ziwBdy#gLW>uS(8|FASAq8GqHF=28uhXOnWxso$}G*f?9EV@h3Mv77hHS5HionZ+dS zkV&?IK{BV?@4!scNJb!&pIqk9gPHSXgHg?viuzhU8Mr>L{_R$^gl#E)e9yVU-nsZX zHFD1DHG8vhU&_}0Wr+d+QRHY+E`2X;@kl;&O5)L7am=N?2)!YNgv`eRB?UEC3U$SN zBDy{v7`;zQ=bwYkqoP%^v6aCWQYUejX?eSqI9rXl_Kt%`^OR|PVy;HVkgKSXhb)t5 z>s86P#WjKf4%i(qiJV(>LZn?qoz`Q{-S`=drU*r5MNo+T5)M#D9w5tU(p(w3EN+*~ z(QkbJ#RvpFLxOrH;@irk`rCZ`dP*~-W&D1kExemOnZ5Kc2BUr+LRKOu7HQ!6n~cqIWgz(MHU>48|XMmqkHHK!nzvX@D0NccUo7t@y5+ z3Wc+*pacqUq?^e=90U^=Lbb>_laS;vL>hoZ8(8HJY4a_jKy_g^$7e0MC)n-HwOmT; zr>W86_nCGu(TH0%UL;0clrH3H-K_IVL*?DX;f*#TPUA`0BBLxnCg$~A?+|U41u*Fi zNqf#|FZFllR4^J*lvSQ3nTeSun2v`$?T9|XK z6WaQ%ashv;qyQj*jZF;cp*5fOMf*zOeGmIUX>nX~jXOtLu4aZuEDFEG=!Q)x0VG$c z4l_gadm6UmoVRo;qhW6jdhPRiC#lwtlnkm{4 zEnk3>_~ABzV?Y7FwODF*1JbPGZr)xv>bR;cZONR)WU(RJi3FUDMW2WFSoS2H&+wBuOZG{vT}Hq>9T`BnS~WITdO6UXHl`=@yR%)Dv9yB4-zGSp z0MJu+Bk2g#zm;GS308HvnLnN0e^-Jh8S<|E=m_EFBq0Szx)^{e?E%9OP%Zx*k;LFe zWw8wX21lHmbafZz$NTk#sajEzMCScCO?Vs(Muak8*t+I(De^Tu)-Iy4QM`T1qJ@iQ zI-M*2?;<@Z+mQiQS8b-UUp;;S(?U$fhs}K&i*^U7jKpXrwujBF>`2}FPgVH;eR1)7 z^X3JnRRjnC=1_Seg;@L^VLuW|#ykLUin!5eFEHjU>KQ5=3pXYOZor{Hy{u4v4a59e z(23rHNpv(X9nkva%P3l7Vf~U4@)T<5U_Hs;DCbKy3SKh!+*ApY|C6`Odm09I^E{+>}!n1i~Uc{ z-gb0nQe)`Ps2VETJe4B|K^B;3@MSGY{Jd6mzS5J%HFBabtqUQbhMu{~Bc3xLGCFnV zb#=-kt}NCd!d=Ie&77y#B@ceLf4$#%L*x6SpyZH`t06rK!9S762AhUAH4A{i5K|6k zE#BxxHcgL3oMsfO0!hI32OihaLep;U0vegAu498uBGh)!5t#OmEN%P2bWH?U(N zVWf_Ct*8RDot&1`DbU4Ijv_rp7m6~$Rg83AeX@Y>T-w8vzG?& zHC+ueokn~ZJPh#pzS~F%_2S-Z5eq&cX?UUm#h%0`cRFt;D!2PlC3Fnre4`brSbK(2 zaMi+UjH-E5R2vPC7~WcuWbg;1{(wi-mbM6+^*PRSMsq*!FexDgmS1nuU?Hv7d4>F> zL8?>Z%tO)xIg>EQSxp+pOG$LeMqW2t11`nfqQya~kPV*=bQ-c$xk7mqmn_OEBgtI} zpY=Lvtr^j&gfg`60K!_;d`(Te$Tr^|u4-Cwljv`8ARfaa`fcyN#buXT??c*|d)dM4GDzO$5 z?pepYyR+`eLFt~hhAz@zJmQu3uGfiZFaM`=jWikS)*+sBLnktHr z>5CZ;w|T{eTA*eL=&dR97vM%nhpEyWXWk>x>;#Rv5Uu#wxSwJcfiSUVwM{PLw4|06 z{k@|2Z*&w~Wo3d`dh{(`WAg`Qhu{X?(7Js4th$Pas&jceiQ!M?s^5P2+Al_tV@l!Y zSa>Rw#}iVvIAouw`!iuFv_Gk#-;DN6Z%c@!OrR@CuqCo;hraX~!P>I1BN{xR>o%)X zdniO$ia!eCi0>kzwh_tjJ@YQqc=9?uiu+u|E1nZ z9W+ssqI>LZHpP*c%x(IG)FH$6wwAS|Xh0U?+J0*?%PlQtn0uHOx`&F+Gnbahq+rTU z@j@D?Fo&>oqLIDvQ7&!JMqNy}`&FTJr_a+>HlE*C7#;o?IkrxW>#W5d)tA2^KTD!u zq-TlIHei=pQKj~Sjf|M~hMqhdobzHSv%&#N^m(eFbonY}JfsF~?(Z<9!Km-f)hv>= zNkH!swiPLo7CDiWuk+ps!6zZ5XJf+q zWTH5y?50_3s1S5S|Ab3Efh0+zDoB%WwabsT2Slo0>2*Vd^LXUws)d{SfQVD=u{a0C zTSn{l@`Av%qVL}Wn#Lc8P@6sZh0)5JeqnodV}k`_vY=IQ`nxV9wKJ?o2;2 zs)6Tf3o-U5b_3{Fk*{p^{O3*ATc{r{M8_<{c!j`AmA?pQ*7$6t43$dO0D7I{b#s`X>QN8#LwGXKK(%+1i4xHQ% zEh>4`vV8>AxnAZj6>7yjIShCmA2(|m<-Le{>B;4j5Q}eNMZ&vahDs~?5J*=P&_zBd zJ}n;XqBXyzfV#nHcXa8!Q_t~`$9#d|+LBLy?~~F`)ee=q!G#}!SEF1-ZMeu>{FT}# zszgZtAorQ#ywGh2~<0+w(L|a=5q~g(2B_$I@x0L0D6tiIZwa>mjbbVs4JjsFe39HfdC;AoQZlBGtdit~S7}kvMDhfN5>aq)QBfUm}u{SyW<; zw1an~_Eysbi|j>y=&XLXRCi~*!_Zb_XoIf^F?A7K?Pbb!w~?sfIPQ~d-QlgB1{J-R zx8qX`>~263??Z;-hIU(eYTig6Xdoy~Tn(zh^=3#eZik+nPMH?rf{MX8c9!fGOP>{+ zMRlE(gUwepbSElv`dz2;hVk*@yp&hjYVMXYr&_rp3O;1N;FkQMX_*4MH){l5gXJuP`O)j~S!$f8 zJoR%2oVNiqhZQAU1V;@bskX|2^_lmLDyRRu`|zM=Q{Fl?!Y}@K-qzK&u z%b%l&u*s-0nMM>2(Vb2u0w6TKrE2aIJTsa~{TkeGnA}WC$&&hN-&i3n8j(*5YV2a% zTdVw-wI1&J>E!cf^d@f@K&J-VpQ(QGUH$BEb!MfKtKwns%)n6=-M!xXF99(sU_iQ` zPlkl>Og#PcZ|}6o5E8OLNkDmEoZCynxF_}R2z9F$omsyTExMBR8b z5zb5JUzO}Pbx}?!fQ~One8hI)#Fvx6a%WBVe`VD+S9l>Z&nG; z2eY7fbOTR>Sc)Y2Off<}0As-0r!@LJHIIf_pdEIMAk)I;C>h!QoEqMm*5P@h*cP?w zn3_YIb%CJmUfW#POtAcjbCUOHvdoOU;9&mag@6!I^|`51Ug}Y1db;$fvK@iP)VKHy z(t1}a$G!6ByG_H_VlOt#AVxoXsJT1HZ7E-a6oh4%6RPRH0UvAkcuKqCO(Z8s0b3s;nOWL6^Q2Yt`iKt zjtBF`ov&!{-yTYk?oj1SA3pmrL$8si@m%aD2B;1KF(^MXGm52?qLxhNy;2`18Ia=9 z&ExeesqtO$aI~Hz5xNG_h0uy-TR7I3DoeP>UAOkgLy>NJiTV-rm?Sc)Kn0@Q^bG=P z3AMLqe7$PoM*Q8Inz~Xp$pb5d-uZWx!I?wQ7FwST<&#@;LS;N&{Xy<6;9T}nZS%jx z`n2)#E&oN1#l?6@*GcciErn>O@a31mFLu=Vj+MjRT7na&tD=;<6P+WJyekGc_e@hq zScX=O$V`&jKa#(k`c2JQe2=CMM7^_M|Aye48phz%MlwCVE@k)&SL&AN+P0KGa(7E$ zy{j;!yp$mQ z%J&9-jg*!ofl`AYi*>);_-G?d>eeBU#=nn;78sCmgTS<~7ETwiDl3f7U`MFez1-_W z;%2bOiH&QK?89n$vjpRx6+>v5X~Rw-{jj`7f0x6{UGBZdB2nH<^b?#$0lqZ1B8(C^ zE=IhFTI$yBPK~Tw8k&2*o=)|>_IGR58|E`;5h4?;P*9s)>sg*pvPFW( z9U$OU2lGsS)6?5V`gy>ydk)$S04M)2>+*BEYcZ?{8rCtcYo}`79Jb_0c{oHvwe}*V zxr+D1C~?(2!9bG_sOX6!*6>k*=;#dr7^__~Qw2l_jq%m3PE8$NaV2ySO3@y`Cbjd8 zuh)4v!|0McduEr9P1uCYP#=A6v1k^`FA&AF{LwR4j2XFzEnh6>{ZxN0Mr%2DHa5D9 zVSj0*W%@u$9uIY%AJ&b`o|xrwkb+JbcU+utggfwqof4Ktj`2#h+9)<&^d6Q6_3`RF z#Dw~xOgiG8?c%TZ!$$gFzBM1fx@`5sH2xrWoN!L<={Gp)jK2Gl^3>Kg{rx&Beom0 zcCTL|eiJ9%L6_na`17wU*V>E^;KS)Q)S=TP>_b~qv?>Jh_oX*MBng}RsT8x6rNZF0 zmTAsVU?zv2x`c`!V-{R^2XJ4#ty2%v$z*q3q^%Aqq@ZS2Fho15OdJm;Aaq&jQK8VJ z=oHu(J-d9Fdsli=u->!kMsx|q=SI*sZ|dn%ihaG7azE8b5pL}wZ~=E!abv7hXAwfg zfcaR|w)J8mHi3Lezx)2Ui3h47nI+-*;zk9{N1#{gBxY?{*MciMp;E|6OtPrYCY?U- z3DfNchI)0WgwhEZD|N7$gAl>ujh>6fn%Ro+S2J0OK_WQ%W!f-JN{17Tj)*nU(q1MhYm2XA^Ynr8eh$!}yFrxrVe+N}Y|^M|U)xzE@2z^LT&b(tY zuC~gV-X-^Ejx+h0AtUn#x%bd-=Wa$*MgMidG09Xi`tNZ{PB+)W8DqC;B*tCT#dS^x z-sL|_Ap9VH(rfKx`mzw&W<^_pImCC`CY!3BhL3ancAAEj;JRcL^+G?pD$Bf~qAFafv8Ri}#A#JJk#Hl=doNo`z~O!X%TKF%&G(o>KvT@ffwcT%6k)nYOs|CVHkozME#=18COpdr~8b)^BrrARJOnuX?&vy*^{U>*{ zhFkW|GRo#uMUs&mmjsARDUfrz2;wJM&&wwq2(Zw zx7K_EyY~7G080y?bC9-3zb2q6DVr!ABp^u@j`=1m5z0@8Nu&5!;C7KBu5aj4X~$NH zV*r%7A~D4~&15`973Uut+ziiR3J?928mZUj%Sn(i=3I6V2f{T&pnD^I4Z)i&i|5R8 z@B2E^B!LXbxFli3Uo{RYpFj;dzk%4EOMSUNXe$AQQ&dvgECdVb;P+%O(3h#BuRZUo z>`K*!P2Jr%^sRVpC{?FP!dal6`Mvbvhfm(4CjpqL`ny0aID zRQ{zm5`cm|?Jj%q+hPD`iHKJ5sT@H@6rVyJuV!2p?q0`;B?6q20^p{2gnkDGio^!W ztI=ksxzNe3>r<*lEWuAzVEYaaM>q82diBs*d{-=}!&fA9vk_A{JJ)i?iEI_U7?LwSA^Qfie4P&Ur28_EZ5jo+`?TjsV3AB;(3&gawOK(PyWS!@{thaV{*?x)G(!AkH&t}qvjt!m<>#f2`YOF9x`7hqYXuF;OR!3*u zbp7kfarNT~q9bMULd@oAy8E+=1(?<9(r_y zao&8+h2%&%jlr_ugJN`Jvtan}xbm1fZKPWqFhRwH8s{86E)#=W8vX!FL#kNIp`N9x zRDd(FdmmNU6)T2qjM>aN9K_K8z+fCaC8l;T9ReMhlY#+cA;uDJDiAG3h#9qssEaNh z3&4WdrWK_I_4IvEFbPy81ghj54Ow_@RZdHJO*Pnf9lDkEBdvw@hNWakJ1_Unpr(Nzhj-1lXNa??&U@=XC zG~pfY@-P2g3NDA!A=fX5AHZ=mYDp(m6RQHFHS5xi%itgr!^x7u$_qsMCe$swumUR1 zVU>*p*DQD;6`M)@1JUlhb_Y$9+k{GPoQE6L%$G+k}07ZHsAk?^GFp5!edJ|)1OfkGXH$Eq|V6gWXTX+`I3=|?Jfbf#{eYHAy5rTnj znjJp;wE&E|A>!&ijc&A}8_L3c!fbl;1t&xY3S@(GaC2JpfKE7#9aP};q5b;3&sIP; zZ`VA!$e)~Qx$nN=(Nye|6YHt*PJ1M?>xqT1f29=tWW zNHCqU-kpB)Q2X;mBcmcUx9ignI!PT*f4Ty01Dxv#>tpKY4W(M`7x2Ci71vmy@EMg8wi<^*r+D*wmfuGyIhjR79aoj#J%SEFj+Vq8~G?i7#z zUe^Nv-2mc)IO&wzG6N6AlSpKo7b#RFf*E_qh{hGPZ2;YP9DaFS!I7udEd-M3ye zB%MlOgu%J>$MhSvWDn9FwtgC#w}PFoc+*f)S(!e(M%D5`!%iq&^u{5fWVefGAK~8n zT;YRHmxf(s*+(PHGK1*!ES0D=URSuwIQV1CqGLIb_oYI>uhB-y{qZ;2R~RDKyW^kg z>y)(j>V46&^#WQv7(Lrjc*{5!P}y+Xx+-Q}$x?{<&g<{Z-eNY=oVDJDD^hDK%pJKo ztci}KOXZC&P@S8;HM67!hG;i2&uTlrq3y&KXlNcgw#;$bq7kA@H+f6EuJij!=jEoC zX8d?}+Fxrd^9Ba$Z8Or@REb!z_pS&n#{tM47FEpNf(m@)BPo-3+ivh%3HTtC5?1MD z{bYk#gcX#n5?IBNZI{!ZX@94*tuX~gFnhlXux8p1%?ADAi$hLXOZvTMj6R4oX9qOJ z2MB(tTC{nmR1FU)9A>EY5))FtyIy&{G}OYOO}s1G9hznL)%p1?+cmhsT$Z#FN4)N3 zbMXtVq)mq7Shj%NDcwZgPN9UQLE(-+$gQP*({wdf?ph ze6}+Ob>7aGf0rk4%iiB=O5IJ+rJG#Ka~s_*L#?6z>CG5=*%iW;Eq1mZWJ?zgYO}2x zY4O(kX&#r9$%0`K5EHQAzVOa^LfRC&d)>BJq9L>EsuG%jGm8;CHddeao-i#>H>PS zDiNT=#>OJUDOB;cGik3~Ju%xhjfE1NuP?vzunH)EKv7gwl`_Fc5E^h#6_jZ;x!=1I z0xu>jW{Nx2kD!unVh!>UHvbr{O-dOTJ*D)UH@#7@PJ)ct0#{9iTp>;~)~N+Tu_hxZ zNR`%(h6Zr{e*Lrd;0;br80*o;ar5E^(!fuIgy;RMk za3M9XB2A#6kl8UPKi`+GjMUQkUmG^Y~*hYWbNegqj($Ra3DuKJf(e{B z@q=h8g+_s&4ngq}uCVfTw^?;j>lertU(HPI4Xt7KA5KBy<(0#61RwkS=JeLb7LK>Kr^|HX#($cEIlEJpXhMMhA~(V?(l?wt95~GH8<4}%zE(id zCjM|fUdP2ZCflxJ)lkGkS!;3oA$faeL~tIM7OwghOA}(DKH8`X=~ag?x&DAi*Etj6 zum`%NNIzqc1y!?}MQ>K`^zdfw9T#KzS%WZTMtAd$FUq#*%{{y$XV3bbvVQ7+gpYLO zl<}g#Kv<X^*pWVp6mL-q@<>Y7J*k+Mk;yTfkF1N@wOoCPZ&@O($%&+-t#4%zOjd3vd%6)$ z&Tcgcoi*KG38=3GJe>Qe9`#zw;~^VV48*C--%xQ_R_oiYXPl+Md%uj-T17bjdti=) z<VcaUI%wQjO@?8vq$FkwyV zN(PFB(fR#wMaGQr%qv`(RGiVjoyzg_)ZjC6lr1(5*{c}MTL z_}csOP-D?B2xSa0>bbZzv-kiObDK-TOX8{nM)ED4^zH-HunrQUlYRZx576V(XiWwH zR;J1tv>ON1aSx0e0SZ<`6j&oH=o~uX+&H?Rq-V%>obx+Z5N|n@#Y~B)!rkd5uSnIS z4n7eXlFNwWKP1u^^+m1|}pHvv}%Bjf;uH+WbLo zFZ1%4LZkm>42J*&wU zcr*EjU17Z*j;^dd0JJG2*{@9C(E~k>{0YAbUx3GOgY*e8j)ye8hpEpd&SN?W5=R*0 zm*g?b0+J+YmMru(zrxQw5M|Mz26(5VtFYBZ--#N=gFwBXJBDM5&Fwwg)EV&^&7?B^ z;is6bUj}+rYf-xY+ zv_ZuqnfQ?g)-=#>CunRzUe39-IBQ(8ax&6gbTL1E8c%SlTuc8n}af65T6 zQC6!`C8`8f4e*o0Z6E!xmPuH9mB%bP6@fKWnoT75eg>E8r~K8uax3U+%@rF~mk=9u zGcg5w!>cw|%qy;xI;Te`O`835F7bFKZ{D&TMtEW^ajz{_r`Em z?f{V#g+s`cUVHuJaEf?kwj=>p@t%PHL)v>rHNkybzez}dK!6ZhC}I)4I430)m2K!FutW=lP#=@3>>UAKq^n86)3* zS#$5b=9()%pr-itMnmeeRh>M!wMetK@mAlunewk*1Uao-TMVUAqO;UL7+7gIEFRzc z7UF-h8rN&b!NzQw(}%A;Q)54&w|KwcFLJZAZ%tH-h*yK;e}okio}oSVKOs2a4E=?& zN5p4Oht^+UM-X2)uN>VA@|kG6L}FvaPPYfm#h_qjZ*!T`erXPQ}R5);d?fvIH*`Hc4@) ztv`-`;$~$67QIpW{8Xzl06+(mle7N7koKfIm({P;^4&ma3jgG%=y*qhI8K8y2jEAM zME+0*LJ3P(X6nZgIDLsx^j zJ-dS@HS_04J~QL*@2NZrEwqi_sfrIFJ)Vdf`&_bJZcPAok4@PoJ}~c*MvT$B!@eq9 zpD%fCAn4^n_ZT{`N{WbjnbH1HNOLe9vD-A{o9b6|QV=uXofQ7sXJY>@seG$}GhgJD;K3C+TcK+U zviP{J_cH6&tZcA;N_?0C>FwDoIx-$p?9u&JzqTlHGdbe>wksdxb|NXPtvjc5{kZmRf80*IVb+a zq*05IvAs9qXm-l6`S7~pftTM1OCpN87`+_wyR42(xTzyph6H%zUgWBg51N;)e7Yt$ z5v4RI+t+YQ38pb3lD~Z3cTA##GK(-^)IH^5;<7l1gPaeL9Ml8HMrObOKVR;x#LgjtyPZEq zRZ?l}X0jsd-sV9(X+u4yu@RT<=pfD3%Y(|rHtTK6i>lxy8-emA=HV}j56tcn0D@pv zw{5EiddbCDw5em+_r|PLTGVjM#8ZOK)Uulls|)wx0NPO%6}8q=2^jO>S<@7`(FhN2 zc4a8Z@&sm@00me^6u67f<;S5@^=FILQG(--Sm;`1dP2D$z@58gQ#@Hg4b2xhtQ|9R zQbHti%ih|pcRbH!XtE$4!}~Q{<%KboX3NiZS3ATY?mdxY4h+j#3k^cFY61e5wXQK zYqwZg4$nZ8oZ@KFIShJoyF%ts{pgX-H(`7_ezmIDa4=NFd&&n9BnxdHExw_ZWwO7y zQtHPznMexO39A1oYFM^B!||Wl=>Jn-1l~(VW!hBPQh#HcFWsV>ShxrPV6vkzoY}GZ z6e3_yZph{nN0cGJsb_=fsGTw>^#m zq7fRL#}i6YKfaV^Ee<7yOQ#M&jE~d2#GdN+xa+=hs?Gtrh2WAZlzy3%{MJ5`$$==I?Fec zEXge>^ukf}qfoJ^gR;aO!-O<3FQJL(a;cGxQK9ucu~X&&19qpZ8uJ75(J9k0D_f_G z9;y^{Qfxb&u1$Z3toVN?4Xv1;2#0+@JQbpwUo6JY4T^b-fRX$PUft+o7AY_++lG9e zODCg8=i8nel6H*X=M;PeyXlbJQ2B&iuS=*-gIU(=+!9w9yW{ys_X@jRbNww<(fIFW z`fs_;l-`>B?e(-1G?1gmV|(jkdKy8BBe}XdZX>NBzVuIm=Bs%=+SCivSML7T^V(k8 zri>Wq`fYT~Ei^r{z5=8uY%RE5D8^N}`3MPHzjj%>7v$U`@9pz(Pg)WZ=$ieJN5RG_ zP}n!2ISiZl7rCWdUzaK45uKOa{uS1lsKZ1OiN6j_+M$u;{nYK{mi?K_S-pB0r^ZLb zY$erv{kNQd)<2*BL&f`<$92j7aEU08if;7RR{1dHa63Oyef%@$4sQ%)a3;1dH}lHp zx&e2!x7DZTN?Q7wkN=0S|2=#EfB6~IP*<8OJ>^}f-lu1kfEQ3cMYUdB?WrUWes2+B z7xu}hoi<>L)sI-a+rSo6_08E_??aphj*uqTGb+2)yc<*yn7Z4PqC%Q7Ub3#9u2rtE zhKsils)Q8eM<;S`hffcN@R!7%vGg)Q%%ucJU(@nY$Rqw3G)ZLUN63_ui>ui(N_M9s zpfyi}k7T_ZPMG3;5_s!m2y+Sc3u3alnC|)9zcOKruj6#n520LKe4Zk*^OItFy1f5a z*(2G{scyVOO{%a0Nk@e~d!@@`HR5hakR(n$QMLpwBfY9 z74TIW<&8U-LZ7ON?S+2KGUs|Q(67THQYil#KOp$=PK49r8E3!O1+ZL84^uyR_SU*M zzZy!gQaOHKk5h6wwSBec-m?*+&*>URKPA=Ye6=r+X5RQQF#^Ax%)vS|6ZQM*jCR0d zPsJL~YxY{e>!HdzY#MmIH~OP!uDFL6G30GN$)uAL(woYEk(;4?DW_UbU2y;S4|3SL zJ11;M4{7`FaO&mZKnBLr$!oFuu&F|jjaMf@_;1_m+*ZkPx@O{Lmdn5V)awE@(0uJjt)3ziZj4>YQ@Re46i>Q6}>rgsc~>z zX75s>YnN^v1}4}xKw)|k068Wu#gbkGppA+l(|Du<2L*3GpH<(Zdzf7D>TZr1?KCd< zUTa_x&)F_-6B4_3angHQOg^I$ZBIa!NJJn-wJ2M+xe!)pkehzgNE~OLi+r*yQww}| zZ^`GfKJeDK1w>D_Q0YsLsWydA&r@YgTS$FQT4K8F!|71POPasv42Afp-@GaK!gQ`D zM(P2*^2!HEIdVUxN_p*`YE~$SI2tBYHVa*OF32jE(w)T$l*Oid)v^PM?s2#ig;7BF z^)}(#Y3~gSHl~Zu5Tf4M>}R$YDqVy_dByOSv5+60{wJPOn0CAKAC$Zdg(b?78=nAy zDhx9WnxsK_Z4TAn}Qn4*ij%o+-=xj3OwOCKbYZQqaVS-HB3i0h#hr zl_#4+G|vJmE1S{}nn=5I(K%lxJNhGTzn6s<&5PiVrq3Y;t=GQ{E*%j!fAaky+&Yn* zoYI2ux8?{1zfJfQuF|I)YZ*?+%%~u&CrOrTq(zo-($CwuAg)w1l|}nX8}HyI{3&5K zFcwQG<=C~|ZY#Bl8B;sA0gu|h$Q{r)+P%id{wJLJh)CQEuU|SHLjkh@=E_1JkG+CzCi{cx7#%)8oq+HFH^Giv5 zZ0C0ORpl@VgBXML_EtfaPut$||NjXi|DP%cG!c)Q&-oV4=RpO#d`6bajimtV?(eoW62M)ugoU4Pb zxIC@X`x(AfrE3}ueIol3X2w1o-UG~gI+(CY!nuK13x=WGb4c}QM&pz}U8MO)|vzoG7BaTkdI|_9;BS>fXjEwK|;#cVea*3;mhdh zqegL}JMwO)m0LEH@9Dm{YbTgl|H@8%M;-3F7gzH{p6zVw0^o_|nnb?fL7(xZp%&|7 zzigMGoG3TkjWPwZ;D|}dIzp!1hZSyp*XPSTH!}CPp-P3IB0;SX(^<6k`%^m{A44^3 zH|y^TZE;5&&03mssd~jrdAcLY+^)I8ZtvEha^S01%<@y^zaB|;Zhfmi+>CkUKMqYy z*)1aX1<2nj_g7d&tt{@D);$|$xAlF(bpXq)T<@ZMcVF8e7Oex*GpJ4K| zbbS1_Tq#DJu-+RfuMJt@7hz|ETP9#~D|vm0K%ZpR>Z&~bGZZPi$BCC&oth1nS(9srsJlr5JJR81! z^@-jpGl)~4H<(weJO?EYl|yjp72QmV5)|Pn+yYG={4AitGNRLPw1lW*c37o1HF1Nt zO#p~>l>(qmUlBN$$Z zcoFMkUWxmUOyyo97#oe9-J9jI=S1gKVXEj@; ztzQVLs7GR}X^p;y&I71EZisfYC4C*z*(Cx`H1(+now8uKNU^p zZueia8s6vE$xzNL->H?*bRDj(xovw{Nqr-7IdEzJ-4Flye@I8gnHKWcBZjm(bb={u9_}aW)bD^ zD7Y2-4h7a;_yjg{qrM347@sQ~X!j<+>v5?`;$1k%UrbX8Bwh$Fed>x-wyY2ZwxdWTk2%K<(~wI=~|^oPAovMT;&%R+kM;4_>P1d4uv+)U}8_LxT+jtn~~PT&u2e> zj<3O(2c)P}47oS#hy6wFH|V>fhj~rM2>jo(+=&FudUyG*f2!PB%NRoKl(wAwFh#MZ zy!uwJn)3(p?}#Eoc6P-Gn} zx0_U+Pc&SpYLWsdpaONh4om}zQmFWPs_`7<1rZADE;UKYmM#;eKO=qIwVGnrAGG4f z!9Wq~fx%o5Fjg8)@YXF7{O;+QCPvp3M zVcq#38flfe>Q$zd<)nvq?n(OlT0_a&IB&UgcBQVZ} z@c^1Wl%XS)rj^|va=tFE@=`eln2kyqbjlIkvK&5=O~y@iGb0n=4AVIvFJf-m4pSdu zyM>gxMvHyFpcuk8aS_jN4UcL*9y>dmvr8wbVQBQ9w2Olb}XGni#GV+T>#Im@-S zH$uWYnI%_a-?wuLcXY~aX6xBh+rvAP$%85RmnKA4PD_MDDnF`j)?|1HERSUVEI$_f z7r8ygcTM-vh>l+3KgglmlTICO@EZIFIi;7c!~20cv^0+1a36oQ<;BM{i254$ zEW8-;R_9E%-uCE`r3r1qTEF^A7hw>?V!C#RrQ^c>aV0^HOtrgm0@~9oDhtYOwMmV3 z4{p1Z)UE3s3347%QEA7_&Zm#As_n}Cym#X?U#k6`Ud6f>TRtdF#*S@rMCByEO zrjUMJz3ky&kNno#bJgR0FI1?tZLp!;2nwsE&^6a{-LXvqY)Q>?Ua#?=F6l{W551ZT zaI{~`1iVfP$+4`MCLRl|t6@odVf^-08Fs{LM7^tQ2=~JwQ{n5&ws`0G@f2xSG{3dU z$(PaKB-(o2ae3m>42y-z55K_SXE%z1M%OZfn@7}Op_(v|Eo`9-Hrv6&n?*X$J8A_P z<>wexQG{g*j=nvfC<={Xapw@wgY*LZBM|1)E!H*_vRtu3RKBt$2UesVC$p>X5Lp_m zsizjJNSlbN!-?b-0sw)W5Jq2bZa1fuS1!G#=?y>^vM1^)GVoX$Qq#7E=#; zQvN{>XON)6{gw;x4|0__%bPPcDKtI7NLUD@o<@Nk?q`Y#%uN@NLYx@XT_a-ly|{8A zPQLylIa_!p+^XcIMyFqezBt(SI#Uz9)Oyr`oxRyeK+OWv1P}_%T z`6YkO4u|q%;~GBo>s^sx#?+>_vT@aw$s5w3m1_l{v@O!(klU=(e7+@+nwF?8!*{aA5>C7wzF#bVY;+$i+VLpfITbrWfkjopQU6PjxQWo z*GgwwM=v-{8C>8NiUkP72VIi=(d9qNW zQMhWE4^k#9;dJeD^VPZL#G8ML8}KTJIz>8cWBsNR%qy2FtfNauwYgb5at?H&lk>Xw zq7{;$w4_n148H^+P!b6{r`>%OA;+wI>52koHmxhti0&pGF3Xie@Iutut%DoMTmbnI zpD`ed5;a)JWn7RGY++1gnRq2|$8OvZu?UE*z6(;Qh(|st)YsG>32WSNu1K|#SS>4Y zi%L4FJx|^~kYA0v@oKi|>}OjO@V5KVc3)+}@?Yd$(7uIGpVeev3;b7DTT@S1T!8$& zu^tv1aOHC?p}?0?MnKuYo}G-w26O?BTX>8qInzLcqTt?sTK~^wjBiCFULfrupcPHfQyG9cA~xR+X!xk4zvBajC#wzwUS>pb61# zXSmdV+$B!w_D1z8ixA*sc+%EGL=Nbb6h|;i zy{n|kxp6W1&MP@0WBz7yt?z9_!Gty8RFAvDx8r&I($*TeqVXc#sIIxf1}S=B|I@XR!+A{h`z#v4SyHmfOfCK@MDmpD4W9$v zfzPVjvmih+RO$lUP(;BnthxeSV5kX+#-O|yApT~(*+inN?D zVv}EM!wSd(){4W*gq~3yg%q#uZhW}~j|hNi(^^EyKFxPJ8qjGZShqIg&$+>&=RK0B z%Wq?c{dpQ^eb#J`EL4XQ%GE6W>(G1~eE@eGW9jH=`Ug1)LevTF5C0L?=5%~Yjj*Of zs;b4qZ+Gt)Ikzm%V=4MJv9&DNXnvb`ba`8D{iV&{WXn!#&Z6LYS`?Uj) zc6c3S&3$xCp+hxvyGxe^%_}A4dW^&PLR=x4*WH>eMhO5%xTArDjAK*6qM#K55_X*b zu%%#=*T3%yj=XO6ZSriW6Sw;@;@9w5y`@hvyrH%2Z-uQ2f2zm_f5xPyC|sUS%$LD( zD9eh4@_=b+y02W8tTVScbZGLrbVx5mkw3sWstXkdC7lqDJMSoc8_h106e#0ypEtj| zqd5)wHX^Ts-kL-AE{WL4thRZ{D7G88R+hNiT*UzDu@&h$uW$#yT9boSD4#j0sq9#La7{_bkdCX(59!>KaolYX*Wm z2#9j@6dHvJ z)DX+cYs0P`kLsdGAPa zt1^Mn+CAgFEk(3^l`A?9k{IQp>KIHScb0VFnZ7_>lZTRTfMVW3mdCPQIhx&bzQ=Q2 zmdzA-?^T*|X7s%jI(N}HH#iP6al4r^o<$n|RLTXA>kfdkgHdqf%H_I+#`~#EA$l(R z097Nlf7h|`92y*z0zl1qu+^z5o(q~SDBJyhu^Rl<*}@sIcb`3AImxuPSu4N|X{-8v z{0Q6Uk;_03j3xFkrk*e*&KCPj{rt~lv2^t>MTyR=$mf{d`@l@C3?KB9j~3sF`AJh# zZ%QjF*n0m|5{43E0pPQIboD-25SH~Y=!Fr;#Y2FTBKhXBD}~3GqMI}YJW5>eD2f0X zr?u|fBY&f$ z3F$yDxqhUj2-sS7b#M$EE5C0A)?2BWg;i3 z&UU(W=7csxJiU2V=97}~h(H#hEJQ=dSE~I^DEHN63++c@p^IP><0u6`3*7FVb89+` zuBcX3`QW0F;L&5TGHi)ePeDK>7Z@#$17-K0MS8`NzR9}%A ziWS^ANfQyXT4s&T!km}!e3jP@(IYeY)VFp-g?=bIL3f))wwz0IH|=FOb*sy2Y=*>3 zILMYNWakn2u`uS`<7hX7=MNlw*)w|ti=TxQgK0|L>c!l}y6ogA7J`zvE=koPS7(9P<5QVxff< z3s{+NZ*)k?_mm(BJ;YBoxB%eqgV#>C%FMrrYix*??e|v75bt4dE*eQV#YA$!q2_on z0yA7NQY{5yl-R)m1q!03@iz=fz2J4;#BO{k8V0)x|^uugwwyuAWbJ(hkf{wRk1-FH)%UIS=#tzyQZw6uI>K-dd^u17%3AS!H=V|=N zd|!Shxh>Ueajm<4(%MOTR;X9^%x4gmKvA#qp^bpox}5WRe2DqWDv(X{eQOGy2sv zy}{}znQn`QIBYGD&j4&|b^l1PR83I*7_-%PP&8ru6U{%t8UjO}4YB>FzE z$1_Dmtx_amzg4*Rc)-dtm2%u4E%=$SFLO6*`d2@6O8!VXmt5_AQtAh7o@PS^63rz7 z9LBSh-C#PU@a##-=2jibH@C zlH7n_0-p*`Kizc%U%L(t`O2q{C_1YhUG>8IPLHMnuu2Gm%8u*#W|H#p3s$miNzrrv zT59okEwfDrCCkdm7g9z`mpOvZdeo-4^>iE#+Z^`0*bd4)ELp;PcK;DpbkZ%;B~eNqzq^ z3TMHe=a=)R%}lP=@W0I0|)P{lMK8ZC<(3R7|# zeV=+v@Kf0;AC*p}s(XM(Od=?^QuRl7wvC#R1UigL(o4AF8Z!^i#t+5b?ulnp*nsj{ z0aJv#z%m{#?jxLK9zKyJgnQoshyowOW;6@cn zJZCu)%L&j$Y$=mHyxwiQNuNU9lRuv5^;?)v(lResz8J&A3L*T03yI+bt-UJWp?XVM7C52O`9!ub* zly#JrvmM!O_7{wFix<)E0Dbd|O)RaJ3v3>2hW^oP;4zqr&RX{rt=K+Vhc?}xsAkC< z8y}5zM?(<2(e5w|V3h92+n7?6gI@+7u3O4eP6C)Z#C94o*0z8+)0}(RKEp31wDBvL zRF9GDq;)sYm}xJYKE!_Wkq>VJb^z&kJ4#3kXkKDA&tw$Bt$BFoeAg;WvFt3>0L(=& zP^DV}qQM5LypDLtHuv$AdX_qdp?;u6~<1}t%kQvs>98c zT=t${K|QZ1cNOJNdi9MV9=)RldU5GZ<#hGxDJ|>Gnt6wF-!FnV(z&vaE185WKKVqk z9Ej>EB_);^k1pO<_DcYn@2;GT^(89mM6jj+bVT)0c9=z>BfOD{4%8aOArsrGSr_FD zJ#n9*B;V}CU5we}qrSB6r_$Gl05C)fQ60d*$N~LyV${LQk*tXgLAug;sQhOgrd3Th zjx_)W$~z-rnt;ckI+xOCY;d+T0)*jI$~4}9gllbG;JAX64%J(GBzslLIPW7l+2 z>SK$}-zxW+?O?&K?bXlWX3#&9d+7q^ zx#M9})k30*1sIP6fEd7taSKqdwnPL>K#AfG%mc8|<<5dOqMYPYlo{h^X#!;jywMhP zUf(z@s8FNJ1meA_RNZAFSxH}_nc}-LyJ-ynGo^1;agU-#A^2=ryp|8_1eygjVxCfz zUb~OiH3sAYM8E=AB1U0QPrnq4B9OruQ6uMM#P7(>(EtSzX~vRvN@#H-@@Rr{151_s zINTE=C98Nn&bT#UkYNMULrC=7JZwLv_3_rwY}X>4QkC$Er`0H`uytUjxH+pXq`bzF zk~A|&&N3;G;EHzsER&$?6c7-S18#RVSRIl*uB*qzyPkeZsU-jbTd-_BW!jJ`==8nC z;P-c@X3dq8cYmHbOWx~m70fBix$!1v-i6;HOB6$6dGj4n#A?Q;Fk)yE@R6TtewKog z@_hox=TJKllDN(*!a~FEs}tTP_27r%&t?ZSHA2ROb+CE2Z5p2Y!uIZcf z8GhPCiC!OT615OOq!q*B7dUa_Hs-pjT!gs?nNOXI~ z^1niG)(-n!?;!AhkRxXr;J}^%3;jrK?{`C&FmJOKJ!cOp$^ zq9>8se0Gs|5`LN;nvIY2L@%~^_vlcUsX0!DhCE`Q^GtIRi|H2tg9au{hqPUts`pe( z?j-A;NJ^ic zezYwnQR*oJZ|as5k;z=e^LE1k#Mm^DxZb>tG=hZ$WaqL~dY;n@m6<=|xIP!FYN8Oz zkg@NYV7@e&w+UD0kN@hwSYkGg#C36ccnCHX#=ow9-$FmKfV2rq<)FqU;BMMjsJMK| z9i0^@pHTQ}zH_G7==if96@8pU68(D7B$wy76A}kY3Q-UY>GcdEz&AnLW!oC#A0?a4UJ;XbKL7iVrIjml%-Y@6*Y!KL1%Lyj0hGbUJymC^ zjV(Uoxn4h&DB0o=?olszEb*cQ&>9v|#I6tGHQ<<*VzTOVg~J7NJb(^VxCpzvku(@` zB4aq{mNfU^r5j>7CWAg9IW6RA0Bv@{PAOJ0d)iI*J(ql=XDWnue2=hPx$*KgSUkjS z?Yq}%uK=I%%|TX8sj*IXwrT&E);3Ka^g6 zXbvsxHjhx2avDYsb?{n@8_;ewr>Ho6h)? z7l$`72ulJCV3iV;TX0wZ6ww^%PYw#8dy!UqUEC%g1AJlum!16wVK7zZM}6)9|H{kf zBv|vnZaTWOBigZ<2Z+2vN_4=mgdBl!Q5NFouMq(1gPFTqWNJ_QfW!&d_o zYBSZknd#sDXxi+`%_t3fl72;Y^31g9yG*#*#BqOB5$2ln`Mo25IpP(d)u(O8gtTg2 zpgQle@lx`d>SZb9&6oDJK-ufLZOxOBET{Gc!;W0H{L;)7fbx{SjQRe+^u1(=<_CxS zu(8Klv15+;vx069Ob<(~nwzD^4c(I-T5W+n->w%{dJS551TNz7?nPDa4BiTvBAFn! zRA{7S`AJBmCbabo%$rLU_LH;_>2u6mx>5<($7C;+|*Z$)qtCBa1h|I!O9+v z>`GetnPp=}K2Q*9OB4ad`{4Gg-Zw0|M=A6NYgs`) zbT2(n5ultS+Sxpt3x7H@J3kRHfuXoAm8K*uY>tnn5G=DUfJi3y= zgA2|aJW~=9^Tscp@>WK721FG1C=7LY;G7Y6@>5y!mtOK}9i%mO_^5qHMoPowQO%*- z(SwIK(j7T^nayBkWxhbSX=a0{d)n|(JIvnck%i8aWlw#6m5P{GRQCFCMtr;=R09e; zo4F?aXsT}eHREcCaF(xa&G0HdktRbw+0f;y>z2dz&Zp{;6`NN;mH z+_Z8O@S8%0mm>>7Nul|jQo#r3a9F>cnKQ`rmQ_jT zcgfEbQ9wn0Le_Eb7WE#-eeU$V&8rc(*mho|^s?TXT8vAz*~QOq2E#ObttMROWKz3( z>MHfB%qn~TaOM?$TWxJ8y*-s!Z)PT0lW{EQv9Itmxr$smAZX?)LWe?tp zk*yR_8M6}+xAm}ev3P3Yq+NeM17Nvjbl~vf)9W5*0iO%mA!n5pdW2nNtO~2EneR9n zS{2{=oI#yM*;a-lyGT@%5S#}} z0v{vboG&x@oy6&^DB&C|sBE=Xq#hj+%g!8SE{cKhwk7vZk~{O6`g~71Q47CFf>m+LCcs4p$AU%6#^=9?3{A1hNWk&3pPVY5S8h0y-i) zR9aN|WJY4_hFh-ZNYCZrO! z*V?)K%TYo!ADTS?X1#T|rwS@4Asjh=vtdvM?7qlbAVCxePxQ=Y6=R+*?h^NA#K&hX zsgO68vFSK#`_12Jg~D#KF@KSJ%zkjm{WQyio`!$l<(AS<*1O9Y|ASmkfZY95;yfq7 z6N{EJq^y}tH;(JzQg*-ZL@Jg(a^IdcWtzyW;xzAi?&LV83u~w5JR?WOgg7$W&Bi@r zYGu-ES8Y5kO5$DFdsQ#Pm~g+wKomc66?u50;~A1-IX<5BRO&| zchuAtmt=}98^3@ar2fLtPglIlP9hP!kJtF9=6*{F{DhE_PpV&{O`@rG2y9_ZAF(N& ze97z3zL~r0p?nerIX3T>@F2;DDtL8jV7ss}DsW9+n~GSk0S}6pW2=3QtR1K2;driv zOONfp;*LM*(u4#Ns5I^C66*Xr_-zS-gBl)*!y7{ZtWt=W0fmwZLPj(;1qV5C%*0KH zcSy0${L@;cTzEUX-h&odvsGNOC zU0m3Bo~J%(kc7#W-Oz>2^o@$ z2A~7G^;@0{)G^mD)D!Rn_9gFgOjh{Zn6si<{tuk^dILtL%tNRzOy_>xewS``^Fb2+ zs4kxb{UKrClD1l-_S`0+R34v*#^bozAX3=a6?73}bhCtwo~VNx7xNfPmuf=kLg@-y z#;5)wcmLKwgZmgu`$*tF$VoZgQs=pZCjNt5SHP`4LrxEhpMZKpESnKlJ%UE+CTB#Q z2tEzO8Zo1NkJpyHa&o6NITXL-q~%BjZU&}d;Abos*KHar^mF-N)LJ70tHo?@S6vp> zVCFjjmYEZ*ppvvmY^dlg1;I3_5xbdivLoMZ2}9a94L)l1!c>30c2qdG!@caeN8KkI zl2_domE2xTTR_0qrg1x9PclJ8=Y~k$>?7CJFWew+F+bj{qVMeKWj^dZuEZ3uZs+dL z>(+{p_mX6axf=2u{4#;jV!0{dSe>U5C6LiIepOd7W!FOCe1yQYc~5Pn4yG#Q%pfU$ zqx^cntJD>{*&3I?*spg9O^1&&9b<%h8C8Vy{-(1xM770&bHYH#5KJ~ZyRadIacClq z=4+yNHB7@rk%j;r6y38B#pooE`-f=K9N(_1*~kTpVvW6C~uTNU)3Gt~0v9N`5PDJZ)v!>fjv^-=9+OFq6CK zp}v~3%=!4qZzH*SQ?Ps6zamOQwtgCZ?OzGu1SjZb#Pul-8P-)U`~sD$*9mzznK4Zq zcqN05ht>a5j#+oaU7)C9h88$>J;wI$fx=`T)d9;NDb${bELYna+Vsq<0~O)f{=ilz~@duQD@rAf(PcB~M-kTPQb7rE+~12yWH zY)3El-|Itvf;#snY}Y@?#a)^u-bWPzP{Lgiv~W&CeN9(XW60E^t}MwsC`I%OC1UIH zeHm?S&X(VL-YO(bn3A+v=4}p(lRO!-1KsO*FpjfbBKlnd; zzwi5fW?MkH=l@2NGixGj-Xs}U=dB^9cJZ$PX z=j;PD&+PHPAAVC6G!qG8roB?u)h#K}*vP^!YJP${#K%K`80X_mTAYCCy`C2xda#=( zpKN?G?Oxr?QJA**8T3uP|07$YU?6cozQ66~2vzp?7oWv5;1UN@Z;Hp}KTpk+?`XRc zOQEKUdQivQf!v4|jO;t&$S1+$LFXWm8d@~9OA1AVL}jRIDuB53KSwUu52D%m*9 z%1Ta3UN~cIrP_+2NYQXXDL6`)MKElxU6(^q|-x*&-n^KphVt|=)657e#Nb1EB<3{Qd0ljSm0rti~ zt=bg={i_}o$pe!t)(^1Vv5Ulf+oOvshXQgplj;MRf}8jDm1m};`F1gx0oEQpfWz3r z-q^Q#jw+&KVO{9CIzg35Y@FP)X{x62nA-z0qh<4Io3vpI5(fM&Zzzo3qc&aOhh$*4EolJ2>o#n=F8^FhCa*7xL{zwmM zWgcg$RF8ER7>LH}m}%Q*^AiHo6~zAL%;?RQDBhFtyo((2eSbH%ebMr>k8GO(r^VXv z3v*?&hS6;9cLxxY=fqg|ED37;d|cRMBGZwk6+^hLU|xLu*x}E@#3-0&-LcBvCB?FI zkhY~$g|Y9;fScTYhxxsH6GySI^ssQ=+Ewhu!bfXXTH!6briac$on&5+T=sho7Csd0=KsPdH1ITJ^RLM+%PrmR!ys0-oGr-j!y%y`Wd3|KhZ+os z5dkC|Hm`p1GRLMpWv0zV`AIom;@*dH8F!MiZvI)(VBwh~m4#u~iS`^){i%_H^O!`Y z8hy@?c>PA(GC6q@t^fNUP*? z`ba*Dt-F$O>t*08J6|mrqn>vK)0{{YXfU7)9h=&(A*=s7y~u}Ho?htV7z|$ zoL%0*zs~J-$bImmSw)AUSneiA(QdkF>r zb{YzK#w##pwoj@YXrO521XjDrvJVh!bYvwy5q@$tel9FX-EKi==oPy;PAKzvzIM@O z35S&AVva9iQZrO-KYIFxBRfPha8QCPN+9fRqcyqBr9I{A#MUinzdnNJ4mZuodC1CD z@l><>MG5T_Up-^Qovg&hRKv<;yo1_&JHEy!)3ffHsFiThZ<CLpeKUz5$Nq&v|kD<9Dr9 zjGk;qrn~i*-?1o;9f_7KPYqMOpkI|)i|*2z87MB%lc+PS5}o)ImD}2xpC~bt7N#E| zk-Zu>BGp_bmTXu@P$CKJx{xO7lN8b*i3DfeNvIVmm;PXKT#Gzrr=9<>U-6QoM82Wi zRxc84?}Dd|-H_*OhQ%Oud$>wa97nB0?kHcQA1@@qd=?Id7l6XNC^BpagIs{-TA2SixkWr|Uqs#yhEy<9R4)Xsy|%u`)ml;j!#Z1vCh|{i9mW_3fr4?=&|g(iJ^(+8XFzn$@_Hon~H_ zmrcc(tuVp(UvO-aKRQ{i~>uGuI1Kgj(CoYuIJUKL-h{^uwsa-1$F^WV3J z1uNpZ-y83RQGhV48LeM-WL3TPY){FX4z#{LBo$TF+=1iNFqZZ__I(;xH@lju_GWaW zPN7u|+wH|RaEY2d=|_EUXZ7+Me_-%_kx9r+Dnv*AcdMKek;Q1&6gMH)g%NC(C+KxS zQK|@73IHntxOt!uNCqZ{ig1uQy_wTt!4N?5kq5Wx5&Y!~?aarSY+B;7fAe1Yi<2sX zpRE)C3LxTIUfjYZW0{hgF&&A|5LQvRk6u{lbIZ5n9LhqDiW+N`rgaYFK?YM18xbl5 zHNZgdXzf%;FTTh- zCk50k&rH8w&%dac2k{;k)v9UB5j@AaQ^^VlD-?YU)RwD**<{8D-M^ML1Xki1BI($&pxdeGma+Rc=3|(@p24P&fFzCYRBcSzNgRxa^7;7`Dbee zR)}5L8iVmfvX4;+B#2As4{|>;zG{$(@mo_`{~#x(S)vm7R_Nc`gHpONZLOTVtRMlh z6P$CR^P3}BlSOpmtm477Q-obe5fqL0v>>kPxG99%M%Z2rijYL((Gke4*jNsx$XIRU znN_Kw^#^H|M2qt*p254rV2)wI**q#{z-X?hwL#Z)0qzQ)GndL6%h`bnExfSZYI6zr zee!ZGQTc(-cZ|D28u1;kTyz*t6vb@PK`S|0NlN0{#1RO?A2lf>qn&%Lmv|Q`;GSgI za%%MomywdEsX(c?gW=cOM;d_v<|URphx=BD3vCXzF^61QK7)_)Gb5{ipzf?!cMW+i z#(*lh{6BCRO>7@8HE?UmOrFgVc4hk{oY&h!m~0ORYUwJnN!nV`SWm`ei}?@pnCH&P zS@-;?l;X>A%3Z?YV&g_DUg$JWYr(ZAH!uEW%^HSY`25a;Hh@)DPlwW6En4mOVb@Gf znSkd_OJ%7eKrCZs39*$~2RUpqmq-abj(x(%%&bmJTlK!78Fn>E#pCoQ1u!?C=G%5B z?#e2LfTfC#CO1K)*Q-|}%%56yJjhXcJKJpKO0~2RIU4O=R=S$J^X;tY{j250jt*|9 z`=M?;V{!%=j}xm@VUt8I@;_Zy1viG;U z8`e)HC0~?iX_$^0r2K7m!`m!nTH{oWDJ^%SP}sj_eMzmr&kAX(<0!1DWL%AQm=$)A z-4jck6y}Opj{P<=NkG+{{`SC}&5@aBnlp!%IdLsI(2j*_ zsrtyi4hWLoy^bTfrzL`8saJ75{Vr=EF8g86o1s){%TF_N9jx=?oKkJlho@2%FSZ_p z4kkXmD;?Q6-^j`%`}-T4(zciS6LB0MKn^{rj1HB6;%c;f+}W8$-^fk@n!feiQYy(x zD)uq&k`|b}0Rw2#Kl?j24OjyVV~Y^9EUjdj_VWPjU_+P^A7Lz0x^Q{|@gV&sf}}Z# zi}Jqy=r&o8s+}ZGHhaiwIc;4Qi%QWVoig0WBC=L$73)6)YZ1!dmdJt<9AhUqYSF;l z$jRaCYI^>DdiG$M+;@5k7df;NOmU^`PK=|JTxFZsj$*gYh=_ThPOSlnlw=t+I6_&x z&~j{uCG~ZsI)9AIadJz!7yuOBFpp{ON+?HENsNQ^vPqu1TxH%!{@DKFX9%YSO^EH) zxWdfhp4OV9Z@Ss}uNq5RQy*E3`b?&fh`y|U8~EF_HA^KHiF0b*w-#qZniVLM{-bg< z-xNLO;s+<+{iAY%;b*-|@<_lx$fY&Sx61WK=**b&%Iy#iZpqp_d5wWvZXYYR!uyG( zybqwA3m`MOim4dZg;>oiO|by?t~)9zqr=R(h5}c0o!)u803)Mm&7B})mpRoPDr4CL zn$4m)3F(p>T5q>!g%)i#Up>F{<@br2m3(Z=zPrT*HH61)g#%QIJqJKS?Cdoi54eGu z6=27;uRICMLqJI9TZfLKmh|_nKgzpq+xv=w;zgd@k{*gX4%m4F|8ij}mOX9X7K=|s zs4#NBdDYf4`5VLZEr6vnxe#39BKZyVp%>PEq(9a8xt{qiAqLJMQk48KrkTSrnBC&Z zt=Ix}unhX0<)zT!_=xJa^aIt2U;g4c3@-PxO2vy}nhKvQ7_ma9{x-mL?TwCC(#Kns zwAWAEemXYuSN^>_9qUoTkd%1(ydXjxMvGs3LnzZn@nk8P9adrVvhwa7+k+~2M?0qK zv)X(pngBQ#0oCzH`2a?sai8Z4O`-FG(UT`?u@Pf|VA z3z{td7~^q>(E8*mxhpBr4U(^K;inrAkT@Dy*AV6{Qzu5QccR7nQ5H`qDs9cfD((Fa zQ&`uT{GO(<-^y>aSz^oYPK-FvFI2Uyw;v*O9Db+(4luQ;Ws$T{a`TI@COloz_Wa^c z3Np7cggRZQv2WBpWRUSy7PZGYBgQVK`4~5Rxzk!Y3=_PQ>`|@o2e}i*uO#=m_~Mm+ zkrQFakwgBsJwzcFdu>Vc$7Vqh|18x&G+|P>n4Q)PA*n)Eu~7RsNq(E1LCPzV3yUkJ z4+*dQEh(-k_eIDtM0XM%%#X|+R8z;c!0j>-!u056y-=&AK3I~y+}TbmQcU?S@bD+XPKFTCPJ-stc3~Ch@1+S1 z7F~rF3_(ZzkDutce4I8<=&y6k4Bxb7-opz&kvSPKtMA@u-wy>0(t{Sty-y>(Ki!aF zj=y+V8nQKn);GY9Cp?Wdl! zXQ^Ez$PYihz#DUd%B#Fv-n~)MzmrLW)))jnO%8W$)LmQH0uj?8dw>|hyHU}4!njEC zLsyiK&?s(p8C^aF2y>jvc}Y|ZkQNO|gRralTxhIb<~(~_KWmed;6J-c-&Rzy2-f)` zd^g$YD}D4+`?%W=0@H;fos>f?pX~J1cxt~O-d(a{d#VV1V8hGm6yCb#9N?6J^VF-F z3HN9LgxT{TK9VGTKo|;b@ekoGM#1V23;#(|IskvY;X%AzF-`ebnn0LsVplG0vn6=PzyPI8=YX=-^R~VKDkm`gXz>L%Gw@w+wyGuq)&kwiUH1o#2OMgTZFPx9e}?XkJwJm5lV(ij6N0+Lu+{pnTI12SpkdVz&h~O@&@QF0&fV#8$}l}Q~Nl4+0W_$UbS|j zb$V2+b1!dA-^uh_=&|9I--D2gispqrB14*7#V_u}NAx4DWpMV|I35@cU;-E`42Vsu zQjL!da^#mKc*#CHmBn9By`(Nk5KnDoKn*X$<6=0XN*bF|nk(zuLbErUIzlSfD(h!o z>^cS?YH8kW9hCc?kyxwBoZdYyF zR$A!&jd}JF8~(6ci7)=B+!4(;tS1rNxBRcl32J7ZAqW0|H8$2B^_Gf` zP^t~^lFXYN-dwq{GR+rPB5o=yWNZCoM-?nHDZFdd#ReOxmD6`Yv(_xIG^A7==HuH< zo6bLmJC!!JqTWtxy3ij8S^TQgumXgEgp4&xl8D}V2rfIJK$VgaVeQcxHY9@17lc6Q zp@3+u*mwl3@dGn?T!3;_)p&kdXQ-%t+h=wHUf^WP;O6Vjmy*(7f~9VG>T9Ac8hndK ziFT7$UB)k8y=mM`xO9U`1Q{0lUFLK@=@pmKMaKYZho^Hc_{AJ*ZO#=se#5V%Sr1L6 zjEQc9DSfC)TL`(euQ%;^192}TE4BQ=7q&fhVZUGl2Si<(4%fH_E%9xi%!=;QG*_N2 z_Pt)4;3oxx%X#zi;w0<*F(;+r2w{ec)2aKJc3!>pW>Ir_550uNFF5$ByMJRZd~y?g z{pQiPd>MnQ*;E_95~G8^KZ7QA4{^iM-Oi8A-cU9^`W?@(7mENpDEQ6diJZmk!{JiV zq9<__L?-am5s?8LZXe0!MZhV0Vf+X_&4Ag)###4a#5Xmhme)Lj9m`Cs=Q!pl>jt8! zS%g!{F)j!w^2j+P5_YiewCxW@4$S-#3Pop!)6$wdTczAv;|+lWPV&#ett_>I z1dw?Ownr5)ayxs4`_Z~U8eR|j2-`R_5~h$q3tur}L;42mQ07VOuNY`s1wusY?JigP zK#Tt%w+lGUaeMTjZTlYZ;7k7HM*3(9A zzZ(e%YHK|`zyEu$toEjB82R?m(hm%HLFoOw?K~aSSEr&y!<7LZSK+r1S0CJ%7pDf7 zrl3JSq~&QybGK!rXR7sm(whu=9ktmC*}R2JNhJv&d((`*&i#;9nOqk&aF8-j7%9x)$LnZK6mM5V4xNiz^kKIBuGsjatfT(Oqa(D<*W0nat zE2>#MT)~(D0~V7}7PC}aFv?L5|C}m`4B3@Y9J-T^m*K6^!WgNk^ep!`Kp3e4)86c0= zYflo78n>7pk?umeOV%^E&2DwI_}135y0L*qv|_3A3MYdOIfa5Wnqi04M|wM1jr(4W}8^uETmVAHJ`W1Lt;Ezrg_drtLrsPVs|oIK~#ol-elgA zySAa7%QiJi#tZQG>!!j!k#DFU10nGC+%WIV6Yk4mw%4FsUE*~`MD3vS3dc7Xe}5vN z3BIL-c`ge9p5vF{Zj0TLNn zilDGHBXxaN;fqIM_474!PGapd%&XfWPvk?+eP@r|;Qlsa8yRj8*g_kF8~uaaHqBSf zv!Idt)7k$ZCoG(bJM%;T7rEU22#oNeb#DPEQ=HpUAsb+X63`rO1}rPMrTh4nEO}VN>k-ML>xRbO72B-zcd7=vZ!_UQ}|gV9M2jI z14)}|SLn}rH{x15y6@6+KC))-{M_y4dtom8&E=I=EBjYklqS0s8By)G1~G9{-edy} z#pnfBm!I=~%>d6X8U%PCy-Tn%uWx_!Ij5Ni+~*P~5e7ndVbb=Mph+m87oPqlQU{wF z@BI#zjYTEV)|rj<-9RIf*cCs}Ngv?@*$(yBY>}72w#r^ z&l|Np^bz~p)~`BNq9L=>=qdZ^%?3eOa*Ou-v{ub)Scj8c@@W`;@{Y#a@W;=H{oYP? zRzfA8!z;&U+p1SvY;A?uEoT|V>l%`56z(nMt;}RIuu8$58bS29Dd|{F#@ec_-IZfQmMR@6DPVY_4EQAWD2xlB7jX|qB1Oi21c3Ql+ z@&q-tp^^{VtIT)oQf^M?R^HVd&L))lL3HToWTG?%6aFCgEaUXRZ8ooeCgdOFgcMW7 zWiAu{J%;0jwkI*wUNGl@8wW)dHQW)98!s*qo%Qfl1=7)-!|JH?C-u+U&&nZ z&XTf5K9Fe5aQYdv`)*7zfx~``o3WR@e#Z4PV?t+=^bdy{q=koqiXtyqlm$*yUfSWEcnfElckvmj%h zfH7l)!jLNQAtfh6RKT?oL^*TVPk3K7DhQ*?pk)^DLqVW5eeH`BT6DWT@~kC}Ob|xG zz@S71lMJBc7yzY`9V%y3^7g1Zb$Hurmd$U@h z8TTNIJxQo!hAJkP$yGn|d%Z}9ar-Y0JBh7&iu&}1qc#_5V9hcW8WQHW%7 z+6itl)hmo12BTc}xTz2~Z0?b-w~wlM_7v zmyZTOn94yeq$C2f*~|MqH$(om@iYHP!UqmM;@GPAm1RCGS8{l}GI#=Wt0SUA*g5HHwaoOY=!{N(rKbUpBoP9YkIbE8G<8 zvnTz|=TrU7R2=nMs}@SQBrdbTK+%z$=~=T$@y6z0d&U#z#2i;Z=-YCAX9EKW0U|7; zn3|s|IZGw9=vuHby*GLSDrqr)gV)i{1L)vMV1#hA3#Ok+Syh*nVSeMkEfk+_rSz_w z7M?8dWwhB%13V%CO}MZVoc;c_K6IkZ<>Lki+X9^Ukdw9^qnRK-4$z61C_gZ|jDl=I zbzJ5ysWzH5<%@p5=$5N1edX_hrHO@m%*!TRw!4CSs?jVfE0SD=BK9Xb`>eT>lORs3 zo!U+DLYGhbaY81^iBwq&`5Ah&R5!Yh!yc(C)Eehtfx6NvX2*P<<*Wy_{qv{OVBwHK zUc{WQ5^T4R^JB+{u-e%t(h9Ng-#56mn{H@UI}toEMBli?)dU4!1S!aeW? z`5@0Nq){;u<%$9%Nd7@?fI{cwY0+~TbH*40h6(^+pJZzB&Y!LRw>h;d3J)=f0s1CW zj&>ZF?m5e`!>4oaoi$c@s8ugU2FoHq%vL92GsaOrYkhDE0!l9@ch+6Q&;C*21**pd zQxAANJgeD(lAf@Dclp-$f3##%Lwg*p=@ghRAD&~=XeJ$GvwgzT1@Q|>(&JCaEFs=9 zomZ8yPmEdb_M655rE-3djXVp)n*!1^>WF?Sc}H|Lk0fnH!Df2rI?O)(bX`uH@8&1j zW^-x%=u#F%(*Oas&B|~*k~S9b;=LQ)Axl{?8FJRkwohgS^tAgm_gax<)*%2g4g|>k z)TYno!59!kci0_)PkmiQULU(>vjW5|h@>zfqm_*1fTgmsYr8y*m6@8H&$Uf;t%G;cRjln>N_iYJ&+X2HRIq)d z)>)0G!hPF5hn2mqvVX#p zSXWd~mh6$)c#Q)}%st*9>7|31EF=xSJgw{v7GU4?lC0C1(~PY#VD-O1LsThqG%R$> zn13&tk$8cx;jqCad`D)l;%jo_-$kKlxh&IAHFQ=?QQ%)1Q3cS9pgYM@pH+=}9ya@E z<72Lj`O(4tAXl0A^?{%1?V-utf6sERMHi5->i!@{Idhi-iO#9WWiWsTE%c~@q;PP1z2m~GIHG9)@t&mqntM}I(>$1z~+Ytb4PCUl^ zb`GGej2hd8Xa;*CpND1fpKqCKEh38o9&RjYk4j#eq1dgcGF(ic3dTwrDT^iR9~2pd z+O!yd_c4e04YJ4SbTy1G#%<@T%PMWZ9jlr$Vld4YkL0ZJ4&y4_vsD5b`JQIT70=v! z^szmRfx)uIbo4uoQcB~a(&_x_xZLX&eI5W?#S(;^)#RtfSM3$?RA69vB!BLmh=E73 zR7w1h*%P{NNl*aH^phJ-Tjo}nos{_XLFB9RiGju`CpDp-g9DU=Pt0n9=v2V~cEn?T60&UCEwgTeR1-g}Ymm6rez^Nm!*~!! zsg`rtRA{No_`GjlYp|H z{Qk7d6()SexjzCAQG@P$zx0B@JHCkSGVxjp|DHA_=bQm(6O&Z3fg1pcG z9pD1Gg9af~NlF0V5O7(<1(il_TqMxbm3q{}Q7mBWyKVyyDNy)y!HWLP$2)>i%%YtK zvkc~;lICB*ZFQzwx*>)fYWL^T`sm2Dxv|e2r1Pw;lbi^TU7IW~S@(7sPqj^zj#b6B z!-0uv;+S7kOAIDK{h)R((MzJf-cg3nrB!?v&6(2!zBcq)HkZ~%SwEFj<~4(N-lVu# zcd=7!uTq~izP?D)^yQ?K8!vHRfL=S8e0NXd$_xFK$^u}CKkn%GFD}^(=z;m;#f|Ih z>)P<7!Bo9@-@QlRL(#m!Kyrda8rWGhlZd(z`^Y%zaM#gh* ze~K&npJ?2_h8xOMc!yMF6_8y3Ntsc|wv{At24;vGKb%U*7$K31Ihkn@FaSc#geap+ z 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 CoS0Am literal 0 HcmV?d00001 diff --git a/assets/epic.wav b/assets/epic.wav new file mode 100644 index 0000000000000000000000000000000000000000..b87d68c0412e4c5cdf4958c894ba49b63bbe1c56 GIT binary patch literal 384058 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%0A9^AdYHv0U((lvzlMdRst_B^Ma!tk79 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 PB(%@87TloBl;r;bSmzB1 literal 0 HcmV?d00001 diff --git a/assets/salience_1.th b/assets/salience_1.th new file mode 100644 index 0000000000000000000000000000000000000000..dc0c9c56fb3dd044277e70ea9d0b380e223d121d GIT binary patch literal 742684 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 R-nshT?aTkUTK{tG{{uyQH2wep literal 0 HcmV?d00001 diff --git a/assets/salience_1.wav b/assets/salience_1.wav new file mode 100644 index 0000000000000000000000000000000000000000..205e52e28e1d7980022f6e2573ded7a9927aad15 GIT binary patch literal 1280058 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%0AAS&AM7eiC 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 z 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

      Uue0jE0w2)h!jiY0eAXVV@aKH1O~5 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%0DE{S6lGB9hu@= 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 z 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%0A7@T(_L*wdlz3sE;*05flKfJyPTR*?Q*(9g-s&>- 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%0D(o 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ÊXtPN^QxN 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 G@b%;C}zTcj;ZSm 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 literal 0 HcmV?d00001 diff --git a/assets/sirens_and_a_humming_engine_approach_and_pass.mp3 b/assets/sirens_and_a_humming_engine_approach_and_pass.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e74b5b61a624fbf69f5e70febc64c91658bb38ac GIT binary patch literal 15228 zcmYk@Ra}(M*8p%@q-$xAF6l05kZzFf7NwC8sinJ9I+tz%=}zhHZUhO*=XLr0FJ7*= z`+m-ud1lU;nFapv_rl=Hvo@2-Fu=&dlTpA>QE>rZu!$ZB#gO3Xz61BTkNa1Y>qjRt z<6nR)3P*lY4BVN05%9}@9LVeDnfn6cUxBCBs()c%U=d;Avk_ol`2w3)Osryq_`H@k zY0=$xFig1O<@>-t3!AWvd<8aG6$UX_hWiOCz%}f;J=uCvS+`uH6~m4H?duL|sDI{^#$3Z`O2HF!a0-V#}Fm0$nn_zt4hyJf!eqxI?$F9D^9XI#F9V3s0 zNqzmWFlzM@=xR;@6;KPEV5)o8cSIHDZH9c_<{pfp?cWLz*~+YyB>GY@MBufHvO0%z zBFc`m!Bgu|5{`sz(fsq26g58!X>swxfyf&eVGB3lN{adwtX#+QG+p>F;0fyznA72T zwUY#fpp_sO%813nS0qC%Gy+tdC0>bTF?kX}YBxfR5AwB&+w!HYCnOj*RSNr?)mMF# zO2AWHWS#3Wu$FpCSydtbZKTwqH(yl%q6(XMl(8_P2e||22jgpA^4BXdLiV0c+UbztQ zE5j3*`%=NO_D>B`xB;<>Pz#kHf&89Vk9b;A`G(ZALNo?m;rbV6UqR~QCFxC_?Cs=h zVK*2W0e#?cv^yJ^%%o5E5yay**p8QqtrrYvxLR#3Ul7F?{NP(VU36k6K+@20pa=qh z^gqwumQ1>Dsv)z=ke#7d=<%8>v@Mha zBFSDE1M+W4dB|vQf$vlt-$}=Gi>|B7@diHKpX(t>hKN3oFq{zhe77&%TSPQl2fj%e zUP{<|YGtGx63B^9!l=lHIs7+X%NU2rx{1S{v@?qt5uFZKkf=~;`k2&x(l-r^04UrS z=*7ZG0G?%oB%)Raw)b4(h*EpPu=G$&V4^f3RnNuz%D5U1^JO^rNc#;PN8Su-$)oq* zB6pT>YL4tA%mz})QesqLkM|NUd$mUt5;Hj+I$8@t!3n z1e!>!-=D_8Yz}5Q+)8wAN>LYP0Pa+Zu-`F(gHTp>9runWEjVM~D%==&E?}B!C97?= zuXJK34Z?DARq)Px+IVs??1x$eAY5ExBXND4!BeFInlWeJ``0i4Ajyde7Rwt1t_uz^ zb2PwtG8IjLqT`WL1*C0Cv(Wr*h0(lH9m7H!is+Iohge$ z&XdV~&ULu1jLmfm!W#|F1tFCp(apI~($6Cd)NUYuFZY>fMe3BIkpr&P^ip}rFwJ1r zK3u=?ThJhAy2{M#3VB}NLll64TEcjGE;I-jrEQURg*=S;@L9)8%kQz1&ybtSKrIHu638GUo+OX9keAt$Ad~YPBT$wmH zWA3M)(ziQzA`C@l%w;;BP}zj;QK6O`i1=)dP(gV@^n4b07;^yV%(s#%_{=y6)o*z6 ze^C0B*lNCd=J1FL9n`G zPabz|K6~WlNyWQ}4Zs+C%DpfBofg#6z{~q~Z(uqzr|U*AF~t$6d0_BHUMd7tlScE> zb#IuQpz4Mj#ZWNO_Q5uB!XW$84H1HgViNI?QcpA$u-5UUR@}H9p+Np7P*nHBSElra z$aiLs$;|bE!!@|%SYXw=?x&?4?In{`QB*y-Y-rA0FVeg zT7_4XgO~hzGZqe-36Ek|z4FIi1to^I_vMZXh%!a1`0^6eEFH72qDKH%UmzYh zuL9Dg)>V0G7a{5>OHo}i{;K|=Av7qR0Z_}0u;pyYK!4WaYKE6C`&}8^dS3xKq=15%Gw1 z#=AHsgVG^p^iAY7kNR|(+nyB!%j>Y~3i7?-UI$!R9?v1a z%9Z}^x+lL6prKr56lUp}ATh*BG;uV1dJ-{)TAx5>GDpICDrVes60-8#;Qp+-V36`}k33Tn9%x-jjNn`^xmLxp=M*gAp<5W~i; z8Jv#q?O`I2VH^DNMKsy?6bMo&@eEZ!x_K?Vdixm55MlR}mbit*%;S6I@O&T++^GOD z`cH4)0T0+D7lc9YL*%X~7^$*fl{AXjtEDmjUN(SQE(Din+oWDIKPW5Xy!f-!w;EgP zVN2gOiKNInKPis}!O)_)q@iZ;QnJ7PZt+~HTI=h|@Aq3G8OT(5E*TbC*C%-ZxE@6H z0`i$;F~n2+JoHBuCGF07z!Wt(M1%v}$?gsp3F+ zCvK)G%6i{WKyd`Y|ER>q_@O>pog3LijK&dnLY1-;F|36S8dn%zZZ?XMXDsX4J#qHq z6f;<+BDdcZFx+|%TWVjuz7&&d{j(Kxi>eiIBx%b3Il6n`3#UNXSLbY78kQo>W!1dQ zkkPkRROH0Lijb;CO+P7oKrf$X49>BIJhKfrVnu-C8gtXnHiBA7AbFH6BRvGyVr6P( zOY49)9KDB?cW2xHPy!&18EqQfmHSu5=hT2zW*EJ|c&97V!c(BW1 z=lwYUd=eziR|U+HwLQI4iHvx2mc1CN=_3Rj#D|FX9dyj;F_bVuEeKu@E}W5|mPDl3 zkCE-zuA#nHGA%mZZD+l*i)ltdET!&cwIsTQ-Czt~VDxowHn2qGe-z&Y)DR6>Ej7=p z7t8j6fV=TtQ6Nc_iWmTD6NFe=Akj*iELxy}5gbgRD5b`&+1nYY)rcq2L2TrO_f7cX zj_+ofrAY|uY&USfGQF~>Sk7Fv8@M()QY5v+OECs)LTHE!X;ni@CqFc+yqtzNu*jLm49nO`OM zrZOY8Ugg1Ws~4`}C^CSsgiiZ+Pd2pQ#|Rcl4sO%u;}=~mdF!Ds#ycu2~Mf?5+G4U8pa&-B5i zdgod4o>(8?J|!c#i}|BG(4lTAzVnBAa$V&;CI~T2)IkCR6%BYk=-Pj7#Cp;_O5z;r zNBM!pD8jT8oE-OsSXgH0TKjLSDhFWcjs3A<-e-7ZMWvQV3VYhT#u{oZ;uH5@@_LMq z2briM$zz<<6ZZGMQ?$hEn*!&1tOK2J8-O4 zi(KFhRB0u9te`H+JMmYRNYlPAO=V{G^t7*OS?<4m*LjC)Khu(`P<;%w)iQ*<20S^PSeLNXnw2}r+<`$T8G5j7*ir% zOFk{`F(3F>fD_)>RpsPH>j81%0Y+v)ew+(Ajg9oqH-*>+pDcSB|&HScyjy(mk(# zmp$q&_hVeF%sz6J)drpnJhGo>Brz#GaZ92A)9r<7pPBW0;^={~R9%a@%~p{7!^ZpR#nx0@suQREY6c51RT$&zj>S?2HMF>6l>)%@F@JD)))yq z)xWYC(>8dM#<8rb^E9pagVnU3!+sL~8R5G~Ben+*xuVhI9KHa?hK|$Ga7u|K;&ZK7 z{sY_@(#7KrK-p~8_gWyoJQsK>%?6%YI)J-EXScqRm@O(K5j0YQ;LmjUrNsvjsMU$z z;yf8`M?A3r$H#-^H2YmkYr^MGnM(%yYAmuJweR)lzz9of@bS{U;qz5WP!Fek;2aLcTb%JwvTt zybO#bUX!KK8)0b#AL?My>%oFsO-VFWBe-?oMCvVUi2L%hg$EN{-S#aTF zo4^mm*%A@L^iz9Z^}}I0xEVs-EdCqL@83y+@=TO$e;|U!`jhka?v!%;;o zG_F|!A&fndf4u`Hp{5!IKRt}um_w6ysyqQbPUgL@mU-W%hb6JggEdu7xw0=HBdPla zxMtsBIv-T={ndHhcFK+Zsk7VGQJx)yOoNKjvC2#~uO2y5pXkGl2^kZq9EZf10PsVJS`-t5wj>o78+(*@YZxY4o3s`gHZw2?^-! zcUeKLRS@UDbwdwt;-hx7JU9;*IL`UgTf!fdr(oA~U98^E?vS!-SGqc}GL~%Nsvye% zJSfxTYXMLCxEfW!Bk<&$p5*UOmq*Nn#ep62<(;R7B4yT6f+eH1X0cWTar<`=T|Bp% zU~V+j+9zf^nrAlvDKgOpSh0Pu{GnxOFZ6Mn1jpy@ORo+iU&zpa<$ zZW1!1rw(*fjcL4+`|ub&*ETeWc7P@RQvkjoEjiD`ba$0sh*aCXl|lPLehC6yh)=#w$H=vY6s4}>3C_*(q6Vf70FZ1lea0oIiV?iG6>jb6?KBc0u|WTO$9)>xs{S07Sjss3L^M9Zhj;NG7x(b}D79ybnR<_gJs`gB|f! z-#8yjtov&pT>7x_XJOjbKqgoSI4;>FQ+c|Ejy=lKre&mwYGO*De4EY^q$C`7BCa+n zt|;R2*@%r08rK;iq<>9Y58)9(YTq5$eiQsNkv~6sGls2BU%VNWNbl#n2aH%3b+Ex+ zwn+&`3h=B1mih;~Vojvf2r94*cr<-B-FE-uPH$9!?zv4Y6^sZOB{?)21194xBr2y z0T*B$c;enlEOEK!ij`;F zEC;dwoZyTm?ijOcH5pYn`I19IM#z#jr%bO#Xg?2nt50{_Vw_2Q*F>)82;hPwLn>B; zQ7dDb)YCnx;QxV;=URWs@F zGa&@e1#iOf2fI?YB>^_3P9~7ouRUl;t{21-=Taxp07GDdg@uf;B5)$b8U z{dK&`L(@|=RYznxKiu2O-QHP6AVaMq!qVq{X4Bx`Vl(RCepfKJo7A)le{4EGg+9O^ zlxywG$RFRae>a`kW-Ze81}Xgn&Sa!Rx(Y;6BWv?(1>V1{oVy;PCrE`&Z=fkjwYf}- zN1`bvs8rp-oh+19o=ug5{BNK+JS4P*j5EsxyHT7l^p>Uxh(BA_y~&Nc z9F8*{juE6GYs!Y4NM8aD5`X5g`E8?8 zCF8~w?6^bHW%Xc6i>dOni<{pOOJ1J0tSLU`zZ?=my#B2l!LHLoyyLAg-qRB$o=Z+% zSlgIxh9x|Bij`l2(q3s#=g{(4jtG0oa9Dj|?b0u+yyeD*6h;wfsCnZfwotOYuQuf9 zrI_$r#pzLGPR-41G; zuN{7s;oPO2ep~sjIu)jkj2OR0$D>~x$v)WgG6$rLvf6e z?FSK>_!p5HVV~<=rLD=LQ<{q^>MG8k>%OF4J$av%SFFuh(uuob)`Mrt*8NTyO>jRl zG|9>G!b(Kla%iV)jfj)4_x#Da$+J=gCF@S?&yi`C{0WCzJA|;ceUbm>{ExA$^PCXe zn>U`!+9+=p3Way>QUpU8C6R+rUQtm;HJn%o!KW=ie0=soKpI-6@#e2j3d3POVflR& z#eyl3MTw0F4Peh;u|qJYl8Gds=;>`i{{<4RDO#~|uTtxL4YjrjylTf9<-lKcXLa9? zt&E@KeN0kUwqGPG{Qhegv^d8>sO?cveV2Mq@k_sYwH-F|`JGEGn}%G;gRy$*HQ$}@ z7WM5g>|gAh@4{~j?0+8?cXQ3Jcz)GxU~>EO#jWN7*1fuyJBFnAB`*B5tZ{AA;K34R z6AOOc*~oOCg<`p3dDTk8L*Q1p;0sb<5hD2x@-K>J*bDK0^`8E0@Qft^f;oR9+085r zBAhHwLXa3n63*;r4?k7K9T}y%68lmw5>fZye$7v@;%xe*$DE&?NTJpNk!fXHqFe~< zuka<8gN2QLjpZ2>jw3+~ii$2H5TIdR2E&;jNN9W6{{{TM97ow!G8tqG^CQrUVaHh! zuB6(|Hrig1TX7dARZ2rEf!_3PnjUq{bqF0e@m z!}*#7?<(d`&n{FZoOjKySPs~8hG30~vwas%a-`nmjH>eMD3(@Jhz%uCl)ekp_)@!d zQ%yZlchsgwM~;447C%It;lw#KnIZF5gA#sw>*TsOSZG$s!K?7Q8p4D@-%DJ?l$9-b zrXk26?&}_~A2=KfYx0ogqi@}9ra^@-s zYEbALxd=M%F1MQ{^VrAyO5>aM;JPELpH*s=RfkTu*B(yZE>y7z&b=M`!8;4J*6{Bt zyYWneW3P3Ue)kuN_lsl*Qcl%R;c4;V4c=vTh-BYB5+!Pj!E3r)e~%)u$F`S44LH@U zg?OLH>5B7ziptgrhK;!IK^aslM`U2J76&W&y_TaWJ&0Z6Q~H&x%$kUb84*zXQe$rt zmdY;~naMb2Ftwd|z>1eHlGx(9s*3AQhP_3>tMa`m)QnM+=7eR{|etntJ>(skMqj@!3%cg-iM=g|R7xw@QE z&>XIUN{hPOO~Jy!-`{T~mT48>l-*bMP9(T^Nrnqw-R`hh!>WhCa1#308YRul#o|tJY+q)1Q}RI%g-WWdJ^E3QbKb| zZG+y`jJ(W4l3MaMcQcvqEoX*m#kSra6IJr=G6hWok;w61$I4H`5Ir~XRwm@d`sG;s zv?%RV2M(64a)akw(O5~{es(#Xon|1!Q3mC6X60XGiIr6Qq0n*_N$Av8&(=ze*5iq7 zrL?#_Ww^yctp(5`ZXg+z_TCdpP7uG&r(gONRwr%1}Fu%Jn%O}P4dI(&v_okQvkSz$1`6o7mAG8ZQ^*GV``AJ{Ze?4qUHMsVQuIPB@#Uh+9 zP4^~A_2&e!OLO;2J->~wy48*52^N-v2jeqxd-Y+CTdr*;;tVG7-O}J9s=(1<+P}4o zV#X7rMT*N)P7SluNBNNvF9~~N58BX4B`v%O4iaq zH&CE5$)s1ym7KF`qk0)HA}aiGUen<6$o#tD`Mkrr%lw>V?#$sJFLj7({^2Ug<8Y;B z+UQv8b?KH#wo1&bOYbP_Oa(AYB4&?^X_0t9Qk6Sbx4&LKlht)Z_4M`MM;5Dx6Afas zCQ2dNOlyot92Kr>T;_&aTex?EeXb@UFr$y_@+usmdy8Xjtc8{)ie4ZTGuRt}Q(iUL zGgZ)V5uQ_HBtZl&yW&V%X^H=MwE7X}1iC4osnjYSnCwk_{%)3&REj4dUY<{sAr3ZP zx&1wSC>D;or}tyxjBe7){&hhF2kH83(#LXyAB+RLi;nXX1L>h!9BYK0_4_uN;Mok8 znkj}`5LPa}AiTGcvdzltOk#27l`V^Y{+MeJCC5j3$`I?&rPIdNXCwmuNrtI`cQ?Gl z?`7wpI8K zEDN{N{LnYGqG3TOzz_IFZQgT73}_8Yge?vC~TqiR>h%SmlE2DcH}nH7M4Nu{JdaLgOga zFYWtfeYjBUIV=^16dWB_!YyKU^A4R0_fJ!9<5Q{xi#d);-=1D)RCP2)eQ*ma=_C?s z=KritDDzEWoPhS03Nb@QYmEKiCxVWjCMn~~dw^ZgX8bs_DcIG$2@9#;bl2aOhnq_{ zZP^DjO){o%{{@?s%w(~=^2|5QBI1Y3b=z+0Uae!gGw5FPE%Di!A(psUBJJxR0umuV zIBhYwQ7YAq5`H1m1b7xve53u68gUWHNwg=F1bR8sJ0V_b>HpWK_$^X_ zde%W z-Gle{l#uiqG*~na3NeSc6ktrTa3&}bA3<_#F%JorB36|#y;p11LzPMRl(0y7zRC~9 zPxrF*t&{I(S*9Nr(r&TBjzSaoL&WRg(HV&10LD}tF~9q`6zkB-JS5zNj4S?I4>@0v znn=U%mF21Vek>ieqjLVBy(*wMzYVjWNWA33JDz@9WIn}KQ#fg^(>v2~63nGFr39h{ z8NHFy%Z3mz-jqzRC&krWjL_01m}SlwV_{^Gd{Vh?^mvDluFTVi2(|VJo70!HJ%c9* zDCVg?%yVkG@>&Q-->4)F#+!u(;Ml!h>A1X~51SPQTU$RGed*Y6;Ewn4CEaN4Hf zdVM)C^+9c%Tm`=OGROiWit98Fx&(*XRN*aQ!3+G@d7Y11DEgJaxo{7>6a}0VY;c7? z2R45`*1eWz8+KT~usl->84?=^Z%|lxIu{NK{p*aldv9sZ zGuSh-HbdK%&di03>31zv(4O%al^Uih`vp zti|Ym{TF9EyUVFe-*ew)G@qHw&xps^j;<5M!salI0{pg=Si6H3h}@W=>LKiFvt1lj zfEmRntWtprEgnUdW+zz9RGhK^9T$H(4gsRTT7YJ%U+zh!r)<^`im(0Shyg$MrB68~ zvTdJCmJ9xgH(56uuAxQR#X)aN*jvYnmyk@w90xko-h2btF`S-MksEw`&OT-BXbUfb zv+eXDZ5lq`5WamdzG|!G;y^A(U*LhqQe^7PNo`EFyowr9@13pF9wn`3I=Egooq1X3 zcksn4mstPRHa-o}&UNk{=UsXD2H?nVGRWDbHtsYV=Vk)FtU5PVpO>-$V23^%jn@5j ziahzBR&GcrT@D4_#%#|<6LIc-k$}|Z!1{u|f=ZE3g=KH$r!Po?A5jb`9Q(J?{lSG3 z&>S8Sm0m9W>-F616%BXeu)DFxWGnO=)X%o1Ag{R*^2RLgxmwzohJ!sT>mR(!d}*-9lH$d`@TiQDBUDa!RO@`aD`j@+unB4?F@3yuQ^5w~1tEWo}hBaso0~6(zi@TpI z?%C)MeNgI2nQNKwe)xzH;@Va5`_$8INYNAabo;gUf>}hxwSvmq?=CsSX=RIH6JXfo z28J!!q1G{BOXHM`Ngvj>J0uW+k-VhC+FlaxxTT|TBU1wfu3IGF-vzZj#-*(Ea9zj4 z)4wa7i)mzxN6u=hn3V0gb>Lteko*RYMCXRB_l zTia-tP&BBuPsEx0Z`}ZAvWqE>PZ^I0S6P-$R9RR*d5-VM*d*Ch>#uy@)pXVCi<{U# zB?HO1e`m7s&xEx+&*SFTEGf_su*pd3+28PctLTV4;5y~H`{%?3mU3jjV3Of+L^_=0 zLOoVcN0|2$)Y`-!+*)Gw4CX0z{eCZnnWy#3UBLw~S8g}kY|n{CM3DaKhfUM#N=f)y z2=B+K*;a(OYfZvOCp44pee85yd$p3~HIUr*wbtR=L zXMdux;gH`P4=j>=se4Zd1&X$AOoMlR{iKl0IG`NTdTS|L-yKas#3@U`EYtku6)K{C zm$*1q&HiwSe?z?;#5{SIwg=mziwGH)rnuvN^5X!LTr-cExJ+L+oc?Eo&p~BNVU`Vz zYjFq7f$)|6^9w2FXOtC0TfU;71}PkhvqxL}y>ChTf7VrBxqhCC-TF}x&~ z;8(b~#$)3?KAshur2y-f?cZa*>nq_;M{k=D0%TGTQLI!)CB8>Zv+0KuNd$7S++9d{N&#GuED|N$Zi$Ya zpzc8t{y@mE@?t{a>|Z#UG_=K)d8l91gj`Yj87JwO{_>t8?)?%@e?T~%$?)ks==UoB#~A*qwg zl*j#k+}DD+AnY#zi@HfP_CVssM(@ixz$U?v$kvTM8uMuCLmbxcqM@0I$Tb9-x4aof z(!7(%0-e=cUe2t@V{)wGG;jy>(rnuKPp@1`y+6ZcG?(-rX!!GkV-+RPcEjqo!kr#U zk3ZHTVkI1u@le$Zvm!&NntbpjmL}yyUh4S`{QJr^UQ=-Sq2%%>{QlIt>qRo9SMY6x z#@`A9eJ0NMolf%!5uD^U<(!Y3ztD-u@o!-;xSArpN7s=y3L3JS2_hk7U$E2^tI-@m zmebL;DO%l^SL5P#vHP@xH`FycFt@(O*-}CV&EYoa0P#=?@U>P zFINBWfuW34Voz<%=$~i1{z59Ex z>ye3+_3`>4tL#3Xy?!5zL0Ca=>sT%a`q?A@w~!iqgJ7Q!ww!_jRnhnlnC~CwLv~|o zuc>mQ=N61?bhW#X%4f=ibweH2v&Dm1@UF(d6ty@n-`4@*aOE6^?0cJpWKC~Um|zSV z7`py_!}wD%b>{uI7^a^bT4|da6y)b?GJgqjiTwKf;bh{v;iQX}3mr@J_FPU{YKSL9 zS8u?1>PP(7PF;yO)XSiWYJ_IDe?Flap{;E zo%&N?@9*uN{xz&a!||ZOoiu$!-4ch?vq74;64gO?g~^$hcVDMOklHCcQ?SpJe_J=> zBhxk#L|xYBOdIZPvMro|gn$C|(`ac0!;nnS)X2;(*oFG3gDO?I8{uN{);zn0a;cp_h69Or22;x zaus`fzEV_gK;(MH&e~%*hdryg`AannE zqD*GCvUGmQ1f5~7+&Fw6_vMVmXR#rbq1(Y={)5xw?wW_>_vGnkSc;_jq={MZ7L$r! z2c7+iun6`_N(EF4KD+G2OiN8D+?)T(1&1MEip5syYv`_Xt(thiURNSx$v~|g+-ArU zjo5n|tnEGoSL3AZxQZ`TgwsIXfm(`G63Q8ec~CnRt`-eqoc;>LWioELmSE_#0us`%!+MhQjTP@dMIKAI@}lx5m3S8CUK)SvQy<*_uN))ldH z^6WQ`;2%LQ*zX|*0s;reqI@Gfbr;@`Da(aNnP-2T;kX)2K^+dO1ru zB%*Aebk&nFe4YADd^%KgX%JCnL8HQpL5ro(iHTMsu;8qtV(^2xU^Bi%`)YD=gLTnb zq8!>bB9=)zt#=+C9aG>aMGjr61Z?VQQImRac=?Pre@W_q3o^sx9)_r#Mq3hC-?cJt3tCv0ElR;)p`#AwI@qV-T-pm8;_~hUJsIk2wu)b1C_I9Dp>sllpvV z#kviRYZGL91f7SeYW0EC)V3?A{aHMWAA8BTe7e;ciV7KKQelO~CG#)hrtBx~JcnxG zTu~?;T*Vi_3FnHxg8^YaGE0)!qO&$TxE+oLvQ1*8^9XZ%0KsCJZPi_&AXh8#&<#{Tyl}_cPvP z3;w9V+Syt?el>zFIL0Cu&db|`LbhoIV!j#=sI0O&`~8blq_7J)m6U_gM@Rs_4W}vN zn7=0OoEcuMz$0gk@svlF8eR~o1 zs=$qLxpxeXZeP7Rq5q9zA(8?5*KN=1S+<%5C6kZ({kEA_+(YbvO3B$8?-H5E1XD`q zG9q$RQ=e4kB3|AsIZ;eAjq8~&-6Qq^cb>r2LTBL92ZJmh2Vj5pGlyjtGVz$!tY4g9 z!#j>04A-j<%YTb5boe9ru+Ol~gd^mhD118g$B(ZotXf86{aD{J!cAT`XSgv%tJY_H zC}8$6=kg$Vha__Sa@VFvO~TsF|23v}@2>w4M@kIA)IUIQTBGPh6)OnoQ)25Oc1}H2 z`lMy)ntzx$Ve9=WLod8Fj|Tr@V4$DDx#6M;cTN4XGwIf;e7v;1GxJp1yWX)jb#2ui zMs^+el61o1tiU(USWMQ?xj{}E-*RN2uyjLQ7tLZU@4koL`wKY!mRcPgZ{Pf5FiA~H zgT1+tPNQIo_4?SseyU~-bNF@@&Zz*_2M@Esds=M5JX^0l>Z7y-Z-Vb!?Z3yeF~D34 zP0{`uJ4G@8FYtWsW?acRye&4f9oVg(hwp8Ni}C6On&(D>L&(cAd; z8?X#q*nP2JoRt-nLvu#X;-Oy^n_*FR1nqSjVkSarzPLACg^Z;I&-`;G8F0qG z{(KHx0Y^ci&q0t^Ut}9~8lrhao?g~oR03jDjAyT6X8k-nd;OFpSHzRi*4DL5`5XSOy(WZF^v-KN|JQKNi z!Ep{i92kF=yu40s$YUr8E6VNUNMUq=#)VFRf^wwimEIUjd{NbQy|tx+7m1vl{a&2V zW=Q*8yD0ivt$dPa5F8kWvR#1%Z{adYm&0@=`7Gi(n^R1`xT?%L&}kJ@?I_7P{lQl) zWq1AINzq~Re1s{k&)lhUISl)9No&7Jf&af8I-?>P>4VHDBVr?N-Re}0qK-w1ZU$nh zZ=OZZ%vN4YY?*%b)&Wmn@vFY(7o_93I!`SW%dx$mEOA2qEgq#}mD0CibnrpPyIsA2|*vH4wp%w`5=yFL>P8#pd<4CMJi>Ic4{O<%} ziPJQ7UMnix{1XN?&Kvtbmj8Z@mo5~{c=b_hVx!_|k%EHC_s<95eadsa@%@(|p(?{U z!?vjYl}3N69QM?B{BQUfwvW4xFzmw;!&t)Bgm^FYAqAcwCcY6lik$_O28E+q)!F#@ zjNNzNyEga$un!$DILRYQBsrWf+ z?fM>h1b%BZ?2GS_D_fIFBr^WZukaf(SAHCy#UX3z#J=obyi|H;qp-mqFl#XRbJs>i zc-lqm{hD~wTP=yn)#p!Drw4@`dUxL+tvI@KL*RHYR)8wB%W+`D&EsX>d@WlyAq+>9`Y3{0 zS_{O}enAx=J2WcfUD)j}9J3FPQglQ3-@D5eA_42z_7ZQ*BbNy$7 g3;lC9N;l?#-&z}GV6ibpaV2RkRt|P{t^fD;e+X*xrT_o{ literal 0 HcmV?d00001 diff --git a/audiocraft/__init__.py b/audiocraft/__init__.py new file mode 100644 index 0000000..12d9990 --- /dev/null +++ b/audiocraft/__init__.py @@ -0,0 +1,28 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +AudioCraft is a general framework for training audio generative models. +At the moment we provide the training code for: + +- [MusicGen](https://arxiv.org/abs/2306.05284), a state-of-the-art + text-to-music and melody+text autoregressive generative model. + For the solver, see `audiocraft.solvers.musicgen.MusicGenSolver`, and for the model, + `audiocraft.models.musicgen.MusicGen`. +- [AudioGen](https://arxiv.org/abs/2209.15352), a state-of-the-art + text-to-general-audio generative model. +- [EnCodec](https://arxiv.org/abs/2210.13438), efficient and high fidelity + neural audio codec which provides an excellent tokenizer for autoregressive language models. + See `audiocraft.solvers.compression.CompressionSolver`, and `audiocraft.models.encodec.EncodecModel`. +- [MultiBandDiffusion](TODO), alternative diffusion-based decoder compatible with EnCodec that + improves the perceived quality and reduces the artifacts coming from adversarial decoders. +- [JASCO](https://arxiv.org/abs/2406.10970) Joint Audio and Symbolic Conditioning for Temporally Controlled + Text-to-Music Generation. +""" + +# flake8: noqa +from . import data, modules, models + +__version__ = '1.4.0a2' diff --git a/audiocraft/adversarial/__init__.py b/audiocraft/adversarial/__init__.py new file mode 100644 index 0000000..8640587 --- /dev/null +++ b/audiocraft/adversarial/__init__.py @@ -0,0 +1,22 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Adversarial losses and discriminator architectures.""" + +# flake8: noqa +from .discriminators import ( + MultiPeriodDiscriminator, + MultiScaleDiscriminator, + MultiScaleSTFTDiscriminator +) +from .losses import ( + AdversarialLoss, + AdvLossType, + get_adv_criterion, + get_fake_criterion, + get_real_criterion, + FeatLossType, + FeatureMatchingLoss +) diff --git a/audiocraft/adversarial/discriminators/__init__.py b/audiocraft/adversarial/discriminators/__init__.py new file mode 100644 index 0000000..f9e5ff5 --- /dev/null +++ b/audiocraft/adversarial/discriminators/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +# flake8: noqa +from .mpd import MultiPeriodDiscriminator +from .msd import MultiScaleDiscriminator +from .msstftd import MultiScaleSTFTDiscriminator diff --git a/audiocraft/adversarial/discriminators/base.py b/audiocraft/adversarial/discriminators/base.py new file mode 100644 index 0000000..a9d517e --- /dev/null +++ b/audiocraft/adversarial/discriminators/base.py @@ -0,0 +1,34 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from abc import ABC, abstractmethod +import typing as tp + +import torch +import torch.nn as nn + + +FeatureMapType = tp.List[torch.Tensor] +LogitsType = torch.Tensor +MultiDiscriminatorOutputType = tp.Tuple[tp.List[LogitsType], tp.List[FeatureMapType]] + + +class MultiDiscriminator(ABC, nn.Module): + """Base implementation for discriminators composed of sub-discriminators acting at different scales. + """ + def __init__(self): + super().__init__() + + @abstractmethod + def forward(self, x: torch.Tensor) -> MultiDiscriminatorOutputType: + ... + + @property + @abstractmethod + def num_discriminators(self) -> int: + """Number of discriminators. + """ + ... diff --git a/audiocraft/adversarial/discriminators/mpd.py b/audiocraft/adversarial/discriminators/mpd.py new file mode 100644 index 0000000..8debd1f --- /dev/null +++ b/audiocraft/adversarial/discriminators/mpd.py @@ -0,0 +1,106 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ...modules import NormConv2d +from .base import MultiDiscriminator, MultiDiscriminatorOutputType + + +def get_padding(kernel_size: int, dilation: int = 1) -> int: + return int((kernel_size * dilation - dilation) / 2) + + +class PeriodDiscriminator(nn.Module): + """Period sub-discriminator. + + Args: + period (int): Period between samples of audio. + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + n_layers (int): Number of convolutional layers. + kernel_sizes (list of int): Kernel sizes for convolutions. + stride (int): Stride for convolutions. + filters (int): Initial number of filters in convolutions. + filters_scale (int): Multiplier of number of filters as we increase depth. + max_filters (int): Maximum number of filters. + norm (str): Normalization method. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + """ + def __init__(self, period: int, in_channels: int = 1, out_channels: int = 1, + n_layers: int = 5, kernel_sizes: tp.List[int] = [5, 3], stride: int = 3, + filters: int = 8, filters_scale: int = 4, max_filters: int = 1024, + norm: str = 'weight_norm', activation: str = 'LeakyReLU', + activation_params: dict = {'negative_slope': 0.2}): + super().__init__() + self.period = period + self.n_layers = n_layers + self.activation = getattr(torch.nn, activation)(**activation_params) + self.convs = nn.ModuleList() + in_chs = in_channels + for i in range(self.n_layers): + out_chs = min(filters * (filters_scale ** (i + 1)), max_filters) + eff_stride = 1 if i == self.n_layers - 1 else stride + self.convs.append(NormConv2d(in_chs, out_chs, kernel_size=(kernel_sizes[0], 1), stride=(eff_stride, 1), + padding=((kernel_sizes[0] - 1) // 2, 0), norm=norm)) + in_chs = out_chs + self.conv_post = NormConv2d(in_chs, out_channels, kernel_size=(kernel_sizes[1], 1), stride=1, + padding=((kernel_sizes[1] - 1) // 2, 0), norm=norm) + + def forward(self, x: torch.Tensor): + fmap = [] + # 1d to 2d + b, c, t = x.shape + if t % self.period != 0: # pad first + n_pad = self.period - (t % self.period) + x = F.pad(x, (0, n_pad), 'reflect') + t = t + n_pad + x = x.view(b, c, t // self.period, self.period) + + for conv in self.convs: + x = conv(x) + x = self.activation(x) + fmap.append(x) + x = self.conv_post(x) + fmap.append(x) + # x = torch.flatten(x, 1, -1) + + return x, fmap + + +class MultiPeriodDiscriminator(MultiDiscriminator): + """Multi-Period (MPD) Discriminator. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + periods (Sequence[int]): Periods between samples of audio for the sub-discriminators. + **kwargs: Additional args for `PeriodDiscriminator` + """ + def __init__(self, in_channels: int = 1, out_channels: int = 1, + periods: tp.Sequence[int] = [2, 3, 5, 7, 11], **kwargs): + super().__init__() + self.discriminators = nn.ModuleList([ + PeriodDiscriminator(p, in_channels, out_channels, **kwargs) for p in periods + ]) + + @property + def num_discriminators(self): + return len(self.discriminators) + + def forward(self, x: torch.Tensor) -> MultiDiscriminatorOutputType: + logits = [] + fmaps = [] + for disc in self.discriminators: + logit, fmap = disc(x) + logits.append(logit) + fmaps.append(fmap) + return logits, fmaps diff --git a/audiocraft/adversarial/discriminators/msd.py b/audiocraft/adversarial/discriminators/msd.py new file mode 100644 index 0000000..c4e67e2 --- /dev/null +++ b/audiocraft/adversarial/discriminators/msd.py @@ -0,0 +1,126 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import numpy as np +import torch +import torch.nn as nn + +from ...modules import NormConv1d +from .base import MultiDiscriminator, MultiDiscriminatorOutputType + + +class ScaleDiscriminator(nn.Module): + """Waveform sub-discriminator. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + kernel_sizes (Sequence[int]): Kernel sizes for first and last convolutions. + filters (int): Number of initial filters for convolutions. + max_filters (int): Maximum number of filters. + downsample_scales (Sequence[int]): Scale for downsampling implemented as strided convolutions. + inner_kernel_sizes (Sequence[int] or None): Kernel sizes for inner convolutions. + groups (Sequence[int] or None): Groups for inner convolutions. + strides (Sequence[int] or None): Strides for inner convolutions. + paddings (Sequence[int] or None): Paddings for inner convolutions. + norm (str): Normalization method. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + pad (str): Padding for initial convolution. + pad_params (dict): Parameters to provide to the padding module. + """ + def __init__(self, in_channels=1, out_channels=1, kernel_sizes: tp.Sequence[int] = [5, 3], + filters: int = 16, max_filters: int = 1024, downsample_scales: tp.Sequence[int] = [4, 4, 4, 4], + inner_kernel_sizes: tp.Optional[tp.Sequence[int]] = None, groups: tp.Optional[tp.Sequence[int]] = None, + strides: tp.Optional[tp.Sequence[int]] = None, paddings: tp.Optional[tp.Sequence[int]] = None, + norm: str = 'weight_norm', activation: str = 'LeakyReLU', + activation_params: dict = {'negative_slope': 0.2}, pad: str = 'ReflectionPad1d', + pad_params: dict = {}): + super().__init__() + assert len(kernel_sizes) == 2 + assert kernel_sizes[0] % 2 == 1 + assert kernel_sizes[1] % 2 == 1 + assert (inner_kernel_sizes is None or len(inner_kernel_sizes) == len(downsample_scales)) + assert (groups is None or len(groups) == len(downsample_scales)) + assert (strides is None or len(strides) == len(downsample_scales)) + assert (paddings is None or len(paddings) == len(downsample_scales)) + self.activation = getattr(torch.nn, activation)(**activation_params) + self.convs = nn.ModuleList() + self.convs.append( + nn.Sequential( + getattr(torch.nn, pad)((np.prod(kernel_sizes) - 1) // 2, **pad_params), + NormConv1d(in_channels, filters, kernel_size=np.prod(kernel_sizes), stride=1, norm=norm) + ) + ) + + in_chs = filters + for i, downsample_scale in enumerate(downsample_scales): + out_chs = min(in_chs * downsample_scale, max_filters) + default_kernel_size = downsample_scale * 10 + 1 + default_stride = downsample_scale + default_padding = (default_kernel_size - 1) // 2 + default_groups = in_chs // 4 + self.convs.append( + NormConv1d(in_chs, out_chs, + kernel_size=inner_kernel_sizes[i] if inner_kernel_sizes else default_kernel_size, + stride=strides[i] if strides else default_stride, + groups=groups[i] if groups else default_groups, + padding=paddings[i] if paddings else default_padding, + norm=norm)) + in_chs = out_chs + + out_chs = min(in_chs * 2, max_filters) + self.convs.append(NormConv1d(in_chs, out_chs, kernel_size=kernel_sizes[0], stride=1, + padding=(kernel_sizes[0] - 1) // 2, norm=norm)) + self.conv_post = NormConv1d(out_chs, out_channels, kernel_size=kernel_sizes[1], stride=1, + padding=(kernel_sizes[1] - 1) // 2, norm=norm) + + def forward(self, x: torch.Tensor): + fmap = [] + for layer in self.convs: + x = layer(x) + x = self.activation(x) + fmap.append(x) + x = self.conv_post(x) + fmap.append(x) + # x = torch.flatten(x, 1, -1) + return x, fmap + + +class MultiScaleDiscriminator(MultiDiscriminator): + """Multi-Scale (MSD) Discriminator, + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + downsample_factor (int): Downsampling factor between the different scales. + scale_norms (Sequence[str]): Normalization for each sub-discriminator. + **kwargs: Additional args for ScaleDiscriminator. + """ + def __init__(self, in_channels: int = 1, out_channels: int = 1, downsample_factor: int = 2, + scale_norms: tp.Sequence[str] = ['weight_norm', 'weight_norm', 'weight_norm'], **kwargs): + super().__init__() + self.discriminators = nn.ModuleList([ + ScaleDiscriminator(in_channels, out_channels, norm=norm, **kwargs) for norm in scale_norms + ]) + self.downsample = nn.AvgPool1d(downsample_factor * 2, downsample_factor, padding=downsample_factor) + + @property + def num_discriminators(self): + return len(self.discriminators) + + def forward(self, x: torch.Tensor) -> MultiDiscriminatorOutputType: + logits = [] + fmaps = [] + for i, disc in enumerate(self.discriminators): + if i != 0: + self.downsample(x) + logit, fmap = disc(x) + logits.append(logit) + fmaps.append(fmap) + return logits, fmaps diff --git a/audiocraft/adversarial/discriminators/msstftd.py b/audiocraft/adversarial/discriminators/msstftd.py new file mode 100644 index 0000000..81a9100 --- /dev/null +++ b/audiocraft/adversarial/discriminators/msstftd.py @@ -0,0 +1,134 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import torchaudio +import torch +from torch import nn +from einops import rearrange + +from ...modules import NormConv2d +from .base import MultiDiscriminator, MultiDiscriminatorOutputType + + +def get_2d_padding(kernel_size: tp.Tuple[int, int], dilation: tp.Tuple[int, int] = (1, 1)): + return (((kernel_size[0] - 1) * dilation[0]) // 2, ((kernel_size[1] - 1) * dilation[1]) // 2) + + +class DiscriminatorSTFT(nn.Module): + """STFT sub-discriminator. + + Args: + filters (int): Number of filters in convolutions. + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + n_fft (int): Size of FFT for each scale. + hop_length (int): Length of hop between STFT windows for each scale. + kernel_size (tuple of int): Inner Conv2d kernel sizes. + stride (tuple of int): Inner Conv2d strides. + dilations (list of int): Inner Conv2d dilation on the time dimension. + win_length (int): Window size for each scale. + normalized (bool): Whether to normalize by magnitude after stft. + norm (str): Normalization method. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + growth (int): Growth factor for the filters. + """ + def __init__(self, filters: int, in_channels: int = 1, out_channels: int = 1, + n_fft: int = 1024, hop_length: int = 256, win_length: int = 1024, max_filters: int = 1024, + filters_scale: int = 1, kernel_size: tp.Tuple[int, int] = (3, 9), dilations: tp.List = [1, 2, 4], + stride: tp.Tuple[int, int] = (1, 2), normalized: bool = True, norm: str = 'weight_norm', + activation: str = 'LeakyReLU', activation_params: dict = {'negative_slope': 0.2}): + super().__init__() + assert len(kernel_size) == 2 + assert len(stride) == 2 + self.filters = filters + self.in_channels = in_channels + self.out_channels = out_channels + self.n_fft = n_fft + self.hop_length = hop_length + self.win_length = win_length + self.normalized = normalized + self.activation = getattr(torch.nn, activation)(**activation_params) + self.spec_transform = torchaudio.transforms.Spectrogram( + n_fft=self.n_fft, hop_length=self.hop_length, win_length=self.win_length, window_fn=torch.hann_window, + normalized=self.normalized, center=False, pad_mode=None, power=None) + spec_channels = 2 * self.in_channels + self.convs = nn.ModuleList() + self.convs.append( + NormConv2d(spec_channels, self.filters, kernel_size=kernel_size, padding=get_2d_padding(kernel_size)) + ) + in_chs = min(filters_scale * self.filters, max_filters) + for i, dilation in enumerate(dilations): + out_chs = min((filters_scale ** (i + 1)) * self.filters, max_filters) + self.convs.append(NormConv2d(in_chs, out_chs, kernel_size=kernel_size, stride=stride, + dilation=(dilation, 1), padding=get_2d_padding(kernel_size, (dilation, 1)), + norm=norm)) + in_chs = out_chs + out_chs = min((filters_scale ** (len(dilations) + 1)) * self.filters, max_filters) + self.convs.append(NormConv2d(in_chs, out_chs, kernel_size=(kernel_size[0], kernel_size[0]), + padding=get_2d_padding((kernel_size[0], kernel_size[0])), + norm=norm)) + self.conv_post = NormConv2d(out_chs, self.out_channels, + kernel_size=(kernel_size[0], kernel_size[0]), + padding=get_2d_padding((kernel_size[0], kernel_size[0])), + norm=norm) + + def forward(self, x: torch.Tensor): + fmap = [] + z = self.spec_transform(x) # [B, 2, Freq, Frames, 2] + z = torch.cat([z.real, z.imag], dim=1) + z = rearrange(z, 'b c w t -> b c t w') + for i, layer in enumerate(self.convs): + z = layer(z) + z = self.activation(z) + fmap.append(z) + z = self.conv_post(z) + return z, fmap + + +class MultiScaleSTFTDiscriminator(MultiDiscriminator): + """Multi-Scale STFT (MS-STFT) discriminator. + + Args: + filters (int): Number of filters in convolutions. + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + sep_channels (bool): Separate channels to distinct samples for stereo support. + n_ffts (Sequence[int]): Size of FFT for each scale. + hop_lengths (Sequence[int]): Length of hop between STFT windows for each scale. + win_lengths (Sequence[int]): Window size for each scale. + **kwargs: Additional args for STFTDiscriminator. + """ + def __init__(self, filters: int, in_channels: int = 1, out_channels: int = 1, sep_channels: bool = False, + n_ffts: tp.List[int] = [1024, 2048, 512], hop_lengths: tp.List[int] = [256, 512, 128], + win_lengths: tp.List[int] = [1024, 2048, 512], **kwargs): + super().__init__() + assert len(n_ffts) == len(hop_lengths) == len(win_lengths) + self.sep_channels = sep_channels + self.discriminators = nn.ModuleList([ + DiscriminatorSTFT(filters, in_channels=in_channels, out_channels=out_channels, + n_fft=n_ffts[i], win_length=win_lengths[i], hop_length=hop_lengths[i], **kwargs) + for i in range(len(n_ffts)) + ]) + + @property + def num_discriminators(self): + return len(self.discriminators) + + def _separate_channels(self, x: torch.Tensor) -> torch.Tensor: + B, C, T = x.shape + return x.view(-1, 1, T) + + def forward(self, x: torch.Tensor) -> MultiDiscriminatorOutputType: + logits = [] + fmaps = [] + for disc in self.discriminators: + logit, fmap = disc(x) + logits.append(logit) + fmaps.append(fmap) + return logits, fmaps diff --git a/audiocraft/adversarial/losses.py b/audiocraft/adversarial/losses.py new file mode 100644 index 0000000..be293e7 --- /dev/null +++ b/audiocraft/adversarial/losses.py @@ -0,0 +1,228 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Utility module to handle adversarial losses without requiring to mess up the main training loop. +""" + +import typing as tp + +import flashy +import torch +import torch.nn as nn +import torch.nn.functional as F + + +ADVERSARIAL_LOSSES = ['mse', 'hinge', 'hinge2'] + + +AdvLossType = tp.Union[nn.Module, tp.Callable[[torch.Tensor], torch.Tensor]] +FeatLossType = tp.Union[nn.Module, tp.Callable[[torch.Tensor, torch.Tensor], torch.Tensor]] + + +class AdversarialLoss(nn.Module): + """Adversary training wrapper. + + Args: + adversary (nn.Module): The adversary module will be used to estimate the logits given the fake and real samples. + We assume here the adversary output is ``Tuple[List[torch.Tensor], List[List[torch.Tensor]]]`` + where the first item is a list of logits and the second item is a list of feature maps. + optimizer (torch.optim.Optimizer): Optimizer used for training the given module. + loss (AdvLossType): Loss function for generator training. + loss_real (AdvLossType): Loss function for adversarial training on logits from real samples. + loss_fake (AdvLossType): Loss function for adversarial training on logits from fake samples. + loss_feat (FeatLossType): Feature matching loss function for generator training. + normalize (bool): Whether to normalize by number of sub-discriminators. + + Example of usage: + adv_loss = AdversarialLoss(adversaries, optimizer, loss, loss_real, loss_fake) + for real in loader: + noise = torch.randn(...) + fake = model(noise) + adv_loss.train_adv(fake, real) + loss, _ = adv_loss(fake, real) + loss.backward() + """ + def __init__(self, + adversary: nn.Module, + optimizer: torch.optim.Optimizer, + loss: AdvLossType, + loss_real: AdvLossType, + loss_fake: AdvLossType, + loss_feat: tp.Optional[FeatLossType] = None, + normalize: bool = True): + super().__init__() + self.adversary: nn.Module = adversary + flashy.distrib.broadcast_model(self.adversary) + self.optimizer = optimizer + self.loss = loss + self.loss_real = loss_real + self.loss_fake = loss_fake + self.loss_feat = loss_feat + self.normalize = normalize + + def _save_to_state_dict(self, destination, prefix, keep_vars): + # Add the optimizer state dict inside our own. + super()._save_to_state_dict(destination, prefix, keep_vars) + destination[prefix + 'optimizer'] = self.optimizer.state_dict() + return destination + + def _load_from_state_dict(self, state_dict, prefix, *args, **kwargs): + # Load optimizer state. + self.optimizer.load_state_dict(state_dict.pop(prefix + 'optimizer')) + super()._load_from_state_dict(state_dict, prefix, *args, **kwargs) + + def get_adversary_pred(self, x): + """Run adversary model, validating expected output format.""" + logits, fmaps = self.adversary(x) + assert isinstance(logits, list) and all([isinstance(t, torch.Tensor) for t in logits]), \ + f'Expecting a list of tensors as logits but {type(logits)} found.' + assert isinstance(fmaps, list), f'Expecting a list of features maps but {type(fmaps)} found.' + for fmap in fmaps: + assert isinstance(fmap, list) and all([isinstance(f, torch.Tensor) for f in fmap]), \ + f'Expecting a list of tensors as feature maps but {type(fmap)} found.' + return logits, fmaps + + def train_adv(self, fake: torch.Tensor, real: torch.Tensor) -> torch.Tensor: + """Train the adversary with the given fake and real example. + + We assume the adversary output is the following format: Tuple[List[torch.Tensor], List[List[torch.Tensor]]]. + The first item being the logits and second item being a list of feature maps for each sub-discriminator. + + This will automatically synchronize gradients (with `flashy.distrib.eager_sync_model`) + and call the optimizer. + """ + loss = torch.tensor(0., device=fake.device) + all_logits_fake_is_fake, _ = self.get_adversary_pred(fake.detach()) + all_logits_real_is_fake, _ = self.get_adversary_pred(real.detach()) + n_sub_adversaries = len(all_logits_fake_is_fake) + for logit_fake_is_fake, logit_real_is_fake in zip(all_logits_fake_is_fake, all_logits_real_is_fake): + loss += self.loss_fake(logit_fake_is_fake) + self.loss_real(logit_real_is_fake) + + if self.normalize: + loss /= n_sub_adversaries + + self.optimizer.zero_grad() + with flashy.distrib.eager_sync_model(self.adversary): + loss.backward() + self.optimizer.step() + + return loss + + def forward(self, fake: torch.Tensor, real: torch.Tensor) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Return the loss for the generator, i.e. trying to fool the adversary, + and feature matching loss if provided. + """ + adv = torch.tensor(0., device=fake.device) + feat = torch.tensor(0., device=fake.device) + with flashy.utils.readonly(self.adversary): + all_logits_fake_is_fake, all_fmap_fake = self.get_adversary_pred(fake) + all_logits_real_is_fake, all_fmap_real = self.get_adversary_pred(real) + n_sub_adversaries = len(all_logits_fake_is_fake) + for logit_fake_is_fake in all_logits_fake_is_fake: + adv += self.loss(logit_fake_is_fake) + if self.loss_feat: + for fmap_fake, fmap_real in zip(all_fmap_fake, all_fmap_real): + feat += self.loss_feat(fmap_fake, fmap_real) + + if self.normalize: + adv /= n_sub_adversaries + feat /= n_sub_adversaries + + return adv, feat + + +def get_adv_criterion(loss_type: str) -> tp.Callable: + assert loss_type in ADVERSARIAL_LOSSES + if loss_type == 'mse': + return mse_loss + elif loss_type == 'hinge': + return hinge_loss + elif loss_type == 'hinge2': + return hinge2_loss + raise ValueError('Unsupported loss') + + +def get_fake_criterion(loss_type: str) -> tp.Callable: + assert loss_type in ADVERSARIAL_LOSSES + if loss_type == 'mse': + return mse_fake_loss + elif loss_type in ['hinge', 'hinge2']: + return hinge_fake_loss + raise ValueError('Unsupported loss') + + +def get_real_criterion(loss_type: str) -> tp.Callable: + assert loss_type in ADVERSARIAL_LOSSES + if loss_type == 'mse': + return mse_real_loss + elif loss_type in ['hinge', 'hinge2']: + return hinge_real_loss + raise ValueError('Unsupported loss') + + +def mse_real_loss(x: torch.Tensor) -> torch.Tensor: + return F.mse_loss(x, torch.tensor(1., device=x.device).expand_as(x)) + + +def mse_fake_loss(x: torch.Tensor) -> torch.Tensor: + return F.mse_loss(x, torch.tensor(0., device=x.device).expand_as(x)) + + +def hinge_real_loss(x: torch.Tensor) -> torch.Tensor: + return -torch.mean(torch.min(x - 1, torch.tensor(0., device=x.device).expand_as(x))) + + +def hinge_fake_loss(x: torch.Tensor) -> torch.Tensor: + return -torch.mean(torch.min(-x - 1, torch.tensor(0., device=x.device).expand_as(x))) + + +def mse_loss(x: torch.Tensor) -> torch.Tensor: + if x.numel() == 0: + return torch.tensor([0.0], device=x.device) + return F.mse_loss(x, torch.tensor(1., device=x.device).expand_as(x)) + + +def hinge_loss(x: torch.Tensor) -> torch.Tensor: + if x.numel() == 0: + return torch.tensor([0.0], device=x.device) + return -x.mean() + + +def hinge2_loss(x: torch.Tensor) -> torch.Tensor: + if x.numel() == 0: + return torch.tensor([0.0]) + return -torch.mean(torch.min(x - 1, torch.tensor(0., device=x.device).expand_as(x))) + + +class FeatureMatchingLoss(nn.Module): + """Feature matching loss for adversarial training. + + Args: + loss (nn.Module): Loss to use for feature matching (default=torch.nn.L1). + normalize (bool): Whether to normalize the loss. + by number of feature maps. + """ + def __init__(self, loss: nn.Module = torch.nn.L1Loss(), normalize: bool = True): + super().__init__() + self.loss = loss + self.normalize = normalize + + def forward(self, fmap_fake: tp.List[torch.Tensor], fmap_real: tp.List[torch.Tensor]) -> torch.Tensor: + assert len(fmap_fake) == len(fmap_real) and len(fmap_fake) > 0 + feat_loss = torch.tensor(0., device=fmap_fake[0].device) + feat_scale = torch.tensor(0., device=fmap_fake[0].device) + n_fmaps = 0 + for (feat_fake, feat_real) in zip(fmap_fake, fmap_real): + assert feat_fake.shape == feat_real.shape + n_fmaps += 1 + feat_loss += self.loss(feat_fake, feat_real) + feat_scale += torch.mean(torch.abs(feat_real)) + + if self.normalize: + feat_loss /= n_fmaps + + return feat_loss diff --git a/audiocraft/data/__init__.py b/audiocraft/data/__init__.py new file mode 100644 index 0000000..fdd35f2 --- /dev/null +++ b/audiocraft/data/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Audio loading and writing support. Datasets for raw audio +or also including some metadata.""" + +# flake8: noqa +from . import audio, audio_dataset, info_audio_dataset, music_dataset, sound_dataset, jasco_dataset diff --git a/audiocraft/data/audio.py b/audiocraft/data/audio.py new file mode 100644 index 0000000..8496cb6 --- /dev/null +++ b/audiocraft/data/audio.py @@ -0,0 +1,351 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Audio IO methods are defined in this module (info, read, write), +We rely on av library for faster read when possible, otherwise on torchaudio. +""" + +from dataclasses import dataclass +from pathlib import Path +import logging +import typing as tp + +import numpy as np +import soundfile +import torch +from torch.nn import functional as F + +import av +import subprocess as sp + +from .audio_utils import f32_pcm, normalize_audio + + +_av_initialized = False + + +def _init_av(): + global _av_initialized + if _av_initialized: + return + logger = logging.getLogger('libav.mp3') + logger.setLevel(logging.ERROR) + _av_initialized = True + + +@dataclass(frozen=True) +class AudioFileInfo: + sample_rate: int + duration: float + channels: int + + +def _av_info(filepath: tp.Union[str, Path]) -> AudioFileInfo: + _init_av() + with av.open(str(filepath)) as af: + stream = af.streams.audio[0] + sample_rate = stream.codec_context.sample_rate + duration = float(stream.duration * stream.time_base) + channels = stream.channels + return AudioFileInfo(sample_rate, duration, channels) + + +def _soundfile_info(filepath: tp.Union[str, Path]) -> AudioFileInfo: + info = soundfile.info(filepath) + return AudioFileInfo(info.samplerate, info.duration, info.channels) + + +def audio_info(filepath: tp.Union[str, Path]) -> AudioFileInfo: + # torchaudio no longer returns useful duration informations for some formats like mp3s. + filepath = Path(filepath) + if filepath.suffix in ['.flac', '.ogg']: # TODO: Validate .ogg can be safely read with av_info + # ffmpeg has some weird issue with flac. + return _soundfile_info(filepath) + else: + return _av_info(filepath) + + +def _av_read(filepath: tp.Union[str, Path], seek_time: float = 0, duration: float = -1.) -> tp.Tuple[torch.Tensor, int]: + """FFMPEG-based audio file reading using PyAV bindings. + Soundfile cannot read mp3 and av_read is more efficient than torchaudio. + + Args: + filepath (str or Path): Path to audio file to read. + seek_time (float): Time at which to start reading in the file. + duration (float): Duration to read from the file. If set to -1, the whole file is read. + Returns: + tuple of torch.Tensor, int: Tuple containing audio data and sample rate + """ + _init_av() + with av.open(str(filepath)) as af: + stream = af.streams.audio[0] + sr = stream.codec_context.sample_rate + num_frames = int(sr * duration) if duration >= 0 else -1 + frame_offset = int(sr * seek_time) + # we need a small negative offset otherwise we get some edge artifact + # from the mp3 decoder. + af.seek(int(max(0, (seek_time - 0.1)) / stream.time_base), stream=stream) + frames = [] + length = 0 + for frame in af.decode(streams=stream.index): + current_offset = int(frame.rate * frame.pts * frame.time_base) + strip = max(0, frame_offset - current_offset) + buf = torch.from_numpy(frame.to_ndarray()) + if buf.shape[0] != stream.channels: + buf = buf.view(-1, stream.channels).t() + buf = buf[:, strip:] + frames.append(buf) + length += buf.shape[1] + if num_frames > 0 and length >= num_frames: + break + assert frames + # If the above assert fails, it is likely because we seeked past the end of file point, + # in which case ffmpeg returns a single frame with only zeros, and a weird timestamp. + # This will need proper debugging, in due time. + wav = torch.cat(frames, dim=1) + assert wav.shape[0] == stream.channels + if num_frames > 0: + wav = wav[:, :num_frames] + return f32_pcm(wav), sr + + +def audio_read(filepath: tp.Union[str, Path], seek_time: float = 0., + duration: float = -1.0, pad: bool = False) -> tp.Tuple[torch.Tensor, int]: + """Read audio by picking the most appropriate backend tool based on the audio format. + + Args: + filepath (str or Path): Path to audio file to read. + seek_time (float): Time at which to start reading in the file. + duration (float): Duration to read from the file. If set to -1, the whole file is read. + pad (bool): Pad output audio if not reaching expected duration. + Returns: + tuple of torch.Tensor, int: Tuple containing audio data and sample rate. + """ + fp = Path(filepath) + if fp.suffix in ['.flac', '.ogg']: # TODO: check if we can safely use av_read for .ogg + # There is some bug with ffmpeg and reading flac + info = _soundfile_info(filepath) + frames = -1 if duration <= 0 else int(duration * info.sample_rate) + frame_offset = int(seek_time * info.sample_rate) + wav, sr = soundfile.read(filepath, start=frame_offset, frames=frames, dtype=np.float32) + assert info.sample_rate == sr, f"Mismatch of sample rates {info.sample_rate} {sr}" + wav = torch.from_numpy(wav).t().contiguous() + if len(wav.shape) == 1: + wav = torch.unsqueeze(wav, 0) + else: + wav, sr = _av_read(filepath, seek_time, duration) + if pad and duration > 0: + expected_frames = int(duration * sr) + wav = F.pad(wav, (0, expected_frames - wav.shape[-1])) + return wav, sr + + +def _piping_to_ffmpeg(out_path: tp.Union[str, Path], wav: torch.Tensor, sample_rate: int, flags: tp.List[str]): + # ffmpeg is always installed and torchaudio is a bit unstable lately, so let's bypass it entirely. + assert wav.dim() == 2, wav.shape + command = [ + 'ffmpeg', + '-loglevel', 'error', + '-y', '-f', 'f32le', '-ar', str(sample_rate), '-ac', str(wav.shape[0]), + '-i', '-'] + flags + [str(out_path)] + input_ = f32_pcm(wav).t().detach().cpu().numpy().tobytes() + sp.run(command, input=input_, check=True) + + +def audio_write(stem_name: tp.Union[str, Path], + wav: torch.Tensor, sample_rate: int, + format: str = 'wav', mp3_rate: int = 320, ogg_rate: tp.Optional[int] = None, + normalize: bool = True, strategy: str = 'peak', peak_clip_headroom_db: float = 1, + rms_headroom_db: float = 18, loudness_headroom_db: float = 14, + loudness_compressor: bool = False, + log_clipping: bool = True, make_parent_dir: bool = True, + add_suffix: bool = True) -> Path: + """Convenience function for saving audio to disk. Returns the filename the audio was written to. + + Args: + stem_name (str or Path): Filename without extension which will be added automatically. + wav (torch.Tensor): Audio data to save. + sample_rate (int): Sample rate of audio data. + format (str): Either "wav", "mp3", "ogg", or "flac". + mp3_rate (int): kbps when using mp3s. + ogg_rate (int): kbps when using ogg/vorbis. If not provided, let ffmpeg decide for itself. + normalize (bool): if `True` (default), normalizes according to the prescribed + strategy (see after). If `False`, the strategy is only used in case clipping + would happen. + strategy (str): Can be either 'clip', 'peak', or 'rms'. Default is 'peak', + i.e. audio is normalized by its largest value. RMS normalizes by root-mean-square + with extra headroom to avoid clipping. 'clip' just clips. + peak_clip_headroom_db (float): Headroom in dB when doing 'peak' or 'clip' strategy. + rms_headroom_db (float): Headroom in dB when doing 'rms' strategy. This must be much larger + than the `peak_clip` one to avoid further clipping. + loudness_headroom_db (float): Target loudness for loudness normalization. + loudness_compressor (bool): Uses tanh for soft clipping when strategy is 'loudness'. + when strategy is 'loudness' log_clipping (bool): If True, basic logging on stderr when clipping still + occurs despite strategy (only for 'rms'). + make_parent_dir (bool): Make parent directory if it doesn't exist. + Returns: + Path: Path of the saved audio. + """ + assert wav.dtype.is_floating_point, "wav is not floating point" + if wav.dim() == 1: + wav = wav[None] + elif wav.dim() > 2: + raise ValueError("Input wav should be at most 2 dimension.") + assert wav.isfinite().all() + wav = normalize_audio(wav, normalize, strategy, peak_clip_headroom_db, + rms_headroom_db, loudness_headroom_db, loudness_compressor, + log_clipping=log_clipping, sample_rate=sample_rate, + stem_name=str(stem_name)) + if format == 'mp3': + suffix = '.mp3' + flags = ['-f', 'mp3', '-c:a', 'libmp3lame', '-b:a', f'{mp3_rate}k'] + elif format == 'wav': + suffix = '.wav' + flags = ['-f', 'wav', '-c:a', 'pcm_s16le'] + elif format == 'ogg': + suffix = '.ogg' + flags = ['-f', 'ogg', '-c:a', 'libvorbis'] + if ogg_rate is not None: + flags += ['-b:a', f'{ogg_rate}k'] + elif format == 'flac': + suffix = '.flac' + flags = ['-f', 'flac'] + else: + raise RuntimeError(f"Invalid format {format}. Only wav or mp3 are supported.") + if not add_suffix: + suffix = '' + path = Path(str(stem_name) + suffix) + if make_parent_dir: + path.parent.mkdir(exist_ok=True, parents=True) + try: + _piping_to_ffmpeg(path, wav, sample_rate, flags) + except Exception: + if path.exists(): + # we do not want to leave half written files around. + path.unlink() + raise + return path + + +def get_spec(y, sr=16000, n_fft=4096, hop_length=128, dur=8) -> np.ndarray: + """Get the mel-spectrogram from the raw audio. + + Args: + y (numpy array): raw input + sr (int): Sampling rate + n_fft (int): Number of samples per FFT. Default is 2048. + hop_length (int): Number of samples between successive frames. Default is 512. + dur (float): Maxium duration to get the spectrograms + Returns: + spectro histogram as a numpy array + """ + import librosa + import librosa.display + + spectrogram = librosa.feature.melspectrogram( + y=y, sr=sr, n_fft=n_fft, hop_length=hop_length + ) + spectrogram_db = librosa.power_to_db(spectrogram, ref=np.max) + return spectrogram_db + + +def save_spectrograms( + ys: tp.List[np.ndarray], + sr: int, + path: str, + names: tp.List[str], + n_fft: int = 4096, + hop_length: int = 128, + dur: float = 8.0, +): + """Plot a spectrogram for an audio file. + + Args: + ys: List of audio spectrograms + sr (int): Sampling rate of the audio file. Default is 22050 Hz. + path (str): Path to the plot file. + names: name of each spectrogram plot + n_fft (int): Number of samples per FFT. Default is 2048. + hop_length (int): Number of samples between successive frames. Default is 512. + dur (float): Maxium duration to plot the spectrograms + + Returns: + None (plots the spectrogram using matplotlib) + """ + import matplotlib as mpl # type: ignore + import matplotlib.pyplot as plt # type: ignore + import librosa.display + + if not names: + names = ["Ground Truth", "Audio Watermarked", "Watermark"] + ys = [wav[: int(dur * sr)] for wav in ys] # crop + assert len(names) == len( + ys + ), f"There are {len(ys)} wavs but {len(names)} names ({names})" + + # Set matplotlib stuff + BIGGER_SIZE = 10 + SMALLER_SIZE = 8 + linewidth = 234.8775 # linewidth in pt + + plt.rc("font", size=BIGGER_SIZE, family="serif") # controls default text sizes + plt.rcParams["font.family"] = "DeJavu Serif" + plt.rcParams["font.serif"] = ["Times New Roman"] + + plt.rc("axes", titlesize=BIGGER_SIZE) # fontsize of the axes title + plt.rc("axes", labelsize=BIGGER_SIZE) # fontsize of the x and y labels + plt.rc("xtick", labelsize=BIGGER_SIZE) # fontsize of the tick labels + plt.rc("ytick", labelsize=SMALLER_SIZE) # fontsize of the tick labels + plt.rc("legend", fontsize=BIGGER_SIZE) # legend fontsize + plt.rc("figure", titlesize=BIGGER_SIZE) + height = 1.6 * linewidth / 72.0 + fig, ax = plt.subplots( + nrows=len(ys), + ncols=1, + sharex=True, + figsize=(linewidth / 72.0, height), + ) + fig.tight_layout() + + # Plot the spectrogram + + for i, ysi in enumerate(ys): + spectrogram_db = get_spec(ysi, sr=sr, n_fft=n_fft, hop_length=hop_length) + if i == 0: + cax = fig.add_axes( + [ + ax[0].get_position().x1 + 0.01, # type: ignore + ax[-1].get_position().y0, + 0.02, + ax[0].get_position().y1 - ax[-1].get_position().y0, + ] + ) + fig.colorbar( + mpl.cm.ScalarMappable( + norm=mpl.colors.Normalize( + np.min(spectrogram_db), np.max(spectrogram_db) + ), + cmap="magma", + ), + ax=ax, + orientation="vertical", + format="%+2.0f dB", + cax=cax, + ) + librosa.display.specshow( + spectrogram_db, + sr=sr, + hop_length=hop_length, + x_axis="time", + y_axis="mel", + ax=ax[i], + ) + ax[i].set(title=names[i]) + ax[i].yaxis.set_label_text(None) + ax[i].label_outer() + fig.savefig(path, bbox_inches="tight") + plt.close() diff --git a/audiocraft/data/audio_dataset.py b/audiocraft/data/audio_dataset.py new file mode 100644 index 0000000..9d74425 --- /dev/null +++ b/audiocraft/data/audio_dataset.py @@ -0,0 +1,587 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""AudioDataset support. In order to handle a larger number of files +without having to scan again the folders, we precompute some metadata +(filename, sample rate, duration), and use that to efficiently sample audio segments. +""" +import argparse +import copy +from concurrent.futures import ThreadPoolExecutor, Future +from dataclasses import dataclass, fields +from contextlib import ExitStack +from functools import lru_cache +import gzip +import json +import logging +import os +from pathlib import Path +import random +import sys +import typing as tp + +import torch +import torch.nn.functional as F + +from .audio import audio_read, audio_info +from .audio_utils import convert_audio +from .zip import PathInZip + +try: + import dora +except ImportError: + dora = None # type: ignore + + +@dataclass(order=True) +class BaseInfo: + + @classmethod + def _dict2fields(cls, dictionary: dict): + return { + field.name: dictionary[field.name] + for field in fields(cls) if field.name in dictionary + } + + @classmethod + def from_dict(cls, dictionary: dict): + _dictionary = cls._dict2fields(dictionary) + return cls(**_dictionary) + + def to_dict(self): + return { + field.name: self.__getattribute__(field.name) + for field in fields(self) + } + + +@dataclass(order=True) +class AudioMeta(BaseInfo): + path: str + duration: float + sample_rate: int + amplitude: tp.Optional[float] = None + weight: tp.Optional[float] = None + # info_path is used to load additional information about the audio file that is stored in zip files. + info_path: tp.Optional[PathInZip] = None + + @classmethod + def from_dict(cls, dictionary: dict): + base = cls._dict2fields(dictionary) + if 'info_path' in base and base['info_path'] is not None: + base['info_path'] = PathInZip(base['info_path']) + return cls(**base) + + def to_dict(self): + d = super().to_dict() + if d['info_path'] is not None: + d['info_path'] = str(d['info_path']) + return d + + +@dataclass(order=True) +class SegmentInfo(BaseInfo): + meta: AudioMeta + seek_time: float + # The following values are given once the audio is processed, e.g. + # at the target sample rate and target number of channels. + n_frames: int # actual number of frames without padding + total_frames: int # total number of frames, padding included + sample_rate: int # actual sample rate + channels: int # number of audio channels. + + +DEFAULT_EXTS = ['.wav', '.mp3', '.flac', '.ogg', '.m4a'] + +logger = logging.getLogger(__name__) + + +def _get_audio_meta(file_path: str, minimal: bool = True) -> AudioMeta: + """AudioMeta from a path to an audio file. + + Args: + file_path (str): Resolved path of valid audio file. + minimal (bool): Whether to only load the minimal set of metadata (takes longer if not). + Returns: + AudioMeta: Audio file path and its metadata. + """ + info = audio_info(file_path) + amplitude: tp.Optional[float] = None + if not minimal: + wav, sr = audio_read(file_path) + amplitude = wav.abs().max().item() + return AudioMeta(file_path, info.duration, info.sample_rate, amplitude) + + +def _resolve_audio_meta(m: AudioMeta, fast: bool = True) -> AudioMeta: + """If Dora is available as a dependency, try to resolve potential relative paths + in list of AudioMeta. This method is expected to be used when loading meta from file. + + Args: + m (AudioMeta): Audio meta to resolve. + fast (bool): If True, uses a really fast check for determining if a file + is already absolute or not. Only valid on Linux/Mac. + Returns: + AudioMeta: Audio meta with resolved path. + """ + def is_abs(m): + if fast: + return str(m)[0] == '/' + else: + os.path.isabs(str(m)) + + if not dora: + return m + + if not is_abs(m.path): + m.path = dora.git_save.to_absolute_path(m.path) + if m.info_path is not None and not is_abs(m.info_path.zip_path): + m.info_path.zip_path = dora.git_save.to_absolute_path(m.path) + return m + + +def find_audio_files(path: tp.Union[Path, str], + exts: tp.List[str] = DEFAULT_EXTS, + resolve: bool = True, + minimal: bool = True, + progress: bool = False, + workers: int = 0) -> tp.List[AudioMeta]: + """Build a list of AudioMeta from a given path, + collecting relevant audio files and fetching meta info. + + Args: + path (str or Path): Path to folder containing audio files. + exts (list of str): List of file extensions to consider for audio files. + minimal (bool): Whether to only load the minimal set of metadata (takes longer if not). + progress (bool): Whether to log progress on audio files collection. + workers (int): number of parallel workers, if 0, use only the current thread. + Returns: + list of AudioMeta: List of audio file path and its metadata. + """ + audio_files = [] + futures: tp.List[Future] = [] + pool: tp.Optional[ThreadPoolExecutor] = None + with ExitStack() as stack: + if workers > 0: + pool = ThreadPoolExecutor(workers) + stack.enter_context(pool) + + if progress: + print("Finding audio files...") + for root, folders, files in os.walk(path, followlinks=True): + for file in files: + full_path = Path(root) / file + if full_path.suffix.lower() in exts: + audio_files.append(full_path) + if pool is not None: + futures.append(pool.submit(_get_audio_meta, str(audio_files[-1]), minimal)) + if progress: + print(format(len(audio_files), " 8d"), end='\r', file=sys.stderr) + + if progress: + print("Getting audio metadata...") + meta: tp.List[AudioMeta] = [] + for idx, file_path in enumerate(audio_files): + try: + if pool is None: + m = _get_audio_meta(str(file_path), minimal) + else: + m = futures[idx].result() + if resolve: + m = _resolve_audio_meta(m) + except Exception as err: + print("Error with", str(file_path), err, file=sys.stderr) + continue + meta.append(m) + if progress: + print(format((1 + idx) / len(audio_files), " 3.1%"), end='\r', file=sys.stderr) + meta.sort() + return meta + + +def load_audio_meta(path: tp.Union[str, Path], + resolve: bool = True, fast: bool = True) -> tp.List[AudioMeta]: + """Load list of AudioMeta from an optionally compressed json file. + + Args: + path (str or Path): Path to JSON file. + resolve (bool): Whether to resolve the path from AudioMeta (default=True). + fast (bool): activates some tricks to make things faster. + Returns: + list of AudioMeta: List of audio file path and its total duration. + """ + open_fn = gzip.open if str(path).lower().endswith('.gz') else open + with open_fn(path, 'rb') as fp: # type: ignore + lines = fp.readlines() + meta = [] + for line in lines: + d = json.loads(line) + m = AudioMeta.from_dict(d) + if resolve: + m = _resolve_audio_meta(m, fast=fast) + meta.append(m) + return meta + + +def save_audio_meta(path: tp.Union[str, Path], meta: tp.List[AudioMeta]): + """Save the audio metadata to the file pointer as json. + + Args: + path (str or Path): Path to JSON file. + metadata (list of BaseAudioMeta): List of audio meta to save. + """ + Path(path).parent.mkdir(exist_ok=True, parents=True) + open_fn = gzip.open if str(path).lower().endswith('.gz') else open + with open_fn(path, 'wb') as fp: # type: ignore + for m in meta: + json_str = json.dumps(m.to_dict()) + '\n' + json_bytes = json_str.encode('utf-8') + fp.write(json_bytes) + + +class AudioDataset: + """Base audio dataset. + + The dataset takes a list of AudioMeta and create a dataset composed of segments of audio + and potentially additional information, by creating random segments from the list of audio + files referenced in the metadata and applying minimal data pre-processing such as resampling, + mixing of channels, padding, etc. + + If no segment_duration value is provided, the AudioDataset will return the full wav for each + audio file. Otherwise, it will randomly sample audio files and create a segment of the specified + duration, applying padding if required. + + By default, only the torch Tensor corresponding to the waveform is returned. Setting return_info=True + allows to return a tuple containing the torch Tensor and additional metadata on the segment and the + original audio meta. + + Note that you can call `start_epoch(epoch)` in order to get + a deterministic "randomization" for `shuffle=True`. + For a given epoch and dataset index, this will always return the same extract. + You can get back some diversity by setting the `shuffle_seed` param. + + Args: + meta (list of AudioMeta): List of audio files metadata. + segment_duration (float, optional): Optional segment duration of audio to load. + If not specified, the dataset will load the full audio segment from the file. + shuffle (bool): Set to `True` to have the data reshuffled at every epoch. + sample_rate (int): Target sample rate of the loaded audio samples. + channels (int): Target number of channels of the loaded audio samples. + sample_on_duration (bool): Set to `True` to sample segments with probability + dependent on audio file duration. This is only used if `segment_duration` is provided. + sample_on_weight (bool): Set to `True` to sample segments using the `weight` entry of + `AudioMeta`. If `sample_on_duration` is also True, the actual weight will be the product + of the file duration and file weight. This is only used if `segment_duration` is provided. + min_segment_ratio (float): Minimum segment ratio to use when the audio file + is shorter than the desired segment. + max_read_retry (int): Maximum number of retries to sample an audio segment from the dataset. + return_info (bool): Whether to return the wav only or return wav along with segment info and metadata. + min_audio_duration (float, optional): Minimum audio file duration, in seconds, if provided + audio shorter than this will be filtered out. + max_audio_duration (float, optional): Maximal audio file duration in seconds, if provided + audio longer than this will be filtered out. + shuffle_seed (int): can be used to further randomize + load_wav (bool): if False, skip loading the wav but returns a tensor of 0 + with the expected segment_duration (which must be provided if load_wav is False). + permutation_on_files (bool): only if `sample_on_weight` and `sample_on_duration` + are False. Will ensure a permutation on files when going through the dataset. + In that case the epoch number must be provided in order for the model + to continue the permutation across epochs. In that case, it is assumed + that `num_samples = total_batch_size * num_updates_per_epoch`, with + `total_batch_size` the overall batch size accounting for all gpus. + """ + def __init__(self, + meta: tp.List[AudioMeta], + segment_duration: tp.Optional[float] = None, + shuffle: bool = True, + num_samples: int = 10_000, + sample_rate: int = 48_000, + channels: int = 2, + pad: bool = True, + sample_on_duration: bool = True, + sample_on_weight: bool = True, + min_segment_ratio: float = 0.5, + max_read_retry: int = 10, + return_info: bool = False, + min_audio_duration: tp.Optional[float] = None, + max_audio_duration: tp.Optional[float] = None, + shuffle_seed: int = 0, + load_wav: bool = True, + permutation_on_files: bool = False, + ): + assert len(meta) > 0, "No audio meta provided to AudioDataset. Please check loading of audio meta." + assert segment_duration is None or segment_duration > 0 + assert segment_duration is None or min_segment_ratio >= 0 + self.segment_duration = segment_duration + self.min_segment_ratio = min_segment_ratio + self.max_audio_duration = max_audio_duration + self.min_audio_duration = min_audio_duration + if self.min_audio_duration is not None and self.max_audio_duration is not None: + assert self.min_audio_duration <= self.max_audio_duration + self.meta: tp.List[AudioMeta] = self._filter_duration(meta) + assert len(self.meta) # Fail fast if all data has been filtered. + self.total_duration = sum(d.duration for d in self.meta) + + if segment_duration is None: + num_samples = len(self.meta) + self.num_samples = num_samples + self.shuffle = shuffle + self.sample_rate = sample_rate + self.channels = channels + self.pad = pad + self.sample_on_weight = sample_on_weight + self.sample_on_duration = sample_on_duration + self.sampling_probabilities = self._get_sampling_probabilities() + self.max_read_retry = max_read_retry + self.return_info = return_info + self.shuffle_seed = shuffle_seed + self.current_epoch: tp.Optional[int] = None + self.load_wav = load_wav + if not load_wav: + assert segment_duration is not None + self.permutation_on_files = permutation_on_files + if permutation_on_files: + assert not self.sample_on_duration + assert not self.sample_on_weight + assert self.shuffle + + def start_epoch(self, epoch: int): + self.current_epoch = epoch + + def __len__(self): + return self.num_samples + + def _get_sampling_probabilities(self, normalized: bool = True): + """Return the sampling probabilities for each file inside `self.meta`.""" + scores: tp.List[float] = [] + for file_meta in self.meta: + score = 1. + if self.sample_on_weight and file_meta.weight is not None: + score *= file_meta.weight + if self.sample_on_duration: + score *= file_meta.duration + scores.append(score) + probabilities = torch.tensor(scores) + if normalized: + probabilities /= probabilities.sum() + return probabilities + + @staticmethod + @lru_cache(16) + def _get_file_permutation(num_files: int, permutation_index: int, base_seed: int): + # Used to keep the most recent files permutation in memory implicitely. + # will work unless someone is using a lot of Datasets in parallel. + rng = torch.Generator() + rng.manual_seed(base_seed + permutation_index) + return torch.randperm(num_files, generator=rng) + + def sample_file(self, index: int, rng: torch.Generator) -> AudioMeta: + """Sample a given file from `self.meta`. Can be overridden in subclasses. + This is only called if `segment_duration` is not None. + + You must use the provided random number generator `rng` for reproducibility. + You can further make use of the index accessed. + """ + if self.permutation_on_files: + assert self.current_epoch is not None + total_index = self.current_epoch * len(self) + index + permutation_index = total_index // len(self.meta) + relative_index = total_index % len(self.meta) + permutation = AudioDataset._get_file_permutation( + len(self.meta), permutation_index, self.shuffle_seed) + file_index = permutation[relative_index] + return self.meta[file_index] + + if not self.sample_on_weight and not self.sample_on_duration: + file_index = int(torch.randint(len(self.sampling_probabilities), (1,), generator=rng).item()) + else: + file_index = int(torch.multinomial(self.sampling_probabilities, 1, generator=rng).item()) + + return self.meta[file_index] + + def _audio_read(self, path: str, seek_time: float = 0, duration: float = -1): + # Override this method in subclass if needed. + if self.load_wav: + return audio_read(path, seek_time, duration, pad=False) + else: + assert self.segment_duration is not None + n_frames = int(self.sample_rate * self.segment_duration) + return torch.zeros(self.channels, n_frames), self.sample_rate + + def __getitem__(self, index: int) -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, SegmentInfo]]: + if self.segment_duration is None: + file_meta = self.meta[index] + out, sr = audio_read(file_meta.path) + out = convert_audio(out, sr, self.sample_rate, self.channels) + n_frames = out.shape[-1] + segment_info = SegmentInfo(file_meta, seek_time=0., n_frames=n_frames, total_frames=n_frames, + sample_rate=self.sample_rate, channels=out.shape[0]) + else: + rng = torch.Generator() + if self.shuffle: + # We use index, plus extra randomness, either totally random if we don't know the epoch. + # otherwise we make use of the epoch number and optional shuffle_seed. + if self.current_epoch is None: + rng.manual_seed(index + self.num_samples * random.randint(0, 2**24)) + else: + rng.manual_seed(index + self.num_samples * (self.current_epoch + self.shuffle_seed)) + else: + # We only use index + rng.manual_seed(index) + + for retry in range(self.max_read_retry): + file_meta = self.sample_file(index, rng) + # We add some variance in the file position even if audio file is smaller than segment + # without ending up with empty segments + max_seek = max(0, file_meta.duration - self.segment_duration * self.min_segment_ratio) + seek_time = torch.rand(1, generator=rng).item() * max_seek + try: + out, sr = audio_read(file_meta.path, seek_time, self.segment_duration, pad=False) + out = convert_audio(out, sr, self.sample_rate, self.channels) + n_frames = out.shape[-1] + target_frames = int(self.segment_duration * self.sample_rate) + if self.pad: + out = F.pad(out, (0, target_frames - n_frames)) + segment_info = SegmentInfo(file_meta, seek_time, n_frames=n_frames, total_frames=target_frames, + sample_rate=self.sample_rate, channels=out.shape[0]) + except Exception as exc: + logger.warning("Error opening file %s: %r", file_meta.path, exc) + if retry == self.max_read_retry - 1: + raise + else: + break + + if self.return_info: + # Returns the wav and additional information on the wave segment + return out, segment_info + else: + return out + + def collater(self, samples): + """The collater function has to be provided to the dataloader + if AudioDataset has return_info=True in order to properly collate + the samples of a batch. + """ + if self.segment_duration is None and len(samples) > 1: + assert self.pad, "Must allow padding when batching examples of different durations." + + # In this case the audio reaching the collater is of variable length as segment_duration=None. + to_pad = self.segment_duration is None and self.pad + if to_pad: + max_len = max([wav.shape[-1] for wav, _ in samples]) + + def _pad_wav(wav): + return F.pad(wav, (0, max_len - wav.shape[-1])) + + if self.return_info: + if len(samples) > 0: + assert len(samples[0]) == 2 + assert isinstance(samples[0][0], torch.Tensor) + assert isinstance(samples[0][1], SegmentInfo) + + wavs = [wav for wav, _ in samples] + segment_infos = [copy.deepcopy(info) for _, info in samples] + + if to_pad: + # Each wav could be of a different duration as they are not segmented. + for i in range(len(samples)): + # Determines the total length of the signal with padding, so we update here as we pad. + segment_infos[i].total_frames = max_len + wavs[i] = _pad_wav(wavs[i]) + + wav = torch.stack(wavs) + return wav, segment_infos + else: + assert isinstance(samples[0], torch.Tensor) + if to_pad: + samples = [_pad_wav(s) for s in samples] + return torch.stack(samples) + + def _filter_duration(self, meta: tp.List[AudioMeta]) -> tp.List[AudioMeta]: + """Filters out audio files with audio durations that will not allow to sample examples from them.""" + orig_len = len(meta) + + # Filter data that is too short. + if self.min_audio_duration is not None: + meta = [m for m in meta if m.duration >= self.min_audio_duration] + + # Filter data that is too long. + if self.max_audio_duration is not None: + meta = [m for m in meta if m.duration <= self.max_audio_duration] + + filtered_len = len(meta) + removed_percentage = 100*(1-float(filtered_len)/orig_len) + msg = 'Removed %.2f percent of the data because it was too short or too long.' % removed_percentage + if removed_percentage < 10: + logging.debug(msg) + else: + logging.warning(msg) + return meta + + @classmethod + def from_meta(cls, root: tp.Union[str, Path], **kwargs): + """Instantiate AudioDataset from a path to a directory containing a manifest as a jsonl file. + + Args: + root (str or Path): Path to root folder containing audio files. + kwargs: Additional keyword arguments for the AudioDataset. + """ + root = Path(root) + if root.is_dir(): + if (root / 'data.jsonl').exists(): + root = root / 'data.jsonl' + elif (root / 'data.jsonl.gz').exists(): + root = root / 'data.jsonl.gz' + else: + raise ValueError("Don't know where to read metadata from in the dir. " + "Expecting either a data.jsonl or data.jsonl.gz file but none found.") + meta = load_audio_meta(root) + return cls(meta, **kwargs) + + @classmethod + def from_path(cls, root: tp.Union[str, Path], minimal_meta: bool = True, + exts: tp.List[str] = DEFAULT_EXTS, **kwargs): + """Instantiate AudioDataset from a path containing (possibly nested) audio files. + + Args: + root (str or Path): Path to root folder containing audio files. + minimal_meta (bool): Whether to only load minimal metadata or not. + exts (list of str): Extensions for audio files. + kwargs: Additional keyword arguments for the AudioDataset. + """ + root = Path(root) + if root.is_file(): + meta = load_audio_meta(root, resolve=True) + else: + meta = find_audio_files(root, exts, minimal=minimal_meta, resolve=True) + return cls(meta, **kwargs) + + +def main(): + logging.basicConfig(stream=sys.stderr, level=logging.INFO) + parser = argparse.ArgumentParser( + prog='audio_dataset', + description='Generate .jsonl files by scanning a folder.') + parser.add_argument('root', help='Root folder with all the audio files') + parser.add_argument('output_meta_file', + help='Output file to store the metadata, ') + parser.add_argument('--complete', + action='store_false', dest='minimal', default=True, + help='Retrieve all metadata, even the one that are expansive ' + 'to compute (e.g. normalization).') + parser.add_argument('--resolve', + action='store_true', default=False, + help='Resolve the paths to be absolute and with no symlinks.') + parser.add_argument('--workers', + default=10, type=int, + help='Number of workers.') + args = parser.parse_args() + meta = find_audio_files(args.root, DEFAULT_EXTS, progress=True, + resolve=args.resolve, minimal=args.minimal, workers=args.workers) + save_audio_meta(args.output_meta_file, meta) + + +if __name__ == '__main__': + main() diff --git a/audiocraft/data/audio_utils.py b/audiocraft/data/audio_utils.py new file mode 100644 index 0000000..cf71b99 --- /dev/null +++ b/audiocraft/data/audio_utils.py @@ -0,0 +1,374 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Various utilities for audio convertion (pcm format, sample rate and channels), +and volume normalization.""" +import io +import logging +import re +import sys +import typing as tp + +import julius +import torch +import torchaudio + +logger = logging.getLogger(__name__) + + +def convert_audio_channels(wav: torch.Tensor, channels: int = 2) -> torch.Tensor: + """Convert audio to the given number of channels. + + Args: + wav (torch.Tensor): Audio wave of shape [B, C, T]. + channels (int): Expected number of channels as output. + Returns: + torch.Tensor: Downmixed or unchanged audio wave [B, C, T]. + """ + *shape, src_channels, length = wav.shape + if src_channels == channels: + pass + elif channels == 1: + # Case 1: + # The caller asked 1-channel audio, and the stream has multiple + # channels, downmix all channels. + wav = wav.mean(dim=-2, keepdim=True) + elif src_channels == 1: + # Case 2: + # The caller asked for multiple channels, but the input file has + # a single channel, replicate the audio over all channels. + wav = wav.expand(*shape, channels, length) + elif src_channels >= channels: + # Case 3: + # The caller asked for multiple channels, and the input file has + # more channels than requested. In that case return the first channels. + wav = wav[..., :channels, :] + else: + # Case 4: What is a reasonable choice here? + raise ValueError('The audio file has less channels than requested but is not mono.') + return wav + + +def convert_audio(wav: torch.Tensor, from_rate: float, + to_rate: float, to_channels: int) -> torch.Tensor: + """Convert audio to new sample rate and number of audio channels.""" + wav = julius.resample_frac(wav, int(from_rate), int(to_rate)) + wav = convert_audio_channels(wav, to_channels) + return wav + + +def normalize_loudness(wav: torch.Tensor, sample_rate: int, loudness_headroom_db: float = 14, + loudness_compressor: bool = False, energy_floor: float = 2e-3): + """Normalize an input signal to a user loudness in dB LKFS. + Audio loudness is defined according to the ITU-R BS.1770-4 recommendation. + + Args: + wav (torch.Tensor): Input multichannel audio data. + sample_rate (int): Sample rate. + loudness_headroom_db (float): Target loudness of the output in dB LUFS. + loudness_compressor (bool): Uses tanh for soft clipping. + energy_floor (float): anything below that RMS level will not be rescaled. + Returns: + torch.Tensor: Loudness normalized output data. + """ + energy = wav.pow(2).mean().sqrt().item() + if energy < energy_floor: + return wav + transform = torchaudio.transforms.Loudness(sample_rate) + input_loudness_db = transform(wav).item() + # calculate the gain needed to scale to the desired loudness level + delta_loudness = -loudness_headroom_db - input_loudness_db + gain = 10.0 ** (delta_loudness / 20.0) + output = gain * wav + if loudness_compressor: + output = torch.tanh(output) + assert output.isfinite().all(), (input_loudness_db, wav.pow(2).mean().sqrt()) + return output + + +def _clip_wav(wav: torch.Tensor, log_clipping: bool = False, stem_name: tp.Optional[str] = None) -> None: + """ + Utility function to clip the audio with logging if specified. + """ + max_scale = wav.abs().max() + if log_clipping and max_scale > 1: + clamp_prob = (wav.abs() > 1).float().mean().item() + print(f"CLIPPING {stem_name or ''} happening with proba (a bit of clipping is okay):", + clamp_prob, "maximum scale: ", max_scale.item(), file=sys.stderr) + wav.clamp_(-1, 1) + + +def normalize_audio(wav: torch.Tensor, normalize: bool = True, + strategy: str = 'peak', peak_clip_headroom_db: float = 1, + rms_headroom_db: float = 18, loudness_headroom_db: float = 14, + loudness_compressor: bool = False, log_clipping: bool = False, + sample_rate: tp.Optional[int] = None, + stem_name: tp.Optional[str] = None) -> torch.Tensor: + """Normalize the audio according to the prescribed strategy (see after). + + Args: + wav (torch.Tensor): Audio data. + normalize (bool): if `True` (default), normalizes according to the prescribed + strategy (see after). If `False`, the strategy is only used in case clipping + would happen. + strategy (str): Can be either 'clip', 'peak', or 'rms'. Default is 'peak', + i.e. audio is normalized by its largest value. RMS normalizes by root-mean-square + with extra headroom to avoid clipping. 'clip' just clips. + peak_clip_headroom_db (float): Headroom in dB when doing 'peak' or 'clip' strategy. + rms_headroom_db (float): Headroom in dB when doing 'rms' strategy. This must be much larger + than the `peak_clip` one to avoid further clipping. + loudness_headroom_db (float): Target loudness for loudness normalization. + loudness_compressor (bool): If True, uses tanh based soft clipping. + log_clipping (bool): If True, basic logging on stderr when clipping still + occurs despite strategy (only for 'rms'). + sample_rate (int): Sample rate for the audio data (required for loudness). + stem_name (str, optional): Stem name for clipping logging. + Returns: + torch.Tensor: Normalized audio. + """ + scale_peak = 10 ** (-peak_clip_headroom_db / 20) + scale_rms = 10 ** (-rms_headroom_db / 20) + if strategy == 'peak': + rescaling = (scale_peak / wav.abs().max()) + if normalize or rescaling < 1: + wav = wav * rescaling + elif strategy == 'clip': + wav = wav.clamp(-scale_peak, scale_peak) + elif strategy == 'rms': + mono = wav.mean(dim=0) + rescaling = scale_rms / mono.pow(2).mean().sqrt() + if normalize or rescaling < 1: + wav = wav * rescaling + _clip_wav(wav, log_clipping=log_clipping, stem_name=stem_name) + elif strategy == 'loudness': + assert sample_rate is not None, "Loudness normalization requires sample rate." + wav = normalize_loudness(wav, sample_rate, loudness_headroom_db, loudness_compressor) + _clip_wav(wav, log_clipping=log_clipping, stem_name=stem_name) + else: + assert wav.abs().max() < 1 + assert strategy == '' or strategy == 'none', f"Unexpected strategy: '{strategy}'" + return wav + + +def f32_pcm(wav: torch.Tensor) -> torch.Tensor: + """ + Convert audio to float 32 bits PCM format. + Args: + wav (torch.tensor): Input wav tensor + Returns: + same wav in float32 PCM format + """ + if wav.dtype.is_floating_point: + return wav + elif wav.dtype == torch.int16: + return wav.float() / 2**15 + elif wav.dtype == torch.int32: + return wav.float() / 2**31 + raise ValueError(f"Unsupported wav dtype: {wav.dtype}") + + +def i16_pcm(wav: torch.Tensor) -> torch.Tensor: + """Convert audio to int 16 bits PCM format. + + ..Warning:: There exist many formula for doing this conversion. None are perfect + due to the asymmetry of the int16 range. One either have possible clipping, DC offset, + or inconsistencies with f32_pcm. If the given wav doesn't have enough headroom, + it is possible that `i16_pcm(f32_pcm)) != Identity`. + Args: + wav (torch.tensor): Input wav tensor + Returns: + same wav in float16 PCM format + """ + if wav.dtype.is_floating_point: + assert wav.abs().max() <= 1 + candidate = (wav * 2 ** 15).round() + if candidate.max() >= 2 ** 15: # clipping would occur + candidate = (wav * (2 ** 15 - 1)).round() + return candidate.short() + else: + assert wav.dtype == torch.int16 + return wav + + +def compress(wav: torch.Tensor, sr: int, + target_format: tp.Literal["mp3", "ogg", "flac"] = "mp3", + bitrate: str = "128k") -> tp.Tuple[torch.Tensor, int]: + """Convert audio wave form to a specified lossy format: mp3, ogg, flac + + Args: + wav (torch.Tensor): Input wav tensor. + sr (int): Sampling rate. + target_format (str): Compression format (e.g., 'mp3'). + bitrate (str): Bitrate for compression. + + Returns: + Tuple of compressed WAV tensor and sampling rate. + """ + + # Extract the bit rate from string (e.g., '128k') + match = re.search(r"\d+(\.\d+)?", str(bitrate)) + parsed_bitrate = float(match.group()) if match else None + assert parsed_bitrate, f"Invalid bitrate specified (got {parsed_bitrate})" + try: + # Create a virtual file instead of saving to disk + buffer = io.BytesIO() + + torchaudio.save( + buffer, wav, sr, format=target_format, bits_per_sample=parsed_bitrate, + ) + # Move to the beginning of the file + buffer.seek(0) + compressed_wav, sr = torchaudio.load(buffer) + return compressed_wav, sr + + except RuntimeError: + logger.warning( + f"compression failed skipping compression: {format} {parsed_bitrate}" + ) + return wav, sr + + +def get_mp3(wav_tensor: torch.Tensor, sr: int, bitrate: str = "128k") -> torch.Tensor: + """Convert a batch of audio files to MP3 format, maintaining the original shape. + + This function takes a batch of audio files represented as a PyTorch tensor, converts + them to MP3 format using the specified bitrate, and returns the batch in the same + shape as the input. + + Args: + wav_tensor (torch.Tensor): Batch of audio files represented as a tensor. + Shape should be (batch_size, channels, length). + sr (int): Sampling rate of the audio. + bitrate (str): Bitrate for MP3 conversion, default is '128k'. + + Returns: + torch.Tensor: Batch of audio files converted to MP3 format, with the same + shape as the input tensor. + """ + device = wav_tensor.device + batch_size, channels, original_length = wav_tensor.shape + + # Flatten tensor for conversion and move to CPU + wav_tensor_flat = wav_tensor.view(1, -1).cpu() + + # Convert to MP3 format with specified bitrate + wav_tensor_flat, _ = compress(wav_tensor_flat, sr, bitrate=bitrate) + + # Reshape back to original batch format and trim or pad if necessary + wav_tensor = wav_tensor_flat.view(batch_size, channels, -1) + compressed_length = wav_tensor.shape[-1] + if compressed_length > original_length: + wav_tensor = wav_tensor[:, :, :original_length] # Trim excess frames + elif compressed_length < original_length: + padding = torch.zeros( + batch_size, channels, original_length - compressed_length, device=device + ) + wav_tensor = torch.cat((wav_tensor, padding), dim=-1) # Pad with zeros + + # Move tensor back to the original device + return wav_tensor.to(device) + + +def get_aac( + wav_tensor: torch.Tensor, + sr: int, + bitrate: str = "128k", + lowpass_freq: tp.Optional[int] = None, +) -> torch.Tensor: + """Converts a batch of audio tensors to AAC format and then back to tensors. + + This function first saves the input tensor batch as WAV files, then uses FFmpeg to convert + these WAV files to AAC format. Finally, it loads the AAC files back into tensors. + + Args: + wav_tensor (torch.Tensor): A batch of audio files represented as a tensor. + Shape should be (batch_size, channels, length). + sr (int): Sampling rate of the audio. + bitrate (str): Bitrate for AAC conversion, default is '128k'. + lowpass_freq (Optional[int]): Frequency for a low-pass filter. If None, no filter is applied. + + Returns: + torch.Tensor: Batch of audio files converted to AAC and back, with the same + shape as the input tensor. + """ + import tempfile + import subprocess + + device = wav_tensor.device + batch_size, channels, original_length = wav_tensor.shape + + # Parse the bitrate value from the string + match = re.search(r"\d+(\.\d+)?", bitrate) + parsed_bitrate = ( + match.group() if match else "128" + ) # Default to 128 if parsing fails + + # Flatten tensor for conversion and move to CPU + wav_tensor_flat = wav_tensor.view(1, -1).cpu() + + with tempfile.NamedTemporaryFile( + suffix=".wav" + ) as f_in, tempfile.NamedTemporaryFile(suffix=".aac") as f_out: + input_path, output_path = f_in.name, f_out.name + + # Save the tensor as a WAV file + torchaudio.save(input_path, wav_tensor_flat, sr, backend="ffmpeg") + + # Prepare FFmpeg command for AAC conversion + command = [ + "ffmpeg", + "-y", + "-i", + input_path, + "-ar", + str(sr), + "-b:a", + f"{parsed_bitrate}k", + "-c:a", + "aac", + ] + if lowpass_freq is not None: + command += ["-cutoff", str(lowpass_freq)] + command.append(output_path) + + try: + # Run FFmpeg and suppress output + subprocess.run(command, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + + # Load the AAC audio back into a tensor + aac_tensor, _ = torchaudio.load(output_path, backend="ffmpeg") + except Exception as exc: + raise RuntimeError( + "Failed to run command " ".join(command)} " + "(Often this means ffmpeg is not installed or the encoder is not supported, " + "make sure you installed an older version ffmpeg<5)" + ) from exc + + original_length_flat = batch_size * channels * original_length + compressed_length_flat = aac_tensor.shape[-1] + + # Trim excess frames + if compressed_length_flat > original_length_flat: + aac_tensor = aac_tensor[:, :original_length_flat] + + # Pad the shortedn frames + elif compressed_length_flat < original_length_flat: + padding = torch.zeros( + 1, original_length_flat - compressed_length_flat, device=device + ) + aac_tensor = torch.cat((aac_tensor, padding), dim=-1) + + # Reshape and adjust length to match original tensor + wav_tensor = aac_tensor.view(batch_size, channels, -1) + compressed_length = wav_tensor.shape[-1] + + assert compressed_length == original_length, ( + "AAC-compressed audio does not have the same frames as original one. " + "One reason can be ffmpeg is not installed and used as proper backed " + "for torchaudio, or the AAC encoder is not correct. Run " + "`torchaudio.utils.ffmpeg_utils.get_audio_encoders()` and make sure we see entry for" + "AAC in the output." + ) + return wav_tensor.to(device) diff --git a/audiocraft/data/info_audio_dataset.py b/audiocraft/data/info_audio_dataset.py new file mode 100644 index 0000000..47ab4b1 --- /dev/null +++ b/audiocraft/data/info_audio_dataset.py @@ -0,0 +1,110 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Base classes for the datasets that also provide non-audio metadata, +e.g. description, text transcription etc. +""" +from dataclasses import dataclass +import logging +import math +import re +import typing as tp + +import torch + +from .audio_dataset import AudioDataset, AudioMeta +from ..environment import AudioCraftEnvironment +from ..modules.conditioners import SegmentWithAttributes, ConditioningAttributes + + +logger = logging.getLogger(__name__) + + +def _clusterify_meta(meta: AudioMeta) -> AudioMeta: + """Monkey-patch meta to match cluster specificities.""" + meta.path = AudioCraftEnvironment.apply_dataset_mappers(meta.path) + if meta.info_path is not None: + meta.info_path.zip_path = AudioCraftEnvironment.apply_dataset_mappers(meta.info_path.zip_path) + return meta + + +def clusterify_all_meta(meta: tp.List[AudioMeta]) -> tp.List[AudioMeta]: + """Monkey-patch all meta to match cluster specificities.""" + return [_clusterify_meta(m) for m in meta] + + +@dataclass +class AudioInfo(SegmentWithAttributes): + """Dummy SegmentInfo with empty attributes. + + The InfoAudioDataset is expected to return metadata that inherits + from SegmentWithAttributes class and can return conditioning attributes. + + This basically guarantees all datasets will be compatible with current + solver that contain conditioners requiring this. + """ + audio_tokens: tp.Optional[torch.Tensor] = None # populated when using cached batch for training a LM. + + def to_condition_attributes(self) -> ConditioningAttributes: + return ConditioningAttributes() + + +class InfoAudioDataset(AudioDataset): + """AudioDataset that always returns metadata as SegmentWithAttributes along with the audio waveform. + + See `audiocraft.data.audio_dataset.AudioDataset` for initialization arguments. + """ + def __init__(self, meta: tp.List[AudioMeta], **kwargs): + super().__init__(clusterify_all_meta(meta), **kwargs) + + def __getitem__(self, index: int) -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, SegmentWithAttributes]]: + if not self.return_info: + wav = super().__getitem__(index) + assert isinstance(wav, torch.Tensor) + return wav + wav, meta = super().__getitem__(index) + return wav, AudioInfo(**meta.to_dict()) + + +def get_keyword_or_keyword_list(value: tp.Optional[str]) -> tp.Union[tp.Optional[str], tp.Optional[tp.List[str]]]: + """Preprocess a single keyword or possible a list of keywords.""" + if isinstance(value, list): + return get_keyword_list(value) + else: + return get_keyword(value) + + +def get_string(value: tp.Optional[str]) -> tp.Optional[str]: + """Preprocess a single keyword.""" + if value is None or (not isinstance(value, str)) or len(value) == 0 or value == 'None': + return None + else: + return value.strip() + + +def get_keyword(value: tp.Optional[str]) -> tp.Optional[str]: + """Preprocess a single keyword.""" + if value is None or (not isinstance(value, str)) or len(value) == 0 or value == 'None': + return None + else: + return value.strip().lower() + + +def get_keyword_list(values: tp.Union[str, tp.List[str]]) -> tp.Optional[tp.List[str]]: + """Preprocess a list of keywords.""" + if isinstance(values, str): + values = [v.strip() for v in re.split(r'[,\s]', values)] + elif isinstance(values, float) and math.isnan(values): + values = [] + if not isinstance(values, list): + logger.debug(f"Unexpected keyword list {values}") + values = [str(values)] + + kws = [get_keyword(v) for v in values] + kw_list = [k for k in kws if k is not None] + if len(kw_list) == 0: + return None + else: + return kw_list diff --git a/audiocraft/data/jasco_dataset.py b/audiocraft/data/jasco_dataset.py new file mode 100644 index 0000000..933c729 --- /dev/null +++ b/audiocraft/data/jasco_dataset.py @@ -0,0 +1,312 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +import bisect +import pickle +import math +import os +import torch +import typing as tp +from pathlib import Path +from dataclasses import dataclass, fields +from ..utils.utils import construct_frame_chords +from .music_dataset import MusicDataset, MusicInfo +from .audio_dataset import load_audio_meta +from ..modules.conditioners import (ConditioningAttributes, SymbolicCondition) +import librosa +import numpy as np + + +@dataclass +class JascoInfo(MusicInfo): + """ + A data class extending MusicInfo for JASCO. The following attributes are added: + Attributes: + frame_chords (Optional[list]): A list of chords associated with frames in the music piece. + """ + chords: tp.Optional[SymbolicCondition] = None + melody: tp.Optional[SymbolicCondition] = None + + def to_condition_attributes(self) -> ConditioningAttributes: + out = ConditioningAttributes() + for _field in fields(self): + key, value = _field.name, getattr(self, _field.name) + if key == 'self_wav': + out.wav[key] = value + elif key in {'chords', 'melody'}: + out.symbolic[key] = value + elif key == 'joint_embed': + for embed_attribute, embed_cond in value.items(): + out.joint_embed[embed_attribute] = embed_cond + else: + if isinstance(value, list): + value = ' '.join(value) + out.text[key] = value + return out + + +class MelodyData: + + SALIENCE_MODEL_EXPECTED_SAMPLE_RATE = 22050 + SALIENCE_MODEL_EXPECTED_HOP_SIZE = 256 + + def __init__(self, + latent_fr: int, + segment_duration: float, + melody_fr: int = 86, + melody_salience_dim: int = 53, + chroma_root: tp.Optional[str] = None, + override_cache: bool = False, + do_argmax: bool = True): + """Module to load salience matrix for a given info. + + Args: + latent_fr (int): latent frame rate to match (interpolates model frame rate accordingly). + segment_duration (float): expected segment duration. + melody_fr (int, optional): extracted salience frame rate. Defaults to 86. + melody_salience_dim (int, optional): salience dim. Defaults to 53. + chroma_root (str, optional): path to root containing salience cache. Defaults to None. + override_cache (bool, optional): rewrite cache. Defaults to False. + do_argmax (bool, optional): argmax the melody matrix. Defaults to True. + """ + + self.segment_duration = segment_duration + self.melody_fr = melody_fr + self.latent_fr = latent_fr + self.melody_salience_dim = melody_salience_dim + self.do_argmax = do_argmax + self.tgt_chunk_len = int(latent_fr * segment_duration) + + self.null_op = False + if chroma_root is None: + self.null_op = True + elif not os.path.exists(f"{chroma_root}/cache.pkl") or override_cache: + self.tracks = [] + for file in librosa.util.find_files(chroma_root, ext='txt'): + with open(file, 'r') as f: + lines = f.readlines() + for line in lines: + self.tracks.append(line.strip()) + + # go over tracks and add the corresponding saliency file to self.saliency_files + self.saliency_files = [] + for track in self.tracks: + # saliency file name + salience_file = f"{chroma_root}/{track.split('/')[-1].split('.')[0]}_multif0_salience.npz" + assert os.path.exists(salience_file), f"File {salience_file} does not exist" + self.saliency_files.append(salience_file) + + self.trk2idx = {trk.split('/')[-1].split('.')[0]: i for i, trk in enumerate(self.tracks)} + torch.save({'tracks': self.tracks, + 'saliency_files': self.saliency_files, + 'trk2idx': self.trk2idx}, f"{chroma_root}/cache.pkl") + else: + tmp = torch.load(f"{chroma_root}/cache.pkl") + self.tracks = tmp['tracks'] + self.saliency_files = tmp['saliency_files'] + self.trk2idx = tmp['trk2idx'] + self.model_frame_rate = int(self.SALIENCE_MODEL_EXPECTED_SAMPLE_RATE / self.SALIENCE_MODEL_EXPECTED_HOP_SIZE) + + def load_saliency_from_saliency_dict(self, + saliency_dict: tp.Dict[str, tp.Any], + offset: float) -> torch.Tensor: + """ + construct the salience matrix and perform linear interpolation w.r.t the temporal axis to match the expected + frame rate. + """ + # get saliency map for the segment + saliency_dict_ = {} + l, r = int(offset * self.model_frame_rate), int((offset + self.segment_duration) * self.model_frame_rate) + saliency_dict_['salience'] = saliency_dict['salience'][:, l: r].T + saliency_dict_['times'] = saliency_dict['times'][l: r] - offset + saliency_dict_['freqs'] = saliency_dict['freqs'] + + saliency_dict_['salience'] = torch.Tensor(saliency_dict_['salience']).float().permute(1, 0) # C, T + if saliency_dict_['salience'].shape[-1] <= int(self.model_frame_rate) / self.latent_fr: # empty chroma + saliency_dict_['salience'] = torch.zeros((saliency_dict_['salience'].shape[0], self.tgt_chunk_len)) + else: + salience = torch.nn.functional.interpolate(saliency_dict_['salience'].unsqueeze(0), + scale_factor=self.latent_fr/int(self.model_frame_rate), + mode='linear').squeeze(0) + if salience.shape[-1] < self.tgt_chunk_len: + salience = torch.nn.functional.pad(salience, + (0, self.tgt_chunk_len - salience.shape[-1]), + mode='constant', + value=0) + elif salience.shape[-1] > self.tgt_chunk_len: + salience = salience[..., :self.tgt_chunk_len] + saliency_dict_['salience'] = salience + + salience = saliency_dict_['salience'] + if self.do_argmax: + binary_mask = torch.zeros_like(salience) + binary_mask[torch.argmax(salience, dim=0), torch.arange(salience.shape[-1])] = 1 + binary_mask *= (salience != 0).float() + salience = binary_mask + return salience + + def get_null_salience(self) -> torch.Tensor: + return torch.zeros((self.melody_salience_dim, self.tgt_chunk_len)) + + def __call__(self, x: MusicInfo) -> torch.Tensor: + """Reads salience matrix from memory, shifted by seek time + + Args: + x (MusicInfo): Music info of a single sample + + Returns: + torch.Tensor: salience matrix matching the target info + """ + fname: str = x.meta.path.split("/")[-1].split(".")[0] if x.meta.path is not None else "" + if x.meta.path is None or x.meta.path == "" or fname not in self.trk2idx: + salience = self.get_null_salience() + else: + assert fname in self.trk2idx, f"Track {fname} not found in the cache" + idx = self.trk2idx[fname] + saliency_dict = np.load(self.saliency_files[idx], allow_pickle=True) + salience = self.load_saliency_from_saliency_dict(saliency_dict, x.seek_time) + return salience + + +class JascoDataset(MusicDataset): + """JASCO dataset is a MusicDataset with jasco-related symbolic data (chords, melody). + + Args: + chords_card (int): The cardinality of the chords, default is 194. + compression_model_framerate (int): The framerate for the compression model, default is 50. + + See `audiocraft.data.info_audio_dataset.MusicDataset` for full initialization arguments. + """ + @classmethod + def from_meta(cls, root: tp.Union[str, Path], **kwargs): + """Instantiate AudioDataset from a path to a directory containing a manifest as a jsonl file. + + Args: + root (str or Path): Path to root folder containing audio files. + kwargs: Additional keyword arguments for the AudioDataset. + """ + root = Path(root) + # a directory is given + if root.is_dir(): + if (root / 'data.jsonl').exists(): + meta_json = root / 'data.jsonl' + elif (root / 'data.jsonl.gz').exists(): + meta_json = root / 'data.jsonl.gz' + else: + raise ValueError("Don't know where to read metadata from in the dir. " + "Expecting either a data.jsonl or data.jsonl.gz file but none found.") + # jsonl file was specified + else: + assert root.exists() and root.suffix == '.jsonl', \ + "Either specified path not exist or it is not a jsonl format" + meta_json = root + root = root.parent + meta = load_audio_meta(meta_json) + kwargs['root'] = root + return cls(meta, **kwargs) + + def __init__(self, *args, + chords_card: int = 194, + compression_model_framerate: float = 50., + melody_kwargs: tp.Optional[tp.Dict[str, tp.Any]] = {}, + **kwargs): + """Dataset class for text-to-music generation with temporal controls as in + (JASCO)[https://arxiv.org/pdf/2406.10970] + + Args: + chords_card (int, optional): Number of chord ebeddings. Defaults to 194. + compression_model_framerate (float, optional): Expected frame rate of the resulted latent. Defaults to 50. + melody_kwargs (tp.Optional[tp.Dict[str, tp.Any]], optional): See MelodyData class. Defaults to {}. + """ + root = kwargs.pop('root') + super().__init__(*args, **kwargs) + + chords_mapping_path = root / 'chord_to_index_mapping.pkl' + chords_path = root / 'chords_per_track.pkl' + self.mapping_dict = pickle.load(open(chords_mapping_path, "rb")) if \ + os.path.exists(chords_mapping_path) else None + + self.chords_per_track = pickle.load(open(chords_path, "rb")) if \ + os.path.exists(chords_path) else None + + self.compression_model_framerate = compression_model_framerate + self.null_chord_idx = chords_card + + self.melody_module = MelodyData(**melody_kwargs) # type: ignore + + def _get_relevant_sublist(self, chords, timestamp): + """ + Returns the sublist of chords within the specified timestamp and segment length. + + Args: + chords (list): A sorted list of tuples containing (time changed, chord). + timestamp (float): The timestamp at which to start the sublist. + + Returns: + list: A list of chords within the specified timestamp and segment length. + """ + end_time = timestamp + self.segment_duration + + # Use binary search to find the starting index of the relevant sublist + start_index = bisect.bisect_left(chords, (timestamp,)) + + if start_index != 0: + prev_chord = chords[start_index - 1] + else: + prev_chord = (0.0, "N") + + relevant_chords = [] + + for time_changed, chord in chords[start_index:]: + if time_changed >= end_time: + break + relevant_chords.append((time_changed, chord)) + + return relevant_chords, prev_chord + + def _get_chords(self, music_info: MusicInfo, effective_segment_dur: float) -> torch.Tensor: + if self.chords_per_track is None: + # use null chord when there's no chords in dataset + seq_len = math.ceil(self.compression_model_framerate * effective_segment_dur) + return torch.ones(seq_len, dtype=int) * self.null_chord_idx # type: ignore + + fr = self.compression_model_framerate + + idx = music_info.meta.path.split("/")[-1].split(".")[0] + chords = self.chords_per_track[idx] + + min_timestamp = music_info.seek_time + + chords = [(item[1], item[0]) for item in chords] + chords, prev_chord = self._get_relevant_sublist( + chords, min_timestamp + ) + + iter_min_timestamp = int(min_timestamp * fr) + 1 + + frame_chords = construct_frame_chords( + iter_min_timestamp, chords, self.mapping_dict, prev_chord[1], # type: ignore + fr, self.segment_duration # type: ignore + ) + + return torch.tensor(frame_chords) + + def __getitem__(self, index): + wav, music_info = super().__getitem__(index) + assert not wav.isinfinite().any(), f"inf detected in wav file: {music_info}" + wav = wav.float() + + # downcast music info to jasco info + jasco_info = JascoInfo({k: v for k, v in music_info.__dict__.items()}) + + # get chords + effective_segment_dur = (wav.shape[-1] / self.sample_rate) if \ + self.segment_duration is None else self.segment_duration + frame_chords = self._get_chords(music_info, effective_segment_dur) + jasco_info.chords = SymbolicCondition(frame_chords=frame_chords) + + # get melody + jasco_info.melody = SymbolicCondition(melody=self.melody_module(music_info)) + return wav, jasco_info diff --git a/audiocraft/data/music_dataset.py b/audiocraft/data/music_dataset.py new file mode 100644 index 0000000..4e28796 --- /dev/null +++ b/audiocraft/data/music_dataset.py @@ -0,0 +1,270 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Dataset of music tracks with rich metadata. +""" +from dataclasses import dataclass, field, fields, replace +import gzip +import json +import logging +from pathlib import Path +import random +import typing as tp + +import torch + +from .info_audio_dataset import ( + InfoAudioDataset, + AudioInfo, + get_keyword_list, + get_keyword, + get_string +) +from ..modules.conditioners import ( + ConditioningAttributes, + JointEmbedCondition, + WavCondition, +) +from ..utils.utils import warn_once + + +logger = logging.getLogger(__name__) + + +@dataclass +class MusicInfo(AudioInfo): + """Segment info augmented with music metadata. + """ + # music-specific metadata + title: tp.Optional[str] = None + artist: tp.Optional[str] = None # anonymized artist id, used to ensure no overlap between splits + key: tp.Optional[str] = None + bpm: tp.Optional[float] = None + genre: tp.Optional[str] = None + moods: tp.Optional[list] = None + keywords: tp.Optional[list] = None + description: tp.Optional[str] = None + name: tp.Optional[str] = None + instrument: tp.Optional[str] = None + # original wav accompanying the metadata + self_wav: tp.Optional[WavCondition] = None + # dict mapping attributes names to tuple of wav, text and metadata + joint_embed: tp.Dict[str, JointEmbedCondition] = field(default_factory=dict) + + @property + def has_music_meta(self) -> bool: + return self.name is not None + + def to_condition_attributes(self) -> ConditioningAttributes: + out = ConditioningAttributes() + for _field in fields(self): + key, value = _field.name, getattr(self, _field.name) + if key == 'self_wav': + out.wav[key] = value + elif key == 'joint_embed': + for embed_attribute, embed_cond in value.items(): + out.joint_embed[embed_attribute] = embed_cond + else: + if isinstance(value, list): + value = ' '.join(value) + out.text[key] = value + return out + + @staticmethod + def attribute_getter(attribute): + if attribute == 'bpm': + preprocess_func = get_bpm + elif attribute == 'key': + preprocess_func = get_musical_key + elif attribute in ['moods', 'keywords']: + preprocess_func = get_keyword_list + elif attribute in ['genre', 'name', 'instrument']: + preprocess_func = get_keyword + elif attribute in ['title', 'artist', 'description']: + preprocess_func = get_string + else: + preprocess_func = None + return preprocess_func + + @classmethod + def from_dict(cls, dictionary: dict, fields_required: bool = False): + _dictionary: tp.Dict[str, tp.Any] = {} + + # allow a subset of attributes to not be loaded from the dictionary + # these attributes may be populated later + post_init_attributes = ['self_wav', 'joint_embed'] + optional_fields = ['keywords'] + + for _field in fields(cls): + if _field.name in post_init_attributes: + continue + elif _field.name not in dictionary: + if fields_required and _field.name not in optional_fields: + raise KeyError(f"Unexpected missing key: {_field.name}") + else: + preprocess_func: tp.Optional[tp.Callable] = cls.attribute_getter(_field.name) + value = dictionary[_field.name] + if preprocess_func: + value = preprocess_func(value) + _dictionary[_field.name] = value + return cls(**_dictionary) + + +def augment_music_info_description(music_info: MusicInfo, merge_text_p: float = 0., + drop_desc_p: float = 0., drop_other_p: float = 0.) -> MusicInfo: + """Augment MusicInfo description with additional metadata fields and potential dropout. + Additional textual attributes are added given probability 'merge_text_conditions_p' and + the original textual description is dropped from the augmented description given probability drop_desc_p. + + Args: + music_info (MusicInfo): The music metadata to augment. + merge_text_p (float): Probability of merging additional metadata to the description. + If provided value is 0, then no merging is performed. + drop_desc_p (float): Probability of dropping the original description on text merge. + if provided value is 0, then no drop out is performed. + drop_other_p (float): Probability of dropping the other fields used for text augmentation. + Returns: + MusicInfo: The MusicInfo with augmented textual description. + """ + def is_valid_field(field_name: str, field_value: tp.Any) -> bool: + valid_field_name = field_name in ['key', 'bpm', 'genre', 'moods', 'instrument', 'keywords'] + valid_field_value = field_value is not None and isinstance(field_value, (int, float, str, list)) + keep_field = random.uniform(0, 1) < drop_other_p + return valid_field_name and valid_field_value and keep_field + + def process_value(v: tp.Any) -> str: + if isinstance(v, (int, float, str)): + return str(v) + if isinstance(v, list): + return ", ".join(v) + else: + raise ValueError(f"Unknown type for text value! ({type(v), v})") + + description = music_info.description + + metadata_text = "" + if random.uniform(0, 1) < merge_text_p: + meta_pairs = [f'{_field.name}: {process_value(getattr(music_info, _field.name))}' + for _field in fields(music_info) if is_valid_field(_field.name, getattr(music_info, _field.name))] + random.shuffle(meta_pairs) + metadata_text = ". ".join(meta_pairs) + description = description if not random.uniform(0, 1) < drop_desc_p else None + logger.debug(f"Applying text augmentation on MMI info. description: {description}, metadata: {metadata_text}") + + if description is None: + description = metadata_text if len(metadata_text) > 1 else None + else: + description = ". ".join([description.rstrip('.'), metadata_text]) + description = description.strip() if description else None + + music_info = replace(music_info) + music_info.description = description + return music_info + + +class Paraphraser: + def __init__(self, paraphrase_source: tp.Union[str, Path], paraphrase_p: float = 0.): + self.paraphrase_p = paraphrase_p + open_fn = gzip.open if str(paraphrase_source).lower().endswith('.gz') else open + with open_fn(paraphrase_source, 'rb') as f: # type: ignore + self.paraphrase_source = json.loads(f.read()) + logger.info(f"loaded paraphrasing source from: {paraphrase_source}") + + def sample_paraphrase(self, audio_path: str, description: str): + if random.random() >= self.paraphrase_p: + return description + info_path = Path(audio_path).with_suffix('.json') + if info_path not in self.paraphrase_source: + warn_once(logger, f"{info_path} not in paraphrase source!") + return description + new_desc = random.choice(self.paraphrase_source[info_path]) + logger.debug(f"{description} -> {new_desc}") + return new_desc + + +class MusicDataset(InfoAudioDataset): + """Music dataset is an AudioDataset with music-related metadata. + + Args: + info_fields_required (bool): Whether to enforce having required fields. + merge_text_p (float): Probability of merging additional metadata to the description. + drop_desc_p (float): Probability of dropping the original description on text merge. + drop_other_p (float): Probability of dropping the other fields used for text augmentation. + joint_embed_attributes (list[str]): A list of attributes for which joint embedding metadata is returned. + paraphrase_source (str, optional): Path to the .json or .json.gz file containing the + paraphrases for the description. The json should be a dict with keys are the + original info path (e.g. track_path.json) and each value is a list of possible + paraphrased. + paraphrase_p (float): probability of taking a paraphrase. + + See `audiocraft.data.info_audio_dataset.InfoAudioDataset` for full initialization arguments. + """ + def __init__(self, *args, info_fields_required: bool = True, + merge_text_p: float = 0., drop_desc_p: float = 0., drop_other_p: float = 0., + joint_embed_attributes: tp.List[str] = [], + paraphrase_source: tp.Optional[str] = None, paraphrase_p: float = 0, + **kwargs): + kwargs['return_info'] = True # We require the info for each song of the dataset. + super().__init__(*args, **kwargs) + self.info_fields_required = info_fields_required + self.merge_text_p = merge_text_p + self.drop_desc_p = drop_desc_p + self.drop_other_p = drop_other_p + self.joint_embed_attributes = joint_embed_attributes + self.paraphraser = None + if paraphrase_source is not None: + self.paraphraser = Paraphraser(paraphrase_source, paraphrase_p) + + def __getitem__(self, index): + wav, info = super().__getitem__(index) + info_data = info.to_dict() + music_info_path = Path(info.meta.path).with_suffix('.json') + + if Path(music_info_path).exists(): + with open(music_info_path, 'r') as json_file: + music_data = json.load(json_file) + music_data.update(info_data) + music_info = MusicInfo.from_dict(music_data, fields_required=self.info_fields_required) + if self.paraphraser is not None: + music_info.description = self.paraphraser.sample(music_info.meta.path, music_info.description) + if self.merge_text_p: + music_info = augment_music_info_description( + music_info, self.merge_text_p, self.drop_desc_p, self.drop_other_p) + else: + music_info = MusicInfo.from_dict(info_data, fields_required=False) + + music_info.self_wav = WavCondition( + wav=wav[None], length=torch.tensor([info.n_frames]), + sample_rate=[info.sample_rate], path=[info.meta.path], seek_time=[info.seek_time]) + + for att in self.joint_embed_attributes: + att_value = getattr(music_info, att) + joint_embed_cond = JointEmbedCondition( + wav[None], [att_value], torch.tensor([info.n_frames]), + sample_rate=[info.sample_rate], path=[info.meta.path], seek_time=[info.seek_time]) + music_info.joint_embed[att] = joint_embed_cond + + return wav, music_info + + +def get_musical_key(value: tp.Optional[str]) -> tp.Optional[str]: + """Preprocess key keywords, discarding them if there are multiple key defined.""" + if value is None or (not isinstance(value, str)) or len(value) == 0 or value == 'None': + return None + elif ',' in value: + # For now, we discard when multiple keys are defined separated with comas + return None + else: + return value.strip().lower() + + +def get_bpm(value: tp.Optional[str]) -> tp.Optional[float]: + """Preprocess to a float.""" + if value is None: + return None + try: + return float(value) + except ValueError: + return None diff --git a/audiocraft/data/sound_dataset.py b/audiocraft/data/sound_dataset.py new file mode 100644 index 0000000..8b88cbe --- /dev/null +++ b/audiocraft/data/sound_dataset.py @@ -0,0 +1,330 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Dataset of audio with a simple description. +""" + +from dataclasses import dataclass, fields, replace +import json +from pathlib import Path +import random +import typing as tp + +import numpy as np +import torch + +from .info_audio_dataset import ( + InfoAudioDataset, + get_keyword_or_keyword_list +) +from ..modules.conditioners import ( + ConditioningAttributes, + SegmentWithAttributes, + WavCondition, +) + + +EPS = torch.finfo(torch.float32).eps +TARGET_LEVEL_LOWER = -35 +TARGET_LEVEL_UPPER = -15 + + +@dataclass +class SoundInfo(SegmentWithAttributes): + """Segment info augmented with Sound metadata. + """ + description: tp.Optional[str] = None + self_wav: tp.Optional[torch.Tensor] = None + + @property + def has_sound_meta(self) -> bool: + return self.description is not None + + def to_condition_attributes(self) -> ConditioningAttributes: + out = ConditioningAttributes() + + for _field in fields(self): + key, value = _field.name, getattr(self, _field.name) + if key == 'self_wav': + out.wav[key] = value + else: + out.text[key] = value + return out + + @staticmethod + def attribute_getter(attribute): + if attribute == 'description': + preprocess_func = get_keyword_or_keyword_list + else: + preprocess_func = None + return preprocess_func + + @classmethod + def from_dict(cls, dictionary: dict, fields_required: bool = False): + _dictionary: tp.Dict[str, tp.Any] = {} + + # allow a subset of attributes to not be loaded from the dictionary + # these attributes may be populated later + post_init_attributes = ['self_wav'] + + for _field in fields(cls): + if _field.name in post_init_attributes: + continue + elif _field.name not in dictionary: + if fields_required: + raise KeyError(f"Unexpected missing key: {_field.name}") + else: + preprocess_func: tp.Optional[tp.Callable] = cls.attribute_getter(_field.name) + value = dictionary[_field.name] + if preprocess_func: + value = preprocess_func(value) + _dictionary[_field.name] = value + return cls(**_dictionary) + + +class SoundDataset(InfoAudioDataset): + """Sound audio dataset: Audio dataset with environmental sound-specific metadata. + + Args: + info_fields_required (bool): Whether all the mandatory metadata fields should be in the loaded metadata. + external_metadata_source (tp.Optional[str]): Folder containing JSON metadata for the corresponding dataset. + The metadata files contained in this folder are expected to match the stem of the audio file with + a json extension. + aug_p (float): Probability of performing audio mixing augmentation on the batch. + mix_p (float): Proportion of batch items that are mixed together when applying audio mixing augmentation. + mix_snr_low (int): Lowerbound for SNR value sampled for mixing augmentation. + mix_snr_high (int): Upperbound for SNR value sampled for mixing augmentation. + mix_min_overlap (float): Minimum overlap between audio files when performing mixing augmentation. + kwargs: Additional arguments for AudioDataset. + + See `audiocraft.data.info_audio_dataset.InfoAudioDataset` for full initialization arguments. + """ + def __init__( + self, + *args, + info_fields_required: bool = True, + external_metadata_source: tp.Optional[str] = None, + aug_p: float = 0., + mix_p: float = 0., + mix_snr_low: int = -5, + mix_snr_high: int = 5, + mix_min_overlap: float = 0.5, + **kwargs + ): + kwargs['return_info'] = True # We require the info for each song of the dataset. + super().__init__(*args, **kwargs) + self.info_fields_required = info_fields_required + self.external_metadata_source = external_metadata_source + self.aug_p = aug_p + self.mix_p = mix_p + if self.aug_p > 0: + assert self.mix_p > 0, "Expecting some mixing proportion mix_p if aug_p > 0" + assert self.channels == 1, "SoundDataset with audio mixing considers only monophonic audio" + self.mix_snr_low = mix_snr_low + self.mix_snr_high = mix_snr_high + self.mix_min_overlap = mix_min_overlap + + def _get_info_path(self, path: tp.Union[str, Path]) -> Path: + """Get path of JSON with metadata (description, etc.). + If there exists a JSON with the same name as 'path.name', then it will be used. + Else, such JSON will be searched for in an external json source folder if it exists. + """ + info_path = Path(path).with_suffix('.json') + if Path(info_path).exists(): + return info_path + elif self.external_metadata_source and (Path(self.external_metadata_source) / info_path.name).exists(): + return Path(self.external_metadata_source) / info_path.name + else: + raise Exception(f"Unable to find a metadata JSON for path: {path}") + + def __getitem__(self, index): + wav, info = super().__getitem__(index) + info_data = info.to_dict() + info_path = self._get_info_path(info.meta.path) + if Path(info_path).exists(): + with open(info_path, 'r') as json_file: + sound_data = json.load(json_file) + sound_data.update(info_data) + sound_info = SoundInfo.from_dict(sound_data, fields_required=self.info_fields_required) + # if there are multiple descriptions, sample one randomly + if isinstance(sound_info.description, list): + sound_info.description = random.choice(sound_info.description) + else: + sound_info = SoundInfo.from_dict(info_data, fields_required=False) + + sound_info.self_wav = WavCondition( + wav=wav[None], length=torch.tensor([info.n_frames]), + sample_rate=[sound_info.sample_rate], path=[info.meta.path], seek_time=[info.seek_time]) + + return wav, sound_info + + def collater(self, samples): + # when training, audio mixing is performed in the collate function + wav, sound_info = super().collater(samples) # SoundDataset always returns infos + if self.aug_p > 0: + wav, sound_info = mix_samples(wav, sound_info, self.aug_p, self.mix_p, + snr_low=self.mix_snr_low, snr_high=self.mix_snr_high, + min_overlap=self.mix_min_overlap) + return wav, sound_info + + +def rms_f(x: torch.Tensor) -> torch.Tensor: + return (x ** 2).mean(1).pow(0.5) + + +def normalize(audio: torch.Tensor, target_level: int = -25) -> torch.Tensor: + """Normalize the signal to the target level.""" + rms = rms_f(audio) + scalar = 10 ** (target_level / 20) / (rms + EPS) + audio = audio * scalar.unsqueeze(1) + return audio + + +def is_clipped(audio: torch.Tensor, clipping_threshold: float = 0.99) -> torch.Tensor: + return (abs(audio) > clipping_threshold).any(1) + + +def mix_pair(src: torch.Tensor, dst: torch.Tensor, min_overlap: float) -> torch.Tensor: + start = random.randint(0, int(src.shape[1] * (1 - min_overlap))) + remainder = src.shape[1] - start + if dst.shape[1] > remainder: + src[:, start:] = src[:, start:] + dst[:, :remainder] + else: + src[:, start:start+dst.shape[1]] = src[:, start:start+dst.shape[1]] + dst + return src + + +def snr_mixer(clean: torch.Tensor, noise: torch.Tensor, snr: int, min_overlap: float, + target_level: int = -25, clipping_threshold: float = 0.99) -> torch.Tensor: + """Function to mix clean speech and noise at various SNR levels. + + Args: + clean (torch.Tensor): Clean audio source to mix, of shape [B, T]. + noise (torch.Tensor): Noise audio source to mix, of shape [B, T]. + snr (int): SNR level when mixing. + min_overlap (float): Minimum overlap between the two mixed sources. + target_level (int): Gain level in dB. + clipping_threshold (float): Threshold for clipping the audio. + Returns: + torch.Tensor: The mixed audio, of shape [B, T]. + """ + if clean.shape[1] > noise.shape[1]: + noise = torch.nn.functional.pad(noise, (0, clean.shape[1] - noise.shape[1])) + else: + noise = noise[:, :clean.shape[1]] + + # normalizing to -25 dB FS + clean = clean / (clean.max(1)[0].abs().unsqueeze(1) + EPS) + clean = normalize(clean, target_level) + rmsclean = rms_f(clean) + + noise = noise / (noise.max(1)[0].abs().unsqueeze(1) + EPS) + noise = normalize(noise, target_level) + rmsnoise = rms_f(noise) + + # set the noise level for a given SNR + noisescalar = (rmsclean / (10 ** (snr / 20)) / (rmsnoise + EPS)).unsqueeze(1) + noisenewlevel = noise * noisescalar + + # mix noise and clean speech + noisyspeech = mix_pair(clean, noisenewlevel, min_overlap) + + # randomly select RMS value between -15 dBFS and -35 dBFS and normalize noisyspeech with that value + # there is a chance of clipping that might happen with very less probability, which is not a major issue. + noisy_rms_level = np.random.randint(TARGET_LEVEL_LOWER, TARGET_LEVEL_UPPER) + rmsnoisy = rms_f(noisyspeech) + scalarnoisy = (10 ** (noisy_rms_level / 20) / (rmsnoisy + EPS)).unsqueeze(1) + noisyspeech = noisyspeech * scalarnoisy + clean = clean * scalarnoisy + noisenewlevel = noisenewlevel * scalarnoisy + + # final check to see if there are any amplitudes exceeding +/- 1. If so, normalize all the signals accordingly + clipped = is_clipped(noisyspeech) + if clipped.any(): + noisyspeech_maxamplevel = noisyspeech[clipped].max(1)[0].abs().unsqueeze(1) / (clipping_threshold - EPS) + noisyspeech[clipped] = noisyspeech[clipped] / noisyspeech_maxamplevel + + return noisyspeech + + +def snr_mix(src: torch.Tensor, dst: torch.Tensor, snr_low: int, snr_high: int, min_overlap: float): + if snr_low == snr_high: + snr = snr_low + else: + snr = np.random.randint(snr_low, snr_high) + mix = snr_mixer(src, dst, snr, min_overlap) + return mix + + +def mix_text(src_text: str, dst_text: str): + """Mix text from different sources by concatenating them.""" + if src_text == dst_text: + return src_text + return src_text + " " + dst_text + + +def mix_samples(wavs: torch.Tensor, infos: tp.List[SoundInfo], aug_p: float, mix_p: float, + snr_low: int, snr_high: int, min_overlap: float): + """Mix samples within a batch, summing the waveforms and concatenating the text infos. + + Args: + wavs (torch.Tensor): Audio tensors of shape [B, C, T]. + infos (list[SoundInfo]): List of SoundInfo items corresponding to the audio. + aug_p (float): Augmentation probability. + mix_p (float): Proportion of items in the batch to mix (and merge) together. + snr_low (int): Lowerbound for sampling SNR. + snr_high (int): Upperbound for sampling SNR. + min_overlap (float): Minimum overlap between mixed samples. + Returns: + tuple[torch.Tensor, list[SoundInfo]]: A tuple containing the mixed wavs + and mixed SoundInfo for the given batch. + """ + # no mixing to perform within the batch + if mix_p == 0: + return wavs, infos + + if random.uniform(0, 1) < aug_p: + # perform all augmentations on waveforms as [B, T] + # randomly picking pairs of audio to mix + assert wavs.size(1) == 1, f"Mix samples requires monophonic audio but C={wavs.size(1)}" + wavs = wavs.mean(dim=1, keepdim=False) + B, T = wavs.shape + k = int(mix_p * B) + mixed_sources_idx = torch.randperm(B)[:k] + mixed_targets_idx = torch.randperm(B)[:k] + aug_wavs = snr_mix( + wavs[mixed_sources_idx], + wavs[mixed_targets_idx], + snr_low, + snr_high, + min_overlap, + ) + # mixing textual descriptions in metadata + descriptions = [info.description for info in infos] + aug_infos = [] + for i, j in zip(mixed_sources_idx, mixed_targets_idx): + text = mix_text(descriptions[i], descriptions[j]) + m = replace(infos[i]) + m.description = text + aug_infos.append(m) + + # back to [B, C, T] + aug_wavs = aug_wavs.unsqueeze(1) + assert aug_wavs.shape[0] > 0, "Samples mixing returned empty batch." + assert aug_wavs.dim() == 3, f"Returned wav should be [B, C, T] but dim = {aug_wavs.dim()}" + assert aug_wavs.shape[0] == len(aug_infos), "Mismatch between number of wavs and infos in the batch" + + return aug_wavs, aug_infos # [B, C, T] + else: + # randomly pick samples in the batch to match + # the batch size when performing audio mixing + B, C, T = wavs.shape + k = int(mix_p * B) + wav_idx = torch.randperm(B)[:k] + wavs = wavs[wav_idx] + infos = [infos[i] for i in wav_idx] + assert wavs.shape[0] == len(infos), "Mismatch between number of wavs and infos in the batch" + + return wavs, infos # [B, C, T] diff --git a/audiocraft/data/zip.py b/audiocraft/data/zip.py new file mode 100644 index 0000000..f0b1784 --- /dev/null +++ b/audiocraft/data/zip.py @@ -0,0 +1,76 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Utility for reading some info from inside a zip file. +""" + +import typing +import zipfile + +from dataclasses import dataclass +from functools import lru_cache +from typing_extensions import Literal + + +DEFAULT_SIZE = 32 +MODE = Literal['r', 'w', 'x', 'a'] + + +@dataclass(order=True) +class PathInZip: + """Hold a path of file within a zip file. + + Args: + path (str): The convention is :. + Let's assume there is a zip file /some/location/foo.zip + and inside of it is a json file located at /data/file1.json, + Then we expect path = "/some/location/foo.zip:/data/file1.json". + """ + + INFO_PATH_SEP = ':' + zip_path: str + file_path: str + + def __init__(self, path: str) -> None: + split_path = path.split(self.INFO_PATH_SEP) + assert len(split_path) == 2 + self.zip_path, self.file_path = split_path + + @classmethod + def from_paths(cls, zip_path: str, file_path: str): + return cls(zip_path + cls.INFO_PATH_SEP + file_path) + + def __str__(self) -> str: + return self.zip_path + self.INFO_PATH_SEP + self.file_path + + +def _open_zip(path: str, mode: MODE = 'r'): + return zipfile.ZipFile(path, mode) + + +_cached_open_zip = lru_cache(DEFAULT_SIZE)(_open_zip) + + +def set_zip_cache_size(max_size: int): + """Sets the maximal LRU caching for zip file opening. + + Args: + max_size (int): the maximal LRU cache. + """ + global _cached_open_zip + _cached_open_zip = lru_cache(max_size)(_open_zip) + + +def open_file_in_zip(path_in_zip: PathInZip, mode: str = 'r') -> typing.IO: + """Opens a file stored inside a zip and returns a file-like object. + + Args: + path_in_zip (PathInZip): A PathInZip object representing the file to return a file-like object of. + mode (str): The mode in which to open the file with. + Returns: + A file-like object for PathInZip. + """ + zf = _cached_open_zip(path_in_zip.zip_path) + return zf.open(path_in_zip.file_path) diff --git a/audiocraft/environment.py b/audiocraft/environment.py new file mode 100644 index 0000000..adc7819 --- /dev/null +++ b/audiocraft/environment.py @@ -0,0 +1,176 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Provides cluster and tools configuration across clusters (slurm, dora, utilities). +""" + +import logging +import os +from pathlib import Path +import re +import typing as tp + +import omegaconf + +from .utils.cluster import _guess_cluster_type + + +logger = logging.getLogger(__name__) + + +class AudioCraftEnvironment: + """Environment configuration for teams and clusters. + + AudioCraftEnvironment picks compute cluster settings (slurm, dora) from the current running environment + or declared variable and the loaded team configuration. Additionally, the AudioCraftEnvironment + provides pointers to a reference folder resolved automatically across clusters that is shared across team members, + allowing to share sigs or other files to run jobs. Finally, it provides dataset mappers to automatically + map dataset file paths to new locations across clusters, allowing to use the same manifest of files across cluters. + + The cluster type is identified automatically and base configuration file is read from config/teams.yaml. + Use the following environment variables to specify the cluster, team or configuration: + + AUDIOCRAFT_CLUSTER (optional): Cluster type to enforce. Useful if the cluster type + cannot be inferred automatically. + AUDIOCRAFT_CONFIG (optional): Path to yaml config holding the teams configuration. + If not set, configuration is read from config/teams.yaml. + AUDIOCRAFT_TEAM (optional): Name of the team. Recommended to set to your own team. + Cluster configuration are shared across teams to match compute allocation, + specify your cluster configuration in the configuration file under a key mapping + your team name. + """ + _instance = None + DEFAULT_TEAM = "default" + + def __init__(self) -> None: + """Loads configuration.""" + self.team: str = os.getenv("AUDIOCRAFT_TEAM", self.DEFAULT_TEAM) + cluster_type = _guess_cluster_type() + cluster = os.getenv( + "AUDIOCRAFT_CLUSTER", cluster_type.value + ) + logger.info("Detecting cluster type %s", cluster_type) + + self.cluster: str = cluster + + config_path = os.getenv( + "AUDIOCRAFT_CONFIG", + Path(__file__) + .parent.parent.joinpath("config/teams", self.team) + .with_suffix(".yaml"), + ) + self.config = omegaconf.OmegaConf.load(config_path) + self._dataset_mappers = [] + cluster_config = self._get_cluster_config() + if "dataset_mappers" in cluster_config: + for pattern, repl in cluster_config["dataset_mappers"].items(): + regex = re.compile(pattern) + self._dataset_mappers.append((regex, repl)) + + def _get_cluster_config(self) -> omegaconf.DictConfig: + assert isinstance(self.config, omegaconf.DictConfig) + return self.config[self.cluster] + + @classmethod + def instance(cls): + if cls._instance is None: + cls._instance = cls() + return cls._instance + + @classmethod + def reset(cls): + """Clears the environment and forces a reload on next invocation.""" + cls._instance = None + + @classmethod + def get_team(cls) -> str: + """Gets the selected team as dictated by the AUDIOCRAFT_TEAM env var. + If not defined, defaults to "labs". + """ + return cls.instance().team + + @classmethod + def get_cluster(cls) -> str: + """Gets the detected cluster. + This value can be overridden by the AUDIOCRAFT_CLUSTER env var. + """ + return cls.instance().cluster + + @classmethod + def get_dora_dir(cls) -> Path: + """Gets the path to the dora directory for the current team and cluster. + Value is overridden by the AUDIOCRAFT_DORA_DIR env var. + """ + cluster_config = cls.instance()._get_cluster_config() + dora_dir = os.getenv("AUDIOCRAFT_DORA_DIR", cluster_config["dora_dir"]) + logger.warning(f"Dora directory: {dora_dir}") + return Path(dora_dir) + + @classmethod + def get_reference_dir(cls) -> Path: + """Gets the path to the reference directory for the current team and cluster. + Value is overridden by the AUDIOCRAFT_REFERENCE_DIR env var. + """ + cluster_config = cls.instance()._get_cluster_config() + return Path(os.getenv("AUDIOCRAFT_REFERENCE_DIR", cluster_config["reference_dir"])) + + @classmethod + def get_slurm_exclude(cls) -> tp.Optional[str]: + """Get the list of nodes to exclude for that cluster.""" + cluster_config = cls.instance()._get_cluster_config() + return cluster_config.get("slurm_exclude") + + @classmethod + def get_slurm_partitions(cls, partition_types: tp.Optional[tp.List[str]] = None) -> str: + """Gets the requested partitions for the current team and cluster as a comma-separated string. + + Args: + partition_types (list[str], optional): partition types to retrieve. Values must be + from ['global', 'team']. If not provided, the global partition is returned. + """ + if not partition_types: + partition_types = ["global"] + + cluster_config = cls.instance()._get_cluster_config() + partitions = [ + cluster_config["partitions"][partition_type] + for partition_type in partition_types + ] + return ",".join(partitions) + + @classmethod + def resolve_reference_path(cls, path: tp.Union[str, Path]) -> Path: + """Converts reference placeholder in path with configured reference dir to resolve paths. + + Args: + path (str or Path): Path to resolve. + Returns: + Path: Resolved path. + """ + path = str(path) + + if path.startswith("//reference"): + reference_dir = cls.get_reference_dir() + logger.warn(f"Reference directory: {reference_dir}") + assert ( + reference_dir.exists() and reference_dir.is_dir() + ), f"Reference directory does not exist: {reference_dir}." + path = re.sub("^//reference", str(reference_dir), path) + + return Path(path) + + @classmethod + def apply_dataset_mappers(cls, path: str) -> str: + """Applies dataset mapping regex rules as defined in the configuration. + If no rules are defined, the path is returned as-is. + """ + instance = cls.instance() + + for pattern, repl in instance._dataset_mappers: + path = pattern.sub(repl, path) + + return path diff --git a/audiocraft/grids/__init__.py b/audiocraft/grids/__init__.py new file mode 100644 index 0000000..7064351 --- /dev/null +++ b/audiocraft/grids/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Dora Grids.""" diff --git a/audiocraft/grids/_base_explorers.py b/audiocraft/grids/_base_explorers.py new file mode 100644 index 0000000..d3f2666 --- /dev/null +++ b/audiocraft/grids/_base_explorers.py @@ -0,0 +1,80 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from abc import ABC, abstractmethod +import time +import typing as tp +from dora import Explorer +import treetable as tt + + +def get_sheep_ping(sheep) -> tp.Optional[str]: + """Return the amount of time since the Sheep made some update + to its log. Returns a str using the relevant time unit.""" + ping = None + if sheep.log is not None and sheep.log.exists(): + delta = time.time() - sheep.log.stat().st_mtime + if delta > 3600 * 24: + ping = f'{delta / (3600 * 24):.1f}d' + elif delta > 3600: + ping = f'{delta / (3600):.1f}h' + elif delta > 60: + ping = f'{delta / 60:.1f}m' + else: + ping = f'{delta:.1f}s' + return ping + + +class BaseExplorer(ABC, Explorer): + """Base explorer for AudioCraft grids. + + All task specific solvers are expected to implement the `get_grid_metrics` + method to specify logic about metrics to display for a given task. + + If additional stages are used, the child explorer must define how to handle + these new stages in the `process_history` and `process_sheep` methods. + """ + def stages(self): + return ["train", "valid", "evaluate"] + + def get_grid_meta(self): + """Returns the list of Meta information to display for each XP/job. + """ + return [ + tt.leaf("index", align=">"), + tt.leaf("name", wrap=140), + tt.leaf("state"), + tt.leaf("sig", align=">"), + tt.leaf("sid", align="<"), + ] + + @abstractmethod + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table. + """ + ... + + def process_sheep(self, sheep, history): + train = { + "epoch": len(history), + } + parts = {"train": train} + for metrics in history: + for key, sub in metrics.items(): + part = parts.get(key, {}) + if 'duration' in sub: + # Convert to minutes for readability. + sub['duration'] = sub['duration'] / 60. + part.update(sub) + parts[key] = part + ping = get_sheep_ping(sheep) + if ping is not None: + for name in self.stages(): + if name not in parts: + parts[name] = {} + # Add the ping to each part for convenience. + parts[name]['ping'] = ping + return parts diff --git a/audiocraft/grids/audiogen/__init__.py b/audiocraft/grids/audiogen/__init__.py new file mode 100644 index 0000000..8a0a268 --- /dev/null +++ b/audiocraft/grids/audiogen/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""AudioGen grids.""" diff --git a/audiocraft/grids/audiogen/audiogen_base_16khz.py b/audiocraft/grids/audiogen/audiogen_base_16khz.py new file mode 100644 index 0000000..190cc1d --- /dev/null +++ b/audiocraft/grids/audiogen/audiogen_base_16khz.py @@ -0,0 +1,23 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ..musicgen._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=64, partition=partitions) + launcher.bind_(solver='audiogen/audiogen_base_16khz') + # replace this by the desired environmental sound dataset + launcher.bind_(dset='internal/sounds_16khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + + launcher.bind_(fsdp) + launcher(medium) diff --git a/audiocraft/grids/audiogen/audiogen_pretrained_16khz_eval.py b/audiocraft/grids/audiogen/audiogen_pretrained_16khz_eval.py new file mode 100644 index 0000000..12f6d40 --- /dev/null +++ b/audiocraft/grids/audiogen/audiogen_pretrained_16khz_eval.py @@ -0,0 +1,68 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Evaluation with objective metrics for the pretrained AudioGen models. +This grid takes signature from the training grid and runs evaluation-only stage. + +When running the grid for the first time, please use: +REGEN=1 dora grid audiogen.audiogen_pretrained_16khz_eval +and re-use the REGEN=1 option when the grid is changed to force regenerating it. + +Note that you need the proper metrics external libraries setup to use all +the objective metrics activated in this grid. Refer to the README for more information. +""" + +import os + +from ..musicgen._explorers import GenerationEvalExplorer +from ...environment import AudioCraftEnvironment +from ... import train + + +def eval(launcher, batch_size: int = 32): + opts = { + 'dset': 'audio/audiocaps_16khz', + 'solver/audiogen/evaluation': 'objective_eval', + 'execute_only': 'evaluate', + '+dataset.evaluate.batch_size': batch_size, + '+metrics.fad.tf.batch_size': 32, + } + # binary for FAD computation: replace this path with your own path + metrics_opts = { + 'metrics.fad.tf.bin': '/data/home/jadecopet/local/usr/opt/google-research' + } + opt1 = {'generate.lm.use_sampling': True, 'generate.lm.top_k': 250, 'generate.lm.top_p': 0.} + opt2 = {'transformer_lm.two_step_cfg': True} + + sub = launcher.bind(opts) + sub.bind_(metrics_opts) + + # base objective metrics + sub(opt1, opt2) + + +@GenerationEvalExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=4, partition=partitions) + + if 'REGEN' not in os.environ: + folder = train.main.dora.dir / 'grids' / __name__.split('.', 2)[-1] + with launcher.job_array(): + for sig in folder.iterdir(): + if not sig.is_symlink(): + continue + xp = train.main.get_xp_from_sig(sig.name) + launcher(xp.argv) + return + + audiogen_base = launcher.bind(solver="audiogen/audiogen_base_16khz") + audiogen_base.bind_({'autocast': False, 'fsdp.use': True}) + + audiogen_base_medium = audiogen_base.bind({'continue_from': '//pretrained/facebook/audiogen-medium'}) + audiogen_base_medium.bind_({'model/lm/model_scale': 'medium'}) + eval(audiogen_base_medium, batch_size=128) diff --git a/audiocraft/grids/compression/__init__.py b/audiocraft/grids/compression/__init__.py new file mode 100644 index 0000000..5b68852 --- /dev/null +++ b/audiocraft/grids/compression/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""EnCodec grids.""" diff --git a/audiocraft/grids/compression/_explorers.py b/audiocraft/grids/compression/_explorers.py new file mode 100644 index 0000000..eed30d5 --- /dev/null +++ b/audiocraft/grids/compression/_explorers.py @@ -0,0 +1,55 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import treetable as tt + +from .._base_explorers import BaseExplorer + + +class CompressionExplorer(BaseExplorer): + eval_metrics = ["sisnr", "visqol"] + + def stages(self): + return ["train", "valid", "evaluate"] + + def get_grid_meta(self): + """Returns the list of Meta information to display for each XP/job. + """ + return [ + tt.leaf("index", align=">"), + tt.leaf("name", wrap=140), + tt.leaf("state"), + tt.leaf("sig", align=">"), + ] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table. + """ + return [ + tt.group( + "train", + [ + tt.leaf("epoch"), + tt.leaf("bandwidth", ".2f"), + tt.leaf("adv", ".4f"), + tt.leaf("d_loss", ".4f"), + ], + align=">", + ), + tt.group( + "valid", + [ + tt.leaf("bandwidth", ".2f"), + tt.leaf("adv", ".4f"), + tt.leaf("msspec", ".4f"), + tt.leaf("sisnr", ".2f"), + ], + align=">", + ), + tt.group( + "evaluate", [tt.leaf(name, ".3f") for name in self.eval_metrics], align=">" + ), + ] diff --git a/audiocraft/grids/compression/debug.py b/audiocraft/grids/compression/debug.py new file mode 100644 index 0000000..5612ff5 --- /dev/null +++ b/audiocraft/grids/compression/debug.py @@ -0,0 +1,31 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Grid search file, simply list all the exp you want in `explorer`. +Any new exp added there will be scheduled. +You can cancel and experiment by commenting its line. + +This grid is a minimal example for debugging compression task +and how to override parameters directly in a grid. +Learn more about dora grids: https://github.com/facebookresearch/dora +""" + +from ._explorers import CompressionExplorer +from ...environment import AudioCraftEnvironment + + +@CompressionExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=2, partition=partitions) + launcher.bind_(solver='compression/debug') + + with launcher.job_array(): + # base debug task using config from solver=compression/debug + launcher() + # we can override parameters in the grid to launch additional xps + launcher({'rvq.bins': 2048, 'rvq.n_q': 4}) diff --git a/audiocraft/grids/compression/encodec_audiogen_16khz.py b/audiocraft/grids/compression/encodec_audiogen_16khz.py new file mode 100644 index 0000000..c9b41f6 --- /dev/null +++ b/audiocraft/grids/compression/encodec_audiogen_16khz.py @@ -0,0 +1,29 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Grid search file, simply list all the exp you want in `explorer`. +Any new exp added there will be scheduled. +You can cancel and experiment by commenting its line. + +This grid shows how to train the new AudioGen EnCodec model at 16 kHz. +""" + +from ._explorers import CompressionExplorer +from ...environment import AudioCraftEnvironment + + +@CompressionExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=8, partition=partitions) + # use configuration for AudioGen's EnCodec model trained on monophonic audio sampled at 16 kHz + # AudioGen's EnCodec is trained with a total stride of 320 leading to a frame rate of 50 hz + launcher.bind_(solver='compression/encodec_audiogen_16khz') + # replace this by the desired sound dataset + launcher.bind_(dset='internal/sounds_16khz') + # launch xp + launcher() diff --git a/audiocraft/grids/compression/encodec_base_24khz.py b/audiocraft/grids/compression/encodec_base_24khz.py new file mode 100644 index 0000000..117b2b1 --- /dev/null +++ b/audiocraft/grids/compression/encodec_base_24khz.py @@ -0,0 +1,28 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Grid search file, simply list all the exp you want in `explorer`. +Any new exp added there will be scheduled. +You can cancel and experiment by commenting its line. + +This grid shows how to train a base causal EnCodec model at 24 kHz. +""" + +from ._explorers import CompressionExplorer +from ...environment import AudioCraftEnvironment + + +@CompressionExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=8, partition=partitions) + # base causal EnCodec trained on monophonic audio sampled at 24 kHz + launcher.bind_(solver='compression/encodec_base_24khz') + # replace this by the desired dataset + launcher.bind_(dset='audio/example') + # launch xp + launcher() diff --git a/audiocraft/grids/compression/encodec_musicgen_32khz.py b/audiocraft/grids/compression/encodec_musicgen_32khz.py new file mode 100644 index 0000000..9da31da --- /dev/null +++ b/audiocraft/grids/compression/encodec_musicgen_32khz.py @@ -0,0 +1,34 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Grid search file, simply list all the exp you want in `explorer`. +Any new exp added there will be scheduled. +You can cancel and experiment by commenting its line. + +This grid shows how to train a MusicGen EnCodec model at 32 kHz. +""" + +from ._explorers import CompressionExplorer +from ...environment import AudioCraftEnvironment + + +@CompressionExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=8, partition=partitions) + # use configuration for MusicGen's EnCodec model trained on monophonic audio sampled at 32 kHz + # MusicGen's EnCodec is trained with a total stride of 640 leading to a frame rate of 50 hz + launcher.bind_(solver='compression/encodec_musicgen_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + # launch xp + launcher() + launcher({ + 'metrics.visqol.bin': '/data/home/jadecopet/local/usr/opt/visqol', + 'label': 'visqol', + 'evaluate.metrics.visqol': True + }) diff --git a/audiocraft/grids/diffusion/4_bands_base_32khz.py b/audiocraft/grids/diffusion/4_bands_base_32khz.py new file mode 100644 index 0000000..f7e67bc --- /dev/null +++ b/audiocraft/grids/diffusion/4_bands_base_32khz.py @@ -0,0 +1,27 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Training of the 4 diffusion models described in +"From Discrete Tokens to High-Fidelity Audio Using Multi-Band Diffusion" +(paper link). +""" + +from ._explorers import DiffusionExplorer + + +@DiffusionExplorer +def explorer(launcher): + launcher.slurm_(gpus=4, partition='learnfair') + + launcher.bind_({'solver': 'diffusion/default', + 'dset': 'internal/music_10k_32khz'}) + + with launcher.job_array(): + launcher({'filter.use': True, 'filter.idx_band': 0, "processor.use": False, 'processor.power_std': 0.4}) + launcher({'filter.use': True, 'filter.idx_band': 1, "processor.use": False, 'processor.power_std': 0.4}) + launcher({'filter.use': True, 'filter.idx_band': 2, "processor.use": True, 'processor.power_std': 0.4}) + launcher({'filter.use': True, 'filter.idx_band': 3, "processor.use": True, 'processor.power_std': 0.75}) diff --git a/audiocraft/grids/diffusion/__init__.py b/audiocraft/grids/diffusion/__init__.py new file mode 100644 index 0000000..e573729 --- /dev/null +++ b/audiocraft/grids/diffusion/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Diffusion grids.""" diff --git a/audiocraft/grids/diffusion/_explorers.py b/audiocraft/grids/diffusion/_explorers.py new file mode 100644 index 0000000..0bf4ca5 --- /dev/null +++ b/audiocraft/grids/diffusion/_explorers.py @@ -0,0 +1,66 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import treetable as tt + +from .._base_explorers import BaseExplorer + + +class DiffusionExplorer(BaseExplorer): + eval_metrics = ["sisnr", "visqol"] + + def stages(self): + return ["train", "valid", "valid_ema", "evaluate", "evaluate_ema"] + + def get_grid_meta(self): + """Returns the list of Meta information to display for each XP/job. + """ + return [ + tt.leaf("index", align=">"), + tt.leaf("name", wrap=140), + tt.leaf("state"), + tt.leaf("sig", align=">"), + ] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table. + """ + return [ + tt.group( + "train", + [ + tt.leaf("epoch"), + tt.leaf("loss", ".3%"), + ], + align=">", + ), + tt.group( + "valid", + [ + tt.leaf("loss", ".3%"), + # tt.leaf("loss_0", ".3%"), + ], + align=">", + ), + tt.group( + "valid_ema", + [ + tt.leaf("loss", ".3%"), + # tt.leaf("loss_0", ".3%"), + ], + align=">", + ), + tt.group( + "evaluate", [tt.leaf("rvm", ".4f"), tt.leaf("rvm_0", ".4f"), + tt.leaf("rvm_1", ".4f"), tt.leaf("rvm_2", ".4f"), + tt.leaf("rvm_3", ".4f"), ], align=">" + ), + tt.group( + "evaluate_ema", [tt.leaf("rvm", ".4f"), tt.leaf("rvm_0", ".4f"), + tt.leaf("rvm_1", ".4f"), tt.leaf("rvm_2", ".4f"), + tt.leaf("rvm_3", ".4f")], align=">" + ), + ] diff --git a/audiocraft/grids/magnet/__init__.py b/audiocraft/grids/magnet/__init__.py new file mode 100644 index 0000000..fb49709 --- /dev/null +++ b/audiocraft/grids/magnet/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""MAGNeT grids.""" diff --git a/audiocraft/grids/magnet/audio_magnet_16khz.py b/audiocraft/grids/magnet/audio_magnet_16khz.py new file mode 100644 index 0000000..d8ed75d --- /dev/null +++ b/audiocraft/grids/magnet/audio_magnet_16khz.py @@ -0,0 +1,32 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ..musicgen._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='magnet/audio_magnet_16khz') + # replace this by the desired environmental sound dataset + launcher.bind_(dset='internal/sounds_16khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + + # Small model (300M) + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + sub = launcher.bind() + sub() + + # Medium model (1.5B) + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(medium, fsdp) diff --git a/audiocraft/grids/magnet/audio_magnet_pretrained_16khz_eval.py b/audiocraft/grids/magnet/audio_magnet_pretrained_16khz_eval.py new file mode 100644 index 0000000..71282fe --- /dev/null +++ b/audiocraft/grids/magnet/audio_magnet_pretrained_16khz_eval.py @@ -0,0 +1,74 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Evaluation with objective metrics for the pretrained audio-MAGNeT models. +This grid takes signature from the training grid and runs evaluation-only stage. + +When running the grid for the first time, please use: +REGEN=1 dora grid magnet.audio_magnet_pretrained_16khz_eval +and re-use the REGEN=1 option when the grid is changed to force regenerating it. + +Note that you need the proper metrics external libraries setup to use all +the objective metrics activated in this grid. Refer to the README for more information. +""" + +import os + +from ..musicgen._explorers import GenerationEvalExplorer +from ...environment import AudioCraftEnvironment +from ... import train + + +def eval(launcher, batch_size: int = 32): + opts = { + 'dset': 'audio/audiocaps_16khz', + 'solver/audiogen/evaluation': 'objective_eval', + 'execute_only': 'evaluate', + '+dataset.evaluate.batch_size': batch_size, + '+metrics.fad.tf.batch_size': 32, + } + # binary for FAD computation: replace this path with your own path + metrics_opts = { + 'metrics.fad.tf.bin': '/data/home/jadecopet/local/usr/opt/google-research' + } + + sub = launcher.bind(opts) + sub.bind_(metrics_opts) + + # base objective metrics + sub() + + +@GenerationEvalExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=4, partition=partitions) + + if 'REGEN' not in os.environ: + folder = train.main.dora.dir / 'grids' / __name__.split('.', 2)[-1] + with launcher.job_array(): + for sig in folder.iterdir(): + if not sig.is_symlink(): + continue + xp = train.main.get_xp_from_sig(sig.name) + launcher(xp.argv) + return + + with launcher.job_array(): + audio_magnet = launcher.bind(solver="magnet/audio_magnet_16khz") + + fsdp = {'autocast': False, 'fsdp.use': True} + + # Small audio-MAGNeT model (300M) + audio_magnet_small = audio_magnet.bind({'continue_from': '//pretrained/facebook/audio-magnet-small'}) + eval(audio_magnet_small, batch_size=128) + + # Medium audio-MAGNeT model (1.5B) + audio_magnet_medium = audio_magnet.bind({'continue_from': '//pretrained/facebook/audio-magnet-medium'}) + audio_magnet_medium.bind_({'model/lm/model_scale': 'medium'}) + audio_magnet_medium.bind_(fsdp) + eval(audio_magnet_medium, batch_size=128) diff --git a/audiocraft/grids/magnet/magnet_32khz.py b/audiocraft/grids/magnet/magnet_32khz.py new file mode 100644 index 0000000..036de25 --- /dev/null +++ b/audiocraft/grids/magnet/magnet_32khz.py @@ -0,0 +1,47 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ..musicgen._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='magnet/magnet_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + adam = {'optim.optimizer': 'adamw', 'optim.lr': 1e-4} + segdur_10secs = {'dataset.segment_duration': 10, + 'dataset.batch_size': 576, + 'generate.lm.decoding_steps': [20, 10, 10, 10]} + + # Small models (300M) + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + # 30 seconds + sub = launcher.bind() + sub() + + # 10 seconds + sub = launcher.bind() + sub(segdur_10secs) + + # Medium models (1.5B) + launcher.bind_(fsdp) + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + # 30 seconds + sub = launcher.bind() + sub(medium, adam) + + # 10 seconds + sub = launcher.bind() + sub(segdur_10secs) diff --git a/audiocraft/grids/magnet/magnet_pretrained_32khz_eval.py b/audiocraft/grids/magnet/magnet_pretrained_32khz_eval.py new file mode 100644 index 0000000..2aaabc9 --- /dev/null +++ b/audiocraft/grids/magnet/magnet_pretrained_32khz_eval.py @@ -0,0 +1,87 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Evaluation with objective metrics for the pretrained MAGNeT models. +This grid takes signature from the training grid and runs evaluation-only stage. + +When running the grid for the first time, please use: +REGEN=1 dora grid magnet.magnet_pretrained_32khz_eval +and re-use the REGEN=1 option when the grid is changed to force regenerating it. + +Note that you need the proper metrics external libraries setup to use all +the objective metrics activated in this grid. Refer to the README for more information. +""" + +import os + +from ..musicgen._explorers import GenerationEvalExplorer +from ...environment import AudioCraftEnvironment +from ... import train + + +def eval(launcher, batch_size: int = 32): + opts = { + 'dset': 'audio/musiccaps_32khz', + 'solver/musicgen/evaluation': 'objective_eval', + 'execute_only': 'evaluate', + '+dataset.evaluate.batch_size': batch_size, + '+metrics.fad.tf.batch_size': 16, + } + # binary for FAD computation: replace this path with your own path + metrics_opts = { + 'metrics.fad.tf.bin': '/data/home/jadecopet/local/usr/opt/google-research' + } + + sub = launcher.bind(opts) + sub.bind_(metrics_opts) + + # base objective metrics + sub() + + +@GenerationEvalExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=4, partition=partitions) + + if 'REGEN' not in os.environ: + folder = train.main.dora.dir / 'grids' / __name__.split('.', 2)[-1] + with launcher.job_array(): + for sig in folder.iterdir(): + if not sig.is_symlink(): + continue + xp = train.main.get_xp_from_sig(sig.name) + launcher(xp.argv) + return + + with launcher.job_array(): + magnet = launcher.bind(solver="magnet/magnet_32khz") + + fsdp = {'autocast': False, 'fsdp.use': True} + + segdur_10secs = {'dataset.segment_duration': 10, + 'generate.lm.decoding_steps': [20, 10, 10, 10]} + + # 10-second magnet models + magnet_small_10secs = magnet.bind({'continue_from': '//pretrained/facebook/magnet-small-10secs'}) + magnet_small_10secs.bind_(segdur_10secs) + eval(magnet_small_10secs, batch_size=128) + + magnet_medium_10secs = magnet.bind({'continue_from': '//pretrained/facebook/magnet-medium-10secs'}) + magnet_medium_10secs.bind_(segdur_10secs) + magnet_medium_10secs.bind_({'model/lm/model_scale': 'medium'}) + magnet_medium_10secs.bind_(fsdp) + eval(magnet_medium_10secs, batch_size=128) + + # 30-second magnet models + magnet_small_30secs = magnet.bind({'continue_from': '//pretrained/facebook/magnet-small-30secs'}) + eval(magnet_small_30secs, batch_size=128) + + magnet_medium_30secs = magnet.bind({'continue_from': '//pretrained/facebook/magnet-medium-30secs'}) + magnet_medium_30secs.bind_({'model/lm/model_scale': 'medium'}) + magnet_medium_30secs.bind_(fsdp) + eval(magnet_medium_30secs, batch_size=128) diff --git a/audiocraft/grids/musicgen/__init__.py b/audiocraft/grids/musicgen/__init__.py new file mode 100644 index 0000000..d3f101f --- /dev/null +++ b/audiocraft/grids/musicgen/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""MusicGen grids.""" diff --git a/audiocraft/grids/musicgen/_explorers.py b/audiocraft/grids/musicgen/_explorers.py new file mode 100644 index 0000000..334836b --- /dev/null +++ b/audiocraft/grids/musicgen/_explorers.py @@ -0,0 +1,93 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import treetable as tt + +from .._base_explorers import BaseExplorer + + +class LMExplorer(BaseExplorer): + eval_metrics: tp.List[str] = [] + + def stages(self) -> tp.List[str]: + return ['train', 'valid'] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table.""" + return [ + tt.group( + 'train', + [ + tt.leaf('epoch'), + tt.leaf('duration', '.1f'), # duration in minutes + tt.leaf('ping'), + tt.leaf('ce', '.4f'), # cross entropy + tt.leaf("ppl", '.3f'), # perplexity + ], + align='>', + ), + tt.group( + 'valid', + [ + tt.leaf('ce', '.4f'), + tt.leaf('ppl', '.3f'), + tt.leaf('best_ppl', '.3f'), + ], + align='>', + ), + ] + + def process_sheep(self, sheep, history): + parts = super().process_sheep(sheep, history) + + track_by = {'ppl': 'lower'} # values should be in ['lower', 'higher'] + best_metrics = {k: (1 if v == 'lower' else -1) * float('inf') for k, v in track_by.items()} + + def comparator(mode, a, b): + return a < b if mode == 'lower' else a > b + + for metrics in history: + for key, sub in metrics.items(): + for metric in track_by: + # for the validation set, keep track of best metrics (ppl in this example) + # this is so we can conveniently compare metrics between runs in the grid + if key == 'valid' and metric in sub and comparator( + track_by[metric], sub[metric], best_metrics[metric] + ): + best_metrics[metric] = sub[metric] + + if 'valid' in parts: + parts['valid'].update({f'best_{k}': v for k, v in best_metrics.items()}) + return parts + + +class GenerationEvalExplorer(BaseExplorer): + eval_metrics: tp.List[str] = [] + + def stages(self) -> tp.List[str]: + return ['evaluate'] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table.""" + return [ + tt.group( + 'evaluate', + [ + tt.leaf('epoch', '.3f'), + tt.leaf('duration', '.1f'), + tt.leaf('ping'), + tt.leaf('ce', '.4f'), + tt.leaf('ppl', '.3f'), + tt.leaf('fad', '.3f'), + tt.leaf('kld', '.3f'), + tt.leaf('text_consistency', '.3f'), + tt.leaf('chroma_cosine', '.3f'), + ], + align='>', + ), + ] diff --git a/audiocraft/grids/musicgen/musicgen_base_32khz.py b/audiocraft/grids/musicgen/musicgen_base_32khz.py new file mode 100644 index 0000000..4e36461 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_base_32khz.py @@ -0,0 +1,43 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='musicgen/musicgen_base_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + large = {'model/lm/model_scale': 'large'} + + cfg_low = {'classifier_free_guidance.training_dropout': 0.2} + wd_low = {'conditioners.description.t5.word_dropout': 0.2} + + adam = {'optim.optimizer': 'adamw', 'optim.lr': 1e-4} + + launcher.bind_(fsdp) + + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + sub = launcher.bind() + sub() + + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(medium, adam) + + launcher.slurm_(gpus=96).bind_(label='96gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(large, cfg_low, wd_low, adam, {'optim.max_norm': 3}) diff --git a/audiocraft/grids/musicgen/musicgen_base_cached_32khz.py b/audiocraft/grids/musicgen/musicgen_base_cached_32khz.py new file mode 100644 index 0000000..d9a43f3 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_base_cached_32khz.py @@ -0,0 +1,67 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='musicgen/musicgen_base_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + large = {'model/lm/model_scale': 'large'} + + cfg_low = {'classifier_free_guidance.training_dropout': 0.2} + wd_low = {'conditioners.description.t5.word_dropout': 0.2} + + adam = {'optim.optimizer': 'adamw', 'optim.lr': 1e-4} + + # BEGINNING OF CACHE WRITING JOBS. + cache_write = { + 'cache.path': '/fsx-codegen/defossez/cache/interleave_stereo_nv_32k', + 'cache.write': True, + 'generate.every': 500, + 'evaluate.every': 500, + 'logging.log_updates': 50, + } + + cache_sub = launcher.bind({'model/lm/model_scale': 'xsmall', 'conditioner': 'none'}) + cache_sub.bind_({'deadlock.use': True}) + cache_sub.slurm_(gpus=8) + with launcher.job_array(): + num_shards = 10 # total number of jobs running in parallel. + for shard in range(0, num_shards): + launcher(cache_write, {'cache.write_num_shards': num_shards, 'cache.write_shard': shard}) + + # REMOVE THE FOLLOWING RETURN STATEMENT ONCE THE ABOVE JOBS ARE DONE, + # OR SUFFICIENTLY AHEAD. + return + + cache = { + 'cache.path': '/fsx-codegen/defossez/cache/interleave_stereo_nv_32k', + } + launcher.bind_(fsdp, cache) + + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + sub = launcher.bind() + sub() + + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(medium, adam) + + launcher.slurm_(gpus=96).bind_(label='96gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(large, cfg_low, wd_low, adam, {'optim.max_norm': 3}) diff --git a/audiocraft/grids/musicgen/musicgen_clapemb_32khz.py b/audiocraft/grids/musicgen/musicgen_clapemb_32khz.py new file mode 100644 index 0000000..64ad3f8 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_clapemb_32khz.py @@ -0,0 +1,32 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='musicgen/musicgen_base_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + launcher.bind_(conditioner='clapemb2music') + + fsdp = {'autocast': False, 'fsdp.use': True} + cache_path = {'conditioners.description.clap.cache_path': + '/fsx-audio-craft-llm/jadecopet/experiments/audiocraft/caches/clap_embed_music'} + text_wav_training_opt = {'conditioners.description.clap.text_p': 0.5} + + launcher.bind_(fsdp) + + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + launcher() + launcher(text_wav_training_opt) + launcher(cache_path) + launcher(cache_path, text_wav_training_opt) diff --git a/audiocraft/grids/musicgen/musicgen_melody_32khz.py b/audiocraft/grids/musicgen/musicgen_melody_32khz.py new file mode 100644 index 0000000..b0d6710 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_melody_32khz.py @@ -0,0 +1,65 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='musicgen/musicgen_melody_32khz') + # replace this by the desired music dataset + launcher.bind_(dset='internal/music_400k_32khz') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + large = {'model/lm/model_scale': 'large'} + + cfg_low = {'classifier_free_guidance.training_dropout': 0.2} + wd_low = {'conditioners.description.t5.word_dropout': 0.2} + + adam = {'optim.optimizer': 'adamw', 'optim.lr': 1e-4} + + cache_path = {'conditioners.self_wav.chroma_stem.cache_path': + '/fsx-audio-craft-llm/jadecopet/experiments/audiocraft/caches/chroma_stem'} + + # CACHE GENERATION JOBS + n_cache_gen_jobs = 4 + gen_sub = launcher.slurm(gpus=1) + gen_sub.bind_( + cache_path, { + # the cache is always computed over the whole file, so duration doesn't matter here. + 'dataset.segment_duration': 2., + 'dataset.batch_size': 8, + 'dataset.train.permutation_on_files': True, # try to not repeat files. + 'optim.epochs': 10, + 'model/lm/model_scale': 'xsmall', + + }) + with gen_sub.job_array(): + for gen_job in range(n_cache_gen_jobs): + gen_sub({'dataset.train.shuffle_seed': gen_job}) + + # ACTUAL TRAINING JOBS. + launcher.bind_(fsdp) + + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + sub = launcher.bind() + sub() + sub(cache_path) + + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(medium, adam) + + launcher.slurm_(gpus=96).bind_(label='96gpus') + with launcher.job_array(): + sub = launcher.bind() + sub(large, cfg_low, wd_low, adam, {'optim.max_norm': 3}) diff --git a/audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py b/audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py new file mode 100644 index 0000000..39ceaf7 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py @@ -0,0 +1,99 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Evaluation with objective metrics for the pretrained MusicGen models. +This grid takes signature from the training grid and runs evaluation-only stage. + +When running the grid for the first time, please use: +REGEN=1 dora grid musicgen.musicgen_pretrained_32khz_eval +and re-use the REGEN=1 option when the grid is changed to force regenerating it. + +Note that you need the proper metrics external libraries setup to use all +the objective metrics activated in this grid. Refer to the README for more information. +""" + +import os + +from ._explorers import GenerationEvalExplorer +from ...environment import AudioCraftEnvironment +from ... import train + + +def eval(launcher, batch_size: int = 32, eval_melody: bool = False): + opts = { + 'dset': 'audio/musiccaps_32khz', + 'solver/musicgen/evaluation': 'objective_eval', + 'execute_only': 'evaluate', + '+dataset.evaluate.batch_size': batch_size, + '+metrics.fad.tf.batch_size': 16, + } + # chroma-specific evaluation + chroma_opts = { + 'dset': 'internal/music_400k_32khz', + 'dataset.evaluate.segment_duration': 30, + 'dataset.evaluate.num_samples': 1000, + 'evaluate.metrics.chroma_cosine': True, + 'evaluate.metrics.fad': False, + 'evaluate.metrics.kld': False, + 'evaluate.metrics.text_consistency': False, + } + # binary for FAD computation: replace this path with your own path + metrics_opts = { + 'metrics.fad.tf.bin': '/data/home/jadecopet/local/usr/opt/google-research' + } + opt1 = {'generate.lm.use_sampling': True, 'generate.lm.top_k': 250, 'generate.lm.top_p': 0.} + opt2 = {'transformer_lm.two_step_cfg': True} + + sub = launcher.bind(opts) + sub.bind_(metrics_opts) + + # base objective metrics + sub(opt1, opt2) + + if eval_melody: + # chroma-specific metrics + sub(opt1, opt2, chroma_opts) + + +@GenerationEvalExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=4, partition=partitions) + + if 'REGEN' not in os.environ: + folder = train.main.dora.dir / 'grids' / __name__.split('.', 2)[-1] + with launcher.job_array(): + for sig in folder.iterdir(): + if not sig.is_symlink(): + continue + xp = train.main.get_xp_from_sig(sig.name) + launcher(xp.argv) + return + + with launcher.job_array(): + musicgen_base = launcher.bind(solver="musicgen/musicgen_base_32khz") + musicgen_base.bind_({'autocast': False, 'fsdp.use': True}) + + # base musicgen models + musicgen_base_small = musicgen_base.bind({'continue_from': '//pretrained/facebook/musicgen-small'}) + eval(musicgen_base_small, batch_size=128) + + musicgen_base_medium = musicgen_base.bind({'continue_from': '//pretrained/facebook/musicgen-medium'}) + musicgen_base_medium.bind_({'model/lm/model_scale': 'medium'}) + eval(musicgen_base_medium, batch_size=128) + + musicgen_base_large = musicgen_base.bind({'continue_from': '//pretrained/facebook/musicgen-large'}) + musicgen_base_large.bind_({'model/lm/model_scale': 'large'}) + eval(musicgen_base_large, batch_size=128) + + # melody musicgen model + musicgen_melody = launcher.bind(solver="musicgen/musicgen_melody_32khz") + musicgen_melody.bind_({'autocast': False, 'fsdp.use': True}) + + musicgen_melody_medium = musicgen_melody.bind({'continue_from': '//pretrained/facebook/musicgen-melody'}) + musicgen_melody_medium.bind_({'model/lm/model_scale': 'medium'}) + eval(musicgen_melody_medium, batch_size=128, eval_melody=True) diff --git a/audiocraft/grids/musicgen/musicgen_stereo_finetune_32khz.py b/audiocraft/grids/musicgen/musicgen_stereo_finetune_32khz.py new file mode 100644 index 0000000..2904e73 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_stereo_finetune_32khz.py @@ -0,0 +1,57 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from pathlib import Path +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=32, partition=partitions) + launcher.bind_(solver='musicgen/musicgen_base_32khz') + # replace this by the desired music dataset, which needs to be stereo + launcher.bind_(dset='audio/example') + + fsdp = {'autocast': False, 'fsdp.use': True} + medium = {'model/lm/model_scale': 'medium'} + large = {'model/lm/model_scale': 'large'} + + cfg_low = {'classifier_free_guidance.training_dropout': 0.2} + wd_low = {'conditioners.description.t5.word_dropout': 0.2} + + adam = {'optim.optimizer': 'adamw', 'optim.lr': 1e-4} + + stereo = { + 'codebooks_pattern.delay.delays': [0, 0, 1, 1, 2, 2, 3, 3], + 'transformer_lm.n_q': 8, + 'interleave_stereo_codebooks.use': True, + 'channels': 2, + } + + # You must follow the instructions in docs/MUSICGEN.md about the creation + # of the proper fine tuning checkpoints. We will assume they are stored under + # ~/checkpoints/{mode_name}. + + checkpoints = Path.home() / 'checkpoints' + + launcher.bind_(fsdp, stereo, {'optim.epochs': 100}) + + launcher.slurm_(gpus=32).bind_(label='32gpus') + with launcher.job_array(): + sub = launcher.bind({'continue_from': str(checkpoints / 'stereo_finetune_musicgen-small.th')}) + sub() + + launcher.slurm_(gpus=64).bind_(label='64gpus') + with launcher.job_array(): + sub = launcher.bind({'continue_from': str(checkpoints / 'stereo_finetune_musicgen-medium.th')}) + sub(medium, adam) + + launcher.slurm_(gpus=96).bind_(label='96gpus') + with launcher.job_array(): + sub = launcher.bind({'continue_from': str(checkpoints / 'stereo_finetune_musicgen-large.th')}) + sub(large, cfg_low, wd_low, adam, {'optim.max_norm': 3}) diff --git a/audiocraft/grids/musicgen/musicgen_style_32khz.py b/audiocraft/grids/musicgen/musicgen_style_32khz.py new file mode 100644 index 0000000..a8a5cb1 --- /dev/null +++ b/audiocraft/grids/musicgen/musicgen_style_32khz.py @@ -0,0 +1,25 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +from ._explorers import LMExplorer +from ...environment import AudioCraftEnvironment + + +@LMExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_(gpus=64, partition=partitions, constraint='volta32gb').bind_(label='64gpus') + launcher.bind_(dset='internal/music_400k_32khz') + + sub = launcher.bind_({'solver': 'musicgen/musicgen_style_32khz', + 'autocast': False, + 'fsdp.use': True, + 'model/lm/model_scale': 'medium', + 'optim.optimizer': 'adamw', + 'optim.lr': 1e-4, + 'generate.every': 25, + 'dataset.generate.num_samples': 64, + }) + sub() diff --git a/audiocraft/grids/watermarking/__init__.py b/audiocraft/grids/watermarking/__init__.py new file mode 100644 index 0000000..d930fec --- /dev/null +++ b/audiocraft/grids/watermarking/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""watermarking grids.""" diff --git a/audiocraft/grids/watermarking/_explorers.py b/audiocraft/grids/watermarking/_explorers.py new file mode 100644 index 0000000..7dd0b78 --- /dev/null +++ b/audiocraft/grids/watermarking/_explorers.py @@ -0,0 +1,115 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import treetable as tt + +from .._base_explorers import BaseExplorer + + +class WatermarkingMbExplorer(BaseExplorer): + eval_metrics = ["acc", "bit_acc", "visqol", "fnr", "fpr", "sisnr"] + + def stages(self): + return ["train", "valid", "valid_ema", "evaluate", "evaluate_ema"] + + def get_grid_meta(self): + """Returns the list of Meta information to display for each XP/job.""" + return [ + tt.leaf("index", align=">"), + tt.leaf("name", wrap=140), + tt.leaf("state"), + tt.leaf("sig", align=">"), + ] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table.""" + return [ + tt.group( + "train", + [ + tt.leaf("epoch"), + tt.leaf("sisnr", ".3%"), + tt.leaf("wm_detection_identity", ".3%"), + tt.leaf("wm_mb_identity", ".3%"), + ], + align=">", + ), + tt.group( + "valid", + [ + tt.leaf("sisnr", ".3%"), + tt.leaf("wm_detection_identity", ".3%"), + tt.leaf("wm_mb_identity", ".3%"), + # tt.leaf("loss_0", ".3%"), + ], + align=">", + ), + tt.group( + "evaluate", + [ + tt.leaf("aug_identity_acc", ".4f"), + tt.leaf("aug_identity_fnr", ".4f"), + tt.leaf("aug_identity_fpr", ".4f"), + tt.leaf("aug_identity_bit_acc", ".4f"), + tt.leaf("pesq", ".4f"), + tt.leaf("all_aug_acc", ".4f"), + tt.leaf("localization_acc_padding", ".4f"), + ], + align=">", + ), + ] + + +class WatermarkingExplorer(BaseExplorer): + eval_metrics = ["acc", "visqol", "fnr", "fpr", "sisnr"] + + def stages(self): + return ["train", "valid", "valid_ema", "evaluate", "evaluate_ema"] + + def get_grid_meta(self): + """Returns the list of Meta information to display for each XP/job.""" + return [ + tt.leaf("index", align=">"), + tt.leaf("name", wrap=140), + tt.leaf("state"), + tt.leaf("sig", align=">"), + ] + + def get_grid_metrics(self): + """Return the metrics that should be displayed in the tracking table.""" + return [ + tt.group( + "train", + [ + tt.leaf("epoch"), + tt.leaf("sisnr", ".3f"), + tt.leaf("wm_detection_identity"), + ], + align=">", + ), + tt.group( + "valid", + [ + tt.leaf("sisnr", ".3f"), + tt.leaf("wm_detection_identity"), + # tt.leaf("loss_0", ".3%"), + ], + align=">", + ), + tt.group( + "evaluate", + [ + tt.leaf("aug_identity_acc", ".4f"), + tt.leaf("aug_identity_fnr", ".4f"), + tt.leaf("aug_identity_fpr", ".4f"), + tt.leaf("pesq", ".4f"), + tt.leaf("all_aug_acc", ".4f"), + tt.leaf("localization_acc_padding", ".4f"), + + ], + align=">", + ), + ] diff --git a/audiocraft/grids/watermarking/audioseal.py b/audiocraft/grids/watermarking/audioseal.py new file mode 100644 index 0000000..84fd86e --- /dev/null +++ b/audiocraft/grids/watermarking/audioseal.py @@ -0,0 +1,31 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# +""" +dora grid watermarking.audioseal --clear +""" +from audiocraft.environment import AudioCraftEnvironment +from ._explorers import WatermarkingExplorer + + +@WatermarkingExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_( + gpus=8, + partition=partitions, + constraint="volta32gb", + ) + launcher.bind_( + { + "solver": "watermark/robustness", + "dset": "audio/example", + } + ) + launcher.bind_(label="audioseal") + + with launcher.job_array(): + launcher() diff --git a/audiocraft/grids/watermarking/kbits.py b/audiocraft/grids/watermarking/kbits.py new file mode 100644 index 0000000..b86bf89 --- /dev/null +++ b/audiocraft/grids/watermarking/kbits.py @@ -0,0 +1,91 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +dora grid watermarking.kbits --clear +""" +import os +from audiocraft.environment import AudioCraftEnvironment +from ._explorers import WatermarkingMbExplorer + + +@WatermarkingMbExplorer +def explorer(launcher): + partitions = AudioCraftEnvironment.get_slurm_partitions(['team', 'global']) + launcher.slurm_( + gpus=8, + partition=partitions, + constraint="volta32gb", + ) + launcher.bind_( + { + "solver": "watermark/robustness", + "dset": os.getenv("AUDIOCRAFT_DSET", "audio/example"), + "dataset.batch_size": 16, + # optim + "optim.epochs": 300, + "schedule": { + "lr_scheduler": "cosine", + "cosine": { + "warmup": 4000, + "lr_min_ratio": 0.0, + "cycle_length": 1.0, + }, + }, + # crop and padding + "crop": { + "prob": 0.4, + "shuffle_prob": 0.2, + "pad_prob": 0.2, + "size": 0.5, + "max_n_windows": 5, + }, + # augmentations + "select_aug_mode": 'use_eval', + "aug_weights.updownresample": 0.1, + "aug_weights.speed": 0.1, + "aug_weights.echo": 0.1, + "aug_weights.pink_noise": 0.1, + "aug_weights.lowpass_filter": 0.1, + "aug_weights.highpass_filter": 0.1, + "aug_weights.bandpass_filter": 0.1, + "aug_weights.smooth": 0.1, + "aug_weights.boost_audio": 0.1, + "aug_weights.duck_audio": 0.1, + "aug_weights.mp3_compression": 0.1, + "aug_weights.encodec": 0.1, + "aug_weights.identity": 1.0, + # multi-bit + "audioseal.nbits": 16, + "detector.output_dim": 32, + "wm_mb.loss_type": "bce", + "wm_mb.temperature": 0.1, + # losses + "losses": { # encodec loss + tf = 10 + "adv": 4.0, + "feat": 4.0, + "l1": 0.1, + "mel": 0.0, + "msspec": 2.0, + "sisnr": 0.0, + "tf_loudnessratio": 10.0, + }, + "losses.wm_detection": 1.0, + "losses.wm_mb": 1.0, + } + ) + launcher.bind_(label="kbits16") + + lrs = [5e-5] + seeds = [1, 2, 3, 4] + + with launcher.job_array(): + for lr in lrs: + for seed in seeds: + launcher({ + "optim.lr": lr, + "seed": seed, + }) diff --git a/audiocraft/losses/__init__.py b/audiocraft/losses/__init__.py new file mode 100644 index 0000000..272d6bd --- /dev/null +++ b/audiocraft/losses/__init__.py @@ -0,0 +1,28 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Loss related classes and functions. In particular the loss balancer from +EnCodec, and the usual spectral losses.""" + +# flake8: noqa +from .balancer import Balancer +from .sisnr import SISNR +from .stftloss import ( + LogSTFTMagnitudeLoss, + MRSTFTLoss, + SpectralConvergenceLoss, + STFTLoss +) +from .specloss import ( + MelSpectrogramL1Loss, + MultiScaleMelSpectrogramLoss, +) + +from .wmloss import ( + WMDetectionLoss, + WMMbLoss +) + +from .loudnessloss import TFLoudnessRatio diff --git a/audiocraft/losses/balancer.py b/audiocraft/losses/balancer.py new file mode 100644 index 0000000..8a0ac8a --- /dev/null +++ b/audiocraft/losses/balancer.py @@ -0,0 +1,136 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import flashy +import torch +from torch import autograd + + +class Balancer: + """Loss balancer. + + The loss balancer combines losses together to compute gradients for the backward. + Given `y = f(...)`, and a number of losses `l1(y, ...)`, `l2(y, ...)`, with `...` + not having any dependence on `f`, the balancer can efficiently normalize the partial gradients + `d l1 / d y`, `d l2 / dy` before summing them in order to achieve a desired ratio between + the losses. For instance if `weights = {'l1': 2, 'l2': 1}`, 66% of the gradient + going into `f(...)` will come from `l1` on average, and 33% from `l2`. This allows for an easy + interpration of the weights even if the intrisic scale of `l1`, `l2` ... is unknown. + + Noting `g1 = d l1 / dy`, etc., the balanced gradient `G` will be + (with `avg` an exponential moving average over the updates), + + G = sum_i total_norm * g_i / avg(||g_i||) * w_i / sum(w_i) + + If `balance_grads` is False, this is deactivated, and instead the gradient will just be the + standard sum of the partial gradients with the given weights. + + A call to the backward method of the balancer will compute the the partial gradients, + combining all the losses and potentially rescaling the gradients, + which can help stabilize the training and reason about multiple losses with varying scales. + The obtained gradient with respect to `y` is then back-propagated to `f(...)`. + + Expected usage: + + weights = {'loss_a': 1, 'loss_b': 4} + balancer = Balancer(weights, ...) + losses: dict = {} + losses['loss_a'] = compute_loss_a(x, y) + losses['loss_b'] = compute_loss_b(x, y) + if model.training(): + effective_loss = balancer.backward(losses, x) + + Args: + weights (dict[str, float]): Weight coefficient for each loss. The balancer expect the losses keys + from the backward method to match the weights keys to assign weight to each of the provided loss. + balance_grads (bool): Whether to rescale gradients so that weights reflect the fraction of the + overall gradient, rather than a constant multiplier. + total_norm (float): Reference norm when rescaling gradients, ignored otherwise. + emay_decay (float): EMA decay for averaging the norms. + per_batch_item (bool): Whether to compute the averaged norm per batch item or not. This only holds + when rescaling the gradients. + epsilon (float): Epsilon value for numerical stability. + monitor (bool): If True, stores in `self.metrics` the relative ratio between the norm of the gradients + coming from each loss, when calling `backward()`. + """ + def __init__(self, weights: tp.Dict[str, float], balance_grads: bool = True, total_norm: float = 1., + ema_decay: float = 0.999, per_batch_item: bool = True, epsilon: float = 1e-12, + monitor: bool = False): + self.weights = weights + self.per_batch_item = per_batch_item + self.total_norm = total_norm or 1. + self.averager = flashy.averager(ema_decay or 1.) + self.epsilon = epsilon + self.monitor = monitor + self.balance_grads = balance_grads + self._metrics: tp.Dict[str, tp.Any] = {} + + @property + def metrics(self): + return self._metrics + + def backward(self, losses: tp.Dict[str, torch.Tensor], input: torch.Tensor) -> torch.Tensor: + """Compute the backward and return the effective train loss, e.g. the loss obtained from + computing the effective weights. If `balance_grads` is True, the effective weights + are the one that needs to be applied to each gradient to respect the desired relative + scale of gradients coming from each loss. + + Args: + losses (Dict[str, torch.Tensor]): dictionary with the same keys as `self.weights`. + input (torch.Tensor): the input of the losses, typically the output of the model. + This should be the single point of dependence between the losses + and the model being trained. + """ + norms = {} + grads = {} + for name, loss in losses.items(): + # Compute partial derivative of the less with respect to the input. + grad, = autograd.grad(loss, [input], retain_graph=True) + if self.per_batch_item: + # We do not average the gradient over the batch dimension. + dims = tuple(range(1, grad.dim())) + norm = grad.norm(dim=dims, p=2).mean() + else: + norm = grad.norm(p=2) + norms[name] = norm + grads[name] = grad + + count = 1 + if self.per_batch_item: + count = len(grad) + # Average norms across workers. Theoretically we should average the + # squared norm, then take the sqrt, but it worked fine like that. + avg_norms = flashy.distrib.average_metrics(self.averager(norms), count) + # We approximate the total norm of the gradient as the sums of the norms. + # Obviously this can be very incorrect if all gradients are aligned, but it works fine. + total = sum(avg_norms.values()) + + self._metrics = {} + if self.monitor: + # Store the ratio of the total gradient represented by each loss. + for k, v in avg_norms.items(): + self._metrics[f'ratio_{k}'] = v / total + + total_weights = sum([self.weights[k] for k in avg_norms]) + assert total_weights > 0. + desired_ratios = {k: w / total_weights for k, w in self.weights.items()} + + out_grad = torch.zeros_like(input) + effective_loss = torch.tensor(0., device=input.device, dtype=input.dtype) + for name, avg_norm in avg_norms.items(): + if self.balance_grads: + # g_balanced = g / avg(||g||) * total_norm * desired_ratio + scale = desired_ratios[name] * self.total_norm / (self.epsilon + avg_norm) + else: + # We just do regular weighted sum of the gradients. + scale = self.weights[name] + out_grad.add_(grads[name], alpha=scale) + effective_loss += scale * losses[name].detach() + # Send the computed partial derivative with respect to the output of the model to the model. + input.backward(out_grad) + return effective_loss diff --git a/audiocraft/losses/loudnessloss.py b/audiocraft/losses/loudnessloss.py new file mode 100644 index 0000000..c180387 --- /dev/null +++ b/audiocraft/losses/loudnessloss.py @@ -0,0 +1,204 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math +import typing as tp + +import julius +import torch +import torchaudio +from torch import nn +from torch.nn import functional as F +from torchaudio.functional.filtering import highpass_biquad, treble_biquad + + +def basic_loudness(waveform: torch.Tensor, sample_rate: int) -> torch.Tensor: + """This is a simpler loudness function that is more stable. + Args: + waveform(torch.Tensor): audio waveform of dimension `(..., channels, time)` + sample_rate (int): sampling rate of the waveform + Returns: + loudness loss as a scalar + """ + + if waveform.size(-2) > 5: + raise ValueError("Only up to 5 channels are supported.") + eps = torch.finfo(torch.float32).eps + gate_duration = 0.4 + overlap = 0.75 + gate_samples = int(round(gate_duration * sample_rate)) + step = int(round(gate_samples * (1 - overlap))) + + # Apply K-weighting + waveform = treble_biquad(waveform, sample_rate, 4.0, 1500.0, 1 / math.sqrt(2)) + waveform = highpass_biquad(waveform, sample_rate, 38.0, 0.5) + + # Compute the energy for each block + energy = torch.square(waveform).unfold(-1, gate_samples, step) + energy = torch.mean(energy, dim=-1) + + # Compute channel-weighted summation + g = torch.tensor([1.0, 1.0, 1.0, 1.41, 1.41], dtype=waveform.dtype, device=waveform.device) + g = g[: energy.size(-2)] + + energy_weighted = torch.sum(g.unsqueeze(-1) * energy, dim=-2) + # loudness with epsilon for stability. Not as much precision in the very low loudness sections + loudness = -0.691 + 10 * torch.log10(energy_weighted + eps) + return loudness + + +def _unfold(a: torch.Tensor, kernel_size: int, stride: int) -> torch.Tensor: + """Given input of size [*OT, T], output Tensor of size [*OT, F, K] + with K the kernel size, by extracting frames with the given stride. + This will pad the input so that `F = ceil(T / K)`. + see https://github.com/pytorch/pytorch/issues/60466 + """ + *shape, length = a.shape + n_frames = math.ceil(length / stride) + tgt_length = (n_frames - 1) * stride + kernel_size + a = F.pad(a, (0, tgt_length - length)) + strides = list(a.stride()) + assert strides[-1] == 1, "data should be contiguous" + strides = strides[:-1] + [stride, 1] + return a.as_strided([*shape, n_frames, kernel_size], strides) + + +class FLoudnessRatio(nn.Module): + """FSNR loss. + + Input should be [B, C, T], output is scalar. + + Args: + sample_rate (int): Sample rate. + segment (float or None): Evaluate on chunks of that many seconds. If None, evaluate on + entire audio only. + overlap (float): Overlap between chunks, i.e. 0.5 = 50 % overlap. + epsilon (float): Epsilon value for numerical stability. + n_bands (int): number of mel scale bands that we include + """ + def __init__( + self, + sample_rate: int = 16000, + segment: tp.Optional[float] = 20, + overlap: float = 0.5, + epsilon: float = torch.finfo(torch.float32).eps, + n_bands: int = 0, + ): + super().__init__() + self.sample_rate = sample_rate + self.segment = segment + self.overlap = overlap + self.epsilon = epsilon + if n_bands == 0: + self.filter = None + else: + self.filter = julius.SplitBands(sample_rate=sample_rate, n_bands=n_bands) + self.loudness = torchaudio.transforms.Loudness(sample_rate) + + def forward(self, out_sig: torch.Tensor, ref_sig: torch.Tensor) -> torch.Tensor: + B, C, T = ref_sig.shape + assert ref_sig.shape == out_sig.shape + assert self.filter is not None + bands_ref = self.filter(ref_sig) + bands_out = self.filter(out_sig) + l_noise = self.loudness(bands_ref - bands_out) + l_ref = self.loudness(bands_ref) + l_ratio = (l_noise - l_ref).view(-1, B) + loss = torch.nn.functional.softmax(l_ratio, dim=0) * l_ratio + return loss.sum() + + +class TLoudnessRatio(nn.Module): + """TSNR loss. + + Input should be [B, C, T], output is scalar. + + Args: + sample_rate (int): Sample rate. + segment (float or None): Evaluate on chunks of that many seconds. If None, evaluate on + entire audio only. + overlap (float): Overlap between chunks, i.e. 0.5 = 50 % overlap. + """ + def __init__( + self, + sample_rate: int = 16000, + segment: float = 0.5, + overlap: float = 0.5, + ): + super().__init__() + self.sample_rate = sample_rate + self.segment = segment + self.overlap = overlap + self.loudness = torchaudio.transforms.Loudness(sample_rate) + + def forward(self, out_sig: torch.Tensor, ref_sig: torch.Tensor) -> torch.Tensor: + B, C, T = ref_sig.shape + assert ref_sig.shape == out_sig.shape + assert C == 1 + + frame = int(self.segment * self.sample_rate) + stride = int(frame * (1 - self.overlap)) + gt = _unfold(ref_sig, frame, stride).view(-1, 1, frame) + est = _unfold(out_sig, frame, stride).view(-1, 1, frame) + l_noise = self.loudness(gt - est) # watermark + l_ref = self.loudness(gt) # ground truth + l_ratio = (l_noise - l_ref).view(-1, B) + loss = torch.nn.functional.softmax(l_ratio, dim=0) * l_ratio + return loss.sum() + + +class TFLoudnessRatio(nn.Module): + """TF-loudness ratio loss. + + Input should be [B, C, T], output is scalar. + + Args: + sample_rate (int): Sample rate. + segment (float or None): Evaluate on chunks of that many seconds. If None, evaluate on + entire audio only. + overlap (float): Overlap between chunks, i.e. 0.5 = 50 % overlap. + n_bands (int): number of bands to separate + temperature (float): temperature of the softmax step + """ + def __init__( + self, + sample_rate: int = 16000, + segment: float = 0.5, + overlap: float = 0.5, + n_bands: int = 0, + clip_min: float = -100, + temperature: float = 1.0, + ): + super().__init__() + self.sample_rate = sample_rate + self.segment = segment + self.overlap = overlap + self.clip_min = clip_min + self.temperature = temperature + if n_bands == 0: + self.filter = None + else: + self.n_bands = n_bands + self.filter = julius.SplitBands(sample_rate=sample_rate, n_bands=n_bands) + + def forward(self, out_sig: torch.Tensor, ref_sig: torch.Tensor) -> torch.Tensor: + B, C, T = ref_sig.shape + + assert ref_sig.shape == out_sig.shape + assert C == 1 + assert self.filter is not None + + bands_ref = self.filter(ref_sig).view(B * self.n_bands, 1, -1) + bands_out = self.filter(out_sig).view(B * self.n_bands, 1, -1) + frame = int(self.segment * self.sample_rate) + stride = int(frame * (1 - self.overlap)) + gt = _unfold(bands_ref, frame, stride).squeeze(1).contiguous().view(-1, 1, frame) + est = _unfold(bands_out, frame, stride).squeeze(1).contiguous().view(-1, 1, frame) + l_noise = basic_loudness(est - gt, sample_rate=self.sample_rate) # watermark + l_ref = basic_loudness(gt, sample_rate=self.sample_rate) # ground truth + l_ratio = (l_noise - l_ref).view(-1, B) + loss = torch.nn.functional.softmax(l_ratio / self.temperature, dim=0) * l_ratio + return loss.mean() diff --git a/audiocraft/losses/sisnr.py b/audiocraft/losses/sisnr.py new file mode 100644 index 0000000..a1b8ee0 --- /dev/null +++ b/audiocraft/losses/sisnr.py @@ -0,0 +1,97 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math +import typing as tp + +import torch +from torch import nn +from torch.nn import functional as F + + +def _unfold(a: torch.Tensor, kernel_size: int, stride: int) -> torch.Tensor: + """Given input of size [*OT, T], output Tensor of size [*OT, F, K] + with K the kernel size, by extracting frames with the given stride. + This will pad the input so that `F = ceil(T / K)`. + see https://github.com/pytorch/pytorch/issues/60466 + """ + *shape, length = a.shape + n_frames = math.ceil(length / stride) + tgt_length = (n_frames - 1) * stride + kernel_size + a = F.pad(a, (0, tgt_length - length)) + strides = list(a.stride()) + assert strides[-1] == 1, "data should be contiguous" + strides = strides[:-1] + [stride, 1] + return a.as_strided([*shape, n_frames, kernel_size], strides) + + +def _center(x: torch.Tensor) -> torch.Tensor: + return x - x.mean(-1, True) + + +def _norm2(x: torch.Tensor) -> torch.Tensor: + return x.pow(2).sum(-1, True) + + +class SISNR(nn.Module): + """SISNR loss. + + Input should be [B, C, T], output is scalar. + + ..Warning:: This function returns the opposite of the SI-SNR (e.g. `-1 * regular_SI_SNR`). + Consequently, lower scores are better in terms of reconstruction quality, + in particular, it should be negative if training goes well. This done this way so + that this module can also be used as a loss function for training model. + + Args: + sample_rate (int): Sample rate. + segment (float or None): Evaluate on chunks of that many seconds. If None, evaluate on + entire audio only. + overlap (float): Overlap between chunks, i.e. 0.5 = 50 % overlap. + epsilon (float): Epsilon value for numerical stability. + """ + def __init__( + self, + sample_rate: int = 16000, + segment: tp.Optional[float] = 20, + overlap: float = 0.5, + epsilon: float = torch.finfo(torch.float32).eps, + ): + super().__init__() + self.sample_rate = sample_rate + self.segment = segment + self.overlap = overlap + self.epsilon = epsilon + + def forward(self, out_sig: torch.Tensor, ref_sig: torch.Tensor) -> torch.Tensor: + B, C, T = ref_sig.shape + assert ref_sig.shape == out_sig.shape + + if self.segment is None: + frame = T + stride = T + else: + frame = int(self.segment * self.sample_rate) + stride = int(frame * (1 - self.overlap)) + + epsilon = self.epsilon * frame # make epsilon prop to frame size. + + gt = _unfold(ref_sig, frame, stride) + est = _unfold(out_sig, frame, stride) + if self.segment is None: + assert gt.shape[-1] == 1 + + gt = _center(gt) + est = _center(est) + dot = torch.einsum("bcft,bcft->bcf", gt, est) + + proj = dot[:, :, :, None] * gt / (epsilon + _norm2(gt)) + noise = est - proj + + sisnr = 10 * ( + torch.log10(epsilon + _norm2(proj)) - torch.log10(epsilon + _norm2(noise)) + ) + return -1 * sisnr[..., 0].mean() diff --git a/audiocraft/losses/specloss.py b/audiocraft/losses/specloss.py new file mode 100644 index 0000000..11f2eb3 --- /dev/null +++ b/audiocraft/losses/specloss.py @@ -0,0 +1,149 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import numpy as np +from torchaudio.transforms import MelSpectrogram +import torch +from torch import nn +from torch.nn import functional as F + +from ..modules import pad_for_conv1d + + +class MelSpectrogramWrapper(nn.Module): + """Wrapper around MelSpectrogram torchaudio transform providing proper padding + and additional post-processing including log scaling. + + Args: + n_mels (int): Number of mel bins. + n_fft (int): Number of fft. + hop_length (int): Hop size. + win_length (int): Window length. + n_mels (int): Number of mel bins. + sample_rate (int): Sample rate. + f_min (float or None): Minimum frequency. + f_max (float or None): Maximum frequency. + log (bool): Whether to scale with log. + normalized (bool): Whether to normalize the melspectrogram. + floor_level (float): Floor level based on human perception (default=1e-5). + """ + def __init__(self, n_fft: int = 1024, hop_length: int = 256, win_length: tp.Optional[int] = None, + n_mels: int = 80, sample_rate: float = 22050, f_min: float = 0.0, f_max: tp.Optional[float] = None, + log: bool = True, normalized: bool = False, floor_level: float = 1e-5): + super().__init__() + self.n_fft = n_fft + hop_length = int(hop_length) + self.hop_length = hop_length + self.mel_transform = MelSpectrogram(n_mels=n_mels, sample_rate=sample_rate, n_fft=n_fft, hop_length=hop_length, + win_length=win_length, f_min=f_min, f_max=f_max, normalized=normalized, + window_fn=torch.hann_window, center=False) + self.floor_level = floor_level + self.log = log + + def forward(self, x): + p = int((self.n_fft - self.hop_length) // 2) + if len(x.shape) == 2: + x = x.unsqueeze(1) + x = F.pad(x, (p, p), "reflect") + # Make sure that all the frames are full. + # The combination of `pad_for_conv1d` and the above padding + # will make the output of size ceil(T / hop). + x = pad_for_conv1d(x, self.n_fft, self.hop_length) + self.mel_transform.to(x.device) + mel_spec = self.mel_transform(x) + B, C, freqs, frame = mel_spec.shape + if self.log: + mel_spec = torch.log10(self.floor_level + mel_spec) + return mel_spec.reshape(B, C * freqs, frame) + + +class MelSpectrogramL1Loss(torch.nn.Module): + """L1 Loss on MelSpectrogram. + + Args: + sample_rate (int): Sample rate. + n_fft (int): Number of fft. + hop_length (int): Hop size. + win_length (int): Window length. + n_mels (int): Number of mel bins. + f_min (float or None): Minimum frequency. + f_max (float or None): Maximum frequency. + log (bool): Whether to scale with log. + normalized (bool): Whether to normalize the melspectrogram. + floor_level (float): Floor level value based on human perception (default=1e-5). + """ + def __init__(self, sample_rate: int, n_fft: int = 1024, hop_length: int = 256, win_length: int = 1024, + n_mels: int = 80, f_min: float = 0.0, f_max: tp.Optional[float] = None, + log: bool = True, normalized: bool = False, floor_level: float = 1e-5): + super().__init__() + self.l1 = torch.nn.L1Loss() + self.melspec = MelSpectrogramWrapper(n_fft=n_fft, hop_length=hop_length, win_length=win_length, + n_mels=n_mels, sample_rate=sample_rate, f_min=f_min, f_max=f_max, + log=log, normalized=normalized, floor_level=floor_level) + + def forward(self, x, y): + self.melspec.to(x.device) + s_x = self.melspec(x) + s_y = self.melspec(y) + return self.l1(s_x, s_y) + + +class MultiScaleMelSpectrogramLoss(nn.Module): + """Multi-Scale spectrogram loss (msspec). + + Args: + sample_rate (int): Sample rate. + range_start (int): Power of 2 to use for the first scale. + range_stop (int): Power of 2 to use for the last scale. + n_mels (int): Number of mel bins. + f_min (float): Minimum frequency. + f_max (float or None): Maximum frequency. + normalized (bool): Whether to normalize the melspectrogram. + alphas (bool): Whether to use alphas as coefficients or not. + floor_level (float): Floor level value based on human perception (default=1e-5). + """ + def __init__(self, sample_rate: int, range_start: int = 6, range_end: int = 11, + n_mels: int = 64, f_min: float = 0.0, f_max: tp.Optional[float] = None, + normalized: bool = False, alphas: bool = True, floor_level: float = 1e-5): + super().__init__() + l1s = list() + l2s = list() + self.alphas = list() + self.total = 0 + self.normalized = normalized + for i in range(range_start, range_end): + l1s.append( + MelSpectrogramWrapper(n_fft=2 ** i, hop_length=(2 ** i) / 4, win_length=2 ** i, + n_mels=n_mels, sample_rate=sample_rate, f_min=f_min, f_max=f_max, + log=False, normalized=normalized, floor_level=floor_level)) + l2s.append( + MelSpectrogramWrapper(n_fft=2 ** i, hop_length=(2 ** i) / 4, win_length=2 ** i, + n_mels=n_mels, sample_rate=sample_rate, f_min=f_min, f_max=f_max, + log=True, normalized=normalized, floor_level=floor_level)) + if alphas: + self.alphas.append(np.sqrt(2 ** i - 1)) + else: + self.alphas.append(1) + self.total += self.alphas[-1] + 1 + + self.l1s = nn.ModuleList(l1s) + self.l2s = nn.ModuleList(l2s) + + def forward(self, x, y): + loss = 0.0 + self.l1s.to(x.device) + self.l2s.to(x.device) + for i in range(len(self.alphas)): + s_x_1 = self.l1s[i](x) + s_y_1 = self.l1s[i](y) + s_x_2 = self.l2s[i](x) + s_y_2 = self.l2s[i](y) + loss += F.l1_loss(s_x_1, s_y_1) + self.alphas[i] * F.mse_loss(s_x_2, s_y_2) + if self.normalized: + loss = loss / self.total + return loss diff --git a/audiocraft/losses/stftloss.py b/audiocraft/losses/stftloss.py new file mode 100644 index 0000000..5ad4b7d --- /dev/null +++ b/audiocraft/losses/stftloss.py @@ -0,0 +1,207 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# Adapted from MIT code under the original license +# Copyright 2019 Tomoki Hayashi +# MIT License (https://opensource.org/licenses/MIT) +import typing as tp + +import torch +from torch import nn +from torch.nn import functional as F + + +# TODO: Replace with torchaudio.STFT? +def _stft(x: torch.Tensor, fft_size: int, hop_length: int, win_length: int, + window: tp.Optional[torch.Tensor], normalized: bool) -> torch.Tensor: + """Perform STFT and convert to magnitude spectrogram. + + Args: + x: Input signal tensor (B, C, T). + fft_size (int): FFT size. + hop_length (int): Hop size. + win_length (int): Window length. + window (torch.Tensor or None): Window function type. + normalized (bool): Whether to normalize the STFT or not. + + Returns: + torch.Tensor: Magnitude spectrogram (B, C, #frames, fft_size // 2 + 1). + """ + B, C, T = x.shape + x_stft = torch.stft( + x.view(-1, T), fft_size, hop_length, win_length, window, + normalized=normalized, return_complex=True, + ) + x_stft = x_stft.view(B, C, *x_stft.shape[1:]) + real = x_stft.real + imag = x_stft.imag + + # NOTE(kan-bayashi): clamp is needed to avoid nan or inf + return torch.sqrt(torch.clamp(real ** 2 + imag ** 2, min=1e-7)).transpose(2, 1) + + +class SpectralConvergenceLoss(nn.Module): + """Spectral convergence loss. + """ + def __init__(self, epsilon: float = torch.finfo(torch.float32).eps): + super().__init__() + self.epsilon = epsilon + + def forward(self, x_mag: torch.Tensor, y_mag: torch.Tensor): + """Calculate forward propagation. + + Args: + x_mag: Magnitude spectrogram of predicted signal (B, #frames, #freq_bins). + y_mag: Magnitude spectrogram of groundtruth signal (B, #frames, #freq_bins). + Returns: + torch.Tensor: Spectral convergence loss value. + """ + return torch.norm(y_mag - x_mag, p="fro") / (torch.norm(y_mag, p="fro") + self.epsilon) + + +class LogSTFTMagnitudeLoss(nn.Module): + """Log STFT magnitude loss. + + Args: + epsilon (float): Epsilon value for numerical stability. + """ + def __init__(self, epsilon: float = torch.finfo(torch.float32).eps): + super().__init__() + self.epsilon = epsilon + + def forward(self, x_mag: torch.Tensor, y_mag: torch.Tensor): + """Calculate forward propagation. + + Args: + x_mag (torch.Tensor): Magnitude spectrogram of predicted signal (B, #frames, #freq_bins). + y_mag (torch.Tensor): Magnitude spectrogram of groundtruth signal (B, #frames, #freq_bins). + Returns: + torch.Tensor: Log STFT magnitude loss value. + """ + return F.l1_loss(torch.log(self.epsilon + y_mag), torch.log(self.epsilon + x_mag)) + + +class STFTLosses(nn.Module): + """STFT losses. + + Args: + n_fft (int): Size of FFT. + hop_length (int): Hop length. + win_length (int): Window length. + window (str): Window function type. + normalized (bool): Whether to use normalized STFT or not. + epsilon (float): Epsilon for numerical stability. + """ + def __init__(self, n_fft: int = 1024, hop_length: int = 120, win_length: int = 600, + window: str = "hann_window", normalized: bool = False, + epsilon: float = torch.finfo(torch.float32).eps): + super().__init__() + self.n_fft = n_fft + self.hop_length = hop_length + self.win_length = win_length + self.normalized = normalized + self.register_buffer("window", getattr(torch, window)(win_length)) + self.spectral_convergenge_loss = SpectralConvergenceLoss(epsilon) + self.log_stft_magnitude_loss = LogSTFTMagnitudeLoss(epsilon) + + def forward(self, x: torch.Tensor, y: torch.Tensor) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Calculate forward propagation. + + Args: + x (torch.Tensor): Predicted signal (B, T). + y (torch.Tensor): Groundtruth signal (B, T). + Returns: + torch.Tensor: Spectral convergence loss value. + torch.Tensor: Log STFT magnitude loss value. + """ + x_mag = _stft(x, self.n_fft, self.hop_length, + self.win_length, self.window, self.normalized) # type: ignore + y_mag = _stft(y, self.n_fft, self.hop_length, + self.win_length, self.window, self.normalized) # type: ignore + sc_loss = self.spectral_convergenge_loss(x_mag, y_mag) + mag_loss = self.log_stft_magnitude_loss(x_mag, y_mag) + + return sc_loss, mag_loss + + +class STFTLoss(nn.Module): + """Single Resolution STFT loss. + + Args: + n_fft (int): Nb of FFT. + hop_length (int): Hop length. + win_length (int): Window length. + window (str): Window function type. + normalized (bool): Whether to use normalized STFT or not. + epsilon (float): Epsilon for numerical stability. + factor_sc (float): Coefficient for the spectral loss. + factor_mag (float): Coefficient for the magnitude loss. + """ + def __init__(self, n_fft: int = 1024, hop_length: int = 120, win_length: int = 600, + window: str = "hann_window", normalized: bool = False, + factor_sc: float = 0.1, factor_mag: float = 0.1, + epsilon: float = torch.finfo(torch.float32).eps): + super().__init__() + self.loss = STFTLosses(n_fft, hop_length, win_length, window, normalized, epsilon) + self.factor_sc = factor_sc + self.factor_mag = factor_mag + + def forward(self, x: torch.Tensor, y: torch.Tensor) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Calculate forward propagation. + + Args: + x (torch.Tensor): Predicted signal (B, T). + y (torch.Tensor): Groundtruth signal (B, T). + Returns: + torch.Tensor: Single resolution STFT loss. + """ + sc_loss, mag_loss = self.loss(x, y) + return self.factor_sc * sc_loss + self.factor_mag * mag_loss + + +class MRSTFTLoss(nn.Module): + """Multi resolution STFT loss. + + Args: + n_ffts (Sequence[int]): Sequence of FFT sizes. + hop_lengths (Sequence[int]): Sequence of hop sizes. + win_lengths (Sequence[int]): Sequence of window lengths. + window (str): Window function type. + factor_sc (float): Coefficient for the spectral loss. + factor_mag (float): Coefficient for the magnitude loss. + normalized (bool): Whether to use normalized STFT or not. + epsilon (float): Epsilon for numerical stability. + """ + def __init__(self, n_ffts: tp.Sequence[int] = [1024, 2048, 512], hop_lengths: tp.Sequence[int] = [120, 240, 50], + win_lengths: tp.Sequence[int] = [600, 1200, 240], window: str = "hann_window", + factor_sc: float = 0.1, factor_mag: float = 0.1, + normalized: bool = False, epsilon: float = torch.finfo(torch.float32).eps): + super().__init__() + assert len(n_ffts) == len(hop_lengths) == len(win_lengths) + self.stft_losses = torch.nn.ModuleList() + for fs, ss, wl in zip(n_ffts, hop_lengths, win_lengths): + self.stft_losses += [STFTLosses(fs, ss, wl, window, normalized, epsilon)] + self.factor_sc = factor_sc + self.factor_mag = factor_mag + + def forward(self, x: torch.Tensor, y: torch.Tensor) -> torch.Tensor: + """Calculate forward propagation. + + Args: + x (torch.Tensor): Predicted signal (B, T). + y (torch.Tensor): Groundtruth signal (B, T). + Returns: + torch.Tensor: Multi resolution STFT loss. + """ + sc_loss = torch.Tensor([0.0]) + mag_loss = torch.Tensor([0.0]) + for f in self.stft_losses: + sc_l, mag_l = f(x, y) + sc_loss += sc_l + mag_loss += mag_l + sc_loss /= len(self.stft_losses) + mag_loss /= len(self.stft_losses) + + return self.factor_sc * sc_loss + self.factor_mag * mag_loss diff --git a/audiocraft/losses/wmloss.py b/audiocraft/losses/wmloss.py new file mode 100644 index 0000000..588938f --- /dev/null +++ b/audiocraft/losses/wmloss.py @@ -0,0 +1,104 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from typing import Literal + +import torch +import torch.nn as nn + + +class WMDetectionLoss(nn.Module): + """Compute the detection loss""" + def __init__(self, p_weight: float = 1.0, n_weight: float = 1.0) -> None: + super().__init__() + self.criterion = nn.NLLLoss() + self.p_weight = p_weight + self.n_weight = n_weight + + def forward(self, positive, negative, mask, message=None): + + positive = positive[:, :2, :] # b 2+nbits t -> b 2 t + negative = negative[:, :2, :] # b 2+nbits t -> b 2 t + + # dimensionality of positive [bsz, classes=2, time_steps] + # correct classes for pos = [bsz, time_steps] where all values = 1 for positive + classes_shape = positive[ + :, 0, : + ] # same as positive or negative but dropping dim=1 + pos_correct_classes = torch.ones_like(classes_shape, dtype=int) + neg_correct_classes = torch.zeros_like(classes_shape, dtype=int) + + # taking log because network outputs softmax + # NLLLoss expects a logsoftmax input + positive = torch.log(positive) + negative = torch.log(negative) + + if not torch.all(mask == 1): + # pos_correct_classes [bsz, timesteps] mask [bsz, 1, timesptes] + # mask is applied to the watermark, this basically flips the tgt class from 1 (positive) + # to 0 (negative) in the correct places + pos_correct_classes = pos_correct_classes * mask[:, 0, :].to(int) + loss_p = self.p_weight * self.criterion(positive, pos_correct_classes) + # no need for negative class loss here since some of the watermark + # is masked to negative + return loss_p + + else: + loss_p = self.p_weight * self.criterion(positive, pos_correct_classes) + loss_n = self.n_weight * self.criterion(negative, neg_correct_classes) + return loss_p + loss_n + + +class WMMbLoss(nn.Module): + def __init__(self, temperature: float, loss_type: Literal["bce", "mse"]) -> None: + """ + Compute the masked sample-level detection loss + (https://arxiv.org/pdf/2401.17264) + + Args: + temperature: temperature for loss computation + loss_type: bce or mse between outputs and original message + """ + super().__init__() + self.bce_with_logits = ( + nn.BCEWithLogitsLoss() + ) # same as Softmax + NLLLoss, but when only 1 output unit + self.mse = nn.MSELoss() + self.loss_type = loss_type + self.temperature = temperature + + def forward(self, positive, negative, mask, message): + """ + Compute decoding loss + Args: + positive: outputs on watermarked samples [bsz, 2+nbits, time_steps] + negative: outputs on not watermarked samples [bsz, 2+nbits, time_steps] + mask: watermark mask [bsz, 1, time_steps] + message: original message [bsz, nbits] or None + """ + # # no use of negative at the moment + # negative = negative[:, 2:, :] # b 2+nbits t -> b nbits t + # negative = torch.masked_select(negative, mask) + if message.size(0) == 0: + return torch.tensor(0.0) + positive = positive[:, 2:, :] # b 2+nbits t -> b nbits t + assert ( + positive.shape[-2] == message.shape[1] + ), "in decoding loss: \ + enc and dec don't share nbits, are you using multi-bit?" + + # cut last dim of positive to keep only where mask is 1 + new_shape = [*positive.shape[:-1], -1] # b nbits -1 + positive = torch.masked_select(positive, mask == 1).reshape(new_shape) + + message = message.unsqueeze(-1).repeat(1, 1, positive.shape[2]) # b k -> b k t + if self.loss_type == "bce": + # in this case similar to temperature in softmax + loss = self.bce_with_logits(positive / self.temperature, message.float()) + elif self.loss_type == "mse": + loss = self.mse(positive / self.temperature, message.float()) + + return loss diff --git a/audiocraft/metrics/__init__.py b/audiocraft/metrics/__init__.py new file mode 100644 index 0000000..3474bdc --- /dev/null +++ b/audiocraft/metrics/__init__.py @@ -0,0 +1,14 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Metrics like CLAP score, FAD, KLD, Visqol, Chroma similarity, etc. +""" +# flake8: noqa +from .clap_consistency import CLAPTextConsistencyMetric, TextConsistencyMetric +from .chroma_cosinesim import ChromaCosineSimilarityMetric +from .fad import FrechetAudioDistanceMetric +from .kld import KLDivergenceMetric, PasstKLDivergenceMetric +from .rvm import RelativeVolumeMel +from .visqol import ViSQOL diff --git a/audiocraft/metrics/chroma_cosinesim.py b/audiocraft/metrics/chroma_cosinesim.py new file mode 100644 index 0000000..40c2608 --- /dev/null +++ b/audiocraft/metrics/chroma_cosinesim.py @@ -0,0 +1,72 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch +import torchmetrics + +from ..data.audio_utils import convert_audio +from ..modules.chroma import ChromaExtractor + + +class ChromaCosineSimilarityMetric(torchmetrics.Metric): + """Chroma cosine similarity metric. + + This metric extracts a chromagram for a reference waveform and + a generated waveform and compares each frame using the cosine similarity + function. The output is the mean cosine similarity. + + Args: + sample_rate (int): Sample rate used by the chroma extractor. + n_chroma (int): Number of chroma used by the chroma extractor. + radix2_exp (int): Exponent for the chroma extractor. + argmax (bool): Whether the chroma extractor uses argmax. + eps (float): Epsilon for cosine similarity computation. + """ + def __init__(self, sample_rate: int, n_chroma: int, radix2_exp: int, argmax: bool, eps: float = 1e-8): + super().__init__() + self.chroma_sample_rate = sample_rate + self.n_chroma = n_chroma + self.eps = eps + self.chroma_extractor = ChromaExtractor(sample_rate=self.chroma_sample_rate, n_chroma=self.n_chroma, + radix2_exp=radix2_exp, argmax=argmax) + self.add_state("cosine_sum", default=torch.tensor(0.), dist_reduce_fx="sum") + self.add_state("weight", default=torch.tensor(0.), dist_reduce_fx="sum") + + def update(self, preds: torch.Tensor, targets: torch.Tensor, + sizes: torch.Tensor, sample_rates: torch.Tensor) -> None: + """Compute cosine similarity between chromagrams and accumulate scores over the dataset.""" + if preds.size(0) == 0: + return + + assert preds.shape == targets.shape, ( + f"Preds and target shapes mismatch: preds={preds.shape}, targets={targets.shape}") + assert preds.size(0) == sizes.size(0), ( + f"Number of items in preds ({preds.shape}) mismatch ", + f"with sizes ({sizes.shape})") + assert preds.size(0) == sample_rates.size(0), ( + f"Number of items in preds ({preds.shape}) mismatch ", + f"with sample_rates ({sample_rates.shape})") + assert torch.all(sample_rates == sample_rates[0].item()), "All sample rates are not the same in the batch" + + device = self.weight.device + preds, targets = preds.to(device), targets.to(device) # type: ignore + sample_rate = sample_rates[0].item() + preds = convert_audio(preds, from_rate=sample_rate, to_rate=self.chroma_sample_rate, to_channels=1) + targets = convert_audio(targets, from_rate=sample_rate, to_rate=self.chroma_sample_rate, to_channels=1) + gt_chroma = self.chroma_extractor(targets) + gen_chroma = self.chroma_extractor(preds) + chroma_lens = (sizes / self.chroma_extractor.winhop).ceil().int() + for i in range(len(gt_chroma)): + t = int(chroma_lens[i].item()) + cosine_sim = torch.nn.functional.cosine_similarity( + gt_chroma[i, :t], gen_chroma[i, :t], dim=1, eps=self.eps) + self.cosine_sum += cosine_sim.sum(dim=0) # type: ignore + self.weight += torch.tensor(t) # type: ignore + + def compute(self) -> float: + """Computes the average cosine similarty across all generated/target chromagrams pairs.""" + assert self.weight.item() > 0, "Unable to compute with total number of comparisons <= 0" # type: ignore + return (self.cosine_sum / self.weight).item() # type: ignore diff --git a/audiocraft/metrics/clap_consistency.py b/audiocraft/metrics/clap_consistency.py new file mode 100644 index 0000000..d2a6c61 --- /dev/null +++ b/audiocraft/metrics/clap_consistency.py @@ -0,0 +1,84 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from pathlib import Path +import typing as tp + +import torch +import torchmetrics +from transformers import RobertaTokenizer # type: ignore + +from ..data.audio_utils import convert_audio +from ..environment import AudioCraftEnvironment +from ..utils.utils import load_clap_state_dict + +try: + import laion_clap # type: ignore +except ImportError: + laion_clap = None + + +class TextConsistencyMetric(torchmetrics.Metric): + """Text consistency metric measuring consistency between audio and text pairs.""" + + def update(self, audio: torch.Tensor, text: tp.List[str], sizes: torch.Tensor, sample_rates: torch.Tensor) -> None: + raise NotImplementedError("implement how to update the metric from the audio and text pairs.") + + def compute(self): + raise NotImplementedError("implement how to compute the final metric score.") + + +class CLAPTextConsistencyMetric(TextConsistencyMetric): + """Text consistency metric relying on Contrastive Language-Audio Pretraining (CLAP). + + This metric is similar to the MuLan Cycle Consistency from MusicLM (https://arxiv.org/pdf/2301.11325.pdf) + or the CLAP score used in Make-An-Audio (https://arxiv.org/pdf/2301.12661v1.pdf). + + As a joint audio-text embedding model, a pretrained CLAP model can be used to quantify the + similarity between audio-text pairs. We compute the CLAP embeddings from the text descriptions as + well as the generated audio based on them, and define the MCC metric as the average cosine similarity + between these embeddings. + + Model implementation & pre-trained checkpoints: https://github.com/LAION-AI/CLAP + """ + def __init__(self, model_path: tp.Union[str, Path], model_arch: str = 'HTSAT-tiny', enable_fusion: bool = False): + super().__init__() + if laion_clap is None: + raise ImportError("Please install CLAP to compute text consistency: 'pip install laion_clap'") + self.add_state("cosine_sum", default=torch.tensor(0.), dist_reduce_fx="sum") + self.add_state("weight", default=torch.tensor(0.), dist_reduce_fx="sum") + self._initialize_model(model_path, model_arch, enable_fusion) + + def _initialize_model(self, model_path: tp.Union[str, Path], model_arch: str, enable_fusion: bool): + model_path = AudioCraftEnvironment.resolve_reference_path(model_path) + self.tokenize = RobertaTokenizer.from_pretrained('roberta-base') + self.model = laion_clap.CLAP_Module(enable_fusion=enable_fusion, amodel=model_arch) + self.model_sample_rate = 48_000 + load_clap_state_dict(self.model, model_path) + self.model.eval() + + def _tokenizer(self, texts: tp.Union[str, tp.List[str]]) -> dict: + # we use the default params from CLAP module here as well + return self.tokenize(texts, padding="max_length", truncation=True, max_length=77, return_tensors="pt") + + def update(self, audio: torch.Tensor, text: tp.List[str], sizes: torch.Tensor, sample_rates: torch.Tensor) -> None: + """Compute cosine similarity between audio and text pairs and accumulate scores over the dataset.""" + assert audio.size(0) == len(text), "Number of audio and text samples should match" + assert torch.all(sample_rates == sample_rates[0].item()), "All items in batch should have the same sample rate" + sample_rate = int(sample_rates[0].item()) + # convert audio batch to 48kHz monophonic audio with no channel dimension: [B, C, T] -> [B, T] + audio = convert_audio(audio, from_rate=sample_rate, to_rate=self.model_sample_rate, to_channels=1).mean(dim=1) + audio_embeddings = self.model.get_audio_embedding_from_data(audio, use_tensor=True) + text_embeddings = self.model.get_text_embedding(text, tokenizer=self._tokenizer, use_tensor=True) + # cosine similarity between the text and the audio embedding + cosine_sim = torch.nn.functional.cosine_similarity(audio_embeddings, text_embeddings, dim=1, eps=1e-8) + self.cosine_sum += cosine_sim.sum(dim=0) + self.weight += torch.tensor(cosine_sim.size(0)) + + def compute(self): + """Computes the average cosine similarty across all audio/text pairs.""" + assert self.weight.item() > 0, "Unable to compute with total number of comparisons <= 0" # type: ignore + return (self.cosine_sum / self.weight).item() # type: ignore diff --git a/audiocraft/metrics/fad.py b/audiocraft/metrics/fad.py new file mode 100644 index 0000000..de66138 --- /dev/null +++ b/audiocraft/metrics/fad.py @@ -0,0 +1,329 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +from pathlib import Path +import os +import subprocess +import tempfile +import typing as tp + +from audiocraft.data.audio import audio_write +from audiocraft.data.audio_utils import convert_audio +import flashy +import torch +import torchmetrics + +from ..environment import AudioCraftEnvironment + + +logger = logging.getLogger(__name__) + +VGGISH_SAMPLE_RATE = 16_000 +VGGISH_CHANNELS = 1 + + +class FrechetAudioDistanceMetric(torchmetrics.Metric): + """Fréchet Audio Distance computation based on official TensorFlow implementation from Google Research. + + From: D.C. Dowson & B.V. Landau The Fréchet distance between + multivariate normal distributions + https://doi.org/10.1016/0047-259X(82)90077-X + The Fréchet distance between two multivariate gaussians, + `X ~ N(mu_x, sigma_x)` and `Y ~ N(mu_y, sigma_y)`, is `d^2`. + d^2 = (mu_x - mu_y)^2 + Tr(sigma_x + sigma_y - 2 * sqrt(sigma_x*sigma_y)) + = (mu_x - mu_y)^2 + Tr(sigma_x) + Tr(sigma_y) + - 2 * Tr(sqrt(sigma_x*sigma_y))) + + To use this FAD computation metric, you need to have the proper Frechet Audio Distance tool setup + from: https://github.com/google-research/google-research/tree/master/frechet_audio_distance + We provide the below instructions as reference but we do not guarantee for further support + in frechet_audio_distance installation. This was tested with python 3.10, cuda 11.8, tensorflow 2.12.0. + + We recommend installing the frechet_audio_distance library in a dedicated env (e.g. conda). + + 1. Get the code and models following the repository instructions. We used the steps below: + git clone git@github.com:google-research/google-research.git + git clone git@github.com:tensorflow/models.git + mkdir google-research/tensorflow_models + touch google-research/tensorflow_models/__init__.py + cp -r models/research/audioset google-research/tensorflow_models/ + touch google-research/tensorflow_models/audioset/__init__.py + echo "from .vggish import mel_features, vggish_params, vggish_slim" > \ + google-research/tensorflow_models/audioset/__init__.py + # we can now remove the tensorflow models repository + # rm -r models + cd google-research + Follow the instructions to download the vggish checkpoint. AudioCraft base configuration + assumes it is placed in the AudioCraft reference dir. + + Note that we operate the following changes for the code to work with TensorFlow 2.X and python 3: + - Update xrange for range in: + https://github.com/google-research/google-research/blob/master/frechet_audio_distance/audioset_model.py + - Update `tf_record = tf.python_io.tf_record_iterator(filename).next()` to + `tf_record = tf.python_io.tf_record_iterator(filename).__next__()` in + https://github.com/google-research/google-research/blob/master/frechet_audio_distance/fad_utils.py + - Update `import vggish_params as params` to `from . import vggish_params as params` in: + https://github.com/tensorflow/models/blob/master/research/audioset/vggish/vggish_slim.py + - Add flag to provide a given batch size for running the AudioSet model in: + https://github.com/google-research/google-research/blob/master/frechet_audio_distance/create_embeddings_main.py + ``` + flags.DEFINE_integer('batch_size', 64, + 'Number of samples in the batch for AudioSet model.') + ``` + Ensure you pass the flag to the create_embeddings_beam.create_pipeline function, adding: + `batch_size=FLAGS.batch_size` to the provided parameters. + + 2. Follow instructions for the library installation and a valid TensorFlow installation + ``` + # e.g. instructions from: https://www.tensorflow.org/install/pip + conda install -c conda-forge cudatoolkit=11.8.0 + python3 -m pip install nvidia-cudnn-cu11==8.6.0.163 tensorflow==2.12.* + mkdir -p $CONDA_PREFIX/etc/conda/activate.d + echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' \ + >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/:$CUDNN_PATH/lib' \ + >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + source $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + # Verify install: on a machine with GPU device + python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))" + ``` + + Now install frechet_audio_distance required dependencies: + ``` + # We assume we already have TensorFlow installed from the above steps + pip install apache-beam numpy scipy tf_slim + ``` + + Finally, follow remaining library instructions to ensure you have a working frechet_audio_distance setup + (you may want to specify --model_ckpt flag pointing to the model's path). + + 3. AudioCraft's FrechetAudioDistanceMetric requires 2 environment variables pointing to the python executable + and Tensorflow library path from the above installation steps: + export TF_PYTHON_EXE="" + export TF_LIBRARY_PATH="" + + e.g. assuming we have installed everything in a dedicated conda env + with python 3.10 that is currently active: + export TF_PYTHON_EXE="$CONDA_PREFIX/bin/python" + export TF_LIBRARY_PATH="$CONDA_PREFIX/lib/python3.10/site-packages/nvidia/cudnn/lib" + + Finally you may want to export the following variable: + export TF_FORCE_GPU_ALLOW_GROWTH=true + See: https://www.tensorflow.org/guide/gpu#limiting_gpu_memory_growth + + You can save those environment variables in your training conda env, when currently active: + `$CONDA_PREFIX/etc/conda/activate.d/env_vars.sh` + e.g. assuming the env with TensorFlow and frechet_audio_distance install is named ac_eval, + and the training conda env is named audiocraft: + ``` + # activate training env + conda activate audiocraft + # get path to all envs + CONDA_ENV_DIR=$(dirname $CONDA_PREFIX) + # export pointers to evaluation env for using TensorFlow in FrechetAudioDistanceMetric + touch $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + echo 'export TF_PYTHON_EXE="$CONDA_ENV_DIR/ac_eval/bin/python"' >> \ + $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + echo 'export TF_LIBRARY_PATH="$CONDA_ENV_DIR/ac_eval/lib/python3.10/site-packages/nvidia/cudnn/lib"' >> \ + $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + # optionally: + echo 'export TF_FORCE_GPU_ALLOW_GROWTH=true' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh + # you may need to reactivate the audiocraft env for this to take effect + ``` + + Args: + bin (Path or str): Path to installed frechet audio distance code. + model_path (Path or str): Path to Tensorflow checkpoint for the model + used to compute statistics over the embedding beams. + format (str): Audio format used to save files. + log_folder (Path or str, optional): Path where to write process logs. + """ + def __init__(self, bin: tp.Union[Path, str], model_path: tp.Union[Path, str], + format: str = "wav", batch_size: tp.Optional[int] = None, + log_folder: tp.Optional[tp.Union[Path, str]] = None): + super().__init__() + self.model_sample_rate = VGGISH_SAMPLE_RATE + self.model_channels = VGGISH_CHANNELS + self.model_path = AudioCraftEnvironment.resolve_reference_path(model_path) + assert Path(self.model_path).exists(), f"Could not find provided model checkpoint path at: {self.model_path}" + self.format = format + self.batch_size = batch_size + self.bin = bin + self.tf_env = {"PYTHONPATH": str(self.bin)} + self.python_path = os.environ.get('TF_PYTHON_EXE') or 'python' + logger.info("Python exe for TF is %s", self.python_path) + if 'TF_LIBRARY_PATH' in os.environ: + self.tf_env['LD_LIBRARY_PATH'] = os.environ['TF_LIBRARY_PATH'] + if 'TF_FORCE_GPU_ALLOW_GROWTH' in os.environ: + self.tf_env['TF_FORCE_GPU_ALLOW_GROWTH'] = os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] + logger.info("Env for TF is %r", self.tf_env) + self.reset(log_folder) + self.add_state("total_files", default=torch.tensor(0.), dist_reduce_fx="sum") + + def reset(self, log_folder: tp.Optional[tp.Union[Path, str]] = None): + """Reset torchmetrics.Metrics state.""" + log_folder = Path(log_folder or tempfile.mkdtemp()) + self.tmp_dir = log_folder / 'fad' + self.tmp_dir.mkdir(exist_ok=True) + self.samples_tests_dir = self.tmp_dir / 'tests' + self.samples_tests_dir.mkdir(exist_ok=True) + self.samples_background_dir = self.tmp_dir / 'background' + self.samples_background_dir.mkdir(exist_ok=True) + self.manifest_tests = self.tmp_dir / 'files_tests.cvs' + self.manifest_background = self.tmp_dir / 'files_background.cvs' + self.stats_tests_dir = self.tmp_dir / 'stats_tests' + self.stats_background_dir = self.tmp_dir / 'stats_background' + self.counter = 0 + + def update(self, preds: torch.Tensor, targets: torch.Tensor, + sizes: torch.Tensor, sample_rates: torch.Tensor, + stems: tp.Optional[tp.List[str]] = None): + """Update torchmetrics.Metrics by saving the audio and updating the manifest file.""" + assert preds.shape == targets.shape, f"preds={preds.shape} != targets={targets.shape}" + num_samples = preds.shape[0] + assert num_samples == sizes.size(0) and num_samples == sample_rates.size(0) + assert stems is None or num_samples == len(set(stems)) + for i in range(num_samples): + self.total_files += 1 # type: ignore + self.counter += 1 + wav_len = int(sizes[i].item()) + sample_rate = int(sample_rates[i].item()) + pred_wav = preds[i] + target_wav = targets[i] + pred_wav = pred_wav[..., :wav_len] + target_wav = target_wav[..., :wav_len] + stem_name = stems[i] if stems is not None else f'sample_{self.counter}_{flashy.distrib.rank()}' + # dump audio files + try: + pred_wav = convert_audio( + pred_wav.unsqueeze(0), from_rate=sample_rate, + to_rate=self.model_sample_rate, to_channels=1).squeeze(0) + audio_write( + self.samples_tests_dir / stem_name, pred_wav, sample_rate=self.model_sample_rate, + format=self.format, strategy="peak") + except Exception as e: + logger.error(f"Exception occured when saving tests files for FAD computation: {repr(e)} - {e}") + try: + # for the ground truth audio, we enforce the 'peak' strategy to avoid modifying + # the original audio when writing it + target_wav = convert_audio( + target_wav.unsqueeze(0), from_rate=sample_rate, + to_rate=self.model_sample_rate, to_channels=1).squeeze(0) + audio_write( + self.samples_background_dir / stem_name, target_wav, sample_rate=self.model_sample_rate, + format=self.format, strategy="peak") + except Exception as e: + logger.error(f"Exception occured when saving background files for FAD computation: {repr(e)} - {e}") + + def _get_samples_name(self, is_background: bool): + return 'background' if is_background else 'tests' + + def _create_embedding_beams(self, is_background: bool, gpu_index: tp.Optional[int] = None): + if is_background: + input_samples_dir = self.samples_background_dir + input_filename = self.manifest_background + stats_name = self.stats_background_dir + else: + input_samples_dir = self.samples_tests_dir + input_filename = self.manifest_tests + stats_name = self.stats_tests_dir + beams_name = self._get_samples_name(is_background) + log_file = self.tmp_dir / f'fad_logs_create_beams_{beams_name}.log' + + logger.info(f"Scanning samples folder to fetch list of files: {input_samples_dir}") + with open(input_filename, "w") as fout: + for path in Path(input_samples_dir).glob(f"*.{self.format}"): + fout.write(f"{str(path)}\n") + + cmd = [ + self.python_path, "-m", + "frechet_audio_distance.create_embeddings_main", + "--model_ckpt", f"{self.model_path}", + "--input_files", f"{str(input_filename)}", + "--stats", f"{str(stats_name)}", + ] + if self.batch_size is not None: + cmd += ["--batch_size", str(self.batch_size)] + logger.info(f"Launching frechet_audio_distance embeddings main method: {' '.join(cmd)} on {beams_name}") + env = os.environ + if gpu_index is not None: + env["CUDA_VISIBLE_DEVICES"] = str(gpu_index) + process = subprocess.Popen( + cmd, stdout=open(log_file, "w"), env={**env, **self.tf_env}, stderr=subprocess.STDOUT) + return process, log_file + + def _compute_fad_score(self, gpu_index: tp.Optional[int] = None): + cmd = [ + self.python_path, "-m", "frechet_audio_distance.compute_fad", + "--test_stats", f"{str(self.stats_tests_dir)}", + "--background_stats", f"{str(self.stats_background_dir)}", + ] + logger.info(f"Launching frechet_audio_distance compute fad method: {' '.join(cmd)}") + env = os.environ + if gpu_index is not None: + env["CUDA_VISIBLE_DEVICES"] = str(gpu_index) + result = subprocess.run(cmd, env={**env, **self.tf_env}, capture_output=True) + if result.returncode: + logger.error( + "Error with FAD computation from stats: \n %s \n %s", + result.stdout.decode(), result.stderr.decode() + ) + raise RuntimeError("Error while executing FAD computation from stats") + try: + # result is "FAD: (d+).(d+)" hence we remove the prefix with (d+) being one digit or more + fad_score = float(result.stdout[4:]) + return fad_score + except Exception as e: + raise RuntimeError(f"Error parsing FAD score from command stdout: {e}") + + def _log_process_result(self, returncode: int, log_file: tp.Union[Path, str], is_background: bool) -> None: + beams_name = self._get_samples_name(is_background) + if returncode: + with open(log_file, "r") as f: + error_log = f.read() + logger.error(error_log) + os._exit(1) + else: + logger.info(f"Successfully computed embedding beams on {beams_name} samples.") + + def _parallel_create_embedding_beams(self, num_of_gpus: int): + assert num_of_gpus > 0 + logger.info("Creating embeddings beams in a parallel manner on different GPUs") + tests_beams_process, tests_beams_log_file = self._create_embedding_beams(is_background=False, gpu_index=0) + bg_beams_process, bg_beams_log_file = self._create_embedding_beams(is_background=True, gpu_index=1) + tests_beams_code = tests_beams_process.wait() + bg_beams_code = bg_beams_process.wait() + self._log_process_result(tests_beams_code, tests_beams_log_file, is_background=False) + self._log_process_result(bg_beams_code, bg_beams_log_file, is_background=True) + + def _sequential_create_embedding_beams(self): + logger.info("Creating embeddings beams in a sequential manner") + tests_beams_process, tests_beams_log_file = self._create_embedding_beams(is_background=False) + tests_beams_code = tests_beams_process.wait() + self._log_process_result(tests_beams_code, tests_beams_log_file, is_background=False) + bg_beams_process, bg_beams_log_file = self._create_embedding_beams(is_background=True) + bg_beams_code = bg_beams_process.wait() + self._log_process_result(bg_beams_code, bg_beams_log_file, is_background=True) + + @flashy.distrib.rank_zero_only + def _local_compute_frechet_audio_distance(self): + """Compute Frechet Audio Distance score calling TensorFlow API.""" + num_of_gpus = torch.cuda.device_count() if torch.cuda.is_available() else 0 + if num_of_gpus > 1: + self._parallel_create_embedding_beams(num_of_gpus) + else: + self._sequential_create_embedding_beams() + fad_score = self._compute_fad_score(gpu_index=0) + return fad_score + + def compute(self) -> float: + """Compute metrics.""" + assert self.total_files.item() > 0, "No files dumped for FAD computation!" # type: ignore + fad_score = self._local_compute_frechet_audio_distance() + logger.warning(f"FAD score = {fad_score}") + fad_score = flashy.distrib.broadcast_object(fad_score, src=0) + return fad_score diff --git a/audiocraft/metrics/kld.py b/audiocraft/metrics/kld.py new file mode 100644 index 0000000..ebbbcda --- /dev/null +++ b/audiocraft/metrics/kld.py @@ -0,0 +1,220 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import contextlib +from functools import partial +import logging +import os +import typing as tp + +import torch +import torchmetrics + +from ..data.audio_utils import convert_audio + + +logger = logging.getLogger(__name__) + + +class _patch_passt_stft: + """Decorator to patch torch.stft in PaSST.""" + def __init__(self): + self.old_stft = torch.stft + + def __enter__(self): + # return_complex is a mandatory parameter in latest torch versions + # torch is throwing RuntimeErrors when not set + torch.stft = partial(torch.stft, return_complex=False) + + def __exit__(self, *exc): + torch.stft = self.old_stft + + +def kl_divergence(pred_probs: torch.Tensor, target_probs: torch.Tensor, epsilon: float = 1e-6) -> torch.Tensor: + """Computes the elementwise KL-Divergence loss between probability distributions + from generated samples and target samples. + + Args: + pred_probs (torch.Tensor): Probabilities for each label obtained + from a classifier on generated audio. Expected shape is [B, num_classes]. + target_probs (torch.Tensor): Probabilities for each label obtained + from a classifier on target audio. Expected shape is [B, num_classes]. + epsilon (float): Epsilon value. + Returns: + kld (torch.Tensor): KLD loss between each generated sample and target pair. + """ + kl_div = torch.nn.functional.kl_div((pred_probs + epsilon).log(), target_probs, reduction="none") + return kl_div.sum(-1) + + +class KLDivergenceMetric(torchmetrics.Metric): + """Base implementation for KL Divergence metric. + + The KL divergence is measured between probability distributions + of class predictions returned by a pre-trained audio classification model. + When the KL-divergence is low, the generated audio is expected to + have similar acoustic characteristics as the reference audio, + according to the classifier. + """ + def __init__(self): + super().__init__() + self.add_state("kld_pq_sum", default=torch.tensor(0.), dist_reduce_fx="sum") + self.add_state("kld_qp_sum", default=torch.tensor(0.), dist_reduce_fx="sum") + self.add_state("kld_all_sum", default=torch.tensor(0.), dist_reduce_fx="sum") + self.add_state("weight", default=torch.tensor(0), dist_reduce_fx="sum") + + def _get_label_distribution(self, x: torch.Tensor, sizes: torch.Tensor, + sample_rates: torch.Tensor) -> tp.Optional[torch.Tensor]: + """Get model output given provided input tensor. + + Args: + x (torch.Tensor): Input audio tensor of shape [B, C, T]. + sizes (torch.Tensor): Actual audio sample length, of shape [B]. + sample_rates (torch.Tensor): Actual audio sample rate, of shape [B]. + Returns: + probs (torch.Tensor): Probabilities over labels, of shape [B, num_classes]. + """ + raise NotImplementedError("implement method to extract label distributions from the model.") + + def update(self, preds: torch.Tensor, targets: torch.Tensor, + sizes: torch.Tensor, sample_rates: torch.Tensor) -> None: + """Calculates running KL-Divergence loss between batches of audio + preds (generated) and target (ground-truth) + Args: + preds (torch.Tensor): Audio samples to evaluate, of shape [B, C, T]. + targets (torch.Tensor): Target samples to compare against, of shape [B, C, T]. + sizes (torch.Tensor): Actual audio sample length, of shape [B]. + sample_rates (torch.Tensor): Actual audio sample rate, of shape [B]. + """ + assert preds.shape == targets.shape + assert preds.size(0) > 0, "Cannot update the loss with empty tensors" + preds_probs = self._get_label_distribution(preds, sizes, sample_rates) + targets_probs = self._get_label_distribution(targets, sizes, sample_rates) + if preds_probs is not None and targets_probs is not None: + assert preds_probs.shape == targets_probs.shape + kld_scores = kl_divergence(preds_probs, targets_probs) + assert not torch.isnan(kld_scores).any(), "kld_scores contains NaN value(s)!" + self.kld_pq_sum += torch.sum(kld_scores) + kld_qp_scores = kl_divergence(targets_probs, preds_probs) + self.kld_qp_sum += torch.sum(kld_qp_scores) + self.weight += torch.tensor(kld_scores.size(0)) + + def compute(self) -> dict: + """Computes KL-Divergence across all evaluated pred/target pairs.""" + weight: float = float(self.weight.item()) # type: ignore + assert weight > 0, "Unable to compute with total number of comparisons <= 0" + logger.info(f"Computing KL divergence on a total of {weight} samples") + kld_pq = self.kld_pq_sum.item() / weight # type: ignore + kld_qp = self.kld_qp_sum.item() / weight # type: ignore + kld_both = kld_pq + kld_qp + return {'kld': kld_pq, 'kld_pq': kld_pq, 'kld_qp': kld_qp, 'kld_both': kld_both} + + +class PasstKLDivergenceMetric(KLDivergenceMetric): + """KL-Divergence metric based on pre-trained PASST classifier on AudioSet. + + From: PaSST: Efficient Training of Audio Transformers with Patchout + Paper: https://arxiv.org/abs/2110.05069 + Implementation: https://github.com/kkoutini/PaSST + + Follow instructions from the github repo: + ``` + pip install 'git+https://github.com/kkoutini/passt_hear21@0.0.19#egg=hear21passt' + ``` + + Args: + pretrained_length (float, optional): Audio duration used for the pretrained model. + """ + def __init__(self, pretrained_length: tp.Optional[float] = None): + super().__init__() + self._initialize_model(pretrained_length) + + def _initialize_model(self, pretrained_length: tp.Optional[float] = None): + """Initialize underlying PaSST audio classifier.""" + model, sr, max_frames, min_frames = self._load_base_model(pretrained_length) + self.min_input_frames = min_frames + self.max_input_frames = max_frames + self.model_sample_rate = sr + self.model = model + self.model.eval() + self.model.to(self.device) + + def _load_base_model(self, pretrained_length: tp.Optional[float]): + """Load pretrained model from PaSST.""" + try: + if pretrained_length == 30: + from hear21passt.base30sec import get_basic_model # type: ignore + max_duration = 30 + elif pretrained_length == 20: + from hear21passt.base20sec import get_basic_model # type: ignore + max_duration = 20 + else: + from hear21passt.base import get_basic_model # type: ignore + # Original PASST was trained on AudioSet with 10s-long audio samples + max_duration = 10 + min_duration = 0.15 + min_duration = 0.15 + except ModuleNotFoundError: + raise ModuleNotFoundError( + "Please install hear21passt to compute KL divergence: ", + "pip install 'git+https://github.com/kkoutini/passt_hear21@0.0.19#egg=hear21passt'" + ) + model_sample_rate = 32_000 + max_input_frames = int(max_duration * model_sample_rate) + min_input_frames = int(min_duration * model_sample_rate) + with open(os.devnull, 'w') as f, contextlib.redirect_stdout(f): + model = get_basic_model(mode='logits') + return model, model_sample_rate, max_input_frames, min_input_frames + + def _process_audio(self, wav: torch.Tensor, sample_rate: int, wav_len: int) -> tp.List[torch.Tensor]: + """Process audio to feed to the pretrained model.""" + wav = wav.unsqueeze(0) + wav = wav[..., :wav_len] + wav = convert_audio(wav, from_rate=sample_rate, to_rate=self.model_sample_rate, to_channels=1) + wav = wav.squeeze(0) + # we don't pad but return a list of audio segments as this otherwise affects the KLD computation + segments = torch.split(wav, self.max_input_frames, dim=-1) + valid_segments = [] + for s in segments: + # ignoring too small segments that are breaking the model inference + if s.size(-1) > self.min_input_frames: + valid_segments.append(s) + return [s[None] for s in valid_segments] + + def _get_model_preds(self, wav: torch.Tensor) -> torch.Tensor: + """Run the pretrained model and get the predictions.""" + assert wav.dim() == 3, f"Unexpected number of dims for preprocessed wav: {wav.shape}" + wav = wav.mean(dim=1) + # PaSST is printing a lot of garbage that we are not interested in + with open(os.devnull, "w") as f, contextlib.redirect_stdout(f): + with torch.no_grad(), _patch_passt_stft(): + logits = self.model(wav.to(self.device)) + probs = torch.softmax(logits, dim=-1) + return probs + + def _get_label_distribution(self, x: torch.Tensor, sizes: torch.Tensor, + sample_rates: torch.Tensor) -> tp.Optional[torch.Tensor]: + """Get model output given provided input tensor. + + Args: + x (torch.Tensor): Input audio tensor of shape [B, C, T]. + sizes (torch.Tensor): Actual audio sample length, of shape [B]. + sample_rates (torch.Tensor): Actual audio sample rate, of shape [B]. + Returns: + probs (torch.Tensor, optional): Probabilities over labels, of shape [B, num_classes]. + """ + all_probs: tp.List[torch.Tensor] = [] + for i, wav in enumerate(x): + sample_rate = int(sample_rates[i].item()) + wav_len = int(sizes[i].item()) + wav_segments = self._process_audio(wav, sample_rate, wav_len) + for segment in wav_segments: + probs = self._get_model_preds(segment).mean(dim=0) + all_probs.append(probs) + if len(all_probs) > 0: + return torch.stack(all_probs, dim=0) + else: + return None diff --git a/audiocraft/metrics/miou.py b/audiocraft/metrics/miou.py new file mode 100644 index 0000000..c705fe6 --- /dev/null +++ b/audiocraft/metrics/miou.py @@ -0,0 +1,42 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch + + +def calculate_miou(y_pred: torch.Tensor, y_true: torch.Tensor) -> float: + """ + Calculate the mean Intersection over Union (mIoU) between two binary tensors using PyTorch. + + Args: + y_pred (torch.Tensor): Predicted binary tensor of shape [bsz, frames]. + y_true (torch.Tensor): Ground truth binary tensor of shape [bsz, frames]. + + Returns: + float: The mean Intersection over Union (mIoU) score. + + Reference: + The Intersection over Union (IoU) metric is commonly used in computer vision. + For more information, refer to the following paper: + "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation" + by Vijay Badrinarayanan, Alex Kendall, Roberto Cipolla + """ + # Ensure y_pred and y_true have the same shape + if y_pred.shape != y_true.shape: + raise ValueError("Input tensors must have the same shape") + + # converting predictions to binary vector + y_pred = y_pred > 0.5 + # Compute the intersection and union + intersection = torch.logical_and(y_pred, y_true) + union = torch.logical_or(y_pred, y_true) + + # Compute IoU for each sample in the batch + iou_per_sample = torch.sum(intersection, dim=1) / torch.sum(union, dim=1) + # Calculate mIoU by taking the mean across the batch + miou = torch.mean(iou_per_sample).item() + + return miou diff --git a/audiocraft/metrics/pesq.py b/audiocraft/metrics/pesq.py new file mode 100644 index 0000000..744ca75 --- /dev/null +++ b/audiocraft/metrics/pesq.py @@ -0,0 +1,50 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import julius +import pesq + +import torch +import torchmetrics + + +class PesqMetric(torchmetrics.Metric): + """Metric for Perceptual Evaluation of Speech Quality. + (https://doi.org/10.5281/zenodo.6549559) + + """ + + sum_pesq: torch.Tensor + total: torch.Tensor + + def __init__(self, sample_rate: int): + super().__init__() + self.sr = sample_rate + + self.add_state("sum_pesq", default=torch.tensor(0.0), dist_reduce_fx="sum") + self.add_state("total", default=torch.tensor(0), dist_reduce_fx="sum") + + def update(self, preds: torch.Tensor, targets: torch.Tensor): + if self.sr != 16000: + preds = julius.resample_frac(preds, self.sr, 16000) + targets = julius.resample_frac(targets, self.sr, 16000) + for ii in range(preds.size(0)): + try: + self.sum_pesq += pesq.pesq( + 16000, targets[ii, 0].detach().cpu().numpy(), preds[ii, 0].detach().cpu().numpy() + ) + self.total += 1 + except ( + pesq.NoUtterancesError + ): # this error can append when the sample don't contain speech + pass + + def compute(self) -> torch.Tensor: + return ( + self.sum_pesq / self.total + if (self.total != 0).item() + else torch.tensor(0.0) + ) diff --git a/audiocraft/metrics/rvm.py b/audiocraft/metrics/rvm.py new file mode 100644 index 0000000..2047b6c --- /dev/null +++ b/audiocraft/metrics/rvm.py @@ -0,0 +1,110 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp +import torch +from torch import nn +import torchaudio + + +def db_to_scale(volume: tp.Union[float, torch.Tensor]): + return 10 ** (volume / 20) + + +def scale_to_db(scale: torch.Tensor, min_volume: float = -120): + min_scale = db_to_scale(min_volume) + return 20 * torch.log10(scale.clamp(min=min_scale)) + + +class RelativeVolumeMel(nn.Module): + """Relative volume melspectrogram measure. + + Computes a measure of distance over two mel spectrogram that is interpretable in terms + of decibels. Given `x_ref` and `x_est` two waveforms of shape `[*, T]`, it will + first renormalize both by the ground truth of `x_ref`. + + ..Warning:: This class returns the volume of the distortion at the spectrogram level, + e.g. low negative values reflects lower distortion levels. For a SNR (like reported + in the MultiBandDiffusion paper), just take `-rvm`. + + Then it computes the mel spectrogram `z_ref` and `z_est` and compute volume of the difference + relative to the volume of `z_ref` for each time-frequency bin. It further adds some limits, e.g. + clamping the values between -25 and 25 dB (controlled by `min_relative_volume` and `max_relative_volume`) + with the goal of avoiding the loss being dominated by parts where the reference is almost silent. + Indeed, volumes in dB can take unbounded values both towards -oo and +oo, which can make the final + average metric harder to interpret. Besides, anything below -30 dB of attenuation would sound extremely + good (for a neural network output, although sound engineers typically aim for much lower attenuations). + Similarly, anything above +30 dB would just be completely missing the target, and there is no point + in measuring by exactly how much it missed it. -25, 25 is a more conservative range, but also more + in line with what neural nets currently can achieve. + + For instance, a Relative Volume Mel (RVM) score of -10 dB means that on average, the delta between + the target and reference mel-spec is 10 dB lower than the reference mel-spec value. + + The metric can be aggregated over a given frequency band in order have different insights for + different region of the spectrum. `num_aggregated_bands` controls the number of bands. + + ..Warning:: While this function is optimized for interpretability, nothing was done to ensure it + is numerically stable when computing its gradient. We thus advise against using it as a training loss. + + Args: + sample_rate (int): Sample rate of the input audio. + n_mels (int): Number of mel bands to use. + n_fft (int): Number of frequency bins for the STFT. + hop_length (int): Hop length of the STFT and the mel-spectrogram. + min_relative_volume (float): The error `z_ref - z_est` volume is given relative to + the volume of `z_ref`. If error is smaller than -25 dB of `z_ref`, then it is clamped. + max_relative_volume (float): Same as `min_relative_volume` but clamping if the error is larger than that. + max_initial_gain (float): When rescaling the audio at the very beginning, we will limit the gain + to that amount, to avoid rescaling near silence. Given in dB. + min_activity_volume (float): When computing the reference level from `z_ref`, will clamp low volume + bins to that amount. This is effectively our "zero" level for the reference mel-spectrogram, + and anything below that will be considered equally. + num_aggregated_bands (int): Number of bands to keep when computing the average RVM value. + For instance, a value of 3 would give 3 scores, roughly for low, mid and high freqs. + """ + def __init__(self, sample_rate: int = 24000, n_mels: int = 80, n_fft: int = 512, + hop_length: int = 128, min_relative_volume: float = -25, + max_relative_volume: float = 25, max_initial_gain: float = 25, + min_activity_volume: float = -25, + num_aggregated_bands: int = 4) -> None: + super().__init__() + self.melspec = torchaudio.transforms.MelSpectrogram( + n_mels=n_mels, n_fft=n_fft, hop_length=hop_length, + normalized=True, sample_rate=sample_rate, power=2) + self.min_relative_volume = min_relative_volume + self.max_relative_volume = max_relative_volume + self.max_initial_gain = max_initial_gain + self.min_activity_volume = min_activity_volume + self.num_aggregated_bands = num_aggregated_bands + + def forward(self, estimate: torch.Tensor, ground_truth: torch.Tensor) -> tp.Dict[str, torch.Tensor]: + """Compute RVM metric between estimate and reference samples. + + Args: + estimate (torch.Tensor): Estimate sample. + ground_truth (torch.Tensor): Reference sample. + + Returns: + dict[str, torch.Tensor]: Metrics with keys `rvm` for the overall average, and `rvm_{k}` + for the RVM over the k-th band (k=0..num_aggregated_bands - 1). + """ + min_scale = db_to_scale(-self.max_initial_gain) + std = ground_truth.pow(2).mean().sqrt().clamp(min=min_scale) + z_gt = self.melspec(ground_truth / std).sqrt() + z_est = self.melspec(estimate / std).sqrt() + + delta = z_gt - z_est + ref_db = scale_to_db(z_gt, self.min_activity_volume) + delta_db = scale_to_db(delta.abs(), min_volume=-120) + relative_db = (delta_db - ref_db).clamp(self.min_relative_volume, self.max_relative_volume) + dims = list(range(relative_db.dim())) + dims.remove(dims[-2]) + losses_per_band = relative_db.mean(dim=dims) + aggregated = [chunk.mean() for chunk in losses_per_band.chunk(self.num_aggregated_bands, dim=0)] + metrics = {f'rvm_{index}': value for index, value in enumerate(aggregated)} + metrics['rvm'] = losses_per_band.mean() + return metrics diff --git a/audiocraft/metrics/visqol.py b/audiocraft/metrics/visqol.py new file mode 100644 index 0000000..44f4b0a --- /dev/null +++ b/audiocraft/metrics/visqol.py @@ -0,0 +1,216 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import csv +import json +import logging +from pathlib import Path +import tempfile +import typing as tp +import subprocess +import shutil + +import torch +import torchaudio + +logger = logging.getLogger(__name__) + + +class ViSQOL: + """ViSQOL wrapper to run ViSQOL from Python using a pre-installed binary. + + To learn more about ViSQOL and how to build ViSQOL binary using bazel, please refer to the + instructions available in the open source repository: https://github.com/google/visqol + + ViSQOL is capable of running in two modes: + + Audio Mode: + When running in audio mode, input signals must have a 48kHz sample rate. Input should be resampled to 48kHz. + Input signals can be multi-channel, but they will be down-mixed to mono for performing the comparison. + Audio mode uses support vector regression, with the maximum range at ~4.75. + + Speech Mode: + When running in speech mode, ViSQOL uses a wideband model. It therefore expects input sample rates of 16kHz. + Input should be resampled to 16kHz. + As part of the speech mode processing, a root mean square implementation for voice activity detection + is performed on the reference signal to determine what parts of the signal have voice activity and + should therefore be included in the comparison. The signal is normalized before performing the voice + activity detection. + Input signals can be multi-channel, but they will be down-mixed to mono for performing the comparison. + Speech mode is scaled to have a maximum MOS of 5.0 to match previous version behavior. + + For more details, check the guidelines: https://github.com/google/visqol#general-guidelines-for-input + + Args: + visqol_bin (str): Path to the ViSQOL binary. + mode (str): ViSQOL computation mode, expecting "audio" or "speech". + model (str): Name of the model to use for similarity to quality model. + debug (bool): Whether to also get debug metrics from ViSQOL or not. + """ + SAMPLE_RATES_MODES = {"audio": 48_000, "speech": 16_000} + ALLOWED_SAMPLE_RATES = frozenset(SAMPLE_RATES_MODES.values()) + + def __init__(self, bin: tp.Union[Path, str], mode: str = "audio", + model: str = "libsvm_nu_svr_model.txt", debug: bool = False): + assert bin is not None and Path(bin).exists(), f"Could not find ViSQOL binary in specified path: {bin}" + self.visqol_bin = str(bin) + self.visqol_mode = mode + self.target_sr = self._get_target_sr(self.visqol_mode) + self.model = model + self.debug = debug + assert Path(self.visqol_model).exists(), \ + f"Could not find the specified model in ViSQOL install: {self.visqol_model}" + + def _get_target_sr(self, mode: str) -> int: + # returns target sampling rate for the corresponding ViSQOL mode. + if mode not in ViSQOL.SAMPLE_RATES_MODES: + raise ValueError( + f"Unsupported mode! Allowed are: {', '.join(ViSQOL.SAMPLE_RATES_MODES.keys())}" + ) + return ViSQOL.SAMPLE_RATES_MODES[mode] + + def _prepare_files( + self, ref_sig: torch.Tensor, deg_sig: torch.Tensor, sr: int, target_sr: int, pad_with_silence: bool = False + ): + # prepare files for ViSQOL evaluation. + assert target_sr in ViSQOL.ALLOWED_SAMPLE_RATES + assert len(ref_sig) == len(deg_sig), ( + "Expects same number of ref and degraded inputs", + f" but ref len {len(ref_sig)} != deg len {len(deg_sig)}" + ) + # resample audio if needed + if sr != target_sr: + transform = torchaudio.transforms.Resample(sr, target_sr) + pad = int(0.5 * target_sr) + rs_ref = [] + rs_deg = [] + for i in range(len(ref_sig)): + rs_ref_i = transform(ref_sig[i]) + rs_deg_i = transform(deg_sig[i]) + if pad_with_silence: + rs_ref_i = torch.nn.functional.pad(rs_ref_i, (pad, pad), mode='constant', value=0) + rs_deg_i = torch.nn.functional.pad(rs_deg_i, (pad, pad), mode='constant', value=0) + rs_ref.append(rs_ref_i) + rs_deg.append(rs_deg_i) + ref_sig = torch.stack(rs_ref) + deg_sig = torch.stack(rs_deg) + # save audio chunks to tmp dir and create csv + tmp_dir = Path(tempfile.mkdtemp()) + try: + tmp_input_csv_path = tmp_dir / "input.csv" + tmp_results_csv_path = tmp_dir / "results.csv" + tmp_debug_json_path = tmp_dir / "debug.json" + with open(tmp_input_csv_path, "w") as csv_file: + csv_writer = csv.writer(csv_file) + csv_writer.writerow(["reference", "degraded"]) + for i in range(len(ref_sig)): + tmp_ref_filename = tmp_dir / f"ref_{i}.wav" + tmp_deg_filename = tmp_dir / f"deg_{i}.wav" + torchaudio.save( + tmp_ref_filename, + torch.clamp(ref_sig[i], min=-0.99, max=0.99), + sample_rate=target_sr, + bits_per_sample=16, + encoding="PCM_S" + ) + torchaudio.save( + tmp_deg_filename, + torch.clamp(deg_sig[i], min=-0.99, max=0.99), + sample_rate=target_sr, + bits_per_sample=16, + encoding="PCM_S" + ) + csv_writer.writerow([str(tmp_ref_filename), str(tmp_deg_filename)]) + return tmp_dir, tmp_input_csv_path, tmp_results_csv_path, tmp_debug_json_path + except Exception as e: + logger.error("Exception occurred when preparing files for ViSQOL: %s", e) + return tmp_dir, None, None, None + + def _flush_files(self, tmp_dir: tp.Union[Path, str]): + # flush tmp files used to compute ViSQOL. + shutil.rmtree(str(tmp_dir)) + + def _collect_moslqo_score(self, results_csv_path: tp.Union[Path, str]) -> float: + # collect results for each evaluated pair and return averaged moslqo score. + with open(results_csv_path, "r") as csv_file: + reader = csv.DictReader(csv_file) + moslqo_scores = [float(row["moslqo"]) for row in reader] + if len(moslqo_scores) > 0: + return sum(moslqo_scores) / len(moslqo_scores) + else: + return 0.0 + + def _collect_debug_data(self, debug_json_path: tp.Union[Path, str]) -> dict: + # collect debug data for the visqol inference. + with open(debug_json_path, "r") as f: + data = json.load(f) + return data + + @property + def visqol_model(self): + return f'{self.visqol_bin}/model/{self.model}' + + def _run_visqol( + self, + input_csv_path: tp.Union[Path, str], + results_csv_path: tp.Union[Path, str], + debug_csv_path: tp.Optional[tp.Union[Path, str]], + ): + input_csv_path = str(input_csv_path) + results_csv_path = str(results_csv_path) + debug_csv_path = str(debug_csv_path) + cmd = [ + f'{self.visqol_bin}/bazel-bin/visqol', + '--batch_input_csv', f'{input_csv_path}', + '--results_csv', f'{results_csv_path}' + ] + if debug_csv_path is not None: + cmd += ['--output_debug', f'{debug_csv_path}'] + if self.visqol_mode == "speech": + cmd += ['--use_speech_mode'] + cmd += ['--similarity_to_quality_model', f'{self.visqol_model}'] + result = subprocess.run(cmd, capture_output=True) + if result.returncode: + logger.error("Error with visqol: \n %s \n %s", result.stdout.decode(), result.stderr.decode()) + raise RuntimeError("Error while executing visqol") + result.check_returncode() + + def __call__( + self, + ref_sig: torch.Tensor, + deg_sig: torch.Tensor, + sr: int, + pad_with_silence: bool = False, + ): + """Calculate the ViSQOL metric for a pair of audio signals at a given sample rate. + Args: + ref_sig (torch.Tensor): Reference signals as [B, C, T]. + deg_sig (torch.Tensor): Degraded signals as [B, C, T]. + sr (int): Sample rate of the two audio signals. + pad_with_silence (bool): Whether to pad the file with silences as recommended + in visqol guidelines (see: https://github.com/google/visqol#general-guidelines-for-input). + Returns: + float: The ViSQOL score or mean score for the batch. + """ + logger.debug(f"Calculating visqol with mode={self.visqol_mode} on {len(ref_sig)} samples") + tmp_dir, input_csv, results_csv, debug_json = self._prepare_files( + ref_sig, deg_sig, sr, self.target_sr, pad_with_silence + ) + try: + if input_csv and results_csv: + self._run_visqol( + input_csv, + results_csv, + debug_json if self.debug else None, + ) + mosqol = self._collect_moslqo_score(results_csv) + return mosqol + else: + raise RuntimeError("Something unexpected happened when running VISQOL!") + except Exception as e: + logger.error("Exception occurred when running ViSQOL: %s", e) + finally: + self._flush_files(tmp_dir) diff --git a/audiocraft/models/__init__.py b/audiocraft/models/__init__.py new file mode 100644 index 0000000..b7032ea --- /dev/null +++ b/audiocraft/models/__init__.py @@ -0,0 +1,23 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +Models for EnCodec, AudioGen, MusicGen, as well as the generic LMModel. +""" +# flake8: noqa +from . import builders, loaders +from .encodec import ( + CompressionModel, EncodecModel, DAC, + HFEncodecModel, HFEncodecCompressionModel) +from .audiogen import AudioGen +from .lm import LMModel +from .lm_magnet import MagnetLMModel +from .flow_matching import FlowMatchingModel +from .multibanddiffusion import MultiBandDiffusion +from .musicgen import MusicGen +from .magnet import MAGNeT +from .unet import DiffusionUnet +from .watermark import WMModel +from .jasco import JASCO diff --git a/audiocraft/models/audiogen.py b/audiocraft/models/audiogen.py new file mode 100644 index 0000000..5f0e7f3 --- /dev/null +++ b/audiocraft/models/audiogen.py @@ -0,0 +1,93 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Main model for using AudioGen. This will combine all the required components +and provide easy access to the generation API. +""" + +import typing as tp + +import torch + +from .encodec import CompressionModel +from .genmodel import BaseGenModel +from .lm import LMModel +from .builders import get_debug_compression_model, get_debug_lm_model +from .loaders import load_compression_model, load_lm_model + + +class AudioGen(BaseGenModel): + """AudioGen main model with convenient generation API. + + Args: + name (str): name of the model. + compression_model (CompressionModel): Compression model + used to map audio to invertible discrete representations. + lm (LMModel): Language model over discrete representations. + max_duration (float, optional): maximum duration the model can produce, + otherwise, inferred from the training params. + """ + def __init__(self, name: str, compression_model: CompressionModel, lm: LMModel, + max_duration: tp.Optional[float] = None): + super().__init__(name, compression_model, lm, max_duration) + self.set_generation_params(duration=5) # default duration + + @staticmethod + def get_pretrained(name: str = 'facebook/audiogen-medium', device=None): + """Return pretrained model, we provide a single model for now: + - facebook/audiogen-medium (1.5B), text to sound, + # see: https://huggingface.co/facebook/audiogen-medium + """ + if device is None: + if torch.cuda.device_count(): + device = 'cuda' + else: + device = 'cpu' + + if name == 'debug': + # used only for unit tests + compression_model = get_debug_compression_model(device, sample_rate=16000) + lm = get_debug_lm_model(device) + return AudioGen(name, compression_model, lm, max_duration=10) + + compression_model = load_compression_model(name, device=device) + lm = load_lm_model(name, device=device) + assert 'self_wav' not in lm.condition_provider.conditioners, \ + "AudioGen do not support waveform conditioning for now" + return AudioGen(name, compression_model, lm) + + def set_generation_params(self, use_sampling: bool = True, top_k: int = 250, + top_p: float = 0.0, temperature: float = 1.0, + duration: float = 10.0, cfg_coef: float = 3.0, + two_step_cfg: bool = False, extend_stride: float = 2): + """Set the generation parameters for AudioGen. + + Args: + use_sampling (bool, optional): Use sampling if True, else do argmax decoding. Defaults to True. + top_k (int, optional): top_k used for sampling. Defaults to 250. + top_p (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.0. + temperature (float, optional): Softmax temperature parameter. Defaults to 1.0. + duration (float, optional): Duration of the generated waveform. Defaults to 10.0. + cfg_coef (float, optional): Coefficient used for classifier free guidance. Defaults to 3.0. + two_step_cfg (bool, optional): If True, performs 2 forward for Classifier Free Guidance, + instead of batching together the two. This has some impact on how things + are padded but seems to have little impact in practice. + extend_stride: when doing extended generation (i.e. more than 10 seconds), by how much + should we extend the audio each time. Larger values will mean less context is + preserved, and shorter value will require extra computations. + """ + assert extend_stride < self.max_duration, "Cannot stride by more than max generation duration." + self.extend_stride = extend_stride + self.duration = duration + self.generation_params = { + 'use_sampling': use_sampling, + 'temp': temperature, + 'top_k': top_k, + 'top_p': top_p, + 'cfg_coef': cfg_coef, + 'two_step_cfg': two_step_cfg, + } diff --git a/audiocraft/models/builders.py b/audiocraft/models/builders.py new file mode 100644 index 0000000..1ed3d36 --- /dev/null +++ b/audiocraft/models/builders.py @@ -0,0 +1,397 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +All the functions to build the relevant models and modules +from the Hydra config. +""" + +import typing as tp + +import omegaconf +import torch + +import audiocraft + +from .. import quantization as qt +from ..modules.codebooks_patterns import (CoarseFirstPattern, + CodebooksPatternProvider, + DelayedPatternProvider, + MusicLMPattern, + ParallelPatternProvider, + UnrolledPatternProvider) +from ..modules.conditioners import (BaseConditioner, ChromaStemConditioner, + CLAPEmbeddingConditioner, + ConditionFuser, JascoCondConst, + ConditioningProvider, LUTConditioner, + T5Conditioner, StyleConditioner) +from ..modules.jasco_conditioners import (JascoConditioningProvider, ChordsEmbConditioner, + DrumsConditioner, MelodyConditioner) +from ..modules.diffusion_schedule import MultiBandProcessor, SampleProcessor +from ..utils.utils import dict_from_config +from .encodec import (CompressionModel, EncodecModel, + InterleaveStereoCompressionModel) +from .lm import LMModel +from .lm_magnet import MagnetLMModel +from .flow_matching import FlowMatchingModel +from .unet import DiffusionUnet +from .watermark import WMModel + + +def get_quantizer( + quantizer: str, cfg: omegaconf.DictConfig, dimension: int +) -> qt.BaseQuantizer: + klass = {"no_quant": qt.DummyQuantizer, "rvq": qt.ResidualVectorQuantizer}[ + quantizer + ] + kwargs = dict_from_config(getattr(cfg, quantizer)) + if quantizer != "no_quant": + kwargs["dimension"] = dimension + return klass(**kwargs) + + +def get_encodec_autoencoder(encoder_name: str, cfg: omegaconf.DictConfig): + if encoder_name == "seanet": + kwargs = dict_from_config(getattr(cfg, "seanet")) + encoder_override_kwargs = kwargs.pop("encoder") + decoder_override_kwargs = kwargs.pop("decoder") + encoder_kwargs = {**kwargs, **encoder_override_kwargs} + decoder_kwargs = {**kwargs, **decoder_override_kwargs} + encoder = audiocraft.modules.SEANetEncoder(**encoder_kwargs) + decoder = audiocraft.modules.SEANetDecoder(**decoder_kwargs) + return encoder, decoder + else: + raise KeyError(f"Unexpected compression model {cfg.compression_model}") + + +def get_compression_model(cfg: omegaconf.DictConfig) -> CompressionModel: + """Instantiate a compression model.""" + if cfg.compression_model == "encodec": + kwargs = dict_from_config(getattr(cfg, "encodec")) + encoder_name = kwargs.pop("autoencoder") + quantizer_name = kwargs.pop("quantizer") + encoder, decoder = get_encodec_autoencoder(encoder_name, cfg) + quantizer = get_quantizer(quantizer_name, cfg, encoder.dimension) + frame_rate = kwargs["sample_rate"] // encoder.hop_length + renormalize = kwargs.pop("renormalize", False) + # deprecated params + kwargs.pop("renorm", None) + return EncodecModel( + encoder, + decoder, + quantizer, + frame_rate=frame_rate, + renormalize=renormalize, + **kwargs, + ).to(cfg.device) + else: + raise KeyError(f"Unexpected compression model {cfg.compression_model}") + + +def get_jasco_model(cfg: omegaconf.DictConfig, + compression_model: tp.Optional[CompressionModel] = None) -> FlowMatchingModel: + kwargs = dict_from_config(getattr(cfg, "transformer_lm")) + attribute_dropout = dict_from_config(getattr(cfg, "attribute_dropout")) + cls_free_guidance = dict_from_config(getattr(cfg, "classifier_free_guidance")) + cfg_prob = cls_free_guidance["training_dropout"] + cfg_coef = cls_free_guidance["inference_coef"] + fuser = get_condition_fuser(cfg) + condition_provider = get_conditioner_provider(kwargs["dim"], cfg).to(cfg.device) + if JascoCondConst.DRM.value in condition_provider.conditioners: # use self_wav for drums + assert compression_model is not None + + # use compression model for drums conditioning + condition_provider.conditioners.self_wav.compression_model = compression_model + condition_provider.conditioners.self_wav.compression_model.requires_grad_(False) + + # downcast to jasco conditioning provider + seq_len = cfg.compression_model_framerate * cfg.dataset.segment_duration + chords_card = cfg.conditioners.chords.chords_emb.card if JascoCondConst.CRD.value in cfg.conditioners else -1 + condition_provider = JascoConditioningProvider(device=condition_provider.device, + conditioners=condition_provider.conditioners, + chords_card=chords_card, + sequence_length=seq_len) + + if len(fuser.fuse2cond["cross"]) > 0: # enforce cross-att programmatically + kwargs["cross_attention"] = True + + kwargs.pop("n_q", None) + kwargs.pop("card", None) + + return FlowMatchingModel( + condition_provider=condition_provider, + fuser=fuser, + cfg_dropout=cfg_prob, + cfg_coef=cfg_coef, + attribute_dropout=attribute_dropout, + dtype=getattr(torch, cfg.dtype), + device=cfg.device, + **kwargs, + ).to(cfg.device) + + +def get_lm_model(cfg: omegaconf.DictConfig) -> LMModel: + """Instantiate a transformer LM.""" + if cfg.lm_model in ["transformer_lm", "transformer_lm_magnet"]: + kwargs = dict_from_config(getattr(cfg, "transformer_lm")) + n_q = kwargs["n_q"] + q_modeling = kwargs.pop("q_modeling", None) + codebooks_pattern_cfg = getattr(cfg, "codebooks_pattern") + attribute_dropout = dict_from_config(getattr(cfg, "attribute_dropout")) + cls_free_guidance = dict_from_config(getattr(cfg, "classifier_free_guidance")) + cfg_prob, cfg_coef = ( + cls_free_guidance["training_dropout"], + cls_free_guidance["inference_coef"], + ) + fuser = get_condition_fuser(cfg) + condition_provider = get_conditioner_provider(kwargs["dim"], cfg).to(cfg.device) + if len(fuser.fuse2cond["cross"]) > 0: # enforce cross-att programmatically + kwargs["cross_attention"] = True + if codebooks_pattern_cfg.modeling is None: + assert ( + q_modeling is not None + ), "LM model should either have a codebook pattern defined or transformer_lm.q_modeling" + codebooks_pattern_cfg = omegaconf.OmegaConf.create( + {"modeling": q_modeling, "delay": {"delays": list(range(n_q))}} + ) + + pattern_provider = get_codebooks_pattern_provider(n_q, codebooks_pattern_cfg) + lm_class = MagnetLMModel if cfg.lm_model == "transformer_lm_magnet" else LMModel + return lm_class( + pattern_provider=pattern_provider, + condition_provider=condition_provider, + fuser=fuser, + cfg_dropout=cfg_prob, + cfg_coef=cfg_coef, + attribute_dropout=attribute_dropout, + dtype=getattr(torch, cfg.dtype), + device=cfg.device, + **kwargs, + ).to(cfg.device) + else: + raise KeyError(f"Unexpected LM model {cfg.lm_model}") + + +def get_conditioner_provider( + output_dim: int, cfg: omegaconf.DictConfig +) -> ConditioningProvider: + """Instantiate a conditioning model.""" + device = cfg.device + duration = cfg.dataset.segment_duration + cfg = getattr(cfg, "conditioners") + dict_cfg = {} if cfg is None else dict_from_config(cfg) + conditioners: tp.Dict[str, BaseConditioner] = {} + condition_provider_args = dict_cfg.pop("args", {}) + condition_provider_args.pop("merge_text_conditions_p", None) + condition_provider_args.pop("drop_desc_p", None) + + for cond, cond_cfg in dict_cfg.items(): + model_type = cond_cfg["model"] + model_args = cond_cfg[model_type] + if model_type == "t5": + conditioners[str(cond)] = T5Conditioner( + output_dim=output_dim, device=device, **model_args + ) + elif model_type == "lut": + conditioners[str(cond)] = LUTConditioner( + output_dim=output_dim, **model_args + ) + elif model_type == "chroma_stem": + conditioners[str(cond)] = ChromaStemConditioner( + output_dim=output_dim, duration=duration, device=device, **model_args + ) + elif model_type in {"chords_emb", "drum_latents", "melody"}: + conditioners_classes = {"chords_emb": ChordsEmbConditioner, + "drum_latents": DrumsConditioner, + "melody": MelodyConditioner} + conditioner_class = conditioners_classes[model_type] + conditioners[str(cond)] = conditioner_class(device=device, **model_args) + elif model_type == "clap": + conditioners[str(cond)] = CLAPEmbeddingConditioner( + output_dim=output_dim, device=device, **model_args + ) + elif model_type == 'style': + conditioners[str(cond)] = StyleConditioner( + output_dim=output_dim, + device=device, + **model_args + ) + else: + raise ValueError(f"Unrecognized conditioning model: {model_type}") + conditioner = ConditioningProvider( + conditioners, device=device, **condition_provider_args + ) + return conditioner + + +def get_condition_fuser(cfg: omegaconf.DictConfig) -> ConditionFuser: + """Instantiate a condition fuser object.""" + fuser_cfg = getattr(cfg, "fuser") + fuser_methods = ["sum", "cross", "prepend", "ignore", "input_interpolate"] + fuse2cond = {k: fuser_cfg[k] for k in fuser_methods if k in fuser_cfg} + kwargs = {k: v for k, v in fuser_cfg.items() if k not in fuser_methods} + fuser = ConditionFuser(fuse2cond=fuse2cond, **kwargs) + return fuser + + +def get_codebooks_pattern_provider( + n_q: int, cfg: omegaconf.DictConfig +) -> CodebooksPatternProvider: + """Instantiate a codebooks pattern provider object.""" + pattern_providers = { + "parallel": ParallelPatternProvider, + "delay": DelayedPatternProvider, + "unroll": UnrolledPatternProvider, + "coarse_first": CoarseFirstPattern, + "musiclm": MusicLMPattern, + } + name = cfg.modeling + kwargs = dict_from_config(cfg.get(name)) if hasattr(cfg, name) else {} + klass = pattern_providers[name] + return klass(n_q, **kwargs) + + +def get_debug_compression_model(device="cpu", sample_rate: int = 32000): + """Instantiate a debug compression model to be used for unit tests.""" + assert sample_rate in [ + 16000, + 32000, + ], "unsupported sample rate for debug compression model" + model_ratios = { + 16000: [10, 8, 8], # 25 Hz at 16kHz + 32000: [10, 8, 16], # 25 Hz at 32kHz + } + ratios: tp.List[int] = model_ratios[sample_rate] + frame_rate = 25 + seanet_kwargs: dict = { + "n_filters": 4, + "n_residual_layers": 1, + "dimension": 32, + "ratios": ratios, + } + encoder = audiocraft.modules.SEANetEncoder(**seanet_kwargs) + decoder = audiocraft.modules.SEANetDecoder(**seanet_kwargs) + quantizer = qt.ResidualVectorQuantizer(dimension=32, bins=400, n_q=4) + init_x = torch.randn(8, 32, 128) + quantizer(init_x, 1) # initialize kmeans etc. + compression_model = EncodecModel( + encoder, + decoder, + quantizer, + frame_rate=frame_rate, + sample_rate=sample_rate, + channels=1, + ).to(device) + return compression_model.eval() + + +def get_diffusion_model(cfg: omegaconf.DictConfig): + # TODO Find a way to infer the channels from dset + channels = cfg.channels + num_steps = cfg.schedule.num_steps + return DiffusionUnet(chin=channels, num_steps=num_steps, **cfg.diffusion_unet) + + +def get_processor(cfg, sample_rate: int = 24000): + sample_processor = SampleProcessor() + if cfg.use: + kw = dict(cfg) + kw.pop("use") + kw.pop("name") + if cfg.name == "multi_band_processor": + sample_processor = MultiBandProcessor(sample_rate=sample_rate, **kw) + return sample_processor + + +def get_debug_lm_model(device="cpu"): + """Instantiate a debug LM to be used for unit tests.""" + pattern = DelayedPatternProvider(n_q=4) + dim = 16 + providers = { + "description": LUTConditioner( + n_bins=128, dim=dim, output_dim=dim, tokenizer="whitespace" + ), + } + condition_provider = ConditioningProvider(providers) + fuser = ConditionFuser( + {"cross": ["description"], "prepend": [], "sum": [], "input_interpolate": []} + ) + lm = LMModel( + pattern, + condition_provider, + fuser, + n_q=4, + card=400, + dim=dim, + num_heads=4, + custom=True, + num_layers=2, + cross_attention=True, + causal=True, + ) + return lm.to(device).eval() + + +def get_wrapped_compression_model( + compression_model: CompressionModel, cfg: omegaconf.DictConfig +) -> CompressionModel: + if hasattr(cfg, "interleave_stereo_codebooks"): + if cfg.interleave_stereo_codebooks.use: + kwargs = dict_from_config(cfg.interleave_stereo_codebooks) + kwargs.pop("use") + compression_model = InterleaveStereoCompressionModel( + compression_model, **kwargs + ) + if hasattr(cfg, "compression_model_n_q"): + if cfg.compression_model_n_q is not None: + compression_model.set_num_codebooks(cfg.compression_model_n_q) + return compression_model + + +def get_watermark_model(cfg: omegaconf.DictConfig) -> WMModel: + """Build a WMModel based by audioseal. This requires audioseal to be installed""" + import audioseal + + from .watermark import AudioSeal + + # Builder encoder and decoder directly using audiocraft API to avoid cyclic import + assert hasattr( + cfg, "seanet" + ), "Missing required `seanet` parameters in AudioSeal config" + encoder, decoder = get_encodec_autoencoder("seanet", cfg) + + # Build message processor + kwargs = ( + dict_from_config(getattr(cfg, "audioseal")) if hasattr(cfg, "audioseal") else {} + ) + nbits = kwargs.get("nbits", 0) + hidden_size = getattr(cfg.seanet, "dimension", 128) + msg_processor = audioseal.MsgProcessor(nbits, hidden_size=hidden_size) + + # Build detector using audioseal API + def _get_audioseal_detector(): + # We don't need encoder and decoder params from seanet, remove them + seanet_cfg = dict_from_config(cfg.seanet) + seanet_cfg.pop("encoder") + seanet_cfg.pop("decoder") + detector_cfg = dict_from_config(cfg.detector) + + typed_seanet_cfg = audioseal.builder.SEANetConfig(**seanet_cfg) + typed_detector_cfg = audioseal.builder.DetectorConfig(**detector_cfg) + _cfg = audioseal.builder.AudioSealDetectorConfig( + nbits=nbits, seanet=typed_seanet_cfg, detector=typed_detector_cfg + ) + return audioseal.builder.create_detector(_cfg) + + detector = _get_audioseal_detector() + generator = audioseal.AudioSealWM( + encoder=encoder, decoder=decoder, msg_processor=msg_processor + ) + model = AudioSeal(generator=generator, detector=detector, nbits=nbits) + + device = torch.device(getattr(cfg, "device", "cpu")) + dtype = getattr(torch, getattr(cfg, "dtype", "float32")) + return model.to(device=device, dtype=dtype) diff --git a/audiocraft/models/encodec.py b/audiocraft/models/encodec.py new file mode 100644 index 0000000..627fddd --- /dev/null +++ b/audiocraft/models/encodec.py @@ -0,0 +1,506 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Compression models or wrapper around existing models. +Also defines the main interface that a model must follow to be usable as an audio tokenizer. +""" + +from abc import ABC, abstractmethod +import logging +import math +from pathlib import Path +import typing as tp + +from einops import rearrange +import numpy as np +import torch +from torch import nn +from transformers import EncodecModel as HFEncodecModel + +from .. import quantization as qt + + +logger = logging.getLogger() + + +class CompressionModel(ABC, nn.Module): + """Base API for all compression models that aim at being used as audio tokenizers + with a language model. + """ + + @abstractmethod + def forward(self, x: torch.Tensor) -> qt.QuantizedResult: + ... + + @abstractmethod + def encode(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + """See `EncodecModel.encode`.""" + ... + + @abstractmethod + def decode(self, codes: torch.Tensor, scale: tp.Optional[torch.Tensor] = None): + """See `EncodecModel.decode`.""" + ... + + @abstractmethod + def decode_latent(self, codes: torch.Tensor): + """Decode from the discrete codes to continuous latent space.""" + ... + + @property + @abstractmethod + def channels(self) -> int: + ... + + @property + @abstractmethod + def frame_rate(self) -> float: + ... + + @property + @abstractmethod + def sample_rate(self) -> int: + ... + + @property + @abstractmethod + def cardinality(self) -> int: + ... + + @property + @abstractmethod + def num_codebooks(self) -> int: + ... + + @property + @abstractmethod + def total_codebooks(self) -> int: + ... + + @abstractmethod + def set_num_codebooks(self, n: int): + """Set the active number of codebooks used by the quantizer.""" + ... + + @staticmethod + def get_pretrained( + name: str, device: tp.Union[torch.device, str] = 'cpu' + ) -> 'CompressionModel': + """Instantiate a CompressionModel from a given pretrained model. + + Args: + name (Path or str): name of the pretrained model. See after. + device (torch.device or str): Device on which the model is loaded. + + Pretrained models: + - dac_44khz (https://github.com/descriptinc/descript-audio-codec) + - dac_24khz (same) + - facebook/encodec_24khz (https://huggingface.co/facebook/encodec_24khz) + - facebook/encodec_32khz (https://huggingface.co/facebook/encodec_32khz) + - your own model on Hugging Face. Export instructions to come... + """ + + from . import builders, loaders + model: CompressionModel + if name in ['dac_44khz', 'dac_24khz']: + model_type = name.split('_')[1] + logger.info("Getting pretrained compression model from DAC %s", model_type) + model = DAC(model_type) + elif name in ['debug_compression_model']: + logger.info("Getting pretrained compression model for debug") + model = builders.get_debug_compression_model() + elif Path(name).exists(): + # We assume here if the path exists that it is in fact an AC checkpoint + # that was exported using `audiocraft.utils.export` functions. + model = loaders.load_compression_model(name, device=device) + else: + logger.info("Getting pretrained compression model from HF %s", name) + hf_model = HFEncodecModel.from_pretrained(name) + model = HFEncodecCompressionModel(hf_model).to(device) + return model.to(device).eval() + + +class EncodecModel(CompressionModel): + """Encodec model operating on the raw waveform. + + Args: + encoder (nn.Module): Encoder network. + decoder (nn.Module): Decoder network. + quantizer (qt.BaseQuantizer): Quantizer network. + frame_rate (int): Frame rate for the latent representation. + sample_rate (int): Audio sample rate. + channels (int): Number of audio channels. + causal (bool): Whether to use a causal version of the model. + renormalize (bool): Whether to renormalize the audio before running the model. + """ + # we need assignment to override the property in the abstract class, + # I couldn't find a better way... + frame_rate: float = 0 + sample_rate: int = 0 + channels: int = 0 + + def __init__(self, + encoder: nn.Module, + decoder: nn.Module, + quantizer: qt.BaseQuantizer, + frame_rate: int, + sample_rate: int, + channels: int, + causal: bool = False, + renormalize: bool = False): + super().__init__() + self.encoder = encoder + self.decoder = decoder + self.quantizer = quantizer + self.frame_rate = frame_rate + self.sample_rate = sample_rate + self.channels = channels + self.renormalize = renormalize + self.causal = causal + if self.causal: + # we force disabling here to avoid handling linear overlap of segments + # as supported in original EnCodec codebase. + assert not self.renormalize, 'Causal model does not support renormalize' + + @property + def total_codebooks(self): + """Total number of quantizer codebooks available.""" + return self.quantizer.total_codebooks + + @property + def num_codebooks(self): + """Active number of codebooks used by the quantizer.""" + return self.quantizer.num_codebooks + + def set_num_codebooks(self, n: int): + """Set the active number of codebooks used by the quantizer.""" + self.quantizer.set_num_codebooks(n) + + @property + def cardinality(self): + """Cardinality of each codebook.""" + return self.quantizer.bins + + def preprocess(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + scale: tp.Optional[torch.Tensor] + if self.renormalize: + mono = x.mean(dim=1, keepdim=True) + volume = mono.pow(2).mean(dim=2, keepdim=True).sqrt() + scale = 1e-8 + volume + x = x / scale + scale = scale.view(-1, 1) + else: + scale = None + return x, scale + + def postprocess(self, + x: torch.Tensor, + scale: tp.Optional[torch.Tensor] = None) -> torch.Tensor: + if scale is not None: + assert self.renormalize + x = x * scale.view(-1, 1, 1) + return x + + def forward(self, x: torch.Tensor) -> qt.QuantizedResult: + assert x.dim() == 3 + length = x.shape[-1] + x, scale = self.preprocess(x) + + emb = self.encoder(x) + q_res = self.quantizer(emb, self.frame_rate) + out = self.decoder(q_res.x) + + # remove extra padding added by the encoder and decoder + assert out.shape[-1] >= length, (out.shape[-1], length) + out = out[..., :length] + + q_res.x = self.postprocess(out, scale) + + return q_res + + def encode(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + """Encode the given input tensor to quantized representation along with scale parameter. + + Args: + x (torch.Tensor): Float tensor of shape [B, C, T] + + Returns: + codes, scale (tuple of torch.Tensor, torch.Tensor): Tuple composed of: + codes: a float tensor of shape [B, K, T] with K the number of codebooks used and T the timestep. + scale: a float tensor containing the scale for audio renormalization. + """ + assert x.dim() == 3 + x, scale = self.preprocess(x) + emb = self.encoder(x) + codes = self.quantizer.encode(emb) + return codes, scale + + def decode(self, codes: torch.Tensor, scale: tp.Optional[torch.Tensor] = None): + """Decode the given codes to a reconstructed representation, using the scale to perform + audio denormalization if needed. + + Args: + codes (torch.Tensor): Int tensor of shape [B, K, T] + scale (torch.Tensor, optional): Float tensor containing the scale value. + + Returns: + out (torch.Tensor): Float tensor of shape [B, C, T], the reconstructed audio. + """ + emb = self.decode_latent(codes) + out = self.decoder(emb) + out = self.postprocess(out, scale) + # out contains extra padding added by the encoder and decoder + return out + + def decode_latent(self, codes: torch.Tensor): + """Decode from the discrete codes to continuous latent space.""" + return self.quantizer.decode(codes) + + +class DAC(CompressionModel): + def __init__(self, model_type: str = "44khz"): + super().__init__() + try: + import dac.utils + except ImportError: + raise RuntimeError("Could not import dac, make sure it is installed, " + "please run `pip install descript-audio-codec`") + self.model = dac.utils.load_model(model_type=model_type) + self.n_quantizers = self.total_codebooks + self.model.eval() + + def forward(self, x: torch.Tensor) -> qt.QuantizedResult: + # We don't support training with this. + raise NotImplementedError("Forward and training with DAC not supported.") + + def encode(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + codes = self.model.encode(x, self.n_quantizers)[1] + return codes[:, :self.n_quantizers], None + + def decode(self, codes: torch.Tensor, scale: tp.Optional[torch.Tensor] = None): + assert scale is None + z_q = self.decode_latent(codes) + return self.model.decode(z_q) + + def decode_latent(self, codes: torch.Tensor): + """Decode from the discrete codes to continuous latent space.""" + return self.model.quantizer.from_codes(codes)[0] + + @property + def channels(self) -> int: + return 1 + + @property + def frame_rate(self) -> float: + return self.model.sample_rate / self.model.hop_length + + @property + def sample_rate(self) -> int: + return self.model.sample_rate + + @property + def cardinality(self) -> int: + return self.model.codebook_size + + @property + def num_codebooks(self) -> int: + return self.n_quantizers + + @property + def total_codebooks(self) -> int: + return self.model.n_codebooks + + def set_num_codebooks(self, n: int): + """Set the active number of codebooks used by the quantizer. + """ + assert n >= 1 + assert n <= self.total_codebooks + self.n_quantizers = n + + +class HFEncodecCompressionModel(CompressionModel): + """Wrapper around HuggingFace Encodec. + """ + def __init__(self, model: HFEncodecModel): + super().__init__() + self.model = model + bws = self.model.config.target_bandwidths + num_codebooks = [ + bw * 1000 / (self.frame_rate * math.log2(self.cardinality)) + for bw in bws + ] + deltas = [nc - int(nc) for nc in num_codebooks] + # Checking we didn't do some bad maths and we indeed have integers! + assert all(deltas) <= 1e-3, deltas + self.possible_num_codebooks = [int(nc) for nc in num_codebooks] + self.set_num_codebooks(max(self.possible_num_codebooks)) + + def forward(self, x: torch.Tensor) -> qt.QuantizedResult: + # We don't support training with this. + raise NotImplementedError("Forward and training with HF EncodecModel not supported.") + + def encode(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + bandwidth_index = self.possible_num_codebooks.index(self.num_codebooks) + bandwidth = self.model.config.target_bandwidths[bandwidth_index] + res = self.model.encode(x, None, bandwidth) + assert len(res[0]) == 1 + assert len(res[1]) == 1 + return res[0][0], res[1][0] + + def decode(self, codes: torch.Tensor, scale: tp.Optional[torch.Tensor] = None): + if scale is None: + scales = [None] # type: ignore + else: + scales = scale # type: ignore + res = self.model.decode(codes[None], scales) + return res[0] + + def decode_latent(self, codes: torch.Tensor): + """Decode from the discrete codes to continuous latent space.""" + return self.model.quantizer.decode(codes.transpose(0, 1)) + + @property + def channels(self) -> int: + return self.model.config.audio_channels + + @property + def frame_rate(self) -> float: + hop_length = int(np.prod(self.model.config.upsampling_ratios)) + return self.sample_rate / hop_length + + @property + def sample_rate(self) -> int: + return self.model.config.sampling_rate + + @property + def cardinality(self) -> int: + return self.model.config.codebook_size + + @property + def num_codebooks(self) -> int: + return self._num_codebooks + + @property + def total_codebooks(self) -> int: + return max(self.possible_num_codebooks) + + def set_num_codebooks(self, n: int): + """Set the active number of codebooks used by the quantizer. + """ + if n not in self.possible_num_codebooks: + raise ValueError(f"Allowed values for num codebooks: {self.possible_num_codebooks}") + self._num_codebooks = n + + +class InterleaveStereoCompressionModel(CompressionModel): + """Wraps a CompressionModel to support stereo inputs. The wrapped model + will be applied independently to the left and right channels, and both codebooks + will be interleaved. If the wrapped model returns a representation `[B, K ,T]` per + channel, then the output will be `[B, K * 2, T]` or `[B, K, T * 2]` depending on + `per_timestep`. + + Args: + model (CompressionModel): Compression model to wrap. + per_timestep (bool): Whether to interleave on the timestep dimension + or on the codebooks dimension. + """ + def __init__(self, model: CompressionModel, per_timestep: bool = False): + super().__init__() + self.model = model + self.per_timestep = per_timestep + assert self.model.channels == 1, "Wrapped model is expected to be for monophonic audio" + + @property + def total_codebooks(self): + return self.model.total_codebooks + + @property + def num_codebooks(self): + """Active number of codebooks used by the quantizer. + + ..Warning:: this reports the number of codebooks after the interleaving + of the codebooks! + """ + return self.model.num_codebooks if self.per_timestep else self.model.num_codebooks * 2 + + def set_num_codebooks(self, n: int): + """Set the active number of codebooks used by the quantizer. + + ..Warning:: this sets the number of codebooks before the interleaving! + """ + self.model.set_num_codebooks(n) + + @property + def num_virtual_steps(self) -> float: + """Return the number of virtual steps, e.g. one real step + will be split into that many steps. + """ + return 2 if self.per_timestep else 1 + + @property + def frame_rate(self) -> float: + return self.model.frame_rate * self.num_virtual_steps + + @property + def sample_rate(self) -> int: + return self.model.sample_rate + + @property + def channels(self) -> int: + return 2 + + @property + def cardinality(self): + """Cardinality of each codebook. + """ + return self.model.cardinality + + def forward(self, x: torch.Tensor) -> qt.QuantizedResult: + raise NotImplementedError("Not supported, use encode and decode.") + + def encode(self, x: torch.Tensor) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + B, C, T = x.shape + assert C == self.channels, f"Expecting stereo audio but audio num channels is {C}" + + indices_c0, scales_c0 = self.model.encode(x[:, 0, ...].unsqueeze(1)) + indices_c1, scales_c1 = self.model.encode(x[:, 1, ...].unsqueeze(1)) + indices = torch.stack([indices_c0, indices_c1], dim=0) + scales: tp.Optional[torch.Tensor] = None + if scales_c0 is not None and scales_c1 is not None: + scales = torch.stack([scales_c0, scales_c1], dim=1) + + if self.per_timestep: + indices = rearrange(indices, 'c b k t -> b k (t c)', c=2) + else: + indices = rearrange(indices, 'c b k t -> b (k c) t', c=2) + + return (indices, scales) + + def get_left_right_codes(self, codes: torch.Tensor) -> tp.Tuple[torch.Tensor, torch.Tensor]: + if self.per_timestep: + codes = rearrange(codes, 'b k (t c) -> c b k t', c=2) + else: + codes = rearrange(codes, 'b (k c) t -> c b k t', c=2) + return codes[0], codes[1] + + def decode(self, codes: torch.Tensor, scale: tp.Optional[torch.Tensor] = None): + B, K, T = codes.shape + assert T % self.num_virtual_steps == 0, "Provided codes' number of timesteps does not match" + assert K == self.num_codebooks, "Provided codes' number of codebooks does not match" + + scale_c0, scale_c1 = None, None + if scale is not None: + assert scale.size(0) == B and scale.size(1) == 2, f"Scale has unexpected shape: {scale.shape}" + scale_c0 = scale[0, ...] + scale_c1 = scale[1, ...] + + codes_c0, codes_c1 = self.get_left_right_codes(codes) + audio_c0 = self.model.decode(codes_c0, scale_c0) + audio_c1 = self.model.decode(codes_c1, scale_c1) + return torch.cat([audio_c0, audio_c1], dim=1) + + def decode_latent(self, codes: torch.Tensor): + """Decode from the discrete codes to continuous latent space.""" + raise NotImplementedError("Not supported by interleaved stereo wrapped models.") diff --git a/audiocraft/models/flow_matching.py b/audiocraft/models/flow_matching.py new file mode 100644 index 0000000..1a8dd3c --- /dev/null +++ b/audiocraft/models/flow_matching.py @@ -0,0 +1,516 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from dataclasses import dataclass +from functools import partial +import logging +import math +import typing as tp +import torch +from torch import nn +from torchdiffeq import odeint # type: ignore +from ..modules.streaming import StreamingModule +from ..modules.transformer import create_norm_fn, StreamingTransformerLayer +from ..modules.unet_transformer import UnetTransformer +from ..modules.conditioners import ( + ConditionFuser, + ClassifierFreeGuidanceDropout, + AttributeDropout, + ConditioningAttributes, + JascoCondConst +) +from ..modules.jasco_conditioners import JascoConditioningProvider +from ..modules.activations import get_activation_fn + +from .lm import ConditionTensors, init_layer + + +logger = logging.getLogger(__name__) + + +@dataclass +class FMOutput: + latents: torch.Tensor # [B, T, D] + mask: torch.Tensor # [B, T] + + +class CFGTerm: + """ + Base class for Multi Source Classifier-Free Guidance (CFG) terms. This class represents a term in the CFG process, + which is used to guide the generation process by adjusting the influence of different conditions. + Attributes: + conditions (dict): A dictionary of conditions that influence the generation process. + weight (float): The weight of the CFG term, determining its influence on the generation. + """ + def __init__(self, conditions, weight): + self.conditions = conditions + self.weight = weight + + def drop_irrelevant_conds(self, conditions): + """ + Drops irrelevant conditions from the CFG term. This method should be implemented by subclasses. + Args: + conditions (dict): The conditions to be filtered. + Raises: + NotImplementedError: If the method is not implemented in a subclass. + """ + raise NotImplementedError("No base implementation for setting generation params.") + + +class AllCFGTerm(CFGTerm): + """ + A CFG term that retains all conditions. This class does not drop any condition. + """ + def __init__(self, conditions, weight): + super().__init__(conditions, weight) + self.drop_irrelevant_conds() + + def drop_irrelevant_conds(self): + pass + + +class NullCFGTerm(CFGTerm): + """ + A CFG term that drops all conditions, effectively nullifying their influence. + """ + def __init__(self, conditions, weight): + super().__init__(conditions, weight) + self.drop_irrelevant_conds() + + def drop_irrelevant_conds(self): + """ + Drops all conditions by applying a dropout with probability 1.0, effectively nullifying their influence. + """ + self.conditions = ClassifierFreeGuidanceDropout(p=1.0)( + samples=self.conditions, + cond_types=["wav", "text", "symbolic"]) + + +class TextCFGTerm(CFGTerm): + """ + A CFG term that selectively drops conditions based on specified dropout probabilities for different types + of conditions, such as 'symbolic' and 'wav'. + """ + def __init__(self, conditions, weight, model_att_dropout): + """ + Initializes a TextCFGTerm with specified conditions, weight, and model attention dropout configuration. + Args: + conditions (dict): The conditions to be used in the CFG process. + weight (float): The weight of the CFG term. + model_att_dropout (object): The attribute dropouts used by the model. + """ + super().__init__(conditions, weight) + if 'symbolic' in model_att_dropout.p: + self.drop_symbolics = {k: 1.0 for k in model_att_dropout.p['symbolic'].keys()} + else: + self.drop_symbolics = {} + if 'wav' in model_att_dropout.p: + self.drop_wav = {k: 1.0 for k in model_att_dropout.p['wav'].keys()} + else: + self.drop_wav = {} + self.drop_irrelevant_conds() + + def drop_irrelevant_conds(self): + self.conditions = AttributeDropout({'symbolic': self.drop_symbolics, + 'wav': self.drop_wav})(self.conditions) # drop temporal conds + + +class FlowMatchingModel(StreamingModule): + """ + A flow matching model inherits from StreamingModule. + This model uses a transformer architecture to process and fuse conditions, applying learned embeddings and + transformations and predicts multi-source guided vector fields. + Attributes: + condition_provider (JascoConditioningProvider): Provider for conditioning attributes. + fuser (ConditionFuser): Fuser for combining multiple conditions. + dim (int): Dimensionality of the model's main features. + num_heads (int): Number of attention heads in the transformer. + flow_dim (int): Dimensionality of the flow features. + chords_dim (int): Dimensionality for chord embeddings, if used. + drums_dim (int): Dimensionality for drums embeddings, if used. + melody_dim (int): Dimensionality for melody embeddings, if used. + hidden_scale (int): Scaling factor for the dimensionality of the feedforward network in the transformer. + norm (str): Type of normalization to use ('layer_norm' or other supported types). + norm_first (bool): Whether to apply normalization before other operations in the transformer layers. + bias_proj (bool): Whether to include bias in the projection layers. + weight_init (Optional[str]): Method for initializing weights. + depthwise_init (Optional[str]): Method for initializing depthwise convolutional layers. + zero_bias_init (bool): Whether to initialize biases to zero. + cfg_dropout (float): Dropout rate for configuration settings. + cfg_coef (float): Coefficient for configuration influence. + attribute_dropout (Dict[str, Dict[str, float]]): Dropout rates for specific attributes. + time_embedding_dim (int): Dimensionality of time embeddings. + **kwargs: Additional keyword arguments for the transformer. + Methods: + __init__: Initializes the model with the specified attributes and configuration. + """ + def __init__(self, condition_provider: JascoConditioningProvider, + fuser: ConditionFuser, + dim: int = 128, + num_heads: int = 8, + flow_dim: int = 128, + chords_dim: int = 0, + drums_dim: int = 0, + melody_dim: int = 0, + hidden_scale: int = 4, + norm: str = 'layer_norm', + norm_first: bool = False, + bias_proj: bool = True, + weight_init: tp.Optional[str] = None, + depthwise_init: tp.Optional[str] = None, + zero_bias_init: bool = False, + cfg_dropout: float = 0, + cfg_coef: float = 1.0, + attribute_dropout: tp.Dict[str, tp.Dict[str, float]] = {}, + time_embedding_dim: int = 128, + **kwargs): + super().__init__() + self.cfg_coef = cfg_coef + + self.cfg_dropout = ClassifierFreeGuidanceDropout(p=cfg_dropout) + self.att_dropout = AttributeDropout(p=attribute_dropout) + self.condition_provider = condition_provider + self.fuser = fuser + self.dim = dim # transformer dim + self.flow_dim = flow_dim + self.chords_dim = chords_dim + self.emb = nn.Linear(flow_dim + chords_dim + drums_dim + melody_dim, dim, bias=False) + if 'activation' in kwargs: + kwargs['activation'] = get_activation_fn(kwargs['activation']) + + self.transformer = UnetTransformer( + d_model=dim, num_heads=num_heads, dim_feedforward=int(hidden_scale * dim), + norm=norm, norm_first=norm_first, + layer_class=StreamingTransformerLayer, + **kwargs) + self.out_norm: tp.Optional[nn.Module] = None + if norm_first: + self.out_norm = create_norm_fn(norm, dim) + self.linear = nn.Linear(dim, flow_dim, bias=bias_proj) + self._init_weights(weight_init, depthwise_init, zero_bias_init) + self._fsdp: tp.Optional[nn.Module] + self.__dict__['_fsdp'] = None + + # init time parameter embedding + self.d_temb1 = time_embedding_dim + self.d_temb2 = 4 * time_embedding_dim + self.temb = nn.Module() + self.temb.dense = nn.ModuleList([ + torch.nn.Linear(self.d_temb1, + self.d_temb2), + torch.nn.Linear(self.d_temb2, + self.d_temb2), + ]) + self.temb_proj = nn.Linear(self.d_temb2, dim) + + def _get_timestep_embedding(self, timesteps, embedding_dim): + """ + ####################################################################################################### + TAKEN FROM: https://github.com/CompVis/stable-diffusion/blob/main/ldm/modules/diffusionmodules/model.py + ####################################################################################################### + This matches the implementation in Denoising Diffusion Probabilistic Models: + From Fairseq. + Build sinusoidal embeddings. + This matches the implementation in tensor2tensor, but differs slightly + from the description in Section 3.5 of "Attention Is All You Need". + """ + assert len(timesteps.shape) == 1 + + half_dim = embedding_dim // 2 + emb = math.log(10000) / (half_dim - 1) + emb = torch.exp(torch.arange(half_dim, dtype=torch.float32) * -emb) + emb = emb.to(device=timesteps.device) + emb = timesteps.float()[:, None] * emb[None, :] + emb = torch.cat([torch.sin(emb), torch.cos(emb)], dim=1) + if embedding_dim % 2 == 1: # zero pad + emb = torch.nn.functional.pad(emb, (0, 1, 0, 0)) + return emb + + def _embed_time_parameter(self, t: torch.Tensor): + """ + ####################################################################################################### + TAKEN FROM: https://github.com/CompVis/stable-diffusion/blob/main/ldm/modules/diffusionmodules/model.py + ####################################################################################################### + """ + temb = self._get_timestep_embedding(t.flatten(), self.d_temb1) + temb = self.temb.dense[0](temb) + temb = temb * torch.sigmoid(temb) # swish activation + temb = self.temb.dense[1](temb) + return temb + + def _init_weights(self, weight_init: tp.Optional[str], depthwise_init: tp.Optional[str], zero_bias_init: bool): + """Initialization of the transformer module weights. + + Args: + weight_init (str, optional): Weight initialization strategy. See ``get_init_fn`` for valid options. + depthwise_init (str, optional): Depthwise initialization strategy. The following options are valid: + 'current' where the depth corresponds to the current layer index or 'global' where the total number + of layer is used as depth. If not set, no depthwise initialization strategy is used. + zero_bias_init (bool): Whether to initialize bias to zero or not. + """ + assert depthwise_init is None or depthwise_init in ['current', 'global'] + assert depthwise_init is None or weight_init is not None, \ + "If 'depthwise_init' is defined, a 'weight_init' method should be provided." + assert not zero_bias_init or weight_init is not None, \ + "If 'zero_bias_init', a 'weight_init' method should be provided" + + if weight_init is None: + return + + init_layer(self.emb, method=weight_init, init_depth=None, zero_bias_init=zero_bias_init) + + for layer_idx, tr_layer in enumerate(self.transformer.layers): + depth = None + if depthwise_init == 'current': + depth = layer_idx + 1 + elif depthwise_init == 'global': + depth = len(self.transformer.layers) + init_fn = partial(init_layer, method=weight_init, init_depth=depth, zero_bias_init=zero_bias_init) + tr_layer.apply(init_fn) + + init_layer(self.linear, method=weight_init, init_depth=None, zero_bias_init=zero_bias_init) + + def _align_seq_length(self, + cond: torch.Tensor, + seq_len: int = 500): + # trim if needed + cond = cond[:, :seq_len, :] + + # pad if needed + B, T, C = cond.shape + if T < seq_len: + cond = torch.cat((cond, torch.zeros((B, seq_len - T, C), dtype=cond.dtype, device=cond.device)), dim=1) + + return cond + + def forward(self, + latents: torch.Tensor, + t: torch.Tensor, + conditions: tp.List[ConditioningAttributes], + condition_tensors: tp.Optional[ConditionTensors] = None) -> torch.Tensor: + """Apply flow matching forward pass on latents and conditions. + Given a tensor of noisy latents of shape [B, T, D] with D the flow dim and T the sequence steps, + and a time parameter tensor t, return the vector field with shape [B, T, D]. + + Args: + latents (torch.Tensor): noisy latents. + conditions (list of ConditioningAttributes): Conditions to use when modeling + the given codes. Note that when evaluating multiple time with the same conditioning + you should pre-compute those and pass them as `condition_tensors`. + condition_tensors (dict[str, ConditionType], optional): Pre-computed conditioning + tensors, see `conditions`. + Returns: + torch.Tensor: estimated vector field v_theta. + """ + assert condition_tensors is not None, "FlowMatchingModel require pre-calculation of condition tensors" + assert not conditions, "Shouldn't pass unprocessed conditions to FlowMatchingModel." + + B, T, D = latents.shape + x = latents + + # concat temporal conditions on the feature dimension + temporal_conds = JascoCondConst.ALL.value + for cond in temporal_conds: + if cond not in condition_tensors: + continue + c = self._align_seq_length(condition_tensors[cond][0], seq_len=T) + x = torch.concat((x, c), dim=-1) + + # project to transformer dimension + input_ = self.emb(x) + + input_, cross_attention_input = self.fuser(input_, condition_tensors) + + # embed time parameter + t_embs = self._embed_time_parameter(t) + + # add it to cross_attention_input + cross_attention_input = cross_attention_input + self.temb_proj(t_embs[:, None, :]) + + out = self.transformer(input_, cross_attention_src=cross_attention_input) + + if self.out_norm: + out = self.out_norm(out) + v_theta = self.linear(out) # [B, T, D] + + # remove the prefix from the model outputs + if len(self.fuser.fuse2cond['prepend']) > 0: + v_theta = v_theta[:, :, -T:] + + return v_theta # [B, T, D] + + def _multi_source_cfg_preprocess(self, + conditions: tp.List[ConditioningAttributes], + cfg_coef_all: float, + cfg_coef_txt: float, + min_weight: float = 1e-6): + """ + Preprocesses the CFG terms for multi-source conditional generation. + Args: + conditions (list): A list of conditions to be applied. + cfg_coef_all (float): The coefficient for all conditions. + cfg_coef_txt (float): The coefficient for text conditions. + min_weight (float): The minimal absolute weight for calculating a CFG term. + Returns: + tuple: A tuple containing condition_tensors and cfg_terms. + condition_tensors is a dictionary or ConditionTensors object with tokenized conditions. + cfg_terms is a list of CFGTerm objects with weights adjusted based on the coefficients. + """ + condition_tensors: tp.Optional[ConditionTensors] + cfg_terms = [] + if conditions: + # conditional terms + cfg_terms = [AllCFGTerm(conditions=conditions, weight=cfg_coef_all), + TextCFGTerm(conditions=conditions, weight=cfg_coef_txt, + model_att_dropout=self.att_dropout)] + + # add null term + cfg_terms.append(NullCFGTerm(conditions=conditions, weight=1 - sum([ct.weight for ct in cfg_terms]))) + + # remove terms with negligible weight + for ct in cfg_terms: + if abs(ct.weight) < min_weight: + cfg_terms.remove(ct) + + conds: tp.List[ConditioningAttributes] = sum([ct.conditions for ct in cfg_terms], []) + tokenized = self.condition_provider.tokenize(conds) + condition_tensors = self.condition_provider(tokenized) + else: + condition_tensors = {} + + return condition_tensors, cfg_terms + + def estimated_vector_field(self, z, t, condition_tensors=None, cfg_terms=[]): + """ + Estimates the vector field for the given latent variables and time parameter, + conditioned on the provided conditions. + Args: + z (Tensor): The latent variables. + t (float): The time variable. + condition_tensors (ConditionTensors, optional): The condition tensors. Defaults to None. + cfg_terms (list, optional): The list of CFG terms. Defaults to an empty list. + Returns: + Tensor: The estimated vector field. + """ + if len(cfg_terms) > 1: + z = z.repeat(len(cfg_terms), 1, 1) # duplicate noisy latents for multi-source CFG + v_thetas = self(latents=z, t=t, conditions=[], condition_tensors=condition_tensors) + return self._multi_source_cfg_postprocess(v_thetas, cfg_terms) + + def _multi_source_cfg_postprocess(self, v_thetas, cfg_terms): + """ + Postprocesses the vector fields generated for each CFG term to combine them into a single vector field. + Multi source guidance occurs here. + Args: + v_thetas (Tensor): The vector fields for each CFG term. + cfg_terms (list): The CFG terms used. + Returns: + Tensor: The combined vector field. + """ + if len(cfg_terms) <= 1: + return v_thetas + v_theta_per_term = v_thetas.chunk(len(cfg_terms)) + return sum([ct.weight * term_vf for ct, term_vf in zip(cfg_terms, v_theta_per_term)]) + + @torch.no_grad() + def generate(self, + prompt: tp.Optional[torch.Tensor] = None, + conditions: tp.List[ConditioningAttributes] = [], + num_samples: tp.Optional[int] = None, + max_gen_len: int = 256, + callback: tp.Optional[tp.Callable[[int, int], None]] = None, + cfg_coef_all: float = 3.0, + cfg_coef_txt: float = 1.0, + euler: bool = False, + euler_steps: int = 100, + ode_rtol: float = 1e-5, + ode_atol: float = 1e-5, + ) -> torch.Tensor: + """ + Generate audio latents given a prompt or unconditionally. This method supports both Euler integration + and adaptive ODE solving to generate sequences based on the specified conditions and configuration coefficients. + + Args: + prompt (torch.Tensor, optional): Initial prompt to condition the generation. defaults to None + conditions (List[ConditioningAttributes]): List of conditioning attributes - text, symbolic or audio. + num_samples (int, optional): Number of samples to generate. + If None, it is inferred from the number of conditions. + max_gen_len (int): Maximum length of the generated sequence. + callback (Callable[[int, int], None], optional): Callback function to monitor the generation process. + cfg_coef_all (float): Coefficient for the fully conditional CFG term. + cfg_coef_txt (float): Coefficient for text CFG term. + euler (bool): If True, use Euler integration, otherwise use adaptive ODE solver. + euler_steps (int): Number of Euler steps to perform if Euler integration is used. + ode_rtol (float): ODE solver rtol threshold. + ode_atol (float): ODE solver atol threshold. + + Returns: + torch.Tensor: Generated latents, shaped as (num_samples, max_gen_len, feature_dim). + """ + + assert not self.training, "generation shouldn't be used in training mode." + first_param = next(iter(self.parameters())) + device = first_param.device + + # Checking all input shapes are consistent. + possible_num_samples = [] + if num_samples is not None: + possible_num_samples.append(num_samples) + elif prompt is not None: + possible_num_samples.append(prompt.shape[0]) + elif conditions: + possible_num_samples.append(len(conditions)) + else: + possible_num_samples.append(1) + assert [x == possible_num_samples[0] for x in possible_num_samples], "Inconsistent inputs shapes" + num_samples = possible_num_samples[0] + + condition_tensors, cfg_terms = self._multi_source_cfg_preprocess(conditions, cfg_coef_all, cfg_coef_txt) + + # flow matching inference + B, T, D = num_samples, max_gen_len, self.flow_dim + + z_0 = torch.randn((B, T, D), device=device) + + if euler: + # vanilla Euler intergration + dt = (1 / euler_steps) + z = z_0 + t = torch.zeros((1, ), device=device) + for _ in range(euler_steps): + v_theta = self.estimated_vector_field(z, t, + condition_tensors=condition_tensors, + cfg_terms=cfg_terms) + z = z + dt * v_theta + t = t + dt + z_1 = z + else: + # solve with dynamic ode integrator (dopri5) + t = torch.tensor([0, 1.0 - 1e-5], device=device) + num_evals = 0 + + # define ode vector field function + def inner_ode_func(t, z): + nonlocal num_evals + num_evals += 1 + if callback is not None: + ESTIMATED_ODE_SOLVER_STEPS = 300 + callback(num_evals, ESTIMATED_ODE_SOLVER_STEPS) + return self.estimated_vector_field(z, t, + condition_tensors=condition_tensors, + cfg_terms=cfg_terms) + + ode_opts: dict = {"options": {}} + z = odeint( + inner_ode_func, + z_0, + t, + **{"atol": ode_atol, "rtol": ode_rtol, **ode_opts}, + ) + logger.info("Generated in %d steps", num_evals) + z_1 = z[-1] + + return z_1 diff --git a/audiocraft/models/genmodel.py b/audiocraft/models/genmodel.py new file mode 100644 index 0000000..9639745 --- /dev/null +++ b/audiocraft/models/genmodel.py @@ -0,0 +1,267 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Base implementation for audio generative models. This base implementation +combines all the required components to run inference with pretrained audio +generative models. It can be easily inherited by downstream model classes to +provide easy access to the generation API. +""" + +from abc import ABC, abstractmethod +import typing as tp + +import omegaconf +import torch + +from .encodec import CompressionModel +from .lm import LMModel +from .builders import get_wrapped_compression_model +from ..data.audio_utils import convert_audio +from ..modules.conditioners import ConditioningAttributes +from ..utils.autocast import TorchAutocast + + +class BaseGenModel(ABC): + """Base generative model with convenient generation API. + + Args: + name (str): name of the model. + compression_model (CompressionModel): Compression model + used to map audio to invertible discrete representations. + lm (LMModel): Language model over discrete representations. + max_duration (float, optional): maximum duration the model can produce, + otherwise, inferred from the training params. + """ + def __init__(self, name: str, compression_model: CompressionModel, lm: LMModel, + max_duration: tp.Optional[float] = None): + self.name = name + self.compression_model = compression_model + self.lm = lm + self.cfg: tp.Optional[omegaconf.DictConfig] = None + # Just to be safe, let's put everything in eval mode. + self.compression_model.eval() + self.lm.eval() + + if hasattr(lm, 'cfg'): + cfg = lm.cfg + assert isinstance(cfg, omegaconf.DictConfig) + self.cfg = cfg + + if self.cfg is not None: + self.compression_model = get_wrapped_compression_model(self.compression_model, self.cfg) + + if max_duration is None: + if self.cfg is not None: + max_duration = lm.cfg.dataset.segment_duration # type: ignore + else: + raise ValueError("You must provide max_duration when building directly your GenModel") + assert max_duration is not None + + self.max_duration: float = max_duration + self.duration = self.max_duration + + # self.extend_stride is the length of audio extension when generating samples longer + # than self.max_duration. NOTE: the derived class must set self.extend_stride to a + # positive float value when generating with self.duration > self.max_duration. + self.extend_stride: tp.Optional[float] = None + self.device = next(iter(lm.parameters())).device + self.generation_params: dict = {} + self._progress_callback: tp.Optional[tp.Callable[[int, int], None]] = None + if self.device.type == 'cpu': + self.autocast = TorchAutocast(enabled=False) + else: + self.autocast = TorchAutocast( + enabled=True, device_type=self.device.type, dtype=torch.float16) + + @property + def frame_rate(self) -> float: + """Roughly the number of AR steps per seconds.""" + return self.compression_model.frame_rate + + @property + def sample_rate(self) -> int: + """Sample rate of the generated audio.""" + return self.compression_model.sample_rate + + @property + def audio_channels(self) -> int: + """Audio channels of the generated audio.""" + return self.compression_model.channels + + def set_custom_progress_callback(self, progress_callback: tp.Optional[tp.Callable[[int, int], None]] = None): + """Override the default progress callback.""" + self._progress_callback = progress_callback + + @abstractmethod + def set_generation_params(self, *args, **kwargs): + """Set the generation parameters.""" + raise NotImplementedError("No base implementation for setting generation params.") + + @staticmethod + @abstractmethod + def get_pretrained(name: str, device=None): + raise NotImplementedError("No base implementation for getting pretrained model") + + @torch.no_grad() + def _prepare_tokens_and_attributes( + self, + descriptions: tp.Sequence[tp.Optional[str]], + prompt: tp.Optional[torch.Tensor], + ) -> tp.Tuple[tp.List[ConditioningAttributes], tp.Optional[torch.Tensor]]: + """Prepare model inputs. + + Args: + descriptions (list of str): A list of strings used as text conditioning. + prompt (torch.Tensor): A batch of waveforms used for continuation. + """ + attributes = [ + ConditioningAttributes(text={'description': description}) + for description in descriptions] + + if prompt is not None: + if descriptions is not None: + assert len(descriptions) == len(prompt), "Prompt and nb. descriptions doesn't match" + prompt = prompt.to(self.device) + prompt_tokens, scale = self.compression_model.encode(prompt) + assert scale is None + else: + prompt_tokens = None + return attributes, prompt_tokens + + def generate_unconditional(self, num_samples: int, progress: bool = False, + return_tokens: bool = False) -> tp.Union[torch.Tensor, + tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples in an unconditional manner. + + Args: + num_samples (int): Number of samples to be generated. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + descriptions: tp.List[tp.Optional[str]] = [None] * num_samples + attributes, prompt_tokens = self._prepare_tokens_and_attributes(descriptions, None) + tokens = self._generate_tokens(attributes, prompt_tokens, progress) + if return_tokens: + return self.generate_audio(tokens), tokens + return self.generate_audio(tokens) + + def generate(self, descriptions: tp.List[str], progress: bool = False, return_tokens: bool = False) \ + -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples conditioned on text. + + Args: + descriptions (list of str): A list of strings used as text conditioning. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + attributes, prompt_tokens = self._prepare_tokens_and_attributes(descriptions, None) + assert prompt_tokens is None + tokens = self._generate_tokens(attributes, prompt_tokens, progress) + if return_tokens: + return self.generate_audio(tokens), tokens + return self.generate_audio(tokens) + + def generate_continuation(self, prompt: torch.Tensor, prompt_sample_rate: int, + descriptions: tp.Optional[tp.List[tp.Optional[str]]] = None, + progress: bool = False, return_tokens: bool = False) \ + -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples conditioned on audio prompts and an optional text description. + + Args: + prompt (torch.Tensor): A batch of waveforms used for continuation. + Prompt should be [B, C, T], or [C, T] if only one sample is generated. + prompt_sample_rate (int): Sampling rate of the given audio waveforms. + descriptions (list of str, optional): A list of strings used as text conditioning. Defaults to None. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + if prompt.dim() == 2: + prompt = prompt[None] + if prompt.dim() != 3: + raise ValueError("prompt should have 3 dimensions: [B, C, T] (C = 1).") + prompt = convert_audio(prompt, prompt_sample_rate, self.sample_rate, self.audio_channels) + if descriptions is None: + descriptions = [None] * len(prompt) + attributes, prompt_tokens = self._prepare_tokens_and_attributes(descriptions, prompt) + assert prompt_tokens is not None + tokens = self._generate_tokens(attributes, prompt_tokens, progress) + if return_tokens: + return self.generate_audio(tokens), tokens + return self.generate_audio(tokens) + + def _generate_tokens(self, attributes: tp.List[ConditioningAttributes], + prompt_tokens: tp.Optional[torch.Tensor], progress: bool = False) -> torch.Tensor: + """Generate discrete audio tokens given audio prompt and/or conditions. + + Args: + attributes (list of ConditioningAttributes): Conditions used for generation (here text). + prompt_tokens (torch.Tensor, optional): Audio prompt used for continuation. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + Returns: + torch.Tensor: Generated audio, of shape [B, C, T], T is defined by the generation params. + """ + total_gen_len = int(self.duration * self.frame_rate) + max_prompt_len = int(min(self.duration, self.max_duration) * self.frame_rate) + current_gen_offset: int = 0 + + def _progress_callback(generated_tokens: int, tokens_to_generate: int): + generated_tokens += current_gen_offset + if self._progress_callback is not None: + # Note that total_gen_len might be quite wrong depending on the + # codebook pattern used, but with delay it is almost accurate. + self._progress_callback(generated_tokens, tokens_to_generate) + else: + print(f'{generated_tokens: 6d} / {tokens_to_generate: 6d}', end='\r') + + if prompt_tokens is not None: + assert max_prompt_len >= prompt_tokens.shape[-1], \ + "Prompt is longer than audio to generate" + + callback = None + if progress: + callback = _progress_callback + + if self.duration <= self.max_duration: + # generate by sampling from LM, simple case. + with self.autocast: + gen_tokens = self.lm.generate( + prompt_tokens, attributes, + callback=callback, max_gen_len=total_gen_len, **self.generation_params) + + else: + assert self.extend_stride is not None, "Stride should be defined to generate beyond max_duration" + assert self.extend_stride < self.max_duration, "Cannot stride by more than max generation duration." + all_tokens = [] + if prompt_tokens is None: + prompt_length = 0 + else: + all_tokens.append(prompt_tokens) + prompt_length = prompt_tokens.shape[-1] + + stride_tokens = int(self.frame_rate * self.extend_stride) + while current_gen_offset + prompt_length < total_gen_len: + time_offset = current_gen_offset / self.frame_rate + chunk_duration = min(self.duration - time_offset, self.max_duration) + max_gen_len = int(chunk_duration * self.frame_rate) + with self.autocast: + gen_tokens = self.lm.generate( + prompt_tokens, attributes, + callback=callback, max_gen_len=max_gen_len, **self.generation_params) + if prompt_tokens is None: + all_tokens.append(gen_tokens) + else: + all_tokens.append(gen_tokens[:, :, prompt_tokens.shape[-1]:]) + prompt_tokens = gen_tokens[:, :, stride_tokens:] + prompt_length = prompt_tokens.shape[-1] + current_gen_offset += stride_tokens + + gen_tokens = torch.cat(all_tokens, dim=-1) + return gen_tokens + + def generate_audio(self, gen_tokens: torch.Tensor) -> torch.Tensor: + """Generate Audio from tokens.""" + assert gen_tokens.dim() == 3 + with torch.no_grad(): + gen_audio = self.compression_model.decode(gen_tokens, None) + return gen_audio diff --git a/audiocraft/models/jasco.py b/audiocraft/models/jasco.py new file mode 100644 index 0000000..0a7bf7f --- /dev/null +++ b/audiocraft/models/jasco.py @@ -0,0 +1,326 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Main model for using JASCO. This will combine all the required components +and provide easy access to the generation API. +""" +import os +import math +import pickle +import torch +import typing as tp + +from audiocraft.utils.utils import construct_frame_chords +from .genmodel import BaseGenModel +from .loaders import load_compression_model, load_jasco_model +from ..data.audio_utils import convert_audio +from ..modules.conditioners import WavCondition, ConditioningAttributes, SymbolicCondition, JascoCondConst + + +class JASCO(BaseGenModel): + """JASCO main model with convenient generation API. + Args: + chords_mapping_path: path to chords to index mapping pickle + kwargs - See MusicGen class. + """ + def __init__(self, chords_mapping_path='assets/chord_to_index_mapping.pkl', **kwargs): + super().__init__(**kwargs) + # JASCO operates over a fixed sequence length defined in it's config. + self.duration = self.lm.cfg.dataset.segment_duration + + # load chord2index mapping of Chordino (https://github.com/ohollo/chord-extractor) + assert os.path.exists(chords_mapping_path) + self.chords_mapping = pickle.load(open(chords_mapping_path, "rb")) + + # set generation parameters + self.set_generation_params() + + @staticmethod + def get_pretrained(name: str = 'facebook/jasco-chords-drums-400M', device=None, + chords_mapping_path='assets/chord_to_index_mapping.pkl'): + """Return pretrained model, we provide 2 models: + 1. facebook/jasco-chords-drums-400M: 10s music generation conditioned on + text, chords and drums, 400M parameters. + 2. facebook/jasco-chords-drums-1B: 10s music generation conditioned on + text, chords and drums, 1B parameters. + """ + if device is None: + if torch.cuda.device_count(): + device = 'cuda' + else: + device = 'cpu' + + compression_model = load_compression_model(name, device=device) + lm = load_jasco_model(name, compression_model, device=device) + + kwargs = {'name': name, + 'compression_model': compression_model, + 'lm': lm, + 'chords_mapping_path': chords_mapping_path} + return JASCO(**kwargs) + + def set_generation_params(self, + cfg_coef_all: float = 5.0, + cfg_coef_txt: float = 0.0, + **kwargs): + """Set the generation parameters for JASCO. + + Args: + cfg_coef_all (float, optional): Coefficient used in multi-source classifier free guidance - + all conditions term. Defaults to 5.0. + cfg_coef_txt (float, optional): Coefficient used in multi-source classifier free guidance - + text condition term. Defaults to 0.0. + + """ + self.generation_params = { + 'cfg_coef_all': cfg_coef_all, + 'cfg_coef_txt': cfg_coef_txt + } + self.generation_params.update(kwargs) + + def _unnormalized_latents(self, latents: torch.Tensor) -> torch.Tensor: + """Unnormalize latents, shifting back to EnCodec's expected mean, std""" + assert self.cfg is not None + scaled = latents * self.cfg.compression_model_latent_std + return scaled + self.cfg.compression_model_latent_mean + + def generate_audio(self, gen_latents: torch.Tensor) -> torch.Tensor: + """Decode audio from generated latents""" + assert gen_latents.dim() == 3 # [B, T, C] + + # unnormalize latents + gen_latents = self._unnormalized_latents(gen_latents) + return self.compression_model.model.decoder(gen_latents.permute(0, 2, 1)) + + def _generate_tokens(self, attributes: tp.List[ConditioningAttributes], + prompt_tokens: tp.Optional[torch.Tensor], progress: bool = False) -> torch.Tensor: + """Generate continuous audio latents given conditions. + + Args: + attributes (list of ConditioningAttributes): Conditions used for generation (here text). + prompt_tokens (torch.Tensor, optional): Audio prompt used for continuation. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + Returns: + torch.Tensor: Generated latents, of shape [B, T, C]. + """ + total_gen_len = int(self.duration * self.frame_rate) + max_prompt_len = int(min(self.duration, self.max_duration) * self.frame_rate) + + def _progress_callback(ode_steps: int, max_ode_steps: int): + ode_steps += 1 + if self._progress_callback is not None: + # Note that total_gen_len might be quite wrong depending on the + # codebook pattern used, but with delay it is almost accurate. + self._progress_callback(ode_steps, max_ode_steps) + else: + print(f'{ode_steps: 6d} / {max_ode_steps: 6d}', end='\r') + + if prompt_tokens is not None: + assert max_prompt_len >= prompt_tokens.shape[-1], \ + "Prompt is longer than audio to generate" + + callback = None + if progress: + callback = _progress_callback + + # generate by sampling from the LM + with self.autocast: + total_gen_len = math.ceil(self.duration * self.compression_model.frame_rate) + return self.lm.generate( + prompt_tokens, attributes, + callback=callback, max_gen_len=total_gen_len, **self.generation_params) + + def _prepare_chord_conditions( + self, + attributes: tp.List[ConditioningAttributes], + chords: tp.Optional[tp.List[tp.Tuple[str, float]]], + ) -> tp.List[ConditioningAttributes]: + """ + Prepares chord conditions by translating symbolic chord progressions into a sequence of integers. + This method updates the ConditioningAttributes with per-frame chords information. + Args: + attributes (List[ConditioningAttributes]): + The initial attributes and optional tensor data. + chords (List[Tuple[str, float]]): + A list of tuples containing chord labels and their start times. + Returns: + List[ConditioningAttributes]: + The updated attributes with frame chords integrated, alongside the original optional tensor data. + """ + if chords is None or chords == []: + for att in attributes: + att.symbolic[JascoCondConst.CRD.value] = SymbolicCondition(frame_chords=-1 * + torch.ones(1, dtype=torch.int32)) + return attributes + + # flip from (chord, start_time) to (start_time, chord) + chords_time_first: tp.List[tuple[float, str]] = [(item[1], item[0]) for item in chords] + + # translate symbolic chord progression into a sequence of ints + frame_chords = construct_frame_chords(min_timestamp=0, + chord_changes=chords_time_first, + mapping_dict=self.chords_mapping, + prev_chord='', + frame_rate=self.compression_model.frame_rate, + segment_duration=self.duration) + # update the attribute objects + for att in attributes: + att.symbolic[JascoCondConst.CRD.value] = SymbolicCondition(frame_chords=torch.tensor(frame_chords)) + return attributes + + @torch.no_grad() + def _prepare_drums_conditions(self, + attributes: + tp.List[ConditioningAttributes], + drums_wav: tp.Optional[torch.Tensor], + ): + # prepare drums cond + for attr in attributes: + if drums_wav is None: + attr.wav[JascoCondConst.DRM.value] = WavCondition( + torch.zeros((1, 1, 1), device=self.device), + torch.tensor([0], device=self.device), + sample_rate=[self.sample_rate], + path=[None]) + else: + if JascoCondConst.DRM.value not in self.lm.condition_provider.conditioners: + raise RuntimeError("This model doesn't support drums conditioning. ") + + expected_length = self.lm.cfg.dataset.segment_duration * self.sample_rate + # trim if needed + drums_wav = drums_wav[..., :expected_length] + + # pad if needed + if drums_wav.shape[-1] < expected_length: + diff = expected_length - drums_wav.shape[-1] + diff_zeros = torch.zeros((drums_wav.shape[0], drums_wav.shape[1], diff), + device=drums_wav.device, dtype=drums_wav.dtype) + drums_wav = torch.cat((drums_wav, diff_zeros), dim=-1) + + attr.wav[JascoCondConst.DRM.value] = WavCondition( + drums_wav.to(device=self.device), + torch.tensor([drums_wav.shape[-1]], device=self.device), + sample_rate=[self.sample_rate], + path=[None], + ) + + return attributes + + @torch.no_grad() + def _prepare_melody_conditions( + self, + attributes: tp.List[ConditioningAttributes], + melody: tp.Optional[torch.Tensor], + expected_length: int, + melody_bins: int = 53, + ) -> tp.List[ConditioningAttributes]: + """ + Prepares melody conditions by subtituting with pre-computed salience matrix. + This method updates the ConditioningAttributes with per-frame chords information. + Args: + attributes (List[ConditioningAttributes]): + The initial attributes and optional tensor data. + chords (List[Tuple[str, float]]): + A list of tuples containing chord labels and their start times. + Returns: + List[ConditioningAttributes]: + The updated attributes with frame chords integrated, alongside the original optional tensor data. + """ + for attr in attributes: + if melody is None: + melody = torch.zeros((melody_bins, expected_length)) + attr.symbolic[JascoCondConst.MLD.value] = SymbolicCondition(melody=melody) + return attributes + + @torch.no_grad() + def _prepare_temporal_conditions( + self, + attributes: tp.List[ConditioningAttributes], + expected_length: int, + chords: tp.Optional[tp.List[tp.Tuple[str, float]]], + drums_wav: tp.Optional[torch.Tensor], + salience_matrix: tp.Optional[torch.Tensor], + melody_bins: int = 53, + ) -> tp.List[ConditioningAttributes]: + """ + Prepares temporal conditions (chords, drums). + Args: + attributes (List[ConditioningAttributes]): The initial attributes and optional tensor data. + expected_length (int): The expected number of generated frames. + chords (List[Tuple[str, float]]): A list of tuples containing chord labels and their start times. + drums_wav (List[Tuple[str, float]]): tensor of extracted drums wav. + salience_matrix (List[Tuple[str, float]]): melody matrix. + melody_bins (int): number of melody bins the model was trained with, only relevant if trained with melody. + Returns: + List[ConditioningAttributes]: + The updated attributes after processing chord conditions. + """ + attributes = self._prepare_chord_conditions(attributes=attributes, chords=chords) + attributes = self._prepare_drums_conditions(attributes=attributes, drums_wav=drums_wav) + attributes = self._prepare_melody_conditions(attributes=attributes, melody=salience_matrix, + expected_length=expected_length, melody_bins=melody_bins) + return attributes + + @torch.no_grad() + def generate_music( + self, descriptions: tp.List[str], + drums_wav: tp.Optional[torch.Tensor] = None, + drums_sample_rate: int = 32000, + chords: tp.Optional[tp.List[tp.Tuple[str, float]]] = None, + melody_salience_matrix: tp.Optional[torch.Tensor] = None, + iopaint_wav: tp.Optional[torch.Tensor] = None, + segment_duration: float = 10.0, + frame_rate: float = 50.0, + melody_bins: int = 53, + progress: bool = False, return_latents: bool = False) \ + -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples conditioned on text and temporal conditions (chords, melody, drums). + + Args: + descriptions (list of str): A list of strings used as text conditioning. + chords (list of (str, float) tuples): Chord progression represented as chord, start time (sec), e.g.: + [("C", 0.0), ("F", 4.0), ("G", 6.0), ("C", 8.0)] + melody_salience_matrix (torch.Tensor, optional): melody saliency matrix. Default=None. + iopaint_wav (torch.Tensor, optional): in/out=painting waveform. Default=None. + segment_duration (float): the segment duration the model was trained on. Default=None. + frame_rate (float): the frame_rate model was trained on. Default=None. + melody_bins (int): number of melody bins the model was trained with, only relevant if trained with melody. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + + if drums_wav is not None: + if drums_wav.dim() == 2: + drums_wav = drums_wav[None] + assert drums_wav.dim() == 3, "drums wav should have a shape [B, C, T]." + drums_wav = convert_audio(drums_wav, drums_sample_rate, self.sample_rate, self.audio_channels) + + cond_attributes, prompt_tokens = self._prepare_tokens_and_attributes(descriptions=descriptions, + prompt=None) + + # prepare temporal conds (symbolic / audio) + jasco_attributes = self._prepare_temporal_conditions(attributes=cond_attributes, + expected_length=int(segment_duration * frame_rate), + chords=chords, + drums_wav=drums_wav, + salience_matrix=melody_salience_matrix, + melody_bins=melody_bins) + assert prompt_tokens is None + tokens = self._generate_tokens(jasco_attributes, prompt_tokens, progress) + if return_latents: + return self.generate_audio(tokens), tokens + return self.generate_audio(tokens) + + @torch.no_grad() + def generate(self, descriptions: tp.List[str], progress: bool = False, return_latents: bool = False) \ + -> tp.Union[torch.Tensor, tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples conditioned on text. + + Args: + descriptions (list of str): A list of strings used as text conditioning. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + return self.generate_music(descriptions=descriptions, progress=progress, return_latents=return_latents) diff --git a/audiocraft/models/lm.py b/audiocraft/models/lm.py new file mode 100644 index 0000000..39b544b --- /dev/null +++ b/audiocraft/models/lm.py @@ -0,0 +1,587 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from dataclasses import dataclass +from functools import partial +import logging +import math +import typing as tp + +import torch +from torch import nn + +from ..utils import utils +from ..modules.streaming import StreamingModule, State +from ..modules.transformer import StreamingTransformer, create_norm_fn +from ..modules.conditioners import ( + ConditionFuser, + ClassifierFreeGuidanceDropout, + AttributeDropout, + ConditioningProvider, + ConditioningAttributes, + ConditionType, + _drop_description_condition +) +from ..modules.codebooks_patterns import CodebooksPatternProvider +from ..modules.activations import get_activation_fn + + +logger = logging.getLogger(__name__) +ConditionTensors = tp.Dict[str, ConditionType] +CFGConditions = tp.Union[ConditionTensors, tp.Tuple[ConditionTensors, ConditionTensors]] + + +def get_init_fn(method: str, input_dim: int, init_depth: tp.Optional[int] = None): + """LM layer initialization. + Inspired from xlformers: https://github.com/fairinternal/xlformers + + Args: + method (str): Method name for init function. Valid options are: + 'gaussian', 'uniform'. + input_dim (int): Input dimension of the initialized module. + init_depth (int, optional): Optional init depth value used to rescale + the standard deviation if defined. + """ + # Compute std + std = 1 / math.sqrt(input_dim) + # Rescale with depth + if init_depth is not None: + std = std / math.sqrt(2 * init_depth) + + if method == 'gaussian': + return partial( + torch.nn.init.trunc_normal_, mean=0.0, std=std, a=-3 * std, b=3 * std + ) + elif method == 'uniform': + bound = math.sqrt(3) * std # ensure the standard deviation is `std` + return partial(torch.nn.init.uniform_, a=-bound, b=bound) + else: + raise ValueError("Unsupported layer initialization method") + + +def init_layer(m: nn.Module, + method: str, + init_depth: tp.Optional[int] = None, + zero_bias_init: bool = False): + """Wrapper around ``get_init_fn`` for proper initialization of LM modules. + + Args: + m (nn.Module): Module to initialize. + method (str): Method name for the init function. + init_depth (int, optional): Optional init depth value used to rescale + the standard deviation if defined. + zero_bias_init (bool): Whether to initialize the bias to 0 or not. + """ + if isinstance(m, nn.Linear): + init_fn = get_init_fn(method, m.in_features, init_depth=init_depth) + if m.weight.device.type == 'cpu' and m.weight.dtype == torch.float16: + weight = m.weight.float() + init_fn(weight) + m.weight.data[:] = weight.half() + else: + init_fn(m.weight) + if zero_bias_init and m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.Embedding): + init_fn = get_init_fn(method, m.embedding_dim, init_depth=None) + if m.weight.device.type == 'cpu' and m.weight.dtype == torch.float16: + weight = m.weight.float() + init_fn(weight) + m.weight.data[:] = weight.half() + else: + init_fn(m.weight) + + +class ScaledEmbedding(nn.Embedding): + """Boost learning rate for embeddings (with `scale`). + """ + def __init__(self, *args, lr=None, **kwargs): + super().__init__(*args, **kwargs) + self.lr = lr + + def make_optim_group(self): + group = {"params": list(self.parameters())} + if self.lr is not None: + group["lr"] = self.lr + return group + + +@dataclass +class LMOutput: + # The logits are already re-aligned with the input codes + # hence no extra shift is required, e.g. when computing CE + logits: torch.Tensor # [B, K, T, card] + mask: torch.Tensor # [B, K, T] + + +class LMModel(StreamingModule): + """Transformer-based language model on multiple streams of codes. + + Args: + pattern_provider (CodebooksPatternProvider): Pattern provider for codebook interleaving. + condition_provider (MusicConditioningProvider): Conditioning provider from metadata. + fuser (ConditionFuser): Fuser handling the fusing of conditions with language model input. + n_q (int): Number of parallel streams to model. + card (int): Cardinality, vocabulary size. + dim (int): Dimension of the transformer encoder. + num_heads (int): Number of heads for the transformer encoder. + hidden_scale (int): Scale for hidden feed forward dimension of the transformer encoder. + norm (str): Normalization method. + norm_first (bool): Use pre-norm instead of post-norm. + emb_lr (float, optional): Embedding-specific learning rate. + bias_proj (bool): Use bias for output projections. + weight_init (str, optional): Method for weight initialization. + depthwise_init (str, optional): Method for depthwise weight initialization. + zero_bias_init (bool): If true and bias in Linears, initialize bias to zeros. + cfg_dropout (float): Classifier-free guidance dropout. + cfg_coef (float): Classifier-free guidance coefficient. + attribute_dropout (dict): Attribute dropout probabilities. + two_step_cfg (bool): Whether to run classifier free-guidance with 2 distinct steps. + **kwargs: Additional parameters for the transformer encoder. + """ + def __init__(self, pattern_provider: CodebooksPatternProvider, condition_provider: ConditioningProvider, + fuser: ConditionFuser, n_q: int = 8, card: int = 1024, dim: int = 128, num_heads: int = 8, + hidden_scale: int = 4, norm: str = 'layer_norm', norm_first: bool = False, + emb_lr: tp.Optional[float] = None, bias_proj: bool = True, + weight_init: tp.Optional[str] = None, depthwise_init: tp.Optional[str] = None, + zero_bias_init: bool = False, cfg_dropout: float = 0, cfg_coef: float = 1.0, + attribute_dropout: tp.Dict[str, tp.Dict[str, float]] = {}, two_step_cfg: bool = False, + **kwargs): + super().__init__() + self.cfg_coef = cfg_coef + self.cfg_dropout = ClassifierFreeGuidanceDropout(p=cfg_dropout) + self.att_dropout = AttributeDropout(p=attribute_dropout) + self.condition_provider = condition_provider + self.fuser = fuser + self.card = card + embed_dim = self.card + 1 + self.n_q = n_q + self.dim = dim + self.pattern_provider = pattern_provider + self.two_step_cfg = two_step_cfg + self.emb = nn.ModuleList([ScaledEmbedding(embed_dim, dim, lr=emb_lr) for _ in range(n_q)]) + if 'activation' in kwargs: + kwargs['activation'] = get_activation_fn(kwargs['activation']) + self.transformer = StreamingTransformer( + d_model=dim, num_heads=num_heads, dim_feedforward=int(hidden_scale * dim), + norm=norm, norm_first=norm_first, **kwargs) + self.out_norm: tp.Optional[nn.Module] = None + if norm_first: + self.out_norm = create_norm_fn(norm, dim) + self.linears = nn.ModuleList([nn.Linear(dim, self.card, bias=bias_proj) for _ in range(n_q)]) + self._init_weights(weight_init, depthwise_init, zero_bias_init) + self._fsdp: tp.Optional[nn.Module] + self.__dict__['_fsdp'] = None + + def _init_weights(self, weight_init: tp.Optional[str], depthwise_init: tp.Optional[str], zero_bias_init: bool): + """Initialization of the transformer module weights. + + Args: + weight_init (str, optional): Weight initialization strategy. See ``get_init_fn`` for valid options. + depthwise_init (str, optional): Depthwise initialization strategy. The following options are valid: + 'current' where the depth corresponds to the current layer index or 'global' where the total number + of layer is used as depth. If not set, no depthwise initialization strategy is used. + zero_bias_init (bool): Whether to initialize bias to zero or not. + """ + assert depthwise_init is None or depthwise_init in ['current', 'global'] + assert depthwise_init is None or weight_init is not None, \ + "If 'depthwise_init' is defined, a 'weight_init' method should be provided." + assert not zero_bias_init or weight_init is not None, \ + "If 'zero_bias_init', a 'weight_init' method should be provided" + + if weight_init is None: + return + + for emb_layer in self.emb: + init_layer(emb_layer, method=weight_init, init_depth=None, zero_bias_init=zero_bias_init) + + for layer_idx, tr_layer in enumerate(self.transformer.layers): + depth = None + if depthwise_init == 'current': + depth = layer_idx + 1 + elif depthwise_init == 'global': + depth = len(self.transformer.layers) + init_fn = partial(init_layer, method=weight_init, init_depth=depth, zero_bias_init=zero_bias_init) + tr_layer.apply(init_fn) + + for linear in self.linears: + init_layer(linear, method=weight_init, init_depth=None, zero_bias_init=zero_bias_init) + + @property + def special_token_id(self) -> int: + return self.card + + @property + def num_codebooks(self) -> int: + return self.n_q + + def forward(self, sequence: torch.Tensor, + conditions: tp.List[ConditioningAttributes], + condition_tensors: tp.Optional[ConditionTensors] = None, + stage: int = -1) -> torch.Tensor: + """Apply language model on sequence and conditions. + Given a tensor of sequence of shape [B, K, S] with K the number of codebooks and + S the sequence steps, return the logits with shape [B, card, K, S]. + + Args: + indices (torch.Tensor): Indices of the codes to model. + conditions (list of ConditioningAttributes): Conditions to use when modeling + the given codes. Note that when evaluating multiple time with the same conditioning + you should pre-compute those and pass them as `condition_tensors`. + condition_tensors (dict[str, ConditionType], optional): Pre-computed conditioning + tensors, see `conditions`. + stage (int): The codebook level that is being predicted. Relevant for MAGNeT + in which prediction is done in a codebook-by-codebook manner. + Takes values in range(n_q), and ignored by default. + Returns: + torch.Tensor: Logits. + """ + B, K, S = sequence.shape + assert K == self.num_codebooks, "Sequence shape must match the specified number of codebooks" + input_ = sum([self.emb[k](sequence[:, k]) for k in range(K)]) + if condition_tensors is None: + assert not self._is_streaming, "Conditions tensors should be precomputed when streaming." + # apply dropout modules + conditions = self.cfg_dropout(conditions) + conditions = self.att_dropout(conditions) + tokenized = self.condition_provider.tokenize(conditions) + # encode conditions and fuse, both have a streaming cache to not recompute when generating. + condition_tensors = self.condition_provider(tokenized) + else: + assert not conditions, "Shouldn't pass both conditions and condition_tensors." + + input_, cross_attention_input = self.fuser(input_, condition_tensors) + + out = self.transformer(input_, cross_attention_src=cross_attention_input, + src_mask=(self.attn_mask_per_stage[stage] if stage >= 0 else None)) # type: ignore + if self.out_norm: + out = self.out_norm(out) + logits = torch.stack([self.linears[k](out) for k in range(K)], dim=1) # [B, K, S, card] + + # remove the prefix from the model outputs + if len(self.fuser.fuse2cond['prepend']) > 0: + logits = logits[:, :, -S:] + + return logits # [B, K, S, card] + + def compute_predictions( + self, codes: torch.Tensor, + conditions: tp.List[ConditioningAttributes], + condition_tensors: tp.Optional[ConditionTensors] = None, + stage: int = -1, + keep_only_valid_steps: bool = True) -> LMOutput: + """Given an input tensor of codes [B, K, T] and list of conditions, runs the model + forward using the specified codes interleaving pattern. + + Args: + codes (torch.Tensor): Input codes of shape [B, K, T] with B the batch size, + K the number of codebooks and T the number of timesteps. + conditions (list of ConditioningAttributes): conditionings to use when modeling + the given codes. Note that when evaluating multiple time with the same conditioning + you should pre-compute those and pass them as `condition_tensors`. + condition_tensors (dict[str, ConditionType], optional): pre-computed conditioning + tensors, see `conditions`. + stage (int): The codebook level that is being predicted. Relevant for MAGNeT + in which prediction is done in a codebook-by-codebook manner. + Takes values in range(n_q), and ignored by default. + keep_only_valid_steps (bool): Build a sequence from the pattern up to valid (= fully defined) steps. + Steps that are beyond valid steps will be replaced by the special_token in that case. + Returns: + LMOutput: Language model outputs + logits (torch.Tensor) of shape [B, K, T, card] corresponding to the provided codes, + i.e. the first item corresponds to logits to predict the first code, meaning that + no additional shifting of codes and logits is required. + mask (torch.Tensor) of shape [B, K, T], mask over valid and invalid positions. + Given the specified interleaving strategies, parts of the logits and codes should + not be considered as valid predictions because of invalid context. + """ + B, K, T = codes.shape + codes = codes.contiguous() + # map codes [B, K, T] into pattern sequence [B, K, S] using special_token_id for masked tokens + pattern = self.pattern_provider.get_pattern(T) + sequence_codes, sequence_indexes, sequence_mask = pattern.build_pattern_sequence( + codes, self.special_token_id, keep_only_valid_steps=keep_only_valid_steps, + ) + + # apply model on pattern sequence + model = self if self._fsdp is None else self._fsdp + logits = model(sequence_codes, conditions, condition_tensors, stage=stage) # [B, K, S, card] + # map back the logits on pattern sequence to logits on original codes: [B, K, S, card] -> [B, K, T, card] + # and provide the corresponding mask over invalid positions of tokens + logits = logits.permute(0, 3, 1, 2) # [B, card, K, S] + # note: we use nans as special token to make it obvious if we feed unexpected logits + logits, logits_indexes, logits_mask = pattern.revert_pattern_logits( + logits, float('nan'), keep_only_valid_steps=keep_only_valid_steps + ) + logits = logits.permute(0, 2, 3, 1) # [B, K, T, card] + logits_mask = logits_mask[None, :, :].expand(B, -1, -1) # [K, T] -> [B, K, T] + return LMOutput(logits, logits_mask) + + def _sample_next_token(self, + sequence: torch.Tensor, + cfg_conditions: CFGConditions, + unconditional_state: State, + use_sampling: bool = False, + temp: float = 1.0, + top_k: int = 0, + top_p: float = 0.0, + cfg_coef: tp.Optional[float] = None, + cfg_coef_beta: tp.Optional[float] = None, + two_step_cfg: tp.Optional[bool] = None) -> torch.Tensor: + """Sample next token from the model given a sequence and a set of conditions. The model supports + multiple sampling strategies (greedy sampling, softmax, top-k, top-p...). + + Args: + sequence (torch.Tensor): Current sequence of shape [B, K, S] + with K corresponding to the number of codebooks and S the number of sequence steps. + S = 1 in streaming mode, except for the first step that contains a bigger prompt. + condition_tensors (dict[str, ConditionType): Set of conditions. If CFG is used, + should be twice the batch size, being the concatenation of the conditions + null conditions. + use_sampling (bool): Whether to use a sampling strategy or not. + temp (float): Sampling temperature. + top_k (int): K for "top-k" sampling. + top_p (float): P for "top-p" sampling. + cfg_coef (float, optional): classifier free guidance coefficient + cfg_coef_beta (float, optional): If None, simple classifier free guidance is used with cfg_coef. + If not None, we apply double classifier free guidance as introduced in MusicGen-Style + in paragraph 4.3 (https://arxiv.org/pdf/2407.12563). This beta coefficient is meant to + push the text condition more than the style condition in the case where both text and style + conditions are being used. + two_step_cfg (bool): Whether to run classifier free-guidance with 2 distinct steps. + + Returns: + next_token (torch.Tensor): Next token tensor of shape [B, K, 1]. + """ + B = sequence.shape[0] + cfg_coef = self.cfg_coef if cfg_coef is None else cfg_coef + model = self if self._fsdp is None else self._fsdp + two_step_cfg = self.two_step_cfg if two_step_cfg is None else two_step_cfg + if cfg_coef_beta is not None: + assert isinstance(cfg_conditions, dict) + condition_tensors = cfg_conditions + if condition_tensors: + # Preparing for CFG, predicting conditional text and style, conditional style + # and unconditional + sequence = torch.cat([sequence, sequence, sequence], dim=0) + all_logits = model( + sequence, + conditions=[], condition_tensors=condition_tensors) + if condition_tensors: + cond_logits, wav_logits, uncond_logits = all_logits.split(B, dim=0) # [B, K, T, card] + logits = uncond_logits + cfg_coef * ( + wav_logits + cfg_coef_beta * (cond_logits - wav_logits) - uncond_logits + ) + + elif two_step_cfg and cfg_conditions != {}: + assert isinstance(cfg_conditions, tuple), type(cfg_conditions) + condition_tensors, null_condition_tensors = cfg_conditions + cond_logits = model(sequence, conditions=[], condition_tensors=condition_tensors) + state = self.get_streaming_state() + self.set_streaming_state(unconditional_state) + uncond_logits = model(sequence, conditions=[], condition_tensors=null_condition_tensors) + unconditional_state.update(self.get_streaming_state()) + self.set_streaming_state(state) + logits = uncond_logits + (cond_logits - uncond_logits) * self.cfg_coef + else: + assert isinstance(cfg_conditions, dict) + condition_tensors = cfg_conditions + if condition_tensors: + # Preparing for CFG, predicting both conditional and unconditional logits. + sequence = torch.cat([sequence, sequence], dim=0) + all_logits = model( + sequence, + conditions=[], condition_tensors=condition_tensors) + if condition_tensors: + cond_logits, uncond_logits = all_logits.split(B, dim=0) # [B, K, T, card] + logits = uncond_logits + (cond_logits - uncond_logits) * cfg_coef + else: + logits = all_logits + + logits = logits.permute(0, 1, 3, 2) # [B, K, card, T] + logits = logits[..., -1] # [B x K x card] + + # Apply softmax for sampling if temp > 0. Else, do greedy sampling to avoid zero division error. + if use_sampling and temp > 0.0: + probs = torch.softmax(logits / temp, dim=-1) + if top_p > 0.0: + next_token = utils.sample_top_p(probs, p=top_p) + elif top_k > 0: + next_token = utils.sample_top_k(probs, k=top_k) + else: + next_token = utils.multinomial(probs, num_samples=1) + else: + next_token = torch.argmax(logits, dim=-1, keepdim=True) + + return next_token + + @torch.no_grad() + def generate(self, + prompt: tp.Optional[torch.Tensor] = None, + conditions: tp.List[ConditioningAttributes] = [], + num_samples: tp.Optional[int] = None, + max_gen_len: int = 256, + use_sampling: bool = True, + temp: float = 1.0, + top_k: int = 250, + top_p: float = 0.0, + cfg_coef: tp.Optional[float] = None, + cfg_coef_beta: tp.Optional[float] = None, + two_step_cfg: tp.Optional[bool] = None, + remove_prompts: bool = False, + check: bool = False, + callback: tp.Optional[tp.Callable[[int, int], None]] = None, + ) -> torch.Tensor: + """Generate tokens sampling from the model given a prompt or unconditionally. Generation can + be performed in a greedy fashion or using sampling with top K and top P strategies. + + Args: + prompt (torch.Tensor, optional): Prompt tokens of shape [B, K, T]. + conditions (list of ConditioningAttributes, optional): List of conditions. + num_samples (int, optional): Number of samples to generate when no prompt and no conditions are given. + max_gen_len (int): Maximum generation length. + use_sampling (bool): Whether to use a sampling strategy or not. + temp (float): Sampling temperature. + top_k (int): K for "top-k" sampling. + top_p (float): P for "top-p" sampling. + cfg_coef (float, optional): Classifier-free guidance coefficient. + cfg_coef_beta (float, optional): If None, simple classifier free guidance is used with cfg_coef. + If not None, we apply double classifier free guidance as introduced in MusicGen-Style + in paragraph 4.3 (https://arxiv.org/pdf/2407.12563). This beta coefficient is meant to + push the text condition more than the style condition in the case where both text and style + conditions are being used. + two_step_cfg (bool, optional): Whether to perform classifier-free guidance with two steps generation. + remove_prompts (bool): Whether to remove prompts from generation or not. + check (bool): Whether to apply further checks on generated sequence. + callback (Callback, optional): Callback function to report generation progress. + Returns: + torch.Tensor: Generated tokens. + """ + assert not self.training, "generation shouldn't be used in training mode." + first_param = next(iter(self.parameters())) + device = first_param.device + + # Checking all input shapes are consistent. + possible_num_samples = [] + if num_samples is not None: + possible_num_samples.append(num_samples) + elif prompt is not None: + possible_num_samples.append(prompt.shape[0]) + elif conditions: + possible_num_samples.append(len(conditions)) + else: + possible_num_samples.append(1) + assert [x == possible_num_samples[0] for x in possible_num_samples], "Inconsistent inputs shapes" + num_samples = possible_num_samples[0] + + # below we create set of conditions: one conditional and one unconditional + # to do that we merge the regular condition together with the null condition + # we then do 1 forward pass instead of 2. + # the reason for that is two-fold: + # 1. it is about x2 faster than doing 2 forward passes + # 2. avoid the streaming API treating the 2 passes as part of different time steps + # We also support doing two different passes, in particular to ensure that + # the padding structure is exactly the same between train and test. + # With a batch size of 1, this can be slower though. + cfg_conditions: CFGConditions + cfg_conditions = {} + if cfg_coef_beta is not None: + if conditions: + wav_conditions = _drop_description_condition(conditions) + null_conditions = ClassifierFreeGuidanceDropout(p=1.0)(conditions) + conditions = conditions + wav_conditions + null_conditions + tokenized = self.condition_provider.tokenize(conditions) + cfg_conditions = self.condition_provider(tokenized) + elif conditions: + two_step_cfg = self.two_step_cfg if two_step_cfg is None else two_step_cfg + if conditions: + null_conditions = ClassifierFreeGuidanceDropout(p=1.0)(conditions) + if two_step_cfg: + cfg_conditions = ( + self.condition_provider(self.condition_provider.tokenize(conditions)), + self.condition_provider(self.condition_provider.tokenize(null_conditions)), + ) + else: + conditions = conditions + null_conditions + tokenized = self.condition_provider.tokenize(conditions) + cfg_conditions = self.condition_provider(tokenized) + else: + cfg_conditions = {} + + if prompt is None: + assert num_samples > 0 + prompt = torch.zeros((num_samples, self.num_codebooks, 0), dtype=torch.long, device=device) + + B, K, T = prompt.shape + start_offset = T + assert start_offset < max_gen_len + + pattern = self.pattern_provider.get_pattern(max_gen_len) + # this token is used as default value for codes that are not generated yet + unknown_token = -1 + + # we generate codes up to the max_gen_len that will be mapped to the pattern sequence + gen_codes = torch.full((B, K, max_gen_len), unknown_token, dtype=torch.long, device=device) + # filling the gen_codes with the prompt if needed + gen_codes[..., :start_offset] = prompt + # create the gen_sequence with proper interleaving from the pattern: [B, K, S] + gen_sequence, indexes, mask = pattern.build_pattern_sequence(gen_codes, self.special_token_id) + # retrieve the start_offset in the sequence: + # it is the first sequence step that contains the `start_offset` timestep + start_offset_sequence = pattern.get_first_step_with_timesteps(start_offset) + assert start_offset_sequence is not None + + with self.streaming(): + unconditional_state = self.get_streaming_state() + prev_offset = 0 + gen_sequence_len = gen_sequence.shape[-1] # gen_sequence shape is [B, K, S] + for offset in range(start_offset_sequence, gen_sequence_len): + # get current sequence (note that the streaming API is providing the caching over previous offsets) + curr_sequence = gen_sequence[..., prev_offset:offset] + curr_mask = mask[None, ..., prev_offset:offset].expand(B, -1, -1) + if check: + # check coherence between mask and sequence + assert (curr_sequence == torch.where(curr_mask, curr_sequence, self.special_token_id)).all() + # should never happen as gen_sequence is filled progressively + assert not (curr_sequence == unknown_token).any() + # sample next token from the model, next token shape is [B, K, 1] + next_token = self._sample_next_token( + curr_sequence, cfg_conditions, unconditional_state, use_sampling, temp, top_k, top_p, + cfg_coef=cfg_coef, cfg_coef_beta=cfg_coef_beta, two_step_cfg=two_step_cfg) + # ensure the tokens that should be masked are properly set to special_token_id + # as the model never output special_token_id + valid_mask = mask[..., offset:offset+1].expand(B, -1, -1) + next_token[~valid_mask] = self.special_token_id + # ensure we don't overwrite prompt tokens, we only write over unknown tokens + # (then mask tokens should be left as is as well, which is correct) + gen_sequence[..., offset:offset+1] = torch.where( + gen_sequence[..., offset:offset+1] == unknown_token, + next_token, gen_sequence[..., offset:offset+1] + ) + prev_offset = offset + if callback is not None: + callback(1 + offset - start_offset_sequence, gen_sequence_len - start_offset_sequence) + unconditional_state.clear() + + # ensure sequence has been entirely filled + assert not (gen_sequence == unknown_token).any() + # ensure gen_sequence pattern and mask are matching + # which means the gen_sequence is valid according to the pattern + assert ( + gen_sequence == torch.where(mask[None, ...].expand(B, -1, -1), gen_sequence, self.special_token_id) + ).all() + # get back the codes, trimming the prompt if needed and cutting potentially incomplete timesteps + out_codes, out_indexes, out_mask = pattern.revert_pattern_sequence(gen_sequence, special_token=unknown_token) + + # sanity checks over the returned codes and corresponding masks + assert (out_codes[..., :max_gen_len] != unknown_token).all() + assert (out_mask[..., :max_gen_len] == 1).all() + + out_start_offset = start_offset if remove_prompts else 0 + out_codes = out_codes[..., out_start_offset:max_gen_len] + + # ensure the returned codes are all valid + assert (out_codes >= 0).all() and (out_codes <= self.card).all() + return out_codes diff --git a/audiocraft/models/lm_magnet.py b/audiocraft/models/lm_magnet.py new file mode 100644 index 0000000..9d638f1 --- /dev/null +++ b/audiocraft/models/lm_magnet.py @@ -0,0 +1,500 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import math +import typing as tp +import torch +import numpy as np + +from ..utils import utils +from ..modules.conditioners import ( + ClassifierFreeGuidanceDropout, + ConditioningAttributes, + ConditionType, +) +from .lm import LMModel + +logger = logging.getLogger(__name__) +ConditionTensors = tp.Dict[str, ConditionType] +CFGConditions = tp.Union[ConditionTensors, tp.Tuple[ConditionTensors, ConditionTensors]] + + +class MagnetLMModel(LMModel): + """Transformer-based, non-autoregressive model, operates on multiple streams of audio tokens (MAGNeT). + Args: + subcodes_context (int): The number of timesteps attended in the self-attention blocks of codebooks > 0. + When set to -1, attention is unrestricted and all timesteps are attended. Defaults to 5. + compression_model_framerate (int): frame rate of the audio tokenizer. + segment_duration (int): Sample length in seconds. + span_len (int): Determines the length of masking spans. This is the minimal length of consecutive masked tokens, + for both training and inference. Defaults to 3. + **kwargs: Additional parameters for the LMModel. + """ + def __init__(self, subcodes_context: int = 5, compression_model_framerate: int = 50, + segment_duration: int = 10, span_len: int = 3, **kwargs): + super().__init__(**kwargs) + self.causal = kwargs['causal'] + self.subcodes_context = subcodes_context + self.span_len = span_len + self._build_attn_masks(compression_model_framerate=compression_model_framerate, + segment_duration=segment_duration, + num_heads=kwargs['num_heads'], + device=kwargs['device'], dtype=kwargs['dtype']) + + def restricted_context_attn_mask(self, seq_len: int, device: torch.device, dtype: torch.dtype) -> torch.Tensor: + """Creates a restricted attention mask (local attention map) where the context + is determined by self.subcodes_context. + Args: + seq_len (int): token sequence length. + device (torch.device): device of the output tensor. + dtype (torch.dtype): data type of the output tensor. + Returns: + torch.Tensor: The restricted attention mask. + """ + # Return a context restricted non-causal att mask + queries_pos = torch.arange(seq_len, device=device).view(-1, 1) + keys_pos = torch.arange(seq_len, device=device).view(1, -1) + + delta = queries_pos - keys_pos + valid = torch.abs(delta) <= self.subcodes_context + return torch.where( + valid, + torch.zeros([], device=device, dtype=dtype), + torch.full([], float('-inf'), device=device, dtype=dtype)) + + def _stage_attn_mask(self, stage: int, seq_len: int, num_heads: int, + device: torch.device, dtype: torch.dtype) -> tp.Optional[torch.Tensor]: + """Creates a restricted attention mask given the stage (codebook index). + Args: + stage (int): The codebook index. Takes values in [0, n_q]. + seq_len (int): Token sequence length. + num_heads (int): Num transformer attention heads. + device (torch.device): device of the output tensor. + dtype (torch.dtype): data type of the output tensor. + Returns: + torch.Tensor: Either a restricted attention mask or None if stage attention is unrestricted. + """ + sa_mask = None + + if stage > 0 and self.subcodes_context > -1: + # parallel - non-causal - with restricted subcodes context + sa_mask = self.restricted_context_attn_mask(seq_len, device=device, dtype=dtype) + + if sa_mask is not None: + # Repeat for each attention head + sa_mask = sa_mask.repeat((1, num_heads, 1, 1)) + + # align8 to enable memory efficient attention + MEMORY_EFFICIENT_ATTN_ALIGN_FACTOR = 8 + seq_len_aligned = \ + int(np.ceil(seq_len / MEMORY_EFFICIENT_ATTN_ALIGN_FACTOR)) * MEMORY_EFFICIENT_ATTN_ALIGN_FACTOR + + sa_mask_aligned = torch.zeros((1, num_heads, seq_len_aligned, seq_len_aligned), device=device, dtype=dtype) + sa_mask_aligned[..., :seq_len, :seq_len] = sa_mask + sa_mask = sa_mask_aligned + + return sa_mask + + def _build_attn_masks(self, compression_model_framerate: int, segment_duration: int, num_heads: int, + device: torch.device, dtype: torch.dtype): + """Construct attention mask per stage. For each of the RVQ codebook levels in the [0, n_q] range, + either a local attention map or None would be stored as an entry in the self.attn_mask_per_stage list. + Args: + compression_model_framerate (int): The frame rate of the tokenizer. + segment_duration (int): Sample length in seconds. + num_heads (int): Num transformer attention heads. + device (torch.device): device of the output tensor. + dtype (torch.dtype): data type of the output tensor. + """ + seq_len = compression_model_framerate * segment_duration + self.attn_mask_per_stage = [self._stage_attn_mask(stage, seq_len, num_heads, + device, dtype) for stage in range(self.n_q)] + + @torch.no_grad() + def generate(self, + prompt: tp.Optional[torch.Tensor] = None, + conditions: tp.List[ConditioningAttributes] = [], + num_samples: tp.Optional[int] = None, + max_gen_len: int = 256, + use_sampling: bool = True, + temp: float = 1.0, + top_k: int = 250, + top_p: float = 0.0, + cfg_coef: tp.Optional[float] = None, + cfg_coef_beta: tp.Optional[float] = None, + two_step_cfg: tp.Optional[bool] = None, + remove_prompts: bool = False, + check: bool = False, + callback: tp.Optional[tp.Callable[[int, int], None]] = None, + **kwargs) -> torch.Tensor: + + assert cfg_coef is None, "Unsupported in MAGNeT. Use max_cfg_coef,min_cfg_coef instead." + assert two_step_cfg is None, "MAGNeT currently doesn't support two step classifier-free-guidance." + assert remove_prompts is False, "MAGNeT currently doesn't support the remove_prompts arg." + assert check is False, "MAGNeT currently doesn't support the check arg." + assert cfg_coef_beta is None, "MAGNeT currently doesn't support the cfg_coef_beta arg." + # Call the MAGNeT-specific generation method + return self._generate_magnet(prompt=prompt, + conditions=conditions, + num_samples=num_samples, + max_gen_len=max_gen_len, + use_sampling=use_sampling, + temp=temp, + top_k=top_k, + top_p=top_p, + callback=callback, **kwargs) + + @torch.no_grad() + def _generate_magnet(self, + prompt: tp.Optional[torch.Tensor] = None, + conditions: tp.List[ConditioningAttributes] = [], + num_samples: tp.Optional[int] = None, + max_gen_len: int = 256, + use_sampling: bool = True, + temp: float = 3.0, + top_k: int = 0, + top_p: float = 0.9, + callback: tp.Optional[tp.Callable[[int, int], None]] = None, + max_cfg_coef: float = 10.0, + min_cfg_coef: float = 1.0, + decoding_steps: tp.List[int] = [20, 10, 10, 10], + anneal_temp: bool = True, + span_scoring='max', + span_arrangement='nonoverlap') -> torch.Tensor: + """Generate audio tokens given textual conditions, and optionally given audio prompts, + by running MAGNeT's iterative decoding algorithm for each of the n_q RVQ levels. + Args: + prompt (torch.Tensor): Prompt tokens of shape [B, K, T]. + conditions (list of ConditioningAttributes): List of conditions. + num_samples (int): Number of samples to generate when no prompt and no conditions are given. + max_gen_len (int): Maximum generation length. + use_sampling (bool): Whether to use a sampling strategy or not. + temp (float): Initial sampling temperature. + top_k (int): k for "top-k" sampling. + top_p (float): p for "top-p" sampling. + callback (Callback): Callback function to report generation progress. + max_clsfg_coef (float): Initial coefficient used for classifier free guidance. + min_clsfg_coef (float): Final coefficient used for classifier free guidance. + decoding_steps (list of n_q ints): The number of iterative decoding steps, + for each of the n_q RVQ codebooks. + anneal_temp (bool): When set to True, softmax temperature will be linearly decayed to zero, at each stage. + span_scoring (str): Use the maximum probability of each span ('max') + or the product of probabilities ('prod'). + span_arrangement (str): Use either non-overlapping spans ('nonoverlap') or overlapping spans ('stride1'). + in the masking scheme. + Returns: + torch.Tensor: Generated tokens. + """ + assert not self.training, "generation shouldn't be used in training mode." + first_param = next(iter(self.parameters())) + device = first_param.device + + # Checking all input shapes are consistent. + possible_num_samples = [] + if num_samples is not None: + possible_num_samples.append(num_samples) + elif prompt is not None: + possible_num_samples.append(prompt.shape[0]) + elif conditions: + possible_num_samples.append(len(conditions)) + else: + possible_num_samples.append(1) + assert [x == possible_num_samples[0] for x in possible_num_samples], "Inconsistent inputs shapes" + num_samples = possible_num_samples[0] + + # below we create set of conditions: one conditional and one unconditional + # to do that we merge the regular condition together with the null condition + # we then do 1 forward pass instead of 2. + cfg_conditions: tp.Optional[ConditionTensors] + if conditions: + null_conditions = ClassifierFreeGuidanceDropout(p=1.0)(conditions) + conditions = conditions + null_conditions + tokenized = self.condition_provider.tokenize(conditions) + cfg_conditions = self.condition_provider(tokenized) + else: + cfg_conditions = {} + + if prompt is None: + assert num_samples > 0 + prompt = torch.zeros((num_samples, self.num_codebooks, 0), dtype=torch.long, device=device) + + B, K, prompt_length = prompt.shape + start_offset = prompt_length + assert start_offset < max_gen_len + + mask_id = self.special_token_id + + # we generate codes with a fixed sequence length + shape = (B, K, max_gen_len) + + gen_codes = torch.full(shape, mask_id, dtype=torch.long, device=device) + # filling the gen_codes with the prompt if needed + gen_codes[..., :start_offset] = prompt + # create the gen_sequence with proper interleaving from the pattern: [B, K, S] + gen_sequence = gen_codes + + curr_step = 0 + for stage, n_steps in zip(range(self.n_q), decoding_steps): + gen_sequence, curr_step = self._generate_stage(gen_sequence, + cfg_conditions, + stage=stage, + device=device, + prompt_length=prompt_length, + prompt=prompt, + temp=temp, + max_cfg_coef=max_cfg_coef, + min_cfg_coef=min_cfg_coef, + top_k=top_k, + top_p=top_p, + timesteps=n_steps, + anneal_temp=anneal_temp, + span_scoring=span_scoring, + use_sampling=use_sampling, + span_arrangement=span_arrangement, + curr_step=curr_step, + total_steps=sum(decoding_steps), + callback=callback) + + return gen_sequence + + @torch.no_grad() + def _generate_stage(self, + gen_sequence: torch.Tensor, + condition_tensors: tp.Optional[ConditionTensors], + stage: int, + device: torch.device, + prompt_length: int = 0, + prompt: tp.Optional[torch.Tensor] = None, + use_sampling: bool = True, + temp: float = 3.0, + max_cfg_coef: float = 10.0, + min_cfg_coef: float = 1.0, + top_k: int = 0, + top_p: float = 0.0, + timesteps: int = 10, + anneal_temp: bool = True, + span_scoring: str = 'max', + span_arrangement: str = 'nonoverlap', + curr_step: int = 0, + total_steps: int = 0, + callback: tp.Optional[tp.Callable[[int, int], None]] = None) -> tp.Tuple[torch.Tensor, int]: + """Generate audio tokens of a single RVQ level (stage), given the previously generated stages, + and the textual conditions. + Args: + gen_sequence (torch.Tensor): Previously generated tokens. + condition_tensors (tp.Optional[ConditionTensors]): pre-computed conditioning tensors. + stage (int): RVQ level to generate. + device (torch.device): device of the output tensor. + prompt_length (int): Temporal length of the audio prompt. + prompt (torch.Tensor): Prompt tokens of shape [B, K, T]. + use_sampling (bool): Whether to use a sampling strategy or not. + temp (float): Initial sampling temperature. + max_clsfg_coef (float): Initial coefficient used for classifier free guidance. + min_clsfg_coef (float): Final coefficient used for classifier free guidance. + top_k (int): k for "top-k" sampling. + top_p (float): p for "top-p" sampling. + timesteps (int): Number of iterative decoding steps. + anneal_temp (bool): When set to True, softmax temperature will be linearly decayed to zero, at each stage. + span_scoring (str): Use the maximum probability of each span ('max') + or the product of probabilities ('prod'). + span_arrangement (str): Use either non-overlapping spans ('nonoverlap') or overlapping spans ('stride1'). + in the masking scheme. + curr_step (int): Global iterative decoding step counter. + total_steps (int): Total decoding steps. + callback (Callback): Callback function to report generation progress. + Returns: + tuple(torch.Tensor, int): Generated tokens and the current decoding step counter. + """ + B, K, T = gen_sequence.shape + shape = (B, 1, T) # generating a single codebook per stage + + mask_id = self.special_token_id + stage_gen_seq = torch.full(shape, mask_id, dtype=torch.long, device=device) + + assert span_arrangement == 'nonoverlap' or span_arrangement == 'stride1' + chunk_masking = self.span_len > 1 and span_arrangement == 'nonoverlap' + + DONT_REMASK_ME_SCORE = -1e4 + + model = self if self._fsdp is None else self._fsdp + + if chunk_masking: + # span-wise scores + n_chunks = T // self.span_len + if T % self.span_len != 0: + # trim sequence ending to achieve a multiple of span_len + T = self.span_len * n_chunks + gen_sequence = gen_sequence[..., :T] + stage_gen_seq = stage_gen_seq[..., :T] + + chunked_shape = (B, 1, n_chunks) + n_prompt_chunks = prompt_length // self.span_len + scores = torch.zeros(chunked_shape, dtype=torch.float32, device=device) + scores[..., :n_prompt_chunks] = DONT_REMASK_ME_SCORE + num_chunks_to_gen = n_chunks - n_prompt_chunks + else: + # token-wise scores + scores = torch.zeros(shape, dtype=torch.float32, device=device) + scores[..., :prompt_length] = DONT_REMASK_ME_SCORE + gen_T = T - prompt_length + + # run MAGNeT iterative decoding for "timesteps" iterations + for timestep, steps_left in zip(torch.linspace(0, 1, timesteps, device=device), reversed(range(timesteps))): + + mask_p = torch.cos(timestep * math.pi * 0.5) + + if chunk_masking: + num_masked = max(int((mask_p * num_chunks_to_gen).item()), 1) + else: + num_masked = max(int((mask_p * gen_T).item()), 1) + + # masking + run_lps_masking = (span_arrangement == 'stride1') and self.span_len > 1 + if run_lps_masking: + # masking of the k least probable overlapping (stride 1) spans + mask = torch.concat(( + [self._least_probable_span_masking(scores[[i], :, :], num_masked).to(device) + for i in range(B)]), dim=0) + stage_gen_seq[mask] = mask_id + else: + # masking of the k least probable non-overlapping spans + masked = scores.topk(num_masked, dim=-1).indices + if chunk_masking: + chunks_mask = torch.full(chunked_shape, False, dtype=torch.bool, device=device) + chunks_mask = chunks_mask.scatter(2, masked, True) + mask = torch.repeat_interleave(chunks_mask, self.span_len, dim=-1) + stage_gen_seq[mask] = mask_id + else: + stage_gen_seq = stage_gen_seq.scatter(2, masked, mask_id) + + if prompt is not None: + stage_gen_seq[..., :prompt_length] = prompt[:, stage, :].unsqueeze(1) + + gen_sequence[:, [stage], :] = stage_gen_seq + if condition_tensors: + # duplicate input for classifier free guidance + sequence = torch.cat([gen_sequence, gen_sequence], dim=0) + + all_logits = model(sequence, [], condition_tensors, stage=stage) + + if condition_tensors: + # classifier free guidance with annealing + cond_logits, uncond_logits = all_logits.split(B, dim=0) # [B, K, T, card] + clsfg_coef = float(mask_p) * max_cfg_coef + (1 - float(mask_p)) * min_cfg_coef + logits = uncond_logits + (cond_logits - uncond_logits) * clsfg_coef + else: + logits = all_logits + + # temperature annealing - linear + t = temp * (steps_left / timesteps) if anneal_temp else temp + + # sampling + logits = logits[:, stage, :, :].unsqueeze(1) + probs = torch.softmax(logits / max(t, 1e-2), dim=-1) + if use_sampling: + if top_p > 0.0: + sampled_tokens = utils.sample_top_p(probs, p=top_p) + elif top_k > 0: + sampled_tokens = utils.sample_top_k(probs, k=top_k) + else: + sampled_tokens = utils.multinomial(probs, num_samples=1) + else: + sampled_tokens = torch.argmax(logits, dim=-1, keepdim=True) + + # place mask_id token in each of the masked positions + mask = stage_gen_seq == mask_id + stage_gen_seq = torch.where(mask, sampled_tokens[..., 0], stage_gen_seq) + gen_sequence[:, [stage], :] = stage_gen_seq + + # get probs of sampled tokens + sampled_probs = torch.gather(probs, 3, sampled_tokens)[..., 0] + + # span scoring + if chunk_masking: + if span_scoring == 'max': + # max in linear space + scores = 1 - torch.max(sampled_probs.reshape((B, 1, n_chunks, -1)), dim=-1)[0] + elif span_scoring == 'prod': + # prod in log space + scores = torch.sum(-torch.log(sampled_probs).reshape((B, 1, n_chunks, -1)), dim=-1) + else: + raise NotImplementedError + else: + # prod in log space for lps masking (stride1) + scores = -torch.log(sampled_probs) + + # Fix unmasked tokens by placing inf probs (-inf scores) + if chunk_masking: + scores = scores.masked_fill(~chunks_mask, DONT_REMASK_ME_SCORE) + else: + scores = scores.masked_fill(~mask, DONT_REMASK_ME_SCORE) + + if callback is not None: + curr_step += 1 + callback(curr_step, total_steps) + + return gen_sequence, curr_step + + def _construct_spans_mask(self, span_starts: torch.Tensor, T: int, device: torch.device) -> torch.Tensor: + """Build a [1x1xT] boolean mask consists of overlapping spans of True values, where + span_starts defines the initial index of each span, and the span length is + defined by self.span_len. + Args: + span_starts (torch.Tensor): Boolean mask determines the temporal location of each span start. + T (int): Sequence length. + device (torch.device): device of the output tensor. + Returns: + torch.Tensor: Spans mask of shape [1x1xT] + """ + mask = torch.full((1, 1, T), False, device=device) + mask[:, :, span_starts] = True + shifted_mask = mask.clone() + for _ in range(self.span_len - 1): + shifted_mask = torch.concat((torch.full((1, 1, 1), False, device=device), shifted_mask[:, :, :-1]), dim=-1) + mask = torch.logical_or(mask, shifted_mask) + return mask + + def _least_probable_span_masking(self, scores: torch.Tensor, num_masked_trg: int) -> torch.Tensor: + """Construct a [1x1xT] boolean mask, consists of the u least probable spans, + where the token probability is determined by -scores, and the total + number of masked tokens is as closest as possible to num_masked_trg. + Find u using binary search. + Args: + scores (torch.Tensor): Per token score [-log(prob)] + num_masked_trg: int: The desired amount of tokens to be masked. + Returns: + torch.Tensor: Spans mask of shape [1x1xT] + """ + T = scores.shape[-1] + device = scores.device + scores_unfolded = scores.unfold(2, self.span_len, 1) + # Span score is the product of probs (sum in log space) + span_scores = scores_unfolded.sum(dim=-1) + spans_by_scores = torch.argsort(span_scores[0, 0], descending=True) + + num_masked_trg = max(num_masked_trg, self.span_len) + + # Binary search for u - the number least probable overlapping masked spans s.t. + # the total masking rate is the closest to num_masked_trg / T. + min_u = num_masked_trg // self.span_len + max_u = num_masked_trg - self.span_len + 1 + mid = round(0.5 * (min_u + max_u)) + + if mid == min_u or mid == max_u: + return self._construct_spans_mask(spans_by_scores[:mid], T, device) + + while mid > min_u and mid < max_u: + mask = self._construct_spans_mask(spans_by_scores[:mid], T, device) + n_masked = mask.sum() + if n_masked > num_masked_trg: + max_u = mid + mid = round(0.5 * (min_u + max_u)) + else: + min_u = mid + mid = round(0.5 * (min_u + max_u)) + + return mask diff --git a/audiocraft/models/loaders.py b/audiocraft/models/loaders.py new file mode 100644 index 0000000..af370ce --- /dev/null +++ b/audiocraft/models/loaders.py @@ -0,0 +1,268 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Utility functions to load from the checkpoints. +Each checkpoint is a torch.saved dict with the following keys: +- 'xp.cfg': the hydra config as dumped during training. This should be used + to rebuild the object using the audiocraft.models.builders functions, +- 'model_best_state': a readily loadable best state for the model, including + the conditioner. The model obtained from `xp.cfg` should be compatible + with this state dict. In the case of a LM, the encodec model would not be + bundled along but instead provided separately. + +Those functions also support loading from a remote location with the Torch Hub API. +They also support overriding some parameters, in particular the device and dtype +of the returned model. +""" + +from pathlib import Path +from huggingface_hub import hf_hub_download +import typing as tp +import os + +from omegaconf import OmegaConf, DictConfig +import torch + +import audiocraft + +from . import builders +from .encodec import CompressionModel + + +def get_audiocraft_cache_dir() -> tp.Optional[str]: + return os.environ.get('AUDIOCRAFT_CACHE_DIR', None) + + +def _get_state_dict( + file_or_url_or_id: tp.Union[Path, str], + filename: tp.Optional[str] = None, + device='cpu', + cache_dir: tp.Optional[str] = None, +): + if cache_dir is None: + cache_dir = get_audiocraft_cache_dir() + # Return the state dict either from a file or url + file_or_url_or_id = str(file_or_url_or_id) + assert isinstance(file_or_url_or_id, str) + + if os.path.isfile(file_or_url_or_id): + return torch.load(file_or_url_or_id, map_location=device) + + if os.path.isdir(file_or_url_or_id): + file = f"{file_or_url_or_id}/{filename}" + return torch.load(file, map_location=device) + + elif file_or_url_or_id.startswith('https://'): + return torch.hub.load_state_dict_from_url(file_or_url_or_id, map_location=device, check_hash=True) + + else: + assert filename is not None, "filename needs to be defined if using HF checkpoints" + file = hf_hub_download( + repo_id=file_or_url_or_id, + filename=filename, + cache_dir=cache_dir, + library_name="audiocraft", + library_version=audiocraft.__version__, + ) + return torch.load(file, map_location=device) + + +def load_compression_model_ckpt(file_or_url_or_id: tp.Union[Path, str], cache_dir: tp.Optional[str] = None): + return _get_state_dict(file_or_url_or_id, filename="compression_state_dict.bin", cache_dir=cache_dir) + + +def load_compression_model( + file_or_url_or_id: tp.Union[Path, str], + device="cpu", + cache_dir: tp.Optional[str] = None, +): + pkg = load_compression_model_ckpt(file_or_url_or_id, cache_dir=cache_dir) + if 'pretrained' in pkg: + return CompressionModel.get_pretrained(pkg['pretrained'], device=device) + cfg = OmegaConf.create(pkg['xp.cfg']) + cfg.device = str(device) + model = builders.get_compression_model(cfg) + model.load_state_dict(pkg["best_state"]) + model.eval() + return model + + +def load_lm_model_ckpt(file_or_url_or_id: tp.Union[Path, str], cache_dir: tp.Optional[str] = None): + return _get_state_dict(file_or_url_or_id, filename="state_dict.bin", cache_dir=cache_dir) + + +def _delete_param(cfg: DictConfig, full_name: str): + parts = full_name.split('.') + for part in parts[:-1]: + if part in cfg: + cfg = cfg[part] + else: + return + OmegaConf.set_struct(cfg, False) + if parts[-1] in cfg: + del cfg[parts[-1]] + OmegaConf.set_struct(cfg, True) + + +def load_lm_model(file_or_url_or_id: tp.Union[Path, str], device='cpu', cache_dir: tp.Optional[str] = None): + pkg = load_lm_model_ckpt(file_or_url_or_id, cache_dir=cache_dir) + cfg = OmegaConf.create(pkg['xp.cfg']) + cfg.device = str(device) + if cfg.device == 'cpu': + cfg.dtype = 'float32' + else: + cfg.dtype = 'float16' + _delete_param(cfg, 'conditioners.self_wav.chroma_stem.cache_path') + _delete_param(cfg, 'conditioners.args.merge_text_conditions_p') + _delete_param(cfg, 'conditioners.args.drop_desc_p') + model = builders.get_lm_model(cfg) + model.load_state_dict(pkg['best_state']) + model.eval() + model.cfg = cfg + return model + + +def load_lm_model_magnet(file_or_url_or_id: tp.Union[Path, str], compression_model_frame_rate: int, + device='cpu', cache_dir: tp.Optional[str] = None): + pkg = load_lm_model_ckpt(file_or_url_or_id, cache_dir=cache_dir) + cfg = OmegaConf.create(pkg['xp.cfg']) + cfg.device = str(device) + if cfg.device == 'cpu': + cfg.dtype = 'float32' + else: + cfg.dtype = 'float16' + _delete_param(cfg, 'conditioners.args.merge_text_conditions_p') + _delete_param(cfg, 'conditioners.args.drop_desc_p') + + cfg.transformer_lm.compression_model_framerate = compression_model_frame_rate + cfg.transformer_lm.segment_duration = cfg.dataset.segment_duration + cfg.transformer_lm.span_len = cfg.masking.span_len + + # MAGNeT models v1 support only xformers backend. + from audiocraft.modules.transformer import set_efficient_attention_backend + + if cfg.transformer_lm.memory_efficient: + set_efficient_attention_backend("xformers") + + model = builders.get_lm_model(cfg) + model.load_state_dict(pkg['best_state']) + model.eval() + model.cfg = cfg + return model + + +def load_jasco_model(file_or_url_or_id: tp.Union[Path, str], + compression_model: CompressionModel, + device='cpu', cache_dir: tp.Optional[str] = None): + pkg = load_lm_model_ckpt(file_or_url_or_id, cache_dir=cache_dir) + cfg = OmegaConf.create(pkg['xp.cfg']) + cfg.device = str(device) + if cfg.device == 'cpu': + cfg.dtype = 'float32' + else: + cfg.dtype = 'float16' + model = builders.get_jasco_model(cfg, compression_model) + model.load_state_dict(pkg['best_state']) + model.eval() + model.cfg = cfg + return model + + +def load_mbd_ckpt(file_or_url_or_id: tp.Union[Path, str], + filename: tp.Optional[str] = None, + cache_dir: tp.Optional[str] = None): + return _get_state_dict(file_or_url_or_id, filename=filename, cache_dir=cache_dir) + + +def load_diffusion_models(file_or_url_or_id: tp.Union[Path, str], + device='cpu', + filename: tp.Optional[str] = None, + cache_dir: tp.Optional[str] = None): + pkg = load_mbd_ckpt(file_or_url_or_id, filename=filename, cache_dir=cache_dir) + models = [] + processors = [] + cfgs = [] + sample_rate = pkg['sample_rate'] + for i in range(pkg['n_bands']): + cfg = pkg[i]['cfg'] + model = builders.get_diffusion_model(cfg) + model_dict = pkg[i]['model_state'] + model.load_state_dict(model_dict) + model.to(device) + processor = builders.get_processor(cfg=cfg.processor, sample_rate=sample_rate) + processor_dict = pkg[i]['processor_state'] + processor.load_state_dict(processor_dict) + processor.to(device) + models.append(model) + processors.append(processor) + cfgs.append(cfg) + return models, processors, cfgs + + +def load_audioseal_models( + file_or_url_or_id: tp.Union[Path, str], + device="cpu", + filename: tp.Optional[str] = None, + cache_dir: tp.Optional[str] = None, +): + + detector_ckpt = _get_state_dict( + file_or_url_or_id, + filename=f"detector_{filename}.pth", + device=device, + cache_dir=cache_dir, + ) + assert ( + "model" in detector_ckpt + ), f"No model state dict found in {file_or_url_or_id}/detector_{filename}.pth" + detector_state = detector_ckpt["model"] + + generator_ckpt = _get_state_dict( + file_or_url_or_id, + filename=f"generator_{filename}.pth", + device=device, + cache_dir=cache_dir, + ) + assert ( + "model" in generator_ckpt + ), f"No model state dict found in {file_or_url_or_id}/generator_{filename}.pth" + generator_state = generator_ckpt["model"] + + def load_model_config(): + if Path(file_or_url_or_id).joinpath(f"{filename}.yaml").is_file(): + return OmegaConf.load(Path(file_or_url_or_id).joinpath(f"{filename}.yaml")) + elif file_or_url_or_id.startswith("https://"): + import requests # type: ignore + + resp = requests.get(f"{file_or_url_or_id}/{filename}.yaml") + return OmegaConf.create(resp.text) + else: + file = hf_hub_download( + repo_id=file_or_url_or_id, + filename=f"{filename}.yaml", + cache_dir=cache_dir, + library_name="audiocraft", + library_version=audiocraft.__version__, + ) + return OmegaConf.load(file) + + try: + cfg = load_model_config() + except Exception as exc: # noqa + cfg_fp = ( + Path(__file__) + .parents[2] + .joinpath("config", "model", "watermark", "default.yaml") + ) + cfg = OmegaConf.load(cfg_fp) + + OmegaConf.resolve(cfg) + model = builders.get_watermark_model(cfg) + + model.generator.load_state_dict(generator_state) + model.detector.load_state_dict(detector_state) + return model.to(device) diff --git a/audiocraft/models/magnet.py b/audiocraft/models/magnet.py new file mode 100644 index 0000000..453269a --- /dev/null +++ b/audiocraft/models/magnet.py @@ -0,0 +1,88 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Main model for using MAGNeT. This will combine all the required components +and provide easy access to the generation API. +""" +import typing as tp +import torch + +from .genmodel import BaseGenModel +from .loaders import load_compression_model, load_lm_model_magnet + + +class MAGNeT(BaseGenModel): + """MAGNeT main model with convenient generation API. + Args: + See MusicGen class. + """ + def __init__(self, **kwargs): + super().__init__(**kwargs) + # MAGNeT operates over a fixed sequence length defined in it's config. + self.duration = self.lm.cfg.dataset.segment_duration + self.set_generation_params() + + @staticmethod + def get_pretrained(name: str = 'facebook/magnet-small-10secs', device=None): + """Return pretrained model, we provide six models: + - facebook/magnet-small-10secs (300M), text to music, 10-second audio samples. + # see: https://huggingface.co/facebook/magnet-small-10secs + - facebook/magnet-medium-10secs (1.5B), text to music, 10-second audio samples. + # see: https://huggingface.co/facebook/magnet-medium-10secs + - facebook/magnet-small-30secs (300M), text to music, 30-second audio samples. + # see: https://huggingface.co/facebook/magnet-small-30secs + - facebook/magnet-medium-30secs (1.5B), text to music, 30-second audio samples. + # see: https://huggingface.co/facebook/magnet-medium-30secs + - facebook/audio-magnet-small (300M), text to sound-effect (10-second samples). + # see: https://huggingface.co/facebook/audio-magnet-small + - facebook/audio-magnet-medium (1.5B), text to sound-effect (10-second samples). + # see: https://huggingface.co/facebook/audio-magnet-medium + """ + if device is None: + if torch.cuda.device_count(): + device = 'cuda' + else: + device = 'cpu' + + compression_model = load_compression_model(name, device=device) + lm = load_lm_model_magnet(name, compression_model_frame_rate=int(compression_model.frame_rate), device=device) + + if 'self_wav' in lm.condition_provider.conditioners: + lm.condition_provider.conditioners['self_wav'].match_len_on_eval = True + + kwargs = {'name': name, 'compression_model': compression_model, 'lm': lm} + return MAGNeT(**kwargs) + + def set_generation_params(self, use_sampling: bool = True, top_k: int = 0, + top_p: float = 0.9, temperature: float = 3.0, + max_cfg_coef: float = 10.0, min_cfg_coef: float = 1.0, + decoding_steps: tp.List[int] = [20, 10, 10, 10], + span_arrangement: str = 'nonoverlap'): + """Set the generation parameters for MAGNeT. + + Args: + use_sampling (bool, optional): Use sampling if True, else do argmax decoding. Defaults to True. + top_k (int, optional): top_k used for sampling. Defaults to 0. + top_p (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.9. + temperature (float, optional): Initial softmax temperature parameter. Defaults to 3.0. + max_cfg_coef (float, optional): Coefficient used for classifier free guidance. Defaults to 10.0. + min_cfg_coef (float, optional): End coefficient of classifier free guidance annealing. Defaults to 1.0. + decoding_steps (list of n_q ints, optional): The number of iterative decoding steps, + for each of the n_q RVQ codebooks. + span_arrangement (str, optional): Use either non-overlapping spans ('nonoverlap') + or overlapping spans ('stride1') in the masking scheme. + """ + self.generation_params = { + 'use_sampling': use_sampling, + 'temp': temperature, + 'top_k': top_k, + 'top_p': top_p, + 'max_cfg_coef': max_cfg_coef, + 'min_cfg_coef': min_cfg_coef, + 'decoding_steps': [int(s) for s in decoding_steps], + 'span_arrangement': span_arrangement + } diff --git a/audiocraft/models/multibanddiffusion.py b/audiocraft/models/multibanddiffusion.py new file mode 100644 index 0000000..451b586 --- /dev/null +++ b/audiocraft/models/multibanddiffusion.py @@ -0,0 +1,191 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Multi Band Diffusion models as described in +"From Discrete Tokens to High-Fidelity Audio Using Multi-Band Diffusion" +(paper link). +""" + +import typing as tp + +import torch +import julius + +from .unet import DiffusionUnet +from ..modules.diffusion_schedule import NoiseSchedule +from .encodec import CompressionModel +from ..solvers.compression import CompressionSolver +from .loaders import load_compression_model, load_diffusion_models + + +class DiffusionProcess: + """Sampling for a diffusion Model. + + Args: + model (DiffusionUnet): Diffusion U-Net model. + noise_schedule (NoiseSchedule): Noise schedule for diffusion process. + """ + def __init__(self, model: DiffusionUnet, noise_schedule: NoiseSchedule) -> None: + self.model = model + self.schedule = noise_schedule + + def generate(self, condition: torch.Tensor, initial_noise: torch.Tensor, + step_list: tp.Optional[tp.List[int]] = None): + """Perform one diffusion process to generate one of the bands. + + Args: + condition (torch.Tensor): The embeddings from the compression model. + initial_noise (torch.Tensor): The initial noise to start the process. + """ + return self.schedule.generate_subsampled(model=self.model, initial=initial_noise, step_list=step_list, + condition=condition) + + +class MultiBandDiffusion: + """Sample from multiple diffusion models. + + Args: + DPs (list of DiffusionProcess): Diffusion processes. + codec_model (CompressionModel): Underlying compression model used to obtain discrete tokens. + """ + def __init__(self, DPs: tp.List[DiffusionProcess], codec_model: CompressionModel) -> None: + self.DPs = DPs + self.codec_model = codec_model + self.device = next(self.codec_model.parameters()).device + + @property + def sample_rate(self) -> int: + return self.codec_model.sample_rate + + @staticmethod + def get_mbd_musicgen(device=None): + """Load our diffusion models trained for MusicGen.""" + if device is None: + device = 'cuda' if torch.cuda.is_available() else 'cpu' + path = 'facebook/multiband-diffusion' + filename = 'mbd_musicgen_32khz.th' + name = 'facebook/musicgen-small' + codec_model = load_compression_model(name, device=device) + models, processors, cfgs = load_diffusion_models(path, filename=filename, device=device) + DPs = [] + for i in range(len(models)): + schedule = NoiseSchedule(**cfgs[i].schedule, sample_processor=processors[i], device=device) + DPs.append(DiffusionProcess(model=models[i], noise_schedule=schedule)) + return MultiBandDiffusion(DPs=DPs, codec_model=codec_model) + + @staticmethod + def get_mbd_24khz(bw: float = 3.0, + device: tp.Optional[tp.Union[torch.device, str]] = None, + n_q: tp.Optional[int] = None): + """Get the pretrained Models for MultibandDiffusion. + + Args: + bw (float): Bandwidth of the compression model. + device (torch.device or str, optional): Device on which the models are loaded. + n_q (int, optional): Number of quantizers to use within the compression model. + """ + if device is None: + device = 'cuda' if torch.cuda.is_available() else 'cpu' + assert bw in [1.5, 3.0, 6.0], f"bandwidth {bw} not available" + if n_q is not None: + assert n_q in [2, 4, 8] + assert {1.5: 2, 3.0: 4, 6.0: 8}[bw] == n_q, \ + f"bandwidth and number of codebooks missmatch to use n_q = {n_q} bw should be {n_q * (1.5 / 2)}" + n_q = {1.5: 2, 3.0: 4, 6.0: 8}[bw] + codec_model = CompressionSolver.model_from_checkpoint( + '//pretrained/facebook/encodec_24khz', device=device) + codec_model.set_num_codebooks(n_q) + codec_model = codec_model.to(device) + path = 'facebook/multiband-diffusion' + filename = f'mbd_comp_{n_q}.pt' + models, processors, cfgs = load_diffusion_models(path, filename=filename, device=device) + DPs = [] + for i in range(len(models)): + schedule = NoiseSchedule(**cfgs[i].schedule, sample_processor=processors[i], device=device) + DPs.append(DiffusionProcess(model=models[i], noise_schedule=schedule)) + return MultiBandDiffusion(DPs=DPs, codec_model=codec_model) + + @torch.no_grad() + def get_condition(self, wav: torch.Tensor, sample_rate: int) -> torch.Tensor: + """Get the conditioning (i.e. latent representations of the compression model) from a waveform. + Args: + wav (torch.Tensor): The audio that we want to extract the conditioning from. + sample_rate (int): Sample rate of the audio.""" + if sample_rate != self.sample_rate: + wav = julius.resample_frac(wav, sample_rate, self.sample_rate) + codes, scale = self.codec_model.encode(wav) + assert scale is None, "Scaled compression models not supported." + emb = self.get_emb(codes) + return emb + + @torch.no_grad() + def get_emb(self, codes: torch.Tensor): + """Get latent representation from the discrete codes. + Args: + codes (torch.Tensor): Discrete tokens.""" + emb = self.codec_model.decode_latent(codes) + return emb + + def generate(self, emb: torch.Tensor, size: tp.Optional[torch.Size] = None, + step_list: tp.Optional[tp.List[int]] = None): + """Generate waveform audio from the latent embeddings of the compression model. + Args: + emb (torch.Tensor): Conditioning embeddings + size (None, torch.Size): Size of the output + if None this is computed from the typical upsampling of the model. + step_list (list[int], optional): list of Markov chain steps, defaults to 50 linearly spaced step. + """ + if size is None: + upsampling = int(self.codec_model.sample_rate / self.codec_model.frame_rate) + size = torch.Size([emb.size(0), self.codec_model.channels, emb.size(-1) * upsampling]) + assert size[0] == emb.size(0) + out = torch.zeros(size).to(self.device) + for DP in self.DPs: + out += DP.generate(condition=emb, step_list=step_list, initial_noise=torch.randn_like(out)) + return out + + def re_eq(self, wav: torch.Tensor, ref: torch.Tensor, n_bands: int = 32, strictness: float = 1): + """Match the eq to the encodec output by matching the standard deviation of some frequency bands. + Args: + wav (torch.Tensor): Audio to equalize. + ref (torch.Tensor): Reference audio from which we match the spectrogram. + n_bands (int): Number of bands of the eq. + strictness (float): How strict the matching. 0 is no matching, 1 is exact matching. + """ + split = julius.SplitBands(n_bands=n_bands, sample_rate=self.codec_model.sample_rate).to(wav.device) + bands = split(wav) + bands_ref = split(ref) + out = torch.zeros_like(ref) + for i in range(n_bands): + out += bands[i] * (bands_ref[i].std() / bands[i].std()) ** strictness + return out + + def regenerate(self, wav: torch.Tensor, sample_rate: int): + """Regenerate a waveform through compression and diffusion regeneration. + Args: + wav (torch.Tensor): Original 'ground truth' audio. + sample_rate (int): Sample rate of the input (and output) wav. + """ + if sample_rate != self.codec_model.sample_rate: + wav = julius.resample_frac(wav, sample_rate, self.codec_model.sample_rate) + emb = self.get_condition(wav, sample_rate=self.codec_model.sample_rate) + size = wav.size() + out = self.generate(emb, size=size) + if sample_rate != self.codec_model.sample_rate: + out = julius.resample_frac(out, self.codec_model.sample_rate, sample_rate) + return out + + def tokens_to_wav(self, tokens: torch.Tensor, n_bands: int = 32): + """Generate Waveform audio with diffusion from the discrete codes. + Args: + tokens (torch.Tensor): Discrete codes. + n_bands (int): Bands for the eq matching. + """ + wav_encodec = self.codec_model.decode(tokens) + condition = self.get_emb(tokens) + wav_diffusion = self.generate(emb=condition, size=wav_encodec.size()) + return self.re_eq(wav=wav_diffusion, ref=wav_encodec, n_bands=n_bands) diff --git a/audiocraft/models/musicgen.py b/audiocraft/models/musicgen.py new file mode 100644 index 0000000..8b1bbfc --- /dev/null +++ b/audiocraft/models/musicgen.py @@ -0,0 +1,338 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Main model for using MusicGen. This will combine all the required components +and provide easy access to the generation API. +""" + +import typing as tp +import warnings + +import torch + +from .encodec import CompressionModel +from .genmodel import BaseGenModel +from .lm import LMModel +from .builders import get_debug_compression_model, get_debug_lm_model +from .loaders import load_compression_model, load_lm_model +from ..data.audio_utils import convert_audio +from ..modules.conditioners import ConditioningAttributes, WavCondition, StyleConditioner + + +MelodyList = tp.List[tp.Optional[torch.Tensor]] +MelodyType = tp.Union[torch.Tensor, MelodyList] + + +# backward compatible names mapping +_HF_MODEL_CHECKPOINTS_MAP = { + "small": "facebook/musicgen-small", + "medium": "facebook/musicgen-medium", + "large": "facebook/musicgen-large", + "melody": "facebook/musicgen-melody", + "style": "facebook/musicgen-style", +} + + +class MusicGen(BaseGenModel): + """MusicGen main model with convenient generation API. + + Args: + name (str): name of the model. + compression_model (CompressionModel): Compression model + used to map audio to invertible discrete representations. + lm (LMModel): Language model over discrete representations. + max_duration (float, optional): maximum duration the model can produce, + otherwise, inferred from the training params. + """ + def __init__(self, name: str, compression_model: CompressionModel, lm: LMModel, + max_duration: tp.Optional[float] = None): + super().__init__(name, compression_model, lm, max_duration) + self.set_generation_params(duration=15) # default duration + + @staticmethod + def get_pretrained(name: str = 'facebook/musicgen-melody', device=None): + """Return pretrained model, we provide four models: + - facebook/musicgen-small (300M), text to music, + # see: https://huggingface.co/facebook/musicgen-small + - facebook/musicgen-medium (1.5B), text to music, + # see: https://huggingface.co/facebook/musicgen-medium + - facebook/musicgen-melody (1.5B) text to music and text+melody to music, + # see: https://huggingface.co/facebook/musicgen-melody + - facebook/musicgen-large (3.3B), text to music, + # see: https://huggingface.co/facebook/musicgen-large + - facebook/musicgen-style (1.5 B), text and style to music, + # see: https://huggingface.co/facebook/musicgen-style + """ + if device is None: + if torch.cuda.device_count(): + device = 'cuda' + else: + device = 'cpu' + + if name == 'debug': + # used only for unit tests + compression_model = get_debug_compression_model(device) + lm = get_debug_lm_model(device) + return MusicGen(name, compression_model, lm, max_duration=30) + + if name in _HF_MODEL_CHECKPOINTS_MAP: + warnings.warn( + "MusicGen pretrained model relying on deprecated checkpoint mapping. " + + f"Please use full pre-trained id instead: facebook/musicgen-{name}") + name = _HF_MODEL_CHECKPOINTS_MAP[name] + + lm = load_lm_model(name, device=device) + compression_model = load_compression_model(name, device=device) + if 'self_wav' in lm.condition_provider.conditioners: + lm.condition_provider.conditioners['self_wav'].match_len_on_eval = True + lm.condition_provider.conditioners['self_wav']._use_masking = False + + return MusicGen(name, compression_model, lm) + + def set_generation_params(self, use_sampling: bool = True, top_k: int = 250, + top_p: float = 0.0, temperature: float = 1.0, + duration: float = 30.0, cfg_coef: float = 3.0, + cfg_coef_beta: tp.Optional[float] = None, + two_step_cfg: bool = False, extend_stride: float = 18,): + """Set the generation parameters for MusicGen. + + Args: + use_sampling (bool, optional): Use sampling if True, else do argmax decoding. Defaults to True. + top_k (int, optional): top_k used for sampling. Defaults to 250. + top_p (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.0. + temperature (float, optional): Softmax temperature parameter. Defaults to 1.0. + duration (float, optional): Duration of the generated waveform. Defaults to 30.0. + cfg_coef (float, optional): Coefficient used for classifier free guidance. Defaults to 3.0. + cfg_coef_beta (float, optional): beta coefficient in double classifier free guidance. + Should be only used for MusicGen melody if we want to push the text condition more than + the audio conditioning. See paragraph 4.3 in https://arxiv.org/pdf/2407.12563 to understand + double CFG. + two_step_cfg (bool, optional): If True, performs 2 forward for Classifier Free Guidance, + instead of batching together the two. This has some impact on how things + are padded but seems to have little impact in practice. + extend_stride: when doing extended generation (i.e. more than 30 seconds), by how much + should we extend the audio each time. Larger values will mean less context is + preserved, and shorter value will require extra computations. + """ + assert extend_stride < self.max_duration, "Cannot stride by more than max generation duration." + self.extend_stride = extend_stride + self.duration = duration + self.generation_params = { + 'use_sampling': use_sampling, + 'temp': temperature, + 'top_k': top_k, + 'top_p': top_p, + 'cfg_coef': cfg_coef, + 'two_step_cfg': two_step_cfg, + 'cfg_coef_beta': cfg_coef_beta, + } + + def set_style_conditioner_params(self, eval_q: int = 3, excerpt_length: float = 3.0, + ds_factor: tp.Optional[int] = None, + encodec_n_q: tp.Optional[int] = None) -> None: + """Set the parameters of the style conditioner + Args: + eval_q (int): the number of residual quantization streams used to quantize the style condition + the smaller it is, the narrower is the information bottleneck + excerpt_length (float): the excerpt length in seconds that is extracted from the audio + conditioning + ds_factor: (int): the downsampling factor used to downsample the style tokens before + using them as a prefix + encodec_n_q: (int, optional): if encodec is used as a feature extractor, sets the number + of streams that is used to extract features + """ + assert isinstance(self.lm.condition_provider.conditioners.self_wav, StyleConditioner), \ + "Only use this function if you model is MusicGen-Style" + self.lm.condition_provider.conditioners.self_wav.set_params(eval_q=eval_q, + excerpt_length=excerpt_length, + ds_factor=ds_factor, + encodec_n_q=encodec_n_q) + + def generate_with_chroma(self, descriptions: tp.List[str], melody_wavs: MelodyType, + melody_sample_rate: int, progress: bool = False, + return_tokens: bool = False) -> tp.Union[torch.Tensor, + tp.Tuple[torch.Tensor, torch.Tensor]]: + """Generate samples conditioned on text and melody. + + Args: + descriptions (list of str): A list of strings used as text conditioning. + melody_wavs: (torch.Tensor or list of Tensor): A batch of waveforms used as + melody conditioning. Should have shape [B, C, T] with B matching the description length, + C=1 or 2. It can be [C, T] if there is a single description. It can also be + a list of [C, T] tensors. + melody_sample_rate: (int): Sample rate of the melody waveforms. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + """ + if isinstance(melody_wavs, torch.Tensor): + if melody_wavs.dim() == 2: + melody_wavs = melody_wavs[None] + if melody_wavs.dim() != 3: + raise ValueError("Melody wavs should have a shape [B, C, T].") + melody_wavs = list(melody_wavs) + else: + for melody in melody_wavs: + if melody is not None: + assert melody.dim() == 2, "One melody in the list has the wrong number of dims." + + melody_wavs = [ + convert_audio(wav, melody_sample_rate, self.sample_rate, self.audio_channels) + if wav is not None else None + for wav in melody_wavs] + attributes, prompt_tokens = self._prepare_tokens_and_attributes(descriptions=descriptions, prompt=None, + melody_wavs=melody_wavs) + assert prompt_tokens is None + tokens = self._generate_tokens(attributes, prompt_tokens, progress) + if return_tokens: + return self.generate_audio(tokens), tokens + return self.generate_audio(tokens) + + @torch.no_grad() + def _prepare_tokens_and_attributes( + self, + descriptions: tp.Sequence[tp.Optional[str]], + prompt: tp.Optional[torch.Tensor], + melody_wavs: tp.Optional[MelodyList] = None, + ) -> tp.Tuple[tp.List[ConditioningAttributes], tp.Optional[torch.Tensor]]: + """Prepare model inputs. + + Args: + descriptions (list of str): A list of strings used as text conditioning. + prompt (torch.Tensor): A batch of waveforms used for continuation. + melody_wavs (torch.Tensor, optional): A batch of waveforms + used as melody conditioning. Defaults to None. + """ + attributes = [ + ConditioningAttributes(text={'description': description}) + for description in descriptions] + + if melody_wavs is None: + for attr in attributes: + attr.wav['self_wav'] = WavCondition( + torch.zeros((1, 1, 1), device=self.device), + torch.tensor([0], device=self.device), + sample_rate=[self.sample_rate], + path=[None]) + else: + if 'self_wav' not in self.lm.condition_provider.conditioners: + raise RuntimeError("This model doesn't support melody conditioning. " + "Use the `melody` model.") + assert len(melody_wavs) == len(descriptions), \ + f"number of melody wavs must match number of descriptions! " \ + f"got melody len={len(melody_wavs)}, and descriptions len={len(descriptions)}" + for attr, melody in zip(attributes, melody_wavs): + if melody is None: + attr.wav['self_wav'] = WavCondition( + torch.zeros((1, 1, 1), device=self.device), + torch.tensor([0], device=self.device), + sample_rate=[self.sample_rate], + path=[None]) + else: + attr.wav['self_wav'] = WavCondition( + melody[None].to(device=self.device), + torch.tensor([melody.shape[-1]], device=self.device), + sample_rate=[self.sample_rate], + path=[None], + ) + + if prompt is not None: + if descriptions is not None: + assert len(descriptions) == len(prompt), "Prompt and nb. descriptions doesn't match" + prompt = prompt.to(self.device) + prompt_tokens, scale = self.compression_model.encode(prompt) + assert scale is None + else: + prompt_tokens = None + return attributes, prompt_tokens + + def _generate_tokens(self, attributes: tp.List[ConditioningAttributes], + prompt_tokens: tp.Optional[torch.Tensor], progress: bool = False) -> torch.Tensor: + """Generate discrete audio tokens given audio prompt and/or conditions. + + Args: + attributes (list of ConditioningAttributes): Conditions used for generation (text/melody). + prompt_tokens (torch.Tensor, optional): Audio prompt used for continuation. + progress (bool, optional): Flag to display progress of the generation process. Defaults to False. + Returns: + torch.Tensor: Generated audio, of shape [B, C, T], T is defined by the generation params. + """ + total_gen_len = int(self.duration * self.frame_rate) + max_prompt_len = int(min(self.duration, self.max_duration) * self.frame_rate) + current_gen_offset: int = 0 + + def _progress_callback(generated_tokens: int, tokens_to_generate: int): + generated_tokens += current_gen_offset + if self._progress_callback is not None: + # Note that total_gen_len might be quite wrong depending on the + # codebook pattern used, but with delay it is almost accurate. + self._progress_callback(generated_tokens, tokens_to_generate) + else: + print(f'{generated_tokens: 6d} / {tokens_to_generate: 6d}', end='\r') + + if prompt_tokens is not None: + assert max_prompt_len >= prompt_tokens.shape[-1], \ + "Prompt is longer than audio to generate" + + callback = None + if progress: + callback = _progress_callback + + if self.duration <= self.max_duration: + # generate by sampling from LM, simple case. + with self.autocast: + gen_tokens = self.lm.generate( + prompt_tokens, attributes, + callback=callback, max_gen_len=total_gen_len, **self.generation_params) + + else: + # now this gets a bit messier, we need to handle prompts, + # melody conditioning etc. + ref_wavs = [attr.wav['self_wav'] for attr in attributes] + all_tokens = [] + if prompt_tokens is None: + prompt_length = 0 + else: + all_tokens.append(prompt_tokens) + prompt_length = prompt_tokens.shape[-1] + + assert self.extend_stride is not None, "Stride should be defined to generate beyond max_duration" + assert self.extend_stride < self.max_duration, "Cannot stride by more than max generation duration." + stride_tokens = int(self.frame_rate * self.extend_stride) + + while current_gen_offset + prompt_length < total_gen_len: + time_offset = current_gen_offset / self.frame_rate + chunk_duration = min(self.duration - time_offset, self.max_duration) + max_gen_len = int(chunk_duration * self.frame_rate) + for attr, ref_wav in zip(attributes, ref_wavs): + wav_length = ref_wav.length.item() + if wav_length == 0: + continue + # We will extend the wav periodically if it not long enough. + # we have to do it here rather than in conditioners.py as otherwise + # we wouldn't have the full wav. + initial_position = int(time_offset * self.sample_rate) + wav_target_length = int(self.max_duration * self.sample_rate) + positions = torch.arange(initial_position, + initial_position + wav_target_length, device=self.device) + attr.wav['self_wav'] = WavCondition( + ref_wav[0][..., positions % wav_length], + torch.full_like(ref_wav[1], wav_target_length), + [self.sample_rate] * ref_wav[0].size(0), + [None], [0.]) + with self.autocast: + gen_tokens = self.lm.generate( + prompt_tokens, attributes, + callback=callback, max_gen_len=max_gen_len, **self.generation_params) + if prompt_tokens is None: + all_tokens.append(gen_tokens) + else: + all_tokens.append(gen_tokens[:, :, prompt_tokens.shape[-1]:]) + prompt_tokens = gen_tokens[:, :, stride_tokens:] + prompt_length = prompt_tokens.shape[-1] + current_gen_offset += stride_tokens + + gen_tokens = torch.cat(all_tokens, dim=-1) + return gen_tokens diff --git a/audiocraft/models/unet.py b/audiocraft/models/unet.py new file mode 100644 index 0000000..db4a6df --- /dev/null +++ b/audiocraft/models/unet.py @@ -0,0 +1,214 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Pytorch Unet Module used for diffusion. +""" + +from dataclasses import dataclass +import typing as tp + +import torch +from torch import nn +from torch.nn import functional as F +from audiocraft.modules.transformer import StreamingTransformer, create_sin_embedding + + +@dataclass +class Output: + sample: torch.Tensor + + +def get_model(cfg, channels: int, side: int, num_steps: int): + if cfg.model == 'unet': + return DiffusionUnet( + chin=channels, num_steps=num_steps, **cfg.diffusion_unet) + else: + raise RuntimeError('Not Implemented') + + +class ResBlock(nn.Module): + def __init__(self, channels: int, kernel: int = 3, norm_groups: int = 4, + dilation: int = 1, activation: tp.Type[nn.Module] = nn.ReLU, + dropout: float = 0.): + super().__init__() + stride = 1 + padding = dilation * (kernel - stride) // 2 + Conv = nn.Conv1d + Drop = nn.Dropout1d + self.norm1 = nn.GroupNorm(norm_groups, channels) + self.conv1 = Conv(channels, channels, kernel, 1, padding, dilation=dilation) + self.activation1 = activation() + self.dropout1 = Drop(dropout) + + self.norm2 = nn.GroupNorm(norm_groups, channels) + self.conv2 = Conv(channels, channels, kernel, 1, padding, dilation=dilation) + self.activation2 = activation() + self.dropout2 = Drop(dropout) + + def forward(self, x): + h = self.dropout1(self.conv1(self.activation1(self.norm1(x)))) + h = self.dropout2(self.conv2(self.activation2(self.norm2(h)))) + return x + h + + +class DecoderLayer(nn.Module): + def __init__(self, chin: int, chout: int, kernel: int = 4, stride: int = 2, + norm_groups: int = 4, res_blocks: int = 1, activation: tp.Type[nn.Module] = nn.ReLU, + dropout: float = 0.): + super().__init__() + padding = (kernel - stride) // 2 + self.res_blocks = nn.Sequential( + *[ResBlock(chin, norm_groups=norm_groups, dilation=2**idx, dropout=dropout) + for idx in range(res_blocks)]) + self.norm = nn.GroupNorm(norm_groups, chin) + ConvTr = nn.ConvTranspose1d + self.convtr = ConvTr(chin, chout, kernel, stride, padding, bias=False) + self.activation = activation() + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = self.res_blocks(x) + x = self.norm(x) + x = self.activation(x) + x = self.convtr(x) + return x + + +class EncoderLayer(nn.Module): + def __init__(self, chin: int, chout: int, kernel: int = 4, stride: int = 2, + norm_groups: int = 4, res_blocks: int = 1, activation: tp.Type[nn.Module] = nn.ReLU, + dropout: float = 0.): + super().__init__() + padding = (kernel - stride) // 2 + Conv = nn.Conv1d + self.conv = Conv(chin, chout, kernel, stride, padding, bias=False) + self.norm = nn.GroupNorm(norm_groups, chout) + self.activation = activation() + self.res_blocks = nn.Sequential( + *[ResBlock(chout, norm_groups=norm_groups, dilation=2**idx, dropout=dropout) + for idx in range(res_blocks)]) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + B, C, T = x.shape + stride, = self.conv.stride + pad = (stride - (T % stride)) % stride + x = F.pad(x, (0, pad)) + + x = self.conv(x) + x = self.norm(x) + x = self.activation(x) + x = self.res_blocks(x) + return x + + +class BLSTM(nn.Module): + """BiLSTM with same hidden units as input dim. + """ + def __init__(self, dim, layers=2): + super().__init__() + self.lstm = nn.LSTM(bidirectional=True, num_layers=layers, hidden_size=dim, input_size=dim) + self.linear = nn.Linear(2 * dim, dim) + + def forward(self, x): + x = x.permute(2, 0, 1) + x = self.lstm(x)[0] + x = self.linear(x) + x = x.permute(1, 2, 0) + return x + + +class DiffusionUnet(nn.Module): + def __init__(self, chin: int = 3, hidden: int = 24, depth: int = 3, growth: float = 2., + max_channels: int = 10_000, num_steps: int = 1000, emb_all_layers=False, cross_attention: bool = False, + bilstm: bool = False, transformer: bool = False, + codec_dim: tp.Optional[int] = None, **kwargs): + super().__init__() + self.encoders = nn.ModuleList() + self.decoders = nn.ModuleList() + self.embeddings: tp.Optional[nn.ModuleList] = None + self.embedding = nn.Embedding(num_steps, hidden) + if emb_all_layers: + self.embeddings = nn.ModuleList() + self.condition_embedding: tp.Optional[nn.Module] = None + for d in range(depth): + encoder = EncoderLayer(chin, hidden, **kwargs) + decoder = DecoderLayer(hidden, chin, **kwargs) + self.encoders.append(encoder) + self.decoders.insert(0, decoder) + if emb_all_layers and d > 0: + assert self.embeddings is not None + self.embeddings.append(nn.Embedding(num_steps, hidden)) + chin = hidden + hidden = min(int(chin * growth), max_channels) + self.bilstm: tp.Optional[nn.Module] + if bilstm: + self.bilstm = BLSTM(chin) + else: + self.bilstm = None + self.use_transformer = transformer + self.cross_attention = False + if transformer: + self.cross_attention = cross_attention + self.transformer = StreamingTransformer(chin, 8, 6, bias_ff=False, bias_attn=False, + cross_attention=cross_attention) + + self.use_codec = False + if codec_dim is not None: + self.conv_codec = nn.Conv1d(codec_dim, chin, 1) + self.use_codec = True + + def forward(self, x: torch.Tensor, step: tp.Union[int, torch.Tensor], condition: tp.Optional[torch.Tensor] = None): + skips = [] + bs = x.size(0) + z = x + view_args = [1] + if type(step) is torch.Tensor: + step_tensor = step + else: + step_tensor = torch.tensor([step], device=x.device, dtype=torch.long).expand(bs) + + for idx, encoder in enumerate(self.encoders): + z = encoder(z) + if idx == 0: + z = z + self.embedding(step_tensor).view(bs, -1, *view_args).expand_as(z) + elif self.embeddings is not None: + z = z + self.embeddings[idx - 1](step_tensor).view(bs, -1, *view_args).expand_as(z) + + skips.append(z) + + if self.use_codec: # insert condition in the bottleneck + assert condition is not None, "Model defined for conditionnal generation" + condition_emb = self.conv_codec(condition) # reshape to the bottleneck dim + assert condition_emb.size(-1) <= 2 * z.size(-1), \ + f"You are downsampling the conditionning with factor >=2 : {condition_emb.size(-1)=} and {z.size(-1)=}" + if not self.cross_attention: + + condition_emb = torch.nn.functional.interpolate(condition_emb, z.size(-1)) + assert z.size() == condition_emb.size() + z += condition_emb + cross_attention_src = None + else: + cross_attention_src = condition_emb.permute(0, 2, 1) # B, T, C + B, T, C = cross_attention_src.shape + positions = torch.arange(T, device=x.device).view(1, -1, 1) + pos_emb = create_sin_embedding(positions, C, max_period=10_000, dtype=cross_attention_src.dtype) + cross_attention_src = cross_attention_src + pos_emb + if self.use_transformer: + z = self.transformer(z.permute(0, 2, 1), cross_attention_src=cross_attention_src).permute(0, 2, 1) + else: + if self.bilstm is None: + z = torch.zeros_like(z) + else: + z = self.bilstm(z) + + for decoder in self.decoders: + s = skips.pop(-1) + z = z[:, :, :s.shape[2]] + z = z + s + z = decoder(z) + + z = z[:, :, :x.shape[2]] + return Output(z) diff --git a/audiocraft/models/watermark.py b/audiocraft/models/watermark.py new file mode 100644 index 0000000..7a762ee --- /dev/null +++ b/audiocraft/models/watermark.py @@ -0,0 +1,111 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + + +import typing as tp +from abc import ABC, abstractmethod + +import torch +import torch.nn as nn + +from audiocraft.models.loaders import load_audioseal_models + + +class WMModel(ABC, nn.Module): + """ + A wrapper interface to different watermarking models for + training or evaluation purporses + """ + + @abstractmethod + def get_watermark( + self, + x: torch.Tensor, + message: tp.Optional[torch.Tensor] = None, + sample_rate: int = 16_000, + ) -> torch.Tensor: + """Get the watermark from an audio tensor and a message. + If the input message is None, a random message of + n bits {0,1} will be generated + """ + + @abstractmethod + def detect_watermark(self, x: torch.Tensor) -> torch.Tensor: + """Detect the watermarks from the audio signal + + Args: + x: Audio signal, size batch x frames + + Returns: + tensor of size (B, 2+n, frames) where: + Detection results of shape (B, 2, frames) + Message decoding results of shape (B, n, frames) + """ + + +class AudioSeal(WMModel): + """Wrap Audioseal (https://github.com/facebookresearch/audioseal) for the + training and evaluation. The generator and detector are jointly trained + """ + + def __init__( + self, + generator: nn.Module, + detector: nn.Module, + nbits: int = 0, + ): + super().__init__() + self.generator = generator # type: ignore + self.detector = detector # type: ignore + + # Allow to re-train an n-bit model with new 0-bit message + self.nbits = nbits if nbits else self.generator.msg_processor.nbits + + def get_watermark( + self, + x: torch.Tensor, + message: tp.Optional[torch.Tensor] = None, + sample_rate: int = 16_000, + ) -> torch.Tensor: + return self.generator.get_watermark(x, message=message, sample_rate=sample_rate) + + def detect_watermark(self, x: torch.Tensor) -> torch.Tensor: + """ + Detect the watermarks from the audio signal. The first two units of the output + are used for detection, the rest is used to decode the message. If the audio is + not watermarked, the message will be random. + + Args: + x: Audio signal, size batch x frames + Returns + torch.Tensor: Detection + decoding results of shape (B, 2+nbits, T). + """ + + # Getting the direct decoded message from the detector + result = self.detector.detector(x) # b x 2+nbits + # hardcode softmax on 2 first units used for detection + result[:, :2, :] = torch.softmax(result[:, :2, :], dim=1) + return result + + def forward( # generator + self, + x: torch.Tensor, + message: tp.Optional[torch.Tensor] = None, + sample_rate: int = 16_000, + alpha: float = 1.0, + ) -> torch.Tensor: + """Apply the watermarking to the audio signal x with a tune-down ratio (default 1.0)""" + wm = self.get_watermark(x, message) + return x + alpha * wm + + @staticmethod + def get_pretrained(name="base", device=None) -> WMModel: + if device is None: + if torch.cuda.device_count(): + device = "cuda" + else: + device = "cpu" + return load_audioseal_models("facebook/audioseal", filename=name, device=device) diff --git a/audiocraft/modules/__init__.py b/audiocraft/modules/__init__.py new file mode 100644 index 0000000..6141861 --- /dev/null +++ b/audiocraft/modules/__init__.py @@ -0,0 +1,22 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Modules used for building the models.""" + +# flake8: noqa +from .conv import ( + NormConv1d, + NormConv2d, + NormConvTranspose1d, + NormConvTranspose2d, + StreamableConv1d, + StreamableConvTranspose1d, + pad_for_conv1d, + pad1d, + unpad1d, +) +from .lstm import StreamableLSTM +from .seanet import SEANetEncoder, SEANetDecoder +from .transformer import StreamingTransformer \ No newline at end of file diff --git a/audiocraft/modules/activations.py b/audiocraft/modules/activations.py new file mode 100644 index 0000000..2d83d7c --- /dev/null +++ b/audiocraft/modules/activations.py @@ -0,0 +1,96 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch +import torch.nn as nn +from torch import Tensor +from typing import Union, Callable + + +class CustomGLU(nn.Module): + """Custom Gated Linear Unit activation. + Applies a modified gated linear unit :math:`a * f(b)` where :math:`a` is the first half + of the input matrices, :math:`b` is the second half, and :math:`f` is a provided activation + function (i.e. sigmoid, swish, etc.). + + Args: + activation (nn.Module): The custom activation to apply in the Gated Linear Unit + dim (int): the dimension on which to split the input. Default: -1 + + Shape: + - Input: :math:`(\ast_1, N, \ast_2)` where `*` means, any number of additional + dimensions + - Output: :math:`(\ast_1, M, \ast_2)` where :math:`M=N/2` + + Examples:: + >>> m = CustomGLU(nn.Sigmoid()) + >>> input = torch.randn(4, 2) + >>> output = m(input) + """ + def __init__(self, activation: nn.Module, dim: int = -1): + super(CustomGLU, self).__init__() + self.dim = dim + self.activation = activation + + def forward(self, x: Tensor): + assert x.shape[self.dim] % 2 == 0 # M = N / 2 + a, b = torch.chunk(x, 2, dim=self.dim) + return a * self.activation(b) + + +class SwiGLU(CustomGLU): + """SiLU Gated Linear Unit activation. + Applies SiLU Gated Linear Unit :math:`a * SiLU(b)` where :math:`a` is + the first half of the input matrices, :math:`b` is the second half. + + Args: + dim (int): the dimension on which to split the input. Default: -1 + """ + def __init__(self, dim: int = -1): + super(SwiGLU, self).__init__(nn.SiLU(), dim) + + +class GeGLU(CustomGLU): + """GeLU Gated Linear Unit activation. + Applies GeLU Gated Linear Unit :math:`a * GELU(b)` where :math:`a` is + the first half of the input matrices, :math:`b` is the second half. + + Args: + dim (int): the dimension on which to split the input. Default: -1 + """ + def __init__(self, dim: int = -1): + super(GeGLU, self).__init__(nn.GELU(), dim) + + +class ReGLU(CustomGLU): + """ReLU Gated Linear Unit activation. + Applies ReLU Gated Linear Unit :math:`a * ReLU(b)` where :math:`a` is + the first half of the input matrices, :math:`b` is the second half. + + Args: + dim (int): the dimension on which to split the input. Default: -1 + """ + def __init__(self, dim: int = -1): + super(ReGLU, self).__init__(nn.ReLU(), dim) + + +def get_activation_fn( + activation: Union[str, Callable[[Tensor], Tensor]] +) -> Union[str, Callable[[Tensor], Tensor]]: + """Helper function to map an activation string to the activation class. + If the supplied activation is not a string that is recognized, the activation is passed back. + + Args: + activation (str, or Callable[[Tensor], Tensor]): Activation to check + """ + if isinstance(activation, str): + if activation == "reglu": + return ReGLU() + elif activation == "geglu": + return GeGLU() + elif activation == "swiglu": + return SwiGLU() + return activation diff --git a/audiocraft/modules/chroma.py b/audiocraft/modules/chroma.py new file mode 100644 index 0000000..e84fb66 --- /dev/null +++ b/audiocraft/modules/chroma.py @@ -0,0 +1,66 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +import typing as tp + +from einops import rearrange +from librosa import filters +import torch +from torch import nn +import torch.nn.functional as F +import torchaudio + + +class ChromaExtractor(nn.Module): + """Chroma extraction and quantization. + + Args: + sample_rate (int): Sample rate for the chroma extraction. + n_chroma (int): Number of chroma bins for the chroma extraction. + radix2_exp (int): Size of stft window for the chroma extraction (power of 2, e.g. 12 -> 2^12). + nfft (int, optional): Number of FFT. + winlen (int, optional): Window length. + winhop (int, optional): Window hop size. + argmax (bool, optional): Whether to use argmax. Defaults to False. + norm (float, optional): Norm for chroma normalization. Defaults to inf. + """ + def __init__(self, sample_rate: int, n_chroma: int = 12, radix2_exp: int = 12, nfft: tp.Optional[int] = None, + winlen: tp.Optional[int] = None, winhop: tp.Optional[int] = None, argmax: bool = False, + norm: float = torch.inf): + super().__init__() + self.winlen = winlen or 2 ** radix2_exp + self.nfft = nfft or self.winlen + self.winhop = winhop or (self.winlen // 4) + self.sample_rate = sample_rate + self.n_chroma = n_chroma + self.norm = norm + self.argmax = argmax + self.register_buffer('fbanks', torch.from_numpy(filters.chroma(sr=sample_rate, n_fft=self.nfft, tuning=0, + n_chroma=self.n_chroma)), persistent=False) + self.spec = torchaudio.transforms.Spectrogram(n_fft=self.nfft, win_length=self.winlen, + hop_length=self.winhop, power=2, center=True, + pad=0, normalized=True) + + def forward(self, wav: torch.Tensor) -> torch.Tensor: + T = wav.shape[-1] + # in case we are getting a wav that was dropped out (nullified) + # from the conditioner, make sure wav length is no less that nfft + if T < self.nfft: + pad = self.nfft - T + r = 0 if pad % 2 == 0 else 1 + wav = F.pad(wav, (pad // 2, pad // 2 + r), 'constant', 0) + assert wav.shape[-1] == self.nfft, f"expected len {self.nfft} but got {wav.shape[-1]}" + + spec = self.spec(wav).squeeze(1) + raw_chroma = torch.einsum('cf,...ft->...ct', self.fbanks, spec) + norm_chroma = torch.nn.functional.normalize(raw_chroma, p=self.norm, dim=-2, eps=1e-6) + norm_chroma = rearrange(norm_chroma, 'b d t -> b t d') + + if self.argmax: + idx = norm_chroma.argmax(-1, keepdim=True) + norm_chroma[:] = 0 + norm_chroma.scatter_(dim=-1, index=idx, value=1) + + return norm_chroma diff --git a/audiocraft/modules/codebooks_patterns.py b/audiocraft/modules/codebooks_patterns.py new file mode 100644 index 0000000..386df58 --- /dev/null +++ b/audiocraft/modules/codebooks_patterns.py @@ -0,0 +1,548 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from collections import namedtuple +from dataclasses import dataclass +from functools import lru_cache +import logging +import typing as tp + +from abc import ABC, abstractmethod +import torch + +LayoutCoord = namedtuple('LayoutCoord', ['t', 'q']) # (timestep, codebook index) +PatternLayout = tp.List[tp.List[LayoutCoord]] # Sequence of coordinates +logger = logging.getLogger(__name__) + + +@dataclass +class Pattern: + """Base implementation of a pattern over a sequence with multiple codebooks. + + The codebook pattern consists in a layout, defining for each sequence step + the list of coordinates of each codebook timestep in the resulting interleaved sequence. + The first item of the pattern is always an empty list in order to properly insert a special token + to start with. For convenience, we also keep track of ``n_q`` the number of codebooks used for the pattern + and ``timesteps`` the number of timesteps corresponding to the original sequence. + + The pattern provides convenient methods to build and revert interleaved sequences from it: + ``build_pattern_sequence`` maps a given a dense input tensor of multi-codebook sequence from [B, K, T] + to the interleaved sequence of shape [B, K, S] applying the pattern, with B being the batch size, + K being the number of codebooks, T the number of original timesteps and S the number of sequence steps + for the output sequence. The unfilled positions are replaced with a special token and the built sequence + is returned along with a mask indicating valid tokens. + ``revert_pattern_sequence`` maps back an interleaved sequence of shape [B, K, S] to the original alignment + of codebooks across timesteps to an output tensor of shape [B, K, T], using again a special token and a mask + to fill and specify invalid positions if needed. + See the dedicated methods for more details. + """ + # Pattern layout, for each sequence step, we have a list of coordinates + # corresponding to the original codebook timestep and position. + # The first list is always an empty list in order to properly insert + # a special token to start with. + layout: PatternLayout + timesteps: int + n_q: int + + def __post_init__(self): + assert len(self.layout) > 0 + self._validate_layout() + self._build_reverted_sequence_scatter_indexes = lru_cache(100)(self._build_reverted_sequence_scatter_indexes) + self._build_pattern_sequence_scatter_indexes = lru_cache(100)(self._build_pattern_sequence_scatter_indexes) + logger.info("New pattern, time steps: %d, sequence steps: %d", self.timesteps, len(self.layout)) + + def _validate_layout(self): + """Runs checks on the layout to ensure a valid pattern is defined. + A pattern is considered invalid if: + - Multiple timesteps for a same codebook are defined in the same sequence step + - The timesteps for a given codebook are not in ascending order as we advance in the sequence + (this would mean that we have future timesteps before past timesteps). + """ + q_timesteps = {q: 0 for q in range(self.n_q)} + for s, seq_coords in enumerate(self.layout): + if len(seq_coords) > 0: + qs = set() + for coord in seq_coords: + qs.add(coord.q) + last_q_timestep = q_timesteps[coord.q] + assert coord.t >= last_q_timestep, \ + f"Past timesteps are found in the sequence for codebook = {coord.q} at step {s}" + q_timesteps[coord.q] = coord.t + # each sequence step contains at max 1 coordinate per codebook + assert len(qs) == len(seq_coords), \ + f"Multiple entries for a same codebook are found at step {s}" + + @property + def num_sequence_steps(self): + return len(self.layout) - 1 + + @property + def max_delay(self): + max_t_in_seq_coords = 0 + for seq_coords in self.layout[1:]: + for coords in seq_coords: + max_t_in_seq_coords = max(max_t_in_seq_coords, coords.t + 1) + return max_t_in_seq_coords - self.timesteps + + @property + def valid_layout(self): + valid_step = len(self.layout) - self.max_delay + return self.layout[:valid_step] + + def starts_with_special_token(self): + return self.layout[0] == [] + + def get_sequence_coords_with_timestep(self, t: int, q: tp.Optional[int] = None): + """Get codebook coordinates in the layout that corresponds to the specified timestep t + and optionally to the codebook q. Coordinates are returned as a tuple with the sequence step + and the actual codebook coordinates. + """ + assert t <= self.timesteps, "provided timesteps is greater than the pattern's number of timesteps" + if q is not None: + assert q <= self.n_q, "provided number of codebooks is greater than the pattern's number of codebooks" + coords = [] + for s, seq_codes in enumerate(self.layout): + for code in seq_codes: + if code.t == t and (q is None or code.q == q): + coords.append((s, code)) + return coords + + def get_steps_with_timestep(self, t: int, q: tp.Optional[int] = None) -> tp.List[int]: + return [step for step, coords in self.get_sequence_coords_with_timestep(t, q)] + + def get_first_step_with_timesteps(self, t: int, q: tp.Optional[int] = None) -> tp.Optional[int]: + steps_with_timesteps = self.get_steps_with_timestep(t, q) + return steps_with_timesteps[0] if len(steps_with_timesteps) > 0 else None + + def _build_pattern_sequence_scatter_indexes(self, timesteps: int, n_q: int, keep_only_valid_steps: bool, + device: tp.Union[torch.device, str] = 'cpu'): + """Build scatter indexes corresponding to the pattern, up to the provided sequence_steps. + + Args: + timesteps (int): Maximum number of timesteps steps to consider. + keep_only_valid_steps (bool): Restrict the pattern layout to match only valid steps. + device (torch.device or str): Device for created tensors. + Returns: + indexes (torch.Tensor): Indexes corresponding to the sequence, of shape [K, S]. + mask (torch.Tensor): Mask corresponding to indexes that matches valid indexes, of shape [K, S]. + """ + assert n_q == self.n_q, f"invalid number of codebooks for the sequence and the pattern: {n_q} != {self.n_q}" + assert timesteps <= self.timesteps, "invalid number of timesteps used to build the sequence from the pattern" + # use the proper layout based on whether we limit ourselves to valid steps only or not, + # note that using the valid_layout will result in a truncated sequence up to the valid steps + ref_layout = self.valid_layout if keep_only_valid_steps else self.layout + # single item indexing being super slow with pytorch vs. numpy, so we use numpy here + indexes = torch.zeros(n_q, len(ref_layout), dtype=torch.long).numpy() + mask = torch.zeros(n_q, len(ref_layout), dtype=torch.bool).numpy() + # fill indexes with last sequence step value that will correspond to our special token + # the last value is n_q * timesteps as we have flattened z and append special token as the last token + # which will correspond to the index: n_q * timesteps + indexes[:] = n_q * timesteps + # iterate over the pattern and fill scattered indexes and mask + for s, sequence_coords in enumerate(ref_layout): + for coords in sequence_coords: + if coords.t < timesteps: + indexes[coords.q, s] = coords.t + coords.q * timesteps + mask[coords.q, s] = 1 + indexes = torch.from_numpy(indexes).to(device) + mask = torch.from_numpy(mask).to(device) + return indexes, mask + + def build_pattern_sequence(self, z: torch.Tensor, special_token: int, keep_only_valid_steps: bool = False): + """Build sequence corresponding to the pattern from the input tensor z. + The sequence is built using up to sequence_steps if specified, and non-pattern + coordinates are filled with the special token. + + Args: + z (torch.Tensor): Input tensor of multi-codebooks sequence, of shape [B, K, T]. + special_token (int): Special token used to fill non-pattern coordinates in the new sequence. + keep_only_valid_steps (bool): Build a sequence from the pattern up to valid (= fully defined) steps. + Steps that are beyond valid steps will be replaced by the special_token in that case. + Returns: + values (torch.Tensor): Interleaved sequence matching the pattern, of shape [B, K, S] with S + corresponding either to the sequence_steps if provided, otherwise to the length of the pattern. + indexes (torch.Tensor): Indexes corresponding to the interleaved sequence, of shape [K, S]. + mask (torch.Tensor): Mask corresponding to indexes that matches valid indexes of shape [K, S]. + """ + B, K, T = z.shape + indexes, mask = self._build_pattern_sequence_scatter_indexes( + T, K, keep_only_valid_steps=keep_only_valid_steps, device=str(z.device) + ) + z = z.view(B, -1) + # we append the special token as the last index of our flattened z tensor + z = torch.cat([z, torch.zeros_like(z[:, :1]) + special_token], dim=1) + values = z[:, indexes.view(-1)] + values = values.view(B, K, indexes.shape[-1]) + return values, indexes, mask + + def _build_reverted_sequence_scatter_indexes(self, sequence_steps: int, n_q: int, + keep_only_valid_steps: bool = False, + is_model_output: bool = False, + device: tp.Union[torch.device, str] = 'cpu'): + """Builds scatter indexes required to retrieve the original multi-codebook sequence + from interleaving pattern. + + Args: + sequence_steps (int): Sequence steps. + n_q (int): Number of codebooks. + keep_only_valid_steps (bool): Build a sequence from the pattern up to valid (= fully defined) steps. + Steps that are beyond valid steps will be replaced by the special_token in that case. + is_model_output (bool): Whether to keep the sequence item corresponding to initial special token or not. + device (torch.device or str): Device for created tensors. + Returns: + indexes (torch.Tensor): Indexes for reconstructing the output, of shape [K, T]. + mask (torch.Tensor): Mask corresponding to indexes that matches valid indexes of shape [K, T]. + """ + ref_layout = self.valid_layout if keep_only_valid_steps else self.layout + # TODO(jade): Do we want to further truncate to only valid timesteps here as well? + timesteps = self.timesteps + assert n_q == self.n_q, f"invalid number of codebooks for the sequence and the pattern: {n_q} != {self.n_q}" + assert sequence_steps <= len(ref_layout), \ + f"sequence to revert is longer than the defined pattern: {sequence_steps} > {len(ref_layout)}" + + # ensure we take the appropriate indexes to keep the model output from the first special token as well + if is_model_output and self.starts_with_special_token(): + ref_layout = ref_layout[1:] + + # single item indexing being super slow with pytorch vs. numpy, so we use numpy here + indexes = torch.zeros(n_q, timesteps, dtype=torch.long).numpy() + mask = torch.zeros(n_q, timesteps, dtype=torch.bool).numpy() + # fill indexes with last sequence step value that will correspond to our special token + indexes[:] = n_q * sequence_steps + for s, sequence_codes in enumerate(ref_layout): + if s < sequence_steps: + for code in sequence_codes: + if code.t < timesteps: + indexes[code.q, code.t] = s + code.q * sequence_steps + mask[code.q, code.t] = 1 + indexes = torch.from_numpy(indexes).to(device) + mask = torch.from_numpy(mask).to(device) + return indexes, mask + + def revert_pattern_sequence(self, s: torch.Tensor, special_token: int, keep_only_valid_steps: bool = False): + """Revert a sequence built from the pattern back to the original multi-codebook sequence without interleaving. + The sequence is reverted using up to timesteps if specified, and non-pattern coordinates + are filled with the special token. + + Args: + s (torch.Tensor): Interleaved sequence tensor obtained from the pattern, of shape [B, K, S]. + special_token (int or float): Special token used to fill non-pattern coordinates in the new sequence. + Returns: + values (torch.Tensor): Interleaved sequence matching the pattern, of shape [B, K, T] with T + corresponding either to the timesteps if provided, or the total timesteps in pattern otherwise. + indexes (torch.Tensor): Indexes corresponding to the interleaved sequence, of shape [K, T]. + mask (torch.Tensor): Mask corresponding to indexes that matches valid indexes of shape [K, T]. + """ + B, K, S = s.shape + indexes, mask = self._build_reverted_sequence_scatter_indexes( + S, K, keep_only_valid_steps, is_model_output=False, device=str(s.device) + ) + s = s.view(B, -1) + # we append the special token as the last index of our flattened z tensor + s = torch.cat([s, torch.zeros_like(s[:, :1]) + special_token], dim=1) + values = s[:, indexes.view(-1)] + values = values.view(B, K, indexes.shape[-1]) + return values, indexes, mask + + def revert_pattern_logits(self, logits: torch.Tensor, special_token: float, keep_only_valid_steps: bool = False): + """Revert model logits obtained on a sequence built from the pattern + back to a tensor matching the original sequence. + + This method is similar to ``revert_pattern_sequence`` with the following specificities: + 1. It is designed to work with the extra cardinality dimension + 2. We return the logits for the first sequence item that matches the special_token and + which matching target in the original sequence is the first item of the sequence, + while we skip the last logits as there is no matching target + """ + B, card, K, S = logits.shape + indexes, mask = self._build_reverted_sequence_scatter_indexes( + S, K, keep_only_valid_steps, is_model_output=True, device=logits.device + ) + logits = logits.reshape(B, card, -1) + # we append the special token as the last index of our flattened z tensor + logits = torch.cat([logits, torch.zeros_like(logits[:, :, :1]) + special_token], dim=-1) # [B, card, K x S] + values = logits[:, :, indexes.view(-1)] + values = values.view(B, card, K, indexes.shape[-1]) + return values, indexes, mask + + +class CodebooksPatternProvider(ABC): + """Abstraction around providing pattern for interleaving codebooks. + + The CodebooksPatternProvider abstraction allows to implement various strategies to + define interleaving pattern of sequences composed of multiple codebooks. For a given + number of codebooks `n_q`, the pattern provider can generate a specified pattern + corresponding to a sequence of `T` timesteps with `n_q` parallel codebooks. This pattern + can be used to construct a new sequence from the original codes respecting the specified + pattern. The pattern is defined as a list of list of code coordinates, code coordinate + being a tuple with the original timestep and codebook to build the new sequence. + Note that all patterns must start with an empty list that is then used to insert a first + sequence step of special tokens in the newly generated sequence. + + Args: + n_q (int): number of codebooks. + cached (bool): if True, patterns for a given length are cached. In general + that should be true for efficiency reason to avoid synchronization points. + """ + def __init__(self, n_q: int, cached: bool = True): + assert n_q > 0 + self.n_q = n_q + self.get_pattern = lru_cache(100)(self.get_pattern) # type: ignore + + @abstractmethod + def get_pattern(self, timesteps: int) -> Pattern: + """Builds pattern with specific interleaving between codebooks. + + Args: + timesteps (int): Total number of timesteps. + """ + raise NotImplementedError() + + +class DelayedPatternProvider(CodebooksPatternProvider): + """Provider for delayed pattern across delayed codebooks. + Codebooks are delayed in the sequence and sequence steps will contain codebooks + from different timesteps. + + Example: + Taking timesteps=4 and n_q=3, delays=None, the multi-codebook sequence: + [[1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4]] + The resulting sequence obtained from the returned pattern is: + [[S, 1, 2, 3, 4], + [S, S, 1, 2, 3], + [S, S, S, 1, 2]] + (with S being a special token) + + Args: + n_q (int): Number of codebooks. + delays (list of int, optional): Delay for each of the codebooks. + If delays not defined, each codebook is delayed by 1 compared to the previous one. + flatten_first (int): Flatten the first N timesteps. + empty_initial (int): Prepend with N empty list of coordinates. + """ + def __init__(self, n_q: int, delays: tp.Optional[tp.List[int]] = None, + flatten_first: int = 0, empty_initial: int = 0): + super().__init__(n_q) + if delays is None: + delays = list(range(n_q)) + self.delays = delays + self.flatten_first = flatten_first + self.empty_initial = empty_initial + assert len(self.delays) == self.n_q + assert sorted(self.delays) == self.delays + + def get_pattern(self, timesteps: int) -> Pattern: + omit_special_token = self.empty_initial < 0 + out: PatternLayout = [] if omit_special_token else [[]] + max_delay = max(self.delays) + if self.empty_initial: + out += [[] for _ in range(self.empty_initial)] + if self.flatten_first: + for t in range(min(timesteps, self.flatten_first)): + for q in range(self.n_q): + out.append([LayoutCoord(t, q)]) + for t in range(self.flatten_first, timesteps + max_delay): + v = [] + for q, delay in enumerate(self.delays): + t_for_q = t - delay + if t_for_q >= self.flatten_first: + v.append(LayoutCoord(t_for_q, q)) + out.append(v) + return Pattern(out, n_q=self.n_q, timesteps=timesteps) + + +class ParallelPatternProvider(DelayedPatternProvider): + """Provider for parallel pattern across codebooks. + This pattern provider is a special case of the delayed pattern with actually no delay, + hence delays=repeat(0, n_q). + + Args: + n_q (int): Number of codebooks. + empty_initial (int): Prepend with N empty list of coordinates. + """ + def __init__(self, n_q: int, empty_initial: int = 0): + super().__init__(n_q, [0] * n_q, empty_initial=empty_initial) + + +class UnrolledPatternProvider(CodebooksPatternProvider): + """Provider for unrolling codebooks pattern. + This pattern provider enables to represent the codebook flattened completely or only to some extend + while also specifying a given delay between the flattened codebooks representation, allowing to + unroll the codebooks in the sequence. + + Example: + 1. Flattening of the codebooks. + By default, the pattern provider will fully flatten the codebooks such as flattening=range(n_q), + taking n_q = 3 and timesteps = 4: + [[1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4]] + will result into: + [[S, S, 1, S, S, 2, S, S, 3, S, S, 4], + [S, 1, S, S, 2, S, S, 3, S, S, 4, S], + [1, S, S, 2, S, S, 3, S, S, 4, S, S]] + 2. Partial flattening of the codebooks. The ``flattening`` parameter allows to specify the inner step + for each of the codebook, allowing to define which codebook to flatten (or keep in parallel), for example + taking n_q = 3, timesteps = 4 and flattening = [0, 1, 1]: + [[1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4]] + will result into: + [[S, 1, S, S, 2, S, S, 3, S, S, 4, S], + [S, 1, S, S, 2, S, S, 3, S, S, 4, S], + [1, S, S, 2, S, S, 3, S, S, 4, S, S]] + 3. Flattening with delay. The ``delay`` parameter allows to further unroll the sequence of codebooks + allowing to specify the delay per codebook. Note that the delay between codebooks flattened to the + same inner timestep should be coherent. For example, taking n_q = 3, timesteps = 4, flattening = [0, 1, 1] + and delays = [0, 3, 3]: + [[1, 2, 3, 4], + [1, 2, 3, 4], + [1, 2, 3, 4]] + will result into: + [[S, S, S, 1, S, 2, S, 3, S, 4], + [S, S, S, 1, S, 2, S, 3, S, 4], + [1, 2, 3, S, 4, S, 5, S, 6, S]] + + Args: + n_q (int): Number of codebooks. + flattening (list of int, optional): Flattening schema over the codebooks. If not defined, + the codebooks will be flattened to 1 codebook per step, meaning that the sequence will + have n_q extra steps for each timestep. + delays (list of int, optional): Delay for each of the codebooks. If not defined, + no delay is added and therefore will default to [0] * ``n_q``. + Note that two codebooks that will be flattened to the same inner step + should have the same delay, otherwise the pattern is considered as invalid. + """ + FlattenedCodebook = namedtuple('FlattenedCodebook', ['codebooks', 'delay']) + + def __init__(self, n_q: int, flattening: tp.Optional[tp.List[int]] = None, + delays: tp.Optional[tp.List[int]] = None): + super().__init__(n_q) + if flattening is None: + flattening = list(range(n_q)) + if delays is None: + delays = [0] * n_q + assert len(flattening) == n_q + assert len(delays) == n_q + assert sorted(flattening) == flattening + assert sorted(delays) == delays + self._flattened_codebooks = self._build_flattened_codebooks(delays, flattening) + self.max_delay = max(delays) + + def _build_flattened_codebooks(self, delays: tp.List[int], flattening: tp.List[int]): + """Build a flattened codebooks representation as a dictionary of inner step + and the actual codebook indices corresponding to the flattened codebook. For convenience, we + also store the delay associated to the flattened codebook to avoid maintaining an extra mapping. + """ + flattened_codebooks: dict = {} + for q, (inner_step, delay) in enumerate(zip(flattening, delays)): + if inner_step not in flattened_codebooks: + flat_codebook = UnrolledPatternProvider.FlattenedCodebook(codebooks=[q], delay=delay) + else: + flat_codebook = flattened_codebooks[inner_step] + assert flat_codebook.delay == delay, ( + "Delay and flattening between codebooks is inconsistent: ", + "two codebooks flattened to the same position should have the same delay." + ) + flat_codebook.codebooks.append(q) + flattened_codebooks[inner_step] = flat_codebook + return flattened_codebooks + + @property + def _num_inner_steps(self): + """Number of inner steps to unroll between timesteps in order to flatten the codebooks. + """ + return max([inner_step for inner_step in self._flattened_codebooks.keys()]) + 1 + + def num_virtual_steps(self, timesteps: int) -> int: + return timesteps * self._num_inner_steps + 1 + + def get_pattern(self, timesteps: int) -> Pattern: + """Builds pattern for delay across codebooks. + + Args: + timesteps (int): Total number of timesteps. + """ + # the PatternLayout is built as a tuple of sequence position and list of coordinates + # so that it can be reordered properly given the required delay between codebooks of given timesteps + indexed_out: list = [(-1, [])] + max_timesteps = timesteps + self.max_delay + for t in range(max_timesteps): + # for each timestep, we unroll the flattened codebooks, + # emitting the sequence step with the corresponding delay + for step in range(self._num_inner_steps): + if step in self._flattened_codebooks: + # we have codebooks at this virtual step to emit + step_codebooks = self._flattened_codebooks[step] + t_for_q = t + step_codebooks.delay + coords = [LayoutCoord(t, q) for q in step_codebooks.codebooks] + if t_for_q < max_timesteps and t < max_timesteps: + indexed_out.append((t_for_q, coords)) + else: + # there is no codebook in this virtual step so we emit an empty list + indexed_out.append((t, [])) + out = [coords for _, coords in sorted(indexed_out)] + return Pattern(out, n_q=self.n_q, timesteps=timesteps) + + +class CoarseFirstPattern(CodebooksPatternProvider): + """First generates all the codebooks #1 (e.g. coarser), then the remaining ones, + potentially with delays. + + ..Warning:: You must always generate the full training duration at test time, for instance, + 30 seconds, as otherwise, the fine codebooks will start being generated in an unexpected + location. This is due to the non causality of the remaining codebooks with respect to + the first ones. + + Args: + n_q (int): Number of codebooks. + delays (list of int, optional): Delay for each of the codebooks. + If delays not defined, each codebook is delayed by 1 compared to the previous one. + """ + def __init__(self, n_q: int, delays: tp.Optional[tp.List[int]] = None): + super().__init__(n_q) + if delays is None: + delays = [0] * (n_q - 1) + self.delays = delays + assert len(self.delays) == self.n_q - 1 + assert sorted(self.delays) == self.delays + + def get_pattern(self, timesteps: int) -> Pattern: + out: PatternLayout = [[]] + for t in range(timesteps): + out.append([LayoutCoord(t, 0)]) + max_delay = max(self.delays) + for t in range(timesteps + max_delay): + v = [] + for q, delay in enumerate(self.delays): + t_for_q = t - delay + if t_for_q >= 0: + v.append(LayoutCoord(t_for_q, q + 1)) + out.append(v) + return Pattern(out, n_q=self.n_q, timesteps=timesteps) + + +class MusicLMPattern(CodebooksPatternProvider): + """Almost MusicLM style pattern. This is equivalent to full flattening + but in a different order. + + Args: + n_q (int): Number of codebooks. + group_by (int): Number of codebooks to group together. + """ + def __init__(self, n_q: int, group_by: int = 2): + super().__init__(n_q) + self.group_by = group_by + + def get_pattern(self, timesteps: int) -> Pattern: + out: PatternLayout = [[]] + for offset in range(0, self.n_q, self.group_by): + for t in range(timesteps): + for q in range(offset, offset + self.group_by): + out.append([LayoutCoord(t, q)]) + return Pattern(out, n_q=self.n_q, timesteps=timesteps) diff --git a/audiocraft/modules/conditioners.py b/audiocraft/modules/conditioners.py new file mode 100644 index 0000000..76de9ab --- /dev/null +++ b/audiocraft/modules/conditioners.py @@ -0,0 +1,1763 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from collections import defaultdict +from copy import deepcopy +from dataclasses import dataclass, field +from itertools import chain +import logging +import math +from pathlib import Path +import random +import re +import typing as tp +import warnings +import einops +import flashy +from num2words import num2words +import spacy +from transformers import RobertaTokenizer, T5EncoderModel, T5Tokenizer # type: ignore +import torch +from torch import nn +import torch.nn.functional as F +from torch.nn.utils.rnn import pad_sequence +from enum import Enum +from .chroma import ChromaExtractor +from .streaming import StreamingModule +from .transformer import create_sin_embedding, StreamingTransformer +from ..data.audio import audio_read +from ..data.audio_dataset import SegmentInfo +from ..data.audio_utils import convert_audio +from ..environment import AudioCraftEnvironment +from ..quantization import ResidualVectorQuantizer +from ..utils.autocast import TorchAutocast +from ..utils.cache import EmbeddingCache +from ..utils.utils import collate, hash_trick, length_to_mask, load_clap_state_dict, warn_once + + +logger = logging.getLogger(__name__) +TextCondition = tp.Optional[str] # a text condition can be a string or None (if doesn't exist) +ConditionType = tp.Tuple[torch.Tensor, torch.Tensor] # condition, mask + + +class JascoCondConst(Enum): + DRM = 'self_wav' + CRD = 'chords' + MLD = 'melody' + SYM = {'chords', 'melody'} + LAT = {'self_wav'} + ALL = ['chords', 'self_wav', 'melody'] # order matters + + +class WavCondition(tp.NamedTuple): + wav: torch.Tensor + length: torch.Tensor + sample_rate: tp.List[int] + path: tp.List[tp.Optional[str]] = [] + seek_time: tp.List[tp.Optional[float]] = [] + + +class JointEmbedCondition(tp.NamedTuple): + wav: torch.Tensor + text: tp.List[tp.Optional[str]] + length: torch.Tensor + sample_rate: tp.List[int] + path: tp.List[tp.Optional[str]] = [] + seek_time: tp.List[tp.Optional[float]] = [] + + +class SymbolicCondition(tp.NamedTuple): + frame_chords: tp.Optional[torch.Tensor] = None + melody: tp.Optional[torch.Tensor] = None + + +@dataclass +class ConditioningAttributes: + text: tp.Dict[str, tp.Optional[str]] = field(default_factory=dict) + wav: tp.Dict[str, WavCondition] = field(default_factory=dict) + joint_embed: tp.Dict[str, JointEmbedCondition] = field(default_factory=dict) + symbolic: tp.Dict[str, SymbolicCondition] = field(default_factory=dict) + + def __getitem__(self, item): + return getattr(self, item) + + @property + def text_attributes(self): + return self.text.keys() + + @property + def wav_attributes(self): + return self.wav.keys() + + @property + def joint_embed_attributes(self): + return self.joint_embed.keys() + + @property + def symbolic_attributes(self): + return self.symbolic.keys() + + @property + def attributes(self): + return { + "text": self.text_attributes, + "wav": self.wav_attributes, + "joint_embed": self.joint_embed_attributes, + "symbolic": self.symbolic_attributes, + } + + def to_flat_dict(self): + return { + **{f"text.{k}": v for k, v in self.text.items()}, + **{f"wav.{k}": v for k, v in self.wav.items()}, + **{f"joint_embed.{k}": v for k, v in self.joint_embed.items()}, + **{f"symbolic.{k}": v for k, v in self.symbolic.items()} + } + + @classmethod + def from_flat_dict(cls, x): + out = cls() + for k, v in x.items(): + kind, att = k.split(".") + out[kind][att] = v + return out + + +class SegmentWithAttributes(SegmentInfo): + """Base class for all dataclasses that are used for conditioning. + All child classes should implement `to_condition_attributes` that converts + the existing attributes to a dataclass of type ConditioningAttributes. + """ + def to_condition_attributes(self) -> ConditioningAttributes: + raise NotImplementedError() + + +def nullify_condition(condition: ConditionType, dim: int = 1): + """Transform an input condition to a null condition. + The way it is done by converting it to a single zero vector similarly + to how it is done inside WhiteSpaceTokenizer and NoopTokenizer. + + Args: + condition (ConditionType): A tuple of condition and mask (tuple[torch.Tensor, torch.Tensor]) + dim (int): The dimension that will be truncated (should be the time dimension) + WARNING!: dim should not be the batch dimension! + Returns: + ConditionType: A tuple of null condition and mask + """ + assert dim != 0, "dim cannot be the batch dimension!" + assert isinstance(condition, tuple) and \ + isinstance(condition[0], torch.Tensor) and \ + isinstance(condition[1], torch.Tensor), "'nullify_condition' got an unexpected input type!" + cond, mask = condition + B = cond.shape[0] + last_dim = cond.dim() - 1 + out = cond.transpose(dim, last_dim) + out = 0. * out[..., :1] + out = out.transpose(dim, last_dim) + mask = torch.zeros((B, 1), device=out.device).int() + assert cond.dim() == out.dim() + return out, mask + + +def nullify_wav(cond: WavCondition) -> WavCondition: + """Transform a WavCondition to a nullified WavCondition. + It replaces the wav by a null tensor, forces its length to 0, and replaces metadata by dummy attributes. + + Args: + cond (WavCondition): Wav condition with wav, tensor of shape [B, T]. + Returns: + WavCondition: Nullified wav condition. + """ + null_wav, _ = nullify_condition((cond.wav, torch.zeros_like(cond.wav)), dim=cond.wav.dim() - 1) + return WavCondition( + wav=null_wav, + length=torch.tensor([0] * cond.wav.shape[0], device=cond.wav.device), + sample_rate=cond.sample_rate, + path=[None] * cond.wav.shape[0], + seek_time=[None] * cond.wav.shape[0], + ) + + +def nullify_joint_embed(embed: JointEmbedCondition) -> JointEmbedCondition: + """Nullify the joint embedding condition by replacing it by a null tensor, forcing its length to 0, + and replacing metadata by dummy attributes. + + Args: + cond (JointEmbedCondition): Joint embedding condition with wav and text, wav tensor of shape [B, C, T]. + """ + null_wav, _ = nullify_condition((embed.wav, torch.zeros_like(embed.wav)), dim=embed.wav.dim() - 1) + return JointEmbedCondition( + wav=null_wav, text=[None] * len(embed.text), + length=torch.LongTensor([0]).to(embed.wav.device), + sample_rate=embed.sample_rate, + path=[None] * embed.wav.shape[0], + seek_time=[0] * embed.wav.shape[0], + ) + + +def nullify_chords(sym_cond: SymbolicCondition, null_chord_idx: int = 194) -> SymbolicCondition: + """Nullify the symbolic condition by setting all frame chords to a specified null chord index. + Args: + sym_cond (SymbolicCondition): The symbolic condition containing frame chords to be nullified. + null_chord_idx (int, optional): The index to use for nullifying the chords. Defaults to 194 (Chordino). + Returns: + SymbolicCondition: A new symbolic condition with all frame chords set to the null chord index. + """ + return SymbolicCondition(frame_chords=torch.ones_like(sym_cond.frame_chords) * null_chord_idx) # type: ignore + + +def nullify_melody(sym_cond: SymbolicCondition) -> SymbolicCondition: + """Nullify the symbolic condition by replacing the melody matrix with zeros matrix. + Args: + sym_cond (SymbolicCondition): The symbolic condition containing frame chords to be nullified. + null_chord_idx (int, optional): The index to use for nullifying the chords. Defaults to 194 (Chordino). + Returns: + SymbolicCondition: A new symbolic condition with all frame chords set to the null chord index. + """ + return SymbolicCondition(melody=torch.zeros_like(sym_cond.melody)) # type: ignore + + +def _drop_description_condition(conditions: tp.List[ConditioningAttributes]) -> tp.List[ConditioningAttributes]: + """Drop the text condition but keep the wav conditon on a list of ConditioningAttributes. + This is useful to calculate l_style in the double classifier free guidance formula. + See paragraph 4.3 in https://arxiv.org/pdf/2407.12563 + + Args: + conditions (tp.List[ConditioningAttributes]): List of conditions. + """ + # We assert that description and self_wav are in the conditions + for condition in conditions: + assert 'description' in condition.text.keys() + assert 'self_wav' in condition.wav.keys() + return AttributeDropout(p={'text': {'description': 1.0}, + 'wav': {'self_wav': 0.0}})(conditions) + + +class Tokenizer: + """Base tokenizer implementation + (in case we want to introduce more advances tokenizers in the future). + """ + def __call__(self, texts: tp.List[tp.Optional[str]]) -> tp.Tuple[torch.Tensor, torch.Tensor]: + raise NotImplementedError() + + +class WhiteSpaceTokenizer(Tokenizer): + """This tokenizer should be used for natural language descriptions. + For example: + ["he didn't, know he's going home.", 'shorter sentence'] => + [[78, 62, 31, 4, 78, 25, 19, 34], + [59, 77, 0, 0, 0, 0, 0, 0]] + """ + PUNCTUATION = "?:!.,;" + + def __init__(self, n_bins: int, pad_idx: int = 0, language: str = "en_core_web_sm", + lemma: bool = True, stopwords: bool = True) -> None: + self.n_bins = n_bins + self.pad_idx = pad_idx + self.lemma = lemma + self.stopwords = stopwords + try: + self.nlp = spacy.load(language) + except IOError: + spacy.cli.download(language) # type: ignore + self.nlp = spacy.load(language) + + @tp.no_type_check + def __call__(self, texts: tp.List[tp.Optional[str]], + return_text: bool = False) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Take a list of strings and convert them to a tensor of indices. + + Args: + texts (list[str]): List of strings. + return_text (bool, optional): Whether to return text as additional tuple item. Defaults to False. + Returns: + tuple[torch.Tensor, torch.Tensor]: + - Indices of words in the LUT. + - And a mask indicating where the padding tokens are + """ + output, lengths = [], [] + texts = deepcopy(texts) + for i, text in enumerate(texts): + # if current sample doesn't have a certain attribute, replace with pad token + if text is None: + output.append(torch.Tensor([self.pad_idx])) + lengths.append(0) + continue + + # convert numbers to words + text = re.sub(r"(\d+)", lambda x: num2words(int(x.group(0))), text) # type: ignore + # normalize text + text = self.nlp(text) # type: ignore + # remove stopwords + if self.stopwords: + text = [w for w in text if not w.is_stop] # type: ignore + # remove punctuation + text = [w for w in text if w.text not in self.PUNCTUATION] # type: ignore + # lemmatize if needed + text = [getattr(t, "lemma_" if self.lemma else "text") for t in text] # type: ignore + + texts[i] = " ".join(text) + lengths.append(len(text)) + # convert to tensor + tokens = torch.Tensor([hash_trick(w, self.n_bins) for w in text]) + output.append(tokens) + + mask = length_to_mask(torch.IntTensor(lengths)).int() + padded_output = pad_sequence(output, padding_value=self.pad_idx).int().t() + if return_text: + return padded_output, mask, texts # type: ignore + return padded_output, mask + + +class NoopTokenizer(Tokenizer): + """This tokenizer should be used for global conditioners such as: artist, genre, key, etc. + The difference between this and WhiteSpaceTokenizer is that NoopTokenizer does not split + strings, so "Jeff Buckley" will get it's own index. Whereas WhiteSpaceTokenizer will + split it to ["Jeff", "Buckley"] and return an index per word. + + For example: + ["Queen", "ABBA", "Jeff Buckley"] => [43, 55, 101] + ["Metal", "Rock", "Classical"] => [0, 223, 51] + """ + def __init__(self, n_bins: int, pad_idx: int = 0): + self.n_bins = n_bins + self.pad_idx = pad_idx + + def __call__(self, texts: tp.List[tp.Optional[str]]) -> tp.Tuple[torch.Tensor, torch.Tensor]: + output, lengths = [], [] + for text in texts: + # if current sample doesn't have a certain attribute, replace with pad token + if text is None: + output.append(self.pad_idx) + lengths.append(0) + else: + output.append(hash_trick(text, self.n_bins)) + lengths.append(1) + + tokens = torch.LongTensor(output).unsqueeze(1) + mask = length_to_mask(torch.IntTensor(lengths)).int() + return tokens, mask + + +class BaseConditioner(nn.Module): + """Base model for all conditioner modules. + We allow the output dim to be different than the hidden dim for two reasons: + 1) keep our LUTs small when the vocab is large; + 2) make all condition dims consistent. + + Args: + dim (int): Hidden dim of the model. + output_dim (int): Output dim of the conditioner. + """ + def __init__(self, dim: int, output_dim: int): + super().__init__() + self.dim = dim + self.output_dim = output_dim + if self.output_dim > -1: # omit projection when output_dim <= 0 + self.output_proj = nn.Linear(dim, output_dim) + + def tokenize(self, *args, **kwargs) -> tp.Any: + """Should be any part of the processing that will lead to a synchronization + point, e.g. BPE tokenization with transfer to the GPU. + + The returned value will be saved and return later when calling forward(). + """ + raise NotImplementedError() + + def forward(self, inputs: tp.Any) -> ConditionType: + """Gets input that should be used as conditioning (e.g, genre, description or a waveform). + Outputs a ConditionType, after the input data was embedded as a dense vector. + + Returns: + ConditionType: + - A tensor of size [B, T, D] where B is the batch size, T is the length of the + output embedding and D is the dimension of the embedding. + - And a mask indicating where the padding tokens. + """ + raise NotImplementedError() + + +class TextConditioner(BaseConditioner): + ... + + +class LUTConditioner(TextConditioner): + """Lookup table TextConditioner. + + Args: + n_bins (int): Number of bins. + dim (int): Hidden dim of the model (text-encoder/LUT). + output_dim (int): Output dim of the conditioner. + tokenizer (str): Name of the tokenizer. + pad_idx (int, optional): Index for padding token. Defaults to 0. + """ + def __init__(self, n_bins: int, dim: int, output_dim: int, tokenizer: str, pad_idx: int = 0): + super().__init__(dim, output_dim) + self.embed = nn.Embedding(n_bins, dim) + self.tokenizer: Tokenizer + if tokenizer == 'whitespace': + self.tokenizer = WhiteSpaceTokenizer(n_bins, pad_idx=pad_idx) + elif tokenizer == 'noop': + self.tokenizer = NoopTokenizer(n_bins, pad_idx=pad_idx) + else: + raise ValueError(f"unrecognized tokenizer `{tokenizer}`.") + + def tokenize(self, x: tp.List[tp.Optional[str]]) -> tp.Tuple[torch.Tensor, torch.Tensor]: + device = self.embed.weight.device + tokens, mask = self.tokenizer(x) + tokens, mask = tokens.to(device), mask.to(device) + return tokens, mask + + def forward(self, inputs: tp.Tuple[torch.Tensor, torch.Tensor]) -> ConditionType: + tokens, mask = inputs + embeds = self.embed(tokens) + embeds = self.output_proj(embeds) + embeds = (embeds * mask.unsqueeze(-1)) + return embeds, mask + + +class T5Conditioner(TextConditioner): + """T5-based TextConditioner. + + Args: + name (str): Name of the T5 model. + output_dim (int): Output dim of the conditioner. + finetune (bool): Whether to fine-tune T5 at train time. + device (str): Device for T5 Conditioner. + autocast_dtype (tp.Optional[str], optional): Autocast dtype. + word_dropout (float, optional): Word dropout probability. + normalize_text (bool, optional): Whether to apply text normalization. + """ + MODELS = ["t5-small", "t5-base", "t5-large", "t5-3b", "t5-11b", + "google/flan-t5-small", "google/flan-t5-base", "google/flan-t5-large", + "google/flan-t5-xl", "google/flan-t5-xxl"] + MODELS_DIMS = { + "t5-small": 512, + "t5-base": 768, + "t5-large": 1024, + "t5-3b": 1024, + "t5-11b": 1024, + "google/flan-t5-small": 512, + "google/flan-t5-base": 768, + "google/flan-t5-large": 1024, + "google/flan-t5-3b": 1024, + "google/flan-t5-11b": 1024, + } + + def __init__(self, name: str, output_dim: int, finetune: bool, device: str, + autocast_dtype: tp.Optional[str] = 'float32', word_dropout: float = 0., + normalize_text: bool = False): + assert name in self.MODELS, f"Unrecognized t5 model name (should in {self.MODELS})" + super().__init__(self.MODELS_DIMS[name], output_dim) + self.device = device + self.name = name + self.finetune = finetune + self.word_dropout = word_dropout + if autocast_dtype is None or self.device == 'cpu': + self.autocast = TorchAutocast(enabled=False) + if self.device != 'cpu': + logger.warning("T5 has no autocast, this might lead to NaN") + else: + dtype = getattr(torch, autocast_dtype) + assert isinstance(dtype, torch.dtype) + logger.info(f"T5 will be evaluated with autocast as {autocast_dtype}") + self.autocast = TorchAutocast(enabled=True, device_type=self.device, dtype=dtype) + # Let's disable logging temporarily because T5 will vomit some errors otherwise. + # thanks https://gist.github.com/simon-weber/7853144 + previous_level = logging.root.manager.disable + logging.disable(logging.ERROR) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + try: + self.t5_tokenizer = T5Tokenizer.from_pretrained(name) + t5 = T5EncoderModel.from_pretrained(name).train(mode=finetune) + finally: + logging.disable(previous_level) + if finetune: + self.t5 = t5 + else: + # this makes sure that the t5 models is not part + # of the saved checkpoint + self.__dict__['t5'] = t5.to(device) + + self.normalize_text = normalize_text + if normalize_text: + self.text_normalizer = WhiteSpaceTokenizer(1, lemma=True, stopwords=True) + + def tokenize(self, x: tp.List[tp.Optional[str]]) -> tp.Dict[str, torch.Tensor]: + # if current sample doesn't have a certain attribute, replace with empty string + entries: tp.List[str] = [xi if xi is not None else "" for xi in x] + if self.normalize_text: + _, _, entries = self.text_normalizer(entries, return_text=True) + if self.word_dropout > 0. and self.training: + new_entries = [] + for entry in entries: + words = [word for word in entry.split(" ") if random.random() >= self.word_dropout] + new_entries.append(" ".join(words)) + entries = new_entries + + empty_idx = torch.LongTensor([i for i, xi in enumerate(entries) if xi == ""]) + + inputs = self.t5_tokenizer(entries, return_tensors='pt', padding=True).to(self.device) + mask = inputs['attention_mask'] + mask[empty_idx, :] = 0 # zero-out index where the input is non-existant + return inputs + + def forward(self, inputs: tp.Dict[str, torch.Tensor]) -> ConditionType: + mask = inputs['attention_mask'] + with torch.set_grad_enabled(self.finetune), self.autocast: + embeds = self.t5(**inputs).last_hidden_state + embeds = self.output_proj(embeds.to(self.output_proj.weight)) + embeds = (embeds * mask.unsqueeze(-1)) + return embeds, mask + + +class WaveformConditioner(BaseConditioner): + """Base class for all conditioners that take a waveform as input. + Classes that inherit must implement `_get_wav_embedding` that outputs + a continuous tensor, and `_downsampling_factor` that returns the down-sampling + factor of the embedding model. + + Args: + dim (int): The internal representation dimension. + output_dim (int): Output dimension. + device (tp.Union[torch.device, str]): Device. + """ + def __init__(self, dim: int, output_dim: int, device: tp.Union[torch.device, str]): + super().__init__(dim, output_dim) + self.device = device + # if False no masking is done, used in ChromaStemConditioner when completing by periodicity a sample. + self._use_masking = True + + def tokenize(self, x: WavCondition) -> WavCondition: + wav, length, sample_rate, path, seek_time = x + assert length is not None + return WavCondition(wav.to(self.device), length.to(self.device), sample_rate, path, seek_time) + + def _get_wav_embedding(self, x: WavCondition) -> torch.Tensor: + """Gets as input a WavCondition and returns a dense embedding.""" + raise NotImplementedError() + + def _downsampling_factor(self): + """Returns the downsampling factor of the embedding model.""" + raise NotImplementedError() + + def forward(self, x: WavCondition) -> ConditionType: + """Extract condition embedding and mask from a waveform and its metadata. + Args: + x (WavCondition): Waveform condition containing raw waveform and metadata. + Returns: + ConditionType: a dense vector representing the conditioning along with its mask + """ + wav, lengths, *_ = x + with torch.no_grad(): + embeds = self._get_wav_embedding(x) + if hasattr(self, 'output_proj'): + embeds = embeds.to(self.output_proj.weight) + embeds = self.output_proj(embeds) + + if lengths is not None and self._use_masking: + lengths = lengths / self._downsampling_factor() + mask = length_to_mask(lengths, max_len=embeds.shape[1]).int() # type: ignore + else: + mask = torch.ones_like(embeds[..., 0]) + embeds = (embeds * mask.unsqueeze(-1)) + return embeds, mask + + +class ChromaStemConditioner(WaveformConditioner): + """Chroma conditioner based on stems. + The ChromaStemConditioner uses DEMUCS to first filter out drums and bass, as + the drums and bass often dominate the chroma leading to the chroma features + not containing information about the melody. + + Args: + output_dim (int): Output dimension for the conditioner. + sample_rate (int): Sample rate for the chroma extractor. + n_chroma (int): Number of chroma bins for the chroma extractor. + radix2_exp (int): Size of stft window for the chroma extractor (power of 2, e.g. 12 -> 2^12). + duration (int): duration used during training. This is later used for correct padding + in case we are using chroma as prefix. + match_len_on_eval (bool, optional): if True then all chromas are padded to the training + duration. Defaults to False. + eval_wavs (str, optional): path to a dataset manifest with waveform, this waveforms are used as + conditions during eval (for cases where we don't want to leak test conditions like MusicCaps). + Defaults to None. + n_eval_wavs (int, optional): limits the number of waveforms used for conditioning. Defaults to 0. + device (tp.Union[torch.device, str], optional): Device for the conditioner. + **kwargs: Additional parameters for the chroma extractor. + """ + def __init__(self, output_dim: int, sample_rate: int, n_chroma: int, radix2_exp: int, + duration: float, match_len_on_eval: bool = True, eval_wavs: tp.Optional[str] = None, + n_eval_wavs: int = 0, cache_path: tp.Optional[tp.Union[str, Path]] = None, + device: tp.Union[torch.device, str] = 'cpu', **kwargs): + from demucs import pretrained + super().__init__(dim=n_chroma, output_dim=output_dim, device=device) + self.autocast = TorchAutocast(enabled=device != 'cpu', device_type=self.device, dtype=torch.float32) + self.sample_rate = sample_rate + self.match_len_on_eval = match_len_on_eval + if match_len_on_eval: + self._use_masking = False + self.duration = duration + self.__dict__['demucs'] = pretrained.get_model('htdemucs').to(device) + stem_sources: list = self.demucs.sources # type: ignore + self.stem_indices = torch.LongTensor([stem_sources.index('vocals'), stem_sources.index('other')]).to(device) + self.chroma = ChromaExtractor(sample_rate=sample_rate, n_chroma=n_chroma, + radix2_exp=radix2_exp, **kwargs).to(device) + self.chroma_len = self._get_chroma_len() + self.eval_wavs: tp.Optional[torch.Tensor] = self._load_eval_wavs(eval_wavs, n_eval_wavs) + self.cache = None + if cache_path is not None: + self.cache = EmbeddingCache(Path(cache_path) / 'wav', self.device, + compute_embed_fn=self._get_full_chroma_for_cache, + extract_embed_fn=self._extract_chroma_chunk) + + def _downsampling_factor(self) -> int: + return self.chroma.winhop + + def _load_eval_wavs(self, path: tp.Optional[str], num_samples: int) -> tp.Optional[torch.Tensor]: + """Load pre-defined waveforms from a json. + These waveforms will be used for chroma extraction during evaluation. + This is done to make the evaluation on MusicCaps fair (we shouldn't see the chromas of MusicCaps). + """ + if path is None: + return None + + logger.info(f"Loading evaluation wavs from {path}") + from audiocraft.data.audio_dataset import AudioDataset + dataset: AudioDataset = AudioDataset.from_meta( + path, segment_duration=self.duration, min_audio_duration=self.duration, + sample_rate=self.sample_rate, channels=1) + + if len(dataset) > 0: + eval_wavs = dataset.collater([dataset[i] for i in range(num_samples)]).to(self.device) + logger.info(f"Using {len(eval_wavs)} evaluation wavs for chroma-stem conditioner") + return eval_wavs + else: + raise ValueError("Could not find evaluation wavs, check lengths of wavs") + + def reset_eval_wavs(self, eval_wavs: tp.Optional[torch.Tensor]) -> None: + self.eval_wavs = eval_wavs + + def has_eval_wavs(self) -> bool: + return self.eval_wavs is not None + + def _sample_eval_wavs(self, num_samples: int) -> torch.Tensor: + """Sample wavs from a predefined list.""" + assert self.eval_wavs is not None, "Cannot sample eval wavs as no eval wavs provided." + total_eval_wavs = len(self.eval_wavs) + out = self.eval_wavs + if num_samples > total_eval_wavs: + out = self.eval_wavs.repeat(num_samples // total_eval_wavs + 1, 1, 1) + return out[torch.randperm(len(out))][:num_samples] + + def _get_chroma_len(self) -> int: + """Get length of chroma during training.""" + dummy_wav = torch.zeros((1, int(self.sample_rate * self.duration)), device=self.device) + dummy_chr = self.chroma(dummy_wav) + return dummy_chr.shape[1] + + @torch.no_grad() + def _get_stemmed_wav(self, wav: torch.Tensor, sample_rate: int) -> torch.Tensor: + """Get parts of the wav that holds the melody, extracting the main stems from the wav.""" + from demucs.apply import apply_model + from demucs.audio import convert_audio + with self.autocast: + wav = convert_audio( + wav, sample_rate, self.demucs.samplerate, self.demucs.audio_channels) # type: ignore + stems = apply_model(self.demucs, wav, device=self.device) # type: ignore + stems = stems[:, self.stem_indices] # extract relevant stems for melody conditioning + mix_wav = stems.sum(1) # merge extracted stems to single waveform + mix_wav = convert_audio(mix_wav, self.demucs.samplerate, self.sample_rate, 1) # type: ignore + return mix_wav + + @torch.no_grad() + def _extract_chroma(self, wav: torch.Tensor) -> torch.Tensor: + """Extract chroma features from the waveform.""" + with self.autocast: + return self.chroma(wav) + + @torch.no_grad() + def _compute_wav_embedding(self, wav: torch.Tensor, sample_rate: int) -> torch.Tensor: + """Compute wav embedding, applying stem and chroma extraction.""" + # avoid 0-size tensors when we are working with null conds + if wav.shape[-1] == 1: + return self._extract_chroma(wav) + stems = self._get_stemmed_wav(wav, sample_rate) + chroma = self._extract_chroma(stems) + return chroma + + @torch.no_grad() + def _get_full_chroma_for_cache(self, path: tp.Union[str, Path], x: WavCondition, idx: int) -> torch.Tensor: + """Extract chroma from the whole audio waveform at the given path.""" + wav, sr = audio_read(path) + wav = wav[None].to(self.device) + wav = convert_audio(wav, sr, self.sample_rate, to_channels=1) + chroma = self._compute_wav_embedding(wav, self.sample_rate)[0] + return chroma + + def _extract_chroma_chunk(self, full_chroma: torch.Tensor, x: WavCondition, idx: int) -> torch.Tensor: + """Extract a chunk of chroma from the full chroma derived from the full waveform.""" + wav_length = x.wav.shape[-1] + seek_time = x.seek_time[idx] + assert seek_time is not None, ( + "WavCondition seek_time is required " + "when extracting chroma chunks from pre-computed chroma.") + full_chroma = full_chroma.float() + frame_rate = self.sample_rate / self._downsampling_factor() + target_length = int(frame_rate * wav_length / self.sample_rate) + index = int(frame_rate * seek_time) + out = full_chroma[index: index + target_length] + out = F.pad(out[None], (0, 0, 0, target_length - out.shape[0]))[0] + return out.to(self.device) + + @torch.no_grad() + def _get_wav_embedding(self, x: WavCondition) -> torch.Tensor: + """Get the wav embedding from the WavCondition. + The conditioner will either extract the embedding on-the-fly computing it from the condition wav directly + or will rely on the embedding cache to load the pre-computed embedding if relevant. + """ + sampled_wav: tp.Optional[torch.Tensor] = None + if not self.training and self.eval_wavs is not None: + warn_once(logger, "Using precomputed evaluation wavs!") + sampled_wav = self._sample_eval_wavs(len(x.wav)) + + no_undefined_paths = all(p is not None for p in x.path) + no_nullified_cond = x.wav.shape[-1] > 1 + if sampled_wav is not None: + chroma = self._compute_wav_embedding(sampled_wav, self.sample_rate) + elif self.cache is not None and no_undefined_paths and no_nullified_cond: + paths = [Path(p) for p in x.path if p is not None] + chroma = self.cache.get_embed_from_cache(paths, x) + else: + assert all(sr == x.sample_rate[0] for sr in x.sample_rate), "All sample rates in batch should be equal." + chroma = self._compute_wav_embedding(x.wav, x.sample_rate[0]) + + if self.match_len_on_eval: + B, T, C = chroma.shape + if T > self.chroma_len: + chroma = chroma[:, :self.chroma_len] + logger.debug(f"Chroma was truncated to match length! ({T} -> {chroma.shape[1]})") + elif T < self.chroma_len: + n_repeat = int(math.ceil(self.chroma_len / T)) + chroma = chroma.repeat(1, n_repeat, 1) + chroma = chroma[:, :self.chroma_len] + logger.debug(f"Chroma was repeated to match length! ({T} -> {chroma.shape[1]})") + + return chroma + + def tokenize(self, x: WavCondition) -> WavCondition: + """Apply WavConditioner tokenization and populate cache if needed.""" + x = super().tokenize(x) + no_undefined_paths = all(p is not None for p in x.path) + if self.cache is not None and no_undefined_paths: + paths = [Path(p) for p in x.path if p is not None] + self.cache.populate_embed_cache(paths, x) + return x + + +class FeatureExtractor(WaveformConditioner): + """ + Feature Extractor used for the style conditioner of the paper AUDIO CONDITIONING + FOR MUSIC GENERATION VIA DISCRETE BOTTLENECK FEATURES. + + Given a waveform, we extract an excerpt of defined length randomly subsampled. + Then, we feed this excerpt to a feature extractor. + + Args: + model_name (str): 'encodec' or 'mert'. + sample_rate (str): sample rate of the input audio. (32000) + encodec_checkpoint (str): if encodec is used as a feature extractor, checkpoint + of the model. ('//pretrained/facebook/encodec_32khz' is the default) + encodec_n_q (int): if encodec is used as a feature extractor it sets the number of + quantization streams used in it. + length (float): length in seconds of the random subsampled excerpt that is used + for conditioning. + dim (int): The internal representation dimension. + output_dim (int): Output dimension for the conditioner. + device (tp.Union[torch.device, str], optional): Device for the conditioner. + compute_mask (bool): whether to mask the tokens corresponding to the subsampled + excerpt in the computation of the music language model cross-entropy loss. + use_middle_of_segment (bool): if True, always take the middle of the input + instead of a random subsampled excerpt. + ds_rate_compression (int): downsampling parameter of the compression model used + for the music language model. (640 for encodec_32khz) + num_codebooks_lm (int): the number of codebooks used by the music language model. + """ + def __init__( + self, model_name: str, + sample_rate: int, encodec_checkpoint: str, encodec_n_q: int, length: float, + dim: int, output_dim: int, device: tp.Union[torch.device, str], + compute_mask: bool = True, + use_middle_of_segment: bool = False, ds_rate_compression: int = 640, + num_codebooks_lm: int = 4 + ): + assert model_name in ['encodec', 'mert'] + if model_name == 'encodec': + from ..solvers.compression import CompressionSolver + feat_extractor = CompressionSolver.model_from_checkpoint(encodec_checkpoint, device) + elif model_name == 'mert': + from transformers import AutoModel + feat_extractor = AutoModel.from_pretrained("m-a-p/MERT-v1-95M", trust_remote_code=True) + super().__init__( + dim=dim, + output_dim=output_dim, + device=device + ) + self.sample_rate = sample_rate + self.compute_mask = compute_mask + self.feat_extractor: nn.Module + self.embed: tp.Union[nn.ModuleList, nn.Linear] + if model_name == 'encodec': + self.__dict__["feat_extractor"] = feat_extractor.to(device) + self.encodec_n_q = encodec_n_q + self.embed = nn.ModuleList([nn.Embedding(feat_extractor.cardinality, dim) for _ in range(encodec_n_q)]) + if model_name == 'mert': + self.__dict__["feat_extractor"] = feat_extractor.eval().to(device) + self.embed = nn.Linear(768, dim) # hardcoded + self.length_subwav = int(length * sample_rate) + self.ds_rate_compression = ds_rate_compression + self.model_name = model_name + self.use_middle_of_segment = use_middle_of_segment + self.num_codebooks_lm = num_codebooks_lm + + def _get_wav_embedding(self, x: WavCondition) -> torch.Tensor: + if x.wav.shape[-1] == 1: + self.temp_mask = None + return torch.zeros(x.wav.shape[0], 1, self.dim, device=self.device) + else: + with torch.no_grad(): + if self.use_middle_of_segment: + start = int((x.wav.shape[-1] - self.length_subwav) / 2) + wav = x.wav[:, :, start:start+self.length_subwav] + else: + start = random.randint(0, x.wav.shape[-1] - self.length_subwav) + wav = x.wav[:, :, start:start+self.length_subwav] + if self.compute_mask: + self.temp_mask = self._get_mask_wav(x, start) + if self.model_name == 'encodec': + tokens = self.feat_extractor.encode(wav)[0] # type: ignore + elif self.model_name == 'mert': + wav = convert_audio(wav, from_rate=x.sample_rate[0], to_rate=24000, to_channels=1) + embeds = self.feat_extractor(wav.squeeze(-2)).last_hidden_state + if self.model_name == 'encodec': + tokens = tokens[:, :self.encodec_n_q] + embeds = sum([self.embed[k](tokens[:, k]) for k in range(self.encodec_n_q)]) # type: ignore + else: + embeds = self.embed(embeds) + + return embeds # [B, T, dim] + + def _downsampling_factor(self): + if self.model_name == 'encodec': + return self.sample_rate / self.feat_extractor.frame_rate + elif self.model_name == 'mert': + return self.sample_rate / 75 + + def _get_mask_wav(self, x: WavCondition, start: int) -> tp.Union[torch.Tensor, None]: + if x.wav.shape[-1] == 1: + return None + total_length = int(x.wav.shape[-1] / self.ds_rate_compression) + mask_length = int(self.length_subwav / self.ds_rate_compression) + start = int(start / self.ds_rate_compression) + mask = torch.ones(x.wav.shape[0], self.num_codebooks_lm, + total_length, device=self.device, dtype=torch.bool) + mask[:, :, start:start+mask_length] = 0 + return mask + + +class StyleConditioner(FeatureExtractor): + """Conditioner from the paper AUDIO CONDITIONING FOR MUSIC GENERATION VIA + DISCRETE BOTTLENECK FEATURES. + Given an audio input, it is passed through a Feature Extractor and a + transformer encoder. Then it is quantized through RVQ. + + Args: + transformer_scale (str): size of the transformer. See in the __init__ to have more infos. + ds_factor (int): the downsampling factor applied to the representation after quantization. + encodec_n_q (int): if encodec is used as a feature extractor it sets the number of + quantization streams used in it. + n_q_out (int): the number of quantization streams used for the RVQ. If increased, there + is more information passing as a conditioning. + eval_q (int): the number of quantization streams used for the RVQ at evaluation time. + q_dropout (bool): if True, at training time, a random number of stream is sampled + at each step in the interval [1, n_q_out]. + bins (int): the codebook size used for each quantization stream. + varying_lengths (List[float]): list of the min and max duration in seconds for the + randomly subsampled excerpt at training time. For each step a length is sampled + in this interval. + batch_norm (bool): use of batch normalization after the transformer. Stabilizes the + training. + rvq_threshold_ema_dead_code (float): threshold for dropping dead codes in the + RVQ. + """ + def __init__(self, transformer_scale: str = 'default', ds_factor: int = 15, encodec_n_q: int = 4, + n_q_out: int = 6, eval_q: int = 3, q_dropout: bool = True, bins: int = 1024, + varying_lengths: tp.List[float] = [1.5, 4.5], + batch_norm: bool = True, rvq_threshold_ema_dead_code: float = 0.1, + **kwargs): + tr_args: tp.Dict[str, tp.Any] + if transformer_scale == 'xsmall': + tr_args = {'d_model': 256, 'num_heads': 8, 'num_layers': 4} + elif transformer_scale == 'large': + tr_args = {'d_model': 1024, 'num_heads': 16, 'num_layers': 24} + elif transformer_scale == 'default': + tr_args = {'d_model': 512, 'num_heads': 8, 'num_layers': 8} + elif transformer_scale == 'none': + tr_args = {'d_model': 512} + tr_args.update({ + 'memory_efficient': True, 'activation': 'gelu', + 'norm_first': True, 'causal': False, 'layer_scale': None, + 'bias_ff': False, 'bias_attn': False, + }) + dim = tr_args['d_model'] + super().__init__(dim=dim, encodec_n_q=encodec_n_q, **kwargs) + + self.ds_factor = ds_factor + if transformer_scale == 'none': + self.transformer = None + else: + self.transformer = StreamingTransformer(dim_feedforward=int(4 * dim), **tr_args) + self.n_q_out = n_q_out + self.eval_q = eval_q + self.rvq = None + if n_q_out > 0: + self.rvq = ResidualVectorQuantizer(dim, n_q=n_q_out, q_dropout=q_dropout, bins=bins, + threshold_ema_dead_code=rvq_threshold_ema_dead_code) + self.autocast = TorchAutocast(enabled=self.device != 'cpu', device_type=self.device, dtype=torch.float32) + self.varying_lengths = varying_lengths + self.batch_norm = None + if batch_norm: + self.batch_norm = nn.BatchNorm1d(dim, affine=False) + self.mask = None + + def _get_wav_embedding(self, wav: WavCondition) -> torch.Tensor: + with self.autocast: + # Sample the length of the excerpts + if self.varying_lengths and self.training: + assert len(self.varying_lengths) == 2 + length = random.uniform(self.varying_lengths[0], self.varying_lengths[1]) + self.length_subwav = int(length * self.sample_rate) + z1 = super()._get_wav_embedding(wav) + if self.compute_mask: + self.mask = self.temp_mask # type: ignore + self.temp_mask = None + + if self.transformer is not None: + out1 = self.transformer(z1) + else: + out1 = z1 + if self.batch_norm: + out1 = self.batch_norm(out1.transpose(1, 2)).transpose(1, 2) + # Apply quantization + if self.rvq: + if self.training: + self.rvq.set_num_codebooks(self.n_q_out) + else: + self.rvq.set_num_codebooks(self.eval_q) + out1 = self.rvq(out1.transpose(1, 2), frame_rate=1.) + if self.training: + flashy.distrib.average_tensors(self.rvq.buffers()) + out1 = out1.x.transpose(1, 2) + # Apply fix downsample + out1 = out1[:, ::self.ds_factor] + + return out1 + + def set_params(self, eval_q: int = 3, + excerpt_length: float = 3.0, + ds_factor: tp.Optional[int] = None, encodec_n_q: tp.Optional[int] = None): + """Modify the parameters of the SSL or introduce new parameters to add noise to + the conditioning or to downsample it + + Args: + eval_q (int): number of codebooks used when evaluating the model + excerpt_length (float): the length of the excerpts used to condition the model + """ + self.eval_q = eval_q + self.length_subwav = int(excerpt_length * self.sample_rate) + if ds_factor is not None: + self.ds_factor = ds_factor + if encodec_n_q is not None: + self.encodec_n_q = encodec_n_q + + def _downsampling_factor(self): + df = super()._downsampling_factor() + return df * self.ds_factor + + def forward(self, x: WavCondition) -> ConditionType: + wav, lengths, *_ = x + + embeds = self._get_wav_embedding(x) + embeds = embeds.to(self.output_proj.weight) + embeds = self.output_proj(embeds) + + lengths = lengths / self._downsampling_factor() + mask = length_to_mask(lengths, max_len=embeds.shape[1]).int() # type: ignore + + embeds = (embeds * mask.unsqueeze(2).to(self.device)) + + return embeds, mask + + +class JointEmbeddingConditioner(BaseConditioner): + """Joint embedding conditioning supporting both audio or text conditioning. + + Args: + dim (int): Dimension. + output_dim (int): Output dimension. + device (str): Device. + attribute (str): Attribute used by the conditioner. + autocast_dtype (str): Autocast for the conditioner. + quantize (bool): Whether to quantize the CLAP embedding. + n_q (int): Number of residual quantizers (used if quantize is true). + bins (int): Quantizers' codebooks size (used if quantize is true). + kwargs: Additional parameters for residual vector quantizer. + """ + def __init__(self, dim: int, output_dim: int, device: str, attribute: str, + autocast_dtype: tp.Optional[str] = 'float32', quantize: bool = True, + n_q: int = 12, bins: int = 1024, **kwargs): + super().__init__(dim=dim, output_dim=output_dim) + self.device = device + self.attribute = attribute + if autocast_dtype is None or device == 'cpu': + self.autocast = TorchAutocast(enabled=False) + logger.warning("JointEmbeddingConditioner has no autocast, this might lead to NaN.") + else: + dtype = getattr(torch, autocast_dtype) + assert isinstance(dtype, torch.dtype) + logger.info(f"JointEmbeddingConditioner will be evaluated with autocast as {autocast_dtype}.") + self.autocast = TorchAutocast(enabled=True, device_type=self.device, dtype=dtype) + # residual vector quantizer to discretize the conditioned embedding + self.quantizer: tp.Optional[ResidualVectorQuantizer] = None + if quantize: + self.quantizer = ResidualVectorQuantizer(dim, n_q=n_q, bins=bins, **kwargs) + + def _get_embed(self, x: JointEmbedCondition) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Get joint embedding in latent space from the inputs. + + Returns: + tuple[torch.Tensor, torch.Tensor]: Tensor for the latent embedding + and corresponding empty indexes. + """ + raise NotImplementedError() + + def forward(self, x: JointEmbedCondition) -> ConditionType: + with self.autocast: + embed, empty_idx = self._get_embed(x) + if self.quantizer is not None: + embed = embed.view(-1, self.dim, 1) + q_res = self.quantizer(embed, frame_rate=1) + out_embed = q_res.x.view(-1, self.dim) + else: + out_embed = embed + out_embed = self.output_proj(out_embed).view(-1, 1, self.output_dim) + mask = torch.ones(*out_embed.shape[:2], device=out_embed.device) + mask[empty_idx, :] = 0 # zero-out index where the input is non-existant + out_embed = (out_embed * mask.unsqueeze(-1)) + return out_embed, mask + + def tokenize(self, x: JointEmbedCondition) -> JointEmbedCondition: + return x + + +class CLAPEmbeddingConditioner(JointEmbeddingConditioner): + """Joint Embedding conditioner based on pre-trained CLAP model. + + This CLAP-based conditioner supports a caching mechanism + over the computed embeddings for faster training. + + Args: + dim (int): Dimension. + output_dim (int): Output dimension. + device (str): Device. + attribute (str): Attribute used by the conditioner. + quantize (bool): Whether to quantize the CLAP embedding. + n_q (int): Number of residual quantizers (used if quantize is true). + bins (int): Quantizers' codebooks size (used if quantize is true). + checkpoint (str): Path to CLAP checkpoint. + model_arch (str): CLAP model architecture. + enable_fusion (bool): Enable fusion for CLAP model. + sample_rate (int): Sample rate used by CLAP model. + max_audio_length (float): Maximum audio length for CLAP model. + audio_stride (float): Stride to use for getting a CLAP embedding on the full sequence. + normalize (bool): Whether to normalize the CLAP embedding. + text_p (float): Probability of using text representation instead of audio at train time. + batch_size (Optional[int]): Batch size for CLAP embedding computation. + autocast_dtype (str): Autocast for the conditioner. + cache_path (Optional[str]): Path for pre-computed embeddings caching. + kwargs: Additional parameters for residual vector quantizer. + """ + def __init__(self, dim: int, output_dim: int, device: str, attribute: str, + quantize: bool, n_q: int, bins: int, checkpoint: tp.Union[str, Path], model_arch: str, + enable_fusion: bool, sample_rate: int, max_audio_length: int, audio_stride: int, + normalize: bool, text_p: bool, batch_size: tp.Optional[int] = None, + autocast_dtype: tp.Optional[str] = 'float32', cache_path: tp.Optional[str] = None, **kwargs): + try: + import laion_clap # type: ignore + except ImportError: + raise ImportError("Please install CLAP to use the CLAPEmbeddingConditioner: 'pip install laion_clap'") + warnings.warn("Sample rate for CLAP conditioner was fixed in version v1.1.0, (from 44.1 to 48 kHz). " + "Please retrain all models.") + checkpoint = AudioCraftEnvironment.resolve_reference_path(checkpoint) + clap_tokenize = RobertaTokenizer.from_pretrained('roberta-base') + clap_model = laion_clap.CLAP_Module(enable_fusion=enable_fusion, amodel=model_arch) + load_clap_state_dict(clap_model, checkpoint) + clap_model.eval() + clap_model.to(device) + super().__init__(dim=dim, output_dim=output_dim, device=device, attribute=attribute, + autocast_dtype=autocast_dtype, quantize=quantize, n_q=n_q, bins=bins, + **kwargs) + self.checkpoint = checkpoint + self.enable_fusion = enable_fusion + self.model_arch = model_arch + self.clap: laion_clap.CLAP_Module + self.clap_tokenize: RobertaTokenizer + self.clap_sample_rate = sample_rate + self.clap_max_frames = int(self.clap_sample_rate * max_audio_length) + self.clap_stride = int(self.clap_sample_rate * audio_stride) + self.batch_size = batch_size or 1 + self.normalize = normalize + self.text_p = text_p + self.__dict__['clap_tokenize'] = clap_tokenize + self.__dict__['clap'] = clap_model + self.wav_cache, self.text_cache = None, None + if cache_path is not None: + self.wav_cache = EmbeddingCache(Path(cache_path) / 'wav', self.device, + compute_embed_fn=self._get_wav_embedding_for_cache, + extract_embed_fn=self._extract_wav_embedding_chunk) + self.text_cache = EmbeddingCache(Path(cache_path) / 'text', self.device, + compute_embed_fn=self._get_text_embedding_for_cache) + + def _tokenizer(self, texts: tp.Union[str, tp.List[str]]) -> dict: + # we use the default params from CLAP module here as well + return self.clap_tokenize(texts, padding="max_length", truncation=True, max_length=77, return_tensors="pt") + + def _compute_text_embedding(self, text: tp.List[str]) -> torch.Tensor: + """Compute text embedding from CLAP model on a given a batch of text. + + Args: + text (list[str]): List of text for the batch, with B items. + Returns: + torch.Tensor: CLAP embedding derived from text, of shape [B, 1, D], with D the CLAP embedding dimension. + """ + with torch.no_grad(): + embed = self.clap.get_text_embedding(text, tokenizer=self._tokenizer, use_tensor=True) + return embed.view(embed.size(0), 1, embed.size(-1)) + + def _get_text_embedding_for_cache(self, path: tp.Union[Path, str], + x: JointEmbedCondition, idx: int) -> torch.Tensor: + """Get text embedding function for the cache.""" + text = x.text[idx] + text = text if text is not None else "" + return self._compute_text_embedding([text])[0] + + def _preprocess_wav(self, wav: torch.Tensor, length: torch.Tensor, sample_rates: tp.List[int]) -> torch.Tensor: + """Preprocess wav to expected format by CLAP model. + + Args: + wav (torch.Tensor): Audio wav, of shape [B, C, T]. + length (torch.Tensor): Actual length of the audio for each item in the batch, of shape [B]. + sample_rates (list[int]): Sample rates for each sample in the batch + Returns: + torch.Tensor: Audio wav of shape [B, T]. + """ + assert wav.dim() == 3, "Expecting wav to be [B, C, T]" + if sample_rates is not None: + _wav = [] + for i, audio in enumerate(wav): + sr = sample_rates[i] + audio = convert_audio(audio, from_rate=sr, to_rate=self.clap_sample_rate, to_channels=1) + _wav.append(audio) + wav = torch.stack(_wav, dim=0) + wav = wav.mean(dim=1) + return wav + + def _compute_wav_embedding(self, wav: torch.Tensor, length: torch.Tensor, + sample_rates: tp.List[int], reduce_mean: bool = False) -> torch.Tensor: + """Compute audio wave embedding from CLAP model. + + Since CLAP operates on a fixed sequence length audio inputs and we need to process longer audio sequences, + we calculate the wav embeddings on `clap_max_frames` windows with `clap_stride`-second stride and + average the resulting embeddings. + + Args: + wav (torch.Tensor): Audio wav, of shape [B, C, T]. + length (torch.Tensor): Actual length of the audio for each item in the batch, of shape [B]. + sample_rates (list[int]): Sample rates for each sample in the batch. + reduce_mean (bool): Whether to get the average tensor. + Returns: + torch.Tensor: Audio embedding of shape [B, F, D], F being the number of chunks, D the dimension. + """ + with torch.no_grad(): + wav = self._preprocess_wav(wav, length, sample_rates) + B, T = wav.shape + if T >= self.clap_max_frames: + wav = wav.unfold(-1, self.clap_max_frames, self.clap_stride) # [B, F, T] + else: + wav = wav.view(-1, 1, T) # [B, F, T] with F=1 + wav = einops.rearrange(wav, 'b f t -> (b f) t') + embed_list = [] + for i in range(0, wav.size(0), self.batch_size): + _wav = wav[i:i+self.batch_size, ...] + _embed = self.clap.get_audio_embedding_from_data(_wav, use_tensor=True) + embed_list.append(_embed) + embed = torch.cat(embed_list, dim=0) + embed = einops.rearrange(embed, '(b f) d -> b f d', b=B) + if reduce_mean: + embed = embed.mean(dim=1, keepdim=True) + return embed # [B, F, D] with F=1 if reduce_mean is True + + def _get_wav_embedding_for_cache(self, path: tp.Union[str, Path], + x: JointEmbedCondition, idx: int) -> torch.Tensor: + """Compute audio wave embedding for the cache. + The embedding is computed on a given audio read from file. + + Args: + path (str or Path): Path to the full audio file. + Returns: + torch.Tensor: Single-item tensor of shape [F, D], F being the number of chunks, D the dimension. + """ + wav, sr = audio_read(path) # [C, T] + wav = wav.unsqueeze(0).to(self.device) # [1, C, T] + wav_len = torch.LongTensor([wav.shape[-1]]).to(self.device) + embed = self._compute_wav_embedding(wav, wav_len, [sr], reduce_mean=False) # [B, F, D] + return embed.squeeze(0) # [F, D] + + def _extract_wav_embedding_chunk(self, full_embed: torch.Tensor, x: JointEmbedCondition, idx: int) -> torch.Tensor: + """Extract the chunk of embedding matching the seek_time and length from the full CLAP audio embedding. + + Args: + full_embed (torch.Tensor): CLAP embedding computed on the full wave, of shape [F, D]. + x (JointEmbedCondition): Joint embedding condition for the full batch. + idx (int): Index considered for the given embedding to extract. + Returns: + torch.Tensor: Wav embedding averaged on sliding window, of shape [1, D]. + """ + sample_rate = x.sample_rate[idx] + seek_time = x.seek_time[idx] + seek_time = 0. if seek_time is None else seek_time + clap_stride = int(self.clap_stride / self.clap_sample_rate) * sample_rate + end_seek_time = seek_time + self.clap_max_frames / self.clap_sample_rate + start_offset = int(seek_time * sample_rate // clap_stride) + end_offset = int(end_seek_time * sample_rate // clap_stride) + wav_embed = full_embed[start_offset:end_offset, ...] + wav_embed = wav_embed.mean(dim=0, keepdim=True) + return wav_embed.to(self.device) # [F, D] + + def _get_text_embedding(self, x: JointEmbedCondition) -> torch.Tensor: + """Get CLAP embedding from a batch of text descriptions.""" + no_nullified_cond = x.wav.shape[-1] > 1 # we don't want to read from cache when condition dropout + if self.text_cache is not None and no_nullified_cond: + assert all(p is not None for p in x.path), "Cache requires all JointEmbedCondition paths to be provided" + paths = [Path(p) for p in x.path if p is not None] + embed = self.text_cache.get_embed_from_cache(paths, x) + else: + text = [xi if xi is not None else "" for xi in x.text] + embed = self._compute_text_embedding(text) + if self.normalize: + embed = torch.nn.functional.normalize(embed, p=2.0, dim=-1) + return embed + + def _get_wav_embedding(self, x: JointEmbedCondition) -> torch.Tensor: + """Get CLAP embedding from a batch of audio tensors (and corresponding sample rates).""" + no_undefined_paths = all(p is not None for p in x.path) + no_nullified_cond = x.wav.shape[-1] > 1 # we don't want to read from cache when condition dropout + if self.wav_cache is not None and no_undefined_paths and no_nullified_cond: + paths = [Path(p) for p in x.path if p is not None] + embed = self.wav_cache.get_embed_from_cache(paths, x) + else: + embed = self._compute_wav_embedding(x.wav, x.length, x.sample_rate, reduce_mean=True) + if self.normalize: + embed = torch.nn.functional.normalize(embed, p=2.0, dim=-1) + return embed + + def tokenize(self, x: JointEmbedCondition) -> JointEmbedCondition: + # Trying to limit as much as possible sync points when the cache is warm. + no_undefined_paths = all(p is not None for p in x.path) + if self.wav_cache is not None and no_undefined_paths: + assert all([p is not None for p in x.path]), "Cache requires all JointEmbedCondition paths to be provided" + paths = [Path(p) for p in x.path if p is not None] + self.wav_cache.populate_embed_cache(paths, x) + if self.text_cache is not None and no_undefined_paths: + assert all([p is not None for p in x.path]), "Cache requires all JointEmbedCondition paths to be provided" + paths = [Path(p) for p in x.path if p is not None] + self.text_cache.populate_embed_cache(paths, x) + return x + + def _get_embed(self, x: JointEmbedCondition) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Extract shared latent representation from either the wav or the text using CLAP.""" + # decide whether to use text embedding at train time or not + use_text_embed = random.random() < self.text_p + if self.training and not use_text_embed: + embed = self._get_wav_embedding(x) + empty_idx = torch.LongTensor([]) # we assume we always have the audio wav + else: + embed = self._get_text_embedding(x) + empty_idx = torch.LongTensor([i for i, xi in enumerate(x.text) if xi is None or xi == ""]) + return embed, empty_idx + + +def dropout_symbolic_conditions(sample: ConditioningAttributes, + condition: str, null_chord_idx: int = 194) -> ConditioningAttributes: + """ + Applies dropout to symbolic conditions within the sample based on the specified condition by setting the condition + value to a null index. + Args: + sample (ConditioningAttributes): The sample containing symbolic attributes to potentially dropout. + condition (str): The specific condition within the symbolic attributes to apply dropout. + null_chord_idx (int, optional): The index used to represent a null chord. Defaults to 194. + Returns: + ConditioningAttributes: The modified sample with dropout applied to the specified condition. + Raises: + ValueError: If the specified condition is not present in the sample's symbolic attributes. + """ + if sample.symbolic == {} or sample.symbolic[JascoCondConst.CRD.value].frame_chords.shape[-1] <= 1: # type: ignore + # nothing to drop + return sample + + if condition not in getattr(sample, 'symbolic'): + raise ValueError( + "dropout_symbolic_condition received an unexpected condition!" + f" expected {sample.symbolic.keys()}" + f" but got '{condition}'!" + ) + + if condition == JascoCondConst.CRD.value: + sample.symbolic[condition] = nullify_chords(sample.symbolic[condition], null_chord_idx=null_chord_idx) + elif condition == JascoCondConst.MLD.value: + sample.symbolic[condition] = nullify_melody(sample.symbolic[condition]) + + return sample + + +def dropout_condition(sample: ConditioningAttributes, + condition_type: str, condition: str, + **kwargs) -> ConditioningAttributes: + """Utility function for nullifying an attribute inside an ConditioningAttributes object. + If the condition is of type "wav", then nullify it using `nullify_condition` function. + If the condition is of any other type, set its value to None. + Works in-place. + """ + if condition_type not in ['text', 'wav', 'joint_embed', 'symbolic']: + raise ValueError( + "dropout_condition got an unexpected condition type!" + f" expected 'text', 'wav' or 'joint_embed' but got '{condition_type}'" + ) + + if condition not in getattr(sample, condition_type): + raise ValueError( + "dropout_condition received an unexpected condition!" + f" expected wav={sample.wav.keys()} and text={sample.text.keys()}" + f" but got '{condition}' of type '{condition_type}'!" + ) + + if condition_type == 'wav': + wav_cond = sample.wav[condition] + sample.wav[condition] = nullify_wav(wav_cond) + elif condition_type == 'joint_embed': + embed = sample.joint_embed[condition] + sample.joint_embed[condition] = nullify_joint_embed(embed) + elif condition_type == 'symbolic': + sample = dropout_symbolic_conditions(sample=sample, condition=condition, **kwargs) + else: + sample.text[condition] = None + + return sample + + +class DropoutModule(nn.Module): + """Base module for all dropout modules.""" + def __init__(self, seed: int = 1234): + super().__init__() + self.rng = torch.Generator() + self.rng.manual_seed(seed) + + +class AttributeDropout(DropoutModule): + """Dropout with a given probability per attribute. + This is different from the behavior of ClassifierFreeGuidanceDropout as this allows for attributes + to be dropped out separately. For example, "artist" can be dropped while "genre" remains. + This is in contrast to ClassifierFreeGuidanceDropout where if "artist" is dropped "genre" + must also be dropped. + + Args: + p (tp.Dict[str, float]): A dict mapping between attributes and dropout probability. For example: + ... + "genre": 0.1, + "artist": 0.5, + "wav": 0.25, + ... + active_on_eval (bool, optional): Whether the dropout is active at eval. Default to False. + seed (int, optional): Random seed. + """ + def __init__(self, p: tp.Dict[str, tp.Dict[str, float]], active_on_eval: bool = False, seed: int = 1234): + super().__init__(seed=seed) + self.active_on_eval = active_on_eval + # construct dict that return the values from p otherwise 0 + self.p = {} + for condition_type, probs in p.items(): + self.p[condition_type] = defaultdict(lambda: 0, probs) + + def forward(self, samples: tp.List[ConditioningAttributes]) -> tp.List[ConditioningAttributes]: + """ + Args: + samples (list[ConditioningAttributes]): List of conditions. + Returns: + list[ConditioningAttributes]: List of conditions after certain attributes were set to None. + """ + if not self.training and not self.active_on_eval: + return samples + + samples = deepcopy(samples) + for condition_type, ps in self.p.items(): # for condition types [text, wav, symbolic] + for condition, p in ps.items(): # for attributes of each type (e.g., [artist, genre]) + if torch.rand(1, generator=self.rng).item() < p: + for sample in samples: + dropout_condition(sample, condition_type, condition) + return samples + + def __repr__(self): + return f"AttributeDropout({dict(self.p)})" + + +class ClassifierFreeGuidanceDropout(DropoutModule): + """Classifier Free Guidance dropout. + All attributes are dropped with the same probability. + + Args: + p (float): Probability to apply condition dropout during training. + seed (int): Random seed. + """ + def __init__(self, p: float, seed: int = 1234): + super().__init__(seed=seed) + self.p = p + + def forward(self, samples: tp.List[ConditioningAttributes], + cond_types: tp.List[str] = ["wav", "text"], + **kwargs) -> tp.List[ConditioningAttributes]: + """ + Args: + samples (list[ConditioningAttributes]): List of conditions. + Returns: + list[ConditioningAttributes]: List of conditions after all attributes were set to None. + """ + if not self.training: + return samples + + # decide on which attributes to drop in a batched fashion + drop = torch.rand(1, generator=self.rng).item() < self.p + if not drop: + return samples + + # nullify conditions of all attributes + samples = deepcopy(samples) + for condition_type in cond_types: + for sample in samples: + for condition in sample.attributes[condition_type]: + dropout_condition(sample, condition_type, condition, + **kwargs) + return samples + + def __repr__(self): + return f"ClassifierFreeGuidanceDropout(p={self.p})" + + +class ConditioningProvider(nn.Module): + """Prepare and provide conditions given all the supported conditioners. + + Args: + conditioners (dict): Dictionary of conditioners. + device (torch.device or str, optional): Device for conditioners and output condition types. + """ + def __init__(self, conditioners: tp.Dict[str, BaseConditioner], device: tp.Union[torch.device, str] = "cpu"): + super().__init__() + self.device = device + self.conditioners = nn.ModuleDict(conditioners) + + @property + def joint_embed_conditions(self): + return [m.attribute for m in self.conditioners.values() if isinstance(m, JointEmbeddingConditioner)] + + @property + def has_joint_embed_conditions(self): + return len(self.joint_embed_conditions) > 0 + + @property + def text_conditions(self): + return [k for k, v in self.conditioners.items() if isinstance(v, TextConditioner)] + + @property + def wav_conditions(self): + return [k for k, v in self.conditioners.items() if isinstance(v, WaveformConditioner)] + + @property + def has_wav_condition(self): + return len(self.wav_conditions) > 0 + + def tokenize(self, inputs: tp.List[ConditioningAttributes]) -> tp.Dict[str, tp.Any]: + """Match attributes/wavs with existing conditioners in self, and compute tokenize them accordingly. + This should be called before starting any real GPU work to avoid synchronization points. + This will return a dict matching conditioner names to their arbitrary tokenized representations. + + Args: + inputs (list[ConditioningAttributes]): List of ConditioningAttributes objects containing + text and wav conditions. + """ + assert all([isinstance(x, ConditioningAttributes) for x in inputs]), ( + "Got unexpected types input for conditioner! should be tp.List[ConditioningAttributes]", + f" but types were {set([type(x) for x in inputs])}" + ) + + output = {} + text = self._collate_text(inputs) + wavs = self._collate_wavs(inputs) + joint_embeds = self._collate_joint_embeds(inputs) + + assert set(text.keys() | wavs.keys() | joint_embeds.keys()).issubset(set(self.conditioners.keys())), ( + f"Got an unexpected attribute! Expected {self.conditioners.keys()}, ", + f"got {text.keys(), wavs.keys(), joint_embeds.keys()}" + ) + + for attribute, batch in chain(text.items(), wavs.items(), joint_embeds.items()): + output[attribute] = self.conditioners[attribute].tokenize(batch) + return output + + def forward(self, tokenized: tp.Dict[str, tp.Any]) -> tp.Dict[str, ConditionType]: + """Compute pairs of `(embedding, mask)` using the configured conditioners and the tokenized representations. + The output is for example: + { + "genre": (torch.Tensor([B, 1, D_genre]), torch.Tensor([B, 1])), + "description": (torch.Tensor([B, T_desc, D_desc]), torch.Tensor([B, T_desc])), + ... + } + + Args: + tokenized (dict): Dict of tokenized representations as returned by `tokenize()`. + """ + output = {} + for attribute, inputs in tokenized.items(): + condition, mask = self.conditioners[attribute](inputs) + output[attribute] = (condition, mask) + return output + + def _collate_text(self, samples: tp.List[ConditioningAttributes]) -> tp.Dict[str, tp.List[tp.Optional[str]]]: + """Given a list of ConditioningAttributes objects, compile a dictionary where the keys + are the attributes and the values are the aggregated input per attribute. + For example: + Input: + [ + ConditioningAttributes(text={"genre": "Rock", "description": "A rock song with a guitar solo"}, wav=...), + ConditioningAttributes(text={"genre": "Hip-hop", "description": "A hip-hop verse"}, wav=...), + ] + Output: + { + "genre": ["Rock", "Hip-hop"], + "description": ["A rock song with a guitar solo", "A hip-hop verse"] + } + + Args: + samples (list of ConditioningAttributes): List of ConditioningAttributes samples. + Returns: + dict[str, list[str, optional]]: A dictionary mapping an attribute name to text batch. + """ + out: tp.Dict[str, tp.List[tp.Optional[str]]] = defaultdict(list) + texts = [x.text for x in samples] + for text in texts: + for condition in self.text_conditions: + out[condition].append(text[condition]) + return out + + def _collate_wavs(self, samples: tp.List[ConditioningAttributes]) -> tp.Dict[str, WavCondition]: + """Generate a dict where the keys are attributes by which we fetch similar wavs, + and the values are Tensors of wavs according to said attributes. + + *Note*: by the time the samples reach this function, each sample should have some waveform + inside the "wav" attribute. It should be either: + 1. A real waveform + 2. A null waveform due to the sample having no similar waveforms (nullified by the dataset) + 3. A null waveform due to it being dropped in a dropout module (nullified by dropout) + + Args: + samples (list of ConditioningAttributes): List of ConditioningAttributes samples. + Returns: + dict[str, WavCondition]: A dictionary mapping an attribute name to wavs. + """ + wavs = defaultdict(list) + lengths = defaultdict(list) + sample_rates = defaultdict(list) + paths = defaultdict(list) + seek_times = defaultdict(list) + out: tp.Dict[str, WavCondition] = {} + + for sample in samples: + for attribute in self.wav_conditions: + wav, length, sample_rate, path, seek_time = sample.wav[attribute] + assert wav.dim() == 3, f"Got wav with dim={wav.dim()}, but expected 3 [1, C, T]" + assert wav.size(0) == 1, f"Got wav [B, C, T] with shape={wav.shape}, but expected B == 1" + # mono-channel conditioning + wav = wav.mean(1, keepdim=True) # [1, 1, T] + wavs[attribute].append(wav.flatten()) # [T] + lengths[attribute].append(length) + sample_rates[attribute].extend(sample_rate) + paths[attribute].extend(path) + seek_times[attribute].extend(seek_time) + + # stack all wavs to a single tensor + for attribute in self.wav_conditions: + stacked_wav, _ = collate(wavs[attribute], dim=0) + out[attribute] = WavCondition( + stacked_wav.unsqueeze(1), torch.cat(lengths[attribute]), sample_rates[attribute], + paths[attribute], seek_times[attribute]) + + return out + + def _collate_joint_embeds(self, samples: tp.List[ConditioningAttributes]) -> tp.Dict[str, JointEmbedCondition]: + """Generate a dict where the keys are attributes by which we compute joint embeddings, + and the values are Tensors of pre-computed embeddings and the corresponding text attributes. + + Args: + samples (list[ConditioningAttributes]): List of ConditioningAttributes samples. + Returns: + A dictionary mapping an attribute name to joint embeddings. + """ + texts = defaultdict(list) + wavs = defaultdict(list) + lengths = defaultdict(list) + sample_rates = defaultdict(list) + paths = defaultdict(list) + seek_times = defaultdict(list) + channels: int = 0 + + out = {} + for sample in samples: + for attribute in self.joint_embed_conditions: + wav, text, length, sample_rate, path, seek_time = sample.joint_embed[attribute] + assert wav.dim() == 3 + if channels == 0: + channels = wav.size(1) + else: + assert channels == wav.size(1), "not all audio has same number of channels in batch" + assert wav.size(0) == 1, "Expecting single-wav batch in the collate method" + wav = einops.rearrange(wav, "b c t -> (b c t)") # [1, C, T] => [C * T] + wavs[attribute].append(wav) + texts[attribute].extend(text) + lengths[attribute].append(length) + sample_rates[attribute].extend(sample_rate) + paths[attribute].extend(path) + seek_times[attribute].extend(seek_time) + + for attribute in self.joint_embed_conditions: + stacked_texts = texts[attribute] + stacked_paths = paths[attribute] + stacked_seek_times = seek_times[attribute] + stacked_wavs = pad_sequence(wavs[attribute]).to(self.device) + stacked_wavs = einops.rearrange(stacked_wavs, "(c t) b -> b c t", c=channels) + stacked_sample_rates = sample_rates[attribute] + stacked_lengths = torch.cat(lengths[attribute]).to(self.device) + assert stacked_lengths.size(0) == stacked_wavs.size(0) + assert len(stacked_sample_rates) == stacked_wavs.size(0) + assert len(stacked_texts) == stacked_wavs.size(0) + out[attribute] = JointEmbedCondition( + text=stacked_texts, wav=stacked_wavs, + length=stacked_lengths, sample_rate=stacked_sample_rates, + path=stacked_paths, seek_time=stacked_seek_times) + + return out + + +class ConditionFuser(StreamingModule): + """Condition fuser handles the logic to combine the different conditions + to the actual model input. + + Args: + fuse2cond (tp.Dict[str, str]): A dictionary that says how to fuse + each condition. For example: + { + "prepend": ["description"], + "sum": ["genre", "bpm"], + "cross": ["description"], + } + cross_attention_pos_emb (bool, optional): Use positional embeddings in cross attention. + cross_attention_pos_emb_scale (int): Scale for positional embeddings in cross attention if used. + """ + FUSING_METHODS = ["sum", "prepend", "cross", "ignore", "input_interpolate"] + + def __init__(self, fuse2cond: tp.Dict[str, tp.List[str]], cross_attention_pos_emb: bool = False, + cross_attention_pos_emb_scale: float = 1.0): + super().__init__() + assert all( + [k in self.FUSING_METHODS for k in fuse2cond.keys()] + ), f"Got invalid fuse method, allowed methods: {self.FUSING_METHODS}" + self.cross_attention_pos_emb = cross_attention_pos_emb + self.cross_attention_pos_emb_scale = cross_attention_pos_emb_scale + self.fuse2cond: tp.Dict[str, tp.List[str]] = fuse2cond + self.cond2fuse: tp.Dict[str, str] = {} + for fuse_method, conditions in fuse2cond.items(): + for condition in conditions: + self.cond2fuse[condition] = fuse_method + + def forward( + self, + input: torch.Tensor, + conditions: tp.Dict[str, ConditionType] + ) -> tp.Tuple[torch.Tensor, tp.Optional[torch.Tensor]]: + """Fuse the conditions to the provided model input. + + Args: + input (torch.Tensor): Transformer input. + conditions (dict[str, ConditionType]): Dict of conditions. + Returns: + tuple[torch.Tensor, torch.Tensor]: The first tensor is the transformer input + after the conditions have been fused. The second output tensor is the tensor + used for cross-attention or None if no cross attention inputs exist. + """ + B, T, _ = input.shape + + if 'offsets' in self._streaming_state: + first_step = False + offsets = self._streaming_state['offsets'] + else: + first_step = True + offsets = torch.zeros(input.shape[0], dtype=torch.long, device=input.device) + + assert set(conditions.keys()).issubset(set(self.cond2fuse.keys())), \ + f"given conditions contain unknown attributes for fuser, " \ + f"expected {self.cond2fuse.keys()}, got {conditions.keys()}" + cross_attention_output = None + for cond_type, (cond, cond_mask) in conditions.items(): + op = self.cond2fuse[cond_type] + if op == 'sum': + input += cond + elif op == 'input_interpolate': + cond = einops.rearrange(cond, "b t d -> b d t") + cond = F.interpolate(cond, size=input.shape[1]) + input += einops.rearrange(cond, "b d t -> b t d") + elif op == 'prepend': + if first_step: + input = torch.cat([cond, input], dim=1) + elif op == 'cross': + if cross_attention_output is not None: + cross_attention_output = torch.cat([cross_attention_output, cond], dim=1) + else: + cross_attention_output = cond + elif op == 'ignore': + continue + else: + raise ValueError(f"unknown op ({op})") + + if self.cross_attention_pos_emb and cross_attention_output is not None: + positions = torch.arange( + cross_attention_output.shape[1], + device=cross_attention_output.device + ).view(1, -1, 1) + pos_emb = create_sin_embedding(positions, cross_attention_output.shape[-1]) + cross_attention_output = cross_attention_output + self.cross_attention_pos_emb_scale * pos_emb + + if self._is_streaming: + self._streaming_state['offsets'] = offsets + T + + return input, cross_attention_output diff --git a/audiocraft/modules/conv.py b/audiocraft/modules/conv.py new file mode 100644 index 0000000..d115cbf --- /dev/null +++ b/audiocraft/modules/conv.py @@ -0,0 +1,243 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math +import typing as tp +import warnings + +import torch +from torch import nn +from torch.nn import functional as F +from torch.nn.utils import spectral_norm, weight_norm + + +CONV_NORMALIZATIONS = frozenset(['none', 'weight_norm', 'spectral_norm', + 'time_group_norm']) + + +def apply_parametrization_norm(module: nn.Module, norm: str = 'none'): + assert norm in CONV_NORMALIZATIONS + if norm == 'weight_norm': + return weight_norm(module) + elif norm == 'spectral_norm': + return spectral_norm(module) + else: + # We already check was in CONV_NORMALIZATION, so any other choice + # doesn't need reparametrization. + return module + + +def get_norm_module(module: nn.Module, causal: bool = False, norm: str = 'none', **norm_kwargs): + """Return the proper normalization module. If causal is True, this will ensure the returned + module is causal, or return an error if the normalization doesn't support causal evaluation. + """ + assert norm in CONV_NORMALIZATIONS + if norm == 'time_group_norm': + if causal: + raise ValueError("GroupNorm doesn't support causal evaluation.") + assert isinstance(module, nn.modules.conv._ConvNd) + return nn.GroupNorm(1, module.out_channels, **norm_kwargs) + else: + return nn.Identity() + + +def get_extra_padding_for_conv1d(x: torch.Tensor, kernel_size: int, stride: int, + padding_total: int = 0) -> int: + """See `pad_for_conv1d`.""" + length = x.shape[-1] + n_frames = (length - kernel_size + padding_total) / stride + 1 + ideal_length = (math.ceil(n_frames) - 1) * stride + (kernel_size - padding_total) + return ideal_length - length + + +def pad_for_conv1d(x: torch.Tensor, kernel_size: int, stride: int, padding_total: int = 0): + """Pad for a convolution to make sure that the last window is full. + Extra padding is added at the end. This is required to ensure that we can rebuild + an output of the same length, as otherwise, even with padding, some time steps + might get removed. + For instance, with total padding = 4, kernel size = 4, stride = 2: + 0 0 1 2 3 4 5 0 0 # (0s are padding) + 1 2 3 # (output frames of a convolution, last 0 is never used) + 0 0 1 2 3 4 5 0 # (output of tr. conv., but pos. 5 is going to get removed as padding) + 1 2 3 4 # once you removed padding, we are missing one time step ! + """ + extra_padding = get_extra_padding_for_conv1d(x, kernel_size, stride, padding_total) + return F.pad(x, (0, extra_padding)) + + +def pad1d(x: torch.Tensor, paddings: tp.Tuple[int, int], mode: str = 'constant', value: float = 0.): + """Tiny wrapper around F.pad, just to allow for reflect padding on small input. + If this is the case, we insert extra 0 padding to the right before the reflection happen. + """ + length = x.shape[-1] + padding_left, padding_right = paddings + assert padding_left >= 0 and padding_right >= 0, (padding_left, padding_right) + if mode == 'reflect': + max_pad = max(padding_left, padding_right) + extra_pad = 0 + if length <= max_pad: + extra_pad = max_pad - length + 1 + x = F.pad(x, (0, extra_pad)) + padded = F.pad(x, paddings, mode, value) + end = padded.shape[-1] - extra_pad + return padded[..., :end] + else: + return F.pad(x, paddings, mode, value) + + +def unpad1d(x: torch.Tensor, paddings: tp.Tuple[int, int]): + """Remove padding from x, handling properly zero padding. Only for 1d!""" + padding_left, padding_right = paddings + assert padding_left >= 0 and padding_right >= 0, (padding_left, padding_right) + assert (padding_left + padding_right) <= x.shape[-1] + end = x.shape[-1] - padding_right + return x[..., padding_left: end] + + +class NormConv1d(nn.Module): + """Wrapper around Conv1d and normalization applied to this conv + to provide a uniform interface across normalization approaches. + """ + def __init__(self, *args, causal: bool = False, norm: str = 'none', + norm_kwargs: tp.Dict[str, tp.Any] = {}, **kwargs): + super().__init__() + self.conv = apply_parametrization_norm(nn.Conv1d(*args, **kwargs), norm) + self.norm = get_norm_module(self.conv, causal, norm, **norm_kwargs) + self.norm_type = norm + + def forward(self, x): + x = self.conv(x) + x = self.norm(x) + return x + + +class NormConv2d(nn.Module): + """Wrapper around Conv2d and normalization applied to this conv + to provide a uniform interface across normalization approaches. + """ + def __init__(self, *args, norm: str = 'none', norm_kwargs: tp.Dict[str, tp.Any] = {}, **kwargs): + super().__init__() + self.conv = apply_parametrization_norm(nn.Conv2d(*args, **kwargs), norm) + self.norm = get_norm_module(self.conv, causal=False, norm=norm, **norm_kwargs) + self.norm_type = norm + + def forward(self, x): + x = self.conv(x) + x = self.norm(x) + return x + + +class NormConvTranspose1d(nn.Module): + """Wrapper around ConvTranspose1d and normalization applied to this conv + to provide a uniform interface across normalization approaches. + """ + def __init__(self, *args, causal: bool = False, norm: str = 'none', + norm_kwargs: tp.Dict[str, tp.Any] = {}, **kwargs): + super().__init__() + self.convtr = apply_parametrization_norm(nn.ConvTranspose1d(*args, **kwargs), norm) + self.norm = get_norm_module(self.convtr, causal, norm, **norm_kwargs) + self.norm_type = norm + + def forward(self, x): + x = self.convtr(x) + x = self.norm(x) + return x + + +class NormConvTranspose2d(nn.Module): + """Wrapper around ConvTranspose2d and normalization applied to this conv + to provide a uniform interface across normalization approaches. + """ + def __init__(self, *args, norm: str = 'none', norm_kwargs: tp.Dict[str, tp.Any] = {}, **kwargs): + super().__init__() + self.convtr = apply_parametrization_norm(nn.ConvTranspose2d(*args, **kwargs), norm) + self.norm = get_norm_module(self.convtr, causal=False, norm=norm, **norm_kwargs) + + def forward(self, x): + x = self.convtr(x) + x = self.norm(x) + return x + + +class StreamableConv1d(nn.Module): + """Conv1d with some builtin handling of asymmetric or causal padding + and normalization. + """ + def __init__(self, in_channels: int, out_channels: int, + kernel_size: int, stride: int = 1, dilation: int = 1, + groups: int = 1, bias: bool = True, causal: bool = False, + norm: str = 'none', norm_kwargs: tp.Dict[str, tp.Any] = {}, + pad_mode: str = 'reflect'): + super().__init__() + # warn user on unusual setup between dilation and stride + if stride > 1 and dilation > 1: + warnings.warn("StreamableConv1d has been initialized with stride > 1 and dilation > 1" + f" (kernel_size={kernel_size} stride={stride}, dilation={dilation}).") + self.conv = NormConv1d(in_channels, out_channels, kernel_size, stride, + dilation=dilation, groups=groups, bias=bias, causal=causal, + norm=norm, norm_kwargs=norm_kwargs) + self.causal = causal + self.pad_mode = pad_mode + + def forward(self, x): + B, C, T = x.shape + kernel_size = self.conv.conv.kernel_size[0] + stride = self.conv.conv.stride[0] + dilation = self.conv.conv.dilation[0] + kernel_size = (kernel_size - 1) * dilation + 1 # effective kernel size with dilations + padding_total = kernel_size - stride + extra_padding = get_extra_padding_for_conv1d(x, kernel_size, stride, padding_total) + if self.causal: + # Left padding for causal + x = pad1d(x, (padding_total, extra_padding), mode=self.pad_mode) + else: + # Asymmetric padding required for odd strides + padding_right = padding_total // 2 + padding_left = padding_total - padding_right + x = pad1d(x, (padding_left, padding_right + extra_padding), mode=self.pad_mode) + return self.conv(x) + + +class StreamableConvTranspose1d(nn.Module): + """ConvTranspose1d with some builtin handling of asymmetric or causal padding + and normalization. + """ + def __init__(self, in_channels: int, out_channels: int, + kernel_size: int, stride: int = 1, causal: bool = False, + norm: str = 'none', trim_right_ratio: float = 1., + norm_kwargs: tp.Dict[str, tp.Any] = {}): + super().__init__() + self.convtr = NormConvTranspose1d(in_channels, out_channels, kernel_size, stride, + causal=causal, norm=norm, norm_kwargs=norm_kwargs) + self.causal = causal + self.trim_right_ratio = trim_right_ratio + assert self.causal or self.trim_right_ratio == 1., \ + "`trim_right_ratio` != 1.0 only makes sense for causal convolutions" + assert self.trim_right_ratio >= 0. and self.trim_right_ratio <= 1. + + def forward(self, x): + kernel_size = self.convtr.convtr.kernel_size[0] + stride = self.convtr.convtr.stride[0] + padding_total = kernel_size - stride + + y = self.convtr(x) + + # We will only trim fixed padding. Extra padding from `pad_for_conv1d` would be + # removed at the very end, when keeping only the right length for the output, + # as removing it here would require also passing the length at the matching layer + # in the encoder. + if self.causal: + # Trim the padding on the right according to the specified ratio + # if trim_right_ratio = 1.0, trim everything from right + padding_right = math.ceil(padding_total * self.trim_right_ratio) + padding_left = padding_total - padding_right + y = unpad1d(y, (padding_left, padding_right)) + else: + # Asymmetric padding required for odd strides + padding_right = padding_total // 2 + padding_left = padding_total - padding_right + y = unpad1d(y, (padding_left, padding_right)) + return y diff --git a/audiocraft/modules/diffusion_schedule.py b/audiocraft/modules/diffusion_schedule.py new file mode 100644 index 0000000..74ca6e3 --- /dev/null +++ b/audiocraft/modules/diffusion_schedule.py @@ -0,0 +1,272 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Functions for Noise Schedule, defines diffusion process, reverse process and data processor. +""" + +from collections import namedtuple +import random +import typing as tp +import julius +import torch + +TrainingItem = namedtuple("TrainingItem", "noisy noise step") + + +def betas_from_alpha_bar(alpha_bar): + alphas = torch.cat([torch.Tensor([alpha_bar[0]]), alpha_bar[1:]/alpha_bar[:-1]]) + return 1 - alphas + + +class SampleProcessor(torch.nn.Module): + def project_sample(self, x: torch.Tensor): + """Project the original sample to the 'space' where the diffusion will happen.""" + return x + + def return_sample(self, z: torch.Tensor): + """Project back from diffusion space to the actual sample space.""" + return z + + +class MultiBandProcessor(SampleProcessor): + """ + MultiBand sample processor. The input audio is splitted across + frequency bands evenly distributed in mel-scale. + + Each band will be rescaled to match the power distribution + of Gaussian noise in that band, using online metrics + computed on the first few samples. + + Args: + n_bands (int): Number of mel-bands to split the signal over. + sample_rate (int): Sample rate of the audio. + num_samples (int): Number of samples to use to fit the rescaling + for each band. The processor won't be stable + until it has seen that many samples. + power_std (float or list/tensor): The rescaling factor computed to match the + power of Gaussian noise in each band is taken to + that power, i.e. `1.` means full correction of the energy + in each band, and values less than `1` means only partial + correction. Can be used to balance the relative importance + of low vs. high freq in typical audio signals. + """ + def __init__(self, n_bands: int = 8, sample_rate: float = 24_000, + num_samples: int = 10_000, power_std: tp.Union[float, tp.List[float], torch.Tensor] = 1.): + super().__init__() + self.n_bands = n_bands + self.split_bands = julius.SplitBands(sample_rate, n_bands=n_bands) + self.num_samples = num_samples + self.power_std = power_std + if isinstance(power_std, list): + assert len(power_std) == n_bands + power_std = torch.tensor(power_std) + self.register_buffer('counts', torch.zeros(1)) + self.register_buffer('sum_x', torch.zeros(n_bands)) + self.register_buffer('sum_x2', torch.zeros(n_bands)) + self.register_buffer('sum_target_x2', torch.zeros(n_bands)) + self.counts: torch.Tensor + self.sum_x: torch.Tensor + self.sum_x2: torch.Tensor + self.sum_target_x2: torch.Tensor + + @property + def mean(self): + mean = self.sum_x / self.counts + return mean + + @property + def std(self): + std = (self.sum_x2 / self.counts - self.mean**2).clamp(min=0).sqrt() + return std + + @property + def target_std(self): + target_std = self.sum_target_x2 / self.counts + return target_std + + def project_sample(self, x: torch.Tensor): + assert x.dim() == 3 + bands = self.split_bands(x) + if self.counts.item() < self.num_samples: + ref_bands = self.split_bands(torch.randn_like(x)) + self.counts += len(x) + self.sum_x += bands.mean(dim=(2, 3)).sum(dim=1) + self.sum_x2 += bands.pow(2).mean(dim=(2, 3)).sum(dim=1) + self.sum_target_x2 += ref_bands.pow(2).mean(dim=(2, 3)).sum(dim=1) + rescale = (self.target_std / self.std.clamp(min=1e-12)) ** self.power_std # same output size + bands = (bands - self.mean.view(-1, 1, 1, 1)) * rescale.view(-1, 1, 1, 1) + return bands.sum(dim=0) + + def return_sample(self, x: torch.Tensor): + assert x.dim() == 3 + bands = self.split_bands(x) + rescale = (self.std / self.target_std) ** self.power_std + bands = bands * rescale.view(-1, 1, 1, 1) + self.mean.view(-1, 1, 1, 1) + return bands.sum(dim=0) + + +class NoiseSchedule: + """Noise schedule for diffusion. + + Args: + beta_t0 (float): Variance of the first diffusion step. + beta_t1 (float): Variance of the last diffusion step. + beta_exp (float): Power schedule exponent + num_steps (int): Number of diffusion step. + variance (str): choice of the sigma value for the denoising eq. Choices: "beta" or "beta_tilde" + clip (float): clipping value for the denoising steps + rescale (float): rescaling value to avoid vanishing signals unused by default (i.e 1) + repartition (str): shape of the schedule only power schedule is supported + sample_processor (SampleProcessor): Module that normalize data to match better the gaussian distribution + noise_scale (float): Scaling factor for the noise + """ + def __init__(self, beta_t0: float = 1e-4, beta_t1: float = 0.02, num_steps: int = 1000, variance: str = 'beta', + clip: float = 5., rescale: float = 1., device='cuda', beta_exp: float = 1, + repartition: str = "power", alpha_sigmoid: dict = {}, n_bands: tp.Optional[int] = None, + sample_processor: SampleProcessor = SampleProcessor(), noise_scale: float = 1.0, **kwargs): + + self.beta_t0 = beta_t0 + self.beta_t1 = beta_t1 + self.variance = variance + self.num_steps = num_steps + self.clip = clip + self.sample_processor = sample_processor + self.rescale = rescale + self.n_bands = n_bands + self.noise_scale = noise_scale + assert n_bands is None + if repartition == "power": + self.betas = torch.linspace(beta_t0 ** (1 / beta_exp), beta_t1 ** (1 / beta_exp), num_steps, + device=device, dtype=torch.float) ** beta_exp + else: + raise RuntimeError('Not implemented') + self.rng = random.Random(1234) + + def get_beta(self, step: tp.Union[int, torch.Tensor]): + if self.n_bands is None: + return self.betas[step] + else: + return self.betas[:, step] # [n_bands, len(step)] + + def get_initial_noise(self, x: torch.Tensor): + if self.n_bands is None: + return torch.randn_like(x) + return torch.randn((x.size(0), self.n_bands, x.size(2))) + + def get_alpha_bar(self, step: tp.Optional[tp.Union[int, torch.Tensor]] = None) -> torch.Tensor: + """Return 'alpha_bar', either for a given step, or as a tensor with its value for each step.""" + if step is None: + return (1 - self.betas).cumprod(dim=-1) # works for simgle and multi bands + if type(step) is int: + return (1 - self.betas[:step + 1]).prod() + else: + return (1 - self.betas).cumprod(dim=0)[step].view(-1, 1, 1) + + def get_training_item(self, x: torch.Tensor, tensor_step: bool = False) -> TrainingItem: + """Create a noisy data item for diffusion model training: + + Args: + x (torch.Tensor): clean audio data torch.tensor(bs, 1, T) + tensor_step (bool): If tensor_step = false, only one step t is sample, + the whole batch is diffused to the same step and t is int. + If tensor_step = true, t is a tensor of size (x.size(0),) + every element of the batch is diffused to a independently sampled. + """ + step: tp.Union[int, torch.Tensor] + if tensor_step: + bs = x.size(0) + step = torch.randint(0, self.num_steps, size=(bs,), device=x.device) + else: + step = self.rng.randrange(self.num_steps) + alpha_bar = self.get_alpha_bar(step) # [batch_size, n_bands, 1] + + x = self.sample_processor.project_sample(x) + noise = torch.randn_like(x) + noisy = (alpha_bar.sqrt() / self.rescale) * x + (1 - alpha_bar).sqrt() * noise * self.noise_scale + return TrainingItem(noisy, noise, step) + + def generate(self, model: torch.nn.Module, initial: tp.Optional[torch.Tensor] = None, + condition: tp.Optional[torch.Tensor] = None, return_list: bool = False): + """Full ddpm reverse process. + + Args: + model (nn.Module): Diffusion model. + initial (tensor): Initial Noise. + condition (tensor): Input conditionning Tensor (e.g. encodec compressed representation). + return_list (bool): Whether to return the whole process or only the sampled point. + """ + alpha_bar = self.get_alpha_bar(step=self.num_steps - 1) + current = initial + iterates = [initial] + for step in range(self.num_steps)[::-1]: + with torch.no_grad(): + estimate = model(current, step, condition=condition).sample + alpha = 1 - self.betas[step] + previous = (current - (1 - alpha) / (1 - alpha_bar).sqrt() * estimate) / alpha.sqrt() + previous_alpha_bar = self.get_alpha_bar(step=step - 1) + if step == 0: + sigma2 = 0 + elif self.variance == 'beta': + sigma2 = 1 - alpha + elif self.variance == 'beta_tilde': + sigma2 = (1 - previous_alpha_bar) / (1 - alpha_bar) * (1 - alpha) + elif self.variance == 'none': + sigma2 = 0 + else: + raise ValueError(f'Invalid variance type {self.variance}') + + if sigma2 > 0: + previous += sigma2**0.5 * torch.randn_like(previous) * self.noise_scale + if self.clip: + previous = previous.clamp(-self.clip, self.clip) + current = previous + alpha_bar = previous_alpha_bar + if step == 0: + previous *= self.rescale + if return_list: + iterates.append(previous.cpu()) + + if return_list: + return iterates + else: + return self.sample_processor.return_sample(previous) + + def generate_subsampled(self, model: torch.nn.Module, initial: torch.Tensor, step_list: tp.Optional[list] = None, + condition: tp.Optional[torch.Tensor] = None, return_list: bool = False): + """Reverse process that only goes through Markov chain states in step_list.""" + if step_list is None: + step_list = list(range(1000))[::-50] + [0] + alpha_bar = self.get_alpha_bar(step=self.num_steps - 1) + alpha_bars_subsampled = (1 - self.betas).cumprod(dim=0)[list(reversed(step_list))].cpu() + betas_subsampled = betas_from_alpha_bar(alpha_bars_subsampled) + current = initial * self.noise_scale + iterates = [current] + for idx, step in enumerate(step_list[:-1]): + with torch.no_grad(): + estimate = model(current, step, condition=condition).sample * self.noise_scale + alpha = 1 - betas_subsampled[-1 - idx] + previous = (current - (1 - alpha) / (1 - alpha_bar).sqrt() * estimate) / alpha.sqrt() + previous_alpha_bar = self.get_alpha_bar(step_list[idx + 1]) + if step == step_list[-2]: + sigma2 = 0 + previous_alpha_bar = torch.tensor(1.0) + else: + sigma2 = (1 - previous_alpha_bar) / (1 - alpha_bar) * (1 - alpha) + if sigma2 > 0: + previous += sigma2**0.5 * torch.randn_like(previous) * self.noise_scale + if self.clip: + previous = previous.clamp(-self.clip, self.clip) + current = previous + alpha_bar = previous_alpha_bar + if step == 0: + previous *= self.rescale + if return_list: + iterates.append(previous.cpu()) + if return_list: + return iterates + else: + return self.sample_processor.return_sample(previous) diff --git a/audiocraft/modules/jasco_conditioners.py b/audiocraft/modules/jasco_conditioners.py new file mode 100644 index 0000000..ae41bfc --- /dev/null +++ b/audiocraft/modules/jasco_conditioners.py @@ -0,0 +1,300 @@ +import torch +import typing as tp +from itertools import chain +from pathlib import Path +from torch import nn +from .conditioners import (ConditioningAttributes, BaseConditioner, ConditionType, + ConditioningProvider, JascoCondConst, + WaveformConditioner, WavCondition, SymbolicCondition) +from ..data.audio import audio_read +from ..data.audio_utils import convert_audio +from ..utils.autocast import TorchAutocast +from ..utils.cache import EmbeddingCache + + +class MelodyConditioner(BaseConditioner): + """ + A conditioner that handles melody conditioning from pre-computed salience matrix. + Attributes: + card (int): The cardinality of the melody matrix. + out_dim (int): The dimensionality of the output projection. + device (Union[torch.device, str]): The device on which the embeddings are stored. + """ + def __init__(self, card: int, out_dim: int, device: tp.Union[torch.device, str] = 'cpu', **kwargs): + super().__init__(dim=card, output_dim=out_dim) + self.device = device + + def tokenize(self, x: SymbolicCondition) -> SymbolicCondition: + return SymbolicCondition(melody=x.melody.to(self.device)) # type: ignore + + def forward(self, x: SymbolicCondition) -> ConditionType: + embeds = self.output_proj(x.melody.permute(0, 2, 1)) # type: ignore + mask = torch.ones_like(embeds[..., 0]) + return embeds, mask + + +class ChordsEmbConditioner(BaseConditioner): + """ + A conditioner that embeds chord symbols into a continuous vector space. + Attributes: + card (int): The cardinality of the chord vocabulary. + out_dim (int): The dimensionality of the output embeddings. + device (Union[torch.device, str]): The device on which the embeddings are stored. + """ + def __init__(self, card: int, out_dim: int, device: tp.Union[torch.device, str] = 'cpu', **kwargs): + vocab_size = card + 1 # card + 1 - for null chord used during dropout + super().__init__(dim=vocab_size, output_dim=-1) # out_dim=-1 to avoid another projection + self.emb = nn.Embedding(vocab_size, out_dim, device=device) + self.device = device + + def tokenize(self, x: SymbolicCondition) -> SymbolicCondition: + return SymbolicCondition(frame_chords=x.frame_chords.to(self.device)) # type: ignore + + def forward(self, x: SymbolicCondition) -> ConditionType: + embeds = self.emb(x.frame_chords) + mask = torch.ones_like(embeds[..., 0]) + return embeds, mask + + +class DrumsConditioner(WaveformConditioner): + def __init__(self, out_dim: int, sample_rate: int, blurring_factor: int = 3, + cache_path: tp.Optional[tp.Union[str, Path]] = None, + compression_model_latent_dim: int = 128, + compression_model_framerate: float = 50, + segment_duration: float = 10.0, + device: tp.Union[torch.device, str] = 'cpu', + **kwargs): + """Drum condition conditioner + + Args: + out_dim (int): _description_ + sample_rate (int): _description_ + blurring_factor (int, optional): _description_. Defaults to 3. + cache_path (tp.Optional[tp.Union[str, Path]], optional): path to precomputed cache. Defaults to None. + compression_model_latent_dim (int, optional): latent dimensino. Defaults to 128. + compression_model_framerate (float, optional): frame rate of the representation model. Defaults to 50. + segment_duration (float, optional): duration in sec for each audio segment. Defaults to 10.0. + device (tp.Union[torch.device, str], optional): device. Defaults to 'cpu'. + """ + from demucs import pretrained + self.sample_rate = sample_rate + self.__dict__['demucs'] = pretrained.get_model('htdemucs').to(device) + stem_sources: list = self.demucs.sources # type: ignore + self.stem_idx = stem_sources.index('drums') + self.compression_model = None + self.latent_dim = compression_model_latent_dim + super().__init__(dim=self.latent_dim, output_dim=out_dim, device=device) + self.autocast = TorchAutocast(enabled=device != 'cpu', device_type=self.device, dtype=torch.float32) + self._use_masking = False + self.blurring_factor = blurring_factor + self.seq_len = int(segment_duration * compression_model_framerate) + self.cache = None # If you wish to train with EmbeddingCache, call self.create_embedding_cache(cache_path) + + def create_embedding_cache(self, cache_path): + if cache_path is not None: + self.cache = EmbeddingCache(Path(cache_path) / 'wav', self.device, + compute_embed_fn=self._calc_coarse_drum_codes_for_cache, + extract_embed_fn=self._load_drum_codes_chunk) + + @torch.no_grad() + def _get_drums_stem(self, wav: torch.Tensor, sample_rate: int) -> torch.Tensor: + """Get parts of the wav that holds the drums, extracting the main stems from the wav.""" + from demucs.apply import apply_model + from demucs.audio import convert_audio + with self.autocast: + wav = convert_audio( + wav, sample_rate, self.demucs.samplerate, self.demucs.audio_channels) # type: ignore + stems = apply_model(self.demucs, wav, device=self.device) + drum_stem = stems[:, self.stem_idx] # extract relevant stems for drums conditioning + return convert_audio(drum_stem, self.demucs.samplerate, self.sample_rate, 1) # type: ignore + + def _temporal_blur(self, z: torch.Tensor): + # z: (B, T, C) + B, T, C = z.shape + if T % self.blurring_factor != 0: + # pad with reflect for T % self.temporal_blurring on the right in dim=1 + pad_val = self.blurring_factor - T % self.blurring_factor + z = torch.nn.functional.pad(z, (0, 0, 0, pad_val), mode='reflect') + z = z.reshape(B, -1, self.blurring_factor, C).sum(dim=2) / self.blurring_factor + z = z.unsqueeze(2).repeat(1, 1, self.blurring_factor, 1).reshape(B, -1, C) + z = z[:, :T] + assert z.shape == (B, T, C) + return z + + @torch.no_grad() + def _extract_coarse_drum_codes(self, wav: torch.Tensor, sample_rate: int) -> torch.Tensor: + assert self.compression_model is not None + + # stem separation of drums + drums = self._get_drums_stem(wav, sample_rate) + + # continuous encoding with compression model + latents = self.compression_model.model.encoder(drums) + + # quantization to coarsest codebook + coarsest_quantizer = self.compression_model.model.quantizer.layers[0] + drums = coarsest_quantizer.encode(latents).to(torch.int16) + return drums + + @torch.no_grad() + def _calc_coarse_drum_codes_for_cache(self, path: tp.Union[str, Path], + x: WavCondition, idx: int, + max_duration_to_process: float = 600) -> torch.Tensor: + """Extract blurred drum latents from the whole audio waveform at the given path.""" + wav, sr = audio_read(path) + wav = wav[None].to(self.device) + wav = convert_audio(wav, sr, self.sample_rate, to_channels=1) + + max_frames_to_process = int(max_duration_to_process * self.sample_rate) + if wav.shape[-1] > max_frames_to_process: + # process very long tracks in chunks + start = 0 + codes = [] + while start < wav.shape[-1] - 1: + wav_chunk = wav[..., start: start + max_frames_to_process] + codes.append(self._extract_coarse_drum_codes(wav_chunk, self.sample_rate)[0]) + start += max_frames_to_process + return torch.cat(codes) + + return self._extract_coarse_drum_codes(wav, self.sample_rate)[0] + + def _load_drum_codes_chunk(self, full_coarse_drum_codes: torch.Tensor, x: WavCondition, idx: int) -> torch.Tensor: + """Extract a chunk of coarse drum codes from the full coarse drum codes derived from the full waveform.""" + wav_length = x.wav.shape[-1] + seek_time = x.seek_time[idx] + assert seek_time is not None, ( + "WavCondition seek_time is required " + "when extracting chunks from pre-computed drum codes.") + assert self.compression_model is not None + frame_rate = self.compression_model.frame_rate + target_length = int(frame_rate * wav_length / self.sample_rate) + target_length = max(target_length, self.seq_len) + index = int(frame_rate * seek_time) + out = full_coarse_drum_codes[index: index + target_length] + # pad + out = torch.cat((out, torch.zeros(target_length - out.shape[0], dtype=out.dtype, device=out.device))) + return out.to(self.device) + + @torch.no_grad() + def _get_wav_embedding(self, x: WavCondition) -> torch.Tensor: + bs = x.wav.shape[0] + if x.wav.shape[-1] <= 1: + # null condition + return torch.zeros((bs, self.seq_len, self.latent_dim), device=x.wav.device, dtype=x.wav.dtype) + + # extract coarse drum codes + no_undefined_paths = all(p is not None for p in x.path) + no_nullified_cond = x.wav.shape[-1] > 1 + if self.cache is not None and no_undefined_paths and no_nullified_cond: + paths = [Path(p) for p in x.path if p is not None] + codes = self.cache.get_embed_from_cache(paths, x) + else: + assert all(sr == x.sample_rate[0] for sr in x.sample_rate), "All sample rates in batch should be equal." + codes = self._extract_coarse_drum_codes(x.wav, x.sample_rate[0]) + + assert self.compression_model is not None + # decode back to the continuous representation of compression model + codes = codes.unsqueeze(1).permute(1, 0, 2) # (B, T) -> (1, B, T) + codes = codes.to(torch.int64) + latents = self.compression_model.model.quantizer.decode(codes) + + latents = latents.permute(0, 2, 1) # [B, C, T] -> [B, T, C] + + # temporal blurring + return self._temporal_blur(latents) + + def tokenize(self, x: WavCondition) -> WavCondition: + """Apply WavConditioner tokenization and populate cache if needed.""" + x = super().tokenize(x) + no_undefined_paths = all(p is not None for p in x.path) + if self.cache is not None and no_undefined_paths: + paths = [Path(p) for p in x.path if p is not None] + self.cache.populate_embed_cache(paths, x) + return x + + +class JascoConditioningProvider(ConditioningProvider): + """ + A cond-provider that manages and tokenizes various types of conditioning attributes for Jasco models. + Attributes: + chords_card (int): The cardinality of the chord vocabulary. + sequence_length (int): The length of the sequence for padding purposes. + melody_dim (int): The dimensionality of the melody matrix. + """ + def __init__(self, *args, + chords_card: int = 194, + sequence_length: int = 500, + melody_dim: int = 53, **kwargs): + self.null_chord = chords_card + self.sequence_len = sequence_length + self.melody_dim = melody_dim + super().__init__(*args, **kwargs) + + def tokenize(self, inputs: tp.List[ConditioningAttributes]) -> tp.Dict[str, tp.Any]: + """Match attributes/wavs with existing conditioners in self, and compute tokenize them accordingly. + This should be called before starting any real GPU work to avoid synchronization points. + This will return a dict matching conditioner names to their arbitrary tokenized representations. + + Args: + inputs (list[ConditioningAttributes]): List of ConditioningAttributes objects containing + text and wav conditions. + """ + assert all([isinstance(x, ConditioningAttributes) for x in inputs]), ( + "Got unexpected types input for conditioner! should be tp.List[ConditioningAttributes]", + f" but types were {set([type(x) for x in inputs])}" + ) + + output = {} + text = self._collate_text(inputs) + wavs = self._collate_wavs(inputs) + + symbolic = self._collate_symbolic(inputs, self.conditioners.keys()) + + assert set(text.keys() | wavs.keys() | symbolic.keys()).issubset(set(self.conditioners.keys())), ( + f"Got an unexpected attribute! Expected {self.conditioners.keys()}, ", + f"got {text.keys(), wavs.keys(), symbolic.keys()}" + ) + + for attribute, batch in chain(text.items(), wavs.items(), symbolic.items()): + output[attribute] = self.conditioners[attribute].tokenize(batch) + return output + + def _collate_symbolic(self, samples: tp.List[ConditioningAttributes], + conditioner_keys: tp.Set) -> tp.Dict[str, SymbolicCondition]: + output = {} + + # collate if symbolic cond exists + if any(x in conditioner_keys for x in JascoCondConst.SYM.value): + + for s in samples: + # hydrate with null chord if chords not exist - for inference support + if (s.symbolic == {} or + s.symbolic[JascoCondConst.CRD.value].frame_chords is None or + s.symbolic[JascoCondConst.CRD.value].frame_chords.shape[-1] <= 1): # type: ignore + # no chords conditioning - fill with null chord token + s.symbolic[JascoCondConst.CRD.value] = SymbolicCondition( + frame_chords=torch.ones(self.sequence_len, dtype=torch.int32) * self.null_chord) + + if (s.symbolic == {} or + s.symbolic[JascoCondConst.MLD.value].melody is None or + s.symbolic[JascoCondConst.MLD.value].melody.shape[-1] <= 1): # type: ignore + # no chords conditioning - fill with null chord token + s.symbolic[JascoCondConst.MLD.value] = SymbolicCondition( + melody=torch.zeros((self.melody_dim, self.sequence_len))) + + if JascoCondConst.CRD.value in conditioner_keys: + # pad to max + max_seq_len = max( + [s.symbolic[JascoCondConst.CRD.value].frame_chords.shape[-1] for s in samples]) # type: ignore + padded_chords = [ + torch.cat((x.symbolic[JascoCondConst.CRD.value].frame_chords, # type: ignore + torch.ones(max_seq_len - + x.symbolic[JascoCondConst.CRD.value].frame_chords.shape[-1], # type: ignore + dtype=torch.int32) * self.null_chord)) + for x in samples + ] + output[JascoCondConst.CRD.value] = SymbolicCondition(frame_chords=torch.stack(padded_chords)) + if JascoCondConst.MLD.value in conditioner_keys: + melodies = torch.stack([x.symbolic[JascoCondConst.MLD.value].melody for x in samples]) # type: ignore + output[JascoCondConst.MLD.value] = SymbolicCondition(melody=melodies) + return output diff --git a/audiocraft/modules/lstm.py b/audiocraft/modules/lstm.py new file mode 100644 index 0000000..c086617 --- /dev/null +++ b/audiocraft/modules/lstm.py @@ -0,0 +1,25 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from torch import nn + + +class StreamableLSTM(nn.Module): + """LSTM without worrying about the hidden state, nor the layout of the data. + Expects input as convolutional layout. + """ + def __init__(self, dimension: int, num_layers: int = 2, skip: bool = True): + super().__init__() + self.skip = skip + self.lstm = nn.LSTM(dimension, dimension, num_layers) + + def forward(self, x): + x = x.permute(2, 0, 1) + y, _ = self.lstm(x) + if self.skip: + y = y + x + y = y.permute(1, 2, 0) + return y diff --git a/audiocraft/modules/rope.py b/audiocraft/modules/rope.py new file mode 100644 index 0000000..c12cee0 --- /dev/null +++ b/audiocraft/modules/rope.py @@ -0,0 +1,125 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +from torch import nn +import torch + + +class XPos(nn.Module): + """Length-extrapolatable positional embedding (xPos) from [Sun et al 2022](https://arxiv.org/abs/2212.10554v1). + This applies an exponential decay to the RoPE rotation matrix. + + Args: + dim (int): Embedding dimension. + smoothing (float): Smoothing factor applied to the decay rates. + base_scale (int): Base decay rate, given in terms of scaling time. + device (torch.device, optional): Device on which to initialize the module. + dtype (torch.dtype): dtype to use to generate the embedding. + """ + def __init__(self, dim: int, smoothing: float = 0.4, base_scale: int = 512, + device=None, dtype: torch.dtype = torch.float32): + super().__init__() + assert dim % 2 == 0 + assert dtype in [torch.float64, torch.float32] + self.dtype = dtype + self.base_scale = base_scale + + half_dim = dim // 2 + adim = torch.arange(half_dim, device=device, dtype=dtype) + decay_rates = (adim / half_dim + smoothing) / (1.0 + smoothing) + self.register_buffer("decay_rates", decay_rates) + self.decay: tp.Optional[torch.Tensor] = None + + def get_decay(self, start: int, end: int): + """Create complex decay tensor, cache values for fast computation.""" + if self.decay is None or end > self.decay.shape[0]: + assert isinstance(self.decay_rates, torch.Tensor) # Satisfy type checker. + idx = torch.arange(end, device=self.decay_rates.device, dtype=self.dtype) + power = idx / self.base_scale + scale = self.decay_rates ** power.unsqueeze(-1) + self.decay = torch.polar(scale, torch.zeros_like(scale)) + return self.decay[start:end] # [T, C/2] + + +class RotaryEmbedding(nn.Module): + """Rotary positional embedding (RoPE) from [Su et al 2022](https://arxiv.org/abs/2104.09864). + + Args: + dim (int): Embedding dimension (twice the number of frequencies). + max_period (float): Maximum period of the rotation frequencies. + xpos (bool): Use xPos, applies an exponential decay to rotation matrix. + scale (float): Scale of positional embedding, set to 0 to deactivate. + device (torch.device, optional): Device on which to initialize the module. + dtype (torch.dtype): dtype to use to generate the embedding. + """ + def __init__(self, dim: int, max_period: float = 10000.0, xpos: bool = False, + scale: float = 1.0, device=None, dtype: torch.dtype = torch.float32): + super().__init__() + assert dim % 2 == 0 + self.scale = scale + assert dtype in [torch.float64, torch.float32] + self.dtype = dtype + + adim = torch.arange(0, dim, 2, device=device, dtype=dtype)[: (dim // 2)] + frequencies = 1.0 / (max_period ** (adim / dim)) + self.register_buffer("frequencies", frequencies) + self.rotation: tp.Optional[torch.Tensor] = None + + self.xpos = XPos(dim, device=device, dtype=dtype) if xpos else None + + def get_rotation(self, start: int, end: int): + """Create complex rotation tensor, cache values for fast computation.""" + if self.rotation is None or end > self.rotation.shape[0]: + assert isinstance(self.frequencies, torch.Tensor) # Satisfy type checker. + idx = torch.arange(end, device=self.frequencies.device, dtype=self.dtype) + angles = torch.outer(idx, self.frequencies) + self.rotation = torch.polar(torch.ones_like(angles), angles) + return self.rotation[start:end] + + def rotate(self, x: torch.Tensor, start: int = 0, time_dim: int = 1, invert_decay: bool = False): + """Apply rope rotation to query or key tensor.""" + T = x.shape[time_dim] + target_shape = [1] * x.dim() + target_shape[time_dim] = T + target_shape[-1] = -1 + rotation = self.get_rotation(start, start + T).view(target_shape) + + if self.xpos: + decay = self.xpos.get_decay(start, start + T).view(target_shape) + else: + decay = 1.0 + + if invert_decay: + decay = decay ** -1 + + x_complex = torch.view_as_complex(x.to(self.dtype).reshape(*x.shape[:-1], -1, 2)) + scaled_rotation = (rotation * decay) * self.scale + (1.0 - self.scale) + x_out = torch.view_as_real(x_complex * scaled_rotation).view_as(x) + + return x_out.type_as(x) + + def rotate_qk(self, query: torch.Tensor, key: torch.Tensor, start: int = 0, time_dim: int = 1): + """ Apply rope rotation to both query and key tensors. + Supports streaming mode, in which query and key are not expected to have the same shape. + In streaming mode, key will be of length [P + C] with P the cached past timesteps, but + query will be [C] (typically C == 1). + + Args: + query (torch.Tensor): Query to rotate. + key (torch.Tensor): Key to rotate. + start (int): Start index of the sequence for time offset. + time_dim (int): which dimension represent the time steps. + """ + query_timesteps = query.shape[time_dim] + key_timesteps = key.shape[time_dim] + streaming_offset = key_timesteps - query_timesteps + + query_out = self.rotate(query, start + streaming_offset, time_dim) + key_out = self.rotate(key, start, time_dim, invert_decay=True) + + return query_out, key_out diff --git a/audiocraft/modules/seanet.py b/audiocraft/modules/seanet.py new file mode 100644 index 0000000..3e5998e --- /dev/null +++ b/audiocraft/modules/seanet.py @@ -0,0 +1,258 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import numpy as np +import torch.nn as nn + +from .conv import StreamableConv1d, StreamableConvTranspose1d +from .lstm import StreamableLSTM + + +class SEANetResnetBlock(nn.Module): + """Residual block from SEANet model. + + Args: + dim (int): Dimension of the input/output. + kernel_sizes (list): List of kernel sizes for the convolutions. + dilations (list): List of dilations for the convolutions. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + norm (str): Normalization method. + norm_params (dict): Parameters to provide to the underlying normalization used along with the convolution. + causal (bool): Whether to use fully causal convolution. + pad_mode (str): Padding mode for the convolutions. + compress (int): Reduced dimensionality in residual branches (from Demucs v3). + true_skip (bool): Whether to use true skip connection or a simple + (streamable) convolution as the skip connection. + """ + def __init__(self, dim: int, kernel_sizes: tp.List[int] = [3, 1], dilations: tp.List[int] = [1, 1], + activation: str = 'ELU', activation_params: dict = {'alpha': 1.0}, + norm: str = 'none', norm_params: tp.Dict[str, tp.Any] = {}, causal: bool = False, + pad_mode: str = 'reflect', compress: int = 2, true_skip: bool = True): + super().__init__() + assert len(kernel_sizes) == len(dilations), 'Number of kernel sizes should match number of dilations' + act = getattr(nn, activation) + hidden = dim // compress + block = [] + for i, (kernel_size, dilation) in enumerate(zip(kernel_sizes, dilations)): + in_chs = dim if i == 0 else hidden + out_chs = dim if i == len(kernel_sizes) - 1 else hidden + block += [ + act(**activation_params), + StreamableConv1d(in_chs, out_chs, kernel_size=kernel_size, dilation=dilation, + norm=norm, norm_kwargs=norm_params, + causal=causal, pad_mode=pad_mode), + ] + self.block = nn.Sequential(*block) + self.shortcut: nn.Module + if true_skip: + self.shortcut = nn.Identity() + else: + self.shortcut = StreamableConv1d(dim, dim, kernel_size=1, norm=norm, norm_kwargs=norm_params, + causal=causal, pad_mode=pad_mode) + + def forward(self, x): + return self.shortcut(x) + self.block(x) + + +class SEANetEncoder(nn.Module): + """SEANet encoder. + + Args: + channels (int): Audio channels. + dimension (int): Intermediate representation dimension. + n_filters (int): Base width for the model. + n_residual_layers (int): nb of residual layers. + ratios (Sequence[int]): kernel size and stride ratios. The encoder uses downsampling ratios instead of + upsampling ratios, hence it will use the ratios in the reverse order to the ones specified here + that must match the decoder order. We use the decoder order as some models may only employ the decoder. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + norm (str): Normalization method. + norm_params (dict): Parameters to provide to the underlying normalization used along with the convolution. + kernel_size (int): Kernel size for the initial convolution. + last_kernel_size (int): Kernel size for the initial convolution. + residual_kernel_size (int): Kernel size for the residual layers. + dilation_base (int): How much to increase the dilation with each layer. + causal (bool): Whether to use fully causal convolution. + pad_mode (str): Padding mode for the convolutions. + true_skip (bool): Whether to use true skip connection or a simple + (streamable) convolution as the skip connection in the residual network blocks. + compress (int): Reduced dimensionality in residual branches (from Demucs v3). + lstm (int): Number of LSTM layers at the end of the encoder. + disable_norm_outer_blocks (int): Number of blocks for which we don't apply norm. + For the encoder, it corresponds to the N first blocks. + """ + def __init__(self, channels: int = 1, dimension: int = 128, n_filters: int = 32, n_residual_layers: int = 3, + ratios: tp.List[int] = [8, 5, 4, 2], activation: str = 'ELU', activation_params: dict = {'alpha': 1.0}, + norm: str = 'none', norm_params: tp.Dict[str, tp.Any] = {}, kernel_size: int = 7, + last_kernel_size: int = 7, residual_kernel_size: int = 3, dilation_base: int = 2, causal: bool = False, + pad_mode: str = 'reflect', true_skip: bool = True, compress: int = 2, lstm: int = 0, + disable_norm_outer_blocks: int = 0): + super().__init__() + self.channels = channels + self.dimension = dimension + self.n_filters = n_filters + self.ratios = list(reversed(ratios)) + del ratios + self.n_residual_layers = n_residual_layers + self.hop_length = np.prod(self.ratios) + self.n_blocks = len(self.ratios) + 2 # first and last conv + residual blocks + self.disable_norm_outer_blocks = disable_norm_outer_blocks + assert self.disable_norm_outer_blocks >= 0 and self.disable_norm_outer_blocks <= self.n_blocks, \ + "Number of blocks for which to disable norm is invalid." \ + "It should be lower or equal to the actual number of blocks in the network and greater or equal to 0." + + act = getattr(nn, activation) + mult = 1 + model: tp.List[nn.Module] = [ + StreamableConv1d(channels, mult * n_filters, kernel_size, + norm='none' if self.disable_norm_outer_blocks >= 1 else norm, + norm_kwargs=norm_params, causal=causal, pad_mode=pad_mode) + ] + # Downsample to raw audio scale + for i, ratio in enumerate(self.ratios): + block_norm = 'none' if self.disable_norm_outer_blocks >= i + 2 else norm + # Add residual layers + for j in range(n_residual_layers): + model += [ + SEANetResnetBlock(mult * n_filters, kernel_sizes=[residual_kernel_size, 1], + dilations=[dilation_base ** j, 1], + norm=block_norm, norm_params=norm_params, + activation=activation, activation_params=activation_params, + causal=causal, pad_mode=pad_mode, compress=compress, true_skip=true_skip)] + + # Add downsampling layers + model += [ + act(**activation_params), + StreamableConv1d(mult * n_filters, mult * n_filters * 2, + kernel_size=ratio * 2, stride=ratio, + norm=block_norm, norm_kwargs=norm_params, + causal=causal, pad_mode=pad_mode), + ] + mult *= 2 + + if lstm: + model += [StreamableLSTM(mult * n_filters, num_layers=lstm)] + + model += [ + act(**activation_params), + StreamableConv1d(mult * n_filters, dimension, last_kernel_size, + norm='none' if self.disable_norm_outer_blocks == self.n_blocks else norm, + norm_kwargs=norm_params, causal=causal, pad_mode=pad_mode) + ] + + self.model = nn.Sequential(*model) + + def forward(self, x): + return self.model(x) + + +class SEANetDecoder(nn.Module): + """SEANet decoder. + + Args: + channels (int): Audio channels. + dimension (int): Intermediate representation dimension. + n_filters (int): Base width for the model. + n_residual_layers (int): nb of residual layers. + ratios (Sequence[int]): kernel size and stride ratios. + activation (str): Activation function. + activation_params (dict): Parameters to provide to the activation function. + final_activation (str): Final activation function after all convolutions. + final_activation_params (dict): Parameters to provide to the activation function. + norm (str): Normalization method. + norm_params (dict): Parameters to provide to the underlying normalization used along with the convolution. + kernel_size (int): Kernel size for the initial convolution. + last_kernel_size (int): Kernel size for the initial convolution. + residual_kernel_size (int): Kernel size for the residual layers. + dilation_base (int): How much to increase the dilation with each layer. + causal (bool): Whether to use fully causal convolution. + pad_mode (str): Padding mode for the convolutions. + true_skip (bool): Whether to use true skip connection or a simple. + (streamable) convolution as the skip connection in the residual network blocks. + compress (int): Reduced dimensionality in residual branches (from Demucs v3). + lstm (int): Number of LSTM layers at the end of the encoder. + disable_norm_outer_blocks (int): Number of blocks for which we don't apply norm. + For the decoder, it corresponds to the N last blocks. + trim_right_ratio (float): Ratio for trimming at the right of the transposed convolution under the causal setup. + If equal to 1.0, it means that all the trimming is done at the right. + """ + def __init__(self, channels: int = 1, dimension: int = 128, n_filters: int = 32, n_residual_layers: int = 3, + ratios: tp.List[int] = [8, 5, 4, 2], activation: str = 'ELU', activation_params: dict = {'alpha': 1.0}, + final_activation: tp.Optional[str] = None, final_activation_params: tp.Optional[dict] = None, + norm: str = 'none', norm_params: tp.Dict[str, tp.Any] = {}, kernel_size: int = 7, + last_kernel_size: int = 7, residual_kernel_size: int = 3, dilation_base: int = 2, causal: bool = False, + pad_mode: str = 'reflect', true_skip: bool = True, compress: int = 2, lstm: int = 0, + disable_norm_outer_blocks: int = 0, trim_right_ratio: float = 1.0): + super().__init__() + self.dimension = dimension + self.channels = channels + self.n_filters = n_filters + self.ratios = ratios + del ratios + self.n_residual_layers = n_residual_layers + self.hop_length = np.prod(self.ratios) + self.n_blocks = len(self.ratios) + 2 # first and last conv + residual blocks + self.disable_norm_outer_blocks = disable_norm_outer_blocks + assert self.disable_norm_outer_blocks >= 0 and self.disable_norm_outer_blocks <= self.n_blocks, \ + "Number of blocks for which to disable norm is invalid." \ + "It should be lower or equal to the actual number of blocks in the network and greater or equal to 0." + + act = getattr(nn, activation) + mult = int(2 ** len(self.ratios)) + model: tp.List[nn.Module] = [ + StreamableConv1d(dimension, mult * n_filters, kernel_size, + norm='none' if self.disable_norm_outer_blocks == self.n_blocks else norm, + norm_kwargs=norm_params, causal=causal, pad_mode=pad_mode) + ] + + if lstm: + model += [StreamableLSTM(mult * n_filters, num_layers=lstm)] + + # Upsample to raw audio scale + for i, ratio in enumerate(self.ratios): + block_norm = 'none' if self.disable_norm_outer_blocks >= self.n_blocks - (i + 1) else norm + # Add upsampling layers + model += [ + act(**activation_params), + StreamableConvTranspose1d(mult * n_filters, mult * n_filters // 2, + kernel_size=ratio * 2, stride=ratio, + norm=block_norm, norm_kwargs=norm_params, + causal=causal, trim_right_ratio=trim_right_ratio), + ] + # Add residual layers + for j in range(n_residual_layers): + model += [ + SEANetResnetBlock(mult * n_filters // 2, kernel_sizes=[residual_kernel_size, 1], + dilations=[dilation_base ** j, 1], + activation=activation, activation_params=activation_params, + norm=block_norm, norm_params=norm_params, causal=causal, + pad_mode=pad_mode, compress=compress, true_skip=true_skip)] + + mult //= 2 + + # Add final layers + model += [ + act(**activation_params), + StreamableConv1d(n_filters, channels, last_kernel_size, + norm='none' if self.disable_norm_outer_blocks >= 1 else norm, + norm_kwargs=norm_params, causal=causal, pad_mode=pad_mode) + ] + # Add optional final activation to decoder (eg. tanh) + if final_activation is not None: + final_act = getattr(nn, final_activation) + final_activation_params = final_activation_params or {} + model += [ + final_act(**final_activation_params) + ] + self.model = nn.Sequential(*model) + + def forward(self, z): + y = self.model(z) + return y diff --git a/audiocraft/modules/streaming.py b/audiocraft/modules/streaming.py new file mode 100644 index 0000000..fba0693 --- /dev/null +++ b/audiocraft/modules/streaming.py @@ -0,0 +1,131 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Streaming module API that should be implemented by all Streaming components, +""" + +from contextlib import contextmanager +import typing as tp +from torch import nn +import torch + + +State = tp.Dict[str, torch.Tensor] + + +class StreamingModule(nn.Module): + """Common API for streaming components. + + Each streaming component has a streaming state, which is just a dict[str, Tensor]. + By convention, the first dim of each tensor must be the batch size. + Don't use dots in the key names, as this would clash with submodules + (like in state_dict). + + If `self._is_streaming` is True, the component should use and remember + the proper state inside `self._streaming_state`. + + To set a streaming component in streaming state, use + + with module.streaming(): + ... + + This will automatically reset the streaming state when exiting the context manager. + This also automatically propagates to all streaming children module. + + Some module might also implement the `StreamingModule.flush` method, although + this one is trickier, as all parents module must be StreamingModule and implement + it as well for it to work properly. See `StreamingSequential` after. + """ + def __init__(self) -> None: + super().__init__() + self._streaming_state: State = {} + self._is_streaming = False + + def _apply_named_streaming(self, fn: tp.Any): + for name, module in self.named_modules(): + if isinstance(module, StreamingModule): + fn(name, module) + + def _set_streaming(self, streaming: bool): + def _set_streaming(name, module): + module._is_streaming = streaming + self._apply_named_streaming(_set_streaming) + + @contextmanager + def streaming(self): + """Context manager to enter streaming mode. Reset streaming state on exit.""" + self._set_streaming(True) + try: + yield + finally: + self._set_streaming(False) + self.reset_streaming() + + def reset_streaming(self): + """Reset the streaming state.""" + def _reset(name: str, module: StreamingModule): + module._streaming_state.clear() + + self._apply_named_streaming(_reset) + + def get_streaming_state(self) -> State: + """Return the streaming state, including that of sub-modules.""" + state: State = {} + + def _add(name: str, module: StreamingModule): + if name: + name += "." + for key, value in module._streaming_state.items(): + state[name + key] = value + + self._apply_named_streaming(_add) + return state + + def set_streaming_state(self, state: State): + """Set the streaming state, including that of sub-modules.""" + state = dict(state) + + def _set(name: str, module: StreamingModule): + if name: + name += "." + module._streaming_state.clear() + for key, value in list(state.items()): + # complexity is not ideal here, but probably fine. + if key.startswith(name): + local_key = key[len(name):] + if '.' not in local_key: + module._streaming_state[local_key] = value + del state[key] + + self._apply_named_streaming(_set) + assert len(state) == 0, list(state.keys()) + + def flush(self, x: tp.Optional[torch.Tensor] = None): + """Flush any remaining outputs that were waiting for completion. + Typically, for convolutions, this will add the final padding + and process the last buffer. + + This should take an optional argument `x`, which will be provided + if a module before this one in the streaming pipeline has already + spitted out a flushed out buffer. + """ + if x is None: + return None + else: + return self(x) + + +class StreamingSequential(StreamingModule, nn.Sequential): + """A streaming compatible alternative of `nn.Sequential`. + """ + def flush(self, x: tp.Optional[torch.Tensor] = None): + for module in self: + if isinstance(module, StreamingModule): + x = module.flush(x) + elif x is not None: + x = module(x) + return x diff --git a/audiocraft/modules/transformer.py b/audiocraft/modules/transformer.py new file mode 100644 index 0000000..4d44b39 --- /dev/null +++ b/audiocraft/modules/transformer.py @@ -0,0 +1,755 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Transformer model, with streaming support, xformer attention support +and easy causal attention with a potentially finite receptive field. + +See `StreamingTransformer` for more information. + +Unlike regular PyTorch Transformer, we make the hard choice that batches are first. +""" + +import typing as tp + +from einops import rearrange +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.utils.checkpoint import checkpoint as torch_checkpoint +from xformers import ops + +from .rope import RotaryEmbedding +from .streaming import StreamingModule + +_efficient_attention_backend: str = 'torch' + + +def set_efficient_attention_backend(backend: str = 'torch'): + # Using torch by default, it seems a bit faster on older P100 GPUs (~20% faster). + global _efficient_attention_backend + assert _efficient_attention_backend in ['xformers', 'torch'] + _efficient_attention_backend = backend + + +def _get_attention_time_dimension(memory_efficient: bool) -> int: + if _efficient_attention_backend == 'torch' and memory_efficient: + return 2 + else: + return 1 + + +def _is_profiled() -> bool: + # Return true if we are currently running with a xformers profiler activated. + try: + from xformers.profiler import profiler + except ImportError: + return False + return profiler._Profiler._CURRENT_PROFILER is not None + + +def create_norm_fn(norm_type: str, dim: int, **kwargs) -> nn.Module: + """Create normalization module for transformer encoder layer. + + Args: + norm_type (str): Normalization method. + dim (int): Dimension of the normalized layer. + **kwargs (dict): Additional parameters for normalization layer. + Returns: + nn.Module: Normalization module. + """ + if norm_type == 'layer_norm': + return nn.LayerNorm(dim, eps=1e-5, **kwargs) + else: + raise ValueError(f"Unknown norm type: {norm_type}") + + +def create_sin_embedding(positions: torch.Tensor, dim: int, max_period: float = 10000, + dtype: torch.dtype = torch.float32) -> torch.Tensor: + """Create sinusoidal positional embedding, with shape `[B, T, C]`. + + Args: + positions (torch.Tensor): LongTensor of positions. + dim (int): Dimension of the embedding. + max_period (float): Maximum period of the cosine/sine functions. + dtype (torch.dtype or str): dtype to use to generate the embedding. + Returns: + torch.Tensor: Sinusoidal positional embedding. + """ + # We aim for BTC format + assert dim % 2 == 0 + half_dim = dim // 2 + positions = positions.to(dtype) + adim = torch.arange(half_dim, device=positions.device, dtype=dtype).view(1, 1, -1) + max_period_tensor = torch.full([], max_period, device=positions.device, dtype=dtype) # avoid sync point + phase = positions / (max_period_tensor ** (adim / (half_dim - 1))) + return torch.cat([torch.cos(phase), torch.sin(phase)], dim=-1) + + +def expand_repeated_kv(x: torch.Tensor, n_rep: int, memory_efficient: bool) -> torch.Tensor: + """torch.repeat_interleave(x, dim=2, repeats=n_rep) from xlformers.""" + if n_rep == 1: + return x + if _efficient_attention_backend == 'torch' and memory_efficient: + bs, n_kv_heads, slen, head_dim = x.shape + return ( + x[:, :, None, :, :] + .expand(bs, n_kv_heads, n_rep, slen, head_dim) + .reshape(bs, n_kv_heads * n_rep, slen, head_dim) + ) + else: + bs, slen, n_kv_heads, head_dim = x.shape + return ( + x[:, :, :, None, :] + .expand(bs, slen, n_kv_heads, n_rep, head_dim) + .reshape(bs, slen, n_kv_heads * n_rep, head_dim) + ) + + +class LayerScale(nn.Module): + """Layer scale from [Touvron et al 2021] (https://arxiv.org/pdf/2103.17239.pdf). + This rescales diagonally the residual outputs close to 0, with a learnt scale. + + Args: + channels (int): Number of channels. + init (float): Initial scale. + channel_last (bool): If True, expect `[*, C]` shaped tensors, otherwise, `[*, C, T]`. + device (torch.device or str, optional): Device on which to initialize the module. + dtype (torch.dtype, optional): dtype to use to initialize the module. + """ + def __init__(self, channels: int, init: float = 1e-4, channel_last: bool = True, + device=None, dtype=None): + super().__init__() + self.channel_last = channel_last + self.scale = nn.Parameter( + torch.full((channels,), init, + requires_grad=True, device=device, dtype=dtype)) + + def forward(self, x: torch.Tensor): + if self.channel_last: + return self.scale * x + else: + return self.scale[:, None] * x + + +class StreamingMultiheadAttention(StreamingModule): + """Similar to `nn.MultiheadAttention` but with support for streaming, causal evaluation. + + Args: + embed_dim (int): Dimension to project to. + num_heads (int): Number of heads. + dropout (float): Dropout level. + bias (bool): Use bias in projections. + causal (bool): Causal mask applied automatically. + past_context (int, optional): Receptive field for the causal mask, infinite if None. + custom (bool): Use custom MHA implementation, for testing / benchmarking. + memory_efficient (bool): Use xformers based memory efficient attention. + attention_as_float32 (bool): Perform the attention as float32 + (especially important with memory_efficient as autocast won't do this automatically). + rope (`RotaryEmbedding`, optional): Rope embedding to use. + cross_attention: Should be true when used as a cross attention. + All keys and values must be available at once, streaming is only for the queries. + Cannot be used with `causal` or `rope` (as it wouldn't make sens to + interpret the time steps in the keys relative to those in the queries). + safe_streaming (bool): Bug fix, will go away with xformers update. + qk_layer_norm (bool): Layer normalization applied to queries and keys before dot product. + kv_repeat (int): If > 1, will repeat keys and queries multiple times (need to divide num_heads). + This will lead to faster decoding time on A100 or other GPUs with tensorcore. + device (torch.device, optional): Device on which to initialize. + dtype (torch.dtype, optional): dtype to use. + """ + def __init__(self, embed_dim: int, num_heads: int, dropout: float = 0.0, bias: bool = True, + causal: bool = False, past_context: tp.Optional[int] = None, custom: bool = False, + memory_efficient: bool = False, attention_as_float32: bool = False, + rope: tp.Optional[RotaryEmbedding] = None, cross_attention: bool = False, + safe_streaming: bool = True, qk_layer_norm: bool = False, kv_repeat: int = 1, + device=None, dtype=None): + super().__init__() + factory_kwargs = {'device': device, 'dtype': dtype} + if past_context is not None: + assert causal + + self.embed_dim = embed_dim + self.causal = causal + self.past_context = past_context + self.memory_efficient = memory_efficient + self.attention_as_float32 = attention_as_float32 + self.rope = rope + self.cross_attention = cross_attention + self.safe_streaming = safe_streaming + self.num_heads = num_heads + self.dropout = dropout + self.kv_repeat = kv_repeat + if cross_attention: + assert not causal, "Causal cannot work with cross attention." + assert rope is None, "Rope cannot work with cross attention." + + if memory_efficient: + _verify_xformers_memory_efficient_compat() + + self.custom = _is_custom(custom, memory_efficient) + if self.custom: + out_dim = embed_dim + assert num_heads % kv_repeat == 0 + assert not cross_attention or kv_repeat == 1 + num_kv = num_heads // kv_repeat + kv_dim = (embed_dim // num_heads) * num_kv + out_dim += 2 * kv_dim + in_proj = nn.Linear(embed_dim, out_dim, bias=bias, **factory_kwargs) + # We try to follow the default PyTorch MHA convention, to easily compare results. + self.in_proj_weight = in_proj.weight + self.in_proj_bias = in_proj.bias + if bias: + self.in_proj_bias.data.zero_() # Following Pytorch convention + self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias, **factory_kwargs) + if bias: + self.out_proj.bias.data.zero_() + else: + assert not qk_layer_norm + assert kv_repeat == 1 + self.mha = nn.MultiheadAttention( + embed_dim, num_heads, dropout=dropout, bias=bias, batch_first=True, + **factory_kwargs) + self.qk_layer_norm = qk_layer_norm + if qk_layer_norm: + assert self.custom + assert kv_repeat == 1 + ln_dim = embed_dim + self.q_layer_norm = nn.LayerNorm(ln_dim) + self.k_layer_norm = nn.LayerNorm(ln_dim) + + def _load_from_state_dict(self, state_dict, prefix, *args, **kwargs): + if not self.custom: + # Support compat with regular MHA + keys = [n for n, _ in self.mha.named_parameters()] + for key in keys: + if prefix + key in state_dict: + state_dict[prefix + "mha." + key] = state_dict.pop(prefix + key) + super()._load_from_state_dict(state_dict, prefix, *args, **kwargs) + + def _get_mask(self, current_steps: int, device: torch.device, dtype: torch.dtype): + # Return a causal mask, accounting for potentially stored past keys/values + # We actually return a bias for the attention score, as this has the same + # convention both in the builtin MHA in Pytorch, and Xformers functions. + time_dim = _get_attention_time_dimension(self.memory_efficient) + if self.memory_efficient: + from xformers.ops import LowerTriangularMask + if current_steps == 1: + # If we only have one step, then we do not need a mask. + return None + elif 'past_keys' in self._streaming_state: + raise RuntimeError("Not supported at the moment") + else: + # Then we can safely use a lower triangular mask + return LowerTriangularMask() + if self._streaming_state: + past_keys = self._streaming_state['past_keys'] + past_steps = past_keys.shape[time_dim] + else: + past_steps = 0 + + queries_pos = torch.arange( + past_steps, current_steps + past_steps, device=device).view(-1, 1) + keys_pos = torch.arange(past_steps + current_steps, device=device).view(1, -1) + delta = queries_pos - keys_pos + valid = delta >= 0 + if self.past_context is not None: + valid &= (delta <= self.past_context) + return torch.where( + valid, + torch.zeros([], device=device, dtype=dtype), + torch.full([], float('-inf'), device=device, dtype=dtype)) + + def _complete_kv(self, k, v): + time_dim = _get_attention_time_dimension(self.memory_efficient) + if self.cross_attention: + # With cross attention we assume all keys and values + # are already available, and streaming is with respect + # to the queries only. + return k, v + # Complete the key/value pair using the streaming state. + if self._streaming_state: + pk = self._streaming_state['past_keys'] + nk = torch.cat([pk, k], dim=time_dim) + if v is k: + nv = nk + else: + pv = self._streaming_state['past_values'] + nv = torch.cat([pv, v], dim=time_dim) + else: + nk = k + nv = v + + assert nk.shape[time_dim] == nv.shape[time_dim] + offset = 0 + if self.past_context is not None: + offset = max(0, nk.shape[time_dim] - self.past_context) + if self._is_streaming: + self._streaming_state['past_keys'] = nk[:, offset:] + if v is not k: + self._streaming_state['past_values'] = nv[:, offset:] + if 'offset' in self._streaming_state: + self._streaming_state['offset'] += offset + else: + self._streaming_state['offset'] = torch.tensor(0) + return nk, nv + + def _apply_rope(self, query: torch.Tensor, key: torch.Tensor): + time_dim = _get_attention_time_dimension(self.memory_efficient) + # Apply rope embeddings to query and key tensors. + assert self.rope is not None + if 'past_keys' in self._streaming_state: + past_keys_offset = self._streaming_state['past_keys'].shape[1] + else: + past_keys_offset = 0 + if 'offset' in self._streaming_state: + past_context_offset = int(self._streaming_state['offset'].item()) + else: + past_context_offset = 0 + streaming_offset = past_context_offset + past_keys_offset + return self.rope.rotate_qk(query, key, start=streaming_offset, time_dim=time_dim) + + def forward(self, query: torch.Tensor, key: torch.Tensor, value: torch.Tensor, + key_padding_mask=None, need_weights=False, attn_mask=None, + average_attn_weights=True, is_causal=False): + assert not is_causal, ("New param added in torch 2.0.1 not supported, " + "use the causal args in the constructor.") + + time_dim = _get_attention_time_dimension(self.memory_efficient) + if time_dim == 2: + layout = "b h t d" + else: + layout = "b t h d" + dtype = query.dtype + if self._is_streaming: + assert self.causal or self.cross_attention, \ + "Streaming only available for causal or cross attention" + + custom_attn_mask = attn_mask is not None + + if self.causal: + assert attn_mask is None + # At the moment we specialize only for the self-attention case. + assert query.shape[1] == key.shape[1], "Causal only for same length query / key / value" + assert value.shape[1] == key.shape[1], "Causal only for same length query / key / value" + attn_mask = self._get_mask(query.shape[1], query.device, query.dtype) + + if self.custom: + # custom implementation + assert need_weights is False + assert key_padding_mask is None + if self.cross_attention: + # Different queries, keys, values, we have to spit manually the weights + # before applying the linear. + dim = self.in_proj_weight.shape[0] // 3 + if self.in_proj_bias is None: + bias_q, bias_k, bias_v = None, None, None + else: + bias_q = self.in_proj_bias[:dim] + bias_k = self.in_proj_bias[dim: 2 * dim] + bias_v = self.in_proj_bias[2 * dim:] + q = nn.functional.linear(query, self.in_proj_weight[:dim], bias_q) + # todo: when streaming, we could actually save k, v and check the shape actually match. + k = nn.functional.linear(key, self.in_proj_weight[dim: 2 * dim], bias_k) + v = nn.functional.linear(value, self.in_proj_weight[2 * dim:], bias_v) + if self.qk_layer_norm is True: + q = self.q_layer_norm(q) + k = self.k_layer_norm(k) + q, k, v = [rearrange(x, f"b t (h d) -> {layout}", h=self.num_heads) for x in [q, k, v]] + else: + if not _is_profiled(): + # profiling breaks that propertysomehow. + assert query is key, "specialized implementation" + assert value is key, "specialized implementation" + projected = nn.functional.linear(query, self.in_proj_weight, self.in_proj_bias) + if self.kv_repeat == 1: + if time_dim == 2: + bound_layout = "b h p t d" + else: + bound_layout = "b t p h d" + packed = rearrange(projected, f"b t (p h d) -> {bound_layout}", p=3, h=self.num_heads) + q, k, v = ops.unbind(packed, dim=2) + else: + embed_dim = self.embed_dim + per_head_dim = (embed_dim // self.num_heads) + kv_heads = self.num_heads // self.kv_repeat + q = projected[:, :, :embed_dim] + start = embed_dim + end = start + per_head_dim * kv_heads + k = projected[:, :, start: end] + v = projected[:, :, end:] + q = rearrange(q, f"b t (h d) -> {layout}", h=self.num_heads) + k = rearrange(k, f"b t (h d) -> {layout}", h=kv_heads) + v = rearrange(v, f"b t (h d) -> {layout}", h=kv_heads) + + if self.qk_layer_norm is True: + assert self.kv_repeat == 1 + q, k = [rearrange(x, f"{layout} -> b t (h d)") for x in [q, k]] + q = self.q_layer_norm(q) + k = self.k_layer_norm(k) + q, k = [rearrange(x, f"b t (h d) -> {layout}", h=self.num_heads) for x in [q, k]] + if self.rope: + q, k = self._apply_rope(q, k) + k, v = self._complete_kv(k, v) + if self.kv_repeat > 1: + k = expand_repeated_kv(k, self.kv_repeat, self.memory_efficient) + v = expand_repeated_kv(v, self.kv_repeat, self.memory_efficient) + if self.attention_as_float32: + q, k, v = [x.float() for x in [q, k, v]] + if self.memory_efficient: + if custom_attn_mask: + # When using a custom attn mask: + # Move to query's device, repeat for each sample, remove align8 padding + seq_len = query.shape[1] + attn_mask = attn_mask.to(q.dtype) + attn_mask = attn_mask.repeat((q.shape[0], 1, 1, 1)) + attn_mask = attn_mask[..., :seq_len, :seq_len] + + p = self.dropout if self.training else 0 + if _efficient_attention_backend == 'torch': + x = torch.nn.functional.scaled_dot_product_attention( + q, k, v, is_causal=attn_mask is not None, dropout_p=p) + else: + x = ops.memory_efficient_attention(q, k, v, attn_mask, p=p) + else: + # We include the dot product as float32, for consistency + # with the other implementations that include that step + # as part of the attention. Note that when using `autocast`, + # the einsums would be done as bfloat16, but the softmax + # would be done as bfloat16, so `attention_as_float32` will + # extend a bit the range of operations done in float32, + # although this should make no difference. + q = q / q.shape[-1] ** 0.5 + key_layout = layout.replace('t', 'k') + query_layout = layout + if self._is_streaming and self.safe_streaming and q.device.type == 'cuda': + with torch.autocast(device_type=q.device.type, dtype=torch.float32): + pre_w = torch.einsum(f"{query_layout},{key_layout}-> b h t k", q, k) + else: + pre_w = torch.einsum(f"{query_layout},{key_layout}-> b h t k", q, k) + if attn_mask is not None: + pre_w = pre_w + attn_mask + w = torch.softmax(pre_w, dim=-1) + w = F.dropout(w, self.dropout, training=self.training).to(v) + # Key and value have the same format. + x = torch.einsum(f"b h t k, {key_layout} -> {layout}", w, v) + x = x.to(dtype) + x = rearrange(x, f"{layout} -> b t (h d)", h=self.num_heads) + x = self.out_proj(x) + else: + key, value = self._complete_kv(key, value) + if self.attention_as_float32: + query, key, value = [x.float() for x in [query, key, value]] + x, _ = self.mha( + query, key, value, key_padding_mask, + need_weights, attn_mask, average_attn_weights) + x = x.to(dtype) + + return x, None + + +class StreamingTransformerLayer(nn.TransformerEncoderLayer): + """TransformerLayer with Streaming / Causal support. + This also integrates cross_attention, when passing `cross_attention=True`, + rather than having two separate classes like in PyTorch. + + Args: + d_model (int): Dimension of the data. + num_heads (int): Number of heads. + dim_feedforward (int): Intermediate dimension of FF module. + dropout (float): Dropout both for MHA and FF. + bias_ff (bool): Use bias for FF. + bias_attn (bool): Use bias for MHA. + causal (bool): Causal mask applied automatically. + past_context (int, optional): Receptive field for the causal mask, infinite if None. + custom (bool): Use custom MHA implementation, for testing / benchmarking. + memory_efficient (bool): Use xformers based memory efficient attention. + attention_as_float32 (bool): Perform the attention as float32 + (especially important with memory_efficient as autocast won't do this automatically). + qk_layer_norm (bool): Layer normalization applied to queries and keys before dot product in attention. + qk_layer_norm_cross (bool): Same for the cross attention. + cross_attention (bool): If True, expect to get secondary input for cross-attention. + Cross attention will use the default MHA, as it typically won't require + special treatment. + layer_scale (float, optional): If not None, LayerScale will be used with + the given value as initial scale. + rope (`RotaryEmbedding`, optional): Rope embedding to use. + attention_dropout (float, optional): If not None, separate the value of the dimension dropout + in FFN and of the attention dropout. + kv_repeat (int): If > 1, will repeat keys and queries multiple times (need to divide num_heads). + This will lead to faster decoding time on A100 or other GPUs with tensorcore. + device (torch.device, optional): Device on which to initialize. + dtype (torch.dtype, optional): dtype to use. + **kwargs: See `nn.TransformerEncoderLayer`. + """ + def __init__(self, d_model: int, num_heads: int, dim_feedforward: int = 2048, dropout: float = 0.1, + bias_ff: bool = True, bias_attn: bool = True, causal: bool = False, + past_context: tp.Optional[int] = None, custom: bool = False, + memory_efficient: bool = False, attention_as_float32: bool = False, + qk_layer_norm: bool = False, qk_layer_norm_cross: bool = False, + cross_attention: bool = False, layer_scale: tp.Optional[float] = None, + rope: tp.Optional[RotaryEmbedding] = None, attention_dropout: tp.Optional[float] = None, + kv_repeat: int = 1, norm: str = 'layer_norm', device=None, dtype=None, **kwargs): + super().__init__(d_model, num_heads, dim_feedforward, dropout, + device=device, dtype=dtype, batch_first=True, **kwargs) + factory_kwargs = {'device': device, 'dtype': dtype} + # Redefine self_attn to our streaming multi-head attention + attn_kwargs: tp.Dict[str, tp.Any] = { + 'embed_dim': d_model, + 'num_heads': num_heads, + 'dropout': dropout if attention_dropout is None else attention_dropout, + 'bias': bias_attn, + 'custom': custom, + 'memory_efficient': memory_efficient, + 'attention_as_float32': attention_as_float32, + } + self.self_attn: StreamingMultiheadAttention = StreamingMultiheadAttention( + causal=causal, past_context=past_context, rope=rope, qk_layer_norm=qk_layer_norm, + kv_repeat=kv_repeat, **attn_kwargs, **factory_kwargs) # type: ignore + # Redefine feedforward layers to expose bias parameter + self.linear1 = nn.Linear(d_model, dim_feedforward, bias=bias_ff, **factory_kwargs) + self.linear2 = nn.Linear(dim_feedforward, d_model, bias=bias_ff, **factory_kwargs) + + self.layer_scale_1: nn.Module + self.layer_scale_2: nn.Module + if layer_scale is None: + self.layer_scale_1 = nn.Identity() + self.layer_scale_2 = nn.Identity() + else: + self.layer_scale_1 = LayerScale(d_model, layer_scale, **factory_kwargs) + self.layer_scale_2 = LayerScale(d_model, layer_scale, **factory_kwargs) + + self.cross_attention: tp.Optional[nn.Module] = None + if cross_attention: + self.cross_attention = StreamingMultiheadAttention( + cross_attention=True, qk_layer_norm=qk_layer_norm_cross, + **attn_kwargs, **factory_kwargs) + # Norm and dropout + self.dropout_cross = nn.Dropout(dropout) + # eps value matching that used in PyTorch reference implementation. + self.norm_cross = nn.LayerNorm(d_model, eps=1e-5, **factory_kwargs) + self.layer_scale_cross: nn.Module + if layer_scale is None: + self.layer_scale_cross = nn.Identity() + else: + self.layer_scale_cross = LayerScale(d_model, layer_scale, **factory_kwargs) + self.norm1 = create_norm_fn(norm, d_model, **factory_kwargs) # type: ignore + self.norm2 = create_norm_fn(norm, d_model, **factory_kwargs) # type: ignore + + def _cross_attention_block(self, src: torch.Tensor, + cross_attention_src: torch.Tensor) -> torch.Tensor: + assert self.cross_attention is not None + # queries are from src, keys and values from cross_attention_src. + x = self.cross_attention( + src, cross_attention_src, cross_attention_src, need_weights=False)[0] + return self.dropout_cross(x) # type: ignore + + def forward(self, src: torch.Tensor, src_mask: tp.Optional[torch.Tensor] = None, # type: ignore + src_key_padding_mask: tp.Optional[torch.Tensor] = None, + cross_attention_src: tp.Optional[torch.Tensor] = None): + if self.cross_attention is None: + assert cross_attention_src is None + else: + assert cross_attention_src is not None + x = src + if self.norm_first: + x = x + self.layer_scale_1( + self._sa_block(self.norm1(x), src_mask, src_key_padding_mask)) + if cross_attention_src is not None: + x = x + self.layer_scale_cross( + self._cross_attention_block( + self.norm_cross(x), cross_attention_src)) + x = x + self.layer_scale_2(self._ff_block(self.norm2(x))) + else: + x = self.norm1(x + self.layer_scale_1( + self._sa_block(x, src_mask, src_key_padding_mask))) + if cross_attention_src is not None: + x = self.norm_cross( + x + self.layer_scale_cross( + self._cross_attention_block(src, cross_attention_src))) + x = self.norm2(x + self.layer_scale_2(self._ff_block(x))) + return x + + +class StreamingTransformer(StreamingModule): + """Transformer with Streaming / Causal support. + + Args: + d_model (int): Dimension of the data. + num_heads (int): Number of heads. + dim_feedforward (int): Intermediate dimension of FF module. + dropout (float): Dropout both for MHA and FF. + bias_ff (bool): Use bias for FF. + bias_attn (bool): Use bias for MHA. + causal (bool): Causal mask applied automatically. + past_context (int, optional): Receptive field for the causal mask, infinite if None. + custom (bool): Use custom MHA implementation, for testing / benchmarking. + memory_efficient (bool): Use xformers based memory efficient attention. + attention_as_float32 (bool): Perform the attention as float32 + (especially important with memory_efficient as autocast won't do this automatically). + cross_attention (bool): If True, expect to get secondary input for cross-attention. + layer_scale (float, optional): If not None, LayerScale will be used + with the given value as initial scale. + positional_embedding (str): Positional embedding strategy (sin, rope, or sin_rope). + max_period (float): Maximum period of the time embedding. + positional_scale (float): Scale of positional embedding, set to 0 to deactivate. + xpos (bool): Apply xpos exponential decay to positional embedding (rope only). + lr (float, optional): learning rate override through the `make_optim_group` API. + weight_decay (float, optional): Weight_decay override through the `make_optim_group` API. + layer_class: (subclass of `StreamingTransformerLayer): class to use + to initialize the layers, allowing further customization outside of AudioCraft. + checkpointing (str): Checkpointing strategy to reduce memory usage. + No checkpointing if set to 'none'. Per layer checkpointing using PyTorch + if set to 'torch' (entire layer checkpointed, i.e. linears are evaluated twice, + minimal memory usage, but maximal runtime). Finally, `xformers_default` provide + a policy for opting-out some operations of the checkpointing like + linear layers and attention, providing a middle ground between speed and memory. + device (torch.device, optional): Device on which to initialize. + dtype (torch.dtype, optional): dtype to use. + **kwargs: See `nn.TransformerEncoderLayer`. + """ + def __init__(self, d_model: int, num_heads: int, num_layers: int, dim_feedforward: int = 2048, + dropout: float = 0.1, bias_ff: bool = True, bias_attn: bool = True, + causal: bool = False, past_context: tp.Optional[int] = None, + custom: bool = False, memory_efficient: bool = False, attention_as_float32: bool = False, + cross_attention: bool = False, layer_scale: tp.Optional[float] = None, + positional_embedding: str = 'sin', max_period: float = 10_000, positional_scale: float = 1., + xpos: bool = False, lr: tp.Optional[float] = None, weight_decay: tp.Optional[float] = None, + layer_class: tp.Type[StreamingTransformerLayer] = StreamingTransformerLayer, + checkpointing: str = 'none', device=None, dtype=None, **kwargs): + super().__init__() + assert d_model % num_heads == 0 + + self.positional_embedding = positional_embedding + self.max_period = max_period + self.positional_scale = positional_scale + self.weight_decay = weight_decay + self.lr = lr + + assert positional_embedding in ['sin', 'rope', 'sin_rope'] + self.rope: tp.Optional[RotaryEmbedding] = None + if self.positional_embedding in ['rope', 'sin_rope']: + assert _is_custom(custom, memory_efficient) + self.rope = RotaryEmbedding(d_model // num_heads, max_period=max_period, + xpos=xpos, scale=positional_scale, device=device) + + self.checkpointing = checkpointing + + assert checkpointing in ['none', 'torch', 'xformers_default', 'xformers_mm'] + if self.checkpointing.startswith('xformers'): + _verify_xformers_internal_compat() + + self.layers = nn.ModuleList() + for idx in range(num_layers): + self.layers.append( + layer_class( + d_model=d_model, num_heads=num_heads, dim_feedforward=dim_feedforward, + dropout=dropout, bias_ff=bias_ff, bias_attn=bias_attn, + causal=causal, past_context=past_context, custom=custom, + memory_efficient=memory_efficient, attention_as_float32=attention_as_float32, + cross_attention=cross_attention, layer_scale=layer_scale, rope=self.rope, + device=device, dtype=dtype, **kwargs)) + + if self.checkpointing != 'none': + for layer in self.layers: + # see audiocraft/optim/fsdp.py, magic signal to indicate this requires fixing the + # backward hook inside of FSDP... + layer._magma_checkpointed = True # type: ignore + + def _apply_layer(self, layer, *args, **kwargs): + method = self.checkpointing + if method == 'none': + return layer(*args, **kwargs) + elif method == 'torch': + return torch_checkpoint(layer, *args, use_reentrant=False, **kwargs) + elif method.startswith('xformers'): + from xformers.checkpoint_fairinternal import checkpoint, _get_default_policy + if method == 'xformers_default': + # those operations will be saved, and not recomputed. + # According to Francisco we can get smarter policies but this is a good start. + allow_list = [ + "xformers.efficient_attention_forward_cutlass.default", + "xformers_flash.flash_fwd.default", + "aten.addmm.default", + "aten.mm.default", + ] + elif method == 'xformers_mm': + # those operations will be saved, and not recomputed. + # According to Francisco we can get smarter policies but this is a good start. + allow_list = [ + "aten.addmm.default", + "aten.mm.default", + ] + else: + raise ValueError(f"xformers checkpointing xformers policy {method} is not known.") + policy_fn = _get_default_policy(allow_list) + return checkpoint(layer, *args, policy_fn=policy_fn, **kwargs) + else: + raise ValueError(f"Checkpointing method {method} is unknown.") + + def forward(self, x: torch.Tensor, *args, **kwargs): + B, T, C = x.shape + + if 'offsets' in self._streaming_state: + offsets = self._streaming_state['offsets'] + else: + offsets = torch.zeros(B, dtype=torch.long, device=x.device) + + if self.positional_embedding in ['sin', 'sin_rope']: + positions = torch.arange(T, device=x.device).view(1, -1, 1) + positions = positions + offsets.view(-1, 1, 1) + pos_emb = create_sin_embedding(positions, C, max_period=self.max_period, dtype=x.dtype) + x = x + self.positional_scale * pos_emb + + for layer in self.layers: + x = self._apply_layer(layer, x, *args, **kwargs) + + if self._is_streaming: + self._streaming_state['offsets'] = offsets + T + + return x + + def make_optim_group(self): + group = {"params": list(self.parameters())} + if self.lr is not None: + group["lr"] = self.lr + if self.weight_decay is not None: + group["weight_decay"] = self.weight_decay + return group + + +# special attention related function + +def _verify_xformers_memory_efficient_compat(): + try: + from xformers.ops import memory_efficient_attention, LowerTriangularMask # noqa + except ImportError: + raise ImportError( + "xformers is not installed. Please install it and try again.\n" + "To install on AWS and Azure, run \n" + "FORCE_CUDA=1 TORCH_CUDA_ARCH_LIST='8.0'\\\n" + "pip install -U git+https://git@github.com/fairinternal/xformers.git#egg=xformers\n" + "To install on FAIR Cluster, run \n" + "FORCE_CUDA=1 TORCH_CUDA_ARCH_LIST='6.0;7.0'\\\n" + "pip install -U git+https://git@github.com/fairinternal/xformers.git#egg=xformers\n") + + +def _verify_xformers_internal_compat(): + try: + from xformers.checkpoint_fairinternal import checkpoint, _get_default_policy # noqa + except ImportError: + raise ImportError( + "Francisco's fairinternal xformers is not installed. Please install it and try again.\n" + "To install on AWS and Azure, run \n" + "FORCE_CUDA=1 TORCH_CUDA_ARCH_LIST='8.0'\\\n" + "pip install -U git+https://git@github.com/fairinternal/xformers.git#egg=xformers\n" + "To install on FAIR Cluster, run \n" + "FORCE_CUDA=1 TORCH_CUDA_ARCH_LIST='6.0;7.0'\\\n" + "pip install -U git+https://git@github.com/fairinternal/xformers.git#egg=xformers\n") + + +def _is_custom(custom: bool, memory_efficient: bool): + return custom or memory_efficient diff --git a/audiocraft/modules/unet_transformer.py b/audiocraft/modules/unet_transformer.py new file mode 100644 index 0000000..53fe1f8 --- /dev/null +++ b/audiocraft/modules/unet_transformer.py @@ -0,0 +1,67 @@ +import torch +import typing as tp +from .transformer import StreamingTransformer, create_sin_embedding + + +class UnetTransformer(StreamingTransformer): + """U-net Transformer for processing sequences with optional skip connections. + This transformer architecture incorporates U-net style skip connections + between layers, which can be optionally enabled. It inherits from a + StreamingTransformer. + + Args: + d_model (int): Dimension of the model, typically the number of expected features in the input. + num_layers (int): Total number of layers in the transformer. + skip_connections (bool, optional): Flag to determine whether skip connections should be used. + Defaults to False. + layer_dropout_p (float, Optional): if given, defined bernoulli prob. to drop a skip connection (in training). + **kwargs: Additional keyword arguments inherited from `nn.StreamingTransformer`. + """ + def __init__(self, d_model: int, num_layers: int, skip_connections: bool = False, + layer_dropout_p: tp.Optional[float] = None, **kwargs): + super().__init__(d_model=d_model, + num_layers=num_layers, + **kwargs) + self.skip_connect = skip_connections + if self.skip_connect: + self.skip_projections = torch.nn.ModuleList([torch.nn.Linear(d_model * 2, d_model) + for _ in range(num_layers // 2)]) + self.num_layers = num_layers + self.layer_drop_p = max(min(layer_dropout_p, 1.), 0.) if layer_dropout_p is not None else 0.0 + + def forward(self, x: torch.Tensor, *args, **kwargs): + B, T, C = x.shape + + if 'offsets' in self._streaming_state: + offsets = self._streaming_state['offsets'] + else: + offsets = torch.zeros(B, dtype=torch.long, device=x.device) + + if self.positional_embedding in ['sin', 'sin_rope']: + positions = torch.arange(T, device=x.device).view(1, -1, 1) + positions = positions + offsets.view(-1, 1, 1) + pos_emb = create_sin_embedding(positions, C, max_period=self.max_period, dtype=x.dtype) + x = x + self.positional_scale * pos_emb + + skip_connections: tp.List[torch.Tensor] = [] + + for i, layer in enumerate(self.layers): + if self.skip_connect and i >= self.num_layers // 2: + + # in the second half of the layers, add residual connection + # and linearly project the concatenated features back to d_model + x = torch.cat([x, skip_connections.pop()], dim=-1) + x = self.skip_projections[i % len(self.skip_projections)](x) + + x = self._apply_layer(layer, x, *args, **kwargs) + + if self.skip_connect and i < self.num_layers // 2: + if self.training and torch.rand(1,) < self.layer_drop_p: # drop skip + skip_connections.append(torch.zeros_like(x)) + else: + skip_connections.append(x) + + if self._is_streaming: + self._streaming_state['offsets'] = offsets + T + + return x diff --git a/audiocraft/modules/watermark.py b/audiocraft/modules/watermark.py new file mode 100644 index 0000000..f3a2e7e --- /dev/null +++ b/audiocraft/modules/watermark.py @@ -0,0 +1,102 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp +import random + +import torch + + +def pad( + x_wm: torch.Tensor, central: bool = False +) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Pad a watermarked signal at the begining and the end + + Args: + x_wm (torch.Tensor) : watermarked audio + central (bool): Whether to mask the middle of the wave (around 34%) or the two tails + (beginning and ending frames) + + Returns: + padded (torch.Tensor): padded signal + true_predictions(torch.Tensor): A binary mask where 1 represents + watermarked and 0 represents non-watermarked.""" + # keep at leat 34% of watermarked signal + max_start = int(0.33 * x_wm.size(-1)) + min_end = int(0.66 * x_wm.size(-1)) + starts = torch.randint(0, max_start, size=(x_wm.size(0),)) + ends = torch.randint(min_end, x_wm.size(-1), size=(x_wm.size(0),)) + mask = torch.zeros_like(x_wm) + for i in range(x_wm.size(0)): + mask[i, :, starts[i]: ends[i]] = 1 + if central: + mask = 1 - mask + padded = x_wm * mask + true_predictions = torch.cat([1 - mask, mask], dim=1) + return padded, true_predictions + + +def mix( + x: torch.Tensor, x_wm: torch.Tensor, window_size: float = 0.5, shuffle: bool = False +) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """ + Mixes a window of the non-watermarked audio signal 'x' into the watermarked audio signal 'x_wm'. + + This function takes two tensors of shape [batch, channels, frames], copies a window of 'x' with the specified + 'window_size' into 'x_wm', and returns a new tensor that is a mix between the watermarked (1 - mix_percent %) + and non-watermarked audio (mix_percent %). + + Args: + x (torch.Tensor): The non-watermarked audio signal tensor. + x_wm (torch.Tensor): The watermarked audio signal tensor. + window_size (float, optional): The percentage of 'x' to copy into 'x_wm' (between 0 and 1). + shuffle (bool): whether or no keep the mix from the same batch element + + Returns: + tuple: A tuple containing two tensors: + - mixed_tensor (torch.Tensor): The resulting mixed audio signal tensor. + - mask (torch.Tensor): A binary mask where 1 represents watermarked and 0 represents non-watermarked. + + Raises: + AssertionError: If 'window_size' is not between 0 and 1. + """ + assert 0 < window_size <= 1, "window_size should be between 0 and 1" + + # Calculate the maximum starting point for the window + max_start_point = x.shape[-1] - int(window_size * x.shape[-1]) + + # Generate a random starting point within the adjusted valid range + start_point = random.randint(0, max_start_point) + + # Calculate the window size in frames + total_frames = x.shape[-1] + window_frames = int(window_size * total_frames) + + # Create a mask tensor to identify watermarked and non-watermarked portions + # it outputs two classes to match the detector output shape of [bsz, 2, frames] + # Copy the random window from 'x' to 'x_wm' + mixed = x_wm.detach().clone() + + true_predictions = torch.cat( + [torch.zeros_like(mixed), torch.ones_like(mixed)], dim=1 + ) + # non-watermark class correct labels. + true_predictions[:, 0, start_point: start_point + window_frames] = 1.0 + # watermarked class correct labels + true_predictions[:, 1, start_point: start_point + window_frames] = 0.0 + + if shuffle: + # Take the middle part from a random element of the batch + shuffle_idx = torch.randint(0, x.size(0), (x.size(0),)) + mixed[:, :, start_point: start_point + window_frames] = x[shuffle_idx][ + :, :, start_point: start_point + window_frames + ] + else: + mixed[:, :, start_point: start_point + window_frames] = x[ + :, :, start_point: start_point + window_frames + ] + + return mixed, true_predictions diff --git a/audiocraft/optim/__init__.py b/audiocraft/optim/__init__.py new file mode 100644 index 0000000..f48c17d --- /dev/null +++ b/audiocraft/optim/__init__.py @@ -0,0 +1,16 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Optimization stuff. In particular, optimizers (DAdaptAdam), schedulers +and Exponential Moving Average. +""" + +# flake8: noqa +from .cosine_lr_scheduler import CosineLRScheduler +from .dadam import DAdaptAdam +from .inverse_sqrt_lr_scheduler import InverseSquareRootLRScheduler +from .linear_warmup_lr_scheduler import LinearWarmupLRScheduler +from .polynomial_decay_lr_scheduler import PolynomialDecayLRScheduler +from .ema import ModuleDictEMA diff --git a/audiocraft/optim/cosine_lr_scheduler.py b/audiocraft/optim/cosine_lr_scheduler.py new file mode 100644 index 0000000..1e4f0bb --- /dev/null +++ b/audiocraft/optim/cosine_lr_scheduler.py @@ -0,0 +1,48 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math + +from torch.optim import Optimizer +from torch.optim.lr_scheduler import _LRScheduler + + +class CosineLRScheduler(_LRScheduler): + """Cosine LR scheduler. + + Args: + optimizer (Optimizer): Torch optimizer. + warmup_steps (int): Number of warmup steps. + total_steps (int): Total number of steps. + lr_min_ratio (float): Minimum learning rate. + cycle_length (float): Cycle length. + """ + def __init__(self, optimizer: Optimizer, total_steps: int, warmup_steps: int, + lr_min_ratio: float = 0.0, cycle_length: float = 1.0): + self.warmup_steps = warmup_steps + assert self.warmup_steps >= 0 + self.total_steps = total_steps + assert self.total_steps >= 0 + self.lr_min_ratio = lr_min_ratio + self.cycle_length = cycle_length + super().__init__(optimizer) + + def _get_sched_lr(self, lr: float, step: int): + if step < self.warmup_steps: + lr_ratio = step / self.warmup_steps + lr = lr_ratio * lr + elif step <= self.total_steps: + s = (step - self.warmup_steps) / (self.total_steps - self.warmup_steps) + lr_ratio = self.lr_min_ratio + 0.5 * (1 - self.lr_min_ratio) * \ + (1. + math.cos(math.pi * s / self.cycle_length)) + lr = lr_ratio * lr + else: + lr_ratio = self.lr_min_ratio + lr = lr_ratio * lr + return lr + + def get_lr(self): + return [self._get_sched_lr(lr, self.last_epoch) for lr in self.base_lrs] diff --git a/audiocraft/optim/dadam.py b/audiocraft/optim/dadam.py new file mode 100644 index 0000000..e009969 --- /dev/null +++ b/audiocraft/optim/dadam.py @@ -0,0 +1,248 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +from typing import Any + +import torch +import torch.optim +import torch.distributed as dist + + +logger = logging.getLogger(__name__) +_params_t = Any + + +def to_real(x): + if torch.is_complex(x): + return x.real + else: + return x + + +class DAdaptAdam(torch.optim.Optimizer): + """Adam with D-Adaptation automatic step-sizes. + Leave LR set to 1 unless you encounter instability. + + Args: + params (iterable): + Iterable of parameters to optimize or dicts defining parameter groups. + lr (float): + Learning rate adjustment parameter. Increases or decreases the D-adapted learning rate. + betas (tuple[float, float], optional): coefficients used for computing + running averages of gradient and its square (default: (0.9, 0.999)) + momentum (float): + Momentum value in the range [0,1) (default: 0.9). + eps (float): + Term added to the denominator outside of the root operation to improve numerical stability. (default: 1e-8). + weight_decay (float): + Weight decay, i.e. a L2 penalty (default: 0). + log_every (int): + Log using print every k steps, default 0 (no logging). + decouple (boolean): + Use AdamW style decoupled weight decay + d0 (float): + Initial D estimate for D-adaptation (default 1e-6). Rarely needs changing. + growth_rate (float): + prevent the D estimate from growing faster than this multiplicative rate. + Default is inf, for unrestricted. Values like 1.02 give a kind of learning + rate warmup effect. + fsdp_in_use (bool): + If you're using sharded parameters, this should be set to True. The optimizer + will attempt to auto-detect this, but if you're using an implementation other + than PyTorch's builtin version, the auto-detection won't work. + """ + def __init__(self, params, lr=1.0, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0, + log_every=0, + decouple=True, + d0=1e-6, + growth_rate=float('inf')): + if not 0.0 < d0: + raise ValueError("Invalid d0 value: {}".format(d0)) + if not 0.0 < lr: + raise ValueError("Invalid learning rate: {}".format(lr)) + if not 0.0 < eps: + raise ValueError("Invalid epsilon value: {}".format(eps)) + if not 0.0 <= betas[0] < 1.0: + raise ValueError("Invalid beta parameter at index 0: {}".format(betas[0])) + if not 0.0 <= betas[1] < 1.0: + raise ValueError("Invalid beta parameter at index 1: {}".format(betas[1])) + + if decouple: + logger.info("Using decoupled weight decay") + + from .fsdp import is_fsdp_used + fsdp_in_use = is_fsdp_used() + defaults = dict(lr=lr, betas=betas, eps=eps, + weight_decay=weight_decay, + d=d0, + k=0, + gsq_weighted=0.0, + log_every=log_every, + decouple=decouple, + growth_rate=growth_rate, + fsdp_in_use=fsdp_in_use) + + super().__init__(params, defaults) + + @property + def supports_memory_efficient_fp16(self): + return False + + @property + def supports_flat_params(self): + return True + + def step(self, closure=None): + """Performs a single optimization step. + + Args: + closure (callable, optional): A closure that reevaluates the model + and returns the loss. + """ + loss = None + if closure is not None: + loss = closure() + + g_sq = 0.0 + sksq_weighted = 0.0 + sk_l1 = 0.0 + + lr = max(group['lr'] for group in self.param_groups) + + group = self.param_groups[0] + gsq_weighted = group['gsq_weighted'] + d = group['d'] + dlr = d*lr + + growth_rate = group['growth_rate'] + decouple = group['decouple'] + fsdp_in_use = group['fsdp_in_use'] + log_every = group['log_every'] + + beta1, beta2 = group['betas'] + + for group in self.param_groups: + group_lr = group['lr'] + decay = group['weight_decay'] + k = group['k'] + eps = group['eps'] + + if group_lr not in [lr, 0.0]: + raise RuntimeError("Setting different lr values in different parameter " + "groups is only supported for values of 0") + + for p in group['params']: + if p.grad is None: + continue + if hasattr(p, "_fsdp_flattened"): + fsdp_in_use = True + grad = p.grad.data + + # Apply weight decay (coupled variant) + if decay != 0 and not decouple: + grad.add_(p.data, alpha=decay) + + state = self.state[p] + + # State initialization + if 'step' not in state: + state['step'] = 0 + state['s'] = torch.zeros_like(p.data, memory_format=torch.preserve_format).detach() + # Exponential moving average of gradient values + state['exp_avg'] = torch.zeros_like(p.data, memory_format=torch.preserve_format).detach() + # Exponential moving average of squared gradient values + state['exp_avg_sq'] = torch.zeros_like( + to_real(p.data), memory_format=torch.preserve_format).detach() + + exp_avg, exp_avg_sq = state['exp_avg'], state['exp_avg_sq'] + + grad_grad = to_real(grad * grad.conj()) + + # Adam EMA updates + if group_lr > 0: + exp_avg.mul_(beta1).add_(grad, alpha=dlr*(1-beta1)) + exp_avg_sq.mul_(beta2).add_(grad_grad, alpha=1-beta2) + + denom = exp_avg_sq.sqrt().add_(eps) + + g_sq += grad_grad.div_(denom).sum().item() + + s = state['s'] + s.mul_(beta2).add_(grad, alpha=dlr*(1-beta2)) + sksq_weighted += to_real(s * s.conj()).div_(denom).sum().item() + sk_l1 += s.abs().sum().item() + + ###### + + gsq_weighted = beta2*gsq_weighted + g_sq*(dlr**2)*(1-beta2) + d_hat = d + + # if we have not done any progres, return + # if we have any gradients available, will have sk_l1 > 0 (unless \|g\|=0) + if sk_l1 == 0: + return loss + + if lr > 0.0: + if fsdp_in_use: + dist_tensor = torch.zeros(3, device='cuda') + dist_tensor[0] = sksq_weighted + dist_tensor[1] = gsq_weighted + dist_tensor[2] = sk_l1 + dist.all_reduce(dist_tensor, op=dist.ReduceOp.SUM) + global_sksq_weighted = dist_tensor[0] + global_gsq_weighted = dist_tensor[1] + global_sk_l1 = dist_tensor[2] + else: + global_sksq_weighted = sksq_weighted + global_gsq_weighted = gsq_weighted + global_sk_l1 = sk_l1 + + d_hat = (global_sksq_weighted/(1-beta2) - global_gsq_weighted)/global_sk_l1 + d = max(d, min(d_hat, d*growth_rate)) + + if log_every > 0 and k % log_every == 0: + logger.info( + f"(k={k}) dlr: {dlr:1.1e} d_hat: {d_hat:1.1e}, d: {d:1.8}. " + f"sksq_weighted={global_sksq_weighted:1.1e} gsq_weighted={global_gsq_weighted:1.1e} " + f"sk_l1={global_sk_l1:1.1e}{' (FSDP)' if fsdp_in_use else ''}") + + for group in self.param_groups: + group['gsq_weighted'] = gsq_weighted + group['d'] = d + + group_lr = group['lr'] + decay = group['weight_decay'] + k = group['k'] + eps = group['eps'] + + for p in group['params']: + if p.grad is None: + continue + grad = p.grad.data + + state = self.state[p] + + exp_avg, exp_avg_sq = state['exp_avg'], state['exp_avg_sq'] + + state['step'] += 1 + + denom = exp_avg_sq.sqrt().add_(eps) + denom = denom.type(p.type()) + + # Apply weight decay (decoupled variant) + if decay != 0 and decouple and group_lr > 0: + p.data.add_(p.data, alpha=-decay * dlr) + + # Take step + p.data.addcdiv_(exp_avg, denom, value=-1) + + group['k'] = k + 1 + + return loss diff --git a/audiocraft/optim/ema.py b/audiocraft/optim/ema.py new file mode 100644 index 0000000..4337eaf --- /dev/null +++ b/audiocraft/optim/ema.py @@ -0,0 +1,85 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +# ModelEMA implementation is taken from +# https://github.com/facebookresearch/demucs + +from collections import defaultdict +import typing as tp + +import torch +import torch.nn as nn + + +def _get_all_non_persistent_buffers_set(module: nn.Module, root: str = "") -> set: + names: set = set() + for (name, sub_module) in module.named_modules(): + if name == '': + buffer_names = module._non_persistent_buffers_set + buffer_names = {f"{root}.{buff_name}" if len(root) > 0 else buff_name + for buff_name in buffer_names} + names.update(buffer_names) + else: + sub_name = f"{root}.{name}" if len(root) > 0 else name + sub_buffer_names = _get_all_non_persistent_buffers_set(sub_module, sub_name) + names.update(sub_buffer_names) + return names + + +def _get_named_tensors(module: nn.Module): + non_persistent_buffers_set = _get_all_non_persistent_buffers_set(module) + named_buffers = [(name, buffer) for (name, buffer) in module.named_buffers() + if name not in non_persistent_buffers_set] + named_parameters = list(module.named_parameters()) + return named_parameters + named_buffers + + +class ModuleDictEMA: + """Exponential Moving Average over a nn.ModuleDict. + + You can switch to the EMA weights temporarily. + """ + def __init__(self, module_dict: nn.ModuleDict, decay: float = 0.999, + unbias: bool = True, device: tp.Union[torch.device, str] = 'cpu'): + self.decay = decay + self.module_dict = module_dict + self.state: dict = defaultdict(dict) + self.count = 0 + self.device = device + self.unbias = unbias + self._init() + + def _init(self): + for module_name, module in self.module_dict.items(): + for key, val in _get_named_tensors(module): + if not val.is_floating_point(): + continue + device = self.device or val.device + if key not in self.state[module_name]: + self.state[module_name][key] = val.detach().to(device, copy=True) + + def step(self): + if self.unbias: + self.count = self.count * self.decay + 1 + w = 1 / self.count + else: + w = 1 - self.decay + for module_name, module in self.module_dict.items(): + for key, val in _get_named_tensors(module): + if not val.is_floating_point(): + continue + device = self.device or val.device + self.state[module_name][key].mul_(1 - w) + self.state[module_name][key].add_(val.detach().to(device), alpha=w) + + def state_dict(self): + return {'state': self.state, 'count': self.count} + + def load_state_dict(self, state): + self.count = state['count'] + for module_name, module in state['state'].items(): + for key, val in module.items(): + self.state[module_name][key].copy_(val) diff --git a/audiocraft/optim/fsdp.py b/audiocraft/optim/fsdp.py new file mode 100644 index 0000000..b8b7c8e --- /dev/null +++ b/audiocraft/optim/fsdp.py @@ -0,0 +1,206 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Wrapper around FSDP for more convenient use in the training loops. +""" + +from contextlib import contextmanager +import typing as tp +import dora +import torch + +from torch.distributed.fsdp import FullyShardedDataParallel as FSDP +from torch.distributed.fsdp import ( + MixedPrecision, ShardingStrategy, FullStateDictConfig, StateDictType) +from torch.distributed._shard.sharded_tensor.api import ShardedTensor + + +def is_fsdp_used() -> bool: + """Return whether we are using FSDP.""" + # A bit of a hack but should work from anywhere. + if dora.is_xp(): + cfg = dora.get_xp().cfg + if hasattr(cfg, 'fsdp'): + return cfg.fsdp.use + return False + + +def is_sharded_tensor(x: tp.Any) -> bool: + return isinstance(x, ShardedTensor) + + +@contextmanager +def switch_to_full_state_dict(models: tp.List[FSDP]): + # Another bug in FSDP makes it that we cannot use the `state_dict_type` API, + # so let's do thing manually. + for model in models: + FSDP.set_state_dict_type( # type: ignore + model, StateDictType.FULL_STATE_DICT, + FullStateDictConfig(offload_to_cpu=True, rank0_only=True)) + try: + yield + finally: + for model in models: + FSDP.set_state_dict_type(model, StateDictType.LOCAL_STATE_DICT) # type: ignore + + +def wrap_with_fsdp(cfg, model: torch.nn.Module, + block_classes: tp.Optional[tp.Set[tp.Type]] = None) -> FSDP: + """Wraps a model with FSDP.""" + # Some of the typing is disabled until this gets integrated + # into the stable version of PyTorch. + from torch.distributed.fsdp.wrap import ModuleWrapPolicy # type: ignore + + # we import this here to prevent circular import. + from ..modules.transformer import StreamingTransformerLayer + from ..modules.conditioners import ConditioningProvider + + _fix_post_backward_hook() + + assert cfg.use + sharding_strategy_dict = { + "no_shard": ShardingStrategy.NO_SHARD, + "shard_grad_op": ShardingStrategy.SHARD_GRAD_OP, + "full_shard": ShardingStrategy.FULL_SHARD, + } + + dtype_dict = { + "float32": torch.float32, + "float16": torch.float16, + "bfloat16": torch.bfloat16, + } + + mixed_precision_config = MixedPrecision( + param_dtype=dtype_dict[cfg.param_dtype], + reduce_dtype=dtype_dict[cfg.reduce_dtype], + buffer_dtype=dtype_dict[cfg.buffer_dtype], + ) + + sharding_strategy_config = sharding_strategy_dict[cfg.sharding_strategy] + # The following is going to require being a bit smart + # when doing LM, because this would flush the weights for every time step + # during generation. One possiblity is to use hybrid sharding: + # See: https://pytorch.org/docs/master/fsdp.html#torch.distributed.fsdp.ShardingStrategy + assert sharding_strategy_config != ShardingStrategy.FULL_SHARD, \ + "Not supported at the moment, requires a bit more work." + + local_rank = dora.distrib.get_distrib_spec().local_rank + assert local_rank < torch.cuda.device_count(), "Please upgrade Dora!" + + auto_wrap_policy = None + if block_classes is None: + block_classes = {StreamingTransformerLayer, ConditioningProvider} + if cfg.per_block: + auto_wrap_policy = ModuleWrapPolicy(block_classes) + wrapped = _FSDPFixStateDict( + model, + sharding_strategy=sharding_strategy_config, + mixed_precision=mixed_precision_config, + device_id=local_rank, + sync_module_states=True, + use_orig_params=True, + auto_wrap_policy=auto_wrap_policy, + ) # type: ignore + FSDP.set_state_dict_type(wrapped, StateDictType.LOCAL_STATE_DICT) # type: ignore + + # Let the wrapped model know about the wrapping! + # We use __dict__ to avoid it going into the state dict. + # This is a bit dirty, but needed during generation, as otherwise + # the wrapped model would call itself and bypass FSDP. + for module in FSDP.fsdp_modules(wrapped): + original = module._fsdp_wrapped_module + original.__dict__['_fsdp'] = module + return wrapped + + +def purge_fsdp(model: FSDP): + """Purge the FSDP cached shard inside the model. This should + allow setting the best state or switching to the EMA. + """ + from torch.distributed.fsdp._runtime_utils import _reshard # type: ignore + for module in FSDP.fsdp_modules(model): + if hasattr(module, "_handles"): + # support for FSDP with torch<2.1.0 + handles = module._handles + if not handles: + continue + handle = handles[0] + unsharded_flat_param = handle._get_padded_unsharded_flat_param() + storage_size: int = unsharded_flat_param._typed_storage()._size() # type: ignore + if storage_size == 0: + continue + true_list = [True for h in handles] + _reshard(module, handles, true_list) + else: + handle = module._handle + if not handle: + continue + unsharded_flat_param = handle._get_padded_unsharded_flat_param() + storage_size: int = unsharded_flat_param._typed_storage()._size() # type: ignore + if storage_size == 0: + continue + _reshard(module, handle, True) + + +class _FSDPFixStateDict(FSDP): + @staticmethod + def _name_without_fsdp_prefix(name: str) -> str: + from torch.distributed.fsdp._common_utils import FSDP_WRAPPED_MODULE # type: ignore + parts = name.split('.') + new_parts = [part for part in parts if part != FSDP_WRAPPED_MODULE] + return '.'.join(new_parts) + + def state_dict(self, *args, **kwargs) -> tp.Dict[str, tp.Any]: # type: ignore + state = dict(super().state_dict(*args, **kwargs)) + for key, value in list(state.items()): + if is_sharded_tensor(value): + del state[key] + return state + + def load_state_dict(self, state: tp.Dict[str, tp.Any]): # type: ignore + if self._state_dict_type is StateDictType.FULL_STATE_DICT: + super().load_state_dict(state) + purge_fsdp(self) + return + # Fix FSDP load state dict in all situation. + # Use this only with LOCAL_STATE_DICT !!! + current_state = dict(super().state_dict()) + for key, value in state.items(): + key = _FSDPFixStateDict._name_without_fsdp_prefix(key) + if key not in current_state: + # Emulate strict loading manually. + raise RuntimeError(f"Unknown state key {key}") + current_state[key].copy_(value) + + # Purging cached weights from previous forward. + purge_fsdp(self) + + +_hook_fixed = False + + +def _fix_post_backward_hook(): + global _hook_fixed + if _hook_fixed: + return + _hook_fixed = True + + from torch.distributed.fsdp import _runtime_utils + from torch.distributed.fsdp._common_utils import TrainingState, HandleTrainingState + old_hook = _runtime_utils._post_backward_hook + + def _post_backward_hook(state, handle, *args, **kwargs): + checkpointed = getattr(state._fsdp_wrapped_module, '_audiocraft_checkpointed', False) + if checkpointed: + # there will be one more forward in the backward with checkpointing and that will + # massively confuse FSDP, so we have to make it think everything + # is going according to the plan. + state.training_state = TrainingState.FORWARD_BACKWARD + handle._training_state = HandleTrainingState.BACKWARD_PRE + old_hook(state, handle, *args, **kwargs) + + _runtime_utils._post_backward_hook = _post_backward_hook diff --git a/audiocraft/optim/inverse_sqrt_lr_scheduler.py b/audiocraft/optim/inverse_sqrt_lr_scheduler.py new file mode 100644 index 0000000..920192e --- /dev/null +++ b/audiocraft/optim/inverse_sqrt_lr_scheduler.py @@ -0,0 +1,38 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +from torch.optim import Optimizer +from torch.optim.lr_scheduler import _LRScheduler + + +class InverseSquareRootLRScheduler(_LRScheduler): + """Inverse square root LR scheduler. + + Args: + optimizer (Optimizer): Torch optimizer. + warmup_steps (int): Number of warmup steps. + warmup_init_lr (tp.Optional[float]): Initial learning rate + during warmup phase. When not set, use the provided learning rate. + """ + def __init__(self, optimizer: Optimizer, warmup_steps: int, warmup_init_lr: tp.Optional[float] = 0): + self.warmup_steps = warmup_steps + self.warmup_init_lr = warmup_init_lr + super().__init__(optimizer) + + def _get_sched_lr(self, lr: float, step: int): + if step < self.warmup_steps: + warmup_init_lr = self.warmup_init_lr or 0 + lr_step = (lr - warmup_init_lr) / self.warmup_steps + lr = warmup_init_lr + step * lr_step + else: + decay_factor = lr * self.warmup_steps**0.5 + lr = decay_factor * step**-0.5 + return lr + + def get_lr(self): + return [self._get_sched_lr(base_lr, self._step_count) for base_lr in self.base_lrs] diff --git a/audiocraft/optim/linear_warmup_lr_scheduler.py b/audiocraft/optim/linear_warmup_lr_scheduler.py new file mode 100644 index 0000000..03274a1 --- /dev/null +++ b/audiocraft/optim/linear_warmup_lr_scheduler.py @@ -0,0 +1,35 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +from torch.optim import Optimizer +from torch.optim.lr_scheduler import _LRScheduler + + +class LinearWarmupLRScheduler(_LRScheduler): + """Inverse square root LR scheduler. + + Args: + optimizer (Optimizer): Torch optimizer. + warmup_steps (int): Number of warmup steps. + warmup_init_lr (tp.Optional[float]): Initial learning rate + during warmup phase. When not set, use the provided learning rate. + """ + def __init__(self, optimizer: Optimizer, warmup_steps: int, warmup_init_lr: tp.Optional[float] = 0): + self.warmup_steps = warmup_steps + self.warmup_init_lr = warmup_init_lr + super().__init__(optimizer) + + def _get_sched_lr(self, lr: float, step: int): + if step < self.warmup_steps: + warmup_init_lr = self.warmup_init_lr or 0 + lr_step = (lr - warmup_init_lr) / self.warmup_steps + lr = warmup_init_lr + step * lr_step + return lr + + def get_lr(self): + return [self._get_sched_lr(base_lr, self.last_epoch) for base_lr in self.base_lrs] diff --git a/audiocraft/optim/polynomial_decay_lr_scheduler.py b/audiocraft/optim/polynomial_decay_lr_scheduler.py new file mode 100644 index 0000000..c5ea30b --- /dev/null +++ b/audiocraft/optim/polynomial_decay_lr_scheduler.py @@ -0,0 +1,47 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from torch.optim import Optimizer +from torch.optim.lr_scheduler import _LRScheduler + + +class PolynomialDecayLRScheduler(_LRScheduler): + """Polynomial decay LR scheduler. + + Args: + optimizer (Optimizer): Torch optimizer. + warmup_steps (int): Number of warmup steps. + total_steps (int): Total number of steps. + end_lr (float): Final learning rate to achieve over total number of steps. + zero_lr_warmup_steps (int): Number of steps with a learning rate of value 0. + power (float): Decay exponent. + """ + def __init__(self, optimizer: Optimizer, warmup_steps: int, total_steps: int, + end_lr: float = 0., zero_lr_warmup_steps: int = 0, power: float = 1.): + self.warmup_steps = warmup_steps + self.total_steps = total_steps + self.end_lr = end_lr + self.zero_lr_warmup_steps = zero_lr_warmup_steps + self.power = power + super().__init__(optimizer) + + def _get_sched_lr(self, lr: float, step: int): + if self.zero_lr_warmup_steps > 0 and step <= self.zero_lr_warmup_steps: + lr = 0 + elif self.warmup_steps > 0 and step <= self.warmup_steps + self.zero_lr_warmup_steps: + lr_ratio = (step - self.zero_lr_warmup_steps) / float(self.warmup_steps) + lr = lr_ratio * lr + elif step >= self.total_steps: + lr = self.end_lr + else: + total_warmup_steps = self.warmup_steps + self.zero_lr_warmup_steps + lr_range = lr - self.end_lr + pct_remaining = 1 - (step - total_warmup_steps) / (self.total_steps - total_warmup_steps) + lr = lr_range * pct_remaining ** self.power + self.end_lr + return lr + + def get_lr(self): + return [self._get_sched_lr(base_lr, self.last_epoch) for base_lr in self.base_lrs] diff --git a/audiocraft/py.typed b/audiocraft/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/audiocraft/quantization/__init__.py b/audiocraft/quantization/__init__.py new file mode 100644 index 0000000..1e0c7e4 --- /dev/null +++ b/audiocraft/quantization/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""RVQ.""" +# flake8: noqa +from .vq import ResidualVectorQuantizer +from .base import BaseQuantizer, DummyQuantizer, QuantizedResult diff --git a/audiocraft/quantization/base.py b/audiocraft/quantization/base.py new file mode 100644 index 0000000..a77fefb --- /dev/null +++ b/audiocraft/quantization/base.py @@ -0,0 +1,99 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Base class for all quantizers. +""" + +from dataclasses import dataclass, field +import typing as tp + +import torch +from torch import nn + + +@dataclass +class QuantizedResult: + x: torch.Tensor + codes: torch.Tensor + bandwidth: torch.Tensor # bandwidth in kb/s used, per batch item. + penalty: tp.Optional[torch.Tensor] = None + metrics: dict = field(default_factory=dict) + + +class BaseQuantizer(nn.Module): + """Base class for quantizers. + """ + + def forward(self, x: torch.Tensor, frame_rate: int) -> QuantizedResult: + """ + Given input tensor x, returns first the quantized (or approximately quantized) + representation along with quantized codes, bandwidth, and any penalty term for the loss. + Finally, this returns a dict of metrics to update logging etc. + Frame rate must be passed so that the bandwidth is properly computed. + """ + raise NotImplementedError() + + def encode(self, x: torch.Tensor) -> torch.Tensor: + """Encode a given input tensor with the specified sample rate at the given bandwidth.""" + raise NotImplementedError() + + def decode(self, codes: torch.Tensor) -> torch.Tensor: + """Decode the given codes to the quantized representation.""" + raise NotImplementedError() + + @property + def total_codebooks(self): + """Total number of codebooks.""" + raise NotImplementedError() + + @property + def num_codebooks(self): + """Number of active codebooks.""" + raise NotImplementedError() + + def set_num_codebooks(self, n: int): + """Set the number of active codebooks.""" + raise NotImplementedError() + + +class DummyQuantizer(BaseQuantizer): + """Fake quantizer that actually does not perform any quantization. + """ + def __init__(self): + super().__init__() + + def forward(self, x: torch.Tensor, frame_rate: int): + q = x.unsqueeze(1) + return QuantizedResult(x, q, torch.tensor(q.numel() * 32 * frame_rate / 1000 / len(x)).to(x)) + + def encode(self, x: torch.Tensor) -> torch.Tensor: + """Encode a given input tensor with the specified sample rate at the given bandwidth. + In the case of the DummyQuantizer, the codes are actually identical + to the input and resulting quantized representation as no quantization is done. + """ + return x.unsqueeze(1) + + def decode(self, codes: torch.Tensor) -> torch.Tensor: + """Decode the given codes to the quantized representation. + In the case of the DummyQuantizer, the codes are actually identical + to the input and resulting quantized representation as no quantization is done. + """ + return codes.squeeze(1) + + @property + def total_codebooks(self): + """Total number of codebooks.""" + return 1 + + @property + def num_codebooks(self): + """Total number of codebooks.""" + return self.total_codebooks + + def set_num_codebooks(self, n: int): + """Set the number of active codebooks.""" + raise AttributeError("Cannot override the number of codebooks for the dummy quantizer") diff --git a/audiocraft/quantization/core_vq.py b/audiocraft/quantization/core_vq.py new file mode 100644 index 0000000..01f2e44 --- /dev/null +++ b/audiocraft/quantization/core_vq.py @@ -0,0 +1,404 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +from einops import rearrange, repeat +import flashy +import torch +from torch import nn, einsum +import torch.nn.functional as F + + +def exists(val: tp.Optional[tp.Any]) -> bool: + return val is not None + + +def default(val: tp.Any, d: tp.Any) -> tp.Any: + return val if exists(val) else d + + +def l2norm(t): + return F.normalize(t, p=2, dim=-1) + + +def ema_inplace(moving_avg, new, decay: float): + moving_avg.data.mul_(decay).add_(new, alpha=(1 - decay)) + + +def laplace_smoothing(x, n_categories: int, epsilon: float = 1e-5): + return (x + epsilon) / (x.sum() + n_categories * epsilon) + + +def uniform_init(*shape: int): + t = torch.empty(shape) + nn.init.kaiming_uniform_(t) + return t + + +def sample_vectors(samples, num: int): + num_samples, device = samples.shape[0], samples.device + + if num_samples >= num: + indices = torch.randperm(num_samples, device=device)[:num] + else: + indices = torch.randint(0, num_samples, (num,), device=device) + + return samples[indices] + + +def kmeans(samples, num_clusters: int, num_iters: int = 10): + dim, dtype = samples.shape[-1], samples.dtype + + means = sample_vectors(samples, num_clusters) + + for _ in range(num_iters): + diffs = rearrange(samples, "n d -> n () d") - rearrange( + means, "c d -> () c d" + ) + dists = -(diffs ** 2).sum(dim=-1) + + buckets = dists.max(dim=-1).indices + bins = torch.bincount(buckets, minlength=num_clusters) + zero_mask = bins == 0 + bins_min_clamped = bins.masked_fill(zero_mask, 1) + + new_means = buckets.new_zeros(num_clusters, dim, dtype=dtype) + new_means.scatter_add_(0, repeat(buckets, "n -> n d", d=dim), samples) + new_means = new_means / bins_min_clamped[..., None] + + means = torch.where(zero_mask[..., None], means, new_means) + + return means, bins + + +def orthogonal_loss_fn(t): + # eq (2) from https://arxiv.org/abs/2112.00384 + n = t.shape[0] + normed_codes = l2norm(t) + identity = torch.eye(n, device=t.device) + cosine_sim = einsum("i d, j d -> i j", normed_codes, normed_codes) + return ((cosine_sim - identity) ** 2).sum() / (n ** 2) + + +class EuclideanCodebook(nn.Module): + """Codebook with Euclidean distance. + + Args: + dim (int): Dimension. + codebook_size (int): Codebook size. + kmeans_init (bool): Whether to use k-means to initialize the codebooks. + If set to true, run the k-means algorithm on the first training batch and use + the learned centroids as initialization. + kmeans_iters (int): Number of iterations used for k-means algorithm at initialization. + decay (float): Decay for exponential moving average over the codebooks. + epsilon (float): Epsilon value for numerical stability. + threshold_ema_dead_code (int): Threshold for dead code expiration. Replace any codes + that have an exponential moving average cluster size less than the specified threshold with + randomly selected vector from the current batch. + """ + def __init__( + self, + dim: int, + codebook_size: int, + kmeans_init: int = False, + kmeans_iters: int = 10, + decay: float = 0.8, + epsilon: float = 1e-5, + threshold_ema_dead_code: float = 2., + ): + super().__init__() + self.decay = decay + init_fn: tp.Union[tp.Callable[..., torch.Tensor], tp.Any] = uniform_init if not kmeans_init else torch.zeros + embed = init_fn(codebook_size, dim) + + self.codebook_size = codebook_size + + self.kmeans_iters = kmeans_iters + self.epsilon = epsilon + self.threshold_ema_dead_code = threshold_ema_dead_code + + self.register_buffer("inited", torch.Tensor([not kmeans_init])) + self.register_buffer("cluster_size", torch.zeros(codebook_size)) + self.register_buffer("embed", embed) + self.register_buffer("embed_avg", embed.clone()) + + @torch.jit.ignore + def init_embed_(self, data): + if self.inited: + return + + embed, cluster_size = kmeans(data, self.codebook_size, self.kmeans_iters) + self.embed.data.copy_(embed) + self.embed_avg.data.copy_(embed.clone()) + self.cluster_size.data.copy_(cluster_size) + self.inited.data.copy_(torch.Tensor([True])) + # Make sure all buffers across workers are in sync after initialization + flashy.distrib.broadcast_tensors(self.buffers()) + + def replace_(self, samples, mask): + modified_codebook = torch.where( + mask[..., None], sample_vectors(samples, self.codebook_size), self.embed + ) + self.embed.data.copy_(modified_codebook) + + def expire_codes_(self, batch_samples): + if self.threshold_ema_dead_code == 0: + return + + expired_codes = self.cluster_size < self.threshold_ema_dead_code + if not torch.any(expired_codes): + return + + batch_samples = rearrange(batch_samples, "... d -> (...) d") + self.replace_(batch_samples, mask=expired_codes) + flashy.distrib.broadcast_tensors(self.buffers()) + + def preprocess(self, x): + x = rearrange(x, "... d -> (...) d") + return x + + def quantize(self, x): + embed = self.embed.t() + dist = -( + x.pow(2).sum(1, keepdim=True) + - 2 * x @ embed + + embed.pow(2).sum(0, keepdim=True) + ) + embed_ind = dist.max(dim=-1).indices + return embed_ind + + def postprocess_emb(self, embed_ind, shape): + return embed_ind.view(*shape[:-1]) + + def dequantize(self, embed_ind): + quantize = F.embedding(embed_ind, self.embed) + return quantize + + def encode(self, x): + shape = x.shape + # pre-process + x = self.preprocess(x) + # quantize + embed_ind = self.quantize(x) + # post-process + embed_ind = self.postprocess_emb(embed_ind, shape) + return embed_ind + + def decode(self, embed_ind): + quantize = self.dequantize(embed_ind) + return quantize + + def forward(self, x): + shape, dtype = x.shape, x.dtype + x = self.preprocess(x) + self.init_embed_(x) + + embed_ind = self.quantize(x) + embed_onehot = F.one_hot(embed_ind, self.codebook_size).type(dtype) + embed_ind = self.postprocess_emb(embed_ind, shape) + quantize = self.dequantize(embed_ind) + + if self.training: + # We do the expiry of code at that point as buffers are in sync + # and all the workers will take the same decision. + self.expire_codes_(x) + ema_inplace(self.cluster_size, embed_onehot.sum(0), self.decay) + embed_sum = x.t() @ embed_onehot + ema_inplace(self.embed_avg, embed_sum.t(), self.decay) + cluster_size = ( + laplace_smoothing(self.cluster_size, self.codebook_size, self.epsilon) + * self.cluster_size.sum() + ) + embed_normalized = self.embed_avg / cluster_size.unsqueeze(1) + self.embed.data.copy_(embed_normalized) + + return quantize, embed_ind + + +class VectorQuantization(nn.Module): + """Vector quantization implementation. + Currently supports only euclidean distance. + + Args: + dim (int): Dimension + codebook_size (int): Codebook size + codebook_dim (int): Codebook dimension. If not defined, uses the specified dimension in dim. + decay (float): Decay for exponential moving average over the codebooks. + epsilon (float): Epsilon value for numerical stability. + kmeans_init (bool): Whether to use kmeans to initialize the codebooks. + kmeans_iters (int): Number of iterations used for kmeans initialization. + channels_last (bool): Channels are the last dimension in the input tensors. + commitment_weight (float): Weight for commitment loss. + orthogonal_reg_weight (float): Orthogonal regularization weights. + orthogonal_reg_active_codes_only (bool): Apply orthogonal regularization only on active codes. + orthogonal_reg_max_codes (optional int): Maximum number of codes to consider + for orthogonal regularization. + threshold_ema_dead_code (float): Threshold for dead code expiration. Replace any codes + that have an exponential moving average cluster size less than the specified threshold with + randomly selected vector from the current batch. + """ + def __init__( + self, + dim: int, + codebook_size: int, + codebook_dim: tp.Optional[int] = None, + decay: float = 0.8, + epsilon: float = 1e-5, + kmeans_init: bool = False, + kmeans_iters: int = 10, + threshold_ema_dead_code: float = 2., + channels_last: bool = False, + commitment_weight: float = 1., + orthogonal_reg_weight: float = 0.0, + orthogonal_reg_active_codes_only: bool = False, + orthogonal_reg_max_codes: tp.Optional[int] = None, + ): + super().__init__() + _codebook_dim: int = default(codebook_dim, dim) + + requires_projection = _codebook_dim != dim + self.project_in = (nn.Linear(dim, _codebook_dim) if requires_projection else nn.Identity()) + self.project_out = (nn.Linear(_codebook_dim, dim) if requires_projection else nn.Identity()) + + self.epsilon = epsilon + self.commitment_weight = commitment_weight + + self.orthogonal_reg_weight = orthogonal_reg_weight + self.orthogonal_reg_active_codes_only = orthogonal_reg_active_codes_only + self.orthogonal_reg_max_codes = orthogonal_reg_max_codes + + self._codebook = EuclideanCodebook(dim=_codebook_dim, codebook_size=codebook_size, + kmeans_init=kmeans_init, kmeans_iters=kmeans_iters, + decay=decay, epsilon=epsilon, + threshold_ema_dead_code=threshold_ema_dead_code) + self.codebook_size = codebook_size + + self.channels_last = channels_last + + @property + def codebook(self): + return self._codebook.embed + + @property + def inited(self): + return self._codebook.inited + + def _preprocess(self, x): + if not self.channels_last: + x = rearrange(x, "b d n -> b n d") + return x + + def _postprocess(self, quantize): + if not self.channels_last: + quantize = rearrange(quantize, "b n d -> b d n") + return quantize + + def encode(self, x): + x = self._preprocess(x) + x = self.project_in(x) + embed_in = self._codebook.encode(x) + return embed_in + + def decode(self, embed_ind): + quantize = self._codebook.decode(embed_ind) + quantize = self.project_out(quantize) + quantize = self._postprocess(quantize) + return quantize + + def forward(self, x): + device = x.device + x = self._preprocess(x) + + x = self.project_in(x) + quantize, embed_ind = self._codebook(x) + + if self.training: + quantize = x + (quantize - x).detach() + + loss = torch.tensor([0.0], device=device, requires_grad=self.training) + + if self.training: + if self.commitment_weight > 0: + commit_loss = F.mse_loss(quantize.detach(), x) + loss = loss + commit_loss * self.commitment_weight + + if self.orthogonal_reg_weight > 0: + codebook = self.codebook + + if self.orthogonal_reg_active_codes_only: + # only calculate orthogonal loss for the activated codes for this batch + unique_code_ids = torch.unique(embed_ind) + codebook = codebook[unique_code_ids] + + num_codes = codebook.shape[0] + if exists(self.orthogonal_reg_max_codes) and num_codes > self.orthogonal_reg_max_codes: + rand_ids = torch.randperm(num_codes, device=device)[:self.orthogonal_reg_max_codes] + codebook = codebook[rand_ids] + + orthogonal_reg_loss = orthogonal_loss_fn(codebook) + loss = loss + orthogonal_reg_loss * self.orthogonal_reg_weight + + quantize = self.project_out(quantize) + quantize = self._postprocess(quantize) + + return quantize, embed_ind, loss + + +class ResidualVectorQuantization(nn.Module): + """Residual vector quantization implementation. + + Follows Algorithm 1. in https://arxiv.org/pdf/2107.03312.pdf + """ + def __init__(self, *, num_quantizers, **kwargs): + super().__init__() + self.layers = nn.ModuleList( + [VectorQuantization(**kwargs) for _ in range(num_quantizers)] + ) + + def forward(self, x, n_q: tp.Optional[int] = None): + quantized_out = 0.0 + residual = x + + all_losses = [] + all_indices = [] + + n_q = n_q or len(self.layers) + + for i, layer in enumerate(self.layers[:n_q]): + quantized, indices, loss = layer(residual) + quantized = quantized.detach() + residual = residual - quantized + quantized_out = quantized_out + quantized + all_indices.append(indices) + all_losses.append(loss) + + if self.training: + # Solving subtle bug with STE and RVQ: https://github.com/facebookresearch/encodec/issues/25 + quantized_out = x + (quantized_out - x).detach() + + out_losses, out_indices = map(torch.stack, (all_losses, all_indices)) + return quantized_out, out_indices, out_losses + + def encode(self, x: torch.Tensor, n_q: tp.Optional[int] = None) -> torch.Tensor: + residual = x + all_indices = [] + n_q = n_q or len(self.layers) + for layer in self.layers[:n_q]: + indices = layer.encode(residual) + quantized = layer.decode(indices) + residual = residual - quantized + all_indices.append(indices) + out_indices = torch.stack(all_indices) + return out_indices + + def decode(self, q_indices: torch.Tensor) -> torch.Tensor: + quantized_out = torch.tensor(0.0, device=q_indices.device) + for i, indices in enumerate(q_indices): + layer = self.layers[i] + quantized = layer.decode(indices) + quantized_out = quantized_out + quantized + return quantized_out diff --git a/audiocraft/quantization/vq.py b/audiocraft/quantization/vq.py new file mode 100644 index 0000000..94bdcf0 --- /dev/null +++ b/audiocraft/quantization/vq.py @@ -0,0 +1,115 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math +import typing as tp + +import torch + +from .base import BaseQuantizer, QuantizedResult +from .core_vq import ResidualVectorQuantization + + +class ResidualVectorQuantizer(BaseQuantizer): + """Residual Vector Quantizer. + + Args: + dimension (int): Dimension of the codebooks. + n_q (int): Number of residual vector quantizers used. + q_dropout (bool): Random quantizer drop out at train time. + bins (int): Codebook size. + decay (float): Decay for exponential moving average over the codebooks. + kmeans_init (bool): Whether to use kmeans to initialize the codebooks. + kmeans_iters (int): Number of iterations used for kmeans initialization. + threshold_ema_dead_code (float): Threshold for dead code expiration. Replace any codes + that have an exponential moving average cluster size less than the specified threshold with + randomly selected vector from the current batch. + orthogonal_reg_weight (float): Orthogonal regularization weights. + orthogonal_reg_active_codes_only (bool): Apply orthogonal regularization only on active codes. + orthogonal_reg_max_codes (optional int): Maximum number of codes to consider. + for orthogonal regularization. + """ + def __init__( + self, + dimension: int = 256, + n_q: int = 8, + q_dropout: bool = False, + bins: int = 1024, + decay: float = 0.99, + kmeans_init: bool = True, + kmeans_iters: int = 10, + threshold_ema_dead_code: float = 2., + orthogonal_reg_weight: float = 0.0, + orthogonal_reg_active_codes_only: bool = False, + orthogonal_reg_max_codes: tp.Optional[int] = None, + ): + super().__init__() + self.max_n_q = n_q + self.n_q = n_q + self.q_dropout = q_dropout + self.dimension = dimension + self.bins = bins + self.decay = decay + self.kmeans_init = kmeans_init + self.kmeans_iters = kmeans_iters + self.threshold_ema_dead_code = threshold_ema_dead_code + self.orthogonal_reg_weight = orthogonal_reg_weight + self.orthogonal_reg_active_codes_only = orthogonal_reg_active_codes_only + self.orthogonal_reg_max_codes = orthogonal_reg_max_codes + self.vq = ResidualVectorQuantization( + dim=self.dimension, + codebook_size=self.bins, + num_quantizers=self.n_q, + decay=self.decay, + kmeans_init=self.kmeans_init, + kmeans_iters=self.kmeans_iters, + threshold_ema_dead_code=self.threshold_ema_dead_code, + orthogonal_reg_weight=self.orthogonal_reg_weight, + orthogonal_reg_active_codes_only=self.orthogonal_reg_active_codes_only, + orthogonal_reg_max_codes=self.orthogonal_reg_max_codes, + channels_last=False + ) + + def forward(self, x: torch.Tensor, frame_rate: int): + n_q = self.n_q + if self.training and self.q_dropout: + n_q = int(torch.randint(1, self.n_q + 1, (1,)).item()) + bw_per_q = math.log2(self.bins) * frame_rate / 1000 + quantized, codes, commit_loss = self.vq(x, n_q=n_q) + codes = codes.transpose(0, 1) + # codes is [B, K, T], with T frames, K nb of codebooks. + bw = torch.tensor(n_q * bw_per_q).to(x) + return QuantizedResult(quantized, codes, bw, penalty=torch.mean(commit_loss)) + + def encode(self, x: torch.Tensor) -> torch.Tensor: + """Encode a given input tensor with the specified frame rate at the given bandwidth. + The RVQ encode method sets the appropriate number of quantizer to use + and returns indices for each quantizer. + """ + n_q = self.n_q + codes = self.vq.encode(x, n_q=n_q) + codes = codes.transpose(0, 1) + # codes is [B, K, T], with T frames, K nb of codebooks. + return codes + + def decode(self, codes: torch.Tensor) -> torch.Tensor: + """Decode the given codes to the quantized representation.""" + # codes is [B, K, T], with T frames, K nb of codebooks, vq.decode expects [K, B, T]. + codes = codes.transpose(0, 1) + quantized = self.vq.decode(codes) + return quantized + + @property + def total_codebooks(self): + return self.max_n_q + + @property + def num_codebooks(self): + return self.n_q + + def set_num_codebooks(self, n: int): + assert n > 0 and n <= self.max_n_q + self.n_q = n diff --git a/audiocraft/solvers/__init__.py b/audiocraft/solvers/__init__.py new file mode 100644 index 0000000..ae19f3a --- /dev/null +++ b/audiocraft/solvers/__init__.py @@ -0,0 +1,17 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +Solvers. A Solver is a training recipe, combining the dataloaders, models, +optimizer, losses etc into a single convenient object. +""" + +# flake8: noqa +from .audiogen import AudioGenSolver +from .builders import get_solver +from .base import StandardSolver +from .compression import CompressionSolver +from .musicgen import MusicGenSolver +from .diffusion import DiffusionSolver diff --git a/audiocraft/solvers/audiogen.py b/audiocraft/solvers/audiogen.py new file mode 100644 index 0000000..1568f97 --- /dev/null +++ b/audiocraft/solvers/audiogen.py @@ -0,0 +1,19 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from . import builders, musicgen + + +class AudioGenSolver(musicgen.MusicGenSolver): + """Solver for AudioGen re-implementation training task. + + Note that this implementation does not strictly follows + the method proposed in https://arxiv.org/abs/2209.15352 + but is derived from MusicGen's training pipeline. + + More information can be found in the AudioGen model card. + """ + DATASET_TYPE: builders.DatasetType = builders.DatasetType.SOUND diff --git a/audiocraft/solvers/base.py b/audiocraft/solvers/base.py new file mode 100644 index 0000000..0432e44 --- /dev/null +++ b/audiocraft/solvers/base.py @@ -0,0 +1,631 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from abc import ABC, abstractmethod +from contextlib import contextmanager +from pathlib import Path +import typing as tp + +import flashy +import omegaconf +import torch +from torch import nn + +from .. import optim +from ..optim import fsdp +from ..utils import checkpoint +from ..utils.autocast import TorchAutocast +from ..utils.best_state import BestStateDictManager +from ..utils.deadlock import DeadlockDetect +from ..utils.profiler import Profiler +from ..utils.utils import copy_state, dict_from_config, model_hash, with_rank_rng + + +class StandardSolver(ABC, flashy.BaseSolver): + """Standard solver for AudioCraft. + + The standard solver implements a base training loop with the following stages: + train, valid, evaluate and generate that are expected to be all defined for + solvers in AudioCraft. It also provides a nice default management of Dora history replay, + checkpoint management across epoch, and logging configuration. + + AudioCraft solvers must inherit from the StandardSolver and define the methods + associated to each stage as well as the show, build_model and build_dataloaders methods. + """ + def __init__(self, cfg: omegaconf.DictConfig): + super().__init__() + self.logger.info(f"Instantiating solver {self.__class__.__name__} for XP {self.xp.sig}") + self.logger.info(f"All XP logs are stored in {self.xp.folder}") + self.cfg = cfg + self.device = cfg.device + self.model: nn.Module + self._continue_best_source_keys = ['best_state', 'fsdp_best_state'] + self._fsdp_modules: tp.List[fsdp.FSDP] = [] + self._ema_sources: nn.ModuleDict = nn.ModuleDict() + self.ema: tp.Optional[optim.ModuleDictEMA] = None + self.dataloaders: tp.Dict[str, torch.utils.data.DataLoader] = dict() + self._log_updates = self.cfg.logging.get('log_updates', 10) + if self.cfg.logging.log_tensorboard: + self.init_tensorboard(**self.cfg.get('tensorboard')) + if self.cfg.logging.log_wandb and self: + self.init_wandb(**self.cfg.get('wandb')) + # keep a copy of the best performing state for stateful objects + # used for evaluation and generation stages + dtype_best: tp.Optional[torch.dtype] = None + if self.cfg.fsdp.use: + dtype_best = getattr(torch, self.cfg.fsdp.param_dtype) # type: ignore + assert isinstance(dtype_best, torch.dtype) + elif self.cfg.autocast: + dtype_best = getattr(torch, self.cfg.autocast_dtype) # type: ignore + assert isinstance(dtype_best, torch.dtype) + self.best_state: BestStateDictManager = BestStateDictManager(dtype=dtype_best) + # Hacky support for keeping a copy of the full best state in rank0. + self.fsdp_best_state: tp.Dict[str, tp.Any] = {} + self.register_stateful('best_state', 'fsdp_best_state') # register best_state object to keep it in state_dict + self._new_best_state: bool = False # should save a new checkpoint + # instantiate datasets and appropriate number of updates per epoch + self.build_dataloaders() + if self.cfg.execute_only is None: + assert 'train' in self.dataloaders, "The train dataset split must be provided." + assert 'valid' in self.dataloaders, "The valid dataset split must be provided." + self.train_updates_per_epoch = len(self.dataloaders['train']) if 'train' in self.dataloaders else 0 + if self.cfg.optim.updates_per_epoch: + self.train_updates_per_epoch = self.cfg.optim.updates_per_epoch + self.total_updates = self.train_updates_per_epoch * self.cfg.optim.epochs + # instantiate model & exponential moving average on the model + self.build_model() + self.logger.info("Model hash: %s", model_hash(self.model)) + assert 'model' in self.stateful.sources, \ + "Please register the model to stateful with self.register_stateful('model') in build_model." + self.profiler = Profiler(self.model, **self.cfg.profiler) + self.initialize_ema() + self.register_stateful('ema') + assert self.ema is None or 'ema' in self.stateful.sources, \ + "Please register the ema to stateful with self.register_stateful('ema') in build_model." + self.deadlock_detect = DeadlockDetect(**self.cfg.deadlock) + # basic statistics on the trained model + model_size = sum(p.numel() for p in self.model.parameters() if p.requires_grad) / 1e6 + # one copy of grad, one copy of momentum, one copy of denominator and model weights. + # and 4 bytes for each float! + mem_usage = model_size * 4 * 4 / 1000 + self.logger.info("Model size: %.2f M params", model_size) + self.logger.info("Base memory usage, with model, grad and optim: %.2f GB", mem_usage) + + @property + def autocast(self): + """Convenient autocast (or not) using the solver configuration.""" + return TorchAutocast(enabled=self.cfg.autocast, device_type=self.device, dtype=self.autocast_dtype) + + def _get_state_source(self, name) -> flashy.state.StateDictSource: + # Internal utility to get a state source from the solver + return self.stateful.sources[name] + + @property + def best_metric_name(self) -> tp.Optional[str]: + """Metric name used to identify the best state. This metric should be stored in the metrics + used on the stage for best state identification (most likely, `valid`). If None, then + no best state is saved. + """ + return None + + def register_best_state(self, *args: str): + """Register state sources in `BestStateDictManager` to keep their best states along with their + latest states. The best state will be used at evaluation stages instead of the latest states. + + Shortcut around `BestStateDictManager.register` method. You can pass any number of + attribute, included nested attributes and those will be included into the checkpoints + and automatically restored when `BaseSolver.restore` is called. + """ + for name in args: + state_source = self._get_state_source(name) + assert name in self.stateful.sources, "Registered states in best should be registered in stateful first!" + self.best_state.register(name, state_source) + + def register_ema(self, *args: str): + """Register state sources for exponential moving average. + + The registered sources are used to instantiate a ModuleDictEMA instance. + The ModuleDictEMA keeps a `nn.ModuleDict` module that is updated when self.ema.step() is called + and swapped with the original state sources with self.swap_ema_state() method. + + Usage: + self.register_ema('model') + """ + assert self.ema is None, "Cannot register state source to already instantiated EMA." + for name in args: + self._ema_sources[name] = getattr(self, name) + + def wrap_with_fsdp(self, model: torch.nn.Module, *args, **kwargs): + model = fsdp.wrap_with_fsdp(self.cfg.fsdp, model, *args, **kwargs) + if isinstance(model, fsdp.FSDP): + self._fsdp_modules.append(model) + return model + + def update_best_state_from_stage(self, stage_name: str = 'valid'): + """Update latest best state based on pending metrics of a given stage. This method relies + on the `BestStateDictManager.update` method to update the best state_dict with latest weights + if the registered states happen to match to the best performing setup. + """ + if self.best_metric_name is None: + # when no best metric is defined, the last state is always the best + self._new_best_state = True + self.logger.info("Updating best state with current state.") + else: + assert stage_name in self._pending_metrics, f"Metrics for stage {stage_name} not found." + assert self.best_metric_name in self._pending_metrics[stage_name], \ + f"Best metric not found in {stage_name} metrics. Cannot register best state" + current_score = self._pending_metrics[stage_name][self.best_metric_name] + all_best_metric_scores = [ + past_metrics[stage_name][self.best_metric_name] + for past_metrics in self.history + ] + all_best_metric_scores.append(current_score) + best_score = min(all_best_metric_scores) + self._new_best_state = current_score == best_score + if self._new_best_state: + old_best = min(all_best_metric_scores[:-1] + [float('inf')]) + self.logger.info( + f"New best state with {self.best_metric_name}={current_score:.3f} (was {old_best:.3f})") + + if self._new_best_state: + if self.cfg.fsdp.use: + # this will give an empty state dict on all ranks but the rank 0 + # which will have a copy in memory of the full model. + with fsdp.switch_to_full_state_dict(self._fsdp_modules): + for name in self.best_state.states.keys(): + state_source = self._get_state_source(name) + self.best_state.update(name, state_source) + # we save to a different dict. + self.fsdp_best_state.update(self.best_state.state_dict()) + # We cannot efficiently load fsdp_best_state when using FSDP, + # so we have do do a second pass, with the local shards. + for name in self.best_state.states.keys(): + state_source = self._get_state_source(name) + self.best_state.update(name, state_source) + + def _load_new_state_dict(self, state_dict: dict) -> dict: + old_states = {} + for name, new_state in state_dict.items(): + state_source = self._get_state_source(name) + old_states[name] = copy_state(state_source.state_dict()) + state_source.load_state_dict(new_state) + return old_states + + @contextmanager + def swap_best_state(self): + self.logger.debug(f"Swapping to best state for: {', '.join(self.best_state.state_dict().keys())}") + old_states = self._load_new_state_dict(self.best_state.state_dict()) + try: + yield + finally: + self.logger.debug("Swapping back from best to original state") + for name, old_state in old_states.items(): + state_source = self._get_state_source(name) + state_source.load_state_dict(old_state) + + @contextmanager + def swap_ema_state(self): + if self.ema is None: + yield + else: + ema_state_dict = self.ema.state_dict()['state'] + self.logger.debug(f"Swapping to EMA state for: {', '.join(ema_state_dict.keys())}") + old_states = self._load_new_state_dict(ema_state_dict) + try: + yield + finally: + self.logger.debug("Swapping back from EMA state to original state") + for name, old_state in old_states.items(): + state_source = self._get_state_source(name) + state_source.load_state_dict(old_state) + + @property + def is_training(self): + return self.current_stage == 'train' + + def log_model_summary(self, model: nn.Module): + """Log model summary, architecture and size of the model.""" + self.logger.info(model) + mb = sum(p.numel() for p in model.parameters()) * 4 / 2 ** 20 + self.logger.info("Size: %.1f MB", mb) + + @abstractmethod + def build_model(self): + """Method to implement to initialize model.""" + ... + + def initialize_ema(self): + """Initialize exponential moving average with the registered sources. + EMA object is created if the optim.ema.model.decay value is non-null. + """ + from .builders import get_ema + self.ema = get_ema(self._ema_sources, self.cfg.optim.ema) + if self.ema is None: + self.logger.info('No EMA on the model.') + else: + assert self.cfg.optim.ema.updates > 0 + self.logger.info( + f'Initializing EMA on the model with decay = {self.ema.decay}' + f' every {self.cfg.optim.ema.updates} updates' + ) + + @abstractmethod + def build_dataloaders(self): + """Method to implement to initialize dataloaders.""" + ... + + @abstractmethod + def show(self): + """Method to log any information without running the job.""" + ... + + @property + def log_updates(self): + # convenient access to log updates + return self._log_updates + + def checkpoint_path(self, **kwargs): + kwargs.setdefault('use_fsdp', self.cfg.fsdp.use) + return self.folder / checkpoint.checkpoint_name(**kwargs) + + def epoch_checkpoint_path(self, epoch: int, **kwargs): + kwargs.setdefault('use_fsdp', self.cfg.fsdp.use) + return self.folder / checkpoint.checkpoint_name(str(epoch), **kwargs) + + def checkpoint_path_with_name(self, name: str, **kwargs): + kwargs.setdefault('use_fsdp', self.cfg.fsdp.use) + return self.folder / checkpoint.checkpoint_name(name=name, **kwargs) + + def save_checkpoints(self): + """Save checkpoint, optionally keeping a copy for a given epoch.""" + is_sharded = self.cfg.fsdp.use + if not flashy.distrib.is_rank_zero() and not is_sharded: + return + self.logger.info("Model hash: %s", model_hash(self.model)) + state = self.state_dict() + epoch = self.epoch - 1 # pushing metrics will increase the epoch in Flashy, so we do -1 here + + # save minimal state_dict as new checkpoint every X epoch + if self.cfg.checkpoint.save_every: + if epoch % self.cfg.checkpoint.save_every == 0: + minimal_state = state + if self.cfg.checkpoint.keep_every_states is not None and len(self.cfg.checkpoint.keep_every_states) > 0: + minimal_state = { + name: source for name, source in state.items() + if name in self.cfg.checkpoint.keep_every_states + } + epoch_checkpoint_path = self.epoch_checkpoint_path(epoch) + checkpoint.save_checkpoint(minimal_state, epoch_checkpoint_path, is_sharded) + + # save checkpoint as latest checkpoint + if self.cfg.checkpoint.save_last: + last_checkpoint_path = self.checkpoint_path() + checkpoint.save_checkpoint(state, last_checkpoint_path, is_sharded) + + # flush any stale checkpoint to reduce disk footprint + checkpoint.flush_stale_checkpoints(self.checkpoint_path()) + + def load_from_pretrained(self, name: str) -> dict: + raise NotImplementedError("Solver does not provide a way to load pretrained models.") + + def load_checkpoints(self, load_best: bool = False, ignore_state_keys: tp.List[str] = []) -> tp.Optional[dict]: + """Load last checkpoint or the one specified in continue_from. + + Args: + load_best (bool): Whether to load from best state dict or not. + Best state dict is always used when not loading the current xp. + ignore_state_keys (list of str): List of sources to ignore when loading the state, e.g. `optimizer`. + Returns: + state (dict, optional): The loaded state dictionary. + """ + # load checkpoints from xp folder or cfg.continue_from + is_sharded = self.cfg.fsdp.use + load_from_path: tp.Optional[Path] = None + checkpoint_source: tp.Optional[checkpoint.CheckpointSource] = None + + if load_best: + self.logger.info("Trying to load state_dict from best state.") + + state: tp.Optional[dict] = None + rank0_checkpoint_path = self.checkpoint_path(use_fsdp=False) + current_checkpoint_path = self.checkpoint_path() + _pretrained_prefix = '//pretrained/' + continue_pretrained = (self.cfg.continue_from or '').startswith(_pretrained_prefix) + if rank0_checkpoint_path.exists(): + self.logger.info(f"Loading existing checkpoint: {current_checkpoint_path}") + load_from_path = current_checkpoint_path + checkpoint.check_sharded_checkpoint(current_checkpoint_path, rank0_checkpoint_path) + checkpoint_source = checkpoint.CheckpointSource.CURRENT_XP + elif self.cfg.continue_from and not continue_pretrained: + self.logger.info(f"Continuing from provided checkpoint: {self.cfg.continue_from}") + # we're always continuing from consolidated checkpoints: self.cfg.use_fsdp and not continue_best + load_from_path = checkpoint.resolve_checkpoint_path(self.cfg.continue_from, use_fsdp=False) + if load_from_path is None: + self.logger.error('Could not resolve the continue_from checkpoint %s', self.cfg.continue_from) + raise RuntimeError(f'Could not resolve continue_from checkpoint {self.cfg.continue_from}') + checkpoint_source = checkpoint.CheckpointSource.OTHER + + if load_from_path is not None: + state = checkpoint.load_checkpoint(load_from_path, is_sharded) + elif continue_pretrained: + self.logger.info("Loading a pretrained model. Ignoring 'load_best' and 'ignore_state_keys' params.") + state = self.load_from_pretrained(self.cfg.continue_from[len(_pretrained_prefix):]) + checkpoint_source = checkpoint.CheckpointSource.PRETRAINED + load_best = True + + # checkpoints are not from the current xp, we only retrieve the best state + if checkpoint_source is not None and checkpoint_source != checkpoint.CheckpointSource.CURRENT_XP: + assert state is not None + self.logger.info("Checkpoint source is not the current xp: Load state_dict from best state.") + load_best = True + state = {key: state[key] for key in self._continue_best_source_keys if key in state} + # loaded checkpoints are FSDP checkpoints: we're reading the best state + # from FSDP and we drop the regular best_state + if 'fsdp_best_state' in state and state['fsdp_best_state']: + state.pop('best_state', None) + self.logger.info("... Loaded checkpoint has FSDP best state") + # FSDP is enabled in the solver, if the loaded checkpoints do not have FSDP support + # then we're initializing FSDP best state with the regular best state + elif self.cfg.fsdp.use: + if 'fsdp_best_state' not in state or not state['fsdp_best_state']: + # we swap non-FSDP checkpoints best_state to FSDP-compatible best state + state['fsdp_best_state'] = state.pop('best_state') + self.logger.info("... Loaded checkpoint does not have FSDP best state. Use regular best state") + + if state is not None: + if load_best: + self.logger.info("Ignoring keys when loading best %r", ignore_state_keys) + for key in set(ignore_state_keys): + if key in state: + state.pop(key) + has_best_state = 'best_state' in state or 'fsdp_best_state' in state + assert has_best_state, ("Trying to load best state but neither 'best_state'", + " or 'fsdp_best_state' found in checkpoints.") + self.load_state_dict(state) + + # for FSDP, let's make extra sure nothing bad happened with out of sync + # checkpoints across workers. + epoch = float(self.epoch) + avg_epoch = flashy.distrib.average_metrics({'epoch': epoch})['epoch'] + if avg_epoch != epoch: + raise RuntimeError( + f"Inconsistent loading of checkpoints happened, our epoch is {epoch} " + f"but average of epochs is {avg_epoch}, at least one gpu must have a " + "different epoch number.") + + # on load_best, properly reinitialize state_dict, best states and ema + # otherwise we load from the current xp and don't alter anything + if load_best: + self.logger.info("Loading state_dict from best state.") + if not self.cfg.fsdp.use and self.fsdp_best_state: + # loading from an FSDP checkpoint but with FSDP deactivated + self.logger.info("... Loading from FSDP best state dict.") + self.best_state.load_state_dict(self.fsdp_best_state) + + # if load_best, we permanently override the regular state_dict with the best state + if self.cfg.fsdp.use: + self.logger.info("FSDP is used, loading from FSDP best state.") + with fsdp.switch_to_full_state_dict(self._fsdp_modules): + # this might be really fragile but okay for now. + self.load_state_dict(self.fsdp_best_state) + else: + # we permanently swap the stateful objects to their best state + self._load_new_state_dict(self.best_state.state_dict()) + + # the EMA modules should also be instantiated with best state. + # the easiest way to do so is to reinitialize a new EMA with best state loaded. + if self.ema is not None: + self.logger.info("Re-initializing EMA from best state") + self.initialize_ema() + + if self.cfg.fsdp.use: + self.logger.info("Re-initializing best state after using FSDP best state.") + for name in self.best_state.states.keys(): + state_source = self._get_state_source(name) + self.best_state.update(name, state_source) + + return state + + def restore(self, load_best: bool = False, replay_metrics: bool = False, + ignore_state_keys: tp.List[str] = []) -> bool: + """Restore the status of a solver for a given xp. + + Args: + load_best (bool): if `True`, load the best state from the checkpoint. + replay_metrics (bool): if `True`, logs all the metrics from past epochs. + ignore_state_keys (list of str): list of sources to ignore when loading the state, e.g. `optimizer`. + """ + self.logger.info("Restoring weights and history.") + restored_checkpoints = self.load_checkpoints(load_best, ignore_state_keys) + + self.logger.info("Model hash: %s", model_hash(self.model)) + + if replay_metrics and len(self.history) > 0: + self.logger.info("Replaying past metrics...") + for epoch, stages in enumerate(self.history): + for stage_name, metrics in stages.items(): + # We manually log the metrics summary to the result logger + # as we don't want to add them to the pending metrics + self.result_logger._log_summary(stage_name, metrics, step=epoch + 1, step_name='epoch', + formatter=self.get_formatter(stage_name)) + return restored_checkpoints is not None + + def commit(self, save_checkpoints: bool = True): + """Commit metrics to dora and save checkpoints at the end of an epoch.""" + # we override commit to introduce more complex checkpoint saving behaviors + self.history.append(self._pending_metrics) # This will increase self.epoch + if save_checkpoints: + self.save_checkpoints() + self._start_epoch() + if flashy.distrib.is_rank_zero(): + self.xp.link.update_history(self.history) + + def run_epoch(self): + """Run a single epoch with all stages. + + Metrics for a given stage are stored in _pending_metrics and committed by the solver afterwards. + Children solvers can extend this method with custom behavior, e.g.: + + def run_epoch(self): + ... # custom code + super().run_epoch() + ... # custom code + """ + self.run_stage('train', self.train) + with torch.no_grad(): + with self.swap_ema_state(): + self.run_stage('valid', self.valid) + # the best state is updated with EMA states if available + self.update_best_state_from_stage('valid') + with self.swap_best_state(): + if self.should_run_stage('evaluate'): + self.run_stage('evaluate', self.evaluate) + if self.should_run_stage('generate'): + self.run_stage('generate', with_rank_rng()(self.generate)) + + def run(self): + """Training loop.""" + assert len(self.state_dict()) > 0 + self.restore(replay_metrics=True) # load checkpoint and replay history + self.log_hyperparams(dict_from_config(self.cfg)) + for epoch in range(self.epoch, self.cfg.optim.epochs + 1): + if self.should_stop_training(): + return + self.run_epoch() + # Commit will send the metrics to Dora and save checkpoints by default. + self.commit() + + def should_stop_training(self) -> bool: + """Check whether we should stop training or not.""" + return self.epoch > self.cfg.optim.epochs + + def should_run_stage(self, stage_name) -> bool: + """Check whether we want to run the specified stages.""" + stage_every = self.cfg[stage_name].get('every', None) + is_last_epoch = self.epoch == self.cfg.optim.epochs + is_epoch_every = (stage_every and self.epoch % stage_every == 0) + return is_last_epoch or is_epoch_every + + @abstractmethod + def run_step(self, idx: int, batch: tp.Any, metrics: dict): + """Perform one training or valid step on a given batch.""" + ... + + def common_train_valid(self, dataset_split: str, **kwargs: tp.Any): + """Common logic for train and valid stages.""" + self.model.train(self.is_training) + + loader = self.dataloaders[dataset_split] + # get a different order for distributed training, otherwise this will get ignored + if flashy.distrib.world_size() > 1 \ + and isinstance(loader.sampler, torch.utils.data.distributed.DistributedSampler): + loader.sampler.set_epoch(self.epoch) + updates_per_epoch = self.train_updates_per_epoch if self.is_training else len(loader) + if self.cfg.benchmark_no_load: + self.logger.warning("Fake loading for benchmarking: re-using first batch") + batch = next(iter(loader)) + loader = [batch] * updates_per_epoch # type: ignore + lp = self.log_progress(self.current_stage, loader, total=updates_per_epoch, updates=self.log_updates) + average = flashy.averager() # epoch wise average + instant_average = flashy.averager() # average between two logging + metrics: dict = {} + + with self.profiler, self.deadlock_detect: # profiler will only run for the first 20 updates. + for idx, batch in enumerate(lp): + self.deadlock_detect.update('batch') + if idx >= updates_per_epoch: + break + metrics = {} + metrics = self.run_step(idx, batch, metrics) + self.deadlock_detect.update('step') + # run EMA step + if self.ema is not None and self.is_training and (idx + 1) % self.cfg.optim.ema.updates == 0: + self.logger.debug("EMA model step") + self.ema.step() + self.deadlock_detect.update('ema') + self.profiler.step() + instant_metrics = instant_average(metrics) + if lp.update(**instant_metrics): + instant_average = flashy.averager() # reset averager between two logging + metrics = average(metrics) # epoch wise average + self.deadlock_detect.update('end_batch') + + metrics = flashy.distrib.average_metrics(metrics, updates_per_epoch) + return metrics + + def train(self): + """Train stage.""" + return self.common_train_valid('train') + + def valid(self): + """Valid stage.""" + return self.common_train_valid('valid') + + @abstractmethod + def evaluate(self): + """Evaluate stage.""" + ... + + @abstractmethod + def generate(self): + """Generate stage.""" + ... + + def run_one_stage(self, stage_name: str): + """Run only the specified stage. + This method is useful to only generate samples from a trained experiment + or rerun the validation or evaluation stages. + """ + fn = { + 'generate': with_rank_rng()(self.generate), + 'evaluate': self.evaluate, + 'valid': self.valid, + } + if stage_name not in fn: + raise ValueError(f'Trying to run stage {stage_name} is not supported.') + assert len(self.state_dict()) > 0 + self._start_epoch() + with torch.no_grad(), self.swap_best_state(): + self.run_stage(stage_name, fn[stage_name]) + if not self.cfg.execute_inplace: + self.commit(save_checkpoints=False) + + @staticmethod + def get_eval_solver_from_sig(sig: str, dtype: tp.Optional[str] = None, + device: tp.Optional[str] = None, autocast: bool = True, + batch_size: tp.Optional[int] = None, + override_cfg: tp.Optional[tp.Union[dict, omegaconf.DictConfig]] = None, + **kwargs): + """Mostly a convenience function around audiocraft.train.get_solver_from_sig, + populating all the proper param, deactivating EMA, FSDP, loading the best state, + basically all you need to get a solver ready to "play" with in single GPU mode + and with minimal memory overhead. + + Args: + sig (str): signature to load. + dtype (str or None): potential dtype, as a string, i.e. 'float16'. + device (str or None): potential device, as a string, i.e. 'cuda'. + override_cfg (dict or omegaconf.DictConfig or None): potential device, as a string, i.e. 'cuda'. + """ + from audiocraft import train + our_override_cfg: tp.Dict[str, tp.Any] = {'optim': {'ema': {'use': False}}} + our_override_cfg['autocast'] = autocast + if dtype is not None: + our_override_cfg['dtype'] = dtype + if device is not None: + our_override_cfg['device'] = device + if batch_size is not None: + our_override_cfg['dataset'] = {'batch_size': batch_size} + if override_cfg is None: + override_cfg = {} + override_cfg = omegaconf.OmegaConf.merge( + omegaconf.DictConfig(override_cfg), omegaconf.DictConfig(our_override_cfg)) # type: ignore + solver = train.get_solver_from_sig( + sig, override_cfg=override_cfg, + load_best=True, disable_fsdp=True, + ignore_state_keys=['optimizer', 'ema'], **kwargs) + solver.model.eval() + return solver diff --git a/audiocraft/solvers/builders.py b/audiocraft/solvers/builders.py new file mode 100644 index 0000000..e39993a --- /dev/null +++ b/audiocraft/solvers/builders.py @@ -0,0 +1,377 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +All the functions to build the relevant solvers and used objects +from the Hydra config. +""" + +from enum import Enum +import logging +import typing as tp + +import dora +import flashy +import omegaconf +import torch +from torch import nn +from torch.optim import Optimizer + +# LRScheduler was renamed in some torch versions +try: + from torch.optim.lr_scheduler import LRScheduler # type: ignore +except ImportError: + from torch.optim.lr_scheduler import _LRScheduler as LRScheduler + +from .base import StandardSolver +from .. import adversarial, data, losses, metrics, optim +from ..utils.utils import dict_from_config, get_loader + + +logger = logging.getLogger(__name__) + + +class DatasetType(Enum): + AUDIO = "audio" + MUSIC = "music" + SOUND = "sound" + JASCO = "jasco" + + +def get_solver(cfg: omegaconf.DictConfig) -> StandardSolver: + """Instantiate solver from config.""" + from .audiogen import AudioGenSolver + from .compression import CompressionSolver + from .musicgen import MusicGenSolver + from .diffusion import DiffusionSolver + from .magnet import MagnetSolver, AudioMagnetSolver + from .watermark import WatermarkSolver + from .jasco import JascoSolver + klass = { + 'compression': CompressionSolver, + 'musicgen': MusicGenSolver, + 'audiogen': AudioGenSolver, + 'magnet': MagnetSolver, + 'audio_magnet': AudioMagnetSolver, + 'lm': MusicGenSolver, # backward compatibility + 'diffusion': DiffusionSolver, + 'sound_lm': AudioGenSolver, # backward compatibility + 'watermarking': WatermarkSolver, + 'jasco': JascoSolver, + }[cfg.solver] + return klass(cfg) # type: ignore + + +def get_optim_parameter_groups(model: nn.Module): + """Create parameter groups for the model using the appropriate method + if defined for each modules, to create the different groups. + + Args: + model (nn.Module): torch model + Returns: + List of parameter groups + """ + seen_params: tp.Set[nn.parameter.Parameter] = set() + other_params = [] + groups = [] + for name, module in model.named_modules(): + if hasattr(module, 'make_optim_group'): + group = module.make_optim_group() + params = set(group['params']) + assert params.isdisjoint(seen_params) + seen_params |= set(params) + groups.append(group) + for param in model.parameters(): + if param not in seen_params: + other_params.append(param) + groups.insert(0, {'params': other_params}) + parameters = groups + return parameters + + +def get_optimizer(params: tp.Union[nn.Module, tp.Iterable[torch.Tensor]], cfg: omegaconf.DictConfig) -> Optimizer: + """Build torch optimizer from config and set of parameters. + Supported optimizers: Adam, AdamW + + Args: + params (nn.Module or iterable of torch.Tensor): Parameters to optimize. + cfg (DictConfig): Optimization-related configuration. + Returns: + torch.optim.Optimizer. + """ + if 'optimizer' not in cfg: + if getattr(cfg, 'optim', None) is not None: + raise KeyError("Optimizer not found in config. Try instantiating optimizer from cfg.optim?") + else: + raise KeyError("Optimizer not found in config.") + + parameters = get_optim_parameter_groups(params) if isinstance(params, nn.Module) else params + optimizer: torch.optim.Optimizer + if cfg.optimizer == 'adam': + optimizer = torch.optim.Adam(parameters, lr=cfg.lr, **cfg.adam) + elif cfg.optimizer == 'adamw': + optimizer = torch.optim.AdamW(parameters, lr=cfg.lr, **cfg.adam) + elif cfg.optimizer == 'dadam': + optimizer = optim.DAdaptAdam(parameters, lr=cfg.lr, **cfg.adam) + else: + raise ValueError(f"Unsupported Optimizer: {cfg.optimizer}") + return optimizer + + +def get_lr_scheduler(optimizer: torch.optim.Optimizer, + cfg: omegaconf.DictConfig, + total_updates: int) -> tp.Optional[LRScheduler]: + """Build torch learning rate scheduler from config and associated optimizer. + Supported learning rate schedulers: ExponentialLRScheduler, PlateauLRScheduler + + Args: + optimizer (torch.optim.Optimizer): Optimizer. + cfg (DictConfig): Schedule-related configuration. + total_updates (int): Total number of updates. + Returns: + torch.optim.Optimizer. + """ + if 'lr_scheduler' not in cfg: + raise KeyError("LR Scheduler not found in config") + + lr_sched: tp.Optional[LRScheduler] = None + if cfg.lr_scheduler == 'step': + lr_sched = torch.optim.lr_scheduler.StepLR(optimizer, **cfg.step) + elif cfg.lr_scheduler == 'exponential': + lr_sched = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=cfg.exponential) + elif cfg.lr_scheduler == 'cosine': + kwargs = dict_from_config(cfg.cosine) + warmup_steps = kwargs.pop('warmup') + lr_sched = optim.CosineLRScheduler( + optimizer, warmup_steps=warmup_steps, total_steps=total_updates, **kwargs) + elif cfg.lr_scheduler == 'polynomial_decay': + kwargs = dict_from_config(cfg.polynomial_decay) + warmup_steps = kwargs.pop('warmup') + lr_sched = optim.PolynomialDecayLRScheduler( + optimizer, warmup_steps=warmup_steps, total_steps=total_updates, **kwargs) + elif cfg.lr_scheduler == 'inverse_sqrt': + kwargs = dict_from_config(cfg.inverse_sqrt) + warmup_steps = kwargs.pop('warmup') + lr_sched = optim.InverseSquareRootLRScheduler(optimizer, warmup_steps=warmup_steps, **kwargs) + elif cfg.lr_scheduler == 'linear_warmup': + kwargs = dict_from_config(cfg.linear_warmup) + warmup_steps = kwargs.pop('warmup') + lr_sched = optim.LinearWarmupLRScheduler(optimizer, warmup_steps=warmup_steps, **kwargs) + elif cfg.lr_scheduler is not None: + raise ValueError(f"Unsupported LR Scheduler: {cfg.lr_scheduler}") + return lr_sched + + +def get_ema(module_dict: nn.ModuleDict, cfg: omegaconf.DictConfig) -> tp.Optional[optim.ModuleDictEMA]: + """Initialize Exponential Moving Average. + + Args: + module_dict (nn.ModuleDict): ModuleDict for which to compute the EMA. + cfg (omegaconf.DictConfig): Optim EMA configuration. + Returns: + optim.ModuleDictEMA: EMA version of the ModuleDict. + """ + kw: tp.Dict[str, tp.Any] = dict(cfg) + use = kw.pop('use', False) + decay = kw.pop('decay', None) + device = kw.pop('device', None) + if not use: + return None + if len(module_dict) == 0: + raise ValueError("Trying to build EMA but an empty module_dict source is provided!") + ema_module = optim.ModuleDictEMA(module_dict, decay=decay, device=device) + return ema_module + + +def get_loss(loss_name: str, cfg: omegaconf.DictConfig): + """Instantiate loss from configuration.""" + klass = { + 'l1': torch.nn.L1Loss, + 'l2': torch.nn.MSELoss, + 'mel': losses.MelSpectrogramL1Loss, + 'mrstft': losses.MRSTFTLoss, + 'msspec': losses.MultiScaleMelSpectrogramLoss, + 'sisnr': losses.SISNR, + 'wm_detection': losses.WMDetectionLoss, + 'wm_mb': losses.WMMbLoss, + 'tf_loudnessratio': losses.TFLoudnessRatio + }[loss_name] + kwargs = dict(getattr(cfg, loss_name)) + return klass(**kwargs) + + +def get_balancer(loss_weights: tp.Dict[str, float], cfg: omegaconf.DictConfig) -> losses.Balancer: + """Instantiate loss balancer from configuration for the provided weights.""" + kwargs: tp.Dict[str, tp.Any] = dict_from_config(cfg) + return losses.Balancer(loss_weights, **kwargs) + + +def get_adversary(name: str, cfg: omegaconf.DictConfig) -> nn.Module: + """Initialize adversary from config.""" + klass = { + 'msd': adversarial.MultiScaleDiscriminator, + 'mpd': adversarial.MultiPeriodDiscriminator, + 'msstftd': adversarial.MultiScaleSTFTDiscriminator, + }[name] + adv_cfg: tp.Dict[str, tp.Any] = dict(getattr(cfg, name)) + return klass(**adv_cfg) + + +def get_adversarial_losses(cfg) -> nn.ModuleDict: + """Initialize dict of adversarial losses from config.""" + device = cfg.device + adv_cfg = getattr(cfg, 'adversarial') + adversaries = adv_cfg.get('adversaries', []) + adv_loss_name = adv_cfg['adv_loss'] + feat_loss_name = adv_cfg.get('feat_loss') + normalize = adv_cfg.get('normalize', True) + feat_loss: tp.Optional[adversarial.FeatureMatchingLoss] = None + if feat_loss_name: + assert feat_loss_name in ['l1', 'l2'], f"Feature loss only support L1 or L2 but {feat_loss_name} found." + loss = get_loss(feat_loss_name, cfg) + feat_loss = adversarial.FeatureMatchingLoss(loss, normalize) + loss = adversarial.get_adv_criterion(adv_loss_name) + loss_real = adversarial.get_real_criterion(adv_loss_name) + loss_fake = adversarial.get_fake_criterion(adv_loss_name) + adv_losses = nn.ModuleDict() + for adv_name in adversaries: + adversary = get_adversary(adv_name, cfg).to(device) + optimizer = get_optimizer(adversary.parameters(), cfg.optim) + adv_loss = adversarial.AdversarialLoss( + adversary, + optimizer, + loss=loss, + loss_real=loss_real, + loss_fake=loss_fake, + loss_feat=feat_loss, + normalize=normalize + ) + adv_losses[adv_name] = adv_loss + return adv_losses + + +def get_visqol(cfg: omegaconf.DictConfig) -> metrics.ViSQOL: + """Instantiate ViSQOL metric from config.""" + kwargs = dict_from_config(cfg) + return metrics.ViSQOL(**kwargs) + + +def get_fad(cfg: omegaconf.DictConfig) -> metrics.FrechetAudioDistanceMetric: + """Instantiate Frechet Audio Distance metric from config.""" + kwargs = dict_from_config(cfg.tf) + xp = dora.get_xp() + kwargs['log_folder'] = xp.folder + return metrics.FrechetAudioDistanceMetric(**kwargs) + + +def get_kldiv(cfg: omegaconf.DictConfig) -> metrics.KLDivergenceMetric: + """Instantiate KL-Divergence metric from config.""" + kld_metrics = { + 'passt': metrics.PasstKLDivergenceMetric, + } + klass = kld_metrics[cfg.model] + kwargs = dict_from_config(cfg.get(cfg.model)) + return klass(**kwargs) + + +def get_text_consistency(cfg: omegaconf.DictConfig) -> metrics.TextConsistencyMetric: + """Instantiate Text Consistency metric from config.""" + text_consistency_metrics = { + 'clap': metrics.CLAPTextConsistencyMetric + } + klass = text_consistency_metrics[cfg.model] + kwargs = dict_from_config(cfg.get(cfg.model)) + return klass(**kwargs) + + +def get_chroma_cosine_similarity(cfg: omegaconf.DictConfig) -> metrics.ChromaCosineSimilarityMetric: + """Instantiate Chroma Cosine Similarity metric from config.""" + assert cfg.model == 'chroma_base', "Only support 'chroma_base' method for chroma cosine similarity metric" + kwargs = dict_from_config(cfg.get(cfg.model)) + return metrics.ChromaCosineSimilarityMetric(**kwargs) + + +def get_audio_datasets(cfg: omegaconf.DictConfig, + dataset_type: DatasetType = DatasetType.AUDIO) -> tp.Dict[str, torch.utils.data.DataLoader]: + """Build AudioDataset from configuration. + + Args: + cfg (omegaconf.DictConfig): Configuration. + dataset_type: The type of dataset to create. + Returns: + dict[str, torch.utils.data.DataLoader]: Map of dataloader for each data split. + """ + dataloaders: dict = {} + + sample_rate = cfg.sample_rate + channels = cfg.channels + seed = cfg.seed + max_sample_rate = cfg.datasource.max_sample_rate + max_channels = cfg.datasource.max_channels + + assert cfg.dataset is not None, "Could not find dataset definition in config" + + dataset_cfg = dict_from_config(cfg.dataset) + splits_cfg: dict = {} + splits_cfg['train'] = dataset_cfg.pop('train') + splits_cfg['valid'] = dataset_cfg.pop('valid') + splits_cfg['evaluate'] = dataset_cfg.pop('evaluate') + splits_cfg['generate'] = dataset_cfg.pop('generate') + execute_only_stage = cfg.get('execute_only', None) + + for split, path in cfg.datasource.items(): + if not isinstance(path, str): + continue # skipping this as not a path + if execute_only_stage is not None and split != execute_only_stage: + continue + logger.info(f"Loading audio data split {split}: {str(path)}") + assert ( + cfg.sample_rate <= max_sample_rate + ), f"Expecting a max sample rate of {max_sample_rate} for datasource but {sample_rate} found." + assert ( + cfg.channels <= max_channels + ), f"Expecting a max number of channels of {max_channels} for datasource but {channels} found." + + split_cfg = splits_cfg[split] + split_kwargs = {k: v for k, v in split_cfg.items()} + kwargs = {**dataset_cfg, **split_kwargs} # split kwargs overrides default dataset_cfg + kwargs['sample_rate'] = sample_rate + kwargs['channels'] = channels + + if kwargs.get('permutation_on_files') and cfg.optim.updates_per_epoch: + kwargs['num_samples'] = ( + flashy.distrib.world_size() * cfg.dataset.batch_size * cfg.optim.updates_per_epoch) + + num_samples = kwargs['num_samples'] + shuffle = kwargs['shuffle'] + + return_info = kwargs.pop('return_info') + batch_size = kwargs.pop('batch_size', None) + num_workers = kwargs.pop('num_workers') + + if dataset_type == DatasetType.MUSIC: + dataset = data.music_dataset.MusicDataset.from_meta(path, **kwargs) + elif dataset_type == DatasetType.SOUND: + dataset = data.sound_dataset.SoundDataset.from_meta(path, **kwargs) + elif dataset_type == DatasetType.AUDIO: + dataset = data.info_audio_dataset.InfoAudioDataset.from_meta(path, return_info=return_info, **kwargs) + elif dataset_type == DatasetType.JASCO: + dataset = data.jasco_dataset.JascoDataset.from_meta(path, return_info=return_info, **kwargs) + else: + raise ValueError(f"Dataset type is unsupported: {dataset_type}") + + loader = get_loader( + dataset, + num_samples, + batch_size=batch_size, + num_workers=num_workers, + seed=seed, + collate_fn=dataset.collater if return_info else None, + shuffle=shuffle, + ) + dataloaders[split] = loader + + return dataloaders diff --git a/audiocraft/solvers/compression.py b/audiocraft/solvers/compression.py new file mode 100644 index 0000000..b757503 --- /dev/null +++ b/audiocraft/solvers/compression.py @@ -0,0 +1,328 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import multiprocessing +from pathlib import Path +import typing as tp + +import flashy +import omegaconf +import torch +from torch import nn + +from . import base, builders +from .. import models, quantization +from ..utils import checkpoint +from ..utils.samples.manager import SampleManager +from ..utils.utils import get_pool_executor + + +logger = logging.getLogger(__name__) + + +class CompressionSolver(base.StandardSolver): + """Solver for compression task. + + The compression task combines a set of perceptual and objective losses + to train an EncodecModel (composed of an encoder-decoder and a quantizer) + to perform high fidelity audio reconstruction. + """ + def __init__(self, cfg: omegaconf.DictConfig): + super().__init__(cfg) + self.rng: torch.Generator # set at each epoch + self.adv_losses = builders.get_adversarial_losses(self.cfg) + self.aux_losses = nn.ModuleDict() + self.info_losses = nn.ModuleDict() + assert not cfg.fsdp.use, "FSDP not supported by CompressionSolver." + loss_weights = dict() + for loss_name, weight in self.cfg.losses.items(): + if loss_name in ['adv', 'feat']: + for adv_name, _ in self.adv_losses.items(): + loss_weights[f'{loss_name}_{adv_name}'] = weight + elif weight > 0: + self.aux_losses[loss_name] = builders.get_loss(loss_name, self.cfg) + loss_weights[loss_name] = weight + else: + self.info_losses[loss_name] = builders.get_loss(loss_name, self.cfg) + self.balancer = builders.get_balancer(loss_weights, self.cfg.balancer) + self.register_stateful('adv_losses') + + @property + def best_metric_name(self) -> tp.Optional[str]: + # best model is the last for the compression model + return None + + def build_model(self): + """Instantiate model and optimizer.""" + # Model and optimizer + self.model = models.builders.get_compression_model(self.cfg).to(self.device) + self.optimizer = builders.get_optimizer(self.model.parameters(), self.cfg.optim) + self.register_stateful('model', 'optimizer') + self.register_best_state('model') + self.register_ema('model') + + def build_dataloaders(self): + """Instantiate audio dataloaders for each stage.""" + self.dataloaders = builders.get_audio_datasets(self.cfg) + + def show(self): + """Show the compression model and employed adversarial loss.""" + self.logger.info(f"Compression model with {self.model.quantizer.total_codebooks} codebooks:") + self.log_model_summary(self.model) + self.logger.info("Adversarial loss:") + self.log_model_summary(self.adv_losses) + self.logger.info("Auxiliary losses:") + self.logger.info(self.aux_losses) + self.logger.info("Info losses:") + self.logger.info(self.info_losses) + + def run_step(self, idx: int, batch: torch.Tensor, metrics: dict): + """Perform one training or valid step on a given batch.""" + x = batch.to(self.device) + y = x.clone() + + qres = self.model(x) + assert isinstance(qres, quantization.QuantizedResult) + y_pred = qres.x + # Log bandwidth in kb/s + metrics['bandwidth'] = qres.bandwidth.mean() + + if self.is_training: + d_losses: dict = {} + if len(self.adv_losses) > 0 and torch.rand(1, generator=self.rng).item() <= 1 / self.cfg.adversarial.every: + for adv_name, adversary in self.adv_losses.items(): + disc_loss = adversary.train_adv(y_pred, y) + d_losses[f'd_{adv_name}'] = disc_loss + metrics['d_loss'] = torch.sum(torch.stack(list(d_losses.values()))) + metrics.update(d_losses) + + balanced_losses: dict = {} + other_losses: dict = {} + + # penalty from quantization + if qres.penalty is not None and qres.penalty.requires_grad: + other_losses['penalty'] = qres.penalty # penalty term from the quantizer + + # adversarial losses + for adv_name, adversary in self.adv_losses.items(): + adv_loss, feat_loss = adversary(y_pred, y) + balanced_losses[f'adv_{adv_name}'] = adv_loss + balanced_losses[f'feat_{adv_name}'] = feat_loss + + # auxiliary losses + for loss_name, criterion in self.aux_losses.items(): + loss = criterion(y_pred, y) + balanced_losses[loss_name] = loss + + # weighted losses + metrics.update(balanced_losses) + metrics.update(other_losses) + metrics.update(qres.metrics) + + if self.is_training: + # backprop losses that are not handled by balancer + other_loss = torch.tensor(0., device=self.device) + if 'penalty' in other_losses: + other_loss += other_losses['penalty'] + if other_loss.requires_grad: + other_loss.backward(retain_graph=True) + ratio1 = sum(p.grad.data.norm(p=2).pow(2) + for p in self.model.parameters() if p.grad is not None) + assert isinstance(ratio1, torch.Tensor) + metrics['ratio1'] = ratio1.sqrt() + + # balancer losses backward, returns effective training loss + # with effective weights at the current batch. + metrics['g_loss'] = self.balancer.backward(balanced_losses, y_pred) + # add metrics corresponding to weight ratios + metrics.update(self.balancer.metrics) + ratio2 = sum(p.grad.data.norm(p=2).pow(2) + for p in self.model.parameters() if p.grad is not None) + assert isinstance(ratio2, torch.Tensor) + metrics['ratio2'] = ratio2.sqrt() + + # optim + flashy.distrib.sync_model(self.model) + if self.cfg.optim.max_norm: + torch.nn.utils.clip_grad_norm_( + self.model.parameters(), self.cfg.optim.max_norm + ) + self.optimizer.step() + self.optimizer.zero_grad() + + # informative losses only + info_losses: dict = {} + with torch.no_grad(): + for loss_name, criterion in self.info_losses.items(): + loss = criterion(y_pred, y) + info_losses[loss_name] = loss + + metrics.update(info_losses) + + # aggregated GAN losses: this is useful to report adv and feat across different adversarial loss setups + adv_losses = [loss for loss_name, loss in metrics.items() if loss_name.startswith('adv')] + if len(adv_losses) > 0: + metrics['adv'] = torch.sum(torch.stack(adv_losses)) + feat_losses = [loss for loss_name, loss in metrics.items() if loss_name.startswith('feat')] + if len(feat_losses) > 0: + metrics['feat'] = torch.sum(torch.stack(feat_losses)) + + return metrics + + def run_epoch(self): + # reset random seed at the beginning of the epoch + self.rng = torch.Generator() + self.rng.manual_seed(1234 + self.epoch) + # run epoch + super().run_epoch() + + def evaluate(self): + """Evaluate stage. Runs audio reconstruction evaluation.""" + self.model.eval() + evaluate_stage_name = str(self.current_stage) + + loader = self.dataloaders['evaluate'] + updates = len(loader) + lp = self.log_progress(f'{evaluate_stage_name} inference', loader, total=updates, updates=self.log_updates) + average = flashy.averager() + + pendings = [] + ctx = multiprocessing.get_context('spawn') + with get_pool_executor(self.cfg.evaluate.num_workers, mp_context=ctx) as pool: + for idx, batch in enumerate(lp): + x = batch.to(self.device) + with torch.no_grad(): + qres = self.model(x) + + y_pred = qres.x.cpu() + y = batch.cpu() # should already be on CPU but just in case + pendings.append(pool.submit(evaluate_audio_reconstruction, y_pred, y, self.cfg)) + + metrics_lp = self.log_progress(f'{evaluate_stage_name} metrics', pendings, updates=self.log_updates) + for pending in metrics_lp: + metrics = pending.result() + metrics = average(metrics) + + metrics = flashy.distrib.average_metrics(metrics, len(loader)) + return metrics + + def generate(self): + """Generate stage.""" + self.model.eval() + sample_manager = SampleManager(self.xp, map_reference_to_sample_id=True) + generate_stage_name = str(self.current_stage) + + loader = self.dataloaders['generate'] + updates = len(loader) + lp = self.log_progress(generate_stage_name, loader, total=updates, updates=self.log_updates) + + for batch in lp: + reference, _ = batch + reference = reference.to(self.device) + with torch.no_grad(): + qres = self.model(reference) + assert isinstance(qres, quantization.QuantizedResult) + + reference = reference.cpu() + estimate = qres.x.cpu() + sample_manager.add_samples(estimate, self.epoch, ground_truth_wavs=reference) + + flashy.distrib.barrier() + + def load_from_pretrained(self, name: str) -> dict: + model = models.CompressionModel.get_pretrained(name) + if isinstance(model, models.DAC): + raise RuntimeError("Cannot fine tune a DAC model.") + elif isinstance(model, models.HFEncodecCompressionModel): + self.logger.warning('Trying to automatically convert a HuggingFace model ' + 'to AudioCraft, this might fail!') + state = model.model.state_dict() + new_state = {} + for k, v in state.items(): + if k.startswith('decoder.layers') and '.conv.' in k and '.block.' not in k: + # We need to determine if this a convtr or a regular conv. + layer = int(k.split('.')[2]) + if isinstance(model.model.decoder.layers[layer].conv, torch.nn.ConvTranspose1d): + + k = k.replace('.conv.', '.convtr.') + k = k.replace('encoder.layers.', 'encoder.model.') + k = k.replace('decoder.layers.', 'decoder.model.') + k = k.replace('conv.', 'conv.conv.') + k = k.replace('convtr.', 'convtr.convtr.') + k = k.replace('quantizer.layers.', 'quantizer.vq.layers.') + k = k.replace('.codebook.', '._codebook.') + new_state[k] = v + state = new_state + elif isinstance(model, models.EncodecModel): + state = model.state_dict() + else: + raise RuntimeError(f"Cannot fine tune model type {type(model)}.") + return { + 'best_state': {'model': state} + } + + @staticmethod + def model_from_checkpoint(checkpoint_path: tp.Union[Path, str], + device: tp.Union[torch.device, str] = 'cpu') -> models.CompressionModel: + """Instantiate a CompressionModel from a given checkpoint path or dora sig. + This method is a convenient endpoint to load a CompressionModel to use in other solvers. + + Args: + checkpoint_path (Path or str): Path to checkpoint or dora sig from where the checkpoint is resolved. + This also supports pre-trained models by using a path of the form //pretrained/NAME. + See `model_from_pretrained` for a list of supported pretrained models. + use_ema (bool): Use EMA variant of the model instead of the actual model. + device (torch.device or str): Device on which the model is loaded. + """ + checkpoint_path = str(checkpoint_path) + if checkpoint_path.startswith('//pretrained/'): + name = checkpoint_path.split('/', 3)[-1] + return models.CompressionModel.get_pretrained(name, device) + logger = logging.getLogger(__name__) + logger.info(f"Loading compression model from checkpoint: {checkpoint_path}") + _checkpoint_path = checkpoint.resolve_checkpoint_path(checkpoint_path, use_fsdp=False) + assert _checkpoint_path is not None, f"Could not resolve compression model checkpoint path: {checkpoint_path}" + state = checkpoint.load_checkpoint(_checkpoint_path) + assert state is not None and 'xp.cfg' in state, f"Could not load compression model from ckpt: {checkpoint_path}" + cfg = state['xp.cfg'] + cfg.device = device + compression_model = models.builders.get_compression_model(cfg).to(device) + assert compression_model.sample_rate == cfg.sample_rate, "Compression model sample rate should match" + + assert 'best_state' in state and state['best_state'] != {} + assert 'exported' not in state, "When loading an exported checkpoint, use the //pretrained/ prefix." + compression_model.load_state_dict(state['best_state']['model']) + compression_model.eval() + logger.info("Compression model loaded!") + return compression_model + + @staticmethod + def wrapped_model_from_checkpoint(cfg: omegaconf.DictConfig, + checkpoint_path: tp.Union[Path, str], + device: tp.Union[torch.device, str] = 'cpu') -> models.CompressionModel: + """Instantiate a wrapped CompressionModel from a given checkpoint path or dora sig. + + Args: + cfg (omegaconf.DictConfig): Configuration to read from for wrapped mode. + checkpoint_path (Path or str): Path to checkpoint or dora sig from where the checkpoint is resolved. + use_ema (bool): Use EMA variant of the model instead of the actual model. + device (torch.device or str): Device on which the model is loaded. + """ + compression_model = CompressionSolver.model_from_checkpoint(checkpoint_path, device) + compression_model = models.builders.get_wrapped_compression_model(compression_model, cfg) + return compression_model + + +def evaluate_audio_reconstruction(y_pred: torch.Tensor, y: torch.Tensor, cfg: omegaconf.DictConfig) -> dict: + """Audio reconstruction evaluation method that can be conveniently pickled.""" + metrics = {} + if cfg.evaluate.metrics.visqol: + visqol = builders.get_visqol(cfg.metrics.visqol) + metrics['visqol'] = visqol(y_pred, y, cfg.sample_rate) + sisnr = builders.get_loss('sisnr', cfg) + metrics['sisnr'] = sisnr(y_pred, y) + return metrics diff --git a/audiocraft/solvers/diffusion.py b/audiocraft/solvers/diffusion.py new file mode 100644 index 0000000..93dea25 --- /dev/null +++ b/audiocraft/solvers/diffusion.py @@ -0,0 +1,279 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import typing as tp + +import flashy +import julius +import omegaconf +import torch +import torch.nn.functional as F + +from . import builders +from . import base +from .. import models +from ..modules.diffusion_schedule import NoiseSchedule +from ..metrics import RelativeVolumeMel +from ..models.builders import get_processor +from ..utils.samples.manager import SampleManager +from ..solvers.compression import CompressionSolver + + +class PerStageMetrics: + """Handle prompting the metrics per stage. + It outputs the metrics per range of diffusion states. + e.g. avg loss when t in [250, 500] + """ + def __init__(self, num_steps: int, num_stages: int = 4): + self.num_steps = num_steps + self.num_stages = num_stages + + def __call__(self, losses: dict, step: tp.Union[int, torch.Tensor]): + if type(step) is int: + stage = int((step / self.num_steps) * self.num_stages) + return {f"{name}_{stage}": loss for name, loss in losses.items()} + elif type(step) is torch.Tensor: + stage_tensor = ((step / self.num_steps) * self.num_stages).long() + out: tp.Dict[str, float] = {} + for stage_idx in range(self.num_stages): + mask = (stage_tensor == stage_idx) + N = mask.sum() + stage_out = {} + if N > 0: # pass if no elements in the stage + for name, loss in losses.items(): + stage_loss = (mask * loss).sum() / N + stage_out[f"{name}_{stage_idx}"] = stage_loss + out = {**out, **stage_out} + return out + + +class DataProcess: + """Apply filtering or resampling. + + Args: + initial_sr (int): Initial sample rate. + target_sr (int): Target sample rate. + use_resampling: Whether to use resampling or not. + use_filter (bool): + n_bands (int): Number of bands to consider. + idx_band (int): + device (torch.device or str): + cutoffs (): + boost (bool): + """ + def __init__(self, initial_sr: int = 24000, target_sr: int = 16000, use_resampling: bool = False, + use_filter: bool = False, n_bands: int = 4, + idx_band: int = 0, device: torch.device = torch.device('cpu'), cutoffs=None, boost=False): + """Apply filtering or resampling + Args: + initial_sr (int): sample rate of the dataset + target_sr (int): sample rate after resampling + use_resampling (bool): whether or not performs resampling + use_filter (bool): when True filter the data to keep only one frequency band + n_bands (int): Number of bands used + cuts (none or list): The cutoff frequencies of the band filtering + if None then we use mel scale bands. + idx_band (int): index of the frequency band. 0 are lows ... (n_bands - 1) highs + boost (bool): make the data scale match our music dataset. + """ + assert idx_band < n_bands + self.idx_band = idx_band + if use_filter: + if cutoffs is not None: + self.filter = julius.SplitBands(sample_rate=initial_sr, cutoffs=cutoffs).to(device) + else: + self.filter = julius.SplitBands(sample_rate=initial_sr, n_bands=n_bands).to(device) + self.use_filter = use_filter + self.use_resampling = use_resampling + self.target_sr = target_sr + self.initial_sr = initial_sr + self.boost = boost + + def process_data(self, x, metric=False): + if x is None: + return None + if self.boost: + x /= torch.clamp(x.std(dim=(1, 2), keepdim=True), min=1e-4) + x * 0.22 + if self.use_filter and not metric: + x = self.filter(x)[self.idx_band] + if self.use_resampling: + x = julius.resample_frac(x, old_sr=self.initial_sr, new_sr=self.target_sr) + return x + + def inverse_process(self, x): + """Upsampling only.""" + if self.use_resampling: + x = julius.resample_frac(x, old_sr=self.target_sr, new_sr=self.target_sr) + return x + + +class DiffusionSolver(base.StandardSolver): + """Solver for compression task. + + The diffusion task allows for MultiBand diffusion model training. + + Args: + cfg (DictConfig): Configuration. + """ + def __init__(self, cfg: omegaconf.DictConfig): + super().__init__(cfg) + self.cfg = cfg + self.device = cfg.device + self.sample_rate: int = self.cfg.sample_rate + self.codec_model = CompressionSolver.model_from_checkpoint( + cfg.compression_model_checkpoint, device=self.device) + + self.codec_model.set_num_codebooks(cfg.n_q) + assert self.codec_model.sample_rate == self.cfg.sample_rate, ( + f"Codec model sample rate is {self.codec_model.sample_rate} but " + f"Solver sample rate is {self.cfg.sample_rate}." + ) + assert self.codec_model.sample_rate == self.sample_rate, \ + f"Sample rate of solver {self.sample_rate} and codec {self.codec_model.sample_rate} " \ + "don't match." + + self.sample_processor = get_processor(cfg.processor, sample_rate=self.sample_rate) + self.register_stateful('sample_processor') + self.sample_processor.to(self.device) + + self.schedule = NoiseSchedule( + **cfg.schedule, device=self.device, sample_processor=self.sample_processor) + + self.eval_metric: tp.Optional[torch.nn.Module] = None + + self.rvm = RelativeVolumeMel() + self.data_processor = DataProcess(initial_sr=self.sample_rate, target_sr=cfg.resampling.target_sr, + use_resampling=cfg.resampling.use, cutoffs=cfg.filter.cutoffs, + use_filter=cfg.filter.use, n_bands=cfg.filter.n_bands, + idx_band=cfg.filter.idx_band, device=self.device) + + @property + def best_metric_name(self) -> tp.Optional[str]: + if self._current_stage == "evaluate": + return 'rvm' + else: + return 'loss' + + @torch.no_grad() + def get_condition(self, wav: torch.Tensor) -> torch.Tensor: + codes, scale = self.codec_model.encode(wav) + assert scale is None, "Scaled compression models not supported." + emb = self.codec_model.decode_latent(codes) + return emb + + def build_model(self): + """Build model and optimizer as well as optional Exponential Moving Average of the model. + """ + # Model and optimizer + self.model = models.builders.get_diffusion_model(self.cfg).to(self.device) + self.optimizer = builders.get_optimizer(self.model.parameters(), self.cfg.optim) + self.register_stateful('model', 'optimizer') + self.register_best_state('model') + self.register_ema('model') + + def build_dataloaders(self): + """Build audio dataloaders for each stage.""" + self.dataloaders = builders.get_audio_datasets(self.cfg) + + def show(self): + # TODO + raise NotImplementedError() + + def run_step(self, idx: int, batch: torch.Tensor, metrics: dict): + """Perform one training or valid step on a given batch.""" + x = batch.to(self.device) + loss_fun = F.mse_loss if self.cfg.loss.kind == 'mse' else F.l1_loss + + condition = self.get_condition(x) # [bs, 128, T/hop, n_emb] + sample = self.data_processor.process_data(x) + + input_, target, step = self.schedule.get_training_item(sample, + tensor_step=self.cfg.schedule.variable_step_batch) + out = self.model(input_, step, condition=condition).sample + + base_loss = loss_fun(out, target, reduction='none').mean(dim=(1, 2)) + reference_loss = loss_fun(input_, target, reduction='none').mean(dim=(1, 2)) + loss = base_loss / reference_loss ** self.cfg.loss.norm_power + + if self.is_training: + loss.mean().backward() + flashy.distrib.sync_model(self.model) + self.optimizer.step() + self.optimizer.zero_grad() + metrics = { + 'loss': loss.mean(), 'normed_loss': (base_loss / reference_loss).mean(), + } + metrics.update(self.per_stage({'loss': loss, 'normed_loss': base_loss / reference_loss}, step)) + metrics.update({ + 'std_in': input_.std(), 'std_out': out.std()}) + return metrics + + def run_epoch(self): + # reset random seed at the beginning of the epoch + self.rng = torch.Generator() + self.rng.manual_seed(1234 + self.epoch) + self.per_stage = PerStageMetrics(self.schedule.num_steps, self.cfg.metrics.num_stage) + # run epoch + super().run_epoch() + + def evaluate(self): + """Evaluate stage. + Runs audio reconstruction evaluation. + """ + self.model.eval() + evaluate_stage_name = f'{self.current_stage}' + loader = self.dataloaders['evaluate'] + updates = len(loader) + lp = self.log_progress(f'{evaluate_stage_name} estimate', loader, total=updates, updates=self.log_updates) + + metrics = {} + n = 1 + for idx, batch in enumerate(lp): + x = batch.to(self.device) + with torch.no_grad(): + y_pred = self.regenerate(x) + + y_pred = y_pred.cpu() + y = batch.cpu() # should already be on CPU but just in case + rvm = self.rvm(y_pred, y) + lp.update(**rvm) + if len(metrics) == 0: + metrics = rvm + else: + for key in rvm.keys(): + metrics[key] = (metrics[key] * n + rvm[key]) / (n + 1) + metrics = flashy.distrib.average_metrics(metrics) + return metrics + + @torch.no_grad() + def regenerate(self, wav: torch.Tensor, step_list: tp.Optional[list] = None): + """Regenerate the given waveform.""" + condition = self.get_condition(wav) + initial = self.schedule.get_initial_noise(self.data_processor.process_data(wav)) # sampling rate changes. + result = self.schedule.generate_subsampled(self.model, initial=initial, condition=condition, + step_list=step_list) + result = self.data_processor.inverse_process(result) + return result + + def generate(self): + """Generate stage.""" + sample_manager = SampleManager(self.xp) + self.model.eval() + generate_stage_name = f'{self.current_stage}' + + loader = self.dataloaders['generate'] + updates = len(loader) + lp = self.log_progress(generate_stage_name, loader, total=updates, updates=self.log_updates) + + for batch in lp: + reference, _ = batch + reference = reference.to(self.device) + estimate = self.regenerate(reference) + reference = reference.cpu() + estimate = estimate.cpu() + sample_manager.add_samples(estimate, self.epoch, ground_truth_wavs=reference) + flashy.distrib.barrier() diff --git a/audiocraft/solvers/jasco.py b/audiocraft/solvers/jasco.py new file mode 100644 index 0000000..8b6d36e --- /dev/null +++ b/audiocraft/solvers/jasco.py @@ -0,0 +1,287 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from omegaconf import DictConfig +from . import builders, musicgen +from .compression import CompressionSolver +from .. import models +from ..modules.conditioners import JascoCondConst, SegmentWithAttributes +import torch +import typing as tp +import flashy +import time +import math + + +class JascoSolver(musicgen.MusicGenSolver): + """Solver for JASCO - Joint Audio and Symbolic Conditioning for Temporally Controlled Text-to-Music Generation + https://arxiv.org/abs/2406.10970. + """ + DATASET_TYPE: builders.DatasetType = builders.DatasetType.JASCO + + def __init__(self, cfg: DictConfig): + super().__init__(cfg) + + # initialize generation parameters by config + self.generation_params = { + 'cfg_coef_all': self.cfg.generate.lm.cfg_coef_all, + 'cfg_coef_txt': self.cfg.generate.lm.cfg_coef_txt + } + + self.latent_mean = cfg.compression_model_latent_mean + self.latent_std = cfg.compression_model_latent_std + self.mse = torch.nn.MSELoss(reduction='none') + self._best_metric_name = 'loss' + + def build_model(self) -> None: + """Instantiate model and optimization.""" + assert self.cfg.efficient_attention_backend == "xformers", "JASCO v1 models support only xformers backend." + + self.compression_model = CompressionSolver.wrapped_model_from_checkpoint( + self.cfg, self.cfg.compression_model_checkpoint, device=self.device) + assert self.compression_model.sample_rate == self.cfg.sample_rate, ( + f"Compression model sample rate is {self.compression_model.sample_rate} but " + f"Solver sample rate is {self.cfg.sample_rate}." + ) + # instantiate JASCO model + self.model: models.FlowMatchingModel = models.builders.get_jasco_model(self.cfg, + self.compression_model).to(self.device) + # initialize optimization + self.initialize_optimization() + + def _get_latents(self, audio): + with torch.no_grad(): + latents = self.compression_model.model.encoder(audio) + return latents.permute(0, 2, 1) # [B, D, T] -> [B, T, D] + + def _prepare_latents_and_attributes( + self, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], + ) -> tp.Tuple[dict, torch.Tensor, torch.Tensor]: + """Prepare input batchs for language model training. + + Args: + batch (tuple[torch.Tensor, list[SegmentWithAttributes]]): Input batch with audio tensor of shape [B, C, T] + and corresponding metadata as SegmentWithAttributes (with B items). + Returns: + Condition tensors (dict[str, any]): Preprocessed condition attributes. + Tokens (torch.Tensor): Audio tokens from compression model, of shape [B, K, T_s], + with B the batch size, K the number of codebooks, T_s the token timesteps. + Padding mask (torch.Tensor): Mask with valid positions in the tokens tensor, of shape [B, K, T_s]. + """ + audio, infos = batch + audio = audio.to(self.device) + assert audio.size(0) == len(infos), ( + f"Mismatch between number of items in audio batch ({audio.size(0)})", + f" and in metadata ({len(infos)})" + ) + + latents = self._get_latents(audio) + + # prepare attributes + if JascoCondConst.CRD.value in self.cfg.conditioners: + null_chord_idx = self.cfg.conditioners.chords.chords_emb.card + else: + null_chord_idx = -1 + attributes = [info.to_condition_attributes() for info in infos] + if self.model.cfg_dropout is not None: + attributes = self.model.cfg_dropout(samples=attributes, + cond_types=["wav", "text", "symbolic"], + null_chord_idx=null_chord_idx) + attributes = self.model.att_dropout(attributes) + tokenized = self.model.condition_provider.tokenize(attributes) + + with self.autocast: + condition_tensors = self.model.condition_provider(tokenized) + + # create a padding mask to hold valid vs invalid positions + padding_mask = torch.ones_like(latents, dtype=torch.bool, device=latents.device) + + return condition_tensors, latents, padding_mask + + def _normalized_latents(self, latents: torch.Tensor) -> torch.Tensor: + """Normalize latents.""" + return (latents - self.latent_mean) / self.latent_std + + def _unnormalized_latents(self, latents: torch.Tensor) -> torch.Tensor: + """Unnormalize latents.""" + return (latents * self.latent_std) + self.latent_mean + + def _z(self, z_0: torch.Tensor, z_1: torch.Tensor, t: torch.Tensor, sigma_min: float = 1e-5) -> torch.Tensor: + """Interpolate data and prior.""" + return (1 - (1 - sigma_min) * t) * z_0 + t * z_1 + + def _vector_field(self, z_0: torch.Tensor, z_1: torch.Tensor, sigma_min: float = 1e-5) -> torch.Tensor: + """Compute the GT vector field. + sigma_min is a small value to avoid numerical instabilities.""" + return z_1 - (1 - sigma_min) * z_0 + + def _compute_loss(self, t: torch.Tensor, v_theta: torch.Tensor, v: torch.Tensor) -> torch.Tensor: + """Compute the loss.""" + loss_func = self.cfg.get('loss_func', 'increasing') + if loss_func == 'uniform': + scales = 1 + elif loss_func == 'increasing': + scales = 1 + t # type: ignore + elif loss_func == 'decreasing': + scales = 2 - t # type: ignore + else: + raise ValueError('unsupported loss_func was passed in config') + return (scales * self.mse(v_theta, v)).mean() + + def run_step(self, idx: int, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], metrics: dict) -> dict: + """Perform one training or valid step on a given batch.""" + + condition_tensors, latents, padding_mask = self._prepare_latents_and_attributes(batch) + + self.deadlock_detect.update('tokens_and_conditions') + + B, T, D = latents.shape + device = self.device + + # normalize latents + z_1 = self._normalized_latents(latents) + + # sample the N(0,1) prior + z_0 = torch.randn(B, T, D, device=device) + + # random time parameter, between 0 to 1 + t = torch.rand((B, 1, 1), device=device) + + # interpolate data and prior + z = self._z(z_0, z_1, t) + + # compute the GT vector field + v = self._vector_field(z_0, z_1) + + with self.autocast: + v_theta = self.model(latents=z, + t=t, + conditions=[], + condition_tensors=condition_tensors) + + loss = self._compute_loss(t, v_theta, v) + unscaled_loss = loss.clone() + + self.deadlock_detect.update('loss') + + if self.is_training: + metrics['lr'] = self.optimizer.param_groups[0]['lr'] + if self.scaler is not None: + loss = self.scaler.scale(loss) + self.deadlock_detect.update('scale') + if self.cfg.fsdp.use: + loss.backward() + flashy.distrib.average_tensors(self.model.buffers()) + elif self.cfg.optim.eager_sync: + with flashy.distrib.eager_sync_model(self.model): + loss.backward() + else: + # this should always be slower but can be useful + # for weird use cases like multiple backwards. + loss.backward() + flashy.distrib.sync_model(self.model) + self.deadlock_detect.update('backward') + + if self.scaler is not None: + self.scaler.unscale_(self.optimizer) + if self.cfg.optim.max_norm: + if self.cfg.fsdp.use: + metrics['grad_norm'] = self.model.clip_grad_norm_(self.cfg.optim.max_norm) # type: ignore + else: + metrics['grad_norm'] = torch.nn.utils.clip_grad_norm_( + self.model.parameters(), self.cfg.optim.max_norm + ) + if self.scaler is None: + self.optimizer.step() + else: + self.scaler.step(self.optimizer) + self.scaler.update() + if self.lr_scheduler: + self.lr_scheduler.step() + self.optimizer.zero_grad() + self.deadlock_detect.update('optim') + if self.scaler is not None: + scale = self.scaler.get_scale() + metrics['grad_scale'] = scale + if not loss.isfinite().all(): + raise RuntimeError("Model probably diverged.") + + metrics['loss'] = unscaled_loss + + return metrics + + def _decode_latents(self, latents): + return self.compression_model.model.decoder(latents.permute(0, 2, 1)) + + @torch.no_grad() + def run_generate_step(self, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], + gen_duration: float, prompt_duration: tp.Optional[float] = None, + remove_text_conditioning: bool = False, + **generation_params) -> dict: + """Run generate step on a batch of optional audio tensor and corresponding attributes. + + Args: + batch (tuple[torch.Tensor, list[SegmentWithAttributes]]): + use_prompt (bool): Whether to do audio continuation generation with prompt from audio batch. + gen_duration (float): Target audio duration for the generation. + prompt_duration (float, optional): Duration for the audio prompt to use for continuation. + remove_text_conditioning (bool, optional): Whether to remove the prompt from the generated audio. + generation_params: Additional generation parameters. + Returns: + gen_outputs (dict): Generation outputs, consisting in audio, audio tokens from both the generation + and the prompt along with additional information. + """ + bench_start = time.time() + audio, meta = batch + assert audio.size(0) == len(meta), ( + f"Mismatch between number of items in audio batch ({audio.size(0)})", + f" and in metadata ({len(meta)})" + ) + # prepare attributes + attributes = [x.to_condition_attributes() for x in meta] + + # prepare audio prompt + if prompt_duration is None: + prompt_audio = None + else: + assert prompt_duration < gen_duration, "Prompt duration must be lower than target generation duration" + prompt_audio_frames = int(prompt_duration * self.compression_model.sample_rate) + prompt_audio = audio[..., :prompt_audio_frames] + + # get audio tokens from compression model + if prompt_audio is None or prompt_audio.nelement() == 0: + num_samples = len(attributes) + prompt_tokens = None + else: + num_samples = None + prompt_audio = prompt_audio.to(self.device) + prompt_tokens, scale = self.compression_model.encode(prompt_audio) + assert scale is None, "Compression model in MusicGen should not require rescaling." + + # generate by sampling from the LM + with self.autocast: + total_gen_len = math.ceil(gen_duration * self.compression_model.frame_rate) + gen_latents = self.model.generate( + prompt_tokens, attributes, max_gen_len=total_gen_len, + num_samples=num_samples, **self.generation_params) + + # generate audio from latents + assert gen_latents.dim() == 3 # [B, T, D] + + # unnormalize latents + gen_latents = self._unnormalized_latents(gen_latents) + gen_audio = self._decode_latents(gen_latents) + + bench_end = time.time() + gen_outputs = { + 'rtf': (bench_end - bench_start) / gen_duration, + 'ref_audio': audio, + 'gen_audio': gen_audio, + 'gen_tokens': gen_latents, + 'prompt_audio': prompt_audio, + 'prompt_tokens': prompt_tokens, + } + return gen_outputs diff --git a/audiocraft/solvers/magnet.py b/audiocraft/solvers/magnet.py new file mode 100644 index 0000000..5c40120 --- /dev/null +++ b/audiocraft/solvers/magnet.py @@ -0,0 +1,276 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from omegaconf import DictConfig +from . import builders, musicgen +from einops import rearrange +from torch.nn import functional as F +from ..modules.conditioners import SegmentWithAttributes + +import torch +import numpy as np +import random +import typing as tp +import math +import flashy + + +class MagnetSolver(musicgen.MusicGenSolver): + """Solver for MAGNeT - Masked Audio Generation using + a single Non-autoregressive Transformer https://arxiv.org/abs/2401.04577. + """ + def __init__(self, cfg: DictConfig): + super().__init__(cfg) + + # initialize generation parameters by config + self.generation_params = { + 'use_sampling': self.cfg.generate.lm.use_sampling, + 'temp': self.cfg.generate.lm.temp, + 'top_k': self.cfg.generate.lm.top_k, + 'top_p': self.cfg.generate.lm.top_p, + 'max_cfg_coef': self.cfg.generate.lm.max_cfg_coef, + 'min_cfg_coef': self.cfg.generate.lm.min_cfg_coef, + 'decoding_steps': list(self.cfg.generate.lm.decoding_steps), + 'anneal_temp': self.cfg.generate.lm.anneal_temp, + 'span_scoring': self.cfg.generate.lm.span_scoring, + 'span_arrangement': self.cfg.generate.lm.span_arrangement + } + + sequence_len = int(cfg.dataset.segment_duration * self.compression_model.frame_rate) + self.mean_maskrate_to_u = torch.tensor(self._calc_mean_maskrate_to_u_LUT(sequence_len), device=self.device) + self.ce_per_codebook = [torch.log(torch.tensor(self.compression_model.cardinality, device=self.device)) + for _ in range(cfg.transformer_lm.n_q)] + + def build_model(self) -> None: + self.cfg.transformer_lm.segment_duration = self.cfg.dataset.segment_duration + self.cfg.transformer_lm.span_len = self.cfg.masking.span_len + assert self.cfg.efficient_attention_backend == "xformers", "MAGNeT v1 models support only xformers backend." + super().build_model() + + def _calc_mean_maskrate_to_u_LUT(self, T: int): + """ Create a Look Up Table (LUT) transforming a discrete masking percentage m in 0,1,...,100 to u, + the number of overlapping spans of length L to place s.t. the masking rate is approximately m/float(100). + It first creates the inverse transformation, of the masking rate as function of u, + using the expression choose(T - L, u) / choose(T, u), where L is the atomic span length used + during masking. See https://arxiv.org/abs/2401.04577, + appendix C, for the mean mask rate derivation. + + We leverage the fact that: + choose(T - L, u) / choose(T, u) = Prod_{j = 0}^{u - 1}((T - L - j)/(T - j)) + in the provided implementation, in order to avoid overflow. + Args: + T (float): Sequence length. + Returns: + (List) A LUT transforming m in 0,1,...,100 to u, + s.t. the masking rate of the span-L mask is approximately m/float(100). + """ + + L = self.cfg.masking.span_len + + u2mean = [0.0] # mean mask rate is 0.0 for u = 0 + v = (T - L) / float(T) + for u in range(1, T): + u2mean.append(1 - v) + v *= (T - L - u) / (T - u) # Overflow-safe implementation of choose(T - L, u) / choose(T, u). + + mean2u = [] + for maskperc in range(101): + maskrate = maskperc / float(100) + u = int(np.searchsorted(u2mean, maskrate)) + mean2u.append(u) + + return mean2u + + def _non_spans_mask(self, mask_probs: torch.Tensor, B: int, T: int, device: torch.device) -> torch.Tensor: + """ Construct a boolean mask of shape [B, T, 1], with masking rates defined by mask_probs. + The masked tokens are singletons, placed uniformly at random. + Args: + mask_probs (torch.Tensor): The desired masking rate per sample, of shape [B,] + B (int): Batch size. + T (int): Sequence length. + device (torch.device): device of the output tensor + Returns: + (torch.Tensor): A mask of shape [B, T] + """ + num_token_masked = (T * mask_probs).round().clamp(min=1) + batch_randperm = torch.rand((B, T), device=device).argsort(dim=-1) + return batch_randperm < rearrange(num_token_masked, 'b -> b 1') + + def _spans_mask(self, mask_probs: torch.Tensor, B: int, T: int, device: torch.device) -> torch.Tensor: + """ Construct a spans mask with masking rates defined by mask_probs, + where the atomic span length ( > 1 ) is defined by cfg.masking.span_len. + Args: + mask_probs (torch.Tensor): The desired masking rate per sample, of shape [B,] + B (int): Batch size. + T (int): Sequence length. + device (torch.device): device of the output tensor + Returns: + (torch.Tensor): A spans mask of shape [B, T] + """ + rounded_probs = torch.round(100 * mask_probs).long() + k = self.mean_maskrate_to_u[rounded_probs].clamp(min=1) # k is the number of span starts + + # sample random span starts + batch_randperm = torch.rand((B, T), device=device).argsort(dim=-1) + mask = batch_randperm < rearrange(k, 'b -> b 1') + B, T = mask.shape + shifted_mask = mask.clone() + for _ in range(self.cfg.masking.span_len - 1): + shifted_mask = torch.concat((torch.full((B, 1), False, device=device), shifted_mask[:, :-1]), dim=1) + mask = torch.logical_or(mask, shifted_mask) + + return mask + + def _get_mask(self, mask_probs: torch.Tensor, B: int, T: int, device: torch.device) -> torch.Tensor: + """ Construct a boolean mask with masking rates defined by mask_probs, and atomic + span length defined by cfg.masking.span_len. + Args: + mask_probs (torch.Tensor): The desired masking rate per sample, of shape [B,] + B (int): Batch size. + T (int): Sequence length. + device (torch.device): device of the output tensor + Returns: + (torch.Tensor): A boolean tensor of shape [B, T] + """ + if self.cfg.masking.span_len <= 1: + return self._non_spans_mask(mask_probs, B, T, device) + + return self._spans_mask(mask_probs, B, T, device) + + def _compute_cross_entropy_magnet(self, logits: torch.Tensor, + targets: torch.Tensor, mask: torch.Tensor, stage: torch.Tensor) -> torch.Tensor: + """ Compute cross entropy between multi-codebook targets and model's logits. + The cross entropy is computed only on a specific codebook, defined by the stage argument. + Valid timesteps for each codebook are pulled from the mask, where invalid + timesteps are set to 0. + + Args: + logits (torch.Tensor): Model's logits of shape [B, K, T, card]. + targets (torch.Tensor): Target codes, of shape [B, K, T]. + mask (torch.Tensor): Mask for valid target codes, of shape [B, K, T]. + stage (torch.Tensor): The codebook (idx) that is being optimized, as a scalar tensor. + Returns: + ce (torch.Tensor): Cross entropy of the codebook that is being optimized. + """ + assert logits.shape[:-1] == targets.shape + assert mask.shape == targets.shape + ce = torch.zeros([], device=targets.device) + logits_k = logits[:, stage, ...].contiguous().view(-1, logits.size(-1)) # [B x T, card] + targets_k = targets[:, stage, ...].contiguous().view(-1) # [B x T] + mask_k = mask[:, stage, ...].contiguous().view(-1) # [B x T] + + IGNORE_IDX = -1 + targets_k[~mask_k] = IGNORE_IDX + q_ce = F.cross_entropy(logits_k, targets_k, ignore_index=IGNORE_IDX) + + ce += q_ce + return ce + + def run_step(self, idx: int, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], metrics: dict) -> dict: + """Perform one training or valid step on a given batch.""" + check_synchronization_points = idx == 1 and self.device == 'cuda' + + condition_tensors, audio_tokens, padding_mask = self._prepare_tokens_and_attributes( + batch, check_synchronization_points) + + self.deadlock_detect.update('tokens_and_conditions') + + if check_synchronization_points: + torch.cuda.set_sync_debug_mode('warn') + + B, K, T = audio_tokens.shape + device = self.device + + # Choose the stage (codebook idx) for update, uniformly at random. + stage_ = random.randint(0, K - 1) + stage = torch.full((1, ), stage_, device=device) + + # masking + rand_time = torch.zeros((B,), device=device).float().uniform_(0, 1) + rand_mask_probs = torch.cos(rand_time * math.pi * 0.5) + + # stage mask + stage_mask = self._get_mask(rand_mask_probs, B, T, device) # [B, T] + stage_mask = stage_mask.unsqueeze(1) # [B, 1, T] + + # Keep all preceding codebooks. + mask = torch.full((B, K, T), False, device=device) + mask[:, stage, :] = stage_mask + + # Mask all codebooks larger than stage_ + mask_id = self.model.special_token_id + mask[:, (stage_+1):, :] = torch.full((B, K - stage_ - 1, T), True, device=device) + input_tokens = torch.where(mask, mask_id, audio_tokens) + + # Take loss only on the chosen stage, and only on the masked tokens. + loss_mask = torch.full((B, K, T), False, device=device) + loss_mask[:, stage, :] = stage_mask + + with self.autocast: + model_output = self.model.compute_predictions(input_tokens, [], condition_tensors, stage=stage_) + logits = model_output.logits + loss_mask &= padding_mask + ce = self._compute_cross_entropy_magnet(logits, audio_tokens, loss_mask, stage) + loss = ce + self.deadlock_detect.update('loss') + + if check_synchronization_points: + torch.cuda.set_sync_debug_mode('default') + + if self.is_training: + metrics['lr'] = self.optimizer.param_groups[0]['lr'] + if self.scaler is not None: + loss = self.scaler.scale(loss) + self.deadlock_detect.update('scale') + if self.cfg.fsdp.use: + loss.backward() + flashy.distrib.average_tensors(self.model.buffers()) + elif self.cfg.optim.eager_sync: + with flashy.distrib.eager_sync_model(self.model): + loss.backward() + else: + # this should always be slower but can be useful + # for weird use cases like multiple backwards. + loss.backward() + flashy.distrib.sync_model(self.model) + self.deadlock_detect.update('backward') + + if self.scaler is not None: + self.scaler.unscale_(self.optimizer) + if self.cfg.optim.max_norm: + if self.cfg.fsdp.use: + metrics['grad_norm'] = self.model.clip_grad_norm_(self.cfg.optim.max_norm) # type: ignore + else: + metrics['grad_norm'] = torch.nn.utils.clip_grad_norm_( + self.model.parameters(), self.cfg.optim.max_norm + ) + if self.scaler is None: + self.optimizer.step() + else: + self.scaler.step(self.optimizer) + self.scaler.update() + if self.lr_scheduler: + self.lr_scheduler.step() + self.optimizer.zero_grad() + self.deadlock_detect.update('optim') + if self.scaler is not None: + scale = self.scaler.get_scale() + metrics['grad_scale'] = scale + if not loss.isfinite().all(): + raise RuntimeError("Model probably diverged.") + + metrics['ce'] = ce + metrics['ppl'] = torch.exp(ce) + + return metrics + + +class AudioMagnetSolver(MagnetSolver): + """Solver for audio-MAGNeT. A MAGNeT model for sound generation. + + More information can be found in the MAGNeT model card. + """ + DATASET_TYPE: builders.DatasetType = builders.DatasetType.SOUND diff --git a/audiocraft/solvers/musicgen.py b/audiocraft/solvers/musicgen.py new file mode 100644 index 0000000..8b48d00 --- /dev/null +++ b/audiocraft/solvers/musicgen.py @@ -0,0 +1,749 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from pathlib import Path +import time +import typing as tp +import warnings + +import flashy +import math +import omegaconf +import torch +from torch.nn import functional as F + +from . import base, builders +from .compression import CompressionSolver +from .. import metrics as eval_metrics +from .. import models +from ..data.audio_dataset import AudioDataset +from ..data.music_dataset import MusicDataset, MusicInfo, AudioInfo +from ..data.audio_utils import normalize_audio +from ..modules.conditioners import JointEmbedCondition, SegmentWithAttributes, WavCondition, \ + StyleConditioner, _drop_description_condition +from ..utils.cache import CachedBatchWriter, CachedBatchLoader +from ..utils.samples.manager import SampleManager +from ..utils.utils import get_dataset_from_loader, is_jsonable, warn_once, model_hash + + +class MusicGenSolver(base.StandardSolver): + """Solver for MusicGen training task. + + Used in: https://arxiv.org/abs/2306.05284 + """ + DATASET_TYPE: builders.DatasetType = builders.DatasetType.MUSIC + + def __init__(self, cfg: omegaconf.DictConfig): + super().__init__(cfg) + # easier access to sampling parameters + self.generation_params = { + 'use_sampling': self.cfg.generate.lm.use_sampling, + 'temp': self.cfg.generate.lm.temp, + 'top_k': self.cfg.generate.lm.top_k, + 'top_p': self.cfg.generate.lm.top_p, + } + self._best_metric_name: tp.Optional[str] = 'ce' + + self._cached_batch_writer = None + self._cached_batch_loader = None + if cfg.cache.path: + if cfg.cache.write: + self._cached_batch_writer = CachedBatchWriter(Path(cfg.cache.path)) + if self.cfg.cache.write_num_shards: + self.logger.warning("Multiple shard cache, best_metric_name will be set to None.") + self._best_metric_name = None + else: + self._cached_batch_loader = CachedBatchLoader( + Path(cfg.cache.path), cfg.dataset.batch_size, cfg.dataset.num_workers, + min_length=self.cfg.optim.updates_per_epoch or 1) + self.dataloaders['original_train'] = self.dataloaders['train'] + self.dataloaders['train'] = self._cached_batch_loader # type: ignore + + @staticmethod + def get_eval_solver_from_sig(sig: str, dtype: tp.Optional[str] = None, + device: tp.Optional[str] = None, autocast: bool = True, + batch_size: tp.Optional[int] = None, + override_cfg: tp.Optional[tp.Union[dict, omegaconf.DictConfig]] = None, + **kwargs): + """Mostly a convenience function around magma.train.get_solver_from_sig, + populating all the proper param, deactivating EMA, FSDP, loading the best state, + basically all you need to get a solver ready to "play" with in single GPU mode + and with minimal memory overhead. + + Args: + sig (str): signature to load. + dtype (str or None): potential dtype, as a string, i.e. 'float16'. + device (str or None): potential device, as a string, i.e. 'cuda'. + override_cfg (dict or omegaconf.DictConfig or None): potential device, as a string, i.e. 'cuda'. + """ + from audiocraft import train + our_override_cfg: tp.Dict[str, tp.Any] = {'optim': {'ema': {'use': False}}} + our_override_cfg['autocast'] = autocast + if dtype is not None: + our_override_cfg['dtype'] = dtype + if device is not None: + our_override_cfg['device'] = device + if batch_size is not None: + our_override_cfg['dataset'] = {'batch_size': batch_size} + if override_cfg is None: + override_cfg = {} + override_cfg = omegaconf.OmegaConf.merge( + omegaconf.DictConfig(override_cfg), omegaconf.DictConfig(our_override_cfg)) # type: ignore + solver = train.get_solver_from_sig( + sig, override_cfg=override_cfg, + load_best=True, disable_fsdp=True, + ignore_state_keys=['optimizer', 'ema'], **kwargs) + solver.model.eval() + return solver + + def get_formatter(self, stage_name: str) -> flashy.Formatter: + return flashy.Formatter({ + 'lr': '.2E', + 'ce': '.3f', + 'ppl': '.3f', + 'grad_norm': '.3E', + }, exclude_keys=['ce_q*', 'ppl_q*']) + + @property + def best_metric_name(self) -> tp.Optional[str]: + return self._best_metric_name + + def initialize_optimization(self) -> None: + if self.cfg.fsdp.use: + assert not self.cfg.autocast, "Cannot use autocast with fsdp" + self.model = self.wrap_with_fsdp(self.model) + self.register_ema('model') + # initialize optimization + self.optimizer = builders.get_optimizer(builders.get_optim_parameter_groups(self.model), self.cfg.optim) + self.lr_scheduler = builders.get_lr_scheduler(self.optimizer, self.cfg.schedule, self.total_updates) + self.register_stateful('model', 'optimizer', 'lr_scheduler') + self.register_best_state('model') + self.autocast_dtype = { + 'float16': torch.float16, 'bfloat16': torch.bfloat16 + }[self.cfg.autocast_dtype] + self.scaler: tp.Optional[torch.cuda.amp.GradScaler] = None + if self.cfg.fsdp.use: + need_scaler = self.cfg.fsdp.param_dtype == 'float16' + else: + need_scaler = self.cfg.autocast and self.autocast_dtype is torch.float16 + if need_scaler: + if self.cfg.fsdp.use: + from torch.distributed.fsdp.sharded_grad_scaler import ShardedGradScaler + self.scaler = ShardedGradScaler() # type: ignore + else: + self.scaler = torch.cuda.amp.GradScaler() + self.register_stateful('scaler') + + def build_model(self) -> None: + """Instantiate models and optimizer.""" + # we can potentially not use all quantizers with which the EnCodec model was trained + # (e.g. we trained the model with quantizers dropout) + self.compression_model = CompressionSolver.wrapped_model_from_checkpoint( + self.cfg, self.cfg.compression_model_checkpoint, device=self.device) + assert self.compression_model.sample_rate == self.cfg.sample_rate, ( + f"Compression model sample rate is {self.compression_model.sample_rate} but " + f"Solver sample rate is {self.cfg.sample_rate}." + ) + # ensure we have matching configuration between LM and compression model + assert self.cfg.transformer_lm.card == self.compression_model.cardinality, ( + "Cardinalities of the LM and compression model don't match: ", + f"LM cardinality is {self.cfg.transformer_lm.card} vs ", + f"compression model cardinality is {self.compression_model.cardinality}" + ) + assert self.cfg.transformer_lm.n_q == self.compression_model.num_codebooks, ( + "Numbers of codebooks of the LM and compression models don't match: ", + f"LM number of codebooks is {self.cfg.transformer_lm.n_q} vs ", + f"compression model numer of codebooks is {self.compression_model.num_codebooks}" + ) + self.logger.info("Compression model has %d codebooks with %d cardinality, and a framerate of %d", + self.compression_model.num_codebooks, self.compression_model.cardinality, + self.compression_model.frame_rate) + # instantiate LM model + self.model: tp.Union[models.LMModel, models.FlowMatchingModel] = models.builders.get_lm_model( + self.cfg).to(self.device) + + # initialize optimization + self.initialize_optimization() + + def build_dataloaders(self) -> None: + """Instantiate audio dataloaders for each stage.""" + self.dataloaders = builders.get_audio_datasets(self.cfg, dataset_type=self.DATASET_TYPE) + + def show(self) -> None: + """Show the compression model and LM model.""" + self.logger.info("Compression model:") + self.log_model_summary(self.compression_model) + self.logger.info("LM model:") + self.log_model_summary(self.model) + + def load_state_dict(self, state: dict) -> None: + if 'condition_provider' in state: + model_state = state['model'] + condition_provider_state = state.pop('condition_provider') + prefix = 'condition_provider.' + for key, value in condition_provider_state.items(): + key = prefix + key + assert key not in model_state + model_state[key] = value + if 'compression_model' in state: + # We used to store the `compression_model` state in the checkpoint, however + # this is in general not needed, as the compression model should always be readable + # from the original `cfg.compression_model_checkpoint` location. + compression_model_state = state.pop('compression_model') + before_hash = model_hash(self.compression_model) + self.compression_model.load_state_dict(compression_model_state) + after_hash = model_hash(self.compression_model) + if before_hash != after_hash: + raise RuntimeError( + "The compression model state inside the checkpoint is different" + " from the one obtained from compression_model_checkpoint..." + "We do not support altering the compression model inside the LM " + "checkpoint as parts of the code, in particular for running eval post-training " + "will use the compression_model_checkpoint as the source of truth.") + + super().load_state_dict(state) + + def load_from_pretrained(self, name: str): + # TODO: support native HF versions of MusicGen. + lm_pkg = models.loaders.load_lm_model_ckpt(name) + state: dict = { + 'best_state': { + 'model': lm_pkg['best_state'], + }, + } + return state + + def _compute_cross_entropy( + self, logits: torch.Tensor, targets: torch.Tensor, mask: torch.Tensor + ) -> tp.Tuple[torch.Tensor, tp.List[torch.Tensor]]: + """Compute cross entropy between multi-codebook targets and model's logits. + The cross entropy is computed per codebook to provide codebook-level cross entropy. + Valid timesteps for each of the codebook are pulled from the mask, where invalid + timesteps are set to 0. + + Args: + logits (torch.Tensor): Model's logits of shape [B, K, T, card]. + targets (torch.Tensor): Target codes, of shape [B, K, T]. + mask (torch.Tensor): Mask for valid target codes, of shape [B, K, T]. + Returns: + ce (torch.Tensor): Cross entropy averaged over the codebooks + ce_per_codebook (list of torch.Tensor): Cross entropy per codebook (detached). + """ + B, K, T = targets.shape + assert logits.shape[:-1] == targets.shape + assert mask.shape == targets.shape + ce = torch.zeros([], device=targets.device) + ce_per_codebook: tp.List[torch.Tensor] = [] + for k in range(K): + logits_k = logits[:, k, ...].contiguous().view(-1, logits.size(-1)) # [B x T, card] + targets_k = targets[:, k, ...].contiguous().view(-1) # [B x T] + mask_k = mask[:, k, ...].contiguous().view(-1) # [B x T] + ce_targets = targets_k[mask_k] + ce_logits = logits_k[mask_k] + q_ce = F.cross_entropy(ce_logits, ce_targets) + ce += q_ce + ce_per_codebook.append(q_ce.detach()) + # average cross entropy across codebooks + ce = ce / K + return ce, ce_per_codebook + + def _get_audio_tokens(self, audio: torch.Tensor): + with torch.no_grad(): + audio_tokens, scale = self.compression_model.encode(audio) + assert scale is None, "Scaled compression model not supported with LM." + return audio_tokens + + def _prepare_tokens_and_attributes( + self, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], + check_synchronization_points: bool = False + ) -> tp.Tuple[dict, torch.Tensor, torch.Tensor]: + """Prepare input batchs for language model training. + + Args: + batch (tuple[torch.Tensor, list[SegmentWithAttributes]]): Input batch with audio tensor of shape [B, C, T] + and corresponding metadata as SegmentWithAttributes (with B items). + check_synchronization_points (bool): Whether to check for synchronization points slowing down training. + Returns: + Condition tensors (dict[str, any]): Preprocessed condition attributes. + Tokens (torch.Tensor): Audio tokens from compression model, of shape [B, K, T_s], + with B the batch size, K the number of codebooks, T_s the token timesteps. + Padding mask (torch.Tensor): Mask with valid positions in the tokens tensor, of shape [B, K, T_s]. + """ + if self.model.training: + warnings.warn( + "Up to version 1.0.1, the _prepare_tokens_and_attributes was evaluated with `torch.no_grad()`. " + "This is inconsistent with how model were trained in the MusicGen paper. We removed the " + "`torch.no_grad()` in version 1.1.0. Small changes to the final performance are expected. " + "Really sorry about that.") + if self._cached_batch_loader is None or self.current_stage != "train": + audio, infos = batch + audio = audio.to(self.device) + audio_tokens = None + assert audio.size(0) == len(infos), ( + f"Mismatch between number of items in audio batch ({audio.size(0)})", + f" and in metadata ({len(infos)})" + ) + else: + audio = None + # In that case the batch will be a tuple coming from the _cached_batch_writer bit below. + infos, = batch # type: ignore + assert all([isinstance(info, AudioInfo) for info in infos]) + assert all([info.audio_tokens is not None for info in infos]) # type: ignore + audio_tokens = torch.stack([info.audio_tokens for info in infos]).to(self.device) # type: ignore + audio_tokens = audio_tokens.long() + for info in infos: + if isinstance(info, MusicInfo): + # Careful here, if you want to use this condition_wav (e.b. chroma conditioning), + # then you must be using the chroma cache! otherwise the code will try + # to use this segment and fail (by that I mean you will see NaN everywhere). + info.self_wav = WavCondition( + torch.full([1, info.channels, info.total_frames], float('NaN')), + length=torch.tensor([info.n_frames]), + sample_rate=[info.sample_rate], + path=[info.meta.path], + seek_time=[info.seek_time]) + dataset = get_dataset_from_loader(self.dataloaders['original_train']) + assert isinstance(dataset, MusicDataset), type(dataset) + if dataset.paraphraser is not None and info.description is not None: + # Hackingly reapplying paraphraser when using cache. + info.description = dataset.paraphraser.sample_paraphrase( + info.meta.path, info.description) + # prepare attributes + attributes = [info.to_condition_attributes() for info in infos] + attributes = self.model.cfg_dropout(attributes) + attributes = self.model.att_dropout(attributes) + tokenized = self.model.condition_provider.tokenize(attributes) + + # Now we should be synchronization free. + if self.device == "cuda" and check_synchronization_points: + torch.cuda.set_sync_debug_mode("warn") + + if audio_tokens is None: + audio_tokens = self._get_audio_tokens(audio) + + with self.autocast: + condition_tensors = self.model.condition_provider(tokenized) + + # create a padding mask to hold valid vs invalid positions + padding_mask = torch.ones_like(audio_tokens, dtype=torch.bool, device=audio_tokens.device) + # replace encodec tokens from padded audio with special_token_id + if self.cfg.tokens.padding_with_special_token: + audio_tokens = audio_tokens.clone() + padding_mask = padding_mask.clone() + token_sample_rate = self.compression_model.frame_rate + B, K, T_s = audio_tokens.shape + for i in range(B): + n_samples = infos[i].n_frames + audio_sample_rate = infos[i].sample_rate + # take the last token generated from actual audio frames (non-padded audio) + valid_tokens = math.floor(float(n_samples) / audio_sample_rate * token_sample_rate) + audio_tokens[i, :, valid_tokens:] = self.model.special_token_id + padding_mask[i, :, valid_tokens:] = 0 + + if self.device == "cuda" and check_synchronization_points: + torch.cuda.set_sync_debug_mode("default") + + if self._cached_batch_writer is not None and self.current_stage == 'train': + assert self._cached_batch_loader is None + assert audio_tokens is not None + for info, one_audio_tokens in zip(infos, audio_tokens): + assert isinstance(info, AudioInfo) + if isinstance(info, MusicInfo): + assert not info.joint_embed, "joint_embed and cache not supported yet." + info.self_wav = None + assert one_audio_tokens.max() < 2**15, one_audio_tokens.max().item() + info.audio_tokens = one_audio_tokens.short().cpu() + self._cached_batch_writer.save(infos) + + return condition_tensors, audio_tokens, padding_mask + + def run_step(self, idx: int, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], metrics: dict) -> dict: + """Perform one training or valid step on a given batch.""" + check_synchronization_points = idx == 1 and self.device == 'cuda' + + condition_tensors, audio_tokens, padding_mask = self._prepare_tokens_and_attributes( + batch, check_synchronization_points) + + self.deadlock_detect.update('tokens_and_conditions') + + if check_synchronization_points: + torch.cuda.set_sync_debug_mode('warn') + + with self.autocast: + style_mask = None + if hasattr(self.model.condition_provider.conditioners, 'self_wav'): + if isinstance(self.model.condition_provider.conditioners.self_wav, StyleConditioner): + style_mask = self.model.condition_provider.conditioners.self_wav.mask + + model_output = self.model.compute_predictions(audio_tokens, [], condition_tensors) # type: ignore + logits = model_output.logits + if style_mask is not None: + mask = padding_mask & model_output.mask & style_mask + else: + mask = padding_mask & model_output.mask + ce, ce_per_codebook = self._compute_cross_entropy(logits, audio_tokens, mask) + loss = ce + self.deadlock_detect.update('loss') + + if check_synchronization_points: + torch.cuda.set_sync_debug_mode('default') + + if self.is_training: + metrics['lr'] = self.optimizer.param_groups[0]['lr'] + if self.scaler is not None: + loss = self.scaler.scale(loss) + self.deadlock_detect.update('scale') + if self.cfg.fsdp.use: + loss.backward() + flashy.distrib.average_tensors(self.model.buffers()) + elif self.cfg.optim.eager_sync: + with flashy.distrib.eager_sync_model(self.model): + loss.backward() + else: + # this should always be slower but can be useful + # for weird use cases like multiple backwards. + loss.backward() + flashy.distrib.sync_model(self.model) + self.deadlock_detect.update('backward') + + if self.scaler is not None: + self.scaler.unscale_(self.optimizer) + if self.cfg.optim.max_norm: + if self.cfg.fsdp.use: + metrics['grad_norm'] = self.model.clip_grad_norm_(self.cfg.optim.max_norm) # type: ignore + else: + metrics['grad_norm'] = torch.nn.utils.clip_grad_norm_( + self.model.parameters(), self.cfg.optim.max_norm + ) + if self.scaler is None: + self.optimizer.step() + else: + self.scaler.step(self.optimizer) + self.scaler.update() + if self.lr_scheduler: + self.lr_scheduler.step() + self.optimizer.zero_grad() + self.deadlock_detect.update('optim') + if self.scaler is not None: + scale = self.scaler.get_scale() + metrics['grad_scale'] = scale + if not loss.isfinite().all(): + raise RuntimeError("Model probably diverged.") + + metrics['ce'] = ce + metrics['ppl'] = torch.exp(ce) + for k, ce_q in enumerate(ce_per_codebook): + metrics[f'ce_q{k + 1}'] = ce_q + metrics[f'ppl_q{k + 1}'] = torch.exp(ce_q) + + return metrics + + @torch.no_grad() + def run_generate_step(self, batch: tp.Tuple[torch.Tensor, tp.List[SegmentWithAttributes]], + gen_duration: float, prompt_duration: tp.Optional[float] = None, + remove_text_conditioning: bool = False, + ) -> dict: + """Run generate step on a batch of optional audio tensor and corresponding attributes. + + Args: + batch (tuple[torch.Tensor, list[SegmentWithAttributes]]): + use_prompt (bool): Whether to do audio continuation generation with prompt from audio batch. + gen_duration (float): Target audio duration for the generation. + prompt_duration (float, optional): Duration for the audio prompt to use for continuation. + Returns: + gen_outputs (dict): Generation outputs, consisting in audio, audio tokens from both the generation + and the prompt along with additional information. + """ + bench_start = time.time() + audio, meta = batch + assert audio.size(0) == len(meta), ( + f"Mismatch between number of items in audio batch ({audio.size(0)})", + f" and in metadata ({len(meta)})" + ) + # prepare attributes + attributes = [x.to_condition_attributes() for x in meta] + if remove_text_conditioning: + attributes = _drop_description_condition(attributes) + + # prepare audio prompt + if prompt_duration is None: + prompt_audio = None + else: + assert prompt_duration < gen_duration, "Prompt duration must be lower than target generation duration" + prompt_audio_frames = int(prompt_duration * self.compression_model.sample_rate) + prompt_audio = audio[..., :prompt_audio_frames] + + # get audio tokens from compression model + if prompt_audio is None or prompt_audio.nelement() == 0: + num_samples = len(attributes) + prompt_tokens = None + else: + num_samples = None + prompt_audio = prompt_audio.to(self.device) + prompt_tokens, scale = self.compression_model.encode(prompt_audio) + assert scale is None, "Compression model in MusicGen should not require rescaling." + + # generate by sampling from the LM + with self.autocast: + total_gen_len = math.ceil(gen_duration * self.compression_model.frame_rate) + gen_tokens = self.model.generate( + prompt_tokens, attributes, max_gen_len=total_gen_len, + num_samples=num_samples, **self.generation_params) + + # generate audio from tokens + assert gen_tokens.dim() == 3 + gen_audio = self.compression_model.decode(gen_tokens, None) + + bench_end = time.time() + gen_outputs = { + 'rtf': (bench_end - bench_start) / gen_duration, + 'ref_audio': audio, + 'gen_audio': gen_audio, + 'gen_tokens': gen_tokens, + 'prompt_audio': prompt_audio, + 'prompt_tokens': prompt_tokens, + } + return gen_outputs + + def generate_audio(self) -> dict: + """Audio generation stage.""" + generate_stage_name = f'{self.current_stage}' + sample_manager = SampleManager(self.xp) + self.logger.info(f"Generating samples in {sample_manager.base_folder}") + loader = self.dataloaders['generate'] + updates = len(loader) + lp = self.log_progress(generate_stage_name, loader, total=updates, updates=self.log_updates) + + dataset = get_dataset_from_loader(loader) + dataset_duration = dataset.segment_duration + assert dataset_duration is not None + assert isinstance(dataset, AudioDataset) + target_duration = self.cfg.generate.lm.gen_duration + prompt_duration = self.cfg.generate.lm.prompt_duration + if target_duration is None: + target_duration = dataset_duration + if prompt_duration is None: + prompt_duration = dataset_duration / 4 + assert prompt_duration < dataset_duration, ( + f"Specified prompt duration ({prompt_duration}s) is longer", + f" than reference audio duration ({dataset_duration}s)" + ) + + def get_hydrated_conditions(meta: tp.List[SegmentWithAttributes]): + hydrated_conditions = [] + for sample in [x.to_condition_attributes() for x in meta]: + cond_dict = {} + for cond_type in sample.__annotations__.keys(): + for cond_key, cond_val in getattr(sample, cond_type).items(): + if cond_key not in self.model.condition_provider.conditioners.keys(): + continue + if is_jsonable(cond_val): + cond_dict[cond_key] = cond_val + elif isinstance(cond_val, WavCondition): + cond_dict[cond_key] = cond_val.path + elif isinstance(cond_val, JointEmbedCondition): + cond_dict[cond_key] = cond_val.text # only support text at inference for now + else: + # if we reached this point, it is not clear how to log the condition + # so we just log the type. + cond_dict[cond_key] = str(type(cond_val)) + continue + hydrated_conditions.append(cond_dict) + return hydrated_conditions + + metrics: dict = {} + average = flashy.averager() + for batch in lp: + audio, meta = batch + # metadata for sample manager + hydrated_conditions = get_hydrated_conditions(meta) + sample_generation_params = { + **{f'classifier_free_guidance_{k}': v for k, v in self.cfg.classifier_free_guidance.items()}, + **self.generation_params + } + if self.cfg.generate.lm.unprompted_samples: + if self.cfg.generate.lm.gen_gt_samples: + # get the ground truth instead of generation + self.logger.warn( + "Use ground truth instead of audio generation as generate.lm.gen_gt_samples=true") + gen_unprompted_audio = audio + rtf = 1. + else: + gen_unprompted_outputs = self.run_generate_step( + batch, gen_duration=target_duration, prompt_duration=None) + gen_unprompted_audio = gen_unprompted_outputs['gen_audio'].cpu() + rtf = gen_unprompted_outputs['rtf'] + sample_manager.add_samples( + gen_unprompted_audio, self.epoch, hydrated_conditions, + ground_truth_wavs=audio, generation_args=sample_generation_params) + + if self.cfg.generate.lm.prompted_samples: + gen_outputs = self.run_generate_step( + batch, gen_duration=target_duration, prompt_duration=prompt_duration) + gen_audio = gen_outputs['gen_audio'].cpu() + prompt_audio = gen_outputs['prompt_audio'].cpu() + sample_manager.add_samples( + gen_audio, self.epoch, hydrated_conditions, + prompt_wavs=prompt_audio, ground_truth_wavs=audio, + generation_args=sample_generation_params) + if self.cfg.generate.lm.no_text_conditioning: + gen_outputs = self.run_generate_step( + batch, gen_duration=target_duration, prompt_duration=None, + remove_text_conditioning=self.cfg.generate.lm.no_text_conditioning) + gen_audio = gen_outputs['gen_audio'].cpu() + rtf = gen_outputs['rtf'] + # Here, the prompt is the original audio provided for the style conditioning + prompt_audio = gen_outputs['ref_audio'].cpu() + sample_manager.add_samples( + gen_audio, self.epoch, hydrated_conditions, + prompt_wavs=prompt_audio, ground_truth_wavs=audio, + generation_args=sample_generation_params) + + metrics['rtf'] = rtf + metrics = average(metrics) + + flashy.distrib.barrier() + return metrics + + def generate(self) -> dict: + """Generate stage.""" + self.model.eval() + with torch.no_grad(): + return self.generate_audio() + + def run_epoch(self): + if self.cfg.cache.write: + if ((self.epoch - 1) % self.cfg.cache.write_num_shards) != self.cfg.cache.write_shard: + return + super().run_epoch() + + def train(self): + """Train stage. + """ + if self._cached_batch_writer is not None: + self._cached_batch_writer.start_epoch(self.epoch) + if self._cached_batch_loader is None: + dataset = get_dataset_from_loader(self.dataloaders['train']) + assert isinstance(dataset, AudioDataset) + dataset.current_epoch = self.epoch + else: + self._cached_batch_loader.start_epoch(self.epoch) + return super().train() + + def evaluate_audio_generation(self) -> dict: + """Evaluate audio generation with off-the-shelf metrics.""" + evaluate_stage_name = f'{self.current_stage}_generation' + # instantiate evaluation metrics, if at least one metric is defined, run audio generation evaluation + fad: tp.Optional[eval_metrics.FrechetAudioDistanceMetric] = None + kldiv: tp.Optional[eval_metrics.KLDivergenceMetric] = None + text_consistency: tp.Optional[eval_metrics.TextConsistencyMetric] = None + chroma_cosine: tp.Optional[eval_metrics.ChromaCosineSimilarityMetric] = None + should_run_eval = False + eval_chroma_wavs: tp.Optional[torch.Tensor] = None + if self.cfg.evaluate.metrics.fad: + fad = builders.get_fad(self.cfg.metrics.fad).to(self.device) + should_run_eval = True + if self.cfg.evaluate.metrics.kld: + kldiv = builders.get_kldiv(self.cfg.metrics.kld).to(self.device) + should_run_eval = True + if self.cfg.evaluate.metrics.text_consistency: + text_consistency = builders.get_text_consistency(self.cfg.metrics.text_consistency).to(self.device) + should_run_eval = True + if self.cfg.evaluate.metrics.chroma_cosine: + chroma_cosine = builders.get_chroma_cosine_similarity(self.cfg.metrics.chroma_cosine).to(self.device) + # if we have predefind wavs for chroma we should purge them for computing the cosine metric + has_predefined_eval_chromas = 'self_wav' in self.model.condition_provider.conditioners and \ + self.model.condition_provider.conditioners['self_wav'].has_eval_wavs() + if has_predefined_eval_chromas: + warn_once(self.logger, "Attempting to run cosine eval for config with pre-defined eval chromas! " + 'Resetting eval chromas to None for evaluation.') + eval_chroma_wavs = self.model.condition_provider.conditioners.self_wav.eval_wavs # type: ignore + self.model.condition_provider.conditioners.self_wav.reset_eval_wavs(None) # type: ignore + should_run_eval = True + + def get_compressed_audio(audio: torch.Tensor) -> torch.Tensor: + audio_tokens, scale = self.compression_model.encode(audio.to(self.device)) + compressed_audio = self.compression_model.decode(audio_tokens, scale) + return compressed_audio[..., :audio.shape[-1]] + + metrics: dict = {} + if should_run_eval: + loader = self.dataloaders['evaluate'] + updates = len(loader) + lp = self.log_progress(f'{evaluate_stage_name} inference', loader, total=updates, updates=self.log_updates) + average = flashy.averager() + dataset = get_dataset_from_loader(loader) + assert isinstance(dataset, AudioDataset) + self.logger.info(f"Computing evaluation metrics on {len(dataset)} samples") + + for idx, batch in enumerate(lp): + audio, meta = batch + assert all([self.cfg.sample_rate == m.sample_rate for m in meta]) + + target_duration = audio.shape[-1] / self.cfg.sample_rate + if self.cfg.evaluate.fixed_generation_duration: + target_duration = self.cfg.evaluate.fixed_generation_duration + + gen_outputs = self.run_generate_step( + batch, gen_duration=target_duration, + remove_text_conditioning=self.cfg.evaluate.get('remove_text_conditioning', False) + ) + y_pred = gen_outputs['gen_audio'].detach() + y_pred = y_pred[..., :audio.shape[-1]] + + normalize_kwargs = dict(self.cfg.generate.audio) + normalize_kwargs.pop('format', None) + y_pred = torch.stack([normalize_audio(w, **normalize_kwargs) for w in y_pred], dim=0).cpu() + y = audio.cpu() # should already be on CPU but just in case + sizes = torch.tensor([m.n_frames for m in meta]) # actual sizes without padding + sample_rates = torch.tensor([m.sample_rate for m in meta]) # sample rates for audio samples + audio_stems = [Path(m.meta.path).stem + f"_{m.seek_time}" for m in meta] + + if fad is not None: + if self.cfg.metrics.fad.use_gt: + y_pred = get_compressed_audio(y).cpu() + fad.update(y_pred, y, sizes, sample_rates, audio_stems) + if kldiv is not None: + if self.cfg.metrics.kld.use_gt: + y_pred = get_compressed_audio(y).cpu() + kldiv.update(y_pred, y, sizes, sample_rates) + if text_consistency is not None: + texts = [m.description for m in meta] + if self.cfg.metrics.text_consistency.use_gt: + y_pred = y + text_consistency.update(y_pred, texts, sizes, sample_rates) + if chroma_cosine is not None: + if self.cfg.metrics.chroma_cosine.use_gt: + y_pred = get_compressed_audio(y).cpu() + chroma_cosine.update(y_pred, y, sizes, sample_rates) + # restore chroma conditioner's eval chroma wavs + if eval_chroma_wavs is not None: + self.model.condition_provider.conditioners['self_wav'].reset_eval_wavs(eval_chroma_wavs) + + flashy.distrib.barrier() + if fad is not None: + metrics['fad'] = fad.compute() + if kldiv is not None: + kld_metrics = kldiv.compute() + metrics.update(kld_metrics) + if text_consistency is not None: + metrics['text_consistency'] = text_consistency.compute() + if chroma_cosine is not None: + metrics['chroma_cosine'] = chroma_cosine.compute() + metrics = average(metrics) + metrics = flashy.distrib.average_metrics(metrics, len(loader)) + + return metrics + + def evaluate(self) -> dict: + """Evaluate stage.""" + self.model.eval() + with torch.no_grad(): + metrics: dict = {} + if self.cfg.evaluate.metrics.base: + metrics.update(self.common_train_valid('evaluate')) + gen_metrics = self.evaluate_audio_generation() + return {**metrics, **gen_metrics} diff --git a/audiocraft/solvers/watermark.py b/audiocraft/solvers/watermark.py new file mode 100644 index 0000000..0ae90c7 --- /dev/null +++ b/audiocraft/solvers/watermark.py @@ -0,0 +1,716 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import typing as tp +from functools import partial +import os +from pathlib import Path + +import flashy +from omegaconf import DictConfig +import multiprocessing +import numpy as np +import torch +import torch.nn as nn + +from . import base, builders +from ..models.builders import get_watermark_model +from ..modules.watermark import pad, mix + +from ..metrics.miou import calculate_miou +from ..metrics.pesq import PesqMetric + +from ..utils import checkpoint +from ..utils.audio_effects import ( + compress_with_encodec, + get_audio_effects, + select_audio_effects, +) +from ..utils.samples.manager import SampleManager +from ..data.audio import save_spectrograms +from ..utils.utils import get_pool_executor + +from torchmetrics.audio.snr import ScaleInvariantSignalNoiseRatio +from torchmetrics.audio.stoi import ShortTimeObjectiveIntelligibility + + +if tp.TYPE_CHECKING: + from ..models.watermark import WMModel + + +def get_encodec_audio_effect(encodec_cfg: DictConfig, sr: int) -> tp.Dict: + """ + Construct encodec-based compression data agumentation. This method is + is put here instead of in `audiocraft.utils.audio_effects` because + it depends on the package `audiocraft.solvers`, which is one layer + higher than `audiocraft.utils`, so we avoid the circle dependency + from any solvers using `audiocraft.utils.audio_effects` to do the + augmentation + """ + from ..solvers.compression import CompressionSolver + + codec_model = CompressionSolver.model_from_checkpoint(encodec_cfg.ckpt) + codec_model.train() + return { + f"encodec_nq={n_q}": partial( + compress_with_encodec, + model=codec_model, + n_q=n_q, + sample_rate=sr, + ) + for n_q in encodec_cfg.n_qs + } + + +def random_message(nbits: int, batch_size: int) -> torch.Tensor: + """Return random message as 0/1 tensor.""" + if nbits == 0: + return torch.tensor([]) + return torch.randint(0, 2, (batch_size, nbits)) + + +class WatermarkSolver(base.StandardSolver): + """Solver for different watermarking models""" + + def __init__(self, cfg: DictConfig): + super().__init__(cfg) + self.rng: torch.Generator # set at each epoch + self.model: WMModel + if hasattr(cfg, "fsdp"): + assert not getattr( + cfg.fsdp, "use", False + ), "FSDP not supported by WatermarkSolver." + self._init_losses() + self._init_augmentations() + self.balancer = builders.get_balancer(self.loss_weights, self.cfg.balancer) + self.path_specs = os.path.join(self.folder, "spectrograms") + os.makedirs(self.path_specs, exist_ok=True) + + def _init_losses(self): + assert hasattr(self.cfg, "losses") and isinstance( + self.cfg.losses, (DictConfig, tp.Mapping) + ), "WatermarkSolver must declare training losses in the config" + + self.adv_losses = builders.get_adversarial_losses(self.cfg) # noqa + self.register_stateful("adv_losses") + + self.aux_losses = nn.ModuleDict() # noqa + self.info_losses = nn.ModuleDict() # noqa + self.wm_losses = nn.ModuleDict() # noqa + loss_weights = {} + for loss_name, weight in self.cfg.losses.items(): + + # explicitly skip this loss calculation by setting a -1 as weight + # if weight == 0 it will be calculated but kept as info + if weight == -1: + continue + + if loss_name in ["adv", "feat"]: + for adv_name, _ in self.adv_losses.items(): + loss_weights[f"{loss_name}_{adv_name}"] = weight + elif weight > 0: + if loss_name[:3] == "wm_": + self.wm_losses[loss_name] = builders.get_loss( + loss_name, self.cfg + ).to(self.device) + loss_weights[loss_name] = weight + else: + self.aux_losses[loss_name] = builders.get_loss( + loss_name, self.cfg + ).to(self.device) + loss_weights[loss_name] = weight + else: + self.info_losses[loss_name] = builders.get_loss(loss_name, self.cfg).to( + self.device + ) + + self.loss_weights = loss_weights # noqa + + def _init_augmentations(self): + if not hasattr(self.cfg, "aug_weights") or not hasattr( + self.cfg, "audio_effects" + ): + return + + aug_weights = {} + cfg_audio_effects = dict(self.cfg.audio_effects) + + # Handle `encodec` augmentation separately as this requires loading a + # CompressionSolver checkpoint + encodec_cfg = cfg_audio_effects.pop("encodec", None) + if encodec_cfg: + encodec_effects = get_encodec_audio_effect( + encodec_cfg, self.cfg.sample_rate + ) + for aug_name in encodec_effects.keys(): + aug_weights[aug_name] = getattr(self.cfg.aug_weights, "encodec", -1) + else: + encodec_effects = {} + + other_effects = get_audio_effects(self.cfg) # noqa + for name in other_effects.keys(): + aug_weights[name] = self.cfg.aug_weights.get(name, -1) + + self.aug_weights = aug_weights # noqa + self.augmentations = {**encodec_effects, **other_effects} # noqa + + @property + def best_metric_name(self) -> tp.Optional[str]: + # best model is the last for the watermark model for now + return None + + def build_model(self): + """Instantiate model and optimizer.""" + # Model and optimizer + self.model = get_watermark_model(self.cfg) + # Need two optimizers ? + self.optimizer = builders.get_optimizer(self.model.parameters(), self.cfg.optim) + self.register_stateful("model", "optimizer") + self.register_best_state("model") + self.register_ema("model") + + def build_dataloaders(self): + """Instantiate audio dataloaders for each stage.""" + self.dataloaders = builders.get_audio_datasets(self.cfg) + + def show(self): + """Show the Watermark model and employed adversarial loss.""" + self.log_model_summary(self.model) + self.logger.info("Sould print losses here:") + + def crop( + self, signal: torch.Tensor, watermark: torch.Tensor + ) -> tp.Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + """ + Applies a transformation to modify the watermarked signal to train localization. + It can be one of the following: + - zero padding: add zeros at the begining and the end of the signal + - crop: crop the watermark apply a watermark only on some parts of the signal + - shuffle: replace some part of the audio with other non watermarked parts + from the batch + In every cases the function returns a mask that contains indicates the parts that are or + not watermarked + + Args: + watermark (torch.Tensor): The watermark to apply on the signal. + signal (torch.Tensor): clean signal + Returns: + watermark (torch.Tensor): modified watermark + signal (torch.Tensor): modified signal + mask (torch.Tensor): mask indicating which portion is still watermarked + """ + assert ( + self.cfg.crop.prob + self.cfg.crop.shuffle_prob + self.cfg.crop.pad_prob + <= 1 + ), f"The sum of the probabilities {self.cfg.crop.prob=} {self.cfg.crop.shuffle_prob=} \ + {self.cfg.crop.pad_prob=} should be less than 1" + mask = torch.ones_like(watermark) + p = torch.rand(1) + if p < self.cfg.crop.pad_prob: # Pad with some probability + start = int(torch.rand(1) * 0.33 * watermark.size(-1)) + finish = int((0.66 + torch.rand(1) * 0.33) * watermark.size(-1)) + mask[:, :, :start] = 0 + mask[:, :, finish:] = 0 + if torch.rand(1) > 0.5: + mask = 1 - mask + signal *= mask # pad signal + + elif ( + p < self.cfg.crop.prob + self.cfg.crop.pad_prob + self.cfg.crop.shuffle_prob + ): + # Define a mask, then crop or shuffle + mask_size = round(watermark.shape[-1] * self.cfg.crop.size) + n_windows = int( + torch.randint(1, self.cfg.crop.max_n_windows + 1, (1,)).item() + ) + window_size = int(mask_size / n_windows) + for _ in range(n_windows): # Create multiple windows in the mask + mask_start = torch.randint(0, watermark.shape[-1] - window_size, (1,)) + mask[:, :, mask_start: mask_start + window_size] = ( + 0 # Apply window to mask + ) + # inverse the mask half the time + if torch.rand(1) > 0.5: + mask = 1 - mask + + if p < self.cfg.crop.pad_prob + self.cfg.crop.shuffle_prob: # shuffle + # shuffle + signal_cloned = signal.clone().detach() # detach to be sure + shuffle_idx = torch.randint(0, signal.size(0), (signal.size(0),)) + signal = signal * mask + signal_cloned[shuffle_idx] * ( + 1 - mask + ) # shuffle signal where not wm + + watermark *= mask # Apply mask to the watermark + return signal, watermark, mask + + def run_step(self, idx: int, batch: torch.Tensor, metrics: dict): + """Perform one training or valid step on a given batch.""" + x = batch.to(self.device) + y = x.clone() + nbits = getattr(self.model, "nbits") + message = random_message(nbits, y.shape[0]).to(self.device) + watermark = self.model.get_watermark(x, message=message) + y, watermark, mask = self.crop(y, watermark) + + y_wm = y + watermark + + if ( + self.cfg.losses.adv != 0 or self.cfg.losses.feat != 0 + ) and self.is_training: # train quality adv + d_losses: dict = {} + if ( + len(self.adv_losses) > 0 + and torch.rand(1, generator=self.rng).item() + <= 1 / self.cfg.adversarial.every + ): + for adv_name, adversary in self.adv_losses.items(): + disc_loss = adversary.train_adv(y_wm, y) + d_losses[f"d_{adv_name}"] = disc_loss + metrics["d_loss"] = torch.sum(torch.stack(list(d_losses.values()))) + metrics.update(d_losses) + + balanced_losses: dict = {} + other_losses: dict = {} + + # adversarial losses + if self.cfg.losses.adv != 0 or self.cfg.losses.feat != 0: + for adv_name, adversary in self.adv_losses.items(): + adv_loss, feat_loss = adversary(y_wm, y) + balanced_losses[f"adv_{adv_name}"] = adv_loss + balanced_losses[f"feat_{adv_name}"] = feat_loss + + # auxiliary losses on quality/similarity + for loss_name, criterion in self.aux_losses.items(): + loss = criterion(y_wm, y) + balanced_losses[loss_name] = loss + + # apply augmentations + mode = "all" if self.cfg.select_aug_mode == "all" else "weighted" + selected_augs = select_audio_effects( + self.augmentations, + self.aug_weights, + mode=mode, + max_length=self.cfg.n_max_aug, + ) + N_augs = len(selected_augs) + for ( + augmentation_name, + augmentation_method, + ) in selected_augs.items(): + # concatenate to use the augmentation function only once + y_y_wm = torch.cat([y, y_wm], dim=0) + aug_cat, mask_aug = augmentation_method(y_y_wm, mask=mask) + aug_y = aug_cat[: y.size(0)] + aug_y_wm = aug_cat[y.size(0):] + positive = self.model.detect_watermark(aug_y_wm) + negative = self.model.detect_watermark(aug_y) + for loss_name, criterion in self.wm_losses.items(): + loss = criterion(positive, negative, mask_aug, message) + other_losses[f"{loss_name}_{augmentation_name}"] = loss + + # weighted losses + metrics.update(balanced_losses) + metrics.update(other_losses) + if self.is_training: # something is weird about the loss balancer not + other_loss = torch.tensor(0.0, device=self.device) + for name, o_loss in other_losses.items(): + if "wm_detection" in name: + # here we include the detection losses for augmentation + other_loss += (self.loss_weights["wm_detection"] / N_augs) * o_loss + elif "wm_mb" in name: + other_loss += (self.loss_weights["wm_mb"] / N_augs) * o_loss + else: + other_loss += self.loss_weights[name] * o_loss + if other_loss.requires_grad: + other_loss.backward(retain_graph=True) + ratio1 = sum( + p.grad.data.norm(p=2).pow(2) + for p in self.model.parameters() + if p.grad is not None + ) + assert isinstance(ratio1, torch.Tensor) + metrics["ratio1"] = ratio1.sqrt() + + # balancer losses backward, returns effective training loss + # with effective weights at the current batch. + metrics["g_loss"] = self.balancer.backward(balanced_losses, y_wm) + # add metrics corresponding to weight ratios + metrics.update(self.balancer.metrics) + ratio2 = sum( + p.grad.data.norm(p=2).pow(2) + for p in self.model.parameters() + if p.grad is not None + ) + assert isinstance(ratio2, torch.Tensor) + metrics["ratio2"] = ratio2.sqrt() + + # optim + flashy.distrib.sync_model(self.model) + if self.cfg.optim.max_norm: + torch.nn.utils.clip_grad_norm_( + self.model.parameters(), self.cfg.optim.max_norm + ) + + self.optimizer.step() + self.optimizer.zero_grad() + + # informative losses only + info_losses: dict = {} + with torch.no_grad(): + for loss_name, criterion in self.info_losses.items(): + loss = criterion(y_wm, y) + info_losses[loss_name] = loss + # pesq + metrics["pesq"] = tensor_pesq(y_wm, y, sr=self.cfg.sample_rate) + # max allocated memory + metrics["max_mem"] = torch.cuda.max_memory_allocated() / 1e9 + + metrics.update(info_losses) + if self.cfg.losses.adv != 0 or self.cfg.losses.feat != 0: + # aggregated GAN losses: this is useful to report adv and feat across different adversarial loss setups + adv_losses = [ + loss + for loss_name, loss in metrics.items() + if loss_name.startswith("adv") + ] + if len(adv_losses) > 0: + metrics["adv"] = torch.sum(torch.stack(adv_losses)) + feat_losses = [ + loss + for loss_name, loss in metrics.items() + if loss_name.startswith("feat") + ] + if len(feat_losses) > 0: + metrics["feat"] = torch.sum(torch.stack(feat_losses)) + + return metrics + + def run_epoch(self): + # reset random seed at the beginning of the epoch + self.rng = torch.Generator() + self.rng.manual_seed(1234 + self.epoch) + # run epoch + super().run_epoch() + + def evaluate(self) -> dict: + """Evaluate stage. Runs audio reconstruction evaluation.""" + self.model.eval() + evaluate_stage_name = str(self.current_stage) + + loader = self.dataloaders["evaluate"] + updates = len(loader) + lp = self.log_progress( + f"{evaluate_stage_name} inference", + loader, + total=updates, + updates=self.log_updates, + ) + average = flashy.averager() + + pendings = [] + ctx = multiprocessing.get_context("spawn") + with get_pool_executor(self.cfg.evaluate.num_workers, mp_context=ctx) as pool: + for batch in lp: + x = batch.to(self.device) + with torch.no_grad(): + message = random_message(self.model.nbits, x.shape[0]) + watermark = self.model.get_watermark(x, message) + x_wm = x + watermark + y_pred = x_wm.cpu() + y = batch.cpu() # should already be on CPU but just in case + pendings.append( + pool.submit( + evaluate_audio_watermark, + y_pred, + y, + self.cfg, + ) + ) + # evaluate augmentations + # evaluation is run on all the augmentations + for ( + augmentation_name, + augmentation_method, + ) in self.augmentations.items(): + # if ( + # "mp3" in augmentation_name + # and idx >= 8 + # and self.cfg.evaluate.every <= 2 + # ): + # # When evaluating often do not compute mp3 on the full eval dset to make things faster + # continue + with torch.no_grad(): + aug_positive = self.model.detect_watermark( + augmentation_method(x_wm) + ) + aug_negative = self.model.detect_watermark( + augmentation_method(x) + ) + + pendings.append( + pool.submit( + evaluate_augmentations, + aug_positive.cpu(), + aug_negative.cpu(), + augmentation_name, + message.cpu(), + ) + ) + # end eval of augmentations + + # evaluate localization cropping + for window_size in np.linspace(0.1, 0.9, 9): + + mixed, true_predictions = mix(x, x_wm, window_size=window_size) + model_predictions = self.model.detect_watermark(mixed) + pendings.append( + pool.submit( + evaluate_localizations, + model_predictions.cpu(), + true_predictions.cpu(), + f"crop_{window_size:0.1f}", + ) + ) + mixed, true_predictions = mix( + x, x_wm, window_size=window_size, shuffle=True + ) + model_predictions = self.model.detect_watermark(mixed) + pendings.append( + pool.submit( + evaluate_localizations, + model_predictions.cpu(), + true_predictions.cpu(), + f"shuffle_{window_size:0.1f}", + ) + ) + # evaluate localization padding + mixed, true_predictions = pad(x_wm) + model_predictions = self.model.detect_watermark(mixed) + pendings.append( + pool.submit( + evaluate_localizations, + model_predictions.cpu(), + true_predictions.cpu(), + "padding", + ) + ) + mixed, true_predictions = pad(x_wm, central=True) + model_predictions = self.model.detect_watermark(mixed) + pendings.append( + pool.submit( + evaluate_localizations, + model_predictions.cpu(), + true_predictions.cpu(), + "central_padding", + ) + ) + # end of evaluate localization + + metrics_lp = self.log_progress( + f"{evaluate_stage_name} metrics", pendings, updates=self.log_updates + ) + for pending in metrics_lp: + metrics = pending.result() + metrics = average(metrics) + + metrics = flashy.distrib.average_metrics(metrics, len(loader)) + if self.cfg.select_aug_mode == "use_eval_acc": + # Adjust augmentation weights based on evaluation loss. + # Higher accuracy results in lower probability of selecting this augmentation. + for name in self.augmentations.keys(): + if ( + self.aug_weights[name] != -1 + ): # keep weight to -1 for unwanted augmentations + # set to 0.05 to ensure that an augmentation is never completely removed during a full epoch. + self.aug_weights[name] = max(1 - metrics[f"aug_{name}_acc"], 0.05) + return metrics + + def generate(self): + """Generate stage.""" + self.model.eval() + sample_manager = SampleManager(self.xp, map_reference_to_sample_id=True) + generate_stage_name = str(self.current_stage) + + loader = self.dataloaders["generate"] + updates = len(loader) + lp = self.log_progress( + generate_stage_name, loader, total=updates, updates=self.log_updates + ) + path_dir = os.path.join(self.path_specs, f"epoch={self.epoch}") + os.makedirs(path_dir, exist_ok=True) + first_batch = True + for batch in lp: + reference, _ = batch + reference = reference.to(self.device) + with torch.no_grad(): + message = random_message(self.model.nbits, reference.shape[0]) + watermark = self.model.get_watermark(reference, message) + x_wm = reference + watermark + + reference = reference.cpu() + sample_manager.add_samples( + x_wm.cpu(), self.epoch, ground_truth_wavs=reference + ) + if first_batch and flashy.distrib.is_rank_zero(): + for i in range(reference.size(0)): + ys = [ + reference.cpu()[i].squeeze(0).numpy(), + x_wm.cpu()[i].squeeze(0).numpy(), + watermark.cpu()[i].squeeze(0).numpy(), + ] + path = os.path.join(path_dir, f"spec_{i}.pdf") + save_spectrograms( + ys, + names=["Ground Truth", "Audio Watermarked", "Watermark"], + sr=self.cfg.sample_rate, + path=path, + ) + first_batch = False + flashy.distrib.barrier() + + def load_from_pretrained(self, name: str) -> dict: + raise ValueError("No pretrained model") + + @staticmethod + def model_from_checkpoint( + checkpoint_path: tp.Union[Path, str], + device: tp.Union[torch.device, str] = "cpu", + ) -> "WMModel": + """Instantiate a WatermarkModel from a given checkpoint path or dora sig. + + Args: + checkpoint_path (Path or str): Path to checkpoint or dora sig from where the checkpoint is resolved. + device (torch.device or str): Device on which the model is loaded. + """ + checkpoint_path = str(checkpoint_path) + logger = logging.getLogger(__name__) + logger.info(f"Loading WatermarkModel from checkpoint: {checkpoint_path}") + _checkpoint_path = checkpoint.resolve_checkpoint_path( + checkpoint_path, use_fsdp=False + ) + assert ( + _checkpoint_path is not None + ), f"Could not resolve WatermarkModel checkpoint path: {checkpoint_path}" + state = checkpoint.load_checkpoint(_checkpoint_path) + assert ( + state is not None and "xp.cfg" in state + ), f"Could not load WatermarkModel from ckpt: {checkpoint_path}" + cfg = state["xp.cfg"] + cfg.device = device + watermarking_model = get_watermark_model(cfg).to(device) + + assert "best_state" in state and state["best_state"] != {} + assert ( + "exported" not in state + ), "When loading an exported checkpoint, use the //pretrained/ prefix." + watermarking_model.load_state_dict(state["best_state"]["model"]) + watermarking_model.eval() + logger.info("Watermarking model loaded!") + return watermarking_model + + +def evaluate_localizations(predictions, true_predictions, name): + metrics = {} + # predictions are output of the detector shape [bsz, 2, frames] + # true_predictions is output of the mix method shape [bsz, 2, frames] + metrics[f"localization_acc_{name}"] = ( + ((predictions[:, 1, :] > 0.5) == true_predictions[:, 1, :]) + .float() + .mean() + .item() + ) + metrics[f"localization_miou_{name}"] = calculate_miou( + predictions[:, 1, :], true_predictions[:, 1, :] + ) + return metrics + + +def evaluate_augmentations( + positive: torch.Tensor, + negative: torch.Tensor, + augmentation_name: str, + message: torch.Tensor, +) -> dict: + """calculating evaluation metrics but take name of the augmentation + method that has been done before getting positive and negative results""" + metrics = {} + metrics[f"aug_{augmentation_name}_acc"] = compute_accuracy(positive, negative) + metrics[f"aug_{augmentation_name}_fpr"] = compute_FPR(negative) + metrics[f"aug_{augmentation_name}_fnr"] = compute_FNR(positive) + if message.shape[0] != 0: + metrics[f"aug_{augmentation_name}_bit_acc"] = compute_bit_acc(positive, message) + + # add one metric which is average overall score of all augmentations + metrics["all_aug_acc"] = compute_accuracy(positive, negative) + + return metrics + + +def evaluate_audio_watermark( + y_pred: torch.Tensor, + y: torch.Tensor, + cfg: DictConfig, +) -> dict: + """Audio reconstruction evaluation method that can be conveniently pickled.""" + metrics = {} + if cfg.evaluate.metrics.visqol: + visqol = builders.get_visqol(cfg.metrics.visqol) + metrics["visqol"] = visqol(y_pred, y, cfg.sample_rate) + sisnr = ScaleInvariantSignalNoiseRatio().to(y.device) + stoi = ShortTimeObjectiveIntelligibility(fs=cfg.sample_rate) + metrics["sisnr"] = sisnr(y_pred, y) + metrics["stoi"] = stoi(y_pred, y) + metrics["pesq"] = tensor_pesq(y_pred, y, sr=cfg.sample_rate) + return metrics + + +def tensor_pesq(y_pred: torch.Tensor, y: torch.Tensor, sr: int): + # pesq returns error if no speech is detected, so we catch it + return PesqMetric(sr)(y_pred, y).item() + + +def compute_accuracy(positive, negative): + N = (positive[:, 1, :].mean(dim=1) > 0.5).sum() + ( + negative[:, 0, :].mean(dim=1) > 0.5 + ).sum() + acc = N / (2 * positive.size(0)) + return acc + + +def compute_FPR(negative): + N = (negative[:, 1, :].mean(dim=1) > 0.5).sum() + fpr = N / (negative.size(0)) + return fpr + + +def compute_FNR(positive): + N = (positive[:, 0, :].mean(dim=1) > 0.5).sum() + fpr = N / (positive.size(0)) + return fpr + + +def _bit_acc(decoded, original): + bit_acc = (decoded == original).float().mean() + return bit_acc + + +def compute_bit_acc(positive, original, mask=None): + """Compute bit accuracy. + Args: + positive: detector outputs [bsz, 2+nbits, time_steps] + original: original message (0 or 1) [bsz, nbits] + mask: mask of the watermark [bsz, 1, time_steps] + """ + decoded = positive[:, 2:, :] # b 2+nbits t -> b nbits t + if mask is not None: + # cut last dim of positive to keep only where mask is 1 + new_shape = [*decoded.shape[:-1], -1] # b nbits t -> b nbits -1 + decoded = torch.masked_select(decoded, mask == 1).reshape(new_shape) + # average decision over time, then threshold + decoded = decoded.mean(dim=-1) > 0 # b nbits + return _bit_acc(decoded, original) diff --git a/audiocraft/train.py b/audiocraft/train.py new file mode 100644 index 0000000..5851222 --- /dev/null +++ b/audiocraft/train.py @@ -0,0 +1,163 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Entry point for dora to launch solvers for running training loops. +See more info on how to use dora: https://github.com/facebookresearch/dora +""" + +import logging +import multiprocessing +import os +from pathlib import Path +import sys +import typing as tp + +from dora import git_save, hydra_main, XP +import flashy +import hydra +import omegaconf + +from .environment import AudioCraftEnvironment +from .utils.cluster import get_slurm_parameters + +logger = logging.getLogger(__name__) + + +def resolve_config_dset_paths(cfg): + """Enable Dora to load manifest from git clone repository.""" + # manifest files for the different splits + for key, value in cfg.datasource.items(): + if isinstance(value, str): + cfg.datasource[key] = git_save.to_absolute_path(value) + + +def get_solver(cfg): + from . import solvers + # Convert batch size to batch size for each GPU + assert cfg.dataset.batch_size % flashy.distrib.world_size() == 0 + cfg.dataset.batch_size //= flashy.distrib.world_size() + for split in ['train', 'valid', 'evaluate', 'generate']: + if hasattr(cfg.dataset, split) and hasattr(cfg.dataset[split], 'batch_size'): + assert cfg.dataset[split].batch_size % flashy.distrib.world_size() == 0 + cfg.dataset[split].batch_size //= flashy.distrib.world_size() + resolve_config_dset_paths(cfg) + solver = solvers.get_solver(cfg) + return solver + + +def get_solver_from_xp(xp: XP, override_cfg: tp.Optional[tp.Union[dict, omegaconf.DictConfig]] = None, + restore: bool = True, load_best: bool = True, + ignore_state_keys: tp.List[str] = [], disable_fsdp: bool = True): + """Given a XP, return the Solver object. + + Args: + xp (XP): Dora experiment for which to retrieve the solver. + override_cfg (dict or None): If not None, should be a dict used to + override some values in the config of `xp`. This will not impact + the XP signature or folder. The format is different + than the one used in Dora grids, nested keys should actually be nested dicts, + not flattened, e.g. `{'optim': {'batch_size': 32}}`. + restore (bool): If `True` (the default), restore state from the last checkpoint. + load_best (bool): If `True` (the default), load the best state from the checkpoint. + ignore_state_keys (list[str]): List of sources to ignore when loading the state, e.g. `optimizer`. + disable_fsdp (bool): if True, disables FSDP entirely. This will + also automatically skip loading the EMA. For solver specific + state sources, like the optimizer, you might want to + use along `ignore_state_keys=['optimizer']`. Must be used with `load_best=True`. + """ + logger.info(f"Loading solver from XP {xp.sig}. " + f"Overrides used: {xp.argv}") + cfg = xp.cfg + if override_cfg is not None: + cfg = omegaconf.OmegaConf.merge(cfg, omegaconf.DictConfig(override_cfg)) + if disable_fsdp and cfg.fsdp.use: + cfg.fsdp.use = False + assert load_best is True + # ignoring some keys that were FSDP sharded like model, ema, and best_state. + # fsdp_best_state will be used in that case. When using a specific solver, + # one is responsible for adding the relevant keys, e.g. 'optimizer'. + # We could make something to automatically register those inside the solver, but that + # seem overkill at this point. + ignore_state_keys = ignore_state_keys + ['model', 'ema', 'best_state'] + + try: + with xp.enter(): + solver = get_solver(cfg) + if restore: + solver.restore(load_best=load_best, ignore_state_keys=ignore_state_keys) + return solver + finally: + hydra.core.global_hydra.GlobalHydra.instance().clear() + + +def get_solver_from_sig(sig: str, *args, **kwargs): + """Return Solver object from Dora signature, i.e. to play with it from a notebook. + See `get_solver_from_xp` for more information. + """ + xp = main.get_xp_from_sig(sig) + return get_solver_from_xp(xp, *args, **kwargs) + + +def init_seed_and_system(cfg): + import numpy as np + import torch + import random + from audiocraft.modules.transformer import set_efficient_attention_backend + + multiprocessing.set_start_method(cfg.mp_start_method) + logger.debug('Setting mp start method to %s', cfg.mp_start_method) + random.seed(cfg.seed) + np.random.seed(cfg.seed) + # torch also initialize cuda seed if available + torch.manual_seed(cfg.seed) + torch.set_num_threads(cfg.num_threads) + os.environ['MKL_NUM_THREADS'] = str(cfg.num_threads) + os.environ['OMP_NUM_THREADS'] = str(cfg.num_threads) + logger.debug('Setting num threads to %d', cfg.num_threads) + set_efficient_attention_backend(cfg.efficient_attention_backend) + logger.debug('Setting efficient attention backend to %s', cfg.efficient_attention_backend) + if 'SLURM_JOB_ID' in os.environ: + tmpdir = Path('/scratch/slurm_tmpdir/' + os.environ['SLURM_JOB_ID']) + if tmpdir.exists(): + logger.info("Changing tmpdir to %s", tmpdir) + os.environ['TMPDIR'] = str(tmpdir) + + +@hydra_main(config_path='../config', config_name='config', version_base='1.1') +def main(cfg): + init_seed_and_system(cfg) + + # Setup logging both to XP specific folder, and to stderr. + log_name = '%s.log.{rank}' % cfg.execute_only if cfg.execute_only else 'solver.log.{rank}' + flashy.setup_logging(level=str(cfg.logging.level).upper(), log_name=log_name) + # Initialize distributed training, no need to specify anything when using Dora. + flashy.distrib.init() + solver = get_solver(cfg) + if cfg.show: + solver.show() + return + + if cfg.execute_only: + assert cfg.execute_inplace or cfg.continue_from is not None, \ + "Please explicitly specify the checkpoint to continue from with continue_from= " + \ + "when running with execute_only or set execute_inplace to True." + solver.restore(replay_metrics=False) # load checkpoint + solver.run_one_stage(cfg.execute_only) + return + + return solver.run() + + +main.dora.dir = AudioCraftEnvironment.get_dora_dir() +main._base_cfg.slurm = get_slurm_parameters(main._base_cfg.slurm) + +if main.dora.shared is not None and not os.access(main.dora.shared, os.R_OK): + print("No read permission on dora.shared folder, ignoring it.", file=sys.stderr) + main.dora.shared = None + +if __name__ == '__main__': + main() diff --git a/audiocraft/utils/__init__.py b/audiocraft/utils/__init__.py new file mode 100644 index 0000000..75e25a0 --- /dev/null +++ b/audiocraft/utils/__init__.py @@ -0,0 +1,6 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Utilities.""" diff --git a/audiocraft/utils/audio_effects.py b/audiocraft/utils/audio_effects.py new file mode 100644 index 0000000..70fe4db --- /dev/null +++ b/audiocraft/utils/audio_effects.py @@ -0,0 +1,457 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + + +import inspect +import random +import typing as tp +from functools import partial + +import julius +import omegaconf +import torch +from julius import fft_conv1d, resample_frac + +from ..data.audio_utils import get_aac, get_mp3 + +if tp.TYPE_CHECKING: + from ..models.encodec import CompressionModel + + +def select_audio_effects( + audio_effects: tp.Dict, + weights: tp.Optional[tp.Dict] = None, + mode: str = "all", + max_length: tp.Optional[int] = None, +): + """Samples a subset of audio effects methods from the `AudioEffects` class. + + This function allows you to select a subset of audio effects + based on the chosen selection mode and optional weights. + + Args: + audio_effects (dict): A dictionary of available audio augmentations, usually + obtained from the output of the 'get_audio_effects' function. + weights (dict): A dictionary mapping augmentation names to their corresponding + probabilities of being selected. This argument is used when 'mode' is set + to "weighted." If 'weights' is None, all augmentations have equal + probability of being selected. + mode (str): The selection mode, which can be one of the following: + - "all": Select all available augmentations. + - "weighted": Select augmentations based on their probabilities in the + 'weights' dictionary. + max_length (int): The maximum number of augmentations to select. If 'max_length' + is None, no limit is applied. + + Returns: + dict: A subset of the 'audio_effects' dictionary containing the selected audio + augmentations. + + Note: + - In "all" mode, all available augmentations are selected. + - In "weighted" mode, augmentations are selected with a probability + proportional to their weights specified in the 'weights' dictionary. + - If 'max_length' is set, the function limits the number of selected + augmentations. + - If no augmentations are selected or 'audio_effects' is empty, the function + defaults to including an "identity" augmentation. + - The "identity" augmentation means that no audio effect is applied. + """ + if mode == "all": # original code + out = audio_effects + elif mode == "weighted": + # Probability proportionnal to weights + assert weights is not None + out = { + name: value + for name, value in audio_effects.items() + if random.random() < weights.get(name, 1.0) + } + else: + raise ValueError(f"Unknown mode {mode}") + if max_length is not None: + # Help having a deterministic limit of the gpu memory usage + random_keys = random.sample(list(out.keys()), max_length) + out = {key: out[key] for key in random_keys} + if len(out) == 0: # Check not to return empty dict + out = {"identity": AudioEffects.identity} + return out + + +def get_audio_effects(cfg: omegaconf.DictConfig): + """Automatically pull the list all effects available in this class based on the parameters from the cfg + + Returns: + dict: A dict of names and pointers to all methods in this class. + """ + assert hasattr(cfg, "audio_effects") + cfg_audio_effects = dict(cfg["audio_effects"]) + return { + name: partial(value, **cfg_audio_effects.get(name, {})) + for name, value in inspect.getmembers(AudioEffects) + if inspect.isfunction(value) + } + + +def audio_effect_return( + tensor: torch.Tensor, mask: tp.Optional[torch.Tensor] +) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Return the mask if it was in the input otherwise only the output tensor""" + if mask is None: + return tensor + else: + return tensor, mask + + +def generate_pink_noise(length: int) -> torch.Tensor: + """Generate pink noise using Voss-McCartney algorithm with PyTorch.""" + num_rows = 16 + array = torch.randn(num_rows, length // num_rows + 1) + reshaped_array = torch.cumsum(array, dim=1) + reshaped_array = reshaped_array.reshape(-1) + reshaped_array = reshaped_array[:length] + # Normalize + pink_noise = reshaped_array / torch.max(torch.abs(reshaped_array)) + return pink_noise + + +def compress_with_encodec( + tensor: torch.Tensor, + n_q: int, + model: "CompressionModel", + sample_rate: int, + mask: tp.Optional[torch.Tensor] = None, +) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Special augmentation function that compresses and decompresses wav tensor + using a compression model with the n_q codebooks + """ + + model.to(tensor.device) + model.set_num_codebooks(n_q) + codes, scale = model.encode( + julius.resample_frac(tensor, old_sr=sample_rate, new_sr=model.sample_rate) + ) + compressed = model.decode(codes=codes, scale=scale) + return audio_effect_return( + tensor=julius.resample_frac( + compressed, old_sr=model.sample_rate, new_sr=sample_rate + ), + mask=mask, + ) + + +def apply_compression_skip_grad(tensor: torch.Tensor, compression_fn, **kwargs): + """Applies a specified compression function to the audio tensor. + Whire carrying over the grads to the output tensor with skip through estimator + this is a straight through estimator to make mp3/aac compression differentiable + see more: Yin et al. 2019 https://arxiv.org/pdf/1903.05662.pdf + + Args: + tensor (torch.Tensor): The input audio tensor. + compression_fn (function): The compression function to apply. + **kwargs: Additional keyword arguments for the compression function. + + Returns: + torch.Tensor: The output tensor after applying compression and straight through estimator. + """ + compressed = compression_fn(tensor.detach(), **kwargs) + + # Trim compressed output if needed + compressed = compressed[:, :, : tensor.size(-1)] + + # Straight through estimator for differentiable compression + out = tensor + (compressed - tensor).detach() + + # Check that gradients are not broken + if out.requires_grad: + assert ( + out.grad_fn + ), "The computation graph might be broken due to compression augmentation." + + return out + + +class AudioEffects: + @staticmethod + def speed( + tensor: torch.Tensor, + speed_range: tuple = (0.5, 1.5), + sample_rate: int = 16000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Function to change the speed of a batch of audio data. + The output will have a different length ! + + Args: + audio_batch (torch.Tensor): The batch of audio data in torch tensor format. + speed (float): The speed to change the audio to. + + Returns: + torch.Tensor: The batch of audio data with the speed changed. + """ + speed = torch.FloatTensor(1).uniform_(*speed_range) + new_sr = int(sample_rate * 1 / speed) + resampled_tensor = julius.resample.resample_frac(tensor, sample_rate, new_sr) + if mask is None: + return resampled_tensor + else: + return resampled_tensor, torch.nn.functional.interpolate( + mask, size=resampled_tensor.size(-1), mode="nearest-exact" + ) + + @staticmethod + def updownresample( + tensor: torch.Tensor, + sample_rate: int = 16000, + intermediate_freq: int = 32000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + + orig_shape = tensor.shape + # upsample + tensor = resample_frac(tensor, sample_rate, intermediate_freq) + # downsample + tensor = resample_frac(tensor, intermediate_freq, sample_rate) + + assert tensor.shape == orig_shape + return audio_effect_return(tensor=tensor, mask=mask) + + @staticmethod + def echo( + tensor: torch.Tensor, + volume_range: tuple = (0.1, 0.5), + duration_range: tuple = (0.1, 0.5), + sample_rate: int = 16000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Attenuating the audio volume by a factor of 0.4, delaying it by 100ms, + and then overlaying it with the original. + + Args: + tensor: 3D Tensor representing the audio signal [bsz, channels, frames] + volumne range: volume range of the echo signal + duration range: duration range of the echo signal + sample_rate: Sample rate of the audio signal. + Returns: + Audio signal with reverb. + """ + + # Create a simple impulse response + # Duration of the impulse response in seconds + duration = torch.FloatTensor(1).uniform_(*duration_range) + volume = torch.FloatTensor(1).uniform_(*volume_range) + + n_samples = int(sample_rate * duration) + impulse_response = torch.zeros(n_samples).type(tensor.type()).to(tensor.device) + + # Define a few reflections with decreasing amplitude + impulse_response[0] = 1.0 # Direct sound + + impulse_response[ + int(sample_rate * duration) - 1 + ] = volume # First reflection after 100ms + + # Add batch and channel dimensions to the impulse response + impulse_response = impulse_response.unsqueeze(0).unsqueeze(0) + + # Convolve the audio signal with the impulse response + reverbed_signal = fft_conv1d(tensor, impulse_response) + + # Normalize to the original amplitude range for stability + reverbed_signal = ( + reverbed_signal + / torch.max(torch.abs(reverbed_signal)) + * torch.max(torch.abs(tensor)) + ) + + # Ensure tensor size is not changed + tmp = torch.zeros_like(tensor) + tmp[..., : reverbed_signal.shape[-1]] = reverbed_signal + reverbed_signal = tmp + + return audio_effect_return(tensor=reverbed_signal, mask=mask) + + @staticmethod + def random_noise( + waveform: torch.Tensor, + noise_std: float = 0.001, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Add Gaussian noise to the waveform.""" + noise = torch.randn_like(waveform) * noise_std + noisy_waveform = waveform + noise + return audio_effect_return(tensor=noisy_waveform, mask=mask) + + @staticmethod + def pink_noise( + waveform: torch.Tensor, + noise_std: float = 0.01, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Add pink background noise to the waveform.""" + noise = generate_pink_noise(waveform.shape[-1]) * noise_std + noise = noise.to(waveform.device) + # Assuming waveform is of shape (bsz, channels, length) + noisy_waveform = waveform + noise.unsqueeze(0).unsqueeze(0).to(waveform.device) + return audio_effect_return(tensor=noisy_waveform, mask=mask) + + @staticmethod + def lowpass_filter( + waveform: torch.Tensor, + cutoff_freq: float = 5000, + sample_rate: int = 16000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Filter the lowpass frequency from the waveform""" + return audio_effect_return( + tensor=julius.lowpass_filter(waveform, cutoff=cutoff_freq / sample_rate), + mask=mask, + ) + + @staticmethod + def highpass_filter( + waveform: torch.Tensor, + cutoff_freq: float = 500, + sample_rate: int = 16000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Filter the highpass frequency from the waveform""" + return audio_effect_return( + tensor=julius.highpass_filter(waveform, cutoff=cutoff_freq / sample_rate), + mask=mask, + ) + + @staticmethod + def bandpass_filter( + waveform: torch.Tensor, + cutoff_freq_low: float = 300, + cutoff_freq_high: float = 8000, + sample_rate: int = 16000, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Apply a bandpass filter to the waveform by cascading + a high-pass filter followed by a low-pass filter. + + Args: + waveform (torch.Tensor): Input audio waveform. + low_cutoff (float): Lower cutoff frequency. + high_cutoff (float): Higher cutoff frequency. + sample_rate (int): The sample rate of the waveform. + + Returns: + torch.Tensor: Filtered audio waveform. + """ + + return audio_effect_return( + tensor=julius.bandpass_filter( + waveform, + cutoff_low=cutoff_freq_low / sample_rate, + cutoff_high=cutoff_freq_high / sample_rate, + ), + mask=mask, + ) + + @staticmethod + def smooth( + tensor: torch.Tensor, + window_size_range: tuple = (2, 10), + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Smooths the input tensor (audio signal) using a moving average filter with the + given window size. + + Args: + tensor (torch.Tensor): Input audio tensor. Assumes tensor shape is (batch_size, + channels, time). + window_size (int): Size of the moving average window. + mask: Masks for the input wave + + Returns: + torch.Tensor: Smoothed audio tensor. + """ + + window_size = int(torch.FloatTensor(1).uniform_(*window_size_range)) + # Create a uniform smoothing kernel + kernel = torch.ones(1, 1, window_size).type(tensor.type()) / window_size + kernel = kernel.to(tensor.device) + + smoothed = fft_conv1d(tensor, kernel) + # Ensure tensor size is not changed + tmp = torch.zeros_like(tensor) + tmp[..., : smoothed.shape[-1]] = smoothed + smoothed = tmp + + return audio_effect_return(tensor=smoothed, mask=mask) + + @staticmethod + def boost_audio( + tensor: torch.Tensor, + amount: float = 20, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Filter the lowpass frequency from the waveform""" + return audio_effect_return(tensor=tensor * (1 + amount / 100), mask=mask) + + @staticmethod + def duck_audio( + tensor: torch.Tensor, + amount: float = 20, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Mask input wav with some ducked signnals""" + return audio_effect_return(tensor=tensor * (1 - amount / 100), mask=mask) + + @staticmethod + def identity( + tensor: torch.Tensor, mask: tp.Optional[torch.Tensor] = None + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + return audio_effect_return(tensor=tensor, mask=mask) + + @staticmethod + def mp3_compression( + tensor: torch.Tensor, + sample_rate: int = 16000, + bitrate: str = "128k", + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """ + Compress audio using MP3 algorithm + Args: + tensor (torch.Tensor): The input audio tensor. + sample_rate (int): The sample rate of the audio. + bitrate (str): The bitrate for MP3 compression. + + Returns: + torch.Tensor: The output tensor after applying MP3 compression. + """ + out = apply_compression_skip_grad( + tensor, get_mp3, sr=sample_rate, bitrate=bitrate + ) + return audio_effect_return(tensor=out, mask=mask) + + @staticmethod + def aac_compression( + tensor: torch.Tensor, + sample_rate: int = 16000, + bitrate: str = "128k", + lowpass_freq: tp.Optional[int] = None, + mask: tp.Optional[torch.Tensor] = None, + ) -> tp.Union[tp.Tuple[torch.Tensor, torch.Tensor], torch.Tensor]: + """Applies AAC compression to an audio tensor. + + Args: + tensor (torch.Tensor): The input audio tensor. + sample_rate (int): The sample rate of the audio. + bitrate (str): The bitrate for AAC compression. + lowpass_freq (Optional[int]): The frequency for a low-pass filter. + + Returns: + torch.Tensor: The output tensor after applying AAC compression. + """ + out = apply_compression_skip_grad( + tensor, get_aac, sr=sample_rate, bitrate=bitrate, lowpass_freq=lowpass_freq + ) + return audio_effect_return(tensor=out, mask=mask) diff --git a/audiocraft/utils/autocast.py b/audiocraft/utils/autocast.py new file mode 100644 index 0000000..ed64484 --- /dev/null +++ b/audiocraft/utils/autocast.py @@ -0,0 +1,40 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch + + +class TorchAutocast: + """TorchAutocast utility class. + Allows you to enable and disable autocast. This is specially useful + when dealing with different architectures and clusters with different + levels of support. + + Args: + enabled (bool): Whether to enable torch.autocast or not. + args: Additional args for torch.autocast. + kwargs: Additional kwargs for torch.autocast + """ + def __init__(self, enabled: bool, *args, **kwargs): + self.autocast = torch.autocast(*args, **kwargs) if enabled else None + + def __enter__(self): + if self.autocast is None: + return + try: + self.autocast.__enter__() + except RuntimeError: + device = self.autocast.device + dtype = self.autocast.fast_dtype + raise RuntimeError( + f"There was an error autocasting with dtype={dtype} device={device}\n" + "If you are on the FAIR Cluster, you might need to use autocast_dtype=float16" + ) + + def __exit__(self, *args, **kwargs): + if self.autocast is None: + return + self.autocast.__exit__(*args, **kwargs) diff --git a/audiocraft/utils/best_state.py b/audiocraft/utils/best_state.py new file mode 100644 index 0000000..f5ad551 --- /dev/null +++ b/audiocraft/utils/best_state.py @@ -0,0 +1,81 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from collections import defaultdict +import logging +import typing as tp + +import flashy +import torch + +from ..optim import ModuleDictEMA +from .utils import copy_state + + +logger = logging.getLogger(__name__) + + +class BestStateDictManager(flashy.state.StateDictSource): + """BestStateDictManager maintains a copy of best state_dict() for registered sources. + + BestStateDictManager has two main attributes: + states (dict): State dict of the registered StateDictSource. + param_ids (dict): Dict of parameter ids for registered states from ModuleDictEMA and other sources. + + When registering new sources, the BestStateDictManager will ensure two conflicting sources between + ModuleDictEMA and original modules are not both registered as it would otherwise create ambiguity about + what to consider for best state. + + Args: + device (torch.device or str): Device on which we keep the copy. + dtype (torch.dtype): Data type for the state parameters. + """ + def __init__(self, device: tp.Union[torch.device, str] = 'cpu', + dtype: tp.Optional[torch.dtype] = None): + self.device = device + self.states: dict = {} + self.param_ids: dict = defaultdict(dict) + self.dtype = dtype + + def _get_parameter_ids(self, state_dict): + return {id(p): name for name, p in state_dict.items() if isinstance(p, torch.Tensor)} + + def _validate_no_parameter_ids_overlap(self, name: str, param_ids: dict): + for registered_name, registered_param_ids in self.param_ids.items(): + if registered_name != name: + overlap = set.intersection(registered_param_ids.keys(), param_ids.keys()) + assert len(overlap) == 0, f"Found {len(overlap)} / {len(param_ids.keys())} overlapping parameters" + f" in {name} and already registered {registered_name}: {' '.join(overlap)}" + + def update(self, name: str, source: flashy.state.StateDictSource): + if name not in self.states: + raise ValueError(f"{name} missing from registered states.") + self.states[name] = copy_state(source.state_dict(), device=self.device, dtype=self.dtype) + + def register(self, name: str, source: flashy.state.StateDictSource): + if name in self.states: + raise ValueError(f"{name} already present in states.") + # Registering parameter ids for EMA and non-EMA states allows us to check that + # there is no overlap that would create ambiguity about how to handle the best state + param_ids = self._get_parameter_ids(source.state_dict()) + if isinstance(source, ModuleDictEMA): + logger.debug(f"Registering to best state: ModuleDictEMA '{name}' with {len(param_ids)} params") + self._validate_no_parameter_ids_overlap(name, param_ids) + self.param_ids[name] = param_ids + else: + logger.debug(f"Registering to best state: StateDictSource '{name}' with {len(param_ids)} params") + self._validate_no_parameter_ids_overlap('base', param_ids) + self.param_ids['base'].update(param_ids) + # Register state + self.states[name] = copy_state(source.state_dict(), device=self.device, dtype=self.dtype) + + def state_dict(self) -> flashy.state.StateDict: + return self.states + + def load_state_dict(self, state: flashy.state.StateDict): + for name, sub_state in state.items(): + for k, v in sub_state.items(): + self.states[name][k].copy_(v) diff --git a/audiocraft/utils/cache.py b/audiocraft/utils/cache.py new file mode 100644 index 0000000..6ba017a --- /dev/null +++ b/audiocraft/utils/cache.py @@ -0,0 +1,324 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from concurrent.futures import ThreadPoolExecutor +from collections import deque +from functools import partial +from hashlib import sha1 +import logging +from pathlib import Path +import sys +import typing as tp +import zipfile + +import flashy +import torch + + +logger = logging.getLogger(__name__) + + +def get_full_embed(full_embed: torch.Tensor, x: tp.Any, idx: int, device: tp.Union[str, torch.device]) -> torch.Tensor: + """Utility function for the EmbeddingCache, returning the full embedding without any chunking. + This method can be used in case there is no need in extracting a chunk of the full embedding + read from the cache. + + Args: + full_embed (torch.Tensor): The full embedding. + x (any): Batch object from which the full embedding is derived. + idx (torch.Tensor): Index of object to consider in the batch object. + Returns: + full_embed (torch.Tensor): The full embedding + """ + return full_embed.to(device) + + +class EmbeddingCache: + """Cache around embeddings computation for faster execution. + The EmbeddingCache is storing pre-computed embeddings on disk and provides a simple API + to retrieve the pre-computed embeddings on full inputs and extract only a given chunk + using a user-provided function. When the cache is warm (all embeddings are pre-computed), + the EmbeddingCache allows for faster training as it removes the need of computing the embeddings. + Additionally, it provides in-memory cache around the loaded embeddings to limit IO footprint + and synchronization points in the forward calls. + + Args: + cache_path (Path): Path to folder where all pre-computed embeddings are saved on disk. + device (str or torch.device): Device on which the embedding is returned. + compute_embed_fn (callable[[Path, any, int], torch.Tensor], optional): Function to compute + the embedding from a given object and path. This user provided function can compute the + embedding from the provided object or using the provided path as entry point. The last parameter + specify the index corresponding to the current embedding in the object that can represent batch metadata. + extract_embed_fn (callable[[torch.Tensor, any, int], torch.Tensor], optional): Function to extract + the desired embedding chunk from the full embedding loaded from the cache. The last parameter + specify the index corresponding to the current embedding in the object that can represent batch metadata. + If not specified, will return the full embedding unmodified. + """ + def __init__(self, cache_path: tp.Union[str, Path], device: tp.Union[str, torch.device], + compute_embed_fn: tp.Callable[[Path, tp.Any, int], torch.Tensor], + extract_embed_fn: tp.Optional[tp.Callable[[torch.Tensor, tp.Any, int], torch.Tensor]] = None): + self.cache_path = Path(cache_path) + self.device = device + self._compute_embed_fn = compute_embed_fn + self._extract_embed_fn: tp.Callable[[torch.Tensor, tp.Any, int], torch.Tensor] + if extract_embed_fn is not None: + self._extract_embed_fn = extract_embed_fn + else: + self._extract_embed_fn = partial(get_full_embed, device=device) + if self.cache_path is not None: + self.cache_path.mkdir(exist_ok=True, parents=True) + logger.info(f"Cache instantiated at: {self.cache_path}") + self.pool = ThreadPoolExecutor(8) + self.pool.__enter__() + self._current_batch_cache: dict = {} + self._memory_cache: dict = {} + + def _get_cache_path(self, path: tp.Union[Path, str]): + """Get cache path for the given file path.""" + sig = sha1(str(path).encode()).hexdigest() + return self.cache_path / sig + + @staticmethod + def _get_full_embed_from_cache(cache: Path): + """Loads full pre-computed embedding from the cache.""" + try: + embed = torch.load(cache, 'cpu') + except Exception as exc: + logger.error("Error loading %s: %r", cache, exc) + embed = None + return embed + + def get_embed_from_cache(self, paths: tp.List[Path], x: tp.Any) -> torch.Tensor: + """Get embedding from cache, computing and storing it to cache if not already cached. + The EmbeddingCache first tries to load the embedding from the in-memory cache + containing the pre-computed chunks populated through `populate_embed_cache`. + If not found, the full embedding is computed and stored on disk to be later accessed + to populate the in-memory cache, and the desired embedding chunk is extracted and returned. + + Args: + paths (list[Path or str]): List of paths from where the embeddings can be loaded. + x (any): Object from which the embedding is extracted. + """ + embeds = [] + for idx, path in enumerate(paths): + cache = self._get_cache_path(path) + if cache in self._current_batch_cache: + embed = self._current_batch_cache[cache] + else: + full_embed = self._compute_embed_fn(path, x, idx) + try: + with flashy.utils.write_and_rename(cache, pid=True) as f: + torch.save(full_embed.cpu(), f) + except Exception as exc: + logger.error('Error saving embed %s (%s): %r', cache, full_embed.shape, exc) + else: + logger.info('New embed cache saved: %s (%s)', cache, full_embed.shape) + embed = self._extract_embed_fn(full_embed, x, idx) + embeds.append(embed) + embed = torch.stack(embeds, dim=0) + return embed + + def populate_embed_cache(self, paths: tp.List[Path], x: tp.Any) -> None: + """Populate in-memory caches for embeddings reading from the embeddings stored on disk. + The in-memory caches consist in a cache for the full embedding and another cache for the + final embedding chunk. Such caches are used to limit the IO access when computing the actual embeddings + and reduce the IO footprint and synchronization points during forward passes. + + Args: + paths (list[Path]): List of paths from where the embeddings can be loaded. + x (any): Object from which the embedding is extracted. + """ + self._current_batch_cache.clear() + if self.cache_path is not None: + futures: list = [] + for path in paths: + assert path is not None, "Path is required for computation from cache" + cache = self._get_cache_path(path) + if cache in self._memory_cache or not cache.exists(): + futures.append(None) + else: + futures.append(self.pool.submit(EmbeddingCache._get_full_embed_from_cache, cache)) + for idx, (path, future) in enumerate(zip(paths, futures)): + assert path is not None + cache = self._get_cache_path(path) + full_embed = None + if future is None: + if cache in self._memory_cache: + full_embed = self._memory_cache[cache] + else: + full_embed = future.result() + if full_embed is not None: + self._memory_cache[cache] = full_embed + full_embed = full_embed.to(self.device) + if full_embed is not None: + embed = self._extract_embed_fn(full_embed, x, idx) + self._current_batch_cache[cache] = embed + + +class CachedBatchWriter: + """Write pre computed caches for mini batches. This can + make loading a lot more efficient depending on your filesystem. + + Args: + cache_folder (Path): folder in which the cached minibatches + will be stored. + + Inside cache folder, the structure is the following: + `epoch_number / update_number.zip` + And the zip file contains one entry per batch item. + + It is possible to use the cache with a batch size smaller than + created with but obviously not larger. Make sure to call the + `start_epoch(epoch)` method for indicating changes of epochs. + + See the grid `audiocraft/grids/musicgen/musicgen_warmup_cache.py` + for an example of how to warmup the cache. + """ + def __init__(self, cache_folder: Path): + self.cache_folder = cache_folder + self._current_epoch: tp.Optional[int] = None + self._current_index = 0 + + def start_epoch(self, epoch: int): + """Call at the beginning of each epoch. + """ + self._current_epoch = epoch + self._current_index = 0 + self._zip_path.parent.mkdir(exist_ok=True, parents=True) + + @staticmethod + def _get_zip_path(cache_folder: Path, epoch: int, index: int): + return cache_folder / f"{epoch:05d}" / f"{index:06d}.zip" + + @property + def _zip_path(self): + assert self._current_epoch is not None + return CachedBatchWriter._get_zip_path(self.cache_folder, self._current_epoch, self._current_index) + + def save(self, *content): + """Save one mini batch. This function is distributed-aware + and will automatically merge all the items from the different + workers. + """ + all_contents = [] + for rank in range(flashy.distrib.world_size()): + their_content = flashy.distrib.broadcast_object(content, src=rank) + all_contents.append(their_content) + + if flashy.distrib.is_rank_zero(): + idx = 0 + with flashy.utils.write_and_rename(self._zip_path) as tmp: + with zipfile.ZipFile(tmp, 'w') as zf: + for content in all_contents: + for vals in zip(*content): + with zf.open(f'{idx}', 'w') as f: # type: ignore + torch.save(vals, f) + idx += 1 + flashy.distrib.barrier() + self._current_index += 1 + + +class CachedBatchLoader: + """Loader for cached mini-batches dumped with `CachedBatchWriter`. + + Args: + cache_folder (Path): folder in which the cached minibatches are stored. + batch_size (int): batch size (per GPU) expected. + num_workers (int): number of workers to use for loading. + min_length (int): minimum expected length for each epoch. If some + mini-batches are missing, and error is raised. + + This is iterable just like a regular DataLoader. + """ + + def __init__(self, cache_folder: Path, batch_size: int, + num_workers: int = 10, min_length: int = 1): + self.cache_folder = cache_folder + self.batch_size = batch_size + self.num_workers = num_workers + self.min_length = min_length + self._current_epoch: tp.Optional[int] = None + self.sampler = None # for compatibility with the regular DataLoader + + def __len__(self): + path = CachedBatchWriter._get_zip_path(self.cache_folder, self._current_epoch or 0, 0).parent + return len([p for p in path.iterdir() if p.suffix == ".zip"]) + + def start_epoch(self, epoch: int): + """Call at the beginning of each epoch. + """ + self._current_epoch = epoch + + def _zip_path(self, index: int): + assert self._current_epoch is not None + return CachedBatchWriter._get_zip_path(self.cache_folder, self._current_epoch, index) + + def _load_one(self, index: int): + zip_path = self._zip_path(index) + if not zip_path.exists(): + if index < self.min_length: + raise RuntimeError(f"Cache should have at least {self.min_length} batches, but {index} doesn't exist") + + return None + mode = "rb" if sys.version_info >= (3, 9) else "r" + try: + with zipfile.ZipFile(zip_path, 'r') as zf: + rank = flashy.distrib.rank() + world_size = flashy.distrib.world_size() + root = zipfile.Path(zf) + items = list(root.iterdir()) + total_batch_size = self.batch_size * world_size + if len(items) < total_batch_size: + raise RuntimeError( + f"The cache can handle a max batch size of {len(items)}, " + f"but {total_batch_size} is needed.") + start = rank * self.batch_size + items = items[start: start + self.batch_size] + assert len(items) == self.batch_size + entries = [] + entries = [torch.load(item.open(mode), 'cpu') for item in items] # type: ignore + transposed = zip(*entries) + out = [] + for part in transposed: + assert len(part) > 0 + if isinstance(part[0], torch.Tensor): + out.append(torch.stack(part)) + else: + assert isinstance(part, torch.Tensor) + out.append(part) + return out + except Exception: + logger.error("Error when reading zip path %s", zip_path) + raise + + def __iter__(self): + """This will yields tuples, exactly as provided to the + `CachedBatchWriter.save` method. + """ + pool = ThreadPoolExecutor(self.num_workers) + next_index = 0 + queue = deque() + + def _get_next(): + nonlocal next_index + r = queue.popleft().result() + if r is None: + return None + else: + queue.append(pool.submit(self._load_one, next_index)) + next_index += 1 + return r + + with pool: + # fill the buffer of fetching jobs. + for _ in range(2 * self.num_workers): + queue.append(pool.submit(self._load_one, next_index)) + next_index += 1 + while True: + batch = _get_next() + if batch is None: + return + yield batch diff --git a/audiocraft/utils/checkpoint.py b/audiocraft/utils/checkpoint.py new file mode 100644 index 0000000..f6f8718 --- /dev/null +++ b/audiocraft/utils/checkpoint.py @@ -0,0 +1,161 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from enum import Enum +import logging +from pathlib import Path +import re +import typing as tp + +import flashy +import torch + +from ..environment import AudioCraftEnvironment + + +logger = logging.getLogger(__name__) + + +class CheckpointSource(Enum): + CURRENT_XP = "current_xp" + PRETRAINED = "pretrained" + OTHER = "other" + + +def checkpoint_name(name: tp.Optional[str] = None, rank: tp.Optional[int] = None, use_fsdp: bool = False) -> str: + """Checkpoint name formatted for all use in AudioCraft codebase and has the following format: + `checkpoint_.th(.)`. By convention, name is expected to be empty for last checkpoint, + 'best' for the best checkpoint or the epoch number. + + Args: + name (str, optional): Name suffix for the checkpoint file stem. + rank (optional, int): Rank for distributed processing, retrieved with flashy if not provided. + use_fsdp (bool): Whether the calling solver relies on FSDP. + Returns: + str: The checkpoint name. + """ + suffix = '' + if rank is None: + rank = flashy.distrib.rank() + if rank > 0 and use_fsdp: + suffix = '.' + str(rank) + name_part = '' + if name is not None: + name_part = f'_{name}' + return f'checkpoint{name_part}.th{suffix}' + + +def is_sharded_checkpoint(path: Path) -> bool: + """Whether the checkpoint at the given path corresponds to a sharded checkpoint across rank.""" + return re.search(r'\.th\.\d+$', path.name) is not None + + +def resolve_checkpoint_path(sig_or_path: tp.Union[Path, str], name: tp.Optional[str] = None, + use_fsdp: bool = False) -> tp.Optional[Path]: + """Resolve a given checkpoint path for a provided dora sig or path. + + Args: + sig_or_path (Path or str): Checkpoint path or dora signature. + name (str, optional): Name suffix for the checkpoint file stem. + rank (optional, int): Rank for distributed processing, retrieved with flashy if not provided. + use_fsdp (bool): Whether the calling solver relies on FSDP. + Returns: + Path, optional: Resolved checkpoint path, if it exists. + """ + from audiocraft import train + xps_root = train.main.dora.dir / 'xps' + sig_or_path = str(sig_or_path) + if sig_or_path.startswith('//sig/'): + sig = sig_or_path[len('//sig/'):] + path = xps_root / sig + else: + path = Path(sig_or_path) + path = AudioCraftEnvironment.resolve_reference_path(path) + + if path.is_dir(): + path = path / checkpoint_name(name, use_fsdp=use_fsdp) + + if path.exists(): + return path + else: + return None + + +def load_checkpoint(checkpoint_path: Path, is_sharded: bool = False) -> tp.Any: + """Load state from checkpoints at the specified checkpoint path.""" + if is_sharded: + rank0_checkpoint_path = checkpoint_path.parent / checkpoint_name(use_fsdp=False) + if rank0_checkpoint_path.exists(): + check_sharded_checkpoint(checkpoint_path, rank0_checkpoint_path) + state = torch.load(checkpoint_path, 'cpu') + logger.info("Checkpoint loaded from %s", checkpoint_path) + return state + + +def save_checkpoint(state: tp.Any, checkpoint_path: Path, is_sharded: bool = False) -> None: + """Save state to disk to the specified checkpoint_path.""" + _safe_save_checkpoint(state, checkpoint_path, is_sharded) + logger.info("Checkpoint saved to %s", checkpoint_path) + + +def flush_stale_checkpoints(checkpoint_path: Path, keep_last: tp.Optional[int] = None) -> None: + """Flush checkpoints to only keep last N checkpoints.""" + if keep_last is None or keep_last <= 0: + return + checkpoint_dir = checkpoint_path.parent + suffix = '' + if flashy.distrib.rank() > 0: + suffix = f'.{flashy.distrib.rank()}' + checkpoint_files_with_epoch = [] + for path in Path(checkpoint_dir).glob(f'checkpoint_*.th{suffix}'): + epoch_part = path.name.split('.', 1)[0].split('_', 1)[1] + if epoch_part.isdigit(): + checkpoint_files_with_epoch.append((path, int(epoch_part))) + checkpoint_files = [path for path, _ in list(sorted(checkpoint_files_with_epoch, key=lambda t: t[1]))] + total_to_flush = max(0, len(checkpoint_files) - keep_last) + files_to_flush = checkpoint_files[:total_to_flush] + for path in files_to_flush: + logger.debug("Removing checkpoint: %s", str(path)) + path.unlink(missing_ok=True) + + +def check_sharded_checkpoint(checkpoint_path: Path, rank0_checkpoint_path: Path) -> None: + """Check sharded checkpoint state, ensuring the checkpoints are not corrupted.""" + # Finish the work of a previous run that got interrupted while dumping. + old_path = Path(str(checkpoint_path) + '.old') + if old_path.exists(): + raise RuntimeError( + f"Old checkpoint {old_path} from previous version of this code exist, cannot safely proceed.") + token = Path(str(rank0_checkpoint_path) + '.tmp.done') + tmp_path = Path(str(checkpoint_path) + '.tmp') + if token.exists(): + if tmp_path.exists(): + tmp_path.rename(checkpoint_path) + flashy.distrib.barrier() + if flashy.distrib.is_rank_zero() and token.exists(): + token.unlink() + + +def _safe_save_checkpoint(state: tp.Any, checkpoint_path: Path, is_sharded: bool = False) -> None: + """Save checkpoints in a safe manner even with when sharded checkpoints across nodes.""" + def _barrier_if_sharded(): + if is_sharded: + flashy.distrib.barrier() + + if flashy.distrib.is_rank_zero(): + token = Path(str(checkpoint_path) + '.tmp.done') + if token.exists(): + token.unlink() + _barrier_if_sharded() + with flashy.utils.write_and_rename(checkpoint_path) as f: + torch.save(state, f) + _barrier_if_sharded() + if flashy.distrib.is_rank_zero(): + token.touch() + _barrier_if_sharded() + _barrier_if_sharded() + if flashy.distrib.rank() == 0: + token.unlink() diff --git a/audiocraft/utils/cluster.py b/audiocraft/utils/cluster.py new file mode 100644 index 0000000..3380d03 --- /dev/null +++ b/audiocraft/utils/cluster.py @@ -0,0 +1,75 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Utility functions for SLURM configuration and cluster settings. +""" + +from enum import Enum +import os +import socket +import typing as tp + +import omegaconf + + +class ClusterType(Enum): + AWS = "aws" + FAIR = "fair" + RSC = "rsc" + LOCAL_DARWIN = "darwin" + DEFAULT = "default" # used for any other cluster. + + +def _guess_cluster_type() -> ClusterType: + uname = os.uname() + fqdn = socket.getfqdn() + if uname.sysname == "Linux" and (uname.release.endswith("-aws") or ".ec2" in fqdn): + return ClusterType.AWS + + if fqdn.endswith(".fair"): + return ClusterType.FAIR + + if fqdn.endswith(".facebook.com"): + return ClusterType.RSC + + if uname.sysname == "Darwin": + return ClusterType.LOCAL_DARWIN + + return ClusterType.DEFAULT + + +def get_cluster_type( + cluster_type: tp.Optional[ClusterType] = None, +) -> tp.Optional[ClusterType]: + if cluster_type is None: + return _guess_cluster_type() + + return cluster_type + + +def get_slurm_parameters( + cfg: omegaconf.DictConfig, cluster_type: tp.Optional[ClusterType] = None +) -> omegaconf.DictConfig: + """Update SLURM parameters in configuration based on cluster type. + If the cluster type is not specify, it infers it automatically. + """ + from ..environment import AudioCraftEnvironment + cluster_type = get_cluster_type(cluster_type) + # apply cluster-specific adjustments + if cluster_type == ClusterType.AWS: + cfg["mem_per_gpu"] = None + cfg["constraint"] = None + cfg["setup"] = [] + elif cluster_type == ClusterType.RSC: + cfg["mem_per_gpu"] = None + cfg["setup"] = [] + cfg["constraint"] = None + cfg["partition"] = "learn" + slurm_exclude = AudioCraftEnvironment.get_slurm_exclude() + if slurm_exclude is not None: + cfg["exclude"] = slurm_exclude + return cfg diff --git a/audiocraft/utils/deadlock.py b/audiocraft/utils/deadlock.py new file mode 100644 index 0000000..8abd1bb --- /dev/null +++ b/audiocraft/utils/deadlock.py @@ -0,0 +1,58 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import os +from queue import Queue, Empty +import signal +import sys +import threading +import traceback + +logger = logging.getLogger(__name__) + + +class DeadlockDetect: + def __init__(self, use: bool = False, timeout: float = 120.): + self.use = use + self.timeout = timeout + self._queue: Queue = Queue() + + def update(self, stage: str): + if self.use: + self._queue.put(stage) + + def __enter__(self): + if self.use: + self._thread = threading.Thread(target=self._detector_thread) + self._thread.start() + + def __exit__(self, exc_type, exc_val, exc_tb): + if self.use: + self._queue.put(None) + self._thread.join() + + def _detector_thread(self): + logger.debug("Deadlock detector started") + last_stage = "init" + while True: + try: + stage = self._queue.get(timeout=self.timeout) + except Empty: + break + if stage is None: + logger.debug("Exiting deadlock detector thread") + return + else: + last_stage = stage + logger.error("Deadlock detector timed out, last stage was %s", last_stage) + for th in threading.enumerate(): + print(th, file=sys.stderr) + traceback.print_stack(sys._current_frames()[th.ident]) + print(file=sys.stderr) + sys.stdout.flush() + sys.stderr.flush() + os.kill(os.getpid(), signal.SIGKILL) diff --git a/audiocraft/utils/export.py b/audiocraft/utils/export.py new file mode 100644 index 0000000..28b2140 --- /dev/null +++ b/audiocraft/utils/export.py @@ -0,0 +1,79 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Utility to export a training checkpoint to a lightweight release checkpoint. +""" + +from pathlib import Path +import typing as tp + +from omegaconf import OmegaConf +import torch + +from audiocraft import __version__ + + +def export_encodec(checkpoint_path: tp.Union[Path, str], out_file: tp.Union[Path, str]): + """Export only the best state from the given EnCodec checkpoint. This + should be used if you trained your own EnCodec model. + """ + pkg = torch.load(checkpoint_path, 'cpu') + new_pkg = { + 'best_state': pkg['best_state']['model'], + 'xp.cfg': OmegaConf.to_yaml(pkg['xp.cfg']), + 'version': __version__, + 'exported': True, + } + Path(out_file).parent.mkdir(exist_ok=True, parents=True) + torch.save(new_pkg, out_file) + return out_file + + +def export_pretrained_compression_model(pretrained_encodec: str, out_file: tp.Union[Path, str]): + """Export a compression model (potentially EnCodec) from a pretrained model. + This is required for packaging the audio tokenizer along a MusicGen or AudioGen model. + Do not include the //pretrained/ prefix. For instance if you trained a model + with `facebook/encodec_32khz`, just put that as a name. Same for `dac_44khz`. + + In that case, this will not actually include a copy of the model, simply the reference + to the model used. + """ + if Path(pretrained_encodec).exists(): + pkg = torch.load(pretrained_encodec) + assert 'best_state' in pkg + assert 'xp.cfg' in pkg + assert 'version' in pkg + assert 'exported' in pkg + else: + pkg = { + 'pretrained': pretrained_encodec, + 'exported': True, + 'version': __version__, + } + Path(out_file).parent.mkdir(exist_ok=True, parents=True) + torch.save(pkg, out_file) + + +def export_lm(checkpoint_path: tp.Union[Path, str], out_file: tp.Union[Path, str]): + """Export only the best state from the given MusicGen or AudioGen checkpoint. + """ + pkg = torch.load(checkpoint_path, 'cpu') + if pkg['fsdp_best_state']: + best_state = pkg['fsdp_best_state']['model'] + else: + assert pkg['best_state'] + best_state = pkg['best_state']['model'] + new_pkg = { + 'best_state': best_state, + 'xp.cfg': OmegaConf.to_yaml(pkg['xp.cfg']), + 'version': __version__, + 'exported': True, + } + + Path(out_file).parent.mkdir(exist_ok=True, parents=True) + torch.save(new_pkg, out_file) + return out_file diff --git a/audiocraft/utils/export_legacy.py b/audiocraft/utils/export_legacy.py new file mode 100644 index 0000000..367c3f3 --- /dev/null +++ b/audiocraft/utils/export_legacy.py @@ -0,0 +1,70 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +Legacy functions used at the time of the first release, kept for referencd. +""" + +from pathlib import Path +import typing as tp + +from omegaconf import OmegaConf, DictConfig +import torch + +from audiocraft import __version__ + + +def _clean_lm_cfg(cfg: DictConfig): + OmegaConf.set_struct(cfg, False) + # This used to be set automatically in the LM solver, need a more robust solution + # for the future. + cfg['transformer_lm']['card'] = 2048 + n_q = 4 + stereo_cfg = getattr(cfg, 'interleave_stereo_codebooks', None) + if stereo_cfg is not None and stereo_cfg.use: + if 'downsample' in stereo_cfg: + del stereo_cfg['downsample'] + n_q = 8 + cfg['transformer_lm']['n_q'] = n_q + # Experimental params no longer supported. + bad_params = ['spectral_norm_attn_iters', 'spectral_norm_ff_iters', + 'residual_balancer_attn', 'residual_balancer_ff', 'layer_drop'] + for name in bad_params: + del cfg['transformer_lm'][name] + OmegaConf.set_struct(cfg, True) + return cfg + + +def export_encodec(checkpoint_path: tp.Union[Path, str], out_file: tp.Union[Path, str]): + pkg = torch.load(checkpoint_path, 'cpu') + new_pkg = { + 'best_state': pkg['ema']['state']['model'], + 'xp.cfg': OmegaConf.to_yaml(pkg['xp.cfg']), + # The following params were NOT exported for the first release of MusicGen. + 'version': __version__, + 'exported': True, + } + Path(out_file).parent.mkdir(exist_ok=True, parents=True) + torch.save(new_pkg, out_file) + return out_file + + +def export_lm(checkpoint_path: tp.Union[Path, str], out_file: tp.Union[Path, str]): + pkg = torch.load(checkpoint_path, 'cpu') + if pkg['fsdp_best_state']: + best_state = pkg['fsdp_best_state']['model'] + else: + best_state = pkg['best_state']['model'] + new_pkg = { + 'best_state': best_state, + 'xp.cfg': OmegaConf.to_yaml(_clean_lm_cfg(pkg['xp.cfg'])), + # The following params were NOT exported for the first release of MusicGen. + 'version': __version__, + 'exported': True, + } + Path(out_file).parent.mkdir(exist_ok=True, parents=True) + torch.save(new_pkg, out_file) + return out_file diff --git a/audiocraft/utils/notebook.py b/audiocraft/utils/notebook.py new file mode 100644 index 0000000..019b9d1 --- /dev/null +++ b/audiocraft/utils/notebook.py @@ -0,0 +1,32 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +try: + import IPython.display as ipd # type: ignore +except ImportError: + # Note in a notebook... + pass + + +import torch + + +def display_audio(samples: torch.Tensor, sample_rate: int): + """Renders an audio player for the given audio samples. + + Args: + samples (torch.Tensor): a Tensor of decoded audio samples + with shapes [B, C, T] or [C, T] + sample_rate (int): sample rate audio should be displayed with. + """ + assert samples.dim() == 2 or samples.dim() == 3 + + samples = samples.detach().cpu() + if samples.dim() == 2: + samples = samples[None, ...] + + for audio in samples: + ipd.display(ipd.Audio(audio, rate=sample_rate)) diff --git a/audiocraft/utils/profiler.py b/audiocraft/utils/profiler.py new file mode 100644 index 0000000..b45b6d1 --- /dev/null +++ b/audiocraft/utils/profiler.py @@ -0,0 +1,38 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import logging +import typing as tp + +import dora +import torch + + +logger = logging.getLogger(__name__) + + +class Profiler: + """Context manager wrapper for xformers profiler. + """ + def __init__(self, module: torch.nn.Module, enabled: bool = False): + self.profiler: tp.Optional[tp.Any] = None + if enabled: + from xformers.profiler import profile + output_dir = dora.get_xp().folder / 'profiler_data' + logger.info("Profiling activated, results with be saved to %s", output_dir) + self.profiler = profile(output_dir=output_dir, module=module) + + def step(self): + if self.profiler is not None: + self.profiler.step() # type: ignore + + def __enter__(self): + if self.profiler is not None: + return self.profiler.__enter__() # type: ignore + + def __exit__(self, exc_type, exc_value, exc_tb): + if self.profiler is not None: + return self.profiler.__exit__(exc_type, exc_value, exc_tb) # type: ignore diff --git a/audiocraft/utils/samples/__init__.py b/audiocraft/utils/samples/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/audiocraft/utils/samples/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/audiocraft/utils/samples/manager.py b/audiocraft/utils/samples/manager.py new file mode 100644 index 0000000..bf0fb21 --- /dev/null +++ b/audiocraft/utils/samples/manager.py @@ -0,0 +1,386 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +""" +API that can manage the storage and retrieval of generated samples produced by experiments. + +It offers the following benefits: +* Samples are stored in a consistent way across epoch +* Metadata about the samples can be stored and retrieved +* Can retrieve audio +* Identifiers are reliable and deterministic for prompted and conditioned samples +* Can request the samples for multiple XPs, grouped by sample identifier +* For no-input samples (not prompt and no conditions), samples across XPs are matched + by sorting their identifiers +""" + +from concurrent.futures import ThreadPoolExecutor +from dataclasses import asdict, dataclass +from functools import lru_cache +import hashlib +import json +import logging +from pathlib import Path +import re +import typing as tp +import unicodedata +import uuid + +import dora +import torch + +from ...data.audio import audio_read, audio_write + + +logger = logging.getLogger(__name__) + + +@dataclass +class ReferenceSample: + id: str + path: str + duration: float + + +@dataclass +class Sample: + id: str + path: str + epoch: int + duration: float + conditioning: tp.Optional[tp.Dict[str, tp.Any]] + prompt: tp.Optional[ReferenceSample] + reference: tp.Optional[ReferenceSample] + generation_args: tp.Optional[tp.Dict[str, tp.Any]] + + def __hash__(self): + return hash(self.id) + + def audio(self) -> tp.Tuple[torch.Tensor, int]: + return audio_read(self.path) + + def audio_prompt(self) -> tp.Optional[tp.Tuple[torch.Tensor, int]]: + return audio_read(self.prompt.path) if self.prompt is not None else None + + def audio_reference(self) -> tp.Optional[tp.Tuple[torch.Tensor, int]]: + return audio_read(self.reference.path) if self.reference is not None else None + + +class SampleManager: + """Audio samples IO handling within a given dora xp. + + The sample manager handles the dumping and loading logic for generated and + references samples across epochs for a given xp, providing a simple API to + store, retrieve and compare audio samples. + + Args: + xp (dora.XP): Dora experiment object. The XP contains information on the XP folder + where all outputs are stored and the configuration of the experiment, + which is useful to retrieve audio-related parameters. + map_reference_to_sample_id (bool): Whether to use the sample_id for all reference samples + instead of generating a dedicated hash id. This is useful to allow easier comparison + with ground truth sample from the files directly without having to read the JSON metadata + to do the mapping (at the cost of potentially dumping duplicate prompts/references + depending on the task). + """ + def __init__(self, xp: dora.XP, map_reference_to_sample_id: bool = False): + self.xp = xp + self.base_folder: Path = xp.folder / xp.cfg.generate.path + self.reference_folder = self.base_folder / 'reference' + self.map_reference_to_sample_id = map_reference_to_sample_id + self.samples: tp.List[Sample] = [] + self._load_samples() + + @property + def latest_epoch(self): + """Latest epoch across all samples.""" + return max(self.samples, key=lambda x: x.epoch).epoch if self.samples else 0 + + def _load_samples(self): + """Scan the sample folder and load existing samples.""" + jsons = self.base_folder.glob('**/*.json') + with ThreadPoolExecutor(6) as pool: + self.samples = list(pool.map(self._load_sample, jsons)) + + @staticmethod + @lru_cache(2**26) + def _load_sample(json_file: Path) -> Sample: + with open(json_file, 'r') as f: + data: tp.Dict[str, tp.Any] = json.load(f) + # fetch prompt data + prompt_data = data.get('prompt') + prompt = ReferenceSample(id=prompt_data['id'], path=prompt_data['path'], + duration=prompt_data['duration']) if prompt_data else None + # fetch reference data + reference_data = data.get('reference') + reference = ReferenceSample(id=reference_data['id'], path=reference_data['path'], + duration=reference_data['duration']) if reference_data else None + # build sample object + return Sample(id=data['id'], path=data['path'], epoch=data['epoch'], duration=data['duration'], + prompt=prompt, conditioning=data.get('conditioning'), reference=reference, + generation_args=data.get('generation_args')) + + def _init_hash(self): + return hashlib.sha1() + + def _get_tensor_id(self, tensor: torch.Tensor) -> str: + hash_id = self._init_hash() + hash_id.update(tensor.numpy().data) + return hash_id.hexdigest() + + def _get_sample_id(self, index: int, prompt_wav: tp.Optional[torch.Tensor], + conditions: tp.Optional[tp.Dict[str, str]]) -> str: + """Computes an id for a sample given its input data. + This id is deterministic if prompt and/or conditions are provided by using a sha1 hash on the input. + Otherwise, a random id of the form "noinput_{uuid4().hex}" is returned. + + Args: + index (int): Batch index, Helpful to differentiate samples from the same batch. + prompt_wav (torch.Tensor): Prompt used during generation. + conditions (dict[str, str]): Conditioning used during generation. + """ + # For totally unconditioned generations we will just use a random UUID. + # The function get_samples_for_xps will do a simple ordered match with a custom key. + if prompt_wav is None and not conditions: + return f"noinput_{uuid.uuid4().hex}" + + # Human readable portion + hr_label = "" + # Create a deterministic id using hashing + hash_id = self._init_hash() + hash_id.update(f"{index}".encode()) + if prompt_wav is not None: + hash_id.update(prompt_wav.numpy().data) + hr_label += "_prompted" + else: + hr_label += "_unprompted" + if conditions: + encoded_json = json.dumps(conditions, sort_keys=True).encode() + hash_id.update(encoded_json) + cond_str = "-".join([f"{key}={slugify(value)}" + for key, value in sorted(conditions.items())]) + cond_str = cond_str[:100] # some raw text might be too long to be a valid filename + cond_str = cond_str if len(cond_str) > 0 else "unconditioned" + hr_label += f"_{cond_str}" + else: + hr_label += "_unconditioned" + + return hash_id.hexdigest() + hr_label + + def _store_audio(self, wav: torch.Tensor, stem_path: Path, overwrite: bool = False) -> Path: + """Stores the audio with the given stem path using the XP's configuration. + + Args: + wav (torch.Tensor): Audio to store. + stem_path (Path): Path in sample output directory with file stem to use. + overwrite (bool): When False (default), skips storing an existing audio file. + Returns: + Path: The path at which the audio is stored. + """ + existing_paths = [ + path for path in stem_path.parent.glob(stem_path.stem + '.*') + if path.suffix != '.json' + ] + exists = len(existing_paths) > 0 + if exists and overwrite: + logger.warning(f"Overwriting existing audio file with stem path {stem_path}") + elif exists: + return existing_paths[0] + + audio_path = audio_write(stem_path, wav, **self.xp.cfg.generate.audio) + return audio_path + + def add_sample(self, sample_wav: torch.Tensor, epoch: int, index: int = 0, + conditions: tp.Optional[tp.Dict[str, str]] = None, prompt_wav: tp.Optional[torch.Tensor] = None, + ground_truth_wav: tp.Optional[torch.Tensor] = None, + generation_args: tp.Optional[tp.Dict[str, tp.Any]] = None) -> Sample: + """Adds a single sample. + The sample is stored in the XP's sample output directory, under a corresponding epoch folder. + Each sample is assigned an id which is computed using the input data. In addition to the + sample itself, a json file containing associated metadata is stored next to it. + + Args: + sample_wav (torch.Tensor): sample audio to store. Tensor of shape [channels, shape]. + epoch (int): current training epoch. + index (int): helpful to differentiate samples from the same batch. + conditions (dict[str, str], optional): conditioning used during generation. + prompt_wav (torch.Tensor, optional): prompt used during generation. Tensor of shape [channels, shape]. + ground_truth_wav (torch.Tensor, optional): reference audio where prompt was extracted from. + Tensor of shape [channels, shape]. + generation_args (dict[str, any], optional): dictionary of other arguments used during generation. + Returns: + Sample: The saved sample. + """ + sample_id = self._get_sample_id(index, prompt_wav, conditions) + reuse_id = self.map_reference_to_sample_id + prompt, ground_truth = None, None + if prompt_wav is not None: + prompt_id = sample_id if reuse_id else self._get_tensor_id(prompt_wav.sum(0, keepdim=True)) + prompt_duration = prompt_wav.shape[-1] / self.xp.cfg.sample_rate + prompt_path = self._store_audio(prompt_wav, self.base_folder / str(epoch) / 'prompt' / prompt_id) + prompt = ReferenceSample(prompt_id, str(prompt_path), prompt_duration) + if ground_truth_wav is not None: + ground_truth_id = sample_id if reuse_id else self._get_tensor_id(ground_truth_wav.sum(0, keepdim=True)) + ground_truth_duration = ground_truth_wav.shape[-1] / self.xp.cfg.sample_rate + ground_truth_path = self._store_audio(ground_truth_wav, self.base_folder / 'reference' / ground_truth_id) + ground_truth = ReferenceSample(ground_truth_id, str(ground_truth_path), ground_truth_duration) + sample_path = self._store_audio(sample_wav, self.base_folder / str(epoch) / sample_id, overwrite=True) + duration = sample_wav.shape[-1] / self.xp.cfg.sample_rate + sample = Sample(sample_id, str(sample_path), epoch, duration, conditions, prompt, ground_truth, generation_args) + self.samples.append(sample) + with open(sample_path.with_suffix('.json'), 'w') as f: + json.dump(asdict(sample), f, indent=2) + return sample + + def add_samples(self, samples_wavs: torch.Tensor, epoch: int, + conditioning: tp.Optional[tp.List[tp.Dict[str, tp.Any]]] = None, + prompt_wavs: tp.Optional[torch.Tensor] = None, + ground_truth_wavs: tp.Optional[torch.Tensor] = None, + generation_args: tp.Optional[tp.Dict[str, tp.Any]] = None) -> tp.List[Sample]: + """Adds a batch of samples. + The samples are stored in the XP's sample output directory, under a corresponding + epoch folder. Each sample is assigned an id which is computed using the input data and their batch index. + In addition to the sample itself, a json file containing associated metadata is stored next to it. + + Args: + sample_wavs (torch.Tensor): Batch of audio wavs to store. Tensor of shape [batch_size, channels, shape]. + epoch (int): Current training epoch. + conditioning (list of dict[str, str], optional): List of conditions used during generation, + one per sample in the batch. + prompt_wavs (torch.Tensor, optional): Prompts used during generation. Tensor of shape + [batch_size, channels, shape]. + ground_truth_wav (torch.Tensor, optional): Reference audio where prompts were extracted from. + Tensor of shape [batch_size, channels, shape]. + generation_args (dict[str, Any], optional): Dictionary of other arguments used during generation. + Returns: + samples (list of Sample): The saved audio samples with prompts, ground truth and metadata. + """ + samples = [] + for idx, wav in enumerate(samples_wavs): + prompt_wav = prompt_wavs[idx] if prompt_wavs is not None else None + gt_wav = ground_truth_wavs[idx] if ground_truth_wavs is not None else None + conditions = conditioning[idx] if conditioning is not None else None + samples.append(self.add_sample(wav, epoch, idx, conditions, prompt_wav, gt_wav, generation_args)) + return samples + + def get_samples(self, epoch: int = -1, max_epoch: int = -1, exclude_prompted: bool = False, + exclude_unprompted: bool = False, exclude_conditioned: bool = False, + exclude_unconditioned: bool = False) -> tp.Set[Sample]: + """Returns a set of samples for this XP. Optionally, you can filter which samples to obtain. + Please note that existing samples are loaded during the manager's initialization, and added samples through this + manager are also tracked. Any other external changes are not tracked automatically, so creating a new manager + is the only way detect them. + + Args: + epoch (int): If provided, only return samples corresponding to this epoch. + max_epoch (int): If provided, only return samples corresponding to the latest epoch that is <= max_epoch. + exclude_prompted (bool): If True, does not include samples that used a prompt. + exclude_unprompted (bool): If True, does not include samples that did not use a prompt. + exclude_conditioned (bool): If True, excludes samples that used conditioning. + exclude_unconditioned (bool): If True, excludes samples that did not use conditioning. + Returns: + Samples (set of Sample): The retrieved samples matching the provided filters. + """ + if max_epoch >= 0: + samples_epoch = max(sample.epoch for sample in self.samples if sample.epoch <= max_epoch) + else: + samples_epoch = self.latest_epoch if epoch < 0 else epoch + samples = { + sample + for sample in self.samples + if ( + (sample.epoch == samples_epoch) and + (not exclude_prompted or sample.prompt is None) and + (not exclude_unprompted or sample.prompt is not None) and + (not exclude_conditioned or not sample.conditioning) and + (not exclude_unconditioned or sample.conditioning) + ) + } + return samples + + +def slugify(value: tp.Any, allow_unicode: bool = False): + """Process string for safer file naming. + + Taken from https://github.com/django/django/blob/master/django/utils/text.py + + Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated + dashes to single dashes. Remove characters that aren't alphanumerics, + underscores, or hyphens. Convert to lowercase. Also strip leading and + trailing whitespace, dashes, and underscores. + """ + value = str(value) + if allow_unicode: + value = unicodedata.normalize("NFKC", value) + else: + value = ( + unicodedata.normalize("NFKD", value) + .encode("ascii", "ignore") + .decode("ascii") + ) + value = re.sub(r"[^\w\s-]", "", value.lower()) + return re.sub(r"[-\s]+", "-", value).strip("-_") + + +def _match_stable_samples(samples_per_xp: tp.List[tp.Set[Sample]]) -> tp.Dict[str, tp.List[Sample]]: + # Create a dictionary of stable id -> sample per XP + stable_samples_per_xp = [{ + sample.id: sample for sample in samples + if sample.prompt is not None or sample.conditioning + } for samples in samples_per_xp] + # Set of all stable ids + stable_ids = {id for samples in stable_samples_per_xp for id in samples.keys()} + # Dictionary of stable id -> list of samples. If an XP does not have it, assign None + stable_samples = {id: [xp.get(id) for xp in stable_samples_per_xp] for id in stable_ids} + # Filter out ids that contain None values (we only want matched samples after all) + # cast is necessary to avoid mypy linter errors. + return {id: tp.cast(tp.List[Sample], samples) for id, samples in stable_samples.items() if None not in samples} + + +def _match_unstable_samples(samples_per_xp: tp.List[tp.Set[Sample]]) -> tp.Dict[str, tp.List[Sample]]: + # For unstable ids, we use a sorted list since we'll match them in order + unstable_samples_per_xp = [[ + sample for sample in sorted(samples, key=lambda x: x.id) + if sample.prompt is None and not sample.conditioning + ] for samples in samples_per_xp] + # Trim samples per xp so all samples can have a match + min_len = min([len(samples) for samples in unstable_samples_per_xp]) + unstable_samples_per_xp = [samples[:min_len] for samples in unstable_samples_per_xp] + # Dictionary of index -> list of matched samples + return { + f'noinput_{i}': [samples[i] for samples in unstable_samples_per_xp] for i in range(min_len) + } + + +def get_samples_for_xps(xps: tp.List[dora.XP], **kwargs) -> tp.Dict[str, tp.List[Sample]]: + """Gets a dictionary of matched samples across the given XPs. + Each dictionary entry maps a sample id to a list of samples for that id. The number of samples per id + will always match the number of XPs provided and will correspond to each XP in the same order given. + In other words, only samples that can be match across all provided XPs will be returned + in order to satisfy this rule. + + There are two types of ids that can be returned: stable and unstable. + * Stable IDs are deterministic ids that were computed by the SampleManager given a sample's inputs + (prompts/conditioning). This is why we can match them across XPs. + * Unstable IDs are of the form "noinput_{idx}" and are generated on-the-fly, in order to map samples + that used non-deterministic, random ids. This is the case for samples that did not use prompts or + conditioning for their generation. This function will sort these samples by their id and match them + by their index. + + Args: + xps: a list of XPs to match samples from. + start_epoch (int): If provided, only return samples corresponding to this epoch or newer. + end_epoch (int): If provided, only return samples corresponding to this epoch or older. + exclude_prompted (bool): If True, does not include samples that used a prompt. + exclude_unprompted (bool): If True, does not include samples that did not use a prompt. + exclude_conditioned (bool): If True, excludes samples that used conditioning. + exclude_unconditioned (bool): If True, excludes samples that did not use conditioning. + """ + managers = [SampleManager(xp) for xp in xps] + samples_per_xp = [manager.get_samples(**kwargs) for manager in managers] + stable_samples = _match_stable_samples(samples_per_xp) + unstable_samples = _match_unstable_samples(samples_per_xp) + return dict(stable_samples, **unstable_samples) diff --git a/audiocraft/utils/utils.py b/audiocraft/utils/utils.py new file mode 100644 index 0000000..bc9d9f3 --- /dev/null +++ b/audiocraft/utils/utils.py @@ -0,0 +1,326 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from concurrent.futures import ProcessPoolExecutor +from contextlib import contextmanager +from functools import wraps, lru_cache +import hashlib +import json +import logging +from pathlib import Path +import typing as tp +import flashy +import flashy.distrib +import omegaconf +import torch +from torch.nn.utils.rnn import pad_sequence + + +logger = logging.getLogger(__name__) + + +def model_hash(model: torch.nn.Module) -> str: + """Return a model hash. This should allow us to track regressions in model init + from the logs of past experiments. + """ + hasher = hashlib.sha1() + for p in model.parameters(): + hasher.update(p.data.cpu().numpy().tobytes()) + return hasher.hexdigest() + + +def dict_from_config(cfg: omegaconf.DictConfig) -> dict: + """Convenience function to map an omegaconf configuration to a dictionary. + + Args: + cfg (omegaconf.DictConfig): Original configuration to map to dict. + Returns: + dict: Config as dictionary object. + """ + dct = omegaconf.OmegaConf.to_container(cfg, resolve=True) + assert isinstance(dct, dict) + return dct + + +def random_subset(dataset, max_samples: int, seed: int = 42) -> torch.utils.data.Subset: + if max_samples >= len(dataset): + return dataset + + generator = torch.Generator().manual_seed(seed) + perm = torch.randperm(len(dataset), generator=generator) + return torch.utils.data.Subset(dataset, perm[:max_samples].tolist()) + + +def get_loader(dataset, num_samples: tp.Optional[int], batch_size: int, + num_workers: int, seed: int, **kwargs) -> torch.utils.data.DataLoader: + """Convenience function to load dataset into a dataloader with optional subset sampling. + + Args: + dataset: Dataset to load. + num_samples (Optional[int]): Number of samples to limit subset size. + batch_size (int): Batch size. + num_workers (int): Number of workers for data loading. + seed (int): Random seed. + """ + if num_samples is not None: + dataset = random_subset(dataset, num_samples, seed) + + dataloader = flashy.distrib.loader( + dataset, + batch_size=batch_size, + num_workers=num_workers, + **kwargs + ) + return dataloader + + +def get_dataset_from_loader(dataloader): + dataset = dataloader.dataset + if isinstance(dataset, torch.utils.data.Subset): + return dataset.dataset + else: + return dataset + + +def multinomial(input: torch.Tensor, num_samples: int, replacement=False, *, generator=None): + """torch.multinomial with arbitrary number of dimensions, and number of candidates on the last dimension. + + Args: + input (torch.Tensor): The input tensor containing probabilities. + num_samples (int): Number of samples to draw. + replacement (bool): Whether to draw with replacement or not. + Keywords args: + generator (torch.Generator): A pseudorandom number generator for sampling. + Returns: + torch.Tensor: Last dimension contains num_samples indices + sampled from the multinomial probability distribution + located in the last dimension of tensor input. + """ + input_ = input.reshape(-1, input.shape[-1]) + output_ = torch.multinomial(input_, num_samples=num_samples, replacement=replacement, generator=generator) + output = output_.reshape(*list(input.shape[:-1]), -1) + return output + + +def sample_top_k(probs: torch.Tensor, k: int) -> torch.Tensor: + """Sample next token from top K values along the last dimension of the input probs tensor. + + Args: + probs (torch.Tensor): Input probabilities with token candidates on the last dimension. + k (int): The k in “top-k”. + Returns: + torch.Tensor: Sampled tokens. + """ + top_k_value, _ = torch.topk(probs, k, dim=-1) + min_value_top_k = top_k_value[..., [-1]] + probs *= (probs >= min_value_top_k).float() + probs.div_(probs.sum(dim=-1, keepdim=True)) + next_token = multinomial(probs, num_samples=1) + return next_token + + +def sample_top_p(probs: torch.Tensor, p: float) -> torch.Tensor: + """Sample next token from top P probabilities along the last dimension of the input probs tensor. + + Args: + probs (torch.Tensor): Input probabilities with token candidates on the last dimension. + p (int): The p in “top-p”. + Returns: + torch.Tensor: Sampled tokens. + """ + probs_sort, probs_idx = torch.sort(probs, dim=-1, descending=True) + probs_sum = torch.cumsum(probs_sort, dim=-1) + mask = probs_sum - probs_sort > p + probs_sort *= (~mask).float() + probs_sort.div_(probs_sort.sum(dim=-1, keepdim=True)) + next_token = multinomial(probs_sort, num_samples=1) + next_token = torch.gather(probs_idx, -1, next_token) + return next_token + + +class DummyPoolExecutor: + """Dummy pool executor to use when we actually have only 1 worker. + (e.g. instead of ProcessPoolExecutor). + """ + class DummyResult: + def __init__(self, func, *args, **kwargs): + self.func = func + self.args = args + self.kwargs = kwargs + + def result(self): + return self.func(*self.args, **self.kwargs) + + def __init__(self, workers, mp_context=None): + pass + + def submit(self, func, *args, **kwargs): + return DummyPoolExecutor.DummyResult(func, *args, **kwargs) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, exc_tb): + return + + +def get_pool_executor(num_workers: int, mp_context=None): + return ProcessPoolExecutor(num_workers, mp_context) if num_workers > 1 else DummyPoolExecutor(1) + + +def length_to_mask(lengths: torch.Tensor, max_len: tp.Optional[int] = None) -> torch.Tensor: + """Utility function to convert a tensor of sequence lengths to a mask (useful when working on padded sequences). + For example: [3, 5] => [[1, 1, 1, 0, 0], [1, 1, 1, 1, 1]] + + Args: + lengths (torch.Tensor): tensor with lengths + max_len (int): can set the max length manually. Defaults to None. + Returns: + torch.Tensor: mask with 0s where there is pad tokens else 1s + """ + assert len(lengths.shape) == 1, "Length shape should be 1 dimensional." + final_length = lengths.max().item() if not max_len else max_len + final_length = max(final_length, 1) # if all seqs are of len zero we don't want a zero-size tensor + return torch.arange(final_length, device=lengths.device)[None, :] < lengths[:, None] + + +def hash_trick(word: str, vocab_size: int) -> int: + """Hash trick to pair each word with an index + + Args: + word (str): word we wish to convert to an index + vocab_size (int): size of the vocabulary + Returns: + int: index of the word in the embedding LUT + """ + hash = int(hashlib.sha256(word.encode("utf-8")).hexdigest(), 16) + return hash % vocab_size + + +def with_rank_rng(base_seed: int = 1234): + """Decorator for a function so that the function will use a Random Number Generator + whose state depend on the GPU rank. The original RNG state is restored upon returning. + + Args: + base_seed (int): Random seed. + """ + def _decorator(fun: tp.Callable): + @wraps(fun) + def _decorated(*args, **kwargs): + state = torch.get_rng_state() + seed = base_seed ^ flashy.distrib.rank() + torch.manual_seed(seed) + logger.debug('Rank dependent seed set to %d', seed) + try: + return fun(*args, **kwargs) + finally: + torch.set_rng_state(state) + logger.debug('RNG state restored.') + return _decorated + return _decorator + + +def collate(tensors: tp.List[torch.Tensor], dim: int = 0) -> tp.Tuple[torch.Tensor, torch.Tensor]: + """Get a list of tensors and collate them to a single tensor. according to the following logic: + - `dim` specifies the time dimension which will be stacked and padded. + - The output will contain 1 new dimension (dimension index 0) which will be the size of + of the original list. + + Args: + tensors (tp.List[torch.Tensor]): List of tensors to collate. + dim (int): Dimension which will be stacked and padded. + Returns: + tp.Tuple[torch.Tensor, torch.Tensor]: + torch.Tensor: Stacked and padded tensor. The output will contain 1 new dimension + (dimension index 0) which will be the size of the original list. + torch.Tensor: Tensor containing length of original tensor sizes (without padding). + """ + tensors = [x.transpose(0, dim) for x in tensors] + lens = torch.LongTensor([len(x) for x in tensors]) + padded_tensors = pad_sequence(tensors) + padded_tensors = padded_tensors.transpose(0, 1) + padded_tensors = padded_tensors.transpose(1, dim + 1) + return padded_tensors, lens + + +# TODO: Move to flashy? +def copy_state(state: tp.Any, device: tp.Union[torch.device, str] = 'cpu', + dtype: tp.Optional[torch.dtype] = None) -> tp.Any: + if isinstance(state, torch.Tensor): + if dtype is None or not state.is_floating_point(): + dtype = state.dtype + return state.detach().to(device=device, dtype=dtype, copy=True) + elif isinstance(state, dict): + return {k: copy_state(v, device, dtype) for k, v in state.items()} + elif isinstance(state, list): + return [copy_state(v, device, dtype) for v in state] + + +# TODO: Move to flashy? +@contextmanager +def swap_state(model, state, **kwargs): + old_state = copy_state(model.state_dict()) + model.load_state_dict(state, **kwargs) + try: + yield + finally: + model.load_state_dict(old_state) + + +@lru_cache(None) +def warn_once(logger, msg): + """Warn about a given message only once.""" + logger.warning(msg) + + +def is_jsonable(x: tp.Any): + """Check if an object can be serialized into a json:""" + try: + json.dumps(x) + return True + except (TypeError, OverflowError): + return False + + +def load_clap_state_dict(clap_model, path: tp.Union[str, Path]): + """Wrapper around state dict loading of CLAP model + addressing compatibility issues between CLAP and AudioCraft + HuggingFace transformer version. + See: https://github.com/LAION-AI/CLAP/issues/118 + """ + from clap_module.factory import load_state_dict # type: ignore + pkg = load_state_dict(path) + pkg.pop('text_branch.embeddings.position_ids', None) + clap_model.model.load_state_dict(pkg) + + +def construct_frame_chords( + min_timestamp: int, + chord_changes: tp.List[tp.Tuple[float, str]], + mapping_dict: tp.Dict, + prev_chord: str, + frame_rate: float, + segment_duration: float, + ) -> tp.List[str]: + """ Translate symbolic chords [(start_time, tuples),...] into a frame-level int sequence""" + + frames = [ + frame / frame_rate + for frame in range( + min_timestamp, int(min_timestamp + segment_duration * frame_rate) + ) + ] + + frame_chords = [] + current_chord = prev_chord + + for frame in frames: + while chord_changes and frame >= chord_changes[0][0]: + current_chord = chord_changes.pop(0)[1] + current_chord = 'N' if current_chord in {None, ''} else current_chord + frame_chords.append(mapping_dict[current_chord]) + + return frame_chords diff --git a/config/augmentations/default.yaml b/config/augmentations/default.yaml new file mode 100644 index 0000000..120887b --- /dev/null +++ b/config/augmentations/default.yaml @@ -0,0 +1,65 @@ +# @package __global__ + +audio_effects: + speed: + sample_rate: ${sample_rate} + speed_range: [0.8, 1.2] + updownresample: + sample_rate: ${sample_rate} + intermediate_freq: 32000 + echo: + sample_rate: ${sample_rate} + volume_range: [0.1, 0.5] + duration_range: [0.1, 0.5] + random_noise: + noise_std: 0.001 + pink_noise: + noise_std: 0.01 + lowpass_filter: + sample_rate: ${sample_rate} + cutoff_freq: 5000 + highpass_filter: + cutoff_freq: 500 + sample_rate: ${sample_rate} + bandpass_filter: + cutoff_freq_low: 300 + cutoff_freq_high: 8000 + sample_rate: ${sample_rate} + smooth: + window_size_range: [2, 10] + boost_audio: + amount: 20 + duck_audio: + amount: 20 + mp3_compression: + sample_rate: ${sample_rate} + bitrate: 128k # should be a string e.g. "8k", "32k".. cf ffmpeg to see available bitrates + aac_compression: + sample_rate: ${sample_rate} + bitrate: 128k # should be a string e.g. "8k", "32k".. cf ffmpeg to see available bitrates + lowpass_freq: null # don't apply low pass freq to ffmpeg aac compression + encodec: + ckpt: "//pretrained/facebook/encodec_24khz" + n_qs: [4, 8, 16] + +select_aug_mode: + "use_eval" # other are 'all' and 'use_eval_acc', used to sample augmentations, `fixed` uses the prob from aug_weights, `all` uses all agmentations every step + # `use_eval_acc` changes the weights based on the accuracies at evaluation time + +aug_weights: + speed: 0.1 + updownresample: 0.1 + echo: 0.1 + pink_noise: 0.1 + lowpass_filter: 0.1 + highpass_filter: 0.1 + bandpass_filter: 0.1 + smooth: 0.1 + boost_audio: 0.1 + duck_audio: 0.1 + mp3_compression: 0.1 # eval only never use in training even if eval_acc low + aac_compression: 0.1 # eval only never use in training even if eval_acc low + encodec: 0.1 + identity: 1 # no augmentation + +n_max_aug: null \ No newline at end of file diff --git a/config/conditioner/chords2music.yaml b/config/conditioner/chords2music.yaml new file mode 100644 index 0000000..33c6b56 --- /dev/null +++ b/config/conditioner/chords2music.yaml @@ -0,0 +1,38 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.3 # dropout of all conditions + inference_coef: 3.0 + +attribute_dropout: + symbolic: + chords: 0.3 # independent dropout of chords + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + ignore: [chords] + input_interpolate: [] + +conditioners: + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.3 + normalize_text: false + chords: + model: chords_emb + chords_emb: + card: 194 # Chordino + out_dim: 16 + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/chroma2music.yaml b/config/conditioner/chroma2music.yaml new file mode 100644 index 0000000..91d37e7 --- /dev/null +++ b/config/conditioner/chroma2music.yaml @@ -0,0 +1,46 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.2 + inference_coef: 3.0 + +attribute_dropout: + args: + active_on_eval: false + text: {} + wav: + self_wav: 0.5 + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [self_wav, description] + cross: [] + input_interpolate: [] + +conditioners: + self_wav: + model: chroma_stem + chroma_stem: + sample_rate: ${sample_rate} + n_chroma: 12 + radix2_exp: 14 + argmax: true + match_len_on_eval: false + eval_wavs: null + n_eval_wavs: 100 + cache_path: null + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.2 + normalize_text: false + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/clapemb2music.yaml b/config/conditioner/clapemb2music.yaml new file mode 100644 index 0000000..d44ac77 --- /dev/null +++ b/config/conditioner/clapemb2music.yaml @@ -0,0 +1,44 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.3 + inference_coef: 3.0 + +attribute_dropout: + text: {} + wav: {} + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + input_interpolate: [] + +conditioners: + description: + model: clap + clap: + checkpoint: //reference/clap/music_audioset_epoch_15_esc_90.14.pt + model_arch: 'HTSAT-base' + enable_fusion: false + sample_rate: 48000 + max_audio_length: 10 + audio_stride: 1 + dim: 512 + attribute: description + normalize: true + quantize: true # use RVQ quantization + n_q: 12 + bins: 1024 + kmeans_iters: 50 + text_p: 0. # probability of using text embed at train time + cache_path: null + +dataset: + joint_embed_attributes: [description] + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/drums2music.yaml b/config/conditioner/drums2music.yaml new file mode 100644 index 0000000..dfeea21 --- /dev/null +++ b/config/conditioner/drums2music.yaml @@ -0,0 +1,42 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.3 # dropout of all conditions + inference_coef: 3.0 + +attribute_dropout: + text: {} + wav: + self_wav: 0.3 # independent dropout of drums + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + ignore: [self_wav] + input_interpolate: [] + +conditioners: + self_wav: + model: drum_latents + drum_latents: + sample_rate: ${sample_rate} + out_dim: 2 + blurring_factor: 3 + cache_path: null + + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.3 + normalize_text: false + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/jasco_chords_drums.yaml b/config/conditioner/jasco_chords_drums.yaml new file mode 100644 index 0000000..4417361 --- /dev/null +++ b/config/conditioner/jasco_chords_drums.yaml @@ -0,0 +1,50 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.3 # dropout of all conditions + inference_coef: 3.0 + +attribute_dropout: + text: {} + symbolic: + chords: 0.3 # independent dropout of chords + wav: + self_wav: 0.3 # independent dropout of drums + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + ignore: [chords, self_wav] + input_interpolate: [] + +conditioners: + self_wav: + model: drum_latents + drum_latents: + sample_rate: ${sample_rate} + out_dim: 2 + blurring_factor: 3 + cache_path: null + + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.3 + normalize_text: false + chords: + model: chords_emb + chords_emb: + card: 194 # Chordino + out_dim: 16 + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 + diff --git a/config/conditioner/jasco_chords_drums_melody.yaml b/config/conditioner/jasco_chords_drums_melody.yaml new file mode 100644 index 0000000..08a2157 --- /dev/null +++ b/config/conditioner/jasco_chords_drums_melody.yaml @@ -0,0 +1,60 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.2 # dropout of all conditions + inference_coef: 3.0 + +attribute_dropout: + text: + description: 0.0 + symbolic: + chords: 0.5 # independent dropout of chords + melody: 0.5 # independent dropout of melody + wav: + self_wav: 0.5 # independent dropout of drums + + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + ignore: [chords, self_wav, melody] + input_interpolate: [] + +conditioners: + self_wav: + model: drum_latents + drum_latents: + sample_rate: ${sample_rate} + out_dim: 2 + blurring_factor: 3 + cache_path: ??? + read_only_cache: true + + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.3 + normalize_text: false + + chords: + model: chords_emb + chords_emb: + card: 194 # Chordino + out_dim: 16 + + melody: + model: melody + melody: + card: 53 # Preprocessed salience dim + out_dim: 16 + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/none.yaml b/config/conditioner/none.yaml new file mode 100644 index 0000000..6055dc9 --- /dev/null +++ b/config/conditioner/none.yaml @@ -0,0 +1,19 @@ +# @package __global__ + +# No conditioning + +classifier_free_guidance: + training_dropout: 0 + inference_coef: 1 + +attribute_dropout: + text: {} + wav: {} + +fuser: + sum: [] + prepend: [] + cross: [] + input_interpolate: [] + +conditioners: null diff --git a/config/conditioner/style2music.yaml b/config/conditioner/style2music.yaml new file mode 100644 index 0000000..e922138 --- /dev/null +++ b/config/conditioner/style2music.yaml @@ -0,0 +1,59 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.1 + inference_coef: 3.0 + +attribute_dropout: + args: + active_on_eval: false + text: + description: 0.4 + wav: + self_wav: 0.4 + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [self_wav, description] + cross: [] + input_interpolate: [] + +conditioners: + self_wav: + model: style + style: + model_name: mert + transformer_scale: default + sample_rate: ${sample_rate} + encodec_checkpoint: '//pretrained/facebook/encodec_32khz' + encodec_n_q: 3 + length: 3.0 + ds_factor: 15 # Since MERT is 75Hz, 75/15 results into 5Hz representations + n_q_out: 6 + eval_q: 3 + q_dropout: true + bins: 1024 + varying_lengths: [1.5, 4.5] + batch_norm: true + compute_mask: true + num_codebooks_lm: ${transformer_lm.n_q} + ds_rate_compression: 640 + use_middle_of_segment: false + rvq_threshold_ema_dead_code: 0.1 + + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.2 + normalize_text: false + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 + shuffle: true diff --git a/config/conditioner/text2music.yaml b/config/conditioner/text2music.yaml new file mode 100644 index 0000000..2d0fe6c --- /dev/null +++ b/config/conditioner/text2music.yaml @@ -0,0 +1,30 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.3 + inference_coef: 3.0 + +attribute_dropout: {} + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + input_interpolate: [] + +conditioners: + description: + model: t5 + t5: + name: t5-base + finetune: false + word_dropout: 0.3 + normalize_text: false + +dataset: + train: + merge_text_p: 0.25 + drop_desc_p: 0.5 + drop_other_p: 0.5 diff --git a/config/conditioner/text2sound.yaml b/config/conditioner/text2sound.yaml new file mode 100644 index 0000000..555d4b7 --- /dev/null +++ b/config/conditioner/text2sound.yaml @@ -0,0 +1,24 @@ +# @package __global__ + +classifier_free_guidance: + training_dropout: 0.1 + inference_coef: 3.0 + +attribute_dropout: {} + +fuser: + cross_attention_pos_emb: false + cross_attention_pos_emb_scale: 1 + sum: [] + prepend: [] + cross: [description] + input_interpolate: [] + +conditioners: + description: + model: t5 + t5: + name: t5-large + finetune: false + word_dropout: 0. + normalize_text: false diff --git a/config/config.yaml b/config/config.yaml new file mode 100644 index 0000000..6b0b786 --- /dev/null +++ b/config/config.yaml @@ -0,0 +1,75 @@ +# WARNING: This is the base configuration file shared across ALL solvers in AudioCraft +# Please don't update this file directly. Instead use distinct configuration files +# to override the below configuration. +defaults: + - _self_ + - dset: default + - solver: default + +device: cuda +dtype: float32 +autocast: false +autocast_dtype: bfloat16 +seed: 2036 +show: false # just show the model and its size and exit +continue_from: # continue from a given sig or path +execute_only: # can be set to generate/evaluate/valid to run that stage +execute_inplace: false # don't enforce continue_from to be set + # to enable inplace execution of the stage. This assume + # that you know what you are doing and execute stage + # preserving the original xp sig. +benchmark_no_load: false # if set to true, will repeat the same batch instead of loading them + +efficient_attention_backend: torch # can be torch or xformers. +num_threads: 1 # called with torch.set_num_thread. +mp_start_method: forkserver # multiprocessing method (spawn, fork or fork_server). + + +label: # use this if you want twice the same exp, with a name. + +# logging parameters +logging: + level: INFO + log_updates: 10 + log_tensorboard: false + log_wandb: false +tensorboard: + with_media_logging: false + name: # optional name for the experiment + sub_dir: # optional sub directory to store tensorboard data +wandb: + with_media_logging: true + project: # project name + name: # optional name for the experiment + group: # optional group + +# SLURM launcher configuration. +slurm: + gpus: 4 # convenience parameter, number of GPUs to use. + mem_per_gpu: 40 # in GB, total mem is automatically scaled with `gpus`. + time: 3600 + constraint: + partition: + comment: + setup: [] + exclude: '' + +# dora parameters +dora: + # Output folder for all artifacts of an experiment. + dir: /checkpoint/${oc.env:USER}/experiments/audiocraft/outputs + # The following entries will be ignored by dora when computing the unique XP signature. + # Note that slurm.* and dora.* are automatically ignored. + exclude: [ + 'device', 'wandb.*', 'tensorboard.*', 'logging.*', + 'dataset.num_workers', 'eval.num_workers', 'special.*', + 'metrics.visqol.bin', 'metrics.fad.bin', + 'execute_only', 'execute_best', 'generate.every', + 'optim.eager_sync', 'profiler.*', 'deadlock.*', + 'efficient_attention_backend', 'num_threads', 'mp_start_method', + ] + use_rendezvous: false + # for grids, always run from a clean repo, allowing reliable runs and storing + # the exact commit. Your repo must be absolutely pristine clean. + # Local `dora run` are not impacted for easier debugging. + git_save: true diff --git a/config/dset/audio/audiocaps_16khz.yaml b/config/dset/audio/audiocaps_16khz.yaml new file mode 100644 index 0000000..14f5d6a --- /dev/null +++ b/config/dset/audio/audiocaps_16khz.yaml @@ -0,0 +1,11 @@ +# @package __global__ + +# AudioCaps dataset +datasource: + max_sample_rate: 16000 + max_channels: 1 + + train: null # only evaluation set + valid: null # only evaluation set + evaluate: egs/audiocaps/audiocaps_16khz + generate: egs/audiocaps/audiocaps_16khz # identical to evaluate diff --git a/config/dset/audio/default.yaml b/config/dset/audio/default.yaml new file mode 100644 index 0000000..80be23e --- /dev/null +++ b/config/dset/audio/default.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +datasource: + max_sample_rate: ??? + max_channels: ??? + + train: ??? + valid: ??? + evaluate: ??? + generate: null diff --git a/config/dset/audio/example.yaml b/config/dset/audio/example.yaml new file mode 100644 index 0000000..d559d6d --- /dev/null +++ b/config/dset/audio/example.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +datasource: + max_sample_rate: 44100 + max_channels: 2 + + train: egs/example + valid: egs/example + evaluate: egs/example + generate: egs/example diff --git a/config/dset/audio/musiccaps_32khz.yaml b/config/dset/audio/musiccaps_32khz.yaml new file mode 100644 index 0000000..9d4eea0 --- /dev/null +++ b/config/dset/audio/musiccaps_32khz.yaml @@ -0,0 +1,12 @@ +# @package __global__ + +# total samples obtained from MusicCaps = 5469 +# (out of 5521 due to AudioSet corrupted samples) +datasource: + max_sample_rate: 32000 + max_channels: 2 + + train: null # only evaluation set + valid: null # only evaluation set + evaluate: egs/musiccaps/musiccaps_32khz + generate: egs/musiccaps/musiccaps_32khz # identical to evaluate diff --git a/config/dset/default.yaml b/config/dset/default.yaml new file mode 100644 index 0000000..b5d7301 --- /dev/null +++ b/config/dset/default.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +# WARNING: This is a base configuration file shared across ALL solvers in AudioCraft +# Please don't update this file directly. Instead use distinct configuration files +# to override the below configuration. +datasource: + train: ??? + valid: ??? + evaluate: ??? + generate: ??? diff --git a/config/dset/internal/music_10k_32khz.yaml b/config/dset/internal/music_10k_32khz.yaml new file mode 100644 index 0000000..036628a --- /dev/null +++ b/config/dset/internal/music_10k_32khz.yaml @@ -0,0 +1,11 @@ +# @package __global__ + +# high quality music dataset with no artist overlap between splits +datasource: + max_sample_rate: 32000 + max_channels: 1 + + train: egs/music/music_10k_32khz/train + valid: egs/music/music_10k_32khz/valid + evaluate: egs/music/music_10k_32khz/test + generate: egs/music/music_10k_32khz/test # identical to evaluate diff --git a/config/dset/internal/music_400k_32khz.yaml b/config/dset/internal/music_400k_32khz.yaml new file mode 100644 index 0000000..7786880 --- /dev/null +++ b/config/dset/internal/music_400k_32khz.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +datasource: + max_sample_rate: 32000 + max_channels: 1 + + train: egs/music/music_400k_32khz/train + valid: egs/music/music_400k_32khz/valid + evaluate: egs/music/music_400k_32khz/test + generate: egs/music/music_400k_32khz/test # identical to evaluate diff --git a/config/dset/internal/sounds_16khz.yaml b/config/dset/internal/sounds_16khz.yaml new file mode 100644 index 0000000..4f3401a --- /dev/null +++ b/config/dset/internal/sounds_16khz.yaml @@ -0,0 +1,12 @@ +# @package __global__ + +# environmental sounds dataset compiling all datasets +# with applied filters on tags +datasource: + max_sample_rate: 16000 + max_channels: 1 + + train: egs/sound/sounds_16khz/train + valid: egs/sound/sounds_16khz/valid + evaluate: egs/sound/sounds_16khz/test + generate: egs/sound/sounds_16khz/test # identical to evaluate diff --git a/config/model/encodec/default.yaml b/config/model/encodec/default.yaml new file mode 100644 index 0000000..ec62c6c --- /dev/null +++ b/config/model/encodec/default.yaml @@ -0,0 +1,54 @@ +# @package __global__ + +compression_model: encodec + +encodec: + autoencoder: seanet + quantizer: rvq + sample_rate: ${sample_rate} + channels: ${channels} + causal: false + renormalize: false + +seanet: + dimension: 128 + channels: ${channels} + causal: ${encodec.causal} + n_filters: 32 + n_residual_layers: 1 + ratios: [8, 5, 4, 2] + activation: ELU + activation_params: {"alpha": 1.} + norm: weight_norm + norm_params: {} + kernel_size: 7 + residual_kernel_size: 3 + last_kernel_size: 7 + dilation_base: 2 + pad_mode: constant + true_skip: true + compress: 2 + lstm: 2 + disable_norm_outer_blocks: 0 + # Specific encoder or decoder params. + # You can also override any param for the encoder or decoder only + # by using Hydra `+param=` syntax, i.e.` + # `+seanet.decoder.n_filters=64`. + decoder: + trim_right_ratio: 1.0 + final_activation: null + final_activation_params: null + encoder: {} + +rvq: + n_q: 8 + q_dropout: false + bins: 1024 + decay: 0.99 + kmeans_init: true + kmeans_iters: 50 + threshold_ema_dead_code: 2 + orthogonal_reg_weight: 0.0 + orthogonal_reg_active_codes_only: false + +no_quant: {} diff --git a/config/model/encodec/encodec_base_causal.yaml b/config/model/encodec/encodec_base_causal.yaml new file mode 100644 index 0000000..3ca555b --- /dev/null +++ b/config/model/encodec/encodec_base_causal.yaml @@ -0,0 +1,11 @@ +# @package __global__ + +defaults: + - encodec/default + +encodec: + causal: true + +rvq: + n_q: 32 + q_dropout: true diff --git a/config/model/encodec/encodec_large_nq4_s320.yaml b/config/model/encodec/encodec_large_nq4_s320.yaml new file mode 100644 index 0000000..5f2d775 --- /dev/null +++ b/config/model/encodec/encodec_large_nq4_s320.yaml @@ -0,0 +1,13 @@ +# @package __global__ + +defaults: + - encodec/default + +seanet: + # default ratios are [8, 5, 4, 2] + n_filters: 64 + +rvq: + bins: 2048 + n_q: 4 + q_dropout: false diff --git a/config/model/encodec/encodec_large_nq4_s640.yaml b/config/model/encodec/encodec_large_nq4_s640.yaml new file mode 100644 index 0000000..3fcb7e8 --- /dev/null +++ b/config/model/encodec/encodec_large_nq4_s640.yaml @@ -0,0 +1,13 @@ +# @package __global__ + +defaults: + - encodec/default + +seanet: + ratios: [8, 5, 4, 4] + n_filters: 64 + +rvq: + bins: 2048 + n_q: 4 + q_dropout: false diff --git a/config/model/lm/audiogen_lm.yaml b/config/model/lm/audiogen_lm.yaml new file mode 100644 index 0000000..d17e7a9 --- /dev/null +++ b/config/model/lm/audiogen_lm.yaml @@ -0,0 +1,36 @@ +# @package __global__ + +defaults: + - lm/default + - override /conditioner: text2sound + - override /model/lm/model_scale: small # prefer this group to set model scale instead of transformer_lm keys directly + +lm_model: transformer_lm + +codebooks_pattern: + modeling: delay + delay: + delays: [0, 1, 2, 3] + flatten_first: 0 + empty_initial: 0 + unroll: + flattening: [0, 1, 2, 3] + delays: [0, 0, 0, 0] + music_lm: + group_by: 2 + coarse_first: + delays: [0, 0, 0] + +transformer_lm: + n_q: 4 + card: 2048 + memory_efficient: true + bias_proj: false + bias_ff: false + bias_attn: false + norm_first: true + layer_scale: null + weight_init: gaussian + depthwise_init: current + zero_bias_init: true + attention_as_float32: false diff --git a/config/model/lm/default.yaml b/config/model/lm/default.yaml new file mode 100644 index 0000000..2d256ad --- /dev/null +++ b/config/model/lm/default.yaml @@ -0,0 +1,47 @@ +# @package __global__ +defaults: + - _self_ + - /model/lm/model_scale: base # prefer this group to set model scale instead of transformer_lm keys directly + +lm_model: transformer_lm + +codebooks_pattern: + modeling: parallel + +transformer_lm: + dim: 512 + num_heads: 8 + num_layers: 8 + hidden_scale: 4 + n_q: 8 # number of streams to model + card: 1024 + dropout: 0. + emb_lr: null + activation: gelu + norm_first: false # use pre-norm instead of post-norm + bias_ff: true # use bias for the feedforward + bias_attn: true # use bias for the attention + bias_proj: true # use bias for the output projections + past_context: null + causal: true + custom: false # use custom MHA implementation + memory_efficient: false # use flash attention + attention_as_float32: false # use float32 for the attention part, + # recommended at the moment when memory_efficient is True. + layer_scale: null + positional_embedding: sin # positional embedding strategy (sin, rope, or sin_rope). + xpos: false # apply xpos decay (rope only). + checkpointing: none # layer checkpointing method, can be none, torch, xformers_default. + # torch is the slowest but uses the least memory, + # xformers_default is somewhere in between. + weight_init: null # weight initialization (null, gaussian or uniform) + depthwise_init: null # perform depthwise initialization (null, current, global) + zero_bias_init: false # initialize bias to zero if bias in linears and + # if a weight_init method is used. + norm: layer_norm # normalization method to use in transformer. + cross_attention: false + qk_layer_norm: false + qk_layer_norm_cross: false + attention_dropout: null + kv_repeat: 1 + two_step_cfg: false # whether to do true 2 steps CFG, potentially resolving some padding issues or not... diff --git a/config/model/lm/model_scale/base.yaml b/config/model/lm/model_scale/base.yaml new file mode 100644 index 0000000..3da88d2 --- /dev/null +++ b/config/model/lm/model_scale/base.yaml @@ -0,0 +1,3 @@ +# @package __global__ + +# overrides nothing because default is already transformer base (~ 60M params) diff --git a/config/model/lm/model_scale/large.yaml b/config/model/lm/model_scale/large.yaml new file mode 100644 index 0000000..d355bfb --- /dev/null +++ b/config/model/lm/model_scale/large.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +# gpt2 inspired, even bigger (~3.3B params) +transformer_lm: + dim: 2048 + num_heads: 32 + num_layers: 48 diff --git a/config/model/lm/model_scale/medium.yaml b/config/model/lm/model_scale/medium.yaml new file mode 100644 index 0000000..c825d1f --- /dev/null +++ b/config/model/lm/model_scale/medium.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +# gpt2 like (~1.5B params) +transformer_lm: + dim: 1536 + num_heads: 24 + num_layers: 48 diff --git a/config/model/lm/model_scale/small.yaml b/config/model/lm/model_scale/small.yaml new file mode 100644 index 0000000..88d89cb --- /dev/null +++ b/config/model/lm/model_scale/small.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +# 300M Param. + +transformer_lm: + dim: 1024 + num_heads: 16 + num_layers: 24 diff --git a/config/model/lm/model_scale/xsmall.yaml b/config/model/lm/model_scale/xsmall.yaml new file mode 100644 index 0000000..e98d437 --- /dev/null +++ b/config/model/lm/model_scale/xsmall.yaml @@ -0,0 +1,8 @@ +# @package _global_ +# just used for debugging or when we just want to populate the cache +# and do not care about training. + +transformer_lm: + dim: 64 + num_heads: 2 + num_layers: 2 diff --git a/config/model/lm/musicgen_lm.yaml b/config/model/lm/musicgen_lm.yaml new file mode 100644 index 0000000..be1fbc1 --- /dev/null +++ b/config/model/lm/musicgen_lm.yaml @@ -0,0 +1,36 @@ +# @package __global__ + +defaults: + - lm/default + - override /conditioner: text2music + - override /model/lm/model_scale: small # prefer this group to set model scale instead of transformer_lm keys directly + +lm_model: transformer_lm + +codebooks_pattern: + modeling: delay + delay: + delays: [0, 1, 2, 3] + flatten_first: 0 + empty_initial: 0 + unroll: + flattening: [0, 1, 2, 3] + delays: [0, 0, 0, 0] + music_lm: + group_by: 2 + coarse_first: + delays: [0, 0, 0] + +transformer_lm: + n_q: 4 + card: 2048 + memory_efficient: true + bias_proj: false + bias_ff: false + bias_attn: false + norm_first: true + layer_scale: null + weight_init: gaussian + depthwise_init: current + zero_bias_init: true + attention_as_float32: false diff --git a/config/model/none.yaml b/config/model/none.yaml new file mode 100644 index 0000000..1d4169f --- /dev/null +++ b/config/model/none.yaml @@ -0,0 +1,4 @@ +# @package __global__ + +# This file exist so that model is recognized as a config group +# by Hydra, and Dora. A bit weird we might need a better fix someday. diff --git a/config/model/score/basic.yaml b/config/model/score/basic.yaml new file mode 100644 index 0000000..75fbc37 --- /dev/null +++ b/config/model/score/basic.yaml @@ -0,0 +1,17 @@ +# @package _global_ + +diffusion_unet: + hidden: 48 + depth: 4 + res_blocks: 1 + norm_groups: 4 + kernel: 8 + stride: 4 + growth: 4 + max_channels: 10_000 + dropout: 0. + emb_all_layers: true + bilstm: false + codec_dim: null + transformer: false + cross_attention: false \ No newline at end of file diff --git a/config/model/watermark/default.yaml b/config/model/watermark/default.yaml new file mode 100644 index 0000000..6e17abb --- /dev/null +++ b/config/model/watermark/default.yaml @@ -0,0 +1,41 @@ +# @package __global__ + +audioseal: + autoencoder: seanet + sample_rate: 16000 + channels: 1 + nbits: 16 + +seanet: + dimension: 128 + channels: 1 + causal: false + n_filters: 32 + n_residual_layers: 1 + ratios: [8, 5, 4, 2] + activation: ELU + activation_params: { "alpha": 1. } + norm: weight_norm + norm_params: {} + kernel_size: 7 + residual_kernel_size: 3 + last_kernel_size: 7 + dilation_base: 2 + pad_mode: constant + true_skip: true + compress: 2 + lstm: 2 + disable_norm_outer_blocks: 0 + # Specific encoder or decoder params. + # You can also override any param for the encoder or decoder only + # by using Hydra `+param=` syntax, i.e.` + # `+seanet.decoder.n_filters=64`. + decoder: + trim_right_ratio: 1.0 + final_activation: null + final_activation_params: null + encoder: {} + +detector: { + "output_dim": 32, # output channels of detector upsampling +} \ No newline at end of file diff --git a/config/solver/audiogen/audiogen_base_16khz.yaml b/config/solver/audiogen/audiogen_base_16khz.yaml new file mode 100644 index 0000000..dd6aee7 --- /dev/null +++ b/config/solver/audiogen/audiogen_base_16khz.yaml @@ -0,0 +1,70 @@ +# @package __global__ + +# This is the training loop solver +# for the base AudioGen model (text-to-sound) +# on monophonic audio sampled at 16 kHz +# using a similar EnCodec+LM setup to MusicGen +defaults: + - audiogen/default + - /model: lm/audiogen_lm + - override /dset: audio/default + - _self_ + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 16khz +# with a total stride of 320 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //reference/bd44a852/checkpoint.th + +channels: 1 +sample_rate: 16000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 128 # matching AudioGen paper setup (256 * mix_p=0.5 = 128) + num_workers: 10 + segment_duration: 10 + min_segment_ratio: 1.0 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + external_metadata_source: null + # sample mixing augmentation at train time + train: + batch_size: 256 # matching AudioGen paper setup + aug_p: 0.5 # perform audio mixing 50% of the time + mix_p: 0.5 # proportion of batch items mixed together + # important: note that this will reduce the + # actual batch size used at train time + # which will be equal to mix_p * batch_size + mix_snr_low: -5 + mix_snr_high: 5 + mix_min_overlap: 0.5 + +generate: + lm: + use_sampling: true + top_k: 250 + top_p: 0.0 + +optim: + epochs: 100 + optimizer: adamw + lr: 5e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: inverse_sqrt + inverse_sqrt: + warmup: 3000 + warmup_init_lr: 0.0 diff --git a/config/solver/audiogen/debug.yaml b/config/solver/audiogen/debug.yaml new file mode 100644 index 0000000..a1dd246 --- /dev/null +++ b/config/solver/audiogen/debug.yaml @@ -0,0 +1,61 @@ +# @package __global__ + +# This is a minimal debugging configuration +# for MusicGen training solver +defaults: + - audiogen/default + - /model: lm/audiogen_lm + - override /model/lm/model_scale: xsmall + - override /dset: audio/example + - _self_ + +autocast: false +compression_model_checkpoint: null +transformer_lm: + n_q: 4 + card: 400 + +conditioners: + description: + model: t5 + t5: + name: t5-small + +codebooks_pattern: + modeling: parallel + +channels: 1 +sample_rate: 16000 + +deadlock: + use: false # deadlock detection + +dataset: + batch_size: 4 + segment_duration: 5 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +generate: + audio: + strategy: peak + lm: + use_sampling: false + top_k: 0 + top_p: 0.0 + +checkpoint: + save_every: 0 + keep_last: 0 + +optim: + epochs: 2 + updates_per_epoch: 10 + optimizer: adamw + lr: 1e-4 + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: null diff --git a/config/solver/audiogen/default.yaml b/config/solver/audiogen/default.yaml new file mode 100644 index 0000000..afee63c --- /dev/null +++ b/config/solver/audiogen/default.yaml @@ -0,0 +1,40 @@ +# @package __global__ + +defaults: + - /solver/musicgen/default + - _self_ + - /solver/audiogen/evaluation: none + - override /dset: audio/default + +# See config/solver/musicgen/default.yaml for a list of possible values. +# We only keep the most important here. + +autocast: true +autocast_dtype: float16 + +solver: audiogen +sample_rate: ??? +channels: ??? +compression_model_checkpoint: ??? + +tokens: + padding_with_special_token: false + +dataset: + batch_size: 128 + segment_duration: 10 + min_segment_ratio: 1.0 # lower values such as 0.5 result in generations with a lot of silence. + +optim: + epochs: 100 + updates_per_epoch: 2000 + lr: 1e-4 + optimizer: adamw + max_norm: 1.0 + adam: + betas: [0.9, 0.95] + weight_decay: 0.1 + eps: 1e-8 + +schedule: + lr_scheduler: null diff --git a/config/solver/audiogen/evaluation/none.yaml b/config/solver/audiogen/evaluation/none.yaml new file mode 100644 index 0000000..1e73999 --- /dev/null +++ b/config/solver/audiogen/evaluation/none.yaml @@ -0,0 +1,5 @@ +# @package __global__ + +dataset: + evaluate: + num_samples: 10000 diff --git a/config/solver/audiogen/evaluation/objective_eval.yaml b/config/solver/audiogen/evaluation/objective_eval.yaml new file mode 100644 index 0000000..32fcc10 --- /dev/null +++ b/config/solver/audiogen/evaluation/objective_eval.yaml @@ -0,0 +1,29 @@ +# @package __global__ + +# Setup for execute only on audiocaps for audio generation +# evaluation with objective metrics +# execute_only=evaluate + +dataset: + max_audio_duration: null + # ensure the proper values are broadcasted here for evaluate + evaluate: + min_audio_duration: 1. # some metrics requires a minimum audio length + max_audio_duration: null # all samples from audiocaps should be ~10s + num_samples: null + segment_duration: null + generate: + min_audio_duration: 1. + max_audio_duration: null + num_samples: 500 + +evaluate: + metrics: + fad: true + kld: true + text_consistency: true + +metrics: + kld: + passt: + pretrained_length: 10 # similarly to reported results in AudioGen paper diff --git a/config/solver/compression/debug.yaml b/config/solver/compression/debug.yaml new file mode 100644 index 0000000..54dac17 --- /dev/null +++ b/config/solver/compression/debug.yaml @@ -0,0 +1,55 @@ +# @package __global__ + +defaults: + - compression/default + - /model: encodec/encodec_base_causal + - override /dset: audio/example + - _self_ + +channels: 1 +sample_rate: 16000 + +# debug config uses just L1 +losses: + adv: 0. + feat: 0. + l1: 1. + mel: 0. + msspec: 0. +# no balancer +balancer: + balance_grads: false + ema_decay: 1. + total_norm: 1. + per_batch_item: false +# no adversaries +adversarial: + adversaries: [] + adv_loss: hinge + feat_loss: l1 + +# faster model for local dev +seanet: + dimension: 16 + n_filters: 4 + +# very small dataset +dataset: + batch_size: 8 + num_workers: 10 + num_samples: 100 + segment_duration: 1 + evaluate: + batch_size: 32 + generate: + batch_size: 1 + num_samples: 5 + segment_duration: 10 + +# limited training +evaluate: + every: 5 +generate: + every: 5 +optim: + epochs: 50 diff --git a/config/solver/compression/default.yaml b/config/solver/compression/default.yaml new file mode 100644 index 0000000..41c812b --- /dev/null +++ b/config/solver/compression/default.yaml @@ -0,0 +1,160 @@ +# @package __global__ + +defaults: + - ../default + - override /dset: audio/default + - _self_ + +solver: compression +sample_rate: ??? +channels: ??? + +# loss balancing +losses: + adv: 4. + feat: 4. + l1: 0.1 + mel: 0. + msspec: 2. + sisnr: 0. +balancer: + balance_grads: true + ema_decay: 0.999 + per_batch_item: true + total_norm: 1. + +adversarial: + every: 1 + adversaries: [msstftd] + adv_loss: hinge + feat_loss: l1 + +# losses hyperparameters +l1: {} +l2: {} +mrstft: + factor_sc: .5 + factor_mag: .5 + normalized: false +mel: + sample_rate: ${sample_rate} + n_fft: 1024 + hop_length: 256 + win_length: 1024 + n_mels: 64 + f_min: 64 + f_max: null + normalized: false + floor_level: 1e-5 +sisnr: + sample_rate: ${sample_rate} + segment: 5. +msspec: + sample_rate: ${sample_rate} + range_start: 6 + range_end: 11 + n_mels: 64 + f_min: 64 + f_max: null + normalized: true + alphas: false + floor_level: 1e-5 + +# metrics +metrics: + visqol: + mode: audio + bin: null # path to visqol install + model: tcdaudio14_aacvopus_coresv_svrnsim_n.68_g.01_c1.model # visqol v3 + +# adversaries hyperparameters +msstftd: + in_channels: 1 + out_channels: 1 + filters: 32 + norm: weight_norm + n_ffts: [1024, 2048, 512, 256, 128] + hop_lengths: [256, 512, 128, 64, 32] + win_lengths: [1024, 2048, 512, 256, 128] + activation: LeakyReLU + activation_params: {negative_slope: 0.3} +msd: + in_channels: 1 + out_channels: 1 + scale_norms: [spectral_norm, weight_norm, weight_norm] + kernel_sizes: [5, 3] + filters: 16 + max_filters: 1024 + downsample_scales: [4, 4, 4, 4] + inner_kernel_sizes: null + groups: [4, 4, 4, 4] + strides: null + paddings: null + activation: LeakyReLU + activation_params: {negative_slope: 0.3} +mpd: + in_channels: 1 + out_channels: 1 + periods: [2, 3, 5, 7, 11] + n_layers: 5 + kernel_size: 5 + stride: 3 + filters: 8 + filter_scales: 4 + max_filters: 1024 + activation: LeakyReLU + activation_params: {negative_slope: 0.3} + norm: weight_norm + +# data hyperparameters +dataset: + batch_size: 64 + num_workers: 10 + segment_duration: 1 + train: + num_samples: 500000 + valid: + num_samples: 10000 + evaluate: + batch_size: 32 + num_samples: 10000 + generate: + batch_size: 32 + num_samples: 50 + segment_duration: 10 + +# solver hyperparameters +evaluate: + every: 25 + num_workers: 5 + metrics: + visqol: false + sisnr: true +generate: + every: 25 + num_workers: 5 + audio: + sample_rate: ${sample_rate} + +# checkpointing schedule +checkpoint: + save_last: true + save_every: 25 + keep_last: 10 + keep_every_states: null + +# optimization hyperparameters +optim: + epochs: 200 + updates_per_epoch: 2000 + lr: 3e-4 + max_norm: 0. + optimizer: adam + adam: + betas: [0.5, 0.9] + weight_decay: 0. + ema: + use: true # whether to use EMA or not + updates: 1 # update at every step + device: ${device} # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used diff --git a/config/solver/compression/encodec_audiogen_16khz.yaml b/config/solver/compression/encodec_audiogen_16khz.yaml new file mode 100644 index 0000000..654deaa --- /dev/null +++ b/config/solver/compression/encodec_audiogen_16khz.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +defaults: + - compression/default + - /model: encodec/encodec_large_nq4_s320 + - override /dset: audio/default + - _self_ + +channels: 1 +sample_rate: 16000 diff --git a/config/solver/compression/encodec_base_24khz.yaml b/config/solver/compression/encodec_base_24khz.yaml new file mode 100644 index 0000000..018ad1c --- /dev/null +++ b/config/solver/compression/encodec_base_24khz.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +defaults: + - compression/default + - /model: encodec/encodec_base_causal + - override /dset: audio/default + - _self_ + +channels: 1 +sample_rate: 24000 diff --git a/config/solver/compression/encodec_musicgen_32khz.yaml b/config/solver/compression/encodec_musicgen_32khz.yaml new file mode 100644 index 0000000..eca4b90 --- /dev/null +++ b/config/solver/compression/encodec_musicgen_32khz.yaml @@ -0,0 +1,10 @@ +# @package __global__ + +defaults: + - compression/default + - /model: encodec/encodec_large_nq4_s640 + - override /dset: audio/default + - _self_ + +channels: 1 +sample_rate: 32000 diff --git a/config/solver/default.yaml b/config/solver/default.yaml new file mode 100644 index 0000000..d7452ea --- /dev/null +++ b/config/solver/default.yaml @@ -0,0 +1,108 @@ +# @package __global__ + +# WARNING: This is a base configuration file shared across ALL solvers in AudioCraft +# Please don't update this file directly. Instead use distinct configuration files +# to override the below configuration. +solver: ??? + +fsdp: + use: false # should we use FSDP. + param_dtype: float16 # equivalent to autocast_dtype for FSDP. + reduce_dtype: float32 # gradient averaging dtype, float32 will give max stability. + buffer_dtype: float32 # dtype used for buffers, we don't have much buffers, so let's leave it. + sharding_strategy: shard_grad_op # can be shard_grad_op or full_shard. + # full_shard will use less memory but slower ?? + per_block: true # If True, uses nested FSDP. + +profiler: + enabled: false + +deadlock: + use: false + timeout: 600 + +dataset: + batch_size: ??? + num_workers: 10 + segment_duration: null + num_samples: null + return_info: false + shuffle: false + sample_on_duration: true + sample_on_weight: true + min_segment_ratio: 0.5 + train: + num_samples: null + shuffle: true + shuffle_seed: 0 # if you want to sample the data differently. + permutation_on_files: false + valid: + num_samples: null + evaluate: + num_samples: null + generate: + num_samples: null + return_info: true + +checkpoint: + save_last: true + save_every: null + keep_last: null + keep_every_states: null + +generate: + every: null + path: 'samples' + audio: + format: 'mp3' + strategy: 'clip' + sample_rate: null + lm: + use_sampling: false + temp: 1.0 + top_k: 0 + top_p: 0.0 +evaluate: + every: null + num_workers: 5 + truncate_audio: null + fixed_generation_duration: null # in secs + metrics: + base: true # run default evaluation (e.g. like train/valid stage) + +optim: + epochs: ??? + updates_per_epoch: null + lr: ??? + optimizer: ??? + adam: + betas: [0.9, 0.999] + weight_decay: 0. + ema: + use: false # whether to use EMA or not + updates: ${optim.updates_per_epoch} # frequency of updates of the EMA + device: cpu # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used + +schedule: + lr_scheduler: null + step: + step_size: null + gamma: null + exponential: + lr_decay: null + cosine: + warmup: null + lr_min_ratio: 0.0 + cycle_length: 1.0 + polynomial_decay: + warmup: null + zero_lr_warmup_steps: 0 + end_lr: 0.0 + power: 1 + inverse_sqrt: + warmup: null + warmup_init_lr: 0.0 + linear_warmup: + warmup: null + warmup_init_lr: 0.0 diff --git a/config/solver/diffusion/debug.yaml b/config/solver/diffusion/debug.yaml new file mode 100644 index 0000000..bc27c53 --- /dev/null +++ b/config/solver/diffusion/debug.yaml @@ -0,0 +1,106 @@ +# @package __global__ + +defaults: + - /solver/default + - /model: score/basic + - override /dset: audio/default + - _self_ + +solver: diffusion + +sample_rate: 16000 +channels: 1 +compression_model_checkpoint: //sig/5091833e +n_q: 2 # number of codebooks to keep + +dataset: + batch_size: 8 + num_workers: 10 + segment_duration: 1 + train: + num_samples: 100 + valid: + num_samples: 100 + evaluate: + batch_size: 8 + num_samples: 10 + generate: + batch_size: 8 + num_samples: 10 + segment_duration: 10 + +loss: + kind: mse + norm_power: 0. + +valid: + every: 1 + +evaluate: + every: 5 + num_workers: 5 + metrics: + visqol: false + sisnr: false + rvm: true + +generate: + every: 5 + num_workers: 5 + audio: + sample_rate: ${sample_rate} + +checkpoint: + save_last: true + save_every: 25 + keep_last: 10 + keep_every_states: null + + +optim: + epochs: 50 + updates_per_epoch: 2000 + lr: 2e-4 + max_norm: 0 + optimizer: adam + adam: + betas: [0.9, 0.999] + weight_decay: 0. + ema: + use: true # whether to use EMA or not + updates: 1 # update at every step + device: ${device} # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used + +processor: + name: multi_band_processor + use: false + n_bands: 8 + num_samples: 10_000 + power_std: 1. + +resampling: + use: false + target_sr: 16000 + +filter: + use: false + n_bands: 4 + idx_band: 0 + cutoffs: null + +schedule: + repartition: "power" + variable_step_batch: true + beta_t0: 1.0e-5 + beta_t1: 2.9e-2 + beta_exp: 7.5 + num_steps: 1000 + variance: 'beta' + clip: 5. + rescale: 1. + n_bands: null + noise_scale: 1.0 + +metrics: + num_stage: 4 diff --git a/config/solver/diffusion/default.yaml b/config/solver/diffusion/default.yaml new file mode 100644 index 0000000..3793d4d --- /dev/null +++ b/config/solver/diffusion/default.yaml @@ -0,0 +1,107 @@ +# @package __global__ + +defaults: + - /solver/default + - /model: score/basic + - override /dset: audio/default + - _self_ + +solver: diffusion + +sample_rate: ??? +channels: ??? +compression_model_checkpoint: ??? +n_q: ??? # number of codebooks to keep + + +dataset: + batch_size: 128 + num_workers: 10 + segment_duration: 1 + train: + num_samples: 500000 + valid: + num_samples: 10000 + evaluate: + batch_size: 16 + num_samples: 10000 + generate: + batch_size: 32 + num_samples: 50 + segment_duration: 10 + audio: + sample_rate: ${sample_rate} + +loss: + kind: mse + norm_power: 0. + +valid: + every: 1 + +evaluate: + every: 20 + num_workers: 5 + metrics: + visqol: false + sisnr: false + rvm: true + +generate: + every: 25 + num_workers: 5 + +checkpoint: + save_last: true + save_every: 25 + keep_last: 10 + keep_every_states: null + + +optim: + epochs: 20000 + updates_per_epoch: 2000 + lr: 2e-4 + max_norm: 0 + optimizer: adam + adam: + betas: [0.9, 0.999] + weight_decay: 0. + ema: + use: true # whether to use EMA or not + updates: 1 # update at every step + device: ${device} # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used + +processor: + name: multi_band_processor + use: false + n_bands: 8 + num_samples: 10_000 + power_std: 1. + +resampling: + use: false + target_sr: 16000 + +filter: + use: false + n_bands: 4 + idx_band: 0 + cutoffs: null + +schedule: + repartition: "power" + variable_step_batch: true + beta_t0: 1.0e-5 + beta_t1: 2.9e-2 + beta_exp: 7.5 + num_steps: 1000 + variance: 'beta' + clip: 5. + rescale: 1. + n_bands: null + noise_scale: 1.0 + +metrics: + num_stage: 4 diff --git a/config/solver/diffusion/encodec_24khz.yaml b/config/solver/diffusion/encodec_24khz.yaml new file mode 100644 index 0000000..774e88f --- /dev/null +++ b/config/solver/diffusion/encodec_24khz.yaml @@ -0,0 +1,11 @@ +# @package __global__ + +defaults: + - diffusion/default + - _self_ + + +sample_rate: 24000 +channels: 1 +compression_model_checkpoint: //pretrained/facebook/encodec_24khz +n_q: 4 # num quantizers, 3kbps diff --git a/config/solver/jasco/chords.yaml b/config/solver/jasco/chords.yaml new file mode 100644 index 0000000..d9c671c --- /dev/null +++ b/config/solver/jasco/chords.yaml @@ -0,0 +1,81 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/example + - override /conditioner: chords2music + - _self_ + +lm_model: flow_matching +solver: jasco + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz +# precomputed mean std accross training data sub-partition +compression_model_latent_std: 4.0102 +compression_model_latent_mean: -0.0074 +compression_model_framerate: 50 +compression_model_latent_dim: 128 + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + segment_duration: 10 + batch_size: 320 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + chords_card: ${conditioners.chords.chords_emb.card} + compression_model_framerate: ${compression_model_framerate} + +optim: + epochs: 500 + optimizer: adamw + lr: 1e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +transformer_lm: + causal: false + skip_connections: false + flow_dim: ${compression_model_latent_dim} + chords_dim: ${conditioners.chords.chords_emb.out_dim} + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + cfg_coef_all: 3.0 + cfg_coef_txt: 1.0 + prompted_samples: false + samples: + prompted: false + unprompted: true diff --git a/config/solver/jasco/chords_drums.yaml b/config/solver/jasco/chords_drums.yaml new file mode 100644 index 0000000..50ac809 --- /dev/null +++ b/config/solver/jasco/chords_drums.yaml @@ -0,0 +1,88 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /conditioner: jasco_chords_drums + - override /dset: audio/default + - _self_ + +lm_model: flow_matching +solver: jasco + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz +# precomputed mean std accross training data sub-partition +compression_model_latent_std: 4.0102 +compression_model_latent_mean: -0.0074 +compression_model_framerate: 50 +compression_model_latent_dim: 128 + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + segment_duration: 10 + batch_size: 336 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + compression_model_framerate: ${compression_model_framerate} + +optim: + epochs: 500 + optimizer: adamw + lr: 1e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +transformer_lm: + causal: false + skip_connections: false + flow_dim: ${compression_model_latent_dim} + chords_dim: ${conditioners.chords.chords_emb.out_dim} + drums_dim: ${conditioners.self_wav.drum_latents.out_dim} + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + cfg_coef_all: 5.0 + cfg_coef_txt: 0.0 + prompted_samples: false + samples: + prompted: false + unprompted: true + +conditioners: + self_wav: + drum_latents: + compression_model_latent_dim: ${compression_model_latent_dim} + compression_model_framerate: ${compression_model_framerate} + segment_duration: ${dataset.segment_duration} diff --git a/config/solver/jasco/chords_drums_melody.yaml b/config/solver/jasco/chords_drums_melody.yaml new file mode 100644 index 0000000..c3a1a13 --- /dev/null +++ b/config/solver/jasco/chords_drums_melody.yaml @@ -0,0 +1,97 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/default + - override /conditioner: jasco_chords_drums_melody + - _self_ + +lm_model: flow_matching +solver: jasco + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz +# precomputed mean std accross training data sub-partition +compression_model_latent_std: 4.0102 +compression_model_latent_mean: -0.0074 +compression_model_framerate: 50 +compression_model_latent_dim: 128 + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + segment_duration: 10 + batch_size: 336 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + compression_model_framerate: ${compression_model_framerate} + melody_kwargs: + chroma_root: ??? # path to parsed chroma files + segment_duration: ${dataset.segment_duration} + melody_fr: 86 + latent_fr: ${compression_model_framerate} + melody_salience_dim: 53 + override_cache: false + do_argmax: true + +optim: + epochs: 500 + optimizer: adamw + lr: 1e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +transformer_lm: + causal: false + skip_connections: false + flow_dim: ${compression_model_latent_dim} + chords_dim: ${conditioners.chords.chords_emb.out_dim} + drums_dim: ${conditioners.self_wav.drum_latents.out_dim} + melody_dim: ${conditioners.melody.melody.out_dim} + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + cfg_coef_all: 3.0 + cfg_coef_txt: 1.0 + prompted_samples: false + samples: + prompted: false + unprompted: true + +conditioners: + self_wav: + drum_latents: + compression_model_latent_dim: ${compression_model_latent_dim} + compression_model_framerate: ${compression_model_framerate} + segment_duration: ${dataset.segment_duration} diff --git a/config/solver/jasco/drums.yaml b/config/solver/jasco/drums.yaml new file mode 100644 index 0000000..bcaf1eb --- /dev/null +++ b/config/solver/jasco/drums.yaml @@ -0,0 +1,87 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/default + - override /conditioner: drums2music + - _self_ + +lm_model: flow_matching +solver: jasco + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz +# precomputed mean std accross training data sub-partition +compression_model_latent_std: 4.0102 +compression_model_latent_mean: -0.0074 +compression_model_framerate: 50 +compression_model_latent_dim: 128 + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + segment_duration: 10 + batch_size: 336 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + compression_model_framerate: ${compression_model_framerate} + +optim: + epochs: 500 + optimizer: adamw + lr: 1e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +transformer_lm: + causal: false + skip_connections: false + flow_dim: ${compression_model_latent_dim} + drums_dim: ${conditioners.self_wav.drum_latents.out_dim} + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + cfg_coef_all: 3.0 + cfg_coef_txt: 1.0 + prompted_samples: false + samples: + prompted: false + unprompted: true + +conditioners: + self_wav: + drum_latents: + compression_model_latent_dim: ${compression_model_latent_dim} + compression_model_framerate: ${compression_model_framerate} + segment_duration: ${dataset.segment_duration} diff --git a/config/solver/jasco/jasco_32khz_base.yaml b/config/solver/jasco/jasco_32khz_base.yaml new file mode 100644 index 0000000..5b0aa94 --- /dev/null +++ b/config/solver/jasco/jasco_32khz_base.yaml @@ -0,0 +1,78 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/default + - _self_ + +lm_model: flow_matching +solver: jasco + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz +# precomputed mean std accross training data sub-partition +compression_model_latent_std: 4.0102 +compression_model_latent_mean: -0.0074 +compression_model_framerate: 50 +compression_model_latent_dim: 128 + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + segment_duration: 10 + batch_size: 320 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +optim: + epochs: 500 + optimizer: adamw + lr: 1e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +transformer_lm: + causal: false + skip_connections: false + flow_dim: ${compression_model_latent_dim} + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + cfg_coef_all: 3.0 + cfg_coef_txt: 0.0 + + prompted_samples: false + samples: + prompted: false + unprompted: true diff --git a/config/solver/magnet/audio_magnet_16khz.yaml b/config/solver/magnet/audio_magnet_16khz.yaml new file mode 100644 index 0000000..79326db --- /dev/null +++ b/config/solver/magnet/audio_magnet_16khz.yaml @@ -0,0 +1,104 @@ +# @package __global__ + +# This is the training loop solver +# for the base audio-MAGNeT model (text-to-sound) +# on monophonic audio sampled at 16 kHz +# using a similar EnCodec+LM setup to MAGNeT +defaults: + - audiogen/default + - /model: lm/audiogen_lm + - override /dset: audio/default + - _self_ + +lm_model: transformer_lm_magnet +solver: audio_magnet + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 16khz +# with a total stride of 320 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //reference/bd44a852/checkpoint.th + +channels: 1 +sample_rate: 16000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 128 # matching AudioGen paper setup (256 * mix_p=0.5 = 128) + num_workers: 10 + segment_duration: 10 + min_segment_ratio: 1.0 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + external_metadata_source: null + # sample mixing augmentation at train time + train: + batch_size: 256 # matching AudioGen paper setup + aug_p: 0.5 # perform audio mixing 50% of the time + mix_p: 0.5 # proportion of batch items mixed together + # important: note that this will reduce the + # actual batch size used at train time + # which will be equal to mix_p * batch_size + mix_snr_low: -5 + mix_snr_high: 5 + mix_min_overlap: 0.5 + +optim: + epochs: 100 + optimizer: adamw + lr: 5e-4 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: inverse_sqrt + inverse_sqrt: + warmup: 3000 + warmup_init_lr: 0.0 + +codebooks_pattern: + modeling: parallel + parallel: + empty_initial: -1 + +transformer_lm: + card: 2048 + causal: false + subcodes_context: 5 + compression_model_framerate: 50 # NOTE: Must match the actual frame rate of the used compression model + segment_duration: 0 + span_len: -1 + +masking: + span_len: 3 + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + use_sampling: true + temp: 3.5 + top_k: 0 + top_p: 0.8 + max_cfg_coef: 20.0 + min_cfg_coef: 1.0 + decoding_steps: [20, 10, 10, 10] + anneal_temp: true + span_scoring: 'max' + span_arrangement: 'nonoverlap' + prompted_samples: false + samples: + prompted: false + unprompted: true + diff --git a/config/solver/magnet/magnet_32khz.yaml b/config/solver/magnet/magnet_32khz.yaml new file mode 100644 index 0000000..8d53b56 --- /dev/null +++ b/config/solver/magnet/magnet_32khz.yaml @@ -0,0 +1,90 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/default + - _self_ + +lm_model: transformer_lm_magnet +solver: magnet + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz + +efficient_attention_backend: xformers # restricted attention implementation supports only xformers at the moment + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 192 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +optim: + epochs: 500 + optimizer: dadam + lr: 1 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 + +codebooks_pattern: + modeling: parallel + parallel: + empty_initial: -1 + +transformer_lm: + card: 2048 + causal: false + subcodes_context: 5 + compression_model_framerate: 50 # NOTE: Must match the actual frame rate of the used compression model + segment_duration: 0 + span_len: -1 + +masking: + span_len: 3 + +generate: + lm: + max_prompt_len: null + max_gen_len: null + remove_prompts: false + use_sampling: true + temp: 3.0 + top_k: 0 + top_p: 0.9 + max_cfg_coef: 10.0 + min_cfg_coef: 1.0 + decoding_steps: [60, 10, 10, 10] + anneal_temp: true + span_scoring: 'max' + span_arrangement: 'nonoverlap' + prompted_samples: false + samples: + prompted: false + unprompted: true diff --git a/config/solver/musicgen/debug.yaml b/config/solver/musicgen/debug.yaml new file mode 100644 index 0000000..9734d1b --- /dev/null +++ b/config/solver/musicgen/debug.yaml @@ -0,0 +1,61 @@ +# @package __global__ + +# This is a minimal debugging configuration +# for MusicGen training solver +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /model/lm/model_scale: xsmall + - override /dset: audio/example + - _self_ + +autocast: false +compression_model_checkpoint: //pretrained/debug_compression_model +transformer_lm: + n_q: 4 + card: 400 + +conditioners: + description: + model: t5 + t5: + name: t5-small + +codebooks_pattern: + modeling: parallel + +channels: 1 +sample_rate: 32000 + +deadlock: + use: false # deadlock detection + +dataset: + batch_size: 4 + segment_duration: 5 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +generate: + audio: + strategy: peak + lm: + use_sampling: false + top_k: 0 + top_p: 0.0 + +checkpoint: + save_every: 0 + keep_last: 0 + +optim: + epochs: 2 + updates_per_epoch: 10 + optimizer: adamw + lr: 1e-4 + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: null diff --git a/config/solver/musicgen/default.yaml b/config/solver/musicgen/default.yaml new file mode 100644 index 0000000..3069a32 --- /dev/null +++ b/config/solver/musicgen/default.yaml @@ -0,0 +1,131 @@ +# @package __global__ + +defaults: + - /solver/default + - /conditioner: none + - _self_ + - /solver/musicgen/evaluation: none + - override /dset: audio/default + +autocast: true +autocast_dtype: float16 + +solver: musicgen +sample_rate: ??? +channels: ??? +compression_model_checkpoint: ??? +# The following will set the num codebooks on the underlying +# model, this might be different from the actual value for n_q +# given to the transformer, when the model output is postprocessed, for instance +# for stereo channels. If not provided, default value for the compression model +# will be used. +compression_model_n_q: null + +tokens: + padding_with_special_token: false + +interleave_stereo_codebooks: + use: false + per_timestep: false + +cache: + path: + write: false + write_shard: 0 + write_num_shards: 1 + + +dataset: + batch_size: 128 + num_workers: 10 + segment_duration: 30 + min_segment_ratio: 0.8 # lower values such as 0.5 result in generations with a lot of silence. + return_info: true + train: + num_samples: 1000000 # need a randomly large number here for AudioDataset + valid: + num_samples: 10000 + generate: + num_samples: 50 + +metrics: + fad: + use_gt: false + model: tf + tf: + bin: null # path to local frechet_audio_distance code + model_path: //reference/fad/vggish_model.ckpt + kld: + use_gt: false + model: passt + passt: + pretrained_length: 20 + text_consistency: + use_gt: false + model: clap + clap: + model_path: //reference/clap/music_audioset_epoch_15_esc_90.14.pt + model_arch: 'HTSAT-base' + enable_fusion: false + chroma_cosine: + use_gt: false + model: chroma_base + chroma_base: + sample_rate: ${sample_rate} + n_chroma: 12 + radix2_exp: 14 + argmax: true + +generate: + every: 25 + num_workers: 5 + path: samples + audio: + format: wav + strategy: loudness + sample_rate: ${sample_rate} + loudness_headroom_db: 14 + lm: + prompted_samples: true + unprompted_samples: true + no_text_conditioning: false + gen_gt_samples: false + prompt_duration: null # if not set, will use dataset.generate.segment_duration / 4 + gen_duration: null # if not set, will use dataset.generate.segment_duration + remove_prompts: false + # generation params + use_sampling: false + temp: 1.0 + top_k: 0 + top_p: 0.0 + +evaluate: + every: 25 + num_workers: 5 + metrics: + base: false + fad: false + kld: false + text_consistency: false + chroma_cosine: false + +checkpoint: + save_last: true + save_every: 50 + keep_last: 10 + keep_every_states: null + +optim: + epochs: 200 + updates_per_epoch: 2000 + lr: 1e-4 + optimizer: adamw + max_norm: 1.0 + eager_sync: true + adam: + betas: [0.9, 0.95] + weight_decay: 0.1 + eps: 1e-8 + +schedule: + lr_scheduler: null diff --git a/config/solver/musicgen/evaluation/none.yaml b/config/solver/musicgen/evaluation/none.yaml new file mode 100644 index 0000000..1e73999 --- /dev/null +++ b/config/solver/musicgen/evaluation/none.yaml @@ -0,0 +1,5 @@ +# @package __global__ + +dataset: + evaluate: + num_samples: 10000 diff --git a/config/solver/musicgen/evaluation/objective_eval.yaml b/config/solver/musicgen/evaluation/objective_eval.yaml new file mode 100644 index 0000000..4881e9d --- /dev/null +++ b/config/solver/musicgen/evaluation/objective_eval.yaml @@ -0,0 +1,24 @@ +# @package __global__ + +# Setup for execute only on musiccaps for audio generation +# evaluation with objective metrics +# execute_only=evaluate + +dataset: + max_audio_duration: null + # ensure the proper values are broadcasted here for evaluate + evaluate: + min_audio_duration: 1. # some metrics requires a minimum audio length + max_audio_duration: null # all samples from musiccaps should be < 20s + num_samples: null + segment_duration: null + generate: + min_audio_duration: 1. + max_audio_duration: null + num_samples: 500 + +evaluate: + metrics: + fad: true + kld: true + text_consistency: true diff --git a/config/solver/musicgen/musicgen_base_32khz.yaml b/config/solver/musicgen/musicgen_base_32khz.yaml new file mode 100644 index 0000000..b32c9c8 --- /dev/null +++ b/config/solver/musicgen/musicgen_base_32khz.yaml @@ -0,0 +1,55 @@ +# @package __global__ + +# This is the training loop solver +# for the base MusicGen model (text-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /dset: audio/default + - _self_ + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 192 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +generate: + lm: + use_sampling: true + top_k: 250 + top_p: 0.0 + +optim: + epochs: 500 + optimizer: dadam + lr: 1 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 diff --git a/config/solver/musicgen/musicgen_melody_32khz.yaml b/config/solver/musicgen/musicgen_melody_32khz.yaml new file mode 100644 index 0000000..1ad3e0a --- /dev/null +++ b/config/solver/musicgen/musicgen_melody_32khz.yaml @@ -0,0 +1,56 @@ +# @package __global__ + +# This is the training loop solver +# for the melody MusicGen model (text+chroma to music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /conditioner: chroma2music + - override /dset: audio/default + - _self_ + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 192 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +generate: + lm: + use_sampling: true + top_k: 250 + top_p: 0.0 + +optim: + epochs: 500 + optimizer: dadam + lr: 1 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 diff --git a/config/solver/musicgen/musicgen_style_32khz.yaml b/config/solver/musicgen/musicgen_style_32khz.yaml new file mode 100644 index 0000000..5051658 --- /dev/null +++ b/config/solver/musicgen/musicgen_style_32khz.yaml @@ -0,0 +1,58 @@ +# @package __global__ + +# This is the training loop solver +# for MusicGen-Style model (text-and-style-to-music) +# on monophonic audio sampled at 32 kHz +defaults: + - musicgen/default + - /model: lm/musicgen_lm + - override /conditioner: style2music + - override /dset: audio/default + - _self_ + +autocast: true +autocast_dtype: float16 + +# EnCodec large trained on mono-channel music audio sampled at 32khz +# with a total stride of 640 leading to 50 frames/s. +# rvq.n_q=4, rvq.bins=2048, no quantization dropout +# (transformer_lm card and n_q must be compatible) +compression_model_checkpoint: //pretrained/facebook/encodec_32khz + +channels: 1 +sample_rate: 32000 + +deadlock: + use: true # deadlock detection + +dataset: + batch_size: 192 # 32 GPUs + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + +generate: + lm: + use_sampling: true + top_k: 250 + top_p: 0.0 + cfg_coef: 3.0 + cfg_coef_beta: + +optim: + epochs: 500 + optimizer: dadam + lr: 1 + ema: + use: true + updates: 10 + device: cuda + +logging: + log_tensorboard: true + +schedule: + lr_scheduler: cosine + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 diff --git a/config/solver/watermark/debug.yaml b/config/solver/watermark/debug.yaml new file mode 100644 index 0000000..64c002d --- /dev/null +++ b/config/solver/watermark/debug.yaml @@ -0,0 +1,207 @@ +# @package __global__ + +defaults: + - /solver/default + - /augmentations/default + - /model: watermark/default + - override /dset: audio/example + - _self_ + +solver: watermarking # standard name to load the solver using builders +sample_rate: 48000 +channels: 1 + +# all the defaults form compression +losses: + adv: 4. + feat: 4. + l1: 0.1 + mel: 0.0 + msspec: 2.0 + sisnr: 0.0 + wm_detection: 1.0 # loss for first 2 bits cannot be 0 + wm_mb: 1.0 # loss for the rest of the bits (wm message) + tf_loudnessratio: 10.0 + +balancer: + balance_grads: true + ema_decay: 0.999 + per_batch_item: true + total_norm: 1. + +crop: + prob: 0.4 + shuffle_prob: 0.2 + pad_prob: 0.2 # shuffle_prob + pad_prob + prob <= 1 + size: 0.5 + max_n_windows: 5 + +adversarial: + every: 1 + adversaries: [msstftd] + adv_loss: hinge + feat_loss: l1 + +tf_loudnessratio: + sample_rate: ${sample_rate} + segment: 0.5 + overlap: 0.5 + n_bands: 16 + temperature: 1.0 + +# watermarking: audioseal + +# losses hyperparameters +l1: {} +l2: {} + +wm_detection: + p_weight: 1 + n_weight: 1 + +wm_mb: + loss_type: bce # loss between decoded and original + temperature: 0.1 # decoded is divided by temperature before loss computation + +spec_range: + n_fft: 2048 + min_frequency: 300.0 + max_frequency: 15000.0 + sample_rate: ${sample_rate} +spec_entropy_range: + n_fft: 2048 + min_frequency: 300.0 + max_frequency: 15000.0 + sample_rate: ${sample_rate} +mrstft: + factor_sc: .5 + factor_mag: .5 + normalized: false +mel: + sample_rate: ${sample_rate} + n_fft: 1024 + hop_length: 256 + win_length: 1024 + n_mels: 64 + f_min: 64 + f_max: null + normalized: false + floor_level: 1e-5 +sisnr: + sample_rate: ${sample_rate} + segment: 5. +msspec: + sample_rate: ${sample_rate} + range_start: 6 + range_end: 11 + n_mels: 64 + f_min: 64 + f_max: null + normalized: true + alphas: false + floor_level: 1e-5 + +# metrics +metrics: + visqol: + mode: audio + bin: null # path to visqol install + model: tcdaudio14_aacvopus_coresv_svrnsim_n.68_g.01_c1.model # visqol v3 + +# adversaries hyperparameters +msstftd: + in_channels: 1 + out_channels: 1 + filters: 32 + norm: weight_norm + n_ffts: [1024, 2048, 512, 256, 128] + hop_lengths: [256, 512, 128, 64, 32] + win_lengths: [1024, 2048, 512, 256, 128] + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } +msd: + in_channels: 1 + out_channels: 1 + scale_norms: [spectral_norm, weight_norm, weight_norm] + kernel_sizes: [5, 3] + filters: 16 + max_filters: 1024 + downsample_scales: [4, 4, 4, 4] + inner_kernel_sizes: null + groups: [4, 4, 4, 4] + strides: null + paddings: null + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } +mpd: + in_channels: 1 + out_channels: 1 + periods: [2, 3, 5, 7, 11] + n_layers: 5 + kernel_size: 5 + stride: 3 + filters: 8 + filter_scales: 4 + max_filters: 1024 + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } + norm: weight_norm + +# data hyperparameters +dataset: + batch_size: 16 + num_workers: 10 + segment_duration: 1 + sample_on_weight: false # Uniform sampling all the way + sample_on_duration: false # Uniform sampling all the way + + generate: + batch_size: 16 + num_samples: 50 + segment_duration: 30 + +# solver hyperparameters +evaluate: + every: 10 + num_workers: 5 + metrics: + visqol: false + sisnr: true +generate: + every: 10 + num_workers: 5 + audio: + sample_rate: ${sample_rate} + +# checkpointing schedule +checkpoint: + save_last: true + save_every: 25 + keep_last: 10 + keep_every_states: null + + + +# optimization hyperparameters +optim: + epochs: 2 + updates_per_epoch: 10 + lr: 5e-5 + max_norm: 3.0 + optimizer: adam + adam: + betas: [0.5, 0.9] + weight_decay: 0. + ema: + use: true # whether to use EMA or not + updates: 1 # update at every step + device: ${device} # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used + + +schedule: + lr_scheduler: "cosine" + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 diff --git a/config/solver/watermark/default.yaml b/config/solver/watermark/default.yaml new file mode 100644 index 0000000..5726e41 --- /dev/null +++ b/config/solver/watermark/default.yaml @@ -0,0 +1,212 @@ +# @package __global__ + +defaults: + - /solver/default + - /augmentations/default + - override /dset: audio/example + - _self_ + +solver: watermarking # standard name to load the solver using builders +sample_rate: ??? +channels: ??? + +# all the defaults form compression +losses: + adv: 4. + feat: 4. + l1: 0.1 + mel: 0.0 + msspec: 2.0 + sisnr: 0.0 + wm_detection: 1.0 # loss for first 2 bits cannot be 0 + wm_mb: 1.0 # loss for the rest of the bits (wm message) + tf_loudnessratio: 10.0 + +balancer: + balance_grads: true + ema_decay: 0.999 + per_batch_item: true + total_norm: 1. + +crop: + prob: 0.4 + shuffle_prob: 0.2 + pad_prob: 0.2 # shuffle_prob + pad_prob + prob <= 1 + size: 0.5 + max_n_windows: 5 + +adversarial: + every: 1 + adversaries: [msstftd] + adv_loss: hinge + feat_loss: l1 + +tf_loudnessratio: + sample_rate: ${sample_rate} + segment: 0.5 + overlap: 0.5 + n_bands: 16 + temperature: 1.0 + +# watermarking: audioseal + +# losses hyperparameters +l1: {} +l2: {} + +wm_detection: + p_weight: 1 + n_weight: 1 + +wm_mb: + loss_type: bce # loss between decoded and original + temperature: 0.1 # decoded is divided by temperature before loss computation + +spec_range: + n_fft: 2048 + min_frequency: 300.0 + max_frequency: 15000.0 + sample_rate: ${sample_rate} +spec_entropy_range: + n_fft: 2048 + min_frequency: 300.0 + max_frequency: 15000.0 + sample_rate: ${sample_rate} +mrstft: + factor_sc: .5 + factor_mag: .5 + normalized: false +mel: + sample_rate: ${sample_rate} + n_fft: 1024 + hop_length: 256 + win_length: 1024 + n_mels: 64 + f_min: 64 + f_max: null + normalized: false + floor_level: 1e-5 +sisnr: + sample_rate: ${sample_rate} + segment: 5. +msspec: + sample_rate: ${sample_rate} + range_start: 6 + range_end: 11 + n_mels: 64 + f_min: 64 + f_max: null + normalized: true + alphas: false + floor_level: 1e-5 + +# metrics +metrics: + visqol: + mode: audio + bin: null # path to visqol install + model: tcdaudio14_aacvopus_coresv_svrnsim_n.68_g.01_c1.model # visqol v3 + +# adversaries hyperparameters +msstftd: + in_channels: 1 + out_channels: 1 + filters: 32 + norm: weight_norm + n_ffts: [1024, 2048, 512, 256, 128] + hop_lengths: [256, 512, 128, 64, 32] + win_lengths: [1024, 2048, 512, 256, 128] + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } +msd: + in_channels: 1 + out_channels: 1 + scale_norms: [spectral_norm, weight_norm, weight_norm] + kernel_sizes: [5, 3] + filters: 16 + max_filters: 1024 + downsample_scales: [4, 4, 4, 4] + inner_kernel_sizes: null + groups: [4, 4, 4, 4] + strides: null + paddings: null + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } +mpd: + in_channels: 1 + out_channels: 1 + periods: [2, 3, 5, 7, 11] + n_layers: 5 + kernel_size: 5 + stride: 3 + filters: 8 + filter_scales: 4 + max_filters: 1024 + activation: LeakyReLU + activation_params: { negative_slope: 0.3 } + norm: weight_norm + +# data hyperparameters +dataset: + batch_size: 16 + num_workers: 10 + segment_duration: 1 + train: + num_samples: 500000 + valid: + num_samples: 10000 + evaluate: + batch_size: 16 + num_samples: 10000 + segment_duration: 10 + + generate: + batch_size: 16 + num_samples: 50 + segment_duration: 30 + +# solver hyperparameters +evaluate: + every: 10 + num_workers: 5 + metrics: + visqol: false + sisnr: true +generate: + every: 10 + num_workers: 5 + audio: + sample_rate: ${sample_rate} + +# checkpointing schedule +checkpoint: + save_last: true + save_every: 25 + keep_last: 10 + keep_every_states: null + + + +# optimization hyperparameters +optim: + epochs: 300 + updates_per_epoch: 2000 + lr: 5e-5 + max_norm: 3.0 + optimizer: adam + adam: + betas: [0.5, 0.9] + weight_decay: 0. + ema: + use: true # whether to use EMA or not + updates: 1 # update at every step + device: ${device} # device for EMA, can be put on GPU if more frequent updates + decay: 0.99 # EMA decay value, if null, no EMA is used + + +schedule: + lr_scheduler: "cosine" + cosine: + warmup: 4000 + lr_min_ratio: 0.0 + cycle_length: 1.0 diff --git a/config/solver/watermark/robustness.yaml b/config/solver/watermark/robustness.yaml new file mode 100644 index 0000000..5cf6bb4 --- /dev/null +++ b/config/solver/watermark/robustness.yaml @@ -0,0 +1,15 @@ +# @package __global__ +defaults: + - watermark/default + - /augmentations/default + - /model: watermark/default + - _self_ + +sample_rate: 16000 +channels: 1 + +balancer: + balance_grads: true + ema_decay: 0.999 + per_batch_item: true + total_norm: 1. diff --git a/config/teams/default.yaml b/config/teams/default.yaml new file mode 100644 index 0000000..407066d --- /dev/null +++ b/config/teams/default.yaml @@ -0,0 +1,12 @@ +default: + dora_dir: /tmp/audiocraft_${oc.env:USER} + partitions: + global: debug + team: debug + reference_dir: /tmp +darwin: # if we detect we are on a Mac, then most likely we are doing unit testing etc. + dora_dir: /tmp/audiocraft_${oc.env:USER} + partitions: + global: debug + team: debug + reference_dir: /tmp diff --git a/config/teams/labs.yaml b/config/teams/labs.yaml new file mode 100644 index 0000000..fe662d8 --- /dev/null +++ b/config/teams/labs.yaml @@ -0,0 +1,28 @@ +aws: + dora_dir: /fsx-audio-craft-llm/${oc.env:USER}/experiments/audiocraft/outputs + partitions: + global: learnlab + team: learnlab + reference_dir: /fsx-audio-craft-llm/shared/audiocraft/reference + dataset_mappers: + "^/checkpoint/[a-z]+": "/fsx-audio-craft-llm" +fair: + dora_dir: /checkpoint/${oc.env:USER}/experiments/audiocraft/outputs + partitions: + global: learnlab + team: learnlab + reference_dir: /large_experiments/audiocraft/reference + dataset_mappers: + "^/datasets01/datasets01": "/datasets01" +darwin: + dora_dir: /tmp/audiocraft_${oc.env:USER} + partitions: + global: debug + team: debug + reference_dir: /tmp +rsc: + dora_dir: /checkpoint/audiocraft/${oc.env:USER}/experiments/audiocraft/outputs + partitions: + global: learn + team: learn + reference_dir: /checkpoint/audiocraft/shared/reference \ No newline at end of file diff --git a/dataset/example/electro_1.json b/dataset/example/electro_1.json new file mode 100644 index 0000000..eeffc95 --- /dev/null +++ b/dataset/example/electro_1.json @@ -0,0 +1 @@ +{"key": "", "artist": "Voyager I", "sample_rate": 48000, "file_extension": "mp3", "description": "A cool song from Voyager.", "keywords": "bright, pulsing, cool", "duration": 15.0, "bpm": "", "genre": "electronic", "title": "Enracinement", "name": "electro_1", "instrument": "Mix", "moods": ["uplifting", "motivational"]} diff --git a/dataset/example/electro_1.mp3 b/dataset/example/electro_1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8fa509266df4ee76519b82bfbea247cb0b18bcda GIT binary patch literal 240667 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

      1L8B8V3S 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�-wz8v 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 A@c;k- literal 0 HcmV?d00001 diff --git a/dataset/example/electro_2.json b/dataset/example/electro_2.json new file mode 100644 index 0000000..3ee91c8 --- /dev/null +++ b/dataset/example/electro_2.json @@ -0,0 +1 @@ +{"key": "", "artist": "Voyager I", "sample_rate": 44100, "file_extension": "mp3", "description": "This is an electronic song sending positive vibes.", "keywords": "", "duration": 20.0, "bpm": "", "genre": "electronic", "title": "Untitled song", "name": "electro_2", "instrument": "Mix", "moods": []} diff --git a/dataset/example/electro_2.mp3 b/dataset/example/electro_2.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..01ab323e4322d08546635861959b868c3d7b416b GIT binary patch literal 320827 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𝔭kz<`Q8pLSELJZwT$E@XB|7= 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 mzr$4icem-`fAjI!?e+b9 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 z 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

      rdTHy*0d3?wW*>UdoSpwC<4pAPB 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 0.5).float()\n", + " return wav * envelope" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Here we use a synthetic signal to prompt the generated audio.\n", + "res = model.generate_continuation(\n", + " get_bip_bip(0.125).expand(2, -1, -1), \n", + " 16000, ['Whistling with wind blowing', \n", + " 'Typing on a typewriter'], \n", + " progress=True)\n", + "display_audio(res, 16000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# You can also use any audio from a file. Make sure to trim the file if it is too long!\n", + "prompt_waveform, prompt_sr = torchaudio.load(\"../assets/sirens_and_a_humming_engine_approach_and_pass.mp3\")\n", + "prompt_duration = 2\n", + "prompt_waveform = prompt_waveform[..., :int(prompt_duration * prompt_sr)]\n", + "output = model.generate_continuation(prompt_waveform, prompt_sample_rate=prompt_sr, progress=True)\n", + "display_audio(output, sample_rate=16000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "output = model.generate(\n", + " descriptions=[\n", + " 'Subway train blowing its horn',\n", + " 'A cat meowing',\n", + " ],\n", + " progress=True\n", + ")\n", + "display_audio(output, sample_rate=16000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/demos/jasco_app.py b/demos/jasco_app.py new file mode 100644 index 0000000..18e0009 --- /dev/null +++ b/demos/jasco_app.py @@ -0,0 +1,364 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. + +# This source code is licensed under thmage license found in the +# LICENSE file in the root directory of this source tree. +import argparse +from concurrent.futures import ProcessPoolExecutor +import logging +import os +from pathlib import Path +import subprocess as sp +import sys +from tempfile import NamedTemporaryFile +import time +import typing as tp +import torch +import gradio as gr # type: ignore +from audiocraft.data.audio_utils import f32_pcm, normalize_audio +from audiocraft.data.audio import audio_write +from audiocraft.models import JASCO +# flake8: noqa + +MODEL = None # Last used model +SPACE_ID = os.environ.get('SPACE_ID', '') +MAX_BATCH_SIZE = 12 +INTERRUPTING = False +MBD = None +# We have to wrap subprocess call to clean a bit the log when using gr.make_waveform +_old_call = sp.call + + +def _call_nostderr(*args, **kwargs): + # Avoid ffmpeg vomiting on the logs. + kwargs['stderr'] = sp.DEVNULL + kwargs['stdout'] = sp.DEVNULL + _old_call(*args, **kwargs) + + +sp.call = _call_nostderr +# Preallocating the pool of processes. +pool = ProcessPoolExecutor(4) +pool.__enter__() + + +def interrupt(): + global INTERRUPTING + INTERRUPTING = True + + +class FileCleaner: + def __init__(self, file_lifetime: float = 3600): + self.file_lifetime = file_lifetime + self.files = [] # type: ignore + + def add(self, path: tp.Union[str, Path]): + self._cleanup() + self.files.append((time.time(), Path(path))) + + def _cleanup(self): + now = time.time() + for time_added, path in list(self.files): + if now - time_added > self.file_lifetime: + if path.exists(): + path.unlink() + self.files.pop(0) + else: + break + + +file_cleaner = FileCleaner() + + +def chords_string_to_list(chords: str): + if chords == '': + return [] + + # clean white spaces or [ ] chars + chords = chords.replace('[', '') + chords = chords.replace(']', '') + chords = chords.replace(' ', '') + chrd_times = [x.split(',') for x in chords[1:-1].split('),(')] + return [(x[0], float(x[1])) for x in chrd_times] + + +def load_model(version='facebook/jasco-chords-drums-400M'): + global MODEL + print("Loading model", version) + if MODEL is None or MODEL.name != version: + MODEL = None # in case loading would crash + MODEL = JASCO.get_pretrained(version) + + +def _do_predictions(texts, chords, melody_matrix, drum_prompt, progress=False, gradio_progress=None, **gen_kwargs): + MODEL.set_generation_params(**gen_kwargs) + be = time.time() + + # preprocess chords: str to list of tuples + chords = chords_string_to_list(chords) + + if melody_matrix is not None: + melody_matrix = torch.load(melody_matrix.name, weights_only=True) + if len(melody_matrix.shape) != 2: + raise gr.Error(f"Melody matrix should be a torch tensor of shape [n_melody_bins, T]; got: {melody_matrix.shape}") + if melody_matrix.shape[0] > melody_matrix.shape[1]: + melody_matrix = melody_matrix.permute(1, 0) + + # preprocess drums + if drum_prompt is None: + preprocessed_drums_wav = None + drums_sr = 32000 + else: + # gradio loads audio in int PCM 16-bit, we need to convert it to float32 + drums_sr, drums = drum_prompt[0], f32_pcm(torch.from_numpy(drum_prompt[1])).t() + if drums.dim() == 1: + drums = drums[None] + + drums = normalize_audio(drums, strategy="loudness", loudness_headroom_db=16, sample_rate=drums_sr) + preprocessed_drums_wav = drums + try: + outputs = MODEL.generate_music(descriptions=texts, chords=chords, + drums_wav=preprocessed_drums_wav, + melody_salience_matrix=melody_matrix, + drums_sample_rate=drums_sr, progress=progress) + except RuntimeError as e: + raise gr.Error("Error while generating " + e.args[0]) + outputs = outputs.detach().cpu().float() + out_wavs = [] + for output in outputs: + with NamedTemporaryFile("wb", suffix=".wav", delete=False) as file: + audio_write( + file.name, output, MODEL.sample_rate, strategy="loudness", + loudness_headroom_db=16, loudness_compressor=True, add_suffix=False) + out_wavs.append(file.name) + file_cleaner.add(file.name) + print("batch finished", len(texts), time.time() - be) + print("Tempfiles currently stored: ", len(file_cleaner.files)) + return out_wavs + + +def predict_full(model, + text, chords_sym, melody_file, + drums_file, drums_mic, drum_input_src, + cfg_coef_all, cfg_coef_txt, + ode_rtol, ode_atol, + ode_solver, ode_steps, + progress=gr.Progress()): + global INTERRUPTING + INTERRUPTING = False + progress(0, desc="Loading model...") + load_model(model) + + max_generated = 0 + + def _progress(generated, to_generate): + nonlocal max_generated + max_generated = max(generated, max_generated) + progress((min(max_generated, to_generate), to_generate)) + if INTERRUPTING: + raise gr.Error("Interrupted.") + MODEL.set_custom_progress_callback(_progress) + + drums = drums_mic if drum_input_src == "mic" else drums_file + wavs = _do_predictions( + texts=[text] * 2, # we generate two audio outputs for each input prompt + chords=chords_sym, + drum_prompt=drums, + melody_matrix=melody_file, + progress=True, + gradio_progress=progress, + cfg_coef_all=cfg_coef_all, + cfg_coef_txt=cfg_coef_txt, + ode_rtol=ode_rtol, + ode_atol=ode_atol, + euler=ode_solver == 'euler', + euler_steps=ode_steps) + + return wavs + + +def ui_full(launch_kwargs): + with gr.Blocks() as interface: + gr.Markdown( + """ + # JASCO + This is your private demo for [JASCO](https://github.com/facebookresearch/audiocraft), + A text-to-music model, with temporal control over melodies, chords or beats. + + presented at: ["Joint Audio and Symbolic Conditioning for Temporally Controlled Text-to-Music Generation"] + (https://arxiv.org/abs/2406.10970) + """ + ) + # Submit | generated + with gr.Row(): + with gr.Column(): + submit = gr.Button("Submit") + # Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license. + _ = gr.Button("Interrupt").click(fn=interrupt, queue=False) + + with gr.Column(): + audio_output_0 = gr.Audio(label="Generated Audio", type='filepath') + audio_output_1 = gr.Audio(label="Generated Audio", type='filepath') + + # TEXT | models + with gr.Row(): + with gr.Column(): + text = gr.Text(label="Input Text", + value="Strings, woodwind, orchestral, symphony.", + interactive=True) + with gr.Column(): + model = gr.Radio([ + 'facebook/jasco-chords-drums-400M', 'facebook/jasco-chords-drums-1B', + 'facebook/jasco-chords-drums-melody-400M', 'facebook/jasco-chords-drums-melody-1B', + ], + label="Model", value='facebook/jasco-chords-drums-melody-400M', interactive=True) + + # CHORDS + gr.Markdown("Chords conditions") + with gr.Row(): + chords_sym = gr.Text(label="Chord Progression", + value="(C, 0.0), (D, 2.0), (F, 4.0), (Ab, 6.0), (Bb, 7.0), (C, 8.0)", + interactive=True) + + # DRUMS + gr.Markdown("Drums conditions") + with gr.Row(): + drum_input_src = gr.Radio(["file", "mic"], value="file", + label="Condition on drums (optional) File or Mic") + drums_file = gr.Audio(sources=["upload"], type="numpy", label="File", + interactive=True, elem_id="drums-input") + + drums_mic = gr.Audio(sources=["microphone"], type="numpy", label="Mic", + interactive=True, elem_id="drums-mic-input") + + # MELODY + gr.Markdown("Melody conditions") + with gr.Row(): + melody_file = gr.File(label="Melody File", interactive=True, elem_id="melody-file-input") + + # CFG params + gr.Markdown("Classifier-Free Guidance (CFG) Coefficients:") + with gr.Row(): + cfg_coef_all = gr.Number(label="ALL", value=1.25, step=0.25, interactive=True) + cfg_coef_txt = gr.Number(label="TEXT", value=2.5, step=0.25, interactive=True) + ode_tol = gr.Number(label="ODE solver tolerance (defines error approx stop threshold for dynammic solver)", + value=1e-4, step=1e-5, interactive=True) + ode_solver = gr.Radio([ + 'euler', 'dopri5' + ], + label="ODE Solver", value='euler', interactive=True) + ode_steps = gr.Number(label="Steps (for euler solver)", value=10, step=1, interactive=True) + + submit.click(fn=predict_full, + inputs=[model, + text, chords_sym, melody_file, + drums_file, drums_mic, drum_input_src, + cfg_coef_all, cfg_coef_txt, ode_tol, ode_tol, ode_solver, ode_steps], + outputs=[audio_output_0, audio_output_1]) + gr.Examples( + fn=predict_full, + examples=[ + [ + "80s pop with groovy synth bass and electric piano", + "(N, 0.0), (C, 0.32), (Dm7, 3.456), (Am, 4.608), (F, 8.32), (C, 9.216)", + "./assets/salience_2.th", + "./assets/salience_2.wav", + ], + [ + "Strings, woodwind, orchestral, symphony.", # text + "(C, 0.0), (D, 2.0), (F, 4.0), (Ab, 6.0), (Bb, 7.0), (C, 8.0)", # chords + None, # melody + None, # drums + ], + [ + "distortion guitars, heavy rock, catchy beat", + "", + None, + "./assets/sep_drums_1.mp3", + ], + [ + "hip hop beat with a catchy melody and a groovy bass line", + "", + None, + "./assets/CJ_Beatbox_Loop_05_90.wav", + ], + [ + "hip hop beat with a catchy melody and a groovy bass line", + "(C, 0.0), (D, 2.0), (F, 4.0), (Ab, 6.0), (Bb, 7.0), (C, 8.0)", + None, + "./assets/CJ_Beatbox_Loop_05_90.wav", + ], + + ], + inputs=[text, chords_sym, melody_file, drums_file], + outputs=[audio_output_0, audio_output_1] + ) + gr.Markdown( + """ + ### More details + + "JASCO" model will generate a 10 seconds of music based on textual descriptions together with + temporal controls such as chords and drum tracks. + These models were trained with descriptions from a stock music catalog. Descriptions that will work best + should include some level of details on the instruments present, along with some intended use case + (e.g. adding "perfect for a commercial" can somehow help). + + We present 4 model variants: + 1. facebook/jasco-chords-drums-400M - 10s music generation conditioned on text, chords and drums,400M parameters. + 2. facebook/jasco-chords-drums-1B - 10s music generation conditioned on text, chords and drums, 1B parameters. + 3. facebook/jasco-chords-drums-melody-400M - 10s music generation conditioned on text, chords, drums and melody,400M parameters. + 4. facebook/jasco-chords-drums-melody-1B - 10s music generation conditioned on text, chords, drums and melody, 1B parameters. + + See https://github.com/facebookresearch/audiocraft/blob/main/docs/JASCO.md + for more details. + """ + ) + + interface.queue().launch(**launch_kwargs) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '--listen', + type=str, + default='0.0.0.0' if 'SPACE_ID' in os.environ else '127.0.0.1', + help='IP to listen on for connections to Gradio', + ) + parser.add_argument( + '--username', type=str, default='', help='Username for authentication' + ) + parser.add_argument( + '--password', type=str, default='', help='Password for authentication' + ) + parser.add_argument( + '--server_port', + type=int, + default=0, + help='Port to run the server listener on', + ) + parser.add_argument( + '--inbrowser', action='store_true', help='Open in browser' + ) + parser.add_argument( + '--share', action='store_true', help='Share the gradio UI' + ) + + args = parser.parse_args() + + launch_kwargs = {} + launch_kwargs['server_name'] = args.listen + + if args.username and args.password: + launch_kwargs['auth'] = (args.username, args.password) + if args.server_port: + launch_kwargs['server_port'] = args.server_port + if args.inbrowser: + launch_kwargs['inbrowser'] = args.inbrowser + if args.share: + launch_kwargs['share'] = args.share + + logging.basicConfig(level=logging.INFO, stream=sys.stderr) + + # Show the interface + ui_full(launch_kwargs) diff --git a/demos/jasco_demo.ipynb b/demos/jasco_demo.ipynb new file mode 100644 index 0000000..3973118 --- /dev/null +++ b/demos/jasco_demo.ipynb @@ -0,0 +1,352 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# JASCO\n", + "Welcome to JASCO's demo jupyter notebook. \n", + "Here you will find a self-contained example of how to use JASCO for temporally controlled music generation.\n", + "\n", + "You can choose a model from the following selection:\n", + "1. facebook/jasco-chords-drums-400M - 10s music generation conditioned on text, chords and drums, 400M parameters\n", + "2. facebook/jasco-chords-drums-1B - 10s music generation conditioned on text, chords and drums, 1B parameters\n", + "3. facebook/jasco-chords-drums-melody-400M - 10s music generation conditioned on text, chords, drums and melody, 400M parameters\n", + "4. facebook/jasco-chords-drums-melody-1B - 10s music generation conditioned on text, chords, drums and melody, 1B parameters\n", + "\n", + "First, we start by initializing the JASCO model:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os \n", + "from audiocraft.models import JASCO\n", + "\n", + "model = JASCO.get_pretrained('facebook/jasco-chords-drums-melody-400M', chords_mapping_path='../assets/chord_to_index_mapping.pkl')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let us configure the generation parameters. Specifically, you can control the following:\n", + "* `cfg_coef_all` (float, optional): Coefficient used for classifier free guidance - fully conditional term. \n", + " Defaults to 5.0.\n", + "* `cfg_coef_txt` (float, optional): Coefficient used for classifier free guidance - additional text conditional term. \n", + " Defaults to 0.0.\n", + "\n", + "When left unchanged, JASCO will revert to its default parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " cfg_coef_all=0.0,\n", + " cfg_coef_txt=5.0\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can go ahead and start generating music given textual prompts." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "# set textual prompt\n", + "text = \"Funky groove with electric piano playing blue chords rhythmically\"\n", + "\n", + "# run the model\n", + "print(\"Generating...\") \n", + "output = model.generate(descriptions=[text], progress=True)\n", + "\n", + "# display the result\n", + "print(f\"Text: {text}\\n\")\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can start adding temporal controls! We begin with conditioning on chord progressions:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Chords-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " cfg_coef_all=1.5,\n", + " cfg_coef_txt=3.0\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "# set textual prompt\n", + "text = \"Strings, woodwind, orchestral, symphony.\"\n", + "\n", + "# define chord progression\n", + "chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)]\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(descriptions=[text], chords=chords, progress=True)\n", + "\n", + "# display the result\n", + "print(f'Text: {text}')\n", + "print(f'Chord progression: {chords}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can condition the generation on drum tracks:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Drums-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "\n", + "# load drum prompt\n", + "drums_waveform, sr = torchaudio.load(\"../assets/sep_drums_1.mp3\")\n", + "\n", + "# set textual prompt \n", + "text = \"distortion guitars, heavy rock, catchy beat\"\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(\n", + " descriptions=[text],\n", + " drums_wav=drums_waveform,\n", + " drums_sample_rate=sr,\n", + " progress=True\n", + ")\n", + "\n", + "# display the result\n", + "print('drum prompt:')\n", + "display_audio(drums_waveform, sample_rate=sr)\n", + "print(f'Text: {text}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also combine multiple temporal controls! Let's move on to generating with both chords and drums conditioning:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Drums + Chords conditioning" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "\n", + "# load drum prompt\n", + "drums_waveform, sr = torchaudio.load(\"../assets/sep_drums_1.mp3\")\n", + "\n", + "# set textual prompt \n", + "text = \"string quartet, orchestral, dramatic\"\n", + "\n", + "# define chord progression\n", + "chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)]\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(\n", + " descriptions=[text],\n", + " drums_wav=drums_waveform,\n", + " drums_sample_rate=sr,\n", + " chords=chords,\n", + " progress=True\n", + ")\n", + "\n", + "# display the result\n", + "print('drum prompt:')\n", + "display_audio(drums_waveform, sample_rate=sr)\n", + "print(f'Chord progression: {chords}')\n", + "print(f'Text: {text}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Melody + Drums + Chords conditioning - inference example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "from demucs import pretrained\n", + "from demucs.apply import apply_model\n", + "from demucs.audio import convert_audio\n", + "import torch\n", + "from audiocraft.utils.notebook import display_audio\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# --------------------------\n", + "# First, choose file to load\n", + "# --------------------------\n", + "fnames = ['salience_1', 'salience_2']\n", + "chords = [\n", + " [('N', 0.0), ('Eb7', 1.088000000), ('C#', 4.352000000), ('D', 4.864000000), ('Dm7', 6.720000000), ('G7', 8.256000000), ('Am7b5/G', 9.152000000)], # for salience 1\n", + " [('N', 0.0), ('C', 0.320000000), ('Dm7', 3.456000000), ('Am', 4.608000000), ('F', 8.320000000), ('C', 9.216000000)] # for salience 2\n", + "]\n", + "file_idx = 0 # either 0 or 1\n", + "\n", + "\n", + "# ------------------------------------\n", + "# display audio, melody map and chords\n", + "# ------------------------------------\n", + "def plot_chromagram(tensor):\n", + " # Check if tensor is a PyTorch tensor\n", + " if not torch.is_tensor(tensor):\n", + " raise ValueError('Input should be a PyTorch tensor')\n", + " tensor = tensor.numpy().T # C, T\n", + " plt.figure(figsize=(20, 20))\n", + " plt.imshow(tensor, cmap='binary', interpolation='nearest', origin='lower')\n", + " plt.show()\n", + "\n", + "# load salience and display the corresponding wav\n", + "melody_prompt_wav, melody_prompt_sr = torchaudio.load(f\"../assets/{fnames[file_idx]}.wav\")\n", + "print(\"Source melody:\")\n", + "display_audio(melody_prompt_wav, sample_rate=melody_prompt_sr)\n", + "melody = torch.load(f\"../assets/{fnames[file_idx]}.th\", weights_only=True)\n", + "plot_chromagram(melody)\n", + "print(\"Chords:\")\n", + "print(chords[file_idx])\n", + "\n", + "# --------------------------------------------------\n", + "# use demucs to seperate the drums stem from src mix\n", + "# --------------------------------------------------\n", + "def _get_drums_stem(wav: torch.Tensor, sample_rate: int) -> torch.Tensor:\n", + " \"\"\"Get parts of the wav that holds the drums, extracting the main stems from the wav.\"\"\"\n", + " demucs_model = pretrained.get_model('htdemucs').to('cuda')\n", + " wav = convert_audio(\n", + " wav, sample_rate, demucs_model.samplerate, demucs_model.audio_channels) # type: ignore\n", + " stems = apply_model(demucs_model, wav.cuda().unsqueeze(0), device='cuda').squeeze(0)\n", + " drum_stem = stems[demucs_model.sources.index('drums')] # extract relevant stems for drums conditioning\n", + " return convert_audio(drum_stem.cpu(), demucs_model.samplerate, sample_rate, 1) # type: ignore\n", + "drums_wav = _get_drums_stem(melody_prompt_wav, melody_prompt_sr)\n", + "print(\"Separated drums:\")\n", + "display_audio(drums_wav, sample_rate=melody_prompt_sr)\n", + "\n", + "# ----------------------------------\n", + "# Generate using the loaded controls\n", + "# ----------------------------------\n", + "# these are free-form texts written randomly\n", + "texts = [\n", + " '90s rock with heavy drums and hammond',\n", + " '80s pop with groovy synth bass and drum machine',\n", + " 'folk song with leading accordion',\n", + "]\n", + "\n", + "print(\"Generating...\")\n", + "# replacing dynammic solver with simple euler solver\n", + "model.set_generation_params(cfg_coef_all=1.5, cfg_coef_txt=2.5, euler=True, euler_steps=50) # manually set with euler solver\n", + "output = model.generate_music(\n", + " descriptions=texts,\n", + " chords=chords[file_idx],\n", + " drums_wav=drums_wav,\n", + " drums_sample_rate=melody_prompt_sr,\n", + " melody_salience_matrix=melody.permute(1, 0),\n", + " progress=True\n", + ")\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "jasco_dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/demos/magnet_app.py b/demos/magnet_app.py new file mode 100644 index 0000000..a5713c5 --- /dev/null +++ b/demos/magnet_app.py @@ -0,0 +1,351 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. + +# This source code is licensed under thmage license found in the +# LICENSE file in the root directory of this source tree. + +import argparse +from concurrent.futures import ProcessPoolExecutor +import logging +import os +from pathlib import Path +import subprocess as sp +import sys +from tempfile import NamedTemporaryFile +import time +import typing as tp +import warnings + +import gradio as gr + +from audiocraft.data.audio import audio_write +from audiocraft.models import MAGNeT + + +MODEL = None # Last used model +SPACE_ID = os.environ.get('SPACE_ID', '') +MAX_BATCH_SIZE = 12 +N_REPEATS = 2 +INTERRUPTING = False +MBD = None +# We have to wrap subprocess call to clean a bit the log when using gr.make_waveform +_old_call = sp.call + +PROD_STRIDE_1 = "prod-stride1 (new!)" + + +def _call_nostderr(*args, **kwargs): + # Avoid ffmpeg vomiting on the logs. + kwargs['stderr'] = sp.DEVNULL + kwargs['stdout'] = sp.DEVNULL + _old_call(*args, **kwargs) + + +sp.call = _call_nostderr +# Preallocating the pool of processes. +pool = ProcessPoolExecutor(4) +pool.__enter__() + + +def interrupt(): + global INTERRUPTING + INTERRUPTING = True + + +class FileCleaner: + def __init__(self, file_lifetime: float = 3600): + self.file_lifetime = file_lifetime + self.files = [] + + def add(self, path: tp.Union[str, Path]): + self._cleanup() + self.files.append((time.time(), Path(path))) + + def _cleanup(self): + now = time.time() + for time_added, path in list(self.files): + if now - time_added > self.file_lifetime: + if path.exists(): + path.unlink() + self.files.pop(0) + else: + break + + +file_cleaner = FileCleaner() + + +def make_waveform(*args, **kwargs): + # Further remove some warnings. + be = time.time() + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + out = gr.make_waveform(*args, **kwargs) + print("Make a video took", time.time() - be) + return out + + +def load_model(version='facebook/magnet-small-10secs'): + global MODEL + print("Loading model", version) + if MODEL is None or MODEL.name != version: + MODEL = None # in case loading would crash + MODEL = MAGNeT.get_pretrained(version) + + +def _do_predictions(texts, progress=False, gradio_progress=None, **gen_kwargs): + MODEL.set_generation_params(**gen_kwargs) + print("new batch", len(texts), texts) + be = time.time() + + try: + outputs = MODEL.generate(texts, progress=progress, return_tokens=False) + except RuntimeError as e: + raise gr.Error("Error while generating " + e.args[0]) + outputs = outputs.detach().cpu().float() + pending_videos = [] + out_wavs = [] + for i, output in enumerate(outputs): + with NamedTemporaryFile("wb", suffix=".wav", delete=False) as file: + audio_write( + file.name, output, MODEL.sample_rate, strategy="loudness", + loudness_headroom_db=16, loudness_compressor=True, add_suffix=False) + if i == 0: + pending_videos.append(pool.submit(make_waveform, file.name)) + out_wavs.append(file.name) + file_cleaner.add(file.name) + out_videos = [pending_video.result() for pending_video in pending_videos] + for video in out_videos: + file_cleaner.add(video) + print("batch finished", len(texts), time.time() - be) + print("Tempfiles currently stored: ", len(file_cleaner.files)) + return out_videos, out_wavs + + +def predict_batched(texts, melodies): + max_text_length = 512 + texts = [text[:max_text_length] for text in texts] + load_model('facebook/magnet-small-10secs') + res = _do_predictions(texts, melodies) + return res + + +def predict_full(model, model_path, text, temperature, topp, + max_cfg_coef, min_cfg_coef, + decoding_steps1, decoding_steps2, decoding_steps3, decoding_steps4, + span_score, + progress=gr.Progress()): + global INTERRUPTING + INTERRUPTING = False + progress(0, desc="Loading model...") + model_path = model_path.strip() + if model_path: + if not Path(model_path).exists(): + raise gr.Error(f"Model path {model_path} doesn't exist.") + if not Path(model_path).is_dir(): + raise gr.Error(f"Model path {model_path} must be a folder containing " + "state_dict.bin and compression_state_dict_.bin.") + model = model_path + if temperature < 0: + raise gr.Error("Temperature must be >= 0.") + + load_model(model) + + max_generated = 0 + + def _progress(generated, to_generate): + nonlocal max_generated + max_generated = max(generated, max_generated) + progress((min(max_generated, to_generate), to_generate)) + if INTERRUPTING: + raise gr.Error("Interrupted.") + MODEL.set_custom_progress_callback(_progress) + + videos, wavs = _do_predictions( + [text] * N_REPEATS, progress=True, + temperature=temperature, top_p=topp, + max_cfg_coef=max_cfg_coef, min_cfg_coef=min_cfg_coef, + decoding_steps=[decoding_steps1, decoding_steps2, decoding_steps3, decoding_steps4], + span_arrangement='stride1' if (span_score == PROD_STRIDE_1) else 'nonoverlap', + gradio_progress=progress) + + outputs_ = [videos[0]] + [wav for wav in wavs] + return tuple(outputs_) + +def ui_full(launch_kwargs): + with gr.Blocks() as interface: + gr.Markdown( + """ + # MAGNeT + This is your private demo for [MAGNeT](https://github.com/facebookresearch/audiocraft), + A fast text-to-music model, consists of a single, non-autoregressive transformer. + presented at: ["Masked Audio Generation using a Single Non-Autoregressive Transformer"] (https://huggingface.co/papers/2401.04577) + """ + ) + with gr.Row(): + with gr.Column(): + with gr.Row(): + text = gr.Text(label="Input Text", value="80s electronic track with melodic synthesizers, catchy beat and groovy bass", interactive=True) + with gr.Row(): + submit = gr.Button("Submit") + # Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license. + _ = gr.Button("Interrupt").click(fn=interrupt, queue=False) + with gr.Row(): + model = gr.Radio(['facebook/magnet-small-10secs', 'facebook/magnet-medium-10secs', + 'facebook/magnet-small-30secs', 'facebook/magnet-medium-30secs', + 'facebook/audio-magnet-small', 'facebook/audio-magnet-medium'], + label="Model", value='facebook/magnet-small-10secs', interactive=True) + model_path = gr.Text(label="Model Path (custom models)") + with gr.Row(): + span_score = gr.Radio(["max-nonoverlap", PROD_STRIDE_1], + label="Span Scoring", value=PROD_STRIDE_1, interactive=True) + with gr.Row(): + decoding_steps1 = gr.Number(label="Decoding Steps (stage 1)", value=20, interactive=True) + decoding_steps2 = gr.Number(label="Decoding Steps (stage 2)", value=10, interactive=True) + decoding_steps3 = gr.Number(label="Decoding Steps (stage 3)", value=10, interactive=True) + decoding_steps4 = gr.Number(label="Decoding Steps (stage 4)", value=10, interactive=True) + with gr.Row(): + temperature = gr.Number(label="Temperature", value=3.0, step=0.25, minimum=0, interactive=True) + topp = gr.Number(label="Top-p", value=0.9, step=0.1, minimum=0, maximum=1, interactive=True) + max_cfg_coef = gr.Number(label="Max CFG coefficient", value=10.0, minimum=0, interactive=True) + min_cfg_coef = gr.Number(label="Min CFG coefficient", value=1.0, minimum=0, interactive=True) + with gr.Column(): + output = gr.Video(label="Generated Audio - variation 1") + audio_outputs = [gr.Audio(label=f"Generated Audio - variation {i+1}", type='filepath') for i in range(N_REPEATS)] + submit.click(fn=predict_full, + inputs=[model, model_path, text, + temperature, topp, + max_cfg_coef, min_cfg_coef, + decoding_steps1, decoding_steps2, decoding_steps3, decoding_steps4, + span_score], + outputs=[output] + [o for o in audio_outputs]) + gr.Examples( + fn=predict_full, + examples=[ + [ + "80s electronic track with melodic synthesizers, catchy beat and groovy bass", + 'facebook/magnet-small-10secs', + 20, 3.0, 0.9, 10.0, + ], + [ + "80s electronic track with melodic synthesizers, catchy beat and groovy bass. 170 bpm", + 'facebook/magnet-small-10secs', + 20, 3.0, 0.9, 10.0, + ], + [ + "Earthy tones, environmentally conscious, ukulele-infused, harmonic, breezy, easygoing, organic instrumentation, gentle grooves", + 'facebook/magnet-medium-10secs', + 20, 3.0, 0.9, 10.0, + ], + [ "Funky groove with electric piano playing blue chords rhythmically", + 'facebook/magnet-medium-10secs', + 20, 3.0, 0.9, 10.0, + ], + [ + "Rock with saturated guitars, a heavy bass line and crazy drum break and fills.", + 'facebook/magnet-small-30secs', + 60, 3.0, 0.9, 10.0, + ], + [ "A grand orchestral arrangement with thunderous percussion, epic brass fanfares, and soaring strings, creating a cinematic atmosphere fit for a heroic battle", + 'facebook/magnet-medium-30secs', + 60, 3.0, 0.9, 10.0, + ], + [ "Seagulls squawking as ocean waves crash while wind blows heavily into a microphone.", + 'facebook/audio-magnet-small', + 20, 3.5, 0.8, 20.0, + ], + [ "A toilet flushing as music is playing and a man is singing in the distance.", + 'facebook/audio-magnet-medium', + 20, 3.5, 0.8, 20.0, + ], + ], + + inputs=[text, model, decoding_steps1, temperature, topp, max_cfg_coef], + outputs=[output] + ) + + gr.Markdown( + """ + ### More details + + #### Music Generation + "magnet" models will generate a short music extract based on the textual description you provided. + These models can generate either 10 seconds or 30 seconds of music. + These models were trained with descriptions from a stock music catalog. Descriptions that will work best + should include some level of details on the instruments present, along with some intended use case + (e.g. adding "perfect for a commercial" can somehow help). + + We present 4 model variants: + 1. facebook/magnet-small-10secs - a 300M non-autoregressive transformer capable of generating 10-second music conditioned + on text. + 2. facebook/magnet-medium-10secs - 1.5B parameters, 10 seconds audio. + 3. facebook/magnet-small-30secs - 300M parameters, 30 seconds audio. + 4. facebook/magnet-medium-30secs - 1.5B parameters, 30 seconds audio. + + #### Sound-Effect Generation + "audio-magnet" models will generate a 10-second sound effect based on the description you provide. + + These models were trained on the following data sources: a subset of AudioSet (Gemmeke et al., 2017), + [BBC sound effects](https://sound-effects.bbcrewind.co.uk/), AudioCaps (Kim et al., 2019), + Clotho v2 (Drossos et al., 2020), VGG-Sound (Chen et al., 2020), FSD50K (Fonseca et al., 2021), + [Free To Use Sounds](https://www.freetousesounds.com/all-in-one-bundle/), [Sonniss Game Effects](https://sonniss.com/gameaudiogdc), + [WeSoundEffects](https://wesoundeffects.com/we-sound-effects-bundle-2020/), + [Paramount Motion - Odeon Cinematic Sound Effects](https://www.paramountmotion.com/odeon-sound-effects). + + We present 2 model variants: + 1. facebook/audio-magnet-small - 10 second sound effect generation, 300M parameters. + 2. facebook/audio-magnet-medium - 10 second sound effect generation, 1.5B parameters. + + See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft/blob/main/docs/MAGNET.md) + for more details. + """ + ) + + interface.queue().launch(**launch_kwargs) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '--listen', + type=str, + default='0.0.0.0' if 'SPACE_ID' in os.environ else '127.0.0.1', + help='IP to listen on for connections to Gradio', + ) + parser.add_argument( + '--username', type=str, default='', help='Username for authentication' + ) + parser.add_argument( + '--password', type=str, default='', help='Password for authentication' + ) + parser.add_argument( + '--server_port', + type=int, + default=0, + help='Port to run the server listener on', + ) + parser.add_argument( + '--inbrowser', action='store_true', help='Open in browser' + ) + parser.add_argument( + '--share', action='store_true', help='Share the gradio UI' + ) + + args = parser.parse_args() + + launch_kwargs = {} + launch_kwargs['server_name'] = args.listen + + if args.username and args.password: + launch_kwargs['auth'] = (args.username, args.password) + if args.server_port: + launch_kwargs['server_port'] = args.server_port + if args.inbrowser: + launch_kwargs['inbrowser'] = args.inbrowser + if args.share: + launch_kwargs['share'] = args.share + + logging.basicConfig(level=logging.INFO, stream=sys.stderr) + + # Show the interface + ui_full(launch_kwargs) diff --git a/demos/magnet_demo.ipynb b/demos/magnet_demo.ipynb new file mode 100644 index 0000000..1c5da22 --- /dev/null +++ b/demos/magnet_demo.ipynb @@ -0,0 +1,214 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MAGNeT\n", + "Welcome to MAGNeT's demo jupyter notebook. \n", + "Here you will find a self-contained example of how to use MAGNeT for music/sound-effect generation.\n", + "\n", + "First, we start by initializing MAGNeT for music generation, you can choose a model from the following selection:\n", + "1. facebook/magnet-small-10secs - a 300M non-autoregressive transformer capable of generating 10-second music conditioned on text.\n", + "2. facebook/magnet-medium-10secs - 1.5B parameters, 10 seconds music samples.\n", + "3. facebook/magnet-small-30secs - 300M parameters, 30 seconds music samples.\n", + "4. facebook/magnet-medium-30secs - 1.5B parameters, 30 seconds music samples.\n", + "\n", + "We will use the `facebook/magnet-small-10secs` variant for the purpose of this demonstration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.models import MAGNeT\n", + "\n", + "model = MAGNeT.get_pretrained('facebook/magnet-small-10secs')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let us configure the generation parameters. Specifically, you can control the following:\n", + "* `use_sampling` (bool, optional): use sampling if True, else do argmax decoding. Defaults to True.\n", + "* `top_k` (int, optional): top_k used for sampling. Defaults to 0.\n", + "* `top_p` (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.9.\n", + "* `temperature` (float, optional): Initial softmax temperature parameter. Defaults to 3.0.\n", + "* `max_clsfg_coef` (float, optional): Initial coefficient used for classifier free guidance. Defaults to 10.0.\n", + "* `min_clsfg_coef` (float, optional): Final coefficient used for classifier free guidance. Defaults to 1.0.\n", + "* `decoding_steps` (list of n_q ints, optional): The number of iterative decoding steps, for each of the n_q RVQ codebooks.\n", + "* `span_arrangement` (str, optional): Use either non-overlapping spans ('nonoverlap') or overlapping spans ('stride1') \n", + " in the masking scheme. \n", + "\n", + "When left unchanged, MAGNeT will revert to its default parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " use_sampling=True,\n", + " top_k=0,\n", + " top_p=0.9,\n", + " temperature=3.0,\n", + " max_cfg_coef=10.0,\n", + " min_cfg_coef=1.0,\n", + " decoding_steps=[int(20 * model.lm.cfg.dataset.segment_duration // 10), 10, 10, 10],\n", + " span_arrangement='stride1'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can go ahead and start generating music given textual prompts." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation - Music" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "###### Text-to-music prompts - examples ######\n", + "text = \"80s electronic track with melodic synthesizers, catchy beat and groovy bass\"\n", + "# text = \"80s electronic track with melodic synthesizers, catchy beat and groovy bass. 170 bpm\"\n", + "# text = \"Earthy tones, environmentally conscious, ukulele-infused, harmonic, breezy, easygoing, organic instrumentation, gentle grooves\"\n", + "# text = \"Funky groove with electric piano playing blue chords rhythmically\"\n", + "# text = \"Rock with saturated guitars, a heavy bass line and crazy drum break and fills.\"\n", + "# text = \"A grand orchestral arrangement with thunderous percussion, epic brass fanfares, and soaring strings, creating a cinematic atmosphere fit for a heroic battle\"\n", + " \n", + "N_VARIATIONS = 3\n", + "descriptions = [text for _ in range(N_VARIATIONS)]\n", + "\n", + "print(f\"text prompt: {text}\\n\")\n", + "output = model.generate(descriptions=descriptions, progress=True, return_tokens=True)\n", + "display_audio(output[0], sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation - Sound Effects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Besides music, MAGNeT models can generate sound effects given textual prompts. \n", + "First, let's load an Audio-MAGNeT model, out of the following collection: \n", + "1. facebook/audio-magnet-small - a 300M non-autoregressive transformer capable of generating 10 second sound effects conditioned on text.\n", + "2. facebook/audio-magnet-medium - 10 second sound effect generation, 1.5B parameters.\n", + "\n", + "We will use the `facebook/audio-magnet-small` variant for the purpose of this demonstration." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.models import MAGNeT\n", + "\n", + "model = MAGNeT.get_pretrained('facebook/audio-magnet-small')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The recommended parameters for sound generation are a bit different than the defaults in MAGNeT, let's initialize it: " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " use_sampling=True,\n", + " top_k=0,\n", + " top_p=0.8,\n", + " temperature=3.5,\n", + " max_cfg_coef=20.0,\n", + " min_cfg_coef=1.0,\n", + " decoding_steps=[int(20 * model.lm.cfg.dataset.segment_duration // 10), 10, 10, 10],\n", + " span_arrangement='stride1'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can go ahead and start generating sounds given textual prompts." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + " \n", + "###### Text-to-audio prompts - examples ######\n", + "text = \"Seagulls squawking as ocean waves crash while wind blows heavily into a microphone.\"\n", + "# text = \"A toilet flushing as music is playing and a man is singing in the distance.\"\n", + "\n", + "N_VARIATIONS = 3\n", + "descriptions = [text for _ in range(N_VARIATIONS)]\n", + "\n", + "print(f\"text prompt: {text}\\n\")\n", + "output = model.generate(descriptions=descriptions, progress=True, return_tokens=True)\n", + "display_audio(output[0], sample_rate=model.compression_model.sample_rate)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.11" + }, + "vscode": { + "interpreter": { + "hash": "b02c911f9b3627d505ea4a19966a915ef21f28afb50dbf6b2115072d27c69103" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/demos/musicgen_app.py b/demos/musicgen_app.py new file mode 100644 index 0000000..88cd27d --- /dev/null +++ b/demos/musicgen_app.py @@ -0,0 +1,526 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. + +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +# Updated to account for UI changes from https://github.com/rkfg/audiocraft/blob/long/app.py +# also released under the MIT license. + +import argparse +from concurrent.futures import ProcessPoolExecutor +import logging +import os +from pathlib import Path +import subprocess as sp +import sys +from tempfile import NamedTemporaryFile +import time +import typing as tp +import warnings + +from einops import rearrange +import torch +import gradio as gr + +from audiocraft.data.audio_utils import convert_audio +from audiocraft.data.audio import audio_write +from audiocraft.models.encodec import InterleaveStereoCompressionModel +from audiocraft.models import MusicGen, MultiBandDiffusion + + +MODEL = None # Last used model +SPACE_ID = os.environ.get('SPACE_ID', '') +IS_BATCHED = "facebook/MusicGen" in SPACE_ID or 'musicgen-internal/musicgen_dev' in SPACE_ID +print(IS_BATCHED) +MAX_BATCH_SIZE = 12 +BATCHED_DURATION = 15 +INTERRUPTING = False +MBD = None +# We have to wrap subprocess call to clean a bit the log when using gr.make_waveform +_old_call = sp.call + + +def _call_nostderr(*args, **kwargs): + # Avoid ffmpeg vomiting on the logs. + kwargs['stderr'] = sp.DEVNULL + kwargs['stdout'] = sp.DEVNULL + _old_call(*args, **kwargs) + + +sp.call = _call_nostderr +# Preallocating the pool of processes. +pool = ProcessPoolExecutor(4) +pool.__enter__() + + +def interrupt(): + global INTERRUPTING + INTERRUPTING = True + + +class FileCleaner: + def __init__(self, file_lifetime: float = 3600): + self.file_lifetime = file_lifetime + self.files = [] + + def add(self, path: tp.Union[str, Path]): + self._cleanup() + self.files.append((time.time(), Path(path))) + + def _cleanup(self): + now = time.time() + for time_added, path in list(self.files): + if now - time_added > self.file_lifetime: + if path.exists(): + path.unlink() + self.files.pop(0) + else: + break + +file_cleaner = FileCleaner() + + +def make_waveform(*args, **kwargs): + # Further remove some warnings. + be = time.time() + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + out = gr.make_waveform(*args, **kwargs) + print("Make a video took", time.time() - be) + return out + + +def load_model(version='facebook/musicgen-melody'): + global MODEL + print("Loading model", version) + if MODEL is None or MODEL.name != version: + # Clear PyTorch CUDA cache and delete model + del MODEL + torch.cuda.empty_cache() + MODEL = None # in case loading would crash + MODEL = MusicGen.get_pretrained(version) + + +def load_diffusion(): + global MBD + if MBD is None: + print("loading MBD") + MBD = MultiBandDiffusion.get_mbd_musicgen() + + +def _do_predictions(texts, melodies, duration, progress=False, gradio_progress=None, **gen_kwargs): + MODEL.set_generation_params(duration=duration, **gen_kwargs) + print("new batch", len(texts), texts, [None if m is None else (m[0], m[1].shape) for m in melodies]) + be = time.time() + processed_melodies = [] + target_sr = 32000 + target_ac = 1 + for melody in melodies: + if melody is None: + processed_melodies.append(None) + else: + sr, melody = melody[0], torch.from_numpy(melody[1]).to(MODEL.device).float().t() + if melody.dim() == 1: + melody = melody[None] + melody = melody[..., :int(sr * duration)] + melody = convert_audio(melody, sr, target_sr, target_ac) + processed_melodies.append(melody) + + try: + if any(m is not None for m in processed_melodies): + outputs = MODEL.generate_with_chroma( + descriptions=texts, + melody_wavs=processed_melodies, + melody_sample_rate=target_sr, + progress=progress, + return_tokens=USE_DIFFUSION + ) + else: + outputs = MODEL.generate(texts, progress=progress, return_tokens=USE_DIFFUSION) + except RuntimeError as e: + raise gr.Error("Error while generating " + e.args[0]) + if USE_DIFFUSION: + if gradio_progress is not None: + gradio_progress(1, desc='Running MultiBandDiffusion...') + tokens = outputs[1] + if isinstance(MODEL.compression_model, InterleaveStereoCompressionModel): + left, right = MODEL.compression_model.get_left_right_codes(tokens) + tokens = torch.cat([left, right]) + outputs_diffusion = MBD.tokens_to_wav(tokens) + if isinstance(MODEL.compression_model, InterleaveStereoCompressionModel): + assert outputs_diffusion.shape[1] == 1 # output is mono + outputs_diffusion = rearrange(outputs_diffusion, '(s b) c t -> b (s c) t', s=2) + outputs = torch.cat([outputs[0], outputs_diffusion], dim=0) + outputs = outputs.detach().cpu().float() + pending_videos = [] + out_wavs = [] + for output in outputs: + with NamedTemporaryFile("wb", suffix=".wav", delete=False) as file: + audio_write( + file.name, output, MODEL.sample_rate, strategy="loudness", + loudness_headroom_db=16, loudness_compressor=True, add_suffix=False) + pending_videos.append(pool.submit(make_waveform, file.name)) + out_wavs.append(file.name) + file_cleaner.add(file.name) + out_videos = [pending_video.result() for pending_video in pending_videos] + for video in out_videos: + file_cleaner.add(video) + print("batch finished", len(texts), time.time() - be) + print("Tempfiles currently stored: ", len(file_cleaner.files)) + return out_videos, out_wavs + + +def predict_batched(texts, melodies): + max_text_length = 512 + texts = [text[:max_text_length] for text in texts] + load_model('facebook/musicgen-stereo-melody') + res = _do_predictions(texts, melodies, BATCHED_DURATION) + return res + + +def predict_full(model, model_path, decoder, text, melody, duration, topk, topp, temperature, cfg_coef, progress=gr.Progress()): + global INTERRUPTING + global USE_DIFFUSION + INTERRUPTING = False + progress(0, desc="Loading model...") + model_path = model_path.strip() + if model_path: + if not Path(model_path).exists(): + raise gr.Error(f"Model path {model_path} doesn't exist.") + if not Path(model_path).is_dir(): + raise gr.Error(f"Model path {model_path} must be a folder containing " + "state_dict.bin and compression_state_dict_.bin.") + model = model_path + if temperature < 0: + raise gr.Error("Temperature must be >= 0.") + if topk < 0: + raise gr.Error("Topk must be non-negative.") + if topp < 0: + raise gr.Error("Topp must be non-negative.") + + topk = int(topk) + if decoder == "MultiBand_Diffusion": + USE_DIFFUSION = True + progress(0, desc="Loading diffusion model...") + load_diffusion() + else: + USE_DIFFUSION = False + load_model(model) + + max_generated = 0 + + def _progress(generated, to_generate): + nonlocal max_generated + max_generated = max(generated, max_generated) + progress((min(max_generated, to_generate), to_generate)) + if INTERRUPTING: + raise gr.Error("Interrupted.") + MODEL.set_custom_progress_callback(_progress) + + videos, wavs = _do_predictions( + [text], [melody], duration, progress=True, + top_k=topk, top_p=topp, temperature=temperature, cfg_coef=cfg_coef, + gradio_progress=progress) + if USE_DIFFUSION: + return videos[0], wavs[0], videos[1], wavs[1] + return videos[0], wavs[0], None, None + + +def toggle_audio_src(choice): + if choice == "mic": + return gr.update(source="microphone", value=None, label="Microphone") + else: + return gr.update(source="upload", value=None, label="File") + + +def toggle_diffusion(choice): + if choice == "MultiBand_Diffusion": + return [gr.update(visible=True)] * 2 + else: + return [gr.update(visible=False)] * 2 + + +def ui_full(launch_kwargs): + with gr.Blocks() as interface: + gr.Markdown( + """ + # MusicGen + This is your private demo for [MusicGen](https://github.com/facebookresearch/audiocraft), + a simple and controllable model for music generation + presented at: ["Simple and Controllable Music Generation"](https://huggingface.co/papers/2306.05284) + """ + ) + with gr.Row(): + with gr.Column(): + with gr.Row(): + text = gr.Text(label="Input Text", interactive=True) + with gr.Column(): + radio = gr.Radio(["file", "mic"], value="file", + label="Condition on a melody (optional) File or Mic") + melody = gr.Audio(sources=["upload"], type="numpy", label="File", + interactive=True, elem_id="melody-input") + with gr.Row(): + submit = gr.Button("Submit") + # Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license. + _ = gr.Button("Interrupt").click(fn=interrupt, queue=False) + with gr.Row(): + model = gr.Radio(["facebook/musicgen-melody", "facebook/musicgen-medium", "facebook/musicgen-small", + "facebook/musicgen-large", "facebook/musicgen-melody-large", + "facebook/musicgen-stereo-small", "facebook/musicgen-stereo-medium", + "facebook/musicgen-stereo-melody", "facebook/musicgen-stereo-large", + "facebook/musicgen-stereo-melody-large"], + label="Model", value="facebook/musicgen-stereo-melody", interactive=True) + model_path = gr.Text(label="Model Path (custom models)") + with gr.Row(): + decoder = gr.Radio(["Default", "MultiBand_Diffusion"], + label="Decoder", value="Default", interactive=True) + with gr.Row(): + duration = gr.Slider(minimum=1, maximum=120, value=10, label="Duration", interactive=True) + with gr.Row(): + topk = gr.Number(label="Top-k", value=250, interactive=True) + topp = gr.Number(label="Top-p", value=0, interactive=True) + temperature = gr.Number(label="Temperature", value=1.0, interactive=True) + cfg_coef = gr.Number(label="Classifier Free Guidance", value=3.0, interactive=True) + with gr.Column(): + output = gr.Video(label="Generated Music") + audio_output = gr.Audio(label="Generated Music (wav)", type='filepath') + diffusion_output = gr.Video(label="MultiBand Diffusion Decoder") + audio_diffusion = gr.Audio(label="MultiBand Diffusion Decoder (wav)", type='filepath') + submit.click(toggle_diffusion, decoder, [diffusion_output, audio_diffusion], queue=False, + show_progress=False).then(predict_full, inputs=[model, model_path, decoder, text, melody, duration, topk, topp, + temperature, cfg_coef], + outputs=[output, audio_output, diffusion_output, audio_diffusion]) + radio.change(toggle_audio_src, radio, [melody], queue=False, show_progress=False) + + gr.Examples( + fn=predict_full, + examples=[ + [ + "An 80s driving pop song with heavy drums and synth pads in the background", + "./assets/bach.mp3", + "facebook/musicgen-stereo-melody", + "Default" + ], + [ + "A cheerful country song with acoustic guitars", + "./assets/bolero_ravel.mp3", + "facebook/musicgen-stereo-melody", + "Default" + ], + [ + "90s rock song with electric guitar and heavy drums", + None, + "facebook/musicgen-stereo-medium", + "Default" + ], + [ + "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions", + "./assets/bach.mp3", + "facebook/musicgen-stereo-melody", + "Default" + ], + [ + "lofi slow bpm electro chill with organic samples", + None, + "facebook/musicgen-stereo-medium", + "Default" + ], + [ + "Punk rock with loud drum and power guitar", + None, + "facebook/musicgen-stereo-medium", + "MultiBand_Diffusion" + ], + ], + inputs=[text, melody, model, decoder], + outputs=[output] + ) + gr.Markdown( + """ + ### More details + + The model will generate a short music extract based on the description you provided. + The model can generate up to 30 seconds of audio in one pass. + + The model was trained with description from a stock music catalog, descriptions that will work best + should include some level of details on the instruments present, along with some intended use case + (e.g. adding "perfect for a commercial" can somehow help). + + Using one of the `melody` model (e.g. `musicgen-melody-*`), you can optionally provide a reference audio + from which a broad melody will be extracted. + The model will then try to follow both the description and melody provided. + For best results, the melody should be 30 seconds long (I know, the samples we provide are not...) + + It is now possible to extend the generation by feeding back the end of the previous chunk of audio. + This can take a long time, and the model might lose consistency. The model might also + decide at arbitrary positions that the song ends. + + **WARNING:** Choosing long durations will take a long time to generate (2min might take ~10min). + An overlap of 12 seconds is kept with the previously generated chunk, and 18 "new" seconds + are generated each time. + + We present 10 model variations: + 1. facebook/musicgen-melody -- a music generation model capable of generating music condition + on text and melody inputs. **Note**, you can also use text only. + 2. facebook/musicgen-small -- a 300M transformer decoder conditioned on text only. + 3. facebook/musicgen-medium -- a 1.5B transformer decoder conditioned on text only. + 4. facebook/musicgen-large -- a 3.3B transformer decoder conditioned on text only. + 5. facebook/musicgen-melody-large -- a 3.3B transformer decoder conditioned on and melody. + 6. facebook/musicgen-stereo-*: same as the previous models but fine tuned to output stereo audio. + + We also present two way of decoding the audio tokens + 1. Use the default GAN based compression model. It can suffer from artifacts especially + for crashes, snares etc. + 2. Use [MultiBand Diffusion](https://arxiv.org/abs/2308.02560). Should improve the audio quality, + at an extra computational cost. When this is selected, we provide both the GAN based decoded + audio, and the one obtained with MBD. + + See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft/blob/main/docs/MUSICGEN.md) + for more details. + """ + ) + + interface.queue().launch(**launch_kwargs) + + +def ui_batched(launch_kwargs): + with gr.Blocks() as demo: + gr.Markdown( + """ + # MusicGen + + This is the demo for [MusicGen](https://github.com/facebookresearch/audiocraft/blob/main/docs/MUSICGEN.md), + a simple and controllable model for music generation + presented at: ["Simple and Controllable Music Generation"](https://huggingface.co/papers/2306.05284). +
      +
      + Duplicate Space + for longer sequences, more control and no queue.

      + """ + ) + with gr.Row(): + with gr.Column(): + with gr.Row(): + text = gr.Text(label="Describe your music", lines=2, interactive=True) + with gr.Column(): + radio = gr.Radio(["file", "mic"], value="file", + label="Condition on a melody (optional) File or Mic") + melody = gr.Audio(source="upload", type="numpy", label="File", + interactive=True, elem_id="melody-input") + with gr.Row(): + submit = gr.Button("Generate") + with gr.Column(): + output = gr.Video(label="Generated Music") + audio_output = gr.Audio(label="Generated Music (wav)", type='filepath') + submit.click(predict_batched, inputs=[text, melody], + outputs=[output, audio_output], batch=True, max_batch_size=MAX_BATCH_SIZE) + radio.change(toggle_audio_src, radio, [melody], queue=False, show_progress=False) + gr.Examples( + fn=predict_batched, + examples=[ + [ + "An 80s driving pop song with heavy drums and synth pads in the background", + "./assets/bach.mp3", + ], + [ + "A cheerful country song with acoustic guitars", + "./assets/bolero_ravel.mp3", + ], + [ + "90s rock song with electric guitar and heavy drums", + None, + ], + [ + "a light and cheerly EDM track, with syncopated drums, aery pads, and strong emotions bpm: 130", + "./assets/bach.mp3", + ], + [ + "lofi slow bpm electro chill with organic samples", + None, + ], + ], + inputs=[text, melody], + outputs=[output] + ) + gr.Markdown(""" + ### More details + + The model will generate 15 seconds of audio based on the description you provided. + The model was trained with description from a stock music catalog, descriptions that will work best + should include some level of details on the instruments present, along with some intended use case + (e.g. adding "perfect for a commercial" can somehow help). + + You can optionally provide a reference audio from which a broad melody will be extracted. + The model will then try to follow both the description and melody provided. + For best results, the melody should be 30 seconds long (I know, the samples we provide are not...) + + You can access more control (longer generation, more models etc.) by clicking + the + Duplicate Space + (you will then need a paid GPU from HuggingFace). + If you have a GPU, you can run the gradio demo locally (click the link to our repo below for more info). + Finally, you can get a GPU for free from Google + and run the demo in [a Google Colab.](https://ai.honu.io/red/musicgen-colab). + + See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft/blob/main/docs/MUSICGEN.md) + for more details. All samples are generated with the `stereo-melody` model. + """) + + demo.queue(max_size=8 * 4).launch(**launch_kwargs) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '--listen', + type=str, + default='0.0.0.0' if 'SPACE_ID' in os.environ else '127.0.0.1', + help='IP to listen on for connections to Gradio', + ) + parser.add_argument( + '--username', type=str, default='', help='Username for authentication' + ) + parser.add_argument( + '--password', type=str, default='', help='Password for authentication' + ) + parser.add_argument( + '--server_port', + type=int, + default=0, + help='Port to run the server listener on', + ) + parser.add_argument( + '--inbrowser', action='store_true', help='Open in browser' + ) + parser.add_argument( + '--share', action='store_true', help='Share the gradio UI' + ) + + args = parser.parse_args() + + launch_kwargs = {} + launch_kwargs['server_name'] = args.listen + + if args.username and args.password: + launch_kwargs['auth'] = (args.username, args.password) + if args.server_port: + launch_kwargs['server_port'] = args.server_port + if args.inbrowser: + launch_kwargs['inbrowser'] = args.inbrowser + if args.share: + launch_kwargs['share'] = args.share + + logging.basicConfig(level=logging.INFO, stream=sys.stderr) + + # Show the interface + if IS_BATCHED: + global USE_DIFFUSION + USE_DIFFUSION = False + ui_batched(launch_kwargs) + else: + ui_full(launch_kwargs) diff --git a/demos/musicgen_demo.ipynb b/demos/musicgen_demo.ipynb new file mode 100644 index 0000000..f8deacd --- /dev/null +++ b/demos/musicgen_demo.ipynb @@ -0,0 +1,232 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MusicGen\n", + "Welcome to MusicGen's demo jupyter notebook. Here you will find a series of self-contained examples of how to use MusicGen in different settings.\n", + "\n", + "First, we start by initializing MusicGen, you can choose a model from the following selection:\n", + "1. `facebook/musicgen-small` - 300M transformer decoder.\n", + "2. `facebook/musicgen-medium` - 1.5B transformer decoder.\n", + "3. `facebook/musicgen-melody` - 1.5B transformer decoder also supporting melody conditioning.\n", + "4. `facebook/musicgen-large` - 3.3B transformer decoder.\n", + "\n", + "We will use the `facebook/musicgen-small` variant for the purpose of this demonstration." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.models import MusicGen\n", + "from audiocraft.models import MultiBandDiffusion\n", + "\n", + "USE_DIFFUSION_DECODER = False\n", + "# Using small model, better results would be obtained with `medium` or `large`.\n", + "model = MusicGen.get_pretrained('facebook/musicgen-small')\n", + "if USE_DIFFUSION_DECODER:\n", + " mbd = MultiBandDiffusion.get_mbd_musicgen()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let us configure the generation parameters. Specifically, you can control the following:\n", + "* `use_sampling` (bool, optional): use sampling if True, else do argmax decoding. Defaults to True.\n", + "* `top_k` (int, optional): top_k used for sampling. Defaults to 250.\n", + "* `top_p` (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.0.\n", + "* `temperature` (float, optional): softmax temperature parameter. Defaults to 1.0.\n", + "* `duration` (float, optional): duration of the generated waveform. Defaults to 30.0.\n", + "* `cfg_coef` (float, optional): coefficient used for classifier free guidance. Defaults to 3.0.\n", + "\n", + "When left unchanged, MusicGen will revert to its default parameters." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " use_sampling=True,\n", + " top_k=250,\n", + " duration=30\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can go ahead and start generating music using one of the following modes:\n", + "* Unconditional samples using `model.generate_unconditional`\n", + "* Music continuation using `model.generate_continuation`\n", + "* Text-conditional samples using `model.generate`\n", + "* Melody-conditional samples using `model.generate_with_chroma`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Music Continuation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "import torchaudio\n", + "import torch\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "def get_bip_bip(bip_duration=0.125, frequency=440,\n", + " duration=0.5, sample_rate=32000, device=\"cuda\"):\n", + " \"\"\"Generates a series of bip bip at the given frequency.\"\"\"\n", + " t = torch.arange(\n", + " int(duration * sample_rate), device=\"cuda\", dtype=torch.float) / sample_rate\n", + " wav = torch.cos(2 * math.pi * 440 * t)[None]\n", + " tp = (t % (2 * bip_duration)) / (2 * bip_duration)\n", + " envelope = (tp >= 0.5).float()\n", + " return wav * envelope" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Here we use a synthetic signal to prompt both the tonality and the BPM\n", + "# of the generated audio.\n", + "res = model.generate_continuation(\n", + " get_bip_bip(0.125).expand(2, -1, -1), \n", + " 32000, ['Jazz jazz and only jazz', \n", + " 'Heartful EDM with beautiful synths and chords'], \n", + " progress=True)\n", + "display_audio(res, 32000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# You can also use any audio from a file. Make sure to trim the file if it is too long!\n", + "prompt_waveform, prompt_sr = torchaudio.load(\"../assets/bach.mp3\")\n", + "prompt_duration = 2\n", + "prompt_waveform = prompt_waveform[..., :int(prompt_duration * prompt_sr)]\n", + "output = model.generate_continuation(prompt_waveform, prompt_sample_rate=prompt_sr, progress=True, return_tokens=True)\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "output = model.generate(\n", + " descriptions=[\n", + " #'80s pop track with bassy drums and synth',\n", + " #'90s rock song with loud guitars and heavy drums',\n", + " #'Progressive rock drum and bass solo',\n", + " #'Punk Rock song with loud drum and power guitar',\n", + " #'Bluesy guitar instrumental with soulful licks and a driving rhythm section',\n", + " #'Jazz Funk song with slap bass and powerful saxophone',\n", + " 'drum and bass beat with intense percussions'\n", + " ],\n", + " progress=True, return_tokens=True\n", + ")\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Melody-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "model = MusicGen.get_pretrained('facebook/musicgen-melody')\n", + "model.set_generation_params(duration=8)\n", + "\n", + "melody_waveform, sr = torchaudio.load(\"../assets/bach.mp3\")\n", + "melody_waveform = melody_waveform.unsqueeze(0).repeat(2, 1, 1)\n", + "output = model.generate_with_chroma(\n", + " descriptions=[\n", + " '80s pop track with bassy drums and synth',\n", + " '90s rock song with loud guitars and heavy drums',\n", + " ],\n", + " melody_wavs=melody_waveform,\n", + " melody_sample_rate=sr,\n", + " progress=True, return_tokens=True\n", + ")\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "vscode": { + "interpreter": { + "hash": "b02c911f9b3627d505ea4a19966a915ef21f28afb50dbf6b2115072d27c69103" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/demos/musicgen_style_app.py b/demos/musicgen_style_app.py new file mode 100644 index 0000000..42cc33a --- /dev/null +++ b/demos/musicgen_style_app.py @@ -0,0 +1,380 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. + +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +# Updated to account for UI changes from https://github.com/rkfg/audiocraft/blob/long/app.py +# also released under the MIT license. + +import argparse +from concurrent.futures import ProcessPoolExecutor +import logging +import os +from pathlib import Path +import subprocess as sp +import sys +from tempfile import NamedTemporaryFile +import time +import typing as tp +import warnings + +from einops import rearrange +import torch +import gradio as gr + +from audiocraft.data.audio_utils import convert_audio +from audiocraft.data.audio import audio_write +from audiocraft.models import MusicGen, MultiBandDiffusion + + +MODEL = None # Last used model +SPACE_ID = os.environ.get('SPACE_ID', '') +INTERRUPTING = False +MBD = None +# We have to wrap subprocess call to clean a bit the log when using gr.make_waveform +_old_call = sp.call + + +def _call_nostderr(*args, **kwargs): + # Avoid ffmpeg vomiting on the logs. + kwargs['stderr'] = sp.DEVNULL + kwargs['stdout'] = sp.DEVNULL + _old_call(*args, **kwargs) + + +sp.call = _call_nostderr +# Preallocating the pool of processes. +pool = ProcessPoolExecutor(4) +pool.__enter__() + + +def interrupt(): + global INTERRUPTING + INTERRUPTING = True + + +class FileCleaner: + def __init__(self, file_lifetime: float = 3600): + self.file_lifetime = file_lifetime + self.files = [] + + def add(self, path: tp.Union[str, Path]): + self._cleanup() + self.files.append((time.time(), Path(path))) + + def _cleanup(self): + now = time.time() + for time_added, path in list(self.files): + if now - time_added > self.file_lifetime: + if path.exists(): + path.unlink() + self.files.pop(0) + else: + break + +file_cleaner = FileCleaner() + + +def make_waveform(*args, **kwargs): + # Further remove some warnings. + be = time.time() + with warnings.catch_warnings(): + warnings.simplefilter('ignore') + out = gr.make_waveform(*args, **kwargs) + print("Make a video took", time.time() - be) + return out + + +def load_model(version='facebook/musicgen-style'): + global MODEL + print("Loading model", version) + if MODEL is None or MODEL.name != version: + # Clear PyTorch CUDA cache and delete model + del MODEL + torch.cuda.empty_cache() + MODEL = None # in case loading would crash + MODEL = MusicGen.get_pretrained(version) + + +def load_diffusion(): + global MBD + if MBD is None: + print("loading MBD") + MBD = MultiBandDiffusion.get_mbd_musicgen() + + +def _do_predictions(texts, melodies, duration, top_k, top_p, temperature, cfg_coef, cfg_coef_beta, eval_q, excerpt_length, progress=False, gradio_progress=None): + MODEL.set_generation_params(duration=duration, top_k=top_k, top_p=top_p, temperature=temperature, cfg_coef=cfg_coef, cfg_coef_beta=cfg_coef_beta) + MODEL.set_style_conditioner_params(eval_q=eval_q, excerpt_length=excerpt_length) + print("new batch", len(texts), texts, [None if m is None else (m[0], m[1].shape) for m in melodies]) + be = time.time() + processed_melodies = [] + target_sr = 32000 + target_ac = 1 + for melody in melodies: + if melody is None: + processed_melodies.append(None) + else: + sr, melody = melody[0], torch.from_numpy(melody[1]).to(MODEL.device).float().t() + if melody.dim() == 1: + melody = melody[None] + melody = melody[..., :int(sr * duration)] + melody = convert_audio(melody, sr, target_sr, target_ac) + processed_melodies.append(melody) + + try: + if any(m is not None for m in processed_melodies): + outputs = MODEL.generate_with_chroma( + descriptions=texts, + melody_wavs=processed_melodies, + melody_sample_rate=target_sr, + progress=progress, + return_tokens=USE_DIFFUSION + ) + else: + outputs = MODEL.generate(texts, progress=progress, return_tokens=USE_DIFFUSION) + except RuntimeError as e: + raise gr.Error("Error while generating " + e.args[0]) + if USE_DIFFUSION: + if gradio_progress is not None: + gradio_progress(1, desc='Running MultiBandDiffusion...') + tokens = outputs[1] + outputs_diffusion = MBD.tokens_to_wav(tokens) + outputs = torch.cat([outputs[0], outputs_diffusion], dim=0) + outputs = outputs.detach().cpu().float() + pending_videos = [] + out_wavs = [] + for output in outputs: + with NamedTemporaryFile("wb", suffix=".wav", delete=False) as file: + audio_write( + file.name, output, MODEL.sample_rate, strategy="loudness", + loudness_headroom_db=16, loudness_compressor=True, add_suffix=False) + pending_videos.append(pool.submit(make_waveform, file.name)) + out_wavs.append(file.name) + file_cleaner.add(file.name) + out_videos = [pending_video.result() for pending_video in pending_videos] + for video in out_videos: + file_cleaner.add(video) + print("batch finished", len(texts), time.time() - be) + print("Tempfiles currently stored: ", len(file_cleaner.files)) + return out_videos, out_wavs + + +def predict_full(model, model_path, decoder, text, melody, duration, topk, topp, temperature, cfg_coef, double_cfg, cfg_coef_beta, eval_q, excerpt_length, progress=gr.Progress()): + global INTERRUPTING + global USE_DIFFUSION + INTERRUPTING = False + progress(0, desc="Loading model...") + model_path = model_path.strip() + if model_path: + if not Path(model_path).exists(): + raise gr.Error(f"Model path {model_path} doesn't exist.") + if not Path(model_path).is_dir(): + raise gr.Error(f"Model path {model_path} must be a folder containing " + "state_dict.bin and compression_state_dict_.bin.") + model = model_path + if temperature < 0: + raise gr.Error("Temperature must be >= 0.") + if topk < 0: + raise gr.Error("Topk must be non-negative.") + if topp < 0: + raise gr.Error("Topp must be non-negative.") + if eval_q < 1 or eval_q > 6: + raise gr.Error("eval_q must be an integer between 1 and 6 included.") + if excerpt_length > 4.5: + raise gr.Error("excerpt_length must be <= 4.5 seconds") + + topk = int(topk) + eval_q = int(eval_q) + if decoder == "MultiBand_Diffusion": + USE_DIFFUSION = True + progress(0, desc="Loading diffusion model...") + load_diffusion() + else: + USE_DIFFUSION = False + load_model(model) + + if double_cfg != "Yes": + cfg_coef_beta = None + max_generated = 0 + + def _progress(generated, to_generate): + nonlocal max_generated + max_generated = max(generated, max_generated) + progress((min(max_generated, to_generate), to_generate)) + if INTERRUPTING: + raise gr.Error("Interrupted.") + MODEL.set_custom_progress_callback(_progress) + + videos, wavs = _do_predictions( + [text], [melody], duration, progress=True, + top_k=topk, top_p=topp, temperature=temperature, cfg_coef=cfg_coef, + cfg_coef_beta=cfg_coef_beta, eval_q=eval_q, excerpt_length=excerpt_length, + gradio_progress=progress) + if USE_DIFFUSION: + return videos[0], wavs[0], videos[1], wavs[1] + return videos[0], wavs[0], None, None + + +def toggle_audio_src(choice): + if choice == "mic": + return gr.update(source="microphone", value=None, label="Microphone") + else: + return gr.update(source="upload", value=None, label="File") + + +def toggle_diffusion(choice): + if choice == "MultiBand_Diffusion": + return [gr.update(visible=True)] * 2 + else: + return [gr.update(visible=False)] * 2 + + +def ui_full(launch_kwargs): + with gr.Blocks() as interface: + gr.Markdown( + """ + # MusicGen-Style + This is your private demo for [MusicGen-Style](https://github.com/facebookresearch/audiocraft), + a simple and controllable model for music generation + presented at: ["Audio Conditioning for Music Generation via Discrete Bottleneck Features"](https://arxiv.org/abs/2407.12563) + """ + ) + with gr.Row(): + with gr.Column(): + with gr.Row(): + text = gr.Text(label="Input Text", interactive=True) + with gr.Column(): + radio = gr.Radio(["file", "mic"], value="file", + label="Condition on a melody (optional) File or Mic") + melody = gr.Audio(sources=["upload"], type="numpy", label="File", + interactive=True, elem_id="melody-input") + with gr.Row(): + submit = gr.Button("Submit") + # Adapted from https://github.com/rkfg/audiocraft/blob/long/app.py, MIT license. + _ = gr.Button("Interrupt").click(fn=interrupt, queue=False) + with gr.Row(): + model = gr.Radio(["facebook/musicgen-style"], + label="Model", value="facebook/musicgen-style", interactive=True) + model_path = gr.Text(label="Model Path (custom models)") + with gr.Row(): + decoder = gr.Radio(["Default", "MultiBand_Diffusion"], + label="Decoder", value="Default", interactive=True) + with gr.Row(): + duration = gr.Slider(minimum=1, maximum=120, value=10, label="Duration", interactive=True) + eval_q = gr.Slider(minimum=1, maximum=6, value=3, step=1, label="Number of RVQ in the style conditioner", interactive=True) + with gr.Row(): + topk = gr.Number(label="Top-k", value=250, interactive=True) + topp = gr.Number(label="Top-p", value=0, interactive=True) + temperature = gr.Number(label="Temperature", value=1.0, interactive=True) + cfg_coef = gr.Number(label="CFG alpha", value=3.0, interactive=True) + double_cfg = gr.Radio(["Yes", "No"], + label="Use Double Classifier Free Guidance (if No, CFG beta is useless). Only use it if you have input text and a melody file.", value="Yes", interactive=True) + cfg_coef_beta = gr.Number(label="CFG beta (double CFG)", value=5.0, interactive=True) + excerpt_length = gr.Number(label="length used of the conditioning (has to be <= 4.5 seconds)", value=3.0, interactive=True) + with gr.Column(): + output = gr.Video(label="Generated Music") + audio_output = gr.Audio(label="Generated Music (wav)", type='filepath') + diffusion_output = gr.Video(label="MultiBand Diffusion Decoder") + audio_diffusion = gr.Audio(label="MultiBand Diffusion Decoder (wav)", type='filepath') + submit.click(toggle_diffusion, decoder, [diffusion_output, audio_diffusion], queue=False, + show_progress=False).then(predict_full, inputs=[model, model_path, decoder, text, melody, duration, topk, topp, + temperature, cfg_coef, double_cfg, cfg_coef_beta, eval_q, excerpt_length], + outputs=[output, audio_output, diffusion_output, audio_diffusion]) + radio.change(toggle_audio_src, radio, [melody], queue=False, show_progress=False) + + gr.Examples( + fn=predict_full, + examples=[ + [ + "80s New Wave with synthesizer", + "./assets/electronic.mp3", + "facebook/musicgen-style", + "Default" + ], + ], + inputs=[text, melody, model, decoder], + outputs=[output] + ) + gr.Markdown( + """ + ### More details + + The model can generate a short music extract based on 3 different input setups: + 1) A textual description. In that case we recommend to use simple (not double!) classifier free guidance with the CFG coef = 3. + + 2) A audio excerpt that it use for style conditioning. The audio shouldn't be longer that 4.5 seconds. If so, + a random subsequence will be subsample with the length being chosen by the user. We recommend this length to be between 1.5 and 4.5 seconds. + We recommend simple CFG with the coef = 3. + + 3) Both a textual description and an audio input. In that case the user should use double CFG with alpha=3 and beta=4. Then, if the model + adheres too much to the text description, the user should lower beta. If the model adheres too much to the style, the user can augment beta. + The model can generate up to 30 seconds of audio in one pass. + + The model was trained with description from a stock music catalog, descriptions that will work best + should include some level of details on the instruments present, along with some intended use case + (e.g. adding "perfect for a commercial" can somehow help). + + We also present two way of decoding the audio tokens + 1. Use the default GAN based compression model. It can suffer from artifacts especially + for crashes, snares etc. + 2. Use [MultiBand Diffusion](https://arxiv.org/abs/2308.02560). Should improve the audio quality, + at an extra computational cost. When this is selected, we provide both the GAN based decoded + audio, and the one obtained with MBD. + + See [github.com/facebookresearch/audiocraft](https://github.com/facebookresearch/audiocraft/blob/main/docs/MUSICGEN_STYLE.md) + for more details. + """ + ) + + interface.queue().launch(**launch_kwargs) + + + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + '--listen', + type=str, + default='0.0.0.0' if 'SPACE_ID' in os.environ else '127.0.0.1', + help='IP to listen on for connections to Gradio', + ) + parser.add_argument( + '--username', type=str, default='', help='Username for authentication' + ) + parser.add_argument( + '--password', type=str, default='', help='Password for authentication' + ) + parser.add_argument( + '--server_port', + type=int, + default=0, + help='Port to run the server listener on', + ) + parser.add_argument( + '--inbrowser', action='store_true', help='Open in browser' + ) + parser.add_argument( + '--share', action='store_true', help='Share the gradio UI' + ) + + args = parser.parse_args() + + launch_kwargs = {} + launch_kwargs['server_name'] = args.listen + + if args.username and args.password: + launch_kwargs['auth'] = (args.username, args.password) + if args.server_port: + launch_kwargs['server_port'] = args.server_port + if args.inbrowser: + launch_kwargs['inbrowser'] = args.inbrowser + if args.share: + launch_kwargs['share'] = args.share + + logging.basicConfig(level=logging.INFO, stream=sys.stderr) + + # Show the interface + ui_full(launch_kwargs) \ No newline at end of file diff --git a/demos/musicgen_style_demo.ipynb b/demos/musicgen_style_demo.ipynb new file mode 100644 index 0000000..3ec689c --- /dev/null +++ b/demos/musicgen_style_demo.ipynb @@ -0,0 +1,245 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# MusicGen-Style\n", + "Welcome to MusicGen-Style's demo jupyter notebook. Here you will find a series of self-contained examples of how to use MusicGen-Style in different settings.\n", + "\n", + "First, we start by initializing MusicGen-Style." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.models import MusicGen\n", + "from audiocraft.models import MultiBandDiffusion\n", + "\n", + "USE_DIFFUSION_DECODER = False\n", + "\n", + "model = MusicGen.get_pretrained('facebook/musicgen-style')\n", + "if USE_DIFFUSION_DECODER:\n", + " mbd = MultiBandDiffusion.get_mbd_musicgen()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let us configure the generation parameters. Specifically, you can control the following:\n", + "* `use_sampling` (bool, optional): use sampling if True, else do argmax decoding. Defaults to True.\n", + "* `top_k` (int, optional): top_k used for sampling. Defaults to 250.\n", + "* `top_p` (float, optional): top_p used for sampling, when set to 0 top_k is used. Defaults to 0.0.\n", + "* `temperature` (float, optional): softmax temperature parameter. Defaults to 1.0.\n", + "* `duration` (float, optional): duration of the generated waveform. Defaults to 30.0.\n", + "* `cfg_coef` (float, optional): coefficient used for classifier free guidance. Defaults to 3.0.\n", + "* `cfg_coef_beta` (float, optional): If not None, we use double CFG. cfg_coef_beta is the parameter that pushes the text. Defaults to None, user should start at 5.\n", + " If the generated music adheres to much to the text, the user should reduce this parameter. If the music adheres too much to the style conditioning, \n", + " the user should increase it\n", + "\n", + "When left unchanged, MusicGen will revert to its default parameters.\n", + "\n", + "These are the conditioner parameters for the style conditioner:\n", + "* `eval_q` (int): integer between 1 and 6 included that tells how many quantizers are used in the RVQ bottleneck\n", + " of the style conditioner. The higher eval_q is, the more style information passes through the model.\n", + "* `excerpt_length` (float): float between 1.5 and 4.5 that indicates which length is taken from the audio \n", + " conditioning to extract style. \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " use_sampling=True,\n", + " top_k=250,\n", + " duration=30\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model can perform text-to-music, style-to-music and text-and-style-to-music.\n", + "* Text-to-music can be done using `model.generate`, or `model.generate_with_chroma` with the wav condition being None. \n", + "* Style-to-music and Text-and-Style-to-music can be done using `model.generate_with_chroma`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-to-Music" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "model.set_generation_params(\n", + " duration=8, # generate 8 seconds, can go up to 30\n", + " use_sampling=True, \n", + " top_k=250,\n", + " cfg_coef=3., # Classifier Free Guidance coefficient \n", + " cfg_coef_beta=None, # double CFG is only useful for text-and-style conditioning\n", + ")\n", + "\n", + "output = model.generate(\n", + " descriptions=[\n", + " '80s pop track with bassy drums and synth',\n", + " '90s rock song with loud guitars and heavy drums',\n", + " 'Progressive rock drum and bass solo',\n", + " 'Punk Rock song with loud drum and power guitar',\n", + " 'Bluesy guitar instrumental with soulful licks and a driving rhythm section',\n", + " 'Jazz Funk song with slap bass and powerful saxophone',\n", + " 'drum and bass beat with intense percussions'\n", + " ],\n", + " progress=True, return_tokens=True\n", + ")\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Style-to-Music\n", + "For Style-to-Music, we don't need double CFG. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "model.set_generation_params(\n", + " duration=8, # generate 8 seconds, can go up to 30\n", + " use_sampling=True, \n", + " top_k=250,\n", + " cfg_coef=3., # Classifier Free Guidance coefficient \n", + " cfg_coef_beta=None, # double CFG is only useful for text-and-style conditioning\n", + ")\n", + "\n", + "model.set_style_conditioner_params(\n", + " eval_q=1, # integer between 1 and 6\n", + " # eval_q is the level of quantization that passes\n", + " # through the conditioner. When low, the models adheres less to the \n", + " # audio conditioning\n", + " excerpt_length=3., # the length in seconds that is taken by the model in the provided excerpt\n", + " )\n", + "\n", + "melody_waveform, sr = torchaudio.load(\"../assets/electronic.mp3\")\n", + "melody_waveform = melody_waveform.unsqueeze(0).repeat(2, 1, 1)\n", + "output = model.generate_with_chroma(\n", + " descriptions=[None, None], \n", + " melody_wavs=melody_waveform,\n", + " melody_sample_rate=sr,\n", + " progress=True, return_tokens=True\n", + ")\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-and-Style-to-Music\n", + "For Text-and-Style-to-Music, if we use simple classifier free guidance, the models tends to ignore the text conditioning. We then, introduce double classifier free guidance \n", + "$$l_{\\text{double CFG}} = l_{\\emptyset} + \\alpha [l_{style} + \\beta(l_{text, style} - l_{style}) - l_{\\emptyset}]$$\n", + "\n", + "For $\\beta=1$ we retrieve classic CFG but if $\\beta > 1$ we boost the text condition" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "model.set_generation_params(\n", + " duration=8, # generate 8 seconds, can go up to 30\n", + " use_sampling=True, \n", + " top_k=250,\n", + " cfg_coef=3., # Classifier Free Guidance coefficient \n", + " cfg_coef_beta=5., # double CFG is necessary for text-and-style conditioning\n", + " # Beta in the double CFG formula. between 1 and 9. When set to 1 \n", + " # it is equivalent to normal CFG. \n", + ")\n", + "\n", + "model.set_style_conditioner_params(\n", + " eval_q=1, # integer between 1 and 6\n", + " # eval_q is the level of quantization that passes\n", + " # through the conditioner. When low, the models adheres less to the \n", + " # audio conditioning\n", + " excerpt_length=3., # the length in seconds that is taken by the model in the provided excerpt\n", + " )\n", + "\n", + "melody_waveform, sr = torchaudio.load(\"../assets/electronic.mp3\")\n", + "melody_waveform = melody_waveform.unsqueeze(0).repeat(3, 1, 1)\n", + "\n", + "descriptions = [\"8-bit old video game music\", \"Chill lofi remix\", \"80s New wave with synthesizer\"]\n", + "\n", + "output = model.generate_with_chroma(\n", + " descriptions=descriptions,\n", + " melody_wavs=melody_waveform,\n", + " melody_sample_rate=sr,\n", + " progress=True, return_tokens=True\n", + ")\n", + "display_audio(output[0], sample_rate=32000)\n", + "if USE_DIFFUSION_DECODER:\n", + " out_diffusion = mbd.tokens_to_wav(output[1])\n", + " display_audio(out_diffusion, sample_rate=32000)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + }, + "vscode": { + "interpreter": { + "hash": "b02c911f9b3627d505ea4a19966a915ef21f28afb50dbf6b2115072d27c69103" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/AUDIOGEN.md b/docs/AUDIOGEN.md new file mode 100644 index 0000000..a0ff481 --- /dev/null +++ b/docs/AUDIOGEN.md @@ -0,0 +1,158 @@ +# AudioGen: Textually-guided audio generation + +AudioCraft provides the code and a model re-implementing AudioGen, a [textually-guided audio generation][audiogen_arxiv] +model that performs text-to-sound generation. + +The provided AudioGen reimplementation follows the LM model architecture introduced in [MusicGen][musicgen_arxiv] +and is a single stage auto-regressive Transformer model trained over a 16kHz +EnCodec tokenizer with 4 codebooks sampled at 50 Hz. +This model variant reaches similar audio quality than the original implementation introduced in the AudioGen publication +while providing faster generation speed given the smaller frame rate. + +**Important note:** The provided models are NOT the original models used to report numbers in the +[AudioGen publication][audiogen_arxiv]. Refer to the model card to learn more about architectural changes. + +Listen to samples from the **original AudioGen implementation** in our [sample page][audiogen_samples]. + + +## Model Card + +See [the model card](../model_cards/AUDIOGEN_MODEL_CARD.md). + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + +AudioCraft requires a GPU with at least 16 GB of memory for running inference with the medium-sized models (~1.5B parameters). + +## API and usage + +We provide a simple API and 1 pre-trained models for AudioGen: + +`facebook/audiogen-medium`: 1.5B model, text to sound - [🤗 Hub](https://huggingface.co/facebook/audiogen-medium) + +You can play with AudioGen by running the jupyter notebook at [`demos/audiogen_demo.ipynb`](../demos/audiogen_demo.ipynb) locally (if you have a GPU). + +See after a quick example for using the API. + +```python +import torchaudio +from audiocraft.models import AudioGen +from audiocraft.data.audio import audio_write + +model = AudioGen.get_pretrained('facebook/audiogen-medium') +model.set_generation_params(duration=5) # generate 5 seconds. +descriptions = ['dog barking', 'sirene of an emergency vehicle', 'footsteps in a corridor'] +wav = model.generate(descriptions) # generates 3 samples. + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +## Training + +The [AudioGenSolver](../audiocraft/solvers/audiogen.py) implements the AudioGen's training pipeline +used to develop the released model. Note that this may not fully reproduce the results presented in the paper. +Similarly to MusicGen, it defines an autoregressive language modeling task over multiple streams of +discrete tokens extracted from a pre-trained EnCodec model (see [EnCodec documentation](./ENCODEC.md) +for more details on how to train such model) with dataset-specific changes for environmental sound +processing. + +Note that **we do NOT provide any of the datasets** used for training AudioGen. + +### Example configurations and grids + +We provide configurations to reproduce the released models and our research. +AudioGen solvers configuration are available in [config/solver/audiogen](../config/solver/audiogen). +The base training configuration used for the released models is the following: +[`solver=audiogen/audiogen_base_16khz`](../config/solver/audiogen/audiogen_base_16khz.yaml) + +Please find some example grids to train AudioGen at +[audiocraft/grids/audiogen](../audiocraft/grids/audiogen/). + +```shell +# text-to-sound +dora grid audiogen.audiogen_base_16khz +``` + +### Sound dataset and metadata + +AudioGen's underlying dataset is an AudioDataset augmented with description metadata. +The AudioGen dataset implementation expects the metadata to be available as `.json` files +at the same location as the audio files or through specified external folder. +Learn more in the [datasets section](./DATASETS.md). + +### Evaluation stage + +By default, evaluation stage is also computing the cross-entropy and the perplexity over the +evaluation dataset. Indeed the objective metrics used for evaluation can be costly to run +or require some extra dependencies. Please refer to the [metrics documentation](./METRICS.md) +for more details on the requirements for each metric. + +We provide an off-the-shelf configuration to enable running the objective metrics +for audio generation in +[config/solver/audiogen/evaluation/objective_eval](../config/solver/audiogen/evaluation/objective_eval.yaml). + +One can then activate evaluation the following way: +```shell +# using the configuration +dora run solver=audiogen/debug solver/audiogen/evaluation=objective_eval +# specifying each of the fields, e.g. to activate KL computation +dora run solver=audiogen/debug evaluate.metrics.kld=true +``` + +See [an example evaluation grid](../audiocraft/grids/audiogen/audiogen_pretrained_16khz_eval.py). + +### Generation stage + +The generation stage allows to generate samples conditionally and/or unconditionally and to perform +audio continuation (from a prompt). We currently support greedy sampling (argmax), sampling +from softmax with a given temperature, top-K and top-P (nucleus) sampling. The number of samples +generated and the batch size used are controlled by the `dataset.generate` configuration +while the other generation parameters are defined in `generate.lm`. + +```shell +# control sampling parameters +dora run solver=audiogen/debug generate.lm.gen_duration=5 generate.lm.use_sampling=true generate.lm.top_k=15 +``` + +## More information + +Refer to [MusicGen's instructions](./MUSICGEN.md). + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + + +## Citation + +AudioGen +``` +@article{kreuk2022audiogen, + title={Audiogen: Textually guided audio generation}, + author={Kreuk, Felix and Synnaeve, Gabriel and Polyak, Adam and Singer, Uriel and D{\'e}fossez, Alexandre and Copet, Jade and Parikh, Devi and Taigman, Yaniv and Adi, Yossi}, + journal={arXiv preprint arXiv:2209.15352}, + year={2022} +} +``` + +MusicGen +``` +@article{copet2023simple, + title={Simple and Controllable Music Generation}, + author={Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez}, + year={2023}, + journal={arXiv preprint arXiv:2306.05284}, +} +``` + +## License + +See license information in the [model card](../model_cards/AUDIOGEN_MODEL_CARD.md). + +[audiogen_arxiv]: https://arxiv.org/abs/2209.15352 +[musicgen_arxiv]: https://arxiv.org/abs/2306.05284 +[audiogen_samples]: https://felixkreuk.github.io/audiogen/ diff --git a/docs/CONDITIONING.md b/docs/CONDITIONING.md new file mode 100644 index 0000000..35ab598 --- /dev/null +++ b/docs/CONDITIONING.md @@ -0,0 +1,146 @@ +# AudioCraft conditioning modules + +AudioCraft provides a +[modular implementation of conditioning modules](../audiocraft/modules/conditioners.py) +that can be used with the language model to condition the generation. +The codebase was developed in order to easily extend the set of modules +currently supported to easily develop new ways of controlling the generation. + + +## Conditioning methods + +For now, we support 3 main types of conditioning within AudioCraft: +* Text-based conditioning methods +* Waveform-based conditioning methods +* Joint embedding conditioning methods for text and audio projected in a shared latent space. + +The Language Model relies on 2 core components that handle processing information: +* The `ConditionProvider` class, that maps metadata to processed conditions, leveraging +all the defined conditioners for the given task. +* The `ConditionFuser` class, that takes preprocessed conditions and properly fuse the +conditioning embedding to the language model inputs following a given fusing strategy. + +Different conditioners (for text, waveform, joint embeddings...) are provided as torch +modules in AudioCraft and are used internally in the language model to process the +conditioning signals and feed them to the language model. + + +## Core concepts + +### Conditioners + +The `BaseConditioner` torch module is the base implementation for all conditioners in AudioCraft. + +Each conditioner is expected to implement 2 methods: +* The `tokenize` method that is used as a preprocessing method that contains all processing +that can lead to synchronization points (e.g. BPE tokenization with transfer to the GPU). +The output of the tokenize method will then be used to feed the forward method. +* The `forward` method that takes the output of the tokenize method and contains the core computation +to obtain the conditioning embedding along with a mask indicating valid indices (e.g. padding tokens). + +### ConditionProvider + +The ConditionProvider prepares and provides conditions given a dictionary of conditioners. + +Conditioners are specified as a dictionary of attributes and the corresponding conditioner +providing the processing logic for the given attribute. + +Similarly to the conditioners, the condition provider works in two steps to avoid synchronization points: +* A `tokenize` method that takes a list of conditioning attributes for the batch, +and runs all tokenize steps for the set of conditioners. +* A `forward` method that takes the output of the tokenize step and runs all the forward steps +for the set of conditioners. + +The list of conditioning attributes is passed as a list of `ConditioningAttributes` +that is presented just below. + +### ConditionFuser + +Once all conditioning signals have been extracted and processed by the `ConditionProvider` +as dense embeddings, they remain to be passed to the language model along with the original +language model inputs. + +The `ConditionFuser` handles specifically the logic to combine the different conditions +to the actual model input, supporting different strategies to combine them. + +One can therefore define different strategies to combine or fuse the condition to the input, in particular: +* Prepending the conditioning signal to the input with the `prepend` strategy, +* Summing the conditioning signal to the input with the `sum` strategy, +* Combining the conditioning relying on a cross-attention mechanism with the `cross` strategy, +* Using input interpolation with the `input_interpolate` strategy. + +### SegmentWithAttributes and ConditioningAttributes: From metadata to conditions + +The `ConditioningAttributes` dataclass is the base class for metadata +containing all attributes used for conditioning the language model. + +It currently supports the following types of attributes: +* Text conditioning attributes: Dictionary of textual attributes used for text-conditioning. +* Wav conditioning attributes: Dictionary of waveform attributes used for waveform-based +conditioning such as the chroma conditioning. +* JointEmbed conditioning attributes: Dictionary of text and waveform attributes +that are expected to be represented in a shared latent space. + +These different types of attributes are the attributes that are processed +by the different conditioners. + +`ConditioningAttributes` are extracted from metadata loaded along the audio in the datasets, +provided that the metadata used by the dataset implements the `SegmentWithAttributes` abstraction. + +All metadata-enabled datasets to use for conditioning in AudioCraft inherits +the [`audiocraft.data.info_dataset.InfoAudioDataset`](../audiocraft/data/info_audio_dataset.py) class +and the corresponding metadata inherits and implements the `SegmentWithAttributes` abstraction. +Refer to the [`audiocraft.data.music_dataset.MusicAudioDataset`](../audiocraft/data/music_dataset.py) +class as an example. + + +## Available conditioners + +### Text conditioners + +All text conditioners are expected to inherit from the `TextConditioner` class. + +AudioCraft currently provides two text conditioners: +* The `LUTConditioner` that relies on look-up-table of embeddings learned at train time, +and relying on either no tokenizer or a spacy tokenizer. This conditioner is particularly +useful for simple experiments and categorical labels. +* The `T5Conditioner` that relies on a +[pre-trained T5 model](https://huggingface.co/docs/transformers/model_doc/t5) +frozen or fine-tuned at train time to extract the text embeddings. + +### Waveform conditioners + +All waveform conditioners are expected to inherit from the `WaveformConditioner` class and +consist of a conditioning method that takes a waveform as input. The waveform conditioner +must implement the logic to extract the embedding from the waveform and define the downsampling +factor from the waveform to the resulting embedding. + +The `ChromaStemConditioner` conditioner is a waveform conditioner for the chroma features +conditioning used by MusicGen. It takes a given waveform, extracts relevant stems for melody +(namely all non drums and bass stems) using a +[pre-trained Demucs model](https://github.com/facebookresearch/demucs) +and then extracts the chromagram bins from the remaining mix of stems. + +### Joint embeddings conditioners + +We finally provide support for conditioning based on joint text and audio embeddings through +the `JointEmbeddingConditioner` class and the `CLAPEmbeddingConditioner` that implements such +a conditioning method relying on a [pretrained CLAP model](https://github.com/LAION-AI/CLAP). + +## Classifier Free Guidance + +We provide a Classifier Free Guidance implementation in AudioCraft. With the classifier free +guidance dropout, all attributes are dropped with the same probability. + +## Attribute Dropout + +We further provide an attribute dropout strategy. Unlike the classifier free guidance dropout, +the attribute dropout drops given attributes with a defined probability, allowing the model +not to expect all conditioning signals to be provided at once. + +## Faster computation of conditions + +Conditioners that require some heavy computation on the waveform can be cached, in particular +the `ChromaStemConditioner` or `CLAPEmbeddingConditioner`. You just need to provide the +`cache_path` parameter to them. We recommend running dummy jobs for filling up the cache quickly. +An example is provided in the [musicgen.musicgen_melody_32khz grid](../audiocraft/grids/musicgen/musicgen_melody_32khz.py). \ No newline at end of file diff --git a/docs/DATASETS.md b/docs/DATASETS.md new file mode 100644 index 0000000..b0890c0 --- /dev/null +++ b/docs/DATASETS.md @@ -0,0 +1,82 @@ +# AudioCraft datasets + +Our dataset manifest files consist in 1-json-per-line files, potentially gzipped, +as `data.jsons` or `data.jsons.gz` files. This JSON contains the path to the audio +file and associated metadata. The manifest files are then provided in the configuration, +as `datasource` sub-configuration. A datasource contains the pointers to the paths of +the manifest files for each AudioCraft stage (or split) along with additional information +(eg. maximum sample rate to use against this dataset). All the datasources are under the +`dset` group config, with a dedicated configuration file for each dataset. + +## Getting started + +### Example + +See the provided example in the directory that provides a manifest to use the example dataset +provided under the [dataset folder](../dataset/example). + +The manifest files are stored in the [egs folder](../egs/example). + +```shell +egs/ + example/data.json.gz +``` + +A datasource is defined in the configuration folder, in the dset group config for this dataset +at [config/dset/audio/example](../config/dset/audio/example.yaml): + +```shell +# @package __global__ + +datasource: + max_sample_rate: 44100 + max_channels: 2 + + train: egs/example + valid: egs/example + evaluate: egs/example + generate: egs/example +``` + +For proper dataset, one should create manifest for each of the splits and specify the correct path +to the given manifest in the datasource for each split. + +Then, using a dataset through the configuration can be done pointing to the +corresponding dataset configuration: +```shell +dset= # should match the yaml file name + +# for example +dset=audio/example +``` + +### Creating manifest files + +Assuming you want to create manifest files to load with AudioCraft's AudioDataset, you can use +the following command to create new manifest files from a given folder containing audio files: + +```shell +python -m audiocraft.data.audio_dataset egs/my_dataset/my_dataset_split/data.jsonl.gz + +# For example to generate the manifest for dset=audio/example +# note: we don't use any split and we don't compress the jsonl file for this dummy example +python -m audiocraft.data.audio_dataset dataset/example egs/example/data.jsonl + +# More info with: python -m audiocraft.data.audio_dataset --help +``` + +## Additional information + +### MusicDataset and metadata + +The MusicDataset is an AudioDataset with additional metadata. The MusicDataset expects +the additional metadata to be stored in a JSON file that has the same path as the corresponding +audio file, but with a `.json` extension. + +### SoundDataset and metadata + +The SoundDataset is an AudioDataset with descriptions metadata. Similarly to the MusicDataset, +the SoundDataset expects the additional metadata to be stored in a JSON file that has the same +path as the corresponding audio file, but with a `.json` extension. Additionally, the SoundDataset +supports an additional parameter pointing to an extra folder `external_metadata_source` containing +all the JSON metadata files given they have the same filename as the audio file. diff --git a/docs/ENCODEC.md b/docs/ENCODEC.md new file mode 100644 index 0000000..6b5e10e --- /dev/null +++ b/docs/ENCODEC.md @@ -0,0 +1,180 @@ +# EnCodec: High Fidelity Neural Audio Compression + +AudioCraft provides the training code for EnCodec, a state-of-the-art deep learning +based audio codec supporting both mono and stereo audio, presented in the +[High Fidelity Neural Audio Compression][arxiv] paper. +Check out our [sample page][encodec_samples]. + +## Original EnCodec models + +The EnCodec models presented in High Fidelity Neural Audio Compression can be accessed +and used with the [EnCodec repository](https://github.com/facebookresearch/encodec). + +**Note**: We do not guarantee compatibility between the AudioCraft and EnCodec codebases +and released checkpoints at this stage. + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + + +## Training + +The [CompressionSolver](../audiocraft/solvers/compression.py) implements the audio reconstruction +task to train an EnCodec model. Specifically, it trains an encoder-decoder with a quantization +bottleneck - a SEANet encoder-decoder with Residual Vector Quantization bottleneck for EnCodec - +using a combination of objective and perceptual losses in the forms of discriminators. + +The default configuration matches a causal EnCodec training at a single bandwidth. + +### Example configuration and grids + +We provide sample configuration and grids for training EnCodec models. + +The compression configuration are defined in +[config/solver/compression](../config/solver/compression). + +The example grids are available at +[audiocraft/grids/compression](../audiocraft/grids/compression). + +```shell +# base causal encodec on monophonic audio sampled at 24 khz +dora grid compression.encodec_base_24khz +# encodec model used for MusicGen on monophonic audio sampled at 32 khz +dora grid compression.encodec_musicgen_32khz +``` + +### Training and validation stages + +The model is trained using a combination of objective and perceptual losses. +More specifically, EnCodec is trained with the MS-STFT discriminator along with +objective losses through the use of a loss balancer to effectively weight +the different losses, in an intuitive manner. + +### Evaluation stage + +Evaluation metrics for audio generation: +* SI-SNR: Scale-Invariant Signal-to-Noise Ratio. +* ViSQOL: Virtual Speech Quality Objective Listener. + +Note: Path to the ViSQOL binary (compiled with bazel) needs to be provided in +order to run the ViSQOL metric on the reference and degraded signals. +The metric is disabled by default. +Please refer to the [metrics documentation](../METRICS.md) to learn more. + +### Generation stage + +The generation stage consists in generating the reconstructed audio from samples +with the current model. The number of samples generated and the batch size used are +controlled by the `dataset.generate` configuration. The output path and audio formats +are defined in the generate stage configuration. + +```shell +# generate samples every 5 epoch +dora run solver=compression/encodec_base_24khz generate.every=5 +# run with a different dset +dora run solver=compression/encodec_base_24khz generate.path= +# limit the number of samples or use a different batch size +dora grid solver=compression/encodec_base_24khz dataset.generate.num_samples=10 dataset.generate.batch_size=4 +``` + +### Playing with the model + +Once you have a model trained, it is possible to get the entire solver, or just +the trained model with the following functions: + +```python +from audiocraft.solvers import CompressionSolver + +# If you trained a custom model with signature SIG. +model = CompressionSolver.model_from_checkpoint('//sig/SIG') +# If you want to get one of the pretrained models with the `//pretrained/` prefix. +model = CompressionSolver.model_from_checkpoint('//pretrained/facebook/encodec_32khz') +# Or load from a custom checkpoint path +model = CompressionSolver.model_from_checkpoint('/my_checkpoints/foo/bar/checkpoint.th') + + +# If you only want to use a pretrained model, you can also directly get it +# from the CompressionModel base model class. +from audiocraft.models import CompressionModel + +# Here do not put the `//pretrained/` prefix! +model = CompressionModel.get_pretrained('facebook/encodec_32khz') +model = CompressionModel.get_pretrained('dac_44khz') + +# Finally, you can also retrieve the full Solver object, with its dataloader etc. +from audiocraft import train +from pathlib import Path +import logging +import os +import sys + +# Uncomment the following line if you want some detailed logs when loading a Solver. +# logging.basicConfig(stream=sys.stderr, level=logging.INFO) + +# You must always run the following function from the root directory. +os.chdir(Path(train.__file__).parent.parent) + + +# You can also get the full solver (only for your own experiments). +# You can provide some overrides to the parameters to make things more convenient. +solver = train.get_solver_from_sig('SIG', {'device': 'cpu', 'dataset': {'batch_size': 8}}) +solver.model +solver.dataloaders +``` + +### Importing / Exporting models + +At the moment we do not have a definitive workflow for exporting EnCodec models, for +instance to Hugging Face (HF). We are working on supporting automatic conversion between +AudioCraft and Hugging Face implementations. + +We still have some support for fine-tuning an EnCodec model coming from HF in AudioCraft, +using for instance `continue_from=//pretrained/facebook/encodec_32k`. + +An AudioCraft checkpoint can be exported in a more compact format (excluding the optimizer etc.) +using `audiocraft.utils.export.export_encodec`. For instance, you could run + +```python +from audiocraft.utils import export +from audiocraft import train +xp = train.main.get_xp_from_sig('SIG') +export.export_encodec( + xp.folder / 'checkpoint.th', + '/checkpoints/my_audio_lm/compression_state_dict.bin') + + +from audiocraft.models import CompressionModel +model = CompressionModel.get_pretrained('/checkpoints/my_audio_lm/compression_state_dict.bin') + +from audiocraft.solvers import CompressionSolver +# The two are strictly equivalent, but this function supports also loading from non-already exported models. +model = CompressionSolver.model_from_checkpoint('//pretrained//checkpoints/my_audio_lm/compression_state_dict.bin') +``` + +We will see then how to use this model as a tokenizer for MusicGen/AudioGen in the +[MusicGen documentation](./MUSICGEN.md). + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + + +## Citation +``` +@article{defossez2022highfi, + title={High Fidelity Neural Audio Compression}, + author={Défossez, Alexandre and Copet, Jade and Synnaeve, Gabriel and Adi, Yossi}, + journal={arXiv preprint arXiv:2210.13438}, + year={2022} +} +``` + + +## License + +See license information in the [README](../README.md). + +[arxiv]: https://arxiv.org/abs/2210.13438 +[encodec_samples]: https://ai.honu.io/papers/encodec/samples.html diff --git a/docs/JASCO.md b/docs/JASCO.md new file mode 100644 index 0000000..3c7de25 --- /dev/null +++ b/docs/JASCO.md @@ -0,0 +1,223 @@ +# JASCO: Joint Audio And Symbolic Conditioning for Temporally Controlled Text-To-Music Generation + +AudioCraft provides the code and models for JASCO, [Joint Audio And Symbolic Conditioning for Temporally Controlled Text-To-Music Generation][arxiv]. + +We present JASCO, a temporally controlled text-to-music generation model utilizing both symbolic and audio-based conditions. +JASCO can generate high-quality music samples conditioned on global text descriptions along with fine-grained local controls. +JASCO is based on the Flow Matching modeling paradigm together with a novel conditioning method, allowing for music generation controlled both locally (e.g., chords) and globally (text description). + +Check out our [sample page][sample_page] or test the available demo! + +We use ~16K hours of licensed music to train JASCO. + + +## Model Card + +See [the model card](../model_cards/JASCO_MODEL_CARD.md). + + +## Installation + +First, Please follow the AudioCraft installation instructions from the [README](../README.md). + +Then, download and install chord_extractor from [source](http://www.isophonics.net/nnls-chroma) + +See further required installation under **Data Preprocessing** section + +## Usage + +We currently offer two ways to interact with JASCO: +1. You can use the gradio demo locally by running [`python -m demos.jasco_app`](../demos/jasco_app.py), you can add `--share` to deploy a sharable space mounted on your device. +2. You can play with JASCO by running the jupyter notebook at [`demos/jasco_demo.ipynb`](../demos/jasco_demo.ipynb) locally. + +## API + +We provide a simple API and pre-trained models: +- `facebook/jasco-chords-drums-400M`: 400M model, text to music with chords and drums support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-400M) +- `facebook/jasco-chords-drums-1B`: 1B model, text to music with chords and drums support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-1B) +- `facebook/jasco-chords-drums-melody-400M`: 400M model, text to music with chords, drums and melody support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-melody-400M) +- `facebook/jasco-chords-drums-melody-1B`: 1B model, text to music with chords, drums and melody support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-melody-1B) + + +See after a quick example for using the API. + +```python +from audiocraft.models import JASCO + +model = JASCO.get_pretrained('facebook/jasco-chords-drums-400M', chords_mapping_path='../assets/chord_to_index_mapping.pkl') + +model.set_generation_params( + cfg_coef_all=5.0, + cfg_coef_txt=0.0 +) + +# set textual prompt +text = "Strings, woodwind, orchestral, symphony." + +# define chord progression +chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)] + +# run inference +output = model.generate_music(descriptions=[text], chords=chords, progress=True) + +audio_write('output', output.cpu().squeeze(0), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +For more examples check out `demos/jasco_demo.ipynb` + +## 🤗 Transformers Usage + +Coming soon... + +## Data Preprocessing +In order to to use the JascoDataset with chords / melody conditioning, please follow the instructions below: + + +### Chords conditioning +To extract chords from your desired data follow the following steps: + +1. Prepare a `*.jsonl` containing list of absolute file paths in your dataset, should simply be absolute paths seperated by newlines. +2. Download and install chord_extractor from [source](http://www.isophonics.net/nnls-chroma) +3. For training purposes run: `python scripts/chords/extract_chords.py --src_jsonl_file= --target_output_dir=` +
      +and then run: `python scripts/chords/build_chord_map.py --chords_folder= --output_directory=` + +4. For evaluation of our released models run: `python scripts/chords/extract_chords.py --src_jsonl_file= --target_output_dir= --path_to_pre_defined_map=` +
      +and then run: `python scripts/chords/build_chord_map.py --chords_folder= --output_directory= --path_to_pre_defined_map=` + + +NOTE: current scripts assume that all audio files are of `.wav` format, some changes may be required if your data consists of other formats. + +NOTE: predefined chord mapping file is available in `assets` directory. + +### Melody conditioning + +This section relies on [Deepsalience repo](https://github.com/rabitt/ismir2017-deepsalience) with slight custom scripts written. + +#### Clone repo and create virtual environment +1. `git clone git@github.com:lonzi/ismir2017-deepsalience.git forked_deepsalience_repo` +2. `cd forked_deepsalience_repo` +3. `conda create --name deep_salience python=3.7` +4. `conda activate deep_salience` +5. `pip install -r requirements.txt` + + +#### Salience map dumps (of entire directory, using slurm job) + +##### From src dir + +1. create job array: `python predict/create_predict_saliency_cmds.py --src_dir= --out_dir= --n_shards= --multithread` +2. run job array: `sbatch predict_saliency.sh` + +##### From track list + +1. create job array: `python predict/create_predict_saliency_cmds.py --tracks_list=tracks_train.txt --out_dir= --n_shards=2 --multithread --sbatch_script_name=predict_saliency_train.sh --saliency_threshold=` +2. run job array: `sbatch predict_saliency_train.sh` + +tracks_train.txt: a list of track paths to process seperated by new lines + + +## Training + +The [JascoSolver](../audiocraft/solvers/jasco.py) implements JASCO's training pipeline. +conditional flow matching objective over the continuous extracted latents from a pre-trained EnCodec model (see [EnCodec documentation](./ENCODEC.md) +for more details on how to train such model). + +Note that **we do NOT provide any of the datasets** used for training JASCO. +We provide a dummy dataset containing just a few examples for illustrative purposes. + +Please read first the [TRAINING documentation](./TRAINING.md), in particular the Environment Setup section. + + +### Fine tuning existing models + +You can initialize your model to one of the pretrained models by using the `continue_from` argument, in particular + +```bash +# Using pretrained JASCO model. +dora run solver=jasco/chords_drums model/lm/model_scale=small continue_from=//pretrained/facebook/jasco-chords-drums-400M conditioner=jasco_chords_drums + +# Using another model you already trained with a Dora signature SIG. +dora run solver=jasco/chords_drums model/lm/model_scale=small continue_from=//sig/SIG conditioner=jasco_chords_drums + +# Or providing manually a path +dora run solver=jasco/chords_drums model/lm/model_scale=small conditioner=jasco_chords_drums continue_from=/checkpoints/my_other_xp/checkpoint.th +``` + +**Warning:** You are responsible for selecting the other parameters accordingly, in a way that make it compatible + with the model you are fine tuning. Configuration is NOT automatically inherited from the model you continue from. In particular make sure to select the proper `conditioner` and `model/lm/model_scale`. + +**Warning:** We currently do not support fine tuning a model with slightly different layers. If you decide + to change some parts, like the conditioning or some other parts of the model, you are responsible for manually crafting a checkpoint file from which we can safely run `load_state_dict`. + If you decide to do so, make sure your checkpoint is saved with `torch.save` and contains a dict + `{'best_state': {'model': model_state_dict_here}}`. Directly give the path to `continue_from` without a `//pretrained/` prefix. + + +### Evaluation & Generation stage + +See [MusicGen](./MUSICGEN.md) + +### Playing with the model + +Once you have launched some experiments, you can easily get access +to the Solver with the latest trained model using the following snippet. + +```python +from audiocraft.solvers.jasco import JascoSolver + +solver = JascoSolver.get_eval_solver_from_sig('SIG', device='cpu', batch_size=8) +solver.model +solver.dataloaders +``` + +### Importing / Exporting models + +We do not support currently loading a model from the Hugging Face implementation or exporting to it. +If you want to export your model in a way that is compatible with `audiocraft.models.JASCO` +API, you can run: + +```python +from audiocraft.utils import export +from audiocraft import train +xp = train.main.get_xp_from_sig('SIG_OF_LM') +export.export_lm(xp.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/state_dict.bin') +# You also need to bundle the EnCodec model you used !! +## Case 1) you trained your own +xp_encodec = train.main.get_xp_from_sig('SIG_OF_ENCODEC') +export.export_encodec(xp_encodec.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/compression_state_dict.bin') +## Case 2) you used a pretrained model. Give the name you used without the //pretrained/ prefix. +## This will actually not dump the actual model, simply a pointer to the right model to download. +export.export_pretrained_compression_model('facebook/encodec_32khz', '/checkpoints/my_audio_lm/compression_state_dict.bin') +``` + +Now you can load your custom model with: +```python +import audiocraft.models +jasco = audiocraft.models.JASCO.get_pretrained('/checkpoints/my_audio_lm/') +``` + + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + + +## Citation +``` +@misc{tal2024joint, + title={Joint Audio and Symbolic Conditioning for Temporally Controlled Text-to-Music Generation}, + author={Or Tal and Alon Ziv and Itai Gat and Felix Kreuk and Yossi Adi}, + year={2024}, + eprint={2406.10970}, + archivePrefix={arXiv}, + primaryClass={cs.SD} +} +``` + +## License + +See license information in the [model card](../model_cards/JASCO_MODEL_CARD.md). + +[arxiv]: https://arxiv.org/pdf/2406.10970 +[sample_page]: https://pages.cs.huji.ac.il/adiyoss-lab/JASCO/ diff --git a/docs/MAGNET.md b/docs/MAGNET.md new file mode 100644 index 0000000..0041e49 --- /dev/null +++ b/docs/MAGNET.md @@ -0,0 +1,237 @@ +# MAGNeT: Masked Audio Generation using a Single Non-Autoregressive Transformer + +AudioCraft provides the code and models for MAGNeT, [Masked Audio Generation using a Single Non-Autoregressive Transformer][arxiv]. + +MAGNeT is a text-to-music and text-to-sound model capable of generating high-quality audio samples conditioned on text descriptions. +It is a masked generative non-autoregressive Transformer trained over a 32kHz EnCodec tokenizer with 4 codebooks sampled at 50 Hz. +Unlike prior work on masked generative audio Transformers, such as [SoundStorm](https://arxiv.org/abs/2305.09636) and [VampNet](https://arxiv.org/abs/2307.04686), +MAGNeT doesn't require semantic token conditioning, model cascading or audio prompting, and employs a full text-to-audio using a single non-autoregressive Transformer. + +Check out our [sample page][magnet_samples] or test the available demo! + +We use 16K hours of licensed music to train MAGNeT. Specifically, we rely on an internal dataset +of 10K high-quality music tracks, and on the ShutterStock and Pond5 music data. + + +## Model Card + +See [the model card](../model_cards/MAGNET_MODEL_CARD.md). + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + +AudioCraft requires a GPU with at least 16 GB of memory for running inference with the medium-sized models (~1.5B parameters). + +## Usage + +We currently offer two ways to interact with MAGNeT: +1. You can use the gradio demo locally by running [`python -m demos.magnet_app --share`](../demos/magnet_app.py). +2. You can play with MAGNeT by running the jupyter notebook at [`demos/magnet_demo.ipynb`](../demos/magnet_demo.ipynb) locally (if you have a GPU). + +## API + +We provide a simple API and 6 pre-trained models. The pre trained models are: +- `facebook/magnet-small-10secs`: 300M model, text to music, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/magnet-small-10secs) +- `facebook/magnet-medium-10secs`: 1.5B model, text to music, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/magnet-medium-10secs) +- `facebook/magnet-small-30secs`: 300M model, text to music, generates 30-second samples - [🤗 Hub](https://huggingface.co/facebook/magnet-small-30secs) +- `facebook/magnet-medium-30secs`: 1.5B model, text to music, generates 30-second samples - [🤗 Hub](https://huggingface.co/facebook/magnet-medium-30secs) +- `facebook/audio-magnet-small`: 300M model, text to sound-effect - [🤗 Hub](https://huggingface.co/facebook/audio-magnet-small) +- `facebook/audio-magnet-medium`: 1.5B model, text to sound-effect - [🤗 Hub](https://huggingface.co/facebook/audio-magnet-medium) + +In order to use MAGNeT locally **you must have a GPU**. We recommend 16GB of memory, especially for +the medium size models. + +See after a quick example for using the API. + +```python +import torchaudio +from audiocraft.models import MAGNeT +from audiocraft.data.audio import audio_write + +model = MAGNeT.get_pretrained('facebook/magnet-small-10secs') +descriptions = ['disco beat', 'energetic EDM', 'funky groove'] +wav = model.generate(descriptions) # generates 3 samples. + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +## 🤗 Transformers Usage + +Coming soon... + +## Training + +The [MagnetSolver](../audiocraft/solvers/magnet.py) implements MAGNeT's training pipeline. +It defines a masked generation task over multiple streams of discrete tokens +extracted from a pre-trained EnCodec model (see [EnCodec documentation](./ENCODEC.md) +for more details on how to train such model). + +Note that **we do NOT provide any of the datasets** used for training MAGNeT. +We provide a dummy dataset containing just a few examples for illustrative purposes. + +Please read first the [TRAINING documentation](./TRAINING.md), in particular the Environment Setup section. + + +### Example configurations and grids + +We provide configurations to reproduce the released models and our research. +MAGNeT solvers configuration are available in [config/solver/magnet](../config/solver/magnet), +in particular: +* MAGNeT model for text-to-music: +[`solver=magnet/magnet_32khz`](../config/solver/magnet/magnet_32khz.yaml) +* MAGNeT model for text-to-sound: +[`solver=magnet/audio_magnet_16khz`](../config/solver/magnet/audio_magnet_16khz.yaml) + +We provide 3 different scales, e.g. `model/lm/model_scale=small` (300M), or `medium` (1.5B), and `large` (3.3B). + +Please find some example grids to train MAGNeT at +[audiocraft/grids/magnet](../audiocraft/grids/magnet/). + +```shell +# text-to-music +dora grid magnet.magnet_32khz --dry_run --init + +# text-to-sound +dora grid magnet.audio_magnet_16khz --dry_run --init + +# Remove the `--dry_run --init` flags to actually schedule the jobs once everything is setup. +``` + +### dataset and metadata +Learn more in the [datasets section](./DATASETS.md). + +#### Music Models +MAGNeT's underlying dataset is an AudioDataset augmented with music-specific metadata. +The MAGNeT dataset implementation expects the metadata to be available as `.json` files +at the same location as the audio files. + +#### Sound Models +Audio-MAGNeT's underlying dataset is an AudioDataset augmented with description metadata. +The Audio-MAGNeT dataset implementation expects the metadata to be available as `.json` files +at the same location as the audio files or through specified external folder. + +### Audio tokenizers + +See [MusicGen](./MUSICGEN.md) + +### Fine tuning existing models + +You can initialize your model to one of the pretrained models by using the `continue_from` argument, in particular + +```bash +# Using pretrained MAGNeT model. +dora run solver=magnet/magnet_32khz model/lm/model_scale=medium continue_from=//pretrained/facebook/magnet-medium-10secs conditioner=text2music + +# Using another model you already trained with a Dora signature SIG. +dora run solver=magnet/magnet_32khz model/lm/model_scale=medium continue_from=//sig/SIG conditioner=text2music + +# Or providing manually a path +dora run solver=magnet/magnet_32khz model/lm/model_scale=medium continue_from=/checkpoints/my_other_xp/checkpoint.th +``` + +**Warning:** You are responsible for selecting the other parameters accordingly, in a way that make it compatible + with the model you are fine tuning. Configuration is NOT automatically inherited from the model you continue from. In particular make sure to select the proper `conditioner` and `model/lm/model_scale`. + +**Warning:** We currently do not support fine tuning a model with slightly different layers. If you decide + to change some parts, like the conditioning or some other parts of the model, you are responsible for manually crafting a checkpoint file from which we can safely run `load_state_dict`. + If you decide to do so, make sure your checkpoint is saved with `torch.save` and contains a dict + `{'best_state': {'model': model_state_dict_here}}`. Directly give the path to `continue_from` without a `//pretrained/` prefix. + +### Evaluation stage +For the 6 pretrained MAGNeT models, objective metrics could be reproduced using the following grids: + +```shell +# text-to-music +REGEN=1 dora grid magnet.magnet_pretrained_32khz_eval --dry_run --init + +# text-to-sound +REGEN=1 dora grid magnet.audio_magnet_pretrained_16khz_eval --dry_run --init + +# Remove the `--dry_run --init` flags to actually schedule the jobs once everything is setup. +``` + +See [MusicGen](./MUSICGEN.md) for more details. + +### Generation stage + +See [MusicGen](./MUSICGEN.md) + +### Playing with the model + +Once you have launched some experiments, you can easily get access +to the Solver with the latest trained model using the following snippet. + +```python +from audiocraft.solvers.magnet import MagnetSolver + +solver = MagnetSolver.get_eval_solver_from_sig('SIG', device='cpu', batch_size=8) +solver.model +solver.dataloaders +``` + +### Importing / Exporting models + +We do not support currently loading a model from the Hugging Face implementation or exporting to it. +If you want to export your model in a way that is compatible with `audiocraft.models.MAGNeT` +API, you can run: + +```python +from audiocraft.utils import export +from audiocraft import train +xp = train.main.get_xp_from_sig('SIG_OF_LM') +export.export_lm(xp.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/state_dict.bin') +# You also need to bundle the EnCodec model you used !! +## Case 1) you trained your own +xp_encodec = train.main.get_xp_from_sig('SIG_OF_ENCODEC') +export.export_encodec(xp_encodec.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/compression_state_dict.bin') +## Case 2) you used a pretrained model. Give the name you used without the //pretrained/ prefix. +## This will actually not dump the actual model, simply a pointer to the right model to download. +export.export_pretrained_compression_model('facebook/encodec_32khz', '/checkpoints/my_audio_lm/compression_state_dict.bin') +``` + +Now you can load your custom model with: +```python +import audiocraft.models +magnet = audiocraft.models.MAGNeT.get_pretrained('/checkpoints/my_audio_lm/') +``` + + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + +## FAQ + +#### What are top-k, top-p, temperature and classifier-free guidance? + +Check out [@FurkanGozukara tutorial](https://github.com/FurkanGozukara/Stable-Diffusion/blob/main/Tutorials/AI-Music-Generation-Audiocraft-Tutorial.md#more-info-about-top-k-top-p-temperature-and-classifier-free-guidance-from-chatgpt). + +#### Should I use FSDP or autocast ? + +The two are mutually exclusive (because FSDP does autocast on its own). +You can use autocast up to 1.5B (medium), if you have enough RAM on your GPU. +FSDP makes everything more complex but will free up some memory for the actual +activations by sharding the optimizer state. + +## Citation +``` +@misc{ziv2024masked, + title={Masked Audio Generation using a Single Non-Autoregressive Transformer}, + author={Alon Ziv and Itai Gat and Gael Le Lan and Tal Remez and Felix Kreuk and Alexandre Défossez and Jade Copet and Gabriel Synnaeve and Yossi Adi}, + year={2024}, + eprint={2401.04577}, + archivePrefix={arXiv}, + primaryClass={cs.SD} +} +``` + +## License + +See license information in the [model card](../model_cards/MAGNET_MODEL_CARD.md). + +[arxiv]: https://arxiv.org/abs/2401.04577 +[magnet_samples]: https://pages.cs.huji.ac.il/adiyoss-lab/MAGNeT/ diff --git a/docs/MBD.md b/docs/MBD.md new file mode 100644 index 0000000..b662918 --- /dev/null +++ b/docs/MBD.md @@ -0,0 +1,117 @@ +# MultiBand Diffusion + +AudioCraft provides the code and models for MultiBand Diffusion, [From Discrete Tokens to High Fidelity Audio using MultiBand Diffusion][arxiv]. +MultiBand diffusion is a collection of 4 models that can decode tokens from +EnCodec tokenizer into waveform audio. You can listen to some examples on the sample page. + + + Open In Colab + +
      + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + + +## Usage + +We offer a number of way to use MultiBand Diffusion: +1. The MusicGen demo includes a toggle to try diffusion decoder. You can use the demo locally by running [`python -m demos.musicgen_app --share`](../demos/musicgen_app.py), or through the [MusicGen Colab](https://colab.research.google.com/drive/1JlTOjB-G0A2Hz3h8PK63vLZk4xdCI5QB?usp=sharing). +2. You can play with MusicGen by running the jupyter notebook at [`demos/musicgen_demo.ipynb`](../demos/musicgen_demo.ipynb) locally (if you have a GPU). + +## API + +We provide a simple API and pre-trained models for MusicGen and for EnCodec at 24 khz for 3 bitrates (1.5 kbps, 3 kbps and 6 kbps). + +See after a quick example for using MultiBandDiffusion with the MusicGen API: + +```python +import torchaudio +from audiocraft.models import MusicGen, MultiBandDiffusion +from audiocraft.data.audio import audio_write + +model = MusicGen.get_pretrained('facebook/musicgen-melody') +mbd = MultiBandDiffusion.get_mbd_musicgen() +model.set_generation_params(duration=8) # generate 8 seconds. +wav, tokens = model.generate_unconditional(4, return_tokens=True) # generates 4 unconditional audio samples and keep the tokens for MBD generation +descriptions = ['happy rock', 'energetic EDM', 'sad jazz'] +wav_diffusion = mbd.tokens_to_wav(tokens) +wav, tokens = model.generate(descriptions, return_tokens=True) # generates 3 samples and keep the tokens. +wav_diffusion = mbd.tokens_to_wav(tokens) +melody, sr = torchaudio.load('./assets/bach.mp3') +# Generates using the melody from the given audio and the provided descriptions, returns audio and audio tokens. +wav, tokens = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr, return_tokens=True) +wav_diffusion = mbd.tokens_to_wav(tokens) + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav and {idx}_diffusion.wav, with loudness normalization at -14 db LUFS for comparing the methods. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) + audio_write(f'{idx}_diffusion', wav_diffusion[idx].cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +For the compression task (and to compare with [EnCodec](https://github.com/facebookresearch/encodec)): + +```python +import torch +from audiocraft.models import MultiBandDiffusion +from encodec import EncodecModel +from audiocraft.data.audio import audio_read, audio_write + +bandwidth = 3.0 # 1.5, 3.0, 6.0 +mbd = MultiBandDiffusion.get_mbd_24khz(bw=bandwidth) +encodec = EncodecModel.encodec_model_24khz() + +somepath = '' +wav, sr = audio_read(somepath) +with torch.no_grad(): + compressed_encodec = encodec(wav) + compressed_diffusion = mbd.regenerate(wav, sample_rate=sr) + +audio_write('sample_encodec', compressed_encodec.squeeze(0).cpu(), mbd.sample_rate, strategy="loudness", loudness_compressor=True) +audio_write('sample_diffusion', compressed_diffusion.squeeze(0).cpu(), mbd.sample_rate, strategy="loudness", loudness_compressor=True) +``` + + +## Training + +The [DiffusionSolver](../audiocraft/solvers/diffusion.py) implements our diffusion training pipeline. +It generates waveform audio conditioned on the embeddings extracted from a pre-trained EnCodec model +(see [EnCodec documentation](./ENCODEC.md) for more details on how to train such model). + +Note that **we do NOT provide any of the datasets** used for training our diffusion models. +We provide a dummy dataset containing just a few examples for illustrative purposes. + +### Example configurations and grids + +One can train diffusion models as described in the paper by using this [dora grid](../audiocraft/grids/diffusion/4_bands_base_32khz.py). +```shell +# 4 bands MBD trainning +dora grid diffusion.4_bands_base_32khz +``` + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + + +## Citation + +``` +@article{sanroman2023fromdi, + title={From Discrete Tokens to High-Fidelity Audio Using Multi-Band Diffusion}, + author={San Roman, Robin and Adi, Yossi and Deleforge, Antoine and Serizel, Romain and Synnaeve, Gabriel and Défossez, Alexandre}, + journal={arXiv preprint arXiv:}, + year={2023} +} +``` + + +## License + +See license information in the [README](../README.md). + + +[arxiv]: https://arxiv.org/abs/2308.02560 +[mbd_samples]: https://ai.honu.io/papers/mbd/ diff --git a/docs/METRICS.md b/docs/METRICS.md new file mode 100644 index 0000000..506ce35 --- /dev/null +++ b/docs/METRICS.md @@ -0,0 +1,131 @@ +# AudioCraft objective metrics + +In addition to training losses, AudioCraft provides a set of objective metrics +for audio synthesis and audio generation. As these metrics may require +extra dependencies and can be costly to train, they are often disabled by default. +This section provides guidance for setting up and using these metrics in +the AudioCraft training pipelines. + +## Available metrics + +### Audio synthesis quality metrics + +#### SI-SNR + +We provide an implementation of the Scale-Invariant Signal-to-Noise Ratio in PyTorch. +No specific requirement is needed for this metric. Please activate the metric at the +evaluation stage with the appropriate flag: + +**Warning:** We report the opposite of the SI-SNR, e.g. multiplied by -1. This is due to internal + details where the SI-SNR score can also be used as a training loss function, where lower + values should indicate better reconstruction. Negative values are such expected and a good sign! Those should be again multiplied by `-1` before publication :) + +```shell +dora run <...> evaluate.metrics.sisnr=true +``` + +#### ViSQOL + +We provide a Python wrapper around the ViSQOL [official implementation](https://github.com/google/visqol) +to conveniently run ViSQOL within the training pipelines. + +One must specify the path to the ViSQOL installation through the configuration in order +to enable ViSQOL computations in AudioCraft: + +```shell +# the first parameter is used to activate visqol computation while the second specify +# the path to visqol's library to be used by our python wrapper +dora run <...> evaluate.metrics.visqol=true metrics.visqol.bin= +``` + +See an example grid: [Compression with ViSQOL](../audiocraft/grids/compression/encodec_musicgen_32khz.py) + +To learn more about ViSQOL and how to build ViSQOL binary using bazel, please refer to the +instructions available in the [open source repository](https://github.com/google/visqol). + +### Audio generation metrics + +#### Frechet Audio Distance + +Similarly to ViSQOL, we use a Python wrapper around the Frechet Audio Distance +[official implementation](https://github.com/google-research/google-research/tree/master/frechet_audio_distance) +in TensorFlow. + +Note that we had to make several changes to the actual code in order to make it work. +Please refer to the [FrechetAudioDistanceMetric](../audiocraft/metrics/fad.py) class documentation +for more details. We do not plan to provide further support in obtaining a working setup for the +Frechet Audio Distance at this stage. + +```shell +# the first parameter is used to activate FAD metric computation while the second specify +# the path to FAD library to be used by our python wrapper +dora run <...> evaluate.metrics.fad=true metrics.fad.bin= +``` + +See an example grid: [Evaluation with FAD](../audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py) + +#### Kullback-Leibler Divergence + +We provide a PyTorch implementation of the Kullback-Leibler Divergence computed over the probabilities +of the labels obtained by a state-of-the-art audio classifier. We provide our implementation of the KLD +using the [PaSST classifier](https://github.com/kkoutini/PaSST). + +In order to use the KLD metric over PaSST, you must install the PaSST library as an extra dependency: +```shell +pip install 'git+https://github.com/kkoutini/passt_hear21@0.0.19#egg=hear21passt' +``` + +Then similarly, you can use the metric activating the corresponding flag: + +```shell +# one could extend the kld metric with additional audio classifier models that can then be picked through the configuration +dora run <...> evaluate.metrics.kld=true metrics.kld.model=passt +``` + +#### Text consistency + +We provide a text-consistency metric, similarly to the MuLan Cycle Consistency from +[MusicLM](https://arxiv.org/pdf/2301.11325.pdf) or the CLAP score used in +[Make-An-Audio](https://arxiv.org/pdf/2301.12661v1.pdf). +More specifically, we provide a PyTorch implementation of a Text consistency metric +relying on a pre-trained [Contrastive Language-Audio Pretraining (CLAP)](https://github.com/LAION-AI/CLAP). + +Please install the CLAP library as an extra dependency prior to using the metric: +```shell +pip install laion_clap +``` + +Then similarly, you can use the metric activating the corresponding flag: + +```shell +# one could extend the text consistency metric with additional audio classifier models that can then be picked through the configuration +dora run ... evaluate.metrics.text_consistency=true metrics.text_consistency.model=clap +``` + +Note that the text consistency metric based on CLAP will require the CLAP checkpoint to be +provided in the configuration. + +#### Chroma cosine similarity + +Finally, as introduced in MusicGen, we provide a Chroma Cosine Similarity metric in PyTorch. +No specific requirement is needed for this metric. Please activate the metric at the +evaluation stage with the appropriate flag: + +```shell +dora run ... evaluate.metrics.chroma_cosine=true +``` + +#### Comparing against reconstructed audio + +For all the above audio generation metrics, we offer the option to compute the metric on the reconstructed audio +fed in EnCodec instead of the generated sample using the flag `.use_gt=true`. + +## Example usage + +You will find example of configuration for the different metrics introduced above in: +* The [musicgen's default solver](../config/solver/musicgen/default.yaml) for all audio generation metrics +* The [compression's default solver](../config/solver/compression/default.yaml) for all audio synthesis metrics + +Similarly, we provide different examples in our grids: +* [Evaluation with ViSQOL](../audiocraft/grids/compression/encodec_musicgen_32khz.py) +* [Evaluation with FAD and others](../audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py) diff --git a/docs/MUSICGEN.md b/docs/MUSICGEN.md new file mode 100644 index 0000000..9a6b1e7 --- /dev/null +++ b/docs/MUSICGEN.md @@ -0,0 +1,419 @@ +# MusicGen: Simple and Controllable Music Generation + +AudioCraft provides the code and models for MusicGen, [a simple and controllable model for music generation][arxiv]. +MusicGen is a single stage auto-regressive Transformer model trained over a 32kHz +EnCodec tokenizer with 4 codebooks sampled at 50 Hz. +Unlike existing methods like [MusicLM](https://arxiv.org/abs/2301.11325), MusicGen doesn't require +a self-supervised semantic representation, and it generates all 4 codebooks in one pass. By introducing +a small delay between the codebooks, we show we can predict them in parallel, thus having only 50 auto-regressive +steps per second of audio. +Check out our [sample page][musicgen_samples] or test the available demo! + + + Open In Colab + + + Open in HugginFace + +
      + +We use 20K hours of licensed music to train MusicGen. Specifically, we rely on an internal dataset +of 10K high-quality music tracks, and on the ShutterStock and Pond5 music data. + + +## Model Card + +See [the model card](../model_cards/MUSICGEN_MODEL_CARD.md). + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + +AudioCraft requires a GPU with at least 16 GB of memory for running inference with the medium-sized models (~1.5B parameters). + +## Usage + +We offer a number of way to interact with MusicGen: +1. A demo is also available on the [`facebook/MusicGen` Hugging Face Space](https://huggingface.co/spaces/facebook/MusicGen) +(huge thanks to all the HF team for their support). +2. You can run the extended demo on a Colab: +[colab notebook](https://ai.honu.io/red/musicgen-colab) +3. You can use the gradio demo locally by running [`python -m demos.musicgen_app --share`](../demos/musicgen_app.py). +4. You can play with MusicGen by running the jupyter notebook at [`demos/musicgen_demo.ipynb`](../demos/musicgen_demo.ipynb) locally (if you have a GPU). +5. Finally, checkout [@camenduru Colab page](https://github.com/camenduru/MusicGen-colab) +which is regularly updated with contributions from @camenduru and the community. + + +## API + +We provide a simple API and 10 pre-trained models. The pre trained models are: +- `facebook/musicgen-small`: 300M model, text to music only - [🤗 Hub](https://huggingface.co/facebook/musicgen-small) +- `facebook/musicgen-medium`: 1.5B model, text to music only - [🤗 Hub](https://huggingface.co/facebook/musicgen-medium) +- `facebook/musicgen-melody`: 1.5B model, text to music and text+melody to music - [🤗 Hub](https://huggingface.co/facebook/musicgen-melody) +- `facebook/musicgen-large`: 3.3B model, text to music only - [🤗 Hub](https://huggingface.co/facebook/musicgen-large) +- `facebook/musicgen-melody-large`: 3.3B model, text to music and text+melody to music - [🤗 Hub](https://huggingface.co/facebook/musicgen-melody-large) +- `facebook/musicgen-stereo-*`: All the previous models fine tuned for stereo generation - + [small](https://huggingface.co/facebook/musicgen-stereo-small), + [medium](https://huggingface.co/facebook/musicgen-stereo-medium), + [large](https://huggingface.co/facebook/musicgen-stereo-large), + [melody](https://huggingface.co/facebook/musicgen-stereo-melody), + [melody large](https://huggingface.co/facebook/musicgen-stereo-melody-large). + +We observe the best trade-off between quality and compute with the `facebook/musicgen-medium` or `facebook/musicgen-melody` model. +In order to use MusicGen locally **you must have a GPU**. We recommend 16GB of memory, but smaller +GPUs will be able to generate short sequences, or longer sequences with the `facebook/musicgen-small` model. + +See after a quick example for using the API. + +```python +import torchaudio +from audiocraft.models import MusicGen +from audiocraft.data.audio import audio_write + +model = MusicGen.get_pretrained('facebook/musicgen-melody') +model.set_generation_params(duration=8) # generate 8 seconds. +wav = model.generate_unconditional(4) # generates 4 unconditional audio samples +descriptions = ['happy rock', 'energetic EDM', 'sad jazz'] +wav = model.generate(descriptions) # generates 3 samples. + +melody, sr = torchaudio.load('./assets/bach.mp3') +# generates using the melody from the given audio and the provided descriptions. +wav = model.generate_with_chroma(descriptions, melody[None].expand(3, -1, -1), sr) + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +## 🤗 Transformers Usage + +MusicGen is available in the 🤗 Transformers library from version 4.31.0 onwards, requiring minimal dependencies +and additional packages. Steps to get started: + +1. First install the 🤗 [Transformers library](https://github.com/huggingface/transformers) from main: + +```shell +pip install git+https://github.com/huggingface/transformers.git +``` + +2. Run the following Python code to generate text-conditional audio samples: + +```py +from transformers import AutoProcessor, MusicgenForConditionalGeneration + + +processor = AutoProcessor.from_pretrained("facebook/musicgen-small") +model = MusicgenForConditionalGeneration.from_pretrained("facebook/musicgen-small") + +inputs = processor( + text=["80s pop track with bassy drums and synth", "90s rock song with loud guitars and heavy drums"], + padding=True, + return_tensors="pt", +) + +audio_values = model.generate(**inputs, max_new_tokens=256) +``` + +3. Listen to the audio samples either in an ipynb notebook: + +```py +from IPython.display import Audio + +sampling_rate = model.config.audio_encoder.sampling_rate +Audio(audio_values[0].numpy(), rate=sampling_rate) +``` + +Or save them as a `.wav` file using a third-party library, e.g. `scipy`: + +```py +import scipy + +sampling_rate = model.config.audio_encoder.sampling_rate +scipy.io.wavfile.write("musicgen_out.wav", rate=sampling_rate, data=audio_values[0, 0].numpy()) +``` + +For more details on using the MusicGen model for inference using the 🤗 Transformers library, refer to the +[MusicGen docs](https://huggingface.co/docs/transformers/main/en/model_doc/musicgen) or the hands-on +[Google Colab](https://colab.research.google.com/github/sanchit-gandhi/notebooks/blob/main/MusicGen.ipynb). + + +## Training + +The [MusicGenSolver](../audiocraft/solvers/musicgen.py) implements MusicGen's training pipeline. +It defines an autoregressive language modeling task over multiple streams of discrete tokens +extracted from a pre-trained EnCodec model (see [EnCodec documentation](./ENCODEC.md) +for more details on how to train such model). + +Note that **we do NOT provide any of the datasets** used for training MusicGen. +We provide a dummy dataset containing just a few examples for illustrative purposes. + +Please read first the [TRAINING documentation](./TRAINING.md), in particular the Environment Setup section. + + +**Warning:** As of version 1.1.0, a few breaking changes were introduced. Check the [CHANGELOG.md](../CHANGELOG.md) +file for more information. You might need to retrain some of your models. + +### Example configurations and grids + +We provide configurations to reproduce the released models and our research. +MusicGen solvers configuration are available in [config/solver/musicgen](../config/solver/musicgen), +in particular: +* MusicGen base model for text-to-music: +[`solver=musicgen/musicgen_base_32khz`](../config/solver/musicgen/musicgen_base_32khz.yaml) +* MusicGen model with chromagram-conditioning support: +[`solver=musicgen/musicgen_melody_32khz`](../config/solver/musicgen/musicgen_melody_32khz.yaml) + +We provide 3 different scales, e.g. `model/lm/model_scale=small` (300M), or `medium` (1.5B), and `large` (3.3B). + +Please find some example grids to train MusicGen at +[audiocraft/grids/musicgen](../audiocraft/grids/musicgen/). + +```shell +# text-to-music +dora grid musicgen.musicgen_base_32khz --dry_run --init +# melody-guided music generation +dora grid musicgen.musicgen_melody_base_32khz --dry_run --init +# Remove the `--dry_run --init` flags to actually schedule the jobs once everything is setup. +``` + +### Music dataset and metadata + +MusicGen's underlying dataset is an AudioDataset augmented with music-specific metadata. +The MusicGen dataset implementation expects the metadata to be available as `.json` files +at the same location as the audio files. Learn more in the [datasets section](./DATASETS.md). + + +### Audio tokenizers + +We support a number of audio tokenizers: either pretrained EnCodec models, [DAC](https://github.com/descriptinc/descript-audio-codec), or your own models. +The tokenizer is controlled with the setting `compression_model_checkpoint`. +For instance, + +```bash +# Using the 32kHz EnCodec trained on music +dora run solver=musicgen/debug \ + compression_model_checkpoint=//pretrained/facebook/encodec_32khz \ + transformer_lm.n_q=4 transformer_lm.card=2048 + +# Using DAC +dora run solver=musicgen/debug \ + compression_model_checkpoint=//pretrained/dac_44khz \ + transformer_lm.n_q=9 transformer_lm.card=1024 \ + 'codebooks_pattern.delay.delays=[0,1,2,3,4,5,6,7,8]' + +# Using your own model after export (see ENCODEC.md) +dora run solver=musicgen/debug \ + compression_model_checkpoint=//pretrained//checkpoints/my_audio_lm/compression_state_dict.bin \ + transformer_lm.n_q=... transformer_lm.card=... + +# Using your own model from its training checkpoint. +dora run solver=musicgen/debug \ + compression_model_checkpoint=//sig/SIG \ # where SIG is the Dora signature of the EnCodec XP. + transformer_lm.n_q=... transformer_lm.card=... +``` + +**Warning:** you are responsible for setting the proper value for `transformer_lm.n_q` and `transformer_lm.card` (cardinality of the codebooks). You also have to update the codebook_pattern to match `n_q` as shown in the example for using DAC. . + + +### Training stereo models + +Use the option `interleave_stereo_codebooks.use` set to `True` to activate stereo training along with `channels=2`. Left and right channels will be +encoded separately by the compression model, then their codebook will be interleaved, e.g. order of codebook is +`[1_L, 1_R, 2_L, 2_R, ...]`. You will also need to update the delays for the codebook patterns to match the number of codebooks, and the `n_q` value passed to the transformer LM: +``` +dora run solver=musicgen/debug \ + compression_model_checkpoint=//pretrained/facebook/encodec_32khz \ + channels=2 interleave_stereo_codebooks.use=True \ + transformer_lm.n_q=8 transformer_lm.card=2048 \ + codebooks_pattern.delay.delays='[0, 0, 1, 1, 2, 2, 3, 3]' +``` + +### Fine tuning existing models + +You can initialize your model to one of the pretrained models by using the `continue_from` argument, in particular + +```bash +# Using pretrained MusicGen model. +dora run solver=musicgen/musicgen_base_32khz model/lm/model_scale=medium continue_from=//pretrained/facebook/musicgen-medium conditioner=text2music + +# Using another model you already trained with a Dora signature SIG. +dora run solver=musicgen/musicgen_base_32khz model/lm/model_scale=medium continue_from=//sig/SIG conditioner=text2music + +# Or providing manually a path +dora run solver=musicgen/musicgen_base_32khz model/lm/model_scale=medium continue_from=/checkpoints/my_other_xp/checkpoint.th +``` + +**Warning:** You are responsible for selecting the other parameters accordingly, in a way that make it compatible + with the model you are fine tuning. Configuration is NOT automatically inherited from the model you continue from. In particular make sure to select the proper `conditioner` and `model/lm/model_scale`. + +**Warning:** We currently do not support fine tuning a model with slightly different layers. If you decide + to change some parts, like the conditioning or some other parts of the model, you are responsible for manually crafting a checkpoint file from which we can safely run `load_state_dict`. + If you decide to do so, make sure your checkpoint is saved with `torch.save` and contains a dict + `{'best_state': {'model': model_state_dict_here}}`. Directly give the path to `continue_from` without a `//pretrained/` prefix. + + +#### Fine tuning mono model to stereo + +You will not be able to `continue_from` a mono model with stereo training, as the shape of the embeddings and output linears +would not match. You can use the following snippet to prepare a proper finetuning checkpoint. + +```python +from pathlib import Path +import torch + +# Download the pretrained model, e.g. from +# https://huggingface.co/facebook/musicgen-melody/blob/main/state_dict.bin + +model_name = 'musicgen-melody' +root = Path.home() / 'checkpoints' +# You are responsible for downloading the following checkpoint in the proper location +input_state_dict_path = root / model_name / 'state_dict.bin' +state = torch.load(input_state_dict_path, 'cpu') +bs = state['best_state'] +# there is a slight different in format between training checkpoints and exported public checkpoints. +# If you want to use your own mono models from one of your training checkpont, following the instructions +# for exporting a model explained later on this page. +assert 'model' not in bs, 'The following code is for using an exported pretrained model' +nbs = dict(bs) +for k in range(8): + # We will just copy mono embeddings and linears twice, once for left and right channels. + nbs[f'linears.{k}.weight'] = bs[f'linears.{k//2}.weight'] + nbs[f'emb.{k}.weight'] = bs[f'emb.{k//2}.weight'] +torch.save({'best_state': {'model': nbs}}, root / f'stereo_finetune_{model_name}.th') +``` + +Now, you can use `$HOME/checkpoints/stereo_finetune_musicgen-melody.th` as a `continue_from` target (without a `//pretrained` prefix!). + +### Caching of EnCodec tokens + +It is possible to precompute the EnCodec tokens and other metadata. +An example of generating and using this cache provided in the [musicgen.musicgen_base_cached_32khz grid](../audiocraft/grids/musicgen/musicgen_base_cached_32khz.py). + +### Evaluation stage + +By default, evaluation stage is also computing the cross-entropy and the perplexity over the +evaluation dataset. Indeed the objective metrics used for evaluation can be costly to run +or require some extra dependencies. Please refer to the [metrics documentation](./METRICS.md) +for more details on the requirements for each metric. + +We provide an off-the-shelf configuration to enable running the objective metrics +for audio generation in +[config/solver/musicgen/evaluation/objective_eval](../config/solver/musicgen/evaluation/objective_eval.yaml). + +One can then activate evaluation the following way: +```shell +# using the configuration +dora run solver=musicgen/debug solver/musicgen/evaluation=objective_eval +# specifying each of the fields, e.g. to activate KL computation +dora run solver=musicgen/debug evaluate.metrics.kld=true +``` + +See [an example evaluation grid](../audiocraft/grids/musicgen/musicgen_pretrained_32khz_eval.py). + +### Generation stage + +The generation stage allows to generate samples conditionally and/or unconditionally and to perform +audio continuation (from a prompt). We currently support greedy sampling (argmax), sampling +from softmax with a given temperature, top-K and top-P (nucleus) sampling. The number of samples +generated and the batch size used are controlled by the `dataset.generate` configuration +while the other generation parameters are defined in `generate.lm`. + +```shell +# control sampling parameters +dora run solver=musicgen/debug generate.lm.gen_duration=10 generate.lm.use_sampling=true generate.lm.top_k=15 +``` + +#### Listening to samples + +Note that generation happens automatically every 25 epochs. You can easily access and +compare samples between models (as long as they are trained) on the same dataset using the +MOS tool. For that first `pip install Flask gunicorn`. Then +``` +gunicorn -w 4 -b 127.0.0.1:8895 -t 120 'scripts.mos:app' --access-logfile - +``` +And access the tool at [https://127.0.0.1:8895](https://127.0.0.1:8895). + +### Playing with the model + +Once you have launched some experiments, you can easily get access +to the Solver with the latest trained model using the following snippet. + +```python +from audiocraft.solvers.musicgen import MusicGenSolver + +solver = MusicGenSolver.get_eval_solver_from_sig('SIG', device='cpu', batch_size=8) +solver.model +solver.dataloaders +``` + +### Importing / Exporting models + +We do not support currently loading a model from the Hugging Face implementation or exporting to it. +If you want to export your model in a way that is compatible with `audiocraft.models.MusicGen` +API, you can run: + +```python +from audiocraft.utils import export +from audiocraft import train +xp = train.main.get_xp_from_sig('SIG_OF_LM') +export.export_lm(xp.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/state_dict.bin') +# You also need to bundle the EnCodec model you used !! +## Case 1) you trained your own +xp_encodec = train.main.get_xp_from_sig('SIG_OF_ENCODEC') +export.export_encodec(xp_encodec.folder / 'checkpoint.th', '/checkpoints/my_audio_lm/compression_state_dict.bin') +## Case 2) you used a pretrained model. Give the name you used without the //pretrained/ prefix. +## This will actually not dump the actual model, simply a pointer to the right model to download. +export.export_pretrained_compression_model('facebook/encodec_32khz', '/checkpoints/my_audio_lm/compression_state_dict.bin') +``` + +Now you can load your custom model with: +```python +import audiocraft.models +musicgen = audiocraft.models.MusicGen.get_pretrained('/checkpoints/my_audio_lm/') +``` + + +### Learn more + +Learn more about AudioCraft training pipelines in the [dedicated section](./TRAINING.md). + +## FAQ + +#### I need help on Windows + +@FurkanGozukara made a complete tutorial for [AudioCraft/MusicGen on Windows](https://youtu.be/v-YpvPkhdO4) + +#### I need help for running the demo on Colab + +Check [@camenduru tutorial on YouTube](https://www.youtube.com/watch?v=EGfxuTy9Eeo). + +#### What are top-k, top-p, temperature and classifier-free guidance? + +Check out [@FurkanGozukara tutorial](https://github.com/FurkanGozukara/Stable-Diffusion/blob/main/Tutorials/AI-Music-Generation-Audiocraft-Tutorial.md#more-info-about-top-k-top-p-temperature-and-classifier-free-guidance-from-chatgpt). + +#### Should I use FSDP or autocast ? + +The two are mutually exclusive (because FSDP does autocast on its own). +You can use autocast up to 1.5B (medium), if you have enough RAM on your GPU. +FSDP makes everything more complex but will free up some memory for the actual +activations by sharding the optimizer state. + +## Citation +``` +@inproceedings{copet2023simple, + title={Simple and Controllable Music Generation}, + author={Jade Copet and Felix Kreuk and Itai Gat and Tal Remez and David Kant and Gabriel Synnaeve and Yossi Adi and Alexandre Défossez}, + booktitle={Thirty-seventh Conference on Neural Information Processing Systems}, + year={2023}, +} +``` + + +## License + +See license information in the [model card](../model_cards/MUSICGEN_MODEL_CARD.md). + + +[arxiv]: https://arxiv.org/abs/2306.05284 +[musicgen_samples]: https://ai.honu.io/papers/musicgen/ diff --git a/docs/MUSICGEN_STYLE.md b/docs/MUSICGEN_STYLE.md new file mode 100644 index 0000000..9962b2e --- /dev/null +++ b/docs/MUSICGEN_STYLE.md @@ -0,0 +1,200 @@ +# MusicGen-Style: Audio Conditioning for Music Generation via Discrete Bottleneck Features + +AudioCraft provides the code and models for MusicGen-Style, [Audio Conditioning for Music Generation via Discrete Bottleneck Features][arxiv]. + +MusicGen-Style is a text-and-audio-to-music model that can be conditioned on textual and audio data (thanks to a style conditioner). +The style conditioner takes as input a music excerpt of a few seconds (between 1.5 and 4.5) extracts some features that are used by the model to generate music in the same style. +This style conditioning can be mixed with textual description. + +Check out our [sample page][musicgen_style_samples] or test the available demo! + +We use 16K hours of licensed music to train MusicGen-Style. Specifically, we rely on an internal dataset +of 10K high-quality music tracks, and on the ShutterStock and Pond5 music data. + + +## Model Card + +See [the model card](../model_cards/MUSICGEN_STYLE_MODEL_CARD.md). + + +## Installation + +Please follow the AudioCraft installation instructions from the [README](../README.md). + +MusicGen-Stem requires a GPU with at least 16 GB of memory for running inference with the medium-sized models (~1.5B parameters). + +## Usage + +1. You can play with MusicGen-Style by running the jupyter notebook at [`demos/musicgen_style_demo.ipynb`](../demos/musicgen_style_demo.ipynb) locally (if you have a GPU). +2. You can use the gradio demo locally by running python -m demos.musicgen_style_app --share. +3. You can play with MusicGen by running the jupyter notebook at demos/musicgen_style_demo.ipynb locally (if you have a GPU). + +## API + +We provide a simple API 1 pre-trained model with MERT used as a feature extractor for the style conditioner: +- `facebook/musicgen-style`: medium (1.5B) MusicGen model, text and style to music, generates 30-second samples - [🤗 Hub](https://huggingface.co/facebook/musicgen-style) + +In order to use MusicGen-Style locally **you must have a GPU**. We recommend 16GB of memory. + +See after a quick example for using the API. + +To perform text-to-music: +```python +import torchaudio +from audiocraft.models import MusicGen +from audiocraft.data.audio import audio_write + +model = MusicGen.get_pretrained('facebook/musicgen-style') + + +model.set_generation_params( + duration=8, # generate 8 seconds, can go up to 30 + use_sampling=True, + top_k=250, + cfg_coef=3., # Classifier Free Guidance coefficient + cfg_coef_beta=None, # double CFG is only useful for text-and-style conditioning +) + +descriptions = ['disco beat', 'energetic EDM', 'funky groove'] +wav = model.generate(descriptions) # generates 3 samples. + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +To perform style-to-music: +```python +import torchaudio +from audiocraft.models import MusicGen +from audiocraft.data.audio import audio_write + +model = MusicGen.get_pretrained('facebook/musicgen-style') + + +model.set_generation_params( + duration=8, # generate 8 seconds, can go up to 30 + use_sampling=True, + top_k=250, + cfg_coef=3., # Classifier Free Guidance coefficient + cfg_coef_beta=None, # double CFG is only useful for text-and-style conditioning +) + +model.set_style_conditioner_params( + eval_q=1, # integer between 1 and 6 + # eval_q is the level of quantization that passes + # through the conditioner. When low, the models adheres less to the + # audio conditioning + excerpt_length=3., # the length in seconds that is taken by the model in the provided excerpt + ) + +melody, sr = torchaudio.load('./assets/electronic.mp3') + + +wav = model.generate_with_chroma(descriptions=[None, None, None], + melody[None].expand(3, -1, -1), sr) # generates 3 samples. + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +To perform style-and-text-to-music: +```python +import torchaudio +from audiocraft.models import MusicGen +from audiocraft.data.audio import audio_write + +model = MusicGen.get_pretrained('facebook/musicgen-style') + + +model.set_generation_params( + duration=8, # generate 8 seconds, can go up to 30 + use_sampling=True, + top_k=250, + cfg_coef=3., # Classifier Free Guidance coefficient + cfg_coef_beta=5., # double CFG is necessary for text-and-style conditioning + # Beta in the double CFG formula. between 1 and 9. When set to 1 it is equivalent to normal CFG. + # When we increase this parameter, the text condition is pushed. See the bottom of https://musicgenstyle.github.io/ + # to better understand the effects of the double CFG coefficients. +) + +model.set_style_conditioner_params( + eval_q=1, # integer between 1 and 6 + # eval_q is the level of quantization that passes + # through the conditioner. When low, the models adheres less to the + # audio conditioning + excerpt_length=3., # the length in seconds that is taken by the model in the provided excerpt, can be + # between 1.5 and 4.5 seconds but it has to be shortest to the length of the provided conditioning + ) + +melody, sr = torchaudio.load('./assets/electronic.mp3') + +descriptions = ["8-bit old video game music", "Chill lofi remix", "80s New wave with synthesizer"] +wav = model.generate_with_chroma(descriptions=["8-bit old video game music"], + melody[None].expand(3, -1, -1), sr) # generates 3 samples. + +for idx, one_wav in enumerate(wav): + # Will save under {idx}.wav, with loudness normalization at -14 db LUFS. + audio_write(f'{idx}', one_wav.cpu(), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + + +## Training +To train MusicGen-Style, we use the [MusicGenSolver](../audiocraft/solvers/musicgen.py). + +Note that **we do NOT provide any of the datasets** used for training MusicGen-Style. +We provide a dummy dataset containing just a few examples for illustrative purposes. + +Please read first the [TRAINING documentation](./TRAINING.md), in particular the Environment Setup section. + + +### Example configurations and grids + +We provide the configuration to reproduce the training of MusicGen-Style in [config/solver/musicgen/musicgen_style_32khz.yaml](../config/solver/musicgen/musicgen_style_32khz.yaml), + +In particular, the conditioner configuration is provided in [/config/conditioner/style2music.yaml](../config/conditioner/style2music.yaml). + +The grid to train the model is +[audiocraft/grids/musicgen/musicgen_style_32khz.py](../audiocraft/grids/musicgen/musicgen_style_32khz.py). + +```shell +# text-and-style-to-music +dora grid musicgen.musicgen_style_32khz --dry_run --init + +# Remove the `--dry_run --init` flags to actually schedule the jobs once everything is setup. +``` + +### dataset and metadata +Learn more in the [datasets section](./DATASETS.md). + +### Audio tokenizers + +See [MusicGen](./MUSICGEN.md) + +### Fine tuning existing models + +You can initialize your model to one of the pretrained models by using the `continue_from` argument, in particular + +```bash +# Using pretrained MusicGen-Style model. +dora run solver=musicgen/musicgen_style_32khz model/lm/model_scale=medium continue_from=//pretrained/facebook/musicgen-style conditioner=style2music + +# Using another model you already trained with a Dora signature SIG. +dora run solver=musicgen/musicgen_style_32khz model/lm/model_scale=medium continue_from=//sig/SIG conditioner=style2music + +# Or providing manually a path +dora run solver=musicgen/musicgen_style_32khz model/lm/model_scale=medium continue_from=/checkpoints/my_other_xp/checkpoint.th +``` + +**Warning:** You are responsible for selecting the other parameters accordingly, in a way that make it compatible + with the model you are fine tuning. Configuration is NOT automatically inherited from the model you continue from. In particular make sure to select the proper `conditioner` and `model/lm/model_scale`. + +**Warning:** We currently do not support fine tuning a model with slightly different layers. If you decide + to change some parts, like the conditioning or some other parts of the model, you are responsible for manually crafting a checkpoint file from which we can safely run `load_state_dict`. + If you decide to do so, make sure your checkpoint is saved with `torch.save` and contains a dict + `{'best_state': {'model': model_state_dict_here}}`. Directly give the path to `continue_from` without a `//pretrained/` prefix. + + +[arxiv]: https://arxiv.org/abs/2407.12563 +[musicgen_samples]: https://musicgenstyle.github.io/ diff --git a/docs/TRAINING.md b/docs/TRAINING.md new file mode 100644 index 0000000..5151eac --- /dev/null +++ b/docs/TRAINING.md @@ -0,0 +1,312 @@ +# AudioCraft training pipelines + +AudioCraft training pipelines are built on top of PyTorch as our core deep learning library +and [Flashy](https://github.com/facebookresearch/flashy) as our training pipeline design library, +and [Dora](https://github.com/facebookresearch/dora) as our experiment manager. +AudioCraft training pipelines are designed to be research and experiment-friendly. + + +## Environment setup + +For the base installation, follow the instructions from the [README.md](../README.md). +Below are some additional instructions for setting up the environment to train new models. + +### Team and cluster configuration + +In order to support multiple teams and clusters, AudioCraft uses an environment configuration. +The team configuration allows to specify cluster-specific configurations (e.g. SLURM configuration), +or convenient mapping of paths between the supported environments. + +Each team can have a yaml file under the [configuration folder](../config). To select a team set the +`AUDIOCRAFT_TEAM` environment variable to a valid team name (e.g. `labs` or `default`): +```shell +conda env config vars set AUDIOCRAFT_TEAM=default +``` + +Alternatively, you can add it to your `.bashrc`: +```shell +export AUDIOCRAFT_TEAM=default +``` + +If not defined, the environment will default to the `default` team. + +The cluster is automatically detected, but it is also possible to override it by setting +the `AUDIOCRAFT_CLUSTER` environment variable. + +Based on this team and cluster, the environment is then configured with: +* The dora experiment outputs directory. +* The available slurm partitions: categorized by global and team. +* A shared reference directory: In order to facilitate sharing research models while remaining +agnostic to the used compute cluster, we created the `//reference` symbol that can be used in +YAML config to point to a defined reference folder containing shared checkpoints +(e.g. baselines, models for evaluation...). + +**Important:** The default output dir for trained models and checkpoints is under `/tmp/`. This is suitable +only for quick testing. If you are doing anything serious you MUST edit the file `default.yaml` and +properly set the `dora_dir` entries. + +#### Overriding environment configurations + +You can set the following environment variables to bypass the team's environment configuration: +* `AUDIOCRAFT_CONFIG`: absolute path to a team config yaml file. +* `AUDIOCRAFT_DORA_DIR`: absolute path to a custom dora directory. +* `AUDIOCRAFT_REFERENCE_DIR`: absolute path to the shared reference directory. + +## Training pipelines + +Each task supported in AudioCraft has its own training pipeline and dedicated solver. +Learn more about solvers and key designs around AudioCraft training pipeline below. +Please refer to the documentation of each task and model for specific information on a given task. + + +### Solvers + +The core training component in AudioCraft is the solver. A solver holds the definition +of how to solve a given task: It implements the training pipeline logic, combining the datasets, +model, optimization criterion and components and the full training loop. We refer the reader +to [Flashy](https://github.com/facebookresearch/flashy) for core principles around solvers. + +AudioCraft proposes an initial solver, the `StandardSolver` that is used as the base implementation +for downstream solvers. This standard solver provides a nice base management of logging, +checkpoints loading/saving, xp restoration, etc. on top of the base Flashy implementation. +In AudioCraft, we made the assumption that all tasks are following the same set of stages: +train, valid, evaluate and generation, each relying on a dedicated dataset. + +Each solver is responsible for defining the task to solve and the associated stages +of the training loop in order to leave the full ownership of the training pipeline +to the researchers. This includes loading the datasets, building the model and +optimisation components, registering them and defining the execution of each stage. +To create a new solver for a given task, one should extend the StandardSolver +and define each stage of the training loop. One can further customise its own solver +starting from scratch instead of inheriting from the standard solver. + +```python +from . import base +from .. import optim + + +class MyNewSolver(base.StandardSolver): + + def __init__(self, cfg: omegaconf.DictConfig): + super().__init__(cfg) + # one can add custom attributes to the solver + self.criterion = torch.nn.L1Loss() + + def best_metric(self): + # here optionally specify which metric to use to keep track of best state + return 'loss' + + def build_model(self): + # here you can instantiate your models and optimization related objects + # this method will be called by the StandardSolver init method + self.model = ... + # the self.cfg attribute contains the raw configuration + self.optimizer = optim.build_optimizer(self.model.parameters(), self.cfg.optim) + # don't forget to register the states you'd like to include in your checkpoints! + self.register_stateful('model', 'optimizer') + # keep the model best state based on the best value achieved at validation for the given best_metric + self.register_best('model') + # if you want to add EMA around the model + self.register_ema('model') + + def build_dataloaders(self): + # here you can instantiate your dataloaders + # this method will be called by the StandardSolver init method + self.dataloaders = ... + + ... + + # For both train and valid stages, the StandardSolver relies on + # a share common_train_valid implementation that is in charge of + # accessing the appropriate loader, iterate over the data up to + # the specified number of updates_per_epoch, run the ``run_step`` + # function that you need to implement to specify the behavior + # and finally update the EMA and collect the metrics properly. + @abstractmethod + def run_step(self, idx: int, batch: tp.Any, metrics: dict): + """Perform one training or valid step on a given batch. + """ + ... # provide your implementation of the solver over a batch + + def train(self): + """Train stage. + """ + return self.common_train_valid('train') + + def valid(self): + """Valid stage. + """ + return self.common_train_valid('valid') + + @abstractmethod + def evaluate(self): + """Evaluate stage. + """ + ... # provide your implementation here! + + @abstractmethod + def generate(self): + """Generate stage. + """ + ... # provide your implementation here! +``` + +### About Epochs + +AudioCraft Solvers uses the concept of Epoch. One epoch doesn't necessarily mean one pass over the entire +dataset, but instead represent the smallest amount of computation that we want to work with before checkpointing. +Typically, we find that having an Epoch time around 30min is ideal both in terms of safety (checkpointing often enough) +and getting updates often enough. One Epoch is at least a `train` stage that lasts for `optim.updates_per_epoch` (2000 by default), +and a `valid` stage. You can control how long the valid stage takes with `dataset.valid.num_samples`. +Other stages (`evaluate`, `generate`) will only happen every X epochs, as given by `evaluate.every` and `generate.every`). + + +### Models + +In AudioCraft, a model is a container object that wraps one or more torch modules together +with potential processing logic to use in a solver. For example, a model would wrap an encoder module, +a quantisation bottleneck module, a decoder and some tensor processing logic. Each of the previous components +can be considered as a small « model unit » on its own but the container model is a practical component +to manipulate and train a set of modules together. + +### Datasets + +See the [dedicated documentation on datasets](./DATASETS.md). + +### Metrics + +See the [dedicated documentation on metrics](./METRICS.md). + +### Conditioners + +AudioCraft language models can be conditioned in various ways and the codebase offers a modular implementation +of different conditioners that can be potentially combined together. +Learn more in the [dedicated documentation on conditioning](./CONDITIONING.md). + +### Configuration + +AudioCraft's configuration is defined in yaml files and the framework relies on +[hydra](https://hydra.cc/docs/intro/) and [omegaconf](https://omegaconf.readthedocs.io/) to parse +and manipulate the configuration through Dora. + +##### :warning: Important considerations around configurations + +Our configuration management relies on Hydra and the concept of group configs to structure +and compose configurations. Updating the root default configuration files will then have +an impact on all solvers and tasks. +**One should never change the default configuration files. Instead they should use Hydra config groups in order to store custom configuration.** +Once this configuration is created and used for running experiments, you should not edit it anymore. + +Note that as we are using Dora as our experiment manager, all our experiment tracking is based on +signatures computed from delta between configurations. +**One must therefore ensure backward compatibility of the configuration at all time.** +See [Dora's README](https://github.com/facebookresearch/dora) and the +[section below introduction Dora](#running-experiments-with-dora). + +##### Configuration structure + +The configuration is organized in config groups: +* `conditioner`: default values for conditioning modules. +* `dset`: contains all data source related information (paths to manifest files +and metadata for a given dataset). +* `model`: contains configuration for each model defined in AudioCraft and configurations +for different variants of models. +* `solver`: contains the default configuration for each solver as well as configuration +for each solver task, combining all the above components. +* `teams`: contains the cluster configuration per teams. See environment setup for more details. + +The `config.yaml` file is the main configuration that composes the above groups +and contains default configuration for AudioCraft. + +##### Solver's core configuration structure + +The core configuration structure shared across solver is available in `solvers/default.yaml`. + +##### Other configuration modules + +AudioCraft configuration contains the different setups we used for our research and publications. + +## Running experiments with Dora + +### Launching jobs + +Try launching jobs for different tasks locally with dora run: + +```shell +# run compression task with lightweight encodec +dora run solver=compression/debug +``` + +Most of the time, the jobs are launched through dora grids, for example: + +```shell +# run compression task through debug grid +dora grid compression.debug +``` + +Learn more about running experiments with Dora below. + +### A small introduction to Dora + +[Dora](https://github.com/facebookresearch/dora) is the experiment manager tool used in AudioCraft. +Check out the README to learn how Dora works. Here is a quick summary of what to know: +* An XP is a unique set of hyper-parameters with a given signature. The signature is a hash +of those hyper-parameters. We always refer to an XP with its signature, e.g. 9357e12e. We will see +after that one can retrieve the hyper-params and re-rerun it in a single command. +* In fact, the hash is defined as a delta between the base config and the one obtained +with the config overrides you passed from the command line. This means you must never change +the `conf/**.yaml` files directly, except for editing things like paths. Changing the default values +in the config files means the XP signature won't reflect that change, and wrong checkpoints might be reused. +I know, this is annoying, but the reason is that otherwise, any change to the config file would mean +that all XPs ran so far would see their signature change. + +#### Dora commands + +```shell +dora info -f 81de367c # this will show the hyper-parameter used by a specific XP. + # Be careful some overrides might present twice, and the right most one + # will give you the right value for it. + +dora run -d -f 81de367c # run an XP with the hyper-parameters from XP 81de367c. + # `-d` is for distributed, it will use all available GPUs. + +dora run -d -f 81de367c dataset.batch_size=32 # start from the config of XP 81de367c but change some hyper-params. + # This will give you a new XP with a new signature (e.g. 3fe9c332). + +dora info -f SIG -t # will tail the log (if the XP has scheduled). +# if you need to access the logs of the process for rank > 0, in particular because a crash didn't happen in the main +# process, then use `dora info -f SIG` to get the main log name (finished into something like `/5037674_0_0_log.out`) +# and worker K can be accessed as `/5037674_0_{K}_log.out`. +# This is only for scheduled jobs, for local distributed runs with `-d`, then you should go into the XP folder, +# and look for `worker_{K}.log` logs. +``` + +An XP runs from a specific folder based on its signature, under the +`//experiments/audiocraft/outputs/` folder. +You can safely interrupt a training and resume it, it will reuse any existing checkpoint, +as it will reuse the same folder. If you made some change to the code and need to ignore +a previous checkpoint you can use `dora run --clear [RUN ARGS]`. + +If you have a Slurm cluster, you can also use the dora grid command, e.g. + +```shell +# Run a dummy grid located at `audiocraft/grids/my_grid_folder/my_grid_name.py` +dora grid my_grid_folder.my_grid_name +# The following will simply display the grid and also initialize the Dora experiments database. +# You can then simply refer to a config using its signature (e.g. as `dora run -f SIG`). +dora grid my_grid_folder.my_grid_name --dry_run --init +``` + +Please refer to the [Dora documentation](https://github.com/facebookresearch/dora) for more information. + + +#### Clearing up past experiments + +```shell +# This will cancel all the XPs and delete their folder and checkpoints. +# It will then reschedule them starting from scratch. +dora grid my_grid_folder.my_grid_name --clear +# The following will delete the folder and checkpoint for a single XP, +# and then run it afresh. +dora run [-f BASE_SIG] [ARGS] --clear +``` diff --git a/docs/WATERMARKING.md b/docs/WATERMARKING.md new file mode 100644 index 0000000..425e204 --- /dev/null +++ b/docs/WATERMARKING.md @@ -0,0 +1,40 @@ +# AudioSeal: Proactive Localized Watermarking + +AudioCraft provides the training code and models for AudioSeal, a method for speech localized watermarking [Proactive Detection of Voice Cloning with Localized Watermarking][arxiv], with state-of-the-art robustness and detector speed. It jointly trains a generator that embeds a watermark in the audio, and a detector that detects the watermarked fragments in longer audios, even in the presence of editing. + +## Installation and setup + +Make sure to install audiocraft version `1.4.0a1` or later, and with the `[wm]` extra (see [README](../README.md)). +Alternatively, you can just install audioseal yourself. To install AudioSeal, follow [Installation](https://github.com/facebookresearch/audioseal) guidelines in the AudioSeal repo. + +_NOTE_: Since we use AAC augmentation in our training loop, you need to install ffmpeg, or it will not work (See Section "Installation" in [README](../README.md)). + +Make sure you follow [steps for basic training setup](TRAINING.md) before starting. + +## API +Check the [Github repository](https://github.com/facebookresearch/audioseal) for more details. + +## Training + +The [WatermarkSolver](../audiocraft/solvers/watermark.py) implements the AudioSeal's training pipeline. It joins the generator and detector that wrap +`audioseal.AudioSealWM` and `audioseal.AudioSealDetector` respectively. For the training recipe, see [config/solver/watermark/robustness.yaml](../config/solver/watermark/robustness.yaml). + +For illustration, we use the three example audios in `datasets`, with datasourc definition in [dset/audio/example.yaml](../config/dset/audio/example.yaml) (Please read [DATASET](./DATASETS.md) to understand AudioCraft's dataset structure.) + +To run the Watermarking training pipeline locally: + +```bash +dora run solver=watermark/robustness dset=audio/example +``` + +you can override model / experiment parameters here directly like: + +```bash +dora run solver=watermark/robustness dset=audio/example sample_rate=24000 +``` + +If you want to run in debug mode: + +```bash +python3 -m pdb -c c -m dora run solver=watermark/robustness dset=audio/example +``` diff --git a/egs/example/data.jsonl b/egs/example/data.jsonl new file mode 100644 index 0000000..63c3c33 --- /dev/null +++ b/egs/example/data.jsonl @@ -0,0 +1,2 @@ +{"path": "dataset/example/electro_1.mp3", "duration": 15.024, "sample_rate": 48000, "amplitude": null, "weight": null, "info_path": null} +{"path": "dataset/example/electro_2.mp3", "duration": 20.035918367346937, "sample_rate": 44100, "amplitude": null, "weight": null, "info_path": null} diff --git a/jasco_demo.ipynb b/jasco_demo.ipynb new file mode 100644 index 0000000..f408eef --- /dev/null +++ b/jasco_demo.ipynb @@ -0,0 +1,489 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# JASCO\n", + "Welcome to JASCO's demo jupyter notebook. \n", + "Here you will find a self-contained example of how to use JASCO for temporally controlled music generation.\n", + "\n", + "You can choose a model from the following selection:\n", + "1. facebook/jasco-chords-drums-400M - 10s music generation conditioned on text, chords and drums, 400M parameters\n", + "2. facebook/jasco-chords-drums-1B - 10s music generation conditioned on text, chords and drums, 1B parameters\n", + "\n", + "\n", + "First, we start by initializing the JASCO model:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/private/home/ortal1/miniconda3/envs/jasco_dev/lib/python3.9/site-packages/xformers/ops/fmha/flash.py:211: FutureWarning: `torch.library.impl_abstract` was renamed to `torch.library.register_fake`. Please use that instead; we will remove `torch.library.impl_abstract` in a future version of PyTorch.\n", + " @torch.library.impl_abstract(\"xformers_flash::flash_fwd\")\n", + "/private/home/ortal1/miniconda3/envs/jasco_dev/lib/python3.9/site-packages/xformers/ops/fmha/flash.py:344: FutureWarning: `torch.library.impl_abstract` was renamed to `torch.library.register_fake`. Please use that instead; we will remove `torch.library.impl_abstract` in a future version of PyTorch.\n", + " @torch.library.impl_abstract(\"xformers_flash::flash_bwd\")\n", + "/private/home/ortal1/miniconda3/envs/jasco_dev/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n", + "/checkpoint/ortal1/Projects/jasco_release/audiocraft/models/loaders.py:71: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n", + " return torch.load(file, map_location=device)\n", + "/private/home/ortal1/miniconda3/envs/jasco_dev/lib/python3.9/site-packages/transformers/models/encodec/modeling_encodec.py:124: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n", + " self.register_buffer(\"padding_total\", torch.tensor(kernel_size - stride, dtype=torch.int64), persistent=False)\n" + ] + } + ], + "source": [ + "import os \n", + "from audiocraft.models import JASCO\n", + "\n", + "chords_mapping_path = os.path.abspath('./assets/chord_to_index_mapping.pkl')\n", + "model = JASCO.get_pretrained('facebook/jasco-chords-drums-1B', chords_mapping_path='./assets/chord_to_index_mapping.pkl')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, let us configure the generation parameters. Specifically, you can control the following:\n", + "* `cfg_coef_all` (float, optional): Coefficient used for classifier free guidance - fully conditional term. \n", + " Defaults to 5.0.\n", + "* `cfg_coef_txt` (float, optional): Coefficient used for classifier free guidance - additional text conditional term. \n", + " Defaults to 0.0.\n", + "\n", + "When left unchanged, JASCO will revert to its default parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "model.set_generation_params(\n", + " cfg_coef_all=0.0,\n", + " cfg_coef_txt=5.0\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can go ahead and start generating music given textual prompts." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Text-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "# set textual prompt\n", + "text = \"Funky groove with electric piano playing blue chords rhythmically\"\n", + "\n", + "# run the model\n", + "print(\"Generating...\") \n", + "output = model.generate(descriptions=[text], progress=True)\n", + "\n", + "# display the result\n", + "print(f\"Text: {text}\\n\")\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can start adding temporal controls! We begin with conditioning on chord progressions:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Chords-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "model.set_generation_params(\n", + " cfg_coef_all=1.5,\n", + " cfg_coef_txt=2.5\n", + ")\n", + "\n", + "# set textual prompt\n", + "text = \"Strings, woodwind, orchestral, symphony.\"\n", + "\n", + "# define chord progression\n", + "chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)]\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(descriptions=[text], chords=chords, progress=True)\n", + "\n", + "# display the result\n", + "print(f'Text: {text}')\n", + "print(f'Chord progression: {chords}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can condition the generation on drum tracks:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Drums-conditional Generation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "\n", + "# load drum prompt\n", + "drums_waveform, sr = torchaudio.load(\"./assets/sep_drums_1.mp3\")\n", + "\n", + "# set textual prompt \n", + "text = \"distortion guitars, heavy rock, catchy beat\"\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(\n", + " descriptions=[text],\n", + " drums_wav=drums_waveform,\n", + " drums_sample_rate=sr,\n", + " progress=True\n", + ")\n", + "\n", + "# display the result\n", + "print('drum prompt:')\n", + "display_audio(drums_waveform, sample_rate=sr)\n", + "print(f'Text: {text}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also combine multiple temporal controls! Let's move on to generating with both chords and drums conditioning:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Drums + Chords conditioning" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torchaudio\n", + "from audiocraft.utils.notebook import display_audio\n", + "\n", + "\n", + "# load drum prompt\n", + "drums_waveform, sr = torchaudio.load(\"./assets/sep_drums_1.mp3\")\n", + "\n", + "# set textual prompt \n", + "text = \"string quartet, orchestral, dramatic\"\n", + "\n", + "# define chord progression\n", + "chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)]\n", + "\n", + "# run the model\n", + "print(\"Generating...\")\n", + "output = model.generate_music(\n", + " descriptions=[text],\n", + " drums_wav=drums_waveform,\n", + " drums_sample_rate=sr,\n", + " chords=chords,\n", + " progress=True\n", + ")\n", + "\n", + "# display the result\n", + "print('drum prompt:')\n", + "display_audio(drums_waveform, sample_rate=sr)\n", + "print(f'Chord progression: {chords}')\n", + "print(f'Text: {text}')\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Melody + Drums + Chords conditioning - inference example" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Source melody:\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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bo6+vr5SlwZwjsHBwVi+fHk8/vjj53384Ycfjm3btsVTTz0Vb7/9dsyePTuam5vj+PHjhTHr16+P999/P/bs2RO7d++ON954I+69997J2gWAIh0dHdHS0hJvvfVW7NmzJ06ePBl33HFHDA4OFsY88MAD8dJLL8XOnTujo6Mjjhw5EnfeeWfh8VOnTsWaNWvixIkT8eabb8af//znePbZZ2Pr1q2l2CVgmlu4cGE89NBD0dXVFe+++27cdttt8b3vfS/ef//9iNDTgKlr37598fTTT8eyZcuKtutrwLSXlZlbbrkla2lpKdw/depUtmDBgqy9vb2EVQFcWkRku3btKtwfHh7O6uvrs9/+9reFbUePHs2qqqqy559/PsuyLPvnP/+ZRUS2b9++wpiXX345y+Vy2UcffTRptQNcSF9fXxYRWUdHR5Zl/+tjM2bMyHbu3FkY869//SuLiKyzszPLsiz729/+llVUVGQ9PT2FMU8++WSWz+ezoaGhyd0BgPO4+uqrsz/84Q96GjBlHTt2LLvuuuuyPXv2ZF//+tez+++/P8syv9UAsizLymqlx4kTJ6KrqyuampoK2yoqKqKpqSk6OztLWBnA6H344YfR09NT1NNqampi1apVhZ7W2dkZc+fOjZUrVxbGNDU1RUVFRbz99tuTXjPA2fr7+yMiora2NiIiurq64uTJk0W9bcmSJbFo0aKi3vaVr3wl6urqCmOam5tjYGCg8H9WA5TCqVOnYseOHTE4OBiNjY16GjBltbS0xJo1a4r6V4TfagAREZWlLuBMn3zySZw6daqo6UZE1NXVxQcffFCiqgDGpqenJyLivD3t9GM9PT0xf/78oscrKyujtra2MAagVIaHh2Pz5s1x6623xg033BAR/+tbM2fOjLlz5xaNPbu3na/3nX4MYLIdPHgwGhsb4/jx4zFnzpzYtWtXLF26NA4cOKCnAVPOjh07Yv/+/bFv375zHvNbDaDMQg8AAMpHS0tLvPfee/GPf/yj1KUAXJYvf/nLceDAgejv74+//OUvsWHDhujo6Ch1WQCj1t3dHffff3/s2bMnZs2aVepyAMpSWZ3e6pprrokrrrgient7i7b39vZGfX19iaoCGJvTfetiPa2+vj76+vqKHv/888/j008/1feAkmptbY3du3fH66+/HgsXLixsr6+vjxMnTsTRo0eLxp/d287X+04/BjDZZs6cGV/60pdixYoV0d7eHsuXL4/f/e53ehow5XR1dUVfX1/cdNNNUVlZGZWVldHR0RHbtm2LysrKqKur09eAaa+sQo+ZM2fGihUrYu/evYVtw8PDsXfv3mhsbCxhZQCjt3jx4qivry/qaQMDA/H2228XelpjY2McPXo0urq6CmNee+21GB4ejlWrVk16zQBZlkVra2vs2rUrXnvttVi8eHHR4ytWrIgZM2YU9bZDhw7F4cOHi3rbwYMHi0LdPXv2RD6fj6VLl07OjgBcxPDwcAwNDelpwJRz++23x8GDB+PAgQOF28qVK2P9+vWFP+trwHRXdqe3amtriw0bNsTKlSvjlltuicceeywGBwdj48aNpS4N4ByfffZZ/Oc//ync//DDD+PAgQNRW1sbixYtis2bN8dvfvObuO6662Lx4sXxy1/+MhYsWBBr166NiIjrr78+vv3tb8c999wTTz31VJw8eTJaW1vjBz/4QSxYsKBEewVMZy0tLbF9+/Z48cUXo7q6unBe55qamrjyyiujpqYmNm3aFG1tbVFbWxv5fD7uu+++aGxsjNWrV0dExB133BFLly6NH/7wh/Hwww9HT09P/OIXv4iWlpaoqqoq5e4B09CWLVviO9/5TixatCiOHTsW27dvj7///e/x6quv6mnAlFNdXV241tpps2fPjnnz5hW262vAdFd2ocddd90VH3/8cWzdujV6enrixhtvjFdeeeWcCywBlIN33303vvnNbxbut7W1RUTEhg0b4tlnn42f/exnMTg4GPfee28cPXo0vvrVr8Yrr7xSdO7V5557LlpbW+P222+PioqKWLduXWzbtm3S9wUgIuLJJ5+MiIhvfOMbRdufeeaZuPvuuyMi4tFHHy30q6GhoWhubo4nnniiMPaKK66I3bt3x49//ONobGyM2bNnx4YNG+LXv/71ZO0GQEFfX1/86Ec/iv/+979RU1MTy5Yti1dffTW+9a1vRYSeBqRHXwOmu1yWZVmpiwAAAAAAALhcZXVNDwAAAAAAgLESegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEkQegAAAAAAAEn4P8oFZFHDCXiRAAAAAElFTkSuQmCC", + "text/plain": [ + "
      " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Chords:\n", + "[('N', 0.0), ('C', 0.32), ('Dm7', 3.456), ('Am', 4.608), ('F', 8.32), ('C', 9.216)]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Separated drums:\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Generating...\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import torchaudio \n", + "from audiocraft.models import JASCO\n", + "from demucs import pretrained\n", + "from demucs.apply import apply_model\n", + "from demucs.audio import convert_audio\n", + "import torch\n", + "from audiocraft.utils.notebook import display_audio\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# --------------------------\n", + "# First, choose file to load\n", + "# --------------------------\n", + "fnames = ['salience_1', 'salience_2']\n", + "chords = [\n", + " [('N', 0.0), ('Eb7', 1.088000000), ('C#', 4.352000000), ('D', 4.864000000), ('Dm7', 6.720000000), ('G7', 8.256000000), ('Am7b5/G', 9.152000000)], # for salience 1\n", + " [('N', 0.0), ('C', 0.320000000), ('Dm7', 3.456000000), ('Am', 4.608000000), ('F', 8.320000000), ('C', 9.216000000)] # for salience 2\n", + "]\n", + "file_idx = 1 # either 0 or 1\n", + "\n", + "\n", + "# ------------------------------------\n", + "# display audio, melody map and chords\n", + "# ------------------------------------\n", + "def plot_chromagram(tensor):\n", + " # Check if tensor is a PyTorch tensor\n", + " if not torch.is_tensor(tensor):\n", + " raise ValueError('Input should be a PyTorch tensor')\n", + " tensor = tensor.numpy().T # C, T\n", + " plt.figure(figsize=(20, 20))\n", + " plt.imshow(tensor, cmap='binary', interpolation='nearest', origin='lower')\n", + " plt.show()\n", + "\n", + "# load salience and display the corresponding wav\n", + "melody_prompt_wav, melody_prompt_sr = torchaudio.load(f\"./assets/{fnames[file_idx]}.wav\")\n", + "print(\"Source melody:\")\n", + "display_audio(melody_prompt_wav, sample_rate=melody_prompt_sr)\n", + "melody = torch.load(f\"./assets/{fnames[file_idx]}.th\", weights_only=True)\n", + "plot_chromagram(melody)\n", + "print(\"Chords:\")\n", + "print(chords[file_idx])\n", + "\n", + "# --------------------------------------------------\n", + "# use demucs to seperate the drums stem from src mix\n", + "# --------------------------------------------------\n", + "def _get_drums_stem(wav: torch.Tensor, sample_rate: int) -> torch.Tensor:\n", + " \"\"\"Get parts of the wav that holds the drums, extracting the main stems from the wav.\"\"\"\n", + " demucs_model = pretrained.get_model('htdemucs').to('cuda')\n", + " wav = convert_audio(\n", + " wav, sample_rate, demucs_model.samplerate, demucs_model.audio_channels) # type: ignore\n", + " stems = apply_model(demucs_model, wav.cuda().unsqueeze(0), device='cuda').squeeze(0)\n", + " drum_stem = stems[demucs_model.sources.index('drums')] # extract relevant stems for drums conditioning\n", + " return convert_audio(drum_stem.cpu(), demucs_model.samplerate, sample_rate, 1) # type: ignore\n", + "drums_wav = _get_drums_stem(melody_prompt_wav, melody_prompt_sr)\n", + "print(\"Separated drums:\")\n", + "display_audio(drums_wav, sample_rate=melody_prompt_sr)\n", + "\n", + "# ----------------------------------\n", + "# Generate using the loaded controls\n", + "# ----------------------------------\n", + "# these are free-form texts written randomly\n", + "texts = [\n", + " '90s rock with heavy drums and hammond',\n", + " '80s pop with groovy synth bass and drum machine',\n", + " 'folk song with leading accordion',\n", + "]\n", + "\n", + "print(\"Generating...\")\n", + "# replacing dynammic solver with simple euler solver\n", + "model.set_generation_params(cfg_coef_all=1.5, cfg_coef_txt=2.5, euler=True, euler_steps=50) # manually set with euler solver\n", + "output = model.generate_music(\n", + " descriptions=texts,\n", + " chords=chords[file_idx],\n", + " drums_wav=drums_wav,\n", + " drums_sample_rate=melody_prompt_sr,\n", + " melody_salience_matrix=melody.permute(1, 0),\n", + " progress=True\n", + ")\n", + "display_audio(output, sample_rate=model.compression_model.sample_rate)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "jasco_dev", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/model_cards/AUDIOGEN_MODEL_CARD.md b/model_cards/AUDIOGEN_MODEL_CARD.md new file mode 100644 index 0000000..5dcd23d --- /dev/null +++ b/model_cards/AUDIOGEN_MODEL_CARD.md @@ -0,0 +1,79 @@ +# AudioGen Model Card + +## Model details +**Organization developing the model:** The FAIR team of Meta AI. + +**Model date:** This version of AudioGen was trained between July 2023 and August 2023. + +**Model version:** This is version 2 of the model, not to be confused with the original AudioGen model published in ["AudioGen: Textually Guided Audio Generation"][audiogen]. +In this version (v2), AudioGen was trained on the same data, but with some other differences: +1. This model was trained on 10 seconds (vs. 5 seconds in v1). +2. The discrete representation used under the hood is extracted using a retrained EnCodec model on the environmental sound data, following the EnCodec setup detailed in the ["Simple and Controllable Music Generation" paper][musicgen]. +3. No audio mixing augmentations. + +**Model type:** AudioGen consists of an EnCodec model for audio tokenization, and an auto-regressive language model based on the transformer architecture for audio modeling. The released model has 1.5B parameters. + +**Paper or resource for more information:** More information can be found in the paper [AudioGen: Textually Guided Audio Generation](https://arxiv.org/abs/2209.15352). + +**Citation details:** See [AudioGen paper][audiogen] + +**License:** Code is released under MIT, model weights are released under CC-BY-NC 4.0. + +**Where to send questions or comments about the model:** Questions and comments about AudioGen can be sent via the [GitHub repository](https://github.com/facebookresearch/audiocraft) of the project, or by opening an issue. + +## Intended use +**Primary intended use:** The primary use of AudioGen is research on AI-based audio generation, including: +- Research efforts, such as probing and better understanding the limitations of generative models to further improve the state of science +- Generation of sound guided by text to understand current abilities of generative AI models by machine learning amateurs + +**Primary intended users:** The primary intended users of the model are researchers in audio, machine learning and artificial intelligence, as well as amateur seeking to better understand those models. + +**Out-of-scope use cases** The model should not be used on downstream applications without further risk evaluation and mitigation. The model should not be used to intentionally create or disseminate audio pieces that create hostile or alienating environments for people. This includes generating audio that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes. + +## Metrics + +**Models performance measures:** We used the following objective measure to evaluate the model on a standard audio benchmark: +- Frechet Audio Distance computed on features extracted from a pre-trained audio classifier (VGGish) +- Kullback-Leibler Divergence on label distributions extracted from a pre-trained audio classifier (PaSST) + +Additionally, we run qualitative studies with human participants, evaluating the performance of the model with the following axes: +- Overall quality of the audio samples; +- Text relevance to the provided text input; + +More details on performance measures and human studies can be found in the paper. + +**Decision thresholds:** Not applicable. + +## Evaluation datasets + +The model was evaluated on the [AudioCaps benchmark](https://audiocaps.github.io/). + +## Training datasets + +The model was trained on the following data sources: a subset of AudioSet (Gemmeke et al., 2017), [BBC sound effects](https://sound-effects.bbcrewind.co.uk/), AudioCaps (Kim et al., 2019), Clotho v2 (Drossos et al., 2020), VGG-Sound (Chen et al., 2020), FSD50K (Fonseca et al., 2021), [Free To Use Sounds](https://www.freetousesounds.com/all-in-one-bundle/), [Sonniss Game Effects](https://sonniss.com/gameaudiogdc), [WeSoundEffects](https://wesoundeffects.com/we-sound-effects-bundle-2020/), [Paramount Motion - Odeon Cinematic Sound Effects](https://www.paramountmotion.com/odeon-sound-effects). + +## Evaluation results + +Below are the objective metrics obtained with the released model on AudioCaps (consisting of 10-second long samples). Note that the model differs from the original AudioGen model introduced in the paper, hence the difference in the metrics. + +| Model | Frechet Audio Distance | KLD | Text consistency | +|---|---|---|---| +| facebook/audiogen-medium | 1.77 | 1.58 | 0.30 | + +More information can be found in the paper [AudioGen: Textually Guided Audio Generation][audiogen], in the Experiments section. + +## Limitations and biases + +**Limitations:** +- The model is not able to generate realistic vocals. +- The model has been trained with English descriptions and will not perform as well in other languages. +- It is sometimes difficult to assess what types of text descriptions provide the best generations. Prompt engineering may be required to obtain satisfying results. + +**Biases:** The datasets used for training may be lacking of diversity and are not representative of all possible sound events. The generated samples from the model will reflect the biases from the training data. + +**Risks and harms:** Biases and limitations of the model may lead to generation of samples that may be considered as biased, inappropriate or offensive. We believe that providing the code to reproduce the research and train new models will allow to broaden the application to new and more representative data. + +**Use cases:** Users must be aware of the biases, limitations and risks of the model. AudioGen is a model developed for artificial intelligence research on audio generation. As such, it should not be used for downstream applications without further investigation and mitigation of risks. + +[musicgen]: https://arxiv.org/abs/2306.05284 +[audiogen]: https://arxiv.org/abs/2209.15352 diff --git a/model_cards/JASCO_MODEL_CARD.md b/model_cards/JASCO_MODEL_CARD.md new file mode 100644 index 0000000..dc6270c --- /dev/null +++ b/model_cards/JASCO_MODEL_CARD.md @@ -0,0 +1,152 @@ +## Model details + +**Organization developing the model:** The FAIR team of Meta AI. + +**Model date:** JASCO was trained in November 2024. + +**Model version:** This is the version 1 of the model. + +**Model type:** JASCO consists of an EnCodec model for audio tokenization, and a flow-matching model based on the transformer architecture for music modeling. +The model comes in different sizes: 400M and 1B; and currently have a two variant: text-to-music + {chords, drums} controls and text-to-music + {chords, drums, melody} controls. +JASCO is trained with condition dropout and could be used for inference with dropped conditions. + +**Paper or resources for more information:** More information can be found in the paper [Joint Audio And Symbolic Conditioning for Temporally Controlled Text-To-Music Generation][arxiv]. + +**Citation details:** + +Code was implemented by Or Tal and Alon Ziv. + +``` +@misc{tal2024joint, + title={Joint Audio and Symbolic Conditioning for Temporally Controlled Text-to-Music Generation}, + author={Or Tal and Alon Ziv and Itai Gat and Felix Kreuk and Yossi Adi}, + year={2024}, + eprint={2406.10970}, + archivePrefix={arXiv}, + primaryClass={cs.SD} +} +``` + +**License:** Code is released under MIT, model weights are released under CC-BY-NC 4.0. + +**Where to send questions or comments about the model:** Questions and comments about JASCO can be sent via the [GitHub repository](https://github.com/facebookresearch/audiocraft) of the project, or by opening an issue. + +## Intended use +**Primary intended use:** The primary use of JASCO is research on AI-based music generation, including: + +- Research efforts, such as probing and better understanding the limitations of generative models to further improve the state of science +- Generation of music guided by text and (opt) local controls, to understand current abilities of generative AI models by machine learning amateurs + +**Primary intended users:** The primary intended users of the model are researchers in audio, machine learning and artificial intelligence, as well as amateur seeking to better understand those models. + +**Out-of-scope use cases:** The model should not be used on downstream applications without further risk evaluation and mitigation. The model should not be used to intentionally create or disseminate music pieces that create hostile or alienating environments for people. This includes generating music that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes. + +## Metrics + +**Models performance measures:** We used the following objective measure to evaluate the model on a standard music benchmark: + +- Frechet Audio Distance computed on features extracted from a pre-trained audio classifier (VGGish). +- CLAP Score between audio embedding and text embedding extracted from a pre-trained CLAP model. +- Melody cosine similarity - pairwise comparison of chromagram extracted from refrence and generated waveforms. +- Onset F1 - pairwise comparison of onsets extracted from refrence and generated waveforms. +- Chords Intersection over union (IOU) - pairwise comparison of symbolic chords extracted from refrence and generated waveforms. + +Additionally, we run qualitative studies with human participants, evaluating the performance of the model with the following axes: + +- Overall quality of the music samples; +- Text relevance to the provided text input; +- Melody match w.r.t reference signal; +- Drum beat match w.r.t reference signal; + +More details on performance measures and human studies can be found in the [paper][arxiv]. + +**Decision thresholds:** Not applicable. + +## Evaluation datasets + +The model was evaluated on the [MusicCaps benchmark](https://www.kaggle.com/datasets/googleai/musiccaps) and on an in-domain held-out evaluation set, with no artist overlap with the training set. + +## Training datasets + +The model was trained on licensed data using the following sources: the [Meta Music Initiative Sound Collection](https://www.fb.com/sound), [Shutterstock music collection](https://www.shutterstock.com/music) and the [Pond5 music collection](https://www.pond5.com/). See the paper for more details about the training set and corresponding preprocessing. + +## Evaluation results + +Below are the objective metrics obtained on MusicCaps with the released model. + +Text-to-music with temporal controls + +| Model | Frechet Audio Distance | Text Consistency | Chord IOU | Onset F1 | Melody Cosine Similarity | +|---|---|---|---|---|---| +| facebook/jasco-chords-drums-400M | 5.866 | 0.284 | 0.588 | 0.328 | 0.096 | +| facebook/jasco-chords-drums-1B | 5.587 | 0.291 | 0.589 | 0.331 | 0.097 | +| facebook/jasco-chords-drums-melody-400M | 4.730 | 0.317 | 0.689 | 0.379 | 0.423 | +| facebook/jasco-chords-drums-melody-1B | 5.098 | 0.313 | 0.690 | 0.378 | 0.427 | + +Note: reccommanded CFG coefficient ratio stands at 1:2 - 'all':'text', results for chords-drums-melody were sampled with all: 1.75, text: 3.5 + +Text-to-music w.o temporal controls (dropped) + + +| Model | Frechet Audio Distance | Text Consistency | Chord IOU | Onset F1 | Melody Cosine Similarity | +|---|---|---|---|---|---| +| facebook/jasco-chords-drums-400M | 5.648 | 0.272 | 0.070 | 0.204 | 0.093 | +| facebook/jasco-chords-drums-1B | 5.602 | 0.281 | 0.071 | 0.214 | 0.093 | +| facebook/jasco-chords-drums-melody-400M | 5.816 | 0.293 | 0.091 | 0.203 | 0.098 | +| facebook/jasco-chords-drums-melody-1B | 5.470 | 0.297 | 0.097 | 0.208 | 0.097 | + +## Limitations and biases + +**Data:** The data sources used to train the model are created by music professionals and covered by legal agreements with the right holders. The model is trained on ~16k hours of data, we believe that scaling the model on larger datasets can further improve the performance of the model. + +**Mitigations:** +Pre-trained models were used to obtain pseudo symbolic supervision. Refer to **Data Preprocessing** section in [Jasco's docs](../docs/JASCO.md) + +**Limitations:** + +- The model is not able to generate realistic vocals. +- The model has been trained with English descriptions and will not perform as well in other languages. +- The model does not perform equally well for all music styles and cultures. +- It is sometimes difficult to assess what types of text descriptions provide the best generations. Prompt engineering and experimentation with classifier free guidance coefficients may be required to obtain satisfying results. +- Model could be sensitive to CFG coefficients as melody introduces a strong bias that would require higher text coefficient during generation, some hyper-parameter search could be necessary to obtain desired results. + +**Biases:** The source of data is potentially lacking diversity and all music cultures are not equally represented in the dataset. The model may not perform equally well on the wide variety of music genres that exists. The generated samples from the model will reflect the biases from the training data. Further work on this model should include methods for balanced and just representations of cultures, for example, by scaling the training data to be both diverse and inclusive. + +**Risks and harms:** Biases and limitations of the model may lead to generation of samples that may be considered as biased, inappropriate or offensive. We believe that providing the code to reproduce the research and train new models will allow to broaden the application to new and more representative data. + +**Use cases:** Users must be aware of the biases, limitations and risks of the model. JASCO is a model developed for artificial intelligence research on controllable music generation. As such, it should not be used for downstream applications without further investigation and mitigation of risks. + +## API + +We provide a simple API and pre-trained models: +- `facebook/jasco-chords-drums-400M`: 400M model, text to music with chords and drums support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-400M) +- `facebook/jasco-chords-drums-1B`: 1B model, text to music with chords and drums support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-1B) +- `facebook/jasco-chords-drums-melody-400M`: 400M model, text to music with chords, drums and melody support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-melody-400M) +- `facebook/jasco-chords-drums-melody-1B`: 1B model, text to music with chords, drums and melody support, generates 10-second samples - [🤗 Hub](https://huggingface.co/facebook/jasco-chords-drums-melody-1B) + + +See after a quick example for using the API. + +```python +from audiocraft.models import JASCO + +model = JASCO.get_pretrained('facebook/jasco-chords-drums-400M', chords_mapping_path='../assets/chord_to_index_mapping.pkl') + +model.set_generation_params( + cfg_coef_all=1.5, + cfg_coef_txt=0.5 +) + +# set textual prompt +text = "Strings, woodwind, orchestral, symphony." + +# define chord progression +chords = [('C', 0.0), ('D', 2.0), ('F', 4.0), ('Ab', 6.0), ('Bb', 7.0), ('C', 8.0)] + +# run inference +output = model.generate_music(descriptions=[text], chords=chords, progress=True) + +audio_write('output', output.cpu().squeeze(0), model.sample_rate, strategy="loudness", loudness_compressor=True) +``` + +[arxiv]: https://arxiv.org/pdf/2406.10970 \ No newline at end of file diff --git a/model_cards/MAGNET_MODEL_CARD.md b/model_cards/MAGNET_MODEL_CARD.md new file mode 100644 index 0000000..b77e203 --- /dev/null +++ b/model_cards/MAGNET_MODEL_CARD.md @@ -0,0 +1,109 @@ +# MAGNeT Model Card + +## Model details + +**Organization developing the model:** The FAIR team of Meta AI. + +**Model date:** MAGNeT was trained between November 2023 and January 2024. + +**Model version:** This is the version 1 of the model. + +**Model type:** MAGNeT consists of an EnCodec model for audio tokenization, and a non-autoregressive model based on the transformer architecture for music modeling. The model comes in different sizes: 300M and 1.5B; and two variants: a model trained for text-to-music generation, and a model trained for text-to-sound generation. + +**Paper or resources for more information:** More information can be found in the paper [Masked Audio Generation using a Single Non-Autoregressive Transformer][arxiv]. + +**Citation details:** See [our paper][arxiv] + +**License:** Code is released under MIT, model weights are released under CC-BY-NC 4.0. + +**Where to send questions or comments about the model:** Questions and comments about MAGNeT can be sent via the [GitHub repository](https://github.com/facebookresearch/audiocraft) of the project, or by opening an issue. + +## Intended use +**Primary intended use:** The primary use of MAGNeT is research on AI-based music generation, including: + +- Research efforts, such as probing and better understanding the limitations of generative models to further improve the state of science +- Generation of music guided by text to understand current abilities of generative AI models by machine learning amateurs + +**Primary intended users:** The primary intended users of the model are researchers in audio, machine learning and artificial intelligence, as well as amateur seeking to better understand those models. + +**Out-of-scope use cases:** The model should not be used on downstream applications without further risk evaluation and mitigation. The model should not be used to intentionally create or disseminate music pieces that create hostile or alienating environments for people. This includes generating music that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes. + +## Metrics + +**Models performance measures:** We used the following objective measure to evaluate the model on a standard music benchmark: + +- Frechet Audio Distance computed on features extracted from a pre-trained audio classifier (VGGish) +- Kullback-Leibler Divergence on label distributions extracted from a pre-trained audio classifier (PaSST) +- CLAP Score between audio embedding and text embedding extracted from a pre-trained CLAP model + +Additionally, we run qualitative studies with human participants, evaluating the performance of the model with the following axes: + +- Overall quality of the music samples; +- Text relevance to the provided text input; + +More details on performance measures and human studies can be found in the paper. + +**Decision thresholds:** Not applicable. + +## Evaluation datasets + +The model was evaluated on the [MusicCaps benchmark](https://www.kaggle.com/datasets/googleai/musiccaps) and on an in-domain held-out evaluation set, with no artist overlap with the training set. + +## Training datasets + +The model was trained on licensed data using the following sources: the [Meta Music Initiative Sound Collection](https://www.fb.com/sound), [Shutterstock music collection](https://www.shutterstock.com/music) and the [Pond5 music collection](https://www.pond5.com/). See the paper for more details about the training set and corresponding preprocessing. + +## Evaluation results + +Below are the objective metrics obtained on MusicCaps with the released model. Note that for the publicly released models, we used the state-of-the-art music source separation method, namely the open source [Hybrid Transformer for Music Source Separation](https://github.com/facebookresearch/demucs) (HT-Demucs), in order to keep only instrumental tracks. This explains the difference in objective metrics with the models used in the paper. + +| Model | Frechet Audio Distance | KLD | Text Consistency | +|---|---|---|---| +| **facebook/magnet-small-10secs** | 4.22 | 1.11 | 0.28 | +| facebook/magnet-medium-10secs | 4.61 | 1.14 | 0.28 | +| facebook/magnet-small-30secs | 4.35 | 1.17 | 0.28 | +| facebook/magnet-medium-30secs | 4.63 | 1.20 | 0.28 | + +More information can be found in the paper [Masked Audio Generation using a Single Non-Autoregressive Transformer][arxiv], in the Results section. + +## Limitations and biases + +**Data:** The data sources used to train the model are created by music professionals and covered by legal agreements with the right holders. The model is trained on 16K hours of data, we believe that scaling the model on larger datasets can further improve the performance of the model. + +**Mitigations:** Tracks that include vocals have been removed from the data source using corresponding tags, and using a state-of-the-art music source separation method, namely using the open source [Hybrid Transformer for Music Source Separation](https://github.com/facebookresearch/demucs) (HT-Demucs). + +**Limitations:** + +- The model is not able to generate realistic vocals. +- The model has been trained with English descriptions and will not perform as well in other languages. +- The model does not perform equally well for all music styles and cultures. +- The model sometimes generates end of songs, collapsing to silence. +- It is sometimes difficult to assess what types of text descriptions provide the best generations. Prompt engineering may be required to obtain satisfying results. + +**Biases:** The source of data is potentially lacking diversity and all music cultures are not equally represented in the dataset. The model may not perform equally well on the wide variety of music genres that exists. The generated samples from the model will reflect the biases from the training data. Further work on this model should include methods for balanced and just representations of cultures, for example, by scaling the training data to be both diverse and inclusive. + +**Risks and harms:** Biases and limitations of the model may lead to generation of samples that may be considered as biased, inappropriate or offensive. We believe that providing the code to reproduce the research and train new models will allow to broaden the application to new and more representative data. + +**Use cases:** Users must be aware of the biases, limitations and risks of the model. MAGNeT is a model developed for artificial intelligence research on controllable music generation. As such, it should not be used for downstream applications without further investigation and mitigation of risks. + +[arxiv]: https://arxiv.org/abs/2401.04577 + +## Audio-MAGNeT - Sound-effect generation models + +### Training datasets + +The audio-MAGNeT models were trained on the following data sources: a subset of AudioSet (Gemmeke et al., 2017), [BBC sound effects](https://sound-effects.bbcrewind.co.uk/), AudioCaps (Kim et al., 2019), Clotho v2 (Drossos et al., 2020), VGG-Sound (Chen et al., 2020), FSD50K (Fonseca et al., 2021), [Free To Use Sounds](https://www.freetousesounds.com/all-in-one-bundle/), [Sonniss Game Effects](https://sonniss.com/gameaudiogdc), [WeSoundEffects](https://wesoundeffects.com/we-sound-effects-bundle-2020/), [Paramount Motion - Odeon Cinematic Sound Effects](https://www.paramountmotion.com/odeon-sound-effects). + + +### Evaluation datasets + +The audio-magnet models (sound effect generation) were evaluated on the [AudioCaps benchmark](https://audiocaps.github.io/). + +### Evaluation results + +Below are the objective metrics obtained with the released audio-magnet models on AudioCaps (consisting of 10-second long samples). + +| Model | Frechet Audio Distance | KLD | +|---|---|---| +| facebook/audio-magnet-small | 3.21 | 1.42 | +| facebook/audio-magnet-medium | 2.32 | 1.64 | diff --git a/model_cards/MUSICGEN_MODEL_CARD.md b/model_cards/MUSICGEN_MODEL_CARD.md new file mode 100644 index 0000000..68e81d4 --- /dev/null +++ b/model_cards/MUSICGEN_MODEL_CARD.md @@ -0,0 +1,105 @@ +# MusicGen Model Card + +## Model details + +**Organization developing the model:** The FAIR team of Meta AI. + +**Model date:** MusicGen was trained between April 2023 and May 2023. + +**Model version:** This is the version 1 of the model. + +**Model type:** MusicGen consists of an EnCodec model for audio tokenization, an auto-regressive language model based on the transformer architecture for music modeling. The model comes in different sizes: 300M, 1.5B and 3.3B parameters ; and two variants: a model trained for text-to-music generation task and a model trained for melody-guided music generation. + +**Paper or resources for more information:** More information can be found in the paper [Simple and Controllable Music Generation][arxiv]. + +**Citation details:** See [our paper][arxiv] + +**License:** Code is released under MIT, model weights are released under CC-BY-NC 4.0. + +**Where to send questions or comments about the model:** Questions and comments about MusicGen can be sent via the [GitHub repository](https://github.com/facebookresearch/audiocraft) of the project, or by opening an issue. + +## Intended use +**Primary intended use:** The primary use of MusicGen is research on AI-based music generation, including: + +- Research efforts, such as probing and better understanding the limitations of generative models to further improve the state of science +- Generation of music guided by text or melody to understand current abilities of generative AI models by machine learning amateurs + +**Primary intended users:** The primary intended users of the model are researchers in audio, machine learning and artificial intelligence, as well as amateur seeking to better understand those models. + +**Out-of-scope use cases:** The model should not be used on downstream applications without further risk evaluation and mitigation. The model should not be used to intentionally create or disseminate music pieces that create hostile or alienating environments for people. This includes generating music that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes. + +## Metrics + +**Models performance measures:** We used the following objective measure to evaluate the model on a standard music benchmark: + +- Frechet Audio Distance computed on features extracted from a pre-trained audio classifier (VGGish) +- Kullback-Leibler Divergence on label distributions extracted from a pre-trained audio classifier (PaSST) +- CLAP Score between audio embedding and text embedding extracted from a pre-trained CLAP model + +Additionally, we run qualitative studies with human participants, evaluating the performance of the model with the following axes: + +- Overall quality of the music samples; +- Text relevance to the provided text input; +- Adherence to the melody for melody-guided music generation. + +More details on performance measures and human studies can be found in the paper. + +**Decision thresholds:** Not applicable. + +## Evaluation datasets + +The model was evaluated on the [MusicCaps benchmark](https://www.kaggle.com/datasets/googleai/musiccaps) and on an in-domain held-out evaluation set, with no artist overlap with the training set. + +## Training datasets + +The model was trained on licensed data using the following sources: the [Meta Music Initiative Sound Collection](https://www.fb.com/sound), [Shutterstock music collection](https://www.shutterstock.com/music) and the [Pond5 music collection](https://www.pond5.com/). See the paper for more details about the training set and corresponding preprocessing. + +## Evaluation results + +Below are the objective metrics obtained on MusicCaps with the released model. Note that for the publicly released models, we had all the datasets go through a state-of-the-art music source separation method, namely using the open source [Hybrid Transformer for Music Source Separation](https://github.com/facebookresearch/demucs) (HT-Demucs), in order to keep only the instrumental part. This explains the difference in objective metrics with the models used in the paper. + +| Model | Frechet Audio Distance | KLD | Text Consistency | Chroma Cosine Similarity | +|---|---|---|---|---| +| facebook/musicgen-small | 4.88 | 1.42 | 0.27 | - | +| facebook/musicgen-medium | 5.14 | 1.38 | 0.28 | - | +| facebook/musicgen-large | 5.48 | 1.37 | 0.28 | - | +| facebook/musicgen-melody | 4.93 | 1.41 | 0.27 | 0.44 | + +More information can be found in the paper [Simple and Controllable Music Generation][arxiv], in the Results section. + +## Limitations and biases + +**Data:** The data sources used to train the model are created by music professionals and covered by legal agreements with the right holders. The model is trained on 20K hours of data, we believe that scaling the model on larger datasets can further improve the performance of the model. + +**Mitigations:** Vocals have been removed from the data source using corresponding tags, and then using a state-of-the-art music source separation method, namely using the open source [Hybrid Transformer for Music Source Separation](https://github.com/facebookresearch/demucs) (HT-Demucs). + +**Limitations:** + +- The model is not able to generate realistic vocals. +- The model has been trained with English descriptions and will not perform as well in other languages. +- The model does not perform equally well for all music styles and cultures. +- The model sometimes generates end of songs, collapsing to silence. +- It is sometimes difficult to assess what types of text descriptions provide the best generations. Prompt engineering may be required to obtain satisfying results. + +**Biases:** The source of data is potentially lacking diversity and all music cultures are not equally represented in the dataset. The model may not perform equally well on the wide variety of music genres that exists. The generated samples from the model will reflect the biases from the training data. Further work on this model should include methods for balanced and just representations of cultures, for example, by scaling the training data to be both diverse and inclusive. + +**Risks and harms:** Biases and limitations of the model may lead to generation of samples that may be considered as biased, inappropriate or offensive. We believe that providing the code to reproduce the research and train new models will allow to broaden the application to new and more representative data. + +**Use cases:** Users must be aware of the biases, limitations and risks of the model. MusicGen is a model developed for artificial intelligence research on controllable music generation. As such, it should not be used for downstream applications without further investigation and mitigation of risks. + +## Update: stereo models and large melody. + +We further release a set of stereophonic capable models. Those were fine tuned for 200k updates starting +from the mono models. The training data is otherwise identical and capabilities and limitations are shared with the base modes. The stereo models work by getting 2 streams of tokens from the EnCodec model, and interleaving those using +the delay pattern. We also release a mono large model with melody conditioning capabilities. The list of new models +is as follow: + +- facebook/musicgen-stereo-small +- facebook/musicgen-stereo-medium +- facebook/musicgen-stereo-large +- facebook/musicgen-stereo-melody +- facebook/musicgen-melody-large +- facebook/musicgen-stereo-melody-large + + +[arxiv]: https://arxiv.org/abs/2306.05284 diff --git a/model_cards/MUSICGEN_STYLE_MODEL_CARD.md b/model_cards/MUSICGEN_STYLE_MODEL_CARD.md new file mode 100644 index 0000000..e7b5571 --- /dev/null +++ b/model_cards/MUSICGEN_STYLE_MODEL_CARD.md @@ -0,0 +1,58 @@ +# MusicGen Model Card + +## Model details + +**Organization developing the model:** The FAIR team of Meta AI. + +**Model date:** MusicGen-Style was trained between November 2023 and February 2024. + +**Model version:** This is the version 1 of the model. + +**Model type:** MusicGen-Style consists of an EnCodec model for audio tokenization, a 1.5B parameters auto-regressive language model based on the transformer architecture for music modeling conditioned by a text conditioner as well as a style conditioner. + +**Paper or resources for more information:** More information can be found in the paper [Audio Conditioning for Music Generation via Discrete Bottleneck Features][arxiv]. + +**Citation details:** See [our paper][arxiv] + +**License:** Code is released under MIT, model weights are released under CC-BY-NC 4.0. + +**Where to send questions or comments about the model:** Questions and comments about MusicGen-Style can be sent via the [GitHub repository](https://github.com/facebookresearch/audiocraft) of the project, or by opening an issue. + +## Intended use +**Primary intended use:** The primary use of MusicGen-Style is research on AI-based music generation, including: + +- Research efforts, such as probing and better understanding the limitations of generative models to further improve the state of science +- Generation of music guided by text or style to understand current abilities of generative AI models by machine learning amateurs + +**Primary intended users:** The primary intended users of the model are researchers in audio, machine learning and artificial intelligence, as well as amateur seeking to better understand those models. + +**Out-of-scope use cases:** The model should not be used on downstream applications without further risk evaluation and mitigation. The model should not be used to intentionally create or disseminate music pieces that create hostile or alienating environments for people. This includes generating music that people would foreseeably find disturbing, distressing, or offensive; or content that propagates historical or current stereotypes. + +## Training datasets + +The model was trained on licensed data using the following sources: the [Meta Music Initiative Sound Collection](https://www.fb.com/sound), [Shutterstock music collection](https://www.shutterstock.com/music) and the [Pond5 music collection](https://www.pond5.com/). See the paper for more details about the training set and corresponding preprocessing. + + +## Limitations and biases + +**Data:** The data sources used to train the model are created by music professionals and covered by legal agreements with the right holders. The model is trained on 20K hours of data, we believe that scaling the model on larger datasets can further improve the performance of the model. + +**Mitigations:** Vocals have been removed from the data source using corresponding tags, and then using a state-of-the-art music source separation method, namely using the open source [Hybrid Transformer for Music Source Separation](https://github.com/facebookresearch/demucs) (HT-Demucs). + +**Limitations:** + +- The model is not able to generate realistic vocals. +- The model has been trained with English descriptions and will not perform as well in other languages. +- The model does not perform equally well for all music styles and cultures. +- The model sometimes generates end of songs, collapsing to silence. +- It is sometimes difficult to assess what types of text descriptions provide the best generations. Prompt engineering may be required to obtain satisfying results. + +**Biases:** The source of data is potentially lacking diversity and all music cultures are not equally represented in the dataset. The model may not perform equally well on the wide variety of music genres that exists. The generated samples from the model will reflect the biases from the training data. Further work on this model should include methods for balanced and just representations of cultures, for example, by scaling the training data to be both diverse and inclusive. + +**Risks and harms:** Biases and limitations of the model may lead to generation of samples that may be considered as biased, inappropriate or offensive. We believe that providing the code to reproduce the research and train new models will allow to broaden the application to new and more representative data. + +**Use cases:** Users must be aware of the biases, limitations and risks of the model. MusicGen-Style is a model developed for artificial intelligence research on controllable music generation. As such, it should not be used for downstream applications without further investigation and mitigation of risks. + + + +[arxiv]: https://arxiv.org/abs/2407.12563 diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 0000000..b0b6c50 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,4 @@ +[mypy] + +[mypy-treetable,torchaudio.*,soundfile,einops.*,av.*,tqdm.*,num2words.*,spacy,xformers.*,scipy,flashy.*,torchmetrics.*,hydra,pesq,demucs.*,huggingface_hub,transformers,dac.*] +ignore_missing_imports = True diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..99c2bd6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,29 @@ +# please make sure you have already a pytorch install that is cuda enabled! +av==11.0.0 +einops +flashy>=0.0.1 +hydra-core>=1.1 +hydra_colorlog +julius +num2words +numpy<2.0.0 +sentencepiece +spacy==3.7.6 +torch==2.1.0 +torchaudio>=2.0.0,<2.1.2 +huggingface_hub +tqdm +transformers>=4.31.0 # need Encodec there. +xformers<0.0.23 +demucs +librosa +soundfile +gradio +torchmetrics +encodec +protobuf +torchvision==0.16.0 +torchtext==0.16.0 +pesq +pystoi +torchdiffeq diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/scripts/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/scripts/chords/build_chord_maps.py b/scripts/chords/build_chord_maps.py new file mode 100644 index 0000000..410875a --- /dev/null +++ b/scripts/chords/build_chord_maps.py @@ -0,0 +1,92 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +import os +import pickle +from tqdm import tqdm +import argparse + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument('--chords_folder', type=str, required=True, + help='path to directory containing parsed chords files') + parser.add_argument('--output_directory', type=str, required=False, + help='path to output directory to generate code maps to, \ + if not given - chords_folder would be used', default='') + parser.add_argument('--path_to_pre_defined_map', type=str, required=False, + help='for evaluation purpose, use pre-defined chord-to-index map', default='') + args = parser.parse_args() + return args + + +def get_chord_dict(chord_folder: str): + chord_dict = {} + distinct_chords = set() + + chord_to_index = {} # Mapping between chord and index + index_counter = 0 + + for filename in tqdm(os.listdir(chord_folder)): + if filename.endswith(".chords"): + idx = filename.split(".")[0] + + with open(os.path.join(chord_folder, filename), "rb") as file: + chord_data = pickle.load(file) + + for chord, _ in chord_data: + distinct_chords.add(chord) + if chord not in chord_to_index: + chord_to_index[chord] = index_counter + index_counter += 1 + + chord_dict[idx] = chord_data + chord_to_index["UNK"] = index_counter + return chord_dict, distinct_chords, chord_to_index + + +def get_predefined_chord_to_index_map(path_to_chords_to_index_map: str): + def inner(chord_folder: str): + chords_to_index = pickle.load(open(path_to_chords_to_index_map, "rb")) + distinct_chords = set(chords_to_index.keys()) + chord_dict = {} + for filename in tqdm(os.listdir(chord_folder), desc=f'iterating: {chord_folder}'): + if filename.endswith(".chords"): + idx = filename.split(".")[0] + + with open(os.path.join(chord_folder, filename), "rb") as file: + chord_data = pickle.load(file) + + chord_dict[idx] = chord_data + return chord_dict, distinct_chords, chords_to_index + return inner + + +if __name__ == "__main__": + '''This script processes and maps chord data from a directory of parsed chords files, + generating two output files: a combined chord dictionary and a chord-to-index mapping.''' + args = parse_args() + chord_folder = args.chords_folder + output_dir = args.output_directory + if output_dir == '': + output_dir = chord_folder + func = get_chord_dict + if args.path_to_pre_defined_map != "": + func = get_predefined_chord_to_index_map(args.path_to_pre_defined_map) + + chord_dict, distinct_chords, chord_to_index = func(chord_folder) + + # Save the combined chord dictionary as a pickle file + combined_filename = os.path.join(output_dir, "combined_chord_dict.pkl") + with open(combined_filename, "wb") as file: + pickle.dump(chord_dict, file) + + # Save the chord-to-index mapping as a pickle file + mapping_filename = os.path.join(output_dir, "chord_to_index_mapping.pkl") + with open(mapping_filename, "wb") as file: + pickle.dump(chord_to_index, file) + + print("Number of distinct chords:", len(distinct_chords)) + print("Chord dictionary:", chord_to_index) diff --git a/scripts/chords/extract_chords.py b/scripts/chords/extract_chords.py new file mode 100644 index 0000000..f6bf727 --- /dev/null +++ b/scripts/chords/extract_chords.py @@ -0,0 +1,73 @@ +# Env - chords_extraction on devfair + +import pickle +import argparse +from chord_extractor.extractors import Chordino # type: ignore +from chord_extractor import clear_conversion_cache, LabelledChordSequence # type: ignore +import os +from tqdm import tqdm + + +def parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument('--src_jsonl_file', type=str, required=True, + help='abs path to .jsonl file containing list of absolute file paths seperated by new line') + parser.add_argument('--target_output_dir', type=str, required=True, + help='target directory to save parsed chord files to, individual files will be saved inside') + parser.add_argument("--override", action="store_true") + args = parser.parse_args() + return args + + +def save_to_db_cb(tgt_dir: str): + # Every time one of the files has had chords extracted, receive the chords here + # along with the name of the original file and then run some logic here, e.g. to + # save the latest data to DB + def inner(results: LabelledChordSequence): + path = results.id.split(".wav") + + sequence = [(item.chord, item.timestamp) for item in results.sequence] + + if len(path) != 2: + print("Something") + print(path) + else: + file_idx = path[0].split("/")[-1] + with open(f"{tgt_dir}/{file_idx}.chords", "wb") as f: + # dump the object to the file + pickle.dump(sequence, f) + return inner + + +if __name__ == "__main__": + '''This script extracts chord data from a list of audio files using the Chordino extractor, + and saves the extracted chords to individual files in a target directory.''' + print("parsed args") + args = parse_args() + files_to_extract_from = list() + with open(args.src_jsonl_file, "r") as json_file: + for line in tqdm(json_file.readlines()): + # fpath = json.loads(line.replace("\n", ""))['path'] + fpath = line.replace("\n", "") + if not args.override: + fname = fpath.split("/")[-1].replace(".wav", ".chords") + if os.path.exists(f"{args.target_output_dir}/{fname}"): + continue + files_to_extract_from.append(line.replace("\n", "")) + + print(f"num files to parse: {len(files_to_extract_from)}") + + chordino = Chordino() + + # Optionally clear cache of file conversions (e.g. wav files that have been converted from midi) + clear_conversion_cache() + + # Run bulk extraction + res = chordino.extract_many( + files_to_extract_from, + callback=save_to_db_cb(args.target_output_dir), + num_extractors=80, + num_preprocessors=80, + max_files_in_cache=400, + stop_on_error=False, + ) diff --git a/scripts/chords/job_array_example.sh b/scripts/chords/job_array_example.sh new file mode 100644 index 0000000..5a1ce69 --- /dev/null +++ b/scripts/chords/job_array_example.sh @@ -0,0 +1,17 @@ +#!/bin/zsh +#SBATCH --job-name=my_job_array +#SBATCH --array=0-N # adjust the range of indices as needed +#SBATCH --output=logs/%A_%a.out # output file name format, this assumes there exists a /logs directory +#SBATCH --error=logs/%A_%a.err # error file name format, this assumes there exists a /logs directory +#SBATCH --time=01:00:00 # adjust the time limit as needed +#SBATCH --nodes=1 # adjust the number of nodes as needed +#SBATCH --ntasks-per-node=1 # adjust the number of tasks per node as needed +#SBATCH --cpus-per-task=8 # adjust the number of CPUs per task as needed +#SBATCH --mem-per-cpu=16G # adjust the memory per CPU as needed + +# Load any necessary modules or dependencies +conda activate your_env + +# run extraction of chords in job array +python scripts/chords/extract_chords.py --src_jsonl_file /path/to/parsed/filepaths_${SLURM_ARRAY_TASK_ID}.jsonl --target_output_dir /target/directory/to/save/chords/to --path_to_pre_defined_map /path/to/predefined/chord_to_index_mapping.pkl + diff --git a/scripts/mos.py b/scripts/mos.py new file mode 100644 index 0000000..a711c9e --- /dev/null +++ b/scripts/mos.py @@ -0,0 +1,286 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + + +""" +To run this script, from the root of the repo. Make sure to have Flask installed + + FLASK_DEBUG=1 FLASK_APP=scripts.mos flask run -p 4567 + # or if you have gunicorn + gunicorn -w 4 -b 127.0.0.1:8895 -t 120 'scripts.mos:app' --access-logfile - + +""" +from collections import defaultdict +from functools import wraps +from hashlib import sha1 +import json +import math +from pathlib import Path +import random +import typing as tp + +from flask import Flask, redirect, render_template, request, session, url_for + +from audiocraft import train +from audiocraft.utils.samples.manager import get_samples_for_xps + + +SAMPLES_PER_PAGE = 8 +MAX_RATING = 5 +storage = Path(train.main.dora.dir / 'mos_storage') +storage.mkdir(exist_ok=True) +surveys = storage / 'surveys' +surveys.mkdir(exist_ok=True) +magma_root = Path(train.__file__).parent.parent +app = Flask('mos', static_folder=str(magma_root / 'scripts/static'), + template_folder=str(magma_root / 'scripts/templates')) +app.secret_key = b'audiocraft makes the best songs' + + +def normalize_path(path: Path): + """Just to make path a bit nicer, make them relative to the Dora root dir. + """ + path = path.resolve() + dora_dir = train.main.dora.dir.resolve() / 'xps' + return path.relative_to(dora_dir) + + +def get_full_path(normalized_path: Path): + """Revert `normalize_path`. + """ + return train.main.dora.dir.resolve() / 'xps' / normalized_path + + +def get_signature(xps: tp.List[str]): + """Return a signature for a list of XP signatures. + """ + return sha1(json.dumps(xps).encode()).hexdigest()[:10] + + +def ensure_logged(func): + """Ensure user is logged in. + """ + @wraps(func) + def _wrapped(*args, **kwargs): + user = session.get('user') + if user is None: + return redirect(url_for('login', redirect_to=request.url)) + return func(*args, **kwargs) + return _wrapped + + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login user if not already, then redirect. + """ + user = session.get('user') + if user is None: + error = None + if request.method == 'POST': + user = request.form['user'] + if not user: + error = 'User cannot be empty' + if user is None or error: + return render_template('login.html', error=error) + assert user + session['user'] = user + redirect_to = request.args.get('redirect_to') + if redirect_to is None: + redirect_to = url_for('index') + return redirect(redirect_to) + + +@app.route('/', methods=['GET', 'POST']) +@ensure_logged +def index(): + """Offer to create a new study. + """ + errors = [] + if request.method == 'POST': + xps_or_grids = [part.strip() for part in request.form['xps'].split()] + xps = set() + for xp_or_grid in xps_or_grids: + xp_path = train.main.dora.dir / 'xps' / xp_or_grid + if xp_path.exists(): + xps.add(xp_or_grid) + continue + grid_path = train.main.dora.dir / 'grids' / xp_or_grid + if grid_path.exists(): + for child in grid_path.iterdir(): + if child.is_symlink(): + xps.add(child.name) + continue + errors.append(f'{xp_or_grid} is neither an XP nor a grid!') + assert xps or errors + blind = 'true' if request.form.get('blind') == 'on' else 'false' + xps = list(xps) + if not errors: + signature = get_signature(xps) + manifest = { + 'xps': xps, + } + survey_path = surveys / signature + survey_path.mkdir(exist_ok=True) + with open(survey_path / 'manifest.json', 'w') as f: + json.dump(manifest, f, indent=2) + return redirect(url_for('survey', blind=blind, signature=signature)) + return render_template('index.html', errors=errors) + + +@app.route('/survey/', methods=['GET', 'POST']) +@ensure_logged +def survey(signature): + success = request.args.get('success', False) + seed = int(request.args.get('seed', 4321)) + blind = request.args.get('blind', 'false') in ['true', 'on', 'True'] + exclude_prompted = request.args.get('exclude_prompted', 'false') in ['true', 'on', 'True'] + exclude_unprompted = request.args.get('exclude_unprompted', 'false') in ['true', 'on', 'True'] + max_epoch = int(request.args.get('max_epoch', '-1')) + survey_path = surveys / signature + assert survey_path.exists(), survey_path + + user = session['user'] + result_folder = survey_path / 'results' + result_folder.mkdir(exist_ok=True) + result_file = result_folder / f'{user}_{seed}.json' + + with open(survey_path / 'manifest.json') as f: + manifest = json.load(f) + + xps = [train.main.get_xp_from_sig(xp) for xp in manifest['xps']] + names, ref_name = train.main.get_names(xps) + + samples_kwargs = { + 'exclude_prompted': exclude_prompted, + 'exclude_unprompted': exclude_unprompted, + 'max_epoch': max_epoch, + } + matched_samples = get_samples_for_xps(xps, epoch=-1, **samples_kwargs) # fetch latest epoch + models_by_id = { + id: [{ + 'xp': xps[idx], + 'xp_name': names[idx], + 'model_id': f'{xps[idx].sig}-{sample.id}', + 'sample': sample, + 'is_prompted': sample.prompt is not None, + 'errors': [], + } for idx, sample in enumerate(samples)] + for id, samples in matched_samples.items() + } + experiments = [ + {'xp': xp, 'name': names[idx], 'epoch': list(matched_samples.values())[0][idx].epoch} + for idx, xp in enumerate(xps) + ] + + keys = list(matched_samples.keys()) + keys.sort() + rng = random.Random(seed) + rng.shuffle(keys) + model_ids = keys[:SAMPLES_PER_PAGE] + + if blind: + for key in model_ids: + rng.shuffle(models_by_id[key]) + + ok = True + if request.method == 'POST': + all_samples_results = [] + for id in model_ids: + models = models_by_id[id] + result = { + 'id': id, + 'is_prompted': models[0]['is_prompted'], + 'models': {} + } + all_samples_results.append(result) + for model in models: + rating = request.form[model['model_id']] + if rating: + rating = int(rating) + assert rating <= MAX_RATING and rating >= 1 + result['models'][model['xp'].sig] = rating + model['rating'] = rating + else: + ok = False + model['errors'].append('Please rate this model.') + if ok: + result = { + 'results': all_samples_results, + 'seed': seed, + 'user': user, + 'blind': blind, + 'exclude_prompted': exclude_prompted, + 'exclude_unprompted': exclude_unprompted, + } + print(result) + with open(result_file, 'w') as f: + json.dump(result, f) + seed = seed + 1 + return redirect(url_for( + 'survey', signature=signature, blind=blind, seed=seed, + exclude_prompted=exclude_prompted, exclude_unprompted=exclude_unprompted, + max_epoch=max_epoch, success=True)) + + ratings = list(range(1, MAX_RATING + 1)) + return render_template( + 'survey.html', ratings=ratings, blind=blind, seed=seed, signature=signature, success=success, + exclude_prompted=exclude_prompted, exclude_unprompted=exclude_unprompted, max_epoch=max_epoch, + experiments=experiments, models_by_id=models_by_id, model_ids=model_ids, errors=[], + ref_name=ref_name, already_filled=result_file.exists()) + + +@app.route('/audio/') +def audio(path: str): + full_path = Path('/') / path + assert full_path.suffix in [".mp3", ".wav"] + return full_path.read_bytes(), {'Content-Type': 'audio/mpeg'} + + +def mean(x): + return sum(x) / len(x) + + +def std(x): + m = mean(x) + return math.sqrt(sum((i - m)**2 for i in x) / len(x)) + + +@app.route('/results/') +@ensure_logged +def results(signature): + + survey_path = surveys / signature + assert survey_path.exists(), survey_path + result_folder = survey_path / 'results' + result_folder.mkdir(exist_ok=True) + + # ratings per model, then per user. + ratings_per_model = defaultdict(list) + users = [] + for result_file in result_folder.iterdir(): + if result_file.suffix != '.json': + continue + with open(result_file) as f: + results = json.load(f) + users.append(results['user']) + for result in results['results']: + for sig, rating in result['models'].items(): + ratings_per_model[sig].append(rating) + + fmt = '{:.2f}' + models = [] + for model in sorted(ratings_per_model.keys()): + ratings = ratings_per_model[model] + + models.append({ + 'sig': model, + 'samples': len(ratings), + 'mean_rating': fmt.format(mean(ratings)), + # the value 1.96 was probably chosen to achieve some + # confidence interval assuming gaussianity. + 'std_rating': fmt.format(1.96 * std(ratings) / len(ratings)**0.5), + }) + return render_template('results.html', signature=signature, models=models, users=users) diff --git a/scripts/resample_dataset.py b/scripts/resample_dataset.py new file mode 100644 index 0000000..af52887 --- /dev/null +++ b/scripts/resample_dataset.py @@ -0,0 +1,207 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Resampling script. +""" +import argparse +from pathlib import Path +import shutil +import typing as tp + +import submitit +import tqdm + +from audiocraft.data.audio import audio_read, audio_write +from audiocraft.data.audio_dataset import load_audio_meta, find_audio_files +from audiocraft.data.audio_utils import convert_audio +from audiocraft.environment import AudioCraftEnvironment + + +def read_txt_files(path: tp.Union[str, Path]): + with open(args.files_path) as f: + lines = [line.rstrip() for line in f] + print(f"Read {len(lines)} in .txt") + lines = [line for line in lines if Path(line).suffix not in ['.json', '.txt', '.csv']] + print(f"Filtered and keep {len(lines)} from .txt") + return lines + + +def read_egs_files(path: tp.Union[str, Path]): + path = Path(path) + if path.is_dir(): + if (path / 'data.jsonl').exists(): + path = path / 'data.jsonl' + elif (path / 'data.jsonl.gz').exists(): + path = path / 'data.jsonl.gz' + else: + raise ValueError("Don't know where to read metadata from in the dir. " + "Expecting either a data.jsonl or data.jsonl.gz file but none found.") + meta = load_audio_meta(path) + return [m.path for m in meta] + + +def process_dataset(args, n_shards: int, node_index: int, task_index: tp.Optional[int] = None): + if task_index is None: + env = submitit.JobEnvironment() + task_index = env.global_rank + shard_index = node_index * args.tasks_per_node + task_index + + if args.files_path is None: + lines = [m.path for m in find_audio_files(args.root_path, resolve=False, progress=True, workers=8)] + else: + files_path = Path(args.files_path) + if files_path.suffix == '.txt': + print(f"Reading file list from .txt file: {args.files_path}") + lines = read_txt_files(args.files_path) + else: + print(f"Reading file list from egs: {args.files_path}") + lines = read_egs_files(args.files_path) + + total_files = len(lines) + print( + f"Total of {total_files} processed with {n_shards} shards. " + + f"Current idx = {shard_index} -> {total_files // n_shards} files to process" + ) + for idx, line in tqdm.tqdm(enumerate(lines)): + + # skip if not part of this shard + if idx % n_shards != shard_index: + continue + + path = str(AudioCraftEnvironment.apply_dataset_mappers(line)) + root_path = str(args.root_path) + if not root_path.endswith('/'): + root_path += '/' + assert path.startswith(str(root_path)), \ + f"Mismatch between path and provided root: {path} VS {root_path}" + + try: + metadata_path = Path(path).with_suffix('.json') + out_path = args.out_path / path[len(root_path):] + out_metadata_path = out_path.with_suffix('.json') + out_done_token = out_path.with_suffix('.done') + + # don't reprocess existing files + if out_done_token.exists(): + continue + + print(idx, out_path, path) + mix, sr = audio_read(path) + mix_channels = args.channels if args.channels is not None and args.channels > 0 else mix.size(0) + # enforce simple stereo + out_channels = mix_channels + if out_channels > 2: + print(f"Mix has more than two channels: {out_channels}, enforcing 2 channels") + out_channels = 2 + out_sr = args.sample_rate if args.sample_rate is not None else sr + out_wav = convert_audio(mix, sr, out_sr, out_channels) + audio_write(out_path.with_suffix(''), out_wav, sample_rate=out_sr, + format=args.format, normalize=False, strategy='clip') + if metadata_path.exists(): + shutil.copy(metadata_path, out_metadata_path) + else: + print(f"No metadata found at {str(metadata_path)}") + out_done_token.touch() + except Exception as e: + print(f"Error processing file line: {line}, {e}") + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Resample dataset with SLURM.") + parser.add_argument( + "--log_root", + type=Path, + default=Path.home() / 'tmp' / 'resample_logs', + ) + parser.add_argument( + "--files_path", + type=Path, + help="List of files to process, either .txt (one file per line) or a jsonl[.gz].", + ) + parser.add_argument( + "--root_path", + type=Path, + required=True, + help="When rewriting paths, this will be the prefix to remove.", + ) + parser.add_argument( + "--out_path", + type=Path, + required=True, + help="When rewriting paths, `root_path` will be replaced by this.", + ) + parser.add_argument("--xp_name", type=str, default="shutterstock") + parser.add_argument( + "--nodes", + type=int, + default=4, + ) + parser.add_argument( + "--tasks_per_node", + type=int, + default=20, + ) + parser.add_argument( + "--cpus_per_task", + type=int, + default=4, + ) + parser.add_argument( + "--memory_gb", + type=int, + help="Memory in GB." + ) + parser.add_argument( + "--format", + type=str, + default="wav", + ) + parser.add_argument( + "--sample_rate", + type=int, + default=32000, + ) + parser.add_argument( + "--channels", + type=int, + ) + parser.add_argument( + "--partition", + default='learnfair', + ) + parser.add_argument("--qos") + parser.add_argument("--account") + parser.add_argument("--timeout", type=int, default=4320) + parser.add_argument('--debug', action='store_true', help='debug mode (local run)') + args = parser.parse_args() + n_shards = args.tasks_per_node * args.nodes + if args.files_path is None: + print("Warning: --files_path not provided, not recommended when processing more than 10k files.") + if args.debug: + print("Debugging mode") + process_dataset(args, n_shards=n_shards, node_index=0, task_index=0) + else: + + log_folder = Path(args.log_root) / args.xp_name / '%j' + print(f"Logging to: {log_folder}") + log_folder.parent.mkdir(parents=True, exist_ok=True) + executor = submitit.AutoExecutor(folder=str(log_folder)) + if args.qos: + executor.update_parameters(slurm_partition=args.partition, slurm_qos=args.qos, slurm_account=args.account) + else: + executor.update_parameters(slurm_partition=args.partition) + executor.update_parameters( + slurm_job_name=args.xp_name, timeout_min=args.timeout, + cpus_per_task=args.cpus_per_task, tasks_per_node=args.tasks_per_node, nodes=1) + if args.memory_gb: + executor.update_parameters(mem=f'{args.memory_gb}GB') + jobs = [] + with executor.batch(): + for node_index in range(args.nodes): + job = executor.submit(process_dataset, args, n_shards=n_shards, node_index=node_index) + jobs.append(job) + for job in jobs: + print(f"Waiting on job {job.job_id}") + job.results() diff --git a/scripts/static/style.css b/scripts/static/style.css new file mode 100644 index 0000000..a0df7c6 --- /dev/null +++ b/scripts/static/style.css @@ -0,0 +1,113 @@ +body { + background-color: #fbfbfb; + margin: 0; +} + +select, input { + font-size: 1em; + max-width: 100%; +} + +.xp_name { + font-family: monospace; +} + +.simple_form { + background-color: #dddddd; + padding: 1em; + margin: 0.5em; +} + +textarea { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +.rating { + background-color: grey; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 8px; + padding-right: 8px; + margin-right: 2px; + cursor:pointer; +} + +.rating_selected { + background-color: purple; +} + +.content { + font-family: sans-serif; + background-color: #f6f6f6; + padding: 40px; + margin: 0 auto; + max-width: 1000px; +} + +.track label { + padding-top: 10px; + padding-bottom: 10px; +} +.track { + padding: 15px; + margin: 5px; + background-color: #c8c8c8; +} + +.submit-big { + width:400px; + height:30px; + font-size: 20px; +} + +.error { + color: red; +} + +.ratings { + margin-left: 10px; +} + +.important { + font-weight: bold; +} + +.survey { + margin-bottom: 100px; +} + +.success { + color: #25901b; + font-weight: bold; +} +.warning { + color: #8a1f19; + font-weight: bold; +} +.track>section { + display: flex; + align-items: center; +} + +.prompt { + display: flex; + align-items: center; +} + +.track>section>div { + padding-left: 10px; +} + +audio { + max-width: 280px; + max-height: 40px; + margin-left: 10px; + margin-right: 10px; +} + +.special { + font-weight: bold; + color: #2c2c2c; +} + diff --git a/scripts/templates/base.html b/scripts/templates/base.html new file mode 100644 index 0000000..f74668c --- /dev/null +++ b/scripts/templates/base.html @@ -0,0 +1,16 @@ + + + + {% block head %} + + + AudioCraft — MOS + {% endblock %} + + +
      +

      AudioCraft — MOS

      + {% block content %}{% endblock %} +
      + + diff --git a/scripts/templates/index.html b/scripts/templates/index.html new file mode 100644 index 0000000..7bd3afe --- /dev/null +++ b/scripts/templates/index.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} +{% block content %} + +

      + Welcome {{session['user']}} to the internal MOS assistant for AudioCraft. + You can create custom surveys between your models, that you can + evaluate yourself, or with the help of your teammates, by simply + sharing a link! +

      + +{% for error in errors %} +

      {{error}}

      +{% endfor %} +
      +
      +
      + +
      +
      + +
      + + + +{% endblock %} diff --git a/scripts/templates/login.html b/scripts/templates/login.html new file mode 100644 index 0000000..dd89ac6 --- /dev/null +++ b/scripts/templates/login.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} +{% block content %} + +

      + You must identify yourself first! We use a highly secured protocol + where you just decide your username, and that's it. No password, no encryption, + just pure trust. +

      + +{% if error %} +

      {{error}}

      +{% endif %} + + + + + +{% endblock %} diff --git a/scripts/templates/results.html b/scripts/templates/results.html new file mode 100644 index 0000000..8ddce59 --- /dev/null +++ b/scripts/templates/results.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% block content %} + +

      Results for survey #{{signature}}

      +

      Checkout the survey page for details on the models.

      +

      The following users voted: + {% for user in users %} + {{user}} + {% endfor %} + +{% for model in models %} +

      {{model['sig']}} ({{model['samples']}} samples)

      +

      Ratings: {{model['mean_rating']}} ± {{model['std_rating']}}

      + +{% endfor %} + +{% endblock %} diff --git a/scripts/templates/survey.html b/scripts/templates/survey.html new file mode 100644 index 0000000..785d1e6 --- /dev/null +++ b/scripts/templates/survey.html @@ -0,0 +1,131 @@ +{% extends "base.html" %} +{% block content %} +

      Survey #{{signature}}

      +{% if success %} +

      Your ratings have been saved! +You have been moved to the next random seed, if you want +to keep rating more samples.

      +{% endif %} +{% if already_filled %} +

      You already rated those samples in the past, + filling this form will override your previous ratings. +

      +{% endif %} +

      Welcome {{session['user']}} to the survey #{{signature}}. +Go to the result page to check the results. Go to the home page to start a new survey. +

      + +{% for error in errors %} +

      {{error}}

      +{% endfor %} + +{% if not blind %} +

      Base config is: {{ref_name}}

      +

      The following experiments are compared:

      +
        + {% for experiment in experiments %} +
      • {{experiment.xp.sig}} ({{experiment.epoch}} epochs): {{experiment.name}}
      • + {% endfor %} +
      +{% else %} +

      This is a blind experiment, the order of all XPs is shuffled with every sample.

      +{% endif %} +

      The current random seed is {{seed}}. You can change it with the following form, and also update blind/non blind. +

      + + + + + + + +
      + +

      Samples

      +
      +
      +{% for id in model_ids %} +
      +

      {{id}}

      + {% for model in models_by_id[id] %} + {% if loop.index == 1 and model.is_prompted %} +
      +

      Prompt is

      + +

      Ground truth is

      + +
      + {% endif %} + {% for err in model['errors'] %} +

      {{err}}

      + {% endfor %} +
      + {% if not blind %} +

      {{model.xp.sig}}:

      + {% endif %} + +

      Rating:

      +
      + {% for rating in ratings %} + {{rating}} + {% endfor %} + +
      +

      +
      + {% endfor %} +
      +
      +{% endfor %} + + +
      + +{% endblock %} diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..a008900 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,14 @@ +[pep8] +max-line-length = 120 + +[flake8] +max-line-length = 120 + +[coverage:report] +include = audiocraft/* +omit = + audiocraft/environment.py + audiocraft/solvers/* + audiocraft/utils/* + audiocraft/*/loaders.py + audiocraft/*/builders.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..83c40d6 --- /dev/null +++ b/setup.py @@ -0,0 +1,63 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from pathlib import Path + +from setuptools import setup, find_packages + + +NAME = 'audiocraft' +DESCRIPTION = 'Audio generation research library for PyTorch' + +URL = 'https://github.com/facebookresearch/audiocraft' +AUTHOR = 'FAIR Speech & Audio' +EMAIL = 'defossez@meta.com, jadecopet@meta.com' +REQUIRES_PYTHON = '>=3.8.0' + +for line in open('audiocraft/__init__.py'): + line = line.strip() + if '__version__' in line: + context = {} + exec(line, context) + VERSION = context['__version__'] + +HERE = Path(__file__).parent + +try: + with open(HERE / "README.md", encoding='utf-8') as f: + long_description = '\n' + f.read() +except FileNotFoundError: + long_description = DESCRIPTION + +REQUIRED = [i.strip() for i in open(HERE / 'requirements.txt') if not i.startswith('#')] + +setup( + name=NAME, + version=VERSION, + description=DESCRIPTION, + author_email=EMAIL, + long_description=long_description, + long_description_content_type='text/markdown', + author=AUTHOR, + url=URL, + python_requires=REQUIRES_PYTHON, + install_requires=REQUIRED, + extras_require={ + 'dev': ['coverage', 'flake8', 'mypy', 'pdoc3', 'pytest'], + 'wm': ['audioseal'], + }, + packages=[p for p in find_packages() if p.startswith('audiocraft')], + package_data={'audiocraft': ['py.typed']}, + include_package_data=True, + license='MIT License', + classifiers=[ + # Trove classifiers + # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers + 'License :: OSI Approved :: MIT License', + 'Topic :: Multimedia :: Sound/Audio', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + ], +) diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/adversarial/__init__.py b/tests/adversarial/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/adversarial/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/adversarial/test_discriminators.py b/tests/adversarial/test_discriminators.py new file mode 100644 index 0000000..fad89a0 --- /dev/null +++ b/tests/adversarial/test_discriminators.py @@ -0,0 +1,67 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import random + +import torch + +from audiocraft.adversarial.discriminators import ( + MultiPeriodDiscriminator, + MultiScaleDiscriminator, + MultiScaleSTFTDiscriminator +) + + +class TestMultiPeriodDiscriminator: + + def test_mpd_discriminator(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + periods = [1, 2, 3] + mpd = MultiPeriodDiscriminator(periods=periods, in_channels=C) + logits, fmaps = mpd(t0) + + assert len(logits) == len(periods) + assert len(fmaps) == len(periods) + assert all([logit.shape[0] == N and len(logit.shape) == 4 for logit in logits]) + assert all([feature.shape[0] == N for fmap in fmaps for feature in fmap]) + + +class TestMultiScaleDiscriminator: + + def test_msd_discriminator(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + + scale_norms = ['weight_norm', 'weight_norm'] + msd = MultiScaleDiscriminator(scale_norms=scale_norms, in_channels=C) + logits, fmaps = msd(t0) + + assert len(logits) == len(scale_norms) + assert len(fmaps) == len(scale_norms) + assert all([logit.shape[0] == N and len(logit.shape) == 3 for logit in logits]) + assert all([feature.shape[0] == N for fmap in fmaps for feature in fmap]) + + +class TestMultiScaleStftDiscriminator: + + def test_msstftd_discriminator(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + + n_filters = 4 + n_ffts = [128, 256, 64] + hop_lengths = [32, 64, 16] + win_lengths = [128, 256, 64] + + msstftd = MultiScaleSTFTDiscriminator(filters=n_filters, n_ffts=n_ffts, hop_lengths=hop_lengths, + win_lengths=win_lengths, in_channels=C) + logits, fmaps = msstftd(t0) + + assert len(logits) == len(n_ffts) + assert len(fmaps) == len(n_ffts) + assert all([logit.shape[0] == N and len(logit.shape) == 4 for logit in logits]) + assert all([feature.shape[0] == N for fmap in fmaps for feature in fmap]) diff --git a/tests/adversarial/test_losses.py b/tests/adversarial/test_losses.py new file mode 100644 index 0000000..0e30bc3 --- /dev/null +++ b/tests/adversarial/test_losses.py @@ -0,0 +1,159 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import pytest +import random + +import torch + +from audiocraft.adversarial import ( + AdversarialLoss, + get_adv_criterion, + get_real_criterion, + get_fake_criterion, + FeatureMatchingLoss, + MultiScaleDiscriminator, +) + + +class TestAdversarialLoss: + + def test_adversarial_single_multidiscriminator(self): + adv = MultiScaleDiscriminator() + optimizer = torch.optim.Adam( + adv.parameters(), + lr=1e-4, + ) + loss, loss_real, loss_fake = get_adv_criterion('mse'), get_real_criterion('mse'), get_fake_criterion('mse') + adv_loss = AdversarialLoss(adv, optimizer, loss, loss_real, loss_fake) + + B, C, T = 4, 1, random.randint(1000, 5000) + real = torch.randn(B, C, T) + fake = torch.randn(B, C, T) + + disc_loss = adv_loss.train_adv(fake, real) + assert isinstance(disc_loss, torch.Tensor) and isinstance(disc_loss.item(), float) + + loss, loss_feat = adv_loss(fake, real) + assert isinstance(loss, torch.Tensor) and isinstance(loss.item(), float) + # we did not specify feature loss + assert loss_feat.item() == 0. + + def test_adversarial_feat_loss(self): + adv = MultiScaleDiscriminator() + optimizer = torch.optim.Adam( + adv.parameters(), + lr=1e-4, + ) + loss, loss_real, loss_fake = get_adv_criterion('mse'), get_real_criterion('mse'), get_fake_criterion('mse') + feat_loss = FeatureMatchingLoss() + adv_loss = AdversarialLoss(adv, optimizer, loss, loss_real, loss_fake, feat_loss) + + B, C, T = 4, 1, random.randint(1000, 5000) + real = torch.randn(B, C, T) + fake = torch.randn(B, C, T) + + loss, loss_feat = adv_loss(fake, real) + + assert isinstance(loss, torch.Tensor) and isinstance(loss.item(), float) + assert isinstance(loss_feat, torch.Tensor) and isinstance(loss.item(), float) + + +class TestGeneratorAdversarialLoss: + + def test_hinge_generator_adv_loss(self): + adv_loss = get_adv_criterion(loss_type='hinge') + + t0 = torch.randn(1, 2, 0) + t1 = torch.FloatTensor([1.0, 2.0, 3.0]) + + assert adv_loss(t0).item() == 0.0 + assert adv_loss(t1).item() == -2.0 + + def test_mse_generator_adv_loss(self): + adv_loss = get_adv_criterion(loss_type='mse') + + t0 = torch.randn(1, 2, 0) + t1 = torch.FloatTensor([1.0, 1.0, 1.0]) + t2 = torch.FloatTensor([2.0, 5.0, 5.0]) + + assert adv_loss(t0).item() == 0.0 + assert adv_loss(t1).item() == 0.0 + assert adv_loss(t2).item() == 11.0 + + +class TestDiscriminatorAdversarialLoss: + + def _disc_loss(self, loss_type: str, fake: torch.Tensor, real: torch.Tensor): + disc_loss_real = get_real_criterion(loss_type) + disc_loss_fake = get_fake_criterion(loss_type) + + loss = disc_loss_fake(fake) + disc_loss_real(real) + return loss + + def test_hinge_discriminator_adv_loss(self): + loss_type = 'hinge' + t0 = torch.FloatTensor([0.0, 0.0, 0.0]) + t1 = torch.FloatTensor([1.0, 2.0, 3.0]) + + assert self._disc_loss(loss_type, t0, t0).item() == 2.0 + assert self._disc_loss(loss_type, t1, t1).item() == 3.0 + + def test_mse_discriminator_adv_loss(self): + loss_type = 'mse' + + t0 = torch.FloatTensor([0.0, 0.0, 0.0]) + t1 = torch.FloatTensor([1.0, 1.0, 1.0]) + + assert self._disc_loss(loss_type, t0, t0).item() == 1.0 + assert self._disc_loss(loss_type, t1, t0).item() == 2.0 + + +class TestFeatureMatchingLoss: + + def test_features_matching_loss_base(self): + ft_matching_loss = FeatureMatchingLoss() + length = random.randrange(1, 100_000) + t1 = torch.randn(1, 2, length) + + loss = ft_matching_loss([t1], [t1]) + assert isinstance(loss, torch.Tensor) + assert loss.item() == 0.0 + + def test_features_matching_loss_raises_exception(self): + ft_matching_loss = FeatureMatchingLoss() + length = random.randrange(1, 100_000) + t1 = torch.randn(1, 2, length) + t2 = torch.randn(1, 2, length + 1) + + with pytest.raises(AssertionError): + ft_matching_loss([], []) + + with pytest.raises(AssertionError): + ft_matching_loss([t1], [t1, t1]) + + with pytest.raises(AssertionError): + ft_matching_loss([t1], [t2]) + + def test_features_matching_loss_output(self): + loss_nonorm = FeatureMatchingLoss(normalize=False) + loss_layer_normed = FeatureMatchingLoss(normalize=True) + + length = random.randrange(1, 100_000) + t1 = torch.randn(1, 2, length) + t2 = torch.randn(1, 2, length) + + assert loss_nonorm([t1, t2], [t1, t2]).item() == 0.0 + assert loss_layer_normed([t1, t2], [t1, t2]).item() == 0.0 + + t3 = torch.FloatTensor([1.0, 2.0, 3.0]) + t4 = torch.FloatTensor([2.0, 10.0, 3.0]) + + assert loss_nonorm([t3], [t4]).item() == 3.0 + assert loss_nonorm([t3, t3], [t4, t4]).item() == 6.0 + + assert loss_layer_normed([t3], [t4]).item() == 3.0 + assert loss_layer_normed([t3, t3], [t4, t4]).item() == 3.0 diff --git a/tests/common_utils/__init__.py b/tests/common_utils/__init__.py new file mode 100644 index 0000000..74ffcfe --- /dev/null +++ b/tests/common_utils/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +# flake8: noqa +from .temp_utils import TempDirMixin +from .wav_utils import get_batch_white_noise, get_white_noise, save_wav diff --git a/tests/common_utils/temp_utils.py b/tests/common_utils/temp_utils.py new file mode 100644 index 0000000..b45d896 --- /dev/null +++ b/tests/common_utils/temp_utils.py @@ -0,0 +1,56 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import os +import tempfile + + +class TempDirMixin: + """Mixin to provide easy access to temp dir. + """ + + temp_dir_ = None + + @classmethod + def get_base_temp_dir(cls): + # If AUDIOCRAFT_TEST_DIR is set, use it instead of temporary directory. + # this is handy for debugging. + key = "AUDIOCRAFT_TEST_DIR" + if key in os.environ: + return os.environ[key] + if cls.temp_dir_ is None: + cls.temp_dir_ = tempfile.TemporaryDirectory() + return cls.temp_dir_.name + + @classmethod + def tearDownClass(cls): + if cls.temp_dir_ is not None: + try: + cls.temp_dir_.cleanup() + cls.temp_dir_ = None + except PermissionError: + # On Windows there is a know issue with `shutil.rmtree`, + # which fails intermittently. + # https://github.com/python/cpython/issues/74168 + # Following the above thread, we ignore it. + pass + super().tearDownClass() + + @property + def id(self): + return self.__class__.__name__ + + def get_temp_path(self, *paths): + temp_dir = os.path.join(self.get_base_temp_dir(), self.id) + path = os.path.join(temp_dir, *paths) + os.makedirs(os.path.dirname(path), exist_ok=True) + return path + + def get_temp_dir(self, *paths): + temp_dir = os.path.join(self.get_base_temp_dir(), self.id) + path = os.path.join(temp_dir, *paths) + os.makedirs(path, exist_ok=True) + return path diff --git a/tests/common_utils/wav_utils.py b/tests/common_utils/wav_utils.py new file mode 100644 index 0000000..cc14a9c --- /dev/null +++ b/tests/common_utils/wav_utils.py @@ -0,0 +1,29 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from pathlib import Path + +import torch + +from audiocraft.data.audio import audio_write + + +def get_white_noise(chs: int = 1, num_frames: int = 1): + wav = torch.randn(chs, num_frames) + return wav + + +def get_batch_white_noise(bs: int = 1, chs: int = 1, num_frames: int = 1): + wav = torch.randn(bs, chs, num_frames) + return wav + + +def save_wav(path: str, wav: torch.Tensor, sample_rate: int): + assert wav.dim() == 2, wav.shape + fp = Path(path) + assert fp.suffix in ['.mp3', '.ogg', '.wav', '.flac'], fp + audio_write(fp.parent / fp.stem, wav, sample_rate, fp.suffix[1:], + normalize=False, strategy='clip', peak_clip_headroom_db=0) diff --git a/tests/data/__init__.py b/tests/data/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/data/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/data/test_audio.py b/tests/data/test_audio.py new file mode 100644 index 0000000..40c0d5e --- /dev/null +++ b/tests/data/test_audio.py @@ -0,0 +1,239 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from itertools import product +import random + +import numpy as np +import torch +import torchaudio + +from audiocraft.data.audio import audio_info, audio_read, audio_write, _av_read + +from ..common_utils import TempDirMixin, get_white_noise, save_wav + + +class TestInfo(TempDirMixin): + + def test_info_mp3(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + wav = get_white_noise(ch, int(sample_rate * duration)) + path = self.get_temp_path('sample_wav.mp3') + save_wav(path, wav, sample_rate) + info = audio_info(path) + assert info.sample_rate == sample_rate + assert info.channels == ch + # we cannot trust torchaudio for num_frames, so we don't check + + def _test_info_format(self, ext: str): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames) + path = self.get_temp_path(f'sample_wav{ext}') + save_wav(path, wav, sample_rate) + info = audio_info(path) + assert info.sample_rate == sample_rate + assert info.channels == ch + assert np.isclose(info.duration, duration, atol=1e-5) + + def test_info_wav(self): + self._test_info_format('.wav') + + def test_info_flac(self): + self._test_info_format('.flac') + + def test_info_ogg(self): + self._test_info_format('.ogg') + + def test_info_m4a(self): + # TODO: generate m4a file programmatically + # self._test_info_format('.m4a') + pass + + +class TestRead(TempDirMixin): + + def test_read_full_wav(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames).clamp(-0.99, 0.99) + path = self.get_temp_path('sample_wav.wav') + save_wav(path, wav, sample_rate) + read_wav, read_sr = audio_read(path) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[1] == wav.shape[1] + assert torch.allclose(read_wav, wav, rtol=1e-03, atol=1e-04) + + def test_read_partial_wav(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + read_duration = torch.rand(1).item() + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + read_frames = int(sample_rate * read_duration) + wav = get_white_noise(ch, n_frames).clamp(-0.99, 0.99) + path = self.get_temp_path('sample_wav.wav') + save_wav(path, wav, sample_rate) + read_wav, read_sr = audio_read(path, 0, read_duration) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[1] == read_frames + assert torch.allclose(read_wav[..., 0:read_frames], wav[..., 0:read_frames], rtol=1e-03, atol=1e-04) + + def test_read_seek_time_wav(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + read_duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames).clamp(-0.99, 0.99) + path = self.get_temp_path('sample_wav.wav') + save_wav(path, wav, sample_rate) + seek_time = torch.rand(1).item() + read_wav, read_sr = audio_read(path, seek_time, read_duration) + seek_frames = int(sample_rate * seek_time) + expected_frames = n_frames - seek_frames + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[1] == expected_frames + assert torch.allclose(read_wav, wav[..., seek_frames:], rtol=1e-03, atol=1e-04) + + def test_read_seek_time_wav_padded(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + read_duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + read_frames = int(sample_rate * read_duration) + wav = get_white_noise(ch, n_frames).clamp(-0.99, 0.99) + path = self.get_temp_path('sample_wav.wav') + save_wav(path, wav, sample_rate) + seek_time = torch.rand(1).item() + seek_frames = int(sample_rate * seek_time) + expected_frames = n_frames - seek_frames + read_wav, read_sr = audio_read(path, seek_time, read_duration, pad=True) + expected_pad_wav = torch.zeros(wav.shape[0], read_frames - expected_frames) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[1] == read_frames + assert torch.allclose(read_wav[..., :expected_frames], wav[..., seek_frames:], rtol=1e-03, atol=1e-04) + assert torch.allclose(read_wav[..., expected_frames:], expected_pad_wav) + + +class TestAvRead(TempDirMixin): + + def test_avread_seek_base(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 2. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames) + path = self.get_temp_path(f'reference_a_{sample_rate}_{ch}.wav') + save_wav(path, wav, sample_rate) + for _ in range(100): + # seek will always load a full duration segment in the file + seek_time = random.uniform(0.0, 1.0) + seek_duration = random.uniform(0.001, 1.0) + read_wav, read_sr = _av_read(path, seek_time, seek_duration) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[-1] == int(seek_duration * sample_rate) + + def test_avread_seek_partial(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames) + path = self.get_temp_path(f'reference_b_{sample_rate}_{ch}.wav') + save_wav(path, wav, sample_rate) + for _ in range(100): + # seek will always load a partial segment + seek_time = random.uniform(0.5, 1.) + seek_duration = 1. + expected_num_frames = n_frames - int(seek_time * sample_rate) + read_wav, read_sr = _av_read(path, seek_time, seek_duration) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[-1] == expected_num_frames + + def test_avread_seek_outofbound(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(sample_rate * duration) + wav = get_white_noise(ch, n_frames) + path = self.get_temp_path(f'reference_c_{sample_rate}_{ch}.wav') + save_wav(path, wav, sample_rate) + seek_time = 1.5 + read_wav, read_sr = _av_read(path, seek_time, 1.) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[-1] == 0 + + def test_avread_seek_edge(self): + sample_rates = [8000, 16_000] + # some of these values will have + # int(((frames - 1) / sample_rate) * sample_rate) != (frames - 1) + n_frames = [1000, 1001, 1002] + channels = [1, 2] + for sample_rate, ch, frames in product(sample_rates, channels, n_frames): + duration = frames / sample_rate + wav = get_white_noise(ch, frames) + path = self.get_temp_path(f'reference_d_{sample_rate}_{ch}.wav') + save_wav(path, wav, sample_rate) + seek_time = (frames - 1) / sample_rate + seek_frames = int(seek_time * sample_rate) + read_wav, read_sr = _av_read(path, seek_time, duration) + assert read_sr == sample_rate + assert read_wav.shape[0] == wav.shape[0] + assert read_wav.shape[-1] == (frames - seek_frames) + + +class TestAudioWrite(TempDirMixin): + + def test_audio_write_wav(self): + torch.manual_seed(1234) + sample_rates = [8000, 16_000] + n_frames = [1000, 1001, 1002] + channels = [1, 2] + strategies = ["peak", "clip", "rms"] + formats = ["wav", "mp3"] + for sample_rate, ch, frames in product(sample_rates, channels, n_frames): + for format_, strategy in product(formats, strategies): + wav = get_white_noise(ch, frames) + path = self.get_temp_path(f'pred_{sample_rate}_{ch}') + audio_write(path, wav, sample_rate, format_, strategy=strategy) + read_wav, read_sr = torchaudio.load(f'{path}.{format_}') + if format_ == "wav": + assert read_wav.shape == wav.shape + + if format_ == "wav" and strategy in ["peak", "rms"]: + rescaled_read_wav = read_wav / read_wav.abs().max() * wav.abs().max() + # for a Gaussian, the typical max scale will be less than ~5x the std. + # The error when writing to disk will ~ 1/2**15, and when rescaling, 5x that. + # For RMS target, rescaling leaves more headroom by default, leading + # to a 20x rescaling typically + atol = (5 if strategy == "peak" else 20) / 2**15 + delta = (rescaled_read_wav - wav).abs().max() + assert torch.allclose(wav, rescaled_read_wav, rtol=0, atol=atol), (delta, atol) + formats = ["wav"] # faster unit tests diff --git a/tests/data/test_audio_dataset.py b/tests/data/test_audio_dataset.py new file mode 100644 index 0000000..b591ea6 --- /dev/null +++ b/tests/data/test_audio_dataset.py @@ -0,0 +1,352 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from functools import partial +from itertools import product +import json +import math +import os +import random +import typing as tp + +import pytest +import torch +from torch.utils.data import DataLoader + +from audiocraft.data.audio_dataset import ( + AudioDataset, + AudioMeta, + _get_audio_meta, + load_audio_meta, + save_audio_meta +) +from audiocraft.data.zip import PathInZip + +from ..common_utils import TempDirMixin, get_white_noise, save_wav + + +class TestAudioMeta(TempDirMixin): + + def test_get_audio_meta(self): + sample_rates = [8000, 16_000] + channels = [1, 2] + duration = 1. + for sample_rate, ch in product(sample_rates, channels): + n_frames = int(duration * sample_rate) + wav = get_white_noise(ch, n_frames) + path = self.get_temp_path('sample.wav') + save_wav(path, wav, sample_rate) + m = _get_audio_meta(path, minimal=True) + assert m.path == path, 'path does not match' + assert m.sample_rate == sample_rate, 'sample rate does not match' + assert m.duration == duration, 'duration does not match' + assert m.amplitude is None + assert m.info_path is None + + def test_save_audio_meta(self): + audio_meta = [ + AudioMeta("mypath1", 1., 16_000, None, None, PathInZip('/foo/bar.zip:/relative/file1.json')), + AudioMeta("mypath2", 2., 16_000, None, None, PathInZip('/foo/bar.zip:/relative/file2.json')) + ] + empty_audio_meta = [] + for idx, meta in enumerate([audio_meta, empty_audio_meta]): + path = self.get_temp_path(f'data_{idx}_save.jsonl') + save_audio_meta(path, meta) + with open(path, 'r') as f: + lines = f.readlines() + read_meta = [AudioMeta.from_dict(json.loads(line)) for line in lines] + assert len(read_meta) == len(meta) + for m, read_m in zip(meta, read_meta): + assert m == read_m + + def test_load_audio_meta(self): + try: + import dora + except ImportError: + dora = None # type: ignore + + audio_meta = [ + AudioMeta("mypath1", 1., 16_000, None, None, PathInZip('/foo/bar.zip:/relative/file1.json')), + AudioMeta("mypath2", 2., 16_000, None, None, PathInZip('/foo/bar.zip:/relative/file2.json')) + ] + empty_meta = [] + for idx, meta in enumerate([audio_meta, empty_meta]): + path = self.get_temp_path(f'data_{idx}_load.jsonl') + with open(path, 'w') as f: + for m in meta: + json_str = json.dumps(m.to_dict()) + '\n' + f.write(json_str) + read_meta = load_audio_meta(path) + assert len(read_meta) == len(meta) + for m, read_m in zip(meta, read_meta): + if dora: + m.path = dora.git_save.to_absolute_path(m.path) + assert m == read_m, f'original={m}, read={read_m}' + + +class TestAudioDataset(TempDirMixin): + + def _create_audio_files(self, + root_name: str, + num_examples: int, + durations: tp.Union[float, tp.Tuple[float, float]] = (0.1, 1.), + sample_rate: int = 16_000, + channels: int = 1): + root_dir = self.get_temp_dir(root_name) + for i in range(num_examples): + if isinstance(durations, float): + duration = durations + elif isinstance(durations, tuple) and len(durations) == 1: + duration = durations[0] + elif isinstance(durations, tuple) and len(durations) == 2: + duration = random.uniform(durations[0], durations[1]) + else: + assert False + n_frames = int(duration * sample_rate) + wav = get_white_noise(channels, n_frames) + path = os.path.join(root_dir, f'example_{i}.wav') + save_wav(path, wav, sample_rate) + return root_dir + + def _create_audio_dataset(self, + root_name: str, + total_num_examples: int, + durations: tp.Union[float, tp.Tuple[float, float]] = (0.1, 1.), + sample_rate: int = 16_000, + channels: int = 1, + segment_duration: tp.Optional[float] = None, + num_examples: int = 10, + shuffle: bool = True, + return_info: bool = False): + root_dir = self._create_audio_files(root_name, total_num_examples, durations, sample_rate, channels) + dataset = AudioDataset.from_path(root_dir, + minimal_meta=True, + segment_duration=segment_duration, + num_samples=num_examples, + sample_rate=sample_rate, + channels=channels, + shuffle=shuffle, + return_info=return_info) + return dataset + + def test_dataset_full(self): + total_examples = 10 + min_duration, max_duration = 1., 4. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), + sample_rate=sample_rate, channels=channels, segment_duration=None) + assert len(dataset) == total_examples + assert dataset.sample_rate == sample_rate + assert dataset.channels == channels + for idx in range(len(dataset)): + sample = dataset[idx] + assert sample.shape[0] == channels + assert sample.shape[1] <= int(max_duration * sample_rate) + assert sample.shape[1] >= int(min_duration * sample_rate) + + def test_dataset_segment(self): + total_examples = 10 + num_samples = 20 + min_duration, max_duration = 1., 4. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples) + assert len(dataset) == num_samples + assert dataset.sample_rate == sample_rate + assert dataset.channels == channels + for idx in range(len(dataset)): + sample = dataset[idx] + assert sample.shape[0] == channels + assert sample.shape[1] == int(segment_duration * sample_rate) + + def test_dataset_equal_audio_and_segment_durations(self): + total_examples = 1 + num_samples = 2 + audio_duration = 1. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=audio_duration, sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples) + assert len(dataset) == num_samples + assert dataset.sample_rate == sample_rate + assert dataset.channels == channels + for idx in range(len(dataset)): + sample = dataset[idx] + assert sample.shape[0] == channels + assert sample.shape[1] == int(segment_duration * sample_rate) + # the random seek_time adds variability on audio read + sample_1 = dataset[0] + sample_2 = dataset[1] + assert not torch.allclose(sample_1, sample_2) + + def test_dataset_samples(self): + total_examples = 1 + num_samples = 2 + audio_duration = 1. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + + create_dataset = partial( + self._create_audio_dataset, + 'dset', total_examples, durations=audio_duration, sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples, + ) + + dataset = create_dataset(shuffle=True) + # when shuffle = True, we have different inputs for the same index across epoch + sample_1 = dataset[0] + sample_2 = dataset[0] + assert not torch.allclose(sample_1, sample_2) + + dataset_noshuffle = create_dataset(shuffle=False) + # when shuffle = False, we have same inputs for the same index across epoch + sample_1 = dataset_noshuffle[0] + sample_2 = dataset_noshuffle[0] + assert torch.allclose(sample_1, sample_2) + + def test_dataset_return_info(self): + total_examples = 10 + num_samples = 20 + min_duration, max_duration = 1., 4. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples, return_info=True) + assert len(dataset) == num_samples + assert dataset.sample_rate == sample_rate + assert dataset.channels == channels + for idx in range(len(dataset)): + sample, segment_info = dataset[idx] + assert sample.shape[0] == channels + assert sample.shape[1] == int(segment_duration * sample_rate) + assert segment_info.sample_rate == sample_rate + assert segment_info.total_frames == int(segment_duration * sample_rate) + assert segment_info.n_frames <= int(segment_duration * sample_rate) + assert segment_info.seek_time >= 0 + + def test_dataset_return_info_no_segment_duration(self): + total_examples = 10 + num_samples = 20 + min_duration, max_duration = 1., 4. + segment_duration = None + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples, return_info=True) + assert len(dataset) == total_examples + assert dataset.sample_rate == sample_rate + assert dataset.channels == channels + for idx in range(len(dataset)): + sample, segment_info = dataset[idx] + assert sample.shape[0] == channels + assert sample.shape[1] == segment_info.total_frames + assert segment_info.sample_rate == sample_rate + assert segment_info.n_frames <= segment_info.total_frames + + def test_dataset_collate_fn(self): + total_examples = 10 + num_samples = 20 + min_duration, max_duration = 1., 4. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples, return_info=False) + batch_size = 4 + dataloader = DataLoader( + dataset, + batch_size=batch_size, + num_workers=0 + ) + for idx, batch in enumerate(dataloader): + assert batch.shape[0] == batch_size + + @pytest.mark.parametrize("segment_duration", [1.0, None]) + def test_dataset_with_meta_collate_fn(self, segment_duration): + total_examples = 10 + num_samples = 20 + min_duration, max_duration = 1., 4. + segment_duration = 1. + sample_rate = 16_000 + channels = 1 + dataset = self._create_audio_dataset( + 'dset', total_examples, durations=(min_duration, max_duration), sample_rate=sample_rate, + channels=channels, segment_duration=segment_duration, num_examples=num_samples, return_info=True) + batch_size = 4 + dataloader = DataLoader( + dataset, + batch_size=batch_size, + collate_fn=dataset.collater, + num_workers=0 + ) + for idx, batch in enumerate(dataloader): + wav, infos = batch + assert wav.shape[0] == batch_size + assert len(infos) == batch_size + + @pytest.mark.parametrize("segment_duration,sample_on_weight,sample_on_duration,a_hist,b_hist,c_hist", [ + [1, True, True, 0.5, 0.5, 0.0], + [1, False, True, 0.25, 0.5, 0.25], + [1, True, False, 0.666, 0.333, 0.0], + [1, False, False, 0.333, 0.333, 0.333], + [None, False, False, 0.333, 0.333, 0.333]]) + def test_sample_with_weight(self, segment_duration, sample_on_weight, sample_on_duration, a_hist, b_hist, c_hist): + random.seed(1234) + rng = torch.Generator() + rng.manual_seed(1234) + + def _get_histogram(dataset, repetitions=20_000): + counts = {file_meta.path: 0. for file_meta in meta} + for _ in range(repetitions): + file_meta = dataset.sample_file(0, rng) + counts[file_meta.path] += 1 + return {name: count / repetitions for name, count in counts.items()} + + meta = [ + AudioMeta(path='a', duration=5, sample_rate=1, weight=2), + AudioMeta(path='b', duration=10, sample_rate=1, weight=None), + AudioMeta(path='c', duration=5, sample_rate=1, weight=0), + ] + dataset = AudioDataset( + meta, segment_duration=segment_duration, sample_on_weight=sample_on_weight, + sample_on_duration=sample_on_duration) + hist = _get_histogram(dataset) + assert math.isclose(hist['a'], a_hist, abs_tol=0.01) + assert math.isclose(hist['b'], b_hist, abs_tol=0.01) + assert math.isclose(hist['c'], c_hist, abs_tol=0.01) + + def test_meta_duration_filter_all(self): + meta = [ + AudioMeta(path='a', duration=5, sample_rate=1, weight=2), + AudioMeta(path='b', duration=10, sample_rate=1, weight=None), + AudioMeta(path='c', duration=5, sample_rate=1, weight=0), + ] + try: + AudioDataset(meta, segment_duration=11, min_segment_ratio=1) + assert False + except AssertionError: + assert True + + def test_meta_duration_filter_long(self): + meta = [ + AudioMeta(path='a', duration=5, sample_rate=1, weight=2), + AudioMeta(path='b', duration=10, sample_rate=1, weight=None), + AudioMeta(path='c', duration=5, sample_rate=1, weight=0), + ] + dataset = AudioDataset(meta, segment_duration=None, min_segment_ratio=1, max_audio_duration=7) + assert len(dataset) == 2 diff --git a/tests/data/test_audio_utils.py b/tests/data/test_audio_utils.py new file mode 100644 index 0000000..8f24e9b --- /dev/null +++ b/tests/data/test_audio_utils.py @@ -0,0 +1,120 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import julius +import torch +import pytest + +from audiocraft.data.audio_utils import ( + _clip_wav, + convert_audio_channels, + convert_audio, + f32_pcm, + i16_pcm, + normalize_audio +) +from ..common_utils import get_batch_white_noise + + +class TestConvertAudioChannels: + + def test_convert_audio_channels_downmix(self): + b, c, t = 2, 3, 100 + audio = get_batch_white_noise(b, c, t) + mixed = convert_audio_channels(audio, channels=2) + assert list(mixed.shape) == [b, 2, t] + + def test_convert_audio_channels_nochange(self): + b, c, t = 2, 3, 100 + audio = get_batch_white_noise(b, c, t) + mixed = convert_audio_channels(audio, channels=c) + assert list(mixed.shape) == list(audio.shape) + + def test_convert_audio_channels_upmix(self): + b, c, t = 2, 1, 100 + audio = get_batch_white_noise(b, c, t) + mixed = convert_audio_channels(audio, channels=3) + assert list(mixed.shape) == [b, 3, t] + + def test_convert_audio_channels_upmix_error(self): + b, c, t = 2, 2, 100 + audio = get_batch_white_noise(b, c, t) + with pytest.raises(ValueError): + convert_audio_channels(audio, channels=3) + + +class TestConvertAudio: + + def test_convert_audio_channels_downmix(self): + b, c, dur = 2, 3, 4. + sr = 128 + audio = get_batch_white_noise(b, c, int(sr * dur)) + out = convert_audio(audio, from_rate=sr, to_rate=sr, to_channels=2) + assert list(out.shape) == [audio.shape[0], 2, audio.shape[-1]] + + def test_convert_audio_channels_upmix(self): + b, c, dur = 2, 1, 4. + sr = 128 + audio = get_batch_white_noise(b, c, int(sr * dur)) + out = convert_audio(audio, from_rate=sr, to_rate=sr, to_channels=3) + assert list(out.shape) == [audio.shape[0], 3, audio.shape[-1]] + + def test_convert_audio_upsample(self): + b, c, dur = 2, 1, 4. + sr = 2 + new_sr = 3 + audio = get_batch_white_noise(b, c, int(sr * dur)) + out = convert_audio(audio, from_rate=sr, to_rate=new_sr, to_channels=c) + out_j = julius.resample.resample_frac(audio, old_sr=sr, new_sr=new_sr) + assert torch.allclose(out, out_j) + + def test_convert_audio_resample(self): + b, c, dur = 2, 1, 4. + sr = 3 + new_sr = 2 + audio = get_batch_white_noise(b, c, int(sr * dur)) + out = convert_audio(audio, from_rate=sr, to_rate=new_sr, to_channels=c) + out_j = julius.resample.resample_frac(audio, old_sr=sr, new_sr=new_sr) + assert torch.allclose(out, out_j) + + def test_convert_pcm(self): + b, c, dur = 2, 1, 4. + sr = 3 + i16_audio = torch.randint(-2**15, 2**15, (b, c, int(sr * dur)), dtype=torch.int16) + f32_audio = f32_pcm(i16_audio) + another_i16_audio = i16_pcm(f32_audio) + assert torch.allclose(i16_audio, another_i16_audio) + + +class TestNormalizeAudio: + + def test_clip_wav(self): + b, c, dur = 2, 1, 4. + sr = 3 + audio = 10.0 * get_batch_white_noise(b, c, int(sr * dur)) + _clip_wav(audio) + assert audio.abs().max() <= 1 + + def test_normalize_audio_clip(self): + b, c, dur = 2, 1, 4. + sr = 3 + audio = 10.0 * get_batch_white_noise(b, c, int(sr * dur)) + norm_audio = normalize_audio(audio, strategy='clip') + assert norm_audio.abs().max() <= 1 + + def test_normalize_audio_rms(self): + b, c, dur = 2, 1, 4. + sr = 3 + audio = 10.0 * get_batch_white_noise(b, c, int(sr * dur)) + norm_audio = normalize_audio(audio, strategy='rms') + assert norm_audio.abs().max() <= 1 + + def test_normalize_audio_peak(self): + b, c, dur = 2, 1, 4. + sr = 3 + audio = 10.0 * get_batch_white_noise(b, c, int(sr * dur)) + norm_audio = normalize_audio(audio, strategy='peak') + assert norm_audio.abs().max() <= 1 diff --git a/tests/losses/__init__.py b/tests/losses/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/losses/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/losses/test_losses.py b/tests/losses/test_losses.py new file mode 100644 index 0000000..1b9120b --- /dev/null +++ b/tests/losses/test_losses.py @@ -0,0 +1,103 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import random + +import torch + +from audiocraft.losses import ( + MelSpectrogramL1Loss, + MultiScaleMelSpectrogramLoss, + MRSTFTLoss, + SISNR, + STFTLoss, +) +from audiocraft.losses.loudnessloss import TFLoudnessRatio +from audiocraft.losses.wmloss import WMMbLoss +from tests.common_utils.wav_utils import get_white_noise + + +def test_mel_l1_loss(): + N, C, T = 2, 2, random.randrange(1000, 100_000) + t1 = torch.randn(N, C, T) + t2 = torch.randn(N, C, T) + + mel_l1 = MelSpectrogramL1Loss(sample_rate=22_050) + loss = mel_l1(t1, t2) + loss_same = mel_l1(t1, t1) + + assert isinstance(loss, torch.Tensor) + assert isinstance(loss_same, torch.Tensor) + assert loss_same.item() == 0.0 + + +def test_msspec_loss(): + N, C, T = 2, 2, random.randrange(1000, 100_000) + t1 = torch.randn(N, C, T) + t2 = torch.randn(N, C, T) + + msspec = MultiScaleMelSpectrogramLoss(sample_rate=22_050) + loss = msspec(t1, t2) + loss_same = msspec(t1, t1) + + assert isinstance(loss, torch.Tensor) + assert isinstance(loss_same, torch.Tensor) + assert loss_same.item() == 0.0 + + +def test_mrstft_loss(): + N, C, T = 2, 2, random.randrange(1000, 100_000) + t1 = torch.randn(N, C, T) + t2 = torch.randn(N, C, T) + + mrstft = MRSTFTLoss() + loss = mrstft(t1, t2) + + assert isinstance(loss, torch.Tensor) + + +def test_sisnr_loss(): + N, C, T = 2, 2, random.randrange(1000, 100_000) + t1 = torch.randn(N, C, T) + t2 = torch.randn(N, C, T) + + sisnr = SISNR() + loss = sisnr(t1, t2) + + assert isinstance(loss, torch.Tensor) + + +def test_stft_loss(): + N, C, T = 2, 2, random.randrange(1000, 100_000) + t1 = torch.randn(N, C, T) + t2 = torch.randn(N, C, T) + + mrstft = STFTLoss() + loss = mrstft(t1, t2) + + assert isinstance(loss, torch.Tensor) + + +def test_wm_loss(): + N, nbits, T = 2, 16, random.randrange(1000, 100_000) + positive = torch.randn(N, 2 + nbits, T) + t2 = torch.randn(N, 1, T) + message = torch.randn(N, nbits) + + wmloss = WMMbLoss(0.3, "mse") + loss = wmloss(positive, None, t2, message) + + assert isinstance(loss, torch.Tensor) + + +def test_loudness_loss(): + sr = 16_000 + duration = 1.0 + wav = get_white_noise(1, int(sr * duration)).unsqueeze(0) + tflrloss = TFLoudnessRatio(sample_rate=sr, n_bands=1) + + loss = tflrloss(wav, wav) + assert isinstance(loss, torch.Tensor) diff --git a/tests/metrics/__init__.py b/tests/metrics/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/metrics/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/metrics/test_pesq.py b/tests/metrics/test_pesq.py new file mode 100644 index 0000000..fb1a0ea --- /dev/null +++ b/tests/metrics/test_pesq.py @@ -0,0 +1,45 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import julius +import pesq +import torch +from audiocraft.metrics.pesq import PesqMetric +from ..common_utils import TempDirMixin, get_batch_white_noise + + +def tensor_pesq(y_pred: torch.Tensor, y: torch.Tensor, sr: int): + # pesq returns error if no speech is detected, so we catch it + if sr != 16000: + y_pred = julius.resample_frac(y_pred, sr, 16000) + y = julius.resample_frac(y, sr, 16000) + P, n = 0, 0 + for ii in range(y_pred.size(0)): + try: # torchmetrics crashes when there is one error in the batch so doing it manually.. + P += pesq.pesq(16000, y[ii, 0].cpu().numpy(), y_pred[ii, 0].cpu().numpy()) + n += 1 + except pesq.NoUtterancesError: # this error can append when the sample don't contain speech + pass + p = P / n if n != 0 else 0.0 + return p + + +class TestPesq(TempDirMixin): + + def test(self): + sample_rate = 16_000 + duration = 20 + channel = 1 + bs = 10 + wavs = get_batch_white_noise(bs, channel, int(sample_rate * duration)) + + pesq_metric = PesqMetric(sample_rate=sample_rate) + pesq1 = pesq_metric(wavs, wavs) + print(f"Pesq between 2 identical white noises: {pesq1}") + assert pesq1 > 1 + + pesq2 = tensor_pesq(wavs, wavs, 16000) + assert torch.allclose(pesq1, torch.tensor(pesq2)) diff --git a/tests/models/test_audiogen.py b/tests/models/test_audiogen.py new file mode 100644 index 0000000..3850af0 --- /dev/null +++ b/tests/models/test_audiogen.py @@ -0,0 +1,53 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import pytest +import torch + +from audiocraft.models import AudioGen + + +class TestAudioGenModel: + def get_audiogen(self): + ag = AudioGen.get_pretrained(name='debug', device='cpu') + ag.set_generation_params(duration=2.0, extend_stride=2.) + return ag + + def test_base(self): + ag = self.get_audiogen() + assert ag.frame_rate == 25 + assert ag.sample_rate == 16000 + assert ag.audio_channels == 1 + + def test_generate_continuation(self): + ag = self.get_audiogen() + prompt = torch.randn(3, 1, 16000) + wav = ag.generate_continuation(prompt, 16000) + assert list(wav.shape) == [3, 1, 32000] + + prompt = torch.randn(2, 1, 16000) + wav = ag.generate_continuation( + prompt, 16000, ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 32000] + + prompt = torch.randn(2, 1, 16000) + with pytest.raises(AssertionError): + wav = ag.generate_continuation( + prompt, 16000, ['youpi', 'lapin dort', 'one too many']) + + def test_generate(self): + ag = self.get_audiogen() + wav = ag.generate( + ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 32000] + + def test_generate_long(self): + ag = self.get_audiogen() + ag.max_duration = 3. + ag.set_generation_params(duration=4., extend_stride=2.) + wav = ag.generate( + ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 16000 * 4] diff --git a/tests/models/test_encodec_model.py b/tests/models/test_encodec_model.py new file mode 100644 index 0000000..2f9c1db --- /dev/null +++ b/tests/models/test_encodec_model.py @@ -0,0 +1,60 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import random + +import numpy as np +import torch + +from audiocraft.models import EncodecModel +from audiocraft.modules import SEANetEncoder, SEANetDecoder +from audiocraft.quantization import DummyQuantizer + + +class TestEncodecModel: + + def _create_encodec_model(self, + sample_rate: int, + channels: int, + dim: int = 5, + n_filters: int = 3, + n_residual_layers: int = 1, + ratios: list = [5, 4, 3, 2], + **kwargs): + frame_rate = np.prod(ratios) + encoder = SEANetEncoder(channels=channels, dimension=dim, n_filters=n_filters, + n_residual_layers=n_residual_layers, ratios=ratios) + decoder = SEANetDecoder(channels=channels, dimension=dim, n_filters=n_filters, + n_residual_layers=n_residual_layers, ratios=ratios) + quantizer = DummyQuantizer() + model = EncodecModel(encoder, decoder, quantizer, frame_rate=frame_rate, + sample_rate=sample_rate, channels=channels, **kwargs) + return model + + def test_model(self): + random.seed(1234) + sample_rate = 24_000 + channels = 1 + model = self._create_encodec_model(sample_rate, channels) + for _ in range(10): + length = random.randrange(1, 10_000) + x = torch.randn(2, channels, length) + res = model(x) + assert res.x.shape == x.shape + + def test_model_renorm(self): + random.seed(1234) + sample_rate = 24_000 + channels = 1 + model_nonorm = self._create_encodec_model(sample_rate, channels, renormalize=False) + model_renorm = self._create_encodec_model(sample_rate, channels, renormalize=True) + + for _ in range(10): + length = random.randrange(1, 10_000) + x = torch.randn(2, channels, length) + codes, scales = model_nonorm.encode(x) + codes, scales = model_renorm.encode(x) + assert scales is not None diff --git a/tests/models/test_multibanddiffusion.py b/tests/models/test_multibanddiffusion.py new file mode 100644 index 0000000..2702a3c --- /dev/null +++ b/tests/models/test_multibanddiffusion.py @@ -0,0 +1,53 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import random + +import numpy as np +import torch +from audiocraft.models.multibanddiffusion import MultiBandDiffusion, DiffusionProcess +from audiocraft.models import EncodecModel, DiffusionUnet +from audiocraft.modules import SEANetEncoder, SEANetDecoder +from audiocraft.modules.diffusion_schedule import NoiseSchedule +from audiocraft.quantization import DummyQuantizer + + +class TestMBD: + + def _create_mbd(self, + sample_rate: int, + channels: int, + n_filters: int = 3, + n_residual_layers: int = 1, + ratios: list = [5, 4, 3, 2], + num_steps: int = 1000, + codec_dim: int = 128, + **kwargs): + frame_rate = np.prod(ratios) + encoder = SEANetEncoder(channels=channels, dimension=codec_dim, n_filters=n_filters, + n_residual_layers=n_residual_layers, ratios=ratios) + decoder = SEANetDecoder(channels=channels, dimension=codec_dim, n_filters=n_filters, + n_residual_layers=n_residual_layers, ratios=ratios) + quantizer = DummyQuantizer() + compression_model = EncodecModel(encoder, decoder, quantizer, frame_rate=frame_rate, + sample_rate=sample_rate, channels=channels, **kwargs) + diffusion_model = DiffusionUnet(chin=channels, num_steps=num_steps, codec_dim=codec_dim) + schedule = NoiseSchedule(device='cpu', num_steps=num_steps) + DP = DiffusionProcess(model=diffusion_model, noise_schedule=schedule) + mbd = MultiBandDiffusion(DPs=[DP], codec_model=compression_model) + return mbd + + def test_model(self): + random.seed(1234) + sample_rate = 24_000 + channels = 1 + codec_dim = 128 + mbd = self._create_mbd(sample_rate=sample_rate, channels=channels, codec_dim=codec_dim) + for _ in range(10): + length = random.randrange(1, 10_000) + x = torch.randn(2, channels, length) + res = mbd.regenerate(x, sample_rate) + assert res.shape == x.shape diff --git a/tests/models/test_musicgen.py b/tests/models/test_musicgen.py new file mode 100644 index 0000000..2b32ac5 --- /dev/null +++ b/tests/models/test_musicgen.py @@ -0,0 +1,65 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import pytest +import torch + +from audiocraft.models import MusicGen + + +class TestMusicGenModel: + def get_musicgen(self): + mg = MusicGen.get_pretrained(name='debug', device='cpu') + mg.set_generation_params(duration=2.0, extend_stride=2.) + return mg + + def test_base(self): + mg = self.get_musicgen() + assert mg.frame_rate == 25 + assert mg.sample_rate == 32000 + assert mg.audio_channels == 1 + + def test_generate_unconditional(self): + mg = self.get_musicgen() + wav = mg.generate_unconditional(3) + assert list(wav.shape) == [3, 1, 64000] + + def test_generate_continuation(self): + mg = self.get_musicgen() + prompt = torch.randn(3, 1, 32000) + wav = mg.generate_continuation(prompt, 32000) + assert list(wav.shape) == [3, 1, 64000] + + prompt = torch.randn(2, 1, 32000) + wav = mg.generate_continuation( + prompt, 32000, ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 64000] + + prompt = torch.randn(2, 1, 32000) + with pytest.raises(AssertionError): + wav = mg.generate_continuation( + prompt, 32000, ['youpi', 'lapin dort', 'one too many']) + + def test_generate(self): + mg = self.get_musicgen() + wav = mg.generate( + ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 64000] + + def test_generate_long(self): + mg = self.get_musicgen() + mg.max_duration = 3. + mg.set_generation_params(duration=4., extend_stride=2.) + wav = mg.generate( + ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 32000 * 4] + + def test_generate_two_step_cfg(self): + mg = self.get_musicgen() + mg.set_generation_params(duration=2.0, extend_stride=2., two_step_cfg=True) + wav = mg.generate( + ['youpi', 'lapin dort']) + assert list(wav.shape) == [2, 1, 64000] diff --git a/tests/models/test_watermark.py b/tests/models/test_watermark.py new file mode 100644 index 0000000..ff1422a --- /dev/null +++ b/tests/models/test_watermark.py @@ -0,0 +1,30 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + + +import torch +from audiocraft.models.watermark import AudioSeal +from tests.common_utils.wav_utils import get_white_noise + + +class TestWatermarkModel: + + def test_base(self): + sr = 16_000 + duration = 1.0 + wav = get_white_noise(1, int(sr * duration)).unsqueeze(0) + wm = AudioSeal.get_pretrained(name="base") + + secret_message = torch.randint(0, 2, (1, 16), dtype=torch.int32) + watermarked_wav = wm(wav, message=secret_message, sample_rate=sr, alpha=0.8) + result = wm.detect_watermark(watermarked_wav) + + detected = ( + torch.count_nonzero(torch.gt(result[:, 1, :], 0.5)) / result.shape[-1] + ) + detect_prob = detected.cpu().item() # type: ignore + + assert detect_prob >= 0.0 diff --git a/tests/modules/__init__.py b/tests/modules/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/modules/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/modules/test_activations.py b/tests/modules/test_activations.py new file mode 100644 index 0000000..24e30d4 --- /dev/null +++ b/tests/modules/test_activations.py @@ -0,0 +1,29 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch +from torch import nn + +from audiocraft.modules.activations import CustomGLU + + +class TestActivations: + def test_custom_glu_calculation(self): + + activation = CustomGLU(nn.Identity()) + + initial_shape = (4, 8, 8) + + part_a = torch.ones(initial_shape) * 2 + part_b = torch.ones(initial_shape) * -1 + input = torch.cat((part_a, part_b), dim=-1) + + output = activation(input) + + # ensure all dimensions match initial shape + assert output.shape == initial_shape + # ensure the gating was calculated correctly a * f(b) + assert torch.all(output == -2).item() diff --git a/tests/modules/test_codebooks_patterns.py b/tests/modules/test_codebooks_patterns.py new file mode 100644 index 0000000..b658f47 --- /dev/null +++ b/tests/modules/test_codebooks_patterns.py @@ -0,0 +1,246 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import pytest +import torch + +from audiocraft.modules.codebooks_patterns import ( + DelayedPatternProvider, + ParallelPatternProvider, + Pattern, + UnrolledPatternProvider, +) + + +class TestParallelPatternProvider: + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [0, 1, 16, 100]) + def test_get_pattern(self, n_q: int, timesteps: int): + provider = ParallelPatternProvider(n_q) + pattern = provider.get_pattern(timesteps) + # + 1 to account for 1st step + assert len(pattern.layout) == timesteps + 1 + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [8, 16, 100]) + def test_pattern_content(self, n_q: int, timesteps: int): + provider = ParallelPatternProvider(n_q) + pattern = provider.get_pattern(timesteps) + for s, v in enumerate(pattern.layout): + for i, code in enumerate(v): + assert i == code.q + assert code.t == s - 1 # account for the 1st empty step + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [8, 16, 100]) + def test_pattern_max_delay(self, n_q: int, timesteps: int): + provider = ParallelPatternProvider(n_q) + pattern = provider.get_pattern(timesteps) + assert pattern.max_delay == 0 + assert len(pattern.valid_layout) == len(pattern.layout) - pattern.max_delay + + +class TestDelayedPatternProvider: + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [0, 1, 16, 100]) + def test_get_pattern(self, n_q: int, timesteps: int): + delays = [ + list(range(n_q)), + [0] + [1] * (n_q - 1), + [0] + [4] * (n_q - 1), + ] + for delay in delays: + provider = DelayedPatternProvider(n_q, delay) + pattern = provider.get_pattern(timesteps) + # + 1 to account for 1st step + assert len(pattern.layout) == timesteps + max(delay) + 1 + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [8, 16, 100]) + def test_pattern_content(self, n_q: int, timesteps: int): + provider = DelayedPatternProvider(n_q) + pattern = provider.get_pattern(timesteps) + for s, v in enumerate(pattern.layout): + for i, code in enumerate(v): + assert i == code.q + assert code.t == max(0, s - code.q - 1) + + @pytest.mark.parametrize("timesteps", [8, 16, 100]) + @pytest.mark.parametrize("delay", [[0, 1, 2, 3], [0, 1, 1, 1], [0, 3, 3, 3], [0, 3]]) + def test_pattern_max_delay(self, timesteps: int, delay: list): + provider = DelayedPatternProvider(len(delay), delay) + pattern = provider.get_pattern(timesteps) + assert pattern.max_delay == max(delay) + assert len(pattern.valid_layout) == len(pattern.layout) - pattern.max_delay + + +class TestUnrolledPatternProvider: + + @pytest.mark.parametrize("timesteps", [0, 1, 16]) + @pytest.mark.parametrize("flattening", [[0, 1, 2], [0, 1, 1]]) + @pytest.mark.parametrize("delays", [[0, 0, 0], [0, 5, 5]]) + def test_get_pattern(self, timesteps: int, flattening: list, delays: list): + n_q = len(flattening) + max_delay = max(delays) + provider = UnrolledPatternProvider(n_q, flattening, delays) + pattern = provider.get_pattern(timesteps) + assert len(pattern.layout) == provider.num_virtual_steps(timesteps) + max_delay + + @pytest.mark.parametrize("timesteps", [0, 1, 16]) + @pytest.mark.parametrize("flattening", [[0, 1, 2], [0, 1, 1]]) + @pytest.mark.parametrize("delays", [[0, 0, 0], [0, 5, 5]]) + def test_pattern_max_delay(self, timesteps: int, flattening: list, delays: list): + n_q = len(flattening) + max_delay = max(delays) + provider = UnrolledPatternProvider(n_q, flattening, delays) + pattern = provider.get_pattern(timesteps) + assert pattern.max_delay == max_delay + + +class TestPattern: + + def ref_build_pattern_sequence(self, z: torch.Tensor, pattern: Pattern, special_token: int): + """Reference method to build the sequence from the pattern without using fancy scatter.""" + bs, n_q, T = z.shape + z = z.cpu().numpy() + assert n_q == pattern.n_q + assert T <= pattern.timesteps + inp = torch.full((bs, n_q, len(pattern.layout)), special_token, dtype=torch.long).numpy() + inp[:] = special_token + for s, v in enumerate(pattern.layout): + for (t, q) in v: + if t < T: + inp[:, q, s] = z[:, q, t] + return torch.from_numpy(inp) + + def ref_revert_pattern_sequence(self, z: torch.Tensor, pattern: Pattern, special_token: int): + """Reference method to revert the sequence from the pattern without using fancy scatter.""" + z = z.cpu().numpy() + bs, n_q, S = z.shape + assert pattern.n_q == n_q + inp = torch.full((bs, pattern.n_q, pattern.timesteps), special_token, dtype=torch.long).numpy() + inp[:] = special_token + for s, v in enumerate(pattern.layout): + for (t, q) in v: + if t < pattern.timesteps: + inp[:, q, t] = z[:, q, s] + return torch.from_numpy(inp) + + def ref_revert_pattern_logits(self, z: torch.Tensor, pattern: Pattern, special_token: float): + """Reference method to revert the logits from the pattern without using fancy scatter.""" + z = z.cpu().numpy() + bs, card, n_q, S = z.shape + assert pattern.n_q == n_q + ref_layout = pattern.layout + inp = torch.full((bs, card, pattern.n_q, pattern.timesteps), special_token, dtype=torch.float).numpy() + inp[:] = special_token + for s, v in enumerate(ref_layout[1:]): + if s < S: + for (t, q) in v: + if t < pattern.timesteps: + inp[:, :, q, t] = z[:, :, q, s] + return torch.from_numpy(inp) + + def _get_pattern_providers(self, n_q: int): + pattern_provider_1 = ParallelPatternProvider(n_q) + pattern_provider_2 = DelayedPatternProvider(n_q, list(range(n_q))) + pattern_provider_3 = DelayedPatternProvider(n_q, [0] + [1] * (n_q - 1)) + pattern_provider_4 = UnrolledPatternProvider( + n_q, flattening=list(range(n_q)), delays=[0] * n_q + ) + pattern_provider_5 = UnrolledPatternProvider( + n_q, flattening=[0] + [1] * (n_q - 1), delays=[0] * n_q + ) + pattern_provider_6 = UnrolledPatternProvider( + n_q, flattening=[0] + [1] * (n_q - 1), delays=[0] + [5] * (n_q - 1) + ) + return [ + pattern_provider_1, + pattern_provider_2, + pattern_provider_3, + pattern_provider_4, + pattern_provider_5, + pattern_provider_6, + ] + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [16, 72]) + def test_build_pattern_sequence(self, n_q: int, timesteps: int): + bs = 2 + card = 256 + special_token = card + + pattern_providers = self._get_pattern_providers(n_q) + for pattern_provider in pattern_providers: + pattern = pattern_provider.get_pattern(timesteps) + # we can correctly build the sequence from the pattern + z = torch.randint(0, card, (bs, n_q, timesteps)) + ref_res = self.ref_build_pattern_sequence(z, pattern, special_token) + res, indexes, mask = pattern.build_pattern_sequence(z, special_token) + assert (res == ref_res).float().mean() == 1.0 + + # expected assertion fails on the number of timesteps + invalid_timesteps = [timesteps + 1] + if pattern.num_sequence_steps != pattern.timesteps: + invalid_timesteps.append(pattern.num_sequence_steps) + for i_timesteps in invalid_timesteps: + z2 = torch.randint(0, card, (bs, n_q, i_timesteps)) + with pytest.raises(AssertionError): + pattern.build_pattern_sequence(z2, special_token) + + # expected assertion fails on the number of codebooks + invalid_qs = [0, n_q - 1, n_q + 1] + for i_q in invalid_qs: + z3 = torch.randint(0, card, (bs, i_q, timesteps)) + with pytest.raises(AssertionError): + pattern.build_pattern_sequence(z3, special_token) + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [16, 72]) + def test_revert_pattern_sequence(self, n_q: int, timesteps: int): + bs = 2 + card = 256 + special_token = card + + pattern_providers = self._get_pattern_providers(n_q) + for pattern_provider in pattern_providers: + pattern = pattern_provider.get_pattern(timesteps) + # this works assuming previous tests are successful + z = torch.randint(0, card, (bs, n_q, timesteps)) + s = self.ref_build_pattern_sequence(z, pattern, special_token) + ref_out = self.ref_revert_pattern_sequence(s, pattern, special_token) + # ensure our reference script retrieve the original sequence + assert z.shape == ref_out.shape + assert (z == ref_out).float().mean() == 1.0 + # now we can test the scatter version + out, indexes, mask = pattern.revert_pattern_sequence(s, special_token) + assert out.shape == ref_out.shape + assert (out == ref_out).float().mean() == 1.0 + + @pytest.mark.parametrize("n_q", [1, 4, 32]) + @pytest.mark.parametrize("timesteps", [16, 72]) + @pytest.mark.parametrize("card", [1, 2, 256, 1024]) + def test_revert_pattern_logits(self, n_q: int, timesteps: int, card: int): + bs = 2 + special_token = card + logits_special_token = float('nan') + + pattern_providers = self._get_pattern_providers(n_q) + for pattern_provider in pattern_providers: + pattern = pattern_provider.get_pattern(timesteps) + # this works assuming previous tests are successful + z = torch.randint(0, card, (bs, n_q, timesteps)) + s = self.ref_build_pattern_sequence(z, pattern, special_token) + logits = torch.randn((bs, card, n_q, s.shape[-1])) + ref_out = self.ref_revert_pattern_logits(logits, pattern, logits_special_token) + # ensure our reference script retrieve the original sequence + assert ref_out.shape == torch.Size([bs, card, n_q, timesteps]) + # now we can test the scatter version + out, indexes, mask = pattern.revert_pattern_logits(logits, logits_special_token) + assert out.shape == ref_out.shape + assert (out == ref_out).float().mean() == 1.0 diff --git a/tests/modules/test_conv.py b/tests/modules/test_conv.py new file mode 100644 index 0000000..28fbc4f --- /dev/null +++ b/tests/modules/test_conv.py @@ -0,0 +1,203 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from itertools import product +import math +import random + +import pytest +import torch +from torch import nn + +from audiocraft.modules import ( + NormConv1d, + NormConvTranspose1d, + StreamableConv1d, + StreamableConvTranspose1d, + pad1d, + unpad1d, +) + + +def test_get_extra_padding_for_conv1d(): + # TODO: Implement me! + pass + + +def test_pad1d_zeros(): + x = torch.randn(1, 1, 20) + + xp1 = pad1d(x, (0, 5), mode='constant', value=0.) + assert xp1.shape[-1] == 25 + xp2 = pad1d(x, (5, 5), mode='constant', value=0.) + assert xp2.shape[-1] == 30 + xp3 = pad1d(x, (0, 0), mode='constant', value=0.) + assert xp3.shape[-1] == 20 + xp4 = pad1d(x, (10, 30), mode='constant', value=0.) + assert xp4.shape[-1] == 60 + + with pytest.raises(AssertionError): + pad1d(x, (-1, 0), mode='constant', value=0.) + + with pytest.raises(AssertionError): + pad1d(x, (0, -1), mode='constant', value=0.) + + with pytest.raises(AssertionError): + pad1d(x, (-1, -1), mode='constant', value=0.) + + +def test_pad1d_reflect(): + x = torch.randn(1, 1, 20) + + xp1 = pad1d(x, (0, 5), mode='reflect', value=0.) + assert xp1.shape[-1] == 25 + xp2 = pad1d(x, (5, 5), mode='reflect', value=0.) + assert xp2.shape[-1] == 30 + xp3 = pad1d(x, (0, 0), mode='reflect', value=0.) + assert xp3.shape[-1] == 20 + xp4 = pad1d(x, (10, 30), mode='reflect', value=0.) + assert xp4.shape[-1] == 60 + + with pytest.raises(AssertionError): + pad1d(x, (-1, 0), mode='reflect', value=0.) + + with pytest.raises(AssertionError): + pad1d(x, (0, -1), mode='reflect', value=0.) + + with pytest.raises(AssertionError): + pad1d(x, (-1, -1), mode='reflect', value=0.) + + +def test_unpad1d(): + x = torch.randn(1, 1, 20) + + u1 = unpad1d(x, (5, 5)) + assert u1.shape[-1] == 10 + u2 = unpad1d(x, (0, 5)) + assert u2.shape[-1] == 15 + u3 = unpad1d(x, (5, 0)) + assert u3.shape[-1] == 15 + u4 = unpad1d(x, (0, 0)) + assert u4.shape[-1] == x.shape[-1] + + with pytest.raises(AssertionError): + unpad1d(x, (-1, 0)) + + with pytest.raises(AssertionError): + unpad1d(x, (0, -1)) + + with pytest.raises(AssertionError): + unpad1d(x, (-1, -1)) + + +class TestNormConv1d: + + def test_norm_conv1d_modules(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + + C_out, kernel_size, stride = 1, 4, 1 + expected_out_length = int((T - kernel_size) / stride + 1) + wn_conv = NormConv1d(C, 1, kernel_size=4, norm='weight_norm') + gn_conv = NormConv1d(C, 1, kernel_size=4, norm='time_group_norm') + nn_conv = NormConv1d(C, 1, kernel_size=4, norm='none') + + assert isinstance(wn_conv.norm, nn.Identity) + assert isinstance(wn_conv.conv, nn.Conv1d) + + assert isinstance(gn_conv.norm, nn.GroupNorm) + assert isinstance(gn_conv.conv, nn.Conv1d) + + assert isinstance(nn_conv.norm, nn.Identity) + assert isinstance(nn_conv.conv, nn.Conv1d) + + for conv_layer in [wn_conv, gn_conv, nn_conv]: + out = conv_layer(t0) + assert isinstance(out, torch.Tensor) + assert list(out.shape) == [N, C_out, expected_out_length] + + +class TestNormConvTranspose1d: + + def test_normalizations(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + + C_out, kernel_size, stride = 1, 4, 1 + expected_out_length = (T - 1) * stride + (kernel_size - 1) + 1 + + wn_convtr = NormConvTranspose1d(C, C_out, kernel_size=kernel_size, stride=stride, norm='weight_norm') + gn_convtr = NormConvTranspose1d(C, C_out, kernel_size=kernel_size, stride=stride, norm='time_group_norm') + nn_convtr = NormConvTranspose1d(C, C_out, kernel_size=kernel_size, stride=stride, norm='none') + + assert isinstance(wn_convtr.norm, nn.Identity) + assert isinstance(wn_convtr.convtr, nn.ConvTranspose1d) + + assert isinstance(gn_convtr.norm, nn.GroupNorm) + assert isinstance(gn_convtr.convtr, nn.ConvTranspose1d) + + assert isinstance(nn_convtr.norm, nn.Identity) + assert isinstance(nn_convtr.convtr, nn.ConvTranspose1d) + + for convtr_layer in [wn_convtr, gn_convtr, nn_convtr]: + out = convtr_layer(t0) + assert isinstance(out, torch.Tensor) + assert list(out.shape) == [N, C_out, expected_out_length] + + +class TestStreamableConv1d: + + def get_streamable_conv1d_output_length(self, length, kernel_size, stride, dilation): + # StreamableConv1d internally pads to make sure that the last window is full + padding_total = (kernel_size - 1) * dilation - (stride - 1) + n_frames = (length - kernel_size + padding_total) / stride + 1 + ideal_length = (math.ceil(n_frames) - 1) * stride + (kernel_size - padding_total) + return ideal_length // stride + + def test_streamable_conv1d(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + C_out = 1 + + # conv params are [(kernel_size, stride, dilation)] + conv_params = [(4, 1, 1), (4, 2, 1), (3, 1, 3), (10, 5, 1), (3, 2, 3)] + for causal, (kernel_size, stride, dilation) in product([False, True], conv_params): + expected_out_length = self.get_streamable_conv1d_output_length(T, kernel_size, stride, dilation) + sconv = StreamableConv1d(C, C_out, kernel_size=kernel_size, stride=stride, dilation=dilation, causal=causal) + out = sconv(t0) + assert isinstance(out, torch.Tensor) + print(list(out.shape), [N, C_out, expected_out_length]) + assert list(out.shape) == [N, C_out, expected_out_length] + + +class TestStreamableConvTranspose1d: + + def get_streamable_convtr1d_output_length(self, length, kernel_size, stride): + padding_total = (kernel_size - stride) + return (length - 1) * stride - padding_total + (kernel_size - 1) + 1 + + def test_streamable_convtr1d(self): + N, C, T = 2, 2, random.randrange(1, 100_000) + t0 = torch.randn(N, C, T) + + C_out = 1 + + with pytest.raises(AssertionError): + StreamableConvTranspose1d(C, C_out, kernel_size=4, causal=False, trim_right_ratio=0.5) + StreamableConvTranspose1d(C, C_out, kernel_size=4, causal=True, trim_right_ratio=-1.) + StreamableConvTranspose1d(C, C_out, kernel_size=4, causal=True, trim_right_ratio=2) + + # causal params are [(causal, trim_right)] + causal_params = [(False, 1.0), (True, 1.0), (True, 0.5), (True, 0.0)] + # conv params are [(kernel_size, stride)] + conv_params = [(4, 1), (4, 2), (3, 1), (10, 5)] + for ((causal, trim_right_ratio), (kernel_size, stride)) in product(causal_params, conv_params): + expected_out_length = self.get_streamable_convtr1d_output_length(T, kernel_size, stride) + sconvtr = StreamableConvTranspose1d(C, C_out, kernel_size=kernel_size, stride=stride, + causal=causal, trim_right_ratio=trim_right_ratio) + out = sconvtr(t0) + assert isinstance(out, torch.Tensor) + assert list(out.shape) == [N, C_out, expected_out_length] diff --git a/tests/modules/test_lstm.py b/tests/modules/test_lstm.py new file mode 100644 index 0000000..1248964 --- /dev/null +++ b/tests/modules/test_lstm.py @@ -0,0 +1,32 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import random +import torch + +from audiocraft.modules.lstm import StreamableLSTM + + +class TestStreamableLSTM: + + def test_lstm(self): + B, C, T = 4, 2, random.randint(1, 100) + + lstm = StreamableLSTM(C, 3, skip=False) + x = torch.randn(B, C, T) + y = lstm(x) + + print(y.shape) + assert y.shape == torch.Size([B, C, T]) + + def test_lstm_skip(self): + B, C, T = 4, 2, random.randint(1, 100) + + lstm = StreamableLSTM(C, 3, skip=True) + x = torch.randn(B, C, T) + y = lstm(x) + + assert y.shape == torch.Size([B, C, T]) diff --git a/tests/modules/test_rope.py b/tests/modules/test_rope.py new file mode 100644 index 0000000..ec8d16c --- /dev/null +++ b/tests/modules/test_rope.py @@ -0,0 +1,168 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch + +from audiocraft.modules.rope import RotaryEmbedding +from audiocraft.modules.transformer import StreamingTransformer, set_efficient_attention_backend + + +def test_rope(): + set_efficient_attention_backend('torch') + B, T, H, C = 8, 75, 16, 128 + + rope = RotaryEmbedding(dim=C) + xq = torch.rand((B, T, H, C)) + xk = torch.rand((B, T, H, C)) + xq_out, xk_out = rope.rotate_qk(xq, xk, start=7) + + assert list(xq_out.shape) == [B, T, H, C] + assert list(xk_out.shape) == [B, T, H, C] + + +def test_rope_io_dtypes(): + set_efficient_attention_backend('torch') + B, T, H, C = 8, 75, 16, 128 + + rope_32 = RotaryEmbedding(dim=C, dtype=torch.float32) + rope_64 = RotaryEmbedding(dim=C, dtype=torch.float64) + + # Test bfloat16 inputs w/ both 32 and 64 precision rope. + xq_16 = torch.rand((B, T, H, C)).to(torch.bfloat16) + xk_16 = torch.rand((B, T, H, C)).to(torch.bfloat16) + xq_out, xk_out = rope_32.rotate_qk(xq_16, xk_16) + assert xq_out.dtype == torch.bfloat16 + xq_out, xk_out = rope_64.rotate_qk(xq_16, xk_16) + assert xq_out.dtype == torch.bfloat16 + + # Test float32 inputs w/ both 32 and 64 precision rope. + xq_32 = torch.rand((B, T, H, C)).to(torch.float32) + xk_32 = torch.rand((B, T, H, C)).to(torch.float32) + xq_out, xk_out = rope_32.rotate_qk(xq_32, xk_32) + assert xq_out.dtype == torch.float32 + xq_out, xk_out = rope_64.rotate_qk(xq_32, xk_32) + assert xq_out.dtype == torch.float32 + + +def test_transformer_with_rope(): + set_efficient_attention_backend('torch') + torch.manual_seed(1234) + for pos in ['rope', 'sin_rope']: + tr = StreamingTransformer( + 16, 4, 2, custom=True, dropout=0., layer_scale=0.1, + positional_embedding=pos) + tr.eval() + steps = 12 + x = torch.randn(3, steps, 16) + + out = tr(x) + assert list(out.shape) == list(x.shape) + + +@torch.no_grad() +def test_rope_streaming(): + set_efficient_attention_backend('torch') + torch.manual_seed(1234) + tr = StreamingTransformer( + 16, 4, 2, causal=True, dropout=0., + custom=True, positional_embedding='rope') + tr.eval() + steps = 12 + x = torch.randn(3, steps, 16) + + ref = tr(x) + + with tr.streaming(): + outs = [] + frame_sizes = [1] * steps + + for frame_size in frame_sizes: + frame = x[:, :frame_size] + x = x[:, frame_size:] + outs.append(tr(frame)) + + out = torch.cat(outs, dim=1) + assert list(out.shape) == [3, steps, 16] + delta = torch.norm(out - ref) / torch.norm(out) + assert delta < 1e-6, delta + + +@torch.no_grad() +def test_rope_streaming_past_context(): + set_efficient_attention_backend('torch') + torch.manual_seed(1234) + + for context in [None, 10]: + tr = StreamingTransformer( + 16, 4, 1 if context else 2, + causal=True, past_context=context, custom=True, + dropout=0., positional_embedding='rope') + tr.eval() + + steps = 20 + x = torch.randn(3, steps, 16) + ref = tr(x) + + with tr.streaming(): + outs = [] + frame_sizes = [1] * steps + + for frame_size in frame_sizes: + frame = x[:, :frame_size] + x = x[:, frame_size:] + outs.append(tr(frame)) + + out = torch.cat(outs, dim=1) + assert list(out.shape) == [3, steps, 16] + delta = torch.norm(out - ref) / torch.norm(out) + assert delta < 1e-6, delta + + +def test_rope_memory_efficient(): + set_efficient_attention_backend('torch') + torch.manual_seed(1234) + tr = StreamingTransformer( + 16, 4, 2, custom=True, dropout=0., layer_scale=0.1, + positional_embedding='rope') + tr_mem_efficient = StreamingTransformer( + 16, 4, 2, dropout=0., memory_efficient=True, layer_scale=0.1, + positional_embedding='rope') + tr_mem_efficient.load_state_dict(tr.state_dict()) + tr.eval() + steps = 12 + x = torch.randn(3, steps, 16) + + with torch.no_grad(): + y = tr(x) + y2 = tr_mem_efficient(x) + # Check at float precision b/c this is the rope default. + assert torch.allclose(y, y2, atol=1e-7), (y - y2).norm() + + +def test_rope_with_xpos(): + set_efficient_attention_backend('torch') + B, T, H, C = 8, 75, 16, 128 + + rope = RotaryEmbedding(dim=C, xpos=True) + xq = torch.rand((B, T, H, C)) + xk = torch.rand((B, T, H, C)) + xq_out, xk_out = rope.rotate_qk(xq, xk, start=7) + + assert list(xq_out.shape) == [B, T, H, C] + assert list(xk_out.shape) == [B, T, H, C] + + +def test_positional_scale(): + set_efficient_attention_backend('torch') + B, T, H, C = 8, 75, 16, 128 + + rope = RotaryEmbedding(dim=C, xpos=True, scale=0.0) + xq = torch.rand((B, T, H, C)) + xk = torch.rand((B, T, H, C)) + xq_out, xk_out = rope.rotate_qk(xq, xk, start=7) + + assert torch.allclose(xq, xq_out) + assert torch.allclose(xk, xk_out) diff --git a/tests/modules/test_seanet.py b/tests/modules/test_seanet.py new file mode 100644 index 0000000..e5c51b3 --- /dev/null +++ b/tests/modules/test_seanet.py @@ -0,0 +1,115 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from itertools import product + +import pytest +import torch + +from audiocraft.modules.seanet import SEANetEncoder, SEANetDecoder, SEANetResnetBlock +from audiocraft.modules import StreamableConv1d, StreamableConvTranspose1d + + +class TestSEANetModel: + + def test_base(self): + encoder = SEANetEncoder() + decoder = SEANetDecoder() + + x = torch.randn(1, 1, 24000) + z = encoder(x) + assert list(z.shape) == [1, 128, 75], z.shape + y = decoder(z) + assert y.shape == x.shape, (x.shape, y.shape) + + def test_causal(self): + encoder = SEANetEncoder(causal=True) + decoder = SEANetDecoder(causal=True) + x = torch.randn(1, 1, 24000) + + z = encoder(x) + assert list(z.shape) == [1, 128, 75], z.shape + y = decoder(z) + assert y.shape == x.shape, (x.shape, y.shape) + + def test_conv_skip_connection(self): + encoder = SEANetEncoder(true_skip=False) + decoder = SEANetDecoder(true_skip=False) + + x = torch.randn(1, 1, 24000) + z = encoder(x) + assert list(z.shape) == [1, 128, 75], z.shape + y = decoder(z) + assert y.shape == x.shape, (x.shape, y.shape) + + def test_seanet_encoder_decoder_final_act(self): + encoder = SEANetEncoder(true_skip=False) + decoder = SEANetDecoder(true_skip=False, final_activation='Tanh') + + x = torch.randn(1, 1, 24000) + z = encoder(x) + assert list(z.shape) == [1, 128, 75], z.shape + y = decoder(z) + assert y.shape == x.shape, (x.shape, y.shape) + + def _check_encoder_blocks_norm(self, encoder: SEANetEncoder, n_disable_blocks: int, norm: str): + n_blocks = 0 + for layer in encoder.model: + if isinstance(layer, StreamableConv1d): + n_blocks += 1 + assert layer.conv.norm_type == 'none' if n_blocks <= n_disable_blocks else norm + elif isinstance(layer, SEANetResnetBlock): + for resnet_layer in layer.block: + if isinstance(resnet_layer, StreamableConv1d): + # here we add + 1 to n_blocks as we increment n_blocks just after the block + assert resnet_layer.conv.norm_type == 'none' if (n_blocks + 1) <= n_disable_blocks else norm + + def test_encoder_disable_norm(self): + n_residuals = [0, 1, 3] + disable_blocks = [0, 1, 2, 3, 4, 5, 6] + norms = ['weight_norm', 'none'] + for n_res, disable_blocks, norm in product(n_residuals, disable_blocks, norms): + encoder = SEANetEncoder(n_residual_layers=n_res, norm=norm, + disable_norm_outer_blocks=disable_blocks) + self._check_encoder_blocks_norm(encoder, disable_blocks, norm) + + def _check_decoder_blocks_norm(self, decoder: SEANetDecoder, n_disable_blocks: int, norm: str): + n_blocks = 0 + for layer in decoder.model: + if isinstance(layer, StreamableConv1d): + n_blocks += 1 + assert layer.conv.norm_type == 'none' if (decoder.n_blocks - n_blocks) < n_disable_blocks else norm + elif isinstance(layer, StreamableConvTranspose1d): + n_blocks += 1 + assert layer.convtr.norm_type == 'none' if (decoder.n_blocks - n_blocks) < n_disable_blocks else norm + elif isinstance(layer, SEANetResnetBlock): + for resnet_layer in layer.block: + if isinstance(resnet_layer, StreamableConv1d): + assert resnet_layer.conv.norm_type == 'none' \ + if (decoder.n_blocks - n_blocks) < n_disable_blocks else norm + + def test_decoder_disable_norm(self): + n_residuals = [0, 1, 3] + disable_blocks = [0, 1, 2, 3, 4, 5, 6] + norms = ['weight_norm', 'none'] + for n_res, disable_blocks, norm in product(n_residuals, disable_blocks, norms): + decoder = SEANetDecoder(n_residual_layers=n_res, norm=norm, + disable_norm_outer_blocks=disable_blocks) + self._check_decoder_blocks_norm(decoder, disable_blocks, norm) + + def test_disable_norm_raises_exception(self): + # Invalid disable_norm_outer_blocks values raise exceptions + with pytest.raises(AssertionError): + SEANetEncoder(disable_norm_outer_blocks=-1) + + with pytest.raises(AssertionError): + SEANetEncoder(ratios=[1, 1, 2, 2], disable_norm_outer_blocks=7) + + with pytest.raises(AssertionError): + SEANetDecoder(disable_norm_outer_blocks=-1) + + with pytest.raises(AssertionError): + SEANetDecoder(ratios=[1, 1, 2, 2], disable_norm_outer_blocks=7) diff --git a/tests/modules/test_transformer.py b/tests/modules/test_transformer.py new file mode 100644 index 0000000..ee74ba0 --- /dev/null +++ b/tests/modules/test_transformer.py @@ -0,0 +1,253 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from itertools import product + +import pytest +import torch + +from audiocraft.modules.transformer import ( + StreamingMultiheadAttention, StreamingTransformer, set_efficient_attention_backend) + + +def test_transformer_causal_streaming(): + torch.manual_seed(1234) + + for context, custom in product([None, 10], [False, True]): + # Test that causality and receptive fields are properly handled. + # looking at the gradients + tr = StreamingTransformer( + 16, 4, 1 if context else 2, + causal=True, past_context=context, custom=custom, + dropout=0.) + steps = 20 + for k in [0, 10, 15, 19]: + x = torch.randn(4, steps, 16, requires_grad=True) + y = tr(x) + y[:, k].abs().sum().backward() + if k + 1 < steps: + assert torch.allclose(x.grad[:, k + 1:], torch.tensor(0.)), x.grad[:, k + 1:].norm() + assert not torch.allclose(x.grad[:, :k + 1], torch.tensor(0.)), x.grad[:, :k + 1].norm() + if context is not None and k > context: + limit = k - context - 1 + assert torch.allclose(x.grad[:, :limit], + torch.tensor(0.)), x.grad[:, :limit].norm() + + # Now check that streaming gives the same result at batch eval. + x = torch.randn(4, steps, 16) + y = tr(x) + ys = [] + with tr.streaming(): + for k in range(steps): + chunk = x[:, k:k + 1, :] + ys.append(tr(chunk)) + y_stream = torch.cat(ys, dim=1) + delta = torch.norm(y_stream - y) / torch.norm(y) + assert delta < 1e-6, delta + + +def test_transformer_vs_pytorch(): + torch.manual_seed(1234) + # Check that in the non causal setting, we get the same result as + # PyTorch Transformer encoder. + for custom in [False, True]: + tr = StreamingTransformer( + 16, 4, 2, + causal=False, custom=custom, dropout=0., positional_scale=0.) + layer = torch.nn.TransformerEncoderLayer(16, 4, dropout=0., batch_first=True) + tr_ref = torch.nn.TransformerEncoder(layer, 2) + tr.load_state_dict(tr_ref.state_dict()) + + x = torch.randn(4, 20, 16) + y = tr(x) + y2 = tr_ref(x) + delta = torch.norm(y2 - y) / torch.norm(y) + assert delta < 1e-6, delta + + +def test_streaming_api(): + tr = StreamingTransformer(16, 4, 2, causal=True, dropout=0.) + tr.eval() + steps = 12 + x = torch.randn(1, steps, 16) + + with torch.no_grad(): + with tr.streaming(): + _ = tr(x[:, :1]) + state = {k: v.clone() for k, v in tr.get_streaming_state().items()} + y = tr(x[:, 1:2]) + tr.set_streaming_state(state) + y2 = tr(x[:, 1:2]) + assert torch.allclose(y, y2), (y - y2).norm() + assert tr.flush() is None + + +def test_memory_efficient(): + for backend in ['torch']: + torch.manual_seed(1234) + set_efficient_attention_backend(backend) + + tr = StreamingTransformer( + 16, 4, 2, custom=True, dropout=0., layer_scale=0.1) + tr_mem_efficient = StreamingTransformer( + 16, 4, 2, dropout=0., memory_efficient=True, layer_scale=0.1) + tr_mem_efficient.load_state_dict(tr.state_dict()) + tr.eval() + steps = 12 + x = torch.randn(3, steps, 16) + + with torch.no_grad(): + y = tr(x) + y2 = tr_mem_efficient(x) + assert torch.allclose(y, y2), ((y - y2).norm(), backend) + + +def test_attention_as_float32(): + torch.manual_seed(1234) + cases = [ + {'custom': True}, + {'custom': False}, + ] + for case in cases: + tr = StreamingTransformer(16, 4, 2, dropout=0., dtype=torch.bfloat16, **case) + tr_float32 = StreamingTransformer( + 16, 4, 2, dropout=0., attention_as_float32=True, dtype=torch.bfloat16, **case) + if not case['custom']: + # we are not using autocast here because it doesn't really + # work as expected on CPU, so we have to manually cast the weights of the MHA. + for layer in tr_float32.layers: + layer.self_attn.mha.to(torch.float32) + tr_float32.load_state_dict(tr.state_dict()) + steps = 12 + x = torch.randn(3, steps, 16, dtype=torch.bfloat16) + + with torch.no_grad(): + y = tr(x) + y2 = tr_float32(x) + assert not torch.allclose(y, y2), (y - y2).norm() + + +@torch.no_grad() +def test_streaming_memory_efficient(): + for backend in ['torch']: + torch.manual_seed(1234) + set_efficient_attention_backend(backend) + tr = StreamingTransformer(16, 4, 2, causal=True, dropout=0., custom=True) + tr_mem_efficient = StreamingTransformer( + 16, 4, 2, dropout=0., memory_efficient=True, causal=True) + tr.load_state_dict(tr_mem_efficient.state_dict()) + tr.eval() + tr_mem_efficient.eval() + steps = 12 + x = torch.randn(3, steps, 16) + + ref = tr(x) + + with tr_mem_efficient.streaming(): + outs = [] + # frame_sizes = [2] + [1] * (steps - 2) + frame_sizes = [1] * steps + + for frame_size in frame_sizes: + frame = x[:, :frame_size] + x = x[:, frame_size:] + outs.append(tr_mem_efficient(frame)) + + out = torch.cat(outs, dim=1) + delta = torch.norm(out - ref) / torch.norm(out) + assert delta < 1e-6, delta + + +def test_cross_attention(): + torch.manual_seed(1234) + for norm_first in [True, False]: + m = StreamingTransformer( + 16, 4, 2, cross_attention=False, norm_first=norm_first, dropout=0., custom=True) + m_cross = StreamingTransformer( + 16, 4, 2, cross_attention=True, norm_first=norm_first, dropout=0., custom=True) + m_cross.load_state_dict(m.state_dict(), strict=False) + x = torch.randn(2, 5, 16) + cross_x = torch.randn(2, 3, 16) + y_ref = m(x) + y_cross_zero = m_cross(x, cross_attention_src=0 * cross_x) + # With norm_first, the two should be exactly the same, + # but with norm_first=False, we get 2 normalization in a row + # and the epsilon value leads to a tiny change. + atol = 0. if norm_first else 1e-6 + print((y_ref - y_cross_zero).norm() / y_ref.norm()) + assert torch.allclose(y_ref, y_cross_zero, atol=atol) + + # We now expect a difference even with a generous atol of 1e-2. + y_cross = m_cross(x, cross_attention_src=cross_x) + assert not torch.allclose(y_cross, y_cross_zero, atol=1e-2) + + with pytest.raises(AssertionError): + _ = m_cross(x) + _ = m(x, cross_attention_src=cross_x) + + +def test_cross_attention_compat(): + torch.manual_seed(1234) + num_heads = 2 + dim = num_heads * 64 + with pytest.raises(AssertionError): + StreamingMultiheadAttention(dim, num_heads, causal=True, cross_attention=True) + + cross_attn = StreamingMultiheadAttention( + dim, num_heads, dropout=0, cross_attention=True, custom=True) + ref_attn = torch.nn.MultiheadAttention(dim, num_heads, dropout=0, batch_first=True) + + # We can load the regular attention state dict + # so we have compat when loading old checkpoints. + cross_attn.load_state_dict(ref_attn.state_dict()) + + queries = torch.randn(3, 7, dim) + keys = torch.randn(3, 9, dim) + values = torch.randn(3, 9, dim) + + y = cross_attn(queries, keys, values)[0] + y_ref = ref_attn(queries, keys, values)[0] + assert torch.allclose(y, y_ref, atol=1e-7), (y - y_ref).norm() / y_ref.norm() + + # Now let's check that streaming is working properly. + with cross_attn.streaming(): + ys = [] + for step in range(queries.shape[1]): + ys.append(cross_attn(queries[:, step: step + 1], keys, values)[0]) + y_streaming = torch.cat(ys, dim=1) + assert torch.allclose(y_streaming, y, atol=1e-7) + + +def test_repeat_kv(): + torch.manual_seed(1234) + num_heads = 8 + kv_repeat = 4 + dim = num_heads * 64 + with pytest.raises(AssertionError): + mha = StreamingMultiheadAttention( + dim, num_heads, causal=True, kv_repeat=kv_repeat, cross_attention=True) + mha = StreamingMultiheadAttention( + dim, num_heads, causal=True, kv_repeat=kv_repeat) + mha = StreamingMultiheadAttention( + dim, num_heads, causal=True, kv_repeat=kv_repeat, custom=True) + x = torch.randn(4, 18, dim) + y = mha(x, x, x)[0] + assert x.shape == y.shape + + +def test_qk_layer_norm(): + torch.manual_seed(1234) + tr = StreamingTransformer( + 16, 4, 2, custom=True, dropout=0., qk_layer_norm=True, bias_attn=False) + steps = 12 + x = torch.randn(3, steps, 16) + y = tr(x) + + tr = StreamingTransformer( + 16, 4, 2, custom=True, dropout=0., qk_layer_norm=True, cross_attention=True) + z = torch.randn(3, 21, 16) + y = tr(x, cross_attention_src=z) + assert y.shape == x.shape diff --git a/tests/quantization/test_vq.py b/tests/quantization/test_vq.py new file mode 100644 index 0000000..e58fb0a --- /dev/null +++ b/tests/quantization/test_vq.py @@ -0,0 +1,20 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import torch + +from audiocraft.quantization.vq import ResidualVectorQuantizer + + +class TestResidualVectorQuantizer: + + def test_rvq(self): + x = torch.randn(1, 16, 2048, requires_grad=True) + vq = ResidualVectorQuantizer(n_q=8, dimension=16, bins=8) + res = vq(x, 1.) + assert res.x.shape == torch.Size([1, 16, 2048]) + res.x.sum().backward() + assert torch.allclose(x.grad.data, torch.ones(1)) diff --git a/tests/utils/__init__.py b/tests/utils/__init__.py new file mode 100644 index 0000000..0952fcc --- /dev/null +++ b/tests/utils/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/tests/utils/test_audio_effects.py b/tests/utils/test_audio_effects.py new file mode 100644 index 0000000..e4e1b44 --- /dev/null +++ b/tests/utils/test_audio_effects.py @@ -0,0 +1,112 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import pytest +from omegaconf import OmegaConf + +from audiocraft.utils.audio_effects import AudioEffects, get_audio_effects, select_audio_effects + +from ..common_utils import get_batch_white_noise + + +class TestAudioEffect: + SR = 16_000 + + @pytest.fixture(autouse=True) + def audio_effects(self): + cfg = { + "audio_effects": { + "speed": { + "sample_rate": self.SR, + "speed_range": [0.8, 1.2] + }, + "updownresample": { + "sample_rate": self.SR, + "intermediate_freq": 32_000, + }, + "echo": { + "sample_rate": self.SR, + "volume_range": [0.1, 0.5], + }, + "random_noise": { + "noise_std": 0.001, + }, + "pink_noise": { + "noise_std": 0.01, + }, + "lowpass_filter": { + "sample_rate": self.SR, + "cutoff_freq": 5_000, + }, + "highpass_filter": { + "sample_rate": self.SR, + "cutoff_freq": 500, + }, + "bandpass_filter": { + "sample_rate": self.SR, + "cutoff_freq_low": 300, + "cutoff_freq_high": 8_000, + }, + "smooth": { + "window_size_range": [2, 10], + }, + "boost_audio": { + "amount": 20, + }, + "duck_audio": { + "amount": 20, + }, + "mp3_compression": { + "sample_rate": self.SR, + "bitrate": "128k", + }, + "aac_compression": { + "sample_rate": self.SR, + "bitrate": "128k", + "lowpass_freq": None, + } + } + } + weights = { + "speed": 2.0, + "updownresample": 0.4, + "echo": 1.0, + "random_noise": 3.0, + "pink_noise": 0.5, + "lowpass_filter": 4.0, + "highpass_filter": 5.0, + "bandpass_filter": 6.0, + "smooth": 1.0, + } + return get_audio_effects(OmegaConf.structured(cfg)), weights + + def test_select_empty_effects(self): + effects = select_audio_effects({}) + assert "identity" in effects and effects["identity"] == AudioEffects.identity + + def test_select_wrong_strategy(self): + with pytest.raises(ValueError): + _ = select_audio_effects( + audio_effects={}, + mode="some invalid mode" + ) + + def test_selection(self, audio_effects): + effect_cfg, weights = audio_effects + effects = select_audio_effects( + audio_effects=effect_cfg, + weights=weights, + mode="weighted" + ) + b, c, t = 2, 4, 32000 + audio = get_batch_white_noise(b, c, t) + for effect_name, effect_func in effects.items(): + modified_audio = effect_func(audio) + # It is quite hard to unit test the content of the modified_audio though + if effect_name == "speed": # Speeding up audio should return in more frames + assert modified_audio.size()[-1] > audio.size()[-1] + else: + assert modified_audio.size() == audio.size(), f"Wrong dimension in {effect_name}"

      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 literal 0 HcmV?d00001 diff --git a/assets/salience_2.wav b/assets/salience_2.wav new file mode 100644 index 0000000000000000000000000000000000000000..af77e1aac4df7a643b48726fd2cd25c67aec06d6 GIT binary patch literal 1280058 zcmXWke|(qI|3B~}lO&lWlQ2mp$)qxA*K3kYl1Y*zYB_mAi8TtCir&hzKv`8?;kUfaO)`u6Qwd}z4ztik7u zykTr+s}RDzVV@B0ajJ)b!W7D)@Ls}Sd)!3_oCqltbRUv&tRT#6TD%4a~ zg@zxi!not&P<~S!vggF1=(9NVO{)$KEviG_vDIN}c6I2}y*iA|sSX9_REHKQv#)FY ztHbc~s>7K4>ag+j>JWFR4xJBm?~gdl`6dqQK99rr|8x9g915O@!>p;s{#P6_a^sMH zd>qE~iNm<-;!tx}99rKKhs=p_sC^_3=}Y6#;`=zfy>E3WZ(SW$99JE#KCwCsIjK6# z>T3KR=E6(i8P#DYzBZpy9d@|)a%OedaIijq$Dv_;9E#tG!@^2qe;9|2Z^mKB3&t;v z!}c=s&c}y&DmKMobo1&ktsQw!t`6B`xv`)+L<6cr+kVwyJX!O}mS&D^=9r3?S^Cas zTOF2Y7qzJlGh3OrslI=b_h;j7jKdDH_o|P>ydUGR+O-j1#bN4NI&O?Zx1U`5G7h`G zcFnzosBm)}8aL3zYP{CPA^8azYK`?eo|m}pxJ3WrZFn~RRC1Nic72LxucXh`aR|>> zh2+JR4BRu++^a3>8S<{m4cU#kVMy~Rlph#{GHt`s+z|fLD2a!6>wNJqj5cqA+K_L?}8U z5!RoW2n9KbaP(P;(7sP1%sD3!CY|egej-%#ON6!q5@G!LiLmg3M3{eZA}lRPgq_Z> z?wbg|duCCT2%XMMgi$>`cSa)2FxK0rC&F0gnF(W`oe2H)?|5M%WTE)dMCg2#_S!_) ze7*6<82dk-zr*>2L|AZlB5c0 zj6F)TEFWO;fHICG0eC_6Jgo# zL>P!-=Px^-cUdA#!*6pmeF!<}BC~fQOeXgPw6vFbPotlc$wZHJ?Gs^JW+H4lArYce z=_@7w1&GdupgYib=hO4>LPyIxC&KD>#%+}dN%m;>T@(hzQJ6F<3Y)KpLM9(bzS%1j z-c%K49mqd>h_^fV;45+Hyh4nKmq9z@(6vc*NdF}cIpU&Vi#XY@I&?X#Iy{{rwvVh1 z%lZ6H$8Gt2How0W^>aSoy{z_PLyT+{M-`o_Lx+ylVUlYTPy=k3;@*Z+tHTeciLtI? z3a-4@xjHoIB6iUhl<$6*ZpP_V9SY8>4yC<~)mQ9^%hhLBhfe2Khh^tihq+?2R-CRL z3>Pl04(l$e4r_*J3-Mo69lG9ZuG_0ak2|YFtGla1-T3NI^l#&jhE-_hO>kwbG4yHT z-dKG$Yll1k-SxCvszaOq;MKLh?yc6Yxx;v_RT?{6d$sfC6Y%4H4VsCTqb%2(y1z)j zrslc@KlA@p9Tr|y9R^-m9U8BIH`=bl@qRgZFEh?i*Iiq89i8BeGQyp3w zZwTH>@ez{dH19%lbwTUz!Yer!qPETlqk(9Z^Ks+wN$#Da$ahV3*fqlWmH4Nt61vO3 zl)eU5hfNpIGkvxn0N0#%!s}MNmz(={{EYGJ0D8_luR6?Thc@g|oKqdPv-2jnJ20a< z3_7GbjBMfA1K2yz3GCbP5j=-gn-{>b$KxW)%9r5rvH_qfi51dNmP8ha|${qY_~)Kd(GB5oUE46WVzvC&DV%7K)kGUG(Xi z2;E%U+A$H?OND18h`)6-vndaod|>PN`ywo%g4hgG{m)aXohP`VACDiS zU4fTN$)SA@9yPr_5o&M1xB0qWNf(#ExbqTWzyLhK+9i0~Jdlj|n~T5Q?r*^Nu5&%p zGZFg0o`omD&|~PD?CXy(4?3DIwx!|e2N?1>+8BjC+oF(9hpk&CLYn(CwM7T&b1-~t zM<1T+aX=!J(B}@5vG`{F3bF<(xbU|c7TL?V~@{7tSr2RJv+wX}&{h3inZxV%)g}I^TkzOJ1XL+rayw&^7 zP;+2a$Y{<73+2~`_~DCkwEAYmcKI1)sWZy9I^UPCqd7a`khePyEA|&}>Ei!LxO6o9 zJ6!H}KCF3lsBa2GnutZYc!uZm*UHNB{(Ds@`IL{Jg_q~g4B^{e zpKf2m8Xo*GFO9KT%l5A2Qf~3_sZ5_;>y?=TN@W zJP{^}%cED zKfkJ7-d5AT@BVLU+QVT@gx_oMs9z@Bsc5QZ`l~YJ?cgWp%86y#mz{r%_n#_5%>r%5 zGeh2gdxg>*a&+KR=jVpfmE=i_Lfyf5I4cSTcd2{i)?G{S_LJ){B;z<3BbHY8<;TOt z+s!cK_C(l-GH*$Q>`~+sdwJrnG+!+AaNI>qdTwBAalTI?Tr9J4beH4;M zJ7<@=2gvjzx!5OTBO#$(kfFtSMew(kWu>EK5A)9nJdGJx#b3RsiVo9w7Kp-vL#?cmNV z7?1%ACh&nK^th$vUTm4SFN`%`-T$I6t43ZZ!^dnq6_e>!7%)nE2~5hTgA)-sGp`{l z`D-4fBfgXKoc@dDk|myfH40l^p~skB<(74PY|CfPH%4J4ziTBIbd@Vs;-eoN%Rd>f z-PNMxN!7DG$S?%XH%Ci`!CdwoI3C}3CBoC%p?APd)E8z?x>FuOqsEaP{@>!+qORNZcIeL5ehfn8JhMN2yVcNBK;&&~8%^M6rT zL6^mA=A#Ksw;N+sWhjIf>Hk!P;$E<0j5_o_{F=MZ z+&I)fXRWpv4`i89Zw<8tPy4AOTdGYmto2~h?}t~1mFaL8X0L*8Ll08N9if(i*RgxG z@NL$KaPN4>@Oy=8Wo^`go^R{8{$R9!b!ffAoEzw%mVV4#dJCB&Iy=dntH|EGGNf1M zhLVHGbvBvEvH5&5iHl6f#TSUHBl+lBxILJ?9;^%v_gXu(j6=rgIAqdm?c4OejgDK( zBlvmmbZgkYFt@+DZ(w!kISBtlt*fu94ht_M+iXf@kdcsv0D8t^>{z^Y_9RT(^Z%1&<)0C z<7*~8&cI{FH}cF|@*%!cyq7=01`os7JNd(9e5O#JbNCIr<#*Y zziZUL_-}QCJVe%1{oCqRI=Ws>TBs%+Kvw#k*;{Q(wsk$o*~xn4sOr$MxmuJ=rElP6 z23{^t@2dqBBEDRc_dEg*^346vnDOE7$PrpQEs#>E8Ng*#U`Am?pOO zhifg>g9oa89IyDD{lA8h|FhPDGwtR^Vew?~kt+t)iQ}H)w{Ncy#+?~5j}}LAR7tLy zL(Zxx!P6`BDhAip(W!Xswj6K&7l&nHa-4QuB|VCT+GqFbH=hlf(RY0(*V>2?c`i9u z-peFM;Ta*EnHvgzQCswmLa8{-c~t&=UjA5u-jyG|lrw&Sf9kij_@8@FBGezDj?9F$ zC%~&tYSa_S43l@lsc}cC&)f?~%4_=mP6wTT)Y&m9U_*{RjI{V-DkI1ITw1I}H^x=fO3) z+A)|fUJfTNCG*wvqfZ4NEX!xZR3GP=1!DFTKGvE}YT;yi`gqeE5o#)*Z|xN_2hq!4 z?3{z2>#UDw$tkd^d=-1u!Qd5a_96Q@Zt;B-mb3i^c3)3d-M-OB4qEM*`n%CNyOpEC>!L%`LtHaR;S$7$G9enQ$Bj=QxQ{0u_Ko@kC zbuRxn0-o}XhHY@xUQQvMG;FO3n-7O|r_z-^Whk2;u9zN&(GPm2i0)lWQQ1hk{I{{D z*o%7vMo#6EkCE#cx}WKMwsBtc>{9h6yr@{g7MuC#KXKRzS3?Wfb{OnA+FB9s(@}nV zYhHR72ZOi3---LdvOmo8Bi(%yhst$w*JsB31dfoa*FrKr8izvs6+X%SPwkz%_BK9o zB|8s-)hDBU#Lxor?JE`zR=dc1Y_F`h% zv-I}0m}c)~aA!K(mBRUn340G`!Rs70JqaEi2b z_wFRmYj1|+pX~F0xgqCZe6){3W*6gjgd3^zCQ+Dmv^mZed-vfPzx|(9AHN_MzlH~V zbkL4{DGJTrWH+(9`8zSXD+)dKNrYhsTW7qwD?<`ZDCtJT_5x9H`(=d$B)3UzI=s_!e8p`skxy(HTGaRWD-A|t$jHP zW$(k&O>)X#Wd8>b&D5mncvYirC)X-9`0y5q(4~oW23{LBBQ{$6nZEyn{iww{$J^;~ z-$dBt`Q4}jrj0bt0C{X0s-&N}^fTckwfY&bzqeZWEH!#Aee|+-af)Z?q%%CM|B0Wh z#^1a2u|zwMfAOUn`U!Wi!M*&!`Sz#yNjbZ`BQNlo;th1Um0z+=Q}h2Im$b&iRO42* zvv)zJX80I(tUXS7XdYV(K1Pl@T8->}Piu_1a?tjU`0QXkrQgIX*xc3r$?3+(v379W zg?+P6wkM+Pz_v|Kqa*yMY+p~tk=881T&?M^uW@fNPE%tpGFF*+JIZ-w^txpSKTPqx zK+NAy#sWSko{~G{uNTn_m~yXm;Yp4==I*K4OS{tZt=3_W!IdhyAainO6jn61o}lMJ zt*i;ny@nji%)NkoJLT5`I+%*D9`sSco^R97AZ-uSpWQeAz|YyS@DsXa(-p=Zy-2Kx zgW6}=_*MSldKTOFVV}kNw`gRKKlL$xUpDV+?#bq^Gk3PRJ2~EYh;uaE+%Tl_4C5GJ1wE zMc#cw-u=b8AzK|Z)Uy-mYQBArrJk)7N86D-kcQuLLq%Ku+Rt1!MPURV8b4Wl!{2f~ zwu5|=UT2HyC`?`Ko@*<_M#ZP@HHd%Mw3@st{=hRI%cF;RbieD@DBQyD%g{zKP`*}t zc)s<+Fmj-{_=y}Pa7#QFpCB&pu}*p_4*6AaC|n(faU0|zF??h5>X4LkyNT;Tt<>Oh z*K~0{*!9*;tT|JM2TIHWg|OIlmssFgRGzuSTK()U-x%OAzT`UdXY ziYD%ZpKZqTY~?%hNgP`F#)cp7uN*A{tS{>%1j&j;M=R>u#@LF?hbtprf z9XIN`)A$SV9C>~=eGbU*toooUirbOzNY{_DFReyc)xjF+Bzf|9_gzc9SA5#@`9FDo z_hlT$e}yM)hg$UyotHeTR(J;QFOqj5*~;}v$^V7*uIGjuyYH#?=ktu)4-bRXWrfxq zMb;pwXk>M${}=s@P@g$Yy+c@WJuDxEN7t^t+&bhU=jW+ijM4K3a+RX|LUkM$lV3K2=P=S^to&ksRz_ z@`>7LsrB#+>LE7l%s(2)m(8bY?u0I^SCGw2>LvEI* zCi2He)AbQ}XA{j>RKK0cPto>a^7 z`8qmkcr^~?WU2q3@ytDM6M4l)@kVh)rq*M0&eI5O`n2rA@@Q&Y&beesYv2*D^OMJD#^O43mP(At}-kPG!H|(F-%dyv(`7ilm z5)6cW$wvW7@4rkk_&m50AFbYLSssUO=dupNLQ{{nCaDAF(HvXQy*J|#KLf!BvXzq>zncPvGw92ygZg0 z!c}m&KYk{|=sEVJ=Q&Tf{uF#)?cL#Q=b!1nzh{q#LgAtKJthi`eT_Fk?t3b-_iFxM zqR>3ZDb3Vg2g@t++7EK-Zh5Ca+I^T@e5`k#*>c~R_Rjj+8|x=0Uu2){LV2%1o*yP> z{!5K^t$J)^B8+w1`D)`8s^NyKQLd7!oDaF&d(%Pk<^|qm7^l>DcNlkJs(#4S|Af8y zKdBCAd#XNagZ`)3d+u&+*Hd0NLk)4dy*l^%cgAZ+dz8nhvE;+~^5Popu(poz-{m0h zDdh5r+EniB=H5zu%RFWKYwVF4BkLCR*sb~+qnoiBZ&VYyJ`t_g zKccUQepZ^dmR@!Y@LsAv9cybZ@jShbxB@Tq7|~rPeM<7_9^d(0&3~f0gl%#TC$Bmr z?4$p#D2z-qKU*eS2^n6P$ThjfF=A3Z7ItqWA@z;pI)nv>Xj~DW7xs%SE zuOx4K*DC+xU7fyZHzh*D4P^1`TD*_MSM5Oi4*l5pY&Oa>Pvkn?uEksG{ZzU6Q}ypy zZU0vKHpMgk3ieg=IUXPE%lxbk`jTJr$MK8B!4qnz`<;uS^nQHz#JxV;Ow46&<MjlPb+8^!fv~&$dmyWjnQ)3n4sqrIvO@p_d9TIu= zM*P6i9dqMQ_cDIuoDM7C>gRHo`A0OV4&&7djq**q!{kl8Hf>uS)@tk26%$aOjOs8S z|LNIsb~pQN?}j*iSw13pv-ygYra&_vFNn>EbgyeoBsIFuz<)vOvxCx|;1Bc^CgV za!c(h{L^1*FFt%JKdqKWJUc@!%5c8g_0^5?@?XaPQ$E?@ULd16SERAQf!?L#p_sfg z$osN(`7!wJyf@dDcUOb-U@tOWeMWT{eU^IS0`m^d57hnq)K`{72ur z$dx4Po!({MY`p8$GS`{sDs|3a`Q7uQ>0mrv=5(}AW&WCUbrCE5sA>U*YrEY!z&*{Sxq+#5lL zQWQBKYVMY&xZXvr=6D->_F|J>z0?z)Uw<~a&%@7!>~tA>UEvv2INV+`yG|LUmb;c7 zM%YW&wk6|6w1T}GoX@$kI*dHuT*m)_Y?WK-{#|x^jm@5C*D`jTABV+H+K-v3CYf$s zFwOB)K7X4U;c9ip9ejb`E_=fLVl}`u;_NiXDc}CSDkSZ-m9MA@4HfnZ)G9T#Nd1ym zBObo82eO~OJGJY?$QFIn3^^x>hdjPNkU)a!}{Fl%byLMyO#pkF?`AH@JN%Er(Y+B0?SBSk? zqsX5PANJ>~@8Q+{Ox{B8KJJ4(?cnEmQOLVVj{i4IyB-c*1>>%aLKvi;fOQ2Y!@E-* zUuL}z2j@)E=b9+&h~Qn8+6B(0Z-%q#hirRjjVp3}i>OZ*&$Ly~tcGD~j=EC#W_?|U z(qGZOpBwVl>F;{pXVz*JJwxUR^tF&4=`drEI-ibaJV!_DH?<0`yal_o8y8y}&{yL` zdd;WPHf;MD{ON)6?Ge6Wyz|Xh;az7d{GUY*GS!i9$ZdGP$DYM~aCvwXQuSAAe`*KH zbDSjaW_*wNZLdt38*@Y1eo<&_4%f9czvhP0W%yo<=Hfly`99|I4OZA<@9rmU7vwv< zhEvsB@VqueA)}dbGp%ipH#Ys`StBRqrJ5F={ZD0RoTUDRx25)W^O}*V13$S4Cf|z2 zsdf2HIX^1-jtw(VAw3#v1bY;{PS5M*!9SxgVL$Jv4^D*iwsL<5wMw@9eY#rf4EeW* zdZUZn-$`CQJ`q~BS5qA&x9dM}A2rt>_IG~8+a`JRGrC&Iwr`U8CAn|`J)vEWYs&2> zmPKL3GtTGIi{p9o==V{2!cQ3KT0h4f_!s?$eI46lNG_4rdXTq+ckug@b*>m$#pX@< z=Be?X_xQ8!w4S)f`4qT%Zyd%AcivBY_JyVVI6JsLjgI(m%^Ks(pntxUNuL!5v*}U% zH;2CY>yD|~m*wvFqR^*~&A;RaJEHJ%n)>Yk)C@IOhqO$D;tVw$eRV#W-cD6(XeZH8 zMLYXfhp0(BGiRsT<45Dtb=}%1EL@>BuZ}_k>il*TR#(vps;{)S_bR`8&hZmsYr6aN zl3&P9_#5M0Ngn%oG3I?EJ-kt6T_8qJiPhcD4R81@zP9H1#a1b2^l-^ z>96_SIb?pfGL*ufqOs- z9`fVK_CVaPgY_8)%8mbs^$l^zuThUY>3BT9AHXNN(G_f{dz}A^pJaRf-=E&^wcqxT zb~$}-q3_j>--A6b@EQ1;4Vz1kCC>o1gX`n^ipkFWcBlStipg8aPz1Z?s_lle)2sBK z7KbsXi@$5Fl_$j^i%i?+pfdjXruHMbwn0{U)bw- z3oe$!3B2SDlq1vSY_U^w0e;o>4OfXJZL%5P=?;I3VDw9Lv4#$okaIYF^rWAi@Og=M z6cegK89B2~AXCCvMf5G_jDMEytK^!G)y3o-QA^(cvFmC+`l&o!$0piAYvt{Y`fewG zs1DoJ*PYcJi;j?sGu30{xPx6clBwGX>QvMjrR3|H>T{61&DPo98TV~<0=Y6SrgyQ> zxQtwXdlz+w{Be>Pl(RO&k`>~99$zf^m>s|1gWt(vaC_H&u>2rC+{T&_u9qFR7rPe8 z1GT85>y0hM_dam`+bA?!u@@JMYQ&T=XWSQs+S|n0b;iCzOr3B1uCU;6$KTUmBibnz z>9Q1lg{j(Pk5N13H#0-SHo>4GbIdFW8-o!wxaA`Ev4|#-EzQ@>%Tj{+aA$ zE%Y-#&G-K2QN9Vwy8R6+VexwLIz!$nfnC|X?VY1r`j9POoEMPgV*3o2S;Jpp{dzeZ zA0(#xk?$<)-7~BwPqV%j@1x;c8?+4`tcP`IcbNi|~Cmy-kBh53&&|p2ZgIlqAofnQ%kS z9P~*PI(fe1Vep4ty27A5Ii@Sh?#@2F@P3Xp@p;zH{p~fNc4u2t%hwer!gKZyG|lQk2EsxV8>tag2&1q%=akKvoiTf}%_RcQQ0 zt~paKy-Ixln|ybv9q)@n{SB6-^?)Bh_mD*biHvBaBF{l@?ZJ*X8!#g`>%pea$s1febBX`=rp^;5XY!9L`TWCl^E7=t$se@6_(eC^JdW=#TuOg0$VF^8?{A6 zZoYxd+oRBiE*j}&Rts?tn>xVu6i)rVulfc?roPoqVNt678?k`@Pmk=$(8UmW;wZ;| zT4Viy7ucP&$JO|S^}-hGq2}f~oE?t0KI^3IXx>&)$X+Y%ChPyfnV~dE4(pJ*>S2!TM#s+}fX=$XED3a{U^G?fWPEjzmogr&hw< zRIQo%#=Z$k)u|of*i2ZPZvD{)hOK~IN%9Y&hs@W=$kxU8k!P4O$<$yymz2YkmF!n8 zCboLVzFTcsY;SD28el*1bc|ecXl$JWXDOiyesk>5_Xwj{Va!P-p^js`0&F~=p|qDFLwU{*Gt%Cin?qBIZuOa zE!l-1hv{dA^oQXi*&5D{!wS6bdQ#2uA|G62eat7vlA-k~Jg!%dZHz-bIm*B1uj}yq z5u3S}{8Fs{tbY@GD&je{x3jXfeH!sR=2-PsmUlhbYB%**-^l%h>$ym6mhWEg!>hx3 zIM&O!8<(5o1$v&sFD|0XmUQt99@FUKNG&`|efO0IkMiifE`@W4(Q(H(RGb0(5^%Vi zYiL})_5$M-!p3Xd8)`h1IRf9K-5>Ay`{bKR`i#|w?u*#48K0~x+KcJMH}J?J-%O5)ag8bi-Yb*JGC(B=I(!a_4 zE17>_dsOUR_ICcfOWz>xz~yF#+B>r+v{l~f&5lWJ$?^8#I;qRm-19rbb=M2p+e17` zZr1;5K9c$kLXzI<@v(yrvQA+WF_!$!8sThySqD%4*}DgknIDD5tHt~%n0-|g3a;S$ zgZcG^QOLhoi^}`*?Ng&rf1rEbOQpWUuTg^(@|(J~^p!3j(s4yk@pUF0^p}TjQC~mA zkDta%8C#d*=M{E)QhPu7i@g(knBLsq@hYr-n~m0@-{>HX{HPsS()Uq=r}RZviyJ*J zKI*?Q=0-l`IBawMC%(0YeP0)6C1mAiHK*|_zFqPMo3nf2NH%*`PHxVQAL73a%sXFx zX$O;TaxI%}FVNnjO?`h5^NY>!;ps{k39J63yC=x|rSYuo^S1DhI{P1sU3--d-cqmp z>{z_ynYWR@rQSK#Xw&~T|7!KYqx>t=vmfCjMyYQzmYL%pYlZ9NG1#5*&BhAj8NaX% z`P$RvQO0P>KiDu&ztVlhYO(!?(Ybrpj5!y{A+w`U^DaC6Y>m-Wt~tc}Hnnn#j_POF zo%)V+i{o*qCp>TGUJTotA8NgEpm#oU*0Mk3rQgvnQP_;~zq3!Vg8eIu`4S&lz*k;z zUSt2{6aKIY_SHsvz5yv+s>XXG3gb~{$C;j~(YFO^=US#VQ%)Fjw=o9tv+mlAD5USt z?|$No&$Gi(xqjb_&S0BI1;j9cRc_9cS;paJ)eqK zy6jNN2A|2fKSf~x{x*>5IG=9Qf$jKufi>u0`=yyDx!>M8tetPl ztfNQJO95Y~-$93L+xQRJou_owQO$FQc7QQk{LTKqy0?}8@{625#Fm(7AwF_ElgWRA z`(qoe8MP_jDcz=C)K1lI+2Hxl=^LLJe02L8Vu_D*n&4eF__J`G>s!Pddue`XzW?HXfGF|7mGV{qz`2yR4_IQC3l(g4(%A^ehwcSC$^H+@FwPeAE*m!azouy zeDFqod6?E3H}&mu7zwYt!0V^vf{&{FQHNL!A!gsL3VBP#D@uOi*tG)rr(~yhzWc^u z%;9p@DY1Pn{m+j>&cHb2UlfP3zHw;Gi9_a@>Vw{KXz1lQI}Ulr=!?RUahP?GTIK-v z4vRzW$<95SbB}%x$#FAWL#f|+B%f6)&Q}BfSN-*raO8k7Pj$SXv{@|HE;yvH5^-w#GY-)YHf34! z%=c3E#D=Rg`&n0}e%~?Ez05=GC#Xw0bhgIs=K0g@q4l&5&6D5HwdZENJ;xe+=WuK7 zk@gsFP{-Wpevv&_*ES8ZFWJ93Og&F6s~yl!jgxPW4t4B{dRx=0b(^Ynhj#Z3yBc`2 zxe8A-_X)0b@ZK|X@7nii>)&xltBuuDb=rByde3;gy$&?DqxJqtc(v~DbEaA=^6njv zV~wBF$GhHh%&DDxmi+Hg~))uJs@Ho}jOUS*6%>Bu{qP=}-a?WRy9vP^ueH?bU!}WH@*_YLC+R5Z2Z-X^L z19_J8q7S@HMk5?ArPI`V-6Wnz&}}yRP0;3(dzNQY?|+xE=S0s&?sYa+?Ak7EYA-3N zUo-7O?Kbx4V68IYP&PZ*Jp1bx=%Z2n%h$$y%J;%SZZlt!LuSimW8{=9l=?*8hnRO`hl`rY9^JV@)lWZ=ay(cg=+^!em5q!p0CdhYN&~xFH!S6 zYTsj)HSsI(_-$i+EH8Zumsi5dYI~#d*$VyY?^Q$H6Zwu#d%yV}jKUnxCLh;lChUE{ z*#D09;Cu!iiq3WqHS~6D&YJV&)4p&S&APzYWAWj+?TgU6?whY>H6GW?k(<#rJpB`e zQE75ID%+(F_*vbxQGYxxtH5iiniU`0@m6;?-Hf1{i_Ou~Jvyt|$2qJoSfIw?Cu7tl z>DKIp^f9I_9?q2$Zu5LGJx|712$_k_pf7x`w-cTDWqhrZ^pU1_=eSH~XT z;^!MOYPKB{>LRkN9P?f)B)-AqF-lv%J`iw{xF6% zqmlj^jLnXPYv|<@y8j=0&~fDo_IO9mTueXwrYK3?Jo2~UQ$Zj5ay9C+Jn!g}eaJc2 z?_5@rb*=iZIT`HH)p?&)DBcPkCsTWzf#3EN8<&WI>#TvqO*&t$*)2wD#m6N2QRCK3 z?iI41p+mY)y~h~KXH)O0TP(-t2K?i_4_W52_m%_I9O~R|2dOKXC9Dtm*_Y}BeH$vH zu<<2h;6Je2LN+U5$Lwp#KUfWbnq9$uR~w(NH{%}#GxU8{o%cH5<>w1O)c+&CNFO^K zH_*+HdN%nf+EY)bACL&6%$u3=Jv?>$&GUH7W2^EH_$D0=i`6K2$*OYC@t`;8-Pq-8 z==2-B{33Sv?Tt;zap+#VE$FB|JJI?~?YjJAbzXPh{`FMPCDeX->L>Nxt&UUYLvz`- zn|Bh&dbiTXJ^pZXOY0irrTz{?Gcl6>`CfZA{-3yfl@6cB%X9o1jV{HbI%(O{`ib!t zQ^fHt{Nfz`(40=x|EcdgN^j+#pR;3Eb^c5I_805mc2%&3T`yqQ)LL}fnW64}eXSoF z#6)HeUlG%V^qjm?{ISD2HW{&skNp^hADVb4MCPn4zM4aiWNVvG2N$qyKeg^TiLmx; zdyReg^jY5H^io@rbs4=(J~9y&u=`Fj=FxfCYO=9=CY@(i)A^flU>V)ksx|3-#sYpr z?$kOoonKch!oz$#J*xj`HtveY-}!5TZ_g26|cMmu2udw5NnDuh5HKVyk2w!2SV_k^4}KMu=Ym1mdANpHlV_O&={M>VlL{9YVJ zuW)^peVLWcYt@i%$6>L1yDIIyYJ0t9|Lp_!^hu({HFEcVJ%77-%vo}}u}_SB%i{Q3 z{LB&O^pv;KzWp)uH^4Qyvf&r+-j9;!&XIHRx4AeDX*1>AGBxi1#i8__m@VT_@wwye z#tiD4ebh|*s!!5FssO$azB;)QlEZt9ybD;gP)@l*;N1^&>xmxcQ z^-Jp8wk>L#>FUP`eZ0@@=id2h!~SYQ$8-Abt<&n%L#f{s%+Y_a`lcybe~NQ;-_dHU z4Tsr(HUD^g%r|%0&NvkQguX^!s9V;M<3l>4Q{#i8h? zIOL6vL-|m4>&MxiiR;L-uZT)7iZf=<}F3>}VH<>_d%ni1F#T;$Y+K7l&qP z#^0CC(GbTC2YL1gHH7CHx)?Lhb6299JwxC5x4M6S9OgaACl;|CeW!kB)9qXH{AfHn z&-$6Y$&&Ju)Zc3fcr0hza&=AN2>w3;{(r>xPUEZBz?ld5@f>mWG(UcvpHGcK<2_>S zwkT{K3V-^U8l2-DzINqhToC+uB2FNfFtGVQ&|)9a6R|0ucKwbXn6sjjWke-=DXz29zPoYddj z*uE+yS8(cfY6qq&RE#YaDSL8X1ztGjdeYQCe}&(sERHhB%$G9>u)Rs8cNF(9VWCgXV) z?07j2eU^)d&&1z`I28ZQw_!v1A=Yl$ z#{Mb}>*!<#%$v864yM!DZN|LJ+&N+_oj$)8154;5l_SQ{v$kXk9jSLx?-i22!sIz> zrtaiStwBOXNd6{|-UScklH`|u1HPY_JxctE(W1ya{bTO~&2t0&PqHR4@AgvmA=|>m zFmXv72G!`d5%@ouRou3=>Mv!YD`;64i zasOR5d{3*U&8!jIk2~(lcDIv#hWxnF8fKpF1y1x#KHH}3TI~1<{Zq%Q)yC)34ScEZ z1>@LuBioLJQ_J9IK0R!Ci!L@=C&>lNTUh(T;Ds3b9Om%vx~J%wycOgv=0~Z&0g=wOrKjklPOY1Zk2A=Q-;xL6!)AVbcw`;S ze+P-RtNHM?aO!S;Iz=2jBrd1HpBd_lS@7z~$oopikBZ+%^m)*JVNz_25(Drp`x0Xe zhlkoEY^v?xd>cKabXXxK>g|8-FaFy`p+PKUn7afD2Dtof%e)o8B;g}9{1>PL8}&8bHE0r>C3D3WTQqf^ z&PMw<{{zl@e^m3B;}xzo=%>yp_#7?p{KK$(E<64o-e78>wb2l~C)c!yV=xYVQ4=_rtsIDw5u% z6y8SOn5{k~e_d55SW5N>Tsx_1PiC5qi`6V3^dwwUqNSlq8!uxU7YN_|^yIaZ$))oEt@f)3=`Ndj(^L7*p zpQ9T-ReBr!4Wy&f`5nwm(s|zV^e~@Z?4xJXXQ4H0pxZFmahB_u`rP8)1CH;f$Jy*v zviE+<2lD1wi>k*$Q^zUWvtR1F=7QMq`^H$L9mNJo&p&A#cCBZh>|8#22VZ_zE}Wyb zenFjG&c^h!Y^50Z+`9>Sn)I#X@A&%$F@Z+7R{I6t|3v?HU0b4FSSW|RXuW5QInR<+ z+!WvLdVjKug+}&oO!=F4cA=~?lFquGnu=#JmG?H>UyS!OV;{;7r=gFk{N1N2 zxf!+{r=~jx4|mvadIoMSg;6Ww5Wa~+5+?VOvt}IYw>I_~hp9XJcapn0s5LWvkE#A_ zXJ4-;tnaDKkhi+P^HhD>+TPqQHEU|`b(Fr_jI(K9W5B^Na$@~j_->v;^R0e14h0V) z*teO!Hn)=7bmxlAlYsE$(Y#I&o?%}I2 zuwu4#uefR8zxhRM*@sPg=-XMGH;cS0H;!*G3fI~nhqv_?v*As#Isld1tA1NPUu|vi zJw5y#hbC(IU5DErrjHUj=s?z9iU# zI4CB2)-}!tz%ub!%17#8cg?>1ViU~m!uIes?^V8V9A7B({n8n;eDw+Rtmnt?wNGdzmLGuar}E7g`6gL1 z)lK;==>O=*-%?L0tK?j?HzqA$!@?)X z^ECO~-%@4_ak@*~_jhlM^C0$DEJZc2;VsWqc}Js7eOF)S-k8T>7F`Xwg8k{Uw4>{I z3uDn--%}h+hDqXivG%vBu%o$L-J1M#l5t)fiiWf0^^QlfHpJ=?2+_0?vE*Mb^FP`Kd z3&>p-hy16>UZM`11nX|0mw&mB3U5~{PN6@vV{#n&r|#cFr{nY=!=F&eV12WV!M_^i z#U%ZeKEFuy5585B&}Q?IR&*sN zCDj>u7gzbcBzqo#m)>l472fVuyUtOMzbqCjV9$r<|5DAlH4b%ui+}Z8R@l3SpR)yz zo5k=i_}q?fI8f1`uKOYmwV#QNRpfkIUH+ou2gyGm4q5!6;1T@q1E(&N@79Wg_V^UL zv(#AS1K26w`K4@etG%Nq(A)U`*0q1wDEOxFXZOB`U2K=LUR->}H`Z9!e#-w>dj5U+ zi+|TFVp~2l<9=hqgxU+WUHN%iy7^09cpIinr;9vT;I~D|bz*-$%0hF_^zPg`0H)T= zr01_I0MvArW?=rk#9`e2R6ZJ-8-kk^4M*Y!~@G z(PiE#7us_hX>EIhea4%tYsYw3e6#xI#zfe3z5TgSzPY~6`*QtSdZtewKk({KFk_fZIpV~zVUN7vs7Fy*o!CK;KDHa+x{3{r_=Q`eIBIeV)1xy6f(xr zq;jL>E5HaR)49}=BUGF9^&1)>+RKI!}YCC)p2OLdN0W*>gYBLMr@vp zXLy!>w6X7DmU7*FV&jTkkzCHawSl=af0bI5|ihg{IX3Tt=HipBHPs#c&$R}-#J<>--p`Kk zt>Q@a$TjxduJX=sxOL|h-UGTf@M`;L?zI~wkB_eQx0$`GbZx2o(Gc%wtyS|c@IEx( zv%S4rwhxzfsv?RYzd7owPBX?($2%hLl@nxgoab6!dKh-5T1RbHl&#k5YG2a)ZSYd>`qAd! ziBf;#EcG6D8-7!ND|!0CbR4XYza{(oa?8v7sg&5oY$EPca=ndSA=d=$i{$yPm%k^B=bz+)E>S2P1v}^Lt-)%(fK9(dVW|DX z#RprHW+cKodyU0t{NZrWwFU`Ngn6KB<7qslT7O z{eE@KBQSZky6HJJUb*$&Yw&!L`!CD;ugaNky8nS^SGoQve%7kH@X`V;`wp)BE^or) z6@S6zG&p;pcUJIr%%OO~SK5(s4jy-*87Y39H*c2+t&a1}(aGLzo#D3zXT#;bi7*1~ z$d{Wg@J{SP-)w0|yOwsA@1lB<6ZOcoH=F0#-rhC2-qt&`&Zm3l))oGDvDWUCu$S!_ zG#R~jf?UvEjkhhgSuxnP)_aJhR|xOS7= zGm#xiTze)8Q|YP0JNkS~N9u_2tF@oVOY}4TGrE$;x^1OHu;8otI4YSug#Iu)pcA$L* z`dM|J{pE9vLnm#GbL**zFs!37$(pJWikr&ifnMd#`VI1NE&g9;clK_WfmeRea3?*W zhI`3@hLAtIzuNDFC}g&gmyhE!$Evm3%a!uXp1(7CmArkcTyq=yUq?T3PwMv{`Nm0o z_tl?o^{2DUYh6p}@;_>=htxLwFYQHs#Lu=YagQzsy(H)IwO;>+$EAB~igs}nX0b_s z{dT!Gl~3;ZCUcJG9yIS*{9VijogD{$_?TR1|Eu8y>y8*+9H72zBi35OyQAgq6Se)s z<1J$GezE_soIYLbm#D=ah(pdz^2vE|7^7dwHaU1EIs#54#pPhs8Qmr4o}_NJr<5u0 zmZ$ay{t&PB6AJ#!4V#H4uH~oEwK)ZRY8oJ;pO>u+7>w+zZ#bxejlDBn#{Ppp@3r?|dcpTZq<{Igu@`K+($pq_r~=(z?@ z ><89$#N(MRgH>re-vE}#HiqDa^(BJvXcdxJg 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�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�WqL#Ads4+?*jGcN{S@@XPAl1K&fe%Tc6v|t zu1q=)>*i%3+%tFV>-xd?IF8-3^{OF`55x<8+v(nqe?70J`}62~7w6BhkIjweIZyPv z`?dMbzagu&N^^J9x2|Prw_T(45akdw-490-9N+jJcQ#oZfwqhI;CS-7hwY2uVQ>FP zatwK31j0LW1+Hb^FMdBr)?)l>ad*uu^r>srcF=8Tz8svO4_=zK16|SWeyI2fG9CmT zL(gYyvWiWOrPpuSQn9)19`L4p(%tyPKI~yY9JQRqHZJ8i*DC+#K5U$0F{yj-p~}vD zp>{Hx0^#2>1+LX-(+>vBqP;Tr7Jhms`{Re4Bax^T?n!@Z6V}}LZ^;xsT*nT?ukgNc@f++o#4=_3 z8s}@Z`Gk+Z%T8a_ZUNsJr@n(d_hu_a@XZxxzALg96nzI7cOW{>Bi9?q@ou`L&wM(Y z^#S-1ZSuaK<&0tdt0y`3wC>fgk?hxZ>TvKfwuR5^+u%D%OxhM7^Nh12NV@MBiMGGI z-^8xNd!O}>@ynM|_EPcL-&4_2&x^0`?%Ra+0OoD)-=^F8XPW271OJu7tY`n9xp!D? z&VJ2&{=7N-5qS7h#Z`Rj4CV3S)gZ@boBOXZck`vzS?ZtAwoX2?NZn%d{Q`5;qp8fA z?Yg`9t@$#%FVlQvD)ax}Vls>FCeMS&E#!5}_}We27XEe{f9uQNJTHnS;^}SI#gP1Y z@qiG?%pzm1qJ z-sH;9qZ&5!qIqVO^KaQy7cpZCy5Ed{|7xyJgI2NqYtOJG!OzRG{t z&r_h}sLp>cCip5D`#4bMy~C1i>39d@?QAT3C%fbQALE5N;4OZh;?GZt0hNx$gR(81 zuR()*&0^~UP3$tse%oDdSq%5<=v}1^Xb}%`AJgZ0bdz!MC;DZx?>e@9Gugl6`T4d* zQSmW!aZyobEvNVpH1F>?7cZ_SM&We|sB>(ucj6+vloxjX+p1Cd2k1qo`S9R3^Z%=Z zwVBO_4l>qcuoZqQ(6Ws0Y_#sZ3qPULrUCr$|NWu)1a;0^kD}{C!9iqVPVCS&e{**F zAs!ya%SCwW3x2`-y>JJ9HWx41QhEzAKY%_iK>v7ppqr3uG!1t?K$(TN9Sh}Y`iw%; zGi1f)+WB%_FXJC!tf6eETzM6ryNunO$IedSx9FA7|fPwAUR%zx=o!uCSjd>=ha)PSx2k!$|EW~}h4^1! zkI=@y$a@|9pO8}v{WsxVeCjoe4)B?|?>v*w$NX|1V{MJ!575WnBe_~w9|-&YTAI8I zvIU+F#qT-z{+~J7+_t7V&itpZ`YAa^eH^u>W9^8`$*im2lheh zCLmA0HOl4pnIEUb<`~E0WADjmcXJ$--56))&(bU592$F88vAydu_O7-8|axU-@O}H zqfAUzR)PD)$LVwfA~7O2#EFOKi~N&MY4@g_S^uzBn>`?o+AcEZ-X8nrNE{U`m)Eo@ z&BsgSA6IyXtNcj0$noCEI-`HI)A`;HyU3c&#oobJ&c496e9n{KobH`tTKUpOYfF`KrtCk-^LzL{alibI z`JtH%m(s;NdYdkPx&tj0?DTwcJ;U)SqW1y%0kk0w7jn2wiilX+JbU1`Qmx?iI@6sI3K7SHxE)y^2v)9iX zqx!CFx<|@$So7_UY&}caMeP4ej9(8{HTtif*m9Hhy_F&Ve?TmqdbBllvG&c*c$*e) zlm9VZ7vudYE{knV*0rJ|92+*B$D;!H9;8=OYQ$CF(Fz3fJoZR~#%`s>kLX#Jxne#i6e7tsBO*t3&( zl1D}b;=&1z&jcfkjm9xIqvJO7C8$h@o1k`rn0c3LRbuA7;?#ZO<1~5E{f-|b<7zP$ zjCP!(t`vlSQVg6$2Q$Q2ee!R|?~SgLM+BNc#pS8aXLBcNzrQ$z|MV;99Esja`uVUh z%D;<$r`?b3%)Z2e7IvC5I?jAcbFBCg{x8$xQTHs5v!BPG~?NGaomtZ-}ZE%15`M}qK#_8)k?6Zt|!58N9&GEDiJGzY>HNw^IUC6D-W*7dxFIn^>2T->kJK8;tvU)jJ zw&#+OHsLvKWmh)$l{tT&TmTKx8sm3(uCdWte9bXJ8{QjB&J=&(=<9mB z;}LAKyRiqe+a@@}-s>#BT6qs&y<59G#f970^#9OzJ$gaywc^*+#=D%KUz9R$;2nhH zP?x1mhdy1&U_+I0#Dsh_4FY`wKWG{QcgbC@!QUz_l#a)Hf<4^iI{eW{zIG{G^d7!V zR1SB`*=RZ$u0iNKMO`U5ka^Wa{qfe!w(8kc)hc{_&c1$1dCuY=+ugjcCntKq{qX;G zej$3tdw1LSdcpTqynC1PLbO2MRO|h+icNjHza2dv8|PKBs}tL1qWcbbFGJJuE&~{AB z=h^dkaZp)%W1QJjn01LZ=fzR-6n|?*R^`Hk1mE#=YJ46N6lH_97fIS^| z$hD?eXBuU_sm*#(Z{H5;Ay--n*V>=SXAO8I_8(CE%$9>q!V9{?K7&#+Zu(8^S}1m2 zZGIP1o5a>=SMa4g;79Z1P(D4WF)EwR*Jts2P%=mE0K%MKF~gicna(fKCR-e;p!1>P z&`Cv^J@9pZc#hi3_(zh*ne=jlet6Oy;j5r;p@mpO~XsW8b7j z=W;P>saO@-;h|i->NOXxYI>bQjuYwc2KGQN^~b=sR~&^LDY*nM!^EvZbH&eSlH(+j z=zLVXszEbon(O#6{5^x0mt70<%%6_8OhtL!Q<-n#)ple5U4b&%hRf|qZhx<`^RXWVM=7%(V;Tx~He|dJfeTwhu zcZj%K00%s6Vn{TET;a|u1!ov%u-HYe;XS;9&9q$v&j2xHs|N3biY24T32)(lIJNjq zY{PfArFZe81$1PS+3sxTK(>B_l8@&WYgb6F{T%0MvkTac-RPUYIX~wIEo;ar;B^nx zbSC-raQr-5j>v2XS>>{q3G8MbdS1lm+l`rbR>LplFw&aUeC1m8*T zOXsuo?+N6diF3*RBmU+2P59qKa!=!4B@dZuyhn^%>wGS~JuFVvbe`8ep%gpw@788) zk#CAD#JwnN9^e?r9vIQNVsT4fEkBk~ulx%AE6~RN z>&7{c(f@%y;rVmHvM5mm&*tQSuCP}oAyyan6xYbKnJMK3u#%i4XCY z#JT8JhJA|pCwBTz0v~0)9B=Act1;){`C4UH&~I5(*0s?-3u8{E*AVySkl#Ix{+kRw zHvV+F+@X_)vX}AvHQpn!i7#jEMP__CX}plDr}=ZtVjDE?B39<5qLu=_J{aC%`dlPF zUaI{_{ym!i-)yXLa^ea47%QwbZ@9a2?2w<8Jt`M^68-bxnwa z;X&}E`FI)rUd8V!bMc4x`rN(7*K)9RV1xCYjd-@E6Y`u-K|jxZUQ#aK#Cnqar}_6d zs`v@sAI(d558H~L%t09SA4`M(9TJajcqGk(c5It}dQczZI=BjZbz;zzWcY|{Atl^pP0m&H%% zGr5H^yLCdI_7(w_ninEp+KU^ypsk@W_VFZ}NFo&@|QYa}Ax} zbciiUHbrceMMuG-b6V8-7lj1df?lqiR1BBCHB7v znjPb<$vsA*zjmwL^B;hh*T4Z}d=vRkr#m)Xyo~H#<4^CA`IltBK~74ad3*5BLh<st4 z9`aXOQxXfyb|HiP$ma-gd!SPMjLuhgaVlyir?ui%9x?jC36 zw|q95&BqhL9@%2jT$>aF!gmOwS!5*FsCr(TSIF*d=X@pnHz_GUNnQkwR(A-#3&`~( z<#2T)fHFN8o&!Ngq4&qpvnd!O?wm!3$Agie3tF$HyLk;!^orvT9d~QA=HJ+PkMUY# zR41;6?~&w_UF9+C<}CBaMQjMHZl&X-_jbOS^ALBu=UUug zjc(V*%pS+$vy~Tt3+eB?M*FxM{liPSyYsH}`7nJx%yz=}Pq$z%Yu%fk<=Rxf_Bgv) ztZmBi>)-?R?QCdsv1LawXqPYrFYkU-h1BJ70hCA-q2q-pMG1yX;!HN5Ls>mV%Ni(JZd!-H2Xv zc1Pce`_S}|-05-o&NJ50mZ0?obuYr%BzJQ>GUdEc+-Z=*EE7YNS+4bX&3TJHt@4^r z#i7s9^QBzz3wYDw&d1umr=K>Juan`+a!Y;Fi^+5zx{TXQCd(7fuW*j`GI9><{W5{Vsiri%0X#=^dF{fZ|6H`zmdM&n?&T+bS)X}sa)FNoBMQb{U}-n{*R@5 zkF#p({{X%bMk+(eAe=53NruA6oZ}!Flm;R9gOK|mgm6@9s5B`WDUK9_WDthtoQ_m- zANL-@LCAd`*B%d#-+P_;{qcRRwbx#It?%XY{jRmwUVHER(EI3c*ts9AgX^v1_Hx41 zwc@b2RomPi_hRpuhri3$KY}@9aCj#z&!@-oy;^=*a){%D`Sk&Op*&&y;iH>L|I1Ir z#=P-3-2u)!CZf8|>WC4g(hb{cqjw@|9hiuchdFl)pE-$Nhz(_DiU}xomg~-wua&=E zy@|$?sp7*dbCP?+j*PzUOZX;OB5Jx*I)m@sk?iFn1YbCSAkOh47NqxM)AKxU`C-UEG@6SYZm*;M0m)KVm_F|(En;#sVVeYm5 z7xSbq68>q4zh%~*8u6k3u!d4URQ%gn{sVdw=c82zMak{p6^6r}%*;}8_BnPkPM0>b z6Fi4|$gn;i_K~Ij)sFGn+3d%EBYOtY2YY6^Pduuh!$u!lU*8(v`_aLv^mZej$x_qM zF7tv1%+ttJKVKbsO5U4@s^?hyp@Y%4()V@ddS|l*J}dWO4|c763!itu!O?KgRl24s z%7=U4nAq=mNvtPcjE`YIKcidNgM`>qu zHiFMz$p0ig+A=Sxo)`SlG{X=B(iz(&!4lobhf$U*(@#f7(O+)5!&E8SMppC0CMBTu8k~Pyes? zpwo;P-*lgIBh`OJn;pmZY?_A<6QZ~tXftFJY9>7mVPbSb({ zd)G_F>r#EU-A10N+McEyj@ur^$E*7PzWp7_RyHc#i9LJgqDmNw2EfOmxu|vo?4-oV zvmKw{e4PFIh>z?Sb8Xn)(Dt@=*J_IlZQsz#cjQ2A;k>d|V?*j`G8xlSXTsB->ima% z&*J+A6z1_Toy@}Z#?HY&6m)jA`gh=W0T~+QA6Cv^(P?!`C7#<3TQT@%Er8SdNWx}STHzdsIFPn%;bHSfrZhiH9^ScEn_W9|2`L^M(y z7$+vYI~`UhiLGP#y|`L7M6B8cCJW+;`D*?{_Vq2s@J?k6&cfUwJpaxdCjU3yI-!(t zqEpY<}tpLj~Ab5g#RB@d=rl{YY}}!Z{V|q|2(Yjo$@#H(JRq7JWX&s zO`W^tXR3b-9ELp>SU#)My&L!6lWE{n2v)C{A-s|WG$D8J& zl5NDdGVw$VDG_g4H;2!^)cZHx@T2s4w%kM==SL6BMUBU?@#T(hF_ury6~BKz`d)LO z`JRJ4;M)6@-De)5Y{flreP^!t@3%!0#HLH(9rj~lXJvnNd*q61!foPVl*3Ow+?|#! zet#xfhVO;!HBbyOH!W;Lwmry}qMO^~>7intbOybgPcNO(XVxknG1og5-;3e(CvtYz zr@rcwhV`+Fh%!PIT9;PM&Gw4SLr+qhy9Po!b*)t#Rd+gms66f3WlK zGx*(6eA3*iEGBMra{L!8wBZXyfBNqPzACnN&0g9Wl88p*D}95$@l_vMk}> z;jaIedDrLae3$V513dnYUuo5Pv=&e5tbf5==oxb`e24p=arkMy$XIxMqWG_jhJDG` zliznC)8Bab1TQUUHa(p}ccs$j>G5VdokFKA(qD|jG3SQy$aartY}cvzm6 zE$&&27Gbu##kXrnHkGkS-H`EuugAiL3hD#5p7v-tV>E$!>y`t_X(*H@7#X7r& zO*1>n?;zboJu{|i+Aqw+tL|E7E$J-ebvUj@;thk*GtqIREleRq;Ej(OG23x67RFf#2QZ zQAQg5gTJiu*=Pd(f^F-qyP3Nc%Cg0GbYl~>i@*GH=mR{8OXX}-x4js*n|WFi;rtI&P7dPd&PU&ZD#Ac^e09} z`%5=dww|7TZ?UhIoclOF!MTg@a+_nANYhK}XXH25jqRyDJfu$-år|9!e_qcP! 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 TAcl<)i+5=9+1F^Cwum9PjuF`>E>> z#M7R}w7v75_{K~8dwsLfu&*+FLqFJRM*H#kc)U(}m}~r2v;|px$H#>j%nrhTQ%3!V zyH7&5q8J=`PFL)cD1FzXvXF?1zk6m+FLiyAQ3E}sw{Ew$b-kU(RCV8BL)+o?M0~U7Xs+=;0L#YG`UGlr{HAfe#nxYf!KcV&MZ)*hl-oDq9b0W! z%PZ|8uF&osczH_RFy*GAC$;^tx}U2G9ukx^Wqjmn1ib`Rs5_?k=&x)Se` zVFd5tJ^A>-bU6rB=c2-;xv1Fa+A{eC=WrE04^ywYzE0k^uC>_@0E6MV&4kV1b!&dT zKOF4}^ZZYqZyOa4yH+nq1jP8@p-d8zz()+pjRGy{0>qIg$MONUf))mKe`D=x4fp z7%fC?{P4l@Zgl;5^Meh^d{=eOq%-mRLXqoxX zYR|-;_DmhkTjSpAG0!rWy0==$-`q=Ace4B2_>d{+YI&!VHNDi+S<1Y09lpbTPx$6X z>H#UgSDVF$zKg%$#n=j+wef|#dCCkireHtrQBn_8m!6wsd%-$ePw$#2y~`5bK}g@> z_&zd!(6!~#-~-^kK6H5ShGL?HyM1cr~9WpDx1tUUgsC z_d<5{WZBryIK;#zbDr@0td$;`>0zDmgm=#?N0{%DSHr&I<}fm+izek)va7i9R<76g zGvqyAe|&WI9LIcA98ZO>t4rUwNjolX?tDA>_{a=)J`_JAonMA;zOiL>yB`eSu8E#Y z*w3mwUZZ8~HtX6A%2hb;&9A<<#y20>#1lEs8&R;sV7DmxE@xiERz7hob~Uien6yc` zaF1O15A`?`(Eb{VJkL6J80T;&%!2aTiH>E zX%Fs;-y3Hm8Ie;r}W`eoar)`)loTt(&K9ScqTe+O1M?DXfJxyyCc7s%&~?!n10}GqiV#^D;bL zLO#|EGd=Vh?xi;*>yhNg7lb{?;r*PJzuLdUKA{6&z5)M&N^W=h&WDOK<$O}>A9VPGKK|YQU9~FL3fe1kJtnQ&OnW<` zg!Yec?N~IDPaC0KF{ySJX@C6%->ptvD}9S^*+#tA!9vP72FlwG^)rsGa#3*usd-K5 zJ>kd6dnI!J7S@%rL)E#?^@Z@n$5+By0pIKJy|9z^{~-sMOuH6?v%&@X+DG}F+S^ZW zDgB)MhNGwWPO-Z1VYNAHB1&zR@Sn)&ILG8(dbShpyoGZzP|UTNy8zgy&^VyNeHl$#DmA*^+E~ka(S=f2&~z zSxnW|E$BAaW+AaLcC-95P^Es!pl~zZXYo;&;_Y{H@f3_qhcCXM_>;6JyVy4ASqXdC zlMM`IAA2QB|G&N7d7KR``@KI~^-*Y3j!^E>m=UdHjL@rv24 zTZo5oxP;FF+@@Y7(}&^letLSu_}4h6%dq#U?oIX9l1EEUtdYNtu0JG~kL7)#z5kIV zoYn5HtubVOQ9c@V8JS-zHrLA+fBWC7uO;%9TfY zxUIAezPd@b&iS4v+E_cm7OkLxTPSj6zqVyf0)M<2ar{lHqJBcmgct-4~iLkQr7IYWBH(mR%>(@E|g&g)GyQ+lsZf&iQl6mxR&!{3Xas&OK zY-e+rE_{ss!Z$0k{grtX20b6hxM#?WH)iF__amEA$i}!=;x&AuGJGSZ?GWkkq*!Dg zG}xSTZ{=!}-d~np>ij}+{7mQOh;ijs@>z}MpiO_$|3dOF*I$+o6c-Bg7(c`~rqXAV zajiF3=Y#9q`-E?Ojyl@$@qEIO`KX~rUNT?$hGJTo4BKd0k~9BP|4j0^KwBrGn7p~> zCH!l8tg+le7WMkv&v+-ontRSV{k5>6x)%ONtjTPu&cDT!H2$6zzyI*Op&OZzRnSYA zt2Hf!sh1LBv;02vT0u5j^3A`(%G=7IhF0&Ic69A`{^4c)%~Izq{SVjf2i4Y_!u&L6 zT}^)(d`~j&!1umV@u9TeI;ls8eiX->u=3>RnrqH>nCLg ztzC`TxWay@uotRwJ9;g1P5IQP#u{)V{xr#}{Dpj*jBS+s4$`}gaUCpGutobh!yf6( zdGelMmnW`?iU$}cxrc9K)E#1;a!ua;iv> zq3Jo_WHXo815U3qj=A}0bW=WReZkm15T`zuekvZV#h<({R=d|+4(AU#H^#-2)H|76 z@R$9Nth(Sy-;F)#!Ke71X7=`swZS!XwbB~)GIl+e-q~SA72AWI zbPK+ph1)z#&ZGC;@m+Ybv@R2S%2+oePx4tfj$E$tTwr28nue-xFi*r!|C>A~xRtEv zVifwzarjT%ap#jW+l(FFF6X#0r?zFI;zRAv?CO8w)F$e%)%q>vqt+NbxE9uPqtWPW z^8Lj7-qY~+9^2VS4BZB1cZBzyj2Q;&hb2qjy-lA1gLTGrk-TxPoobvX89%!yPw_{a zDOaSIM~&|hcEk6DXY*kVvvGj3+8nooGO!))aqGU;=UTLiOd7~&B9BT&-z=p1#~ z$gKG=wU7?(6|?E56MbDxf8#P_eo4EY!k){DIwY;cOPRjH|8AA-tiSH~Vh3R#c=+CU z>YFv~`%`x3hX#<(Onz+**^q6K-H+=D$cGO8#I|exr?@{6L=8j%qv7 zm)O(t7@3}!D9t}hYteZ=xPjg5N6uUG6@Pn1YK$5EW?p4W)5w0VbZ2rl?)cI8+FjZK zZ|mfTdjMrTkaJJ0om24nvh)D_%{R|_AI~52*YujbHsSx3rQ5Pw{wdl;pY8#}y-MlX z`1#tM%?4J8C9gSt1!f;Z3t)7v{%%%|U5EG8irrC9#3nP&<0ErX-6DG8cbYd9k9Hy3 zed&>pX_9T_Lx;~8+jiQo+uMI>;?1|mQ-6|!IgU*t zQR-fKO{f?0t)}ROc3%{&5T7DCh$o}g-Qjr;w!Re|{D%z0sVIZ4Cik&YI*guCf3Er) zliv*V3>jEEDfPXlu>>A|T2orH%^WZFU53(L$Ul7-u%7(Zd2X=@TcYQc`>-MXP1u%A z#ge}7tY2}X0o82i_$xdtBk!wF(($I!-{|KNJbdIm)6L11?H8^jJN`1A=PSM>)1RIH z2fA>~Q>=iv zZZEGRd3JSvXgfYjdx7?Vy>765uIr1Dv5(rG98PF|UNa7VYaY}#9_KIN*B1DG-)wrj zhEF=&dPX1edRe`F^jGj4Wd|N}j!FkZ%<@6Bd!HbRQQ5d^V-Ot2hdM}P8-#fJZ1bUYq z)@%Pw_@mq0N5*){SJ7*fB0s429By=G3@Cs z*KZZ7zfL|3qz5X?CR(3Ye>7d}U2P2^7sXd0bD;1|p739bf6X-4ndkfteq)Z9dz<`O z`Dnyk_p$fG!9(K6B7S6vZ)_AwQ%~b-rPv~G!UM`{ zryPGR$_Bp{9gN?B`sl6Cj``B}tt-vTTi3DghhgXz_&N(t*nEclmi~9)J~k91k6z^A zKCmzaX85y)Po!j=eGZ8^>D^p^UD*g`_h)mD!rHrV+bo@}t$9*;g|*U0obQ2}?af=R zd>1y*nO)rP_=_j)eNnD2%w7)5i`w~XD9e}Dcj`wQ!;R$EXslUsz1O&mbNy_-oF3MZ zS?`I`^U11KxgmUbH`ktG9~1d6vBYABd$;N+ekkluG`1Uz>tti#H&UyuG+Nn7s9yQWD2%s7x-mKSK}E;tZS!!LwHQXYw7X#!N?oOmi(EU$*vBDhKRRW*@cwuC?r^tXGHN&&9VtGdbS*!BeA53I@WqG2Bwt#!E4=pOKh=wVfn_l@C9V~Z zl^$YDM;R{}X3C_UjH$Qdf#l;_;Usjhe10V}6n6NB^a=QF!t3kC{hE2*GsZpF@u6rv zp53PwHc;V zJDm4G8UK;6&OC4OYB9__Vi)7O(|Dd%7Y4(6O;sObGL}(dTsexJ#E*_L3XnechF`yBRHbq!l}9v_*HT1N5D zW7y^K{C7%xV%x&iIc`aARrGxv`HsQE zzsYQwvSaCIGM!Aw`K}W>0PRXQ-@7(`cog48{cHI$dI@QqZo>EN+W6N|^gqs=p~xm% z*+WCXiQ@^bHIQ!$`^~cB+MncaM2_2`O4s424t^Rc$YX$Glp>o#U)b7AnXcMYKlK3$ zIDo_OJ@wdBX}vM36ngaJSHn>&?^YNnYI|^PLsmKU-!V^#GmTVNA+2OvIP=>W;woK;<`vfmZlgix2)Q z#PWzdBXTOZ*Dviw3eV@3l3$W;=q1=>cvq|VR?a(6`6#;s-R_llufgXY$v+>}9(yyj z{L#_*sNqz;_I!D8P;sqt7t{3^IB-3z6Gr@RaXi0voxMBeJM&Q?!ylu06TMqF$-VN8 zc`?PjW~%j$S=yS*XV2IE!!Wa0{Uzo>OU((Edj^qH_a*JUX%6+Sa_{NuL&wq)Yt0Q_ z!Ov6f#UHb8K>cxd<70+n?U&=RAU2dABQ{jyw=WEDppO@F{;vp@{vrqO0LOQyN7xDT z%vcZcc}H^R6SIet>(PAXNVFfl$q)1DR#*ygA%3?y{8y@teP4>_~SZgRQiW zzx26yyHI~sZ1iP)?Tx~IyE5~n6Q!Q%XHx97MW08pu{qi$ufju8{xwE!bzNYu7rFIL zmfn?%b%6J8$*D!T)ym9Gc=tj1Mttmuhc}St;vp8qd$Q>R^-U+0H|0wImmEEdr_XZQ zMvlW?pRgv887>{5d?)D~eC~#x$Kz6R;H%TU$e@~DhUu?^^cMX+Y24hWhS&uimyG7R&^{lrgl3-7>%{XCUFw7=7p*$mdp+0qtx z-xihzz<+=I8gJ}(<9>&}SHa^$>Mcgn%zX99C4Has1?W*Se?{Bh7)u9oipXXyy})pM zY_9a5QkmW8U~^>d8lJBfyJ;ujbqrm>d&y^CsV({p`^&?gt<!_BJxNlUb&{T=WpW zE3JJ^=S!br3x7$sO_aWCUea-fZf4On{~vwscoY79U@|J~CdTfa^d2F-9wsgwYMxc& z+QG@F!STW)lTneci92p~Ty{z_YPyiluTke(Hg$#L^UQC?@b#mW8L942X}Ne2v9qTW zQQf43?};ZoS51`GOQOy2wX5^P5StBqB0P94eP1rjYf|OLe~0nDWo(_vb$htk8_o}O zykFkCU39(++`vwFFL2agzINw!JgwYPoaoNic3}@?{5bujH>960=$??&X1IJH0F)?TKVhy^T9il*B~hh z&w4Zaxju@&A*b>)5ZSDoAV%IOy_qfD!lrK39=mF}-E$h0njx=V8<)r@v%Ji0&OZ&J+rnQq3rG3WHQ|i1% z5AVB9|IufB@tf*4tDD!ypFT_MNpDl^3Oxyt{SZ~oT(@8S4ZpzWW`{rkey2sj%HCs*++{K+g-cU`;h zY2aHLFDJu{wVO#~Gg(S@{U<6fFLfmuT|f_KnMa-MSX)tl^6sYozw!P7ycu8c`?bau zzsZ=xy}@_YrS~wxGpA?{pKQ%B{KB)%=t(iEhjKx-kE&lxl)gVzvlSf-#?QWVay(s* z*9V?Q+~m9g@rmOb>52~5(r25zNSe8g?Kp1YKjU=1Q2BaeX}ntA889_WyD-)=mrUrX z^#8uMka2f1+?)Ik&Dn30Q%>5CO#8~Obe?oPRNfiR`I7LR`0|eCM0{#(oGe?>^Oh z>2`c%&9xp@Z#ll7Ft1pNzsJpymT6-V8@`|IYA>vFh5u>Hs29HDzy5~2J1^_`ogje?3gzjd!-$ zzlhQQk%{H-+XqiajbgV%6>7VbHt1C93}W%=_0iaBmU(IN1B zq;khOW=G}eWK?$&n}YLHZF{{6_1naTh8@XjV|i>UVpGvQaNB^NJMl+e;n`YBUV4;k z=5yiQu;3F~ABE9hbJhg%d@fzq(%JF!cT&6jCZvu3OtLtS3@*w?HSiUlg_Q;Q(EWHA zSU&?k$SgdoS_y-7qqL#^1Qh;vvF1=1tDysFgZ9Js^}@53AlI;_Q-uEs;y~D&Rd_vD z+H+q#nVf%um+%dz8`%GLd}0Pp9x|SHq<@lqH!|BSS=vuuvyGH5$ZSd$Fx28&^M=wk z{^D)^f{sdi%gl8%w;KDg`g#a`Nd_C^!Q8&A!dOu4HpbJ-cs6hxbpE(G0b34po!TI; zC*(P9$*^_)HhhyN6YfV3)W;?GyP3TC(y$(udRhM;@#8-vO84cJ9h0U1W-RZ@AO78r z>EcVqqipSJbx`FpWwVZrH|%37EH(a^wNUq6#UvgY@UT+9AF`_-@bOJ9YWP6GwdnGEUj@KqucnY&W~XC^b+31tJ#rU zc48-JLO=SWr_|5dT}DS2YkOOLdFLSNZ2WhS>rdv--S8aIRd-n1-fUERkI!B|KZp@OY|u@yN?L}B^g)0cszel zPmYVVL)NKJwDX(to!L?sFHlhc43IY9^*Px6 z%N%t)>@3ff=Gc|6R!<-G1Na_To3JzaN=NZq;az}OH#&&e!guPt2b=U*n4T-em}s8o zKV(syY>dwvw{d2St$dSqKFYS^N7zBQ$E^F-wKcHEzZUBp?~NxqNqtCmkC9CC=}3Z6=!SoV`TyvhxrbmiC#!Li8fuU?2?} zVGSa>5cOPB`W{qx#~`&!E-I#S_Fj-xJ(=B0&hXjrWX_x+7Zu38^}bw`zQOUn$ebt& zar{#0zQ{Xa(M0%N24}F?dK-Gxc>XpI>IE-kT3%@^`?J?m`RyysCvLWO1~0LNd?06?nr~R_cmbMY%xAb( zhWZ=t1Um1SDE)tUh8=}xx*>k1%ESPXu-h3rxj@Ode#_~~o~7(LeB*d=?qYuJ3NdN|ySvQsrP{bqEaNLD=)VFl z>(woobJg_MM!7aOmDgMSO_bkIoZy2C{BI@sSI&aRi^+WtI(eJy2f|r+W^@d>KMiNS z$^0mCyMf#vCNK68)&$$gG(7jIB=^c~`IrIluoJn*oo@t#@DN>v*lc)rA}xkBJwleP z>|k?aB9pL>A;j;rR4Pxz8AKyceOlhF6jK{2l)K^jAgF; z26@*TH#tQIYF8X+;~UPUTwkrE&de zjK3Odo8$i(BP_MRR2hu5bvG`4D!xLQde_f2Hq>BF753bQZ(tku2$ab9kh2%P} zBb)mLj{(bM9NrBG>+^-X)Sn_9t-W6ItPf=d80+rCJ^SM~f*;u|CvN7VVm+FhD?N8_ zdM{V{26fn<6=G*OEH)efvoKU~EZm$%AMjO4#?MVQ2S;@i&4*yHybfl^(Zv|{0e4|< ze{={e!f@C-8NLr1T|smD*{UVLbaI&xkz? zvF1Up*Gi{LcbCpL_t}T95~m99Rg3L(^0{;ydDGazApBg!xA23hN%U|HKBth=J@QxQ zqFVZh|BV06WZw%PefbzXG@)kLuBW5YaUZ<1?Pio_PZi2GsuRAy8Jgb)s-5~yAN4M1_k)2?7|j0@>kMz^pN_~7~eNmvdRo_?0av8=c>JD zV!TJ`^JIP1>3=#I@C(t?D9GXKM6|AhnA!{e`O>mMN#C$@&KK0~YYh7*{YPDUx-yaU zo*!G;g=_}OA0Rew({4Xue9fK7a3j=HJ6)y!)^CpO+?*(_8HaCFgm0RK{YK$k_soHg zPj!48Vo#aP(PnE(_cn!t;pj%V3UP53Ti{m4RpxW^?6t7<967F3AHM!tU|w{m{Hf|{uaPd&Tc|H~WESz^ zbQyeF#+)L%72X~-<^+DjbEvRJZXT4`h)j+_eb86p(Z|L#Lit(ZgSkm~re03>P5lt8 zHo|P%Df&NGdN$mSVXZiKSC|mAfDz=A6I^H-n$xN#9V2Eb|$flOT+`QABNulVWYNSSDUFH%a{I3y0%LmcGcNfx(T1RB|GbvFYWzk;h+DHrMr)_YTEw* zzUfhtK`{~zl0le~3^ivC!XS)=n+?X}n5yE$O?S#WZEHfp@ewQHPTq5j3nj}x1J z6O(6(#}m{kMaAYnd&4ArEWtGb8NP5k=|cdj&Fv0n>7EZxQ7iEsJE2AEE9|O zvAKC@dXRKIn>;KIuQGh!6ohJOCRHf>^#UN#*_9^-R;k}f7%52`jU&t!+Y$yCc; z4>?~*kBiNV9>gK7tQ`Qa2l3M~*mNR2oC2dOTpKC> zbUx`kc`Pi0U9E@nQ)LTaew{f_v$_dwwD#7H7>KmpVxAP{`Ze$C^A&n}p=s0{cI6V!ft+B^? zdpeEN*Jb?wcF+Flb>s|darDz?lGwP;wM+Qrx%};9zBZK474fI-_|bdfNIT*Ck>Pv! z(fRuP7)I?$CNkIG=ss(X*j-Gv6?~)tmb_+MT0{P~+{3>e&;OIT{vYnQo`F*f;86`- zsaH>L$^P-EYd3PetKB=u01w0W55xOP;k~HzTK#ut(?gBDqxeDDqX~|i*Yl~h{6-83d|d~r}ch%7_M8dv5h=i)m$g3Rm^{yW%o zyf{g)8J)E3<9ug+-ots&(>BU?pp(DY?0fO`O2%4P#=4^Zx0C*0zVkF0cR{U3n5)2n zuh5(5B^18Z(qe4uL54*`+n-bKO|Jf^4|&5_*F$;$`HcrHH?bT1%`N1wOX$Iv74W!X zMya_4e0ae5Q(}vcSHO&l)sEk!D}I~$#PPT4{M5c5yQYh{fHmbk#nf&vCl>>vbcFGV|`irW+sZgPM0q_ep=phnfy1IzTF2lD%)`Txo0I3vZ)Iq+kgn7&Nj zC1NI!ADNS|R2JPvh0|Aq-~ z49(jv8bRMv>FF`Nyu)@smqs-^!Lftj)QQsZbbYgV=2Vz}hxAVTq4EEp&XCu4iWt8M zZ+NW2d*u{|Rji@x!Fv2Wg^qtR7y1Fe-@($)l>flBH>@dT;rFxgsQVJ<52O2F z*WI2y&g6%5(tNG)V3hjo*IEGIw(zwN`0wk|wS0^}#qdssf-4)1ZK zpVS7bX;8N%;~Rl+Xjfyw;cRd^+guE1t}$`!AI_KlxhRyF9vp;}|AHs9#^7oBX@0h2l zm&@vVrFq)ZaPleFpVTIb(CX#-ea!U-%>`!jlN({+2<;q_&A;20=4YwJ^mYXLpRuKN zX#P9Cc|3wAHT<{oaP~Y=tg&x(l6}UC1#uak`-E|-7A+Bv73Z;^>&+ovFXnF-v9+?b zVj*@Eo3eA2IIZCu>DR>DT=p$v+d45Y-gxlas{Fp^=sozc6aHX)_%?fY`ddeiQFOJO zuBN<7wj9}>r?)5QCM}&qzA5CqmVD#r_B6Ig80U)FrjP4e(G$BRE+OyTe8;|_+>K)V zRXqIZy$^o5=^*mN$#5#nIX|9X^Q^v%yyuct3^ndY4}3To;`m)Yy{6QE1NirIju*fU zm>$-K(j%RBaxFowE$094xQFh?XU^b56XD=2J~W>XK87E$9@eZ{`C;Mqy7^iVT}hcI_mD_rel( z+*@8Zw)=+e>(L}_?S#*s;^|C0cGB0${Qe$%HXD!Gp!Kk z$oHGn5huC7@OS_m>p^zy=FHhzH~XFp{HfzZjfcR6gcOgpSD5?UMyE6Q)7*Ie-v))X zu;?yWIhB5|Hd2@^)cKZ!nd!XTY4{eP>e66-$&^7ettIBIsC|xIkuASzeD71I+))a&4ygcWH@dEmF`#cY|NN_D zf92StU^jkVs2>!@jN+d9Q8!|z*q`KUB^$ejZ+eF{t=P?MJ=OUl=Wwv;Q}i|6d_^Z8 zpnCebm+nUK&F)fbMdABli6*hLE8iJZ>e&YUA5Q}rxWd#>>@U;oJU_43{|ZoLtYrexGpcGNxMgpcKpf=}DS zqc=+P|D8w=C(nNT=T|bg?@R6Pe&HZI-G{%8?pJrE&l2`OjlM6S`^(_WRnjW)aSQvP z)QxO>Z8pDdUv(b6S7h^Rjj7|=lzmJ1QvrJyuzlCvUH_2|=p?n7uF9;v55vPl_<@hf z&*=8QrBO<}H~lKFvzVcW#=^L7gp*@uGHyqXt?1&*(x@h&GwE=S7`$7|Nmq!~ zdit-J9*??Cl7AIm#)x$|lspdR9In0H>G>CYt<=x;`q>Blz;~>FL_d>=WxjWK@OKkivHY#+=X(r~_{FI&)Y*tZ?- z4K{5}K0cGo(g!?D@`2dt`V*@Ov6-OXL?b?)##0U2&#^V&{91OOOdbycF18qhVn2K5 zeLGlW&RJE=r;p*k=faYk%roxf=kv^09yGUj#C`Ho`%#|HM&n;IPQRCpMtveCKDT!C zh4r9+WuwOT<-elbv-V6YUs40>ZWc4zt31jWvcK4YRpGv@#n_+1L;Czo{(osvIeVXH zTnW#n?!|w2zIZ>rLwt6S9%YN3vQhoJc)(j#lf4FSD)Xu}u9wK9e91z5&&B67a$SqhbEIN;{Gr+W9;r&08lDe? zy_yxz@y*GOJMq;g+*63FT$43jc4qPwHyZ;VJyQs+GOI2d(w-r0FE zJB`!ko$~H(Ph;#AiO=YLaoe9xmTCWEW&hdEbL?W*vfe}8ouH*X`!J4zh`H6h~aAoK()y4Tg=xu5#3`MPU z7sjajq(iN(os6e#@OmL$jPtEekvE6dkohe|>qCYi@u&n& zw%lZlni-GA-)H@K5iEJqwdXy*$XEyZhwCrHrv~yrYi;O}c(m?r;~&hbp@*U?U>TgN z<43hu!6RwoKH7(Yn}R;zMbJs&v(l(;H6Gx9_fzC75MRwEI zvFwbZqx648sWA>cRT{Ov58Jj#e~=I3!amff1G-u}r_uXdd^KduCG1Pw77sE0eGDGx zzG{N|omBgK7aJy7|8%^`cw3BG@m+siHox~P<~Wj9KH2`lyUfL4PI$&Vce(3}<-x9K zBDV-X@PfR`pX~e=S$B#Y{LmkB^*7_NDk1BNe~kuMeM3 z@PWUJ34R~e4OhKDpR2Obge;uRNgK><(Sg3gnoevo-iF}qPrS@whYSCow+%4L_bQ^9DB&4eoBM%6 zHlM0Y;C((jEmtOO?qV(&p35hz_|7UeTZdlfQ_rwrJ-^|*IpbwB91nY(H|>RDVxDhR zZO;e)$M2f>_{%7xo;H$VGtt5iyO;wg-&O`+&P7*b^K<@6z8t=B($-HK+8L#t$_Tc6 zt-ogV#dm>zTeO!>^IN>7hVtFrwCg@O|4+|P$+n3M!^rdw*;>f;0zEt>y#qaF+#2Kl z!`NGg|E2@+eZ290Og8@={f(2vSG7KCU}7zNd(iWXN3v1#5}5glqMyZa)L`D)5dF}tAsQ=f{#~4Y>bm%?e}HWIXd59`>7XU(aYr(& zu|8D8XWny9)`8E%rviSnqz@ZQi+AL^+wfu3ye;2VCb7OWzxObCYpHLoi$(V*xe1O} zkbNui&84eGZGTH&zh$Dfp!Ys_7|2d>IDH)bR*?G~@+HZ00X{Dw=cTUyolLjEqM6o% z=Bx8Ko33Ola{vC8GVf)h>a}d-e8OYy+iy3XXsc>>ymqPbDzfYTYOJ~w0{HmLT zzxmSF#QQJS&Ub|?2aB%~@q3)~TzGLk+?Wo7#AM~eFzC^EG;}enT0|C%J);o93lrd!t>CUi^K<=jc1pZtE_*_VUtJs%hNEO&vbxY(6zWUN3g-$Uf`EnYn3fCo!_us`hxd9^Mj>Gu+31 zN$w)NosBQ}*>x5h+=WkLSNM1Ms@wToimzSD7tfTQ0+)u9{TTTJ=wuh^&-ApC9B0wD z`-kwI=kU$(mcAL|hxX-=QTl4rXX0eKF2mn``tGIgPITR>{|2_J!o!Yu@Qfu9?q#$So}abe#nub? z4xFx>p09V-j3RB;HfC`Y@MEO{VX) ztMdPHkFCqlJDGN;OL8rtrz(1Bl$S$k`U$!kwI@0x8&%WG5*X8Tmh;iBohk2h^-qIW zr>b)jogGJ4?3AYabbr)GoAeuF$M9|4)T?4*X(noYG2?x3X_$X~%m?W)wl^JyfAp-P zrz7czFBZJaXa48?6c`oawq~%gnqDdoA!lFlEDpk+h3H+noQy&o^kIkZJ%c?&n+4ju zn@z$q&N5i^f$RPG-WA%1N8veq!M|aV_A3t1)=~6*7F~|l_EoU(8ahYGtLZXORop*k ztQ%E}i`yOF3PZ2J+xg0$qijVyzm`!_pzenM@8di^KS-aQ*Z_a2<572foH@jESMz|U z$&APJo^){?nt|sUx|+wg?lMM-i{jhlUq)vKp#|hSduVGp0%^(8FQb7&gWV)f>r6$wRsSocSmq6e7CXUaXO^`#6UK9k!;o0 z3uc(V^uhN{cwRw{H^j@^&QaJ0(()|(EaL+UrPIkgLVjmy>V^E=w29A#@2t1}1&_94 z7dowAr@~(BP)H_eQmnLm$A-qHrdjknjE-08zlu(O^4x{qTGqn4ZTR5rtRTxvGok+9bLcFwL0mi@Ua6t-vt(tsi~Aq@G87x(vb{RQ{10S)z|HC?ha$v zUFJm(nJXOU4d+b8;7u@pbp^J?OWDj2E&6SvJ-nHJPtvyK&Ns=wSsTnE#WZ;3OwRFmbe z(&$O&VzDJ)i2V|&i-zX^J&-IY^&Eh#6Uq6AbT$9~njC+aJ9ZQ^oyZ20YEkP}Wc(uHJ>I%N>DF#^^qQ}KWn7XVf6eUJKnM? z|E-;LC-RHGbgejr(Ut#kZy{zXdhrQ<8ufF`=Qj=HD+Bn)f&6VRcG#J&yYk`SC#%st z+BuWXy3^SM+PAMH=RP1hfsVvy?jdq7CO_(eEKGR za(8}zwHThQ-TU~)!|by_Uk|a5aiicdeZD6BN|`_K-ljZ^i58KE-?rWXU#d{Cdg)d9 z?^1_nJy8q~L)hkQI=|iVBF7E*q^FiwoG+E$iocWPA4+e#NdMsL@2eZ`?bJ^cvDty> z5aka;{gl}Tg?oT<fIy%gwVgeI6YSR&djRzHJAgX{vMq=RJq$- zzY|S1Z@5eTF8Cjm@ts`915pWV=&GDCEi%6k@3lwYY5RM$(fRXeuDn`h@RImaz8Fn+ z#q(eCgRaBeE0o_F-|D2EbgWKpwrg*qoyjqX{4h0bjv2d&k55tmI_0f1CLf7KjCQt6atIYM-hrPmc;M_-S^lx%>EC-LwnK40gD)5%Ew@XzM(zE|=W&%^f1=D(HefrCA~aMnC9e2=8) zW@|#z-H*Yb91I$dX26#Xv)q%x*>%(4DxB(GosEV$U!?5i^4cyFA7OmhiJb59$0_9d zfnKh2KhTXnZ{TOoivNw~$(`}M3tnMly|}F$CWcQUGb%b3l_3}!-ltFQ1s@9N0p=9^ zhdgj40Z+oS^vVTnWzLrdqQr~2Y3>|+cl)?dXVcp!U-zx@B>lVm!SY(voxj+die|1WPJd3QK}9);r=`lsVt(67d# z{?1qV-f6X%?t$;2+CE1*i5%jvmCn=k^6p2c$X`3uGo>NcX4GG8&Uu=1coFoLn5_I$ z>d{BVdS&@gF+H~I>A0J6k6SYxk%^LziQgZL3&w)*URa+g<{S5B{o_j9np31-a*zC~ z*m=wKcg$~I&zk2ue#$uUm^fJI8P&tiYsI>`)du7FjG4w1?bKf-Jy$y;jmIa7mxQtT zFyr+B+SyIo&6x8OZ1@}xpJwvk*DK%JSS~-=L!IriQF%u^h~G^ew7-MC_m(#p#vF^z z60aBG;ZpM(>5|dftAIh}_&r+t`U~&hHXWm_lk|Uz^2fVgBA>iT?brPab}h=}|5qNq ziJlr_osr&~jA_Xa=u8~u3i$<_r^IjgR%eZPEg5bsuMp2CqhnkbzY*UGdmZa{;7e^{ z8y_V^7^?7_I zN|)kekiI&*?*2Ic{MPsq)`7x1*kP||tJrP*OVz{)<10)B@%-EZm{&woF=^>=-KSek!# zJbkJ<#>D(TinoVDFerRKId&+1ucaGfMCJTU{u}rO(%gM~@e$V=GX7Cy?_5WA*p}}~ zTfg8dFJ|)pj!X9=>%n~HakeFE;z2lr$FPncZAN&g>>7`%V1L&GV9yY|o(SvDfIVaQ z(pY&(el!}-^6E~DM@{@GJTI)Hi#Akv3Ji8Fb&fWa4SUqapT`H44bLG11~$Rq#2onZ zjC-?-$?`l~Y~g3drdWUe&i|WEXFsu6G>-p>my&Dw!7c21gIG^GADHz&YjX3O;HTl8 z$P}E&?EpjIPwEN!e1|Q5Xn*gpVh1{B!?yl-9YjXsS`B`d?Csu--Rk~Sb_2d%VWa2p z$Om%Iup#?-c_E5r(c|a_Wxi$`&!BP-v&~DZJXg~9LG(Y9Z@rMo&oOGAl+KZN1>)=J z9q`$~aaYINv)LZX4#xMTY;!MLJ}zHeC$Cp;y*9sslVnL>i;sou@;14G?)Xbvj9o%} z?*-?3(<|9Vb?2L1*rJ2D-kP4t6Z;QdKhj2~)IJ+>T&6AKRQ^9*g=9#;;2Fl?3iGVh z?6IA4#@xgJWlofyr_M-v=^#B&dHN0iOpcvRM=w|-f;G{BcsZ4g|IR ze3$zG=jn_2ctW}>o_=nZBSoIrh5GnJo3->vH{lt7I>&cAuxnp_%Ll^yz^RL2&K0oc z>THy&YQI0uP3H^uy4QNlJ=t^aAzzTc5@tT>ersVi|2^K0cf*c5`N|Y++$0vX5#B4V zfg#NYs=qC)_>N8Bcfx|}Vhh^+zAwd}bM8x+vZTy`*DNo|MM>*(lZ>F4~+yfx^t zW!uvHm>2#ZmHON<{a1GrFKm#a|E7=G?M<>ak{P95hYA0Xw~~Gzr$;du*5F!}(6Lxd zz2p2dIQ*S+z8mgglbzYM2R~)&0+?QT7=IOO;TuM&%jmVz7=Nwv8^ql8;+4)*DpHt2k;}dt2$WuL!66?FfUCi+w>KF#X)`_V{>VKT|S}gcyT`d zTydoRLj5*N6XLw&XngU-${+E*7~jW`V;Wt#zl-gX@tsI9{#eHSXC`X>A02ngMzuSz zg*3b;m0qFD<@DZ6=Y8nf{a2VrRMv<;ahS$Ktc@<|v@#->ek#nN()euo$v&Pg`07O# zJT&67nLKp^#Wy`QAI|@z>HXNHK;9O*|46+L$j4qyblt)x73`3^lCDqFR|Wn@J5EZ+ zk>@JMFePypyF8-YQ_8@ERFgdR3VVW5i=?+{YY4u&s`DRnqHeD5>spDtQh5WNALx8< zWp~rYp3Zxsm3(Tp`Bb>Cx`eKt&9tw_bjjw|gq!v;wjD@c#jx;jabd2IJT04_ODw+) zM$YBSi>yuX{~2}g^HFo6Ip!2M!qbt)YV(iW?&6}8SokCprJu{VPtwP&bbe|k|6R;f zPpP%z{5u*cd>k(Zu1BvqhE<7kj4kjiz1q0Em3TD%x8b4gI(^@19Yj3VEO5Tuo`C1u zpN-Y7wXXB2_}%QjSGYZgqZ!GLiEU))Qev%NYG< z`Rq1X|JbG9QhFT$Yc7@EDz6$I(Me(&Iq_Y2Eo{1+4K9**0Ub!2;92;$K=nlOUr7%q zXQO5|Dqx?w8umGi&ezcW)~E&sh5L?!#MHSkc%C$a-hn}{%Jmr1SdM8Alg zxvSh4Xm1~FpO)blnf$n#ejKkaWTFE6hUaTF-}2+8jAwEg&kFG1Syl9o`s3(uAJ}k* zelz<0y43mrzu5t&d&FOqp+oX1YKRq&u)b?)$aRi;?b1*lzA9E z!sn!0oNt=LFYh!qPU4T3Yx4|kAH_%MzP>Q--8p{Qtlv6VG@G24keB_!ntiyhN+jVG ze{5ZV$9g!#hLJR}kj){1<=h{9ncol>1Kli!$UX-v(a8_<9uP3hDLw zOS!hc`>;LeWidT{ZhxW}PxXKweb};y{RU<8-;^G8obyxo^f_Xazn5IYmn+34pAO$- zuY?InWonLuLx=F`eVrHbZ&((-Srl7D=jYM=NAzCBcE;0|{mFVIzVFBL%jEgYvH583 zQ}j0e_+s$cCNUnK$u_-#-2CV{akzhrOV%7$5w3cm;9gPZBqYz$Hs;9D|ma69ad=1_#EET%=7ghd_;VJJ`4Fo zY!~|6Q~ZQj8pcoHO>L!EN_i%HhcdJI3E!xhuFg%a!=&0%_=mE^iFlMO6MsYb(ZKdO zX;_!84E$`=pFV@V10PMx@ogMxDI&9XpkuL2{@MWgu(TWpJ(UiJZG-6Z}V|DzEF(c zE0(8=^XvJ-+0NN`$!^kL#njvS%;@iFF*e)rfQ+>iHl8e=OYnR*zYYAa#rp=buy5V3 z=H`5`nGT!juysfN*p=L0up51+Yn882?h*B0aL#50{2{r9Ug#uR=a_%zzbn}0{13YN z-8Fg}--%6n(6!h~!MG*xzR>(BtU))+Z_!UunNcXw#dxqSd&p0Ti?Hrp-c4+ZmzwYO z$=7nXYWEOiZj!1e6TeC`T2BFP5yb}s5X<|e-Z8rVkofyy(s@> zwt}Iti`sRR>Oe+vRy2_p4phUNO(o)V6n$Ka_uJ$CXO8ZYH^*AzTsU$s{6JwZ(MH!U zSElhg*m7RGPo)pwZ)9!c*WrEMik0*SKf*UB6QAMvMPr%yR`DHp3fQ={F{(#4|7^Zu zTQ(N|$yWS->e?r0BiX*-OB>jjt%ds!4t0W!Ke!=gzt@F z@8Ht>cN&so^?w;3K)G}AQ(l_?&RJ|*`7hG#PIx<0oh$jyhlozYyFHP95{vQCpnd%p zzbCIr|8L>z9X^N0;-A|0HHLAh>oAx!7Vg|=t#lIXnPPoZ+V?h?m2!V^v+EO$QO4^E z=gp48v$!Rf8lTlm{*8}c2m_7NVVxnmL0ebRQOK*1meA2&$`y!{j*hp`$>(?te7#N& ztMEe?#n0gni>s;$FR2#0} zqm4h6*%}|uyWU%WPq@F^k8LhxuUY(NfqwZ;;#J4*vfGD_-*fy5OnO%Okg_-Pt34rRkFx_TDW~6Z^QDdEO>1W;bBFm6 zdlk`t%em-Sx;73~b%RykY4c-k^V_C1bjlaQ{c{r^th=A?pOmse1;0pUU8C=?M=Uju zj1A;}cW9K`pDY)Z=HJLF%S0aJ>}mmq6+29wIje^TCKrS^zBf66uI5ll)1 zOq)h_^5<@lH?`D$OUI8p4sG5eJqvl36rQD|2GY$i1H~gEcSOkNC2^)T?0;DtXnj{zm6-qxHtSPhf2e?D-cw`c&Bs_JVvUeaBoV2Ul0L zw=?At^B?S%D&kSgV0g8kF<>9#Y5%zY55wT0@u&zDyB6McYbi3W?g^veTU{r3 z{RKNTu;)U$n@opCv&k;>*{NOk(NA<8aNFE58RQz^+J)`5&n8pLB*U$-AKHA2ihB_6lU_-`hf#-A6$yI0it%)1v6d-fC~Vqg<{wG5G# zvS~t$9FI8JQHRF4r+8u?m;(rhRC?1kC z$@~iXt<-mF*qt5P4l`FglK!P(y*T`XrY(#uY>;GwO67`;-C+%_*m1?)>~^p*Nckn| z)eKYbbmh-C9$y%bHeFzxMPaW>aZ>rQ+8k#rJ4e0Y>XkVksLa0VX)nwXl55#l?1g7Z z;r=X)A?f4TqY$6hv+Y!R8%Vb4WE1;2c#wW0lmCZI#SgIOFL|B#co%xvCY#?|R8A*B zFA={F?;sTK<9dJkD}hNTC^K5#CDIA-|B9^Vuk`AASkrI$f(;j;(WrCij}Gt0!!+r1 zbT8YMqVTL^&``J{wVx!K%+_;O<=>f3AFtl^#;yC1_-<(s-!B<2>QRnejA!NeP4&^| z{_I$6-ZnsbU^XhjYcrn9$rAeozI{zz_3QXdu0PwptM4Pw)%qKOQl95p?@MJ-mr~!9 z&{{)w(NScQB?=69^{P{H!f=w8lR8;bUQ6V9g%d#Sdr#QQbcs3bd#3;Q!`C&|BEooULUs@wQ-xJD0Q??W9d zN)CwU_gtrT=F8pWZxZ_twaXX%Y)#^G{%|qdF6Mvh*n|&;Z}F7u#lQ9yy9Y@R;g4)u zGKdfIyP{*V_AQuCTxtDgl6^5Vr4O+2qvkG8@`LA;MN=GCr;Pz~m8pgS*Q;}(RNbZ% zvQga-zQIpYyDPV&IZg2K4siZIeC!)MeT3HHNm}rof7o}#OAr3vOWIpGbqbuPjnirV z7w+jJ_>#U%yEhx3Q}~z&Z?44CdD=fU8&$>iOOC<=l;1;HZInlN-@>=WOF@%9*Yi)u z2{=?8_}NZ>yXkj7x4zSxQU=NgzXliw}mKP&jd`%+j^$VZylEXIFEnP(UAp?b%`kE&tL626p^ zmxDcp-QxLoX~I2AaydVq%fF{MhCityer#T5alv~IV*WyQevN)Ru_@c;PNS2{rMH=L z-eEpEi!E!+Meky_Iqs_*kCONMbmi{MM$2a_^rg-iGRC(D79Iq4U~GbuQp1 zW7HYJ)<@B=@gVG_Z*9!D7pAkr>1Yd`d~7^<5MO1Ezo#GfD7mTlZKI=e#FjBC?12vV zV)@wZ63_pirt7w1tYh5&3HWncY5to;>5a<$qZC#tdp12R)=r^#HD)EuJyQ?q;|l31 z=m69k4cEWnW(~XYqk6<&>(fb z*UmESJgJ{e=r{d-gC2D}5=}II?lIJSd8qe!huWu$$CKdz{75Ze`{(fAMBc9)e^Z+O zzF0)2;%4%_q|CkKf;XwJ)bFaDzVx*jHl0IPUEA#))}oVje9M^M^ttx8*axz;F=`uQ z;P!l|x3r%zZGYHM1UL9n?VipH`+gyj%(N>IUS#~ zl%wZj*DCZC-t!+HY|@v1#^X`j*?jl!?)zZWmRaUs^Xxl+$UWf0`gzd1!}sg!Zh3d$ z;YK`+!`Ja}aKCmwV{ozcEwoDe^wRW%KFO7OQNQot;S0R{sQ(W76f4C$hzaqM+)*ru zhr%F>bV&q%>7Y*e0=^OAtmO{%$B8|2&k}TQ5NK zGf_%xN0n%}_}NY>o^p4y`LS#pzN6e34R+6S%uwG$(B?#T+Cf^*?(S>Cw=mO#wKWn2 z|4*y8>PX+IQN~<5x?lP2rQvx_xCc7O^^4I7D7*{v0a}0-@#(jvC46hKYaRHWcEdMy z!aJH_O*Xcd6oq||mG?SdhMrR{$8Q@lzD0$chjBc)Qr^?9ku`O*^C8mCXsNa%`(Kje zSvAys7k?@(jbcZaM!C^^A<)pd4EV@OUR<46F{%^ur$3>iywW!0lb7@F!9(`72p}Q2#6SKXv>Ly}dwBOI%x= ziCUIsJXfNhR`=`Mm;RPL^&_{z=zwkp@1(oVf@4E_Lr4C-+@sd4*p7O(*;> z#wQ!aSkaNj>7yJUEf&Q`SWgXWaa}v{S2_vnMlEyHEz?F7xf`{~w-P_1Vtgg_d7b{I zk@W#7UL!WGm@mB%|0T-w!c$jv>!OU~bfG%on6I`Jxi(OG4!LTjuPXPglrB6tjG8t| zpQVo(>hPmfz~(V%!jSy;t#jq2a1fs#num$Gx*o9C9H*r}{s)U;6rP*c6_fPPBCS-L>cmevsDgBjlEbXW?PJEcJ!_|CL5DG2CX1D^fpo1YDuJ zigJA(2P2L(E*=w)!amueQn+@QYxLZ@9r{7rudxAsD`(?*ZhKlYRo*S7zSV#(&_0>c zgGxQi)8}Tf_Yl2zN1Mb~*h>_~qeJ;!B^x}q$~PbB@IX2pTFcD8hM3a~5G#AB-@{nGg^#Sq_gm;avaE&^ zWC?Sdrp> zwA6lzc8qA5zz+Mc{Tennn*Pm8Q*#_|ul&GL>-4UV*FIa;X(OyL=fq4M+^>iCbvy94 zUUB~?F%Ilx-qaE1e_86ETFT8+ccgS@JbbRr5L^9U%Kuj;(J8|wWEnsv@sfI)O#7j* z@5}Su1PsqbWYK>#UH@6_@ZI8H#lY6amTin>-SzdCKAM!NalMPwnn>~lwuiN0o*3*M zyN<3Wvm+Y}pJvX<)+5cQ=1VV^E}EH*T4u17IaKRJ_L`9Ooip{uvdLNKM1I0|!oLm* z_hch@7Vxg}54IA=$xl!t8Pfc4lH>Ex5#;+Xd3vJoy*=YgtTTBIr|U{`h>tKPCg5-D zkG?0=nLGvJ3^jETb73yfs@zA2t(w>_?1@RSafq3)hL`$FTwF@l*%|BoQhi5fp`*mf zPWTDTL+oJnZ`SVJ>^Ps^9@Nev?LNRKuE)zz{B14oQRTxL)F@+Nh{f=q zoi9=NuVjoY{TzpHbl!`HI(FSbTSt`U{~Z#ZiPk)&pEZ2#-`ZuT#Ga@GHdMsTcdZSj zyc0Jy9u-bE_m~y;9ZhqSx%}rId&H%4XPcwk;kq(o(5gG(i*gk+;MxD@kGdruRsLO@ zf7AA9@EsN<;MAtWl`D31l1fDwf!=f=^bkVPhxbiWsQg3U7Qf z>@N-XnrS>F8u0Rrx(glCeOf$)u_xTShM0=+gJh_qe%ND?-d>DpFFZraKWBj7sXzIH zHWOm3^*wb_V!gJ+Kx+n1_p;wr+8HGOJN&xe3I7rf|AvVAk>>?tI1G*L$3KqbC+BAJ z|56L%SkrA8?mH`SGE1AHE13=AMk#FdFkcz%}MX2KQ|t-#NNsG6Q`p}(n)=izgiGW8knsycozl{)$`Fc~)Ka%8!BODeeE3{(szj%kxrkocl{`HnT;D z(YyJ9d$O<>AhFSLn`8S=a(p`M<@fS-{uz1HVhw6De|I04YC_x5`(CB_{ayi!Qx}VA z_|d}m!!y>@Kl%5!eD4?K_-c4&Rw52^@T-_l*C|sBW72b6pQR3}yi@%v_~=3Eo4Z9f zzLfuWb~>5K|0l4R9-DsjE@(&ND4WK586OL+C$Lx5Hc~oh*_wX-OOGGX>l*&>8eP2V zIOun6#(xJ~`%HUZI&YS~!XEeYnNy`(v6J<{{QHkb(Z>tqq?1%1Jf4L&JQge$r+810 zEj%x5AzRxv@C&9?qgvx$YfQW!E^h=H&!;EKid=P){t!=ss&z94x@NkE;KOVxp^uep_#U|Iis%Rcnb z-~40%zdsD|m1f7WgZZZMs#!dQXY^rzZbf%~-&5L~U+*OrlnMKW%Y&~SL$_z}wM$(y zPw6?uz7*qStu(rg&t1#+E)rv>^HFg$>OklGv1lvjZ{sUXueajsB(~Vr`K|P8ZVr^& z=janx<^Stg`7nF@)7-ur-usF%eb<-|#V)gEG|4>bF8g90#Pb5<^HRJ#X^ci~%an1x z?r}cxgtE?aORR+~S3YCT_JK0rlWFS)`)3=Xo;x%|n|n2QzS-bE5)ILqUyS+d^i?li zY%VZY{}*ecqdMWQPh{ zt=z9HiaY*!mohpo^G-xrwAlZV^WX6N*<5JrvS@8L?=X6war1BSD7M}BkV z;2L|kofwZQD&ZqP2>Xs&20GSf?(Dd4*!eaMe4N5(8XXsxs)NVkd-z5gfB*Jk%`Iw(*6-C29o@4b8vdvHYs{1H<2P6HffEpHP4lO4e^$Af z-NjkulhWriQF-p)pa?<<%sZ!L z(X#!^tcR9G!}^y+JEQ6RG11Tav3#=7`G!Nw#C2Kp=h0x`*g7DN0ddsmv}E% ze$NB&#4_w`$G>Z0> z7NZmS?=@oZI#eeAc9{GO+&c=kjAhTsaQs>L!q39D1gBypt{ux?4(F@v9Wypm8kckZ&>GmJpO#L1!n~s3(M8^BsJ^yi@xPkwThh1Y}RE6^5F0H??j^DVm*x5=sV^+a8 z`rO1X|4p8k$#Wt9d>>xMP&s+=RAUZNVJxfo);P8`nbfWO9Df;g#8%~M^*+&-YvG$v zg*%a7TEm|U1{x#Jr z_#Wk)9Hahbf6txzdD{K)dUE{YKDaBa*sdY^9JW3LZ@=y6TP9mIM59q#r-mqA&=Ae( z-4J!$yTSTLL-foc4bkAkT`z60R?`suKBOT!v!ucIrW>OEu;$Wz8luaOoXY;>TYEqKK8(+Y@IDX8FCcGt z$G?y-w3sg@ey8K4_mS3`BaPv2<|c`MiuX?9amToMkXZlISYYf=|D6w34{d+n$vsf` zc1U=4xbAi9x;?~kaXkMnL-D0z_U3rBF4dkEIj(lxXO^}Wo727=k2d`??)x#J#3<&A60wU_>0Y=4MPV_3=4#-zu{4hP3S zL1$>_GIJn#bqn!;Hj+F4|Bjc`dsTTnhCKkoSBd|}J?oz<|He3d!phOG;UYM9y)kc! z_UNt6^_~wJ_p~|VN%JLrR_Q0KU$1t(V4CxZ%KlybO1xaB&L#AGnsx@m+CF&c821i3 zJ7!?Hd%wi#j(Zy4>)CYako?+iI?PqB6>m$#qxpE7I4vA%+&PQSO%T&F`BPd9@cr<8 zt;GB0MPHk97?TowzrL^``kC*RAJh;y>FO$1jTWJG&X+0E$MMT&HAF+Td*ivr z{J%9sb?9ivE6;9--W!P@_16w>u)hdj$2HhPpntqe<_jC)*}u#Y{s{}< zNAv;wGtcPxiups9onQ2>-}B}s&%ngTVdVlia&I(y!@TKlh{(l1BJ%#TN zcZ`aTmmUHix{5DlD?Z|@~W~ZtDOz#a_R$^<`1-Tg$B3sUvUetDGx0&hagm!!W!I#Mg#V z%H#7Z$NlwFbR`VE*xY5b{`9@zGIJX36{#~C4la>DRGkrLli^(TwUbuw;48|as=wn) zKYjEQD01AQ-f-6|E+kKqP1HG0-ET*hMZb=4e1<&jbv#|!qsegyUiQ%bPWUxnY@z?T zKf*iM9eu(d*2kmT_u+a|JevQy;};O@tAMNFJ9aI18(Z#xb+?%(q9PQ&0n>bj;}V$J z6ZU@Q{@^~C*WDO4(EkX`eZ&69I`fU1KOFC#&95=ko}G=F;oOEhjinD~qudk5)m7Q3 z8qN*-x438%FTa@c|CNo_Y%P|>R{8(L#+TMo--U~-#nh|WsQ9g{y?^EnVr#`q<_*h@ z(~pXsMeuT&{MWP5jUB}Mp75qG+D?3n%jz|rbHA;Qb`mS}^_-a0M$4yo`Ur2@EEc!L z`Wy9yYx25(Xb0E3|iwInqt=?be29+|3P9pDOtOcYP=Iq0Ld{4bl8~Lv$j3 zM&PTee?zndpD*LPBmUp+O-DO7c&-N93e+Rt@7t0WeTwSI+}0IlcQ#hg!{#mY2=jW< z>qdI3XO|iE=09vYlr6$Hb>}X1osNh7!+f#PeHC5zVY|zN{n(wWpyDs!zz%$rsW^=>IF zY_*5J4-6ax>niy1HRcMpnHOAXzH~-BYC4<$o?~o}$GsEfzG1(3l-}Pwfj@8R03)|C z{&!LCbH4p5e0&>Dn!B}FpGm}AAMDz(@bY4@GR67Scy#$>SbKXsTH(B|N_+b3m=bI9 z7EOzL?xXKH@*mJ=TAhd0K{b!)f3dmRlkM?0X0>u_(Ff|bm|twv7aI1pyf5X!^?99jy9rxec{b+WznD=U~d=L@`v^A@62_Y z@uRP**I<5zPM(cNoAD8Q%6%1DjtZX>?>Ta-1QNCW!|E`@;|Dp?Rr?T|DLb;%WrTAQ=ANCq~A9-f86ynA|b%p*;XSbta;Ys@E zQ>iP}okEZE=;kqccn)voz zKEnD;>L`33f&Vhsj#FM5p2yZ7tpC07-CG|!;cXj!29J}IVDXur1N9OcOWpHro%J4K zHoxxHc%A#3>Dj2OxEeNJY%LUf%i!no_I0q!#ck?wa}yN4u^7G^)K-^`dcG*8Up04W za{f7-vidQ*bAf1KZDfph`9BoWx^ZVsfjtgd(TRi|@ zmcVjthc%}HZLZbkino+~FB@&bOZQK-(PCcpMbJh)5Ruz|3_Q@&GIc6wIv%(_$eDzqhUX2%e9JcwWr;*wl;lioFh+6|Chh5 zoj~uxGIAEZNq_X&(m+>aOiPPjlaI#HN$m=JFUBLe>TBTT9rQ!i!mC_67cVE$^O5Qg zpp%2?>mX%AdWdrSX=f*Wx3T})O#Xj1Est0;oo`&Obw1PBJOy@M&Ns^CA8CGhyz}eb z?<*Jf`4(F{O__J5x7Ek)cBQ=!fLP>adSCe48cgFG_b4--q(=G4W_EOl^BWTs|#c zR>zI`;%9>x+~|JxJMr>g_iI1FmMt))RjmD6%%C(H`8|wKrlYbOKGLSTwQsBcj<`h~ z-_q_IV&?UDl+t!{MjOwnyAT%4lwPIIFfq1EJZfq)&;G)^+8SuAqZsUkKQR~UudTyf z$8YnV+UcUs2KVgYKEE7&YE3EY{x4_Uf0Oxo2W>RU>ntzq>6+qM)>Y2wDt8CjtpkT| z`hECOODWwzN+M>x5L}F>bym-&(i5EZJeXe9mV~=+MHya>FZVA z7hn_nYQpzo5*t=Uxnj1mz7^h+sdy^m{U_-M?9SH7uicYw%~$v4mvKIIlGr_!y-()* z$MWl;>^_h$6tVrDd~6S8_IJJ5@eqD@8lSsR-29zSOvpw{u2B!oPl=;h&iQfqqw4eN zxoNR+znHBRi}xyX9}IE+dq`1N*9+^~aiQ{k*z+%Czti3?=5`&;yUa=EnSYJh#XQFx z>`Bzu9Og{-W(T0S{7cPargt&F`Cm3#z5%@sdtNg46jv2bh_R*SjmzAxIS$`ToA8Rb zf){;JrQ=aA!h@&GQ6I$1bUa-}1~S$h=DZN@br%yovV2x-n&;M-lce0+hv(zbV!Hj% z`>6C8p1GByieFrR%e4?&uPg7lQ7){r{m(c4JLp?G&As(~DBYZ%wKq{(qrZjv#bfO= z*1}ez7w}7t)zTUG-t-)vpJoR*-9)BwkHNV`%0C2i=)6C@PNC=d_mJUk7(JVw;bnhm zLf*J}*_P7MXZZ?3dx!o~-C@&-*s>;Zi<&iCCS@_nr_J?jfVd*u1@X z=*2hrWzE)nb2Gmb>#0A)_m1(XoX>{u+>Jjz9(6_KM@kQj+utB&)DQ2iS1#4w6mzUY zwfT`4sY3SAMx$X$A^&|0{f94i#n-lU_ow6M@ix|XySwuJvFa}t3*Vp};?}Q>`Gez8 z<;nOuPwZS6j|wh``(7tL4vj~f_K4^A+J^T7noE^AAs#iIDb_}d@8S5xV`>my2go}J z^;ZWqqw0R~sCYkeqJrIE2^lw`AZrzw8uwRT->v$oF2V=-!?&QqcmBeDfhE1=_mB@) zqWkG-Z|T8w+>c)vuUkDM2+xe04`Q=nY%?O8|6WA;{A~W87vUcTsXh2;fol<8w4PM( zrdVDnj_0vmDwBWbIB}!nEBM`Y^fiOu-K)%G`YVzb_7y&4PwCF>{fBpca)-d=ZqA<= z+Wzg@Z(#Xh&aY>eIVi2n-E<9W!ZX^IaqJ6w>ek?YCo;y#^f&sr6=vTFhiA9r>9Cpc zs225+H)<-q-pF4rqr=f`LDwa8KmJs{L;opMa29>CS^1Ufr_`BY4t+n}E`$Fs!uB`J z&E7Y+T2II8*tp4@_)T?QSLan@N6z(?@o3y)wy4oQewr^ah9s5Y19j)K&pGOi(C1O? z!dI$0;^`yuJj#EJT`issMAy&pN*k{j|JFLzN7!GKYSGVXagvob>gP@MKS2C9e7C3gH)T5Ew>SRz zQTcKFhQ3;_h}$EG=j-L6h-|4z#zT4?N>5GXT|&=8ZcEY4&Tr1u8k%78-KaFSF??N!aoSYdUJ(x6V%zTIvx#s zn?2XF&%d<&6@8-dpPRF9F!z;T=z98PaanKt)_4B}?ji0W51#9$IiJG5WQpmkLSNxI zcj6lDPL4+tr)!&BGwx^eMeV$;d%`&WG=IZyN7U%J=d*n5dGcn-v_?B0($gn=2oJ+P z(#|`sy`o>Tu6s^-btaOtK$~?BX$wDdZ|4&e@TLFQ#dQ65*T`H?hhrX9Px&Bsp?)@N zXNg-s22MER9)wV zAG^nUPkW8{$!Lqd6ZFx4KHkK4#m)3ihOVXbh3~>c;`#UED#TYgD(;KlA~N&mB5@Zx zSzn{n< zANJseZ;REQfy8~G_QF1(b$8SK!`f%ZWSY*Lcb_W0#44w&#P40& z{$XhT`!VUG;pcN1&+oGKEoGyc6SGnIwb^Lx-Px$?vTXjFtFe!=QT_Mw{+Erm{F04I zewUAypytThjrmKwleKeeTwhsBS!1oLv-4BXGuBvsxAs!JgY~0c4NP>UX$x`GM*yw}RIzT;CS_pvzBH3eYrA&hiD5`AL*H$x@YQpFn-sQWdi<7 zP&qnS-}Cp@ChClbD)c)UcErO7yoPoAtMRfkIkS%UQ2%Ar&9%?bI(nLjuRhkie#O_U z6Y+hzH7;vulSbQbaE>yL*IFA}c{1G&*B3et&pRG#4epqRD3`zoo=?%n!OjPhWrcR) zr|M5zozJkgcqX2$(Y>v`@C;(rx$6DRoD^NDpYh7nRghJ?TjQhX2+vXIZ`1y4Nv27A z(w%whsGimUx5r-(eQoDCLpQob;dp&_>x$bpM3+l9xjskU(c9p^lQ}Mbs^x1<8?xq5 z=5GzzsPOTuy+C|!R@O7cY_w^z`QKFjC|z=8);~P6QE@psKI&PJnN(9e^~KAQCo zg>TLeo4#h_+d!TsP6>mNC)d8zP#EJbz;ilIn4FL{}NL_ zn1eoO4tj*S!^1G?UE_ZT_|`9;|E5NP@odH&Fmg7kfy*#wLM?oK2wpFOKaa!fI(Tf1 zXhf0YKFeU;W3X_kd)lXs(=W(xh)0F5YU3UF^iN~T*T$J2;MmXcJZ8`M5}tjbPK$ha z-BDU4Z{ojU|BuF_Eim?bW8YWC!_Q&uM%Oke^Bqi=c2&OcL+!l}L)YV9ADfMvbtoLK zZPxZW<=}sDll*s`E8nc%xNq_GA6VY1+)u`!KjYEITYK)(!Pv5u=Ml!58S?g!UhOZjPxZB3 z)eW!u8m!N({(ItO9G(Wz+uZ;DA4~TGpXJm)4*aNONQN*ZE6EUsWN246lF-8t&k%;t zmoOwlxJxuihGG(i$&gIKq}|;JAq?>hVF*JHLzq7gzxTQKyI-%*>zwQS{ro$h&*whZ zb)Ab$*5VERmg7VG&QksJaDRbZVXk+MmX&LH&n^ zNqx213O;z*xruvHU@#Z~uOayUNS?i8cz1v@_`a{MJ+{TS&9@sK-huP21BQoH#_Ma` zcZ}bAZ(zd|w*Ns`VYV^YGkrMV;zno8`v5 z-S}(BcL5&7dsvUa;{hN_SIjyFDEp$CaR#9dtI#q3b%m!ujK0g1j7*vyE zUX-Q$c)CAAp9QXa$(Ma&ZIJN@@*8grw9@a{WLrVsJFL6ObbhAm_#J^BADf5Fi^+M2 z@^b5<5afd%%3^r~-KfnN`$_A+L?>rhNToeC`%q@znQQi*>f;Z?_X0ftB*zw%4Z6{l)?Aj}2TF zX73~h*ioFKyjFdlc7I9dZzI0Z|BOD`USpcr#Mag4ZY z#-7?6swv-l*a29 zl*j9i)5!GP)?*)HkLM53D`-N_SjvrlrEA}CqwREfM!%SEV%0H7QrxtA&lF`M+nLsW* zjkyB!rVFdVT>7vPy*pSsZDa9tp7|rlPg34zb9m6lY0`1=TKQu7F%Eohyehi%(^l}^ z9-RZ^2cexDX5;_M_+Lp@_kdyY%XgEiDQv^yBQ3CeeJuUOwl=*ksnKVmz$(aV?V z@eDAC9&JlUSDGj4^BQ=(50CrdIUjFQ|I6gQ8`jYwPWn3I3>A9%uC?}xwVBD}zWKE3 z32XJyOsKAx&Q)h^wppj~+Y~Ww%S$O2!s8{|Lx+t0qg8}Etfj~FTI00d*<0{ zdyGfQ$9Hwlu@|mq#c)PGub}Hwct9qNL#1KgZ!(KP&P^a3Uf{6gKywpjXnNu^YD{@&F4=a6=OZY z|G;hRv;1t94__hWBgcQnmx-$i|4gh$@kDpe!GO)dgdU#R$@APxZ_f^IA*R?yjIzV< zaQ%+ML&?D5VR4~YYTM!A2z6Iz)2){{al_$Z?)t++pKjs}W5)YSZEMi_DOtAh;a{5T zdw%tIy!;36|0gE=1Mhyr|6lPz`Bvs#C_XCO+I;>DoQQQ&;+cazi*$(Rk`5XkdJZ2R&MpbRZ`&7jY8al~!f-9?X#+ousMAtQ6f_$%&R&HSn>u4|(s?VZ-#dgP4uejDK>-c+Ee z9G|w`5|7Y%26`vqT@~6}@naJC&7dnIcM`M9Z=|jx-}7YjB*w$%f)Vl!_%g_tN6@?F zQD@9O&YEg#fCrt>~bvbRTPy1vbEZN|G~nJ`(LRsR&5x>RfiW-rc! z!4L5XcPYP>9iJ(ko(U7Ds=t!0pCp}_32m2W!U$zEjk6-13FD?@LSOCT8Q3$yM6mb< zK46-$)wf@i@qV?r_vIt{W}Ksy@eHN7@JaYR27hUK0i5pv?0R;pYjm_lxCTA9i6iUK zxJWr)Qo*mJ(3RSX&)AP&Fm}-dG+oDM@KdABUva&d5{|vhUkKl-%itDqhSxZ4CZccP zE%>6W`Yd=Fqk1G<4}jZnxF5-vl^Iug!#M5GP*a)l{2n+(`$N&RtFilK+(+gg^Wn3J zHk)Y+uRMM(ptWOL{%m`Gtw@`pcz1|)#~5S0{MGnfZBBT^cgE9js=8hIy<*<^{37|R ze#E`NM~(4-c6S>8HvW1B+|bo@75d4g@Lc#-!1V&S!?XGf^q;Bih3YQFA8qF0N8GoG z&xQ;nm-IE-p`{6Z@%w>wmuOG6qon0=Y`pA&j}zx8yT|q2uIJ%rJw16?d$6<--c9D9 zJH^Y)k+pC0EIc1G7u?6fxdA;3YS4kU4zN_d!kBA~7w^4Rqp66#b<73YHr0yNh%05KXYs%0y`AM=c-fXz#ky{NuR^#)E zA@pH4vfBw?H#SGmw;TN4qTl`x#q%iQ8NlIidb^XfoL<{&j%QEAZ&1ba9MVC4YjBBu zvqaej*1_rex!+uOl^E)7`L*sPua5_GtE0@kSK%cb>hQIG0b0mn6d9~rMc+Qc|JU)` zb%CQ4kLP{JYdqdWJqxZ!D6b}u>f5a)b+O-MV-(|I zoBA?xsik8p&clB?)N+Kmj-wB!${%iw66GV{H%$BO@nZmd_cq5M?RLb&ebfymhpou5 z5M2l0-+}mgsJ7>z0mS$2tHx+&j!Jr-e=(U}M}G9VoSfIu=kd3h=SK5gs~`O+J5hUc z)NBeDdwKb_cs?ADkHPan`05>iJ z_|5qkf4m?Golj}I#2&@7=6_k-_hI6!7VSS4|FtJ!;!o!LL7UDb3>C+0#cwx(b$s{B ze0Ljv{KBSux%5=!XY<2D`Q#R`w;1Ph@!SmkDwNL`@AT8}6EIiXlU%P-w-LWx5cqCT z3|9OtmJln92R-B~{!GHm-^HID{P{QHm$gY~httGwld$?L_$q7s44+!j0r!DlB%#Mg zVu1JX;{$n+{}z6L24z)mYPTW@vsdDkd`epJhB@BGFA$#*oUGkU<1K$b2?6wdCkf+U zz-PSstKK-btG}LHt`R3qCRe@F#o`>#bxUf&*&w&{ntKt zQ-S`izy#0(Kjz}mN-@n;@Clxbj&%QQ&L7DNjrnMd&!G-Rb6H!GJ5RF)t*u~!>n70p zDcMDQTjXDd-!d`Z6Y>wi4PHIqw+h~)=tX)Qz8y%f`lF{OI$xnn4W+rW&1&dz1xUGX z9v+~})9LaV%IJRK`pPyC_Y^rZw%bx?_;`-tb1~18(ly@Mw{9zXSaZ8bFSqWlw^nbo z-WFR+>}~E{?Ty%xA~qGr)YgfIDoyjVH#&{3&7skqefbF_H6B=%218*_sP3F8#{syUhe4a6W zLnd6!rd|Om*}ZFwrTrNAtTsj^d?qiE8oSq9+QX%AHCV&Gbx40U$M=~q}3A|4BEjxM0*6?wwAXa zFtWQnl0VpdV~2P6+@*W~+QvMVp<{5m5A6@}-S^@fTx;(({~Ybm)PjZvP<#$rj$?0+ zMcWAZVr}*WYNDcifEyZWFl$PPr);rMnu&^KMpFVyg-Y+$bV z*N+%`p*%i~Z6pKuH9aZDTcn@5(F@cm8w}5tv$eeg-p1-A^Io6>zIo^KJEy`)T74lO zK_@y-G{3a%AanJ{|1IGO*Z59+JX^1f4KJ)`yV>{D4fO2-`c_KU&Qd=UOc9sHSXGQ& z_lx}Zp0DeLz8%fAJ$`M6PY1I9=B>KKxMUvRH!MfTxEJXN{VM+i|LNVz56w^4hS0Nd zP4LiW2-+&<>OW5kQa6&%6yu_)c%t@YcrzM5{tXVJHwk*kq2^@ya&(?cR@x5+@qOuV zlfLw_gWSreYNxF3BI%{(oUR?cExQb!mxGJRY9#+_4ds(({?7VuV!loBD<56o;7N0{ zZ{T$Kv9xCo)AoSV|HofCTO*zopAx@BAKBIm@A%fNIKFOcWqe*;^sV-1($4n?bF_bi z@7u=OKb`Nn$eu{F4X>5vo~en?&*cAyk9)q<{;)dFDFyWvd}4&Ud8HwJrn2?)83K+g z&7DUPzp+(Up$-JkYR2c=;yH@(eCu$S|5MjWEA9I@pCx-2yo==@giE9UW#z^`Mc<8$ z_pWxI9_VZ&w4B)-YREnRVKlsp{#VeC50%lcf6?rj(5`0!vzy^vA3UQ64ZC*fM8Q`0 z3$h#FIsNK*z*r4*Y8KvHYOH(dn(NfKW{=#N>m=!a;k6P@zW~o9WxK)WAbjeNjy>Ub zHax`xZTq^$x57E@Pu{N0a_0c8&leT&9ec3l|6-F*PSj?E6A~dy%$F*>lkFlr~TEkIyEdQu#n_;(g5UfHLEa zy;+-E`GOmaF@;~4m4y1cl+81iu~W|(_oc-7&-#4m-bA~0KO`alPw$)ZTjl)yWWN7a z|HsD`iUGhnP&mNt=tpy|GpdeUVe$Pul(1KXDOWOzyH%> zhauvC44+piUdVv>OiUi1c$9f!tT9HLD(MVm2Z$|FppL)%L%X^9#ph@G+8g=n_axN* z#J7K!zwLsy z-OaIwxI|i146nWI{eX3Qq1Ap;dOz)lqDy*$G+*7V+Kjkeb@UfRQ+&n#_+?ChO9@VWVq*i9@1m%jbYkDpg)Hw=!2coyFQTtg0x zVuwAz74|?D;^CY45zzB1Uc4rLDg(C%{r*lui~KxwYw>NOKAY=b3pPUgIAw|cv-Ml^ zkG&wW?)Z%kl6&5__$B5j`dInf#(A|Xwi%6|wRAIY4&9q6FRn<@*?PKFaXTHQQ$_Qo z3zAR_COt{1VMX?Z0(Kg`YiSutN<-H zXTsoH^_$JE-@#_rX2Pnw*qHiE?j4TSMSMgPANdUb#!nVL!jIk$w2AlBR_PPpwHi{B z2|Z@`k35ZyO7j_4n)@oTi2OQbaqncDdB*ZR@vQf?%i#5{F}`HCe#?a3-Q0KR;hw|> zo@d#}{hv)dE0phfCHET2`>N~jzSXdDCA ze(1@=w*_m(R$t@$=b4bl@6Y_0EZgwbbvxdUSHI?aDJcFS6Gr{$Kl{&Q^ow#lsKtY< zeCIkTDA1;@oo@!M#%)?7W&^2jjPaeALYk5e`&Nwcm3s56GT$h3$M;|6trGLTqpSrk z?`iv)Im|s1t`p7GVvamG&DO6$`-(T{>T+^eNGe_7eFzc zXoFW@da(|Ul|RvE&~BWy|CmqzrQ}~Jwta-0>&W5?vh1;k`*Hh{37Hih?0K<~^z(4> z@o00Dk@s=#m7O5}Z}%9Fr#H$zKTIr5&K-NZhq#NBUMv(h$LIED(Wi;@E50jvF#JmX z%!I}NwO+nJ&uTov*YGxeSTil?Z^Vbz7x5eKR$5CPcvQ8>8pE?b_15$}{Jk4*thZ6K z^u68~SCjGSXgtW;FA}Hq#xHSZ#Z%yEae@CjjrL7j#1Um*izR-sFO)}Kh4f<|O z^xU^D@=xkYE5@oj&HVqzwy-Z{v*CS@c^;sb@aSj>hc4DEH+u66{K_B>iE2erweD|FAWk*X7$F~EG zgHN4X)6Z`3HGa))a5);RghQj)Zf~}@C%8%+_@x-HxHNR!C06|1J-$I~`G~~6Rg!!5 zI-O3!sA>GhO^NeAk`V6Y6Y7&t(2#^OQ2%fe#yrj^Ji%v4gS6pEaREQk*LCqivCw1u z)O@kgJicpA;#(t0?!H*r<>Ijmja!j~#-rsAPMjyl2Oh!~9b=9O;llUxplQcf7GH!Vi#=oWgM@g9QB|70f_|LAhMn-Qa z#xj1}HewC9EQdp?zgTA=oCmpYv$MDb)b0ph_0!-z3mtv+i)V`r`^WgkYkyyC(2Os5 zRd@$k;@{+%_(ldXzZ@?|%*8*@qc-6i;c+Ki?~>jR*9G|gH2G!0t7H$~@$VUPHCcY4 zU%U9=JM#L;SbxFa+;J~z0DjyrpCyO2$|wJh2WXr5zr=s{BwW3oxD#}!Thl2X{==N| zi`Bocyru`48K1@Z$+`?5TFg@d zuMv^2za`-W;~s3x7y}P5-UzZg0xYBhJ&pZ2{uLSXBx8;PQ|ZG`(j$!7&Df`cG2}3{ zzgQ68I|qo9L81Hz&?5gieTngU0bSWh-^FnpFv3_(aGq_x0=S*jO-zaIwQI@gGkQW- z=F#8cm#l$j$ice$>u%+@%G3YUbUHN!-!HcA&XhlaJP%L&ulE087qZ+$n@{{de7ZFE zEztP>O51&6uqXUad|COM{x^d7eYK7i;xT)u@f_jwOflMIZO>76fpmhhQDU~C+LXFJ zP`W!9EPsGHkd4>-$g3+H1hxWwL85HDId9Zvq4w`P>uo*jbvpph{IPW4GBUXV{`71G zJF>jd+HRsB&sn$9rR+!hqiB0jejYnPKjS&2qpH!0{`fvk)kXS7`!qt|owVhZAg zI`xO4ZDVbIjCNDHzUxiEF52Tk+mYaOdv`Z!yGWl^`uic|QbbvN@% zeAMJx{^8b)XV>_oG#H<;XP(KOLs+pDf6_zVzIzR*__o3&Od z@12DQ{I5QMKbT~H;CksqFdR-VDz602rOlnqAJ3J{*QXpjpucmz(i^~cxbZLY-~DEO z=3)B+ubbn0djOk=1$Kse0=IJh@=9^kE#j(rcs&E}*Z8RqGNI}VVKJ#|A#StL-)^_(C~dGjQT3$y$^ejD>7l}V)4cOcwo#m*BbM3zVBk=oUiO`K5-o1 zh-dj%i07x{TMfT?k2vHpamP}1#u)srwjb-;&fl)%`^8?XHxRS-7IXCxJBeeLi=k$U zeR>R977h>xP2JfuMLUY;l~ss$+d#IzSXo&tKVpD5&UF>2cHK?Cp&-7$Fr%M6$L+*t z1;#S|x%p!0O}gUuvh~f^P27d{C19BRI4}cF@w~-+^w)ikhX3Hlt74cX_V&g8j^(}dVtm`4#lzf7(ABw5o7rVSA zo_fXqD|}z^v^@FOHz}7N`;-(dYhRW}Tcfdx|Hy=XXn#TcJE^DtFJ!Vpx~;OmI>pj! z^)dcLc*gtowfN9}A6(~<@AYVjbdFZOJ05HUHbeuRjNd0qJx5m;Hs{WrZ)~K$FS%Y} zZ7gl}EQfmf+qTyEwHq0G3w-E}_ub|HpxeKJbzM*)pO!EF#(&ulfHj*E1E%F0e-aDk z!O7g|UEs5)arX0{$Hx05Y-tf8;@m*eF)a17l)kjw^% zJ2wVjne!2A?hLRg{AXK_@q4xQ_9_l#o1zW8gI^YLnjCSU0j){7CM;1>2TpGwZ$uzbfy^rf&q;FMq^cd0gtC!rVu@I7_r$y0%K3@(<_X)H zg!YZu_FnS6+0Z`b=%0jY?aKE{+(XqKRPAftJ(JM5i}|)SUJrAAQ0iU;T*rW~(6}3L z-gJ5?I)4G*p)=mg+!tKI-p*7XZExHYZ3QoPLGIgeY-u)UH&r|%#nU?e zr&62zSGD7N;&}ocaV~A+b9nL0+VBuO-zJxV(vQ8PJWAWUwd1qO%oE=?%N~Ybn$M^XCt1sO$DT?b!oti12Y=P zO+xWv=|VcuK%V#U`?bcOWp4?tbytcx;a*N}iqFT-3(&;hmq)lT2_>;yzExedw8nK= zq<5_O#^Ci)>OswM`W;Ue$D->QW8{ML}b?dAPJP+1J9Y3GS;O%Vs z60ECZnnTA_>-hfWP`n6OZ#DN>lzPp#5iMO|knQrrc z>}K+vjt7@nE7nxu>DJE4X#ckq&Bcdz^{*O*{?T|-hF102iX^n0r2a%QK1EyO=P4U? zCZ1ZaZD*NJS;4>XYfrElUj9tSUZCSM;WnsL>}QQU?SCxWQ&*2aA2x?<&x~))WOCmd zE?7Sk%0NE*ng1xB9IHOwSGdg- zgmX;u;rF+GEnR%7nN4O_fy1q%ex<&-Y3%r2fFrDN|8?Wpv=u|}dLMi~93JP%Pbar~ zls_r|rgRON{z|6st=fRC&dZ3u__ID}=$i?}JF)ru@M8(PeGr;b(!DaCo6Y#Iz>jI0 z*01;bfK2W?t2w`O8~b^?mru?60X_Ig`ZYY1ReXmB{8#*5 zOFXMRy&*cc)(1~pwx>gA34_HAL*d2eHI{(LhuxI*!v}ni=hBZtZ+!lzkemv)frBx^ zwwc^BW}Ulet8X!Rb(UsA+c0w44~=+Lw}ti{W^w`pb>4Y{f-nbryXZ z15a{mIK=!%n)6uwPIawMkF+tT!08(0S4#D3x`57&H}~0a1O=|+yCP*5D#Q1NGW-~6 z9{g`PRQVBTJqACNN0}7iW61#gTVFr=mAV;S>`?g2`zm+2H@IJ^?}1rU@0R-BP7*q| zx7Kz^LWA|#Fwk{BYjJ@5u59*DFgyv3pmrF$v3C+mc48w6liV2-#appQz1ZQu*@~}? z_Zj$vU;9-0k<{7^8S~96_5Pv!lh&-W^wMuzvt@XGE8MKjVzx7j|CO)NU;0zA&i4qc z&6+Lnhs>Kc$I~8YQXc;M|MlrZ`S<8rtM>n~2Aj$8I{B@YSFu0wzs&#G+4D-RkJ3;K zkNl6>+Gu}zCb@4=w``E)o?VUcO^CREsqN3ssR`_DwshDU58GNYxTX_A(H~&p8U_~eX{{a85)qmw0lz(HtXRTQ0d$E|h zdD0&G<$rGckJPuSf0s<&GR|xER$s6`_#9a+N^)m1jJSi`Z*+YPeK=L#I!w`nQ3dAS zh9c9Ps`87i?h(TJ-7_*zIzb1wKlG77VERi>_OWk*W#VRgPO@#`GwZs zozjP_BmS~-rt&Hf+w@cS)>3EK8mIAD|84N~2ym^~bVKD!#0Kl>+f)0EwB1~Om*$W< zLf?~>iG2!B>>97wxE=gts@6Kcr8(sDg=N*QqaC;%Zv0nR;+j3~cpaYE=FswtHuKr# z8;reYbMCu`@p}$!14}(GP|8Npha=JYf6}8%oiT#ucvckL!XI!u*8Gunc(ma|?wdkS zus?I*E)DNW{U6GGzxxHLbAhrmLA5$(FUIqF(to3uE`>8di|>03Qa2K0eb47~I%Yi- z7QlsG#dE-F=xrxk8ExkZ`d(q(HG!Iuboyv|LeGk=_qw>=mBsU~YS`Vv^~rS=8XlyZ zvy3;HzMk%SJldw9m+qHYSJ`WVh^k!^gJDgC!^SZtZeeQ&p5G~0eg zCe&S)$=&a$pWgLquoiF zP;rQMyK7&_S8kpOtzwQkP_vPFx@U6VXilxAf8W!yZ{gWa&wlXj*lybPg~LI{GWOy) z_l!(fcUvZ`sI~V3T4rZL$t~ub#W&B)2;ULcn(rF@uYlV`_)O4l9Q;l(=W(tN z)2CECP$EAB4AMW}T;^|k5DwO2{8oG@ALe;r{J)D0ey=pNc4wEY_cZ+|*qV-P%6_m} zZ5yzWhP*Q6Z$?#J`bSLb$m`eKAXO_M%;2Mz>DSD4!IAF525){dwL7? zTaXD0=BwAI`VM8n3e;qst(q`rq5Q`(5;T4`&FY=*0s zwj2OA{74n6+lzd_sKFWU8q%Y!(X*bi)ofBT-JMHLY*}^#z)s}O@H&Nk_yeC0FU@_Q zC-pqpkwx2E;3;eJJ}{?iy~gL4EB0cm)+4J{cEg@UiVuyxD*dVaGI_QuoW~{&Fy9nw zW&wz6rWFn?U}dv?2zbz$+&x7$wC-y7Tt$znl%Hz7?L?QpU+TFo@PK%0W83gWYr%A`tjY!*W=J-m#Z`2nV=K}V(PWp;Aah?3>o~yMqehd7uwu*a^ zi**&hp^$bRtm(Gx@H(y|`O4nfZGgXj>EC9Y*Nm~$91o-8Zg3a8LF2vB$G}U<*o*i) zdFo}fJR)WLQ|0<^4L@h2r8k1#E9_C+8;RdjTY#ovXo~B{f7R^$+SnsYwXy&Gjj^wB z_d?$u`uB6)4IV#f_qF!-fcPyo>n`;kzp`OzZqGlwgBa22H*=_Dhc%RO|oocd(hgUPd++Z@TKD& z*?4mE*vNRNKq%EIT*hjzZr73hpSsJ5mj_Z4j ze+Pb6<0tvn4N;GOp$FP_q?fZxoeeAAT`$R<4OF5r#z0Gq-}6EEy)?A_;y$;0eE+m{d*c-+p<^UE$C&E`_#7*5{K^Ad@2Y=4 zbHO1EV%l!(@f)e{pck)}=H5l9m{JTOIubM;M+TL6Ob<%#q8s$6?^1k!S-Mhvix~J_G4Xq3`o6eZ+UISt z_AB-&pVhYkPv}3_#Q0VFlh*+tMczl!1M;n_Am8!$cb>lI(u*_k z@nk^$#dN)WwEPkHI-FkZp-mxtwxA>H(}7Mr{uYgE(DoI+NBF5UwD+W2^rDuYR?wLm zdRREr9OfTooW_I5>=5`GH{#G?&b$k?zrtFYD%PK7U++45q1S77t@*Fg7Jeyh`7gJB=TnkqI+ry4M1#z^ZEdHOg0| z#V}Jcp25q6B4s0P?1Ev}XF}_h{O{SuJCbkTBa^#tk-u>!6#m`ptXZ%Ie9SJr4W4J4 z7Q=zfPS;Btnseuch3JdEQ`Xb?TY()j&dbQ;Vw>thK4NQmV;29>92(nMrKi5NO%e;`{g|I{$=I^g>#a1-5pg5LcHFRbl?K6DDt3lAm({K`L@ zow`W*WO^|L-|({ve`kaEt+2Al+lgIJa3NWZBL}jt(trFA{2oY`jM>&h-52KJx8u2w zS^O`wM)K)%#oN|p3s7G7f^zGo?OwVuO@55}LGb(s{@+;t{wEX$YcgM1U+o7QYai*( zt_Nr@&Bpw;()ZE26#e*+-UpAT3++YySdyJjmAHVvMxwBbuETgSWknyAhuHuO8>FD>v^{FcU9tM(3SU>%Z|?b!hDP z5KbSX`8_nfr2J|14}m%GzDU2l<$I#-4P(xO`|+SBn*Swz39vcoNyfR~I>E>MpV@(K z*5F26v1?U-vSQ2H*!spV*^`CZu%(45<8EW_UyRiR*L$QHbNt00Z>@Y^Fv0w{8TV0b z$szrobXI3&q^V{<$k(yZ|`rsoU`( zh)K>|>RJ9SADup|nQd*(eN!=SJ#mq>Qn4E#)AUi9Q1@^7lgWClJjg%M+Bsf&3>lBg zgr<~rLF{r=GttT2`%&??u(Z9k>6O`9@+(Z(%GEbr*8ZY{dl7} z)L4UUPe`rdbe;4bI`ddFA0}<{3#g zM13~n|DgNrFR>>toA1?3D0u@OZ;Sgsu!sDGnEpHe=l<)zz*=K{1GhD7&T8$o8LaQ% zr`fBA>@VM*2@O;60uNT8w{rkI&{)1n7d-`VtL>qD{Y6+c4{*oHDtxrA=qNOLd?o@m<^ zzI&PH2=YT`)w$A%aGPxYwEOx~@Cft*<*pm9fH=s43HmuPQ}1ykX4ZI=%!j? z1@HFLv^@q+2dOVc3whLR4|h6TM)zvzbUv9>N#lQt70RpnqjxuTWLR*Z_GFv3ekw=s zJ0sN}Voo^3|NfQg8nkVs4;34c`8vEO%f{E~{$jS0&No&oJCj`ap^6R2_erwdze~Ph z82jVDb78b+)_7qhxD1>CHdVH(b$;{G&~~^n=36)4(vdh9+){^|k4(msYkcma>549h z_X*n0$9r<9Ap241&O>8M2OP4-sezmEQfuL`0r(%kuwYou-lq1TYw)OJgA3_gjO9{~ z(6z_d&_;HN4o1J!xRMUOq5SpI5Tx;Y#-Walx>3I>c+=UqXPS=p!0W(yU|-;SwIMA| zeb#@Dw?X_C@sUftW4qLP_U4DOahI6VFd=EBE0wWy8ZHRF1n`b|1Z~UZ>kdwuYpIvMBrTS^tR@Md;HH=H<5hqfDgM@_X^xvT;qAP ze-)QX`+$_T{_AD&CcQZvw=f4^o^sD5zNZxi7|*^}+s?+h8ch#3=VGJmuddmRR6d#G zK^;99&$g88NJj_I=k4gDx)OXz{b=5gw11gR&_7gx-^@G2y;6GBc0Kt$kIrBC%`K8p zyhq~uFiB`R$A7A+Nyx7eGvCQK-IIi-`^C%+N!K%`PiVJDEGw;URQH%?K-I0OPeSW` ziTxJ*)TacD1wBAtWqs7OfR);{J>*)SRq{3Sl2Bo;aGf!)NOEWW6rG-gvg2LDr~Tl> zGulb+dz1`p7+(&zQ>AAmo>?>hB}pj1$~bUtGDh}#``yw}u3ILPulhfWR=PfwDZC()14y<|8vmI~X%SzW^!3uNWW#bZK8fR@iy6}C?9OK~W zSo4Q#^{aySc}XasGsR`fM(C5k;Xry+LiYQDz18mpiph6(bVXkFMNe;h2=ElAW}mc9 zr(6GHrN>x5CxW!{Tgc{4vS=U^F>LxpWi9Hy5O1zyCx2EhALUm3kg~hg&1Oey^b^~~ z_bSsRAlgbXX%O$GE2Q&0Pe0IlT?p21?%GS*r`hwM{K<{h@&nfPv+M%fm*#KU{&EKF zrtD!M7|cHIlgWK&p@i+P-Hjgu@mbFjFuo`giU+7K;I}r+gzW#=h_B7@jxpbof6e&f zw~BYgac$;fV>`@I_kz0F+8qMg*{B`iwkvy80N+X=md-v8-jshB9otLU`EsJR#|^g?YSxc%L;eEAAG5dzJyOHWQz;m=voV@_wkADSA0tr z_#4mkir+8q_(r+9;;a;(+oppfwb{zG|9f6w$nB$66q)l_be`4hnO}5WhrU_tbdCHS z{LMq?TneZ6(YhLZ*zEf&>hYxoq~1aMr^fij{@Vt8znGz*Kc4Q*A05F4pPLB-ukU(R zaO{1q9~HkY&M?3D{ff44yKc>d@QGMujeL71G=cb@QRCMc-;EHvewN9-FW>%-XDHwB zzx!3Pds&S8yk`=Z%0H6{eV@>Gfx3sZH&6Xsa=cBfHA~-Wb4`QK6tch4+?N{nJoTr- zXH3R<6&e5k>B(v0o&VGRGJ0{HvGr{?#^O1dP$x~_k_nw4zIWeQBksOcY^`p^o%)z> zM6LLIb|&;uH}*#TjFB~8gSiUKwZdF!JgM7Xen_A zz7si}OmEJQ@&d=wE%8Ar{&(L>`wO(E_jPZQ#ZR80Tpta_%p-#s%fQtO%7yU zC~dgH8aGx2S=5{9_92yQb2E5AAU;G=K@w5&N*;~*sQEH836LjvXyboK@ zo$jyadQ*98Hg%NsQf<9FuCKMy@uw8M?d(eVP&`Fz^@;e6j`> zo8au3G~QFrp1~(f2X~Z;5tTh4UoU;AGo&y#WJ!9?<&G`r1HcvuBQ4(qnNJ92VK6z{s+AkDSOygr`C!zNK#P^uM zvtp1J#X>9XtG<(jqW2Q}YvPIz`0Q5w3n0k4&F zjZ-HMt50%!ygeRE!n#G`pXcBJ&o!@!fm)0Y*J*Dh&Sw|TM10Uuv^WXr$Ia7V4EXdi z*34VPJn)!jj+$yQ7JNosXFh5D4dR-cm6^BwF1#^k<)h-AC(&xY!sY0}mojs;;Y%x? z6n!dA`Vv0h!tr~w{}+6dgnVV$&-7DY{}I~oEPhY0IBWi=?epUGnup2ckt9^Zu?4O} zl$U|Ncv-f@yv<#(GS0nJz3a4m-0v;{OTkz$p$Xkjq1ia2j8_BiqI=AB2f5;7Cp!C1 zk)H&w^YHf+)0Oh$&8ts*W;C8*Q+_`BFVoMM zqwy|GHybsNqw>H*>=2$Ccc$|)k(Xw~@KXtAD zlZRNN_p-<0m#Vx>s3>3ucFKhEz1hHotvEcBJ7d4SB9l9JuILhFRhis=cYG%^p1D7!yV?Pu#- zX}s*MeDF+rmGCc`*5&8Q=u^v?=%PPGhoBeTP4uUtKic{jx4W`-JbRVQo{-Kbv)Ns8 ztr&@~^eOv4JYNm$3B-MY@EP9o!)=4rA20SG|GEb97FVU($bdhu-2i@D!fR)E@6Yca zhNdy*JsbZn7e8Ky4>Q!yqSLpK4W88B1@NO-z7j3PXsN#zjuV0P(K_0grQ}zPmjn6t zZH${QALshV+&{qSYxsU4FAnOkE-IghNGP`rD?{MYbSs9R3^) zFZw!a7l7{kP1S+oE#%3uaVyu#JNo0@?&df^`QdcpL@~#Ccz3z|&Z%N}W7gpLirclh z8-FA2^>mRQt(`9xqO0*+bpz>M1sDugD;upYzK^yp>gpW*j4{Gk1y`HnTzHV}s1jpu zi%093do@0@0rCBT_{>8Y9SK+B`MG#LhCFtX|Asy-0`BvtFQHe_2JB(oFR|8-8AiXw zEPo6Wd$Uj5m-l zp4GmtG*rxB=h#CJs=24uHBP)=)Ye`3ddl+UHv{Wy?;cn9lpSB^S>jEM+aDf-)$Oa_ zfl~2PTZuAwrDESkIG?FcGyGq5FO!W*|HudIj@FZ#y_X}MOxM`V^x3YDlP_s@HZOPu z?FWK<`+4G?I&n|xV)Wcs8Y-LNwhE2^Ww+N)Jj0*lzQYus31}Lg_@9~N?l;HhCMzc- zp05ViCt>`|B-GdN@pF=pH^wEYZ@-@*B3&dM3(uk?v=qW)JMqj` zT`+1JefsJ@kSz9s&msDur3!8Nml%7hnC~X#ccR1GV;YU~9R4l0--UN&?{?`$nr>9R zXUw;w8|2aRi2c6p(U$%ft0oiTqx*y%fkCvU`vkSg}mO;t~z*Aj?b}gIYqj?J7 zG3PvU9&L`_to7m6dVI$0QZdNK*80xPxih`u`L2c2t?^pE<)P->nI0|ATKjBaydTpx z)7rlV#CYgD@PEq2HhU*T**|PRydTlS_-~2d`oZ0N*^BUKs{C~MYfIhFK=+aC&oFqg zLupVqqN^kI92TCHq zaj~)rbtNFJtVRDeJTEuaI{Yoe+p4pbA1!X!Rb7C`BC->or+y>b?dj4tjwIJ82xPkJK^nZt}~8C-|PN8$fCpZ^HF z?#G9_#bRg~d#{+Y9{vmPc?p_Z@c(Ok_#IEZ+dRuV&OP(I>+F5!ujKQ=!QH)s{x_UE z!EfRW?}Hb5S3GFbss3g8Chv=n|4F>@vGLv#FTFtr-xbSzNXDNUztz6Y3uOKfKHNxd zOV+?j>386tX5S}~ejt4c%;{PW@%@C< zKGw;8*5`@V!nI^>c?4TWrHb{@ORKh*W(=l14j4`B00B)NANI?9t!b_!p2QWDyaR9BpYlD_J< z1v~Jy+wd71fFJpz&r7|>Va!)cL)o9Dp4H`J_7@8rs(!Tmv3%cg{KzQ&zJ&kY6Ab46 z_?xDE)E}d~ia(#F&3$~*BK~-(KFi_tmbl;(e*Jsnc`vy{476DMbC0uE);iZ^l6(T@ zyWZRxEq$FCQ{kMJ)y{qyq-_u90S$IG%d8EY|00g+*G;U{!x=pC9~y7G>v%5Bt*-YL zYxVifKFBxb`XF&$fPEQwtXv>QxEl_)h|_LNoP8^fsZGL=2gMXmiUVKN2cB!h1@U`U zRi7o^gV5$b=z3Edbc|kx7BKK-?Uj|SLjU{n`V4v3xL|Cnct^h>Ux_JxFwZ)8{FyjE z&NnyUSPO=L-r#Te#&3oc|C5AOzv}xl_z}h2O0gJR8{Q!wc*pPSwS5XN@@W5Ce7e3f zD8-#eI4|h}F=)*u&N0I8%ARC^zn%D*2d5!$YQ>i^coM%c+hnXFY2-tLbn+XsOw*w+8Sx9mN!De?Wz^dfcQge?0M*p=)S+6U$TQU6mMpPjMR zD~z9FbK3Id2eJoKSFbi;aDku5<3d# zwnF&-Zk)w%D+hV_Yo9IcIls_E9!G%zp!=}g`(VL;<#;ckVlZ5K!>fK+h~L!?ACue7 zdK4 z@TvsQ+uK|Z?vIxGmK}OFwMIdHk0ke>qpd*Qh43$)%Zsix%WNZwjW0CqTDOcSF#tqIRPDT9d?sgid*^cwTo&Fb64&i6Ufa{Ti-VofILLX7&JcQ9Ty*v3zPYxM@80R( z`cEcYA&uuOzR*hy)zjHGKbrf!OsHH=Zq4GnCUR@^9|BHUIK^*}RK3Lizk=t_!w-(r zp2CwSGPyIt$2>w`w43(=dfvs0Pw@0xVX1}hVxh6l0$M?elzdFyAj>JRqF8nVUKMlycu8vMU%GT6cD@W1|`V`u% zkuR-*cj(PY{}4KQ930DyImY-$(1}CgLBAVMME9A%nry975Ar6$<^Rw^ z?*n_2(`{u9)5P2Gns~i-bRny42RjsPQP96ppZG1eY!Ubcp7+totLP^kPFoLktHfcS z&=YH~#+vW!j>mL0A8j4he|mh>b+ioiAL35WDEDHA%1Yg9vQFm8-)mhgX1l(&X0}X1 z{$BhB<51{pS_}*zQcH-R=F~XPVY8MNAC8m)t{6hS-nvZ@*n-`4R2#-3x8$R(Fr=~05a{~VE zr{7>W3^UKa7FZJQnkYa`$L=B>Nd;`~=y*NX}2vU$!um(%}L0 zcQ0jZUGz_>jg{LgNZE^x?;Xcy8Y{)kh0l|dy_oDbrJ?QD(%iFa)&1a@B%$DRyqubZ zzBhOAES`5)f^VzwvlzeQJ-)^j=tI}?7JPV79QdgC3qRBN*m;)z_}988K5v6>dHSzU z9(1U(k1?b%&aU~g)VqRkSq7&j^u0=d=u-AubgotYA89Q6NZn_2b(Q%1EqWziv0;*X z-mUXEV_rxe^eMo%m2CUs@!|*IG#@^o*Zuf856)<4tw}t;2=__&e=2<^r2 zECr*r!~3f7%EoC=Mh!>P*Q4;}7;TSNM@~&AnG@vGle}ZmdW80eYkQcshZa=Oouj;g}af15naO09e`B2cGu6KuDl)YFYm69HYKmW#?vC<>( zhtCd8!}wxx#3<<@(wn6AzSCQ3vzPiq$oO>fp02-jS$3oAQ;pHjn15^QKVWeGKW$$r zeLp=>UUz<}dpTrOYYhG3-d@G_@}AKOBegS6ZZB$~Jc!Tfrr4P59O*sE?Ek0Zvjw}6 z8++510e^YNZEO0m8=BGBh@bJ9%8D{PM|%hTAGJFk4NwR2wJRUewFcsUyTXI;7Ee31 zPm@PAUe%CY!$9_ko`oLzWZ}ui#WS|DcZx}OuofztbKfp&V>3H4?0CKF3C;HUmpY%o z|4A`WdLq!bfu4q);8X%fbLNv()m~s9awD@9=4@1+-ow1xkzt^J@8RWgdigjW*PxSZ z(z}2k;4ljxHpho}p2#`o`;tF7oZqR1#|zf)f8g<1bEx>QeVgu?-2dvjVf?_+nNV?f zCifmiV9~!wd;*D6_^T)>7Oq-s@$HP=B zzP>MA(;V7dH=lsR?V&vD5L4BP#00lHzpdOT4tx$D*W-Vn^f0_!2hdmig*yH?KDWu^k4pDt zr`hkyOZnDHblfbxh5a_plp3+uBgTG`tweX;^Jq#N`>)D205sNpf#%QI`A^aOp}0x; zruEvsBer@)JfUCo;g$DpgBX8A9^zg_ifl^GmOmel#&5ZVEXFB21K!d2k)}o&yMV0r z)2=IdkZ@oq4OghkmV4_m)(cM# zWB38%q)vtVc>Eq_j&^bV6`b^-`Z2mxPge9Pj#JS}mYZCI>`&E+VX|Ka?p5m_kZNE3 zDj?%*G?sp;yxH|~`K9{4AfmKRolvX^!iw)LB1G z9oACxI{~iawb7>@4KZd*?PSiZoys2M1X5s?vf`i6iT)=1SAL)^eXAs!igoZCtJ+xc z`CR-zPBtEj$t64lpLr@S)9*C2{y)u4eboJA9igH4R&-PjwXe>vt+wvAZ^*o(lxyAP z-qqkXsv(qq(%?OS24^U-oxRw!-t5(W>{2fKbWqy2`E1bP>5v-Ao}J2Cpyw|)J-*ZgbI~ZyIY?Eid<1>}K3-B?P%{@6CY6hZ@PmJ#mHT?|# z_uxbHJZv2J;~rl)9^{d0Am8)J`5$anDLuN+Tr_N($2Pi``kdZ;SLk0L=F>Wh-ya9M zm|Ia8iU+9Q!S%0j?5aKwn7byp!c$-=xQl(>SNf>^r0e9f)SKsUnRJr$58z7u&Vp-a z`5D?A2IivaIsL8x@vNgG*4Wbm()h2dc%EwJ{Mj63`0&8M^J@^lxk_oXJ^2+hWZr41 zt!&7=e-_^_YBCq4ubQ8BbGD=T-Pin*R}5f9u`qW%>br&vs4jJPkA zV~%n+(uG&h)PQC>Q`y+y+_;920v+@!K0m41f!^(6?46|au7WPsnBxxgw;c#qf8}5b zU9E#RUs>6q_$mOyjX_`X=u7^UXyT(|>=(}lD!B+R=crTPdO93qtbudk;P0E2cjCWB z{}@kY_NU0FE)U(tsLRoBA9(s~8@EPU7XAId=;~+qptl|LuJ%)UjK`p?x{dt*A^)R2 z*MJZF#P`J7d!y}lWHXZdFB8|0bIqM(J5M}%ud(kZ?+3|riFk6U7-$*#p41+JgU96Sr3V`;EC_u#j^(Dw-`CrP(41%_9lZaWYmJT1@z;O=spGg z#n#Np=A}RSv(Vc~r(U9Sp2s)6Pv>&9vzGF!@Uswq)^_ImgNO8`XK^1hSm*J5@pv!N zcAflGW##Hm2giUzT<5}bs5)i&H)&S`*8}p^$|5a&wR_%pKijXWrRN{H*Y~WrZNEbA zuoPMch5m_}`1c4qd~6bmM<=e6^OEPDulw6mD`m6cpiHUE06aS4(LfvG( zQ`&Sv5^_&Z{6mmEFVgNfc#hU~U=nf;6%!pHue|iUB;-%A7jp}reg~h;f5-P_Hmz`f zo`&NUxYjCvO-uj^UKcAg!zW*?JpRw2c@5w3BHF;H)#!K{{zuXI5dT{X-y_;AL*sH~ zkBcAFZC#Rt5>TT}{X%>icg$S$-=2iwRjzNfFC^UpCe6hEbhxIWSn4m!sqp{#@~h8VY>>l}P$8><`KJCfy2#>#?sS8~_~eSO`dl1bh% zWP74MXTv*5TjQ>uLmu~`doekoKX(?tpd*t#yImpL0mD;oep8K+yce8(=u(MH5X0d}; zDr1|AhiiAaHrIjK?Cj%(oB|Z%6B&Le*mk%$KVU#Y~Qe_KJi}RHGKY8`u(ub zwAuRD-ul=F-h5*e0&)uKEBDuChB%^ILnuDBA@jXg;CGwkbB~i2gR>hl?*O)4rhc?` zM_7xyDSs6$1z;H2MxV*QWxi+g4q{s`ycw&Q4{Z9{IB~CL54M8cC_W6H)8L;57KsDa zTHnzoek=X2vA%BbZHP82)XmlAV&m-(Itw_R^=4N~jCYGq6Ll^7?nNAX{pwd_^)bakg2XJ_~x#?QtVeYZ@O-fgVxW^T+; ze0QnR+@$ao|BGCFLZSBw7pj}6?Iie8#yle(R;i1AJ*8jeQPP9p*qtBw z4Xxx?Y<_ajA(sxaKWy7vXP%dNj@M-GEXpU|gT{NOmfOkWX8H5Ugj`Z*x;~s-ti`a> zJO1L7rUT6rJ*qITm5-6d3;fKx+v1P5?fAQ$(b`SABYs`SbItO9MZ^CZGVe|o??ncE zK^{LVjlMRXWmfqe9Aq2c-K{0_c-CyOy{IPZs$!P;Sy&kIA4XHXHJC=NvD-#go0h_)dR(-@mCVT!R`sUp9v~lEZ9tF9uD@J~7_E8bWK9x$H-#<}bz% zo!8p)m|+iN7TH$wsSC*YVfkhDE%@dcPkVOsqRwh_)j6|%lqjRO5bZ4V^e$70m>HqWeZkhBRWjBEH8$!xjsGJ}# zHi_Rd);{a{9Vz`Q+YN08pno7-#pc_%1?SLDb5cq^0li_gvJ=pIBv~DZ$DVlK-rRpq zml~}Lb|Rj?+I9lHv*yCyfQ@c?)BQ+qdVHaEHrGAlBlP)2u#tZM=uFY9#Q89MWo{C( z4&{Re@<~S~p>(h^{ypmyKIjZ(XY<`-rQ_9Inz+YJyzj@C-71E-laH%OLf%7s?ZfIH z5w9#2+eqX8#^RX;@x7XCZK~%gn=Q_%O6VmVpu2nli0^c4aorWp3A4mM@UFjG{e1f} z_wbSW#&=l8XdAz`Z@$g=wt4ezzg^3G5bi2oZu%(Jts;GbMS*^AkN=KtVlGaCK@$4BC$cf>}o z8LKG?WiKY7Y9)G}Kp#HW-KRYov+oeQpl|sMyi}6SpU{=k{!B0uO(&5lxwgueo{Ij` z#QIY{NuEqw$)OaEb$IW0KX?Srdi*|51`YUlDG5tnCSPg%KUmy5>U`3ekCH!GkJ2YT z%Uc6SE*j!H>7B-p|D6hPEMvEvU_L?ViD)@l{b+M)o^#D}E?U~l@jGo>jG9Bn?Q@KW zxA>m@6!S3#%mZEL(GlgFs?DD^G25;~??hu6bJg+EqsZY9sYi8MT@kpzRSZa1qMp>yvEiT< zU8U$+Loecc_?ywaQhD0~^Flt=pmw2oq%YGJ8;6X`9*1KEdY_|rWZF|2|8Z4Iu2tGj z!Q=8<;J%U^M;j|2E$DCJ58C*O+V+eK{NS#05n*7=ZhC>xLt)dwiwGoA4hfsJYUlFwsj;&*oO{|x!t zY1dtwo@ud+_6KS^kc}!#XYT(B&M?-Q>Wx`E7Va`O{~Y5Pr%qk&X=&#+ZW}YNNZD~{ zI7ZpvbZ9>^oq2z=^(gUxd_8*F4~BamxOYW+*R=P;*&X+w9cYTr*E_!5_G~>qM`*`y zK0J9Rz&FyE#%dq6&5pGiyAmz&{h@G)cKDw%QQ4)&x&VH(hSLFAG#kGYt~zqaGG+&R z+0@2|t~VZg+fvWA-cQccq=VVi=h?jian#l3A$xUZzbn2Y916_G1^WI)-#O$c)@ynW z-Eic7px-~GVun0(mA5+}%XafnhxV%Rm z2Rd?$+Ye3VHoo6fYOc!BRcu~c&NqJ-^Fw6W0dnb4d~c#dT1U2_oL-P?r?M99OHZN$ z=D5Io){|=oy(!p>9^tt->XI=len1-?i)XvWy|>y`WQ(q*r(H*RKZ-`s#)oCUNuK7T z=_hG7v}WTOz8W-F?gtmT%h0`w4B~!J>yfSxNoT$hZ8cW>7gB9AJS)v*9sU=*V>ec5B2e&lqpHHcO00A9^nEoNAtSw~L!9%~b_F=BIv~c?8Ypnk#Ai zmcLqB0OIze&3--v8Q_Y{{=9F&=%+ zr&BrCp!Yg@KV97|>CAt~x{_VfUB(3^bHre?(wXlQTJhYXeevb!xiE%yw_#ej@JSglUDI)fPH? ztI$6uq+d(BB%x!MB$V|?LhEjPhePO8hH@n@T|Gx@D>a)U7y&j&o z3fUI%l6XJ$ta>q1%PejF;JUal^UZM6reU7lfP=uBV*V9k{&x2ce`RaRK(KdkH`;bD zv`+GIl#2CTuYN-;MVTdbWt^eoey5;Mw@t_zk`P z;luHqum8fe2P)or=#}@iYfdbIr-!=)OzL=sM51!^y5jefJrO zcUaMO4W1`zbBR1zc93Iy54mbo5~iH44_W42>H06^GaXJc%b^FwWH$T(DVY^NV!rCM zdxGrAZWx{DcouK;V%kge;dOel&N$|?0JPDKC9eC?mtkZ)Cha+*Ii69k9FAd+YO{!} z=Nt15*XF9`I{f{~7=KW9nRzj{t!2iDbSB#8TT^|>a&L0&p}w0wJED7g_1mHAS8L{H z&qQ~CV>fi{i{~TBtH?OR!AZ)b@f_#866Nwu))1`uqAq_1dsfBH&SB5yyYIbUx*+XcdiS&UXnz-*U2XqdT5xyT|4_7lK;Omb(DV>{ zCSN`m9ykUVqxuH4{3RWV|DgN=W1VLFp~??4#{OvBlV9Ee&0>P;SJ~gY#ULZ_6dLT$ zvu%H3M=q0&mSzKc*O~udI72w>=lU1vmero?ur;M%jcaX-?XSiEXT|Sja_{9UUjjdg zZF-^q@U(NJ(R4;SRGgm<9TU+`PWkwsgyv3=Pd3%)&b<4lE_B%C{ zJwB$;KE65L-W)d!^K4(c7ws{M1L_x%QH)2#X|?}@vwJ!;?@RValJTi%{ykd%gcox; zzLNZ>i_y&IBy*8>2VZ1fa?R;lu+_XRxi6jh2E9%?#$3+69bfn^FjsYB($+K|)X#jG zqw;R%$UMdS?TRkO{L%R0-pap;SNP0qaZt-MWSmCZd-8uLlXg6RMLzQN{Aejz#b-4Y z9s0RWeGJ}L_KvoVcw4T`{rcQ3KM&3t^p9ADcLEVi955*dDaQ?7oy+1R^5g-Jm=Bx&9&+tHm{GE=wxwh}jSdw|A-7A+OR05Np#MR} zr9b858RNt1Uh=N1tb@27>V}Z<@%q!Xc>Yoi{Y;%r&(4LP4wj_QbcK1jM!U&qs8DXM zIwwh$mC@h$&-p%giqp*R8hq8)q3>z5y+Bu*yz}##@tTeQDx1)V-qq%E6`gqzFE8n* zZcPh0y^oHM>?wUJp8rhyHgb`+ePUc`PcUtxvJdos2d{snXRlaOjn*}seO91rDLZi= z`O>Q;mBv7C^8`4?S#xKh4S!8!6XW>0BK#eNw_Iaq!%5%r=vhfuJjn;TUc8HPWmTY< zF6JpK-wU1`c4QxI$TI$~H|}@V(#;edi2t~#e1wixO82E}&suxmT6dQfhT=yHL)+g9 zeLo?em4u4j6Z4aJPbjg+C1x6xpfz#cQ^E!%-jPnc%j6o=O-e$^wfx>qeCrJU2b4}% ze`68~ls8RCLf)DDdvW3)97!lYT)uze9u?kf{$U3=w-kno&&63Eh^;=h?!PL`oa0yf zi}K$JLsl2@LN{ae)bC(8k4{2X5nRV7p`{R>3tG&V2sve)$LN6)X}HN#j02IheLk+gkV@ z(e82k0QIh)6Js=z+iT*Ib$D7Y7Tcf=nD#*u27F}fkBzmF|NVsD{|w&0qw5R%C7-JU zS)1_prTqyoMLtVieoS4b{sE`g}2Kmx>hSM0( z^bnpOmZG=hG4u3<{4@Hj=I_y*{|foS)#r6|HH)+4Q!g8@NxKI8rST!nGFDINW>6r% zMgMu~nqNvnr}kr{saXGl`sc+O=vuxKPO_Qcdc5nc#x7r?>;dU~X_WoV`qQKOGw8_i z=8n!)9}JiIF5eDq@6dyJg<=f)`5Qmc6I{jaMZb17eZB%r0O!&5!F1c6OFTm-H}D_V z6o%AFy8VU!?d)Kjy^TXRn&?A(2RZ&8 zl+9o=UP(V%;c13%)dG3|e;uAXZ&i1b z{A6q33i6t0ja^`FPt|sy>+Y^MpnDPe$Kc!Etph1S_{MinvRW6Qg- z1G}*kd!#dKKi(si{=j$q%AbQG2z*5)J6px3-pOv>l@2rJ zvQ_iaq36Bo7No5!?e9y6&U^UfyVIVfr8EEi=~tb0pX3^Jk9}NsN;~JX#rn=r-T`m8 z(OB0S`%3ABX=hWgeMR~eq%-e>#Ajgf?5MIaZ0vaXOW^+lA3vE)u4miP7pAkxGuZx_ z%0XB8y6ez2DILns=W|NohBN1P#yQX!J>kwW&NuupKVQK&=a!PoE@V2NzAaqsS)F$! z`_Q@HgF6aCt+}gwQhtSbe5%m-GVb|6Jpd zzj2QwQ+yQ<#Y3SoyoHm{bt1XDZaW6eL-49ijkGNv9H#9d4{qs^~)X)*o^w3zE!^kj=8a;JzluAmF_u5Bb3q}_h%`^t+^Q|jY0 z(^@(dpOF@eZQ{OJ=|OxT8deQ3Z^q9XL4N0M(~&%~?lcbzZ#LJrrv2~C_~tq_FC8{Y zXV0N8v!u6~FZHX;S3J)!{`0(Ig1#5H9*6ca{DJr`ZZPKsDdo}?Xp4p-qtnlg6j6~@1u>{9TZrv5m1 z$h^{c5l_qB`u#>0&N z@RvMGc~gCh^7q*Pzw!6$-Fv^EgaX%P&3x%|@((4U^R^_kOadeIKP1V#OH{eMF!O9U z)Uo67y}DQ3&-4cs?&C(eue%!LqABHj{g*ta8(bJFX0Q{_6#8FFVdnoA*?CFk9h)f^ zq3dh073)6FSJf%tr|ve@-e z?==><>sNaH{Qr8ep6Fc;JV11ohonMTF*D$#l{7-DZHD{&OgF^9r|uIZ)gbg zrtA)7)p$kUfcw#f?kTnKg8~rGBX4_%tU$K>R&s5_Pa9s!^{di<-EGF2feyUn{~qsW z%AchFG3Jo&m+yg2aeUK<^f)bjoG#yA7)oz*{TIIQszTooZp+7a@ACQ0jsRYU1>!szcLeB}Tw-Ru+{+Ggag|_D_ zA7!kOu1CwCuIxe#tQ)1KY3Q4g_a_p_Jx@N0Ltr@Vzdn+o3* z+OTH@rSK-{(2>VZ?vc*?@4M-Z2LD-ZaQ+)#+^Zq8zZ_b`f?wN@JPV!iy{PIJd|S50 z{b7UusI&FgXm=Y}fOdW;KG&*X|Du1%eAj;*8cxH@*~T544pkSVJ#$Wn&cCGn!zmqB z&J-V2@ny5*@fLk>F_@-&{EW2skvZ*9{{3H%-aiZ#tb_f^M7z`G){y5b>wju8IVcssbsP{c#^$6mb|u*<5;OZ zl-$GA8^2?|KKyp=EBZAX`z@*Yk9#S_uaYA^szH3eqx3a(aef-X8rRX+>r?uscJCPz z4e@-T)DQM0cR<%}>CF4Fo%^Ok(*fJ`sq;|fgV27Yc|U{>sH?(5^}qCMG1gkNyl(7| z$jThnscXW2+>;9V`W~Hj6d(SFlgFw0jV2#+8{a)H9V369c67Dma&ul`PH&)}=62Ja z%I2HT2k7Wx`b$S^>Fb1LeEk#JJ(JG-zh~uh=6@A`y+#cFk~w~jUcau*E5=KkkLTg2 zPlrDGR@N%F2I6;Xsk!26FlM&#Z=yft_(EIs$?;o)&d4LV#Ai~uO;WmAd>&qVOFuRz zagT5ZFxec<@Lql4Fz;~NBkXkl=Y7EVeqv>%G@k8L>s`iaeCaFpJFkH6IXLKilv(_a zpyO}wZ!rht7T*)EJ_~;n(LRlgtltVcUs#Sk2 z==mnT+R4W^ZEyJAf96q*VTf~+7N6$qq_K^j-8F`x()lII)wMb=;OpI;x#awSv@-x| z|K~pFLvkeRX;C&MaQ8<;FYBp0ddQ{pNiFmZ+rpR}Pc z^9@eR-G!mJqA;YcEzEp3n%^t&{~YzD+VeLe!Oz;V5_ z$QbNzX$Kp77&~8*WX?EA9g#RsflvCO(7Uhp?hofDCMdf>n``-((P-(Ggj#kzRaR)f z9;`7>_G{yN+-*O4uW7HeZ)EA4c`wPqCmqkiZ`L4sd_4XyA&a}%3_92PmbM$ke4l9d zhVqBZ$4ELf(HgsT+jmCoWn!M26X&S9Ctqg&WsP)Q5{fq@ng0uhxA6P|pZlQLW+p#$ zfx6@H&@TyDIf-v8Tz7HZSr}S2;(samoCf}kZttYmUQ2J-fOtQgeJ^>j8rHOas_+IqH^BCjVkDV`~*L9!g z&5`TMH~820lFIMWUpfzHm@^+|9$4gl!$T+6bEEx40rP4h>aHi4?@b%0s3ZwgZAL_88(0!0GhZcq2C!pnI{Yr|Q5$0T` z5yl2{Mmkriv?%1A1Mh{-ue`JE{!Q!kSCqbX_{BD7<#1Glc#C?`6)l9PeBs z{f3|9U94g74o1Tfcr$L*e$K+tjl9v>4U z;&;pndpFN2TPda||BdvdyEZNAE7Y}`i{a!R-xpv0ck}cO*^o)Abd2kGMpM7n=+0^} z5_}ULNHX8;H4RNdcC)oG&;5R1HhM;bcUSp?f%N1od+}@O#27j;!CKr+x_qcO#j}e` z>F)~d{;6FzHrqNVX78JhO^24z(sPx8jo-xUjurz#hIw zUen>emRwpt=L^5quAQ9P^!Yp3 z-d@`7V*Yke7SR0#+wn9Ta+g@(VeyDqA&3j=pQQtAOOu$PLwwSvP3dZS^q%(Zd{-A^ z?@PAFkju&9!BXj&{FZ!BR^C^B59K>4{}sM(#Rz;|3ce6=MSFD;o%HT__>OPfkzF1| zU$0{0?*i<7=XUJ(eu*>o+*^#KtTm_)_!A@A&_6nnGmk#q zMMvmov9ir{d+V)qnGVNisqw!Y@tv&ryeGfJ+Ayb`Bf+WG)oJE;jQ$sFi#w|6`{w(^ zN{<-tiF8 z)ca`Q+{Vsfjp4W9jbYs=Yv4?0HlE!Wo)n{0lsUt3d}HWwabuWwnKO$fIlt&Cc&}{? zOaIasmQ2(BM(0$5f!B$5{_O0>YxJAk7&b~*YqLU|)l-e{dcM9pUx@~IhDq0fE`MnB z&2VEFm$L4}MmwL=82TH#&e$u?ZwytxclPAv#?z}O)tHImn zHHOi~UVou6jeqH-&g%s8wQEJ=4P%`7becXVH9G2}G0Yu==R=)`*_XU>(Y7zX_G%3E zJsQJUbFhewY1?9M*_<`(-fZ@F)hl#kjoA7Hw)AfRP_tQlSuE*PcX8QzaR)B5MTr@FrQ6tTg{)+j&z`H66yAf_l{ z8-{sLN5ABF_|#WwyHKCs&JstIImh}!cHz>Zu>1TG?@GtAX=Huby1@hCq|yHCy8oIG?LOkQBhA^Muj{zHsuKGqbQ zPk7VjW0d(QFy2<_=dRCGH($H%a85l4pZl28o<(8O?%uBgm+om!T#p22x*peEza7l! zPh#88+zY(MUN09j%}vC5N#>pJ+U@D+V{C12c6N6$_8&*_xkK5ZC-={Go`!)I(IJ0cVdCTXSgXVBw1<4k||4PJX<&}KnRPbl^3{?JwEdy0ouzwet!}IyRl(y0izOjr? z%;#g{etwt-5@KO6&JYPOh|kB!d-+ZT%e+#hzWV@vDBZqFHO4R{G|ws+oI^oa$V z*xR~T_b8vLPdsxv+%BbaS@5@9B!)am*&+PJc(c-A5-Gi60w+|G0 z1|aP$bZ(ruV^^`se(dWII?e{ie=_FGOft`Sv+hnZ&y(Z#Fq`j7!a`7SFWWrd8o7%- zzC8(LwIKDl?oA-3tq&gVR2+@;po z6Yf!-OTw5J+%K+3LcZ%QkHPLnudnO<`aNjuCE9B@Z2^Af zBw-%9^7)gxKjH~JC6|GV#D{0&^$caB;Txe%u{NOOc;!RU2I4dP_$^6634TsPw?6Hc zqT%`^3`6@$A~*vs@>P^PFIc; ze;+_s-mw2v1s(&P_7rpI&^}^udk0PH#FQiHQuVQ!^Q|feh%+A+pF2}OJPzV}dwbh| zsD;-vpfC&U2I~3x08gd+$0yuNh)3g@7}@U|_usy0>~0P9qr1miho#og@6(~?Dr@Kl z`h6>XueNUPWjpEp@Q0+$>wkYs{LOcXvAT+^%zuHFcL5Xr5GAAF$l@B(!Y4Q>-hW zr>sML37j>LDt}5$^t}Erg0#BV^#2=rHlp*>bjbZI9r8cnA3pNl{RZpy9p!7mYHe4D ziP5_bU0W8Vebb%}IcVAn|0uMqufq2&_?`hLnY2pdzTU!{;F)fGcA#9F?suR8eeEFL zW5#>aT5ZRuUl(Pmyko9wX*`#HvOb;qw@oFda(Kt7AIlD%FaDqC`f51-r0z2LvyD+i zPPyq&y1n`|ojA`N`ldDXHRp$k<(9ZV`t_U=wT8-1O+xl)x_iF#GIpVy zzF$sfFI9huHF!l5s{d^L&P+1rHZFOX?mw;Fsw9-G;g1{GhIHb7(|T*PCSQhAn!D1v ze9W`Vhm_aQ`Ps^DPMj-ZjaHxm{;Ubcl%Fz#{h7<&Xglu-V?VEt^|tX{?LJoCmV}yr zDE|f>|FWjPHn!`^Pw}xK37g-6Tif+u#vAII*s*8PX#CRqwPPDvW+h=O9_nv^>niK` zVzif{;Ur@e!(FIskh(+2qMy3`(cC++zly#*IFB~gaQuzc?mYaSg_j7I7~^_)@URK~ z9DHuZ%liAsX|Zu1*SCHfUzO;Y@(8{b0rl}ex@+(pzh|5b*4Lr=NqE?>G0zz51^FoB zG#XzbBd~HcKGbi7t1D=F6b(zr1R5!%Jo0! z*}v2Wx|(Gz@0!k>{}$gXXgb2$FR~WTN{5y|@T)ho2e-@9?VMTG(yjbwmGuM`-a&8Y zr^BWP(qY;o*7{TWt!86hR`*6a^Iw9hf5P3F4lBBf8N>_Y#UK;K6D9o{!)$TZn#08% z;Ab!q>g4)7q$~0{bF2rOMkS!z7uDB!=8L5 z|F^XFX4$p3(xCtieO^WXOV%eFGT|9(?s0TIjGqN)yxTftfAZO$3i%oLqMfbCU6Rh6 zYqIe8P3Yr}?2)-J^kwB5$`&CvHIV_vP@xys0`=1~26rbF$2*m!oizJ}Z{ zm$w&KyDOP5wzhkCrte=#@%*Jq@2?gA2iP}`=MNUY2coUN7OeM;+H2zC;r4~*nLE#s zDz?J6w=sW5)}!!o3EMdZ?dE0pJ!F9Xs)yJn&?4Utj5jyypFsCYb20VOgzxyD5?+P}m63nE3vkSeK z&0ftY^nSX!(XMxve-JO{f=Bqa|9Q?ZpWln`d>_GYje}3zpSqoFo&}$Krq_jR_XPdY zAse6V!?y8Sdbac&G@XI|Q_b&4{G2R*0zFR9S%`LN^GS5|H1jb642EYv^Mi+adt<3i zbFrQIbzQZiIsJ)TzgOOlzjv*Tm(1BJ=~LP*l;>mPKMZSkM%!EHUbDs-K5vA^0szOtK_%J53;6j z6;rMuw=bO&+%3t(lT`zf%)7TG$FTEo6y)|Nt*=$-@X*t@fFQq%$#68>iZd!czJiaU0 z^ftY`hrSo!ee9adJ2*{rz4Tdf+Du-%B)*SKd@GrRwv)_BD%obMr@P0!Ey?^#YtmhO z*j)ZWI{0q$GLIhtJ?}A>$|qN|^hxQlF*Yk_GDc zi|z~ct1;L2!gIg;!~D&1zH^oFUZE3j@u#gx81?rg4FB5LTa^Fi-eU**weHKOilcM( z@o$Dcp2zI(SkI`zZAYIpn9_88pMk}b?jQ)1?{)2y2x9}r+tL<>G1#J32pY`hB1Mli9jqgdX z+mM8mwz;42mtWxHt0a_uL*M_Cg!-SQT|8T|cQpiEoA5Icjmd8A3ET&?qC3aE!3y^X z&*5k80rsH!7KN)1#ov+kMUJu8Gfck(FUQ;OIl&&%N%o-ZspO6HPZ9eotH1*Jw6f77 z>^%*)*QDK)A~Ml0?pv*cSvM;m7_*&bzY#hA-}=l;b$%MbQq zPC!S&!S;7@i$a&){#jx!n$W(${mTTrl<#66D+@nly)Mf72Qnbb8vJ)Pm#fHP0-4Mv z?@{lQ8+r93x0)7u^bY-b+j^JZ1Ug-B1e-tsoml&-x(0f;l77&ann&TJJL4auulJdg zdE^et=v4{5T0+-?x|-S~Oj@d~KEqeQ_kwGBR{DmySSN0RyVSTF!6wlCO?v*CYi;6~ z)y?pOO|QeTR^LWC1IOm4>B?iqG)CV1B-G6k7fq!r)>8Fw`ZG{JHm$0=>)))sHt^TN zQ2io%=DxdjG8=Xzn-$MejP~Mlz8mr zJbPBs{Rh}@%D3lzl>H&l^=SKW$DnN}nnAk2-u)1Lm4B{2$6nM3>F^`9*Kf4+XV3|H zfJ$Wxe&^o_1HB6&_M2~v*~Z!eg0Zi4Jx;zJJ+q{vl>PkwWdp^J{q0$eMenuXYWV_j z<7;5Nx>eG-%Ce>X^sPesdgHA^&qQ?fLF1=rA2keJ#ppf}ttZ>lJ4OGIXq0{m#>!WM zbtR2q#}V3VH&6T8LgV7O3!ZcF9A(i7?(dFPSITrzq@`o^%#nQp253Nz=#rfy&p=d-m>u$3=^^@XAOpM{w-;;Z-KC;GDA zNANR8vf0P6(<9mO@$C7P{K0i>{mdlP-pTIsC!LG=^(Xk9=lBKof8A^He88CzkWXC2pD)_mGnPK`xkX{rLHv4O&yM?frU6z&IM_3a{@ximl;1s^ ze;vSIAEEwto&gQqtq z^djS3B2KxKtij8d!E?FxpkSi1a?iQc_qte|qEGYrWHw%W1y}Pp&->TgzXtT5Suj%^(obSQ?HhTJ?XDpZp#(^2iCZKt& zcK!5gJ;OYb*FZdOB+IS%9)bU5WU|zJ_cHHQbRc(t_l6D=tL5o)i23U8dE~+R^o8f3 zqA)49D16%oo*caNB*Wc{!g#v(^RBKzjDORvPuLS*+VnU8-}+t**8q6qv(QQT=HRHJ zFnkF5j9oIcD9k?&ezg2xeg>jzIT&6)!^~;{7~prRRgPy*rgf$E<^m z;=Re@<81NLx@X)oED^iSbstdaUSpitxX{`r}i{VSlL9 z-eK{_;+(%)ziI3GCD-z)_vBlZ{awuS75G%!cig+KQePvTBpm?Puk7Z-Y{MEh^MMyb zrr4#+q~n#1ZV1JNY|~L}&XLNF0E3jDq)x&J( zqv_1q{*}ww<;U$^fE>^VtXCG#Y1u4omkxMRJS43J-R0x=%CnzNXZ}?%=^1;#%1YqN zU4(}DZ2Da7`JMRf@YdVyr`(nftHgE_X0Y2g8&4X)Nm(+>{qG&hwXM>p{T?*lFYbHD zILr8q=g_zozIXZTjmF)Cwy(AM4sYVKxk3EUReYD#7`E=>J&GP;6h5-oo}N$kYz*Cd zc^NUo73<_0{`|6Ativt}nlR2)}Ip32jUMGoHOa4XX-)!T*bTeQ0 zA9DDS+G0fO#S&FxQcq_$Q zf4o(m;`%iGO2ww=UxAmO@pR@n;@L7W$~f{pPpk#X#*>}&HP8dhKi9KSumrS$vD#Kk z=j+=GjzwgVkVXGdVxLpRXP{huM`hE=bEYx-7;^#H^)YUz{5s_W(X&|FY_I?X(1Fe+ z;2@BI>E@(F`EuzECGe7U?;>+HR2*Dj&OsBow;fGJgV0SD6UgLcvN?$S$MkM*u(SSY_VhybGob8wYzb4F?Kiey%V0n{$M(Jj{q^<2rdAlcOXwXIRvaWC-b|I zp*fue7J(bg)#R<#pm?-=i@j6x+(%rRC5GFiJjSeT^24+nrEfp@rWk7r-N-h6{15KV z#;Jop8+>kzHtmLJ-wfv{x>6VKk-nfqpIKucS^pncTYqzp^S1O2_)OcL?_0m`xerp;$NH;mutr~C4_2}#_0}F6(Xmwd68oUm>Zn@qpz;T- z>xIhi(=V>&yWy~|x86l><*V+suGPnP|5mak3*oDJR==m&7`A3p#3^R2hO3w@sa$}E zd29e163?zoT`E0IJUN6tVC(Yj&F4SP4xY&#ekwM5L40c8G<8y8sCQpl`8Md1WcK%( z2PBy@giDLq{8Qa)m)SeID9N0AmztP(wxs@2Z7)wk!5^i6N&NpY@f?!Bn8Sz6OTxVS z>>JebE6d#DuXJDEn1m&7h|}H^%YAH5;BztA*RFp^!iFyVTQ~7UHb2-)tg?^T2n+*F zeBuP@*xuq1=?3-Ld-A>f=D3~t^{$@N{^njEp27ci@86ClxYuvAckodX+CSmn{w@~$ zBFXF%b^OCV&{x~WF8!8|`wtqn=+mjqFZMsc7WkUbRIx)*=)+%*HqO%S{5<-W@8zAA zKH{Ff+hW3|-|?@<@aKhm_6ho&WDl%FztLikF=DNA#RlW?C&u{sQnB7dDHsICm5Ym% zO}<3ii^Y5A!&_#L<}9(s>BbRTy>~J{KOCP$Vx6I4h9P2vLE^1};lG zDVAm>Vr%*JWVDAdbInbO@%I=YE;|%%vdRLZ`s0giChTW?G)JD7{^Q+t~JyqI{GISJFAQ%2v{*SmjNZY|Wg z|9FUg-ftbkdLVLhFw-O=#4_bEL}n`6Xju3LYX zgu4F94iuB+qUj*{zVuhVZC|>ZW6YlPdl&7uQ)f>;TRc|3%-Wt?nEBsBQ~yHWXo!(qHFoONLh+>h^X@H| z6#8CX{Vj#|*pwGa_Xk;I@(Ve9>)!MWuu&Y^=KA0G@Z7BFQ`gQ=3oG2i7Kll|@|L>U8Emk=e7^_4#S%!igVOX!9Z;(j-1vYwwIN znY@loZ{Zu>WzXN^$K)4Em#^REV`jX?mTR}LQM!t6s<&tHD7*e(+WRzc@DY`_^EH*} z%$ddUOuKlN-;}e`p`;|8d43YVOYh8udv`JJ_UPDx_Wzjgn0DeJq%-dscf@^x58cOu z5aVNQTcr)$zjvn zbmkq2O^>HT{`2s?L^gbD={tNleph|S7kKw9L|`3Y{SSM}0Zyj<0g%>&UzaSLQZ&$ z=TmoG>3X#>%z4jO#2Dr>e#bD_y!Lq;ybCY7*0qx9Mk!eNF@DLSbb~S8CttGZs=g;4 zHh)2m-{5HrocNoH&+glc&Bx%i+jGrhcV+BLn*X2zf6zKTlc5XvkdR_uxhEe0&KD`*t(f^k3QTcuwtlap0J3wzA3ne8D~mo0o)DXC|5dlowQr=Wgfo z=85ALu-6Z%U&`;*C86U{{_T+@w1S++#8^)yVbrs1`HTEzqd2Qc9Jp4zw=N0I>(zgv z?sNWdQxdBFnS^!!lK)=aFMMY3OpWi|x&uGFlYJ3T4W0xy@XOP77Ekff1-pnry7Ak} z`ly>Ktx$KZ@+|dbyL!$Ds^ljtU!ct!a2^I$z~8i;nBiA`=?C;|!N+$=Xz9SqW;}m| zuD_$_BYdED$3{hho%b8ijSxAAqLX`{Li$nZU}(L2U_gY9f4$Je!aH66Nx zcpl8;CUMXUWcZBno?^q7>GxN&S-W;+xpnezuLF}GWBWloV_}TC5M`jg^l`i|SB{Pfb=4rA zEmNy3{>P#ZIrV!I4((c$Z-%24q|_IyYsJU3XUTdcxvemUKAHbwJwYbg6&q{igLJ9} z+=bRV=v)=rro;DV?I-b7mu#D>lsPLtSsDGzI*JdWk5zeS0rjBdFl9%W8xYTJsy&dL z>1RbR<-5Y0MULAm??SeqSibFlbVSS>?+>#7M!!CEEq2WO2f{O<3Tvf)HJy5f-qndQ zAEir6T`#hJ7SiE+=q3FQQ`KLf|2TE$fD`FpzP1Oelg2aF+UR%N6gX!aW10NBd}Khw zK4g(k)+dnL>GI>Ot>4Q}2DhT$JjcD3RZo*YogDSjwm3TO&os5r33|C^y>x@N@6$v1 zY%lZIxS5PzF?VUO2HqF7moItQe66K7vHneS3janpQty!8yXFSo z_kBu?>u24X)A(*%>yhL!gxm_zTmpZo`94Sc@n|BuiZX3n z=Z`VZr>`0v$;sWt7CK81{8$)rcS$nuTf}pC>P}2D@9S5Vu*)aAK8fEvMcL^|<~`IY zlhu{SRdic{MDKFORhQ|vl*c9J-g`L{P!gLEIGOV|9ps_evXg+fq%ZB z*nSLuyzx}m_BV>p*4}>6n)B^*q&zpeNbK_aqA-7gzF-B|qO93|(#CW6a{DDajur>- z+x7hWR{J0A_CKQUKgfQ|Qu`nu8S4f$V|0i$D!?51k^SsTfgAd6+gFOuOS^yyFiM;L+EjpR!4lA_U8=tr1kN6Z z+g~x(YsUNe1^vCXo2>nJ`o`yO z@m;4lMi+DqHRe=wT#cULU^D3ae|S$?pl)YvCZMaIK7;k02*+UZC=)l$2k*h3<9ewv zHb}p7y$}p?-GYa;Wb+#wKif~+QB3xl`RyWR+i1>9%>9Iq>B$>O=y;JXJSlcuEMG&P ztCO(iR`K3+dN+-}T}5ZgwV41ep|e-&r+kz)Yv&{(pRU#2lVslKTXg9x_Gg^)=PN-{if6H)>ja}cQjgm_gRNmT6cRDX3p!W?9bsFjl zaf>y4AG^DP-F;pDJ+_-okN&^n31tgFj76^3<~r-19nQDz;p=W=kMH7tYuLJlY~LcjmrZN0Ws4tX7a!qQ zA7!hSYxgYQ-vCDwTP5wfn*DhmZsqY?z4#7j^HXft6Kvx$Hca2RPreb9!nbw-8+aeP z1yy`f7eJ~ zRlW|5Z}ZX8_zw8Azp|OlaPR}e-&OZM+Sc>+EqK$WyZW5hjky-TFQEyi+fsdY1hW^_KxoHySZQ9#XWm>_rAN@@7UdabI)zh zV&b>hy>_!dqOOZJGk5k(1^lef&RN^`Omg6e`v%#aXxnUzc7EY&a{1QW7%=;0pT*e8J3z-rgo=o_i7!1z7E zO0>kb)1<3*Y786kGziqfQHH*+m0zjPVfwGte;qznE4vs(JXgBjqJE?M|31AuGu+qn zwEf}QuQA-v$2Is3%Q+8@$kLog;8E(dRGH(8q|@|aDIv&n6MIm|cj9p*af zZ8Ke+@f2Atr=v^g;R3P6T5F^|!!LrR;W~Pdqcb z8jjAWlW@1wxiR#n{X;sw$yn$Z^;0?wG{13gXD&JYjJN0TnJt|`Kf2)aguU&RklW0D z>he6RI}{vD-nryKb_>nwE()x~c$v*3E$Tm<>ImF=uu zJfCPNT#G=uujh~OkIFapF^!>W7+ooD^gl~;I-)UDoZJ|mEb(sFNY|js^=x%j$2W%I ziMpZYcZl}@kA&A;4u$J$^EeEYqj@0wPZ}=^jh*ONhQA7HVly3DPFF_JoBhdRG5tH! z-1ebstAq4scI3Zo)pz2of6?bJtUGcXY~2ng)3_%){2goZHS&G|uro{8uK4XjmidbR zPii}tjucw!`^)b{558j~KNa_;rB&?a4s7Jbp0ge8-m(B3VNcn+P=3tlo!mm_go4uw z{Y$#g`VY7$Ck@E6stA4r_J&R;D_GUpEG+@EB=$=vFCT3r&l zFHQcBrMr)_ddeRFeh@~&AdKgWFbIQ|sC)M!43a?z;Ua`EYr`O1B&lR1nvz_EK^RJ= zntQtlc^-se!)0T~^DM2MwXEO!-1+_Sd7bk;-}CT!{(QdY`&9mZ@Eg-z&rg+C-6jva zGgbcY!#2hZc*I`KgJ6yv$z1jKr95+=3Y`z6Lbr26p3?rT_}2==!kT4bUc0qEO@&q8 z$(eqYSFQEu^8KXtO+14W_Z7Cccd?T^Xh(TQLhRjE-n5+@O55~3>^;=Dr?s~nN&SD- z@`&A?+Y5-#r#hF_-m1NOH}}KT_u8{3*SMm;{SSTHKp*|P^`9;u>Mh^cT~3iUc029; zjoH!Idi{#VZl~Ws{a%wpJ#(Oba*-Y7B&!GY+{^mFx%f=ZV$cWFnkSf}x7=xWv}}l` zQ#ZBVhVr#O@LS)WRd4y-dhl9Tz5>p!kmGiOTJIfx*s>rylsoEvnUnDn{(CEbXVKJrOv;~9^SG33i?a$>R(QU zZRld@2{{xPr|;+mYz1CTj)&9vXb&ste>2^W-_~q2=XcMs6>BuN(QorMzL*OAmeXJJ zw<|}PxA=nm&bi7w9aq-rv*Hzay#;4$_tLjbpEruu2d!X?zB%iUvsU~kT-{9kK-WNY zRax^led2q?ao;r7N11m4XaLI!a!2Fq)Eo5~g3k-ymOFys>hYQRiEvv1kD|Vv>~9qw zb%Acm5U+W5WjEx{jbp}rZpR)OuEuhw@@Ybz_Z zHczE-0WI$3mE^IdbNRtx{M;#W+S45$q>T6J#)5PBQs3n(zQeD!99Z5TYhNsPwO0|} zlWW?c5IXydjr+>8l-1i5%HN61RH(00@J+jd?>z9=|CHO>ch9!--;Ww^@2s?D-t%d3 zPtZCSx}JSD8R|ZR%W6LPSM^SKJPDuO;C9`TQ0gxazRw)4l{>B5c&J?9WNV*U2;Juu zLfr*oPNop5j)m7C=k_U-|Ib#DF8Fq+Hqda0{sZ*cQEs`uK3~eQm%u0HEs>x_@oPAJk zWByT~<{>#_GaBbxd#OC=1;=^wEY$Xld91tQaX9L`%zSZgt`e>h@8#Fw*}3>|oca(r z4Ag)3f;}SgBF6^wRve?xDPr)Y@}TkNor33$*0~dnP4LK}^C@&#H-0bTw~{>UD|z@o z#CFio37>DB@3N;Nx9j^q>#ZUG`vX6^wf)=L+UBk$Us*>!vaZ}&4l!Z9p4|GV-f|?+ zwZ7-nH;@li%75e_tK>-8UF4yA$w>#uI}elt$$Q2n<+`9!{QKdwbBB+ph5Iw>12+lU!K27>rf#+5wFTIiDP^4h?l%FAeST zy7U%H!!BTwdcUpYk>IN><&hw*ZJ2Xoz=n?3F{VX%cwc!LzFa6ruE57$cwGAfUVcZ0 ztK?kokqw>bezxFWh|Vc{kyX^01Rd>1UwhH1YI2SLaEt#-iudMf>&fIIeaT0ArHKlLNDWn52R2+p*hKGX4JPz}<~f99EiYX|#> z7r(KkvbVM!oZA45Qa=^6FY5Wv*Gu{&?2SeL(!{4c!>24)zAL|bpKtjD{K)65%ZF~u zr|++pQxo6EUPfdj?ez$Epe?BecJ1D8pd{rvcoeqxXSO1*y|3>krh7aB+ z6*>+~`QKB@vmgBK`Huh6)4$>dF$UCJqsxyvd;S{?=We5Pb^Tc`WSp7#(xTrl66<5LiKm4Q2TFj;&;CPmy~Dltn+%x zV=4AK=7~4=n`@>y&@&G-smEL)_mG%s-A0gWmPf*)?*s5vX6NdsT%JSAy-Kh`+p?$3 z(PnLNFT9H%aE#BN#cx*j`5#=?k@LvU&e%Zyv*Dk^h4PxljqRCjYX3}r+UEEhc}~Mx za>D<>wG(b1!ts?Je5>G_i0k1^u>lTeS?6RlAM5V zum<@)M^Emh3%=!;SeFj$p>2QX4pbfvPE`Ms_J4_WZLT9g*0a+&{Srqxcee5x*9JGZ zRsf}Oj_v=%e?yecSHDatcBc1HuBH6ddIOUFYngOE-2AVa<74=h>>qv919ji{hshdv zyB^%vAxk<~y{Y4!91oxmXlq1c^C{ZsNG)BejK}n?;~4oBJ+0AJ1!4}6JKlL^Q#?=i z;`dr|jx%(u=@RFz(tf>s<|cfcET@@4U&%aPk0c(~_euKl4BZ1$o+3ZT*?;#k9n#+Un!JU+&ZDDk%9_{B6WjEAL;o&ig|Wl6 z#diyb7*{FRnhVCOcf5!;`t%z-#?rxFaGZM=UA&c@jD_GhjRLEnneztn58ty7TXn?b_t%`Y`*4wtr|_&v8FF#_rnskX?K(=~h0( zdp2QcJ|u3nC;uRLDIZEd%VV}Gl>bfA&Y#uS@@t0{%Kz7`-<$80mt;0`yk4Q_y&(PL zJ)HQh>0Fz8EcX5~GxEOo0oKvJX`BCn(z#0Op6Pn?cJw?>hn@#3&_riSAJCz<)!XRP zLuj1_*9Pr}YTMAbEPOX^^Nj^-jI!QDeszwym-4fpAeuK7=#tu++;D>+K6kTIS-g!9CcMpFOi zRNn?(-kDF&N0;Z;;`{W$`||Obui~5Pjo^QS{9}b|D$O<2@rlZ_!EWlmx!-X$zyEYw zD88rkot<=BTlrr(ncd)059irvgmdnDuok}eCWpS{u^s*=vU|-&!Yr=jSD!ozU>*ce)u%roG;+h zzl|g3u8qYsYo-T?cS8#0|Ccn4R$g2Xca)>#kY|al$}W&Ojcy#Hq&po$L7lwrXnB^g zF;^`r2M#Bv^NqjU@i_Y=6U6H~?9bjO7i^JdK5xuh@~98d{i*o-xxDgA{eF;}{kss} zl4t!Yr#ebLb)&p$C3r!;&}@%toLpi!Xx-GF(MEEiKKjY8E>V9{j@4&lW0eW;g|?~6 zWy*p2Rhp+L=g8UPc>oOlqY$S20;g}u;O}z0FXRYc$qgKr;4(rP^TPPwwbgIy3+Kjm z@_9$j@g_T3j^E?U`{D$r! zVBE*%dRIR4h8*N&a(D@kKodTVYm=)kk{c-pzaaNnX6~ihTIKD}!e_oQPZz@YC-ClJ zIyA>T)8Txp`ESzqTJv3smW;K@t$ly^@1Si9_->+oBYD;a+SydyZ}f@1C)iNb(ZrSX zZf`pGDSf(&e%(QjJOhz_$?@$V{a=t{@yj=dx^- zJ+@2-abDL@xu@u0D_vX!9?AQ6skT2`>q~2F0z7k(W1pE>?DTJ*JK9Km8NeT(p7I|* ze)n!Z`e8n_)$ww^dxf@@sn8&gD19O>e8yLURbYg+`j7eVcZ`3D|9?(iFb~WXPwsI% zjenlZSKpEf%{TJz*PHihF>9#Cb8o_I6P$C$6VV#Zk|Ws^N4&%+r$UWdA}S)pQ_oZ@Ee-4)1ALlY%#tT zRKabC^0(X304l)HM)T`4Rty|sTq2hW8FN+PM<==lps(Y3@#r<@+pW=I-V*x$ZvD^2 zR*+He`ww|nr#SZ|T(m96x8Wbc&6ts|JNJ_LmYRPt8W!Mj3mVKn8~(rDt6#(q&1v+< zdsOXLDlfM7nd&E*Q|wP)h*u40alQdh<3C+;csd#ktjEhya2sx(!^P1g*$vj7Myqo9 zUe0f)eKY*s#2gzrUJLG@Cq368-b_e_>>>R2*7RhPWJv6!l*6QV;luY(9;vK%UR+8% zqVEF7OYM)orR^PcF)A%S)x6=@xo}4^(pOv-I2!7jr88;+0~poT6}MK3#_^8o@9>K=$=bDE_B>@Tkg(_2s<>r7WRi47?vra!UTAvb{=t$UT@%ix_+-w!VQd^Qbs8C=cRl{`)vNbNgPn!M~KJ9RO0&b0L z^;YHN9@|f|)%cyd@Y!JRFo1&w`*syO``mZPiY=8B;Hqqy3}14qe1zQD zYj^-nIp>}cqu$m2OTPTQrqP>{d!i8PYYL(3P%-sn@*hnn8ssWBIi4bh-&F|HACwn7 zBQ_Vr=$FLnR|{dl>-G=cq(klCEjqK@JkJ+GXRAEoDd!(4gyHuU!pNC&4RcJKu0BId zpKYxN#C7N6cRR}8Up9Z^L-xQP*T*`;pA+X7nSY77iu%6-2kQ*%D3qVeUjBuCUxKd- zq3H+x|0NIkO^zVn3HGYm*S7y-k1BpA`VINisLkvX*_Rp$Hc@YvSH(PQ8+p?lIn%y! zuqNX!G`{)2=2?yYZ{#^Et@}p7ciz$PY@z(_>i9?H5D(+i+=Aye3!!EXTa@l0IJAJ(WYYSMxmMuGhsM3n<{igxwv7XI>TU1h`+MlY z)8YCre+`YG+W0BTlC|Trg;{dwc#`az$(_t1o$((t@!S6+EMy&1Goh;b={MAnx4|vm=k3`V_Q43asOwG{~Jv|M9;Tp z2UjLN1Dou5kB5ykt`s}|&h9@FA76C-akg<+Prvm3O4l)ADmxjh{F$9x2)5#*@*w_u z=$~LZSk7l< zoW`GDk_s)?iXY=s<(z29H2(f>erSe%%C0-zd(jr-K32{uN#m@M98xF-`qRZJ+T;z4;gUM0yW? za38oFAod+%?xRz#<5K=vB<^S%=zQzW{8TmE`ojTqJ08JT#vG&(tySw9Yrf__=oNn^ zZlNvCy`#3B)OT=xYx8btUS(;U9{x0$qj@uJ8(QDk+D&`r&2F!5Yz3&%zuozG?>2|- z;#*|51RZnGcb?DpG}*^YFHZjIQEo;hyXv{3#R zRp!6^+)A*Bj`4%>Im)oVv45jqCxBq@@mg_Y6Y?EtEqtt;j?YbaoWoBsqCMtI|44dw zmV7rCr_tN7YY)#F)LVCf`<~jt2z<*$`uocNHbFOfo6w&#F6+322NUtK3$0z>qw9S% zl5@s-@xP>9)^DFews%|eUdQ+8)2v(sKk=7>^wRC zQ*?E{xfYtURbI42{{p>v!MT@GVff2E*Cg@&Td#M`+u{1+Q)5?wujmNq`U0$!OTX{@ z+o|#%Q?D20Z;Q+=Yje9ABr;Iq;;PRsF2J2HcjC3;q;`p?yC**h@Ls@dF}b>)C(#Uv;bS>c7sDR~?3=64c9CV2X9Zm@ z(%%j`USVv*dgxf2jMstFn$G>ldh{W@r+mR$&%%wKl;BvTD_!rZ%eUjVuDalqfm`%l zala*fIM~COjg|l6XI|u+9^-2Y;CI)6JLrFac|bsC_8{f4+Ac8WddD{@K|1ncsyZ8~ zw0`DQ{n$+le2P(@T9y1&<(KpX|GL-519lteVBCw#D3`Oo$5d zdL}!kZ)2yJ_ZIp1P2@@sYcDhJS@?f69QS1-TPypRmyI;y_XvD%Wh-^7(H`}lTqmMs z#J2FN(U-nYG&XUZwNF9Y`QRGo=y!qF;i(UXbz zG+6g9WPUCjPI7!0-0-EyUrnS-EnRs3A->{w3%@<=)iRk!KhA^8aJ1H!6g#?fI>}3w}>p2n|O$KDiKb=M+Ni#Ra-u z@NHV{=%$Ih^XcLKuC7<3scT*~1FucelER z6hh_Ug-~ye%44iIOdoxV%6J^#k#9P-P=1eV;E9D$ae}@_7eZ@VT;EUMYB>X3NAs`o z9jwM3;JvG{dm2|`z5&J_RB$gv`*3aWX}*kahUd7O;Bl)trpZ(8l}kP%_jnQ=&uCwO zrf1>35dO+3^WpN8{OM71-*1j4xsGwA+tkg`e1mZp7Q*r);b#4c-st=!AG%uPwzuR% zCY|@aUHpyLC%=mC3HPd+#P%Cqk4%s!|I2sgwkL-{WHLHm{%&mLYh?0YZJV0QoTCTA z^-y%8Kko0Eg zGZt_Dg4dV8|03<@lJlu($N!om(2}(7KKR{FpT7F8Wi9b7d@63OK+~)6o1YJjcRBv6 z_M^aF03C@9m22fg`e*dod(EDqoQdu}gZL=0F})ndzdR_0x*kt#$$uV|47qX2nM%H^ zMQrK%nm=2cEp5);cKv@}Fo>TR%>P9g$nWo+@=tE|u|X z8?q65_+cG5yzcwRyTR``G-S|lmhv2YK3m%h z8(lx|nX`PT&(f7?`SQOm6K!~m=iO`4+e)&d=asvW57|^60LUrs{dSRA4%D)(>Oa%< z{n^I8Kwg&whud*Kh(ZN4-G+6&~^ID_B zS{0*>J;&N-X{U?vpNr{hTw@p;-|Jm4#T<9SkA7FqEtJ2rk$oDD^R=c^#!rXyWMkmpopB!BHM?7X6KnlW<{#quGx&Ww-K`@7dkUd~ ztluZ2{mJoS`Y9JG-9wfS(=qZ4d~VFia^h;3txYT}o$UNTK(C9d#nk7F?+@HxF5X~H zIvD;#56L^djdc#7b9AtMB0n)(`8a)qN8qE=^VFXLi|ED6;BEU8uj~K3zR&6N1RwKY z4}?ef^?Sih&J8y91?#w{6|P}xF}5e+c{7-Y7WP&7cldn|{t5RV(e@4eztz4P4gY0> zzdHUJ9rA~E`kZ(`eUkC=hL{%=KQZsE==v0o`m&2>K(v$i|ANPWZ}4UNz~LeF)vldt z;P5z`>1FHz<`@Q#KPP+kh!*e#JDaN(zK8LNKk1YtfVS>B*+# zz8zmkkGuCHSNh)09%?~+KPKvW16^+yBhp*b0b}An*3)Dh@G?CU569xu{*JrY`Qh;V z-=H#|iYK|wnFg=b75eKD0>w&4za6rm8 zuAJM0U)n|cPN~q5NR{8K>DoLM21XzC2bw=c|8wS@il4`UzK)lp-*sNt9xneCtD_&f zG4CA(xRP;VDcZ@s_&06%5Z^!U?!`9;di)*!yz4xDs3ZT(U(vNGs4J`Uafr`8m~pibs?RY;P^&) zHfT`q2O6`f5T8$2aZ{@NoZzV2Oq^rBoSaNqagRBh@CXbA6Yt{NZFpqqXG<`QSCF&;=%5g{Dijo$mNZcF>#}BOk&mcV@fhD&xH5Uo%y|E1eUwvU>pf;f7R?ZEYoX*iXpb z0q%y=wctCv_=@dKWJk~I`-gH%dNBZQhxE*oILq-RfR1Hu)jrvpw>T&Eq{nJIMY)f) z*kL#h9A$sg-bL|$=07-Dj;)om`GrOJ`;KEe9iMmZiaw=;PoME0A0$KNht50K-ic@Q zuEgKeeXJcXTbAhi3>opAnR}HJoIeI^o($O{dUm(gzG%tGm$p$J4jSc6X*BQS{8#+R zAoE|6gq!&vQ@&xYuay5K@Ab%$-A&w;EdNA)DKnW+wbShm_uRD%j zL|Zs0#b2v$M;|w(|LfAj-{AcN_#zqVJIs&fMl_W2@J2(%+BNsVdy@JU+DC#T(3evF z3GA)DyK(Bd;DF=-x;qQ z{FT0+r@Zs%x}-z@xAA0|G0&yK^vBJ?hU0h4o7s502bYFN*clsP?+jz~E8<)65p8YC_vz3#bmJ$qcRBxWyjYtIHo}9g z;nJ^X&FF7i4^baVzGN9?*b1lkotjQIof$)B=aVHHA2>q&Sh9z2f^X^GpDw_=ZYTWX zW771bWUXl5B|05WRu{Kpyb7JG)(+C zqri{Jzi*KH+*%0Lx3T%#3+27Zw!744%7KNtMVtPpCpEQH4O z3;vS<@7MF8=HYz#f9vsDFcjGJbn*5UcJve5-il22ML)d_r;**M_)l)x!^!XvZTsU( zKM-??hw$bQz$UX>G}zw8p34$d|-i zJ3jYP_oP_op`S@?zt5`7Z~?nqs$Wr zGH2p#0T;6`+emy1py15iUY@f(qq z+AGHCcM&}}jm+!t;V85pX0DVm^rve#_X z)Lfvs*7`%p{}Am-bv&*HM|&!Eq>DBhKUL z)kHehP1pL;$M_%9KJ>E+w5tCGYQaD{IY!@6#>97|wxNd&*O=eD?dRwV*M|M!y_NNU z&-?!*xGx{FXXX7zflMnFd*7No=~;r^#c!0>yhjFNM&-NY`bv*K$<86aar$hjjPd?u zx^^~ue2Tt(n=jj8_a5j$e=8o4PFdc2$T5fgj{Cp_x zqy2kv*Zs)wE!~|Ze&*QC`bqmAXt^1^d|n-&Q%6^0zFoI|s{H(Y?N0pE-l@=VpyPv6 zp>+s9cSNduuP#w54ye~2!hi8)od>1Lv8`h-{%x0(eUMZbEoL>Wohrw{`bE~8il=p; zf}Y<=zenQX5V-xlEoAqG>$&;R2=8z|niiq8U40c=CWdpP}|-*r2ncO$%6gFSwM-Znhs1B)jDc!ej$kO}rVwk7v^eu~`dKTdiF zEmhuM%#d}IbKEyg)KPweF&eo=k@7QNfR@SA;&t?uBq%M>lVgD*r1c z*PRSq|6n&CDA`XtJ8Jys|MlxzYyYh6x1Rq!=X#|=8f4Zqhq7{AI=3F(spzQ}wY8fs z$A6|jVVCdslr3K-%dt79f7Rx2+%Z+&gQJJ`7a+WW()S_w*^X*W3R z!5;R}haJ?^;=@UDkqjIz2Ii}skg^xA&n)-A9yI4XxzT*E2rfmr&P#B81rE#Q3Lw6> z)Bkz%E%EHmLb$hB=TW)P{rcadFFG30)_6HM)%t0)z@>6Cc&!2dRrviHza=J>|IO8m zUoDPb#Cx$RfuFemj}6%Gwq%Z`s+5vko8UbH{ey2vh3ZK?ya{+zY_eAj|G6{eZ1~rC zyS{LkmnFjnv|XbAnfN*kf0A(D%RC9kmE;Sjcn>T3($bS~x)%;J_}4~llfZcX;c{)~ zgERCw7hJFX)+C<=cm5-{lI;1X>fYAb6s>$rVplS+Zu70$7st{`Sc7A(4Z2dw=tj_zN82lC}XNogp^W|^-WY6YfHsqr| zX3qoI@RfKZ2k9d7^y*}&AlK%t@SHEMqL)Q_o8Fha_M{v56!$9Q9zteA`a?Ep_LM0a zdl&u>!>14M$@>g3c4V*0yU&YH-|!=A@ktx;K?ywgQ^7r6_`-epsRh1*|2b0~bfKx` zM179ZcW}YI9reu%p~Lv%SLS;j9n;NOXU=$S_iw)GVt%)pyyQWd$LR)I5?}C9|3=$7 zozg_4*3Onw#-pJsQ*K9t-167 z#J#=NhvhDhkTn?CZ2#{udNI$OPtkz|>Wk=0(VDO5^QPwz-XY)j<61mVb#>O?^5x*7TrNl_8|D}sO*i7PH}XR zJY|aVNc{etOwYyhdE(jSbm-L{J&OB-=@{#d0GomB#Kt}Fk$f^ShRim{TX@M%s<*_W z0c--_N@L_UH@QxLMvGig(+~&jS73EvXcwaE?+ux-Q=V%M%Yltn|>esU=khn(u9Oc3KY?BY!b(CvrlbfU;Z1Zk5h|ff% zJ;OB~U)Hx?+;e=<+MWlG`D3=z@jGCydabfizj$xO-hI5kQhc}#&y{h{#GKh?$5X(1 zpy>K1p}+Tn;=ADKI|i5cdy7A-%SEy!^paEY9`${ki~E>pEj|XnXg^ixKxdAv7RCJZ z)A{l@Su-ExL*pvG<0rKJPJX@UG@WSKn9gik2o1_AWx6k2+Jvq-UcLccUX#wzo042P z`;_tKEaFqP*4*-(aHciwf5d+jm9}Mf7qHvglD_-Lc3YFa6~cb`p|17B!%f-iR^mfH zHoIFYwCs@z+31JVI}@qU-B)`r{bI~ooGkytFTNL$eGQ$}bhJe-Rby?o9IqQ|mZ9Zy z$N%x4*>%tZ@92-3cVo+Yq6ftMuxoev2&%O&-_>zHdbTxNKbSQhtX&EX_mLLbw&sxjb3^hh6(C+Lk%*Tz#YZ<<1?i9FX*^DA*co zj~DylORe_Pm3(w!l79CZGhe-3{a?w@x_-*D{&-R?S2zeSYWcY1Q=#&7_0fFx6{)c7 zCV9Xle*AVZ_%3;X7~C)$+-o27KKGR8;^V{o{iFQ;<6`$baU1kfU(sxC=j-)dIXxAY zo2UK;{VpSyvyD4W{ZM`OH-1;^i3=TYihIq8U*rq&ug2f;fs8sg1Y3w7+mn~R@!ojm zV0hGtGv~nfD)UU{r)R;{x~msj|3&Z)oIca%TkCiGp11d;KJM*3bMH{qS9xcATkpYp z$9%Z=%Ex%8{8un_r$2{2Agit2d*!pX^!;V;T21nvRVjGa{GZk{=dw5K@h-AA^bkHy zL(BE(7>NeFtfY5c|D}holLuJ^yf592o+kXyk!cGk_MET$n{(fZoog9eNl(dS;*MzD z!#aDRk-Vl4D8#_&o2*iD+v`u|<5f zW)r;9YrvZg#l6VDFO~20c&4X#I6a>X#KJm0JoBTy;dR-;CWSC@^FsL@fR+k=fZgYQ zU=QrR^r&*GzGJ~r>f7=G-|}0xv6F-NH9jsIuaS1g%OO1w4x`gYu-(J0KUC>BvzPj| z>V4Rh{>9sjIi8<8#awU;zx=-s`?vCEZQmhW5;v59ZI2VeNd%G*>K z#nb4V0Ps7;?QkmGwzpn3AL`T6+1`oOKkR(@~9{`_Lv@ll1)a4fkFQ$LctQ-#p7 zulmm9&hMw!a@-03ck<=u*}I-mKAsPm2hedl{I3S1Kn6Y5YPrw3rPlnLe*bbUyLKT| zY-By_ma64Lg9_#Sq5AXq;cE(E_C#w=(|(WkoV@5E{pNW-V4=0;H1Ru0RiA4AUcT^O z|A_15nN-iF)_68G;~CVKJ&!uUJH*d;r}zrrm3hE>$7g`Yyhl7-d;D(AhMrSx@ovxr z?+ab#y`cfW+8_F-c{|blH~g^1?4lgw8GD-#;>&dVnG+meQ3xI9;?Ic%J`n6J?rou5 z!eT!kZD=r_5H)l0$(?_4NNA4``A*-VN}xpLzRE zfjjTWekKDSJlXn}Pc^dxYSz_a*?aA2l z=;deD?Tf^`E6ky<@43dPN|xU*t-P5o&SWe1BtvOD-AvI%_dmk#`pYR3Yno?>HP}mw zSY3RPu6#+4_?5(FXrh5d~$WA4f~WHzQt{Bzyg?x|WMQA1WkdvvoJ z4oz@bb|)F$$5xxk6wU*mbnWmseSX-pH#z*G7xifGx}JW~fp$DD9R%-Pjl=s|I-PsJ z$F{pB!dXm+_y5Bk;CTMLH(bV%_fk3CI&iDuYew=x*<|^7f_ROYIVI`37!4aH%iqLL zzd-hjjd@gwmase6oS%!&s}%8rKQFF_Ut8qM-^|VZNr_kCH|OQT@tw~wPyZXOy&Ug$ zGJk`)AGYRe^z8FwX!%atk9Y`5Kf_^-l=t{jp}DWPTgA6;p0avI zMuGT`jlH~=K1!e7Ys#N~G55D}gA)AS$ER1#SFrD8{-MwGi{AM`=qoclc$ z#{CO_oL~7Re$cgqalKw6v%LA|>-RAE;%@^vHPMHrBlW?*nlkg~a`QBHv#USK^*~?mDy{11ixv2c35s(;tt!(2DQ%GuZi3e&!#^kf<;} z8&2#D_9rj2R}3Nl!^p8V6-FPeZ791{Z*i{nKzdaJFSyljt*wtT(8+({-B0HH#+>i) zyX4$8r)RA&9sW($e84$Ax?K*|C8pKHwmY3`#CtwE-s?&8)5U$%H&AxK_X0FO%2!t8 zd-8$j$@Y8S@>x&(*t!rJb{8`a5YN&DagaYgst_uM7krPE4?c%aKfe$du-Imb+MOf8hZ z;nM)m#EH(qsR*~Y=abzHF55fa0&RUAZw9t0_!q17_9~R`^Hraqet{Tu9h@fM#S}Tq zoz^sW1$>*qK=9oxe9_j9j?s6+)2j)I=!5bcMpdip6Iy7abLO_@*(Z|qbLr> zdSYFDwo(3BzcZZ|+v7We^^fS+Vs5q@>veOSYogzG(&lh#*80EMyR5*6 zDzxKo%tgBD$bde@ck4TDlGBjaGJGtN--svdNiQgb*g4ct#1ed#rf|D1f<;klTO zJqTBNl{*Ebz;5VV6D{|m?Gy5j&*(Pt8!hDSUSj&L9*Fyx@%xUsqm!QZ=YMXK=S)+- zs|UJnPkJ88`Fc7sC>g@0N$*q6_$d)7H|DNG})tH|e6aG?5T=vfN)4!GCDJwDI2g8tT7lg#3~ zs+lN9@h#1U;=kfbm#JS4&OrYmU@P^v^xqC7&?$aq{+ukwwDjxAknSz!?8T=aoeC}I z+PAqu?7Bk^bYCircsx~ppJtoqm2YVOK3hoGUf%jzyjkQ)W6YMSET$;OkCMgP9&eKk38NMPang}HaPBw52vG}7N9?{ z!_XVu^59&OY^EoDr^s_$eavxyHAmS?xY-`uovBdFrOMv|obntT@+sfc=*hSGzXv~f zH^8~;YkAi{(D}K(AH(xq`3c&VzmoDje6bd-bKB&Ut*J0zzB%z=!ToZ->F}N){{6*V zCuvWadk;L?HWd;Z!(%;T*Aff=M^ApGFaJrF>s{(KU*q@Nbn037Kj0Y6ac?6rL0bgz zEjLm7P09=K;xOm7Fh)KTK5#A9mwnCz&*8;#C3%L=lq>N|49~9Vcqkst2Wx`tz@F#Y zZ(HJdb{TD6}&xct09_E~!HlDUh@CzX#4wy*45Y>VJJBK?PQ06eaM7oNAwRu`WM z!JayJn(oLG;@)!hD|Yd3alKb6ls3VK>Qp&bNS`QgA)oj@P9?d=_Xt;IQ+x~lPbQ0L z`p&|~2U21Dqj>%l9^?7SMc_sJf0IsrNRP;B^_Rwx+elDPj>}i+qkY~=bG>goU5o#3 zi88Dr_tt{*bYK}-j#*-kh4geD+0nzeXIC}DTDQ|>xO81kKTo4a2g7wY^K2xCK~LrT zQUxyCfib1vt4eww|Q@%;Hka*$fSe+NGDr@TG5e0iVFra;Jk0+*rq$5z_uTltw?pC!kIZ9XxFpKtTkmHD!dj{7l{b3n|6@HjWkm@}2@=R=stUhUzOE<*DH zGNXqB`O5CS==Py>cO-vv4c(nWhuO}uxpaeZ48E1sdxPxE_@o9TJ8^8@Z=Gi*=nK41QEo;94yj)2c`+SBU0TYC$6hq;=~S^6ChSHs~;YkhzY zaW?$|nx4pqE;&$LQ$DoZv+7zkDOdCKF1cH|10gHZ5uMFqe z-QGD4#;zsDT-SUX(Npqk-CK!g>0#!==eiTs<#Mg+-5@@{)G!ooN3elG##OWB&Gkip zlvz!b;ZyiaM=~Ro1L*Uv+N#ulpzAGdJ?|?w)8S5jZ4Y`C_oB9nF0IJMn@X8~;xC)`RLxh;Bf&uh%ZrW!XNxam#V@g~W&)eLEft!?w)kJ& z7~`flro!B*sn9)%{oRO`%iw>yIcm}KC;fKThOWkcq3K;bcna-zqU)Mu`CH@ZtE_#k z<4cpC=f$VX0pFdtFBxhI`Wn;nF}%KU{ukvB@caS~wU_@Vir>XYlRf*Ld}-+%Z~)lH z{E>f0ng0akNd274UTC~E0^g8^N4yqqzt=Im0=Z>ghU16UT&;b*R2Z=}x_3#@1+XVM z4Z@Ejz%i*X5M+kQ2To82%kiuJcrrXT6)KOylf&>pE>%%uj)WX-BkkRAe*=EjOxM9l zo)VVu-RtE;rjA^0AZN14Jf9EQm3cW2`)8l=-L?1)y?7lT-yIu0hOMxr2GFS9auFY* z%w4A6IAh2@+~PWAlD+2J=*TqJ8+W@tpYHrr=jliD73|||^BhGt`qQUMW7t|~1^jmD ze6TY-UT$-pDPErh*M4|23;tiBV~dn$3gtQET{Di%=|-Kcl-%{ zeXHMU`Di!4{x5v}L4NbOeDz&ARitN6xmS6=@pq&`yBLtEGZxR&YtpkKSwx-q6Q0@2 ziTh@0*EpG=Z2*~G0jGz^jqGaRHL*82?PSjVm9=maSL#NSO+8s$WevJKkgkpg0aSs$ zH`x=N;CPA>4z={V@=kr!vfWX+6a5i~LKS(l|IUg+sL?0x zWweMTF}5f8zOFmf8_Y4v+~<=0NN_k^I8^&#O8OZt(RZ@-tl6^En0NWkzrp8I=VJWp zw7z-UH?~ecdU-%0R1SmBIdHj@e*U!(2GYCkdcODqea@%P=Yb3zJx#xn^jQpS9jed4 za6V9t`07~l=LS5w5*YFj8>)_Mg43DYst=0A}UM=OX&!I2f@{Voj zN=-5p4@rjf2*BUu_@D9~+!XB*<|ISQLT$^Fp6A!+L-3xq*U0ci&`QUiFpukmn0r>< zVa#OnOw%94fBVMwu!^oR%HL=F#rm%O;yvvInI|sDdj}bg_?u2S?yYr4ICVwaoH z=N;+gzVtNB57F7;$^UN`Y&Ul%pRR1A&zU1rq4Qwp4lr&PZEU=GePh<9+w3Y4b-RL{ z{AT^n@L&l&9}kBO;4pJgIacM4C5s!$;$Czvqubr?-EL1052FwK)v^iV@eF$Lh}>bm z`?GmD#mn-A*9&1f826fUFOhkH>|5zci#?@>j5Vfe5?%f)xgTYYgz^VEIMq7S<)K?9 z%im$>+5wIy_vD5Br}57@zIz@zTG{T4e9x=!f7A8aTYSqK?Du8o7V$?9@j;XMspIiv zy;M(J@+^D&KT&+=u$diI9zs7)lE;k}SFeWuE%Kg5^}G4dS@wqR>B*t{+@>RE@0G*w>R3EH$~n4I+*`R79<8apoqkQHbNkan*WKms`&{ap zU=4ar*E4tJ%l~NVVw)}h&WC~Pz?EN^$QMQ55U(v_+^MQz`ylM%{3iTTq~S66){yHE zv9W@V-9XzO4AkC$!RqiR(Ll5>0Ed z^QJb>B=i4ovgrzXM~+oVay*`$X2|qH@~dZ;$`U za1lL0L&aX~?Zj01-eJGn`Pcj8(eoTX>za14`;~3-5M_d2YJHCE7TEK7+J4Vd@+$qt zMR}3is)tjdi`>S8B3ahV((exKx1`GVmSgTy8p2-pB=;)w^-{8z(%bm7m<`RLE0^F` zZ#=&R&pP<Fmz* zkY3gtMsBC`t=I6|Q_1{3vTPA=mO8gwOnOt^{I>Yi?l^+_IBl)3(Sui94=H9)3zfk^PYVi^4JmC8HUTrg+Zxk~o>pMYio~1)qz$@Ac9Gd7;B5jQtK5}z) z_FkF8H##IK57`aKsDaG*!8&}4dmQn3!%`bwJPdAEKT$h7&7OiUopN@2GhrvPJINd| zj@_et5Zos|&vZ;)m3II#i_h(4@h@D4U#EjK{w45o6XllX*n(`yv9y0f%jKhVAg z+0dmLu`I@@BA*;{;M_y#pQ7KX0H4yHM+wJ*;dFf)_Ed}B;rvi9ygL(*$e`;*b9`cr zPHUMfJ|`USpTze=O7DYZ;2CrC|8Xy^g&t(dCy~*%yZ+H%+I!1htF$kkeocHCjE@u8 z$1}KYr}*_#iw}*7FPT8PiIATGrC1lYY^u>~r|?7(UHp zpEo8$=DcKipEroZbvLPB<^1`|WAv@I-Wra-fCGrnr^n|QvOhU?|0zsXuTlCo6X!zb zz}NUew=zef>3B3H(YvSPeUt;W?XOhN?E^1P3Z&Ye%8*mt9unf z7x{#L>HEF&WY)4KTVGf1v>~}|;oNrod4lckz~*-113YrF zyOQPa@};*=iuu+|^Vi?v=UM2ci}AU;Zgh86iCbHX&1j47M7OS22%|T`5A=4(wYtz> z%g?m@j+TXJO{39XL}^nxa1XiDh2>kZvqRX`XfbHKdthSAsM&CP2)^P_{GV2}m^EMl z+Z3N#o^Y;NEP6oyIqLVge>FqDyTmACm)%O=ZZaPpgmckW2L|KEPWZDf{p&#A+@yQw z=xs$?yr=!B=lymg`%B??cfRKxB{Is9e|+XI=DqQm!1WwmYgfmm+4L3 z^dnwZ7r#T}C*;+xeBSY+fGkTlkmWh*Cz^98KJM)NSNuV|Hk%B#1o7LtkGN-b8ocbo z7ym)8E0S{JWcgkHn4{L`)R)2k2hZD+eRfxL@oDXHugXjKAUR|&vQJMUcfM@-WHQE+ z(hc~CA619xvj^U=$IREso_`n&N_rQ4kZ(i6Z7%;oztiaI?oaQBp!;+&=&$I#!98*%f6##ex64tQ9FuS5{n~QwBg#99~=G-}S>NxHD(G$87{Zn!M zq<4wvK3mKzfj{2VviA=-hPWQ{?*&Kf`}Dp`&g`ve^#}hrpZ6 znlB{FYxyqn95vOR{4~!W+}V>?OrO+qt(m@(jh{;gj^W$(H*R}!C*O84CBFAmS{L0- z{{0bkxEkGmW$QEHc|Y3|7vnwL%r*F$0_(zk0(?DVkn4qS7r^r|rC2q36L{3n8|y5; zKu&X$b>TDRJ~`5(?ioBy4y}byD!3>165sQNed)L5Qg6wx-jr{>hA!=^m+G^GycWW_ zrQn~|Wc7%92IlFUfnIaYo9sIHW^Fgp_i=pMrG@ghv)WIj&qty!3Gk`4+B#c0znKpR`N7M5i?F(&^EPwYiy$HP@qMiH(_9E|%=;3zkk-nve zkTD(Y9!BQ$y5O`WC< zZuFuOotZIYOlH&RYW(JO>E1%<|F9hRN&7$xoNuEC%jn6gbeTTHf8JLvC+C;x!i%1d z$XVvJa;X@8gh0#Z$`804rD%6d|hbx^|*3^SBsZez`pK~1f>sz_K{_E@e3!P~f zj~`+mSK;qAv&1tJ|?^m zhJPoVj{%-H3Ts*Wda`Yy zUT1m*yywCBR=6Gx=Wh5N3;6l4h-_9^YaZRWNV%7CBc*FAKLaj*Lo{(3ncj}Jht0Fd z`1jDe8l7Z5VsqpXPs3G4?I=ivPw*4_&J&GL(QZ}EVhb{_(;r$D!k1XtsSIkNOE{Q}&~-Tu4$aua;m z-P(uqRrphRDSf>TFRoWMz>yxu_wRC-!1bI|`QB7|5WR-$=yjB@nfFHXM)})oOYe|( zZB14`i=*4HExMQ;PVdg+qb?DPK<)X3&~>`!uM`u~TVyXgGa zY(OlF&sqd_nQbul>2&pIL5Er8NajV zd9mUQyjdHMw*ouk$pOk;l)cD`J_qqO>T`Av^nqOLv#n#0-d*1zN#DU#;%oY5vcZE0 z@q33+zq{_&P6t{*?s07`J$hAo)O?R=pQ-&S{SR~ev9;n}UY>q!oe${*8vX-czMy;^ zI1tWT>azk2FzH~l3C6DdEZjVm-lkx^=|PM(C)Yct)J#Y7s&8u zVS#=RDrY%&ueSMl?<{NkR@=IKeI-5Os~eQHz4*J5ev6I2Tfcg9?ry$2@XbB%L?u6P z6CN*4`kst@tPdP_X6H#b597N>;Kixz?R5H`0VC=6vGg7-Ej#fK>*@coImoiOojLC2 z6W6syBV0b|?FH@UNe`{3-owo9{a4vxmMZCHsxBH=JtB3Hqef@jT3g>mO`jcRp?v_ys+3 zm+W=uc^a&hEZb@Bz-0NIpUhs$gOVYALbB%>0dXii#3qZ{Tpx!2Cg~DA;DZzW*$w|6 zzd2F07ym}~mCn`u#AaVjmcO$W?K{1XI-e2WKMM2Vy$*c;N!RWM+raN6?T^FjdVO97 zKkzT>TE9PBMzHfS>gSqc2weH?u+E_Jw+1su(50DqISV^k?b(#*1M#(kUo0L^*ZIx( z9oUgK@{>2w5wL=;P5cX4@S!b-=}Qlz3}SrD%)zl`s#mG;zjr-S@tI_x58~x$D1rE`_}Yx^k5xp>7! z@VYow{Uq&&X^(NP0#5dXvfqMsu`TX1FQW&Z0St2Rcz?7+kFp2Rn}e;jV;-I4GR(RC z@p+Q|e0pv}^X_lXzwpJ=tTW3RAU+cq^M>?bZE|6OKE!upiWif~0`sC{G<#USBl}DD z@S%7GTOW@Px5_OiqxUv80W#_%*yj{78i6MjcoLs03S?S-ri+Z~r{YC#a2;5xg^!*N_}%!Atra)(U6-g2r>lpg!iWP>p`*Y0 zwyDt6n}1s+4|xFJ>d=JG*^|*#kY~kbqpR>|7`vvQ#}ek1WV{On7HkF~)y z-j^?agAZNo`xpLpO>*r`A2xDbwIRL3m-ZyKIEc5u{W2!6z{*n`_1UxWV-em zT-M@q;g{J*tUzP)Fm#^GC!fjRo`>!+=>4nsauvJ0-1!S#ADpB8EPh#^di+S7;QUZL zIf}nNCRP5%dv`pKPl<8pzSbJoiCZ_OyklvO3F4fxQ(OGjQfsX-)nIL~2ycecxg+W0 z>P4DjUKSgTrJ(#CqAEbR*_9{0))4tX|4!#$Osql(>9#v$UnZ@_qBkn54lXK}d^f;eD zU+1C5?23ks_^R)c<@@F>_?q1UUyH3}Us`_7;znyf`F||kdz@8M{|E4`Qd7bpjD(>i zgwf4J=X4}YMC0D`hz^AiM#8us3e$a%4245zq!D;sCdv(Fzky^pP+o6o zPw}h#iuSIx(gi&eg<8yfLB&>@i#-fdM z5bkS+inS$t@+Vld3pod{1>Y^WkepYzSG<|bRqQ%LN*@($7M>x7eWN0J3h%Plo(r?- zqGAjm7^Uoy^me%VgZTU*e7~!lUhm^oA|O2CWs1nHIZeHncx;mG-9nW|j1Yxk2)+2R)S>22}2 zw>Ae#^;dnSIKHe+mKEe`6uX6Y%adlS$uuYKd5(VhYqN4y|3t&sxHsyEmpADPKIOmF zEfvRU`rMCi-N;X~4N>7%nW&B(vWN56fAG~S%pY#%r&Zq1tv2tNFaJ^Ji`*|uhog!| zj3*CRUzsQGPIHhs=HtqDOYw(^{NM~eeiXmqFSWfhQE@Rl@1Du;w-TNmSHOs{Pfuc= z^i+7egX1soWn4@hE!_m;TiASpxOx!JucNi7c8Gf?`2DN-nQEn0)v)@Knx+C*ygRXJ-$=-xbEgb@=-N4*x9QH}wy6S{?oE z8~aKAv)R=@q00Res!D$DJ8MkJhIdUXYtVJ{Mb6FJ^V!$QP=Rj2|0hH8@3iMuvv=^< zuI$*2-S|hvZfwZDCHuF*$e5bte8&3K;5xo^bE0;q?-%H zL4{-ER`|zWLSDq*i$;p?!{||+vd(lZ_QE=9SU(7RbR;|KXENE3An!n!1f#=TsbC+r z8_s9PvSp<;!Rglc`1F9ZIr3wCy4KtoWgp?&3;6OKaIY#872XI7&xLbk8PA9^QOzFm zI`e_gwawqEA8LpS=g{eu4YpCD%a7@?9etKt>)Q@*C(+%l?7Nh_A6uvI0H1dixBH3d ze(>dR=LxbL1EY@TE5^ApdI;~ugl96@ot$q)2OG)8$AVv^Z=%EC59T%5kBmk74)0o* zw>S12$nQ@Qw^#9VejoN&NQ>uRo+kS$v7Lp0>r(F>fB!kbieAx~?Jr&0<>26(7?OrTRMG z(X}7UPd-q#j?VX%Ud8v1h8gz{$;V|Bup{8cAxQs;5&Gqm0iRR+rTQ-Ze7}@`H$CFo zAU_=h&tY=dU$Np; z$7jhK$4|$zbF$5c!@c8*qxdjCF54dl?9QjRm$GxAwzK-Eg8|j%0oh6VAFj`C_`i8^fQm7O~LSb{GBJY`h&K z&IiCw`VIFX<?>?uC}zOm_l{MWyb3+$cpcleL8<9Yt; zx9L;y@S?a72c@x0{@aZ3-h5S@&M&8bbEfL6$iqI>;x54+Q9Gp1@E@7fC3NtXZ&f?N zgZ;(IG3GL-ij$Mu@TAbZsJRdP*p{BYS0KCInCU_uvV?&cHb<|Se{yaP}?UD;x7j1n(7_c(9SD_=1<9XlpJx({b%7;U#bHvu0+UtimJWl8a3-J*4Uk%Uj!~1C|I!ynAUQdH(Fs*Vh z8%is#lj>vbYwkxjSwH&4ocm|T|BgpvzT-Pz(tlIj+JZKQYvUpMFF!ngf0jOmv7$`^KV{j`VX09~A=~*7N0W zVLEwo-^cy;TH9}V$BJK%p9;&j)9>6N`FAT;?8%4tPM>St56^s``(|)e+xAs z_}1R?{-a-Z%XP^_qxo&3G82ujq4PR^{sO%(ZJV=|UuaAkCI6yKG*uhdzhnL9?@ZLM z%j)QGdk#(gSU=hi-{V&_kmp6ub{D~}PITN0za{i7)r-F3#tX8tVps-?B!uVhii zzlxQ)#uz(B+z!t~m4`a-&FA-UO?$-|K6*SJr?FiLED3nKwYfJwvxDN%gd_3Ac4ZaT zA#e9=crO2X&^qH|u0H`YmXTwHGS9hBdXzm<=J0*^9pB9LB+n51?{1#?J9}RO<6&&# zOZj{wU{~rv=lmr{*7U>nWbNzTaHjj|7qq#Njkm7yGR-l+cD z;_5x`L-b_d!^t>^YzMGiF&pj3rdzY~2J&6cm&{!w_u1KEeb1raocQTUhSA1_tNG|e zIC+rvpW>g@%B_dnC-cKg8=};a>hGwXpI~f_cDB;5`A+t4sW?fj*L2 z_7pyGF}%8*Z(l-}b zcOu)<{9s@49Mi@g>^wi_d!G8JWVLre$W?M0xn^3seS+`v^RhR|B@RX}=l>6|H(m9a z!Pkvf6E1W8BytUvUzV{?AwAq|ZRjqs`zT$hbL#WTJff{D=(#HzMxVR#*%5r?6FxG4 zk6a03?&XJ1^T9Xb(a6ngy4BFAojnBC+JCUro;lZc7#h{ftNKqox}KdU!=mQN>UI+k zcah=XA^s0UzUTPKW@~rb7{_|)dtfF?_j9~AJLx}Xyb1Hm@LqJ`4)kypy*>cXpK9yB zO6-lUf#Eaa_O#+(be!tKXBUfun7Q?B{3Ol3OJK!Q+DA2u`O* zhIOCjGBG_R9&Mh_H2 z-N1%7(Rqqb(Pc#6VgG>QEA-`lDC`-Z>}Gx{=CiNyi4Ucn^?k6mPt<>kOtt1FZ?XGF z^!*OGR-%W+Bp$-|>lG)&qnd%vd#clk@4c*@)A*M4=J1|KeqHMqzJJrjapGqt+3SoGjpAz^e_q2sorm`uN-DK07Q^?Yi7hbWU_7rkA0k6^ zkujUjD`4oFSIGDpU1#{$lk`6i&RynOZ)9$q+n#;*6)$r##uc%XbC2;CySkr#+kNyf z``m^5>Eza{qvD^~U_JT7*MMq#9K;@P9FhND%n*J#;17Feb{!g(+2^V0J9_`zJm3TU z>bvV4{(1<#-_19g-0xJ;LmB!8=Bz^<9K*lpzW+ad9!~O!+%)r_Cg0xn5O4p4UsZG| zt_y4N_#{4-y8n5IPu?jG`DoEq;`AJTPwy>aV8x+q0Kby~2lmJB&f;@>`FklhMBXWM zIF^5@Q#y)X_o0VZ*wg$f8pgMJ!=oq6Iok8%gXnG)KRS&)-0)>Sx3zI(J{qEIE&jfU*^Ar!TAEzt_&UD(%MkO{()|07 zEnB=Va4OmFcAvPMZeD?7d}``T;%%jP<5SIId-z;7olS@QZszUEi?>R8tIOhHDZ9*d zKeH1%o@5Lse|e=8g*{;N>$oHMSr^CC@pUskjc+AsW8G6^G54ywQ#w>zy~I`8dxBm0 z=^$8iB-w}36-t-F2EJLi4V^xtosPz^h1%E~Uu-n_R{Y?x?k+KLFMoZI9T$;>FHBy> zhR+*^_;Gl@I$fWMYWc~8>3rZcvhee&u58=|W_4$KzEO7+-#Ff}SZx_09R}M5>uZ4W z{pm(pTY}Wh?uK@e=eW5P2B}-Ee97V3I8Z;`wAUhjSK+sc4|OH$xAZWEZ8pTB=AFrP zC>%V>7&wNW=q>C8mYv1^^P~@%r-;##6?F1~=e70bKaIwO59#9jcvSQk{Q6tDU(A~} zvBNujGRqG9t;ZelsBWxwjBVi^?`SM~oBs|ML*|Pmzgf?1$G43U7;X5eh zdf{U#o|c(Eh}Rz9#iRO99XA*g?qs7=T-zGjfDtjE+ zv{OfpZp-nN;Tx~=@wIHa&e-)XEP@F=$Wr#Z@_#yRC8z$H^;@Lugs0>7T%v=E#M2IB zxfXx(+;8|CM&nRCl&M^jWwVKkO0ak1hZ9jA<*r)S0jHoe90fA77eq zI^VlAV{Z*uT*a^N;d5|q`O9MR-AuIR3w2st|1aEjZxGf#cd;kwj`kOA{mtCtE%ome z7stUmV^Z`I{s++2r!n84i?K7^uNfD^JEY5}(ETLwcP`tNvvGg6-ii&()e_-d)l;;-=&Or zZK*S!EiuL|a6C=iPEv>5O~cz_u;f_2Izs!-E7h&l&*-k&dkuyp$n+&UJG|> zRLS4dyTzlH9mSr!#&&IKYI{Dto$KxS=4SeQU2HE=cN%?_sm~Xad@;W_`ZPWe<_(Wn zf9S~%JYP)i&-R1(Tqphdt|j#A5?7{Z00d`PQ5Kdj**vBL56+Un)J!wQt$p944$Qg#St=_IJNDJr)(dq^}>{ z{}zhLgUESo-1thyaWLf^_;WV@aGa~OE;Ltc)`{a+VAeZ)XMh{(ZW*S6>(5>1#H?=VmsnX+_vO>}fR zz1Z_Cc`=*)8q0r&p1z75?>1Li%%;zI)>=>Ymz}>2OW%WI&0=A_^bL70d1kc=_C84` z3&>t&>_4CW5@hZ{_HWqGoIJcgmWt@TgstykYcZJJn(ca%j}DqE_~R^mrp;%b%0%5( zx_?;h{sSe*@XK;>LXOJ&$u<-3SEx6#E#7LyQVAR@sb}B$+GpqdzGe6Gv;JgygnjYR zye&KK0Ymr2TW>t>AJ4B5gzq<^!|*-ObyOhUn+`B8?Sua!cHWL2BImD@qZ0kWhex5D z=i}4)a4)_IS5s@~(pb{iUR>{j?}PAnB-u`23pOerO!s(gc@d8zm9^enT#Uc0*brOQ z$I$Ot@u*}1zW7<|3GV6eQ@f|M0Ew;Q7y0OeVq+?QO5#O)q^$Ae|A878|3~A;x^eNT zbWy7xdP(Us+|L#6iHi6@C%nOd@J(0vp0o+S;oFV`KP%puZ}82!p8RZo=>ZvQC;W07 ze80_Rup#VMlRAX_2jSyx^cJ3ej@jd#uC_Lg?SOasEsTkcy`X{<)2Gy#loiAXk5BiSvH)52FilXA{o+_Znf$i^AH%Rzvdtu`8z6)U(Dd@fzNj zD%^t4jW8i2Kka;$^fJ0Ha{X!FG*4CkCpO;$f7&n7XA*_~TQ!N%K4tnA(@h7Hr?^f3 zW%OKt!h2lhVjyKbth|-~{uen9>tbnXG20csM79tw!}J3$!@mmBaH?c?di_T{`fIv- ziATk22L60#?c>*YbpF;ujSKEK%(2h4-|Qnh4~icpX1Sbd~b5^f17=C&$g%T-_`OX0kCp1;=htW-4Et zX8tk*_Mys|8ULqH?k;WKk%{_FmtL#RY5LPnh|d)}@EbhTl^Xy5>G*Q|U9Ijl+PYpp z+D|5xKUKXkeExi8$2*qSbf$3=FX;m_QR_DNgu`K7E!UZU?ZUtAv{o^MKCJoGiG}cd zB3cfj-WVL*7__#SJT^Vxg{ZJdH&VR*l>{109+QmE?DvyOmC7OYe4HLmz!^$NQyt$Nz+4wh$l5fV&Tg z-_By56~fvLEE7RIBN^W#zDseJlKz7C_Jt>EoSGTx%@ zPW*Qjc~bNc<|60u2R@vw7niW9aVPxur*pngcQSpFrHL$cqw#&T^TY7FKYokYh@C26 zXX$Xq5k{Wf2th~M~@@J(eeCVyDbOD@g9#hcOWAi4&U%M-ASe-+E#mGwe6lOypNiH_wg_N z^(W)b$U90|V?~Or#pCcZ6RwKc>Q|kAL-sD@V#CoWy$^X0cTT1--%68XGas)GbE^*G z=W05HO-0+_c@W-Di$^tA;%hd1SrCtM_p!%4=14WJ&x@P)D&x52!FW{rfVjQay`KEE z{PG#fPf?Hk%FfcxfVh7Pknc}^*+@TEk?V0jn8m-jZJ{||&8~Rk*JUH|#G%n!76KMBB5hZ^4JKj-6i{x|eRB z5*M#Xm&H7%B6A5|X5-~J>%==Zn7hKgDR?qAWsOTMpEX2HAIcMJg&BG59^U5<_r%$| z>255&$Mjj~+&iAB35ZAun*%*(@^W23oLcs91&@z2uTw6T+T*amgM z`{(lN)#>K=Y;B*Z&)#gho#P(L@Vo3yj$fg-cCdrbR`%tuL&X^T=8oX6rF?WSUCLhp z?<)6n4)Y54<=f&fye|;;r>Wx0VZV&cmU7R=+{Evm8grTDO-a+TM@9j_w|! z)0KR69b0ZdYw7X5Sd?nd#y#UvAHJQt7^Y7ZyVHzGbND;|8NZPKJRG;zB%hfp-}TYr zyl4m?*-JeCN885lVq;74NOn2KoclLx+UybTlNw=OQwjc0K{t9&<{tb%4hx?p&r6y7 zed73c%t4#rv9x-F`7_En@4A-HWMR=#*mXZ&o1=}%Fd-%$#7PNVCN3v8y@zK}iG#`5 z;Qut8`T5>rbO8R2=g;HB#7&+N-U*9>EQ`#gA9XAaM$Z)ow~+NrzF(?bp;SC4&!C&- zLwpBn&Pbod<^$n*N%8^xz1fCO6&+yx-o}C>`SF=B=@N7~zaG!7Cz0iN*T@~YHhP?E zS6QE*YQ5+-^4!XSzLnKSnmx}!^cnVl4ByM9&N5!W-spsw z?^?yh!dR3QA9atLGf4~Iibc6iu=z{pA3JU$#|pN7)bV5FVykM@v{aos*VJiRNy8qXE6#}L z*T+i}`afL#xHgYO&da3Xy|qYMIGi0%f_duZv{QIKzrIwT*P46Xs=aDHaIbT;g)ck; zC%evaEDdw8HMMwL<^F0Np1xGRH69&f9(0?vou$T?SXWboaA&%0s z*l{*{%wWg6*kC?;8>iCuxt?~+*10Fx=Na|bHpzy``(3|Rdk;$=QSU){sN8vSp1fPs zInQy7FL;KKI*D)p?VIT$^9Ey3ISh$5d3MuDyza>-2lB%c#Ms52vrUCj)qH%u9DgddKXUC|<=zwrt20rD$Wy4C{y||2<5YBSi<2`&M$%RU|&EKctsm$P}^XpYr%= z`8VX}vrVfJon=o$E6KVwT!zufiyNY*C((~^V|TFzN2@NK9H!{KN@)wm8za{)4 zbv?O8pg&>lLv(WqYPMIyN@LUitnX|`f5($|hJN8yMCRguk@>d9|9ox>M{}?y_uwKFsa-G>4g?reN5*RjwZyasBr?XaAS97VfLYeE7y@5W-K76XO z^w0qn-A0EnF8}Yv8`V|5WkSZg5A;5q-4Ak&ucg`<^PZ-k(R5|4(k2fumrX~LmH&r# z2MTr)@B7h7f3bdCJSrZ`?ibL{B=;>-+>_mA{&^GKU4w2A$Ee_1aVBk)pPUTql`li# z*-6vM@`pO6>ufLa*)<-O{K{{PiCHn09Kt@07b(HapzWV9aNeZ^^sJI>Ku6p8jlI zfd`l#{;yrJ86WIl!#A4om^u`Xa4!E|BN?Lc@u=mTHr!qD5AvKCk6Ou93oomWMSLmL zYu!z{HC=s6HtmM@(29?DoF!Y*dvc!rrzSRd2b_!zc*19xPlxx*!+r#*Bgi*QIuspA z&f~~4${giH_D6}4?5|8%lPxD}Io*W!__Is-+5PBdKG&UXpU}_6E2}dsKk8&+vApYrY*y4R`#!`vh~d{5z3-@u9 zT*)plH~hE0rGPE=p;tOC87v)!j*h#PFdiNzmicL7Kla(taXYs7Qr*Sm9L%rxAopkW z_O{gD7VE3KiVHrI9gSd7;wG^ncB;fsw>j3RXTp^k=1$Y-cnZ7`XQQtae;2~!Q{kyt zst}v4`?JZm+WMYMZ_&#_a$Nxjjw8#V?9iS(tLQMybHAwfO_JjetX)OQd48KPw+;K4 zCp)PVuvhtPZ*;QjN$EJcxyH5IT$`njhva9p`6~UwxbXc~OVH&;dGG5p&^yZ0c`=)` zC>P$fD&C-eDEFy0QNX5(kk4nr_joPO@Q%gH{2hzbB(Ws_vKOrcsfWsBlrp#vUh0vZulszo~GTiv`-Jw zoyzmc;`3rrwfRwar>AgRHawU;%j5RUjoZ@=p3H_N3#{in7Pmg;`tz{+CHKB>z?^rK z{lJ{yQ|V{QeeQUZ>tC2(%j@-tIq1jMd6lVFw(w2Z^r|^XR*b)3&hrd>d)&G9!#}ah zs+7M;yiag`QX6iCZ^lx)!?7;tk63=LSGbyg-A@PC;(I`>?H%`dbg&<)6+huSyr8cy z$XBA=Rk5gep1R~L{6N~lT%`y6=qDYa-*MzMf7vq2+y*awYT<01=Vf>-AZsaE*Q|FB zNsa+zs?8~b!uw5y@6*FN`LCH@uNDW-l7~zM^Th|<)lY$Amua6o`Mv9QR_1s7G>R|y zm%Ro5Bgg?865qgz2k||UO*=_DkR=U6j^M8;woUWn&HQ-phA0tZ-vnPeiY#a;&S?>mgJymkr3h$Vd2j6^3 zo3JGN0bl*m`x0Hmq4BKp;7tB~tvXm)a9SoRIZrHKB3{LI%T>k(G~o(3d9|@qtk^%*^h^Ab3e&9cdIF}{>t9ukA%Ee%T&r#NP( z@LgE;S9bh^j{joIb&eb8JYbZ2pYXkA*h?v_$>z%+ExlTMY*7A$bd`SeRS3iL-}L6R z4_8y)N#&)!P!|=h*N-uxWwHEu@-Na(iL{IBd?I)O+`w4dc;+3eutt~K082;mjp_P%PM> z&CTMs5-y!*E?RDEJ3>2qDf1_pUybGOM-sh5pBz#$yVSv{1dYY6}ukhMRh2AyPx}%jBl_LpDCuZmKtqVYI_tNbSC>DXu!^!&~x!2J@S!;KKi3i~^9*>HT!}}Rz94k%2=X1$5-Z9zhU`_#Dggqi__L0{q zZXAl`*GIxVSo%yl+?(xd*l}CF_$52Sk3=c{#^a{~Zx`V6T>PAl`r)t8b!CcocfO-@ z$59V*;5qRYo>yq+HNIRgeag9UH`~GWZI#BmB-DDD#uUF?y=WDeCmkOU@gU6JAz_FN1j#Yk`G6y33hW~%3!W`g1 z{QLpurW#Wt^T8pGPekFr2VvjCPf)MO16 ze0g)thh}SAUn{Ox_F{9AvGPvF%hBZR4;%J^huhIZdviHDOSF>dCwkc8IQRtLX!?Zw zKih}4vo?0a^M2Y>H<3_hB>Xsq{!XLce>grX9uz6mHD?)o5Q`@+{^`Q|s} zbXBOICcakkgt26{J}#!?PU^s9awwH@qt5!zjUcMUO*7R$!IT+fE6coJNx zMi274rTn{I`ns51-w@?;(k%`7ZzAjdY%os4pLUt3qH`vyh3lJlG;Vb_e)SNSJ3E%w zr=vN7GNo{Sa~EUUc5q+0^seH2H}Tp{{q2=kc7p5So6;~Agm3KXerWI>lYTeqw;68% z`|wfMD7IHPe^{*FhL5og{@W}Mer6NmV}Lpb$Q$I^XyxHv*oU%ZtvcGRz(Z~?d>MPI zhQXcF#p8wgzcv$9-YVv1Tfdr{$^R=ZO5^7-ye}r>QyKndy=xhKdO8!0S&H|^$>Mr) zAsHSpXS>I}8hpy7GWm7jigEH!bNzT_k0gIT$Hn41@bEj`zJu>Y^n5#B!??1a^A}Rl`;#KjFi865h28?X}#hJ^GFM;_DNAACJPn&g}0H z9btYH?j^!~dcT-)FlNuNHXjb({ud8+yo)ZA<+$2w()MDfvk#tXf9oOGKP!)Pq zJS~fP|3kdJ6SJRMEUNg_`49H55&I>b#cmhzB0ic?Av{d~SGCHWN)Vq+oKA0iGItQ#*Kv0?-dg&ta_=c$ zC!Hw`_ai-!@9FdRwBa6SUos6r;hya;axU>sRtM+P>F*u=Z-ckJ=olpr!1LkwE0Ye# z_rZ>f@!Hk(f2+Smy`R+EENzwsJKQS&GrS+ew+_Vz3`qS_pWh2B3kwo_G1*(XGk!m- zkD?1uAwI6x_xI*rq2HnUyMSJ&!K(-K2d5Gn=<9cBSJ<>COzH;-S^#uzNNMsE*u;7Qb>EzVj#<!XE^O^dZqU`nZE~K9_$824^m$u!%ggwTiANlMcdfgwd=cB8T`^jjQ zyfCL?=hS2Hw!L}-8=~x0(ns|f@D0D^d%&Xpe|`zBc^v(!CKJeyM#>?h{oY{1pxKlA}ZtKnvyxURU9%;X4r@)nn(&iH>3 zU$gQ5EgpX`x4V;{m}BJq{cAS=f(#!?zeGQ{_CN8~Efy6Y60`OvJ_g3}@AV~m@VSnN zk8)sRH@Q=MY_hi3>Z6F>&eZ>1cnS6+clGb~y})NS;MMNr*_+J!lKlWF>?#=uGht`; zU^eaxzk0zfvNgl3rmyJk1#R69r(l0VT;=y3T1SSN_+NyFyQLGQz0mvk>4IjFGpTGN z3UP~4KT6H@Q|s}novbv(b$EUdRjc!K+qy~N6u$W+${B~Z<>ULuqpD;0_yy8iq;ul= z?@f9vGBW=h?(syeMB$qrI8ryg`5D=u_r89{TJ+w$J%b zEgC1r|HDRG=z1`{zsv?(u_?;t*kCd0j*_m=Rt^p&c7;2o>Yb+k#nM~&;asw7FIn$e zQ!J|9==dXky599Sq~=o9Ym|Flei$R}q@xsHK8N2P?;O@7_ExSy{gxrdKC})!i^7<9 zAPTr2#wYllXxCsL0WowDd=OjJ&x+-D#o5pNl3zEQ6ICB1Mu!-4M>sxJY@Th*J&#{s zl*zw4QF*!X`KnC*U7Yka@*I~}h=mEtC>#E}QEI+YImopGjo;=lCC2RuU15NEQ@J?E z!nCmeNx4|aoq(re=l`a|5ZANu`X!$C!+VIya1ZAj?9{k=&$Cg8OLdxVZpi-!uVsaH zU}3<{u=hsvKeBX!D?8{PMz!Lh;4qkDE>U};+Q^*OYmd}7!v+z3; zIldl^pAMIAhhMO(@Ot{WRK0V_eu{H4W)E?FPqOYv{%y3a-{OwSZ4KL`m7SF*cg=Rr z3(d{CX?qvxZu+E`^uEd-NGE;qx1Tn8(jBVU$MxOSr?)T{ZE25ZvK4_&?t9QS?pMefB2@ITP*JUKp1axB^CE#ug1?pewMz14o*V!l-`OQusE_dl0~W4+t!rA zT1B{@PoGEDTeNX2yq~J z`j6%R%T;)LEWek2cn+I52_53Pm`{W`X&3d*)y7$P32Tvmv9B1(vTgcQ{a4`SCh?MD z=SunbEB=RTVkmbcUiv%V19eh%BbgRz=OFEzeuT9=?f+~n3G?IqWBL2*upS?9EO!(- zC6<2L#9^f_9)o1C>{chS0>DJU`6;2vlXU>Jp}sn5*zR$;8gkh zrT-DaO7b6!9(*vJc!dY3g2t@kyqndnKI!!?n3$r-=^g6jmg@g z&D4+D|4_d#@fG@srqI*T`00dd*=Hd8jNyl^=H7R)*`H|NA^G>=^KL2Y zU(EmGwC!7_{MzOA_&F58o8mF_dLF*VJ3pNc;bcU&iD&WZ+sRaz_w5z)UUJNLWPJ1o z?dc=iJDz_&nms)pRa^p(Qf+gL!aHFOJlgn(=S)k@J)ZNvPJ{Wy%kil7Rr8|P;m}%g zyd94=H^H*?o+-VH-d7%#eGvDrMfIiOdx@FKta(iznYepZ*R{J~u6A#AuHVroxmHTv zy%GJCw1;UwEeT!=XfyfU-Dn0&y|kFVew+;we;*b`x1S963g$2 zn$%W`KEpd4VQv+TAoB^Z^AtF2eJC{!eqMy13UXbk&+F-*4#J#q;uP~jY1VnowaQJ> zjvj74Zmixwv=t1sJ-*)aV-0u0h{$(G>pv;Q}+OUcBlJJ z+WMNDFOp$Cc_!k!7a1O7uRgxbnFVt@@cBd7GQ`BiVnIv<%&ibhB{RhVdN!I50NkjGy6|TY491pdQML+py@vNj1CvvuElZwXg4@ zVtw_+N2&NUw)Q#M`PmucJASUqL>s1hPicm-cVwcnd+_>zcbp!z*1T9uKLy8@x%L8C zGMW58a|#;GXWmdBb$Hc!kNmmMTAzNx`->03zqw?*-StV@KUJIhtrPdn9moym!oNAf z`%Nv=@OdL0PmrEQt}tfwCQnCXyh)uTmWGSHFU0#T?DLu!cMqT1Y|i_-)EE`^1r7gH zPK7z$Fy%HXKfgZzJS%+flF&!M@_@m)7WxX9vkM;gF^4z+kFaTTf3|_4NxBK&iZ_pf zN#%H@r)K=uo}#S0+A`R8q z(RT@cJoE4XB)_*())*K?G5@XMkH+0-U@Silri_V+U&&_7&Q4M0FLFI&4l&O>JFG(# z&=Y?MxScu~U7+1-`6oXpM7c`W&y_bqnZBsAGHcWuiR=Lr{yUvo>)y3fEbsg2GJW3= zvlbZkk`(9>>K^Un5NfYP9|pWPdqG=&Vwzt zVpdf=7Mu`WqjZPB(RQ6R~;t2cvN!aWk4i&ar&p5b1OBOU;2UB=ZOA?4+)E zPaP~h0wuILR2tWQNMq>mw(Ch{eVEX8pY@}D!vE`U)ZSyrcR0}-=oYlaeMHLh9`EOb zccoH~v)jw+ed@S?P5bHt?}b%um{Yzi<{dx%Y$EH=@*>!{H65TT$K@^h-zdLPIeG~1 z0_5h%yHPtR;kZy6<=;zpiyM3Bo?dG&Wea$^k^cMKM6d9*X*`>ZlpaFgJJI`(+F7BE z$-aXj)C_%lbp59+H$7@iUl~ z6YHOfb>}H*y}YWg@Vmu2(vSN2ITMZkMSG4n%1eK#t&gSuf}gMJZ^Sm>&#(_}@W<#{KC+Q-jNuRAS@pa0-i1x~k9jsOJ(oR_ z>@fzNhW0~?l;K;6uh{1(ZQV{UPdDWE7ES(PKH7m!U|D!yv}kMdDf$ohhuN;uonhA= z2sVYa?`jm*lN$G=2Q~@ogXQg%W81K|e}3G6PtidAgtecZ2%aW)#r;E_pYhG=chNJk{5z}3VcHT0i6i;+E%Nwvc8lw~ zn$N(3@>8^NKA*iJ9<}n_`rG+%HO#1qTbGqzYyR@2d$(u!__O9eFL>wC{HQEro>b4b zS2{+2p$*Q1>pT8BsJ+E?L@x|^0s7mJsN^>@Fy(S7Dj_rk3O z<|6uB^O!cDiktgsQ$Llj;A5?8=2vx})4})J{UaW|?VadP>@V?vZ{P|#4z&(DG@90Ron|1-Dw4e#I4*(cJWl>e_!-SsXKLr4@=w>tD7qOg9ca$E zufBItj*nFT3YR`&XMR(6KbxP$pEvR6?EcR%((Xx zPiOJXD?JClRa}YduwTZ88Zo{g6D8B)eIdVp%(JLkG5&XUs)b zx22UYXxH^(bz0~9reZD(n63R8<}cIDX{y@RlB=faNB$Vs3+{y>`kVUzT+nB|J|{nJ zo}`_=&*N3wrH%0IU-e7$&oPTW6(M|>AOiN_`4pU&2xYWiz>n7rhy zA#>Q@GC5WKOVCN$iplQ>6AvZp5p*{a#-C4r>{1)_qpdLwa7cek-X=FH3jM#Ke|g=c zYn*SuS1BH=)~mOH&fd*LWzIJ!lcvYNmRkqITP1$F;-`v@Hsfb4+t=agui5l}XC~S* zkAC%A#utk2!v8dWa2-CzBm9mYhW|nMJeW9187q0L{K;o4X7@RRaA$HDlWy*<40t?n(m4vl*3F5PozbYk()XfhhKmv24x7#cln zzntrL85$k8lYMi1+xw(%VK=IKJ^tS#XU!jYpo=8_$J0v_8UFf+3?IsSKOT+z7d&_y z-*3Q*Mmm8>buW@{HQruQMqa?=;p^yD+Vr||ue$D9r813V*t`-ZKIeRi>+|t{8=`{= zL*w~-`fQJQ)VzzasW5I|8M1d#wzIMwm1`&cud(Lu|Nn-k06*Jme<$U3W#4XXPK(WdsAMvI>-^n05)!^_P1 znP~Y!JS-N+&uFh+*;n-U7XCKC*$>3phx$Vi8jaR`gr`r$_ZQB;fwAA?{}=qUO8*0c zq)pCie$?(3^}mD(@UXU7Ouhqe-c}ZkK^1GIuZw$qZh6@{xU}1wbfoVxbw;XRuFZ4d z-9?>NN6)~%4sf!AeXnjq&!F`%vk5L<1urMT$*jFee?nUvx5CjCp?rtc(OP^B|4y5D zZ)$?)Yv_C>ewV?_rDR$}e!7Srpd+}FU!T7P22P@TcoM!B4*PMhxEA)XU8GF?qj+D= zwl9(i-^umrz6a~*Eqv#*;zKezPLX}N{0^>HllPI;Y@lAi+p-08HJdI|=p0y;P<{_` ze_?KSEvhj03il7Ows}(cjw!`2!?#j3yNR8_@hJIEv3{*so*_2o@!^N#`TgTIHo&U4 z#M3A6>wDw>f5ennp9zybG4J>aKDGLWJ;d-!I}D9FitBTC8yfv2_J@e|SEY?bL!-BS zyML)~_gj@a8@7%48+L4gD<6p8*Wt-3@%@y!&m;Ojw{w9_u?ax>Mdoeay%99UA>}AE`R) z)tv|DPK9^HL3Zta2*)PSP5EE2{)c$fr2hpQVaNu&ycxH*GmLr`wk$ChBx{HJ$xYU< zPgLuz%9F8VGX5vh|2XB?C3zaGK9yb0a6Xpom&EhyTdmXJaWn>l8o>A z#K(QGU>@H`Niop;7=E5nPizc$6Q3}k{v+|4lmEHc-6R&j6h|n0PdD{z{X5u(EEAQIZ*;kN-Ee#zPOii7T}npB;r*)Aar85a+^FgVGNTgZ!##A(7-cUY z%jMd+p3Ll;tb*0k^*c@7Ta}StexCN|FxL-H-StOrElqr+me1VGKMvwEPn$zU)M%qtPcgE{jKX!{W9-SJ(Bze(D_%w_l*^h2pNAde$;ZzJ`rk&{oQBqt3SC66Nnh zo!4$1k6MiVP1aPx8g=2D;^jrMb{4pMl`OO>=E%^oiKf#d} zG5&AZ_>J^yawxmzeR%zb_E*7*rOqEVUtFNhz1l=e^!dnqeM%?ZO*gZo_(@NKpJVko zirmL4i>m3ZaD;XoCx^o+`peOAQ;9PB;%ldPl=_qGO?2>(`OU>_b|~tKzGchrtdVVm zC$r3VJf{o)s1E-y&rX65^WcWHncR!g51qGIqv@E*Khx=RDF2D`pQHH}svFFAdhx*m zar^;HTC7e=J3Sln&)cK(&As&-_P5X0v%@B~Y#)y*w>Nea(Ps~OMXkG%WjiVRW!!WMF@q79-_b=`s9(Lm6d+_PKGx_IG1wF-2 zG2Wbq|7>n~3B&qOPft=dhDb#r}3a&D*o)@1*lJ_4R* z#ReP=&u6oHNl!G6hdJYO^tl!P>MKT0#_uKcelz~3i@cc6|6WeA1V&%p5T)N{+FA1?oz-eny9EpB z@PSO!^*-mYDLgZ1o(8XP#={kK2w(b)rLWT*AEzvRhI#FZpx^!IdtdF+eZc0;edP_x zsay(gNQPgkA! z#WD2EKPsN0zYiUE5DUABkAwNqk;ZEAk`UKL$BX9#Oez&0hl$U@e9d{2{F2dPX}nmw zM7}sHs+4~n-@HK?REhdHue=(*TrQ?A6o==Cue12+KjZmlT|UByDzs5^emu%ez{5oC zRlpSGt1eUiQga7wC$uy2R@bXx%6;ZnY1bC=|3~3Ot@FjMJt5XnSJdddn{?_D{XOaW zQ_fMN^D&Q07r_hlCM!2&sd?bj&YwrC;$Cx(8^5);Qu-|1alKqW3m(MN0{qR_W(`^I z)YdF*OrtZrRo_AuGB=ZV^JK?lNRXu#)sdl=e!_FR)D${ZwyWbJG~RjR?esYvj%h3W zJAI72UN_6TQQz9DxmcfcR(OoI4k7z4`uiDX!{+2=V&NBdwMR~Byg5!gHb0KvPi1#= zmx_8g^rrY**I-@MwJ*iKIZk=Uj5Rkt)SlnKscQ3~s8PCH+{_g}Bh?AdYCqO)dvSLf zUx7twYXRYVh|iHGE4G9ncUJA5M;=r6W)ozT#vXfMWO@N4~p|xmu2F zb>Axc8~NP-HT_rptzZ;68@CrnMPhN!On%>j!tP|=Nvz2)+)n&#8u6Sy1*ShHAeR{bApW%7Y@zNQ_fO`1z1?r@1FXix;K3Um|==4@? zJgh!DRO2nYhg4Z2#*c-QXNvcWolk}X*SOb9!PHyvH`841E_00q&KJVn$MISRN1o5* z*OUsfaAdXlWj$Pa!8~X=-k&lTghO*5R_=b+=8=1jd1Dovn*!Ig{R^6WGt81U-K3xE z$*u47h0e$DiBaYi->dL_`gvRWa-04G)`ar_bUB^vh~}}o=X<%}TO~2y?Z)!|ZArub^!S*6z{T?a-wW?1 zr>-5+wx8)wFl-iG!?XPNRF`Y>KKz8a`g;9*jTgRM#itVm^or+N_6^^gx9%SI%9IPywd&nNDuleL_x;SwDl63ktgiE6uv1={1?yN^m{3ut$QSmLt%cD{yLUl zOR3zI@9zoMdcwTk@Zo^C?{&m`Uvc5Q+_j`Ki5=omTI@vaVBU}7;S=q=s+}j%0_VoP z@UMW>VaU6*(XZmKhkiY?P27oxJ<(iib3^FmZr2|&Cz<2;pD2u{o9Q(!rQ7VA##Y#n z*p_Y&i20w1zAlZ~A1@Xa&UO4y%>TRf`Ly&|c(M|$alRoI6@MWWyA_+1`$*cPe&F*( zd|9`So_Bqr{M-KDR^9aRHXdf^`*%E?Z!PGy`nLbf?N5Ib*(lgbTqQS1zoX;78}j#3 zp5|Dz4R$`658nbaVtM9tIzMpp1P^tH`(YY=fQTb;xF<%^mcaL zP5CPk91MF0WZTp6q3nM(y{6d&W)}0W+#inrjzum1bM3$M{u`ac*1BJvJFezO$rjgt zVw?ZOd>3jQLM5TRx^=GAeWjiE*@%6^w_w=^wJ}ZJIOm5u-d^38@X{0cekA)O3>L3B zaqCB1ctUrI=UQ=87v5D0&q@oGt8<=a^WvQIua)^h zy+579<^prYroGzYFx->24ugfqW%7GL)sBTv6XD#oaBZr&)(jX1&o-M=g@4h8eZvxW znvcQCO88cGg_u4|EW_1eK2s&`EBdk#t@Fi`Ab@Svxa~Az9xho#kPBUM* zUfJ{Uagu%y*G4b2ov}ao9dnOc+_0LzdFf>Pj!W`X=h{Nu9^I| zm&qbyrLtkq;6CyyTo3OcSDSaF{>{JnddbK7f>p)Flfp2j1ah9zf5m(FLXmMa{ejrp z$nNhd`?BN3@~ZKAv9cx7^<)X(-X28WugH2Z-#vv6&!x+Yq!-im1bOGtb<%Np%zLDc zJImWlSMRI$v3lQ2|3Lpn;oS@4Oa416*OFcN=@IHq(%zkp*{vnRhu<_NtaBWw2`-^( zdC8Yzc^nCQO_j`6N4;c1zwPh@SHn9escH3X@8u69SF*u=X5@X4URKf%xm$iCbLY14 zc|uR|d)aMv_9?k{{W5D6?qM!5qTw|+}ZW;e+F`mPb{P!#Ln_}Oj zK9XW7J(Rx1S=g^6`!F3&K}Vtpb*InZbK%{oDX0v;=5pDrYul=KuzJTeMA?bbS=xH6 z4aq9?THqQOQj_qI;KWSzECjL>xmvWAS--NkjdXsW%@v{sL)i}PcjjzZYH~LMV z@HX+TIYsZ7|HRYd-LN`K|KHi~sX&Z(k4K3bEFHk z*G$*HI^TwVd+-Z$glw?aKc&|gGj8W6Gw6D%yesJMLV6qT{Cp{!q;62BivHQA(6|)l z>gjv=)qM3HmT#Pjo>J~Pd8?!-Suf=uDfS58FoyR#n%FVykywbTTM(b@6J@;P$j{iY zh<_HDM}}_!g1@!wF2;MwJ3wAv5(^QAI)q|Y#3 zRu5Iy^;(n=Crw9cUs@INw3F;FZp2oEs>M$Vzxiis$2&hw`LpzopW=&@y+pY{j?3}h zC_ln?i!^+znl&beeMV|e#Xot&9#6F>eInULN{`Xr5%Ldo+(Ta>7CNdc7K*>5-#6%d zDSN@U1WZWxWRLgwK{*QlW1Iwwj1OV$Dy(6ZKjHXo@z4^>zdNy_TRi_ha*deCiixl{ zc&j+r95=^4%5j}q8K$hUy%GOSu7~%3D*MIl z$sdoZ_f&=~;Tdk>-`f5`U*E*?@9dU;Nmn^I-Ar%qNp7D6Fl&T(x>h>ZIBIMP|2%G5>-ckV^|w9Ow-^6=W%AG7i(pFlPetX( zOq4CpkUJAKp9w$4!jmKnk=C89thCj6>Ri{)bL~QPF4B(UGUZ!FwY9TiSSJ52aM<&C z1uE5c66Q=Ol^&9bihIL?-C+wJ!t!?04ed*cmm8|0cY?)!-Si^Bmq?FYcrd zb;A3{EB27~LU5!QX0;5$wQ|kJhJtYmU%|zQdY&MAkme8yyE+Zjm33 zQ}XIu3(x&q7KAEU!H*IWZ9??$yEyj=c@cBG`XE*pZNcxfZ_AO|bm!>) z_(gIWj2In@vU~7}X1;JOGWYi~D*w=TlI?5IVwmF{vD7u_0yG*^h)vDEG~0r!H;obZUP-ngol^Y<5kjYT)SGVUV$zX^A~C3TzWmz zby!ewymNRF!Pgw!ub}(QY*W(_j^HOv?{#<;d{N61{6BzCbFRW_e9s~0bhb&kevxbA z$a{tBGsG^rQ%hZYP8%!9mr;lP3+vl#*u;({&$|}JtB0ibs)vg2r!N%gCz;kKN@**% zz_ETyW;)hi>S8JT=Mu^mY2Uhom+td>cINjX`;DEePA`^SJ)d2Gnb@^3t4Zr=rHk z^r`F^b;c~zC(1hRAb&Y}M43>(<_U5x#mAGGXo17)$r`??Z@pN56X+h*Ixf3hAC>x` zhwx9pQdF*f3tDh9EJW4XN+}ccRd$Is$7$~j?ZD{bqt$1N>|yEz8_<90Ug~sHm#tIq zJ;nApIGT6`Rz1ZR?vZy(LzMkTgLN!a;Cum}5%;OGA@*7n&&B-mRG4)uzYPBOIR9JW zSR9wUB`)6Kvv2do5Yuavdx^iJ>JaCR%Aw@T@*5oU_i8av=REzY`mgibH=M(QocPMU zCpJD%-xwHHx(FXXsfUU()DeWNcp(GoDRJq+k9Zg)g`p#9E0w4F3{tx`yDuN=Y3aX~GL{$Ya;WmnhQ^?#qq??12C^E&tEJm)#j^Eu~xzTf$NJ)8KlXB89S zc}3|J@+*GV?mz1OY~S>E{P9|-kH#*tcP9J~n9O9Wxy#;)yy2Ob@oD3`P~WE}qUHv2 z9h``&#=xyTr0Jl32V)wf&eqyj8N0AWx<00SDBdHqRlo6Q>9g^^+PTh5mW<7(;AJkl zYRR)R%-x3ko9cgER z${v7`a5BAI-oyN(O(-ve+8^XM52-Id{kVDs`S0X3u^@{1RZMJ*K^Yi8J zW)xsfY7yVR8^+uVzu?k@WqIF*!{bT5{*<~a@#%n#PwV4ZJaTZP)BPLij5-t5tzM4b zL$F5sFP3^vaS49tBRuD!)#zvGYS=iUjl5_=2-P2plJdj-@Nkc5Y!>d{>3-2|#(NXF zZ^V0!@yv2BiTri&YwhK|1|)wHG-Tm@(v{TruyDMyFT)N z%9X!mR#T+&9Q~W0p1bAUYX5hmuqEgJ6y|1{ITco-B5IOfiHh_PJ3dW(dffZWVBmw| z{3Ci({7bg~KeQ45;YZ<&r-#qij^S4@p#Ern#^16Rz`Cn?pA%d?2M#W9{@Mz!?vkH{ zQTM996mBfx-;4RV{8ft*(d)2q=q>zR{pK6s&1`k2Dz}Fke;!=Ky8+&;IRvKE*&pqx zubuh+wq)2`8M!LgL+g<1zx|%D*2u3?9ff!E0h|<)@$;ZNazQ7i7@vy1r!pDbqi>D|_Q7!bat(~-$L@8Y*J>|xUK zF30ZzUbY*Ai=Nx`@o^o|MF6M`DrnxyEjlahIVC}>G-qrda#DBZz z@p1gaH>XG3p>O?9ddU6dc6FZQvoNLuzDy|a{g?204ZTJF_h3kOK5GBKz6CXl|NK7w zD3q;v8$SIRHgx5^YXI*&eoq?%o(-^R-m<*sGswF{-&xpsmp1xeb~|}m)xTA{o5@PH z23XT${9m-dJvxX@rH|{4{VMH@E$p+J8}XrwrW1_&aN+)NYA;l+eGCR}qptzNO^k7U zJo=(v%+a^#D|7cHO!(Y*u3vvMp}Es~m;*0fzgug%`!`p_=$%28M*Qpfv;8 z{IG=ggz$+tU#RDU$M8jd)Rp4*=gYr55v8uTwogk~o3&|4M1{HX=G#NvEDx@%zDs;b zB5HjQemu(0Ryf;vmT$hO?w=A-#oM0q?M}G2;auo5yuQ-z?=a_k81=KVwc@|(>$gM{ z`!60Sd=EC{6_us`X;1Q_ydM4jgRg&!hxVO;2kMW0{#zm%^?4$SK7kMV`r;k&B0ql} z26T~amA(ovtrM?j@OT<-2uDay&nbHjMm&$Fdf|JB9dEiXhDZB*%JKUR^}J6n@9Nul zYLvIVM&4Iot9A?V>Uf+C57Qf6blhR=^iwm>eXr?>sQNm%c7;Bh==(xrL9vUBM>_o9 zzMh^tnuXWG-zhL_nla5lv&c;6-_re1c^&2={J+0d-GX-G@#&su&L*G}@N6*d!;O0^ z9q*6de#SN0ILvW)zF_}cVC;bI{W;fw{DLPTuSNMf{hxa%y8j~x33$ezU8{-QN z8?jfu(!HZ_c;5dG`Ot2BOjxzE{O$8m!&ZE?Kb!8CFW*}U-)t|w%buU(CrgFa;N&T2 zSN7gFSAG{(+Sx>5w)Hlwwc(z@^K8DKI(#5|0bjdA|Ib_J`C`?2`rcY!`fWat49Df8 zT9_8zWj%f>9BF|$H^NBxP7rQ20+m!|Hsr>Meb}soiVJy5Q9+ zxQJg*2Mo|p_XFD9qi-^eS^)p%z@zD~;Cf}v+Fq*cJbF8mjHk#mw%9TGsQxJRj?l;9 z(ue8)5d03nw+@EX;yFtBp8DOR7hk&fhU;ULjg@yaJUY#|CiV95dfMFRbJQ$joUQBz zZRf*gI=ge8{JHqaAE*4=X=J)iyGyhuQ@H0)tKZfd`?4L#GLY^z!0$Kn1H)?IW6y`? zEX=pPTKZ3L?Pd8duz{7*_Rlr9*<;^_tmYk4cob?vkEZT3O^VViZea07y2;r?Oq z@A0UnPr^HJ6H(1THq3ULcjJfq@WTW6)8W#`N}s|fCbIeS`8A))Ud(@lCDbmSX;SBs zMAXV(S}#>sI{g1Da{=FI#pf=XC@hE!7$VWD?XYEPn1_(qtC0< zy&4Z;+ZFnm1RwN~(RY#z;hsmgai){<6UI-znmT#L9YeLXc#lp*YeuQF7oL04>qxQ> zm!^}ZVPr*JJHZ?2(vIqHuN_@ww^F`^anV_axr-|FM|TnZgnN|556rdwRq-*j5C)wA zd)9|NJ6Y#O!+>95!7*%Q0srsF^}dJtKlbq(<;(AYjSb-kFd$qvG}H@^=R0TSy^~kE ziCs?4m-hh0wDgQ#T=;g5I`ixm&}!6)CZX_7=z_8dv*pjsM;+7n1)prYG9Sg*e#iOn z?HuVd^1dCFFQ0w4okfmDex|S5tAyIbwEvku&AW+j-OB&(AkSjgT@Q%En#>A5|7_lQ zg7~X^_)RzgOX@zv|6}9%1RvqhkI3}_Qns{c&-5A|FX3M>P8b!g@5VkU55G!br!e+} z`j3&j9X$${mMhoigom|%(3#bJt|PO?x(E;QbsBR-FD=*64_$@*VEx(TN|E_gJWi&Q zKag>p^dV?}FyESZq4~KN0Q4zjrW)I|*x* zA0>VkT)!+A6{nil*(ifr)x8TQ+-rUx#_KWlR^VmcQ%^~YCxxYeA)V^4(g$n_|FI9> z{b;Z@q^&OvaHh~D?+x|e(e?vvKGoj-tzhj)3R5sDJV(*+y8LI^)qU#BLB}iWOU6gM z8{ldCti$>AA~^I~yu4S6ZOwl7NJLHbeCZUveGxpl4qnV+)AOy*xA40=h4(6ZAQ6pw zC=tb$@zY26ayu+}oS!_Y?lbl(&)H9`vYx+cJ^wS`earsf9nTxTn~3J2;%aTB(?vYr zNR-ckCO;3Op4JYp!u|FHckrzRy?cTtzFx+mK;>AbLXIo#cHf5se~K{d@L1pCqEyU&4cLl>GzGAJ9+gpb0<1knhRx z_e7NWo4wQL=woBkZmssQF5@NhGCaq1kb8wb>7b4L>E+tc&G?61Z_?8!)Io;sptt+% zqn40!G2U6_>)oP zf4ul)W&EOYA)B2momTHU>nNWJ&sT?cFlK^J@PioJkNugSyw9J$k++uZ|4(|Id^CQ; zd{i9Bw|780^YdyrwL9X+$p-#CJ|ESb0B?@Zm+$GdOyt)WYxl=|)O;1+zl?vM2P@z~ z_sK9z-I8|gN93c}(eU6T@za#!6V9$0P8638`>HlfF_*~oI#Xx=x5XLr~;#n2n}PgTww z_J&)-*`;f~;%9Ns9=pf5P9kdW$A;HKl?mVdOhlRCaBLsxLlRNf;k`If7?<$BY4O7n zz895<)~Hv%nYR7;=K9M16OU4OmR6y=;_MhUZm5sj*!?JU3fs@r^}e@zgm_c9X5|b2 zwznV5rne-wdyL_|)aC!;9wL4Sxf|4dN&98Oe>*!#qO|lt{8KP^p7AV+m+zew|7tvB z>E4$7BNFBJ-AS*%_RS9-qhbNc7gOm{8#-r%!P;K|8lfBR|7&AosY8WvZ7Q&6f zSowP(dT#mP{dss@BkwBwW~yT?4rkvD?;%)H=*NCh#=fgv`{+mSewS|83{Gst z*SABvveW(5`vY6$3+ah`7V@{)J0>WeESR4Za@j zr2iP6TPUl50sZmYREQc-jdZwnsSxkjmTWtdWA|Qa)wWt*%ow}3mWzL{B?`>froU`8gON-xvGIF^piHf;s1Q$8#&=Ds_>$*h4E~P|10`>Q@?GU z<@dxFs^ZQB;-2%4d-p24U4*9c)0y(_jeC5PT|Xa>npUc}Fz#K!^1iF%^XOhQOx+pE z9#)nUe@pmzy!;$Y?4Nk7mneUGtO*9ij^IapuXt?2dms|t$I1^UCR~roZ+5LS#a>_* zyh33wkd$ub`<0jT$qU3M@O^%p#j9m=ZD3(fKWWs}S3i+@sIm_q|2G+ah)0>9s#MA{BQlb(Y?tH>e0vrC>jll~-p z!+73=LGKv%d)mB@&xdr=?dHUE5f(ZQu8&${I);s`A~K_fW3Uc zPL4wxOE<6`&ukX%L++(SYlO?>@8-GHt+Z!L*}iBeJkDnm?4rPq8ZvOQ&3wF|&TH^< zl|G-8cW1o(ebV%y>Te`|Y@P4u;QI(#jrUf$@;3xa&wGw(J?rTZ__7lW;LAxqT#EQ{ z-+Z)oAe$e_=l6sML*)(5yRPLIN93dSQ^ZeJc4BW>F#(>O#ZRt+7qj5T92kVcx%lfh z=c92qX>%h?l9!#9FYlege-E1Mi`E>Z{wVzo7bioT{@eLtz=~+gT=_d&jpEY5dQrhUuJ20PrFyiXw>2?3 zisz%^Va7DBS69uK8#lcSrGvseWoYSqN(QbjuJn*H%!UT)@w`G?c{Fyl)TRv zld&|x-z||CQjA2(pQ8FGCPKmn@%myd2v2%qN$-7+H)$(VsJrthhNu4Yl zulz9ehM^7E-_LlhsdG*b*FHuo&Dr(n8he;6^mR5{zf#zYCZl@vsCm9a`QzH|jqhB1 z9%J)eF!N)5{HynWVVSKGQR`s7x^2Rk;K)XNePj3`p4}p0U4skK8Q2wlANL$G9^Yxd zM*K^1!m+i=!~Z=pHR|rJ{c!$2k}ucs@1vy8(8sxWO@x#Dy`dRhhptRS^%ua$Q|+6M zRQ~{c_D|S*z>R(J*h!lKF#3rZ1Mh)_CQ$ zzpvg}>B!iAgDXF2Pu}AH$p0UD|C{>niN7sg#OodPg%Lef;uYE#V-KUH4~cv38to|^i~Gi%_}{ddi3X!}%=P(vCcH2D zqE7!u#&?HYR5+2&VOH!G{qghg&XuNz#B*%Gey8a>a+#y7xu`W~sS0C2wZ_r5t+CQo zHyUqj)$~zsObsP%U)N>@KCLe_*6KIho3IayZX(M`eBZs_>_GDFVm!OD z*}>u?g_Gk^lf6-9xjoKnY?y!6_DPiQ+ZU_&^^k<;s`#KVT+4)S)TC?q)P8*I0R9&j zm)9t-V>Evo&KI{zL~GXPb3f48oBX8%Zxnk1-NA=u>*q#vI~neRVN1w_GV)R_=sxYp z5`Cl{zpdeeZTO`&=7(F7V<_4~zwn{vs6^C~(idFFTnHy7^ZTn3Wqe4@BIB*DrS7%2 zXtUo~F8>MpjTQDik2}wL$~9D{^1L_-?~)An+$KDY9~vM%Hspu2Hj}meO}lFG0V}ob zpbI<-PwH1ZgPPPCq0S)jo*Y@8v*&u=9`FTnidW%3N&fhPI>Ls)_hDsOJjt3}p!_C$ zgkAHros;mbQ0W%)fGXvUxEa>nrtKa2*KW{Kdo&dGdBq3l35D;COjlmGB@wmF#p7Ci zOq6fV)>Nuz&yr2k^$zs>Fx$1)@nMJFci|`4)g*RwiEs*gy@{>e!M@mS_+M%d>Yg&@XJTNBF)v?6YVM515mDQG0b8I^;c+EARO$-&F?t(r~FJ_$Rwg zR>HU#f8U$UAD%C-tKmGm@nW`r6>PbN&!=I+40zNcKFj(nK6H9MYEsrX368+b#tHoX zXufnHyh!q$1MnULKk&`Mx5BWz@51Rzf6b_-0xtbvEaXnXi6(M3JSzS;Sy$%Ddyts5 zy2pN`{RLw&wwf<@WSzRB)!i>& zKFR2HgeA;EBsDwj_l{7XF9!SpT4#g5Buyu z3*cUVxgZ=97W6I|h;hRqBJ7N41n79l*iQY!*$Gs~%?*B!?z2dH0;Ku^8eY+Hh1hV zd8G7-x$-$qWve;mTMY$s$=AYJMew_tU(GL{tlf?O*0MP^R z8CXzr9{XwJ*TKg4ea{pakY+EJ=RJeT_AbEVvV7EWwKVFv6d(1&yF#P$wY$RFdObTu z?UP}^Ir7Inx*$_|u+b+(w&?jd9()=S}!6tSL-KuA|bO zbb2W2V#}>)KNP-&@g$oLd-w)=AI|=dRi_`y`kz^c{D)9Vy>QJISN?1$$8#{9k2V*u zB)co0-@^PjyNR3!h3_DRcR`dYnMdP3ughm%uNZ`S{H<#+i6tPxkAa7va}B z3-1}magDr-m0w^ClkKObxQC{0*ryyfTO0j$;Su&J1MX2@pRErV>vH{e&`&|$^XfjQ zuV?MERvOC+)b2d$A##(gg1nWjWGCCV3&@pmc7!IAD>gk5)m}-)3-v!qf8@xXB|JXi z`|!%>WX)ds+zp@Mf15s)51oe2XIm}8JK@%YIscupj{Zsd3u#!E=?lyH|>fp#Y z*meq@=j1&HryRai!@<@maAl72o8Zzy_u6m92Q}X&|1Rg-i}TT>d+=>_<{>}1AP?j7 z(Wo1=hk0EWsDFep?1BFf{Hyf8kv&e2F~IDahmAjLtoKSUr5Ab#_X10o2~Rd&RJed% z()@3h^z>Z$dFPsWuz!(u573vrVBtRT+ts7Xem<(0$N%Ga5evS&wQC$@?FsI!Bp@2KqY2`XQ`2k{;{D z$HMjf>3Kix>~kvivaXn~%&zole#3q$JbTvj4|;slnAuNs6@BhVkKLW_pP>iQA~X?I zl6SChx^ShC?6Hm1??X@CpODVOz0c9Q+E>aOg5v0Se9xi#Ci#K?3~_T5{(qjDY@F;k zoJADskhbAD^5_ZrE?7gx(be)Xz296tklx{NI$-jv!go=>xc5)c^GWYfGT%KqaWi+y3kMtpm#L{v2t=8WW*d+_}cd>5Wo)}Vv<>v6DR zg1nOx(fIN5PJtQcz_Tk7o*{;LsN#=_sJcm86rLFv0i$|Qr?ME#8Z`yp!HThPYa;5J z;aW^tEgs={#v#0vP^^}`sqFjPK|?YsNxW~QcIR{G|L`j9^1OnGeh%x&wIaEWbcxd zUaZ~S&TXXo^Yidba@|7h7VvX*$7#24Hao_ne~age=Gxa}*gQN4n9!;21nnB(#n2`0 zakts$EK|STUT6imo{{&Q@)z-bnG9WQ|4%RlEqqn~^5!W^7Tg!lIe+eyuT5izzO=@f8X$-_vr2=I$Oz? z`BKatGdr73ug!Viq_n+Gw5fQ|c^5wkXEUxH3P1MlbxO)o{3h&s3jdP-vhob7L#xf( zIAqV2u44E02tK;zz5V8SYx5mr>-(ZJ;LQwSChl1q;cR7d`Nr+iZQ_rx6Ja>>$lN5} zq7Hk>o~FE-y%g|$fxkuMy9<3owyllhP;$f6l=0Nu1UrqbaX{(URYG8J>sAL)}|-!efju&025Xl=X-d-gLEk# z^`Q1I;!(|a;=iEZ=}6lid`qw)8Y-+2*73`O_~hYy?^wQmQlk7EVqv0w&qEj4&sy^)d0dx6z#`(uWIB+X|wxsq_) zchcV)gK(*^>hJJq4LyCOo%*fXW$_yN7kzi@W3_Vqjd(-)HR(T*>t$H>g7##ahgKD| zCu8`wTNnAOjpJKm`sjY;i-n8m-<~g;i$DAe-&AQkACGhNb%yz&zsjSv8;j3=^fOYQ zgN@CchWlql^Aet)$SgBocbK;ug@0rNap9lY=woBb-*^t+{`7}9&wj9@bJ-O8Oy6ZK zXP225glw|C2d&4qH|M+dI0e+P4V>6M?|FW{y)%CoribL6#ab(O%$L6v*uuwq_O?#e z^7H-p{{DIIMSx4k z4#IOwa&1E1e%kT7_AmJ>KP;5cXMFE#Y5A4E=b~sG?bWM6Dby}qzHikB&PB@p3&Vb; z%YSS8n=>YP4Sn^YURxmb8d0<^c`C@aAsq=@rKz&+I7lPp8Zh$wd!vSm(5lCj`T2sj?G7td010V*T?2Phb-?L zpJ{iqd&mWNX8TzZ<3z`3FeN=9$9y44S>2C(vP$tdpE>WjR-RtGq)0E~J+kEvh%Hd=KoGU$Sd{3!k zeBrsw!qfO0dy_E4+gISJPD$PHzQyqWrxc#yU7UsWlr3QAtDf;bWP2d{pRl&ac8z-{ zA>U|;m*2IPeJUO`72=*F7rq%UV_bM9Joa-u3eQ@HbDiRP3GZ3vvzsQOY-Pgv7602Z zQGPdVda(Q*5>aL+xKJ%bYj#zC5AACCaYFo{L{xhuEF90b&wwScZ~P^&=t?+wwd=Dq zESr`nf4jO}*oNlKkk{hcX*S%L<9u6~oaGv8I-Hxr=bQ1p0M8VBI8mQR2@g(`pFa%m zaA_sa`0eyDFcDP_Aj=l|4I$axRi2NI>XROWA&EnYz-!*h) zJ*j*Z=I7$&^|10*;pKF609|b!FW;vqJYsEi&JfNy!uv1_U!wKR%|P=}Ej&PIO;4Kd zEW9Z^W=(s}e7|PyKbHSXu6%yjvKhR9H{CI|HJq=qx7s?kIhHMsgB{1`eOHp-oGbrg zb=h$FdA{lPD0A&y7D(U9&u&L|u-Uupxw0_gKKT!`+je}OurGR&Kdwa2u=$)cYI-&w z4M2Cw8}xKO`sgV>u!5gI#z&UprTwG_?49m~8Te-O^U-`V%*K1FbTiq`!{=n_!?lBh z-Nq39(-N)^TL;P8iVVis!cS8h;a|Zo;X^UvW3ZrFyrpk1UNrZ^b3=MizcRGjMqNBo z+Zn^Q>d0#vs4rn^OEPT=i}9=0zUe>w2d5eZ|NDnWj~_#x9R^C#Glf9D0x4> zTEdsIutpfp`op&c+WB9ld8$<2ey6tlxn?fk;2A?hP_<_F_%z3yL8G!2S zy}VB{8qNRavyCqMl%Ls0|9JWSMLHRGoe(eo_d3=ryf*HA#e8lCdz-}{XN&XGc46fW z>Mqdk7It^DJZoE0UMUlgde~yvt5u?=)?O-!M~m=u5m{*Upf0zUMt#~(N0D_ilISR$&~ zCE=Pe5mk@oXJg>Q0etZ=zIMENXRCL4BFgaL75usBMt**){l;C1sA?&ne9)d{86NH8 zPw?HR_-2RuM9;#P96Wf=*~<&|DXZYZ%g%mY(N5U(qId!CPJ551;m4B+HjCFIu;3wW z+NAGSu8-IfdyOo)?$GuYI5J<}4X(51kqeDQU(6xjYLuicE# zZO*6vkH!yBzKwcA^1cF{6DdTqPN9-g}il-XGS#@8V~Jl7qb%L~^Vl|^A*xLhA_Abn5HH@wA{;rq0{Uy_C$ z;hm}BIi7GXR#8D-I*F09NDn1cgJN_OzFm@}x5jnp0v;tp8*Rfia)eh;CqDRw|8Ir0 zKJ0DUQB6prcJtEyYA#9{Q-gg`z^--__DH1_PTG#m}VSTsX4}`>rZ_t0F^q zhi}^abZk$a9nI~|bZKr{_a-a-7Y?QWW5|Aj5JktDmm{U?;q8HRZ(d@12+d2IISzZ` zU>Du`Nb0Zn2Aw@dU$>Lb`WBmHeES>gW@P-xHQ^KR@P4!y-6Rbo)8~md!pphR&V~y1 zn4T8BaEvzL##ErjtM6`#zl+bBP`+QNg&wwPVaYr`Sfx9<=Fad2|uh z*09dj*dHZlYI~MCyW#h~{= zaXqvy9_zrgC=u2CC+>S|`uzv`n|{B5w_l3?HSStJ&bH&msg88Guhv7R;y1mN6c5*> z?QfIuP4$GS_u}>wIapDD+q^Z|aW@l_{_Zw)?~9_@ZoMuvv9`u(4G*~0Y# z`3mH0CvRIn^2)3EUEN=_{hFM3^mO9)03NN7yU=+*bJJarBI}?{;Ag z$~edTgZX~J9BgEsN9D>`)MS2=i_H)JYx+?9r<`+d_RC+J*lu`Nc;&8akIjbfMuh(f zgfrymXtvFEd)RDvZ&G-lQpaiRcA|ET_5&BNomirYf5$uf;xR4u11s0a|#2 zwl}hIlocN(Z>c)r9$k7eUpZHsQ}uBoYLGry-|(z7TtD0P;$pHdKj-639~jdrcGjNr zKXKzgr3ZzN8`pE}@pV4Kr^7qf+Szjn72lH&gEMfeSX3{hgKd9DNBFLRFU|a~0ZxYJ z_rm`iDlQcoQ~PxBx%85uubb6bXdj45w`eD9T9CJvz`Ys9mzJiB^m+K5qMQzsak?F8 z4;7Oi^c~TGF@!x(&&_1H934f@VY#UAlX<(nGm74_zxkg3INL7uHP<7|zqt?3`^6gB zz?s7FadRE_j3K+YP}x<|e`G%)eu6r6>g*~UtbBm7U^Abxm9{$X!(=N-XIES4?_&L( zE8Is|CEOQgI8zSq!;Zq4*JJXgqFu%BBG)$dU3=A)zkwHcmcJEqn!aYB+t}>=?D)xe z)cz8BR~}!f`5ygST|U{;H(^ZtIE4Hm^(&eAM$<2RL_GOlvZ6?NUj$B|ImO_DOg@MWXz_sgCpc(KYriGhoI%{&bVQk3B-eUCvFG2;1yS9!f;j=(h*# z5AN5$aK(e@Vd-V+p*ra=mcpCGu8Z!`e-_rDFHocO^gGqP-L=v!`0Hcs4bE9++nddV zVbkSLGd^Jq)laqONZXsBCe$?rDNm}qMw=dOCoF(z3!N?9st$SA+##;-W#l`KtUYA= z8C8;PEn4h&|0)_dWJ@h&CbYW#}!Oh0GHaHITrWJguv6Xgw1)@%$J z^}_Q|L52>pR47ZSQ#Y4x$=P;2{+E#B9Q(D?=H(MIy9VLD!zpmrId-BoYe0@i4;bMIyT*D`vyM+H@##Zb91=z7dyiMLB z^3Ri=LZ-{aFBM*=tVMV;x|8gS$$p=@56CBPQC|37M2+$$VbeYGVOi>B@qkIz+4Q>l z-(27J6ys~`4-O>vv9Rd$e6;2~m~t5zuXb(^Kf`^w@Sn1AEv_GD=hgeIk5|e&KHP zjQCT=O6SSf=>4z8^h?gViw}JT9u+&&+1~m%*f@@d=V!@p(#Ie5O{RHdYY+0?;93}d zPDE?Or_a(xdH7FSMw{dbN1r8SKajnTJ~uQrHqks7?b0h_IKOJEr^jQI)6MuZ$$y^y=&b%C_0N}gwlv+h zC~q(iUFwe~Q^W4|cX);WcBjAAN2h-0>+e8%dLCZ3!`Rhq|B!h3y0iQ)#N}~kYjAF5 z-17{=SKwX|X1*VfQhyQuP#kV%-VlF5yQkv*kE?94`io%WP4Z?6FNl}_qY{Jj*}aw5 zs+SPAP9!HPzeYHZA8HeONdD9MeK{T#-ogJ1dGNTgB2hlO>Di8d59QZ8C!+K&e0wTCsXHcynFbt-HGSMY6KS9{pdfyRqx z*T+X$cz05pb{+V1jM9D#p8G3Hk_BbsnV&`F`qSi^qk6!93H ztfJrDP#b)S!^iB6d*Ugo`E1f-pKV8V*rsm4ut54s^F6QR!lldmUEnLNxFOyCQ zLt;Ti}8H}|CK81VjMKYD|?_6Vy@HM=1JZ9YCKfXy} zC{MB7%DcoL5`RYd8+hp>_LKU?kko%SIl_PFGRBe=mNw&y>_6-$*OIMCSc}3Lc9NV; zKa$}qe%X!ZTX>y4g|w0~1sfz0r- zXq<(cl}{5k;WttFspv@MyU|4-`Hz~H6U~q3fWkfg=y7v5wk}F9sO$ZPue008^?UjI zc0Iy>qkp2l@u;+A+%uSQpX`b|8;tueqp*oTO_4V@9yQ$-_g+omW75yX%g;(zzQ<=j z=Vxp+-H%UfY)xhFU8n=qY{|c>*!Q*x-*V#@(v_9=78~*devqF%7>z!ht53aJKs6`Rw7+{JJo@7em6eTm5kT3{!VUy4gWrL-5@`5%mnlPdwu9 zt=0NfFNT_SrJFtQ-&bfH*?R59X?GN?I7Xcl^mB@`Gw8OFt}oX2rSdOB!V1)Yx-LP= zS}syf#_W~$acSe7PM%r%Y_V5D;s3UEbL^GGzc8k7hF+s>8t<^%J_5C!Ux!Vk{=hYkl!qvu8)QCm-62y#8+w0pJMhc zDY#P!LwevzaYR09*+)2*uUf~#d+=)~3eVxU=c*^{I6Yr}e@53qy?E51U1oqX^7Zh= z^z-^&BAiW@bI`&1sgXBKd#o_-I=d5$7)6!? z;NLO%sQV1@OY)wX$VbObhbyz~73SrAcg|V(9Jn(RK2D*hYpl1Ilk;Nfv+3@nyk|3v zZGU-t;e&5#ApYwpqst6EhWBAs-bOBRC(~q}Or}evucX&0NPf7N9?n_Pi^=$iG8h=1 zRZqjI6dW%inRsIgLIQs#|_m!RU-q8LX_1@O6c(O|z&n%fLA61Wx8EtylLl61Gb!2${yR@&e zjo8Er*f$FHt%Z9T&k*bc*IG~q{Bw5TB}`G;-n`I_UPR%#@J#uWVdVPSwxiATceH-! zreJLeXGF0zx$^%3dp2Y{<}jRlH4nEx+Jk-2eaw7jtz)eth`>+U;Kld#lG-tGZ+mEGcd1ePnd(6YvAVyHl<@YET zjxpyKOOq$qsV4sOBYg;aKVuw#XkEH{omSpmBt`uH}OV@xPjfT`(!llf?}-|2ZOm|L)phi@z~PKGG}cVkkPz z_r9iex(DyPe)nAY8N>EFjO}Ukp0WR6j1~H?;^Wo!U+lVeOfOD_|7#W+$T!}2;b-e< z#&!xkIzfH;;}0k2SmRG9A59;0lG@QYT(>0covPN8_mh6Q`2c@zcvN3OzqbnEduFP! zU8c+&gmJ`MtUAft=xS!%HMutXi*KP`cn+x#zJ1wChjndZ zIvZ{t_9o|E;=7o;s@=+)!mUlY^&ZD;{3hlH-7XL8ToMLMdMmw zEc(c{%F8I5D}Nr}6K^oCY?iMrSN4MR2gdqOW3!I0-P&G(-=)Xc6C9!63D*8e_5)Yh z|4eljW6$*4Y?yO{JIxT-DnN$RpKMIr5D^JP)+yK;zw4-+Kyo)5kD%2kDn=*^S9(4jR`b7yN4Y4}HV3=o@prhR(k> z-y!}b`p~=wTYFgkLUS-x{9JQ&7}`l$WG=$GG?ATMVXX@H(w=e+w^^?I-jH-7`5h3%|GyXB+CefigceDa8VRC_$!I92>iYmt3I6KXjt zUw*G(>;(QePWk}YRjX}{a97wgRJ(2Y@uu3roN(W+<}J3K*WWVXA~H>5=cke-A#Z2$ zY$!F8lm zhKQb8QKr8!8ejdE`KWy`o$Z`2pHWv?!wd9Kzk5FFqRXn0`W3Ga@tx?0UaB^Mhj}fE3>U?Hgp&e@Yj$Q}SRnmGe z$$Hh2kCxq%kNRcvQU5l3)#dd0INqq?QM61x8Y}-J=}C{cM{r->JLc_OZ)8)~(&2b> zv8O)GL71P$3jEDYh=+To#U;i=AJLLJ-@J)C!;1Uw3jf}Nua0u9v@;*<53}qeGIzww z&y0q5Q=~iTcT639y9Rj(R*%Mq&4%~fWh#wtB>4^@FZ-`P-TwIuatLd!x0Q5JJV@M} z*KB1xzw7^9vY6xOczov3{o{CF9k(Av>%xj5umVQ(90kM9gqxQ-Uxs&8Gh83e?!D(9 z-aFEKE8M&@5lvbQQ9A=UUQ^-C z^>9-k;Xl5`qv6?sc(A9=yw_hkf zQ#9XR=t|?d1BEb#2B0I@+NEslHuRx1A5R^?zAk19^XT(VI_Z%981c{cLHvq+G+)e5 z7P!ZCKO1?1E}xOtDGwE%&PNNMVlVPD!8RUneRG$3^Mz^qoHJk!{nziLoE=2wEIg0b zG?z{5H+?!=KS6l7x!7Ac46*+($60<-8c3#B$a)W-dINrLqyAaszMCz-hR;v-?rFp4m zrgo(7VQ6?fDvXpCX07{$f#`pAo_S$6gHSiS4Dx-$HaEv}1lf7Gy3tJACmt;G8$=iu9ZO?}IRyLN1x~r|R_8awkYBQXT4aR3PKKJjqGjHQN&v-sG zj)&pbmd0@}`!JSheX?vw_I_mi&K!h&+3xc1RquWG@$99-eLf7HkD*YNAe_Ln% z=>Be)@J-ykUA|L`*Ad#E1Unk}$<^*L&BSYte&+Gj8~Ni+{IgYfmouTP^AA3{aH;qM z^uRxhx6{)C`k2cHr{jf3`y_gt!2kJRcz=H_xhw1G?l|?vt3%i0#hd89%lOs~(B?m6 zec!%d1>3MED>aezT=vsKC&m=}$^Y24G+w@(I>6ZRNnJ_q8}voC3FK*SlSj5eFr)qs zdoFU1x~2ENR@iqH;l)r`5%6LKS?i=LQEZlaaFnfYWBHe_JVZN0pz?$xhxH{lze z7h1YVKHjV7=1w@&e66`T&zzj99SXW!dpUWok#`k+UP#{4jK4woSbW$|*uQ1JGe^%D zoB1l8EWVcQ_@+X*woYf*_^Y|{JE|*S$oS3kQA0J~Ov2w2`Tsfm@Itt82^>MuMfs?B zzB+-Vi&y8Ps%d%8oaWuLQ*WNN21Vj`&Q>wN5Z=_QGij!K zFWQfrDn7;9aJ}-Y^8N>;4gTRj_HFu4q543RS3uD-fECcb`R@o3`JLk*aIcrlVWvt`&fP$a|W8&V>I>T9{DNXobmsz^1F;Lf+=^Rd(bg;-gUj7b1YbQ zxOHX;{QbnY=OYi{D~hE5y$sb?K3E+VJ3q%@3d z;XYaT#_H4hP1D)$Fzj;Ue$g|K5xvk)I491I?(b66s(JSq{@93ejmuSd`!omT#$ z4ZZa&f+@{>?Ihu;@$$KB(%KNKja&EB`P6vY(KGP!8+{Fye}Z~b<5A^YZRkCDwfb;A z;;-5IUW#2PFYwk!;UB%0?sl5{AZ!{Kz-;X2j{t31Z4@Q|+Yfl!%c848XC!*4S z$@K=l@VRi5a236_7C!7i^drc2Qw;y;n)HL|?q zI_1h-`MvkawceWulQKK7d;Zlr!hRLCjg-g!YwGg;4`<$wG_OaQUv^M`03RHq4k{g_ z{157#$!}pv6MR`VgFV2eq4VsK=l9}KzuVQx;_(1p%V5!Rd*z43@0H)GFZEVwlZIDA zr{jGsUT|oQe%or~Z^ho$M{Ga+1G}_mX!tDWS%h5qtU9_xe2ZM~cj-5DeYw4{?t=bn zycKLAT$fxbeXg*d@FQoYBRbtjLY_H~KG5cPwmC)l70SbVu$-Nhf=?yzK9PSNA{>e~ z*Jn&$e_-b`rCY`C6kkB67bqKq=Hols^F0gjd>8%8-1lP>>$9&dg(Kqjcf#Gw*S11u zwc+|W=~|$Cf1!dehP}8k#g4%D>|FW($EAa$N9uE9axK!wRb$+@Gq;zS<7F^tHNG%t z{CbI~jnA|UWixxSEBlS`9*Wp8!jq+~W8uB>;a*O7H+{$HiKvEch5uT`*m%WQb~Ty} z4oj4u|IhYiYhSaeH{-q;ub*4U%=gk^t-Ft|?Dw*J8uwIm4_&N;Rj-?)kHr6GU;2gc z4cBQajN{&1`Cdn1if~``T}Rr)x!%SroMrl7e!5ED7qI9^ZEiQ-SMmDUIplh5lpPfN zuo*Ux!n5IV`d=(=9%8o&Z_?Lv@iXXX58;OTT!Ytp^w}kB!~0O=+v??OsRN8DYcEym zeTQp_-dg!!_m;+9NspV+A-`NRoDbH~Nj?1>&Hw3gZNLNmSv7_(VL}lOBzLB(9kijl zaBsck06f%dfN5*ZL3l4nD-6lPw(xDo8gtPxnP1Ps>t=M9{moMQo(Ek&E$91B*w?Id z{nX)}ov?d_{vU&r%j{k5x4&7O@IH6#Z^eJU=b&1&n@Xl@wY}2(qN=Ne*XUE&qOb5D z{;snUzQL*QGsz=eqh4oPAJfFOk7*y|8sCKX#qusQKJ8P=QlXD|_E0z4v!N>S$@02q zc&1zXT5Z=%qKo73p@XiC^$({~x3ifO*!)K9=O%M~JKI^W({&RXYMw4Lf9A6NPvXD0 zmZ{A9W+yz^5e^K23F5WF;x759YIMH*z0|hj;m}$6sQco4)Npk^`gtmhnwfWP>N?_zZ7*(PaaxNeJ15H%+8mdJO0|A&bOh{!FYyn z6Jz}!89ydpfqcdp{*xNsAyhh5`_bgwR9~MOQzsvDCRYAd<1Fd@&_rW?23Fntf6qJa z6Zc)mcvLzi?uaLhxeKEG#P*LhkIz@U6Acv{Jh6= zNo4EZfo<$zUg@9-g?B#Hjx>Km&F{AIx9S~FSm&yS=l#!$zUXPKbb&sLgT$-oYhd1a zHQj0#_M731EWG6`HR%@Y1corvoD!Gmw( z<#!DgtQ+Au>9n;YoU3H|zzOZDD%IbP{|>`@r$qU_czYFI1Nirr@NFr?93o4SOURWV)TPNXvO0ZPCJIJeEIB%{Jwr?c;-?(=IlVLerZXwSE zG)8=gv2Gsso)>nri@33eJ#_M3w)Cv>KgHd%vbRQsqI!7L{9wO`XJ!!oqr*)2aUJn)KPMKkHs;7yaegN#y;vPZ`f{ z^mM5;ZUNmaq2G4tmB##xxP5rIFWU4a{e2_-A>Ght8e>$kz)C!7auqaXeq9jMKreEsNnR617JV15qk)q8m7Vz`b< zFIIoP@Fd}S^nX2mzuALrm5U0S(`%F~zxONpH!L{>j;xFK;dot!Cz--?GSTt!P&f-L z-GKN;`zLYFIwagHo#YU`SKcoKQZSt!xXZL3$ z%J)l>`zQQ=o(*jw{SR`}VR5#;llpcB6!!Y%_Xv+6>s&bccrGfvOLp^Lf~i$-CK?7m zs?8rvsoxRpVD5+T{h0Yz-o81E>1U4rmGfMJ@b>Vv)Y1e;i%i`wtjej2+tntkl8Y&4k;Qx~pAr{}D3!b8a>FBb5&L3&T+>xsKY zNH0N)&1;8wcoV_&Xe;zDb5n#pLyeoROV`i=yDHwt*E;F`qu&2OglD3vw@;LxB@FLx ztmcCyzF7E?-uPzhP4qUqVs9DPllc^n_widD_YF(&f4WB60IqC9-*n!+pYRZT#+j?5 z`17&meedXLtVJov#WL}Jg-%%fpdE++gBS@67P{$rM!Cx8-#=5S^DDh^c3)~iazGD ztMBcxuP`^}Hq~ve{+o-&+aHyzU*lm)>%RG@=RjC-xV7z=eEB;XYfhIwpS@h6-W2E3 zEzX1H!==GeRy@?@iKYdQs)!l-^ux#IG>7zaT!yGF|FaBYlj(^aTn;hy(VA2m)5U$*cc<=^wI&*St5gJ0t-PilJ?n#Nzo;$iLbAWBsDgx*fbmCwX_ zo*~O$$nq-;Azz1iX&Fhz{mo^AIZWlFu1V%+vT^+}AEmB?O;g!}Isb^AG|ZE}!TI7` z|K*u&zGteVe2se5SF<6MP3Ozs6VE93qKfjnWtOU6ke+}~cn@FOx$NtB{npdl0qlaE zCdrYGiElw~8_-{0b$+0;H_Y|D=;EAnHDS0H;ru5X)7PrUqY=kOoScKV5|VX+tK`Oonv1!Dp(h3AV)?Q}`+QKNPvh5w|xWp%#ME4-%8 z^I^i5@c&xgI@($1(!WTXzx1={Nd*7O>(4&s&HB@`&>We^s8jsac=za=1Qs;d8^MkC^AhFvnk@}DGn@a!wlGw8LDhx!rGvZ-`IwJlOL0tokZ5B=uUdL*0_%n?k*fCtPom1V_T`W zoA_u{gSOFjt?@la2X_hW*V7CCPd8y-RB-MY*565;&K*0;XGw*3JEQbx(m%nc4RiW1 zZ)fKG&x8*?$giHy!E}E0Q7_ee%Fn*Zxu>BHd?>8PE>X#v7XHVc`B|I4;_<3F%h3Yu zo7CN3-mm%^t=~T8!~P=Hmkk(8MCS00szR2$v(W`)Jra!;-&VMi|M~A+^gG#4BMA~bJDojBmY3-CV{*|^#Aky3TInpDASX8Kx7H)EIES>M=I!!Br77&P1(wG(@jS2aZ0VD=Yi5c_3& zYc@`J@3!^%OXK8oJy|%FHa6Il-OTttqNgx7`;y^OIhtdiJC}c~YmEEHy<3+J%rgF4(EarLblmrI=>h&^zd&Cr|5k_^{zmVguz`2w zy@lSEUM&o1lzm4X=?0kJq;2?*>00v>uI*BrS{vv+JX_tqGmIF)|9680!p4!xN5Po5 zc^fNzsJVeR;eTDJ`h;id%-2bY@^>6l7s{KA&sFaGrG?Y&lVH%D^X1>>8KQgezhC+x z=Q=3-r!Kj~{#btFUCI_&r_{^XZ-x8$jW^1>L5Mm7ZnfA~O@mjkE4*{9<2-$wMTXOb zs5ZrBP}8aQJ|`$2C)}UBdn#vd)myW*4e|exF4<`cmZgrTXZ92=^K8j4=3)|Ce<&Aa zKFC==^X2#QWOlPg9V~t#JhA?S?|s!=@9f8#)H0im%u+Yr?;4vpx*mnp``RmA!WF!j^}!bA2{eS!b=09h4OjUkZtX7J~fiQ_+Pa!MeZy=3)eRlo07k;y6~u> z8$Y~)jLqx}mbbu1Xj;F8c+GtQw_QKI z2765YIjdFbpOA-tG~uV?ePdg+MVj-BXQMVe<&HypAMJ(cwOQXyeCuZMX_EMK4{$!6 z`a;_V#%*t&gmI@Da|N30o@3wmeak#==FHJsv{?hawQS42JF_7h$L~9gWaGA|M>ZbG z_BCwW#=q+5t(x9aWU3)+yv7y%tmau@FKlTrFTaZS9iqO{k!Slbv`jv@LJUQWAMdhr7_nH#ccp}u#N#tW# z;k-m>dBX8R{ZA+I_wm~nCA=q)@E&s_G<~Z6jrN}%|AyXA@Y@ribR~GxaZdYuc<47w z0Ou$2_wCa5q4bHsdQP1H?>JDY?{F|Q5!y}zc#FAR%XH)M6`$?wu%E^~D_gQ(lFpgM6?<7~3o#QEZk}|$qHU98{(E!Py}SA=``FVWz|Cze26Y#E z)}ck7LUP4is;0%z`dt2llrK_P1;3zEwWH37eH< z><<~&J2UxzU)##@XPc{@F6_@8K1qYS(Ncir9O5~-KAvvwkg`i z8(*odS8O*=eCB&Vx#tjoXK~sJ@v|$vr@$$6eud*Ya0?x?Llge1*tp|i$86j7jFO$= zyS>F^jn{+P=(ltgyRXsyi*~lH=|t~O{q)n}xVVG-_NGGkEz!;o!o3--f71z@rYpd1 z>Oot)w-xWpEs#UT?~NwA)>ry5{99Y;r+{ln`S%)LSO3*@H*2wa=Zxo-$b1MGl5zbg zlmEtP>LjwCmT^x{+a;O&|0v^i(l)wDpYQm1WB;Mt)bV0-6o7bL@7{9pqAPbS-iVxi z@K%iXz45+3naap?AfETbd#Qf5jrZx|nkn8~>0BVS6b6ghLbKGt4J%B9xl5r2utNiVaxbTK+LCt^$@Q;g(~gGYU9r_$FCj)2VV8Y+CE(D`{(BR zhw>Wp_9fpY_^G4&RqpNY$sU&`^8fp)TCV&q5$e{LcUa@4TUqbhgPp~L-Q*u7&Yk+p zDdb4id&*JvaK5FzbQk%BT(+Y~E+bCFvGE+dntxY+k;vy^A;!9Sz}l&{mQqJ3**G{C z49)@KeVuqt5p&u2AHCdv+0CP5dE!f1bUZQXE#}w zcUzZ_T6Y<1>UGB}&G9uE#kll;@gl}`fWqJ5{a`(Q1ouVbt>dbxc)AweX!r;5)k5v> zmgmojQj^%R(!BAR+!>zFyB&Y)XY$uia+lKo9b(ITwt6`eT2^L4)vx|%-_t&B-^$sq z3J#Ww90i8k|3`r{?fd7-0mj<5F4PZ#|pNF`?O6{pQH_6seR1*Jv&`TAMrn`-h)YR#D8u9 zKhaHTBIM4YiyO&y4`?FmE86%>{2os9-?m>s2jD|(pTK>C4i?kpT)uS++!~MoJ@`sJ z-FTlp|8KCb%o*d)DfBRrKirk^jfzbE+W?W@nk8(uJd@A4)8Aw~^9J{C?Q~T2C*1#n z4sv{A%q#F7MPn*m{~z2T+Qo|aELHAqYkN58VZO9{eq(<60QsV=_9ByY7W0B)Yb2gu zSC7>`PTM7pPt$*>au5Eox%!{@|G?NM(71=+(^I%WeRt&}{67A(BIo(14l%5eK6f$a z9eDVhFKmUMfn+*Vd7ScJd=W1M6##I$Cc0{mN581DeZSr@hsYIv*|FK+e&V-^xv@#H!S;&Y#4l_PrhNlXMO% zUb)6oe4ultgVmKwwRP++r{U}Ee7#J(t6Gh|7!|L9#pi(1{neM3d+rsu_nfZ4=filk zr{;DcTm+5rha(fDR z4A6bt|Kk3b?f^fl^Q+=*@bnKl7=|Ztu8`lQ=74AT<1#vWhcCXJ2-S3x(^mWt{%2_C z*VPw;A#ium*B!irZpve(|=giJ{Bx%ggfeFL9- zQu!iz-qiOlpL`FzrJp~SKCXTTeD-eG49=P8^diH5?K8*Y;nsxT%HZ#F-&K%bMtjx% z!@2Dd&RPFypE*PQe0KUb+l+Hw3+ijw?mRK-bhsmv`F}PPAH{~wajOQhUordl2EX%* z&&Wp)rSwprrIRMdv%nO(n4mnz+)29J1T>Mq&3>}uVmS?)9?6!skZBPaKh5O-B^j^5 zm+h9#|5K&@NHJ$P5W9;A_I;k=_q!KyuV3ro$lkv#fzQGmytKMv$}G+ zxE;R-U%MGySp!vnSs$y&y@X#pKo2(&}IhkLVe^`(4yACZk zvDaMlzr=sPU_WuXn*1d@<8@E+mfC*?f&IyIfb%Xe5|r%+Z=gMhOr3i;hF|2IyRnyZ z>=?_w&U8Iv`82jOX7SUha_iOk_I!8Cw zM>vx|Z0h(*I_YihY54fTHP~Kw=D%$lgN?fCVOzZKz((6?>rH1J^tS}>Gx(476Z(UP z&=_M~`)^WiA{kzH9#MejUDz>+f3~Q;(tP#WVw`ytKTorj{Up4gpWoKJ1?PSJpoQ(* zw8wL%(s^KxwLe>VpLNt=jC$eya6n2uUNdY{R9i`Mc6-Ppsb zmt{hSJ-eWnW5F6UWh4d$2mG(B}M`*ljZNZP_-3gw7s9PTgN?!h_B@bXTI^SH z^Yj9+dBXqA5~1xZ^4nLM>gaMRUEV`Cv+09f;x{DH*Xlo2d0-->wp6}p>~Zwt+$+5W zyWflUcYI)LyzGak6O?1=A#Lu+*F=0>sU4s3d55USLhUU#k^#?6)4(kK^Bg~i*X2t3 zs``d3-zmS>_XGT&$n(3lZgR;U;)T3v(WchmR^pEs(y)ts$oed?4wqKwA0odJr)o~q zKgK$|NGuYE;x_}*HR8{O#++jvi$|&B7(@dl=j8+`=Ykj+2nowd^7!l_P6;EKhFE-LTwN7!`tEU&D_D@ z>%}2##_mU%j||1N_*sbGwPfGYxzPamg?*{|7_nxgJ<6U{I3^iVW7RJZuasr+_%zo| zP7uQ@#i??*dx=lmir?Mfzm3*h@q|g zZ!&MhRvVH-j*@-}OwjkPm~^Xa?APL%565_vin^!w+_~zL`2C&Y#T>_v(0LR8f0F*i ziwI5g;aU^blgZ0IspHjC>IwLVlYc}ae;=^zGV3U@>*UkT|IQ0-5yfjQO=0xp#pb>!mFnmw$SIGPTIYTB??@HFgG9mRZ z<#`$ReU#Q)LtJO<-F72T#`RWZy@flqi#1hKGF{I|9+JtwI~)IN5w8Q}zX1`?)t|KY z_9SN+9?rlEJ9JDT^X=*&70X+-)#Fclj{f2^;_0*1|B2Tl6QL~$4g~wdDOVn?f3&fD zI~Z3wla3qJ7tza7uRZ#zw%VqUFfHu_MPD=+ji0iC%qLrY^fh!1KqXp z?*?{DfoQ`R)7sF@eN^r{HRk;nD8$R>c#79{hJmffyTRi8dy#p$W4`|ous$0$AkX$0 z&+=wM+YsgH8PAht^6%lMuA_q~eD!W}KcxO7KYd!?BIUE<(R20{$AwS8X*7P8_GykM zqj43wql_zs-%b57^A9j*y&SIue|O{aJ>|xD--`_7X{aXCzsYuj5GuZ@fcDv!YbiF9#hCjb0O!};X6l#FR`Z6^Pnhur1b#(>j|IR%_*%sKG2 z$7i$ZuZK&2@tS4M_=uB3Gw`WuYdp0V*c$XOh7ZP^H(u|J-$4tnKG*d;!~o^qU^@63 zI7drg0{0%c&nn+juGQ8Hot^PpVLm(;nm3;B#CI}F=PTJNp3@h9>DrI|I%hAfES4V+ z$ao-w1SKE)|`zRA?n(1UV-o(BzTHC&$gRG~6m|N%gLn&LcUCkqG z{SLc!CPLadRD8#?+FsOpp!jo`J?d!ZWXIdr{^`8zMCTiF>w0@u-N8vbh(*rdS~ix8 zf5%U<=-rZVzb_%)v-|z#8o#*fAA)D`-RE%pPc8$(8(pI$!H_JOvy;OR?ev_F~f zjY>Gv^-WBK>XXQeR_X`x-UOzRSv<{M$6u`Zw$13ioF9_EKKkmd_@RgV_l};y<4cZT z)Bg&+SmW^;PrbF>Fj?D0%7fYPH+&zRTj_~KgevFerD%G7r-=0|+nQ}f@* ziO=%<$={`_mR8~Ynf$vq)z@ej^YZ6G`(#3H6Syt>;3o5kO=0$P`D=aQP&$s!lAce$Sx|uI zeelRP(zR?$52+b!_YfKQc*_!P{JHQG{`+MYbbJhl-^b@p3*p6Uz3EHII+V=(tgV}| zXom~ItLAF34|m$<&gbLv@nny#?oQ4E@~wyG)!JTI>>s4S{ulF#d`w;Kyy>54M8Db6 zJZu>*qyK5(DZYrWj<50fmv8gQc{-irS2@Rz?_G@%cRJ6K|6J}H#MgS4=SI&))O*k7 zPS-wWdOo7THNX4Ct_Qr2JXgQ6?Y{r@-61|rF>Vq%|B-8-3r}typXZ40kH>E%r#2VM z){*&b^3Emy#h@qt-sQjZ#IQrjcWWm9@7an8?@=s**8#s+tgc^|$-nQCdWycLu=nsx{<~7?d+F(HdOenozI1-IFCCpv zH@D(zK3>`)zFkz?~iuKrAYwf7a@^&ISTo`0O{ed<~2cV$EEJ>E;6>A6|7>MjKKubLdW zPvaw3v-zKiJincL;%zs!why)9wQ?u>&+hD1M#eKd&o|XG#m})>3%pmz#@4AcJsb_^ zaAVH#jLl@S&*CeyJ;Tg5#`BT*AJ zJqw)S5A-qa=WN)apgAnwygAI?x;gB>WplW=XLFd@VJ~~$GoQC-^Z&_;@3Q1Jr7vUk>hkIXU1m;^W)oip)rHQ&QibLh8Ta~SoL=XyTz9O|2V zcnO;1Dc}oz=Cfe~y3^SC7W3TbngTtvUuM5HfBe2z(VqNaLq7kam>`y=XY+3{Bz>5; z^DujdWLSDYGXMST_#Mr{Ht*uCUlEpVQo$A#p^tLXh83Z2s0d}>c{lFeWEh^|?+>%# z-Tb0H8H&KnyV!aT+cl!cuF=L-i_l%_{l8Y{O{>uU(zmHrix;2s2ldV$&{>xZeR@=c z9eP)UBetvvt=m?F={r<}{fjF?;f@vIiR~*wcjbq>RD}5hD#C!Wim+gCMd&fCB0PKw zywMe5Ip}_RMW{NpBK%d2&N&rf*ag~ZDnjzYitzHe6`}krZD&-3^YmW^Z|um5FyvS? z(W*_Lf$qTlE5dGrDqKUY2*>Vft|BsTToIQ3?Y+eBtz*1*ek}J|!KYsq6QAIpcapyb z&|#{8{LNyQc$(VO8h+dwo8G@R4c`Um8CL?zHmea4NbT1GV>W4&UztcRTB0 zo91wawR;)fXZN9>P0hVgb683@S6DxDL8UcQ`Li{%Qp{V*_nXO|%Z4^(%|h$^LGN~p z5#6WK-|gatwbT82dc4xQIp5kEX`LNm4e!T3dst(Gy6jYZ7M)sO@xNM=AEs|K)9<18 zjc3g}?KOXPt?8L;)b~d;zSFO71>3Ct$XqM3Vdh)rcmprXeFsC?`MUVM1b7l2!1MBeSAEaqZF5;COTe0yp0oTh={=u{ zFmx;HamR|#Zao+Fs|a5zpD3}W|6!e_tkCQv z|4SP<`{au7!buh3AaDeD53JKR@f7Q}x+1KIpnlnjVui8O(KvfZMOb`fMd*2WMfmkl zV9sU9iZHvpBJ@8Pe+N~B)PWUY)&3P>&A4^vXj0#lA+`qc~QHVpezIHzM!*D#E|#YTi9e7J=4|jXXubF$Ix#nUH6(T zZnD9m>1@Vc^XkOZYweN$r)>Dd9KP zY%O&DlYgHf?$n4U*T9=%U%lH}c))wg58H3&TL+J4!{DdvZ_n}L7sZ?C+bgUY@u>Af zbghB0)?`7Oy|~>v_$3>LSgXs#qlG=ifL>yTxKwOSKe2^4vaPm$&0+Ok&7nXnnpxHy zs>Fn9Fj`!hlWY$24`~h)2a8ijHiwhNmMU>&nR2bzQm&lqxN4|4aZGauM>~Psh`P4!@J^CL4sZW!6xjrbbIlCGjYE_9uSm2 zvhxR-{B^6`UG|>qind>Q@Ncua-cYJl34S9d{vAYG=nem<61sFReZ>a5A!~??tc(V{z!)Nx>bZ{ zdsy#1E1XMJgl>h_-)0rz;y%{2y|(Xm6=7aqd-(PhVfBs`VcVT6eD}dVyt{q7zcG7P zgw5^GqYktt6V~}5)}VFVz0%sZuJ=E-BFqst&KNEx{Iep=Qtl68`8{Yqp(3>DFRXG5 zcMzC=j939mz$c(yTPc_;R*VvNa_Bw`Ca4e4KU_@eiAHJ|S&#uaTipCH!jq7k=&$4eEGL|F0KgQfYF!8F+iL8NYGo~2zZAYGygm|=TwB1 zqbtHyXr@k8{tGSh>@EJSH1D><=#CtJ;pY?lM*eH@xm;`;NGG?6ZMRiagzUlebU;Oz z_78D)AAIdu5w;S~Mu=xYJnOy%88)Wx_2o#vb>(GKTiNeT@kyNO^^#bXWyhz*@W2vGZ;AjGM)(N#fEK^1QRetE1%Y1NcIpWawPaUh}zgOXoMayZF)J z^7;GhU9JUH7m7`%@lk#m?;kciDCb^mkK?mVKRMn&{OMy4+=agn5?92c)_++W7kBN& z1vm3?`SpPNw247|o5dJ=Y|-cT|DTKv&7L=uSBNVOeVRjZJL`TYF{VTgBd!b^Xsz$x z99D@bjpf#0h4pu+9Owvn%hA?&mG%D5=5Y2&&0*arF~r($Jk!{-#f&l9&uex)OwK-5 z9Jx?@xTrZ~|J}^C*8Vv8nsW5T&CX@5amRfxlf%?DhpYZiOuM2v)PZ);{Xb%ZvO)V` z{S)9-!T%kti_u(z{?ItrInCj{(ek6y@h27);i=?g@$y9RakzZ$c=cno4Mq2;<}gwm z94h`SBTpkpgBK2O4zt9}GY&H^S(l~oNbV}}DSME-tW3<>&%FDZkB(;2)!<#4!=XEf zz1xUceVW6RLNfG{FBUX=hgZJ1o_W@>$**#jAD!QPYrpuyd8b(4OU&<(k2buM4P`C= z+ZSFH|6gX;=h+rC(gBfWl#G!6AGO#r(TyUy`-K2kBfDU+Gg{wyZI9ztDY?OT?J>P;}Z2X&g)z| zN|%U#XNZ6E#lAXmuT%Uxzs@YAKM4Ov;QeHBULc3LT5fcM^Fgs9H?u2#EP6y9DW0r;%s8>7 z>Iv5to=k?4r{u8zgVD+|Q2MlUu4mycmiK^_i^L@OW6=n6#i{%0{62GtNv-I|_j$^v z)6-NszEwGeJ#L}L+wmr5rDw@gXNzTx#y6>>J$@I7X!rUy_I5Zk5aiT=myHcT5Z$yO%j6# z!k@7-nmgEU&|0`vMd*k2*iGfA;_>Diirw9eS%=59^69VX% zlkK?$WQow79@c{L2k`x%eV2Tla9SUBJWoG;r|7$%vXkyw^;N+ejYbRIb*H!DX}5^wFNP$SBf)N1Lac3rI(_4v*A`g+H=X$QS-M`J47>De%7CZ6s=<8HCaah>+o zTe6|*2J=raw|V1y@%mK3iSUlbTME7Xlw>R2P5Tbn(7Cl(wgp;+@Ha(gb9DOP2~?@K zZANBgd@eVB4|PlrINgm0t=*LLR^2X+wb19YVqlDQ_tEKW@vT7#O4UDucYk5^vG*5_y&YTTaMT%S(4hL;{H&N@E{)8&~1T+40-{lweLK~uSZ?!ohIIiLm?|($thA|aq$v(E!w{1bALG&FKf0IYj#Nb zo*&=c)!GJ){l$WP`SgLwP&YIIJrW`W#{qoZ zIt`tTtw9y=yU(KGvG7LC3fy z#!p6PB6>^lS2o3bV#ILJU2N%Pt^#~iUO`s+C^APW+8rm*T{--n&0)>QH5%Wis&2`! z34OEkbZ#-;{hi&n_8~Y7n*9vw$l3d5)M?5R2*2j(wcy1+Y2^}t>&p?MI*Bejf zVsgf7>XX@OffzaJF1Aqiy_0V5paamVzu&FwN+08lnM^0~+lhV9iQiK#KsWkHUPts) zELIn>Wi5R+u>AnE3udr$^cnuq??H1u4ChhvJcdq_xj+gu%*Vq#v>qZ0f0`$L$7|=) z&Ar5Y;d1Sx#bNp{JDd-cvG3mG+y(uu@v|}60^fCB65n?X{J#D}Iu!rvGxRy1UK{AM zo*k}chtt5JY{xF~+4J}hjNAmVuU72y994WTB;976ZJThfNG^iGD7O~sg8?m9&(3RS~|h;H3`p3TlW_w{F4lvf{){r2O2MDjL!t-E;Cl{SA(zkOnck2 z+Mh=ADSR$OYmqTo?c!Kf%mtULi^C1?oBwmP@lcAN*7fkWKK?hrFCIhBWT+)i*j#+t z0^j6l7qjYiOy=WQd}qH%y*N@IeZUn`W-NwB1dA%97h%bGtz0`**jo&)wpY5x9cF^~E}VP#xtH~UFjsl2GTsk& zPd|QxDixpoSPI-X3(x7-o{nwZ&DGC5hvTK19OvU@3>eM6m$Tm;O7?Af4<6sCCTnh$ z{aT_q1r%Y!GFhffTj$j%_X!@r!Z>-E>et!3{<^ombJa|rqgboN1~7=64|T5Clc z;bVRCuA`r|`1djvZ8(Vvnwv+iEzJ^}M-}v8vndr`OelgG5eG*U4 z;-NViM!jV3Ugr39a=#(ZcvIf}mih`jzl*kt`bzu{P8~l=T~6Lh>E{x2jx~<%D)BoKzh!ug{{R|OhF3A7VPAUPl`LD5gTJIc z5hpWzpWhdXp>5Z9t^eW*Yidid#yVYQO+E_JV5N0^kM(`yV%J~gTDxRI@h~va{?d?< z?`Av;l?e@Nl|AiSeY5%hgOrtL^WP6`KPnsQkFjSBw@00p4Y>>K+vBs|BglsK>+N?p z!k;V$nc{jq==Z;J^)1=Zc&nV~Htk?dJsSF!z?}@zVB$^o=NqzJdC_&~PqNQCj^9-p z2YjiR&3y2g5$yKyI0^^RtnC@Kk?IP-k<4a4L-gg$EWnT z67QhyBgY?_^MhmTG;Uy_}y-QU3O3*!Il8;vP2w(>ssv)LPr=U0m#(Q+D3DB5ley~*A zDA2&~3Lm1!IQRYdX^_LAvt*_*Gx+Nrc;)wftc&_9&2vFE)Sd?S1b$OV_X$3?FWNif zqYoJh;Qf|yZ$6VhKTbWE2{lu!$?@Pc@Q+OX-x}#L*6s*v*t5vF8|=B?d4^~=G2j^M z{d91q{o`cEN7xtb_hCnIp-5clt^PB7&r+vcFG&v(4|;?6ta#Ny-dRL*zr`UXHl#g+ zl7AlD^_0{+@ILrUZn?2o(Nlcb0582W`Daw(du2f!$!)J~vyA(L%1-#dqGL?k`tW`+ z_Eq3{+!%Xuo`Fhx-ZnI=KLqO4FV+^HA=@8(hZp}acEi8xS@Y}5eHW$NGn7itMHcr- ze{|{|eW;CMDTN zY`s%?uUI?Rp7N-DZ9y{BJ!}8Wiu*4ZyF|QSYL9!}wZXTIYfXkepCrS$RcL)77PmWI zlMM4Z?32IQAO22;W8LdGqKA7h1+L$1RrTgYZ?pwJwIkK?qQBS>1HqY>-TmY6ZBQTcmUmk3E(_17tZkhbOOI`iTiEF)}k?C z*RJP!s?nW^{=)4lyi@2tySWQo3!Q|QL&-I;S49|%$E(OtfaiEEc3UulZr0ItQ1%4< zz$kFV|H{}N^j}Pu<#aph4|{T_@)y4LBfsGnQ@`SGpUV;2^nENh`H=6tuWbe3PwBVV z1q^LThRQdSVaXeO46Ffjz+`?m`ZadsgDo%F|M}$VX2;LTBNnprW9Dj<2i>QAMluY( z!#wf9YRW`j~?Kw|risvZvj+teo+cabq8lu7ZY zM7g#84aBBaYk5Yw@0BPYw$3}mpkix&nzdin6(i#FiShfEp_>@ZjDh z5Bj@{Nt=TbP?^d9OCvo&Jh~a&>G*!}^l|x2PCQ*McD*mx`79Gkzs}^ZJH}@eI(~v1 zVNE6!>MMK;ely(1jGvw9`d`5ncsRkBf#TUV`ZiRq!H?J&za^Oy?}Att-&socfVV9; z1W%WN>FQ6R)neXnGWmZUclMMki2L!oM)CV>g$LP}j<$!KVxPE3K5(_Y<~q5-jrOpZ zE7`Y3-K4k%N6_Kecx^{A8|Q$n_f;JMjt%{!2E{3lusY^{YMiXMG*`F|OVCDs)=W zTa50w&+NgUDnC(zQuWo!%8%iGXij`Ifw3RSNwpP6Ts$=xw-N-{1 ztml4ax90FNSO!|a$n`zHCZC$Sf%~c(x=&gl@9F8jX)pJUdpCz0H*NNAQ*$VgBUQ?m zO8UsPK%;u^cnoHOtH4w^z2#6R8?$&5�iWLQXaotVOdAxB~rAa<^m6Io$lC0vdnf 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

      ewm$cG|rb?1Mgvx7_pK}P5jZTu73r8SF!1v z>cQ`VrOwyV8(kF)bBw*?+F|)C8!~GF$9`vSq4@kXPSRCH7y3Q~hmW^Ei7Ysoc|LV; zB4qEv=KsP0PUP*Iu=XsOi^;mX_I^*l^KExJF9xPp((~0~@^Q*si(lepwwTmbk;uH) zvU-NH>Jp*m9eDbmynY=_-R_!u8x=cTEamxDf{LmSx%sMdXzu5T^cHRzVjBRGt z_3Ou`aZIlZn~w6FYj&!%>_oQ9F_Eo#fi7d=gw%{3u?3k_aOgYs0bRz6hqzb^V3x@mfRX zIbHEfFm)2l|0(|&LEb!a-%?~90JwgU4!&?-6W!5A`Iv?mj5AV``rF1*PQMiZ76MP z2rWmG?_ijwG44o(4fl|fUeli`=bi?0WymXEiSJSui`Vg6D#bXo>Ms3^ zT0YEvW48NeHiV{IQ@+Q+4lBg^H~A_2TyZylay9#oP^NNo#D?K;U+cP!^>l*^$vMu= zfCu|k3taywJ5H7>T;iO2l4b5c60fshTz~Q%oB539s}rGR zIxa6ugq&8k|BBuDvZ`(QqZHk~Le?eZ!|mADDBGXjw|D$&^(ZqK&kJ4jj~1~nTs9v~ zUj?>biaa|g%&a#bj8`YSlKIoZki_Bg)3znuPsd3yA%7zO@Pe_HRb+q7_}G#}W`1(|0e8LNh;(fkwD|t&h_86+YY%{6{TZt3NQDn=p--=8-;?oxR zdJ;ZYz~R~K*2n)iUXjh#yV!Pf->>c&tNv2@iO=g#*Zw`&^%0!=!Z`ePWFH7?x62Wx z@YfUgCckUXlPg4yktO?Mvi>0!Zo-jr`aDV*>-%TEg&I=zq4sDp)#68sO)QP;{pGK> z(N)F!Y<|9Dw-ttb_s98QaV|yvw~6pOPOre{&+Iq6lE~mBK6CH*34VNo*Kgt5LeFa8 zyJm#8@LQwWJGYORdNSR>Y_v)78S2=vX!ANA`;&qF(g&(jOb+j|{iQH*BDoiMf0S-E z(&;*7w83fgQ*rJ>TnnmdFXgjWwrlbqbFLEam+1ct=WpgFLemF{u=o#ajkfb_<5%2# zn#@nbQ72_>QXgMd;@bGmLCkFnI@9Mua?x{~uU@w%5te9cPv7H9rxVtKq{l1Zql&GM z)~*_5T#8#wFgby)l^wtPmb{59J8OSGcuJ6Qfc76nCpgd&wEwq;P_s=6XXyM+*Osuy zg*JXG&Zp1X9i}ST_;G&ZDZjO4=mTs!4Zj}LrWwvnx50DnHSjRTbDTTa-#u0OV#RnA z=Sqh6c_McQNBGLG@ZZ>y&Ho$?!< zr?>P4bk~P`KhxLNzU{`QrTlI6az5!Bu?ucmw}Zz&ah$%&bJTGJEZ9oeuN6nro%A)I z;IqH5{mhP^$=MgtLoppx8Y}0kV?2q^h_X9~yS?aYC+Fk~V*~D=>i^l=xY7N_KI8W& z>&+31bHkHW{7bB_7du8SpF)QN_*8wDI`N`)Px-_WvEyj+;C(h5Ctce@Uv1i7{*ZfK zkw@fd!zu9Td|W>wSxX1>Ui&9ov}aS8i|g>zoh478@3=<$=)1^up?E~rYIZCiXPXRL z7ZiCm$*#-kte^U;{eIAKGKJ;J`#<{{-@*8Z-uK7%5^-`>QK;&z&72Z#+V?L;@+&%a6 zJA6a@K2ZKRZ8+SP#g}iBF!w~;$X`mf+Wp8iL!8`~&0xOvdu8^-;cLmhBRP(6{r>KI z-*prC;v^i=Va5HfGlwRQ(T;}iB>UdL=l;Y8EiwP#SmU9q;dSY?G}ax5597_GNH+y!}Ae?oMBC@ZU4xUmJ?~+HgMnKTM|1FavjO$Me_x zcI8}g)3*L@e(EMZTN|>Ri}ShTJ8`ualbydycB6x_e2jM`VqTg2!Sm8X)JN9pK`F5Z z?p{>a39c*9{>S0e_(pPTb-k{iJy<<+#Afy`pI|#8>H}WCChr&Wu{Y(DbNoM2d-IjM zo48cxnrD=C7hCj(xdZ9;c^p0v20Hr9N7n7E+(C)3u88a{j&;`8TSVs9wI44sYq8;T zQeIKKnjWqYce2>za>w|9)>9nsjX(FX^FQuujn|sj4iAMeTJaoREMu?7@$_Q;tdgHv ztlz{o&0=Nkq3|e<@D=s;z1L%6sI? zllWxzjN{Zz>{-vAv9DM9G8?uS=cJ$7pV@vb?!I7*jaw_@Lv4FNdrpL}yoSu019AP^^L-bDv z%TrFqkJ0WKW&bj{|D&sq@!?rzw$RsK{A9gzTPTk`n(3viC%+vrRgXi<`Lpxcx)?iEFuvGU|eMb^`H z&04aOKdu87*NaMjOy{q|$(Cd(A}3B~@LI0jPb zT+a6`;5%NzgT?FxpSjnI$z9mu0{A{jOmTntmgL%K`+{7<$4<$Rchm4ZKc2RrRsf^F4xm*Hvf!2$urpT7Gs@L;ou>0%{{qyrb5MKxZqq? zng376dB5ZP%5nYLrQPW8W^H=iyv*rz@;^R!h%w3%dtn<^M#1o?2Krh8i~0z8{83yV(@Wr?{2ce}!bkSQqt5P|N+xAT4zJr6 zR?6rs$+u3$nOo@aNA>Qh%w4tlP_lKT1H2B~*~W|4VoSxn>~OdD%?Ao&2l!|Xye)VIm7wqc&&&evzL;Zb<;sdgL&cl1>Zhjp=y2hrKS>f|G$j}P#W{Q-_V zqb}Db_u(J3FZ%76ch@e_U#X(6=L$pDTiN#&vc1Ze&Eb>Ai(A*xpRM&2eleF0*rcvi znG=+4EycK2MR*^_pDGIZQ|xW6weXde1AZ%4-j3WmDgRZ+4u_3C&OdDX%eC-Q)z0}? z#*eV59~tKnw?4>ckJqODexFX}0q}jR`(Y@23jd!Qzip(S5$>JNr^|i9rTBJ$ef6@C zw*%hqFURSjjd_X8_s?<*{JtATKN73{FrJ{C)}tMBPcb{k`RehVulSrU8@}6yId(aH zPQuRz@%>R_N3*owb+aGi_vYh19es5dy^N+Ob}r%nibuJgzT)?enjEhgY|C@aZ`yLT zw#XZk@3JWw!=Lo@Y6Kfad9zu zEnep1pOZZ^1|Pq?zo2g`x zT)Q3*7L)%vy2AIEOJ%`m^ia0eLzP6;J?ZsiXOh4$px5O#-tuuG~8~w83ANxIw zotMDV`RuSC+dj+=N0Z?nK7bD_{#E^hVQzmsP2%(fda;l1AT1WlN8!(bMqX3 zN&R@z@|<)0KowiZch0NfaOnxIJCcH_^|Z4-<{* zG{@2EQIBbH$oMO1@f!EvHzvsTlYh%vQ*QR%r*PojR&5yI~YVQha zZ+srxEOy0rDTb1{6C1~OsoFZROQp8MOkDpx#=6`XgKrY=RvL3o$ls?VGWp!NhwUrr zt{j(2=oKbQakgy}oWepucXsVS=U21)G`N&^rR8n=*YWEovGWaWzl~mha_ynoEPsn@(ZzN9!wUL5 z2v#nI#n<#XR%!oGaV7`f-c!a8>UoQep49$(+2@XwIjqLDAK=p;Hikea$!h*?Dqb&y zi+59@-hIQL-h8}5y%p|hp}+XfSv8sScO&=bd}(z<=9{s}XXUGr%iAYH_LlVX0lfc5 zr$zKLoc_;---x|I32UDud>_HFo$;GbZ0_OueEx4&I((ZA&Me|b;pBIlzED_Y9_e|w zJcQ0?@vVQ$JJ}-kKd1dqImQiU!gqU^4=u|>ehFQj!_EhgGmw2bo$bON+q?G#Hv2`N zbSri8gT)hZ`61&|ce3j>j@@W~6FZ-e%f~x+3i+?X^V7KPdO$w8Z81;%?XasNrmtf42kNWbKsI{i}d zu&o_i-3;qE+WY5}`PsI&@pryBK2^@amsc)>!&Pj%QvGZ{96r7p?|(9kIuB0ha_o_~ zS3sw|QkivC!%Mzj@R@e+q24d)^A_7B+CD>^qucndQ00gJ(`)e;<7nl#iSBGOAKfrUvEag6`oom_m zC$h73b)9w{#V^b4dW(~jUzATgz`t!ppXYln7w`EW`KrkGg*ta8BaHW8=LMg_SsOq8 z9v?G`oP5YA_m;3#i&*s1Aw{=VU*o&>@ zPf2zw=)zCEu=)Uhf|LabM{mB>Y1lw^9;8K`gdU_(1 z@qN=?!-=2a+WS=teuMKV+TTN6qqOZZm^>Vx+r*8}$?zvWe2jPR+x%ZDPYV1*92;E9 zmScA#54&b<3ro+De{TQGn)#WzlLKJnN%6AOyBCHF<_euwhJjn;v# z-9Z};wEvE;ouz$mi4o_+_M`gE%lWRA;>|PkApX=ILvOc|slFle9m(Pol~Znh;c4`h zmT&ILzZ~nj^WgabBtZV(Ah1QHU?SUH>VW9+pRFbDSer zzOg9tK3!=`QOL%{I(V$vB@s&V=pRp7qn!)*_&wdXFB$MRuA3dd7o7RNtnVJjytQ_M za^@Cg)@8|qiL#-v-46#=InFo5_pvITqRR`E@q%{?@x6H*U3Amt9kml)hrgN%E0*d1 zKMkkT`KeRvf79Mt_dKos)$G1R8C}_C5Wn%cHpm;}d+YI8bvoMXEFAxZzQ1t%MfUwu zA2tWJ){)~+?Kp`X^IcnPllR1N!tzI4e{WG{ovpZzMe;K`DAfLk*m#Aw)?{nYH=0l0 z%gNipeK-{7?o7UmpY4>&yq{T4hVT~oRUJk3Qxp?+e@4eB9IY`gY7U zF2>niC=nWc}y zfqLWI%eV&Gg7G%~r_w%aGJE^I^sLSKck^IA?m%sSL>s>IY-T_8uIQinrb_HL*WF5n zY<{2>F1DceCtTM?&wugxhvH~|zrBkRMtBxC-tWPIpJkj`t>QH?jPx$qeU$s>1@(Wx&e~qw!k^`e zTURB*sFBLqP~=@Ilt%$8Hm~vz%>zgpU>EDqu%#A5<+DyF;JK@75%pl(GBn z>b+gtKGGlDo9x@E|9It`1OtaFV}o-e)jdlacP}&#g6_Y;;UmP~!Sv4N*?rk~5ADfg z_ff`wCh<4yntLao<@c!ZY%>?BBnGO!?HE4fagW(8m-O79M+9Ug@Wbu-$bV`+b@BQ2jLm-HsDwsx2k84 zk`nsfCKXC2lYKkBrjxn6tJ!b3`)_9_d@bA2HE)}XxTovJ_^phVk+_%-BY%5G(EVja z%D>ogw(c~Ut?%OV)Hh~^ZIXQdQDyx~j=qhd)8NLi@DO`*!$+=jPaA%G0RwYV*3kDJ znR-j{FFl1Wdys1=9k0@VT#2jSS(=B$SWY+ncO?ZgxMYd+Chi>~AfRBh0TpbU^t1AZ1&7;9AduR+w{^ z_Z#2(SHju|<}ny^YxxBx*0PuQSo<~ne#VaEs+^Yyo9<48GJdQ$3rF=6l4;`r^xyFj z`gvUZc*t+Mt+^7{uA~14D7w47cCVy)m5B(Yj|_H0nDyhNit6 z!~A`%7qeeuc=zDO@YR9-w_U{+9gl1b2y)@hf*5*EqH)RN&guz4(jc#ipzI>IV~< zv8DCz;>tIP%=@BW$-m3~rT0JN;P!pxEDsuA7-#LaZ`iP%xxlsTmt*bCLhri$AAkUJpU+1tGby9Xwk2Mq{APBriTOz*mu!N)My*lPVQInD87 z2ZYH5@`)3%%I-n773xlJ^4;!^1Hue) zMLCqHWtYf{{0FR|xr+gEcEw*Qq?ylb#w~Y(v_=U1FaqI#~9Y)?MUe3lajgtvykEiBJI z+}cWKTU&vjZN0#I*`o)9(((b})B)B*+C>??lySy@aPtVf8ifzGnvvFFg7GeV@5akr z1M@f7n#yoRS;O!mmN}(lK=|Nj&u;nNOL43W$LiF#CKtEff%PHc>;Ul)uUGA=tUB@a z)gQ(F-H)0lLw14kJ0lg=U}_$RJp;m zbbN;A65GOWOM_=L`unb}&Vuv5;QPYO@hSYt7ny_8Mz4d^H+wv}9%keD^0^b8D`s>2 z8;ch$?43WKo#*iFbJ-nl;u<4$o8-Qyq{68=a5>nzUxze?&f7MIJGX+(u6#8B!M*$bI;}AreraP^4BJcG zpR2rt-@hCW`+YaBp}88bX2N(l4Bq!vHyIvutUXQ)!L6^9yHNb7$A`3t9SH2R1#*?}GF3Q{vzjEEbKQ6l_7gyUKY>!K0@T7zvs*{Jr^>0IqeEL~jd6G_+ ziFtI@cRbx6$LHMW`M`cS(#Lh%^Y`zXY147sRtW}clJ-7qlvoGAq7ruw@!La&Scl_9mkKWpPhPF;U#Sq8$hvgo)bT}?e z!=073>6gO(1@P$pDXuv+a_VBa%9ZAr{GUyk+n%I8m>-)^zB0Pv$Y}gYo#9=)L-6!p zvg3Lk%(t|W_di^IS-Z(SdNO@nrY%?E{^yC%eH%GUH(cF!KsYIo3-@c95~0(#iEyps zi^;I<@nTGG@r&%;b`}G7;uHSyo=khPY1fLq)c?DD<}SKFTfHUpKGgq#o{T@V)iqe7 zB4v#ZcKcM$_6%EWqVF~GwQ^&hoz;1Sd<~ECC&K(^sqpSmeD>ki{(zV44LI_MSW{=L zrw7czb6@9Y!(q!e`dNR&Mz%Nrd!;b8EsPf?Hs?hvy1>5U3*dRySL}HTJ_1 zI8Scl+<&PseLpdwm)wcG1M#b;GDfL;NTax*O@*%*pLz<%e}dyyx$?jCAx^B(uF+HE zKH^~Ed(Q2OC(6nCO>X^bDtwPS8`YQfr5L>0{p&reSS}Vn>;I3$gN|hRJ!M_GRG3e` z4rJ=QBfWi>3JdXU$hWC5^nSc5$0Ip=^}+bE(m0>KZd`LY{ZbrTf&0thVia3+;WO`( zFML)Xs`B}+XYl1AzO@LiKI7lc;!78@*El|HNB+^itwG)~)z*{!e-xKsEUu$i{wv(= zI3Q$wtc)+5-=L1|tdrMAp4Cep%?EecQ=WrEf5FunnA#a8>j%PdIXv_E-xrG?N4O>- z=RQn+HEclWe3|%go@-&V3WxqZ7SH^?;UMwE|LaDG4X5DKe!hdi?^i6tg-wa@*0#pg z)th@VE{b1c_7!_x5ho|epKy67xn_$k!8MnYbHd*EIzTyi){`9H!}{vw+Mo|R_UP6VDr8+mG+7 zfb&yf_lN}D!|8p-%EX+U`8YR`oL9?JUoy_*+|nMfG0gQR_}vGN^*6#n>i>xim$G}? zGWo6k{A+UHYdmv*24|kcja%Vl8`#Unr(E0TICXqcs9%gf8{{FcB|_mNaJj;@ZyKX` z+IEgSZ5Q&nW}fqLyebbaSLf=3cH-+{IA@jezf$%Nj%DjFz-nuO{HsVz!I9DMJJ#~B**-_C!mCr=J1%QLn72OqYv!ASKN{=ai*Ti)zx?k2F>8A{8s08_l`l9%d-AkzD}3puoX_};=lKOXtSZ%C zsuZ8@&`xd6X?AS5xU|%FOSGlaU&dYNFOKE4=F|0;VsbliVi&eM(eH!U^&DI}SL~KE zZ|v^g2b81Vkv>OU86ej85?lT$71n#-7>(`Fk;HSp5GbzWZg^f#E4f zH;Vi68MrP}R_}iH1Lax$^({`5bBQCBFW~8eIA~w_R4R;B_b6qK;OnnFPQUpe{pU~h z8Pqvu4>_B2W8Nh{K8{`u&#U;A6P?4me}^@OW0ha_qvKV4%`T}h8(&wGEAp%04|C1P zH$)resjHmdS~`hN=Go|^q?coI(b%tUxdHa!KdymUyDTLxN#Uu_>&7a*Y3_&AE%#iES&Sbhj)N+F=D>s_3*uFANbu8-fxDl zn-bwtINT`zs)X;-7mUBuC&Ei`_!dlehx0_-#FkU}^MPVR-!;~-*&4R-B@C4Zov2UU zQyl7U-Zmb+ggft^E;l;|?vKKk9=Nguw(IcnZMf@?%XirSi05Qlj7OdRON9M#C*|5D z&AWLr4=8-?+u=rbac}G5Ke`P*ltZsLdTq zO}Eh9WI5a-{(_#;-#TYJz4kgb*_)k**o=Kw|0p-UMT{DvF9X|~?#G>}i7@gJKJ+p1 z=qY`Byji?75wfr5M^6+daB9_yd?+lgh3~kQVu2hc_K(|%AM@l{i*51QTsK@<)k{C4 zpYhN`jW6Z72B$7PXh2xFjl9YAO@5EXhjy;3J;uEk8{-@X)BOGpJNbV%-0?fLr#RrA zJKGHi`Ja>dJu<(V2(@n}LO0P=^zv*su(?PUnNJWd~zdr8C9t-{`9q2d;wM#dLTkOh?RK%AU43 zH$8VdxmC06UV6SwS#NlD=XmMO${7dObL0*)VSOmSe7Wmqv7_^~I2PAV`T!2fZ)CgU z9fQY`4`FCmT+4zBxq4d{`Sx1(<3oX*Csz(tzMPNV)!Ga&GX=&*I^H_Ly+^zE3h%sp zsjiOt7|Q$R5dCkye{>K1XT0bKwcghP2kOrbh)+IF2)y+^sS|dWO`3KM)6<9Z_}&H^Xx{aN0EJR zb*N|EmHd!v)BDiv*oKfS5$6x}oVJVWci)`D=0Bv&q)pxs=lX^m&w2iE-5H))Ugep| zGl|f4FfQqvCMU?p!k_`+tW)%5@GZTg z-*~Zj0eP-Xg!W%}PXRCH?XSPHuN-Y9P7EcB`qq5!yHH!}b1T0^Ielk~r^kyYA11=( z-Hd;Uai8J#da{(9OO6t9ZkNb>V-BGeYya>e;-dV8)u^XNU}o8aJZFwQmOD4PL3Vz+&Fr8jQ+MIw>rz`iZ69=E4RzXkMrB%*oTha$M5?8V_a+E z)5pB7-8t}>@7%jMiMuVYx^D&y^3k=ok^NfN!0L<|*xlLK!a;JyKVY!~S$5OUh0ROx zrcV60*1qf)$K_O`a^3f$wmz#(b%mkkMtGm@*yH9gOXo~K{^ zk82;&zIOE9L;Dvvk5koW@=auE8>g+0xc=wDFcw~-jhF7v&e@5O_PjK^y>rfwd>>EF zAje|5Ji>kaLDx;>mk-AIu+8F4a&%Fsd%Y;LPR_<%VN4mZA60y$bJx4?P5q?n+50BP zqc0}^sw(n7rEl9t&KWO+@(&v_>#J02Yw{y&nN3K9;k(G0#GSrhC%msFC%evA@+Xe3 zlFzS5gnxsW@^>N(d7JFwMFLOe{gVjAVnFq;iO{Vh9CtD1RG{CGfPefL^glAV{wsXz z`dT6+=aKgbG478<_(g1)ahO=;p0t=Zb01}jTO~UWFjq*v)g(U?-+K2JgYfJbd08&m z>Yf&(en^B7I64xpvp4EDY-8MOq3g+1u)_djSAM&8HQCC#sP{DUI}WFl5`N$w-0Ds5 z#^OuQmJilzFaDQR+CQtU`{J7Mt@8QGd{PWMg#Sn+!ZZ44a2MEVSI(mq@V>ugnX6kPeev@;$}@J#LURLH@F=7l)ii)>rSeLfY}HaPzQ zJbf%SG{E6m_^>S=el3s5Q&!|C-hB1AW6H`tSlLZ@FV0npSHpG_U))>v6+Yr?#XH9J zIyYvX{ciln^`ANRp;%Ds9_5#GmjfPQoI2NY9OqhktMgX5XfM|tuOIaQ-mO;NOU`Yt z&KZ2Qc)#i`ac{czHP&a=9!-u;n9t7!m&*g56|=kPPYv>XMxEt+UhYle;LrB-Qocn) zm`wgc@)mT&?Y-#hD0p4KwwKd!N99Cb{-1mD)OU;H-5qbQ4z^la>^xg7xZ6F?Cc-?n z%l-gg{_#FeqdH322fn}G629LPOLk-1UyZxnO8~`X=E4-cT*B!>{I-`HpTZk!k_vtI34F8hpEOn z{`CB#uXYrOh04l|`7Pl$M(}t0@F7F3$$cCB;C|V_g!gIWq|YaOBAeeErHn%y%ff@6 z^mLXn-z~+)@&3P-tmn7~Zx^TiZl|q1QkgXe<2oSm`+K8cu68}WiY4i$!i(WyGoaEJuq~#riC`Q@Tzc{wX}UTO5P= zjqu;27I%lJV>PV514s9zGT)hc9d=U(iiaJH7hdU}N^yR$c+rF_kKy-Nx|<`8CAD)) zJP>=Aj>fqKd^aq{v4GjXh!yIn5ZA-l<>q{8H~C7gPJ~VO!O~xNur)oG!HxerJ(vhh z^j$lGZutM&o!G=2jHW`kc+|7D6#RTGPlB8LVeIbNbNxg5WX25RcQ@i3;espFALGac zHac#*lTP}Hg>%`iP<@4Rx`&d%~P?0S?O&DPTxz)9yC3%f+jI9)%#moWh`tnxQ?d|V4j<_a%?;(fIbLp{QcjucEp@Vof^aH=o zOL+HD?0#0ivOnD|=96E*i9Rs#MT75Qr9wqVe&rrI>nP89R4m^CW_me3r6Fw8_V|ut z$W#7Xbm}`Ykw;;Be7%5ekJ9Jt!ne-kpB^QDKNy4OIR7NR-;qq=cZvINXZwf=^2TQZ z#V^7z+>Sj=|6RYJAN=O^Fn;!_Tx6*Geso`>@r%H|Tl3j)osf&&++I$iuM-~8hWqjG zcm03|>FisvbUSDYtOzQjgf^G?%d zee}K`8PmqG!TMqy_RHg>x9o~o_IMIrfpeQ4R=dHS5D?iF{j z)5GQ+of&-_{Qb+XIkxm-b>E!|-L};KJJgs-p7{y#)_KaUq>HR)aCK+*@ER>)0GXk z!nwwxkh|FbxLdwSIq&EbrSb1P_E6{W59v(KJ+y`X%d~MO-v*COwF%$QSYk-kVdN`N&qLyzYqD-6|4_Q@W&FLI&B>cQTb`|5GiulouWG*`i`+8Z zLkv6+{|?7vi2%!gI%?+({fllHa&9Jn&Msh2MS1l;@drRVwp6@r~{2uLKSzvg5afnQxvIoXSt^ zi${6x?}%gTQ(-Oa#^)Xv!CBvrVg7X3%w~f@Y|_qqH1O1#1H-%G<{orG@117Q=OuKb z&ACI&4el#0sJC>X9H^3R*|p*Zo17#*BfNHRV-4`z(eIKb{qvOk@fG-N#*c;CJ4GF< z^gG}zzKamo(RxPzp`@N}TcMXE$W#MWn~l<->eXK7HKaJ>Tx)5^h$F)Bfe|`9vOe zS;`tPF)qN=GT1(!pKRnmpQU?v>9~|1elY6)g-~xyrTi4R-I0yqQseIHf8z(}_!~Lu zjQ{ip8_BZ-o=1^E9$kJ7zsir!+fIFx*?cjbC&+?JGp4YUy3*PmzY*Gcqj#`yV!{3} zBlZ@u*ZSAA?S8!EhvFRb=6m?Y6Xf4VIDQKGoyusG-9J zVBVg%*gp|UccX*V%9*9?<=SCxvJdTsyi@s?C+KK8t{!U}L*_T+k#k{VD_ChqKKt;2 zcK^wS9aF{x#GRhX+J?O5K$VY?M-;gJ3%RSlTFc*L`&PMcv+MKr;$^mS`$@L$POkane2ks7xB5YO*-dP8 zFFlGKVST^MeBIXG?j0rv+tTq3@{{}N@+0GI{9;@qWXwDK6C5w?;Mt2DY4`>c}KcmtUvOyV&hQ?W6Be?NZ*qqTkiNvvLYtc1d}+5Z1ImelxlHB^bH`x3^}K zZOK%GcNfd+y0YQtc=$K$c6ZI?`hOGHj!xqGKDB4T(|=^WuRd(-%-1GTnR$evLN2y7 z9W{&jc;0%cHmq{pCi4^agX!^jx!4+@OZnfSbeHA)r*i2n$WO-bG~M?lue`QyrvB!5 zwxqKX{wT)jRgdyhbX7+`Q6KSHU-hSK^PslO6=xoXw=3!UM!vU@F1FQvb}k>K+-l=k zyQy<;+o|-*$Hwo3WL+SJETykYY_6&1+scop2l;Av1Bdc(eVOfRb^Ika+@$PxmF;-# zL(0aV+B=4*w=HQf5nRXwHJP~|EFzVlTTiDsj<5{ejz?L$h|%l>OSUk z^hcZb^~~rYwq0R++;%kGw7n3@Hx-59kKpVT%KHO9 z3)rz%J0BNIlDIThK3p&7=SS-X37@=q$WHhrW)FU#80MS#{qFQ?i*tkW*{S7PI@6viSgh)x ztmEpvvx_hCq+~&Z_glQr_NTe=7t-Gr@NyX0{wxfYchJY~Y&}wJ`H!#BACK#3)+%Fz zb4zbv7g&sIN|bz+3QG>wk2ChYV2%4>JUPwtCw!{73723let)A$+gtP0*-8DMh>`}@uST%N+4f_(QyVUQ&!5A_(#ynjeYKrq ze*Y_-{;eE!3{`gSlm4FwqcvpQny=Zx|Hq{=&!Jkov28A!Kg!2$t8MI4dzR~_ST~ox z@^4Z06g*(x{Ppm60z5tqk9bm5ZF`73_HF0c_k^!q@#i>rxY)jmZ@Js%eEeQTE{@E5 zi`<(wuN}NWpMRCD`a3!HQ}QWoYyYmct#bco;`^)0dkm)4x8Cou3(4>g?DO}z&+vJ2 z@Z>o~VcMcZI93cw4KWUGEV0gbc-=b*-}S)Hcj#|A+kb|;P4GEQJ0HV2I>_`}|JK$U zVf`05%jqyyBNx1yzVCETJMr=+ZC~#h@0R9IJflow4B5-s={feB2N(6mZBuOLcPU%O z_c~iAD`PC(JW3}o!{K1@w#q%hGnw!3JS``2UoK3>wdZo_q?6}e@g3SV^bk5}Bl*g@ z+m20zQ6+DW&W-?F`SYX8_i+Ssg2ef!$8@c46a^vfdOh7ykl!u#2Lb5C+l z6idxPDj-|#LuAB-if7e*xBtuV`a>}%?Y?Ek_GfthIGv9_h+VtTN4aNx%i!X1G3HJE zL>NtMFCWZr4E4Fj#@{Aug3KT5C(VMtG+&y6p)quG0bhD!D*S6a@N#1?qvWq;OZcc9 z`fX1)bL`oCT%|I~`I$xw<7Lx5k+jROIEw-IbPamo0d;V)jn7xc$W@_v6V$WLsx1BM! zzvYQb)OBl7=y;D@l>JxpF~x85gLi4?KpYD6v52m&D)fy)Wlkb z#+6+ArZEbkmws^jKwW+d} z9&g}N-@wx^$a}o=_7nj7soD!&E)R9HJl|5!$Z5)`O=Z^Niq9@f*)D#^u=ON;mR<4UU!3IY%Fl$CBK&R#OMTRL z8$M}I;Z*ooEWSKPm&@6gPu}pa?H^oar*Z6F{<<6k&&DmLuQ$a;^~E(iaz~Q=34V+{ za?ACvn-XEg7oHcruAF7cyAl@3n{^Gp`o8Ozk@I@@XTd`?Y*o_xU~+BEp2h4&x9cwB zhdPrJKiWUQSG%W;EvgFOZwidEdCnQGDWosD?7h}`@o)4ddVP=HAEoP|bj^;*d--AT<3%8lvn(T^8bQi*vyrO zv|gvJU+~L&Yu9Kxn;?FiXTL9b_?2?!O5q^B>tD|I=ME!#j`k10yG`WqP3h`;l)XJ{ z)r$uui7@Ra^9zmlZ~8@CeLoS}wKt}+kN@@A3Vs#CpJtcIFJ$`kO~3PtE&S-gWSc3z zlBX_W=&K@YUC4PC@-Ju8(}qNN*E8n9o*(4nZre@tIKX|aaKX0mS!eZj+B?zpS=u{C z?o20jztN4kC~KZgglF70u0E$Cno!OY{;z~blx*blt!&MF0;UWJNIhFe3Jnw=D%Gnb? z7s^{#*jy8Cg0r2)xzCg}m~QW6pQ~VXC+)0tBz3$(=5qIJ4-@p0{1eBIfP=Hy z?gMo>9uAgA(@k8Tr0yNKjq+V#>jVe)8BaMz&ai;)**1O)e4f6=wZ?v{*>=-=j(-Rv zeQ{tSIZv>^22a{0LKgqgLf0Fb;p`py{#ZWur@6`cC4IVk2S&eW&@!^aYEB*fHq-e- zbblm#A5XR(@(S{{{!Ydy>mhJE!}y1>=h^BWzMk$M)?Pd+8{TQEA1z3;=_I_-YR{#!cu2k)O! z?jrq;Nie*L{zoV`V(vAH%{blb{aaei#Y9ddv(-Cs#oyozgsmX0#l zWjPysfUn=WXPx~VacXb+;VkI<8C{;~hiH#oF6eJ7dKm3JE*)Wd3}jZRzpDep7B z@pAUtASaf;P1sxBv`?coA;K5Sg|fW|UH}iZqhV5fDV%~Y z_Y`K<$X@-rzDo-3s_`&KofC^f-Ys%QILLvE@*j)j>dP~0snxJw#Ly`1&b!M!7iiDP zFyEU@*W-DO_%N9tv1N@FoA)5cwPfFq3^~Skx+wDm+<>*R!F1J^9G@uPm~HDZ{FC!( zb>E5K0Gh~)&6_e{ZW*e3p!}6GCF(D?10Vl zPfzu1CO`6&Uyt+3()W^QB42QYm`vAoU%J=)z1BfwG#(s%d=|N~U@pK}UBm|tOvcx4 z#?%+LikSzKaZ5hyR=7S3PUx*Uo9;eTZYTbDdu1M?uEXKwE*LJP_iozyKW)rmhq-uX ze53VK*gjP*c-H@ubT4pHjc**l55lUjh?dA838_U`wKENcMOcK~GOjKEun3DVUDQgk zUDTE^QLHX3iq!5j6fKe^mk<_V5f&l$|M%VY^EscHJ#)_cK9}F~d!F|_?>UEjn>_oj zCp+?8>7%&hVPlsxI}cUA@=fcU+YRRBo;UA4&D_|Z?wd2F>wr(jZR>=woA9oT zCv$3JZI+&*k2A#c25oc}i+#k^ZenqU|EHT<+*f|-4U^N!jhj>b*yMM5^uT*_=(QI= z9Gi%`;FC79amxARn_U-8`6e5k+S6Qu_1qi2rzajLT>~>&oS>g-TkHkC-AO;@g2OYg zqsVreTHrQ*S|TQVR?XH|fjRwi?fWGg-Q=3rdh2kzTjRbia-WhoU3>{H9V4EuBKISB zb5T61zCgV{pT3{bv60`!|i-`AI$2nM1F1P${wA>@cwcv-zM*ZHJE8mWpt?=;*#Qo=MjkK!^O@>_8#k=_UY?#EqU49W8VssT8S4`l8@7Njkiyy~j!}txaH_pR}8*L-tq%Urau@{+R zN0Tk`{W0^l&Dthg$&GRZ+!cQ-M&3{pj3M)t@K))%b1obGjhjM!(MY%GrKPRUgOB0+ zrXl|CV5{|^CyN%lH|1O*2>K1b6Yrlm* zLySaU!^zjKF&zYBm5FG;RC#7Rzm85s;h8OA91^a<7If#MGI6;DJ?NR4sBdu;-U*PB zufj7B(tMIWgniG#DYxL^x%8eOk6h0N|Kry#Z1pxjy(UkHiEabHo-gH_g)gwt?}_LU^Rl^j#l%_U>Z-27LZ?jcsBmJu z^;u|X_*tu;@^{Eoj^C@q`VWaHp=RxNc;9Hr{;rMV&TubV;NR#8HoHZ?Y!|gxOP;Bp zSLt*BJ8i=!1Ic>@eJ-F63|H)!ZCwi%-fP(OfOcL>M2o*m?D(@aMLqZtzUJ4c@1NE$zoo9x=k4Zg z_&JY{GZS$@HNU`31^{qojeu>#y4Hp{<_}hom#(Rs>G@+kYHZZjCF~Oy3v>;( zX=vxO%G}~d^vcFz7@oe;ADgU&r|_<~@O;hmRZ5n=#m(>V?Q=L3uap;(X(fL=;oOU~*)!oec($+AP{$;q z#*y0H%`si*cC~g^iHV)jEZ(Z0yZGla{_6u9FcMAW zXS$TLPZ~~2C$Y~u`Lf2ks`YZ?iMZx8nCR}9C;gT(cIrgWw)A|T4Uc4F{*8vS%V4_o zWb3OOx60hWBQU2f%N>nx**jSoZ(XYz@=>fzj$xC=a}!Yu8N+(Y^kH;-&X|FHYUHQ# zXR=XdnEuykZ;&~V0g0&mM#tC1qf9mb9N;+kj*j#DsW7&W&*x!yAm4vwK6Mm3PJ#7n zwZAJ{EU1ghU~B-Ne&xF5_;1t`BVaC%A7Q5ukB94sUD%@=Otr4RJjp!HK+kf3=`L*7 z!iFv1)2AzaJJI(in7-e9gtv-~nMwj~*=$~2 z>pg~pKEgE%9kV+<#9vs;TXq3|U6zO{_n_len&Kj4|Mk{ffMbms(ob=`H-wL;Utv71IJV-W^taY+9E_ij(qn;@G-hBW6x%OI)*G&+MVgQ z67N3l#+KD|en8EWCeP)taH>AUUDFTxV5ht-*%og%ktcRNE{22L4)h(y#@A>sg@@q3 zO8@1fT}yiqPdv+pPZ;NnLa?TW|x9k5f|CcO{7S5v6zx?(!y{6mLi?J>Ai{ncs$u*CQv*Y;X z5^Z0~j@EA!{$20hQF-dNY*ba?xAyFL2i$(BcJ1!G)#CCWasC5tcP*#0>$_EA_8lA? z-UC~Mw+rv5FP$6Pk>fgRXh*^B4chC0H&1iiMR*B*!*haja1cG9@5w<|WAuAqX#qL= zim7|Z)z>C=8k^W=f9Ldq{hh=+Z06LVQ5*WvA*KCIqxtS3H3U9bKiAxS72A%*A#^Ff z!|yjckDW6|X=emk?xV}??0%Ov2Ri0i_!*>4c{jZ0F}zE=g?wTDIQ=BdTn!Vj+4#Qi z-T5#<&)|pq=s@O$+6mVyhvT!EBh`X;Yag%V7HW5&xc5cF!>c%aGLF82%oFrYrcE(@ zhumu->`sqk*mmsJ?ZLO^V!wW7&5mxyRL;M`5Rn%%iu9 zn;RzEK`^iVk~83KlmDkWzlS<=lGuMv%zZ$2oLcgsxO-3R`wZ_7D2m&EL0!}UORaOR zgK!I9_Rom#WsbRnU)x$YlV*#@Y(ATI$HT{puLbz@qeL{~L*7IiHO?YwvA#=q+xd zrxE55hkdMOS_*FmItON};4JeSO#jc?dAKV6Q@mJLQE3ff-p}C}F}nz^B7N_p{fEc` zKPlr3lM|j3C3pXcPdeg}A+~Gae|NROESx1D#MYR9KMc0T;41u6_#k{f;{QoL?^NfH z6sNdhomecr1s@$nck(x?n`%E1?=T&mPv>oYp3WxU+qc2@7kq!h{;TzIjQ=~x#dq_& zxXisQekR4ErZ3dKL&Xj}#_IUy4Y+-lfACXP+ML4)Y;+F&%E%>-^58#QgDi~r{Wx|x zZ}YKHd*`V^!+d7$5Wd{fc9Yz8s8}9ngQesrV)gGt^q%p|!tddXUz>KMM-RF5Ts(8I zST77X!0ES=`4D{`#7?zj&%+13%@d4;hugGwj@s}f_#?xn+tqke)d6>r$-eMBjH*>) zot+k+X)DQ!Y5dZIJ?LK}-qTl$ugm0xPW0|gX89xiGJkwdp1_yg9jgXyS{wHaMt$h7 zY>2qLRxTR^+wxaMCH>()x+=`66;BcOpX{yzzj!qy~Mx&8I%Y^Qv;>ZDQkK@37t^b&_-Bso60vPXAVndBNV zoUdI8N6sxjkKgFt7;sJ2s-gA`R}e`uHCl4TQx6J8q?)!F~(tLr>7h zIkqeK0|sM`X?h$du1Q2~jURW|-rS&A+BkuH)7_KB7B%d-g1*CM`Ch`Wt`D^QD82)J zw-tXMYiqGK*SXF^r?Bp}33kJ?fGX*kW|P9jc>Q(0ZS?;fzroL9y7g}~F3<77RKDxU zrnsRT9*R=N0%Pqj=I<-v`Xu%0&Tw0(tq1jo*Teiz>|}U9115jczgTX8tzM(mN0YLx z{Mp54)k83OzqU%{Ywd?MGfjuVVwm51yT0|^0}V~t=sfep7yQi5bPYI&eyeX?FIzgB ztYV{(&ZVET^WKT5=2U!fry6%O&Nzy#F0-b2555{m2ly)It47${bOyVPvVS=D7N^VEph8T|*Y+@W z$5BmWjSeQKHI?c1?7gox=D^OLFmkdODT0NSjxlyg9)wrs`TjN?9%rL!*NVkf<)P#} zS$mhTshBRBh`XoAcXzPsj`qX-_$jcCD+;b7KTd1vjgPARUdiWOoZqcJN?oW;c`27C zK8pG9Hs?$y_Y#=gkcgUH-okP*gO$MZL;^+&Q(H`o}ZKYcBHlU(by`Hp=f^gRs^Ey_k4 zK2=XIX77t^d(nS@8v8!DegZE&B5u#K?<}}}6&8Eh-qg=k`n}GaMpqbq09H;c3nroNayAU+szV zP+VK5u$}(rr^RDm_4g6{EkD%s@_&in|0PQcS)MkhvZc=;*WKEFP0Y5@SEcO?{r0Sn zYJXslPPpJm=f&7a?oa=!PI^hc++R)o9Q?pX)zN%=uQBR#{JR);kAVT>f-qiO@d10U zmCM+<_9pFggTZ?3#Ohslf8mmdkuW`+svQcE@rzn`kLRT^_@etC60yh%BK?1`03)KAI#&p@EpFV z(wOLV$KjCVWMi2Q+B~1kBgy|D8|C!3if+rSXM)u|tK|~y^s=u=tcJC^$-``G#N-=t&7|J|Izu)SjSQnq>jxsmUb1VKkUK{_@7ypGC zs$~X0)bhb|Y;>4hHBgLJSwpc}j5cSZjbF&AD~%WK&qg`@g=fN64bbP&e&1a`-Nn+4 zj(;W_<$ndUzd8R;{IF5%EETU}s-zGWrm?x4lU(hyowoXJj=el>ZE}9N$EMq@^0hb& z@1fW@B^wR(IT~iWPtwLi&Us30pv~Gha6}Wnc$xn8*UZ65HEekw`Om-;TaxSjdhZ~0 zOndV2d1koypUf8WaAuD2Q`Z0Qk>v$3HNyVA)T~`_2@cuRjX#TU_PJtnwp{TJUw@y7 zx_u14ciaEE=Zc(8zDN0Bs@Ob|ei^#msl9`=zYES=!}wyHvMX! zwu)ZS?rr?=q`2B>j#fJZ=duHxQ*4slj-5Xy<2bUpE)ed|3Tq}Z9i4jsJRK*duEX7T z`Tqhr=3t-p4T{74A^z_}PO%VOPcQ8Rz6>>S$Pc+QwE3=QF|>7DU$J})?4L|Va&BCh zh`K)kca>z_1=d3TpAQ?Q+16|9Yj@VhB(ZcWSuQev_!!$fB`#+qqSAZC$1U3HudP4z z-C%8YlfI6i(|&yNwD0Z#Nzc}1Bo<+zqGvX$NU`6AejmbD|D*Tuu;KWYJ=mc;AMeHA zKau+rehXVYJD;zuk8$CaWSN5xKg7pZ<5;#2wM*-I?{Dx{F2w}t-yyKIpZ>SPEozL|KAY0P4A9F3a zpVVV5e0?mLZ%DY$HW8J-j0=~;;&k7)w(m)~6kdA$=$T^SnyEG8|r7u}81j>=y1B3D@&m-xYZ;yPfYCxg>R? z*q9Wzo(4WEtGJ6?Id)qC<1ah+C4BpextZ75up0i3ft_vn za4xyGh5b?FK1>~ck9uvcn5(A$_r}5cojuEZ&vH606HC4qkST3{?aSmBFR2b_P-OqMaYQ;rxBIbE7_9v8Irp!gH2V3A#Sa7Or76-b;tH-^G7rJ9$$)hVf9c15AnAn%%_W ziQYB)RSkW^RE%#AF5^7(kCOgoIux(d_ecWl9eI3=W6+y<5UKi7nTgW4?$VMzjCDVjU(b3Vm;{?Va?+ANe6h zSCF?qdljHr^S|U?iPTORe`iS(68nQw)c7e_q(!`mUASuYUj3^)y(D#AEtGa_^!pdYC+Q z{P;RM;*1PiC;Q-@sd#51-}FkzoiN-(eZ>ad@8_#m_~`?7S;+=9J~MQfBQGrwQ}6PD zG0S7-Ys3A+)h`(Pyx|#O<{AcfvzD&AXNHCKy`Qq-nd0~9;?{e$ax-CV5gp_3K0fX~ zA$d|fS6gS@u!ZNl{L4N+@PWQ-$yCX<3m;>rCGa3di*|?M47=i=uwHWJ!)gSaG@L)0 z%isp4)6cQhKH8sV8|&Dc#lxTRsPGtl9Z8njqs_@_?`3)5cQ|R`zc=->if_NLy)RFQ zgM9XiB3qj}YdrAck^Cd(!?oy^`{W2*TR9e&4iTq()w0p`idr?zXRhad0*8xW;a1p- z$Yo3)*5&1A;;rvGN*;~>a962VtaV;k>ze#eAF#d_PMhzbXC>^@Enhnwp4H}4@HPvl z+y-m?@jxfPZLjT}9k+qrBeYRT);e=fgN<8<@VVH|f6{Ne)rm)VIFBv1hli>9)>rLp zeJ}N09gq(r`M5~&ZSKIl&;I;y{ED7shiswuC4GK(Y0bfT-OToF=_mj zlFJ&u5-*o%Z~wS;T70olyxhkoTgWT$y=N1D!eJ9^Pl4&wM{q;0a9`sfSd5+E{K5LH zb^J?WW|3Uy=v6nJy^AMxSOAfVCGf&M{P&8ZRgK z&uhnd)v(v)LH%fZ^gNtUBYvmg2sjLLma9e?_gn;zr_(K&jY{M4xcx;h$(KLV-CDP^ z+o;#X{onO)H&?E=h5MXZZudX=Hua`UJ6p54&@II>TNn0m%%Su+kQ^Pv^}#+*CeQKC zb52;x7tSp!b^hUw!+W_O;G$l9!c3_5sw?2Cm;Mt+U5_%II3Kbc!RM%{Lw+`n49iO=VZo$u&qt;JvDo(!W4#LMW= z2LGH-?z6}Y2j!dW(_T}4+;gq))|ZYWPwam_GvvKX4FsEk*Teetuudp;fjJev$gz7^ zn^|kC+?mcdle@@vp}aCuyO;9Au(*4sY&*qU-;Obm)~H;_cRay6jyO8euDe*A3< z>s@oJaZ%u1`6+d%cEb9gg={pKe)pSyc#8jC6~E$iZ8OeY$G`R!Z6SWzusIyITtc>D zZLKBG27TUPenrfem*B?oMC%&)nA)%k{+juJ;41y|Uz=*VZ3%Au!h5~8S{ChLe3AQE zO!0Xn-&AU|YIp7b%?^B9*w+8;#WCEKE~t;v%f#E+`1=w57dzp3cF~<#>*K|UwpUD{ z>(yl3%KlEU@iiNfFN}XO>)3n!NO3vq1%& zC(z|O`0YiXN60pnT*L9@deps#c zVl_8Vy)^(2;F2&FZGDcyK4ST?gm-P?Zr5+Z`<^%GH`tU_yGx#wDzoj+S>9ASV&T6=i$@;T72=++-3->WT zJwY3MIq+5IX8Gbq{4oViA1*eg@GL@YG^t%GwOzy?ReSLFNBny(eWvioJl84sxM&S7 zS}iu|Qgayjb45|*ws;JF!o8#$$+@1)8}5On{qW2tKKVo2p%xJzsSm`+cYI&O?_>zi zC>c17Y-GCZ9Xi2ru*c%w`ln-zEZuG<|8eweAa4yHUP)$Sw#>PFb7$N$#9<=LX`gHy zw+Ef;^s@!~pQjEP1OIqqP+K~`h8La{1Gpp810I&c$Vv2hHW9Ua#_vC~AD>p@(2`|x zOdWjG(Er**R2#79J?Y^dit-6?SSbID6xTCwt~lPr9?^;N?TfC(T@B}t@#Xz&K!>D0 z!@Fb`vqwuA-N-b4GI6Bet7%YUw<>K1#mL-pBJ{x&5c;`v9LS*liv>h@bfr<^A{R1%r>M>vwbS z&auW^6`$gx%M-0NOt>$tnhsS%wR1g=xqzPz+#I{n8us_Bob*<8?nPnqz4)Mq_B%K} z$nlZ>*V6$eO7`Ugehb(bbdt~Q=_)7WQjXtO9JUcx&X1lqhc{TP&SL*3Y_QhlAvV9% zcbt&COa9S*5kJO~WKkPLrtKDo_{=7vvJ3fNofo@?edFxA zmA?C%-#CSimu{ZN4Ec3aXS#oed)}7YHqyznIKo_Ic-C3%m+-&FHp{t#ZFzF$wsCcf zdT*lZ<88#^IpXpLF%B2iBjAK@n~o9}_@HRG7?^^Gr^A$*rs4rH=6i=xu+)W*)kWc& z=i(dXiK*g$I(?=kqV;#-v~%guDPgTJ9WIr-_UDs(`C$pZU!%VIQrjOIuP#(0-L2n# z{OFjPBlHccxrhDsiWmC~lshu_I0jCtcOidYT-VjP@38NM_AgT}z(i|p@rKU^aX`10ePOmV5tR5=eq23>o?&W`Xv@2DMI;qInBWGiLc9DTo{%R05;a{291 zaX5(`Dq-syx(uQl+vmY+QEwO?Z2Z9|L&x~-How7N16|kBIo8v;r`dn3@A#zI~5Z_(te=+Xc+V9S5I?_2m;O@ZFJ2-ZR>!=^#@eAe9(Kuy{ zScUH#pN3kn>UjEYz&&c6T!C2a4y(u7cT}Qv-Yh-H`D3*+##SXhP8B4|vNzIANS>j;5>Q?ny)qPl%maiKv(F`8SI*I*fnF_b2h?3)*;ITs_7oc(tKH zZS;e=hu>}AIM0^)&OAk<|DWPVy3ZeL9(0uBFV`pe*Y3a`_&0Vs8+0YN@niCFJY>ui zUE}#)$Ja-V_`f{M?yuA388%?IG+czWiQzt&;zz{JM`HH7tY^c)?ux8B89pb#vwW2l zqhb8fyaT`XV-xf8<+nQjKA0=hzuF*&yP|{PJI$~6i|vk%yIY+*%x?$SPUHh^6vB0M zy=|U3qc_Re-fuT*Zv|QI(Z(t{Y2I6O_BP4=a5 zam9)7c{5zX=8C)ERIVAg6t3SFtE=Ta`s8ZqGZ*H^`raqodVcb2^5UcXU&)4>Dz?8<#>7%E8OJTN3zpv?6T$i@N;d^UiC0%~0bA3n-=tPIrbc(D2EuqUYvHGR? zH?cZsuSAr27KV;w{}0&(-zh|+ra|n>HyQ1;jPZT6wnoq&C!~Kfp44~QO=KWTxX-5$ z4}~>s(N6X3>X`e;veB|WAe-%n`KLNg#Rx5 z$Dd8d+6vg=Ep4$yEF6227;s%F`quUw{=SO*GaYvWpOtEZF0s?Z6Z}Qz`mHnl*TA3a z+O2aL?uUrv|L80FkT<*^Ahk_gP8QQUi{WT{*+?t7})kYIH`vvJhrwgob}@qpUL0tvlZbLaO+EFJq!DqM!q2h2c0fWg9Q>WRQ;jUS(ImR}G zTw99Uhh1yQhX==%9frqKuv{X(!*_DE&g=fiH-q76jPvHvO)STz({nNWj`jT*cFps- zqkZ#y|4#my?0dkG+?3hUZ@c*}mcu>ZO>7V~ixu%%XbW@i;aTyqk&b?>Q!PjekNlwa|9ZZ_Wq`9Fh~4*d7E?>+VXqFQ-NeN0S56?KkVW{#jnZamw0xBLAK zwu_Oeu(ve@>X$`ip5fd%K4CBS0vo(#o8?&d79{_5{M~%phOfn8xbLZa6#Y)BZ+#|F zVc5Sfo443kq20E4`5Nt<=lmOR=GJ(1h+}SGtKi!=9pl-6NgR?~z$d%1(QN#1kMje@ z+Bq-b8Wa01-W8|)BX0lDr*=XeTon2`7nX+NI-C&dr{=S8+UL%9%`y51_x99I4?3+8 zH}nb5@D1yOqff=`BA?sGJ zakm>okKiY9TU#Puo+e*k!S{0Zpq=>cIySQABNfxv$@H)#Pq2;Vx4-G&xPjy0W14(A zN?mZM^Ivi7VUB^}Fm5TlOMvZ8X4i0EdKJthztt!HOdrHX)?7tL;(ot1!e)5ZM3^s% ziIvhlY~nHG>~Q@ss&`FmTd{u}e2jt(91xz5QO4J$NAl|}*=Q}?q_<%|`8`Abmi5}z ze>93+PN|R5DO*;bznGVOt2l}#nu|FHUgop+Tz#~u_v{_}d)Uk!#?E#8*7o-y<1J$7 zBQh=_<9&SkA{+muw(Q6zxH8#=UpDgb9s0BWw)_F-O>%xgXbaC@z%CE*!SnpJ!1z$y z*5KuChvDJ9#P<$(xvT9YwoQs%`;y!FeHZQX`HGC%=}EPc7+tqkynmaB@|%n?bLPrs zXwxyt1RuVyf4L)>({Enfvtn`gJN9kEe}A&cYyN-O{@#4i;JD-XCFgg#C9kF5+`85^ z9y#_X9MASiIy_9@} z!}D2V#rBeFIaw;T9n(g6C&#@^wn4TN$@;tg&(%oOU~bpNcl;{8(BZ2=PO%aPLwKr{qp^?0V~b^5fRc z^Ur)W(mXg5cWX<CArEpxNj;UgY zCh;2E-6y_H4#Zi{(eXoDi~V`@{>J`yjb(99v$$9+K1#$)BRi)9U$3u=lEx}2=ZCq# zsvqJ}%Q_oQs@+0-iM6nPXX9++-zUV(eD<81h-Ugfh7X(gCDTv*6pPEw` zWFKoBM+i-h{k!v|FsNE$O!n9_g+9QvLOyvv$K;nN6@a z^C`ZCo#xNwh*hxgI6tKL{~Y$iF<}m`+wJNP`lfeso;+0E*;xH>7{?3InfL$J#&DrL(KWyLx28UKZ1U}*lI+*cR-25{otXS zZCmlyK`#26ZZF95;;-T+IG(TVb?^f7>00e>Pu6{KM23H#haGVnVmWg#+3Jd;%wfLg zYwKQf8FOL!nMBm`yg9b1_FY8R!Q$vT{oUa6bX!|nC+FU)P1h_lepS2uOkw%;;pjxc_Y>TK%J{4s1XgWcNl zX*)K=;Z3(WU;BgTT6!wIY)$>?sI8_7HXpCO(Q31Heml&V`9!&AyzO!}{8?MmVAmGi z;nR38T)$|nN%PjVSYb}li$mGMyVECRU4N46)|lh^ zRSf?kepka(HM!$(+Fo82Q%!wg>o_$K9CXK1y|Uzosa&4A28IhBao%&r zX^&>r1#}muLFVxMy0G>*cOqMNC;J>*p_Z6*gjrksQKF+9NzpBZ` z?7qitwc)5R7n-@3KUeYfN7~}E-1pj0Kc+JHLmNr4n0(v+`|;lm`k%l~3)oQpYb;b# z&?S8^et3+Z_i)Zszx}E20($R2$JPAR#&7xw^Jke`;Bgure;Q83Viw1@*^scd74EyU zOOv?$OgulsR@akLJcetowdLA7-|yS&FXjHoL*h&;BQQE<|VlZ|KS;cs$M`NeNqv$hZ zi4~WJuY_l(d5^MnJ_mWGUu+euk|lGUb6;}oU&egf(I0NYyMn@c-4=FkeU8~2 za{_1LfH~y6Mtc!o!foMe^-=yee9#$w_@!buw$n!HWqxe0P1obnIlMbn)ocAk?-RE3&e)*?z-2U`wORvkwIvR%0A(nK7Ajwjqe5QWNxPLRIxaU?3d`HAFkrpvQ26)&zD&IhwDk} z`1ln#eO!%uFKkxoe`eP656!PUy_xrG4%FW+?(5secw#19Ur$6u&&d^g(Bn|@%$GCg zl0lpoOo#U=?5Uq{Ki}FuKH;i>oTVT0=SXtn|6ETsm{@K3m3}>NPZ66vV=nO%xO>w! z)z)2`e3S3DvJ=U*pDoLeo%rf!YvcL2VJkAX-;Ag9#e6#w*Vn<(Gx+0ioZFQ=&Mnv( zPu#3;HAT~Iw2xaZ*{JojB(kKy0U=JC_Ub>=<(;PXEdQ9f=< zofdC>Ui3R}iIsQh^(=d_Tj_N$K90WhZ@G~CkMcLZsJ@sVpMs+`YRm@h9;1DFz4N4e z3LBMI@z;fL|AXs_?QqKnY+_Eh*7=R2@ze|Ocv&J^e60Q-^xJ_jza3o%*<$XkSPsvZ z;B?2Q*f(J;V`t`afvy{hdVA$nVwnCd@}^8%C10us%MsH4N>~584jTD{11d{3rNmYqrIs z;rf3=M|!qlmvLk()$UVd<=^mL`gfMWUX~2Q`FA5Z`K=t@^X0H44oN>)=NWCbeQkxd zIy@fdM}3sP<(Q0P5^ zHPq)=@jVf?eHKl@>q}gNcsCK%wQRl@Jv?jlG1ossjnQkh+VDrQ{h{2nh~B;B-2{JUC9FGh zJRHZ!817YR>@V)L5j)>D1UC)BO(S7xrnaZ^&uF|PmIALvcqDeEn7smTW?XB0Mf^NX z&apW3gltr_H(M9*lU!1pX1k7jaUp)$l0Ww0%eicIvTHMy-d}7C5$Q}X0#4V9^9FH!37ifn_FOW)7SEM0B%-oWWT9i>4eatuHkz@G zXLfvr)253jw$42-*XS!h?)<^x>>@teK|4q5yMo^9;np}ktmmtp7xxY!`mdn(Bzm=F zpP$Vi(kHVG{f^|fN#+9SF>HqI4fR#C8o`>govq{P|DF2iJ^Nq6FUzvg3bEDw@odya ztPQQC!*OshRXfMATSs$FcNs@6gR39d_9vLn!sa@)+rysSsLkBg-Wm9jFBlMYO%j?8Kifv2S_#~Wwdn5KLnktvT;$okBI;XjmEsAl^5qM-@ ze(1^;>=Evt4Rb=7uCTQLehP4fIxY6G&v*EAp8W$H^D^HqfSJGL#{Jl55L-P|Y;KH= zieOD$xv4;$oJW`Y<>?g(&tevLe_JaK$LCpNe5>c0)^&Bym1pa{cBnNChrsv*W0oas z=YETvXFOEBNQdp&OFKJwPs-3@>zN%F#?|TGVs~xW}&?&PuMvt2e^Zo#K2XTMl8z1MSO$haK7c5c}b*;#9VVy+-w7ayP!h znbB_Y=K*}Z#F&!YRm1Viy~cDkas$4onF+`0uQ2Zu)+FSf!Vj0hz_W0ag{w!6kNL7_ zw&U5WE+^N+Sivy7!k3|5HaUwE;5KmY)3)#J`$e4XvN=zzh0l#})!g8J?Np@YhZ6F2 zCu?tbxCUM)X;(k1#%;!0SleC72H}3J=mFP!YgLgf8SpK?Jg<@+bT%aQ5F zVPZRdUuUbfeQN)Q_y?bc`$-!I(BaQ))RoT{uG0Q@;{SAY+EQ3pX-?-^ei@kXe8l=_ z#awypT`|B8%~!DNPx``_p)L>el;IjiW(Tr8N#6BaYL4T@ofuv}N}Ffe z+Va88L4L8-3IE(#*SZFyNls3VVLv&eJVysON~<|yYQyMOu{gT7IceXA*vIGLIZNT* zuTYPce=er?%TG{ zSgy|n+8L8j3yFO=>9WYa!Q?acO!8;0#Ter*`ZmU++>kiVQm5s?;$`ZD9`ID2h)T&H z-gPx|nsMGY>Yz{fcr{GCj8|vz`#JmpI}O!1NsMh;>i38Fn*3otW&^)B45Y(G_Ir_y zw{!gdwqMz?zSuK|*l4xB=92Twc+_SdT{ghTGq76-C+27~_mL4^!t<>Moyu32*$)%Z zfjD4K$H8@aG2h4;EjS`IP1~#Z7fu>F!)H&n9E=0tr}=iWkT=wnC1SF5Zmgp|m$Ao1 z@UvR%ty*F&l$>WhRAyUa82Bi=K%N>yNBABH$0c;Hre_W=EBfG+wa)FOPqCd5H=FYG zQAZ{*S)L)&WWSANgNN|cNXK5KRyc$1Vm#OES$1Q!`5?Uy6N3ZghC{^u_x$o$iWRh4S1|KIiZ7a5+n|5@J~ z$gza3@+yQKaH=`;}ASj#l~<}RYy;sm2>FNr`7Bk)?U=` zWm!I7yrHj6OQVAA$UQm{EuNQXeINJukF8ge&z^zH@XWb!@cp?w^|$$i@XmWTR<&Md zZ>c8}E@~Q#_Z}w?-YeLaOl*+3m>qiX?FRf$k2EaA&bM!t zJ%087OuBT6N3pXUv!1>8F(xd=T?e!I3cqbl|E;xmmw0~LoWo9X-apz}>DZ6d7yb|H zPQ!dkuS&8$0;ko9sC2wozDZmk=l5O3vvcyuAGs%J93T35>6+ zcP$MkeFb72AQ?ZE!d3HK5vU&RZj z`+W;>^;SG;gt5v4@i_mdzk-*C$#f4}!+(b~jLb>2KHo4E@K?+p^WAGS3WlDPwK@g=*E8+)p?Ez`jv0^<@Pe z!#%<&TpT;l)`gv6F}yb-c{&;4ypjH;{FS*5CNAbf@>J~Tb1mDbTXK)G$vk$bWW(*r zbOb+q3j;g&Z82`%j*s_-$NjVs`Z>Vy!B^K?b96tx*bVpdf8$s9>{{nf#p`2=T`RZY z`1FbNUE=sh)CXhvY6$zOi*mR;x6%H09M4{<8Ge)JYuoYN`SSMSM0Aimd2pBMt*DJ-i*erWTet8ZiZ(%!jt%^H_9+}Dh zzuNgXn76`>;l01%{^WOFf{Ot-Rld#C=F>Z zH{OE38qF2&U|&1u7OCx@XD5CS&!>sqte+Wo#0*}Jt>VLP<&w%;;o-D% z29gmD!u9R+9BtvT{Pu|`AD0Z;1;1R!ud{JkBRjx$jhZ~XTe)~H`~1(^gk`YsiP(Bm zE?a7ovsO$rr*N12akn=0GkT^Nc!XT!t4NaZXmYb@?OxjNh{rm>dB|4}(6uf73zkOt z6WL~Kc?2(2=Q-y;I8l!zo6M)~ONZ0sCU$IU)Ry`@S;dC^)wFlI=VS-+Ud>NpsQKDN zR6~cg7mKf>;ORS@Q}6zmE$H}z{_bJ($J80S;quGKF)I<(y_tyC{~~vL?@rcp?K>Rc z-eA`avN&z1XP<=k85ZnMuC3{wRzFW8^Rd=}`M{Sby;O6>U$A8y^)A2R=~)Y ziRcRR>EV5)u_f#()~gp9zvalMrpO&+KO80BfZca+Zdd1D;y8MQXKSSCQ57dQKF%1Y z4Skzme-mS$!^H}@a)$nQW%J+7XTfSR;ke6<8zOd3WZh3nF8=5SlQp}r>9cJ2CVRHy zzn9teH2+7o1FTUvT0hU)zBcx5mOI`~w7##kp+x?F38vsG$G>5&Kg_dr^EsT~`;#Nw zQ<#Ij%Wzzn_f9S;_AKZ`)PI6pMVGvN>9V0XYI@0h)6ux)24h3q)27y3Z{J6D#4l`l;L4{u{WxT6?%6b%JXN_avfKBiL#m{>BmM zDSqEs{V>Y8?9ntD4?QdwEcO3vTaEPuPr=QlaLxByx<~w5_fo9K?c+a(gGt(XTYXN3 z>etmM?~A1ujf3brs2^Q>`u|L_4TJF!YGd*iU4-A>(6;qi(XnLf;QKjj9Oi$E$@8Oe ztNdPcisP!pq8Mq^ej|Nzec9}HHOP+Up+>^^lg7Pk+2Om*a}mk6*hZ{{>x;GL@*}PZ z&kd*?K)y4?^A*my)Fwt6JM;PUde5-ZZ}{6roLK9W!+quAAY6mXw1@jKaKF@C&`0KJ z*CjlQ2{yI47++-GCEqgrO~GAv&~L2o5AqGU!n%q431p*xET*qV>Dhq4%oF6cps$>} z_6YjGNL3f|b*10#cu1b8g}uP(jlZ#jb1QqF*^-X!&CdIZ30MvH=%xCo z&)KJ-Ml8Gx8xOFY#Js`6qZTWdDJ9@gnhf7CRow z*7!13zz^!3^0azzZ?>4Cj$7|NvEGY1+IVa?oK`fBoLlp!{))xo;uH7)A4J#VwL*EC zOzrQ3zZ^W&lkaBsSJ!g`MInEjC@@mwLGvn?>E3>v-4s; zTXvvVmG-}Z%dYT}v|Zr)BK6p4pC_>u|2OUgGh5KV$z0$|^e)Du{nWp0`Fal=@ILIE z3QuL)yH?ztZqsixhHUHc;Fr!B>YBf}{y|(fs#6EMMzYa(w8L8o*jgGL<~rlOo|7By znMh3{Uw3g0ueI8$7$epe`E0bh`_J{o`&x?__6V~X9 zZ5XJ&iC*;0S1W|Moa6$!>96z*pKZuGi*H8MN2#;vwnqHDBks25-?PNf5qy9*(!0U& zzOa3W&-4q{uB(}k;kVcL{9TyggY+)!f~R92h{bPxs_m-aw{eabmh(f-D?5cB$h>$k zdF6=NixN?r7yZ8=5f$7cR}4%<&3Q2Pyz%&siKygcadWDCo%CJ&WUiyvbDnvo7W?^N zGFvB zzCpjsU@a>?*Cyb}`?vJ*m6(|%b}snKaZ3_W%^hq^&YFc}dQCmN+GmY(`>@vyY*VU_ z*NjEphL2<58CGjxB%{x!JH=*YdtUZL$h zUzDqA9CM@g{-f_yx?IY(Cph;%2To_#QeRk2AIu18R$=?fl=~_ZRe0X-;8xc0Dj2xoOv$==!MS zAa)zT2Pd*2*-A>tM*jjfEN8oJCux^mx;?5+c#^%RX`5X$jt|et+vKzI81~-NzAPI= zY%-XC4^Bkg&VcKk;cNlkQjeAJagF0PwPVjy;bNE=>cOWs@#mTRyOa1xs#Tw22f61G z`73Em(wNc4vEuj_SpSC&SMfmKx4lDeeMM)e zS+19FW|M6!41DkZJ?f+KpYe|4((myDoJPHH^-wl?)G?Q^(?>9~Ku*GmxqH~}0{9f? z1w9k3@x55AmJJPYLH29t5Mo*G3uDQK?Gv5{slSu7qs{0GHSm#+trlM`IE!w-iSMC@ znNRC!9nZe>H6{u7h@=wi{S6y`#=jHzFU0oiV(vko!I$m>FF9I`@B+?wj|@+%xhoS< z6;-czVmnQSRqUh&P2&%QpL7U zUMpM)PrI?%A!OPER_BQau`v2>HT;kK;Tq+sa6RRdL^NSlUe>WJntmEeo#lx#=aUNji2nD(Gfs&87>_#KE7th;EA{tP{k&th zf8Xf6zTSVVHs8Sii*Z9KOf@++#WuO$;B17s75v*Q#wv&K=~5UPXDl#5EPo{je~k~H zA;)lhdSt>nVljg&i)P3Zb!@mqu6V?J)i~d;NO;!)o%Sc=mh2`c1@5k?RRb?jf8+E` z@DkQ&x0Lh!Y`N3^^b^LY58-{7YFftTFR+;{eJi^i?_REQ_-gO>UT}@;^ShHZkH5B( zYj-E}zBqSh|8J+=?cwJ&{<=jSy)}DX&Tg}eRp!g#X?E@;ZddEaJ0u&`sRLiowkhgS+7SGdS;p-%nI~Ugfu2$aJZ`<77zqETh*jcs-ts zTf#VwsPdT>BT)rCwu0fSwDBU`;?ZzFO-^pghqp#?62@w!-`bB;sy6uiobjv>~ z8&&X8s58PdAaj3urWVY!e^8ybln<7(KV1vXg()~`Nl<{g{aVAXx> zU|V~K|7~HsUasxZQ?+}X&+GLuL41#Q96Xd9#?G(nZ!Q0h6Dw=gLeKGc7)J;G{5~FK z{t>%x##^tklz!p++IW=v0IoVDqTE?9IZ{1&x7fHLzp)_YabSEyHar{^p9@+-gjo@=Y`x5U>2WDN70S#ow1 za|QOTa9$mZ{>Y|sdhTd_bobk_d-M zxO^TS=Zd3y_)DA@6w5*9h_!^@>0h=f}7%a4$YjFQ$9G z--d|k&-8zrb{Cr8Vw-3uW7L#+qe^=7RdTD%&)XaNr9O?=uEO>~n#BK1?aH^U7I?(g)zz$({b+rz&$H?e2oCU}77s$XE6&#T!wyf>)v zbXeLt>mE0@ozK7fvx|A3rq1DiwhK0MT_B9}!aY*qy`j-I_|^9?PZ8eV6YAD5*B{nP zr5|D21L=1XPUr9FPVzrR_AkiVj3e1Jyl1Ycmd>BUqTG`ID0xcY`Wy0%gx~Y{cTRnj z6yv!i{8Ju?Q9|D}&Qe<2z0LSYM;mzfXq+Y;cPh z6yLSm+vt=pwyVyv?+Dx9^uueVclmsr9F6SYxJ`YuF^umXhndx6W6R;+^XE6tWz+OR z_I=22elM-l&NA0F<{EF0bB@?9<+lty(|Dq(1E0MRcfEien)&)M`!8mn!^O|5YQd^_ z6k8vMRoLGH?)DM4eG}f{#;+IhHSTIUG2VL3t|gxh==`_5vthY>)j|jbbe@oshRTeXTI-ECUS*mS+!mRFc%e`gPh!!44$DGT_I235syl@ z(EkB!yq9?RkBmF(Yk%^{!6j|+%GP4iZ|PD#7?Ox`L*>U&#@S=V>*ZuS$i5BQS;<%1 z!DS)eb$5I>`ki1KE+6q{^rH86nlI`mN6$BZw!)f~GBMuSb%F4VmgHA(R}C-hH1rko z-8i7zpZZ{zL2Mnvt>K=9s&~B)N!+jf)?C!<_-|4o${TDe6B{$hRd0Kh{g#pc0lJ)m zHzPLxEN=Y6H!--A^U9Cm!wNpV33d+W>*v@}ysyo(?=<-bhlck-6b#gF&urB4H5-eK z{BeAYuQTiv?w70X&2JspX*vH7VO#Y|<}}CP$MpJQ_hRr#@W<6KaZo%eA47&a9e1DK z7qj<%i6~Zyr|8u58m?c;p3fThJduq~+R`<*4Qj?3`d9#C~!X9UA1^k}b5e8ZPG7x4x4oswZ0ycCVy=lX-Rd zxoTJKf5%2Rsc|eE1>0=PE(5Yr8J^AT<@*%el5uX}i=%wUAyrrC<2H5B-t3v@-1*|W zfFBNplVjj!2RJy=y02cFZCkk=ABczY#eB91{^qF1s`US3HX6L$vZ(AY{VbqgAANpA zhOK?J6_4aeo=N_c?J51dLdGX-%f)pkI``H8@#6SQ_PBEMJXpA%S-=LZ_q)JT#d+E- zb!pXG(fgCp)ZXSTIo8jvuIC_b^o4ns-JO96A|L5uloZ7Sy&ffO9 zG#=$Y1Y@i0Uqg;U`?la$T$s;)9+qIeUc9w-YV1j#|B?H4m_8{HmHsK7UyMh!o5c1m z;^-&+k<%jIDBX{(!Z^V7lUkg&=~CRyhv8jm{eKb{^b2ds!h7Os#ZmPX_J+;SSJlUf z=rzxTt8Vi9`SGaB8^&Opj76TIx4fEyk=Wg0`5wG8T$?f5ykhs|`E6gE*T?wn9CGxx zRoK73eJ%CT;v>ZIW%`%~>+_An^cn8s%6$s!Z@A_xR;u{Ax|q+eW#3`?+Yg=w!q6qg zOX9h-Gasr)a_pBYpyv&AR2!w}oL|kRxTom~_S{RG+l#Rf4+%coCEGebl^RZ#e100w z7whQS34aY{oBNG*o^?HJHoNqK_i19~Vdv-Mlc~-v5|irYeEe1<#tUy#L*8v1X=}NG zUKfk2Tg1Kn1t-yw9V<0-Fj!$s;AX}Zf;u5(!)G_8KTkjoekdG(R@k#!^+;&|3 z=4bEXjh2JhXOMQUrUToR98Qkk94pqs{S4v0rpEeu?~h`8pH(mD^Ix&ihV9v-=_593 zCno;&|JT-U9YEH>@;kdk&&vC2#Xnz;7C)`)o%ksEyPUe?vgny;nR`FzpLRSx2z-`& zk^cG&Yy9(YSS-ahd{iE482#t?F2=8mpYS^$PkGKfTm$TAr`JSw8=q}`|3J8&yzc)j z-Fuu>)Biv4Eg^|UijnA)Pzi%Rl$zrp^c5O}L6``GFm4(2;dGxaGAfzwQ@TtS8VRGC zGbf@D24N7!wfPXneGq=nb^86W9{ZfV*Iw&=dA%=d?X}llfqrdd9f7BH_)hY1w>my8 zzgl5_XfK#<1!s6@T$Y>Jk0$MZexG>M;(BXTl5BO1I5U{N9|?m^>|tqc=9zCn6+Fz@ zg^Bt+GT4v2k01}&4RfYp4!7tvv1yx}S;AL;QK@z6m zDj{AZbXK6{+Q7v1fA>$v?r&^uCpcnZ&6!v0kKX3DFkp&7pgS8D4r_c&Lw-Mf39V;7n` z+j#_E<@v{;E&ACTEpotK*ahuF#pc5*iRcTZvl-Bh#1J<#(F9rdI`#`9HD@Xw;jb7 z<5B-JVCz(Lzl+Cr_}ba>fL{K;Rh{`pKzL^{`G8nGmM?h%uK(tjE+y~1$Pv~z-=yvs z{G5kIKAtel|Tkz}d<=D}nGgJG=JIF+wyiRKf~;+Vb{&VMu> zxtfj+fb|E(=@qcGnJ;<)e#`mh0(Nq!YpxfFk?Az~9m?*;=(C%00$TkJ&ldAG(EV}l zy-xeH$f%C3HNY<17V#~O7og`savnxjt>Ca{b>`jeqWat@u@Bii%H~2nKC*uvIS$3+ zA#`&T+WDjMFVQQ0=PC71pk;Tmxk)b4Yb~{kLG9e%M_c#NNew+U_}vUGyW@#n$IiyX zE%7MlcIR$nS8;SjFuz{A3zdpo&o|ADPGWbj#G~o|WBb3!L%zfVS!Dfyh7ZX3X7ap@ zE>1$<%XmP0<=g65t9O(9z3Ojs4__H~mj%Ar)fBiKsopu}Uk2`)durgDdL1R_Yp&e| z_(+RQ_ruLY^qyj`N3sn%?75i#UdxFDU`x$HCu+csQLrO0?qsi(YlGHh&c+~%HV@%^uPox|DSBDz>B z=GL&mb#$~4e|cyT50bw&I6 zNp>fb<8(Y;tIoaZu1P&Tnq2(@pcu%)+v3swMN1LDC<*K6(21^&k#qFg(2d;bA?z=kyxftE7m!EnFmYuod)+hc9lf}D zSoW~LnBCfcIa6ht?w907dBH~Hj5*KwuWr%Nd`mt)=_~O7I~o^{);|=tekmR;N}}lu zrMvh{9!(?sUQ8Ze^KaHDjIti(J@0(=v-WJbXU>Ux<54}EsJjH6_o9o=1HQ&Ak4JHH zV-HRnK3<@s`-A-X-TmSGO0qtHY?paPI}mSc>ER8&egquQb^eobxQXy17FDvl=so=$ zL~qBbJBq$uVT0|o_X8X6?An3+NDuF8P16p$Nw=ooV%O1?7_a`dVjg{V<%{!f!s{@; z7SGvmSD~bn>=pjS*U%WVBaJbcgZxU7w-xd2Lo` zZ&@m8j^=zA2x~5C-$+GGo8k2db*8h8E414Y2L9D<7BzZ6z!Dg7q;@)V}2(zcToRmnCp(#u8s#dCfP+FSU(6(uZ%|(aI*QB zcvRSuUgpD;cv*$VVRP6v*)|P;)A4NcQ2LodW)1wo1#-rz@KP;?f96?AT|BD1N;~j8 zd7eHN;N<}{>O0Ie#K@`OYWn$t-)b*D`XBYh*QMx#r}P#6H=~=ET<@>1#ccmX{7k@` zwi?O4z9$(hVH4~r#MSbf!#xV!){ld$!{K?DxB}mG*VDtXaJ!Eqoz$Pt2aR@p9J;Te zs~F7j?e$~n{XJOlY&E9@-Zt%$ds_doA%63#Q5c8)j%TI*U}Ld~c>c)I8oj=b`FrSZ zZ!}(o=l*oFJN_TT!vH+*<9IyW1^jh~uPJ!+y}!iKx#kARb9XZDg}wszd@WnO2yHoz zcnROw3GZmuxAC7n7yY0AcZi*%;B2JhSaEt1o1QF3$5+oW#z_zDnp3E!m(5?Y^?$Ux z&#Crp@jTPoktfZSW&MfwH2d3&?VT=$ZbWk}eXru9I^towI6T4FpfDa)wWe2nZ!Yuu zS9y0A>(|)!aJhW={$~9mvcYo;rFIou#l^Ot6>TK?iF;-8l^pHEWB;q^d61GXUh;Fj zu1Q5r@ErC6Dy@_wwp8yX`I(r#bG2t+3$=NR5>p-}M=>upkB-z2IEZ@te;EDjMwZ4v z(UD{uZ2Tn8A3tXIY`V5q3||*8%byq*MTepB9(MH+d>zbI_E-E)$|s{)+J?>KK=BJ^ zV#RXPin#A{#-rjd;@%5WYUqoPsw-v_Z}W#Aq%v#H!#jc@hYsU33;NB?>n|IIz7%U) zvuAXNxzbX0R(dX9d!=><(H|UUe0cC{@{tg8vc5z2XZXTHR$7~_;OSd5kJ5&{(i1&h zGdCFar%4{n4k9!ch?}>QdtZK^?z+yRd!-&$TU?=!7xi617v%oSaxy00!b$9sPpN%d z8~effhiK;4lS=8U;{Da;nc$=l@4qaEmriIKj?ZQEy~wkyDRg)TUvoA;aU40EL>>eA zxEtVzzKgV7$-avoGXFT!`HAB6NdG73e>U4M*SFuL@Q@w%-@Tj3v9gICF2-vPpP#SK zx#*G4=J8EQ@=2E~L-F5@j^D(0H+9?d8^`BH^?X$FT;rGG>L@4V{Cr03z1rp?)u)t^_R)-W^H&MBh0Z^<&xLK@IIICpri24PT5p`Xg%6q$M18-ROqg_ zM0;mw`!qPtP1&zSTYr%w3}iiK{yXAJ43VFB$IqHR_C3XN`I5ujA1hZ24_t>(AL_w(;^Qt*j5P zrt_=K1>QwZ)%@p1x_A`E_k-6po`J^jbeVD<8ji&$oHtw|r(egP{NcYGy$e6FCEL2S zU(nrF|Kt?mx8PjmUUGV$on6cJTERE$bnT?C0miwb$cBEqp09Ky6LG5mHcD=U7c%e4 zpJ$$vvbowH;rbG7ZJ;;vOCIR?{uaHyOV4%mxL>Y$2L0F*KRS<|-|>9tnq2GL$>BzG zVdPNKJ8q4ja|e<+n=T*jcqzM{MEB?l`n<9&%H1udj;R zr=4H>#B-8bI$9tXYUBD$y8bE^_5BR}YsDxSE*}D)r?cgwl@r*{1#o*2p4yR*IFxyZ z>v8$vh5CL&X$~80VGSlKgYB+bZ;cs$@P~B-=V<>y`RhbJZw5InWD}3EDK?p&0$WM( z9 z3|i-E^Hw-*h5pv&K)d66JWP#)h4-wr7%ZP?O8I_)cl-ZQ_bq%qubnEsSX;x$p$MIY z)7Y_ow~f(eG2LFS?<=&)?!))+ihHw*uI}BBo~y|vj~;%bWAAq*u0{8Kbk>Eg*VFl& zzUCY7_BEf&)^X>C9XXVmrLMt8hg5cJ$}I-7-PhiYiqq@0jv~z z@8(u^_m(2Jh#5oFPtA?WPQqJKtk%xXIi3;F`QVaxl)b^Y1no(s|e`sEl9FJkx@u z$~)Y1nb;n8t`{56QfDYyHt`QD#PoeryXJ<*v4_cY@&f!n?Rd93#t z#aHuR%iy947WthL7zz8&hVg1ccl=$1#_PzvkPe2k^RaaDFrUOxf2ca9QJ+=>jdlnrq?~-bp8@l4!4aO~>UcvRLwUnilLt|z~stztfHj`rk^ zd2i_dC+*0OB3MgSYJZ3P!T3m05>?Vsc(1vxPP-aUU+IoET$@UCXBZgl*neD@=Af1EDiF!`5f z#2d8xzg+t`1z#tRIg%U>b#3DMsHuxQ|4}~eC9>Qh_y0@I&%W#7JLr2`sdzqtOpaAj z)tPyv{;#od?bi;6^V`LmNBHl>#+(b`eWJc^gCV-kg5CT9N&$H(u~Yd&_$q&p>_@^o z`>GX(vL?a2d@CZa@O_g0hwue#Co@jmooz&Ld@Eec+f_e(2HEbReAL%E0A&(6<0bjC zcsUrKV-+zj?DJCyTNUuPnSB?XkB((qqiSN1%;Q&*LLw_wkbptD~%~)luWd>Zo+du98eU2WN?n`rEDA zz9@VS?1ep_>e{n|u5>^qWo%{hIL{nMr!xCvX%aq7 zzx$JM!!Y)KxN|e{zPGU-9G9TIskg$m>YpO#7Id?_@?@^{QS!oJ@HbhEgS9zITcu~f z+#T^Kzn}ZMiEH9qCH}jrUw#Rh6tkIYVcz-h&Rf`LqFyeLH%9x|4^10`2XJ}KOjjQ1QJ+bW{g&n0|bdHZ{+?UVAOF8=vb942b$m$a9ZZx)^ zLicimq?{?b%3S+1IYJl{d(W0-~;XHH}G9Q zsXFuSV{|sTeW6$IHp}F|p7>|Z+C*$wPBFzqdB)@an zHS839hyUL^59LcHFQwNc%-+Wa9!*6Z7NY^48ZQy24M$Gt&pLvm(H{OjcW-a?#K7b#Hhdy}3gAN?pT1Sy=e577 zI!ez~|2)56U<2*YI$vLx=4PJ3C!6S-ZHK*;3w~yU|ET|{`o?cz>|3s0ZJJHNORSLm zr}B4YWJd?-ioVhMGJO7;%Iv{fS;I~yiHq>O5x*N}iD`c41iuCkg+tiInJ~fj%I-0K zW4{%nQ<*)?b9$?DmUwp+8&R)tg!>;OM{R^X`)V8bjD5%jF4FHiz77}D@Ue&U*Q7FQ zvb%mF$9_ZId311{cC{J4tr7C!f(O{X_6D=RR(wZ3dJ1OB)u*EQa&#O^cgLZ1Ao|gm z2P>I5F8FKuulcNMnEMpp8`#}ISllK*;7itjL$BN1vrM@tW$y=i{gSLdBTv6uWaFjN zF8>u`NY-=O>l=@Xu8&7e_rQ?0v&piqE4jXfr%L`BcEjGk`5j^WIG8)cH92JA{gJJEe2T;4@ScfjKQ zc>a;jKSlFn@Novr-QfQd>|vZf^`9OSH>YhZ@DktB5(dsE!?(!!PqJM^KW$T)y_$m! zg|$q{*8bO^>sUB4SCWsn%CFHPpR6ahXeHmW%sDdcx=#Byl4~z?*15K)xKF>^#>(G+ z7E`|`qtWrGaBubQRIX7bedJ_NsIXg>yj|I))*@=khN zvxQF`&NnQPC-5;%mx|LfRbPtz7Bc;qIMH_Uu1==Xp8bwnk~-^OC!<<5&6a zDmtGCL;s=g96Xoe^;x{pZ-@&y?~~oD;v0-+J!qUvelfP0JfB>r;O`ITwLhId3F|4M zF>-5mxA{tKpUYptPyH$McMg5qe<(3b`-8M8Hiu^lVL$is{;)s5`JlJM^!bSPkH9@XXRElv|(=%WB0!k#d-FUk{|!}`52c`Tcg^JVrkwzqQPI(^KP_wZ*037EW{ zyspOg@#d+YPx%f&P4wzwns# zTfOkU#)$Fm{apLu*^y@oVa^~t@5@%}!LWEsb<~`! z!#d(*SN*M%4|H)4S(npC_Fysher=tmt?vFG0L#wTUFiN4nY5-8m_GLzc6AOrbANaT ztg4+h?!u3CpkZJ1yGFX+kuFx^^+~Z4M#DFiqwe_sNv_uxjlc0(H=?b84A=NS9R^;+ zFI^O8lhtZ+`NjDbaJU71^0s_)OCf)$Dxhn&kYq#Y_t3S|SZbkrSJG!c_cz1)4END@ z_#R+*uCX)8{x2ZQEA*MIB#qC=tN)&O`;#By$I>^4^L);!`YC4zOZ9QBaynjNA~I(j z=JUh*L&0bEB;%4rsVKb1RB*9-oA|Vq+Tz>N{rIq{>}sL%fgETRxxJ~K#pHPqd37ht zN3?0qs&bj*O>AvDy)V`_{HIS>j)9AraQJ_5`}DK%8ooi9^S)UAN<7;78adNXvXCyv zlGVk1qq^P6q!n6%f11xu*mdT6nT7o2WHI|4_5#~s4j^f4l>P(;I~7FU1gmt{FTf{|3u|c?Ks!sYS+j5{iS*IA^1L0on~lsJ$90@ z-@fESW|hyXv(>Y-$Kl`*b_JgmC+_me(KE)WRnGDGMSNyyEA8`(<(su}8XxpOzu`3b zUwoJ=2JwHDI2F9|(`SN47ol{1p%i*9)D)X*bavK~jkSowr zWG!R)b7WUfcGK|vzrLC8e1$#Wlg-)gpXd}9iw}Yu^Tvr4FnB1w;JzSTo!J+r7i=Y; zQcq43dz{T)CDvu3y)XT(LHArVlXc>5e)0}jhxxLr;byJpdb7|8mx+$}c;ELjTgI(@ zC%YN+yi!crYE7|s277+Q?%7nqJZ+sp4tzraT!inP6b&H1`%~TvvbXs-b~{iTTh$w0 z9p&GJw#mj@+vJeF<%gB*xf*>Jp|6B*y$N5h;U7<}o^XDH>+Gtb$b9h_IPFibNAHq< z44@6q}_o=l&V+qLD>&rU@R<{s8> z5sT`{b%*f_T}1=Q`&w;2$rE9OoiDb@iO0hx#S-av3~5z`keG@el6%mmYqK%MtnFd;F(| zyB>4ApU%EvtNYV|-(?TRqxBWe!$o?Kd||vc?u8xtD+;mj26gDWY@W7C#EW;(^@)0~ z8neuaXV$sau4UgJXty>VMNi4q)E~6b^_TSVyyALzM!)e*_fLyQ$(yu$pRvy(KKMO& zdRCiole~^^+MesE?8C40Q^cL*X|S~b&wOD0Gx&~?!$Z!0L~d{M2k(p3!{EA9yO+sl zZqxRS{!f7MOUQTx-H}~YJ2u#XezWN1d;8>9ko|qtQPnZ2Xbru6spQj7rFap>ZRN%2 zI53`B&lSFlQ%QgMbiI|%8{`?4^q>9;9nP||7Y;|y*%R$*qR2**J^JK8MM*P zBJq58y4j1|CXvN3KC=fL@ge1MvCUmmQR$KJ)>->Q#h0n@cRty*(hgZPv8SQrlAK3A zZMAzG89QG~9!2UTX8Zpr8mF^;eyZ{}KDAQcjra-klDYDr;1l__u>LAWwlVfxv<^n6 z@{ezLK7N$nm+><{C~I@09PK4Soe#A;B(&pO7i-xmdkgbJgUPi@shggPO31hI8~xFL z`fBY5`p^;W?Hjwj_?Omk>%4a5{*9mE{pQ@L%=xCfhE>b#UMH@+1GlT7yb9Qg(9O9(=h`?7#Xu+j#hK zc%SR~bnQK%EaCYg*d4)|MS5_-^tc7S=^@?3zVhkmQSXa|ypeAy=l`n$ z{vL(#tLWq?_VOLO`=94+edy+?R5a*2F?OBbom`(l9|hW#>(@RiZe4@+VPtj_TFUs4 zU-hf6HM97y9jWM&{c55m2h>D8`Q5uJI!fCQ^U34*=(zgh;EvCz%Jn~A z8zuVGMipODelt5*&OTOakKN`hOhskaq62Mx)eCdpWy}0uVeGYqt>dK-R$-qu-f))KYw1tgyY1E0=!FXY_H6ob&b|i}$T}JegdMb-fk2d<+K< z!^t0P_X+;$L333LU~9kJ%)1XTk9d_IHZ<{k}%xEmk#dm`JP>9=FUB=?S&D?RA{Z2JG*UgT_k`s?s8 zUp?0fr^Tau$FT0b-(q}zfp&GmJp2wkg?lU6Z&te>ni{$NT@4YjWtA z{?fzwfPwRr(xz&_H~x}`=!h^v(peeo^ef#OZ=eh5HnmW*hkr>ttxbP(k@)3Z`be6 zzL{ql;n`6US!R#J^L1#woDD95YqrvLzOm^l?a$cNPwXYJs0&-}CXXAQigv0~a*|kv zo)+!d(3SkzAU?tQehXlnZ8u)#{wLw_F#Nw}|2=*#axRR=nzOI$^YPUkjVsV>-mmm6 zn8$0h!PxF_eYJz(L-pT+O*UsAk8Ae}Hu?+KW;~Vi^Qwv*bF^|{Y#Tcx`fNvE6&d{jyn~`;e4uRsTI#U-w_5n zk;#p8f&PX|QohB7x0d>R(Ae)?^gp8gw_)T!V~Cs3u>jxh%gT=1J1uTZFHgJ;{?GP% zck(_LZq!NRJ=t0@hZB{qjly%$f(pR!V{T^MWPNAnCpz~X9)5QGOB-Y3 zQSov%s*k2CVes~Nl+{!FAL?7Z?ACZWjQw01k4o7{p8DA*p@A&~+11Y0CLdd$wd-2f zdHP$ZopNIh@uh7AjBM9tM|+}pcHRGPap%33ZOv$hK+TY=mP1K)BCT;1fFBvAu@ECIa z4;`OCF3adl-wE{YR3at}ha;ScL z!fP(SeKWe@G|VrBZ<(h@pd$-f+! zp)bD@!_;YfQ5@4w@jS9cSK}M-RU}vOOfIa4ua9734tcJCpZRdMh1|^dr=2f?*DUyN zJVlAYegnC_X#Q&-bQF=z^=z*jc`Yz*h0W%b{P<@u)gW(ro!toA3PhCqa7<( z%eUsJcorQc=o1#wTaD3|!}|j3s>{)`XFRiZss2XTIuABS=zFesv4&l)i+heL5BtTp zwv4e4w2or>J|5PuF%F*=k49{SVfkQ{y+7uhW>25EwUK^*DL-5fzg^IA zm9-d)z89x{hVh*+{#-os-QUTNz`eFA@)Z1sHCas;YwtS0&k$!0U}Kl4b2b`J@c#!=c(9qRpepaEvmuI;w@c0=~vaBfR4+zC6y>?$gI> z@#u8EEAL;n?{}{b=+o|?-{nT|IS9TAN7A9T!~1G2+PPk#k9OK>tIz*q3lrHNe1ti- zsFUkYIo`lu;-wr9;aN>(Z#umPj`m;&Q|R?d_us<*ou%$Fn3?7L>HIZ*8m`e_SM9=4 zSa+X8ro}gi-G|ZNuj(JHk9z%Sv)7oo@d*sX^-%zKY~#zF?DR|a^)y>}9v>-k@;j5W zO~+5Rw%fq(quM%3ylY>b!B{~uH_GGVYd=BfA@b8s=;(o-X6UGZLF0ksQiXn-PlPj= z8u1Su!NyH;h!3sBD>Say`3IW##M&}*srnkWPTy~c1HmTF?;BOQzw{yg=>>C~SL@>p zzU^7xHtQcZUXu%b3ZpN}krp|Y&{0n^L|fF6Es$%|p?G}*9eY(rS)1tmQt$q-%i3$n zc!Te&SZA<}EnN@yIVZBSIpXYQc0Mt+Yu~^M{LaI-=XYWLDZE1vzH^`RFCBbCH~*k3 z!LQK8&N1Ydi^k4;;H&z&84c=(@2r;JDOZ}@H_Gp&-Mjg`7gD~{Zm+Y0YRnm!r~iO1 zX1Z59z4FO@C_W#glX0mG#)9vSE)o;<*Z8%5|3c3ZY^4u9!&%X0Ja$vW%&v#%<2U?n zgy(?qm*97*Yo0@feMSS1;W=j>ePzD2xZZg8f5xDDYES9a1HPBhR~;NZiS{1dC(ztFiR6*bKl1J=rI{y^`KXmu`pk1~IO|0`V2LkIkZ?-qo;f|I|orL*Ap zT|RT?u6HhTW|Qw{@^^Zz7{a&S?%reQzAakew~#(7_Jt2viakPaqv_WB{o#AgvHxiM zOuQ|p6S-L3!DL2nVcxS8b~~V<{%ZIQYo!jC3${r`<@MFRJHWIR#(UY2_;}4;V#bX%(dh%kiI_cq{-M*i z$@De%XftmHI>eVQPqC>Fj1$GC(~Til+uM7VxV5suoZh$O_HQa$y+=(HV~c&Ao4icC zIuYI3`fMhbSc9Iy+TD_hPCB?IYISl=w4eBt%~q3L&%j|%IRt?XkBT#a&XcXi;S zh)=8kJ2xsHrd_x=cf0mH!*3~nDLLKx*MwrNPF0t9RN0-(E*8^{MdJ>5eGL}7;b)RL z=2h(ZBYK+#n?Ly7SNj)>cN5t2QXAUK4Ba*OJ8+- zSzFj^M}BO(#p&p&LeD3B=L>9My1om^K?Y0Eav6*sChi^O{PF5t z=-fSI>w1@$+`EMg$MC_=%9|Qt;}1C8YHT}}PUX^-@4)nF_;7FIcJfX5e-4}64ZZBw z0>aGq2@`2?WtsYO&HeWv*SpF126oerJs%iw&?jo>L6`b2y`Ahv@Tu&4#BZtSSlDX; zb6HLN{(Ed=lKZZ}^H8{nwDp#GzGJmNoUTqsD;VIA5Qvx%wfc!m4e&Y}t0x)`nJqjfr7*}+}pw^7~NThaa{8m{CU*1%NA zxmt+Z_f^~LfZc!3-@J`Celz=UHW~cq->`Uuw%By+e)qJex2x&xOniL@3xArIy?}1V z)5knGnN2tSU9*NL*;#+br^FXFda!th$2{^+-ol5BMB8xZdZwZR{yMCwF2!?8=DmTigI=~_Owz?{x_b-VL>rRe$v|3}kJGj#9O zmu%tlS-N(_&B~=;k#s={SNr^LE_K8Fu^AjZBTw8Gngsb zME+r)r91TLTE!rCx>ziEDIU#P!Y+oWb19q7kMH{K_*ra>Kdl_A9=j`&8%6(m@2whN zkJHaX{1}=_{y^JQXgn0B8yVyk5hhgq2ZKEaZZ=WU43*V!PUMAx*v~6}>-~Hc&+cbLFM}ak+=-zIJi*X~I6u^$>{;-dpB+y|2(P8^}k=@XSc=6o(X&n3@W zjK9b=JR2(%-@=1U- zE46E%wbR%_89#dtKYAcc{0i3x>GL(dtdL&$m%`oY+PxLkDND$-`xw7B9KO4yGT*$6 zU@lt4FU*ny{9w#btPlN$XQ7if8<%~Nic0^2wYhwq`HK1(@^>~DtHpSP5_h>v<@yGJn z#8f%!(d_Dx>Zp7!dBIh>3w`oyc^%`KHLmr;{C~)tD$Kq?A78`49GEEh6OI#8KJ)8_=FO_7OUmX?R6wj<@9&En2L0d!LGY(os?>FG( zIx;x}K5kILw=Lhb)?y={dJa7=MBnq|bPH^))aE2|Zswjz=5P-st1`5}Nx;o7ulnuT zS*v&Dryuh@D^i*L-oyB&KAwvDFIR4(kx3_f z(Qo29eY1_Q#yK%qZu+b^x;Hv@!qX0PJdMZW;PPBLIGdlENCz*w_bq&&ZSXv@z)%0D z@%tKVEWxw(vfizZ^2C~uf7I>fTyJ(!g6{vrk62!guA;~Fw-P>wv8O!zl2fnI{O##@ z9FJD9Bg}t91K`ShTzv#-i5aXGA)$U0BSC#Mt966AMe* zXc7BtGQYL+cXs?6f7({;5r6uNJ>gkwE&p1w-q__QV;45~YHRQNn%mggVD3Zd%Fh=b z>wa@)4X?1VlgYayxrh7+ja5UnaS8u$9z9*Hk6ZLT?f?7jW&Hk9zG2-ipOO4lT-YQJ zT1dvvvh~m0^NHN(8}oSR`ut?iar)aw|D02!JCwuh`_~gKb@<77i*3APkBb#BQX}6v zTVLoK(TL{}t}jB@F=FEf_&CzM$Z6*G2HHEYpY_@?^tUwcC{~sIBL?ELUcWKAuFZ*i z$A?|5cmHW2wrHynw%+8Y;WD99`!$n-S9IFXNj5m-sqjo^?}BqgI;v~ zNGi&{QaKPlma(_)>|++a{>yIRA$b{G426g3Ft89N_@1z?HLQaR&u&U{Q&HgCe?)BC9%?#X`2T{trCA!XBQG>#lReM>hQT zou#e8WWsJXKfp%EqXplaA7&Rv>Z_T4sqpLzCB@%x%>n=6_fK1h(|g9Cr_IJt7$pVJMk#_+^#&mxD=l6 zfL&N9Zv`JIZ9OVqxXG~@?CsBQP2_LbYmAO#dsSz?6_iB>P5Wq<-wn?bV?)TJ!>(r$ zbrady`>-Qt`Uwtm$YYWpR!kJIUuWU`W-c8AMT#r=*jb~QRixNj_fG67u=@-_bVo9kY7 z8T6KHzTSID@ys~3!yI%Rq)cK*Dfr({eKN~#M<4t{$nhJmWivT^bFa8PSmV*=vHbIG zbT9;Fi{nwnWq$MJiBEh}esVloPp02{CN$$P-%pt_oJd@lMg+Pp^IBQP)ev0`(Ig!6h1_O=xvJ*i9qc7oM$;4(jZw zpX=Ge4C5xHZ)khDG0Y44`b=E?So?1n7k(}F{q5SHFkS~kOC8ZTBI*8v$wd4~+)T%7 z%`LNutXJr(R9?Q2&R(JeGesIrwq+C;6#W3ITAeoP8xNGU$5%`J z%Zrnho-dE%r>_wMF363N)^>*V(9t$+okK?(>2e*No-aoAhudtp{gOW_ckc^)*cav| zFK3I#q%!ktv6K0t9PLbI|6<$bR${`f@`tC*kJi#{J-qM-r7+aUABOb=c?oh6tF!NB z$6>rOlf7Na22O*ki|AMm6TU?necC7L+7D(nXzLTXTEnhqnV+|kXBk^<_P^qN_q_&7 zDcGG0Z^!CuwLE(cnx4wdybl`_Z==h7Ut=>`(I4JjD4j{3FDqw~^A&jc1RckjZ@Emo zfd3sU;QcumVG~1NkvD!5k9K~puQOnFZ7Le&S#_^Qd{oovv|avc+h_dMU(UUzy@~wB zWptf~N0!#g0SxHP|U%;XhoIMSl0t z#&FMAw}^xCn?xt|pP||?5Lm8)9;;A#Fa5HG!jj0V`CYa ztt6Xeayq=1pFk(Sk=Gow-GZ09^(DtiKH=S!hv{w+J+|=wNjQl+!hCrDtnwLpzQ(&J zHDWwDgm>vo9z^9?>a0=+?i-FkFN`K%$h8NPQsJIv;u)FdT+Ge~puao$--LF$NaJbD zcjh0(i}G#!!X*CO^`iE4d$i+ysi+iBix#_QAi0(I&Ey`RWX%f&8;M-^u( zhloXA@So4+M%m59f-&Osi+ud^{J|sfC~>;~hsL9(0^=nyqhVD%vyQU#a`*j1hBah) zUp(sdF zaQ~ox%@N9TW9S)d>{)4yG+95J7vevcA9$L+o`sPW?1#P7!bkp9@W6)^TrQq1$<6rs zyie(o&DQ@P+&Cs*fqVX~Xu98r@h_wJ>)!A-30~9m{t+yHXx{5_I64%z-i4)O;F_Jb zeLEF>ENvMiTYc-;2>!z} z_Vn-U`g`jqIvJ;VHr+WNZ3AnfTf3PH|Hpl3E`K!@6>qn{IokVq4%WOL4fFAKE}H&k z*V)<{#8!sOmC;$w-g==c_?`7i9Nc4l}E9@XDQtpzcTqM4a=<8cJ{*OizdZOig-YdIuh0>>-`-$zmg&*U% zkXIMY7ng>ibprji)OLe5qUY`XgdcSa#ERGjcuC!T8t>Z6$QL zTFy8HrtXMGecwgPuYALwV*PgZ%>Ei$#_hYe&g&e(hTt@ZT-)GroxLV{vTgn;yHMNo z>tzGJG1oVn>ER*zp_`H?<-B*vgKk7Se=zKMG}rK@tLgAj{PocO0QcT$zAr)E0pAD1 z%_irv{U1thPipsgws{xKmWzvvVEQStu4KDY`S?L%$D#OH3y(k3Em}(7fH`q3vi>4} z1pn~@yJzP)%d5R7NQU|3_l3Q1Hp(^F_9Z=Qq6^u2_oybS_|aJG^OQXx+{dQ!-J9ln zwm#z=T=nEX3NL5RJ<)Kya+d$Muy^*;L7l-B=z5I)m0ks@%-AP=h?q55{5^&DCe-6sPAqyQ5W}y_t7iQVQUHP?g>YWtL?E+ZEhcLYvs0`@db~iN4egP z?|6`29>DWeaN8fhOU-@X>UuUC9>7PzVmVuj{^cv1t9z(AS1Y;h8Kmt_+MZ-Q3U52; zyN8mqI5%4Pg!@{_r_j}E2YILPKAHT6@-rvHPcwe_1-_L$lSOpn7}n_*|A$-#l9v+u zNZZzM7Tlq~uRY^uBb8susSa>2UljSDVBeYjbN`WxPc?VeH6A4j;Oa~)ZEZj3;UQpbt(r?&Lsr(AG&t^OC z8Z*S$-yruik4J?!vz=10o-fKqS5NY+LTBkB_rZPnyYhjx#sTB}W)op=j&15qewHn~ z&*py<%mlr2^4 zmfg+K&!BbW_yk*Ati5H*b8-8KIOkY=HyYydjN_End{MQ2;3&;ECg0`9^IRXphWV%P zO_qi$(ZfIGt))-)JLYKLI+QP5Pc9AYJ@3!zXmbgCk7bLUVQ%31s9|?J-j6Ok_8UtU zWS=)iZdFQtg)p^{J&%Kj=IXcUV{NgvFYgoea(~;I;>~RF^lI1Cj}C}u-c_u)F7BHk zXlai=G^Zby3x7e+d{p?JY4Rt!o<~OmtGypBr)tfAvzf|g)tRZzQe~rSd$Z3|Qs$)f zwVDt4B^BlWth@r_`i(B)TVOowI}}^XcV4G18#q@E681~kIFF4jN%^)2d!O$9Tyb>@ zTlmP>>FRjq8;#SyOGV31lj~Z?^r~n0!#1c&U4*AO1*E$y;Lmy%e*^(Rq(Yoo_GFc`vEUtpK`nRte@=}na|uq zPK=&0@3PfR^Z+xBS?Kwkz7EKZ5`E=5bX&SN+u6asjA;@nG?NLF_$^$vb`N=`U-L|D zn7ZGahdTw{*GR^)im8T7Q$dnz5t=pgr5vy+CKus$coSB7_)(?9a-C#aj}8F^e@${rh^)8B8_ z=!ng88sgD~@|GFaYEP$&XtlYaL)k@NnE#m`E+>z(`SCmX+)l1*vy}e{Ic4}(eNk(; z-UBwT=dWNRdR<@U3knM1GWhOQXgre7oX@8`L*FaNX)&KhC)vgHK9DX3X#W3^TxYy|hL0P(L4NZde)y6Ptry6z<4;Cu^M~rp`$nbbnX7vQ?PyrU zu8TY3^{#c+?~()g=RCy@o@8$@SRZV627P>Leu6H-JEIZXDx&{1e~~Ege>9%G&l9^C ze$G($G`j4ICbWjUt7x_VH`t>fNfuk_r@8U3=X7=N(*b-p!1JKTQc(f^va|TA*48o4 z(bj{?J7jl;xE7CR)}|M*t;V@%`an4rhRHXdek<dYQ}>1ui2$&|dkj7~21H^IO{$*zEbD@#Qpq z=(D~IMqy_&oNX?GlWXCIZP&gI1M<|^AaP|Nnwq19?y^tNAKJqHWEJ$;>oizx(AP9r z>5j%P%x7&!=T&G+%6YFu*B7q6Y#w(Oymcpw`MJKc%hqSJ^Ec!p^tbUZ`R>-Z{fWtj zZ0jfB*?P+GK3@8-T;KZalUZjR-b4E`B?o?h0tH3-!B!o&Se^_Mo#tblF*9 zFWCpc%BA#sCM<4)&(^#0?7AWB_YQmxpvM_xwwB%xgoRh}n}x1sWVwiJ8u=FT%fFaz zyOA3?6};_yuraxHve0<+V0r2zWbuR}UpRPPJhLxO0e@QjFq@lA2RGA4(0M2N+ezmG z$?GWnd`Ye~j=`6IC&xFokGd-P_M*N@oczT3&(QWWOupo|`S|+5@U$D<{?6x*LJONO zq_Y@*)9ZTY_elB9C;g`2aG}2FFK>4?_!IugJnLdIxu1NlBh$g;0{@F9qkRrvFo}L| zW^29pWb#h`l539z_k7DX_GZ`Yv+|y}`Cr%Y9=*l3iuLsxc|AoohdYkUjf(QqAHLzfX5{@lA5`x=eb>eC7i6|jT{%tSE%%M%5Bi|@IX>|&^e)kULfb{+ z$06EE?|P;f){g}o=C|Ve*j3^Ej`W|Hs{R1uD{_pclE-t_7l<{9Z?sV*hVwyT+*dBw zi0*^M4PxoPWC1VH0J`3f{+7a4D{?C~hJlkoKk_XtJaemy`+mFe&*k#D%2agMGx}VZ zGC#y#UUq-7N-@{IX}vjja(DPK#x z7^$DTa(Bf7`AGsEiw|Q*@LlJaSf(z!uBX%Vk7$0tee_s5mYwlCVVqk~udidAKTy5> zVeM}AzLM_9BA;9e-W8{>p~pScI})~GC43__jNif@c47QnC}u`V|0DEyD_a-~0}J$- ztKDPqiJo*RT{{=%P#P=Pw?4vqaQ*Lvb=VK{NRy}gࠞv8Zbn|2D>6%C|obQQTb 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%0A&u7xrTKeR%zlb=-IGC#d^ZK5X4eU*;d>>aLfD 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

    *et^b9!yti8hCoB1L2L=@gI-WKB)^VW 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�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 =ZaKiIkBDiz59S`vn$Q{*g3_?p*Gf5 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ðu#6(;8qZ7rUkBq_J`VYuIxtC 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ÌJ98@d8qOxFguh6(? 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