Skip to content

Releases: AACTools/VoiceGarden-SAPI

v0.5.3

Choose a tag to compare

@willwade willwade released this 16 Jul 16:09

What's New in v0.5.2

Grid3 & System.Speech Compatibility

  • Cloud voices only via registry promotion — Azure/Edge voices are no longer enumerated dynamically. Only voices promoted via "Install Selected" (HKLM registry tokens) appear in SAPI. This fixes Grid3 and other System.Speech apps that can't activate in-memory tokens
  • Voice promotion fixedPromoteElevated was silently failing because EngineConfig.exe was removed. Now uses reg.exe import with UAC elevation, creating tokens in both legacy SAPI and Speech_OneCore paths
  • Voice enumerator deadlock fixed — double mutex lock in VoiceTokenEnumerator::EnumTokens caused "resource deadlock would occur" crash on first enumeration or after 10s cache expiry
  • No more voice flood — previously 500+ Azure voices flooded SAPI voice lists; now only promoted voices appear

SSML & Speech Markdown via Web Speech API

  • PUA sentinel — web apps using Chrome/Firefox Web Speech API can embed SSML or Speech Markdown via Unicode Private Use Area characters:
    • \uE000\uE001\uE002 prefix = SSML mode
    • \uE000\uE001\uE003 prefix = Speech Markdown mode
    • Other SAPI voices ignore the PUA characters harmlessly
  • SSML normalization — adapter automatically injects required <speak version="1.0" xmlns="..." xml:lang="..."> attributes when missing
  • Speech Markdown syntax — use (text)[rate:"slow"] format (standard Speech Markdown spec)

Chrome & Edge Support

  • Speech_OneCore registration — VoiceGarden voices now appear in Chrome and Edge, not just legacy SAPI applications
  • Voices registered in both SOFTWARE\Microsoft\Speech\Voices\Tokens (Firefox, Grid3, Balabolka) and SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens (Chrome, Edge) when promoted

RustTtsWrapper 0.3.14

  • SSML pass-through fixedtts_speak_ssml() correctly detects and processes <speak> documents
  • Speech Markdown converter fixed — produces valid SSML with required Azure attributes
  • Voice selection fixedtts_set_voice() correctly selects the requested Azure voice
  • GetVoices crash fixed — cloud engine voice listing no longer crashes with access violation

Voice Engine Fixes

  • Azure voice activation — Azure voice tokens now include EngineType in VoiceGardenConfig
  • Cloud engines off by default — paid cloud engines disabled on fresh install; SherpaOnnx (offline) and Edge (free) remain on

MMS Model Data Fix

  • 1143 MMS models now searchable — language metadata was blank due to mismatched JSON field names. Kurdish, Aceh, Abidji, and 1100+ other languages now appear correctly

Localization (36 Languages)

  • Full UI translation — all user-facing strings in Strings.resx
  • 36 language packs — Arabic, Bengali, Chinese, Czech, Danish, Dutch, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Persian, Polish, Portuguese, Punjabi, Russian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and more
  • Automatic language detection — app language follows OS locale
  • RTL support — Arabic, Hebrew, Urdu, and Persian layouts mirror automatically

Credential Management

  • Auto-save credentials — API keys saved to registry immediately
  • Dual-screen sync — credentials shared between Configure Credentials and Configure Voices

Installer Fixes

  • Error 1721/1722Return="ignore" on regsvr32 prevents install/uninstall failure
  • Upgrade ghost fixIgnoreRemoveFailure + Schedule="afterInstallFinalize" allows clean installs over broken previous versions

Onboarding

  • 3-page wizard — Welcome, Getting Started, Privacy (analytics opt-in)
  • Version-gated — bump CurrentOnboardingVersion to force all users to see updated content

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+

v0.5.2

Choose a tag to compare

@willwade willwade released this 14 Jul 23:29

What's New in v0.5.2

Grid3 & System.Speech Compatibility

  • Cloud voices only via registry promotion — Azure/Edge voices are no longer enumerated dynamically. Only voices promoted via "Install Selected" (HKLM registry tokens) appear in SAPI. This fixes Grid3 and other System.Speech apps that can't activate in-memory tokens
  • Voice promotion fixedPromoteElevated was silently failing because EngineConfig.exe was removed. Now uses reg.exe import with UAC elevation, creating tokens in both legacy SAPI and Speech_OneCore paths
  • Voice enumerator deadlock fixed — double mutex lock in VoiceTokenEnumerator::EnumTokens caused "resource deadlock would occur" crash on first enumeration or after 10s cache expiry
  • No more voice flood — previously 500+ Azure voices flooded SAPI voice lists; now only promoted voices appear

SSML & Speech Markdown via Web Speech API

  • PUA sentinel — web apps using Chrome/Firefox Web Speech API can embed SSML or Speech Markdown via Unicode Private Use Area characters:
    • \uE000\uE001\uE002 prefix = SSML mode
    • \uE000\uE001\uE003 prefix = Speech Markdown mode
    • Other SAPI voices ignore the PUA characters harmlessly
  • SSML normalization — adapter automatically injects required <speak version="1.0" xmlns="..." xml:lang="..."> attributes when missing
  • Speech Markdown syntax — use (text)[rate:"slow"] format (standard Speech Markdown spec)

Chrome & Edge Support

  • Speech_OneCore registration — VoiceGarden voices now appear in Chrome and Edge, not just legacy SAPI applications
  • Voices registered in both SOFTWARE\Microsoft\Speech\Voices\Tokens (Firefox, Grid3, Balabolka) and SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens (Chrome, Edge) when promoted

RustTtsWrapper 0.3.14

  • SSML pass-through fixedtts_speak_ssml() correctly detects and processes <speak> documents
  • Speech Markdown converter fixed — produces valid SSML with required Azure attributes
  • Voice selection fixedtts_set_voice() correctly selects the requested Azure voice
  • GetVoices crash fixed — cloud engine voice listing no longer crashes with access violation

Voice Engine Fixes

  • Azure voice activation — Azure voice tokens now include EngineType in VoiceGardenConfig
  • Cloud engines off by default — paid cloud engines disabled on fresh install; SherpaOnnx (offline) and Edge (free) remain on

MMS Model Data Fix

  • 1143 MMS models now searchable — language metadata was blank due to mismatched JSON field names. Kurdish, Aceh, Abidji, and 1100+ other languages now appear correctly

Localization (36 Languages)

  • Full UI translation — all user-facing strings in Strings.resx
  • 36 language packs — Arabic, Bengali, Chinese, Czech, Danish, Dutch, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Persian, Polish, Portuguese, Punjabi, Russian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and more
  • Automatic language detection — app language follows OS locale
  • RTL support — Arabic, Hebrew, Urdu, and Persian layouts mirror automatically

Credential Management

  • Auto-save credentials — API keys saved to registry immediately
  • Dual-screen sync — credentials shared between Configure Credentials and Configure Voices

Installer Fixes

  • Error 1721/1722Return="ignore" on regsvr32 prevents install/uninstall failure
  • Upgrade ghost fixIgnoreRemoveFailure + Schedule="afterInstallFinalize" allows clean installs over broken previous versions

Onboarding

  • 3-page wizard — Welcome, Getting Started, Privacy (analytics opt-in)
  • Version-gated — bump CurrentOnboardingVersion to force all users to see updated content

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+

v0.4.9

Choose a tag to compare

@willwade willwade released this 13 Jul 17:33

What's New in v0.4.9

SSML & Speech Markdown via Web Speech API

  • PUA sentinel — web apps using Chrome/Firefox Web Speech API can embed SSML or Speech Markdown via Unicode Private Use Area characters:
    • \uE000\uE001\uE002 prefix = SSML mode
    • \uE000\uE001\uE003 prefix = Speech Markdown mode
    • Other SAPI voices ignore the PUA characters harmlessly
  • SSML normalization — adapter automatically injects required <speak version="1.0" xmlns="..." xml:lang="..."> attributes when missing, so web apps can send simple <speak><prosody rate="slow">...</prosody></speak>
  • Speech Markdown syntax — use (text)[rate:"slow"] format (standard Speech Markdown spec)

Chrome & Edge Support

  • Speech_OneCore registration — VoiceGarden voices now appear in Chrome and Edge, not just legacy SAPI applications
  • Voices registered in both SOFTWARE\Microsoft\Speech\Voices\Tokens (Firefox, Grid3, Balabolka) and SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens (Chrome, Edge) when promoted

RustTtsWrapper 0.3.14

  • SSML pass-through fixedtts_speak_ssml() correctly detects and processes <speak> documents
  • Speech Markdown converter fixed — produces valid SSML with required Azure attributes (was returning 400 Bad Request)
  • Voice selection fixedtts_set_voice() correctly selects the requested Azure voice
  • GetVoices crash fixed — cloud engine voice listing no longer crashes with access violation

Voice Engine Fixes

  • Azure voice activation — Azure voice tokens now include EngineType in VoiceGardenConfig, fixing "Invalid VoiceGardenConfig configuration" errors
  • Cloud engines off by default — paid cloud engines disabled on fresh install; SherpaOnnx (offline) and Edge (free) remain on

MMS Model Data Fix

  • 1143 MMS models now searchable — language metadata was blank due to mismatched JSON field names ("Iso Code" vs "lang_code"). Kurdish, Aceh, Abidji, and 1100+ other languages now appear correctly in the model browser

Localization (36 Languages)

  • Full UI translation — all user-facing strings in Strings.resx
  • 36 language packs — Arabic, Bengali, Chinese, Czech, Danish, Dutch, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Persian, Polish, Portuguese, Punjabi, Russian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and more
  • Automatic language detection — app language follows OS locale
  • RTL support — Arabic, Hebrew, Urdu, and Persian layouts mirror automatically

Credential Management

  • Auto-save credentials — API keys entered in Configure Credentials or Configure Voices are saved to registry immediately
  • Dual-screen sync — credentials shared between Configure Credentials and Configure Voices
  • Phantom back button fixed — About View was nested inside Engine Config template

Installer Fixes

  • Error 1721/1722Return="ignore" on regsvr32 prevents install/uninstall failure
  • Upgrade ghost fixIgnoreRemoveFailure + Schedule="afterInstallFinalize" allows clean installs over broken previous versions

Onboarding

  • 3-page wizard — Welcome (logo + intro), Getting Started (install, models, language tip), Privacy (analytics opt-in)
  • Version-gated — bump CurrentOnboardingVersion to force all users to see updated content

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks

Stability & Performance Fixes

  • Thread safety, memory management, performance, and MSI reliability improvements

Platform Support

  • Full x86 (32-bit) and x64 architectures in single MSI installer

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+

v0.4.6

Choose a tag to compare

@willwade willwade released this 13 Jul 11:04

What's New in v0.4.6

Chrome & Edge Support

  • Speech_OneCore registration — VoiceGarden voices now appear in Chrome and Edge, not just legacy SAPI applications
  • Voices are registered in both SOFTWARE\Microsoft\Speech\Voices\Tokens (Firefox, Grid3, Balabolka) and SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens (Chrome, Edge) when promoted
  • Unpromoting and uninstall cleanup removes from both paths

What's New in v0.4.5

Localization (36 Languages)

  • Full UI translation — all user-facing strings extracted into Strings.resx
  • 36 language packs — Arabic, Bengali, Chinese (Simplified), Czech, Danish, Dutch, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Marathi, Persian, Polish, Portuguese, Punjabi, Russian, Spanish, Swahedi, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and more
  • Automatic language detection — app language follows OS locale (CurrentUICulture)
  • RTL support — Arabic, Hebrew, Urdu, and Persian layouts mirror automatically
  • {lang:Localize} markup extension for XAML + Loc.GetString() for ViewModels

Voice Engine Fixes

  • RustTtsWrapper 0.3.12 — fixes tts_set_voice() selecting wrong Azure voice, tts_speak_ssml() for Azure, and GetVoices() crash for cloud engines
  • Azure voice activation fix — Azure voice tokens now include EngineType in VoiceGardenConfig, fixing "Invalid VoiceGardenConfig configuration" errors
  • PUA sentinel for inline SSML — web apps using Web Speech API can embed SSML via Unicode Private Use Area characters:
    • \uE000\uE001\uE002 prefix = SSML mode
    • \uE000\uE001\uE003 prefix = Speech Markdown mode
    • Other SAPI voices ignore the PUA characters harmlessly
  • Cloud engines off by default — paid cloud engines (Azure, OpenAI, Google, etc.) disabled on fresh install; SherpaOnnx (offline) and Edge (free) remain on

MMS Model Data Fix

  • 1143 MMS models now searchable — language metadata was blank due to mismatched JSON field names ("Iso Code" vs "lang_code"). Now all MMS models have proper language names, codes, and countries
  • Kurdish, Aceh, Abidji, and 1100+ other languages now appear correctly in the model browser

Credential Management

  • Auto-save credentials — API keys entered in Configure Credentials or Configure Voices are saved to registry immediately
  • Dual-screen sync — credentials entered in either screen are shared via the same registry keys
  • Azure legacy compatibility — reads from both new ({Engine}VoiceKey) and legacy (AzureVoiceKey) registry paths

Installer Fixes

  • Error 1721/1722 fixReturn="ignore" on regsvr32 custom actions prevents install/uninstall failure when DLL dependencies are missing
  • Upgrade ghost fixIgnoreRemoveFailure="yes" + Schedule="afterInstallFinalize" allows clean installs even when previous broken versions left stuck MSI registrations

Onboarding

  • 3-page wizard — Welcome (logo + intro), Getting Started (install adapter, download models, language compatibility tip), Privacy (analytics opt-in)
  • Version-gated — bump CurrentOnboardingVersion to force all users to see updated content
  • Analytics consent preserved — PostHog analytics ID persists across reinstalls

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks
    • Better memory management and COM reference counting

Stability & Performance Fixes

  • Thread Safety — fixed race conditions in cache enumeration and FFI callbacks
  • Memory Management — fixed COM reference counting violations and event handler memory leaks
  • Performance — reduced TTS pipeline logging overhead with conditional level checks
  • MSI Reliability — proper COM registration with rollback and error handling
  • Async Patterns — replaced async void methods with proper async Task patterns

User Experience

  • Onboarding Wizard — 3-page welcome flow with analytics opt-in
  • Application Icon — professional icon for taskbar, title bar, and Start Menu
  • Version-Gated Onboarding — onboarding re-appears on major version updates

Platform Support

  • Full x86 Support — 32-bit architecture with rust_tts_wrapper.dll
  • Dual Architecture Installer — both x86 and x64 in single MSI

Build System & CI/CD

  • Enhanced CI Pipeline — all jobs green
  • Release Automation — MSI, setup.exe, per-platform ZIPs, and debug symbols
  • NuGet Package Management — RustTtsWrapper.Bindings from NuGet.org

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+

v0.4.5

Choose a tag to compare

@willwade willwade released this 13 Jul 10:42

What's New in v0.4.5

Localization (36 Languages)

  • Full UI translation — all user-facing strings extracted into Strings.resx
  • 36 language packs — Arabic, Bengali, Chinese (Simplified), Czech, Danish, Dutch, French, German, Greek, Hebrew, Hindi, Indonesian, Italian, Japanese, Korean, Malay, Marathi, Persian, Polish, Portuguese, Punjabi, Russian, Spanish, Swahedi, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, and more
  • Automatic language detection — app language follows OS locale (CurrentUICulture)
  • RTL support — Arabic, Hebrew, Urdu, and Persian layouts mirror automatically
  • {lang:Localize} markup extension for XAML + Loc.GetString() for ViewModels

Voice Engine Fixes

  • RustTtsWrapper 0.3.12 — fixes tts_set_voice() selecting wrong Azure voice, tts_speak_ssml() for Azure, and GetVoices() crash for cloud engines
  • Azure voice activation fix — Azure voice tokens now include EngineType in VoiceGardenConfig, fixing "Invalid VoiceGardenConfig configuration" errors
  • PUA sentinel for inline SSML — web apps using Web Speech API can embed SSML via Unicode Private Use Area characters:
    • \uE000\uE001\uE002 prefix = SSML mode
    • \uE000\uE001\uE003 prefix = Speech Markdown mode
    • Other SAPI voices ignore the PUA characters harmlessly
  • Cloud engines off by default — paid cloud engines (Azure, OpenAI, Google, etc.) disabled on fresh install; SherpaOnnx (offline) and Edge (free) remain on

MMS Model Data Fix

  • 1143 MMS models now searchable — language metadata was blank due to mismatched JSON field names ("Iso Code" vs "lang_code"). Now all MMS models have proper language names, codes, and countries
  • Kurdish, Aceh, Abidji, and 1100+ other languages now appear correctly in the model browser

Credential Management

  • Auto-save credentials — API keys entered in Configure Credentials or Configure Voices are saved to registry immediately
  • Dual-screen sync — credentials entered in either screen are shared via the same registry keys
  • Azure legacy compatibility — reads from both new ({Engine}VoiceKey) and legacy (AzureVoiceKey) registry paths

Installer Fixes

  • Error 1721/1722 fixReturn="ignore" on regsvr32 custom actions prevents install/uninstall failure when DLL dependencies are missing
  • Upgrade ghost fixIgnoreRemoveFailure="yes" + Schedule="afterInstallFinalize" allows clean installs even when previous broken versions left stuck MSI registrations

Onboarding

  • 3-page wizard — Welcome (logo + intro), Getting Started (install adapter, download models, language compatibility tip), Privacy (analytics opt-in)
  • Version-gated — bump CurrentOnboardingVersion to force all users to see updated content
  • Analytics consent preserved — PostHog analytics ID persists across reinstalls

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks
    • Better memory management and COM reference counting

Stability & Performance Fixes

  • Thread Safety — fixed race conditions in cache enumeration and FFI callbacks
  • Memory Management — fixed COM reference counting violations and event handler memory leaks
  • Performance — reduced TTS pipeline logging overhead with conditional level checks
  • MSI Reliability — proper COM registration with rollback and error handling
  • Async Patterns — replaced async void methods with proper async Task patterns

User Experience

  • Onboarding Wizard — 3-page welcome flow with analytics opt-in
  • Application Icon — professional icon for taskbar, title bar, and Start Menu
  • Version-Gated Onboarding — onboarding re-appears on major version updates

Platform Support

  • Full x86 Support — 32-bit architecture with rust_tts_wrapper.dll
  • Dual Architecture Installer — both x86 and x64 in single MSI

Build System & CI/CD

  • Enhanced CI Pipeline — all jobs green
  • Release Automation — MSI, setup.exe, per-platform ZIPs, and debug symbols
  • NuGet Package Management — RustTtsWrapper.Bindings from NuGet.org

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+

v0.4.3

Choose a tag to compare

@willwade willwade released this 13 Jul 10:25

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper (RustTtsWrapper.Bindings 0.3.8)
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks
    • Better memory management and COM reference counting

