# MoneyPrinterTurbo TTS Providers: The Complete List of Supported Engines

> Explore MoneyPrinterTurbo TTS providers. Discover supported engines like Azure TTS v1, Azure TTS v2, SiliconFlow, and Google Gemini TTS for seamless audio integration.

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

---

**MoneyPrinterTurbo supports four TTS providers: Azure TTS v1, Azure TTS v2, SiliconFlow TTS, and Google Gemini TTS, selectable via the Audio Settings panel or programmatically through the `app.services.voice` module.**

The open-source video generation framework **harry0703/MoneyPrinterTurbo** ships with a flexible text-to-speech architecture that accommodates multiple cloud and edge-based voice engines. All provider implementations reside in the [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py) module, exposing a unified interface for generating narration audio.

## Supported TTS Providers in MoneyPrinterTurbo

MoneyPrinterTurbo integrates four distinct voice synthesis backends, each optimized for different latency, quality, and cost requirements:

- **Azure TTS v1** (`azure-tts-v1`): A lightweight, synchronous wrapper around Microsoft's Edge TTS client (`edge_tts.Communicate`). Ideal for quick prototyping without Azure Speech SDK dependencies.
- **Azure TTS v2** (`azure-tts-v2`): The full-featured Azure Speech SDK implementation (`azure.cognitiveservices.speech`) supporting word-boundary callbacks and enterprise-grade features.
- **SiliconFlow TTS** (`siliconflow`): HTTP-based integration with SiliconFlow's TTS API, supporting models like `FunAudioLLM/CosyVoice2-0.5B`.
- **Google Gemini TTS** (`gemini-tts`): Integration with Google's Gemini 2.5 Flash preview TTS model via the `google.generativeai` library.

The active provider is determined by the `tts_server` configuration value, which the web UI exposes as a dropdown selector.

## How TTS Provider Selection Works

The selection mechanism operates at two layers: the user interface and the dispatch logic.

### Web UI Configuration

In [`webui/Main.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/webui/Main.py) (lines 48-53), the Audio Settings panel populates a selectbox with the four supported identifiers:

```python
tts_servers = [
    ("azure-tts-v1", "Azure TTS V1"),
    ("azure-tts-v2", "Azure TTS V2"),
    ("siliconflow", "SiliconFlow TTS"),
    ("gemini-tts", "Google Gemini TTS"),
]

```

When a user selects a provider, the application stores the corresponding key in `config.ui["tts_server"]`.

### Backend Dispatch Logic

The `voice.tts` function in [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py) (lines 1127-1159) acts as a router. It inspects the configuration and delegates to the appropriate implementation:

```python

# Simplified dispatch pattern from voice.py

if config.ui["tts_server"] == "azure-tts-v1":
    return azure_tts_v1(...)
elif config.ui["tts_server"] == "azure-tts-v2":
    return azure_tts_v2(...)
elif config.ui["tts_server"] == "siliconflow":
    return siliconflow_tts(...)
elif config.ui["tts_server"] == "gemini-tts":
    return gemini_tts(...)

```

This architecture allows code to remain provider-agnostic while supporting provider-specific optimizations.

## Implementing TTS in Your Code

You can interact with MoneyPrinterTurbo's TTS system either through the high-level abstraction or by calling provider-specific functions directly.

### Using the High-Level `voice.tts` Helper

The recommended approach uses the dispatch wrapper, which respects the user's UI selection:

```python
from app.services import voice as vs

text = "Hello, world!"
voice_name = "en-US-JennyNeural"
voice_file = "/tmp/tts-output.mp3"
voice_rate = 1.0

sub_maker = vs.tts(
    text=text,
    voice_name=voice_name,
    voice_file=voice_file,
    voice_rate=voice_rate,
)

```

The `tts` function automatically routes to the configured provider based on `config.ui["tts_server"]`.

### Direct Provider Invocation

For workflows requiring specific provider features, import the individual functions from [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py):

#### Azure TTS v1

```python
sub = vs.azure_tts_v1(
    text="Welcome to Money Printer Turbo",
    voice_name="en-US-JennyNeural",
    voice_rate=1.0,
    voice_file="welcome-azure-v1.mp3",
)

```

*Implementation reference: lines 1170-1199 of [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py).*

#### Azure TTS v2

```python
sub = vs.azure_tts_v2(
    text="Welcome to Money Printer Turbo",
    voice_name="en-US-JennyMultilingualNeural",
    voice_file="welcome-azure-v2.mp3",
)

```

*Implementation reference: lines 1343-1385 of [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py).*

#### SiliconFlow TTS

```python
sub = vs.siliconflow_tts(
    text="Welcome to Money Printer Turbo",
    model="FunAudioLLM/CosyVoice2-0.5B",
    voice="FunAudioLLM/CosyVoice2-0.5B:alex",
    voice_file="welcome-siliconflow.mp3",
    voice_rate=1.0,
    voice_volume=1.0,
)

```

*Implementation reference: lines 1205-1235 of [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py).*

#### Google Gemini TTS

```python
sub = vs.gemini_tts(
    text="Welcome to Money Printer Turbo",
    voice="en-US-Standard-B",
    voice_rate=1.0,
    voice_volume=1.0,
    voice_file="welcome-gemini.mp3",
)

```

*Implementation reference: lines 1438-1465 of [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py).*

## Key Implementation Files

Understanding the file structure helps when extending or debugging TTS functionality:

- **[`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py)**: Core implementation containing `azure_tts_v1`, `azure_tts_v2`, `siliconflow_tts`, `gemini_tts`, and the dispatch wrapper `tts`.
- **[`webui/Main.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/webui/Main.py)**: UI layer defining the TTS provider dropdown (lines 48-53) that populates the `tts_servers` list.
- **[`test/services/test_voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/test/services/test_voice.py)**: Unit test coverage validating each provider's integration and audio generation pipeline.

