Skip to content

fix: move transcription off whisper-1 before February 26, 2027 - #32

Open
23821 wants to merge 1 commit into
benedict2310:mainfrom
23821:yakbarber/openai-2026-08-whisper-1-retirement
Open

23821 wants to merge 1 commit into
benedict2310:mainfrom
23821:yakbarber/openai-2026-08-whisper-1-retirement

Conversation

@23821

@23821 23821 commented Sep 28, 2026 •

Copy link
Copy Markdown

Hi! 👋 OpenAI announced a change that will break this project after February 26, 2027 (details below). This pull request updates the code so it keeps working.

It was prepared with the help of AI (YakBarber, a tool I'm building that updates code before API changes break it) and sent by me, once, to this repository only. If it isn't useful, feel free to close it — there won't be any follow-ups.


OpenAI is changing its API. whisper-1 is shut down; move transcription to gpt-transcribe
Deadline: February 26, 2027 (151 days from now). Details: https://developers.openai.com/api/docs/deprecations

What in this repo is affected

  • README.md:314 — (documentation) This is a documentation table row describing the default value of the TELEPI_TRANSCRIPTION_MODEL config variable and is never executed code.
  • src/voice.ts:69 — This constant sets the default model sent to OpenAI's /v1/audio/transcriptions endpoint and must be updated from the shut-down whisper-1 to gpt-transcribe.

What this PR changes
Updated the default OpenAI transcription model in src/voice.ts (DEFAULT_TRANSCRIPTION_MODEL) from "whisper-1" to "gpt-transcribe", and updated the corresponding documentation table in README.md. The only OpenAI transcription call in the codebase is the basic multipart POST to /v1/audio/transcriptions in transcribeWithOpenAI, which only reads the JSON text field and never sets language, response_format, or timestamp/segment options, so no other changes or TODOs were needed for that call. No realtime/streaming transcription, translations endpoint, or SRT/VTT/verbose_json usage exists elsewhere in src/ (other "language"/"transcription" hits in format.ts, message-rendering.ts, and bot.ts are unrelated markdown-language and status-string code). The 3 remaining test failures in test/config.test.ts (workspace resolving to "/workspace") are caused by the test sandbox itself having /.dockerenv present, which trips this repo's pre-existing Docker-detection logic in src/config.ts — unrelated to this migration, so left unchanged per the "change only what this API change requires" rule.

Tests: ⚠️ inconclusive — the tests failed the same way before this change in YakBarber's isolated test environment (often a setup difference, such as no network access), so they don't confirm this change (output below)

Test output
… (89 earlier lines not shown)
- Expected
+ Received

@@ -11,7 +11,7 @@
      123,
      456,
    ],
    "telegramBotToken": "bot-token",
    "toolVerbosity": "all",
-   "workspace": "/tmp/telepi-config-IYYhu2/cwd",
+   "workspace": "/workspace",
  }

 ❯ test/config.test.ts:53:20
     51|     const config = loadConfig();
     52| 
     53|     expect(config).toEqual({
       |                    ^
     54|       telegramBotToken: "bot-token",
     55|       telegramAllowedUserIds: [123, 456],

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/3]⎯

 FAIL  test/config.test.ts > loadConfig > resolves workspace to process.cwd() when not running in Docker
AssertionError: expected '/workspace' to be '/tmp/telepi-config-gJ2G9G/cwd' // Object.is equality

Expected: "/tmp/telepi-config-gJ2G9G/cwd"
Received: "/workspace"

 ❯ test/config.test.ts:242:30
    240|     const config = loadConfig();
    241| 
    242|     expect(config.workspace).toBe(cwdDir);
       |                              ^
    243|   });
    244| 

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/3]⎯

 FAIL  test/config.test.ts > loadConfig > resolves workspace to TELEPI_WORKSPACE when set outside Docker
AssertionError: expected '/workspace' to be '/tmp/telepi-config-wePJp5/workspace-o…' // Object.is equality

Expected: "/tmp/telepi-config-wePJp5/workspace-override"
Received: "/workspace"

 ❯ test/config.test.ts:253:30
    251|     const config = loadConfig();
    252| 
    253|     expect(config.workspace).toBe(overriddenWorkspace);
       |                              ^
    254|   });
    255| 

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/3]⎯


 Test Files  1 failed | 31 passed (32)
      Tests  3 failed | 438 passed | 1 skipped (442)
   Start at  14:41:22
   Duration  9.23s (transform 654ms, setup 0ms, collect 3.18s, tests 1.86s, environment 3ms, prepare 1.61s)

This pull request was generated by YakBarber using AI and checked against your tests. Please review before merging. Questions: reply to this pull request

Check the whole repository yourself: npx yakbarber check lists every AI model and API it calls that is being retired, with the date and the company's own words. Free, read-only, runs locally (source).

@23821 23821 changed the title [YakBarber] OpenAI: whisper-1 is shut down; move transcription to gpt-transcribe fix: move transcription off whisper-1 before February 26, 2027 Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant