Guide

How to Run Kokoro TTS on a Mac and When an App Is Easier

A practical Kokoro TTS Mac guide covering MLX and Python setup, voices, languages, pronunciation, licensing, and when Qwen3-TTS is a better fit.

·9 min read

Kokoro is one of the easiest local TTS models to recommend on an Apple Silicon Mac. It has 82 million parameters, runs through Mac-focused MLX tooling, offers more than 50 preset voices, and uses an Apache 2.0 license that permits commercial use under the license terms. Choose a manual MLX or Python setup if you want code-level control. Choose a native app such as Murmur if the real job is importing scripts, previewing voices, queueing sections, and exporting audio every week. Kokoro is not a voice-cloning model and it is not the best answer for every language or dramatic performance. If you need cloning, natural-language voice design, or broader expression controls, Qwen3-TTS or Chatterbox may fit better.

Choose Your Kokoro Mac Path

PathBest forWhat you manageMain tradeoff
MLX-Audio CLI or PythonDevelopers and automationPython, packages, model ID, commands, filesMost control, more setup
Official Kokoro Python libraryTesting the upstream pipelinePython, Misaki, eSpeak, PyTorch device pathOfficial examples, separate from MLX
Murmur native Mac workflowCreators and repeated productionScripts, voices, projects, export$49 one-time, no free trial
Built-in macOS speechBasic read-aloudSystem voice and playback settingsNot the same model or production workflow

In This Guide

  1. What Kokoro is and what it does not do
  2. Apple Silicon requirements
  3. How to install Kokoro with MLX-Audio
  4. How the official Python route differs
  5. Kokoro voices and language codes
  6. Kokoro versus Qwen3-TTS
  7. Pronunciation and long-script workflow
  8. Commercial-use licensing and FAQs

What Kokoro TTS Is

Kokoro is an open-weight text-to-speech model with 82 million parameters. That is unusually compact beside the 0.6B and 1.7B Qwen3-TTS checkpoints or the multi-billion-parameter Fish Audio S2 Pro model. Small does not automatically mean better or worse. It means Kokoro is easier to place in a fast local narration workflow, especially when a creator needs repeated revisions rather than one polished demo.

The official Kokoro repository documents American English, British English, Spanish, French, Hindi, Italian, Japanese, Brazilian Portuguese, and Mandarin Chinese pipelines. The official example writes 24 kHz WAV audio. Kokoro uses the Misaki grapheme-to-phoneme library, with eSpeak for English out-of-distribution fallback and some non-English processing.

Kokoro supplies preset voices. It does not natively clone a person's voice from a recording, and it does not create a completely new speaker from a natural-language description. Those jobs belong to other model families. Kokoro's strength is the simpler loop: pick a compatible language and voice, set a speed, generate, listen, revise, and export.

What You Need on a Mac

  • An Apple Silicon Mac for the documented MLX-Audio path.
  • Python 3.10 or newer for current MLX-Audio installation.
  • Enough storage for the selected Kokoro checkpoint and generated audio.
  • ffmpeg only if you need MP3, FLAC, OGG, Opus, or Vorbis encoding. WAV works without ffmpeg.
  • A representative script that includes the names, numbers, acronyms, and punctuation you actually publish.

Apple's MLX framework is designed for Apple Silicon. It uses unified memory shared across CPU and GPU operations, so MLX arrays do not need explicit transfers between those devices. That architecture makes MLX a practical base for Mac-native machine learning, but it does not guarantee the same generation speed on every M-series chip or memory configuration.

How to Install Kokoro With MLX-Audio

MLX-Audio is a community library built for speech work on Apple Silicon. Its current documentation supports Kokoro bf16, 8-bit, 6-bit, and 4-bit repositories. Install the package in a Python environment with this command:

<code>pip install mlx-audio</code>

MLX-Audio installation command

Then generate and play a short test with the bf16 Kokoro checkpoint:

<code>mlx_audio.tts.generate --model mlx-community/Kokoro-82M-bf16 --text &quot;Hello from Kokoro running locally on my Mac.&quot; --voice af_heart --play</code>

Adapted from the current MLX-Audio CLI format

Add --output_path ./kokoro-output when you want a specific output directory. MLX-Audio can also stream, save, or join generated segments. Its documentation notes that multiple segments are otherwise written as numbered files. Read the current MLX-Audio repository before copying commands into automation because package versions and model IDs can change.

The MLX-Audio Python API

The Python API loads mlx-community/Kokoro-82M-bf16 with MLX-Audio's load_model utility, then calls the model's generation function with text, a voice such as af_heart, speed, and a matching language code. Use this route when Kokoro needs to sit inside a larger script, local API, batch process, or custom app.

The Official Kokoro Python Route Is Different

The upstream Kokoro package is a separate PyTorch path. The official examples install Kokoro and SoundFile, then create a KPipeline. They also install eSpeak NG. On an Apple M1, M2, M3, or M4 Mac, the repository suggests setting PYTORCH_ENABLE_MPS_FALLBACK=1 when running the script.

  1. Install the Python packages with <code>pip install &quot;kokoro&gt;=0.9.4&quot; soundfile</code>.
  2. Install the phonemizer dependency on macOS with <code>brew install espeak-ng</code>.
  3. Create a <code>KPipeline</code> using the language code that matches the voice.
  4. Generate a short sample before processing a long script.
  5. Use <code>PYTORCH_ENABLE_MPS_FALLBACK=1</code> for the official PyTorch Mac acceleration path when needed.

