Changelog

Generated by releaseledger. Manual edits may be overwritten. Update releaseledger entries and rebuild this file instead.

[0.10.4] - Unreleased

Added

  • Added a versioned request API compatibility contract and installed-wheel checks

[0.10.3] - 2026-10-04

Added

  • Added transcript-guided English voice enrollment with reusable, model-bound reference-voice conditioning

  • Added transcript-free Inno voice enrollment that exports reusable Kokoro voice packs

Changed

  • Changed voice blending to support canonical = syntax, multi-voice linear interpolation, and row-wise SLERP fallback

[0.10.2] - 2026-10-01

Changed

  • Raised PyKokoro’s minimum supported OnnxVoice version to 0.2.0 while keeping its model-local voice API unchanged

[0.10.1] - 2026-09-29

Fixed

  • Fixed forwarding of SynthesisConfig.cache_dir to OnnxVoice for managed model and voice assets

  • Fixed the long-text example to consume its result iterator before validating the single rendered request

Removed

  • BREAKING: Removed the no-op EspeakConfig and espeak_config options

Documentation

  • Documented cache, discovery, asset progress, and request controls with expanded API guides and grouped examples

Quality

  • Improved import ordering in short-sentence benchmark scripts

[0.10.0] - 2026-09-25

Added

  • Added opt-in token-safe splitting for oversized requests with one rendered result

Changed

  • BREAKING: Changed PyKokoro to render prepared requests as independent results

  • Changed model and ONNX session management to use OnnxVoice

  • Changed and validated the supported companion-library minimum versions

Documentation

  • Documented the request migration, long-text controls, and retained compatibility aliases

Quality

  • Improved regression and integration coverage for the engine boundary

[0.9.10] - 2026-09-17

Added

  • Added output loudness measurement with pipeline integration and configurable normalization

  • Added configurable voice loudness measurement benchmark with policy-driven corpus evaluation

  • Added voice level calibration data and per-voice loudness normalization

Documentation

  • Documented public API type hints and expanded voice documentation in README

[0.9.9] - 2026-09-15

Added

  • Added an English 7M Distill example and preserved asset progress callbacks during pipeline preparation

  • Added metadata-only named-lexicon discovery and made German espeak the implicit lexicon default

  • Added localized short-sentence catalogs, punctuation-aware forms, German Crane readiness, and catalog diagnostics

Changed

  • Changed short-sentence rendering to use timestamp geometry, legal boundaries, adaptive cuts, and controlled fallbacks

Quality

  • Improved short-sentence quality tooling with reproducible latency, diagnostics, parameter sweeps, and reports

[0.9.8] - 2026-09-14

Added

  • Added explicit runtime support for the Vietnamese Ngoc Huyen model profile

  • Added configurable automatic pauses at detected parenthetical boundaries with G2P propagation and example coverage

  • Added an explicitly selectable English 7M distill model profile without changing automatic voice selection

Changed

  • Changed the Vietnamese An Phunl profile to runtime-ready status with its published default voice

Fixed

  • Fixed the default voice selected for the Vietnamese ContextBox profile

  • Fixed the all-voices showcase to handle voices with incomplete registry metadata using language-aware fallback details

  • Fixed Chinese v1.1 vocabulary handling across tokenization and ONNX audio input generation

[0.9.7] - 2026-09-13

Added

  • Added automatic high-confidence clausal-comma pause detection for dependency-aware English segmentation

  • Added configurable short automatic pauses around Phrasplit-detected parenthetical asides

Documentation

  • Documented clausal-comma pauses with a runnable English A/B example and local spaCy setup instructions

[0.9.6] - 2026-09-13

Added

  • Added GitHub-backed Russian model profiles with voice-aware model selection and compatibility validation

Changed

  • Changed pipeline-owned stages to follow model variant changes while preserving custom stages after replacement failures

  • Changed short-sentence defaults to use wrap mode without timestamps and warn on explicit phrase-mode fallback

  • Changed the kokorog2p compatibility floor to 0.9.9

Fixed

  • Fixed traced exceptions being replaced while still recording timing events and debug logs

[0.9.5] - 2026-09-11

Added

  • Added observable lazy runtime asset downloads with byte-level progress callbacks and console reporting

  • Added per-voice metadata and an all-voices showcase for dynamic inventory and labeled audio generation

  • Added standard Python logging for backend, asset, synthesis-stage, and runtime lifecycle diagnostics

  • Added runtime-ready European Portuguese model support with regional pt-PT routing and asset provisioning

[0.9.4] - 2026-09-11

Changed

  • Changed release manifest resolution to select model assets by quality and validate package dependency versions

[0.9.3] - 2026-09-11

Added

  • Added runtime-ready German Anna model support with automatic discovery, asset resolution, and example coverage

[0.9.2] - 2026-09-10

Added

  • Added automatic language-aware routing for mixed-language documents

  • Added explicit G2P fallback and named-lexicon controls

