TTS работает тольно на CPU. Как запустить на GPU?
Сразу скажу, я во всем этом ноль полный, разбираюсь при помощи нейронок. RUAccent поставил, настроил, работает на ура на GPU. А вот с Misha24-10/F5-TTS_RUSSIAN проблемы, нейронка водит кругами и ничерта не может помочь. :( Во время записи грузит цп на 15%, а гпу на 0.3%. Книга на 800к знаков (с ударениями), 2225 батчей, скорость ~3s\it. Нейронка предположила, что из-за большого количества батчей гпу не используется и предложила увеличить количество символов на батч. Но реализовать это у нее уже мозгов не хватило.
Cостояние компонентов:
Видеокарта - 5070ti 16gb, NVIDIA-SMI 580.97, Driver Version: 580.97, CUDA Version: 13.0
Версии CUDA Toolkit и NVCC
D:\Neuro\CUDA\v13.0\bin
D:\Neuro\CUDA\v13.0\lib\x64
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jul_16_20:06:48_Pacific_Daylight_Time_2025
Cuda compilation tools, release 13.0, V13.0.48
Build cuda_13.0.r13.0/compiler.36260728_0
Информация из PyTorch: версии, CUDA, cuDNN, устройства
python: 3.10.11 (tags/v3.10.11:7d4cc5a, Apr 5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
torch: 2.8.0+cu129
cuda available: True
cuda compiled: 12.9
cudnn: 91002
device count: 1
[0] NVIDIA GeForce RTX 5070 Ti
Версии torchaudio и torchvision
torchaudio: 2.8.0+cu129
torchvision: 0.24.0.dev20250812+cu129
Быстрый бенчмарк CPU vs GPU (матрица 6000×6000)
cpu matmul sec= 1.153
gpu matmul sec= 0.098 device=cuda
Сводка версий через pip
ema-pytorch 0.7.7
f5-tts 1.1.7
ruaccent 1.5.8.3
soundfile 0.13.1
torch 2.8.0+cu129
torchaudio 2.8.0+cu129
torchdiffeq 0.2.5
torchvision 0.24.0.dev20250812+cu129
Батник для запуска использую следущий:
@echo
off
setlocal EnableExtensions EnableDelayedExpansion
chcp 65001 >nul
REM Drag & drop проверка
if "%~1"=="" (
echo Перетащите .txt файл на этот батник в Проводнике.
pause
exit /b 1
)
REM Входной файл
set "TXT_FILE=%~1"
if not exist "%TXT_FILE%" (
echo Файл не найден: %TXT_FILE%
pause
exit /b 1
)
REM Выход: D:\Neuro\Out<имя_без_расширения>\out.wav
set "BASE_NAME=%~n1"
set "OUT_DIR=D:\Neuro\Out%BASE_NAME%"
set "OUT_WAV=%OUT_DIR%\out.wav"
if not exist "%OUT_DIR%" mkdir "%OUT_DIR%" 2>nul
REM Модель и словарь
set "CKPT=D:\Neuro\models\F5-TTS_RUSSIAN\F5TTS_v1_Base_v2\model_last_inference.safetensors"
set "VOCAB=D:\Neuro\models\F5-TTS_RUSSIAN\F5TTS_v1_Base\vocab.txt"
if not exist "%CKPT%" (
echo Не найден файл весов модели: %CKPT%
pause
exit /b 1
)
if not exist "%VOCAB%" (
echo Не найден словарь: %VOCAB%
pause
exit /b 1
)
REM Референс (обязательно)
set "REF_AUDIO=D:\Neuro\ref\voice.wav"
set "REF_TEXT=Да, сперва разница и в один процент была существенной, но что-то явно изменилось, раз боль стала терпимее что ли."
if not exist "%REF_AUDIO%" (
echo Не найден референсный аудиофайл: %REF_AUDIO%
pause
exit /b 1
)
REM Временная папка и файл для передачи текста через --gen_file (устойчиво к ОГРОМНЫМ текстам)
set "TMP_DIR=%TEMP%\f5tts_%RANDOM%"
mkdir "%TMP_DIR%" 2>nul
set "GEN_FILE=%TMP_DIR%\input.txt"
REM Скопировать входной текст в UTF-8 для надёжности
REM Если исходный .txt уже UTF-8 — просто копируем содержимое через PowerShell, сохранив UTF-8
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$content = Get-Content -Raw -Encoding UTF8 '%TXT_FILE%';" ^
"[System.IO.File]::WriteAllText('%GEN_FILE%', $content, [System.Text.Encoding]::UTF8)"
if not exist "%GEN_FILE%" (
echo Не удалось подготовить временный файл текста: %GEN_FILE%
pause
exit /b 1
)
REM Запуск инференса через --gen_file (НИКАКОГО длинного текста в командной строке)
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"& 'D:\Neuro\venv\tts\Scripts\Activate.ps1';" ^
"& 'D:\Neuro\venv\tts\Scripts\f5-tts_infer-cli.exe' --ckpt_file '%CKPT%' --vocab_file '%VOCAB%' --ref_audio '%REF_AUDIO%' --ref_text '%REF_TEXT%' --gen_file '%GEN_FILE%' --output_file '%OUT_WAV%' --device cuda --nfe_step 56 --cfg_strength 3.0 --sway_sampling_coef 0.0 --speed 1.0;" ^
"if (Test-Path '%OUT_WAV%') { Write-Host 'Готово: %OUT_WAV%' } else { Write-Host 'Ошибка: файл не создан' }"
REM Уборка временных файлов
rmdir /s /q "%TMP_DIR%" 2>nul
echo.
echo Завершено.
pause
Install pytorch with your CUDA version, e.g.
pip install torch==2.4.0+cu124 torchaudio==2.4.0+cu124 --extra-index-url https://download.pytorch.org/whl/cu124
в офф репе f5 tts, указана эта версия торча и куды, а так же у тебя куда D:\Neuro\CUDA\v13.0\bin, версии 13, а торч torch: 2.8.0+cu129 для версии 12.9, в целом это бросается в глаза, вроде как если у тебя куда версии 12, то и torch: 2.8.0+cu129, включая торчаудио, должны быть соотвествующие, попробуй 12 куду поставить.
Install pytorch with your CUDA version, e.g.
pip install torch==2.4.0+cu124 torchaudio==2.4.0+cu124 --extra-index-url https://download.pytorch.org/whl/cu124
в офф репе f5 tts, указана эта версия торча и куды, а так же у тебя куда D:\Neuro\CUDA\v13.0\bin, версии 13, а торч torch: 2.8.0+cu129 для версии 12.9, в целом это бросается в глаза, вроде как если у тебя куда версии 12, то и torch: 2.8.0+cu129, включая торчаудио, должны быть соотвествующие, попробуй 12 куду поставить.
Не, ничего не получается. И даже по вот этому гайду https://sneekes.app/posts/f5-tts-installation-guide-for-rtx-5070-on-wsl2/#prerequisites
Тупо не хочет гпу грузить.
Кстати, pinokio тоже ставил, через него установил f5-tts - и там тоже не хочет через гпу работать. Я уже хрен знает в чем проблема, в 50 серии, в драйверах этой конченной нвидии или конкретно в моей видяхе. Столько времени впустую убито... >_<
Привет, попробуй установить через Windows Subsystem for Linux (WSL). Если не получится, то можешь открыть issues https://github.com/SWivid/F5-TTS/issues