tts.hoelee.com

Private Text-to-Speech Infrastructure

A self-hosted speech-synthesis endpoint fronting two independent neural engines — built and operated by Hoelee, full-stack developer & DevOps engineer.

Checking endpoint…

What this is

This is a private text-to-speech endpoint, not a public service. It exposes a simple query-string HTTP contract so that any client — a reading app, an e-learning tool, an IVR, or internal automation — can synthesize speech. Access is keyed: requests without a valid key are rejected.

Text is synthesized through enterprise cloud engines that we operate under our own accounts and credentials — clients never need their own provider account, keys, or quota. Audio is returned directly and is not retained.

Two engines, one endpoint

Most self-hosted TTS setups give you one engine. This one routes to two, because they are good at different things — and you can switch between them per request.

engine=microsoft

Microsoft Neural

Azure Speech neural voices. Multilingual set plus dedicated child voices. Strong prosody control.

engine=google

Google Wavenet

Google Cloud TTS WaveNet voice. Clean, neutral delivery — a useful second opinion on the same text.

same contract

Swap per request

Identical request shape for both engines, so switching a voice or an engine is one parameter.

Technical

GET /synthesize?text=…&engine=…&voice=…&speed=…&pitch=…
Authorization: Bearer <api-key>

← audio/wav  (RIFF, 24 kHz, 16-bit mono)

Microsoft voices (voice = 1–8)

#VoiceCharacter
1XiaochenMultilingualFemale, multilingual
2XiaoxiaoMultilingualFemale, multilingual
3XiaoyuMultilingualFemale, multilingual
4YunxiaoMultilingualMale, multilingual
5YunyiMultilingualMale, multilingual
6YunfanMultilingualMale, multilingual
7XiaoshuangNeuralFemale, child
8XiaoyouNeuralFemale, child

Google voice

VoiceNotes
cmn-CN-Wavenet-AFixed — this engine exposes a single WaveNet voice

Parameter format differences

speed is required by both engines (range 550, mapped to −20%…+150% speaking rate). Omitting it produces an invalid request.

ParamMicrosoftGoogle
speed5–50, required5–50, required
pitchPercentage string, e.g. 0%Bare number, e.g. 0 (default 3.0)
voiceindex 1–8ignored (fixed voice)

Get access

Keys are issued individually and provisioned manually, so this endpoint stays private by default. Message me if you want speech synthesis for your app, course, or product.

Want this for your business?

I build this kind of internal infrastructure: self-hosted services with proper authentication, external API integrations with credential and quota handling, and the integration layer that makes them usable from the devices your staff or customers already use.

Text-to-speech is one example. The same approach applies to private document search, internal automation, VPN/remote access, monitoring, and backups — running on hardware you own, so your data never leaves the building.

Available for freelance and contract work — remote, worldwide.

More from this infrastructure

This is one of several private APIs I run on my own hardware — I don't offer a single service:

stt.hoelee.com

Speech-to-Text

OpenAI-compatible transcription running on private GPU hardware (whisper.cpp).

llm.hoelee.com

LLM Inference

OpenAI-compatible chat completions on local GPU — private, no third-party cloud in the path.

tts.hoelee.com — you are here

Text-to-Speech

Dual-engine neural speech synthesis behind a single keyed contract.

Beyond these APIs I design and build websites, mailbox hosting, and self-hosted infrastructure for small businesses. See www.hoelee.com for services and blog.hoelee.com for write-ups of how this infrastructure is built — including what running it actually costs.