The Python API provides several ways to interact with the models, from high-level transcription to low-level log-mel processing.
Basic Transcription
Use from_pretrained to load a model and .transcribe() to get results.
from parakeet_mlx import from_pretrained
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
result = model.transcribe("audio_file.wav")
print(result.text)
Accessing Timestamps
The result.sentences attribute returns a list of AlignedSentence objects containing timing information.
from parakeet_mlx import from_pretrained
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
result = model.transcribe("audio_file.wav")
# Returns [AlignedSentence(text="...", start=..., end=..., duration=..., tokens=[...])]
print(result.sentences)
Advanced Transcription Configurations
Chunking
For long audio files, specify chunk_duration and overlap_duration.
result = model.transcribe("audio_file.wav", chunk_duration=120.0, overlap_duration=15.0)
Beam Decoding
Requires DecodingConfig and Beam (though Beam is often implied by the config structure).
from parakeet_mlx import from_pretrained, DecodingConfig
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
config = DecodingConfig(
decoding={"beam_size": 5, "length_penalty": 0.013, "patience": 3.5, "duration_reward": 0.67}
)
result = model.transcribe("audio_file.wav", decoding_config=config)
Sentence Splitting
Control how sentences are segmented using SentenceConfig.
from parakeet_mlx import from_pretrained, DecodingConfig, SentenceConfig
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
config = DecodingConfig(
sentence=SentenceConfig(max_words=30, silence_gap=5.0, max_duration=40.0)
)
result = model.transcribe("audio_file.wav", decoding_config=config)
Local Attention
To reduce memory usage for long audio, switch the attention model.
model.encoder.set_attention_model("rel_pos_local_attn", (256, 256))
result = model.transcribe("audio_file.wav")