azerbaycan-tts Azərbaycanca

Turn Azerbaijani text into speech — free, and without the internet

azerbaycan-tts is an open-source model that reads Azerbaijani text aloud. All of the work happens in your browser: no sign-up, no server, and your text is never sent anywhere. Once the page has loaded, it works with the network switched off.

Start speaking

How it works

The model is a 9.36-million-parameter VITS network that produces 24 kHz audio. It runs in the browser through ONNX Runtime Web: faster than real time where the browser has WebGPU, and on the processor, more slowly, where it does not. The first visit downloads about 37 MB; after that the browser keeps it.

Before it is read, the text is turned into words as they are spoken: «II Dünya müharibəsi» becomes «İkinci Dünya müharibəsi», «25%» becomes «iyirmi beş faiz», «01/09/1939» becomes «bir sentyabr min doqquz yüz otuz doqquzuncu il», and «19,99 AZN» becomes «on doqquz manat doxsan doqquz qəpik». Long text is cut into chunks of about 15 words, because intonation flattens over a long sentence. eSpeak NG turns the letters into phonemes, and its WebAssembly build runs in the browser too.

Limitations

Frequently asked questions

How do I turn Azerbaijani text into speech?

Open the playground, type the text and press «Səsləndir» (Speak). You can listen right there and save the audio as a WAV file with «Endir» (Download). Nothing needs to be installed.

Is it free? Do I need an account?

It is free and needs no account. The only limit is 500 characters at a time; speak longer text in parts.

Does it work offline?

Yes. The first visit downloads the model (about 37 MB) and the browser keeps it. After that the page makes speech without the internet.

Is my text sent to a server?

No. The text and the audio never leave your device, because the model runs inside the browser. The network is used only to download the files of the page, the model and the phonemiser.

Which browser is fastest? Does it work on a phone?

Chrome or Edge on a computer is fastest: there the model runs on WebGPU, faster than real time. It works on a phone too, but more slowly, because the work runs on the processor.

Can I use it commercially?

Yes: the code and the model weights are Apache-2.0, and running them is unrestricted. There is one condition, and it comes from the phonemiser, not the model: eSpeak NG, and phonemizer on the Python side, are GPL-3.0-or-later. Redistributing a combined work — a desktop app, a container image, a binary handed to customers — brings GPL-3.0 obligations. The way out: the model accepts pre-phonemised input (accepts_prephonemized_input), so a product can use its own phonemiser. The Azerbaijani training data is used with its author's permission, on condition of attribution. The English voice is synthetic and Apache-2.0, but the release is open-weight, not open-data. Impersonating a real person or producing deceptive content is not permitted. This is not legal advice.

How do I run the model on my own computer?

The code is on GitHub: clone the repository, run pip install -r requirements.txt and then python say.py "Salam.". On an ordinary laptop processor the model runs 2-4x faster than real time and needs no internet. The weights are also on Hugging Face, in PyTorch and ONNX.

How was the model made?

It was adapted from Owen Song's English Inflect-Micro-v2 model (Apache-2.0): 200,000 training steps on 25.07 hours of Azerbaijani speech. The training data is ughurabbasov/azerbaijani-tts-dataset; its author permits use and asks to be credited. The English voice on the page is the base model itself, so you can hear where this model started.