subtitle-studio: 字幕生成系统
- 选择文件夹/单文件 → SenseVoice 转录 → LLM 修正 → 多路线翻译 → 双语 SRT - 路线:直译中文 / 英转中 / 仅转录 - 并发流水线:转录(可调) + LLM 并发(可调),降噪拆锁并发 - 断点续跑:.subtitle-work/ 中间产物,三阶段独立续跑 + 翻译段级续跑 - 去重:history 跟随视频文件夹,防重复任务保护 - 实时进度:SSE 推送 + 耗时显示 + 子任务状态 + 重新生成按钮 - 时间戳调优:VAD silence_schedule + noisereduce 降噪 + 完整性校验
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user