Novel Feedback v8 Audio-Novel TTS Video
有声小说生成:把交互反馈、Qwen 语音、图像与动态视频合成一个闭环 demo。
v8 接着 v7 的 Planner → Frozen Generator → Simulator / Judge loop,但任务改成有声小说生成。不再区分显式反馈和隐式反馈:用户的 comments, likes, favorites, fast-forward、收藏、暂停、回听等行为统一视为 explicit interaction events,再进入 User Simulator 和 Personalized Planner。
Core change from v7
用户交互事件统一视为 explicit interaction events。
v7 讨论 ambiguous feedback belief update;v8 把它落到音频小说产品形态。评论、点赞、收藏、快进、暂停、回听、继续播放都不是隐藏标签,而是用户在播放器中的可观察显式交互。Planner 读取这些事件,输出 Adaptation Brief:故事节奏、声音风格、图像顺序和视频节奏如何变化。
Evaluation status / honest scope
当前 v8 是可复现实验契约与多媒体 demo:尚未完成真实 UserSim / Planner fine-tune。
training_completed = false:公开页面里的 no-train / train-time 曲线是 synthetic simulator-rubric prototype scores,用来展示指标、数据 schema、test-time scaling contract 和 future training pipeline;它们不是来自已训练/冻结的 Qwen3-4B-UserSim 或 Personalized Planner checkpoint,也不是人类评测结果。已经真实完成的是 500+500 JSON 数据构造、Qwen3-TTS 章节朗读推理、三图 storyboard/SVG fallback、前端播放器与回归测试。下一步才是 run real UserSim/Planner training,保存 checkpoint/loss/rollout log 后再发布真实指标。
Story content upgrade
多章真实小说正文:3 章连续剧情,每章约 2000 字,反馈绑定到章节段落。
v8 现在公开 novel_chapters.json:包含《第一章:雨后城墙的密信》《第二章:旧水门下的灯》《第三章:听钟台的白灯》。每章保留正文、3 个 scene beats 和 feedback_bindings;评论、点赞、收藏、fast_forward 都绑定到具体 chapter_id、paragraph_id 和原文 quote,Planner 的 adaptation_effect 直接说明下一章如何响应用户反馈。
User Simulator 500 JSON records
500 条用户模拟器记录:每条包含 story_context、audio_context、interaction_events、simulated_feedback、hidden_user_state_after、tts_constraints。它模拟用户如何对有声小说进行评论、点赞、收藏、fast-forward、回听和继续播放。
Personalized Planner 500 JSON records
500 条 planner 记录:输入统一交互事件,输出 Adaptation Brief、candidate_budget、test_time_scaling_trace 和 training_target。user simulator 和 personalized planner 都以 JSON 公开。
Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice
主语音模型使用 Qwen3-TTS 0.6B CustomVoice Serena 女声(Apache-2.0、多语言含中文),已下载到 workspace 并生成 chapter_audio.wav。页面也保留 MMS fallback voice sample,方便 tiny smoke testing。
Test-time scaling
不训的范式和训的范式都保留。
核心问题是能否实现真正的 test time scaling:随着 candidate budget 增大,Planner 是否能找到更好的 Adaptation Brief / audio directive / image sequence。
No-Train Test-Time Scaling
不训:冻结 UserSim、RubricJudge、Frozen Generator 和 Qwen TTS,只在测试时扩展候选 Adaptation Brief + chapter plan + voice/image/video directives,用 Simulator / Judge 打分并选择 best-of-B。
Train-Time Personalization
训的范式:这部分目前是设计方案而不是已完成训练。计划用 500 planner JSON 做 Planner SFT;用 candidate preference 做 DPO/GRPO;User Simulator 500 JSON 先 SFT,再冻结用于 Controller/Planner 训练。真实训练后同样支持 B=1..32 的 test-time scaling,并把 checkpoint、loss、rollout seed 和 eval logs 一起发布。延续 v7 命名:Qwen3-4B-UserSim 负责模拟统一交互反馈,Qwen3-4B-Controller / Personalized Planner 负责输出 Adaptation Brief,Frozen Generator 仍保持冻结以隔离 Planner 质量。
Simulator / Judge split
延续 v7 精炼结构:RubricBuilder 生成 checklist;UserSim 模拟 comment/highlight/dwell/skip/tip/continue/rewrite/satisfaction;RubricJudge 比较上一轮和当前生成;FeedbackAggregator 把 structured reward 回给 Personalized Planner。这里的评价不是静态单输出打分,而是前一章、当前交互、下一章、声音、图像和播放器行为共同构成的 transition evaluation。
Multimedia output
每章小说按照文章内容顺序生成 3 个不同的图(3 sequential images per chapter),no text in images;Qwen3-TTS 生成章节语音;demo 页面以 NetEase Cloud Music style audiobook player 呈现,并用 canvas 组合 dynamic video timeline。生产版可以把同一 storyboard 交给 GPT image2、Qwen3-TTS 与 ffmpeg/MediaRecorder,静态页面则提供可复现 SVG fallback。
Data construction detail
500 + 500 JSON 不是随机日志,而是成对训练/评测 contract。
每条 UserSim record 与 Planner record 可以按 user_id/chapter_id 对齐,形成一轮 audio-novel personalization episode。
Interaction event table
事件粒度包含 comment、like、favorite、fast_forward、seek_back、pause、continue 和 bookmark_scene。v8 不再把这些硬拆成显式/隐式两类;对 agent 来说它们都是用户在播放器中主动留下的 explicit interaction events。
User state targets
User Simulator record 中保留 hidden_user_state_before / hidden_user_state_after,用于训练和压力测试:trust、fatigue、pacing_preference、voice_preference、active_expectation 都会随快进、回听、评论和收藏而变化。
Planner target
Planner record 不直接生成小说,而是输出 adaptation_brief:intent_hypotheses、story_directives、audio_directives、image_directives、negative_constraints。它连接 Frozen Generator、Qwen3-TTS、GPT image2 和 Video Composer。
No-train paradigm
不训时,test-time scaling 是候选扩展 + 冻结评分器选择。
不训范式用于回答:没有更新权重,仅靠更大推理预算,能否真的提升下一章有声体验?
Candidate generation
对同一批交互事件采样 B 个候选:不同的节奏解释、线索提前程度、声音停顿策略、图片顺序描述和 negative constraints。B 从 1 到 32。每个候选都生成同样格式的 brief,因此不会因为接口差异破坏公平性。
candidate_b = {
adaptation_brief,
chapter_plan,
audio_directives,
image_prompts[3],
video_timeline,
risk_and_scope
}Frozen scoring
Frozen UserSim + RubricJudge + FeedbackAggregator 对候选评分。Rubric 在看到候选输出之前由 previous_generation、feedback events、next task 和 story state 生成;Judge 再比较前后 generation/audio/image 的 delta,避免 post-hoc 偏置。
selected = argmax_b ScoreAggregator(candidate_b; frozen UserSim, canonical rubric, fixed seed)
Train-time paradigm
训练时,UserSim 和 Planner 都有独立 500 条 JSON 起步样本。
这不是直接训练小说生成器,而是训练反馈解释、适配简报和候选策略;主 Generator 仍可以冻结。
UserSim SFT
输入 user profile、story/audio context 和上一轮 generation;输出统一交互事件、评论、fast-forward、continue、relisten 和 hidden state transition。它学习用户如何在有声小说播放器里表达体验,而不是学习写小说。
Planner SFT
输入 interaction_summary 和 history state;输出 Adaptation Brief。SFT 学会最基本的反馈解释:哪些评论应该改变节奏,哪些快进意味着设定冗余,哪些回听代表声音或线索被喜欢。
Planner DPO/GRPO
对同一交互事件生成多个 candidate brief,使用 frozen Generator + Qwen3-TTS + Simulator/Judge rollout 得分形成 preference pair 或 group reward,只更新 Planner / Controller,不更新 UserSim,不和 UserSim joint co-training。
Qwen voice backend
Qwen3-TTS 作为主语音模型,MMS fallback 作为 tiny smoke。
你允许用 Qwen 语音模型后,v8 已将 Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice 设为主 voice backend。
Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice
Apache-2.0,多语言含中文。工作区本地下载了主模型与 speech tokenizer,并用 qwen-tts 在 A100 上生成中文章节语音 chapter_audio.wav。这个文件作为 demo 播放源,model card 记录 local_snapshot_path、sample_rate、duration 和 SHA-256。
MMS fallback voice sample
为了保证 demo 在轻量环境也能 smoke-test,保留 facebook/mms-tts-nan 生成的 fallback WAV。报告中明确标注:主模型是 Qwen3-TTS CustomVoice Serena 女声,MMS 只是 fallback voice sample,不是最终中文生产语音。
Scaling diagnostics
如何判断是不是真的 test-time scaling,而不是多采样幻觉。
v8 的 test-time scaling 必须同时看分数、成本、选择稳定性和反事实伤害。
Monotonicity
B=1 到 B=32 的 Planner Utility@B 需要整体上升;若只在某个 seed 上升,则标记为 sampling artifact。报告中同时保存每个 budget 的 candidates 与 selected_candidate,方便复盘。
Cost-normalized return
更多候选会增加推理成本、TTS 试音成本和图像 prompt 评审成本。因此主指标不能只看绝对分数,还要看 Utility per candidate 和 latency per chapter。
Anti-probe harm
用户快进并不总是表示“把所有章节都加速”。每个候选必须过 anti-probe:不要把安静悬念、人物停顿、情绪余韵全部删掉。
Voice stability
Qwen3-TTS 的 voice directive 不能每章大幅漂移。Voice-Preference Match 和 voice consistency 同时进入 FeedbackAggregator,避免为了短期刺激牺牲连续听感。
Failure modes
有声小说比纯文本多了三类失败。
这些失败都写进 eval metrics 和 planner trace,不只是视觉 demo。
Audio mismatch
文本已经适配用户,但 TTS 声线、语速或停顿不符合偏好。解决方式是把 voice_preference、pause policy、emotion level 和 narration/dialogue split 放进 Adaptation Brief。
Image leakage
图像模型可能把章节标题、字幕、水印或 UI 元素画进图里。所有 GPT image2 prompts 都显式包含 no text / no captions / no watermark,并在 Scene-Image Alignment 中加入 visual_text_penalty。
Player-level feedback ambiguity
fast_forward 可能因为设定冗余,也可能只是用户赶时间;seek_back 可能表示喜欢声音,也可能表示没听清。Planner 不能把单个行为硬提交为长期偏好,要保留 risk 和 scope。
Experiment table design
最终论文表格按方法、预算、模态拆开。
Baselines
- No personalization:固定章节和固定声音。
- Static profile:只用 cold-start 画像,不读新交互。
- Raw history prompting:把所有播放器事件拼进 prompt。
- No-Train Test-Time Scaling:best-of-B Adaptation Brief。
- Planner SFT:用 500 planner JSON 学适配简报。
- Planner SFT + DPO/GRPO:用 frozen Simulator / Judge rollout 优化。
Reported columns
- Audio Engagement Return、TTS-NCFU、Planner Utility@B。
- Interaction Incorporation Score、Overcommit Rate、Anti-probe Harm。
- Voice-Preference Match、Scene-Image Alignment、Video Completion Rate。
- Latency、candidate cost、Qwen TTS generation seconds、image prompt cost。
Formula boxes
音频小说版指标定义
TTS-NCFU = E[J_audio(G(S_t ⊕ ΔS_model), q) - J_audio(G(S_t), q)] / (E[J_audio(G(S_t ⊕ ΔS_oracle), q) - J_audio(G(S_t), q)] + epsilon)
Planner Utility@B = E[max_{c in Candidates(B)} ScoreAggregator(c; UserSim, RubricJudge)]AER = 0.30*completion + 0.20*like + 0.15*favorite + 0.15*relisten + 0.10*comment_fit - 0.20*fast_forward - 0.10*voice_mismatch
Interaction Incorporation Score = F1(adaptation_atoms_pred, interaction_gold_atoms) - lambda * overcommit_atoms
Reproducibility and deployment
所有展示层都能从同一个 artifact contract 重建。
v8 不把音频、图像、视频和数据拆成互不相干的 demo 文件,而是用 manifest 串起来。
Single manifest
v8_manifest.json 记录 suite id、反馈策略、500+500 数据规模、Qwen3-TTS model id、每章三图、多媒体文件和页面入口。任何训练脚本、前端播放器或论文表格都先读 manifest。
Storyboard first
video_storyboard.json 是 video contract:章节音频、三张图、每段 start/end 秒数、motion cue 和 no_text 约束都写清楚。GPT image2 或 SVG fallback 只是不同渲染后端。
Public-safe assets
公开站点只放 compact JSON、demo WAV、SVG fallback 和说明页面;Qwen 模型权重保留在 workspace-local model snapshot,不复制进 public,也不在页面中泄露任何 Hugging Face token。
Artifacts