Stability & Performance Fixes (Comprehensive Codebase Review)

  • Thread Safety Improvements — fixed race conditions in cache enumeration and FFI callbacks
  • Memory Management — fixed COM reference counting violations and event handler memory leaks
  • Performance Optimization — reduced TTS pipeline logging overhead with conditional level checks
  • MSI Installation Reliability — deferred COM registration for proper rollback and error handling
  • Async Pattern Fixes — replaced async void methods with proper async Task patterns

User Experience Improvements

  • Onboarding Wizard — new 3-page welcome/onboarding flow (welcome, how-to, privacy)
    • Shows on fresh install and version bumps
    • Clear explanations of VoiceGarden's purpose and privacy practices
    • Analytics opt-in with proper consent
  • Application Icon — professional icon for taskbar, title bar, and Start Menu
  • Version-Gated Onboarding — onboarding re-appears on major version updates

Platform Support

  • Full x86 Support — complete 32-bit architecture support with rust_tts_wrapper.dll
  • Dual Architecture Installer — both x86 and x64 versions in single MSI
  • Improved Platform Detection — better handling of WOW6432Node registry hive

Build System & CI/CD

  • Simplified Dependencies — removed 7-Zip dependency, using built-in SharpCompress
  • Enhanced CI Pipeline — all 12 jobs green, including C++ DLL, UI, CLI tools, and MSI
  • Release Automation — MSI, setup.exe, per-platform ZIPs, and debug symbols
  • NuGet Package Management — RustTtsWrapper.Bindings from NuGet.org instead of source builds

Voice Engine Enhancements

  • Model Download Improvements — streaming downloads with progress indication
  • SherpaOnnx Integration — better model type detection and Kokoro model support
  • Azure Voice Preview — fixed format conversion (MP3 to WAV) for audio playback
  • Voice Promotion — improved registry token management and cleanup

Technical Debt Cleanup

  • Code Quality — addressed memory leaks, thread safety issues, and COM interface violations
  • Error Handling — improved exception handling in async operations and COM calls
  • Resource Management — proper IDisposable implementation in ViewModels
  • Logging Optimization — conditional compilation to reduce performance overhead

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+ required (removed XP compatibility code paths)

Migration Notes

  • Existing Installations — seamless upgrade path with proper COM registration/unregistration
  • Configuration Migration — existing registry settings preserved during upgrade
  • Model Downloads — SherpaOnnx models automatically downloaded on first use

v0.4.2

Choose a tag to compare

@willwade willwade released this 10 Jul 05:38

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper (RustTtsWrapper.Bindings 0.3.8)
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks
    • Better memory management and COM reference counting

Stability & Performance Fixes (Comprehensive Codebase Review)

  • Thread Safety Improvements — fixed race conditions in cache enumeration and FFI callbacks
  • Memory Management — fixed COM reference counting violations and event handler memory leaks
  • Performance Optimization — reduced TTS pipeline logging overhead with conditional level checks
  • MSI Installation Reliability — deferred COM registration for proper rollback and error handling
  • Async Pattern Fixes — replaced async void methods with proper async Task patterns

User Experience Improvements

  • Onboarding Wizard — new 3-page welcome/onboarding flow (welcome, how-to, privacy)
    • Shows on fresh install and version bumps
    • Clear explanations of VoiceGarden's purpose and privacy practices
    • Analytics opt-in with proper consent
  • Application Icon — professional icon for taskbar, title bar, and Start Menu
  • Version-Gated Onboarding — onboarding re-appears on major version updates

Platform Support

  • Full x86 Support — complete 32-bit architecture support with rust_tts_wrapper.dll
  • Dual Architecture Installer — both x86 and x64 versions in single MSI
  • Improved Platform Detection — better handling of WOW6432Node registry hive

Build System & CI/CD

  • Simplified Dependencies — removed 7-Zip dependency, using built-in SharpCompress
  • Enhanced CI Pipeline — all 12 jobs green, including C++ DLL, UI, CLI tools, and MSI
  • Release Automation — MSI, setup.exe, per-platform ZIPs, and debug symbols
  • NuGet Package Management — RustTtsWrapper.Bindings from NuGet.org instead of source builds

