study.
产品库/Agent 工具

Earshot v0.3 发布解读:给 agent 装耳朵,难的不是听懂,是知道自己听错

22 秒发布片里的声音全是代码合成的,作者自己盲听 15 次只听对 8 次。一个评测工具最大的风险,是教会 agent 讨好评测

Leon Lin(个人开源项目)2026.10.19免费 8521 字 · 付费 9329 字
厂商
Leon Lin(个人开源项目)
版本
0.3.0(版本迭代(v0.1 于 10-15 首发,v0.2 加 forge v2))
发布
2026.10.19
定价
完全免费开源;成本为本地 CPU 时间与约 1.1GB 模型下载
许可
MIT(模型各自沿用 CLAP Apache-2.0 / AST BSD-3-Clause)
平台
Windows · macOS · Linux · CLI · MCP
适合谁
用 Claude Code / Codex 做视频或游戏的开发者 · 独立游戏团队 · 音效设计入门者 · Agent 工具链研究者

引言:agent 能拍片了,但它听不见

过去一年,编码 agent 的能力边界扩得很快。它能写出渲染一段视频的代码、能搭一个产品演示页、能生成一个能跑的游戏原型。

但它听不见自己做出来的东西。

它分不出一次「高级的机械键盘按键声」和「廉价塑料咔哒声」的差别。它注意不到某个撞击声比画面剪辑点晚了 80 毫秒。它听不出音乐在第 12 秒该起的地方没起来。

这不是 agent 笨,是它没有耳朵。它一直在盲做。

Earshot 就是冲这件事来的。它的自我定位只有一句话:Ears for coding agents(给编码 agent 的耳朵)。

做的事也很清楚:把声音变成 agent 能推理的证据。一个文件听起来像什么(用文字描述)、有多符合某个描述(打分)、一段长录音里最好的片段在哪、这段声音是实录还是代码合成的、整部影片的逐秒听觉转录、一张带标注的可视化图,以及一份对标专业发布影片的评分卡。

它 10 月 15 日上线,四天后(10 月 19 日)发到 v0.3,GitHub 上 899 颗星、52 个 fork、0 个未解决 issue。MIT 许可,纯 CPU 本地跑,不用显卡。

而这一篇要讲的,不是它有多强,是它作者自己承认的那些地方。

因为 Earshot 的 README 里有一句话,我在这两年看过的所有发布材料里没见过第二次:

作者把代码生成的音效和真实录音放在一起盲听,15 次里认对 8 次。「和抛硬币一样。」

一个做声音评测工具的人,公开说自己听不出来。


一、产品定位:它到底是什么,不是什么

它是什么

一句话:一个让编码 agent「能听声音」的本地工具链,包含分析、评测和合成三段。

分三块:

块 做什么 依赖
听(describe / match / find / compare / realness / timeline / sheet / critique) 把声音转成文字、分数、时间轴、图片 两个开源音频模型
造(forge / fit / sfx / kit) 用代码合成音效,并自己听、自己改 纯 DSP 计算,v0.3 的音效库不用模型
接(CLI / Python API / MCP server) 三种方式让 agent 调用 —

三条路都能用:命令行、Python 脚本、MCP 服务器(给 Claude Code 这类客户端用)。

它不是什么

四件事容易误会。

不是音频生成模型。 它不跑扩散模型,不用神经网络合成声音。forge 造声音靠的是物理合成——模态谐振器、接触激励、滤波噪声、算出来的房间和麦克风模型。所有声音是算出来的,不是学出来的。

这一点很重要,因为它决定了成本结构:造一个音效不需要 GPU,不需要网络,是秒级的算术。

不是语音识别或 TTS。 它明确说自己判不了「speech content」。转写人声、读文本这些事不归它管。

不是给人类用的播放器。 它的输出是给 agent 读的:--json 给结构化结果,sheet 给一张 agent 能看的 PNG,gallery 生成一个静态 HTML 页面(这个倒是给人看的,但是副产品)。

不是「另一个 earshot」。 GitHub 上还有个 hec-ovi/earshot-mcp,版本号恰好也是 0.3.0,做的是「让多个 agent 互相发消息」。名字撞了,东西完全不同。这篇讲的是 Leonxlnx/earshot。

项目的规模与阶段

这个信息决定了后面所有判断的权重。

指标 数值(2026-10-19 抓取)
GitHub star 899
fork 52
创建时间 2026-10-15
最后推送 2026-10-18
未解决 issue 0
许可 MIT

