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