【开源】逆向 Codex APP ASR 搓了一个语音转写小工具,支持 Whisper 格式(Codex 实用小工具第二弹)

Wangnov 2026-05-06 19:00 1

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:



  • 我的帖子已经打上 开源推广 标签:

  • 我的开源项目完整开源,无未开源部分:

  • 我的开源项目已链接认可 LINUX DO 社区:

  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:

  • 以上选择我承诺是永久有效的,接受社区和佬友监督:


以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出






前言

这是 Codex 实用小工具系列 第二弹。


Codex 实用小工具系列是楼主在日常使用,或应朋友要求,或工作需要Vibe开发的一系列工具。从 CLI 到 APP 到 网络服务应有尽有。


正值五一节后进入摸鱼期,趁 cdx 干活的时候,我空闲下来把开源的工具都整理了一下,分享给各位佬友,希望能帮到有需要的人,如有帮助,还望不吝 Star,多谢!



这是什么




codex-asr,一个逆向自 Codex APP 的 ASR 工具,也就是语音转文字。



Codex APP 里有一个一次性语音输入接口(仅限 ChatGPT 登录和 OpenAI APIKEY,用中转 provider 是没有这个按钮的)。你在 App 里点语音输入的时候,它会把录音上传到:


https://chatgpt.com/backend-api/transcribe

然后拿回一段文本。


这个接口 不是 OpenAI Whisper API,只是 Codex APP(CLI 没有,CLI 走的是 Realtime,那个就不好拆了)自己在用的一个后端接口。


但它其实挺好用的,毕竟作为 VibeCoding 头子软件里的 ASR,要是转写错了就很影响用户体验。而且我估计背后是基于 whisper API 的,质量还是有保障的。最方便的是可以复用本机 Codex APP 里已经登录好的 ChatGPT 账号。


所以我就把这个小接口逆出来,封装成几个比较容易用的形态:



  1. 一个 Rust CLI:codex-asr audio.wav

  2. 一个 Rust crate:给其他 Rust 项目直接调

  3. 一个本地 REST server:codex-asr serve

  4. 一个 OpenAI Whisper 风格的兼容接口:老的 Whisper 接入脚本比如龙虾之类的,改一下 base_url 就能试

  5. 一个 .silk / 微信语音预处理入口:先用本机 rust-silk 解成 WAV,再上传(这里用了我的另一个开源项目: GitHub - Wangnov/rust-silk: SILK v3 编解码工具与 Rust 封装。内置官方 SILK C 源码(BSD 3-Clause),提供易用的 CLI, 覆盖常见的微信语音(含腾讯前缀)与 PCM/WAV 互转场景 | SILK v3 codec tools and Rust bindings. Bundles the official SILK C sources (BSD 3-Clause) and provides a simple CLI for common WeChat voice (Tencent prefix) and PCM/WAV conversions · GitHub ),这是可选项,个人需求加进去的,也可以选配别的解码后端


以下为 AI 写的 README 截图:



效果如何


效果很简单,就不多说了。这里放一下一个意外的数据,并发压测:



可以看到,96 并发也是很稳定的,这也是我特地把它发出来的原因。想薅个免费(其实也不免费,开了订阅的)稳定的 ASR API 还是要下一点功夫的,有 GPT 自带的就用起来


如何安装


Homebrew


brew tap wangnov/tap
brew install codex-asr

cargo-binstall


cargo binstall codex-asr

cargo install


cargo install codex-asr

GitHub Release 安装脚本


curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/Wangnov/codex-asr/releases/latest/download/codex-asr-installer.sh \
| sh

Windows PowerShell:


powershell -ExecutionPolicy ByPass -c "irm https://github.com/Wangnov/codex-asr/releases/latest/download/codex-asr-installer.ps1 | iex"

Docker / GHCR


docker pull ghcr.io/wangnov/codex-asr:latest
docker run --rm ghcr.io/wangnov/codex-asr:latest --version

直接在 Release 里下载二进制




如何运行


直接转写:


# 默认读取 $CODEX_HOME/auth.json 或 ~/.codex/auth.json
codex-asr audio.wav

# 给上游一个语言提示
codex-asr audio.wav --language zh

# 输出 JSON
codex-asr audio.wav --json

# 文件没有扩展名时,显式告诉 content type
codex-asr raw-audio --content-type audio/wav

