Description
With parakeet-mlx==0.5.0 and mlx==0.30.6, streaming transcription via transcribe_stream() / add_audio() fails immediately with a TypeError from MLX's concat/concatenate functions.
Error
TypeError: concat(): incompatible function arguments. The following argument types are supported:
1. concat(arrays: list[array], axis: Optional[int] = 0, *, stream: Union[None, Stream, Device] = None) -> array
Invoked with types: list, kwargs = { axis: int }
Root Cause
Two issues:
-
mx.concat is removed/broken in MLX 0.30.6 — should use mx.concatenate instead. Affected files:
parakeet.py:1004 — mx.concat([self.audio_buffer, audio], axis=0)
parakeet.py:1025 — mx.concat([self.mel_buffer, mel], axis=1)
audio.py:146 — mx.concat([x[:1], ...], axis=0)
conformer.py:293 — mx.concat([...])
-
axis cannot be passed as a keyword argument in MLX 0.30.6's pybind11 bindings — it must be positional. All calls like mx.concatenate([...], axis=N) need to become mx.concatenate([...], N). Affected files:
cache.py — multiple occurrences with axis=1 and axis=2
Additionally, add_audio() in parakeet.py receives numpy arrays from audio capture, but mx.concatenate can't handle mixed np.ndarray / mx.array lists. Adding if not isinstance(audio, mx.array): audio = mx.array(audio) before the concatenate call fixes this.
Environment
- macOS 15 (Apple Silicon)
- Python 3.14.0
mlx==0.30.6
parakeet-mlx==0.5.0
Workaround
Replace all mx.concat → mx.concatenate, change axis=N keyword args to positional N, and convert numpy input to mx.array in add_audio().
Description
With
parakeet-mlx==0.5.0andmlx==0.30.6, streaming transcription viatranscribe_stream()/add_audio()fails immediately with aTypeErrorfrom MLX'sconcat/concatenatefunctions.Error
Root Cause
Two issues:
mx.concatis removed/broken in MLX 0.30.6 — should usemx.concatenateinstead. Affected files:parakeet.py:1004—mx.concat([self.audio_buffer, audio], axis=0)parakeet.py:1025—mx.concat([self.mel_buffer, mel], axis=1)audio.py:146—mx.concat([x[:1], ...], axis=0)conformer.py:293—mx.concat([...])axiscannot be passed as a keyword argument in MLX 0.30.6's pybind11 bindings — it must be positional. All calls likemx.concatenate([...], axis=N)need to becomemx.concatenate([...], N). Affected files:cache.py— multiple occurrences withaxis=1andaxis=2Additionally,
add_audio()inparakeet.pyreceives numpy arrays from audio capture, butmx.concatenatecan't handle mixednp.ndarray/mx.arraylists. Addingif not isinstance(audio, mx.array): audio = mx.array(audio)before the concatenate call fixes this.Environment
mlx==0.30.6parakeet-mlx==0.5.0Workaround
Replace all
mx.concat→mx.concatenate, changeaxis=Nkeyword args to positionalN, and convert numpy input to mx.array inadd_audio().