0.4.0

OpenBMB/MiniCPM-V0.4.0Apr 7, 2025by edwko

AI Summary

OuteTTS Lib v0.4 introduces Interface Version 3 for v1.0 models, smart text chunking for long audio generation, and improved performance with dynamic component loading.

Key Highlights

  • Interface Version 3 implementation for OuteTTS v1.0 models
  • Windowed repetition penalty processor for improved text generation quality
  • Smart text chunking for generating long audio clips
  • DAC interface code for OuteTTS 1.0 audio encoding/decoding
  • Dynamically loading only required components for improved loading times

Breaking Changes

  • Interface consolidation into single interface.py file
  • Interface Version 3 (V3) introduced with different API
  • New GenerationConfig structure with CHUNKED generation type

New Features

  • Automatic configuration for v1.0 models
  • Metadata for interface version compatibility in speaker files
  • Manual configuration remains available
  • Improved backward compatibility with standard HuggingFace interfaces
  • Streamlined code usage with modular implementation

Full Release Notes

# OuteTTS Lib v0.4 Release Notes

## Interface Improvements
- Consolidated all interface versions into a single `interface.py` file for centralized management
- Implemented isolated model handling in separate version folders while maintaining core functionality for cross-compatibility
- Added Interface Version 3 implementation to support **OuteTTS v1.0 models**

## New Features
- Smart text chunking for generating long audio clips from large text inputs
- Added DAC interface code to handle OuteTTS 1.0 audio encoding and decoding
- Added metadata for interface version compatibility in speaker files

## Transformers Backend Patch for OuteTTS 1.0
- Implemented windowed repetition penalty processor (`RepetitionPenaltyLogitsProcessorPatch`) for improved text generation quality
- Applies penalties only to recent tokens (64-token window) rather than full context
- Addresses key quality issues in speech synthesis applications
- Maintains backward compatibility with standard HuggingFace interfaces

## Streamlined Usage
Simplified code usage with a more modular and compact implementation:

```python
output = interface.generate(
    config=outetts.GenerationConfig(
        text="Hello, how are you doing?",
        generation_type=outetts.GenerationType.CHUNKED,
        speaker=speaker,
        sampler_config=outetts.SamplerConfig(
            temperature=0.4
            # Additional sampler parameters
        ),
    )
)
```

## Automatic Configuration
Added support for automatic config and model loading for v1.0 models:

```python
# Auto-configuration approach
interface = outetts.Interface(
    config=outetts.ModelConfig.auto_config(
        model=outetts.Models.VERSION_1_0_SIZE_1B,
        backend=outetts.Backend.LLAMACPP,
        quantization=outetts.LlamaCppQuantization.FP16
    )
)
```

Manual configuration remains available:

```python
# Manual configuration approach
interface = outetts.Interface(
    config=outetts.ModelConfig(
        model_path="...",
        tokenizer_path="...",
        backend=outetts.Backend.LLAMACPP,
        interface_version=outetts.InterfaceVersion.V3
    )
)
```

## Performance and Dependencies
- Improved loading times by dynamically loading only required components
- Removed unused dependencies (further optimizations pending, particularly for WavTokenizer implementation)

## Documentation
Full usage documentation is available at:
šŸ”— [interface_usage.md](https://github.com/edwko/OuteTTS/blob/main/docs/interface_usage.md)