Skip to content

Release Notes: v0.12.0

Release Date: 2026-06-27

Highlights

  • Local TTS/STT Providers: Run F5-TTS and Whisper on Apple Silicon without cloud dependencies
  • gRPC Endpoint Configuration: New WithEndpoint option for local providers using gRPC
  • Voice Profiles Library: 700+ pre-configured voices via omnivoice-core v0.15.0
  • Audio Analysis Tools: Utilities for analyzing audio properties and characteristics
  • omnictl CLI: Voice testing tool for local and cloud providers

New Features

Local Providers Support

OmniVoice now supports running text-to-speech and speech-to-text completely locally on Apple Silicon machines:

import (
    "github.com/plexusone/omnivoice"
    "github.com/plexusone/omnivoice-core/registry"
    _ "github.com/plexusone/omnivoice/providers/all"
)

// Use local F5-TTS provider
ttsProvider, err := omnivoice.GetTTSProvider("f5tts-mlx",
    registry.WithEndpoint("localhost:50051"),
)
if err != nil {
    log.Fatal(err)
}

// Use local Whisper provider
sttProvider, err := omnivoice.GetSTTProvider("whisper-mlx",
    registry.WithEndpoint("localhost:50052"),
)
if err != nil {
    log.Fatal(err)
}

Available Local Providers:

Provider Type Hardware Features
F5-TTS MLX TTS Apple Silicon Natural-sounding text-to-speech, multi-voice support
Whisper MLX STT Apple Silicon Accurate speech recognition, multi-language support

Benefits of Local Providers:

  • Privacy: Audio never leaves your machine
  • Cost: No API calls or monthly bills
  • Latency: Faster response times with local execution
  • Offline: Works without internet connection

gRPC Endpoint Configuration

The new WithEndpoint option is now exported for configuring local gRPC providers:

import "github.com/plexusone/omnivoice-core/registry"

// Configure custom gRPC endpoint
opts := []registry.ProviderOption{
    registry.WithEndpoint("192.168.1.100:50051"),
}

provider, err := omnivoice.GetTTSProvider("f5tts-mlx", opts...)

This enables:

  • Custom Endpoints: Point to locally-running gRPC services
  • Network Flexibility: Use different machines for inference
  • Development: Easy switching between local dev and staging servers

Voice Profiles Library

omnivoice-core v0.15.0 includes a library of 700+ pre-configured voice profiles:

// Access voice profiles programmatically
profiles, err := omnivoice.GetVoiceProfiles()
if err != nil {
    log.Fatal(err)
}

for _, profile := range profiles {
    fmt.Printf("%s (%s): %s\n", profile.Name, profile.Language, profile.Gender)
}

Voice Profile Coverage:

  • Multiple genders and accents
  • 50+ languages and locales
  • Pitch, speed, and tone customization
  • Provider-specific voice mappings

Audio Analysis Utilities

New audio analysis tools for understanding audio characteristics:

// Analyze audio from reader
analysis, err := omnivoice.AnalyzeAudio(ctx, audioReader)
if err != nil {
    log.Fatal(err)
}

fmt.Printf("Duration: %dms\n", analysis.DurationMs)
fmt.Printf("Sample Rate: %dHz\n", analysis.SampleRate)
fmt.Printf("Channels: %d\n", analysis.Channels)

Available Metrics:

  • Duration in milliseconds
  • Sample rate and bit depth
  • Channel configuration (mono, stereo, etc.)
  • Format detection
  • Loudness analysis

omnictl Voice Testing Tool

omnivoice-core v0.15.0 includes the omnictl CLI for testing voice providers:

# List available providers
omnictl providers list

# Test text-to-speech
omnictl tts --provider f5tts-mlx "Hello, world!"

# Test speech-to-text
omnictl stt --provider whisper-mlx audio.wav

# Test voice profiles
omnictl voices list --filter f5tts-mlx

Dependency Updates

omnivoice-core v0.14.0 → v0.15.0

The major dependency update includes:

Feature Version Impact
Local TTS (F5-TTS MLX) New Run TTS on Apple Silicon
Local STT (Whisper MLX) New Run STT on Apple Silicon
Voice Profiles New 700+ pre-configured voices
Audio Analysis New Analyze audio properties
omnictl CLI New Voice testing tool

Documentation Updates

Local Providers Guide

Added comprehensive documentation for using local providers:

  • Location: docs/providers/index.md
  • Content:
  • Local Providers section with F5-TTS MLX and Whisper MLX
  • Setup instructions for Apple Silicon
  • gRPC endpoint configuration
  • Privacy and cost benefits

Registry Reference

Updated registry documentation with new endpoint option:

  • Location: docs/reference/registry.md
  • Content:
  • WithEndpoint option reference
  • gRPC provider configuration
  • Examples for local and cloud providers

README Updates

Enhanced README with local provider information:

  • Features: Added local provider icons and descriptions
  • Included Providers: Listed F5-TTS MLX and Whisper MLX
  • Related Packages: Referenced local provider packages

Migration Guide

Using Local Providers (No Changes Needed)

If you're already using omnivoice with cloud providers, local providers are opt-in. No migration required.

Adding Local Provider Support

To add local provider support to existing code:

// Before: Cloud providers only
import (
    "github.com/plexusone/omnivoice"
    _ "github.com/plexusone/omnivoice/providers/all"
)

// After: Cloud + Local providers (automatic via imports)
import (
    "github.com/plexusone/omnivoice"
    _ "github.com/plexusone/omnivoice/providers/all"  // Includes local providers
)

// Just use WithEndpoint for local gRPC providers
opts := []registry.ProviderOption{
    registry.WithEndpoint("localhost:50051"),
}
provider, _ := omnivoice.GetTTSProvider("f5tts-mlx", opts...)

Breaking Changes

None. This is a backward-compatible feature release.

Installation

go get github.com/plexusone/omnivoice@v0.12.0

Full Changelog

See CHANGELOG.md for the complete list of changes.