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.1

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.1
File Size Uploaded Provenance Actions
africa_tts-0.4.1.tar.gz 721.5 kB With provenance Details for africa_tts-0.4.1.tar.gz

Built distributions (wheels)

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

Total release size: 28.6 MB

Release files / africa_tts-0.4.1.tar.gz

Download URL africa_tts-0.4.1.tar.gz
Size 721.5 kB
Tags Source
SHA-256 checksum
How to use checksums
45a547bb0d63b1eeec485bbe91612d563cb6710e8f6819415a17ea4ba2185b39
BLAKE2b-256 checksum
How to use checksums
1adb3d02c91df4c6b867fd555350debb934ced2f935698d5f892ad7cc29fd939
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 7, 2026.

Transparency log

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

Download URL africa_tts-0.4.1-py3-none-win_amd64.whl
Size 6.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
fc2aa0729b2d2d57d8f229ab7c3f256e1282b86cb3d02a72530639cdfbbe1f2e
BLAKE2b-256 checksum
How to use checksums
28bffd00ef17694a72723b9cfb73da60af0e4683a3b70074e0859ac623b36420
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 7, 2026.

Transparency log

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

Download URL africa_tts-0.4.1-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
90dc1d9f175e6e45257106d6ef631984c3c0d62975fe3155722b39a01805e58f
BLAKE2b-256 checksum
How to use checksums
37c241e818d5d87009b86021a4c1ad33b27652b12dda19a953e62889a215de9a
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 7, 2026.

Transparency log

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

Download URL africa_tts-0.4.1-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
bbd36a40b4d0aeb404a8ab13bbb8c2df518e744fdee924dd47837a2b053b14ed
BLAKE2b-256 checksum
How to use checksums
0fe5dfebcac2acb96888e19d7b18f9ee1de94da06002fefb75db6848953795a2
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 7, 2026.

Transparency log

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

Download URL africa_tts-0.4.1-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
29ad29f0ddefc637dd48b7ce5c04b5cb5e8178f848f8b70ef743459815c1bf67
BLAKE2b-256 checksum
How to use checksums
64d96c6b67b0a1ede32e3529a3e9024314a52682ba992df29e86f8b15f0e9fbf
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 7, 2026.

Transparency log

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

Download URL africa_tts-0.4.1-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
63ec8fd9e1bd3a5c93015a36266d8f42e2d269d97bbefc2e624344b82696a594
BLAKE2b-256 checksum
How to use checksums
dc2bc32c0904119c4fd32a01d0cad19cddfb207fb607d85d2d02233126548585
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 7, 2026.

Transparency log

Security for africa-tts 0.4.1

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.1.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 7, 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