没有不值得去解决的问题,也没有不值得去学习的技术!

给 ChatGPT 和 Codex 加上任务完成提示音:Firefox 多标签页并行工作的实际折腾记录

【图15:MAXIOL 扩展 1.0.12 的详情页面】

作者:

在

最近在做多语言翻译项目时,我经常同时开着多个 ChatGPT 标签页。

有的标签页负责翻译,有的负责独立审核,还有一些任务一次可能运行十几分钟甚至更久。除此之外,我还会同时使用 Codex。

这种工作方式带来了一个很实际的问题:

任务完成以后,如果没有声音提醒,我需要不断地在多个标签页之间来回检查。

ChatGPT 本身可以发送浏览器通知,但我实际使用 Firefox 时发现,通知虽然能够正常显示,却没有声音。

于是我花了一些时间,把 Firefox、Ubuntu、ChatGPT 扩展以及 Codex 的提示音问题完整排查了一遍。

最后的结果是:

  • Codex 改用 CLI,任务完成提示音正常;
  • Firefox 中使用 ChatGPT Done Sound by MAXIOL LTD,ChatGPT 回复完成后可以正常发出声音;
  • 原本尝试的 Reply Chime,虽然测试声音正常,但实际 ChatGPT 回复完成后始终没有声音;
  • Firefox 的网站通知权限和自动播放权限都不是最终原因。

这篇文章把整个过程记录下来。


为什么我需要任务完成提示音

我的实际使用场景不是普通的一问一答。

经常会同时打开多个 ChatGPT 标签页,让不同会话分别执行长任务。

例如:

  • 一个标签页正在生成几十个翻译单元;
  • 一个标签页正在进行独立审核;
  • 另一个标签页可能正在检查修改后的内容;
  • 同时还可能有 Codex 在处理代码或仓库任务。

很多任务都会运行几十秒、几分钟,甚至更久。

如果没有提示音,我只能隔一段时间切回每个标签页看看:

完成了吗?

这其实是一种很明显的注意力浪费。

所以我的目标很简单:

某个长任务完成以后,电脑响一声,我再过去处理。


Firefox 中,ChatGPT 通知本身已经允许

首先检查的是 ChatGPT 的网站权限。

Firefox 地址栏左侧可以打开当前网站的权限面板。

【图1:Firefox 中打开 chatgpt.com 的网站信息面板】
【图1:Firefox 中打开 chatgpt.com 的网站信息面板】

进一步查看权限以后,可以确认:

chatgpt.com 的“发送通知”已经是 已允许。

【图2:chatgpt.com 的发送通知权限已经允许】
【图2:chatgpt.com 的发送通知权限已经允许】

这说明 ChatGPT 本身具备发送浏览器通知的权限。

实际上,我也确实能够看到通知。

问题只是:

通知出现了,但是没有声音。


Ubuntu 的声音本身没有问题

为了排除系统声音问题,我在终端里测试了声音:

Plaintext
canberra-gtk-play -i message-new-instant

这个命令能够正常发出声音。

随后再测试普通桌面通知:

Plaintext
notify-send "通知测试" "如果你能看到这个通知,说明桌面通知正常"

结果是:

  • 通知能够正常弹出;
  • 但是通知本身没有声音。

因此问题已经比较清楚了:

不是 Ubuntu 没有声音,也不是 Firefox 没有通知权限,而是普通桌面通知本身并不会自动播放我想要的提示音。

既然如此,与其继续折腾系统通知,不如直接让 ChatGPT 回复完成时主动播放声音。


第一种尝试:Reply Chime

我首先找到的是 Firefox 扩展:

Reply Chime

它的功能说明非常符合我的需求:

当 ChatGPT 的长回复生成完成以后播放声音。

它还支持设置最短回复时间。

刚安装时,默认设置是:

  • Enabled;
  • 超过 60 秒才提醒;
  • 音量 100%。
【图3:Reply Chime 默认的 60 秒和 100% 音量设置】
【图3:Reply Chime 默认的 60 秒和 100% 音量设置】

这个设计其实非常适合长任务。

因为我并不希望每一句普通回复都响。

后来我把它调整成:

  • 超过 30 秒提醒;
  • 音量 50%。
【图4:Reply Chime 调整为 30 秒、50% 音量】
【图4:Reply Chime 调整为 30 秒、50% 音量】

这样的设置更符合我的实际工作方式。


Reply Chime 的测试声音是正常的

Reply Chime 提供了一个 Test sound 按钮。

点击以后,声音能够正常播放。