## Summary

- MoneyPrinterTurbo supports **four TTS providers**: Azure TTS v1, Azure TTS v2, SiliconFlow, and Google Gemini.
- Provider selection occurs via the **Audio Settings dropdown** in [`webui/Main.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/webui/Main.py), stored in `config.ui["tts_server"]`.
- The **`voice.tts` helper** in [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py) (lines 1127-1159) automatically routes requests to the active provider.
- **Direct invocation** of provider-specific functions allows access to unique parameters like SiliconFlow's model selection or Gemini's voice identifiers.
- All implementations return a subtitle maker object (`sub_maker`) for synchronized caption generation.

## Frequently Asked Questions

### How do I switch between TTS providers in MoneyPrinterTurbo?

Navigate to the **Audio Settings** panel in the web UI and select your preferred engine from the TTS Server dropdown. Alternatively, programmatically set `config.ui["tts_server"]` to `"azure-tts-v1"`, `"azure-tts-v2"`, `"siliconflow"`, or `"gemini-tts"` before calling `voice.tts`.

### What is the difference between Azure TTS v1 and v2 in MoneyPrinterTurbo?

**Azure TTS v1** uses the open-source `edge_tts` library for synchronous, edge-based synthesis without requiring Azure Speech SDK credentials. **Azure TTS v2** leverages the official `azure.cognitiveservices.speech` SDK, supporting advanced features like word-boundary callbacks and enterprise speech resource management, but requires valid Azure subscription keys.

### Can I use custom voice models with MoneyPrinterTurbo's TTS system?

Yes, but implementation varies by provider. **SiliconFlow TTS** explicitly supports custom model selection via the `model` parameter (e.g., `FunAudioLLM/CosyVoice2-0.5B`). For Azure providers, voice customization depends on Azure's available neural voices. The modular architecture in [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py) allows developers to add new provider functions following the existing pattern.

### Where are the TTS provider configurations stored in the codebase?

The list of available providers is hardcoded in [`webui/Main.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/webui/Main.py) lines 48-53 as the `tts_servers` tuple list. The active selection is stored in the runtime configuration dictionary under `config.ui["tts_server"]`, which the dispatch logic in [`app/services/voice.py`](https://github.com/harry0703/MoneyPrinterTurbo/blob/main/app/services/voice.py) references to route requests to the appropriate implementation function.