# MoneyPrinterTurbo Subtitle Generation Options: Edge vs Whisper

> Explore MoneyPrinterTurbo's subtitle generation options: Edge TTS and faster-whisper. Learn how to configure them and understand automatic Whisper fallback for seamless operation.

- Repository: [Harry/MoneyPrinterTurbo](https://github.com/harry0703/MoneyPrinterTurbo)
- Tags: deep-dive
- Published: 2026-03-23

---

**MoneyPrinterTurbo supports two subtitle generation providers—Microsoft Edge TTS and faster-whisper—configurable via the `subtitle_provider` setting in the application configuration, with automatic Whisper fallback when Edge fails.**

MoneyPrinterTurbo is an automated video generation tool that produces synchronized subtitles for AI-generated audio tracks. The application offers two distinct subtitle generation options: **Edge TTS**, which captures word-boundary timestamps during speech synthesis, and **Whisper**, which transcribes audio using the open-source speech recognition model. Understanding these providers helps you optimize subtitle accuracy and generation speed based on your specific workflow requirements.

## Edge TTS Subtitle Generation (Default)

The **Edge** provider uses Microsoft Edge TTS to synthesize speech while simultaneously capturing word-boundary events to construct subtitle timestamps.

### Implementation Details

In [`app/services/subtitle.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/subtitle.py), the Edge path invokes `voice.create_subtitle(...)` to generate the subtitle file from word-boundary metadata captured during speech synthesis (lines 40-44). The resulting SRT file undergoes correction via the module’s `correct` logic to ensure proper formatting and timing alignment.

This provider is selected by default when `subtitle_provider` is set to `"edge"` in the configuration, as read from `config.app.get("subtitle_provider", "edge")` in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py) (lines 136-149).

### Configuration Example

To use Edge TTS for subtitles, set the provider in your configuration file:

```toml

# config.toml

[app]
subtitle_provider = "edge"

```

## Whisper Subtitle Generation (Fallback)

The **Whisper** provider utilizes the `faster-whisper` open-source model to transcribe generated audio and produce subtitle files independently of the TTS engine.

### Implementation Details

When selected, the `create` function in [`app/services/subtitle.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/subtitle.py) loads the Whisper model and processes the audio file to generate transcription segments with timestamps (lines 21-27). The function writes these segments to an SRT file format suitable for video embedding.

Whisper serves as the secondary option, activated either explicitly via configuration or automatically when the Edge provider fails to produce a valid subtitle file.

### Explicit Configuration

To force Whisper subtitle generation instead of Edge:

```toml

# config.toml

[app]
subtitle_provider = "whisper"

```

## Automatic Fallback Mechanism

MoneyPrinterTurbo implements a resilient fallback system in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py) to ensure subtitle availability. If the Edge provider fails to write a subtitle file, the system sets `subtitle_fallback` to `True` and automatically invokes Whisper as a backup (lines 44-48).

This fallback logic ensures that even when Edge TTS word-boundary data is unavailable or corrupted, the video generation pipeline can still produce accurate subtitles through transcription. The fallback behavior is transparent to the user, with logs indicating the provider switch:

```text
2026-03-23 12:00:00.000 | INFO | generating subtitle, provider: edge
2026-03-23 12:00:01.123 | WARNING | subtitle file not found, fallback to whisper
2026-03-23 12:00:02.456 | INFO | generating subtitle, provider: whisper

```

## Runtime Configuration Override

You can programmatically override the subtitle provider at runtime before executing a task:

```python
from app.config import config

# Switch to Whisper programmatically

config.app["subtitle_provider"] = "whisper"

# The next task execution will use Whisper for subtitle generation

```

## Summary

- **Edge TTS** is the default subtitle generation option that captures word-boundary timestamps during speech synthesis in [`app/services/subtitle.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/subtitle.py).
- **Whisper** provides transcription-based subtitle generation using the `faster-whisper` model, implemented in the `create` function of [`app/services/subtitle.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/subtitle.py).
- Configure the active provider via the `subtitle_provider` key in [`config.toml`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/config.toml) (options: `"edge"` or `"whisper"`).
- Automatic fallback to Whisper occurs when Edge fails to generate a subtitle file, as handled in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py).

## Frequently Asked Questions

### What is the default subtitle provider in MoneyPrinterTurbo?

The default subtitle generation provider is **Edge** (Microsoft Edge TTS). The application reads the `subtitle_provider` configuration key in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py) (lines 136-149) and defaults to `"edge"` if unspecified, utilizing word-boundary timestamps captured during speech synthesis to generate the SRT file.

### When does MoneyPrinterTurbo use Whisper instead of Edge?

MoneyPrinterTurbo uses Whisper in two scenarios: when `subtitle_provider` is explicitly set to `"whisper"` in the configuration, or when the Edge provider fails to produce a subtitle file and the automatic fallback mechanism triggers in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py) (lines 44-48), setting `subtitle_fallback` to `True`.

### How do I configure subtitle generation options in MoneyPrinterTurbo?

Set the `subtitle_provider` value in your [`config.toml`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/config.toml) file (or [`config.example.toml`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/config.example.toml) as reference) under the `[app]` section. Valid options are `"edge"` for Microsoft Edge TTS word-boundary timestamps or `"whisper"` for transcription-based generation using the faster-whisper model.

### What happens if Edge subtitle generation fails?

If Edge fails to write a subtitle file, MoneyPrinterTurbo automatically sets `subtitle_fallback` to `True` in [`app/services/task.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/task.py) and invokes Whisper to transcribe the audio, ensuring the video generation pipeline completes successfully with accurate subtitles regardless of the initial provider selection.