Local speech recognition & synthesis
Last updated
Transcribe Korean recordings on a Mac with WhisperKit
Turn the recording into text, then summarize it with your local LLM.
WhisperKit runs Whisper speech-recognition models on Apple devices using Core ML1. Choose a multilingual model for Korean, provide an audio file, and receive a transcript. Start with one file in the CLI2 before moving to longer recordings or microphone input.
The example below uses the CLI to process one audio file on an Apple Silicon Mac. A short Korean recording with clear speech makes the first output easy to check. Use other people's recordings only with their permission. WhisperKit
Prepare the build environment and recording
Prepare macOS 14 or later and Xcode 16 or later. Building current source also requires the Swift tools version specified in the repository's Package.swift. After installing Xcode, check the selected tools with xcodebuild -version and swift --version.
Clone the source with the commands below, then place a short WAV recording named meeting.wav in the argmax-oss-swift folder. MP3, M4A, and FLAC inputs are also supported. For another file, change --audio-path in the following commands to its actual filename. Check that the recording plays normally before transcription.
git clone --depth 1 https://github.com/argmaxinc/argmax-oss-swift.git
cd argmax-oss-swift
xcodebuild -version
swift --version
swift run argmax-cli transcribe --help
Check the selected app's inference backend on Apple devices
WhisperKit is a Swift implementation that converts Whisper models to Core ML for Apple Silicon. Apps that select WhisperKit use this path for transcription. FluidAudio is a separate Swift SDK for Parakeet-based transcription and diarization3; its README describes the ANE4 path.
Check Korean support, diarization, and input file formats for the model and app you plan to use. WhisperKit · FluidAudio
Run your first multilingual transcription
You can start with large-v3-v20240930_626MB. Downloading the model requires a network connection and storage; transcription follows after initialization. Check that the terminal prints the words spoken in your recording. Model selection and CLI
swift run argmax-cli transcribe \
--model large-v3-v20240930_626MB \
--audio-path ./meeting.wavFor Korean, choose a multilingual model rather than an English-only variant such as base.en or small.en. You can use tiny for a quick execution check, then assess meeting-note quality with the multilingual model you intend to use. Compare names, product terms, and numbers against the recording.
Use bounded loading for long files; test the microphone separately
Add --incremental-loading to avoid reading an entire long recording into memory at once. It loads and processes bounded chunks. Compare the same file with and without it, recording completion time, memory pressure, and transcript output.
swift run argmax-cli transcribe \
--model large-v3-v20240930_626MB \
--audio-path ./meeting.wav \
--incremental-loadingTest microphone input with --stream instead of an audio path. Grant microphone permission to the running app when macOS asks. Getting file transcription working first makes model problems easier to distinguish from input-device problems.
swift run argmax-cli transcribe \
--model large-v3-v20240930_626MB \
--stream
Inspect Neural Engine use alongside transcription quality
After transcription succeeds, inspect the operation placement of the Core ML model you used. The Xcode Performance report on the same Mac shows which computations use the CPU5, GPU6, and ANE. Follow the Neural Engine inspection guide to open and inspect the model file.
Record model initialization separately from subsequent transcription. Even fast output creates extra work if names or amounts are wrong. Correct the transcript against the recording before sending it to an LLM7 so recognition errors are less likely to propagate into the summary.
Where to start when the first run stalls
For a Swift build failure, inspect the first error and swift --version. If model downloading stops, check the network and disk space. If the file cannot be opened, check the working directory and the actual location of meeting.wav. For an empty transcript, check playback and model selection first.
Once the output is correct, run the same short recording again. Use that baseline to add long files, microphone input, and summarization one at a time. This makes delays easier to locate and helps you judge whether your current Mac is enough.

Terminology notes
Core ML — Apple’s framework for running machine-learning models on its devices.
Back to the textCLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.
Back to the textSpeaker diarization — The task of dividing a recording into who-spoke-when segments and labeling them by speaker.
Back to the textNeural Engine — Dedicated hardware in Apple Silicon for neural-network computation.
Back to the textCPU — The central processor that runs the operating system and general-purpose instructions; in AI workloads it also handles tasks such as preprocessing and data movement.
Back to the textGPU — A processor designed to handle many calculations in parallel. It performs model computations during AI inference.
Back to the textLarge language model — A model trained on large text datasets to learn language patterns and process or generate text in context.
Back to the text
Frequently asked questions
- What should you check first in this article?
- WhisperKit runs Whisper speech-recognition models on Apple devices using Core ML. Choose a multilingual model for Korean, provide an audio file, and receive a transcript. Start with one file in the CLI before moving to longer recordings or microphone input.
Read next
read first
Can a Mac Neural Engine run local AI? GPU, MLX, and ANE roles
Local speech recognition & synthesis
What is FluidAudio? Local transcription, speakers, and speech on Mac
Response speed and acceleration
Is the Neural Engine actually working? Inspect Core ML execution
Local speech recognition & synthesis
Local AI speech recognition: transcribe on your own PC