四天 899 星,0 个 issue。 这个组合说明两件事:一是关注度确实起来了,二是还没有经受过真实用户的压力测试。0 issue 不代表没有 bug,只代表还没有人认真用。

作者 Leon Lin(GitHub 账号 Leonxlnx,X 上叫 @LexnLin,慕尼黑)此前做过一个叫 Taste Skill 的开源项目,是帮 AI 生成的界面提升设计质量的。Earshot 是同一个思路换了个感官:给 agent 一套能自我检查的工具,让它能改。

1.4 要花多少钱

代码免费,模型免费,运行免费。 MIT 许可,两个依赖模型分别是 Apache-2.0 和 BSD-3-Clause。

成本在三个地方,都不是钱:

第一,模型下载约 1.1GB,但两个来源给的数字不一样。 README 写「首次使用下载两个开源模型(约 1.1GB)」,RuntimeWire 的报道写「约 1.4GB」。这个差异可能是 README 只算权重、报道算了 tokenizer 和配置,也可能其中一个算错了。抓取时没有核实到确切值,按 1.1–1.4GB 之间准备空间是稳妥的。

下载之后可以完全离线:设 EARSHOT_OFFLINE=1、HF_HUB_OFFLINE=1 或 TRANSFORMERS_OFFLINE=1 任一个,它就不再联网。如果缓存里缺模型,会报错并指出是哪个文件夹,不会偷偷重新下载。

第二,CLI 每次调用要冷启动 20–40 秒。 这是最容易被低估的成本。

原因很直接:每次敲 earshot describe 都是一个新进程,要把两个模型重新加载进内存。measure、sfx、kit 三个命令不加载模型,所以是秒级的。

官方的建议是:超过几次调用,就用 MCP 服务器(模型常驻)或者写一个 Python 脚本(from earshot import api,一次加载多次调用)。

这条建议不是优化项,是能不能用的分界线。 用 CLI 连续跑十次分析,光等待就五六分钟;用 Python 循环,同样的活十几秒。

第三,CPU 时间。 官方给了一个参考:60–90 秒的影片,在笔记本 CPU 上分析约 1.5 分钟。

默认线程数是 min(4, 核数/2),可以用 EARSHOT_THREADS 调。精度默认 bf16,但只在支持原生 bf16 的 CPU(AVX512-BF16 / AMX)上生效,其他一律 fp32。

没有的东西:没有付费版,没有云服务,没有 API key,没有用量限制,没有商业支持。这是一个个人项目,不是一家公司在卖东西。


二、核心能力拆解:它提供了哪些关键能力

README 里列了 17 个命令。按「回答什么问题」分组,比按字母排列有用得多。

能力一:这是什么声音(describe / match / rank)

describe FILE 输出的是带校准的文字描述:

0.56 s short transient (attack 3 ms, decays in 190 ms).
Sounds most like: a single mechanical keyboard key press (z +5.4),
a soft key release click (z +3.6) ... [clear reading].
peak -0.1 dBFS, brightness 1.5 kHz ...

注意那个 z +5.4。这是 z-score,表示「这个描述比平均水平高出多少个标准差」。它不是一个 0 到 1 的相关性分数——这是理解整个工具的关键。z 值配合一个校准过的词汇表,才能说「有多像」。

而且它会给出备选解读(a soft key release click (z +3.6))。这一点很重要:声音的描述天然是多义的,一个按键声可能像「键按下」也可能像「键回弹」。只给一个答案的工具会骗人。

match FILE QUERY --alts ... 给的是判断:strong / plausible / weak / no match,附带「如果放进 322 个描述里,它能排第几」。

rank QUERY PATHS... 是批量版:给一堆候选文件,按符合程度排序。官方举的用例是「从十个下载里挑最像的那个」。

能力二:在长录音里找到那一下(find)

find FILE QUERY 在长录音里定位最佳片段,输出是起止秒数:

0:03.94-0:04.19 (0.24 s stroke, z +4.1 strong)

这在实操里比听起来有用。比如你有一份 40 分钟的现场录音,要找一段干净的单次按键声做音效素材——手工听要半小时,它几秒钟给出三个候选。

能力三:判断真假(realness)

这是最有争议、也最有意思的一个。

realness FILE 判断一段声音是真实录音(或专业制作)还是代码合成,给出每段的分数和证据。

为什么需要它?因为当 agent 自己造音效时,「听起来是不是假的」是核心质量指标。但正如后面要讲的,这个判断本身很脆弱。

能力四:看一整部片子的声音(timeline / sheet)

timeline FILE --video V 输出「听觉转录」:事件(时间、电平、标签)、段落划分、响度曲线、节拍网格、音画同步点。

