Skip to content

perf(stt-whisper): close the audio file handle after calling the OpenAI transcription API#8528

Merged
Soulter merged 2 commits into
AstrBotDevs:masterfrom
tjc6666666666666:patch-9
Jun 3, 2026
Merged

perf(stt-whisper): close the audio file handle after calling the OpenAI transcription API#8528
Soulter merged 2 commits into
AstrBotDevs:masterfrom
tjc6666666666666:patch-9

Conversation

@tjc6666666666666
Copy link
Copy Markdown
Contributor

@tjc6666666666666 tjc6666666666666 commented Jun 2, 2026

核心问题:whisper_api_source.py 第 121 行用 open(audio_url, "rb") 打开文件后,文件句柄没有被关闭,导致 Windows 上报 "另一个程序正在使用此文件" 的错误,temp wav 文件无法删除。 修复方案:在调用 OpenAI API 后关闭文件句柄再删除临时文件。

Modifications / 改动点

  • This is NOT a breaking change. / 这不是一个破坏性变更。

Screenshots or Test Results / 运行截图或测试结果


Checklist / 检查清单

  • 😊 If there are new features added in the PR, I have discussed it with the authors through issues/emails, etc.
    / 如果 PR 中有新加入的功能,已经通过 Issue / 邮件等方式和作者讨论过。

  • 👀 My changes have been well-tested, and "Verification Steps" and "Screenshots" have been provided above.
    / 我的更改经过了良好的测试,并已在上方提供了“验证步骤”和“运行截图”

  • 🤓 I have ensured that no new dependencies are introduced, OR if new dependencies are introduced, they have been added to the appropriate locations in requirements.txt and pyproject.toml.
    / 我确保没有引入新依赖库,或者引入了新依赖库的同时将其添加到 requirements.txtpyproject.toml 文件相应位置。

  • 😮 My changes do not introduce malicious code.
    / 我的更改没有引入恶意代码。

Summary by Sourcery

Bug Fixes:

  • Close the audio file handle after calling the OpenAI transcription API so temporary WAV files can be deleted without file-in-use errors on Windows.

核心问题:whisper_api_source.py 第 121 行用 open(audio_url, "rb") 打开文件后,文件句柄没有被关闭,导致 Windows 上报 "另一个程序正在使用此文件" 的错误,temp wav 文件无法删除。
修复方案:在调用 OpenAI API 后关闭文件句柄再删除临时文件。
@dosubot dosubot Bot added size:S This PR changes 10-29 lines, ignoring generated files. area:provider The bug / feature is about AI Provider, Models, LLM Agent, LLM Agent Runner. labels Jun 2, 2026
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • Consider using a context manager (with open(audio_url, 'rb') as audio_file:) instead of manually managing try/finally for the file handle to keep the code slightly more idiomatic and compact while preserving the same behavior.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider using a context manager (`with open(audio_url, 'rb') as audio_file:`) instead of manually managing `try/finally` for the file handle to keep the code slightly more idiomatic and compact while preserving the same behavior.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request modifies the Whisper API source to ensure that the opened audio file is properly closed after the transcription request. The reviewer suggested using a with statement (context manager) instead of a try...finally block to manage the file resource in a more Pythonic and concise manner.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread astrbot/core/provider/sources/whisper_api_source.py Outdated
@dosubot dosubot Bot added size:XS This PR changes 0-9 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. labels Jun 3, 2026
@Soulter Soulter changed the title 在调用 OpenAI API 后关闭文件句柄再删除临时文件。 perf: close the audio file handle after calling the OpenAI transcription API Jun 3, 2026
@Soulter Soulter changed the title perf: close the audio file handle after calling the OpenAI transcription API perf(stt-whisper): close the audio file handle after calling the OpenAI transcription API Jun 3, 2026
@Soulter Soulter merged commit 6a467fc into AstrBotDevs:master Jun 3, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:provider The bug / feature is about AI Provider, Models, LLM Agent, LLM Agent Runner. size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants