# Validate Deepgram Self-Hosted TTS

`tts-tui` is an open-source terminal application written in Rust for testing and validating Deepgram text-to-speech on self-hosted deployments. It supports Deepgram-compatible HTTP endpoints and Amazon SageMaker, with interactive voice selection, multi-format audio output, and local audio caching.

## Features

- **Validate self-hosted TTS** — confirm that Aura-2 models produce correct audio on your own infrastructure before going to production.
- **Test output formats** — switch between MP3, Linear16 (WAV), FLAC, and other encodings with configurable sample rates.
- **Multi-language support** — synthesize speech in any Deepgram-supported language and save utterances for comparison.
- **Audio caching** — repeated playback is served from disk instantly, so you can iterate without redundant API calls.
- **Dual provider support** — test both Deepgram-compatible HTTP endpoints and Amazon SageMaker `InvokeEndpoint` deployments from the same tool.

## Prerequisites

- [Rust Toolchain](https://rustup.rs) (only required when building from source)
- Deepgram self-hosted TTS deployment

## Installation

### Run Pre-compiled Binary

1. Download the latest release from [GitHub Releases](https://github.com/deepgram-devs/deepgram-demos-rust/releases/latest).
2. Extract the ZIP file.
3. Run the `tts-tui` binary.

### Build from Source

```bash
git clone https://github.com/deepgram-devs/deepgram-demos-rust.git
cd deepgram-demos-rust/tts-tui
cargo install --path .
```

Once installed, the `tts-tui` binary is available from anywhere on your system.

## Configure for self-hosted

Use the `--endpoint` flag to point `tts-tui` at your Deepgram-compatible HTTP endpoint:

```bash
tts-tui --provider deepgram --endpoint https://your-selfhosted-deepgram.example.com/v1/speak
```

If the endpoint requires an API key, supply it through the `DEEPGRAM_API_KEY` environment variable or press `k` inside the running application.

## Configure for Amazon SageMaker

Use self-hosted Deepgram TTS on Amazon SageMaker through the AWS SageMaker Runtime `InvokeEndpoint` API:

```bash
tts-tui \
  --provider sagemaker \
  --sagemaker-endpoint-name your-sagemaker-endpoint \
  --aws-region us-east-2
```

The same settings can be supplied with environment variables:

```bash
export TTS_TUI_PROVIDER=sagemaker
export SAGEMAKER_ENDPOINT_NAME=your-sagemaker-endpoint
export AWS_REGION=us-east-2
tts-tui
```

## Learn more

- [GitHub repository](https://github.com/deepgram-devs/deepgram-demos-rust/tree/main/tts-tui)
- [Latest release](https://github.com/deepgram-devs/deepgram-demos-rust/releases/latest)

## Related pages

- [Amazon SageMaker](./amazon-sagemaker-index.md)
- [Aura](./aura-index.md)
- [Changelog](../changelog.md)
- [Custom Vocabulary](./custom-vocabulary-index.md)
- [Deepgram's Docs](../index.md)
- [Deployment](./deployment-index.md)
- [Docker/Podman](./docker-podman-index.md)
- [Features](./features-index.md)
- [Flux TTS](./flux-tts-index.md)
- [Formatting](./formatting-index.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
