Skip to main content

Africa TTS

Text-to-speech for 92 African languages and English, with voice cloning, built on Kyutai's Pocket TTS. Every language has a default voice, so all you need is text and a language code.

🎙️ Try it live · 🔊 Samples · 🤗 Model

An ongoing project: native-speaker feedback is what improves it most. See CONTRIBUTING.md.

⚡ Runs on a CPU, no GPU needed

Africa TTS runs on audio.cpp by default: a 144 MB model, no PyTorch, faster than real time on an ordinary laptop, streaming its first audio about 0.1 s after it gets the text. On a 2020 laptop CPU (AMD Ryzen 5 4500U, 4 threads) it speaks 2.3-2.8× faster than real time. It has 110M parameters, so it runs on laptops, servers and phones.

The unquantised PyTorch engine is optional (pip install "africa-tts[torch]"): it also runs on a GPU, and on a 4-vCPU cloud machine it speaks 2.4× faster than real time (speed benchmark).

🎯 Intelligible

On held-out sentences transcribed by Omnilingual ASR, Africa TTS is more intelligible than MMS-TTS in 21 of 27 languages. The 813M OmniVoice, seven times its size, is more intelligible in 24 of 29, by small margins: benchmark.

Install

pip install africa-tts                 # default: audio.cpp on the CPU, no PyTorch
pip install "africa-tts[torch]"        # optional: the unquantised PyTorch engine (CPU or GPU)

English also needs espeak-ng (apt install espeak-ng / brew install espeak-ng). The first time, it asks before downloading the model (about 150 MB; 440 MB for PyTorch) from Hugging Face, then caches it and works offline. In scripts, approve the download with --yes, AfricaTTS.load(download=True), or africa-tts --download beforehand. For PyTorch on a CPU-only Linux machine, add --extra-index-url https://download.pytorch.org/whl/cpu to get the small CPU build.

Use

africa-tts "Akwaaba! Yɛfrɛ me Kofi." --lang twi -o twi.wav
africa-tts --list-languages
africa-tts serve                       # the API server below, on port 8000
from africa_tts import AfricaTTS

tts = AfricaTTS.load()                                                  # audio.cpp, CPU
audio = tts.generate("Akwaaba! Yɛfrɛ me Kofi.", lang="twi")              # default Twi voice
audio = tts.generate("Hello Ghana!", lang="eng", voice="my_voice.wav")  # clone a 3-10 s clip
tts.save(audio, "out.wav")

for chunk in tts.stream("Akwaaba! Yɛfrɛ me Kofi.", lang="twi"):         # 80 ms chunks
    ...

tts = AfricaTTS.load(backend="torch")   # PyTorch, unquantised (pip install "africa-tts[torch]")
tts = AfricaTTS.load(device="cuda")     # PyTorch on an NVIDIA GPU
  • Languages: ISO 639-3 codes (twi, hau, yor, swh, zul, amh, eng, ...); see africa-tts --list-languages.
  • Numbers: spell them out ("twenty", not "20").

Run it elsewhere

API server africa-tts serve: HTTP, WebSocket streaming, OpenAI-compatible; audio.cpp on CPU, or PyTorch (CPU/GPU) with the torch extra; Docker or Modal: server/
On device sherpa-onnx bundles, C front end, Android wrapper: mobile/
Experimental languages 657 untrained languages, read through their closest trained one; help us test: docs/EXPERIMENTAL_LANGUAGES.md

More

License

Code: MIT (LICENSE). Model and default voices: CC-BY-NC-4.0. espeak-ng (English) is GPL-3.0-or-later. Built by AfriSpeech.

Metadata

Release files for africa-tts 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for africa-tts 0.4.2
File Size Uploaded Provenance Actions
africa_tts-0.4.2.tar.gz 722.5 kB With provenance Details for africa_tts-0.4.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for africa-tts 0.4.2
File Actions
africa_tts-0.4.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for africa_tts-0.4.2-py3-none-win_amd64.whl
africa_tts-0.4.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for africa_tts-0.4.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
africa_tts-0.4.2-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details for africa_tts-0.4.2-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
africa_tts-0.4.2-py3-none-macosx_14_0_x86_64.whl Python 3 none macOS 14.0+ x86-64 Details for africa_tts-0.4.2-py3-none-macosx_14_0_x86_64.whl
africa_tts-0.4.2-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details for africa_tts-0.4.2-py3-none-macosx_14_0_arm64.whl

Total release size: 28.6 MB

Release files / africa_tts-0.4.2.tar.gz

Download URL africa_tts-0.4.2.tar.gz
Size 722.5 kB
Tags Source
SHA-256 checksum
How to use checksums
d3a399e82b0765a29d93ee0b3dea39e031028fbfd0a675d86279d439c5ba6b17
BLAKE2b-256 checksum
How to use checksums
b50f2b8b22ac2e35d11ebdd3e82ebda19277aa9c81e51a76cc50a24da5c35942
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Release files / africa_tts-0.4.2-py3-none-win_amd64.whl

Download URL africa_tts-0.4.2-py3-none-win_amd64.whl
Size 6.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
41fc5984c20d8d59f09fbc643b5193255547352dc5e515e982ffe4d62a5fd7c3
BLAKE2b-256 checksum
How to use checksums
06bb3c302a444b3b2fcb8b069fbc12c8c995458aa2c169e182492887f38eda38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Release files / africa_tts-0.4.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL africa_tts-0.4.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 9.7 MB
Tags Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9d9479971afd5f33ca3ec6d16b40bc8be38b85883afed1acfab1ce7a52c5112a
BLAKE2b-256 checksum
How to use checksums
275c4aa7366fc20a819ef6ae97918f5380b63a60d1a32446d549257a797df4ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Release files / africa_tts-0.4.2-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL africa_tts-0.4.2-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 2.6 MB
Tags Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
77705a14f71dbdca620b2fdf4e5e31256635217a2b1fe8cc69956c4868ef681f
BLAKE2b-256 checksum
How to use checksums
01e6676dce6c8d791b9f95103a91dff5eeb3484451df15b6d5c30f70cc0afd52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Release files / africa_tts-0.4.2-py3-none-macosx_14_0_x86_64.whl

Download URL africa_tts-0.4.2-py3-none-macosx_14_0_x86_64.whl
Size 4.9 MB
Tags Python 3 macOS 14.0+ x86-64
SHA-256 checksum
How to use checksums
a3c85291402e135184456c47d61463c883b614ebedc42bc434bedb097a553ee7
BLAKE2b-256 checksum
How to use checksums
7653242e3735ca4f6bd8ac0cc61b0b564ebb4c9114115bad0a227efbb2ee6e5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Release files / africa_tts-0.4.2-py3-none-macosx_14_0_arm64.whl

Download URL africa_tts-0.4.2-py3-none-macosx_14_0_arm64.whl
Size 4.5 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
b41ec00d8e9dcd722f16d655b6bab49e1b98ccb3beddcd130c542bc8f2b0f91f
BLAKE2b-256 checksum
How to use checksums
f5132bc44c625b23eea7ae527d5ad9ee4f238ccb54f6e4b87f09a4d61824c937
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

Security for africa-tts 0.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for africa_tts-0.4.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page