这说明:

  • Firefox 可以播放这个扩展的声音;
  • Ubuntu 音频没有问题;
  • 扩展自带的音频资源也没有问题。

我又检查了扩展本身的状态。

【图5:Reply Chime 扩展已经启用】
【图5:Reply Chime 扩展已经启用】

扩展对 chatgpt.com 的访问权限也已经打开。

【图6:Reply Chime 已允许访问 chatgpt.com 数据】
【图6:Reply Chime 已允许访问 chatgpt.com 数据】

看起来一切都正常。

但是实际测试时出现了一个奇怪的问题:

Test sound 有声音,真正的 ChatGPT 回复完成以后却没有声音。


继续排查 Firefox 的自动播放权限

一开始我怀疑可能是 Firefox 阻止了后台标签页自动播放声音。

于是继续检查 Firefox 的隐私与安全设置。

【图7:Firefox 隐私与安全设置页面】
【图7:Firefox 隐私与安全设置页面】

在“自动播放”设置中,我发现 Firefox 的全局默认行为确实是:

阻止音频

【图8:Firefox 默认自动播放策略为阻止音频】
【图8:Firefox 默认自动播放策略为阻止音频】

于是我没有修改全局设置,而是只针对 chatgpt.com 添加例外。

在 ChatGPT 页面按:

Plaintext
Ctrl + I

打开“页面信息”,进入“权限”,找到“自动播放”。

取消“使用默认设置”,选择:

允许音频和视频

【图9:为 chatgpt.com 单独允许音频和视频自动播放】
【图9:为 chatgpt.com 单独允许音频和视频自动播放】

设置以后,Firefox 的自动播放例外列表中也正确出现了:

Plaintext
https://chatgpt.com    允许音频和视频
【图10:Firefox 自动播放设置中已经出现 chatgpt.com 例外】
【图10:Firefox 自动播放设置中已经出现 chatgpt.com 例外】

到这里,Firefox 网站权限这一层基本已经完全放行了。


重启 Firefox 后,Reply Chime 仍然没有声音

为了避免是扩展刚安装、页面脚本没有重新加载之类的问题,我又做了一轮完整测试:

刷新所有 ChatGPT 标签页;

完全退出 Firefox;

重新启动 Firefox;

确认 Test sound 仍然可以正常播放;

再运行真正超过 30 秒的 ChatGPT 回复。

结果仍然一样:

测试声音正常,真实回复完成以后没有声音。

所以此时已经基本可以排除:

  • Ubuntu 音频问题;
  • Firefox 网站通知权限问题;
  • Firefox 自动播放权限问题;
  • 扩展声音文件本身的问题;
  • 简单的浏览器重启问题。

更可能的情况是:

Reply Chime 当前版本没有正确识别现在 ChatGPT 页面中的“回复已经生成完成”状态。

这只是根据现象做出的判断,我没有继续分析扩展源码。


给 Reply Chime 作者留下问题反馈

我原本想直接给作者反馈,不过扩展页面没有明显的 Support site 或 GitHub Issue 链接。

评论区最初也没有任何评论。

【图11:Reply Chime 当时还没有用户评论】
【图11:Reply Chime 当时还没有用户评论】

回到扩展主页面以后,可以通过评分入口留下评论。

【图12:Reply Chime 的 Firefox Add-ons 主页面】
【图12:Reply Chime 的 Firefox Add-ons 主页面】

最后我给它留下了一条 1 星评论,并详细说明了复现条件:

  • Test sound 正常;
  • Firefox / Ubuntu;
  • chatgpt.com 权限已允许;
  • autoplay 已明确允许音频和视频;
  • Firefox 完整重启;
  • 真正超过阈值的回复仍然没有声音。
【图13:给 Reply Chime 留下兼容性问题反馈】
【图13:给 Reply Chime 留下兼容性问题反馈】

评论里我特别说明:

The “Test sound” button works, but real completed replies still produce no sound.

并推测可能与当前 ChatGPT 的回复完成状态检测有关。

如果以后作者修复,我也可以重新测试并修改评分。


第二种尝试:ChatGPT Done Sound by MAXIOL LTD

既然 Reply Chime 暂时无法使用,我又尝试了另一个 Firefox 扩展:

ChatGPT Done Sound by MAXIOL LTD

它需要的权限很简单:

  • 访问 chatgpt.com 数据;
  • 显示通知。
【图14:ChatGPT Done Sound by MAXIOL LTD 的扩展权限】
【图14:ChatGPT Done Sound by MAXIOL LTD 的扩展权限】

