Английский README | Совет для дискуссионной группы Discord |
Простой локальный веб-интерфейс, который использует ChatTTS для синтеза текста в речь на веб-странице, поддерживает китайский, английский и смешанные номера, а также предоставляет интерфейс API.
Исходный проект ChatTTS, начиная с версии 0.96, при развертывании исходного кода необходимо сначала установить ffmpeg. Предыдущие файлы тембра csv и pt больше не доступны. Заполните значения тембра и перегенерируйте его.
[Спонсор]
302.AI — это супермаркет ИИ, объединяющий ведущие мировые бренды, с оплатой по мере использования, нулевой ежемесячной комиссией и нулевым порогом для использования различных типов ИИ.
Комплексные функции, простота и удобство в использовании, нулевой порог оплаты по требованию, разделение менеджеров и пользователей.
Предварительный просмотр интерфейса
Буквенно-цифровой символ, управляющий символ, смешанный эффект
Впервые загрузите модель с сайтаhuggingface.co или github в каталог ресурсов. Если сеть нестабильна, загрузка может завершиться неудачно, загрузите ее отдельно.
После загрузки и распаковки вы увидите папку ресурсов, содержащую несколько файлов pt. Скопируйте все файлы pt в каталог ресурсов, а затем перезапустите программное обеспечение.
Адрес загрузки GitHub: https://github.com/jianchang512/ChatTTS-ui/releases/download/v1.0/all-models.7z
Адрес загрузки сетевого диска Baidu: https://pan.baidu.com/s/1yGDZM9YNN7kW9e7SFo8lLw?pwd=ct5x
Извлечь репозиторий проекта
Клонируйте проект по любому пути, например:
git clone https://github.com/jianchang512/ChatTTS-ui.git chat-tts-ui
Начать бегун
Введите каталог проекта:
cd chat-tts-ui
Запустите контейнер и просмотрите журнал инициализации:
gpu版本
docker compose -f docker-compose.gpu.yaml up -d
cpu版本
docker compose -f docker-compose.cpu.yaml up -d
docker compose logs -f --no-log-prefix
Посетите веб-интерфейс ChatTTS
启动:['0.0.0.0', '9966']
, то есть доступ к IP:9966
, например:
http://127.0.0.1:9966
http://192.168.1.100:9966
Получите последний код из основной ветки:
git checkout main
git pull origin main
Перейдите к следующему шагу и обновите последнее изображение:
docker compose down
gpu版本
docker compose -f docker-compose.gpu.yaml up -d --build
cpu版本
docker compose -f docker-compose.cpu.yaml up -d --build
docker compose logs -f --no-log-prefix
Настройте среду python3.9-3.11 и установите ffmpeg. yum install ffmpeg
или apt-get install ffmpeg
и т. д.
Создайте пустой каталог /data/chattts
и выполните команду cd /data/chattts && git clone https://github.com/jianchang512/chatTTS-ui .
Создайте виртуальную среду python3 -m venv venv
Активировать source ./venv/bin/activate
Установить зависимости pip3 install -r requirements.txt
Если ускорение CUDA не требуется, выполните
pip3 install torch==2.2.0 torchaudio==2.2.0
Если требуется ускорение CUDA, выполните
pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
pip install nvidia-cublas-cu11 nvidia-cudnn-cu11
Вам также необходимо установить CUDA11.8+ ToolKit, найдите способ установки самостоятельно или обратитесь к https://juejin.cn/post/7318704408727519270.
Помимо CUDA, для ускорения также можно использовать графические процессоры AMD, для чего требуется установка версий ROCm и PyTorch_ROCm. Графический процессор AMG использует ROCm в PyTorch «из коробки» без дополнительных модификаций кода.
pip3 install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/rocm6.0
После завершения установки вы можете использовать команду rocm-smi для просмотра графического процессора AMD в системе. Вы также можете использовать следующий код Torch (query_gpu.py) для запроса текущего устройства AMD GPU.
import torch
print(torch.__version__)
if torch.cuda.is_available():
device = torch.device("cuda") # a CUDA device object
print('Using GPU:', torch.cuda.get_device_name(0))
else:
device = torch.device("cpu")
print('Using CPU')
torch.cuda.get_device_properties(0)
Используя приведенный выше код на примере AMD Radeon Pro W7900, запросите устройство следующим образом.
$ python ~/query_gpu.py
2.4.0.dev20240401+rocm6.0
Using GPU: AMD Radeon PRO W7900
Для запуска выполните python3 app.py
, и окно браузера автоматически откроется с адресом по умолчанию http://127.0.0.1:9966
(Примечание: модель по умолчанию загружается из волшебной башни modelscope, и загрузка через прокси не может быть использована. Пожалуйста, отключите прокси)
Настройте среду python3.9-3.11, установите git и выполните команду brew install libsndfile git [email protected]
чтобы продолжить выполнение.
brew install ffmpeg
export PATH="/usr/local/opt/[email protected]/bin:$PATH"
source ~/.bash_profile
source ~/.zshrc
Создайте пустой каталог /data/chattts
и выполните команду cd /data/chattts && git clone https://github.com/jianchang512/chatTTS-ui .
Создайте виртуальную среду python3 -m venv venv
Активировать source ./venv/bin/activate
Установить зависимости pip3 install -r requirements.txt
Установить факел pip3 install torch==2.2.0 torchaudio==2.2.0
Для запуска выполните python3 app.py
, и окно браузера автоматически откроется с адресом по умолчанию http://127.0.0.1:9966
(Примечание: модель по умолчанию загружается из волшебной башни modelscope, и загрузка через прокси не может быть использована. Пожалуйста, отключите прокси)
Загрузите python3.9-3.11, при установке обязательно выберите Add Python to environment variables
.
Загрузите ffmpeg.exe и поместите его в папку ffmpeg в каталоге программного обеспечения.
Загрузите и установите git, https://github.com/git-for-windows/git/releases/download/v2.45.1.windows.1/Git-2.45.1-64-bit.exe.
Создайте пустую папку D:/chattts
и введите ее. Введите cmd
в адресную строку и нажмите Enter. Во всплывающем окне cmd выполните команду git clone https://github.com/jianchang512/chatTTS-ui .
Создайте виртуальную среду и выполните команду python -m venv venv
Чтобы активировать виртуальную среду, выполните .venvscriptsactivate
Чтобы установить зависимости, выполните pip install -r requirements.txt
Если ускорение CUDA не требуется,
Выполнить pip install torch==2.2.0 torchaudio==2.2.0
Если требуется ускорение CUDA, выполните
pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
Вам также необходимо установить CUDA11.8+ ToolKit, найдите способ установки самостоятельно или обратитесь к https://juejin.cn/post/7318704408727519270.
Для запуска выполните python app.py
, и окно браузера автоматически откроется с адресом по умолчанию http://127.0.0.1:9966
(Примечание: модель по умолчанию загружается из волшебной башни modelscope, и загрузка через прокси не может быть использована. Пожалуйста, отключите прокси)
Если объем памяти графического процессора меньше 4 ГБ, процессор будет вынужден использоваться.
В Windows или Linux, если объем видеопамяти превышает 4 ГБ и используется видеокарта NVIDIA, но процессор все еще используется после развертывания исходного кода, вы можете сначала попытаться удалить Torch, а затем переустановить его. Удалить pip uninstall -y torch torchaudio
и переустановите версию torch cuda. pip install torch==2.2.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118
. Должен быть установлен CUDA11.8+.
По умолчанию он определяет, можно ли подключить modelscope. Если возможно, загрузите модель с modelscope, в противном случае загрузите модель с сайтаhuggingface.co.
После версии 0.96 из-за обновления ядра ChatTTS больше невозможно напрямую использовать файл pt, загруженный с этого сайта (https://modelscope.cn/studios/ttwwaaa/ChatTTS_Speaker).
Таким образом, добавив сценарий преобразования Cover-pt.py, пакет интеграции Win может напрямую загрузить файл Cover-pt.exe, поместить его в тот же каталог, что и app.exe, и дважды щелкнуть его, чтобы выполнить.
После выполнения python cover-pt.py
файл, начинающийся с seed_
и заканчивающийся _emb.pt
в каталоге speaker
, то есть имя файла по умолчанию pt после загрузки, будет преобразован в доступный формат кодировки. Преобразованный pt будет. переименован в Ending with _emb-covert.pt
.
пример:
Если этот файл существует в speaker/seed_2155_restored_emb.pt
, он будет преобразован в speaker/seed_2155_restored_emb-cover.pt
, а затем исходный файл pt будет удален, оставив только преобразованный файл.
Адрес по умолчанию — http://127.0.0.1:9966
. Если вы хотите изменить его, вы можете открыть файл .env
в каталоге и изменить WEB_ADDRESS=127.0.0.1:9966
на соответствующий IP-адрес и порт, например WEB_ADDRESS=192.168.0.10:9966
чтобы к нему можно было получить доступ через локальную сеть.
Метод запроса: POST
Адрес запроса: http://127.0.0.1:9966/tts
Параметры запроса:
текст: str| Обязательный текст, который будет синтезирован в речь
голос: Необязательно, по умолчанию 2222, номер, определяющий голос, 2222 | 6653 | 4099 | 5099, вы можете выбрать один из них, либо любой голос будет использоваться случайным образом.
приглашение: str| необязательно, по умолчанию пусто, установите смех и паузу, например [oral_2][laugh_0][break_6]
температура: плавающая | необязательно, по умолчанию 0,3
top_p: float| необязательно, по умолчанию 0,7
top_k: int| необязательно, по умолчанию 20
Skip_refine: int| Необязательно, по умолчанию 0, 1 = пропускать уточненный текст, 0 = не пропускать
custom_voice: int | Необязательно, по умолчанию 0, пользовательское начальное значение при получении значения тембра, требуется целое число больше 0, если установлено, это будет иметь преимущественную силу, voice
будет игнорироваться
Возврат: данные JSON
Успешный возврат: {code:0,msg:ok,audio_files:[dict1,dict2]}
其中 audio_files 是字典数组,每个元素dict为 {filename:wav文件绝对路径,url:可下载的wav网址}
Возврат в случае неудачи:
{code:1,msg:错误原因}
# API调用代码
import requests
res = requests.post('http://127.0.0.1:9966/tts', data={
"text": "若不懂无需填写",
"prompt": "",
"voice": "3333",
"temperature": 0.3,
"top_p": 0.7,
"top_k": 20,
"skip_refine": 0,
"custom_voice": 0
})
print(res.json())
#ok
{code:0, msg:'ok', audio_files:[{filename: E:/python/chattts/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav, url: http://127.0.0.1:9966/static/wavs/20240601-22_12_12-c7456293f7b5e4dfd3ff83bbd884a23e.wav}]}
#error
{code:1, msg:"error"}
Обновите pyVideoTrans до версии 1.82+ https://github.com/jianchang512/pyvideotrans
ChatTTS
в главном интерфейсе.