Voice Engine Enhancements

  • Model Download Improvements — streaming downloads with progress indication
  • SherpaOnnx Integration — better model type detection and Kokoro model support
  • Azure Voice Preview — fixed format conversion (MP3 to WAV) for audio playback
  • Voice Promotion — improved registry token management and cleanup

Technical Debt Cleanup

  • Code Quality — addressed memory leaks, thread safety issues, and COM interface violations
  • Error Handling — improved exception handling in async operations and COM calls
  • Resource Management — proper IDisposable implementation in ViewModels
  • Logging Optimization — conditional compilation to reduce performance overhead

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+ required (removed XP compatibility code paths)

Migration Notes

  • Existing Installations — seamless upgrade path with proper COM registration/unregistration
  • Configuration Migration — existing registry settings preserved during upgrade
  • Model Downloads — SherpaOnnx models automatically downloaded on first use

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Jul 22:56

What's New in v0.4.0

Major Architecture Changes

  • RustTtsWrapper Integration — complete transition to Rust-based TTS wrapper (RustTtsWrapper.Bindings 0.3.8)
    • Removed legacy DotNetTtsWrapper and EngineConfig components
    • Full x86 and x64 support with native rust_tts_wrapper.dll
    • Improved FFI safety and thread safety in callbacks
    • Better memory management and COM reference counting

Stability & Performance Fixes (Comprehensive Codebase Review)

  • Thread Safety Improvements — fixed race conditions in cache enumeration and FFI callbacks
  • Memory Management — fixed COM reference counting violations and event handler memory leaks
  • Performance Optimization — reduced TTS pipeline logging overhead with conditional level checks
  • MSI Installation Reliability — deferred COM registration for proper rollback and error handling
  • Async Pattern Fixes — replaced async void methods with proper async Task patterns

User Experience Improvements

  • Onboarding Wizard — new 3-page welcome/onboarding flow (welcome, how-to, privacy)
    • Shows on fresh install and version bumps
    • Clear explanations of VoiceGarden's purpose and privacy practices
    • Analytics opt-in with proper consent
  • Application Icon — professional icon for taskbar, title bar, and Start Menu
  • Version-Gated Onboarding — onboarding re-appears on major version updates

Platform Support

  • Full x86 Support — complete 32-bit architecture support with rust_tts_wrapper.dll
  • Dual Architecture Installer — both x86 and x64 versions in single MSI
  • Improved Platform Detection — better handling of WOW6432Node registry hive

Build System & CI/CD

  • Simplified Dependencies — removed 7-Zip dependency, using built-in SharpCompress
  • Enhanced CI Pipeline — all 12 jobs green, including C++ DLL, UI, CLI tools, and MSI
  • Release Automation — MSI, setup.exe, per-platform ZIPs, and debug symbols
  • NuGet Package Management — RustTtsWrapper.Bindings from NuGet.org instead of source builds

Voice Engine Enhancements

  • Model Download Improvements — streaming downloads with progress indication
  • SherpaOnnx Integration — better model type detection and Kokoro model support
  • Azure Voice Preview — fixed format conversion (MP3 to WAV) for audio playback
  • Voice Promotion — improved registry token management and cleanup

Technical Debt Cleanup

  • Code Quality — addressed memory leaks, thread safety issues, and COM interface violations
  • Error Handling — improved exception handling in async operations and COM calls
  • Resource Management — proper IDisposable implementation in ViewModels
  • Logging Optimization — conditional compilation to reduce performance overhead

Breaking Changes

  • Removed Components — DotNetTtsWrapper and EngineConfig no longer supported
  • Minimum Requirements — Windows 10+ required (removed XP compatibility code paths)

