auto-save 2026-05-14 11:36 (~3)

This commit is contained in:
2026-05-14 11:36:32 +08:00
parent 6f7299432d
commit 2de32523be
3 changed files with 21 additions and 20 deletions

View File

@@ -1,19 +1,5 @@
{
"entries": [
{
"files_changed": 1,
"hash": "029b895",
"message": "auto-save 2026-05-13 03:30 (~1)",
"ts": "2026-05-13T03:30:47+08:00",
"type": "commit"
},
{
"files_changed": 1,
"hash": "fc9b90c",
"message": "auto-save 2026-05-13 03:36 (~1)",
"ts": "2026-05-13T03:36:41+08:00",
"type": "commit"
},
{
"files_changed": 1,
"hash": "7158468",
@@ -3301,6 +3287,19 @@
"type": "session-heartbeat",
"message": "Codex 会话活跃 · 最近命令codex · 1 项未提交变更 · 最近提交auto-save 2026-05-14 11:21 (~7)",
"files_changed": 1
},
{
"ts": "2026-05-14T11:30:57+08:00",
"type": "commit",
"message": "auto-save 2026-05-14 11:30 (~1)",
"hash": "6f72994",
"files_changed": 1
},
{
"ts": "2026-05-14T03:36:10Z",
"type": "session-heartbeat",
"message": "Codex 会话活跃 · 最近命令codex · 3 项未提交变更 · 最近提交auto-save 2026-05-14 11:30 (~1)",
"files_changed": 3
}
]
}

View File

@@ -1104,10 +1104,11 @@ def _score_transparent_human_frame(img_path: Path) -> TransparentHumanFrameScore
max_tokens=1200,
)
raw = (resp.choices[0].message.content or "").strip()
if raw.startswith("```"):
import re as _re
match = _re.search(r"\{[\s\S]*\}", raw)
raw = match.group(0) if match else raw
if not raw:
raw = (getattr(resp.choices[0].message, "reasoning_content", "") or "").strip()
import re as _re
match = _re.search(r"\{[\s\S]*\}", raw)
raw = match.group(0) if match else raw
data = json.loads(raw)
except Exception as e:
return TransparentHumanFrameScore(qualified=False, reject_reason=f"AI 评分失败:{e}")
@@ -1611,7 +1612,8 @@ def _build_audio_script_sync(job_id: str, segments: list[TranscriptSegment]) ->
voice_url = _minimax_tts_sync(job_id, rewritten)
except Exception as e:
voice_error = str(e)
errors = "".join(x for x in [rewrite_error, voice_error] if x)
# 改写失败时已有本地 SKG 模板兜底,不把它标成用户可见错误;配音失败才需要提示。
errors = voice_error
return AudioScript(
status="completed",
source_text=source_text,

View File

@@ -950,7 +950,7 @@ SubjectAsset {
</header>
<div class="body">
<p><strong>问题:</strong>等待抽帧完成后自动启动音频,不符合“先把声音文案拿出来审核”的工作流;用户需要在音频卡片上直接触发。</p>
<p><strong>改动:</strong>移除前端抽帧完成后的自动转写逻辑;<code>AudioNode</code> 保留并固定显示“提取音频 / 重新提取音频”按钮。后端 <code>/transcribe</code> 不再要求 <code>frames_extracted</code>,视频就绪后可直接从 <code>source.mp4</code> 拆出 <code>audio.wav</code>,并继续 ASR、翻译、SKG 改写和 MiniMax 配音;抽帧中触发时不抢主状态,而是用 <code>audio_script.status</code> 表示音频处理中。当当前网关的 <code>whisper-1</code> audio endpoint 返回 404 时,会 fallback 到 Gemini 多模态音频识别。</p>
<p><strong>改动:</strong>移除前端抽帧完成后的自动转写逻辑;<code>AudioNode</code> 保留并固定显示“提取音频 / 重新提取音频”按钮。后端 <code>/transcribe</code> 不再要求 <code>frames_extracted</code>,视频就绪后可直接从 <code>source.mp4</code> 拆出 <code>audio.wav</code>,并继续 ASR、翻译、SKG 改写和 MiniMax 配音;抽帧中触发时不抢主状态,而是用 <code>audio_script.status</code> 表示音频处理中。当当前网关的 <code>whisper-1</code> audio endpoint 返回 404 时,会 fallback 到 Gemini 多模态音频识别;改写模型解析失败时使用本地 SKG 口播模板兜底,不再把可用文案标成前端错误</p>
<p><strong>影响:</strong><code>web/app/page.tsx</code><code>web/components/nodes/index.tsx</code><code>api/main.py</code><code>docs/source-analysis.html</code></p>
</div>
</article>