初始化提交
142
docs/GPU_DOCKER_DEPLOYMENT.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# GPU Docker Deployment Guide
|
||||
|
||||
本文档介绍如何使用 GPU 加速 `faster-whisper` 字幕生成,大幅提升处理速度。
|
||||
|
||||
## 为什么要 GPU 加速
|
||||
|
||||
MoneyPrinterTurbo 中唯一的深度学习环节是 **faster-whisper 语音识别**(将音频转为带时间戳的字幕)。
|
||||
|
||||
- **CPU 模式**(默认):`large-v3` 模型生成字幕较慢
|
||||
- **GPU 模式**:利用 NVIDIA GPU + CUDA 加速,速度提升 **5-10 倍**
|
||||
|
||||
> 注意:项目的其他环节(脚本生成、音频合成、视频剪辑)不涉及深度学习,GPU 只加速字幕生成。
|
||||
|
||||
## 部署方式
|
||||
|
||||
本项目提供两种 Docker 部署方式,**默认 CPU 部署不受任何影响**:
|
||||
|
||||
### CPU 部署(默认,零变化)
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
使用原有的 `Dockerfile`(`python:3.11-slim-bullseye`),无需 GPU。
|
||||
|
||||
### GPU 部署(有 NVIDIA GPU 的用户)
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
|
||||
```
|
||||
|
||||
使用 `Dockerfile.gpu`(`nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04`)并为 api 服务挂载 GPU。
|
||||
|
||||
## GPU 部署前提条件
|
||||
|
||||
### 1. 硬件要求
|
||||
|
||||
- NVIDIA GPU(建议 6GB 以上显存)
|
||||
- `large-v3` 模型在 GPU 上 `float16` 精度约占用 1.5GB 显存
|
||||
|
||||
### 2. 软件要求
|
||||
|
||||
- **NVIDIA 驱动**:最新版即可,运行 `nvidia-smi` 确认
|
||||
- **Docker Desktop**
|
||||
- **NVIDIA Container Toolkit**:运行 `docker info` 查看 Runtimes 列表中是否有 `nvidia`
|
||||
|
||||
### 3. 环境验证
|
||||
|
||||
```bash
|
||||
# 确认 NVIDIA 驱动正常
|
||||
nvidia-smi
|
||||
|
||||
# 确认 Docker 支持 GPU(Runtimes 中应包含 nvidia)
|
||||
docker info | findstr nvidia
|
||||
```
|
||||
|
||||
如果没有 `nvidia` runtime,需要先安装 [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)。
|
||||
|
||||
## 配置 Whisper 使用 GPU
|
||||
|
||||
在 `config.toml` 中设置:
|
||||
|
||||
```toml
|
||||
subtitle_provider = "whisper"
|
||||
|
||||
[whisper]
|
||||
model_size = "large-v3"
|
||||
device = "cuda" # 使用 GPU(CPU 用户设为 "cpu")
|
||||
compute_type = "float16" # GPU 推荐 float16(CPU 用户设为 "int8")
|
||||
```
|
||||
|
||||
## 文件说明
|
||||
|
||||
| 文件 | 用途 |
|
||||
|---|---|
|
||||
| `Dockerfile` | 默认 CPU 镜像(原有,未修改) |
|
||||
| `Dockerfile.gpu` | GPU 镜像(新增,基于 NVIDIA CUDA) |
|
||||
| `docker-compose.yml` | 默认 CPU 部署配置(原有,未修改) |
|
||||
| `docker-compose.gpu.yml` | GPU 部署覆盖配置(新增) |
|
||||
|
||||
## GPU 部署步骤
|
||||
|
||||
### 第 1 步:拉取 CUDA 基础镜像
|
||||
|
||||
```bash
|
||||
docker pull nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04
|
||||
```
|
||||
|
||||
> 如果使用了阿里云等镜像加速源,可能对 `nvidia/cuda` 返回 403。请确保能从 Docker Hub 直接拉取。
|
||||
|
||||
### 第 2 步:修改 config.toml
|
||||
|
||||
按上文说明设置 `subtitle_provider = "whisper"` 和 `device = "cuda"`。
|
||||
|
||||
### 第 3 步:构建并启动
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build
|
||||
```
|
||||
|
||||
### 第 4 步:验证 GPU 是否生效
|
||||
|
||||
```bash
|
||||
docker exec -it moneyprinterturbo-api nvidia-smi
|
||||
```
|
||||
|
||||
如果能看到 GPU 信息,说明 GPU 挂载成功。
|
||||
|
||||
## 显存与并发建议
|
||||
|
||||
| GPU 显存 | 建议最大并发任务数 |
|
||||
|---|---|
|
||||
| 4GB | 1-2 |
|
||||
| 6GB | 2-3 |
|
||||
| 8GB | 3-4 |
|
||||
| 12GB+ | 5 |
|
||||
|
||||
可通过 `config.toml` 中的 `max_concurrent_tasks` 控制并发数。
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 问题 1:镜像拉取失败(403 Forbidden)
|
||||
|
||||
阿里云镜像加速对 `nvidia/cuda` 返回 403。解决方法:
|
||||
- 配置其他可用的镜像加速源
|
||||
- 或直接 `docker pull nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04`
|
||||
|
||||
### 问题 2:pip 安装报 `Cannot uninstall blinker`
|
||||
|
||||
Ubuntu 22.04 系统自带的 `blinker` 通过 `distutils` 安装,pip 无法卸载。`Dockerfile.gpu` 已通过 `apt-get remove -y python3-blinker` 处理。
|
||||
|
||||
### 问题 3:容器内 `nvidia-smi` 找不到 GPU
|
||||
|
||||
- 确认宿主机已安装 NVIDIA Container Toolkit
|
||||
- 确认 `docker info` 中 Runtimes 包含 `nvidia`
|
||||
- 确认使用了 GPU 部署命令:`docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d`
|
||||
|
||||
### 问题 4:Whisper 报 CUDA 错误
|
||||
|
||||
- 确认 `config.toml` 中 `device = "cuda"`(大小写敏感,不是 `"CPU"`)
|
||||
- 确认 `compute_type = "float16"`
|
||||
- 确认 `subtitle_provider = "whisper"`
|
||||
121
docs/MoneyPrinterTurbo.ipynb
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# MoneyPrinterTurbo Setup Guide\n",
|
||||
"\n",
|
||||
"This notebook will guide you through the process of setting up [MoneyPrinterTurbo](https://github.com/harry0703/MoneyPrinterTurbo)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1. Clone Repository and Install Dependencies\n",
|
||||
"\n",
|
||||
"First, we'll clone the repository from GitHub and install all required packages:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"id": "S8Eu-aQarY_B"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!git clone https://github.com/harry0703/MoneyPrinterTurbo.git\n",
|
||||
"%cd MoneyPrinterTurbo\n",
|
||||
"!pip install -q uv pyngrok\n",
|
||||
"!uv python install 3.11\n",
|
||||
"# Colab 预装了 google-colab / google-genai / google-adk 等包,直接 pip install -r requirements.txt\n",
|
||||
"# 会覆盖全局依赖并触发版本冲突。这里使用 uv 为项目创建独立 .venv,避免影响 Colab 运行时。\n",
|
||||
"!uv sync --frozen --python 3.11"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2. Configure ngrok for Remote Access\n",
|
||||
"\n",
|
||||
"We'll use ngrok to create a secure tunnel to expose our local Streamlit server to the internet.\n",
|
||||
"\n",
|
||||
"**Important**: You need to get your authentication token from the [ngrok dashboard](https://dashboard.ngrok.com/get-started/your-authtoken) to use this service."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from pyngrok import ngrok\n",
|
||||
"\n",
|
||||
"# Terminate any existing ngrok tunnels\n",
|
||||
"ngrok.kill()\n",
|
||||
"\n",
|
||||
"# Set your authentication token\n",
|
||||
"# Replace \"your_ngrok_auth_token\" with your actual token\n",
|
||||
"ngrok.set_auth_token(\"your_ngrok_auth_token\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3. Launch Application and Generate Public URL\n",
|
||||
"\n",
|
||||
"Now we'll start the Streamlit server and create an ngrok tunnel to make it accessible online:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"base_uri": "https://localhost:8080/"
|
||||
},
|
||||
"collapsed": true,
|
||||
"id": "oahsIOXmwjl9",
|
||||
"outputId": "ee23a96c-af21-4207-deb7-9fab69e0c05e"
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import subprocess\n",
|
||||
"import time\n",
|
||||
"\n",
|
||||
"print(\"🚀 Starting MoneyPrinterTurbo...\")\n",
|
||||
"# 通过 uv run 进入项目 .venv,确保 Streamlit 使用上一步锁定的依赖版本。\n",
|
||||
"streamlit_proc = subprocess.Popen([\n",
|
||||
" \"uv\", \"run\", \"streamlit\", \"run\", \"./webui/Main.py\", \"--server.port=8501\", \"--server.address=0.0.0.0\"\n",
|
||||
"])\n",
|
||||
"\n",
|
||||
"# Wait for the server to initialize\n",
|
||||
"time.sleep(5)\n",
|
||||
"\n",
|
||||
"print(\"🌐 Creating ngrok tunnel to expose the MoneyPrinterTurbo...\")\n",
|
||||
"public_url = ngrok.connect(8501, bind_tls=True)\n",
|
||||
"\n",
|
||||
"print(\"✅ Deployment complete! Access your MoneyPrinterTurbo at:\")\n",
|
||||
"print(public_url)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"colab": {
|
||||
"provenance": []
|
||||
},
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 0
|
||||
}
|
||||
120
docs/PR_MERGE_RECORD_2026-04-02.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# 2026-04-02 PR 合并与验证记录
|
||||
|
||||
## 本次已合并并推送的 PR
|
||||
|
||||
- `#837` `fix: update google-generativeai version for response_modalities support`
|
||||
- `#835` `fix: add missing pydub dependency to requirements.txt`
|
||||
- `#850` `feat: support reading subtitle position from config file`
|
||||
- `#838` `feat: add MiniMax as LLM provider`
|
||||
- `#811` `refactor: optimize codebase for better performance and reliability`
|
||||
- `#848` `feat: support GPU acceleration for faster-whisper in Docker`
|
||||
- `#843` `feat: Add Upload-Post integration for cross-posting to TikTok/Instagram`
|
||||
|
||||
## 合并后的主线提交
|
||||
|
||||
- TTS 与字幕修复基线提交:`953a6c0` `fix: restore edge tts synthesis and readable subtitles`
|
||||
- 当前主线提交:`1f8a746`
|
||||
|
||||
## 合并时的验证结论
|
||||
|
||||
### 已通过
|
||||
|
||||
- `#837`
|
||||
- 依赖升级后可正常导入
|
||||
- `google-generativeai==0.8.6` 已生效
|
||||
- `#835`
|
||||
- `pydub==0.25.1` 已生效
|
||||
- `#850`
|
||||
- `subtitle_position` 与 `custom_position` 可从配置文件读取
|
||||
- `#838`
|
||||
- MiniMax provider 接线正常
|
||||
- 使用 mock 调用验证 `_generate_response` 通过
|
||||
- `#811`
|
||||
- 主线导入正常
|
||||
- 抽样单测通过
|
||||
- `#848`
|
||||
- `docker compose -f docker-compose.yml -f docker-compose.gpu.yml config` 可正常解析
|
||||
- `#843`
|
||||
- Upload-Post 服务导入和 mock 上传调用通过
|
||||
- 与前面 PR 叠加时仅在 `config.example.toml` 存在配置段落冲突,已手工保留两边内容
|
||||
|
||||
### 已拒绝并关闭
|
||||
|
||||
- `#852`
|
||||
- 能恢复音频,但会破坏字幕链路,并删除仍被 WebUI 调用的 Gemini 逻辑
|
||||
- `#787`
|
||||
- 不能解决当前 `403` 场景
|
||||
- `#841`
|
||||
- 与当前主线 TTS/字幕修复冲突,且收益已被更小 PR 覆盖
|
||||
- `#824`
|
||||
- ModelsLab 路径能出音频,但字幕链路失败,无法产出可用 SRT
|
||||
- `#840`
|
||||
- 后端加入 `video_source="ai"`,但 WebUI 仍不支持该值,端到端不可用
|
||||
- `#826`
|
||||
- 与当前主线 `voice.py` 和依赖变更冲突,未通过合并验证
|
||||
- `#751`
|
||||
- `#749`
|
||||
- `#742`
|
||||
- `#705`
|
||||
- 以上 4 个 PR 在当前主线下均为 `DIRTY`,未通过合并验证
|
||||
|
||||
## 冒烟测试记录
|
||||
|
||||
### 服务重启
|
||||
|
||||
- API:`http://127.0.0.1:8080/docs`
|
||||
- WebUI:`http://127.0.0.1:8501`
|
||||
|
||||
### 第一次完整视频任务
|
||||
|
||||
- 任务号:`ced0b190-dd72-489c-b978-2761740933db`
|
||||
- 结果:失败
|
||||
- 结论:
|
||||
- API 默认 `video_transition_mode=null`
|
||||
- 视频拼接阶段在 `app/services/video.py` 中直接访问 `video_transition_mode.value`
|
||||
- 导致任务线程异常退出,任务状态停留在 `state=4, progress=75`
|
||||
|
||||
### 第二次完整视频任务
|
||||
|
||||
- 任务号:`8b2a0e6e-b3e6-44ab-a1b4-1865a0b4788d`
|
||||
- 提交方式:
|
||||
- `POST /api/v1/videos`
|
||||
- 使用本地素材 `/Users/harry/Projects/Python/MoneyPrinterTurbo/test/resources/1.png`
|
||||
- 显式指定 `video_transition_mode="FadeIn"`
|
||||
- 结果:成功
|
||||
- 任务状态:`state=1, progress=100`
|
||||
|
||||
### 第二次任务产物
|
||||
|
||||
- 音频:`/Users/harry/Projects/Python/MoneyPrinterTurbo/storage/tasks/8b2a0e6e-b3e6-44ab-a1b4-1865a0b4788d/audio.mp3`
|
||||
- 时长:`8.952s`
|
||||
- 大小:`53712 bytes`
|
||||
- 拼接视频:`/Users/harry/Projects/Python/MoneyPrinterTurbo/storage/tasks/8b2a0e6e-b3e6-44ab-a1b4-1865a0b4788d/combined-1.mp4`
|
||||
- 时长:`9.000s`
|
||||
- 大小:`177666 bytes`
|
||||
- 成片:`/Users/harry/Projects/Python/MoneyPrinterTurbo/storage/tasks/8b2a0e6e-b3e6-44ab-a1b4-1865a0b4788d/final-1.mp4`
|
||||
- 时长:`9.000s`
|
||||
- 大小:`352810 bytes`
|
||||
- 字幕:`/Users/harry/Projects/Python/MoneyPrinterTurbo/storage/tasks/8b2a0e6e-b3e6-44ab-a1b4-1865a0b4788d/subtitle.srt`
|
||||
|
||||
### 第二次任务字幕样本
|
||||
|
||||
```srt
|
||||
1
|
||||
00:00:00,100 --> 00:00:03,300
|
||||
这是一次主线合并后的完整冒烟测试
|
||||
|
||||
2
|
||||
00:00:03,875 --> 00:00:05,350
|
||||
我们要确认语音
|
||||
|
||||
3
|
||||
00:00:05,575 --> 00:00:08,375
|
||||
字幕和视频成片都能正常生成
|
||||
```
|
||||
|
||||
## 当前仍需关注的风险
|
||||
|
||||
- `#843` 仅做了 mock 验证,尚未使用真实 Upload-Post 密钥联调
|
||||
- `#848` 仅验证了 Docker GPU 配置解析,尚未在真实 GPU 环境运行
|
||||
- 当前 API 默认 `video_transition_mode=null` 时,完整视频任务仍存在回归风险
|
||||
BIN
docs/api.jpg
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
docs/picwish.com.jpg
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
docs/picwish.jpg
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
docs/reccloud.cn.jpg
Normal file
|
After Width: | Height: | Size: 294 KiB |
BIN
docs/reccloud.com.jpg
Normal file
|
After Width: | Height: | Size: 256 KiB |
941
docs/voice-list.txt
Normal file
@@ -0,0 +1,941 @@
|
||||
Name: af-ZA-AdriNeural
|
||||
Gender: Female
|
||||
|
||||
Name: af-ZA-WillemNeural
|
||||
Gender: Male
|
||||
|
||||
Name: am-ET-AmehaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: am-ET-MekdesNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-AE-FatimaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-AE-HamdanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-BH-AliNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-BH-LailaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-DZ-AminaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-DZ-IsmaelNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-EG-SalmaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-EG-ShakirNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-IQ-BasselNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-IQ-RanaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-JO-SanaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-JO-TaimNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-KW-FahedNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-KW-NouraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-LB-LaylaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-LB-RamiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-LY-ImanNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-LY-OmarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-MA-JamalNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-MA-MounaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-OM-AbdullahNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-OM-AyshaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-QA-AmalNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-QA-MoazNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-SA-HamedNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-SA-ZariyahNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-SY-AmanyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-SY-LaithNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-TN-HediNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ar-TN-ReemNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-YE-MaryamNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ar-YE-SalehNeural
|
||||
Gender: Male
|
||||
|
||||
Name: az-AZ-BabekNeural
|
||||
Gender: Male
|
||||
|
||||
Name: az-AZ-BanuNeural
|
||||
Gender: Female
|
||||
|
||||
Name: bg-BG-BorislavNeural
|
||||
Gender: Male
|
||||
|
||||
Name: bg-BG-KalinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: bn-BD-NabanitaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: bn-BD-PradeepNeural
|
||||
Gender: Male
|
||||
|
||||
Name: bn-IN-BashkarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: bn-IN-TanishaaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: bs-BA-GoranNeural
|
||||
Gender: Male
|
||||
|
||||
Name: bs-BA-VesnaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ca-ES-EnricNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ca-ES-JoanaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: cs-CZ-AntoninNeural
|
||||
Gender: Male
|
||||
|
||||
Name: cs-CZ-VlastaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: cy-GB-AledNeural
|
||||
Gender: Male
|
||||
|
||||
Name: cy-GB-NiaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: da-DK-ChristelNeural
|
||||
Gender: Female
|
||||
|
||||
Name: da-DK-JeppeNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-AT-IngridNeural
|
||||
Gender: Female
|
||||
|
||||
Name: de-AT-JonasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-CH-JanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-CH-LeniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: de-DE-AmalaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: de-DE-ConradNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-DE-FlorianMultilingualNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-DE-KatjaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: de-DE-KillianNeural
|
||||
Gender: Male
|
||||
|
||||
Name: de-DE-SeraphinaMultilingualNeural
|
||||
Gender: Female
|
||||
|
||||
Name: el-GR-AthinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: el-GR-NestorasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-AU-NatashaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-AU-WilliamNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-CA-ClaraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-CA-LiamNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-GB-LibbyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-GB-MaisieNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-GB-RyanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-GB-SoniaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-GB-ThomasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-HK-SamNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-HK-YanNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-IE-ConnorNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-IE-EmilyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-IN-NeerjaExpressiveNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-IN-NeerjaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-IN-PrabhatNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-KE-AsiliaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-KE-ChilembaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-NG-AbeoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-NG-EzinneNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-NZ-MitchellNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-NZ-MollyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-PH-JamesNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-PH-RosaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-SG-LunaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-SG-WayneNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-TZ-ElimuNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-TZ-ImaniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-AnaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-AndrewNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-AriaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-AvaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-BrianNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-ChristopherNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-EmmaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-EricNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-GuyNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-JennyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-MichelleNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-US-RogerNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-US-SteffanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: en-ZA-LeahNeural
|
||||
Gender: Female
|
||||
|
||||
Name: en-ZA-LukeNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-AR-ElenaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-AR-TomasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-BO-MarceloNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-BO-SofiaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-CL-CatalinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-CL-LorenzoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-CO-GonzaloNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-CO-SalomeNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-CR-JuanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-CR-MariaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-CU-BelkysNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-CU-ManuelNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-DO-EmilioNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-DO-RamonaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-EC-AndreaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-EC-LuisNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-ES-AlvaroNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-ES-ElviraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-ES-XimenaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-GQ-JavierNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-GQ-TeresaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-GT-AndresNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-GT-MartaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-HN-CarlosNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-HN-KarlaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-MX-DaliaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-MX-JorgeNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-NI-FedericoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-NI-YolandaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-PA-MargaritaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-PA-RobertoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-PE-AlexNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-PE-CamilaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-PR-KarinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-PR-VictorNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-PY-MarioNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-PY-TaniaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-SV-LorenaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-SV-RodrigoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-US-AlonsoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-US-PalomaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-UY-MateoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: es-UY-ValentinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-VE-PaolaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: es-VE-SebastianNeural
|
||||
Gender: Male
|
||||
|
||||
Name: et-EE-AnuNeural
|
||||
Gender: Female
|
||||
|
||||
Name: et-EE-KertNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fa-IR-DilaraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fa-IR-FaridNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fi-FI-HarriNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fi-FI-NooraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fil-PH-AngeloNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fil-PH-BlessicaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-BE-CharlineNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-BE-GerardNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-CA-AntoineNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-CA-JeanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-CA-SylvieNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-CA-ThierryNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-CH-ArianeNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-CH-FabriceNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-FR-DeniseNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-FR-EloiseNeural
|
||||
Gender: Female
|
||||
|
||||
Name: fr-FR-HenriNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-FR-RemyMultilingualNeural
|
||||
Gender: Male
|
||||
|
||||
Name: fr-FR-VivienneMultilingualNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ga-IE-ColmNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ga-IE-OrlaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: gl-ES-RoiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: gl-ES-SabelaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: gu-IN-DhwaniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: gu-IN-NiranjanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: he-IL-AvriNeural
|
||||
Gender: Male
|
||||
|
||||
Name: he-IL-HilaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: hi-IN-MadhurNeural
|
||||
Gender: Male
|
||||
|
||||
Name: hi-IN-SwaraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: hr-HR-GabrijelaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: hr-HR-SreckoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: hu-HU-NoemiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: hu-HU-TamasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: id-ID-ArdiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: id-ID-GadisNeural
|
||||
Gender: Female
|
||||
|
||||
Name: is-IS-GudrunNeural
|
||||
Gender: Female
|
||||
|
||||
Name: is-IS-GunnarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: it-IT-DiegoNeural
|
||||
Gender: Male
|
||||
|
||||
Name: it-IT-ElsaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: it-IT-GiuseppeNeural
|
||||
Gender: Male
|
||||
|
||||
Name: it-IT-IsabellaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ja-JP-KeitaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ja-JP-NanamiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: jv-ID-DimasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: jv-ID-SitiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ka-GE-EkaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ka-GE-GiorgiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: kk-KZ-AigulNeural
|
||||
Gender: Female
|
||||
|
||||
Name: kk-KZ-DauletNeural
|
||||
Gender: Male
|
||||
|
||||
Name: km-KH-PisethNeural
|
||||
Gender: Male
|
||||
|
||||
Name: km-KH-SreymomNeural
|
||||
Gender: Female
|
||||
|
||||
Name: kn-IN-GaganNeural
|
||||
Gender: Male
|
||||
|
||||
Name: kn-IN-SapnaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ko-KR-HyunsuNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ko-KR-InJoonNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ko-KR-SunHiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: lo-LA-ChanthavongNeural
|
||||
Gender: Male
|
||||
|
||||
Name: lo-LA-KeomanyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: lt-LT-LeonasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: lt-LT-OnaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: lv-LV-EveritaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: lv-LV-NilsNeural
|
||||
Gender: Male
|
||||
|
||||
Name: mk-MK-AleksandarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: mk-MK-MarijaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ml-IN-MidhunNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ml-IN-SobhanaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: mn-MN-BataaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: mn-MN-YesuiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: mr-IN-AarohiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: mr-IN-ManoharNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ms-MY-OsmanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ms-MY-YasminNeural
|
||||
Gender: Female
|
||||
|
||||
Name: mt-MT-GraceNeural
|
||||
Gender: Female
|
||||
|
||||
Name: mt-MT-JosephNeural
|
||||
Gender: Male
|
||||
|
||||
Name: my-MM-NilarNeural
|
||||
Gender: Female
|
||||
|
||||
Name: my-MM-ThihaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: nb-NO-FinnNeural
|
||||
Gender: Male
|
||||
|
||||
Name: nb-NO-PernilleNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ne-NP-HemkalaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ne-NP-SagarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: nl-BE-ArnaudNeural
|
||||
Gender: Male
|
||||
|
||||
Name: nl-BE-DenaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: nl-NL-ColetteNeural
|
||||
Gender: Female
|
||||
|
||||
Name: nl-NL-FennaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: nl-NL-MaartenNeural
|
||||
Gender: Male
|
||||
|
||||
Name: pl-PL-MarekNeural
|
||||
Gender: Male
|
||||
|
||||
Name: pl-PL-ZofiaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ps-AF-GulNawazNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ps-AF-LatifaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: pt-BR-AntonioNeural
|
||||
Gender: Male
|
||||
|
||||
Name: pt-BR-FranciscaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: pt-BR-ThalitaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: pt-PT-DuarteNeural
|
||||
Gender: Male
|
||||
|
||||
Name: pt-PT-RaquelNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ro-RO-AlinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ro-RO-EmilNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ru-RU-DmitryNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ru-RU-SvetlanaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: si-LK-SameeraNeural
|
||||
Gender: Male
|
||||
|
||||
Name: si-LK-ThiliniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sk-SK-LukasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sk-SK-ViktoriaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sl-SI-PetraNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sl-SI-RokNeural
|
||||
Gender: Male
|
||||
|
||||
Name: so-SO-MuuseNeural
|
||||
Gender: Male
|
||||
|
||||
Name: so-SO-UbaxNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sq-AL-AnilaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sq-AL-IlirNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sr-RS-NicholasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sr-RS-SophieNeural
|
||||
Gender: Female
|
||||
|
||||
Name: su-ID-JajangNeural
|
||||
Gender: Male
|
||||
|
||||
Name: su-ID-TutiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sv-SE-MattiasNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sv-SE-SofieNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sw-KE-RafikiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sw-KE-ZuriNeural
|
||||
Gender: Female
|
||||
|
||||
Name: sw-TZ-DaudiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: sw-TZ-RehemaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ta-IN-PallaviNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ta-IN-ValluvarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ta-LK-KumarNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ta-LK-SaranyaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ta-MY-KaniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ta-MY-SuryaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ta-SG-AnbuNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ta-SG-VenbaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: te-IN-MohanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: te-IN-ShrutiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: th-TH-NiwatNeural
|
||||
Gender: Male
|
||||
|
||||
Name: th-TH-PremwadeeNeural
|
||||
Gender: Female
|
||||
|
||||
Name: tr-TR-AhmetNeural
|
||||
Gender: Male
|
||||
|
||||
Name: tr-TR-EmelNeural
|
||||
Gender: Female
|
||||
|
||||
Name: uk-UA-OstapNeural
|
||||
Gender: Male
|
||||
|
||||
Name: uk-UA-PolinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ur-IN-GulNeural
|
||||
Gender: Female
|
||||
|
||||
Name: ur-IN-SalmanNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ur-PK-AsadNeural
|
||||
Gender: Male
|
||||
|
||||
Name: ur-PK-UzmaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: uz-UZ-MadinaNeural
|
||||
Gender: Female
|
||||
|
||||
Name: uz-UZ-SardorNeural
|
||||
Gender: Male
|
||||
|
||||
Name: vi-VN-HoaiMyNeural
|
||||
Gender: Female
|
||||
|
||||
Name: vi-VN-NamMinhNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-XiaoxiaoNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-CN-XiaoyiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-CN-YunjianNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-YunxiNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-YunxiaNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-YunyangNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-CN-liaoning-XiaobeiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-CN-shaanxi-XiaoniNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-HK-HiuGaaiNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-HK-HiuMaanNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-HK-WanLungNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zh-TW-HsiaoChenNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-TW-HsiaoYuNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zh-TW-YunJheNeural
|
||||
Gender: Male
|
||||
|
||||
Name: zu-ZA-ThandoNeural
|
||||
Gender: Female
|
||||
|
||||
Name: zu-ZA-ThembaNeural
|
||||
Gender: Male
|
||||
BIN
docs/webui-en.jpg
Normal file
|
After Width: | Height: | Size: 667 KiB |
BIN
docs/webui.jpg
Normal file
|
After Width: | Height: | Size: 654 KiB |