Migration Notes

  • Existing Installations — seamless upgrade path with proper COM registration/unregistration
  • Configuration Migration — existing registry settings preserved during upgrade
  • Model Downloads — SherpaOnnx models automatically downloaded on first use

v0.3.5

Choose a tag to compare

@willwade willwade released this 03 Jul 13:35

What's New in v0.3.4

Installation Fixes

  • setup.exe now requests elevation via UAC — fixes error 1625 ("installation forbidden by system policy") on devices where Windows Installer requires admin
  • No more 7-Zip dependency — model extraction now uses built-in SharpCompress library. Works on locked-down devices (Grid Pads) without needing 7-Zip installed
  • merged_models.json search paths fixed — resolves "No Download URL" error when running from an MSI install

Voice Engine Fixes

  • Azure voice preview — fixed silent preview (Azure returns MP3, SoundPlayer needs WAV; now uses SynthToFileAsync with WAV format)
  • Kokoro model type detection — voices.bin presence now correctly sets SherpaOnnxModelType=2 (Kokoro) in registry tokens
  • MMS models — download individual files from HuggingFace directories instead of trying to fetch a directory URL (was 404)
  • Download progress — streaming download with percentage, file size (MB), and throttled UI updates
  • SherpaOnnx model promotion — uses .reg file import for fast, reliable elevation instead of relaunching the 116MB exe

SAPI Compatibility

  • 32-bit registration — correctly checks WOW6432Node registry hive and uses SysWOW64\regsvr32.exe
  • Grid 3 / System.Speech — model type-aware HKLM token promotion with SherpaOnnxVoices for Kokoro models
  • HKCU voice cleanup — cleanup-voices.ps1 now covers HKLM, WOW6432Node, AND HKCU voice tokens

CI / Build

  • Full CI pipeline — all 12 jobs green (C++ DLL, VoiceGarden.UI, CLI tools, .NET adapter, MSI)
  • Release assets — MSI, setup.exe, per-platform ZIPs (x86/x64), debug symbols, full release layout
  • DotNetTtsWrapper from NuGet.org — no longer clones from source during CI

v0.3.4

Choose a tag to compare

@willwade willwade released this 30 Jun 15:13

What's New in v0.3.4

Installation Fixes

  • setup.exe now requests elevation via UAC — fixes error 1625 ("installation forbidden by system policy") on devices where Windows Installer requires admin
  • No more 7-Zip dependency — model extraction now uses built-in SharpCompress library. Works on locked-down devices (Grid Pads) without needing 7-Zip installed
  • merged_models.json search paths fixed — resolves "No Download URL" error when running from an MSI install

Voice Engine Fixes

  • Azure voice preview — fixed silent preview (Azure returns MP3, SoundPlayer needs WAV; now uses SynthToFileAsync with WAV format)
  • Kokoro model type detection — voices.bin presence now correctly sets SherpaOnnxModelType=2 (Kokoro) in registry tokens
  • MMS models — download individual files from HuggingFace directories instead of trying to fetch a directory URL (was 404)
  • Download progress — streaming download with percentage, file size (MB), and throttled UI updates
  • SherpaOnnx model promotion — uses .reg file import for fast, reliable elevation instead of relaunching the 116MB exe

SAPI Compatibility

  • 32-bit registration — correctly checks WOW6432Node registry hive and uses SysWOW64\regsvr32.exe
  • Grid 3 / System.Speech — model type-aware HKLM token promotion with SherpaOnnxVoices for Kokoro models
  • HKCU voice cleanup — cleanup-voices.ps1 now covers HKLM, WOW6432Node, AND HKCU voice tokens

CI / Build

  • Full CI pipeline — all 12 jobs green (C++ DLL, VoiceGarden.UI, CLI tools, .NET adapter, MSI)
  • Release assets — MSI, setup.exe, per-platform ZIPs (x86/x64), debug symbols, full release layout
  • DotNetTtsWrapper from NuGet.org — no longer clones from source during CI