Show HN:tale.fyi——我们值得拥有一个属于虚构文学的家
文章摘要
tale.fyi 是 Samuel Cole 用两周时间做出来的一个网页阅读平台,主张很直接:互联网是围绕非虚构建起来的,我们值得拥有一个属于虚构文学的家。
作者在发布文里解释了这个执念的来源:他在大学里把时间劈成两半给计算机科学和文学,当时没多少人理解这种组合;但在计算机已经能够读写英文散文的今天,他认为这个组合前所未有地重要。他的论点是——虚构是我们钻进彼此脑袋里、共情他人如何生活/思考/感受的方式;我们今天读写的量前所未有,但几乎全是非虚构。
产品形态上,tale.fyi 把三个公共领域的资源缝合在了一起:Project Gutenberg 的数字化文本、Standard Ebooks 的校对与排版、以及 LibriVox 志愿者朗读的有声书。核心体验是从一个链接就能读完或听完一整本书:干净的排版、进度保存(存在设备本地,登录后可跨设备同步)、以及在阅读与收听之间的无缝切换。点击任意段落可以创建一个标记(mark)并复制到剪贴板,这套段落锚点同时被用于深度链接和进度追踪。作者推荐从 tale.fyi/dracula 或 tale.fyi/a-christmas-carol 开始体验。
技术上最亮眼的部分是音文对齐。 作者在评论区详细讲了这段:他最初用的是专为此设计的 aeneas,但它在章节深处会漂移数百秒,而且不输出任何置信度信号,导致他没法干净地做评估。于是他换成了基于 CTC 训练的神经声学模型——Meta 的 Massively Multilingual Speech 对齐器(随 torchaudio 一起发布)。它为音频每一帧的每个字符输出一个概率,再用维特比解码找出恰好拼出目标文本的最可能路径,并给出逐词概率。这个概率就是闸门:一本书只有在中位置信度和覆盖率都过线时才会开放”边读边听”,《白鲸》一开始没过线(后来发现是内存溢出的 bug,修好后成功上线)。他说自己”这几天一直在把 MacBook 的 GPU 烤糊”来跑这个对齐,并把这套技术写成了一篇完整的 tale(《把 800 本有声书、8000 小时对齐到……》)。他也开放了 tale.fyi/tell 让用户发表自己的故事,并强调”你在这里创造的一切都归你所有,包括你的受众”。整站还是一个做了离线支持的 PWA。
HN 评论精华
74 分、72 条评论。作者 samuelcole 全程高强度在线,很多 bug 是在帖子进行中当场修掉并回帖”shipped!”的。讨论大致分成三块:对”互联网没有虚构”这个前提的集体反驳、对齐技术的赞叹、以及一长串产品反馈。
“互联网从来就是围着虚构建的”——最响亮的反驳
- arkh 直接开怼:”我猜你没在同一片互联网水域里游泳。”并甩出 royalroad.com、archiveofourown.org 和 topwebfiction.com 这类老牌链环。
- FeepingCreature 接力:fanfiction.net、SpaceBattles 论坛、Sufficient Velocity、questden.org,”当然还有更早的 Usenet——互联网一直都是围着虚构建的。”vunderba 补充 Wattpad 也已经存在近 20 年。storywatch 提醒还漏了 Questionable Questing,FeepingCreature 回了句妙的:”我是不想链色情同人站啦,我也没链 asstr。”——他的顾虑是”该不该把毫无防备的人引到一个 SFW 区可以形容为’退化器官’甚至’装饰性’的站点”。
- 作者的回应很坦率:”我知道,我这里有点情绪化。我主要是在反应人们默认刷的东西是 Reddit、Facebook、Instagram,咳,还有 HN——这些全是非虚构。我想做一个在超市排队时也能轻松刷、但刷的是虚构的东西。”
- d4mi3n 指出了论证的裂缝所在:Reddit 这类地方不是铁板一块,把一个巨大的用户投稿写作集合说成”完全是非虚构”是不准确的,它忽略了多年积累的短篇、连载、同人、角色扮演和各种创意虚构写作,”我敢说这类作品的主体就存在于 Reddit 伞下,至少也是交叉发布在那里的”。paxys 反向补刀:”还有 LinkedIn、Reddit、大部分 Substack,以及 HN 的很大一部分。”(意指这些地方的”非虚构”其实也是虚构。)pasc1878 也说那些平台上很多内容就是虚构,有些还是故意的。
关于标题措辞
- xyzelement 提了一条被作者称赞的”营销小贴士”:凡是以”你/我们值得”(you/we deserve)开头的东西通常都是扯淡——因为这个”你/我们”根本没做什么配得上它的事。他认为作者真正想说的是”伟大的虚构值得一个家”,这凸显的是对材料本身的敬意(reverence),而不是诉诸一种理所应得的心态。他读了页面后觉得”敬意”确实就是作者的立场,”这立场很棒,别把它卖便宜了”。作者回:”记下来了,下次说:伟大的虚构配得上什么,我们未必配。”
对齐技术
- khanhnguyen8386 给出了全帖最漂亮的一句总结:”在 LibriVox 录音上用 CTC 强制对齐来同步文本和音频,是对算力的绝妙使用。开放网络的 Whispersync——爱了!“作者说他非常感激这个描述,”‘开放网络的 Whispersync’是个绝佳的说法,我可能要拿来用了 ;-)”,并据此把技术过程写成了一篇长文。
- p-e-w 追问”《白鲸》没对齐成功”是什么意思,才引出了上面那段 aeneas → MMS CTC 对齐器的完整技术说明。他猜是不是因为《白鲸》臭名昭著的巨大词汇量、里面很多词在别处根本不用——作者回说其实是内存溢出的 bug,修好后成功了,”只是在某些比较那个的段落上有点困惑 ;-)”。
- deviation 问是否支持其他语言比如法语。作者答:对齐器本身已经支持法语(底层就是 Meta 的多语种语音模型),今天就能跑通,只是他从只有英语的 Standard Ebooks 起步;Gutenberg 和 LibriVox 都有法语书库,所以这完全可以是下一步。
“我真正想要的其实是别的东西”——一条意外热闹的支线
- mplanchard 说了句题外话,结果引爆了整个分支:”我想要的其实是一个书籍版的 Letterboxd,带轻量社交、能重复记录同一本书读了几遍、界面漂亮。我从这个帖子标题里读出了这个期待,可惜不是。”
- 于是评论区变成了推荐大会:pickleglitch 和 UtopiaPunk 推荐 bookwyrm.social(走 ActivityPub,能和 Mastodon 互通,但”经常卡顿、UX 不算最好,但能用”);nor0x 推荐 literal.club;crtasm、ravenical 和 bwb 推荐 hardcover.app(bwb 确认支持多次阅读记录);piltdownman 推荐 CLZ Books,说这是他为 1000 多本 1970 年后的书做编目时找到的最好方案;bwb 还在做自己的 bookdna.com;storywatch 推自己的 storywatch.org,说想重建老派的网络小说链环;flutteringfool 说 Goodreads 社交属性太重,自己现在只维护一个笔记列表。mplanchard 最后说:”不逐条回复了,但太庆幸我发了这条!好多没听过的推荐可以去看。”
- 作者本人也参与了:”你觉得这里还有空间吗?我也很想做这个,但已经有 Goodreads、Fable、StoryGraph、Bookly 了。”
产品反馈(大量被当场修复)
- mkl 给了最不客气的第一印象:”打开一本书就自动播放吵闹的音频,太糟糕了,请别这么做。”他还说”人类拜版权法所赐有巨量虚构语料”这个措辞很奇怪——”把功劳先记给版权法?”另外他在 Firefox Android 上找不到登录入口。作者当场加了登录链接。
- BreakMaker9000 说听了一段《德古拉》没想到会这么入迷,但移动端有三个问题:滚动会中断音频且只能从段落开头恢复、段落超过屏幕高度时不会自动滚动、没法点进某个段落/句子继续读。
- wrsh07 希望有明确的”在此设置书签”按钮,能把进度高水位线手动往回拨。作者当场做了”read from here”功能并回帖。
- tim-projects 和 nehasips 都提出同一个诉求:希望音频朗读时高亮当前的词或行,否则眼睛和耳朵之间有断裂感。作者的回答很有意思:逐词对齐数据他早就存了,只是他觉得词一个个亮起来太分散注意力;他做了一个更含蓄的方案——左侧有一条细线大致追踪你在段落里的位置,还藏了个彩蛋:长按播放键,指示器会长大到高亮文本行。他表示未来可能把逐词高亮做成选项。nehasips 还评价 LibriVox 版《德古拉》的朗读”有点单调”。
- JunoNgx 贡献了两条高质量的 PWA bug 报告:一是装成 PWA 后在 Pixel 上无视系统设置强制自动旋转——作者查出是 manifest 里的
orientation: 'any'本意是”别锁定手机”,但 Android 的处理完全相反,已移除;二是主题色问题,指出作者只监听了prefers-color-scheme,用户手动切换深浅色时系统状态栏和应用 UI 会不一致,正确做法是监听应用主题状态变化后查询meta[name='theme-color']并手动设置其 content 属性,manifest 和 head 里声明的更像是兜底。作者两条都修了。他俩还就 PWA 惺惺相惜:作者说”我爱 PWA,所以加了离线支持这种好玩的东西,但不确定会不会有人发现”,JunoNgx 回”我把工作之外的整个编程生涯都献给 PWA 了,看到你连安装提示的截图都配好了我笑出声——谢谢你也在这场十字军东征里”。 - yreg 对无密码登录很不满:”为什么?密码有什么可怕的?配合密码管理器好用得很。我讨厌这种像新冠一样蔓延的强制邮箱登录。”作者给了四条理由:所有人都用同一串字符;不用同一串就会忘记哪个密码对哪个站;用同一串就会被猜中然后觉得自己”被黑了”;以及”用魔法词证明身份这事本身到底算怎么回事?”他认为你的电脑本来就该知道你是谁,然后把这个身份传给网站,Passkey 接近这个理想(他还没实现)。yreg 反驳说这些问题密码管理器都解决了,而且 Passkey 也不算好方案,因为它本该是按设备的——那多设备用户和借用别人设备登录怎么办?”为什么不同时提供密码和魔法链接?”ang_cire 则说自己的新项目走了完全相反的路:IRC 风格的昵称加密码,不要邮箱,”我更喜欢不把一切都和一个关于我自己的唯一标识符绑在一起”。
- osamabinladen 说没有浅色模式他没法用。作者答它跟随浏览器/设备偏好,但认可手动覆盖是有用的设置——随后回帖”shipped!在顶部 tale.fyi 标题旁边找太阳/月亮图标”。janrakete 要字号调节(目前只能靠浏览器缩放)。
- ragtagtag 问有没有源码仓库。作者说暂时没有,还在想拿这个项目怎么办,”但说实话最令人兴奋的是那个对齐器,我可能会把它抽出来做成开源项目……这是个好主意”。
最有意思的一场对话:作者 vs. 一位真正的小说家
- gabriel666smith(作者认出他是小说《brat》的作者)给了长篇反馈和三条构想:(1) 加全局的段落高亮和评论、可投票,类似 Rap Genius,再想办法让 LLM 抓取现有评论文章做超链接;(2) 让用户能从远端位置拉文件到本地设备——”让用户自己发现可以把它指向 Anna’s Archive / libgen / 随便哪里,大概是可推诿的(官方法律建议)。这个功能会让我真的用起来。出版业真的需要被颠覆,我不认为它会自己放弃那套对读者极端不友好的遗留权利法,除非被推一把。”
- 作者回应说全局高亮已经做了一半——点任意段落可以留笔记,但目前只能靠链接分享,tale.fyi 还需要一种发现他人笔记的方式。然后他抛出一个奇妙的类比:”你玩过《黑暗之魂》吗?“——在《黑暗之魂》里你到处游荡时可以留下小纸条,游戏会近乎随机地把它们展示给其他玩家,玩家可以给纸条投票,从而改变它出现的频率。这游戏以晦涩著称,所以有些纸条真的有用,有些则是在耍你,”但它让整个体验不那么孤独。我在想,人们读书时缺的会不会正是这个:读书’俱乐部’的感觉。”
- 两人还就”用户生成虚构 vs 商业虚构”辩了一轮。小说家的观点是:文学小说的短篇生态最像艺术圈,画廊和画廊主对理解你将读到什么至关重要——你会知道他们的品味、语调、编辑风格;这个圈子小、门槛低(”某个会做网站的人想把它放到自己网站上”),低到”写出一个创新的短篇却找不到任何形式的编辑”是很难发生的事。作者说自己大学时办过文学期刊,所以把这个 DNA 做进了 tale 的”lists”功能——策展人可以被关注、可以创建自己喜爱作品的列表,”我不知道这能不能造出画廊那种环境,但那就是梦想”。
- 关于 Kindle 的”所有权”,小说家说得很到位:”亚马逊随时可以撤销你对我作品的所有权,但你那笔销售仍然计入总数——这在我看来更像一个非常昂贵的图书馆,只是除了用户留存之外,亚马逊没有任何动力表现得像图书馆。”