Skip to content

fix(backend): pin miniaudio for mlx-audio STT (#505)#506

Merged
jamiepine merged 1 commit intomainfrom
fix/mlx-miniaudio-missing
Apr 20, 2026
Merged

fix(backend): pin miniaudio for mlx-audio STT (#505)#506
jamiepine merged 1 commit intomainfrom
fix/mlx-miniaudio-missing

Conversation

@jamiepine
Copy link
Copy Markdown
Owner

@jamiepine jamiepine commented Apr 20, 2026

Summary

  • Fresh macOS M1 installs failed to transcribe with ModuleNotFoundError: miniaudio (miniaudio is missing #505)
  • mlx-audio is installed --no-deps to avoid its transformers>=5.x pin, so its transitive deps have to be declared elsewhere
  • miniaudio (imported by mlx_audio.stt) was not listed in either requirements.txt or requirements-mlx.txt — the comments in both files wrongly claimed it came from another engine
  • Pin it in requirements-mlx.txt (Apple Silicon only — PyTorch STT uses HF transformers and doesn't need it) and correct the stale comments

Fixes #505

Test plan

  • Build macOS release via CI and confirm transcription works end-to-end on a fresh install
  • Spot-check that MLX TTS (Qwen via mlx_audio.tts) still loads — unchanged path, but same --no-deps install
  • Confirm no regression on Linux/Windows builds (they don't install requirements-mlx.txt)

🤖 Generated with Claude Code


Note

Low Risk
Low risk: only adjusts Apple-Silicon MLX dependency installation to include a missing runtime package and updates related CI comments; no application logic changes.

Overview
Fixes fresh Apple Silicon installs failing to transcribe by explicitly adding miniaudio>=1.59 to backend/requirements-mlx.txt (since mlx-audio is installed with --no-deps).

Updates the release workflow comments in .github/workflows/release.yml and requirements-mlx.txt to reflect that miniaudio is not pulled transitively and must be installed separately for mlx_audio.stt.

Reviewed by Cursor Bugbot for commit 791c050. Configure here.

Summary by CodeRabbit

  • Bug Fixes

    • Fixed audio library availability on Apple Silicon builds by explicitly declaring the miniaudio dependency for speech-to-text functionality.
  • Chores

    • Updated dependency configuration to clarify which packages are explicitly required versus transitively included by other engines.

mlx-audio's STT path imports miniaudio, but we install mlx-audio
--no-deps to dodge its transformers>=5.x pin. Nothing else pulls
miniaudio transitively, so fresh Apple Silicon installs fail to
transcribe with ModuleNotFoundError: miniaudio. Listed explicitly
and updated the stale comments in requirements-mlx.txt and
release.yml that claimed it came from other engines.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 20, 2026

📝 Walkthrough

Walkthrough

The PR adds the missing miniaudio>=1.59 dependency to the MLX-specific requirements file and updates the release workflow comment to clarify that miniaudio is explicitly pulled from requirements-mlx.txt for mlx_audio.stt support, addressing the missing dependency issue on fresh MacOS M1 installations.

Changes

Cohort / File(s) Summary
MLX dependency configuration
backend/requirements-mlx.txt
Added explicit miniaudio>=1.59 dependency for MLX audio STT support on Apple Silicon; updated comment to reflect that miniaudio is not transitively provided by other packages.
Release workflow documentation
.github/workflows/release.yml
Updated MLX-only dependency installation comment to clarify that miniaudio comes from requirements-mlx.txt (for mlx_audio.stt), while remaining dependencies are pulled by other engines.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Poem

🐰 A rabbit hops through dependency trees,
Finding miniaudio with ease—
MacOS M1 now can transcribe,
No missing packages to describe! 🎵

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and accurately summarizes the main change: pinning miniaudio in the MLX requirements for Speech-to-Text functionality on Apple Silicon.
Linked Issues check ✅ Passed The code changes directly address issue #505 by adding miniaudio to requirements-mlx.txt and correcting stale comments, ensuring miniaudio is installed for Apple Silicon STT without relying on transitive dependencies.
Out of Scope Changes check ✅ Passed All changes are directly related to resolving the miniaudio dependency issue for MLX-audio STT; no out-of-scope modifications were introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/mlx-miniaudio-missing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@backend/requirements-mlx.txt`:
- Around line 19-22: Update the comment text that currently reads "(see
.github/workflows/release.yml)." to use the preferred wording "GitHub workflow"
with a capital H for consistency; locate the comment containing
".github/workflows/release.yml" in backend/requirements-mlx.txt (the block
mentioning mlx-audio runtime deps) and change "github workflow" to "GitHub
workflow".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9b71aeb8-e9ef-4c10-8858-67e829f41672

📥 Commits

Reviewing files that changed from the base of the PR and between 5aa1677 and 791c050.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • backend/requirements-mlx.txt

Comment on lines +19 to +22
# (see .github/workflows/release.yml). Most other mlx-audio runtime deps
# (huggingface_hub, librosa, mlx-lm, numba, numpy, protobuf, pyloudnorm,
# sounddevice, tqdm) are already in requirements.txt or pulled in by
# other engines.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Minor wording polish in comment block.

At Line 19, consider “GitHub workflow” wording (capital H) for consistency in docs/comments.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~19-~19: The official name of this software platform is spelled with a capital “H”.
Context: ...x-audio==0.4.1` after this file # (see .github/workflows/release.yml). Most other mlx-...

(GITHUB)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@backend/requirements-mlx.txt` around lines 19 - 22, Update the comment text
that currently reads "(see .github/workflows/release.yml)." to use the preferred
wording "GitHub workflow" with a capital H for consistency; locate the comment
containing ".github/workflows/release.yml" in backend/requirements-mlx.txt (the
block mentioning mlx-audio runtime deps) and change "github workflow" to "GitHub
workflow".

@jamiepine jamiepine merged commit 21dd3b8 into main Apr 20, 2026
3 checks passed
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.

miniaudio is missing

1 participant