# Kokoro Store runtime notices and source

This candidate retains the pinned Kokoro-82M-8bit model, Heart for English and Alpha for Hindi, under its Apache-2.0 terms. It replaces the eSpeak/phonemizer pronunciation chain with Misaki's Apache-2.0 English frontend, Apache-2.0 g2p_en NumPy inference for English fallback, and Epitran's MIT Hindi rules. Pronunciation can differ from the earlier eSpeak frontend. The normal pronunciation substitution workflow and imported PCM WAV remain available. No macOS system voices, phonemizer, eSpeak, pcaudiolib or GPL-enabled FFmpeg are supplied or used by this Store narration route.

The English inference file is derived from g2p_en 2.1.0 by Kyubyong Park and Jongseok Kim. Its Apache-2.0 licence is supplied alongside the derivative and checkpoint. The adaptation omits NLTK, its downloads and dictionary lookup, and the unused Distance dependency. Hindi IPA normalization maps the Epitran output into Kokoro's fixed supported alphabet; unsupported input fails with a repair message instead of being silently omitted.

FFmpeg 7.1.1 and its shared libraries are licensed under the GNU Lesser General Public License version 2.1 or later, copyright the FFmpeg contributors. The complete matching unmodified upstream source, licence, build configuration and build tools are included under `runtime/licenses/ffmpeg`. This software uses libraries from the FFmpeg project under the LGPLv2.1. See https://ffmpeg.org/. The controlled build disables GPL, nonfree, version-3, network and external-library autodetection options. Encoding uses Apple's VideoToolbox H.264 implementation. No x264, x265, Xvid or Rubber Band library is included.

num2words 0.5.14 is covered by LGPL-2.1-or-later. Its complete unmodified source archive and licence are included under `runtime/licenses/python/num2words`; its editable Python implementation is in `runtime/venv/lib/python3.11/site-packages/num2words`. The MPL-2.0 certifi and tqdm Python source and licences are included in their installed packages and copied notices; recipients retain their MPL source rights. MARISA’s BSD-2-Clause option is used. Python, Node.js, MLX, MLX Audio, NumPy, pandas, spaCy, the language model and other selected dependencies retain their individual notices. The Python distribution inventory and copied notices are under `runtime/licenses/python`. Other native notices are under `runtime/licenses`. The bundled liblzma is 0BSD; GNU XZ command-line scripts are not included.

## Modification and replacement

Publisher-owned application terms do not replace third-party licences. Third-party rights take precedence for their components. Recipients may modify the LGPL components and reverse engineer the application to debug those modifications as permitted by the LGPL; no application term restricts those rights.

For FFmpeg, unpack the supplied source into a writable directory, follow `BUILD.txt`, and choose a writable install prefix. No source patch was applied. FFmpeg/FFprobe load the matching adjacent libav shared libraries through loader-relative paths. The Swift pipeline runs these programs as separate processes and does not statically link FFmpeg. To install a private modified copy, duplicate the app, replace the compatible programs and shared libraries under `runtime/bin` and `runtime/lib`, preserve relative load paths, and sign changed code and the enclosing app with your own signing identity or an ad-hoc local signature. Rebuild matching tools together if changing the ABI. The modified app does not retain the publisher's App Store signature.

For num2words, edit or replace its supplied Python package in a private writable copy of the app, preserving the public module API used by the pronunciation frontend. No compilation or publisher source is needed to replace that pure-Python library. Re-sign the enclosing app to seal your private modified resources. Keep the original app and backups of your projects. No private signing keys or credentials are supplied.
