GhostRunner
开源、本地优先的AI音频戏剧引擎,将跑步/步行路线与LLM生成的惊悚剧情结合,通过GPS触发预编译的音频节拍,在地标处播放对应剧情内容
时间轴 (近 90 天)
GhostRunner 是一款开源、本地优先的音频戏剧引擎,可将真实街道转化为惊悚广播剧舞台。
GhostRunner 的每个剧情节拍都锚定在路线上的具体距离(链age,单位为米),触发器基于距离而非时间。
GhostRunner 的叙述者只能提及路线上真实存在于 OpenStreetMap 中的地标,校验器会拒绝任何凭空捏造的地标。
GhostRunner 的剧情在执行前已编译并配音完毕,播放台词是查找而非实时推理。
GhostRunner 能在仅 4 GB 显存的笔记本 GPU 上运行。
GhostRunner 使用 Overpass API 按路线走廊查询 OpenStreetMap 中的 POI,作为 LLM 叙述素材。
GhostRunner 使用两个 LangGraph 图:compile_graph 承担重活(路线规划、POI 抓取、导演 LLM、节拍写手、校验器和 TTS 渲染),runtime_graph 是毫秒级确定性节点(GPS 读取、配速分类、触发检查等)。
在 GhostRunner 中,所有编排决策由纯 Python 完成,LLM 只负责导演(一次结构化调用)和节拍写手(每节拍最多 30 词的三个变体)。
GhostRunner 使用 TabPFN 将跑者分类为 CRUISING、ACCELERATING、EXHAUSTED 或 STOPPED,并用 3-tick 滞回过滤器避免剧情来回横跳。
GhostRunner 的 TabPFN 训练标签来自对模拟跑步轨迹的透明启发式规则,没有标注数据集;若加载失败,规则分类器自动接管。
还有 5 条时间轴事件
全部知识事实 (15)
GhostRunner 是一款开源、本地优先的音频戏剧引擎,可将真实街道转化为惊悚广播剧舞台。
50%待验证GhostRunner 的每个剧情节拍都锚定在路线上的具体距离(链age,单位为米),触发器基于距离而非时间。
50%待验证GhostRunner 的叙述者只能提及路线上真实存在于 OpenStreetMap 中的地标,校验器会拒绝任何凭空捏造的地标。
50%待验证GhostRunner 的剧情在执行前已编译并配音完毕,播放台词是查找而非实时推理。
50%待验证GhostRunner 能在仅 4 GB 显存的笔记本 GPU 上运行。
50%待验证GhostRunner 使用 Overpass API 按路线走廊查询 OpenStreetMap 中的 POI,作为 LLM 叙述素材。
50%待验证GhostRunner 使用两个 LangGraph 图:compile_graph 承担重活(路线规划、POI 抓取、导演 LLM、节拍写手、校验器和 TTS 渲染),runtime_graph 是毫秒级确定性节点(GPS 读取、配速分类、触发检查等)。
50%待验证在 GhostRunner 中,所有编排决策由纯 Python 完成,LLM 只负责导演(一次结构化调用)和节拍写手(每节拍最多 30 词的三个变体)。
50%待验证GhostRunner 使用 TabPFN 将跑者分类为 CRUISING、ACCELERATING、EXHAUSTED 或 STOPPED,并用 3-tick 滞回过滤器避免剧情来回横跳。
50%待验证GhostRunner 的 TabPFN 训练标签来自对模拟跑步轨迹的透明启发式规则,没有标注数据集;若加载失败,规则分类器自动接管。
50%待验证GhostRunner 使用 ElevenLabs 为每句台词配音,通过未来三个触发器的滚动窗口提前渲染,音频片段按 sha256(voice + text) 内容寻址,重复台词零成本。
50%待验证GhostRunner 的声音成本是唯一按量计费成本,约 25 节拍 × 3 变体 × 约 150 字符,一个完整包约 1.1 万字符,按路线而非按听众计算。
50%待验证GhostRunner 中,实时 GPS 轨迹从不离开运行应用的机器,会话结束后原始轨迹删除。
50%待验证GhostRunner 的已保存任务可在 LLM、路由器和 TTS 全部关闭时回放。
50%待验证GhostRunner 的销售单位是任务包:一条路线、一个编译好的故事和配音音频,制作一次可无限次回放;截至目前尚未运行付费试点或验证定价。
50%