Changed

  • Improved mixed-language frontend selection and caching

[0.9.1] - 2026-09-05

Added

  • Added public resolve_pipeline_config for metadata-only automatic model, source, quality, and voice selection

[0.9.0] - 2026-09-04

Added

  • Added configurable inference caching, traceable ONNX performance metrics, and a German CPU benchmark

  • Added metadata-only model capability discovery with offline registry support

Changed

  • Changed German synthesis to default to the verified Martin v1.2 fp32 profile with explicit legacy model compatibility

  • BREAKING: Changed to require explicit document languages and SSMD spans for mixed-language synthesis

  • Changed the locked dependency set to the v0.9 companion releases

  • Changed the pipeline to prepare frontend text once and render multiple lexicon variants through one acoustic backend

  • Changed audio results to expose prepared and source text while allowing nested language-span overrides

  • Changed German lexicon provisioning to support automatic or installed-only Lexphon data

Fixed

  • Fixed German named-lexicon output to remain within the Kokoro phoneme vocabulary

Documentation

  • Documented explicit language configuration, isolated example artifacts, and sequential example verification

[0.8.8] - 2026-09-01

Added

  • Added registry-backed model discovery and verified distribution asset downloads

  • Added language profiles and split-layout Thai Wayu runtime support

  • Added maintained German model examples and a model and language registry inspection and synthesis example

Changed

  • Changed the pipeline to explicit Spokenform, Phrasplit, and prepared G2P stages with remapped offsets

  • Added ONNX input and waveform diagnostics with configurable invalid-output handling

  • Added named German G2P lexicon selection and profile-aware cache keys

  • Changed the minimum Spokenform dependency to 0.3.5 for the explicit text-preparation pipeline

  • Changed German examples for optional lexicon audio and currency normalization with cents

Fixed

  • Fixed Python 3.10 compatibility when recording installed-model timestamps

  • Fixed parser metadata to preserve an existing spaCy sentence-model selection

[0.8.7] - Unreleased

Added

  • Added model-derived word timings to audio results with clean-text offsets and sample positions

Changed

  • Raised the minimum PhraseSplit version to 0.3.6 and the SSMD version to 0.8.4

  • Plain-text sentence metadata now comes from the PhraseSplit operation that produced the document segments

Fixed

  • Fixed timing alignment for named duration outputs and final-waveform transformations

Quality

  • Removed the separate plain-text PhraseSplit model-resolution preflight pass

[0.8.6] - 2026-08-23

Added

  • Added low-startup-latency sentence streaming playback through one persistent bounded output stream

  • Added sentence audio units to the prepared-unit rendering API

  • Added model-derived WordTiming metadata to audio results for timestamp-capable Kokoro models

Fixed

  • Fixed public timing offsets and fallback ownership to track the final returned waveform

Documentation

  • Documented global document preparation with lazy sentence audio generation and streaming examples

  • Documented clean-text character offsets, sample-domain timing semantics, and unsupported waveform behavior

[0.8.5] - 2026-08-15

Added

  • Added polynorm benchmark suite with evaluation harness, phoneme data generation, and CI workflow

Fixed

  • Fixed polynorm benchmark evaluation and test harness stability

[0.8.4] - 2026-08-15

Added

  • Added configurable emphasis gain scaling with numeric dB resolution and a bounded emphasis_gain_scale setting

[0.8.3] - 2026-08-06

Added

  • Added a spoken-form showcase for raw structured text through the PyKokoro pipeline

  • Added configurable SSMD emphasis gain scaling for gain-only automatic emphasis approximation

Changed

  • Changed the kokorog2p minimum to 0.8.0 and enabled source-aware Spokenform preparation

Documentation

  • Documented automatic kokorog2p spoken-form preparation separately from explicit SSMD say-as overrides

[0.8.2] - 2026-08-05

Changed

  • German synthesis defaults to the verified Martin v1.2 fp32 profile with automatic language-aware model and voice resolution

  • GitHub v1.0 model assets use the embedded vocabulary and no longer require a HuggingFace config download

Fixed

  • Fixed managed HuggingFace voice loading to retain the canonical archive file path instead of the containing directory

[0.8.1] - 2026-08-04

Added

  • Added paragraph-unit preparation and streaming for bounded, resumable document rendering

  • Added tri-state spaCy model policy with automatic local model discovery and with_spacy_model() helper

Changed

  • Changed documentation to pipeline-first API and archived legacy examples

Fixed

  • Fixed SSMD pause precedence for explicit zero durations and voice-change boundaries

[0.8.0] - 2026-08-01

Added

  • Added compact AudioResult retention controls and explicit audio-release methods

  • Added configurable AudioSig WSOLA, ESOLA, TD-PSOLA, and phase-vocoder prosody backends with a strict comparison harness