如果你手上是微信语音 / SILK:


codex-asr voice.silk --silk-decoder /path/to/rust-silk

这里要说明一下,Codex 上游接口本身不吃 SILK,所以 codex-asr 会先调用外部 rust-silk,把 .silk / .slk 解成临时 WAV,再上传 WAV。


本地起 REST API:


codex-asr serve --api-key local_dev_key

支持的路由:


GET  /healthz
POST /v1/audio/transcriptions
POST /audio/transcriptions

为了方便和大厂兼容,我把常用字段按 Whisper 风格兼容了一下,这样就方便龙虾之类的支持 Whisper 格式的应用来调:


file              必填
model 为了兼容 SDK,接受但忽略
language 转发给 Codex /transcribe
response_format 支持 json / text / verbose_json
prompt 接受但忽略
temperature 接受但忽略

srtvtt 不支持,因为 Codex 这个接口本身不返回时间戳


鉴权问题


如果稍微了解一点的,可以直接传 Access Token 来鉴权。如果懒得折腾,直接用本机的 $CODEX_HOME/auth.json 来鉴权就可以了(默认行为)


但是千万注意:


codex-asr 会复用你的个人 Codex / ChatGPT 登录 token,虽然为了方便我打了 Docker 镜像,但是千万不要把没有保护的服务暴露到公网


这个项目默认的保护:



  1. REST 默认只绑定 127.0.0.1

  2. serve 默认要求本地 API key

  3. --no-api-key 只建议在可信 loopback 环境里用

  4. 公网 Docker 部署示例使用 Caddy 自动 HTTPS,并且仍然要求应用层 api-key

  5. 工具只读取 auth,不会写入或刷新 auth

  6. 不保存转写结果,除非你的调用方自己保存


支持格式


本地测试里,上游可以直接接受这些格式:


WAV PCM
MP3
M4A / MP4 AAC
FLAC
Ogg Opus
WebM Opus

微信语音这类 .silk / .slk,需要走外部 rust-silk 解码成临时 WAV 再传。


说完了


以上就是 Codex 实用小工具系列 第二弹:codex-asr


有问题欢迎直接丢 issue,也欢迎佬友 Star / 插眼。后续还有其他 Codex 周边小工具,我整理完继续发。


Codex 实用小工具系列目录


第一弹:【开源】切 provider 避免丢会话:Codex-Threadripper(Codex实用小工具系列第一弹)

第二弹:【开源】逆向 Codex APP ASR 搓了一个语音转写小工具,支持 Whisper 格式(Codex 实用小工具第二弹)

第三弹:【开源】做了一个 Codex App 安装包镜像,解决 Microsoft Store 不好下载的问题(Codex 实用小工具第三弹)

最新回复 (11)
  • 轩宇 05-06 19:04
    1

    马上team订阅就要结束了!没有订阅也用不了这个项目是吧?

  • Wangnov 楼主 05-06 19:12
    2

    是的,就是复用订阅里的 ASR 调用,中转那种用不了的

  • Bin 05-06 19:19
    3

    有趣的想法!不过,我还以为可以免费号用嘞

  • Wangnov 楼主 05-06 19:43
    4

    这个我就不知道啦,按理说免费账号用个 whisper 应该轻松的吧,又不是什么值钱的 API,我没有 free 号了就没有尝试

  • leioukupo 05-06 20:33
    5

    要收费吗??稳定吗??codex free账号可以吗?

  • Wangnov 楼主 05-06 23:03
    6

    不收费,复用你已有的 ChatGPT 订阅。而且相当稳定。

    Free 行不行我就没试过了

  • hripleh 05-07 02:01
    7

    试了 Free 账号可以。好像太长的音频会报错。

  • 你怎么这么坏 05-08 13:56
    8

    很牛逼,点个star,回头我去试试,不知道日本话识别咋样 ^-^

  • 你怎么这么坏 05-12 10:49
    9

    很不错,还是比较稳定的,我拿来做兜底了,给我的AI助手添加的解析微信语音

  • deepsleep 05-28 11:59
    10

    佬,能不能逆向一下微信输入法的语音识别,那个贼好用

  • Metaterminator 06-07 22:04
    11

    感謝大佬。看上去不錯,晚點安裝來體驗一下。

* 帖子来源Linux.do
返回