diff --git a/.gitignore b/.gitignore index 6c5319f..26bae61 100644 --- a/.gitignore +++ b/.gitignore @@ -26,16 +26,16 @@ checkpoints/ docker/models/ docker/data/ docker/.env -qwen3-tts-frontend/node_modules/ -qwen3-tts-frontend/dist/ -qwen3-tts-frontend/.env -qwen3-tts-frontend/.env.local +canto-frontend/node_modules/ +canto-frontend/dist/ +canto-frontend/.env +canto-frontend/.env.local CLAUDE.md 样本.mp3 aliyun.md /nginx.conf deploy.md -qwen3-tts-backend/scripts -qwen3-tts-backend/examples -qwen3-tts-backend/qwen3-tts.service -qwen3-tts-frontend/.env.production +canto-backend/scripts +canto-backend/examples +canto-backend/canto.service +canto-frontend/.env.production diff --git a/qwen3-tts-backend/api/__init__.py b/.gitmodules similarity index 100% rename from qwen3-tts-backend/api/__init__.py rename to .gitmodules diff --git a/README.zh.md b/README.zh.md deleted file mode 100644 index 3ac33dd..0000000 --- a/README.zh.md +++ /dev/null @@ -1,348 +0,0 @@ -# Qwen3-TTS WebUI - -> **⚠️ 注意:** 本项目由大量 AI 生成,目前处于不稳定状态。稳定版将在 [Releases](../../releases) 中发布。 - -**非官方** 基于 Qwen3-TTS 的文本转语音 Web 应用,支持自定义语音、语音设计和语音克隆,提供直观的 Web 界面。 - -> 这是一个非官方项目。如需查看官方 Qwen3-TTS 仓库,请访问 [QwenLM/Qwen3-TTS](https://github.com/QwenLM/Qwen3-TTS)。 - -[English Documentation](./README.md) - -## 功能特性 - -- 自定义语音:预定义说话人语音 -- 语音设计:自然语言描述创建语音 -- 语音克隆:上传音频克隆语音 -- **IndexTTS2**:高质量语音克隆,支持情感控制(高兴、愤怒、悲伤、恐惧、惊讶等),由 [IndexTTS2](https://github.com/iszhanjiawei/indexTTS2) 驱动 -- 有声书生成:上传 EPUB 文件,通过 LLM 自动提取角色并分配语音,生成多角色有声书;支持为每个角色单独启用 IndexTTS2 -- 双后端支持:支持本地模型和阿里云 TTS API 切换 -- 多语言支持:English、简体中文、繁體中文、日本語、한국어 -- JWT 认证、异步任务、语音缓存、暗黑模式 - -## 界面预览 - -### 桌面端 - 亮色模式 -![亮色模式](./images/lightmode-english.png) - -### 桌面端 - 暗黑模式 -![暗黑模式](./images/darkmode-chinese.png) - -### 移动端 - - - - - -
移动端亮色模式移动端设置
- -### 有声书生成 -![有声书概览](./images/audiobook-overview.png) - - - - - - -
有声书角色列表有声书章节列表
- -## 技术栈 - -**后端**: FastAPI + SQLAlchemy + PyTorch + JWT -- 使用 PyTorch 直接推理 Qwen3-TTS 模型 -- 异步任务处理与批量优化 -- 支持本地模型 + 阿里云 API 双后端 - -**前端**: React 19 + TypeScript + Vite + Tailwind + Shadcn/ui - -## Docker 部署 - -预构建镜像已发布至 Docker Hub:[bdim404/qwen3-tts-backend](https://hub.docker.com/r/bdim404/qwen3-tts-backend)、[bdim404/qwen3-tts-frontend](https://hub.docker.com/r/bdim404/qwen3-tts-frontend) - -**前置要求**:Docker、Docker Compose、NVIDIA GPU + [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) - -```bash -git clone https://github.com/bdim404/Qwen3-TTS-WebUI.git -cd Qwen3-TTS-webUI - -# 下载模型到 docker/models/(参见下方"安装部署 > 下载模型") -mkdir -p docker/models docker/data - -# 配置 -cp docker/.env.example docker/.env -# 编辑 docker/.env,设置 SECRET_KEY - -cd docker - -# 拉取预构建镜像 -docker compose pull - -# 启动(仅 CPU) -docker compose up -d - -# 启动(GPU 加速) -docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d -``` - -访问 `http://localhost`,默认账号:`admin` / `admin123456` - -## 安装部署 - -### 环境要求 - -- Python 3.9+ 并支持 CUDA(用于本地模型推理) -- Node.js 18+(用于前端) -- Git - -### 1. 克隆仓库 - -```bash -git clone https://github.com/bdim404/Qwen3-TTS-WebUI.git -cd Qwen3-TTS-webUI -``` - -### 2. 下载模型 - -**重要**: 模型**不会**自动下载,需要手动下载。 - -详细信息请访问官方仓库:[Qwen3-TTS 模型](https://github.com/QwenLM/Qwen3-TTS) - -进入模型目录: -```bash -# Docker 部署 -mkdir -p docker/models && cd docker/models - -# 本地部署 -cd qwen3-tts-backend && mkdir -p Qwen && cd Qwen -``` - -**方式一:通过 ModelScope 下载(推荐中国大陆用户)** - -```bash -pip install -U modelscope - -modelscope download --model Qwen/Qwen3-TTS-Tokenizer-12Hz --local_dir ./Qwen3-TTS-Tokenizer-12Hz -modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local_dir ./Qwen3-TTS-12Hz-1.7B-CustomVoice -modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local_dir ./Qwen3-TTS-12Hz-1.7B-VoiceDesign -modelscope download --model Qwen/Qwen3-TTS-12Hz-1.7B-Base --local_dir ./Qwen3-TTS-12Hz-1.7B-Base -``` - -可选的 0.6B 模型(更小、更快): -```bash -modelscope download --model Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local_dir ./Qwen3-TTS-12Hz-0.6B-CustomVoice -modelscope download --model Qwen/Qwen3-TTS-12Hz-0.6B-Base --local_dir ./Qwen3-TTS-12Hz-0.6B-Base -``` - -**方式二:通过 Hugging Face 下载** - -```bash -pip install -U "huggingface_hub[cli]" - -hf download Qwen/Qwen3-TTS-Tokenizer-12Hz --local-dir ./Qwen3-TTS-Tokenizer-12Hz -hf download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local-dir ./Qwen3-TTS-12Hz-1.7B-CustomVoice -hf download Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local-dir ./Qwen3-TTS-12Hz-1.7B-VoiceDesign -hf download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir ./Qwen3-TTS-12Hz-1.7B-Base -``` - -可选的 0.6B 模型(更小、更快): -```bash -hf download Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local-dir ./Qwen3-TTS-12Hz-0.6B-CustomVoice -hf download Qwen/Qwen3-TTS-12Hz-0.6B-Base --local-dir ./Qwen3-TTS-12Hz-0.6B-Base -``` - -**IndexTTS2 模型(可选,用于情感控制语音克隆)** - -IndexTTS2 是可选功能。如需使用,在同一 `Qwen/` 目录下运行: - -```bash -# 仅下载所需文件,无需下载完整仓库 -hf download IndexTeam/IndexTTS-2 \ - bpe.model config.yaml feat1.pt feat2.pt gpt.pth s2mel.pth wav2vec2bert_stats.pt \ - --local-dir ./IndexTTS2 -``` - -然后安装 indextts 包: -```bash -git clone https://github.com/iszhanjiawei/indexTTS2.git -cd indexTTS2 -pip install -e . --no-deps -cd .. -``` - -**最终目录结构:** - -Docker 部署(`docker/models/`): -``` -Qwen3-TTS-webUI/ -└── docker/ - └── models/ - ├── Qwen3-TTS-Tokenizer-12Hz/ - ├── Qwen3-TTS-12Hz-1.7B-CustomVoice/ - ├── Qwen3-TTS-12Hz-1.7B-VoiceDesign/ - └── Qwen3-TTS-12Hz-1.7B-Base/ -``` - -本地部署(`qwen3-tts-backend/Qwen/`): -``` -Qwen3-TTS-webUI/ -└── qwen3-tts-backend/ - └── Qwen/ - ├── Qwen3-TTS-Tokenizer-12Hz/ - ├── Qwen3-TTS-12Hz-1.7B-CustomVoice/ - ├── Qwen3-TTS-12Hz-1.7B-VoiceDesign/ - ├── Qwen3-TTS-12Hz-1.7B-Base/ - └── IndexTTS2/ ← 可选,用于 IndexTTS2 功能 - ├── bpe.model - ├── config.yaml - ├── feat1.pt - ├── feat2.pt - ├── gpt.pth - ├── s2mel.pth - └── wav2vec2bert_stats.pt -``` - -### 3. 后端配置 - -```bash -cd qwen3-tts-backend - -# 创建虚拟环境 -python -m venv venv -source venv/bin/activate # Windows: venv\Scripts\activate - -# 安装依赖 -pip install -r requirements.txt - -# 安装 Qwen3-TTS -pip install qwen-tts - -# 创建配置文件 -cp .env.example .env - -# 编辑配置文件 -# 本地模型:设置 MODEL_BASE_PATH=./Qwen -# 仅阿里云 API:设置 DEFAULT_BACKEND=aliyun -nano .env # 或使用其他编辑器 -``` - -**重要的后端配置** (`.env` 文件): -```env -MODEL_DEVICE=cuda:0 # 使用 GPU(或 cpu 使用 CPU) -MODEL_BASE_PATH=./Qwen # 已下载模型的路径 -DEFAULT_BACKEND=local # 使用本地模型用 'local',API 用 'aliyun' -DATABASE_URL=sqlite:///./qwen_tts.db -SECRET_KEY=your-secret-key-here # 请修改此项! -``` - -启动后端服务: -```bash -# 使用 uvicorn 直接启动 -uvicorn main:app --host 0.0.0.0 --port 8000 --reload - -# 或使用 conda(如果你喜欢) -conda run -n qwen3-tts uvicorn main:app --host 0.0.0.0 --port 8000 --reload -``` - -验证后端是否运行: -```bash -curl http://127.0.0.1:8000/health -``` - -### 4. 前端配置 - -```bash -cd qwen3-tts-frontend - -# 安装依赖 -npm install - -# 创建配置文件 -cp .env.example .env - -# 启动开发服务器 -npm run dev -``` - -### 5. 访问应用 - -在浏览器中打开:`http://localhost:5173` - -**默认账号**: -- 用户名:`admin` -- 密码:`admin123456` -- **重要**: 登录后请立即修改密码! - -### 生产环境部署 - -用于生产环境: - -```bash -# 后端:使用 gunicorn 或类似的 WSGI 服务器 -cd qwen3-tts-backend -gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 - -# 前端:构建静态文件 -cd qwen3-tts-frontend -npm run build -# 使用 nginx 或其他 Web 服务器提供 'dist' 文件夹 -``` - -## 配置 - -### 后端配置 - -后端 `.env` 关键配置: - -```env -SECRET_KEY=your-secret-key -MODEL_DEVICE=cuda:0 -MODEL_BASE_PATH=../Qwen -DATABASE_URL=sqlite:///./qwen_tts.db - -DEFAULT_BACKEND=local - -ALIYUN_REGION=beijing -ALIYUN_MODEL_FLASH=qwen3-tts-flash-realtime -ALIYUN_MODEL_VC=qwen3-tts-vc-realtime-2026-01-15 -ALIYUN_MODEL_VD=qwen3-tts-vd-realtime-2026-01-15 -``` - -**后端选项:** - -- `DEFAULT_BACKEND`: 默认 TTS 后端,可选值:`local` 或 `aliyun` -- **本地模式**: 使用本地 Qwen3-TTS 模型(需要配置 `MODEL_BASE_PATH`) -- **阿里云模式**: 使用阿里云 TTS API(需要用户在设置页面配置 API 密钥) - -**阿里云配置:** - -- 用户需要在 Web 界面的设置页面添加阿里云 API 密钥 -- API 密钥经过加密后安全存储在数据库中 -- 超级管理员可以控制是否为所有用户启用本地模型 -- 获取阿里云 API 密钥,请访问 [阿里云控制台](https://dashscope.console.aliyun.com/) - -## 使用说明 - -### 切换后端 - -1. 登录 Web 界面 -2. 进入设置页面 -3. 配置您偏好的后端: - - **本地模型**:选择"本地模型"(需要超级管理员启用本地模型) - - **阿里云 API**:选择"阿里云"并添加您的 API 密钥 -4. 选择的后端将默认用于所有 TTS 操作 -5. 也可以通过 API 的 `backend` 参数为单次请求指定不同的后端 - -### 管理阿里云 API 密钥 - -1. 在设置页面找到"阿里云 API 密钥"部分 -2. 输入您的阿里云 API 密钥 -3. 点击"更新密钥"保存并验证 -4. 系统会在保存前验证密钥的有效性 -5. 可随时使用删除按钮删除密钥 - -## 特别鸣谢 - -本项目基于阿里云 Qwen 团队开源的 [Qwen3-TTS](https://github.com/QwenLM/Qwen3-TTS) 官方仓库构建。特别感谢 Qwen 团队开源如此强大的文本转语音模型。 - -## 许可证 - -Apache-2.0 license diff --git a/qwen3-tts-backend/.env.example b/canto-backend/.env.example similarity index 100% rename from qwen3-tts-backend/.env.example rename to canto-backend/.env.example diff --git a/qwen3-tts-backend/.gitignore b/canto-backend/.gitignore similarity index 100% rename from qwen3-tts-backend/.gitignore rename to canto-backend/.gitignore diff --git a/qwen3-tts-backend/core/__init__.py b/canto-backend/api/__init__.py similarity index 100% rename from qwen3-tts-backend/core/__init__.py rename to canto-backend/api/__init__.py diff --git a/qwen3-tts-backend/api/admin.py b/canto-backend/api/admin.py similarity index 100% rename from qwen3-tts-backend/api/admin.py rename to canto-backend/api/admin.py diff --git a/qwen3-tts-backend/api/audiobook.py b/canto-backend/api/audiobook.py similarity index 100% rename from qwen3-tts-backend/api/audiobook.py rename to canto-backend/api/audiobook.py diff --git a/qwen3-tts-backend/api/auth.py b/canto-backend/api/auth.py similarity index 100% rename from qwen3-tts-backend/api/auth.py rename to canto-backend/api/auth.py diff --git a/qwen3-tts-backend/api/jobs.py b/canto-backend/api/jobs.py similarity index 100% rename from qwen3-tts-backend/api/jobs.py rename to canto-backend/api/jobs.py diff --git a/qwen3-tts-backend/api/tts.py b/canto-backend/api/tts.py similarity index 100% rename from qwen3-tts-backend/api/tts.py rename to canto-backend/api/tts.py diff --git a/qwen3-tts-backend/api/users.py b/canto-backend/api/users.py similarity index 100% rename from qwen3-tts-backend/api/users.py rename to canto-backend/api/users.py diff --git a/qwen3-tts-backend/api/voice_designs.py b/canto-backend/api/voice_designs.py similarity index 100% rename from qwen3-tts-backend/api/voice_designs.py rename to canto-backend/api/voice_designs.py diff --git a/qwen3-tts-backend/config.py b/canto-backend/config.py similarity index 100% rename from qwen3-tts-backend/config.py rename to canto-backend/config.py diff --git a/qwen3-tts-backend/db/__init__.py b/canto-backend/core/__init__.py similarity index 100% rename from qwen3-tts-backend/db/__init__.py rename to canto-backend/core/__init__.py diff --git a/qwen3-tts-backend/core/audiobook_service.py b/canto-backend/core/audiobook_service.py similarity index 100% rename from qwen3-tts-backend/core/audiobook_service.py rename to canto-backend/core/audiobook_service.py diff --git a/qwen3-tts-backend/core/batch_processor.py b/canto-backend/core/batch_processor.py similarity index 100% rename from qwen3-tts-backend/core/batch_processor.py rename to canto-backend/core/batch_processor.py diff --git a/qwen3-tts-backend/core/cache_manager.py b/canto-backend/core/cache_manager.py similarity index 100% rename from qwen3-tts-backend/core/cache_manager.py rename to canto-backend/core/cache_manager.py diff --git a/qwen3-tts-backend/core/cleanup.py b/canto-backend/core/cleanup.py similarity index 100% rename from qwen3-tts-backend/core/cleanup.py rename to canto-backend/core/cleanup.py diff --git a/qwen3-tts-backend/core/config.py b/canto-backend/core/config.py similarity index 100% rename from qwen3-tts-backend/core/config.py rename to canto-backend/core/config.py diff --git a/qwen3-tts-backend/core/database.py b/canto-backend/core/database.py similarity index 100% rename from qwen3-tts-backend/core/database.py rename to canto-backend/core/database.py diff --git a/qwen3-tts-backend/core/init_admin.py b/canto-backend/core/init_admin.py similarity index 100% rename from qwen3-tts-backend/core/init_admin.py rename to canto-backend/core/init_admin.py diff --git a/qwen3-tts-backend/core/llm_service.py b/canto-backend/core/llm_service.py similarity index 100% rename from qwen3-tts-backend/core/llm_service.py rename to canto-backend/core/llm_service.py diff --git a/qwen3-tts-backend/core/metrics.py b/canto-backend/core/metrics.py similarity index 100% rename from qwen3-tts-backend/core/metrics.py rename to canto-backend/core/metrics.py diff --git a/qwen3-tts-backend/core/model_manager.py b/canto-backend/core/model_manager.py similarity index 100% rename from qwen3-tts-backend/core/model_manager.py rename to canto-backend/core/model_manager.py diff --git a/qwen3-tts-backend/core/progress_store.py b/canto-backend/core/progress_store.py similarity index 100% rename from qwen3-tts-backend/core/progress_store.py rename to canto-backend/core/progress_store.py diff --git a/qwen3-tts-backend/core/security.py b/canto-backend/core/security.py similarity index 100% rename from qwen3-tts-backend/core/security.py rename to canto-backend/core/security.py diff --git a/qwen3-tts-backend/core/tts_service.py b/canto-backend/core/tts_service.py similarity index 100% rename from qwen3-tts-backend/core/tts_service.py rename to canto-backend/core/tts_service.py diff --git a/qwen3-tts-backend/indextts/__init__.py b/canto-backend/db/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/__init__.py rename to canto-backend/db/__init__.py diff --git a/qwen3-tts-backend/db/crud.py b/canto-backend/db/crud.py similarity index 100% rename from qwen3-tts-backend/db/crud.py rename to canto-backend/db/crud.py diff --git a/qwen3-tts-backend/db/database.py b/canto-backend/db/database.py similarity index 100% rename from qwen3-tts-backend/db/database.py rename to canto-backend/db/database.py diff --git a/qwen3-tts-backend/db/migrate_add_local_permission.py b/canto-backend/db/migrate_add_local_permission.py similarity index 100% rename from qwen3-tts-backend/db/migrate_add_local_permission.py rename to canto-backend/db/migrate_add_local_permission.py diff --git a/qwen3-tts-backend/db/models.py b/canto-backend/db/models.py similarity index 100% rename from qwen3-tts-backend/db/models.py rename to canto-backend/db/models.py diff --git a/qwen3-tts-backend/deploy/nginx.conf b/canto-backend/deploy/nginx.conf similarity index 87% rename from qwen3-tts-backend/deploy/nginx.conf rename to canto-backend/deploy/nginx.conf index 98fd570..dd9f728 100644 --- a/qwen3-tts-backend/deploy/nginx.conf +++ b/canto-backend/deploy/nginx.conf @@ -1,4 +1,4 @@ -upstream qwen_tts_backend { +upstream canto_backend { server 127.0.0.1:8000; } @@ -13,7 +13,7 @@ server { proxy_send_timeout 300s; location / { - proxy_pass http://qwen_tts_backend; + proxy_pass http://canto_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -34,20 +34,20 @@ server { } location /outputs/ { - alias /opt/qwen3-tts-backend/outputs/; + alias /opt/canto-backend/outputs/; autoindex off; add_header Cache-Control "public, max-age=3600"; add_header Content-Disposition "attachment"; } location /health { - proxy_pass http://qwen_tts_backend/health; + proxy_pass http://canto_backend/health; proxy_set_header Host $host; access_log off; } location /metrics { - proxy_pass http://qwen_tts_backend/metrics; + proxy_pass http://canto_backend/metrics; proxy_set_header Host $host; allow 127.0.0.1; deny all; diff --git a/qwen3-tts-backend/deploy/qwen-tts.service b/canto-backend/deploy/qwen-tts.service similarity index 52% rename from qwen3-tts-backend/deploy/qwen-tts.service rename to canto-backend/deploy/qwen-tts.service index 1996986..6ab8ed2 100644 --- a/qwen3-tts-backend/deploy/qwen-tts.service +++ b/canto-backend/deploy/qwen-tts.service @@ -1,15 +1,15 @@ [Unit] -Description=Qwen3-TTS Backend API Service +Description=Canto Backend API Service After=network.target [Service] Type=simple User=qwen-tts Group=qwen-tts -WorkingDirectory=/opt/qwen3-tts-backend -Environment="PATH=/opt/conda/envs/qwen3-tts/bin:/usr/local/bin:/usr/bin:/bin" -EnvironmentFile=/opt/qwen3-tts-backend/.env -ExecStart=/opt/conda/envs/qwen3-tts/bin/python main.py +WorkingDirectory=/opt/canto-backend +Environment="PATH=/opt/conda/envs/canto/bin:/usr/local/bin:/usr/bin:/bin" +EnvironmentFile=/opt/canto-backend/.env +ExecStart=/opt/conda/envs/canto/bin/python main.py Restart=on-failure RestartSec=10s StandardOutput=append:/var/log/qwen-tts/app.log diff --git a/qwen3-tts-backend/indextts/gpt/__init__.py b/canto-backend/indextts/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/__init__.py rename to canto-backend/indextts/__init__.py diff --git a/qwen3-tts-backend/indextts/gpt/conformer/__init__.py b/canto-backend/indextts/gpt/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/conformer/__init__.py rename to canto-backend/indextts/gpt/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py b/canto-backend/indextts/gpt/conformer/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py rename to canto-backend/indextts/gpt/conformer/__init__.py diff --git a/qwen3-tts-backend/indextts/gpt/conformer/attention.py b/canto-backend/indextts/gpt/conformer/attention.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/conformer/attention.py rename to canto-backend/indextts/gpt/conformer/attention.py diff --git a/qwen3-tts-backend/indextts/gpt/conformer/embedding.py b/canto-backend/indextts/gpt/conformer/embedding.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/conformer/embedding.py rename to canto-backend/indextts/gpt/conformer/embedding.py diff --git a/qwen3-tts-backend/indextts/gpt/conformer/subsampling.py b/canto-backend/indextts/gpt/conformer/subsampling.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/conformer/subsampling.py rename to canto-backend/indextts/gpt/conformer/subsampling.py diff --git a/qwen3-tts-backend/indextts/gpt/conformer_encoder.py b/canto-backend/indextts/gpt/conformer_encoder.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/conformer_encoder.py rename to canto-backend/indextts/gpt/conformer_encoder.py diff --git a/qwen3-tts-backend/indextts/gpt/model_v2.py b/canto-backend/indextts/gpt/model_v2.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/model_v2.py rename to canto-backend/indextts/gpt/model_v2.py diff --git a/qwen3-tts-backend/indextts/gpt/perceiver.py b/canto-backend/indextts/gpt/perceiver.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/perceiver.py rename to canto-backend/indextts/gpt/perceiver.py diff --git a/qwen3-tts-backend/indextts/gpt/transformers_generation_utils.py b/canto-backend/indextts/gpt/transformers_generation_utils.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/transformers_generation_utils.py rename to canto-backend/indextts/gpt/transformers_generation_utils.py diff --git a/qwen3-tts-backend/indextts/gpt/transformers_gpt2.py b/canto-backend/indextts/gpt/transformers_gpt2.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/transformers_gpt2.py rename to canto-backend/indextts/gpt/transformers_gpt2.py diff --git a/qwen3-tts-backend/indextts/gpt/transformers_modeling_utils.py b/canto-backend/indextts/gpt/transformers_modeling_utils.py similarity index 100% rename from qwen3-tts-backend/indextts/gpt/transformers_modeling_utils.py rename to canto-backend/indextts/gpt/transformers_modeling_utils.py diff --git a/qwen3-tts-backend/indextts/infer_indextts2.py b/canto-backend/indextts/infer_indextts2.py similarity index 100% rename from qwen3-tts-backend/indextts/infer_indextts2.py rename to canto-backend/indextts/infer_indextts2.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/__init__.py b/canto-backend/indextts/s2mel/dac/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/__init__.py rename to canto-backend/indextts/s2mel/dac/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/__main__.py b/canto-backend/indextts/s2mel/dac/__main__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/__main__.py rename to canto-backend/indextts/s2mel/dac/__main__.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/model/__init__.py b/canto-backend/indextts/s2mel/dac/model/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/model/__init__.py rename to canto-backend/indextts/s2mel/dac/model/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/model/base.py b/canto-backend/indextts/s2mel/dac/model/base.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/model/base.py rename to canto-backend/indextts/s2mel/dac/model/base.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/model/dac.py b/canto-backend/indextts/s2mel/dac/model/dac.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/model/dac.py rename to canto-backend/indextts/s2mel/dac/model/dac.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/model/discriminator.py b/canto-backend/indextts/s2mel/dac/model/discriminator.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/model/discriminator.py rename to canto-backend/indextts/s2mel/dac/model/discriminator.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/model/encodec.py b/canto-backend/indextts/s2mel/dac/model/encodec.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/model/encodec.py rename to canto-backend/indextts/s2mel/dac/model/encodec.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/nn/__init__.py b/canto-backend/indextts/s2mel/dac/nn/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/nn/__init__.py rename to canto-backend/indextts/s2mel/dac/nn/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/nn/layers.py b/canto-backend/indextts/s2mel/dac/nn/layers.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/nn/layers.py rename to canto-backend/indextts/s2mel/dac/nn/layers.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/nn/loss.py b/canto-backend/indextts/s2mel/dac/nn/loss.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/nn/loss.py rename to canto-backend/indextts/s2mel/dac/nn/loss.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/nn/quantize.py b/canto-backend/indextts/s2mel/dac/nn/quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/nn/quantize.py rename to canto-backend/indextts/s2mel/dac/nn/quantize.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/utils/__init__.py b/canto-backend/indextts/s2mel/dac/utils/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/utils/__init__.py rename to canto-backend/indextts/s2mel/dac/utils/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/utils/decode.py b/canto-backend/indextts/s2mel/dac/utils/decode.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/utils/decode.py rename to canto-backend/indextts/s2mel/dac/utils/decode.py diff --git a/qwen3-tts-backend/indextts/s2mel/dac/utils/encode.py b/canto-backend/indextts/s2mel/dac/utils/encode.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/dac/utils/encode.py rename to canto-backend/indextts/s2mel/dac/utils/encode.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/audio.py b/canto-backend/indextts/s2mel/modules/audio.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/audio.py rename to canto-backend/indextts/s2mel/modules/audio.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/activations.py b/canto-backend/indextts/s2mel/modules/bigvgan/activations.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/activations.py rename to canto-backend/indextts/s2mel/modules/bigvgan/activations.py diff --git a/qwen3-tts-backend/indextts/utils/__init__.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/__init__.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/activation1d.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation.cpp diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/anti_alias_activation_cuda.cu diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/compat.h diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/load.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/cuda/type_shim.h diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/__init__.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/act.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/filter.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py b/canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py rename to canto-backend/indextts/s2mel/modules/bigvgan/alias_free_activation/torch/resample.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/bigvgan.py b/canto-backend/indextts/s2mel/modules/bigvgan/bigvgan.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/bigvgan.py rename to canto-backend/indextts/s2mel/modules/bigvgan/bigvgan.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/config.json b/canto-backend/indextts/s2mel/modules/bigvgan/config.json similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/config.json rename to canto-backend/indextts/s2mel/modules/bigvgan/config.json diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/env.py b/canto-backend/indextts/s2mel/modules/bigvgan/env.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/env.py rename to canto-backend/indextts/s2mel/modules/bigvgan/env.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/meldataset.py b/canto-backend/indextts/s2mel/modules/bigvgan/meldataset.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/meldataset.py rename to canto-backend/indextts/s2mel/modules/bigvgan/meldataset.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/bigvgan/utils.py b/canto-backend/indextts/s2mel/modules/bigvgan/utils.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/bigvgan/utils.py rename to canto-backend/indextts/s2mel/modules/bigvgan/utils.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/campplus/DTDNN.py b/canto-backend/indextts/s2mel/modules/campplus/DTDNN.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/campplus/DTDNN.py rename to canto-backend/indextts/s2mel/modules/campplus/DTDNN.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/campplus/layers.py b/canto-backend/indextts/s2mel/modules/campplus/layers.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/campplus/layers.py rename to canto-backend/indextts/s2mel/modules/campplus/layers.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/commons.py b/canto-backend/indextts/s2mel/modules/commons.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/commons.py rename to canto-backend/indextts/s2mel/modules/commons.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/diffusion_transformer.py b/canto-backend/indextts/s2mel/modules/diffusion_transformer.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/diffusion_transformer.py rename to canto-backend/indextts/s2mel/modules/diffusion_transformer.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/encodec.py b/canto-backend/indextts/s2mel/modules/encodec.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/encodec.py rename to canto-backend/indextts/s2mel/modules/encodec.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/flow_matching.py b/canto-backend/indextts/s2mel/modules/flow_matching.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/flow_matching.py rename to canto-backend/indextts/s2mel/modules/flow_matching.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/generate.py b/canto-backend/indextts/s2mel/modules/gpt_fast/generate.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/generate.py rename to canto-backend/indextts/s2mel/modules/gpt_fast/generate.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/model.py b/canto-backend/indextts/s2mel/modules/gpt_fast/model.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/model.py rename to canto-backend/indextts/s2mel/modules/gpt_fast/model.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/quantize.py b/canto-backend/indextts/s2mel/modules/gpt_fast/quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/gpt_fast/quantize.py rename to canto-backend/indextts/s2mel/modules/gpt_fast/quantize.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/length_regulator.py b/canto-backend/indextts/s2mel/modules/length_regulator.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/length_regulator.py rename to canto-backend/indextts/s2mel/modules/length_regulator.py diff --git a/qwen3-tts-backend/indextts/s2mel/modules/wavenet.py b/canto-backend/indextts/s2mel/modules/wavenet.py similarity index 100% rename from qwen3-tts-backend/indextts/s2mel/modules/wavenet.py rename to canto-backend/indextts/s2mel/modules/wavenet.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/__init__.py b/canto-backend/indextts/utils/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/__init__.py rename to canto-backend/indextts/utils/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/arch_util.py b/canto-backend/indextts/utils/arch_util.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/arch_util.py rename to canto-backend/indextts/utils/arch_util.py diff --git a/qwen3-tts-backend/indextts/utils/checkpoint.py b/canto-backend/indextts/utils/checkpoint.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/checkpoint.py rename to canto-backend/indextts/utils/checkpoint.py diff --git a/qwen3-tts-backend/indextts/utils/common.py b/canto-backend/indextts/utils/common.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/common.py rename to canto-backend/indextts/utils/common.py diff --git a/qwen3-tts-backend/indextts/utils/feature_extractors.py b/canto-backend/indextts/utils/feature_extractors.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/feature_extractors.py rename to canto-backend/indextts/utils/feature_extractors.py diff --git a/qwen3-tts-backend/indextts/utils/front.py b/canto-backend/indextts/utils/front.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/front.py rename to canto-backend/indextts/utils/front.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/codec.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/factorized_vector_quantize.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/lookup_free_quantize.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/residual_vq.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/quantize/vector_quantize.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py b/canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py rename to canto-backend/indextts/utils/maskgct/models/codec/amphion_codec/vocos.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_dataset.py b/canto-backend/indextts/utils/maskgct/models/codec/codec_dataset.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_dataset.py rename to canto-backend/indextts/utils/maskgct/models/codec/codec_dataset.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_inference.py b/canto-backend/indextts/utils/maskgct/models/codec/codec_inference.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_inference.py rename to canto-backend/indextts/utils/maskgct/models/codec/codec_inference.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_sampler.py b/canto-backend/indextts/utils/maskgct/models/codec/codec_sampler.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_sampler.py rename to canto-backend/indextts/utils/maskgct/models/codec/codec_sampler.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_trainer.py b/canto-backend/indextts/utils/maskgct/models/codec/codec_trainer.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/codec_trainer.py rename to canto-backend/indextts/utils/maskgct/models/codec/codec_trainer.py diff --git a/qwen3-tts-backend/schemas/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py similarity index 100% rename from qwen3-tts-backend/schemas/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/act.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/filter.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/alias_free_torch/resample.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_dataset.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_inference.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/facodec_trainer.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/bst.t7 diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/JDC/model.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/attentions.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/commons.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/gradient_reversal.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/layers.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/quantize.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/style_encoder.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/modules/wavenet.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py b/canto-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py rename to canto-backend/indextts/utils/maskgct/models/codec/facodec/optimizer.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py b/canto-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py rename to canto-backend/indextts/utils/maskgct/models/codec/kmeans/repcodec_model.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py b/canto-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py rename to canto-backend/indextts/utils/maskgct/models/codec/kmeans/vocos.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py b/canto-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py rename to canto-backend/indextts/utils/maskgct/models/codec/melvqgan/melspec.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/README.md diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/act.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/filter.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/alias_free_torch/resample.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/facodec.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/gradient_reversal.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/melspec.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/fvq.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/quantize/rvq.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py b/canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py rename to canto-backend/indextts/utils/maskgct/models/codec/ns3_codec/transformer.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/model.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/conv.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/lstm.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/norm.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/__init__.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/ac.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/core_vq.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/distrib.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/quantization/vq.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py b/canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py rename to canto-backend/indextts/utils/maskgct/models/codec/speechtokenizer/modules/seanet.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py b/canto-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py rename to canto-backend/indextts/utils/maskgct/models/codec/vevo/vevo_repcodec.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt b/canto-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt rename to canto-backend/indextts/utils/maskgct/models/tts/maskgct/ckpt/wav2vec2bert_stats.pt diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py b/canto-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py rename to canto-backend/indextts/utils/maskgct/models/tts/maskgct/llama_nar.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py b/canto-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py rename to canto-backend/indextts/utils/maskgct/models/tts/maskgct/maskgct_s2a.py diff --git a/qwen3-tts-backend/indextts/utils/maskgct_utils.py b/canto-backend/indextts/utils/maskgct_utils.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/maskgct_utils.py rename to canto-backend/indextts/utils/maskgct_utils.py diff --git a/qwen3-tts-backend/indextts/utils/typical_sampling.py b/canto-backend/indextts/utils/typical_sampling.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/typical_sampling.py rename to canto-backend/indextts/utils/typical_sampling.py diff --git a/qwen3-tts-backend/indextts/utils/webui_utils.py b/canto-backend/indextts/utils/webui_utils.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/webui_utils.py rename to canto-backend/indextts/utils/webui_utils.py diff --git a/qwen3-tts-backend/indextts/utils/xtransformers.py b/canto-backend/indextts/utils/xtransformers.py similarity index 100% rename from qwen3-tts-backend/indextts/utils/xtransformers.py rename to canto-backend/indextts/utils/xtransformers.py diff --git a/qwen3-tts-backend/main.py b/canto-backend/main.py similarity index 97% rename from qwen3-tts-backend/main.py rename to canto-backend/main.py index 8fc6826..2052a85 100644 --- a/qwen3-tts-backend/main.py +++ b/canto-backend/main.py @@ -51,7 +51,7 @@ limiter = Limiter(key_func=get_user_identifier) @asynccontextmanager async def lifespan(app: FastAPI): - logger.info("Starting Qwen3-TTS Backend Service...") + logger.info("Starting Canto Backend Service...") logger.info(f"Model base path: {settings.MODEL_BASE_PATH}") logger.info(f"Cache directory: {settings.CACHE_DIR}") logger.info(f"Output directory: {settings.OUTPUT_DIR}") @@ -116,7 +116,7 @@ async def lifespan(app: FastAPI): yield - logger.info("Shutting down Qwen3-TTS Backend Service...") + logger.info("Shutting down Canto Backend Service...") scheduler.shutdown() logger.info("Scheduler shutdown completed") @@ -129,8 +129,8 @@ async def lifespan(app: FastAPI): logger.error(f"Model cleanup failed: {e}") app = FastAPI( - title="Qwen3-TTS-WebUI Backend API", - description="Backend service for Qwen3-TTS-WebUI text-to-speech system", + title="Canto Backend API", + description="Backend service for Canto text-to-speech system", version="0.1.0", lifespan=lifespan ) diff --git a/qwen3-tts-backend/pytest.ini b/canto-backend/pytest.ini similarity index 100% rename from qwen3-tts-backend/pytest.ini rename to canto-backend/pytest.ini diff --git a/canto-backend/qwen3-tts.service b/canto-backend/qwen3-tts.service new file mode 100644 index 0000000..4b5e7e9 --- /dev/null +++ b/canto-backend/qwen3-tts.service @@ -0,0 +1,15 @@ +[Unit] +Description=Qwen3 TTS Backend Service +After=network.target + +[Service] +Type=simple +User=bdim +WorkingDirectory=/opt/qwen3-tts/qwen3-tts-backend +Environment="PATH=/home/bdim/miniconda3/envs/qwen3-tts-deploy/bin:/usr/local/bin:/usr/bin:/bin" +ExecStart=/home/bdim/miniconda3/envs/qwen3-tts-deploy/bin/uvicorn main:app --host 0.0.0.0 --port 8884 +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/qwen3-tts-backend/requirements.txt b/canto-backend/requirements.txt similarity index 100% rename from qwen3-tts-backend/requirements.txt rename to canto-backend/requirements.txt diff --git a/qwen3-tts-backend/utils/__init__.py b/canto-backend/schemas/__init__.py similarity index 100% rename from qwen3-tts-backend/utils/__init__.py rename to canto-backend/schemas/__init__.py diff --git a/qwen3-tts-backend/schemas/audiobook.py b/canto-backend/schemas/audiobook.py similarity index 100% rename from qwen3-tts-backend/schemas/audiobook.py rename to canto-backend/schemas/audiobook.py diff --git a/qwen3-tts-backend/schemas/cache.py b/canto-backend/schemas/cache.py similarity index 100% rename from qwen3-tts-backend/schemas/cache.py rename to canto-backend/schemas/cache.py diff --git a/qwen3-tts-backend/schemas/job.py b/canto-backend/schemas/job.py similarity index 100% rename from qwen3-tts-backend/schemas/job.py rename to canto-backend/schemas/job.py diff --git a/qwen3-tts-backend/schemas/tts.py b/canto-backend/schemas/tts.py similarity index 100% rename from qwen3-tts-backend/schemas/tts.py rename to canto-backend/schemas/tts.py diff --git a/qwen3-tts-backend/schemas/user.py b/canto-backend/schemas/user.py similarity index 100% rename from qwen3-tts-backend/schemas/user.py rename to canto-backend/schemas/user.py diff --git a/qwen3-tts-backend/schemas/voice_design.py b/canto-backend/schemas/voice_design.py similarity index 100% rename from qwen3-tts-backend/schemas/voice_design.py rename to canto-backend/schemas/voice_design.py diff --git a/canto-backend/utils/__init__.py b/canto-backend/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/qwen3-tts-backend/utils/audio.py b/canto-backend/utils/audio.py similarity index 100% rename from qwen3-tts-backend/utils/audio.py rename to canto-backend/utils/audio.py diff --git a/qwen3-tts-backend/utils/metrics.py b/canto-backend/utils/metrics.py similarity index 100% rename from qwen3-tts-backend/utils/metrics.py rename to canto-backend/utils/metrics.py diff --git a/qwen3-tts-backend/utils/validation.py b/canto-backend/utils/validation.py similarity index 100% rename from qwen3-tts-backend/utils/validation.py rename to canto-backend/utils/validation.py diff --git a/canto-frontend/.env.example b/canto-frontend/.env.example new file mode 100644 index 0000000..d1b87fd --- /dev/null +++ b/canto-frontend/.env.example @@ -0,0 +1,2 @@ +VITE_API_URL=/api +VITE_APP_NAME=Canto diff --git a/qwen3-tts-frontend/.gitignore b/canto-frontend/.gitignore similarity index 100% rename from qwen3-tts-frontend/.gitignore rename to canto-frontend/.gitignore diff --git a/qwen3-tts-frontend/components.json b/canto-frontend/components.json similarity index 100% rename from qwen3-tts-frontend/components.json rename to canto-frontend/components.json diff --git a/qwen3-tts-frontend/eslint.config.js b/canto-frontend/eslint.config.js similarity index 100% rename from qwen3-tts-frontend/eslint.config.js rename to canto-frontend/eslint.config.js diff --git a/qwen3-tts-frontend/fonts/noto-serif-jp-regular.woff2 b/canto-frontend/fonts/noto-serif-jp-regular.woff2 similarity index 100% rename from qwen3-tts-frontend/fonts/noto-serif-jp-regular.woff2 rename to canto-frontend/fonts/noto-serif-jp-regular.woff2 diff --git a/qwen3-tts-frontend/fonts/noto-serif-kr-regular.woff2 b/canto-frontend/fonts/noto-serif-kr-regular.woff2 similarity index 100% rename from qwen3-tts-frontend/fonts/noto-serif-kr-regular.woff2 rename to canto-frontend/fonts/noto-serif-kr-regular.woff2 diff --git a/qwen3-tts-frontend/fonts/noto-serif-latin-regular.woff2 b/canto-frontend/fonts/noto-serif-latin-regular.woff2 similarity index 100% rename from qwen3-tts-frontend/fonts/noto-serif-latin-regular.woff2 rename to canto-frontend/fonts/noto-serif-latin-regular.woff2 diff --git a/qwen3-tts-frontend/fonts/noto-serif-sc-regular.woff2 b/canto-frontend/fonts/noto-serif-sc-regular.woff2 similarity index 100% rename from qwen3-tts-frontend/fonts/noto-serif-sc-regular.woff2 rename to canto-frontend/fonts/noto-serif-sc-regular.woff2 diff --git a/qwen3-tts-frontend/fonts/noto-serif-tc-regular.woff2 b/canto-frontend/fonts/noto-serif-tc-regular.woff2 similarity index 100% rename from qwen3-tts-frontend/fonts/noto-serif-tc-regular.woff2 rename to canto-frontend/fonts/noto-serif-tc-regular.woff2 diff --git a/qwen3-tts-frontend/index.html b/canto-frontend/index.html similarity index 95% rename from qwen3-tts-frontend/index.html rename to canto-frontend/index.html index d6345a9..dfddea3 100644 --- a/qwen3-tts-frontend/index.html +++ b/canto-frontend/index.html @@ -4,7 +4,7 @@ - Qwen3-TTS-WebUI + Canto