sheet FILE -o out.png 把上面这些画成一张图:视频帧、段落、带标签的事件、频谱图、波形、响度、同步标记。给「能读图的 agent」用的——这是个很聪明的设计,多模态 agent 看一张标注图,比读一堆 JSON 更快抓住问题。

能力五:给发布影片打分(critique / profile)

critique film.mp4 拿一部片子对标一个「7 部专业发布影片」的档案,输出:

VERDICT: close - 21 of 23 scored metrics in range
FIX FIRST: 1. [major] nothing reaches body level until 0:01.01 ...

关键是它给的是「带时间戳的修改建议」,不是一句「还不错」。这让 agent 有下一步动作可做。

profile REFS... -o p.json 可以拿你自己欣赏的片子建一套标准。这个设计避免了对官方那 7 部片的过拟合——虽然大多数人不会去建。

能力六:用代码造声音(forge / fit)

forge 是最有野心的一块。

流程是:agent 写一个「配方」(物理合成的代码),forge 渲染出一批候选,一个「听众」(critic)给每个打分——描述匹配度、真实感、与参考录音的接近程度、无模型的物理指标(1/3 倍频程音色平衡、频谱包络、杂音检测、打磨度)。然后 agent 读批评意见(「像开瓶声混玻璃叮」「衰减比参考长 2.4」「尾巴不平滑」),看频谱图,改配方,再跑一遍。

这是一个闭环。 不是「一次生成」,是「生成、听、改、再生成」。

v0.2 把它扩到 34 个 motion-design 类别(whoosh、swish、riser、impact、点击、悬停音、通知音等),每类 4–6 个变体,其中 16 类模仿了专业发布影片里设计过的音效。

fit 是反方向:把一段录音翻译成代码。用分析合成的方式,拟合一个小模型(模态振铃、跟踪的分音、时变噪声手势,或它们的混合),让渲染结果逼近原录音,最后写成一段可执行的配方模块。

产物不是采样,是结构。所以你可以让它出新的 take、改变体(大小、阻尼、音高、亮度、衰减)、甚至在两段录音之间做形变。

能力七:201 个音效的代码库(sfx / kit,v0.3 新增)

这是 v0.3 的主题,也是这次更新的全部重点。

一个「音效库」,但里面存的不是音频文件,是配方。201 个音效全部以代码形式存在,按 id 秒级渲染,不用模型、不用网络。

构成:

  • 183 个 forge v2 的成品(34 个类别)
  • 3 个调过音的卡林巴音色(来自发布影片)
  • 15 个从 CC0 录音「拟合」出来的声音(点击、嘀嗒、pop、触摸、按键、响指、铃声、whoosh)

用法:

earshot sfx list --kind whoosh
earshot sfx render whoosh_fast/crisp -o w.wav --dur 0.8 --apex 0.32
earshot sfx check w.wav
earshot kit init --preset calm -o audio/kit.json
earshot kit render audio/kit.json --out audio/kit

三个旋钮值得单独说,因为它们是精确的:

  • dur:长度精确到采样点
  • apex:让 whoosh 的峰值落在目标时刻的 5 毫秒内(实测 2.5 毫秒内)
  • pitch:接受音名或赫兹,直接改配方自己的音高参数(pluck E5、bell G5、sub drop G1 实测 0 音分偏差)

这解决的是「音画同步」这个具体问题:你要一个 whoosh 在 0.32 秒达到峰值、总长 0.8 秒,它就是 0.32 和 0.8,不用事后去拉伸和修剪。

sfx check 是一个纯测量的审计:检查咔哒声、被切断的尾巴、削波、直流偏移、梳状振铃、上升的音高滑音(超过 4 个半音的「合成鞭子」)、命中音的堆叠攻击。201 个里有 185 个通过,三个预设都不用那 16 个不合格的。

kit 是「一部片子的声音套装」:每个角色(嘀嗒、命中、whoosh、按键、铃声、文字)指定一个库里的声音,渲染出确定性的、带缓存的 take,并写一份 kit.lock.json 记录每个 take 的实测起点、峰值、终点。不合格的 take 会自动换种子重掷。

能力与场景对应

能力 回答什么问题 谁最需要 成熟度
describe / match 这是什么声音、像不像我要的 找素材、配 UI 音 可用(125 段实测有数)
find 长录音里哪一段是我要的 素材挖掘 可用
realness 这是实录还是合成的 质检、防假 可用但脆弱(见第六章)
timeline / sheet 整部片子的声音结构 视频/游戏后期 可用(93% 检出率)
critique 我的片子比专业片差在哪 发布片、产品演示 可用但需谨慎(非盲测)
forge 造一个声音并改到满意 音效设计 可用但需人把关
fit 把录音变成可变的代码 素材再创作 可用(12 段实测)
sfx / kit 给一部片子批量配音效 短片、游戏、Demo 可用(185/201 过审计)