当时安装的是:

Plaintext
1.0.12

而且页面显示当天仍有更新。

【图15:MAXIOL 扩展 1.0.12 的详情页面】
【图15:MAXIOL 扩展 1.0.12 的详情页面】

从维护活跃度来看,这一点让我更愿意尝试。


这一次,真实 ChatGPT 回复完成后终于有声音了

安装完成以后,我重新做了一次真实测试。

这一次不是点击扩展里的测试按钮,而是真正让 ChatGPT 生成回复。

结果:

回复完成以后,声音正常响了。

而且不需要重新刷新整个 ChatGPT 页面。

这正是我真正需要的功能。

到这里,浏览器端的任务完成提示音终于解决了。


但 MAXIOL 的设置比较简单

它目前有一个明显的不足:

几乎每一次 ChatGPT 回复完成都会发出声音。

而 Reply Chime 原本最吸引我的地方,是可以设置:

只对超过 30 秒的回复提醒。

对于普通聊天来说,每一条回复都响一下会有点频繁。

但对于我目前同时运行多个长任务的工作方式来说,至少核心问题已经解决了:

不需要不断切换标签页检查任务有没有完成。

所以现阶段我宁愿先使用一个“会响但设置简单”的扩展,也不继续折腾一个“设置漂亮但实际不响”的扩展。


给 MAXIOL 作者提了一个功能建议

既然这个扩展核心功能正常,而且作者还在更新,我给它留下了一条 5 星评论,同时提出一个很具体的功能建议:

Please add a minimum reply duration option, similar to “notify only for replies longer than 30 seconds.” It would be very useful when using multiple ChatGPT tabs in parallel.

【图16:给 MAXIOL 扩展五星评价,并建议增加最短回复时间设置】
【图16:给 MAXIOL 扩展五星评价,并建议增加最短回复时间设置】

如果以后能够加入:

Plaintext
Notify only for replies longer than 30 seconds

这样的选项,它就会非常符合我的使用习惯。

进一步来说,如果还能支持:

Plaintext
Only notify when the ChatGPT tab is in background

那就更加理想了。

因为当前正在查看的标签页,实际上并不一定需要额外响铃。


Codex 这边,我最终决定改用 CLI

除了 ChatGPT,我还会同时使用 Codex。

之前主要是在 VS Code 里的 Codex 插件中运行任务。

但是插件完成任务以后,没有我想要的声音提醒。

而 Codex CLI 本身是有完成提示音的。

所以我最终决定:

VS Code 继续作为编辑器使用,Codex 的长任务改到 CLI 中执行。

顺便把 Codex CLI 更新到了当前最新版本。

更新后确认:

Plaintext
codex --version

输出:

Plaintext
codex-cli 0.158.0

安装方式仍然保持 standalone:

Plaintext
~/.codex/packages/standalone/releases/0.158.0-x86_64-unknown-linux-musl/bin/codex

实际测试以后,Codex CLI 的完成提示音正常。

于是现在我的工作方式变成了:

ChatGPT 多标签页 → Firefox 扩展提醒

Codex 长任务 → CLI 提示音

VS Code → 编辑器、diff、Git 等工作

这样反而比把所有工作都塞进 VS Code 插件里更适合我目前的并行任务模式。


最终效果

经过这一轮折腾,现在终于不用再不断查看:

这个标签页完成了吗?
那个 Reviewer 回来了吗?
Codex 跑完了吗?

ChatGPT 回复结束以后,Firefox 会响;

Codex CLI 完成任务以后,也会响。

我可以继续做当前手上的事情,等听到提示音以后再处理完成的任务。

对于一次只开一个 ChatGPT 标签页的人来说,这可能只是一个很小的功能。

但如果同时运行多个长时间 AI 任务,任务完成提示音其实是一种非常实际的注意力管理工具。


一个小结

这次排查最有意思的一点是:

一开始看起来像是一个简单的“Firefox 通知为什么没有声音”的问题。

真正排查下来却涉及:

Firefox 网站通知权限、Ubuntu 系统声音、桌面通知、Firefox 自动播放策略、扩展权限、后台标签页,以及扩展本身对 ChatGPT 当前页面状态的识别。

最终也没有通过“把 Firefox 所有通知都变成有声音”来解决。

而是选择了一个更直接的办法:

谁知道任务什么时候完成,就让谁自己发出声音。

ChatGPT 用专门检测回复完成的扩展;

Codex 用自带提示音的 CLI。

至少目前,这个方案已经足够实用了。

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系