mirror of
https://github.com/linyqh/NarratoAI.git
synced 2026-08-01 19:05:52 +00:00
在 #270 配乐模式基础上新增可选的 "AI 音效(Sonilo)":将合并后的成片 上传到 Sonilo API(POST /v1/video-to-sfx,异步任务管线),根据画面内容 生成音效,再用 ffmpeg 混在成片现有音轨之下(视频流直接复制,不重编码 画面)。解说配音在后续合成步骤中单独混入,音量策略不受影响。生成的 音效为免版税素材。 - 复用 #270 的 sonilo_api_key 配置与 app/services/sonilo.py 模块, 新增音效任务管线(提交 / 轮询 / 预签名 URL 下载) - 上传前 ffprobe 本地校验时长(音效接口上限 3 分钟),避免白传计费 - 轮询是免费幂等 GET:网络抖动与 5xx 在截止时间内重试,不报废已计费任务 - 任何失败(超时、HTTP 错误、任务失败、混音失败)只记录日志并沿用 原视频,绝不中断成片任务 - WebUI 音频设置新增独立开关面板(默认关闭),选项处提示视频将上传至 Sonilo API - 现有 BGM / 合成逻辑不做任何改动,未勾选时行为与 main 完全一致
62 lines
1.3 KiB
Plaintext
62 lines
1.3 KiB
Plaintext
.DS_Store
|
|
/config.toml
|
|
/storage/
|
|
.venv/
|
|
venv/
|
|
/.idea/
|
|
/app/services/__pycache__
|
|
/app/__pycache__/
|
|
/app/config/__pycache__/
|
|
/app/models/__pycache__/
|
|
/app/utils/__pycache__/
|
|
/*/__pycache__/*
|
|
.vscode
|
|
/**/.streamlit
|
|
__pycache__
|
|
logs/
|
|
|
|
node_modules
|
|
# VuePress 默认临时文件目录
|
|
/sites/docs/.vuepress/.temp
|
|
# VuePress 默认缓存目录
|
|
/sites/docs/.vuepress/.cache
|
|
# VuePress 默认构建生成的静态文件目录
|
|
/sites/docs/.vuepress/dist
|
|
# 模型目录
|
|
/models/
|
|
./models/*
|
|
resource/scripts/*.json
|
|
resource/videos/*.mp4
|
|
resource/songs/*.mp3
|
|
resource/songs/*.flac
|
|
resource/fonts/*.ttc
|
|
resource/fonts/*.ttf
|
|
resource/fonts/*.otf
|
|
resource/srt/*.srt
|
|
app/models/faster-whisper-large-v2/*
|
|
app/models/faster-whisper-large-v3/*
|
|
app/models/bert/*
|
|
|
|
bug清单.md
|
|
task.md
|
|
.claude/*
|
|
.serena/*
|
|
.worktrees/
|
|
|
|
# OpenSpec: 忽略活动的变更提案,但保留归档和规范
|
|
openspec/*
|
|
AGENTS.md
|
|
CLAUDE.md
|
|
tests/*
|
|
!tests/test_documentary_frame_analysis_service.py
|
|
!tests/test_video_processor_documentary_unittest.py
|
|
!tests/test_script_service_documentary_unittest.py
|
|
!tests/test_generate_narration_script_documentary_unittest.py
|
|
!tests/test_generate_script_docu_unittest.py
|
|
!tests/test_streamlit_widget_session_state.py
|
|
!tests/test_sonilo_bgm_unittest.py
|
|
!tests/test_sonilo_sfx_unittest.py
|
|
|
|
docs/reddit-community
|
|
docs/wechat-0.8
|