From 60489eab596fa6d4fa77a9e5a4ed3bdbecf78b58 Mon Sep 17 00:00:00 2001 From: bdim404 Date: Tue, 7 Apr 2026 18:11:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20rename=20canto-backend=20=E2=86=92?= =?UTF-8?q?=20backend,=20canto-frontend=20=E2=86=92=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- {canto-backend => backend}/.env.example | 0 {canto-backend => backend}/.gitignore | 0 {canto-backend => backend}/api/__init__.py | 0 {canto-backend => backend}/api/admin.py | 0 {canto-backend => backend}/api/audiobook.py | 0 {canto-backend => backend}/api/auth.py | 0 {canto-backend => backend}/api/jobs.py | 0 {canto-backend => backend}/api/tts.py | 0 {canto-backend => backend}/api/users.py | 0 {canto-backend => backend}/api/voice_designs.py | 0 {canto-backend => backend}/config.py | 0 {canto-backend => backend}/core/__init__.py | 0 .../core/audiobook_service.py | 0 {canto-backend => backend}/core/batch_processor.py | 0 {canto-backend => backend}/core/cache_manager.py | 0 {canto-backend => backend}/core/cleanup.py | 0 {canto-backend => backend}/core/config.py | 0 {canto-backend => backend}/core/database.py | 0 {canto-backend => backend}/core/init_admin.py | 0 {canto-backend => backend}/core/llm_service.py | 0 {canto-backend => backend}/core/metrics.py | 0 {canto-backend => backend}/core/model_manager.py | 0 {canto-backend => backend}/core/progress_store.py | 0 {canto-backend => backend}/core/security.py | 0 {canto-backend => backend}/core/tts_service.py | 0 {canto-backend => backend}/db/__init__.py | 0 {canto-backend => backend}/db/crud.py | 0 {canto-backend => backend}/db/database.py | 0 .../db/migrate_add_local_permission.py | 0 {canto-backend => backend}/db/models.py | 0 {canto-backend => backend}/deploy/nginx.conf | 0 {canto-backend => backend}/deploy/qwen-tts.service | 0 {canto-backend => backend}/indextts/__init__.py | 0 {canto-backend => backend}/indextts/gpt/__init__.py | 0 .../indextts/gpt/conformer/__init__.py | 0 .../indextts/gpt/conformer/attention.py | 0 .../indextts/gpt/conformer/embedding.py | 0 .../indextts/gpt/conformer/subsampling.py | 0 .../indextts/gpt/conformer_encoder.py | 0 {canto-backend => backend}/indextts/gpt/model_v2.py | 0 .../indextts/gpt/perceiver.py | 0 .../indextts/gpt/transformers_generation_utils.py | 0 .../indextts/gpt/transformers_gpt2.py | 0 .../indextts/gpt/transformers_modeling_utils.py | 0 .../indextts/infer_indextts2.py | 0 .../indextts/s2mel/dac/__init__.py | 0 .../indextts/s2mel/dac/__main__.py | 0 .../indextts/s2mel/dac/model/__init__.py | 0 .../indextts/s2mel/dac/model/base.py | 0 .../indextts/s2mel/dac/model/dac.py | 0 .../indextts/s2mel/dac/model/discriminator.py | 0 .../indextts/s2mel/dac/model/encodec.py | 0 .../indextts/s2mel/dac/nn/__init__.py | 0 .../indextts/s2mel/dac/nn/layers.py | 0 .../indextts/s2mel/dac/nn/loss.py | 0 .../indextts/s2mel/dac/nn/quantize.py | 0 .../indextts/s2mel/dac/utils/__init__.py | 0 .../indextts/s2mel/dac/utils/decode.py | 0 .../indextts/s2mel/dac/utils/encode.py | 0 .../indextts/s2mel/modules/audio.py | 0 .../indextts/s2mel/modules/bigvgan/activations.py | 0 .../bigvgan/alias_free_activation/cuda/__init__.py | 0 .../alias_free_activation/cuda/activation1d.py | 0 .../cuda/anti_alias_activation.cpp | 0 .../cuda/anti_alias_activation_cuda.cu | 0 .../bigvgan/alias_free_activation/cuda/compat.h | 0 .../bigvgan/alias_free_activation/cuda/load.py | 0 .../bigvgan/alias_free_activation/cuda/type_shim.h | 0 .../bigvgan/alias_free_activation/torch/__init__.py | 0 .../bigvgan/alias_free_activation/torch/act.py | 0 .../bigvgan/alias_free_activation/torch/filter.py | 0 .../bigvgan/alias_free_activation/torch/resample.py | 0 .../indextts/s2mel/modules/bigvgan/bigvgan.py | 0 .../indextts/s2mel/modules/bigvgan/config.json | 0 .../indextts/s2mel/modules/bigvgan/env.py | 0 .../indextts/s2mel/modules/bigvgan/meldataset.py | 0 .../indextts/s2mel/modules/bigvgan/utils.py | 0 .../indextts/s2mel/modules/campplus/DTDNN.py | 0 .../indextts/s2mel/modules/campplus/layers.py | 0 .../indextts/s2mel/modules/commons.py | 0 .../indextts/s2mel/modules/diffusion_transformer.py | 0 .../indextts/s2mel/modules/encodec.py | 0 .../indextts/s2mel/modules/flow_matching.py | 0 .../indextts/s2mel/modules/gpt_fast/generate.py | 0 .../indextts/s2mel/modules/gpt_fast/model.py | 0 .../indextts/s2mel/modules/gpt_fast/quantize.py | 0 .../indextts/s2mel/modules/length_regulator.py | 0 .../indextts/s2mel/modules/wavenet.py | 0 .../indextts/utils/__init__.py | 0 .../indextts/utils/arch_util.py | 0 .../indextts/utils/checkpoint.py | 0 {canto-backend => backend}/indextts/utils/common.py | 0 .../indextts/utils/feature_extractors.py | 0 {canto-backend => backend}/indextts/utils/front.py | 0 .../indextts/utils/maskgct/models/codec/__init__.py | 0 .../maskgct/models/codec/amphion_codec/codec.py | 0 .../models/codec/amphion_codec/quantize/__init__.py | 0 .../quantize/factorized_vector_quantize.py | 0 .../amphion_codec/quantize/lookup_free_quantize.py | 0 .../codec/amphion_codec/quantize/residual_vq.py | 0 .../codec/amphion_codec/quantize/vector_quantize.py | 0 .../maskgct/models/codec/amphion_codec/vocos.py | 0 .../utils/maskgct/models/codec/codec_dataset.py | 0 .../utils/maskgct/models/codec/codec_inference.py | 0 .../utils/maskgct/models/codec/codec_sampler.py | 0 .../utils/maskgct/models/codec/codec_trainer.py | 0 .../utils/maskgct/models/codec/facodec/__init__.py | 0 .../codec/facodec/alias_free_torch/__init__.py | 0 .../models/codec/facodec/alias_free_torch/act.py | 0 .../models/codec/facodec/alias_free_torch/filter.py | 0 .../codec/facodec/alias_free_torch/resample.py | 0 .../maskgct/models/codec/facodec/facodec_dataset.py | 0 .../models/codec/facodec/facodec_inference.py | 0 .../maskgct/models/codec/facodec/facodec_trainer.py | 0 .../models/codec/facodec/modules/JDC/__init__.py | 0 .../maskgct/models/codec/facodec/modules/JDC/bst.t7 | Bin .../models/codec/facodec/modules/JDC/model.py | 0 .../models/codec/facodec/modules/attentions.py | 0 .../maskgct/models/codec/facodec/modules/commons.py | 0 .../codec/facodec/modules/gradient_reversal.py | 0 .../maskgct/models/codec/facodec/modules/layers.py | 0 .../models/codec/facodec/modules/quantize.py | 0 .../models/codec/facodec/modules/style_encoder.py | 0 .../maskgct/models/codec/facodec/modules/wavenet.py | 0 .../utils/maskgct/models/codec/facodec/optimizer.py | 0 .../maskgct/models/codec/kmeans/repcodec_model.py | 0 .../utils/maskgct/models/codec/kmeans/vocos.py | 0 .../utils/maskgct/models/codec/melvqgan/melspec.py | 0 .../utils/maskgct/models/codec/ns3_codec/README.md | 0 .../maskgct/models/codec/ns3_codec/__init__.py | 0 .../codec/ns3_codec/alias_free_torch/__init__.py | 0 .../models/codec/ns3_codec/alias_free_torch/act.py | 0 .../codec/ns3_codec/alias_free_torch/filter.py | 0 .../codec/ns3_codec/alias_free_torch/resample.py | 0 .../utils/maskgct/models/codec/ns3_codec/facodec.py | 0 .../models/codec/ns3_codec/gradient_reversal.py | 0 .../utils/maskgct/models/codec/ns3_codec/melspec.py | 0 .../models/codec/ns3_codec/quantize/__init__.py | 0 .../maskgct/models/codec/ns3_codec/quantize/fvq.py | 0 .../maskgct/models/codec/ns3_codec/quantize/rvq.py | 0 .../maskgct/models/codec/ns3_codec/transformer.py | 0 .../maskgct/models/codec/speechtokenizer/model.py | 0 .../codec/speechtokenizer/modules/__init__.py | 0 .../models/codec/speechtokenizer/modules/conv.py | 0 .../models/codec/speechtokenizer/modules/lstm.py | 0 .../models/codec/speechtokenizer/modules/norm.py | 0 .../modules/quantization/__init__.py | 0 .../speechtokenizer/modules/quantization/ac.py | 0 .../speechtokenizer/modules/quantization/core_vq.py | 0 .../speechtokenizer/modules/quantization/distrib.py | 0 .../speechtokenizer/modules/quantization/vq.py | 0 .../models/codec/speechtokenizer/modules/seanet.py | 0 .../maskgct/models/codec/vevo/vevo_repcodec.py | 0 .../models/tts/maskgct/ckpt/wav2vec2bert_stats.pt | Bin .../utils/maskgct/models/tts/maskgct/llama_nar.py | 0 .../utils/maskgct/models/tts/maskgct/maskgct_s2a.py | 0 .../indextts/utils/maskgct_utils.py | 0 .../indextts/utils/typical_sampling.py | 0 .../indextts/utils/webui_utils.py | 0 .../indextts/utils/xtransformers.py | 0 {canto-backend => backend}/main.py | 0 {canto-backend => backend}/pytest.ini | 0 {canto-backend => backend}/qwen3-tts.service | 0 {canto-backend => backend}/requirements.txt | 0 {canto-backend => backend}/schemas/__init__.py | 0 {canto-backend => backend}/schemas/audiobook.py | 0 {canto-backend => backend}/schemas/cache.py | 0 {canto-backend => backend}/schemas/job.py | 0 {canto-backend => backend}/schemas/tts.py | 0 {canto-backend => backend}/schemas/user.py | 0 {canto-backend => backend}/schemas/voice_design.py | 0 {canto-backend => backend}/utils/__init__.py | 0 {canto-backend => backend}/utils/audio.py | 0 {canto-backend => backend}/utils/metrics.py | 0 {canto-backend => backend}/utils/validation.py | 0 {canto-frontend => frontend}/.env.example | 0 {canto-frontend => frontend}/.gitignore | 0 {canto-frontend => frontend}/components.json | 0 {canto-frontend => frontend}/eslint.config.js | 0 .../fonts/noto-serif-jp-regular.woff2 | Bin .../fonts/noto-serif-kr-regular.woff2 | Bin .../fonts/noto-serif-latin-regular.woff2 | Bin .../fonts/noto-serif-sc-regular.woff2 | Bin .../fonts/noto-serif-tc-regular.woff2 | Bin {canto-frontend => frontend}/index.html | 0 {canto-frontend => frontend}/package-lock.json | 0 {canto-frontend => frontend}/package.json | 0 {canto-frontend => frontend}/postcss.config.js | 0 {canto-frontend => frontend}/public/favicon.ico | Bin {canto-frontend => frontend}/public/qwen.svg | 0 {canto-frontend => frontend}/src/App.tsx | 0 {canto-frontend => frontend}/src/assets/react.svg | 0 .../src/components/AudioPlayer.module.css | 0 .../src/components/AudioPlayer.tsx | 0 .../src/components/ChapterPlayer.module.css | 0 .../src/components/ChapterPlayer.tsx | 0 .../src/components/ErrorBoundary.tsx | 0 .../src/components/FileUploader.tsx | 0 .../src/components/FormSkeleton.tsx | 0 .../src/components/IconLabel.tsx | 0 .../src/components/JobDetailDialog.tsx | 0 .../src/components/LoadingScreen.tsx | 0 .../src/components/LoadingState.tsx | 0 .../src/components/Navbar.tsx | 0 .../src/components/ParamInput.tsx | 0 .../src/components/SuperAdminRoute.tsx | 0 .../src/components/ThemeToggle.tsx | 0 .../src/components/ui/alert-dialog.tsx | 0 .../src/components/ui/badge.tsx | 0 .../src/components/ui/button.tsx | 0 .../src/components/ui/card.tsx | 0 .../src/components/ui/checkbox.tsx | 0 .../src/components/ui/collapsible.tsx | 0 .../src/components/ui/dialog.tsx | 0 .../src/components/ui/dropdown-menu.tsx | 0 .../src/components/ui/form.tsx | 0 .../src/components/ui/input.tsx | 0 .../src/components/ui/label.tsx | 0 .../src/components/ui/progress.tsx | 0 .../src/components/ui/radio-group.tsx | 0 .../src/components/ui/scroll-area.tsx | 0 .../src/components/ui/select.tsx | 0 .../src/components/ui/separator.tsx | 0 .../src/components/ui/sheet.tsx | 0 .../src/components/ui/slider.tsx | 0 .../src/components/ui/switch.tsx | 0 .../src/components/ui/tabs.tsx | 0 .../src/components/ui/textarea.tsx | 0 .../src/components/ui/tooltip.tsx | 0 .../src/components/users/ChangePasswordDialog.tsx | 0 .../src/components/users/DeleteUserDialog.tsx | 0 .../src/components/users/UserDialog.tsx | 0 .../src/components/users/UserTable.tsx | 0 .../src/contexts/AuthContext.tsx | 0 .../src/contexts/ThemeContext.tsx | 0 .../src/contexts/UserPreferencesContext.tsx | 0 .../src/hooks/useAudioRecorder.ts | 0 .../src/hooks/useAudioValidation.ts | 0 {canto-frontend => frontend}/src/index.css | 0 {canto-frontend => frontend}/src/lib/api.ts | 0 .../src/lib/api/audiobook.ts | 0 {canto-frontend => frontend}/src/lib/constants.ts | 0 {canto-frontend => frontend}/src/lib/fontManager.ts | 0 {canto-frontend => frontend}/src/lib/utils.ts | 0 .../src/locales/en-US/audiobook.json | 0 .../src/locales/en-US/auth.json | 0 .../src/locales/en-US/common.json | 0 .../src/locales/en-US/constants.json | 0 .../src/locales/en-US/errors.json | 0 .../src/locales/en-US/index.ts | 0 .../src/locales/en-US/job.json | 0 .../src/locales/en-US/nav.json | 0 .../src/locales/en-US/onboarding.json | 0 .../src/locales/en-US/settings.json | 0 .../src/locales/en-US/tts.json | 0 .../src/locales/en-US/user.json | 0 .../src/locales/en-US/voice.json | 0 {canto-frontend => frontend}/src/locales/index.ts | 0 .../src/locales/ja-JP/audiobook.json | 0 .../src/locales/ja-JP/auth.json | 0 .../src/locales/ja-JP/common.json | 0 .../src/locales/ja-JP/constants.json | 0 .../src/locales/ja-JP/errors.json | 0 .../src/locales/ja-JP/index.ts | 0 .../src/locales/ja-JP/job.json | 0 .../src/locales/ja-JP/nav.json | 0 .../src/locales/ja-JP/onboarding.json | 0 .../src/locales/ja-JP/settings.json | 0 .../src/locales/ja-JP/tts.json | 0 .../src/locales/ja-JP/user.json | 0 .../src/locales/ja-JP/voice.json | 0 .../src/locales/ko-KR/audiobook.json | 0 .../src/locales/ko-KR/auth.json | 0 .../src/locales/ko-KR/common.json | 0 .../src/locales/ko-KR/constants.json | 0 .../src/locales/ko-KR/errors.json | 0 .../src/locales/ko-KR/index.ts | 0 .../src/locales/ko-KR/job.json | 0 .../src/locales/ko-KR/nav.json | 0 .../src/locales/ko-KR/onboarding.json | 0 .../src/locales/ko-KR/settings.json | 0 .../src/locales/ko-KR/tts.json | 0 .../src/locales/ko-KR/user.json | 0 .../src/locales/ko-KR/voice.json | 0 .../src/locales/zh-CN/audiobook.json | 0 .../src/locales/zh-CN/auth.json | 0 .../src/locales/zh-CN/common.json | 0 .../src/locales/zh-CN/constants.json | 0 .../src/locales/zh-CN/errors.json | 0 .../src/locales/zh-CN/index.ts | 0 .../src/locales/zh-CN/job.json | 0 .../src/locales/zh-CN/nav.json | 0 .../src/locales/zh-CN/onboarding.json | 0 .../src/locales/zh-CN/settings.json | 0 .../src/locales/zh-CN/tts.json | 0 .../src/locales/zh-CN/user.json | 0 .../src/locales/zh-CN/voice.json | 0 .../src/locales/zh-TW/audiobook.json | 0 .../src/locales/zh-TW/auth.json | 0 .../src/locales/zh-TW/common.json | 0 .../src/locales/zh-TW/constants.json | 0 .../src/locales/zh-TW/errors.json | 0 .../src/locales/zh-TW/index.ts | 0 .../src/locales/zh-TW/job.json | 0 .../src/locales/zh-TW/nav.json | 0 .../src/locales/zh-TW/onboarding.json | 0 .../src/locales/zh-TW/settings.json | 0 .../src/locales/zh-TW/tts.json | 0 .../src/locales/zh-TW/user.json | 0 .../src/locales/zh-TW/voice.json | 0 {canto-frontend => frontend}/src/main.tsx | 0 .../src/pages/AdminStats.tsx | 0 .../src/pages/Audiobook.tsx | 0 {canto-frontend => frontend}/src/pages/Login.tsx | 0 {canto-frontend => frontend}/src/pages/Settings.tsx | 0 .../src/pages/UserManagement.tsx | 0 {canto-frontend => frontend}/src/types/auth.ts | 0 {canto-frontend => frontend}/src/types/job.ts | 0 {canto-frontend => frontend}/src/types/tts.ts | 0 {canto-frontend => frontend}/src/types/user.ts | 0 .../src/types/voice-design.ts | 0 .../src/types/waveform-player.d.ts | 0 {canto-frontend => frontend}/tailwind.config.js | 0 {canto-frontend => frontend}/tsconfig.app.json | 0 {canto-frontend => frontend}/tsconfig.json | 0 {canto-frontend => frontend}/tsconfig.node.json | 0 {canto-frontend => frontend}/vite.config.ts | 0 327 files changed, 0 insertions(+), 0 deletions(-) rename {canto-backend => backend}/.env.example (100%) rename {canto-backend => backend}/.gitignore (100%) rename {canto-backend => backend}/api/__init__.py (100%) rename {canto-backend => backend}/api/admin.py (100%) rename {canto-backend => backend}/api/audiobook.py (100%) rename {canto-backend => backend}/api/auth.py (100%) rename {canto-backend => backend}/api/jobs.py (100%) rename {canto-backend => backend}/api/tts.py (100%) rename {canto-backend => backend}/api/users.py (100%) rename {canto-backend => backend}/api/voice_designs.py (100%) rename {canto-backend => backend}/config.py (100%) rename {canto-backend => backend}/core/__init__.py (100%) rename {canto-backend => backend}/core/audiobook_service.py (100%) rename {canto-backend => backend}/core/batch_processor.py (100%) rename {canto-backend => backend}/core/cache_manager.py (100%) rename {canto-backend => backend}/core/cleanup.py (100%) rename {canto-backend => backend}/core/config.py (100%) rename {canto-backend => backend}/core/database.py (100%) rename {canto-backend => backend}/core/init_admin.py (100%) rename {canto-backend => backend}/core/llm_service.py (100%) rename {canto-backend => backend}/core/metrics.py (100%) rename {canto-backend => backend}/core/model_manager.py (100%) rename {canto-backend => backend}/core/progress_store.py (100%) rename {canto-backend => backend}/core/security.py (100%) rename {canto-backend => backend}/core/tts_service.py (100%) rename {canto-backend => backend}/db/__init__.py (100%) rename {canto-backend => backend}/db/crud.py (100%) rename {canto-backend => backend}/db/database.py (100%) rename {canto-backend => backend}/db/migrate_add_local_permission.py (100%) rename {canto-backend => backend}/db/models.py (100%) rename {canto-backend => backend}/deploy/nginx.conf (100%) rename {canto-backend => backend}/deploy/qwen-tts.service (100%) rename {canto-backend => backend}/indextts/__init__.py (100%) rename {canto-backend => backend}/indextts/gpt/__init__.py (100%) rename {canto-backend => backend}/indextts/gpt/conformer/__init__.py (100%) rename {canto-backend => backend}/indextts/gpt/conformer/attention.py (100%) rename {canto-backend => backend}/indextts/gpt/conformer/embedding.py (100%) rename {canto-backend => backend}/indextts/gpt/conformer/subsampling.py (100%) rename {canto-backend => backend}/indextts/gpt/conformer_encoder.py (100%) rename {canto-backend => backend}/indextts/gpt/model_v2.py (100%) rename {canto-backend => backend}/indextts/gpt/perceiver.py (100%) rename {canto-backend => backend}/indextts/gpt/transformers_generation_utils.py (100%) rename {canto-backend => backend}/indextts/gpt/transformers_gpt2.py (100%) rename {canto-backend => backend}/indextts/gpt/transformers_modeling_utils.py (100%) rename {canto-backend => backend}/indextts/infer_indextts2.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/__main__.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/model/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/model/base.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/model/dac.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/model/discriminator.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/model/encodec.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/nn/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/nn/layers.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/nn/loss.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/nn/quantize.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/utils/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/utils/decode.py (100%) rename {canto-backend => backend}/indextts/s2mel/dac/utils/encode.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/audio.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/activations.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/bigvgan.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/config.json (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/env.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/meldataset.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/bigvgan/utils.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/campplus/DTDNN.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/campplus/layers.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/commons.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/diffusion_transformer.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/encodec.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/flow_matching.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/gpt_fast/generate.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/gpt_fast/model.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/gpt_fast/quantize.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/length_regulator.py (100%) rename {canto-backend => backend}/indextts/s2mel/modules/wavenet.py (100%) rename {canto-backend => backend}/indextts/utils/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/arch_util.py (100%) rename {canto-backend => backend}/indextts/utils/checkpoint.py (100%) rename {canto-backend => backend}/indextts/utils/common.py (100%) rename {canto-backend => backend}/indextts/utils/feature_extractors.py (100%) rename {canto-backend => backend}/indextts/utils/front.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/codec.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/codec_dataset.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/codec_inference.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/codec_sampler.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/codec_trainer.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/commons.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/layers.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/facodec/optimizer.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/kmeans/vocos.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/melvqgan/melspec.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/README.md (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/model.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py (100%) rename {canto-backend => backend}/indextts/utils/maskgct_utils.py (100%) rename {canto-backend => backend}/indextts/utils/typical_sampling.py (100%) rename {canto-backend => backend}/indextts/utils/webui_utils.py (100%) rename {canto-backend => backend}/indextts/utils/xtransformers.py (100%) rename {canto-backend => backend}/main.py (100%) rename {canto-backend => backend}/pytest.ini (100%) rename {canto-backend => backend}/qwen3-tts.service (100%) rename {canto-backend => backend}/requirements.txt (100%) rename {canto-backend => backend}/schemas/__init__.py (100%) rename {canto-backend => backend}/schemas/audiobook.py (100%) rename {canto-backend => backend}/schemas/cache.py (100%) rename {canto-backend => backend}/schemas/job.py (100%) rename {canto-backend => backend}/schemas/tts.py (100%) rename {canto-backend => backend}/schemas/user.py (100%) rename {canto-backend => backend}/schemas/voice_design.py (100%) rename {canto-backend => backend}/utils/__init__.py (100%) rename {canto-backend => backend}/utils/audio.py (100%) rename {canto-backend => backend}/utils/metrics.py (100%) rename {canto-backend => backend}/utils/validation.py (100%) rename {canto-frontend => frontend}/.env.example (100%) rename {canto-frontend => frontend}/.gitignore (100%) rename {canto-frontend => frontend}/components.json (100%) rename {canto-frontend => frontend}/eslint.config.js (100%) rename {canto-frontend => frontend}/fonts/noto-serif-jp-regular.woff2 (100%) rename {canto-frontend => frontend}/fonts/noto-serif-kr-regular.woff2 (100%) rename {canto-frontend => frontend}/fonts/noto-serif-latin-regular.woff2 (100%) rename {canto-frontend => frontend}/fonts/noto-serif-sc-regular.woff2 (100%) rename {canto-frontend => frontend}/fonts/noto-serif-tc-regular.woff2 (100%) rename {canto-frontend => frontend}/index.html (100%) rename {canto-frontend => frontend}/package-lock.json (100%) rename {canto-frontend => frontend}/package.json (100%) rename {canto-frontend => frontend}/postcss.config.js (100%) rename {canto-frontend => frontend}/public/favicon.ico (100%) rename {canto-frontend => frontend}/public/qwen.svg (100%) rename {canto-frontend => frontend}/src/App.tsx (100%) rename {canto-frontend => frontend}/src/assets/react.svg (100%) rename {canto-frontend => frontend}/src/components/AudioPlayer.module.css (100%) rename {canto-frontend => frontend}/src/components/AudioPlayer.tsx (100%) rename {canto-frontend => frontend}/src/components/ChapterPlayer.module.css (100%) rename {canto-frontend => frontend}/src/components/ChapterPlayer.tsx (100%) rename {canto-frontend => frontend}/src/components/ErrorBoundary.tsx (100%) rename {canto-frontend => frontend}/src/components/FileUploader.tsx (100%) rename {canto-frontend => frontend}/src/components/FormSkeleton.tsx (100%) rename {canto-frontend => frontend}/src/components/IconLabel.tsx (100%) rename {canto-frontend => frontend}/src/components/JobDetailDialog.tsx (100%) rename {canto-frontend => frontend}/src/components/LoadingScreen.tsx (100%) rename {canto-frontend => frontend}/src/components/LoadingState.tsx (100%) rename {canto-frontend => frontend}/src/components/Navbar.tsx (100%) rename {canto-frontend => frontend}/src/components/ParamInput.tsx (100%) rename {canto-frontend => frontend}/src/components/SuperAdminRoute.tsx (100%) rename {canto-frontend => frontend}/src/components/ThemeToggle.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/alert-dialog.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/badge.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/button.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/card.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/checkbox.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/collapsible.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/dialog.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/dropdown-menu.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/form.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/input.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/label.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/progress.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/radio-group.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/scroll-area.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/select.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/separator.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/sheet.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/slider.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/switch.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/tabs.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/textarea.tsx (100%) rename {canto-frontend => frontend}/src/components/ui/tooltip.tsx (100%) rename {canto-frontend => frontend}/src/components/users/ChangePasswordDialog.tsx (100%) rename {canto-frontend => frontend}/src/components/users/DeleteUserDialog.tsx (100%) rename {canto-frontend => frontend}/src/components/users/UserDialog.tsx (100%) rename {canto-frontend => frontend}/src/components/users/UserTable.tsx (100%) rename {canto-frontend => frontend}/src/contexts/AuthContext.tsx (100%) rename {canto-frontend => frontend}/src/contexts/ThemeContext.tsx (100%) rename {canto-frontend => frontend}/src/contexts/UserPreferencesContext.tsx (100%) rename {canto-frontend => frontend}/src/hooks/useAudioRecorder.ts (100%) rename {canto-frontend => frontend}/src/hooks/useAudioValidation.ts (100%) rename {canto-frontend => frontend}/src/index.css (100%) rename {canto-frontend => frontend}/src/lib/api.ts (100%) rename {canto-frontend => frontend}/src/lib/api/audiobook.ts (100%) rename {canto-frontend => frontend}/src/lib/constants.ts (100%) rename {canto-frontend => frontend}/src/lib/fontManager.ts (100%) rename {canto-frontend => frontend}/src/lib/utils.ts (100%) rename {canto-frontend => frontend}/src/locales/en-US/audiobook.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/auth.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/common.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/constants.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/errors.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/index.ts (100%) rename {canto-frontend => frontend}/src/locales/en-US/job.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/nav.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/onboarding.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/settings.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/tts.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/user.json (100%) rename {canto-frontend => frontend}/src/locales/en-US/voice.json (100%) rename {canto-frontend => frontend}/src/locales/index.ts (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/audiobook.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/auth.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/common.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/constants.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/errors.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/index.ts (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/job.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/nav.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/onboarding.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/settings.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/tts.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/user.json (100%) rename {canto-frontend => frontend}/src/locales/ja-JP/voice.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/audiobook.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/auth.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/common.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/constants.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/errors.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/index.ts (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/job.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/nav.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/onboarding.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/settings.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/tts.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/user.json (100%) rename {canto-frontend => frontend}/src/locales/ko-KR/voice.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/audiobook.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/auth.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/common.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/constants.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/errors.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/index.ts (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/job.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/nav.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/onboarding.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/settings.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/tts.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/user.json (100%) rename {canto-frontend => frontend}/src/locales/zh-CN/voice.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/audiobook.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/auth.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/common.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/constants.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/errors.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/index.ts (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/job.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/nav.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/onboarding.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/settings.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/tts.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/user.json (100%) rename {canto-frontend => frontend}/src/locales/zh-TW/voice.json (100%) rename {canto-frontend => frontend}/src/main.tsx (100%) rename {canto-frontend => frontend}/src/pages/AdminStats.tsx (100%) rename {canto-frontend => frontend}/src/pages/Audiobook.tsx (100%) rename {canto-frontend => frontend}/src/pages/Login.tsx (100%) rename {canto-frontend => frontend}/src/pages/Settings.tsx (100%) rename {canto-frontend => frontend}/src/pages/UserManagement.tsx (100%) rename {canto-frontend => frontend}/src/types/auth.ts (100%) rename {canto-frontend => frontend}/src/types/job.ts (100%) rename {canto-frontend => frontend}/src/types/tts.ts (100%) rename {canto-frontend => frontend}/src/types/user.ts (100%) rename {canto-frontend => frontend}/src/types/voice-design.ts (100%) rename {canto-frontend => frontend}/src/types/waveform-player.d.ts (100%) rename {canto-frontend => frontend}/tailwind.config.js (100%) rename {canto-frontend => frontend}/tsconfig.app.json (100%) rename {canto-frontend => frontend}/tsconfig.json (100%) rename {canto-frontend => frontend}/tsconfig.node.json (100%) rename {canto-frontend => frontend}/vite.config.ts (100%) diff --git a/canto-backend/.env.example b/backend/.env.example similarity index 100% rename from canto-backend/.env.example rename to backend/.env.example diff --git a/canto-backend/.gitignore b/backend/.gitignore similarity index 100% rename from canto-backend/.gitignore rename to backend/.gitignore diff --git a/canto-backend/api/__init__.py b/backend/api/__init__.py similarity index 100% rename from canto-backend/api/__init__.py rename to backend/api/__init__.py diff --git a/canto-backend/api/admin.py b/backend/api/admin.py similarity index 100% rename from canto-backend/api/admin.py rename to backend/api/admin.py diff --git a/canto-backend/api/audiobook.py b/backend/api/audiobook.py similarity index 100% rename from canto-backend/api/audiobook.py rename to backend/api/audiobook.py diff --git a/canto-backend/api/auth.py b/backend/api/auth.py similarity index 100% rename from canto-backend/api/auth.py rename to backend/api/auth.py diff --git a/canto-backend/api/jobs.py b/backend/api/jobs.py similarity index 100% rename from canto-backend/api/jobs.py rename to backend/api/jobs.py diff --git a/canto-backend/api/tts.py b/backend/api/tts.py similarity index 100% rename from canto-backend/api/tts.py rename to backend/api/tts.py diff --git a/canto-backend/api/users.py b/backend/api/users.py similarity index 100% rename from canto-backend/api/users.py rename to backend/api/users.py diff --git a/canto-backend/api/voice_designs.py b/backend/api/voice_designs.py similarity index 100% rename from canto-backend/api/voice_designs.py rename to backend/api/voice_designs.py diff --git a/canto-backend/config.py b/backend/config.py similarity index 100% rename from canto-backend/config.py rename to backend/config.py diff --git a/canto-backend/core/__init__.py b/backend/core/__init__.py similarity index 100% rename from canto-backend/core/__init__.py rename to backend/core/__init__.py diff --git a/canto-backend/core/audiobook_service.py b/backend/core/audiobook_service.py similarity index 100% rename from canto-backend/core/audiobook_service.py rename to backend/core/audiobook_service.py diff --git a/canto-backend/core/batch_processor.py b/backend/core/batch_processor.py similarity index 100% rename from canto-backend/core/batch_processor.py rename to backend/core/batch_processor.py diff --git a/canto-backend/core/cache_manager.py b/backend/core/cache_manager.py similarity index 100% rename from canto-backend/core/cache_manager.py rename to backend/core/cache_manager.py diff --git a/canto-backend/core/cleanup.py b/backend/core/cleanup.py similarity index 100% rename from canto-backend/core/cleanup.py rename to backend/core/cleanup.py diff --git a/canto-backend/core/config.py b/backend/core/config.py similarity index 100% rename from canto-backend/core/config.py rename to backend/core/config.py diff --git a/canto-backend/core/database.py b/backend/core/database.py similarity index 100% rename from canto-backend/core/database.py rename to backend/core/database.py diff --git a/canto-backend/core/init_admin.py b/backend/core/init_admin.py similarity index 100% rename from canto-backend/core/init_admin.py rename to backend/core/init_admin.py diff --git a/canto-backend/core/llm_service.py b/backend/core/llm_service.py similarity index 100% rename from canto-backend/core/llm_service.py rename to backend/core/llm_service.py diff --git a/canto-backend/core/metrics.py b/backend/core/metrics.py similarity index 100% rename from canto-backend/core/metrics.py rename to backend/core/metrics.py diff --git a/canto-backend/core/model_manager.py b/backend/core/model_manager.py similarity index 100% rename from canto-backend/core/model_manager.py rename to backend/core/model_manager.py diff --git a/canto-backend/core/progress_store.py b/backend/core/progress_store.py similarity index 100% rename from canto-backend/core/progress_store.py rename to backend/core/progress_store.py diff --git a/canto-backend/core/security.py b/backend/core/security.py similarity index 100% rename from canto-backend/core/security.py rename to backend/core/security.py diff --git a/canto-backend/core/tts_service.py b/backend/core/tts_service.py similarity index 100% rename from canto-backend/core/tts_service.py rename to backend/core/tts_service.py diff --git a/canto-backend/db/__init__.py b/backend/db/__init__.py similarity index 100% rename from canto-backend/db/__init__.py rename to backend/db/__init__.py diff --git a/canto-backend/db/crud.py b/backend/db/crud.py similarity index 100% rename from canto-backend/db/crud.py rename to backend/db/crud.py diff --git a/canto-backend/db/database.py b/backend/db/database.py similarity index 100% rename from canto-backend/db/database.py rename to backend/db/database.py diff --git a/canto-backend/db/migrate_add_local_permission.py b/backend/db/migrate_add_local_permission.py similarity index 100% rename from canto-backend/db/migrate_add_local_permission.py rename to backend/db/migrate_add_local_permission.py diff --git a/canto-backend/db/models.py b/backend/db/models.py similarity index 100% rename from canto-backend/db/models.py rename to backend/db/models.py diff --git a/canto-backend/deploy/nginx.conf b/backend/deploy/nginx.conf similarity index 100% rename from canto-backend/deploy/nginx.conf rename to backend/deploy/nginx.conf diff --git a/canto-backend/deploy/qwen-tts.service b/backend/deploy/qwen-tts.service similarity index 100% rename from canto-backend/deploy/qwen-tts.service rename to backend/deploy/qwen-tts.service diff --git a/canto-backend/indextts/__init__.py b/backend/indextts/__init__.py similarity index 100% rename from canto-backend/indextts/__init__.py rename to backend/indextts/__init__.py diff --git a/canto-backend/indextts/gpt/__init__.py b/backend/indextts/gpt/__init__.py similarity index 100% rename from canto-backend/indextts/gpt/__init__.py rename to backend/indextts/gpt/__init__.py diff --git a/canto-backend/indextts/gpt/conformer/__init__.py b/backend/indextts/gpt/conformer/__init__.py similarity index 100% rename from canto-backend/indextts/gpt/conformer/__init__.py rename to backend/indextts/gpt/conformer/__init__.py diff --git a/canto-backend/indextts/gpt/conformer/attention.py b/backend/indextts/gpt/conformer/attention.py similarity index 100% rename from canto-backend/indextts/gpt/conformer/attention.py rename to backend/indextts/gpt/conformer/attention.py diff --git a/canto-backend/indextts/gpt/conformer/embedding.py b/backend/indextts/gpt/conformer/embedding.py similarity index 100% rename from canto-backend/indextts/gpt/conformer/embedding.py rename to backend/indextts/gpt/conformer/embedding.py diff --git a/canto-backend/indextts/gpt/conformer/subsampling.py b/backend/indextts/gpt/conformer/subsampling.py similarity index 100% rename from canto-backend/indextts/gpt/conformer/subsampling.py rename to backend/indextts/gpt/conformer/subsampling.py diff --git a/canto-backend/indextts/gpt/conformer_encoder.py b/backend/indextts/gpt/conformer_encoder.py similarity index 100% rename from canto-backend/indextts/gpt/conformer_encoder.py rename to backend/indextts/gpt/conformer_encoder.py diff --git a/canto-backend/indextts/gpt/model_v2.py b/backend/indextts/gpt/model_v2.py similarity index 100% rename from canto-backend/indextts/gpt/model_v2.py rename to backend/indextts/gpt/model_v2.py diff --git a/canto-backend/indextts/gpt/perceiver.py b/backend/indextts/gpt/perceiver.py similarity index 100% rename from canto-backend/indextts/gpt/perceiver.py rename to backend/indextts/gpt/perceiver.py diff --git a/canto-backend/indextts/gpt/transformers_generation_utils.py b/backend/indextts/gpt/transformers_generation_utils.py similarity index 100% rename from canto-backend/indextts/gpt/transformers_generation_utils.py rename to backend/indextts/gpt/transformers_generation_utils.py diff --git a/canto-backend/indextts/gpt/transformers_gpt2.py b/backend/indextts/gpt/transformers_gpt2.py similarity index 100% rename from canto-backend/indextts/gpt/transformers_gpt2.py rename to backend/indextts/gpt/transformers_gpt2.py diff --git a/canto-backend/indextts/gpt/transformers_modeling_utils.py b/backend/indextts/gpt/transformers_modeling_utils.py similarity index 100% rename from canto-backend/indextts/gpt/transformers_modeling_utils.py rename to backend/indextts/gpt/transformers_modeling_utils.py diff --git a/canto-backend/indextts/infer_indextts2.py b/backend/indextts/infer_indextts2.py similarity index 100% rename from canto-backend/indextts/infer_indextts2.py rename to backend/indextts/infer_indextts2.py diff --git a/canto-backend/indextts/s2mel/dac/__init__.py b/backend/indextts/s2mel/dac/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/__init__.py rename to backend/indextts/s2mel/dac/__init__.py diff --git a/canto-backend/indextts/s2mel/dac/__main__.py b/backend/indextts/s2mel/dac/__main__.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/__main__.py rename to backend/indextts/s2mel/dac/__main__.py diff --git a/canto-backend/indextts/s2mel/dac/model/__init__.py b/backend/indextts/s2mel/dac/model/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/model/__init__.py rename to backend/indextts/s2mel/dac/model/__init__.py diff --git a/canto-backend/indextts/s2mel/dac/model/base.py b/backend/indextts/s2mel/dac/model/base.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/model/base.py rename to backend/indextts/s2mel/dac/model/base.py diff --git a/canto-backend/indextts/s2mel/dac/model/dac.py b/backend/indextts/s2mel/dac/model/dac.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/model/dac.py rename to backend/indextts/s2mel/dac/model/dac.py diff --git a/canto-backend/indextts/s2mel/dac/model/discriminator.py b/backend/indextts/s2mel/dac/model/discriminator.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/model/discriminator.py rename to backend/indextts/s2mel/dac/model/discriminator.py diff --git a/canto-backend/indextts/s2mel/dac/model/encodec.py b/backend/indextts/s2mel/dac/model/encodec.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/model/encodec.py rename to backend/indextts/s2mel/dac/model/encodec.py diff --git a/canto-backend/indextts/s2mel/dac/nn/__init__.py b/backend/indextts/s2mel/dac/nn/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/nn/__init__.py rename to backend/indextts/s2mel/dac/nn/__init__.py diff --git a/canto-backend/indextts/s2mel/dac/nn/layers.py b/backend/indextts/s2mel/dac/nn/layers.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/nn/layers.py rename to backend/indextts/s2mel/dac/nn/layers.py diff --git a/canto-backend/indextts/s2mel/dac/nn/loss.py b/backend/indextts/s2mel/dac/nn/loss.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/nn/loss.py rename to backend/indextts/s2mel/dac/nn/loss.py diff --git a/canto-backend/indextts/s2mel/dac/nn/quantize.py b/backend/indextts/s2mel/dac/nn/quantize.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/nn/quantize.py rename to backend/indextts/s2mel/dac/nn/quantize.py diff --git a/canto-backend/indextts/s2mel/dac/utils/__init__.py b/backend/indextts/s2mel/dac/utils/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/utils/__init__.py rename to backend/indextts/s2mel/dac/utils/__init__.py diff --git a/canto-backend/indextts/s2mel/dac/utils/decode.py b/backend/indextts/s2mel/dac/utils/decode.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/utils/decode.py rename to backend/indextts/s2mel/dac/utils/decode.py diff --git a/canto-backend/indextts/s2mel/dac/utils/encode.py b/backend/indextts/s2mel/dac/utils/encode.py similarity index 100% rename from canto-backend/indextts/s2mel/dac/utils/encode.py rename to backend/indextts/s2mel/dac/utils/encode.py diff --git a/canto-backend/indextts/s2mel/modules/audio.py b/backend/indextts/s2mel/modules/audio.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/audio.py rename to backend/indextts/s2mel/modules/audio.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/activations.py b/backend/indextts/s2mel/modules/bigvgan/activations.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/activations.py rename to backend/indextts/s2mel/modules/bigvgan/activations.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py b/backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py rename to backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/bigvgan.py b/backend/indextts/s2mel/modules/bigvgan/bigvgan.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/bigvgan.py rename to backend/indextts/s2mel/modules/bigvgan/bigvgan.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/config.json b/backend/indextts/s2mel/modules/bigvgan/config.json similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/config.json rename to backend/indextts/s2mel/modules/bigvgan/config.json diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/env.py b/backend/indextts/s2mel/modules/bigvgan/env.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/env.py rename to backend/indextts/s2mel/modules/bigvgan/env.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/meldataset.py b/backend/indextts/s2mel/modules/bigvgan/meldataset.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/meldataset.py rename to backend/indextts/s2mel/modules/bigvgan/meldataset.py diff --git a/canto-backend/indextts/s2mel/modules/bigvgan/utils.py b/backend/indextts/s2mel/modules/bigvgan/utils.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/bigvgan/utils.py rename to backend/indextts/s2mel/modules/bigvgan/utils.py diff --git a/canto-backend/indextts/s2mel/modules/campplus/DTDNN.py b/backend/indextts/s2mel/modules/campplus/DTDNN.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/campplus/DTDNN.py rename to backend/indextts/s2mel/modules/campplus/DTDNN.py diff --git a/canto-backend/indextts/s2mel/modules/campplus/layers.py b/backend/indextts/s2mel/modules/campplus/layers.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/campplus/layers.py rename to backend/indextts/s2mel/modules/campplus/layers.py diff --git a/canto-backend/indextts/s2mel/modules/commons.py b/backend/indextts/s2mel/modules/commons.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/commons.py rename to backend/indextts/s2mel/modules/commons.py diff --git a/canto-backend/indextts/s2mel/modules/diffusion_transformer.py b/backend/indextts/s2mel/modules/diffusion_transformer.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/diffusion_transformer.py rename to backend/indextts/s2mel/modules/diffusion_transformer.py diff --git a/canto-backend/indextts/s2mel/modules/encodec.py b/backend/indextts/s2mel/modules/encodec.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/encodec.py rename to backend/indextts/s2mel/modules/encodec.py diff --git a/canto-backend/indextts/s2mel/modules/flow_matching.py b/backend/indextts/s2mel/modules/flow_matching.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/flow_matching.py rename to backend/indextts/s2mel/modules/flow_matching.py diff --git a/canto-backend/indextts/s2mel/modules/gpt_fast/generate.py b/backend/indextts/s2mel/modules/gpt_fast/generate.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/gpt_fast/generate.py rename to backend/indextts/s2mel/modules/gpt_fast/generate.py diff --git a/canto-backend/indextts/s2mel/modules/gpt_fast/model.py b/backend/indextts/s2mel/modules/gpt_fast/model.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/gpt_fast/model.py rename to backend/indextts/s2mel/modules/gpt_fast/model.py diff --git a/canto-backend/indextts/s2mel/modules/gpt_fast/quantize.py b/backend/indextts/s2mel/modules/gpt_fast/quantize.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/gpt_fast/quantize.py rename to backend/indextts/s2mel/modules/gpt_fast/quantize.py diff --git a/canto-backend/indextts/s2mel/modules/length_regulator.py b/backend/indextts/s2mel/modules/length_regulator.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/length_regulator.py rename to backend/indextts/s2mel/modules/length_regulator.py diff --git a/canto-backend/indextts/s2mel/modules/wavenet.py b/backend/indextts/s2mel/modules/wavenet.py similarity index 100% rename from canto-backend/indextts/s2mel/modules/wavenet.py rename to backend/indextts/s2mel/modules/wavenet.py diff --git a/canto-backend/indextts/utils/__init__.py b/backend/indextts/utils/__init__.py similarity index 100% rename from canto-backend/indextts/utils/__init__.py rename to backend/indextts/utils/__init__.py diff --git a/canto-backend/indextts/utils/arch_util.py b/backend/indextts/utils/arch_util.py similarity index 100% rename from canto-backend/indextts/utils/arch_util.py rename to backend/indextts/utils/arch_util.py diff --git a/canto-backend/indextts/utils/checkpoint.py b/backend/indextts/utils/checkpoint.py similarity index 100% rename from canto-backend/indextts/utils/checkpoint.py rename to backend/indextts/utils/checkpoint.py diff --git a/canto-backend/indextts/utils/common.py b/backend/indextts/utils/common.py similarity index 100% rename from canto-backend/indextts/utils/common.py rename to backend/indextts/utils/common.py diff --git a/canto-backend/indextts/utils/feature_extractors.py b/backend/indextts/utils/feature_extractors.py similarity index 100% rename from canto-backend/indextts/utils/feature_extractors.py rename to backend/indextts/utils/feature_extractors.py diff --git a/canto-backend/indextts/utils/front.py b/backend/indextts/utils/front.py similarity index 100% rename from canto-backend/indextts/utils/front.py rename to backend/indextts/utils/front.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/__init__.py b/backend/indextts/utils/maskgct/models/codec/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/__init__.py rename to backend/indextts/utils/maskgct/models/codec/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py b/backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py rename to backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/codec_dataset.py b/backend/indextts/utils/maskgct/models/codec/codec_dataset.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/codec_dataset.py rename to backend/indextts/utils/maskgct/models/codec/codec_dataset.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/codec_inference.py b/backend/indextts/utils/maskgct/models/codec/codec_inference.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/codec_inference.py rename to backend/indextts/utils/maskgct/models/codec/codec_inference.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/codec_sampler.py b/backend/indextts/utils/maskgct/models/codec/codec_sampler.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/codec_sampler.py rename to backend/indextts/utils/maskgct/models/codec/codec_sampler.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/codec_trainer.py b/backend/indextts/utils/maskgct/models/codec/codec_trainer.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/codec_trainer.py rename to backend/indextts/utils/maskgct/models/codec/codec_trainer.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py b/backend/indextts/utils/maskgct/models/codec/facodec/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py rename to backend/indextts/utils/maskgct/models/codec/facodec/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py b/backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py rename to backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py b/backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py rename to backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py b/backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py rename to backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py b/backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py rename to backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py b/backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py rename to backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py b/backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py rename to backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py b/backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py rename to backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 b/backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py b/backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py rename to backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py b/backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py rename to backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py b/backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py rename to backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py b/backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py rename to backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py b/backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py rename to backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md b/backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py b/backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py rename to backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py b/backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py rename to backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py diff --git a/canto-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py b/backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py rename to backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py diff --git a/canto-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt b/backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt rename to backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt diff --git a/canto-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py b/backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py rename to backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py diff --git a/canto-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py b/backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py similarity index 100% rename from canto-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py rename to backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py diff --git a/canto-backend/indextts/utils/maskgct_utils.py b/backend/indextts/utils/maskgct_utils.py similarity index 100% rename from canto-backend/indextts/utils/maskgct_utils.py rename to backend/indextts/utils/maskgct_utils.py diff --git a/canto-backend/indextts/utils/typical_sampling.py b/backend/indextts/utils/typical_sampling.py similarity index 100% rename from canto-backend/indextts/utils/typical_sampling.py rename to backend/indextts/utils/typical_sampling.py diff --git a/canto-backend/indextts/utils/webui_utils.py b/backend/indextts/utils/webui_utils.py similarity index 100% rename from canto-backend/indextts/utils/webui_utils.py rename to backend/indextts/utils/webui_utils.py diff --git a/canto-backend/indextts/utils/xtransformers.py b/backend/indextts/utils/xtransformers.py similarity index 100% rename from canto-backend/indextts/utils/xtransformers.py rename to backend/indextts/utils/xtransformers.py diff --git a/canto-backend/main.py b/backend/main.py similarity index 100% rename from canto-backend/main.py rename to backend/main.py diff --git a/canto-backend/pytest.ini b/backend/pytest.ini similarity index 100% rename from canto-backend/pytest.ini rename to backend/pytest.ini diff --git a/canto-backend/qwen3-tts.service b/backend/qwen3-tts.service similarity index 100% rename from canto-backend/qwen3-tts.service rename to backend/qwen3-tts.service diff --git a/canto-backend/requirements.txt b/backend/requirements.txt similarity index 100% rename from canto-backend/requirements.txt rename to backend/requirements.txt diff --git a/canto-backend/schemas/__init__.py b/backend/schemas/__init__.py similarity index 100% rename from canto-backend/schemas/__init__.py rename to backend/schemas/__init__.py diff --git a/canto-backend/schemas/audiobook.py b/backend/schemas/audiobook.py similarity index 100% rename from canto-backend/schemas/audiobook.py rename to backend/schemas/audiobook.py diff --git a/canto-backend/schemas/cache.py b/backend/schemas/cache.py similarity index 100% rename from canto-backend/schemas/cache.py rename to backend/schemas/cache.py diff --git a/canto-backend/schemas/job.py b/backend/schemas/job.py similarity index 100% rename from canto-backend/schemas/job.py rename to backend/schemas/job.py diff --git a/canto-backend/schemas/tts.py b/backend/schemas/tts.py similarity index 100% rename from canto-backend/schemas/tts.py rename to backend/schemas/tts.py diff --git a/canto-backend/schemas/user.py b/backend/schemas/user.py similarity index 100% rename from canto-backend/schemas/user.py rename to backend/schemas/user.py diff --git a/canto-backend/schemas/voice_design.py b/backend/schemas/voice_design.py similarity index 100% rename from canto-backend/schemas/voice_design.py rename to backend/schemas/voice_design.py diff --git a/canto-backend/utils/__init__.py b/backend/utils/__init__.py similarity index 100% rename from canto-backend/utils/__init__.py rename to backend/utils/__init__.py diff --git a/canto-backend/utils/audio.py b/backend/utils/audio.py similarity index 100% rename from canto-backend/utils/audio.py rename to backend/utils/audio.py diff --git a/canto-backend/utils/metrics.py b/backend/utils/metrics.py similarity index 100% rename from canto-backend/utils/metrics.py rename to backend/utils/metrics.py diff --git a/canto-backend/utils/validation.py b/backend/utils/validation.py similarity index 100% rename from canto-backend/utils/validation.py rename to backend/utils/validation.py diff --git a/canto-frontend/.env.example b/frontend/.env.example similarity index 100% rename from canto-frontend/.env.example rename to frontend/.env.example diff --git a/canto-frontend/.gitignore b/frontend/.gitignore similarity index 100% rename from canto-frontend/.gitignore rename to frontend/.gitignore diff --git a/canto-frontend/components.json b/frontend/components.json similarity index 100% rename from canto-frontend/components.json rename to frontend/components.json diff --git a/canto-frontend/eslint.config.js b/frontend/eslint.config.js similarity index 100% rename from canto-frontend/eslint.config.js rename to frontend/eslint.config.js diff --git a/canto-frontend/fonts/noto-serif-jp-regular.woff2 b/frontend/fonts/noto-serif-jp-regular.woff2 similarity index 100% rename from canto-frontend/fonts/noto-serif-jp-regular.woff2 rename to frontend/fonts/noto-serif-jp-regular.woff2 diff --git a/canto-frontend/fonts/noto-serif-kr-regular.woff2 b/frontend/fonts/noto-serif-kr-regular.woff2 similarity index 100% rename from canto-frontend/fonts/noto-serif-kr-regular.woff2 rename to frontend/fonts/noto-serif-kr-regular.woff2 diff --git a/canto-frontend/fonts/noto-serif-latin-regular.woff2 b/frontend/fonts/noto-serif-latin-regular.woff2 similarity index 100% rename from canto-frontend/fonts/noto-serif-latin-regular.woff2 rename to frontend/fonts/noto-serif-latin-regular.woff2 diff --git a/canto-frontend/fonts/noto-serif-sc-regular.woff2 b/frontend/fonts/noto-serif-sc-regular.woff2 similarity index 100% rename from canto-frontend/fonts/noto-serif-sc-regular.woff2 rename to frontend/fonts/noto-serif-sc-regular.woff2 diff --git a/canto-frontend/fonts/noto-serif-tc-regular.woff2 b/frontend/fonts/noto-serif-tc-regular.woff2 similarity index 100% rename from canto-frontend/fonts/noto-serif-tc-regular.woff2 rename to frontend/fonts/noto-serif-tc-regular.woff2 diff --git a/canto-frontend/index.html b/frontend/index.html similarity index 100% rename from canto-frontend/index.html rename to frontend/index.html diff --git a/canto-frontend/package-lock.json b/frontend/package-lock.json similarity index 100% rename from canto-frontend/package-lock.json rename to frontend/package-lock.json diff --git a/canto-frontend/package.json b/frontend/package.json similarity index 100% rename from canto-frontend/package.json rename to frontend/package.json diff --git a/canto-frontend/postcss.config.js b/frontend/postcss.config.js similarity index 100% rename from canto-frontend/postcss.config.js rename to frontend/postcss.config.js diff --git a/canto-frontend/public/favicon.ico b/frontend/public/favicon.ico similarity index 100% rename from canto-frontend/public/favicon.ico rename to frontend/public/favicon.ico diff --git a/canto-frontend/public/qwen.svg b/frontend/public/qwen.svg similarity index 100% rename from canto-frontend/public/qwen.svg rename to frontend/public/qwen.svg diff --git a/canto-frontend/src/App.tsx b/frontend/src/App.tsx similarity index 100% rename from canto-frontend/src/App.tsx rename to frontend/src/App.tsx diff --git a/canto-frontend/src/assets/react.svg b/frontend/src/assets/react.svg similarity index 100% rename from canto-frontend/src/assets/react.svg rename to frontend/src/assets/react.svg diff --git a/canto-frontend/src/components/AudioPlayer.module.css b/frontend/src/components/AudioPlayer.module.css similarity index 100% rename from canto-frontend/src/components/AudioPlayer.module.css rename to frontend/src/components/AudioPlayer.module.css diff --git a/canto-frontend/src/components/AudioPlayer.tsx b/frontend/src/components/AudioPlayer.tsx similarity index 100% rename from canto-frontend/src/components/AudioPlayer.tsx rename to frontend/src/components/AudioPlayer.tsx diff --git a/canto-frontend/src/components/ChapterPlayer.module.css b/frontend/src/components/ChapterPlayer.module.css similarity index 100% rename from canto-frontend/src/components/ChapterPlayer.module.css rename to frontend/src/components/ChapterPlayer.module.css diff --git a/canto-frontend/src/components/ChapterPlayer.tsx b/frontend/src/components/ChapterPlayer.tsx similarity index 100% rename from canto-frontend/src/components/ChapterPlayer.tsx rename to frontend/src/components/ChapterPlayer.tsx diff --git a/canto-frontend/src/components/ErrorBoundary.tsx b/frontend/src/components/ErrorBoundary.tsx similarity index 100% rename from canto-frontend/src/components/ErrorBoundary.tsx rename to frontend/src/components/ErrorBoundary.tsx diff --git a/canto-frontend/src/components/FileUploader.tsx b/frontend/src/components/FileUploader.tsx similarity index 100% rename from canto-frontend/src/components/FileUploader.tsx rename to frontend/src/components/FileUploader.tsx diff --git a/canto-frontend/src/components/FormSkeleton.tsx b/frontend/src/components/FormSkeleton.tsx similarity index 100% rename from canto-frontend/src/components/FormSkeleton.tsx rename to frontend/src/components/FormSkeleton.tsx diff --git a/canto-frontend/src/components/IconLabel.tsx b/frontend/src/components/IconLabel.tsx similarity index 100% rename from canto-frontend/src/components/IconLabel.tsx rename to frontend/src/components/IconLabel.tsx diff --git a/canto-frontend/src/components/JobDetailDialog.tsx b/frontend/src/components/JobDetailDialog.tsx similarity index 100% rename from canto-frontend/src/components/JobDetailDialog.tsx rename to frontend/src/components/JobDetailDialog.tsx diff --git a/canto-frontend/src/components/LoadingScreen.tsx b/frontend/src/components/LoadingScreen.tsx similarity index 100% rename from canto-frontend/src/components/LoadingScreen.tsx rename to frontend/src/components/LoadingScreen.tsx diff --git a/canto-frontend/src/components/LoadingState.tsx b/frontend/src/components/LoadingState.tsx similarity index 100% rename from canto-frontend/src/components/LoadingState.tsx rename to frontend/src/components/LoadingState.tsx diff --git a/canto-frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx similarity index 100% rename from canto-frontend/src/components/Navbar.tsx rename to frontend/src/components/Navbar.tsx diff --git a/canto-frontend/src/components/ParamInput.tsx b/frontend/src/components/ParamInput.tsx similarity index 100% rename from canto-frontend/src/components/ParamInput.tsx rename to frontend/src/components/ParamInput.tsx diff --git a/canto-frontend/src/components/SuperAdminRoute.tsx b/frontend/src/components/SuperAdminRoute.tsx similarity index 100% rename from canto-frontend/src/components/SuperAdminRoute.tsx rename to frontend/src/components/SuperAdminRoute.tsx diff --git a/canto-frontend/src/components/ThemeToggle.tsx b/frontend/src/components/ThemeToggle.tsx similarity index 100% rename from canto-frontend/src/components/ThemeToggle.tsx rename to frontend/src/components/ThemeToggle.tsx diff --git a/canto-frontend/src/components/ui/alert-dialog.tsx b/frontend/src/components/ui/alert-dialog.tsx similarity index 100% rename from canto-frontend/src/components/ui/alert-dialog.tsx rename to frontend/src/components/ui/alert-dialog.tsx diff --git a/canto-frontend/src/components/ui/badge.tsx b/frontend/src/components/ui/badge.tsx similarity index 100% rename from canto-frontend/src/components/ui/badge.tsx rename to frontend/src/components/ui/badge.tsx diff --git a/canto-frontend/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx similarity index 100% rename from canto-frontend/src/components/ui/button.tsx rename to frontend/src/components/ui/button.tsx diff --git a/canto-frontend/src/components/ui/card.tsx b/frontend/src/components/ui/card.tsx similarity index 100% rename from canto-frontend/src/components/ui/card.tsx rename to frontend/src/components/ui/card.tsx diff --git a/canto-frontend/src/components/ui/checkbox.tsx b/frontend/src/components/ui/checkbox.tsx similarity index 100% rename from canto-frontend/src/components/ui/checkbox.tsx rename to frontend/src/components/ui/checkbox.tsx diff --git a/canto-frontend/src/components/ui/collapsible.tsx b/frontend/src/components/ui/collapsible.tsx similarity index 100% rename from canto-frontend/src/components/ui/collapsible.tsx rename to frontend/src/components/ui/collapsible.tsx diff --git a/canto-frontend/src/components/ui/dialog.tsx b/frontend/src/components/ui/dialog.tsx similarity index 100% rename from canto-frontend/src/components/ui/dialog.tsx rename to frontend/src/components/ui/dialog.tsx diff --git a/canto-frontend/src/components/ui/dropdown-menu.tsx b/frontend/src/components/ui/dropdown-menu.tsx similarity index 100% rename from canto-frontend/src/components/ui/dropdown-menu.tsx rename to frontend/src/components/ui/dropdown-menu.tsx diff --git a/canto-frontend/src/components/ui/form.tsx b/frontend/src/components/ui/form.tsx similarity index 100% rename from canto-frontend/src/components/ui/form.tsx rename to frontend/src/components/ui/form.tsx diff --git a/canto-frontend/src/components/ui/input.tsx b/frontend/src/components/ui/input.tsx similarity index 100% rename from canto-frontend/src/components/ui/input.tsx rename to frontend/src/components/ui/input.tsx diff --git a/canto-frontend/src/components/ui/label.tsx b/frontend/src/components/ui/label.tsx similarity index 100% rename from canto-frontend/src/components/ui/label.tsx rename to frontend/src/components/ui/label.tsx diff --git a/canto-frontend/src/components/ui/progress.tsx b/frontend/src/components/ui/progress.tsx similarity index 100% rename from canto-frontend/src/components/ui/progress.tsx rename to frontend/src/components/ui/progress.tsx diff --git a/canto-frontend/src/components/ui/radio-group.tsx b/frontend/src/components/ui/radio-group.tsx similarity index 100% rename from canto-frontend/src/components/ui/radio-group.tsx rename to frontend/src/components/ui/radio-group.tsx diff --git a/canto-frontend/src/components/ui/scroll-area.tsx b/frontend/src/components/ui/scroll-area.tsx similarity index 100% rename from canto-frontend/src/components/ui/scroll-area.tsx rename to frontend/src/components/ui/scroll-area.tsx diff --git a/canto-frontend/src/components/ui/select.tsx b/frontend/src/components/ui/select.tsx similarity index 100% rename from canto-frontend/src/components/ui/select.tsx rename to frontend/src/components/ui/select.tsx diff --git a/canto-frontend/src/components/ui/separator.tsx b/frontend/src/components/ui/separator.tsx similarity index 100% rename from canto-frontend/src/components/ui/separator.tsx rename to frontend/src/components/ui/separator.tsx diff --git a/canto-frontend/src/components/ui/sheet.tsx b/frontend/src/components/ui/sheet.tsx similarity index 100% rename from canto-frontend/src/components/ui/sheet.tsx rename to frontend/src/components/ui/sheet.tsx diff --git a/canto-frontend/src/components/ui/slider.tsx b/frontend/src/components/ui/slider.tsx similarity index 100% rename from canto-frontend/src/components/ui/slider.tsx rename to frontend/src/components/ui/slider.tsx diff --git a/canto-frontend/src/components/ui/switch.tsx b/frontend/src/components/ui/switch.tsx similarity index 100% rename from canto-frontend/src/components/ui/switch.tsx rename to frontend/src/components/ui/switch.tsx diff --git a/canto-frontend/src/components/ui/tabs.tsx b/frontend/src/components/ui/tabs.tsx similarity index 100% rename from canto-frontend/src/components/ui/tabs.tsx rename to frontend/src/components/ui/tabs.tsx diff --git a/canto-frontend/src/components/ui/textarea.tsx b/frontend/src/components/ui/textarea.tsx similarity index 100% rename from canto-frontend/src/components/ui/textarea.tsx rename to frontend/src/components/ui/textarea.tsx diff --git a/canto-frontend/src/components/ui/tooltip.tsx b/frontend/src/components/ui/tooltip.tsx similarity index 100% rename from canto-frontend/src/components/ui/tooltip.tsx rename to frontend/src/components/ui/tooltip.tsx diff --git a/canto-frontend/src/components/users/ChangePasswordDialog.tsx b/frontend/src/components/users/ChangePasswordDialog.tsx similarity index 100% rename from canto-frontend/src/components/users/ChangePasswordDialog.tsx rename to frontend/src/components/users/ChangePasswordDialog.tsx diff --git a/canto-frontend/src/components/users/DeleteUserDialog.tsx b/frontend/src/components/users/DeleteUserDialog.tsx similarity index 100% rename from canto-frontend/src/components/users/DeleteUserDialog.tsx rename to frontend/src/components/users/DeleteUserDialog.tsx diff --git a/canto-frontend/src/components/users/UserDialog.tsx b/frontend/src/components/users/UserDialog.tsx similarity index 100% rename from canto-frontend/src/components/users/UserDialog.tsx rename to frontend/src/components/users/UserDialog.tsx diff --git a/canto-frontend/src/components/users/UserTable.tsx b/frontend/src/components/users/UserTable.tsx similarity index 100% rename from canto-frontend/src/components/users/UserTable.tsx rename to frontend/src/components/users/UserTable.tsx diff --git a/canto-frontend/src/contexts/AuthContext.tsx b/frontend/src/contexts/AuthContext.tsx similarity index 100% rename from canto-frontend/src/contexts/AuthContext.tsx rename to frontend/src/contexts/AuthContext.tsx diff --git a/canto-frontend/src/contexts/ThemeContext.tsx b/frontend/src/contexts/ThemeContext.tsx similarity index 100% rename from canto-frontend/src/contexts/ThemeContext.tsx rename to frontend/src/contexts/ThemeContext.tsx diff --git a/canto-frontend/src/contexts/UserPreferencesContext.tsx b/frontend/src/contexts/UserPreferencesContext.tsx similarity index 100% rename from canto-frontend/src/contexts/UserPreferencesContext.tsx rename to frontend/src/contexts/UserPreferencesContext.tsx diff --git a/canto-frontend/src/hooks/useAudioRecorder.ts b/frontend/src/hooks/useAudioRecorder.ts similarity index 100% rename from canto-frontend/src/hooks/useAudioRecorder.ts rename to frontend/src/hooks/useAudioRecorder.ts diff --git a/canto-frontend/src/hooks/useAudioValidation.ts b/frontend/src/hooks/useAudioValidation.ts similarity index 100% rename from canto-frontend/src/hooks/useAudioValidation.ts rename to frontend/src/hooks/useAudioValidation.ts diff --git a/canto-frontend/src/index.css b/frontend/src/index.css similarity index 100% rename from canto-frontend/src/index.css rename to frontend/src/index.css diff --git a/canto-frontend/src/lib/api.ts b/frontend/src/lib/api.ts similarity index 100% rename from canto-frontend/src/lib/api.ts rename to frontend/src/lib/api.ts diff --git a/canto-frontend/src/lib/api/audiobook.ts b/frontend/src/lib/api/audiobook.ts similarity index 100% rename from canto-frontend/src/lib/api/audiobook.ts rename to frontend/src/lib/api/audiobook.ts diff --git a/canto-frontend/src/lib/constants.ts b/frontend/src/lib/constants.ts similarity index 100% rename from canto-frontend/src/lib/constants.ts rename to frontend/src/lib/constants.ts diff --git a/canto-frontend/src/lib/fontManager.ts b/frontend/src/lib/fontManager.ts similarity index 100% rename from canto-frontend/src/lib/fontManager.ts rename to frontend/src/lib/fontManager.ts diff --git a/canto-frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts similarity index 100% rename from canto-frontend/src/lib/utils.ts rename to frontend/src/lib/utils.ts diff --git a/canto-frontend/src/locales/en-US/audiobook.json b/frontend/src/locales/en-US/audiobook.json similarity index 100% rename from canto-frontend/src/locales/en-US/audiobook.json rename to frontend/src/locales/en-US/audiobook.json diff --git a/canto-frontend/src/locales/en-US/auth.json b/frontend/src/locales/en-US/auth.json similarity index 100% rename from canto-frontend/src/locales/en-US/auth.json rename to frontend/src/locales/en-US/auth.json diff --git a/canto-frontend/src/locales/en-US/common.json b/frontend/src/locales/en-US/common.json similarity index 100% rename from canto-frontend/src/locales/en-US/common.json rename to frontend/src/locales/en-US/common.json diff --git a/canto-frontend/src/locales/en-US/constants.json b/frontend/src/locales/en-US/constants.json similarity index 100% rename from canto-frontend/src/locales/en-US/constants.json rename to frontend/src/locales/en-US/constants.json diff --git a/canto-frontend/src/locales/en-US/errors.json b/frontend/src/locales/en-US/errors.json similarity index 100% rename from canto-frontend/src/locales/en-US/errors.json rename to frontend/src/locales/en-US/errors.json diff --git a/canto-frontend/src/locales/en-US/index.ts b/frontend/src/locales/en-US/index.ts similarity index 100% rename from canto-frontend/src/locales/en-US/index.ts rename to frontend/src/locales/en-US/index.ts diff --git a/canto-frontend/src/locales/en-US/job.json b/frontend/src/locales/en-US/job.json similarity index 100% rename from canto-frontend/src/locales/en-US/job.json rename to frontend/src/locales/en-US/job.json diff --git a/canto-frontend/src/locales/en-US/nav.json b/frontend/src/locales/en-US/nav.json similarity index 100% rename from canto-frontend/src/locales/en-US/nav.json rename to frontend/src/locales/en-US/nav.json diff --git a/canto-frontend/src/locales/en-US/onboarding.json b/frontend/src/locales/en-US/onboarding.json similarity index 100% rename from canto-frontend/src/locales/en-US/onboarding.json rename to frontend/src/locales/en-US/onboarding.json diff --git a/canto-frontend/src/locales/en-US/settings.json b/frontend/src/locales/en-US/settings.json similarity index 100% rename from canto-frontend/src/locales/en-US/settings.json rename to frontend/src/locales/en-US/settings.json diff --git a/canto-frontend/src/locales/en-US/tts.json b/frontend/src/locales/en-US/tts.json similarity index 100% rename from canto-frontend/src/locales/en-US/tts.json rename to frontend/src/locales/en-US/tts.json diff --git a/canto-frontend/src/locales/en-US/user.json b/frontend/src/locales/en-US/user.json similarity index 100% rename from canto-frontend/src/locales/en-US/user.json rename to frontend/src/locales/en-US/user.json diff --git a/canto-frontend/src/locales/en-US/voice.json b/frontend/src/locales/en-US/voice.json similarity index 100% rename from canto-frontend/src/locales/en-US/voice.json rename to frontend/src/locales/en-US/voice.json diff --git a/canto-frontend/src/locales/index.ts b/frontend/src/locales/index.ts similarity index 100% rename from canto-frontend/src/locales/index.ts rename to frontend/src/locales/index.ts diff --git a/canto-frontend/src/locales/ja-JP/audiobook.json b/frontend/src/locales/ja-JP/audiobook.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/audiobook.json rename to frontend/src/locales/ja-JP/audiobook.json diff --git a/canto-frontend/src/locales/ja-JP/auth.json b/frontend/src/locales/ja-JP/auth.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/auth.json rename to frontend/src/locales/ja-JP/auth.json diff --git a/canto-frontend/src/locales/ja-JP/common.json b/frontend/src/locales/ja-JP/common.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/common.json rename to frontend/src/locales/ja-JP/common.json diff --git a/canto-frontend/src/locales/ja-JP/constants.json b/frontend/src/locales/ja-JP/constants.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/constants.json rename to frontend/src/locales/ja-JP/constants.json diff --git a/canto-frontend/src/locales/ja-JP/errors.json b/frontend/src/locales/ja-JP/errors.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/errors.json rename to frontend/src/locales/ja-JP/errors.json diff --git a/canto-frontend/src/locales/ja-JP/index.ts b/frontend/src/locales/ja-JP/index.ts similarity index 100% rename from canto-frontend/src/locales/ja-JP/index.ts rename to frontend/src/locales/ja-JP/index.ts diff --git a/canto-frontend/src/locales/ja-JP/job.json b/frontend/src/locales/ja-JP/job.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/job.json rename to frontend/src/locales/ja-JP/job.json diff --git a/canto-frontend/src/locales/ja-JP/nav.json b/frontend/src/locales/ja-JP/nav.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/nav.json rename to frontend/src/locales/ja-JP/nav.json diff --git a/canto-frontend/src/locales/ja-JP/onboarding.json b/frontend/src/locales/ja-JP/onboarding.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/onboarding.json rename to frontend/src/locales/ja-JP/onboarding.json diff --git a/canto-frontend/src/locales/ja-JP/settings.json b/frontend/src/locales/ja-JP/settings.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/settings.json rename to frontend/src/locales/ja-JP/settings.json diff --git a/canto-frontend/src/locales/ja-JP/tts.json b/frontend/src/locales/ja-JP/tts.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/tts.json rename to frontend/src/locales/ja-JP/tts.json diff --git a/canto-frontend/src/locales/ja-JP/user.json b/frontend/src/locales/ja-JP/user.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/user.json rename to frontend/src/locales/ja-JP/user.json diff --git a/canto-frontend/src/locales/ja-JP/voice.json b/frontend/src/locales/ja-JP/voice.json similarity index 100% rename from canto-frontend/src/locales/ja-JP/voice.json rename to frontend/src/locales/ja-JP/voice.json diff --git a/canto-frontend/src/locales/ko-KR/audiobook.json b/frontend/src/locales/ko-KR/audiobook.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/audiobook.json rename to frontend/src/locales/ko-KR/audiobook.json diff --git a/canto-frontend/src/locales/ko-KR/auth.json b/frontend/src/locales/ko-KR/auth.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/auth.json rename to frontend/src/locales/ko-KR/auth.json diff --git a/canto-frontend/src/locales/ko-KR/common.json b/frontend/src/locales/ko-KR/common.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/common.json rename to frontend/src/locales/ko-KR/common.json diff --git a/canto-frontend/src/locales/ko-KR/constants.json b/frontend/src/locales/ko-KR/constants.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/constants.json rename to frontend/src/locales/ko-KR/constants.json diff --git a/canto-frontend/src/locales/ko-KR/errors.json b/frontend/src/locales/ko-KR/errors.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/errors.json rename to frontend/src/locales/ko-KR/errors.json diff --git a/canto-frontend/src/locales/ko-KR/index.ts b/frontend/src/locales/ko-KR/index.ts similarity index 100% rename from canto-frontend/src/locales/ko-KR/index.ts rename to frontend/src/locales/ko-KR/index.ts diff --git a/canto-frontend/src/locales/ko-KR/job.json b/frontend/src/locales/ko-KR/job.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/job.json rename to frontend/src/locales/ko-KR/job.json diff --git a/canto-frontend/src/locales/ko-KR/nav.json b/frontend/src/locales/ko-KR/nav.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/nav.json rename to frontend/src/locales/ko-KR/nav.json diff --git a/canto-frontend/src/locales/ko-KR/onboarding.json b/frontend/src/locales/ko-KR/onboarding.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/onboarding.json rename to frontend/src/locales/ko-KR/onboarding.json diff --git a/canto-frontend/src/locales/ko-KR/settings.json b/frontend/src/locales/ko-KR/settings.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/settings.json rename to frontend/src/locales/ko-KR/settings.json diff --git a/canto-frontend/src/locales/ko-KR/tts.json b/frontend/src/locales/ko-KR/tts.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/tts.json rename to frontend/src/locales/ko-KR/tts.json diff --git a/canto-frontend/src/locales/ko-KR/user.json b/frontend/src/locales/ko-KR/user.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/user.json rename to frontend/src/locales/ko-KR/user.json diff --git a/canto-frontend/src/locales/ko-KR/voice.json b/frontend/src/locales/ko-KR/voice.json similarity index 100% rename from canto-frontend/src/locales/ko-KR/voice.json rename to frontend/src/locales/ko-KR/voice.json diff --git a/canto-frontend/src/locales/zh-CN/audiobook.json b/frontend/src/locales/zh-CN/audiobook.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/audiobook.json rename to frontend/src/locales/zh-CN/audiobook.json diff --git a/canto-frontend/src/locales/zh-CN/auth.json b/frontend/src/locales/zh-CN/auth.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/auth.json rename to frontend/src/locales/zh-CN/auth.json diff --git a/canto-frontend/src/locales/zh-CN/common.json b/frontend/src/locales/zh-CN/common.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/common.json rename to frontend/src/locales/zh-CN/common.json diff --git a/canto-frontend/src/locales/zh-CN/constants.json b/frontend/src/locales/zh-CN/constants.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/constants.json rename to frontend/src/locales/zh-CN/constants.json diff --git a/canto-frontend/src/locales/zh-CN/errors.json b/frontend/src/locales/zh-CN/errors.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/errors.json rename to frontend/src/locales/zh-CN/errors.json diff --git a/canto-frontend/src/locales/zh-CN/index.ts b/frontend/src/locales/zh-CN/index.ts similarity index 100% rename from canto-frontend/src/locales/zh-CN/index.ts rename to frontend/src/locales/zh-CN/index.ts diff --git a/canto-frontend/src/locales/zh-CN/job.json b/frontend/src/locales/zh-CN/job.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/job.json rename to frontend/src/locales/zh-CN/job.json diff --git a/canto-frontend/src/locales/zh-CN/nav.json b/frontend/src/locales/zh-CN/nav.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/nav.json rename to frontend/src/locales/zh-CN/nav.json diff --git a/canto-frontend/src/locales/zh-CN/onboarding.json b/frontend/src/locales/zh-CN/onboarding.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/onboarding.json rename to frontend/src/locales/zh-CN/onboarding.json diff --git a/canto-frontend/src/locales/zh-CN/settings.json b/frontend/src/locales/zh-CN/settings.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/settings.json rename to frontend/src/locales/zh-CN/settings.json diff --git a/canto-frontend/src/locales/zh-CN/tts.json b/frontend/src/locales/zh-CN/tts.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/tts.json rename to frontend/src/locales/zh-CN/tts.json diff --git a/canto-frontend/src/locales/zh-CN/user.json b/frontend/src/locales/zh-CN/user.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/user.json rename to frontend/src/locales/zh-CN/user.json diff --git a/canto-frontend/src/locales/zh-CN/voice.json b/frontend/src/locales/zh-CN/voice.json similarity index 100% rename from canto-frontend/src/locales/zh-CN/voice.json rename to frontend/src/locales/zh-CN/voice.json diff --git a/canto-frontend/src/locales/zh-TW/audiobook.json b/frontend/src/locales/zh-TW/audiobook.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/audiobook.json rename to frontend/src/locales/zh-TW/audiobook.json diff --git a/canto-frontend/src/locales/zh-TW/auth.json b/frontend/src/locales/zh-TW/auth.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/auth.json rename to frontend/src/locales/zh-TW/auth.json diff --git a/canto-frontend/src/locales/zh-TW/common.json b/frontend/src/locales/zh-TW/common.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/common.json rename to frontend/src/locales/zh-TW/common.json diff --git a/canto-frontend/src/locales/zh-TW/constants.json b/frontend/src/locales/zh-TW/constants.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/constants.json rename to frontend/src/locales/zh-TW/constants.json diff --git a/canto-frontend/src/locales/zh-TW/errors.json b/frontend/src/locales/zh-TW/errors.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/errors.json rename to frontend/src/locales/zh-TW/errors.json diff --git a/canto-frontend/src/locales/zh-TW/index.ts b/frontend/src/locales/zh-TW/index.ts similarity index 100% rename from canto-frontend/src/locales/zh-TW/index.ts rename to frontend/src/locales/zh-TW/index.ts diff --git a/canto-frontend/src/locales/zh-TW/job.json b/frontend/src/locales/zh-TW/job.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/job.json rename to frontend/src/locales/zh-TW/job.json diff --git a/canto-frontend/src/locales/zh-TW/nav.json b/frontend/src/locales/zh-TW/nav.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/nav.json rename to frontend/src/locales/zh-TW/nav.json diff --git a/canto-frontend/src/locales/zh-TW/onboarding.json b/frontend/src/locales/zh-TW/onboarding.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/onboarding.json rename to frontend/src/locales/zh-TW/onboarding.json diff --git a/canto-frontend/src/locales/zh-TW/settings.json b/frontend/src/locales/zh-TW/settings.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/settings.json rename to frontend/src/locales/zh-TW/settings.json diff --git a/canto-frontend/src/locales/zh-TW/tts.json b/frontend/src/locales/zh-TW/tts.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/tts.json rename to frontend/src/locales/zh-TW/tts.json diff --git a/canto-frontend/src/locales/zh-TW/user.json b/frontend/src/locales/zh-TW/user.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/user.json rename to frontend/src/locales/zh-TW/user.json diff --git a/canto-frontend/src/locales/zh-TW/voice.json b/frontend/src/locales/zh-TW/voice.json similarity index 100% rename from canto-frontend/src/locales/zh-TW/voice.json rename to frontend/src/locales/zh-TW/voice.json diff --git a/canto-frontend/src/main.tsx b/frontend/src/main.tsx similarity index 100% rename from canto-frontend/src/main.tsx rename to frontend/src/main.tsx diff --git a/canto-frontend/src/pages/AdminStats.tsx b/frontend/src/pages/AdminStats.tsx similarity index 100% rename from canto-frontend/src/pages/AdminStats.tsx rename to frontend/src/pages/AdminStats.tsx diff --git a/canto-frontend/src/pages/Audiobook.tsx b/frontend/src/pages/Audiobook.tsx similarity index 100% rename from canto-frontend/src/pages/Audiobook.tsx rename to frontend/src/pages/Audiobook.tsx diff --git a/canto-frontend/src/pages/Login.tsx b/frontend/src/pages/Login.tsx similarity index 100% rename from canto-frontend/src/pages/Login.tsx rename to frontend/src/pages/Login.tsx diff --git a/canto-frontend/src/pages/Settings.tsx b/frontend/src/pages/Settings.tsx similarity index 100% rename from canto-frontend/src/pages/Settings.tsx rename to frontend/src/pages/Settings.tsx diff --git a/canto-frontend/src/pages/UserManagement.tsx b/frontend/src/pages/UserManagement.tsx similarity index 100% rename from canto-frontend/src/pages/UserManagement.tsx rename to frontend/src/pages/UserManagement.tsx diff --git a/canto-frontend/src/types/auth.ts b/frontend/src/types/auth.ts similarity index 100% rename from canto-frontend/src/types/auth.ts rename to frontend/src/types/auth.ts diff --git a/canto-frontend/src/types/job.ts b/frontend/src/types/job.ts similarity index 100% rename from canto-frontend/src/types/job.ts rename to frontend/src/types/job.ts diff --git a/canto-frontend/src/types/tts.ts b/frontend/src/types/tts.ts similarity index 100% rename from canto-frontend/src/types/tts.ts rename to frontend/src/types/tts.ts diff --git a/canto-frontend/src/types/user.ts b/frontend/src/types/user.ts similarity index 100% rename from canto-frontend/src/types/user.ts rename to frontend/src/types/user.ts diff --git a/canto-frontend/src/types/voice-design.ts b/frontend/src/types/voice-design.ts similarity index 100% rename from canto-frontend/src/types/voice-design.ts rename to frontend/src/types/voice-design.ts diff --git a/canto-frontend/src/types/waveform-player.d.ts b/frontend/src/types/waveform-player.d.ts similarity index 100% rename from canto-frontend/src/types/waveform-player.d.ts rename to frontend/src/types/waveform-player.d.ts diff --git a/canto-frontend/tailwind.config.js b/frontend/tailwind.config.js similarity index 100% rename from canto-frontend/tailwind.config.js rename to frontend/tailwind.config.js diff --git a/canto-frontend/tsconfig.app.json b/frontend/tsconfig.app.json similarity index 100% rename from canto-frontend/tsconfig.app.json rename to frontend/tsconfig.app.json diff --git a/canto-frontend/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from canto-frontend/tsconfig.json rename to frontend/tsconfig.json diff --git a/canto-frontend/tsconfig.node.json b/frontend/tsconfig.node.json similarity index 100% rename from canto-frontend/tsconfig.node.json rename to frontend/tsconfig.node.json diff --git a/canto-frontend/vite.config.ts b/frontend/vite.config.ts similarity index 100% rename from canto-frontend/vite.config.ts rename to frontend/vite.config.ts