Do not combine instructions casually. The PyTorch environment variable does not configure MLX, and MLX-Audio's model loader is not the same API as the official Kokoro KPipeline. Pick one stack, follow its current documentation, and record the package version in any production automation.

Kokoro Voices and Languages on Mac

The current MLX-Audio documentation lists 54 Kokoro preset voices. Voice IDs encode a language or accent group and a speaker category. For example, af_heart is an American English female preset, bm_george is a British English male preset, jf_alpha is Japanese, and zf_xiaobei is Mandarin Chinese. The exact voice must match the selected language code.

Language or accentCodeExample voiceExtra note
American Englishaaf_heartDefault in many examples
British Englishbbm_georgeUse a British-compatible voice
Spanisheef_doraTest names and regional vocabulary
Frenchfff_siwisFrench pipeline
Hindihhf_alphaHindi pipeline
Italianiif_saraItalian pipeline
Japanesejjf_alphaMisaki Japanese extras may be needed
Brazilian Portugueseppf_doraPortuguese pipeline
Mandarin Chinesezzf_xiaobeiMisaki Mandarin extras may be needed

More voices do not mean every voice is equally strong for every script. Generate the same 100 to 200 words with three plausible presets. Include proper nouns, dates, prices, abbreviations, and a sentence with the emotional tone you need. Choose the voice that survives the difficult parts, not the voice that sounds nicest saying one easy line. Browse Murmur's local voice workflows when you want to compare model families in the app.

Kokoro vs Qwen3-TTS on Mac

DecisionKokoroQwen3-TTS
Checkpoint size82M parameters0.6B Base or 1.7B VoiceDesign
Voice sourcePreset voicesReference cloning or description-based design
Documented languages9 language or accent pipelines10 languages
Voice cloningNoYes with Base
Voice designNoYes with 1.7B VoiceDesign
LicenseApache 2.0Apache 2.0
Best project typeFast narration and repeated draftsCloning, multilingual work, designed voices

Kokoro wins on simplicity and footprint. Qwen3-TTS wins when the voice itself is part of the creative requirement. The 0.6B Qwen3-TTS Base model accepts reference audio for rapid cloning, while the 1.7B VoiceDesign model creates a speaker from a written description. Qwen's 10 languages are Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, and Italian.

Do not turn the comparison into an unsupported speed promise. Qwen reports streaming latency as low as 97 ms in its technical materials, but that is not a benchmark for every Mac. Kokoro's smaller parameter count suggests a lighter workflow, yet actual time depends on model precision, text length, chunking, runtime version, and chip. See the Qwen3-TTS guide for Mac creators and the broader best local TTS models comparison before choosing.

Pronunciation and Chunking for Long Scripts

A clean long-form workflow starts before generation. TTS reads what you write, not what you intended. Expand ambiguous abbreviations, write dates in the form you want spoken, and replace visual formatting that has no spoken equivalent. Add punctuation where a narrator should breathe. If a product name is consistently wrong, use a phonetic spelling in the generation copy while preserving the original in the published text.

  1. Normalize headings, bullets, URLs, symbols, and abbreviations into spoken text.
  2. Test one paragraph containing every difficult name and number.
  3. Split long work at semantic boundaries such as paragraphs or scenes, not arbitrary character counts.
  4. Keep the selected language code and voice compatible for every segment.
  5. Listen across joins for a sudden change in pace, energy, or silence.
  6. Export a lossless WAV master before compressing for distribution.
  7. Save the final generation text beside the audio so revisions remain reproducible.

Chunking improves recoverability as well as pronunciation. If a five-minute section needs one correction, you can regenerate that section instead of an entire chapter. The downside is continuity. Keep voice, speed, language, and text-normalization rules fixed, then review the transitions in headphones before publishing. The audiobook narration workflow covers the larger production process.

Using Kokoro Through Murmur

Murmur's current model catalog marks Kokoro as bundled and routes it through a native Swift service built on MLX-Audio. The app exposes American and British English, Spanish, Japanese, Mandarin Chinese, French, Hindi, Italian, and Portuguese voices, plus speed control. The current code defines more than 50 Kokoro presets. Because the model is bundled, creators can start with Kokoro without selecting a multi-gigabyte optional checkpoint.

The productized route is useful when the task is not machine-learning experimentation. Murmur handles voice selection, text input, projects, queueing, preview, and export in a Mac interface. It also lets a creator move from Kokoro to Qwen3-TTS, Chatterbox, or another supported model without building each user interface from scratch. Learn how the local runtime works in plain English in What Is MLX TTS?.

Murmur costs $49 one-time. There is no free trial, and the purchase has a 7-day refund policy. Larger optional models still need to download before local use, and every model keeps its own license terms. An app can simplify the workflow, but it cannot convert a non-commercial model license into a commercial one.

Kokoro Commercial-Use and Privacy Caveats

Kokoro's official repository and weights use Apache 2.0. That permissive license allows commercial use, modification, and distribution subject to its terms, including preserving required license and notice material when distributing covered software or derivatives. This is a model-license answer, not legal advice about an entire project.

You still need rights to the script, music, sound effects, trademarks, and any other assets in the finished work. Kokoro uses preset voices rather than cloning an uploaded person, which removes one consent decision but not every rights question. Local generation also improves script privacy only when the surrounding workflow remains local. Cloud storage, online transcription, collaboration tools, and backup services can still transmit the source text or audio.

Frequently Asked Questions

Use Kokoro without maintaining a Python project

Murmur bundles Kokoro into a local Mac workflow with voices, previews, projects, queueing, and export. It costs $49 one-time, with no free trial and a 7-day refund policy.

macOS 15+ · Apple Silicon required · 7-day refund policy