三、典型应用场景:谁在什么条件下用它解决什么问题

3.1 场景地图

按使用者拆,三群人:

  • 用 Claude Code / Codex 做视频或游戏的独立开发者:片子能生成,声音靠猜
  • 小团队的音效/后期:没有专职声音设计师,需要工具兜底
  • Agent 工具链的研究者:想看「给 agent 装感官」这条路能走多远

按用途拆,主场是「已有素材的质量判断」和「短片音效的快速补齐」,不是「专业音频制作」。

按形态拆:CLI 快试、Python 脚本跑量、MCP 接进 agent 的工作流。

哪些是主场,哪些只是「也能做」:给自己的 AI 生成视频配音效、从海量素材里挑音、判断一段声音真假,是主场。做音乐、做专业混音、配音,不是。

3.2 场景一:给 AI 生成的短片配音效

谁在用:独立开发者、内容创作者,用 agent 生成了一段 30 秒的产品演示或游戏预告。

触发条件:画面有了,声音是空的,或者只配了一段免费音乐。要发出去,得加音效:转场 whoosh、UI 点击、logo 落板的 impact。

痛点:三条路都不顺。自己找免费素材,要听几百个才能挑出五个,而且风格不统一。买商业库,一套几百美元,还不一定对味。找个音效师,一个短片几百到几千。

产品介入点:sfx + kit。选一个预设(calm / crisp / minimal),每个角色指定一个库里的声音,一次渲染出全套。

前置依赖:装 Python 环境、ffmpeg、下模型(1.1GB+)。第一次配环境大概半小时。但 sfx 和 kit 不加载模型——配好之后这两个命令是秒级的,很轻。

产出与收益:一套能用的短片音效,风格统一(因为来自同一个库),时间点精确(apex 在 2.5 毫秒内),而且全部是代码算出来的,没有版权风险。

边界与风险:185/201 通过审计,意味着有 16 个是已知有瑕疵的(预设避开了)。但「通过测量审计」不等于「好听」——作者自己说得很清楚:它能判断「像不像那类声音」,判不了「好不好意思」。用它出初版可以,直接上线要人听一遍。

3.3 场景二:判断一段声音是真录的还是 AI 生成的

谁在用:内容审核、素材采购、以及对「AI 味」敏感的品牌方。

触发条件:拿到一段音频,怀疑是合成的;或者反过来,自己生成的音效要判断够不够真。

痛点:人耳越来越难分辨。而且判断「像不像真的」这件事,没有客观标准——你觉得假,客户觉得好。

产品介入点:realness。它给出每段的分数和一个 firm verdict,加上证据。

前置依赖:无,一条命令。

产出与收益:一个可复核的判断。对于批量素材筛选,这是效率工具。

边界与风险:这是它最脆弱的能力。 官方数据是 ROC-AUC 0.92,firm verdict 会把 6.7% 的真实录音判成合成、5.5% 的合成判成真实,还有 20% 的声音被判为「不确定」。

更麻烦的是作者自己写的一句话:「realness 模型很容易被骗——一个模态谐振器加一个房间加一层底噪,读起来就是『真实』。」

也就是说,这段代码生成的假声音,因为结构上模仿了真实录音的物理特征,能骗过判断器。拿它当证据之前,要知道这一点。

3.4 场景三:给 agent 装一套自我检查的闭环

谁在用:在搭 agent 工作流的开发者。

触发条件:agent 能生成声音(或用 earshot forge 造),但不知道好不好,需要能自我迭代。

痛点:没有反馈信号,agent 只能一次成型。而「一次成型」在创意工作里基本等于「差」。

产品介入点:forge 的 critic 回路 + MCP 接入。agent 写配方 → 渲染 → 读批评 → 改 → 再渲染。

前置依赖:要是 MCP 客户端(Claude Code 等),要配 .mcp.json,要接受模型常驻占内存。

产出与收益:把「生成」变成「迭代」。官方给的数据是 forge v2 相比 v1,同类变体之间的相似度从 0.89–0.97 降到 0.71–0.85(不再是近似复制品),衰减过快的尾巴也修好了(click 的 t40 从 0.56 倍基准中位数升到 1.44 倍)。

