0.4.0

antgroup/echomimic_v20.4.0Apr 7, 2025by edwko

AI Summary

A major update consolidating interfaces, adding smart text chunking for long audio, and implementing a DAC interface for OuteTTS 1.0 with improved text generation quality.

Key Highlights

  • Consolidated all interface versions into a single file
  • Implemented smart text chunking for long audio
  • Added DAC interface for OuteTTS 1.0 encoding/decoding
  • Implemented windowed repetition penalty processor

New Features

  • Interface consolidation
  • Smart text chunking
  • DAC interface
  • Windowed repetition penalty
  • Automatic configuration for v1.0 models
  • Improved loading times and dependency management

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)