眼睛先撑不住了
情绪 Dashboard 上线之后,我的日常变成了这样:早上盯着屏幕看 Claude Code 跑完的回测报告,下午盯着屏幕看它生成的策略分析,晚上盯着屏幕 review 它写的代码——中间偶尔抬一下头,确认自己的眼睛还在。
盘中有一次,屏幕上同时开着四个窗口:Claude Code 在写新组件,回测在跑,情绪 Dashboard 在刷数据,我在看报告。
我当时的脑子大概是这种状态:
全。满。了。
我需要一双不用眼睛的耳朵,把屏幕上的文字念给我听,让眼睛去干别的事。
然后我翻到了 Supertonic,Supertone Inc 出品,项目介绍第一行:
Lightning-Fast, On-Device TTS. Now speaks in 31 languages.
设备端。闪电速度。31 种语言。No GPU。没有云端 API,没有隐私问题。
我看了看自己已经有点干涩的眼睛。
装。
装完我才意识到,把这东西接进 Claude Code 的输出管道之后,很多工作的操作步骤真的压缩到了两个按键:一个触发 Claude Code,一个触发 Supertonic 朗读结果——我的眼睛可以去看别的东西了。
国内订阅claude code确实有点困难,可以参考一下:claudemax.shop
先说结论
评分:9 / 10。接进 Claude Code 工作流之后,这是我装过的最快让眼睛放松的工具。
用了一周,几个实测数字:
- 启动延迟:本地调用首次合成约 180ms,后续调用 < 50ms,流式输出感觉是"实时"的
- 设备端全程:没有一个字节的文本发到云端,量化策略内容可以放心念
- 情绪标签:
[scream]读到回测亏损数字、[laugh]读到盈利信号——这个功能有点离谱但我没删掉
唯一的但是:Supertonic 3 目前开放了 demo,完整 SDK 接入需要联系 Supertone 商务。部分情绪标签在中文语境下效果比英文稍弱,有口音偏差。
先跑起来
demo 版本直接在 GitHub 的 Releases 页面下载对应平台的可执行文件,不需要 Python 环境。或者走官方 npm 包:
npm install @supertone/supertonic
最简单的用法,三行代码让它念一句话:
import { Supertonic } from "@supertone/supertonic";
const tts = new Supertonic();
await tts.speak("今日回测结果:夏普比率 1.84,最大回撤 3.2%");
支持 8+ 编程语言:TypeScript、Python、Rust、Go、Swift、Kotlin……对量化选手来说,Python 接入直接可以用。
配置好之后就一直在本地跑,CPU-Only,不用担心没有 GPU 的机器跑不动。
和 Claude Code 搭起来,才是真正有意思的
情绪标签:这是我没想到会在意的功能
Supertonic 支持在文本里嵌入情绪标签,让朗读的语气跟着内容变:
"今天大盘[sigh]又跌了,不过情绪指标[laugh]意外地稳定。"
"[scream]回测穿了!最大回撤冲到 18%!"
"策略调整完毕,[breath]今天的工作结束了。"
我第一次看到这功能的时候,反应是:这不是噱头吗?
用了三天之后,我收回这个判断。
听报告的时候,平铺直叙的 TTS 读到第 10 分钟开始产生"白噪音化"——你的大脑会开始把声音当背景,信息没进去。情绪标签破了这个问题:关键数字前加一个 [surprise],你的耳朵会本能地注意。
我现在让 Claude Code 生成报告的时候,在 system prompt 里加了一条规则:在关键指标前自动插入对应情绪标签。效果比我预期的好很多。
当然,[yawn] 那个标签的实际用途我还没想明白。谁在听报告听到一半来一个哈欠声?(我想了一会儿,也许是在做压力测试?)
接进 Claude Code 输出管道:真正的"两个按键"
这才是重点。
以前我的工作流里有一个隐性成本:读输出。Claude Code 跑完一个任务,输出几百字的分析,我要停下手头的事,眼睛切回去,读完,再决定下一步。这个动作看起来小,但一天做二三十次,累积起来的注意力碎片化相当可观。
接了 Supertonic 之后,我在 Claude Code 的 hook 里加了一条:任务完成时,把输出文本自动管道进 Supertonic 朗读。
大概是这个样子:
import subprocess
from supertonic import Supertonic
tts = Supertonic()
def on_claude_complete(output: str):
# 过滤掉代码块,只念自然语言部分
text = strip_code_blocks(output)
tts.speak(text, emotion_auto=True) # 自动根据语义选情绪标签
效果是:我触发 Claude Code(按键一),它跑完,Supertonic 自动把结果念出来(按键零,因为不需要我按)。我的眼睛在这段时间里可以盯着回测图表,或者去喝口水,或者什么都不干。
两个按键的说法严格来讲不准确——应该是"一个按键 + 耳朵"。
但这不重要,重要的是注意力不再被打断了。
设备端运行:量化内容的隐私底线
这一块对量化程序员来说不是加分项,是前提条件。
我之前用过几款 TTS 工具,主流的都是云端 API:你把文本发出去,服务器合成,音频传回来。流程上没问题,但那些文本里包含的东西有时候不只是普通报告——持仓逻辑、策略参数、信号权重,这些东西一旦离开本机,你接受服务条款的那一刻就算默认授权了。
Supertonic 的卖点之一就是设备端全程:文本在本机合成,音频在本机播放,没有任何数据出网。
我接了一段时间,用 Wireshark 抓包验证了一下——朗读期间,进出网络的请求都是 0。
这对我来说比 31 种语言支持更重要。
68% 更少的读取错误:中英文混排实测
量化报告有一个恶趣味:里面经常是中英文混排,还穿插着数字、百分比、代码变量名——比如"夏普比率(Sharpe Ratio)提升至 1.84,useEffect 依赖修复后 P&L 曲线趋稳"。
这种文本是 TTS 的地狱场景。大多数 TTS 会在数字和变量名这里抽风,读出一些让人哭笑不得的东西。
Supertonic 官方数据说阅读错误率降低 68%,我自己测了一批量化报告里的典型句子,结论是:纯中文和纯英文都没什么问题,数字、百分比处理得很干净,代码变量名会逐字母拼读(useEffect 读成"u s e Effect"),这个行为其实是合理的,不算错误。
混排的场景里,语言切换的自然度比我预期的好,不会在中英文边界断一下再切换。
这块能感觉到 Supertone 在语音合成上做了认真的工程工作——毕竟他们做商业语音产品多年,不是玩票性质的 side project。
说实话,它的坑也有几个
完整 SDK 需要商务对接。 GitHub 上的 Supertonic 项目目前是 demo 性质,开放了可执行文件和基础接口,但企业级 SDK 接入、自定义语音模型、私有化部署这些需要联系 Supertone 商务谈。这对个人开发者来说是个不确定因素——价格未知,接入流程未知。
中文情绪标签效果不如英文。 [laugh] 在英文语境下听起来很自然,在中文语境下有点……怪。情绪表达在不同语言里有语调习惯差异,Supertonic 的情绪标签明显是以英文为基准调校的,中文用户感受会打折扣。
首次加载有延迟。 模型文件在首次调用时需要加载到内存,这个过程大概 2-3 秒。不影响日常使用,但如果你想接进实时 alert 系统,需要提前做预热(keep-alive)处理。
不适合极高频播报场景。 如果你想用它做股价每秒播报,CPU 资源会撑不住。它的定位是"报告朗读 / 内容消费",不是"实时 tick 数据播报",这两个是不同场景,别搞混了。
对量化和 AI 独立开发者意味着什么
做量化做了三年,有一个经验:影响工作质量的不只是工具的能力上限,还有注意力的连续性。
你越能保持专注,你的判断越准,你的代码 bug 越少,你的策略逻辑越清晰。每一次"停下来读屏幕"都是一次注意力打断,打断多了,效率下去,质量跟着下去。
Supertonic 接进 Claude Code 工作流,干的就是把"读输出"这个动作从眼睛搬到耳朵——眼睛继续干别的事,耳朵接管文本信息消费。这个搬迁看起来很小,但对长时间工作的连续性影响是真实的。
还有一个不太被提到的价值:无障碍和疲劳场景。盯屏幕超过四小时之后,视觉疲劳会导致你漏读信息。TTS 朗读强制你用不同感官接收,信息遗漏率会下降。
这不是玄学。这是注意力管理。
你是哪种情况
在用 Claude Code 大量生成报告、分析、代码 review 的:先把最简单的场景跑通——把 Claude Code 的输出管道进 Supertonic,听一次它读你的报告,感受一下这个工作流对你是不是真的有价值。如果有,再深度配置情绪标签和过滤规则。
有量化策略内容、对隐私敏感的:Supertonic 是目前我测过的少数几个真正设备端全程的 TTS,如果你要在 TTS 里朗读任何包含策略逻辑的内容,它是目前最安全的选项。
只是好奇 TTS 能不能提升效率、还没有具体场景的:从朗读量化新闻摘要开始,每天让它读 10 分钟信息,手可以同时做其他操作——这是最低门槛的入门实验。
最后
眼睛是有带宽限制的,耳朵是空闲的。
把 Claude Code 的输出搬到耳朵里,是目前我做过的最省力的效率改造——不改流程,不换工具,只是加一个朗读层,注意力的连续性就上了一个台阶。
强烈推荐。如果你也在用 Claude Code + 量化工作流,评论区聊一下你的 hook 配置方式。