边界与风险:这是 Goodhart 定律的现场。 搜索的目标是 earshot 自己的模型给出的分数,所以它能优化到「让模型满意」,而不一定是「让声音变好」。

官方给的解法是四条并用:看无模型的物理测量、看频谱图对比、做鲁棒重渲染、最后人来盲听。这四条里,最后一条不可省略——原因第六章会讲到。

3.5 场景成熟度分级

分级 具体做法 说明
开箱即用 measure / sfx / kit 不用下模型,装好就能跑,秒级
开箱即用 describe / match / find 首次跑要下 1.1GB 模型,之后每条命令 20–40 秒
需要一点配置 Python 脚本调 earshot.api 一次加载多次调用,跑量必须这么干
需要一点配置 MCP 接进 Claude Code 写 .mcp.json,模型常驻
需要一点配置 forge 造声音 要准备参考录音(--refs),要理解 critic 的输出
仅概念验证 critique 对标专业片 7 部参考片是固定档案,且规则改过、非盲测
仅概念验证 realness 当证据用 作者自曝容易被骗,20% 判为不确定
不建议使用 做音乐、做专业混音 不是这个工具的范围
不建议使用 语音转写、配音 官方明确说判不了 speech content

3.6 不适用或需谨慎的场景

第一,任何需要「最终判断」的场合。 它能告诉你「这像不像一类声音」「这像不像合成的」,但它自己说判不了品味、情感、来源、许可。最后的判断必须是人。

第二,14kHz 以上的内容。 官方明说两个模型听不到 14kHz 以上。做高频细节(镲片、齿音、空气感)的场景,它给不了意见。

第三,拥挤混音里的具体事件。 单一声源是可靠的,混在音乐里的声音「只能当提示」。官方数据是 60 秒混音里 93% 的音效被检出,但这是在受控测试里。

3.7 场景适配表

场景 适合谁 触发条件 用到的能力 需要什么准备 成熟度 主要风险
AI 短片配音效 独立开发者 画面有了,声音是空的 sfx + kit Python、ffmpeg、可不下模型 开箱可试 185/201 过审计,仍需人耳
海量素材筛选 内容团队 要听几百个挑几个 rank / find 模型(1.1GB) 开箱可试 strong 判定 98% 大类对,61% 精确对
声音真假判断 审核、采购 怀疑素材是合成的 realness 模型 可用但脆弱 作者自曝容易被骗
影片声音体检 视频后期 发布前要检查 critique / timeline / sheet 模型 需配置 对照的是 7 部固定片,非盲测
Agent 自我迭代 工作流开发者 agent 要能改自己的产出 forge + MCP 参考录音、MCP 配置 需配置 Goodhart:优化的是工具自己的模型
录音转可编辑代码 音效设计 想改造现有素材 fit 模型 + 源素材许可 可用 12 段实测,riser 类未测
做音乐 / 混音 — — — — 不适用 不在范围
语音转写 — — — — 不适用 官方说不支持

付费部分 · 9329 字

技术原理、同类对比、评测怎么读、上手教程和坑

免费部分到这里结束。后面是需要单独解锁的部分,包含判断依据而不是结论复述。

解锁全文10积分 · 约 1 元 · 解锁后永久可读
注册赠送 50 积分。新文章上线 7 天内 8 积分。
资料来源
资料 类型 抓取时间 用途
GitHub README 官方一手 2026-10-19 全部命令、能力、自报数字、盲测 8/15、Goodhart 自曝
CHANGELOG.md 官方一手 2026-10-19 0.3.0 全部变更、0.2.1 修复、apex 精度修复的前因后果
GitHub 仓库 API 官方一手 2026-10-19 star 899、fork 52、创建 2026-10-15、0 issue、MIT
RuntimeWire 报道 第三方媒体 2026-10-19 作者背景(Taste Skill)、模型 1.4GB 口径、发布时 6 star 的早期快照
AI Frontier Post 教程 第三方媒体 2026-10-19 两天 500 star、模型清单、MCP 配置、冷启动耗时

未获取到的资料(正文已按「官方未说明」处理,未填空):

  • v2 配方的盲测分数(作者明说未发布)
  • 模型下载的确切体积(1.1GB vs 1.4GB 两个口径)
  • 各命令在实际使用中的成功率(官方只给了实验室测试集上的数字)
  • 第三方独立评测(项目发布四天,尚不存在)
  • 与其他 agent 音频工具的横向对比(这个领域还没有第二名)
本站内容为独立解读,所有数据标注来源与抓取时间,非官方稿件。 推算数据已注明依据;官方未公布的信息不填空。