- 选择文件夹/单文件 → SenseVoice 转录 → LLM 修正 → 多路线翻译 → 双语 SRT - 路线:直译中文 / 英转中 / 仅转录 - 并发流水线:转录(可调) + LLM 并发(可调),降噪拆锁并发 - 断点续跑:.subtitle-work/ 中间产物,三阶段独立续跑 + 翻译段级续跑 - 去重:history 跟随视频文件夹,防重复任务保护 - 实时进度:SSE 推送 + 耗时显示 + 子任务状态 + 重新生成按钮 - 时间戳调优:VAD silence_schedule + noisereduce 降噪 + 完整性校验
57 lines
1.4 KiB
Batchfile
57 lines
1.4 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
title subtitle-studio 启动器
|
|
setlocal
|
|
|
|
REM ===== subtitle-studio 后台启动(无窗口)=====
|
|
set SCRIPT_DIR=%~dp0
|
|
set PROJECT_ROOT=%SCRIPT_DIR%..
|
|
set APP_DIR=%PROJECT_ROOT%\src
|
|
set PYTHON=D:\ProgramData\anaconda3\envs\py312_cuda\python.exe
|
|
set PORT=8788
|
|
set LOG_DIR=%PROJECT_ROOT%\logs
|
|
|
|
if not exist "%PYTHON%" (
|
|
echo [错误] 找不到 Python 环境: %PYTHON%
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
netstat -ano | findstr ":%PORT%" | findstr "LISTENING" >nul 2>&1
|
|
if %errorlevel%==0 (
|
|
echo subtitle-studio 已在运行: http://127.0.0.1:%PORT%
|
|
start http://127.0.0.1:%PORT%
|
|
exit /b 0
|
|
)
|
|
|
|
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
|
|
|
|
REM 后台启动:用 cmd /c 包装重定向,start 本身不阻塞
|
|
cd /d "%PROJECT_ROOT%"
|
|
start "subtitle-studio-server" /min cmd /c ""%PYTHON%" -m uvicorn substudio.main:app --host 127.0.0.1 --port %PORT% --app-dir "%APP_DIR%" >"%LOG_DIR%\server.log" 2>&1"
|
|
|
|
REM 等待端口就绪
|
|
set /a tries=0
|
|
:waitloop
|
|
set /a tries+=1
|
|
if %tries% GTR 20 goto timeout
|
|
netstat -ano | findstr ":%PORT%" | findstr "LISTENING" >nul 2>&1
|
|
if %errorlevel%==0 goto ready
|
|
timeout /t 1 /nobreak >nul
|
|
goto waitloop
|
|
|
|
:ready
|
|
echo.
|
|
echo ✅ subtitle-studio 已启动
|
|
echo http://127.0.0.1:%PORT%
|
|
echo 日志: %LOG_DIR%\server.log
|
|
echo.
|
|
start http://127.0.0.1:%PORT%
|
|
exit /b 0
|
|
|
|
:timeout
|
|
echo.
|
|
echo ⚠️ 启动超时,请查看日志: %LOG_DIR%\server.log
|
|
pause
|
|
exit /b 1
|