Local speech recognition & synthesis

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.

Prepare source and CLI
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
A desk with a recorder and notebook beside a compact desktop
Check the first result with one short recording that plays correctly.

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

Transcribe the recording
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --audio-path ./meeting.wav

For 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.

Load a long file incrementally
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --audio-path ./meeting.wav \
  --incremental-loading

Test 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.

Microphone input
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --stream
A meeting table with a laptop, microphone, and notebooks
Add long files and microphone input after the first transcription works.

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.

A desk with a microphone and a laptop displaying two audio waveforms
Check names and numbers against the audio before summarizing.

Terminology notes

  1. Core ML — Apple’s framework for running machine-learning models on its devices.

    Back to the text
  2. CLI — Short for Command-Line Interface: operating a program by entering commands in a terminal.

    Back to the text
  3. Speaker diarization — The task of dividing a recording into who-spoke-when segments and labeling them by speaker.

    Back to the text
  4. Neural Engine — Dedicated hardware in Apple Silicon for neural-network computation.

    Back to the text
  5. CPU — 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 text
  6. GPU — A processor designed to handle many calculations in parallel. It performs model computations during AI inference.

    Back to the text
  7. Large 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.