Changed

  • Changed pipeline result finalization to preserve markers while releasing optional segment audio

  • Changed Kokoro teardown to release dependent backend resources deterministically and idempotently

  • Changed combined speech prosody processing to one AudioSig compositor pass with WSOLA as the default and configured fallback behavior

Documentation

  • Documented compact result memory behavior, ownership, release semantics, and the limits of non-streaming generation

  • Documented prosody backend constraints, experimental status, comparison workflow, and segment-level speech-quality limitations

[0.7.4] - 2026-07-30

Changed

  • Changed SSMD emphasis to metadata-preserving by default with opt-in audio approximation

  • Added explicit SSMD emphasis policies and diagnostics for plain, approximate, warning, and error handling

Documentation

  • Fixed the tokenizer configuration example in the basic usage documentation

  • Improved user documentation examples and installation guidance across the supported workflows

[0.7.2] - 2026-07-29

Added

  • Added default-safe SSMD 0.8 front-matter parsing with title and document metadata

  • Added portable provider voice bindings, deterministic pause-default precedence, marker offsets, resolver-based audio annotations, and explicit capability diagnostics

Changed

  • Raised the SSMD dependency window to >=0.8.0,<0.9 and documented literal-header migration

[0.7.1] - 2026-07-28

Added

  • Added capability-driven ONNX execution-provider resolution for runtime-reported providers including NNAPI and XNNPACK

  • Added source-, variant-, and quality-aware model asset inspection APIs

Fixed

  • Fixed Kokoro downloads and status checks to use exact model, config, and voice archive paths

Documentation

  • Documented Android/Termux provider selection and dependency-light asset inspection

[0.7.0] - 2026-07-27

Added

  • Added phrase-based short-sentence handling with energy-valley cutting for improved annunciation of short phrases

  • Added SHA256 verification, pinned HF revisions with offline mode, and stale download lock recovery

Changed

  • Changed SSMD syntax to [text]{key=”value”} annotation format, replacing legacy shorthand notations

  • Changed HuggingFace v1.0 ONNX repository to use timestamped model variant

Fixed

  • Fixed Windows download cache path handling for model and voice files

  • Fixed voice name in English example script

Documentation

  • Changed documentation format from reStructuredText to Markdown for improved readability and GitHub rendering

[0.6.5] - 2026-02-11

Added

  • Added better support for spaCy models across all languages

[0.6.4] - 2026-01-31

Added

  • Added automatic pause mode that adds pauses after sentences

Documentation

  • Changed documentation with updated usage examples

[0.6.3] - 2026-01-28

Added

  • Added German language support with ONNX model files

[0.6.2] - 2026-01-27

Added

  • Added threading support for concurrent audio generation

Fixed

  • Fixed Windows cache path handling and default backend selection

[0.6.1] - 2026-01-25

Fixed

  • Fixed unit tests and mypy type errors

[0.6.0] - 2026-01-25

Added

  • Added integrated splitter into doc parsers, removing separate splitter pipeline

  • Added automatic language detection based on voice selection

  • Added improved SSMD parsing with better span handling

Changed

  • Changed pipeline lifecycle and audio generator for better stability

Fixed

  • Fixed paragraph splitting, pause parsing, and voice downloading

[0.5.1] - 2026-01-23

Added

  • Added model_path and voices_path settings in pipeline

Fixed

  • Fixed missing espeak and soundfile dependencies

Removed

  • Removed deprecated _phoneme_dictionary

[0.5.0] - 2026-01-23

Added

  • Added new pipeline architecture with improved phoneme handling

  • Added improved PhonemeSegment with better prosody support

  • Added improved pipeline architecture with multiple fixes

Changed

  • Changed pipeline to drop legacy tokenizer in favor of new architecture

  • Changed all examples to use new pipeline format

Fixed

  • Fixed phrasplit splitter and kokorog2p issues

[0.4.0] - 2026-01-17

Added

  • Added audio transcript support for better unit testing and debugging

Changed

  • Changed SSMD parser to adapt to new phoneme syntax in kokorog2p

Fixed

  • Fixed SSMD parser and detection logic

[0.3.0] - 2026-01-14

Added

  • Added GenerationConfig dataclass to simplify TTS API

  • Added heading support from SSMD markup

  • Added configurable short sentence handler with multiple strategies

Fixed

  • Fixed SSMD phoneme override bug in segment merging

  • Fixed short sentence handling and unit tests

[0.2.0] - 2026-01-11

Added

  • Added SSMD syntax support with voice switching and prosody control

  • Added says-as implementation for cardinal, ordinal, and telephone numbers

  • Added optimal phoneme length calculation

Changed

  • Changed tokenizer and improved backend stability

[0.1.0] - 2026-01-07

Added

  • Added model and voice download with manager classes for better code organization

  • Added configurable pause times for clause, sentence, and paragraph boundaries

  • Added session parameter configuration and pause variance support

  • Added HuggingFace Kokoro v1.1-zh model support

  • Added automatic splitting when max token limit is reached