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 in 47 languages, transcribed by Omnilingual ASR, Africa TTS has a lower character error rate than MMS-TTS (9.0% vs 10.3%, better in 21 of 27 languages) and the 3.3B Sunbird Orpheus (5.9% vs 10.3%), and is close to the 813M OmniVoice (8.8% vs 8.4%) at a seventh of its size: 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 / Ghana NLP.

Metadata

Release files for africa-tts 0.4.0

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.0
File Size Uploaded Provenance Actions
africa_tts-0.4.0.tar.gz 587.6 kB With provenance Details for africa_tts-0.4.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for africa-tts 0.4.0
File Actions
africa_tts-0.4.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for africa_tts-0.4.0-py3-none-win_amd64.whl
africa_tts-0.4.0-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.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
africa_tts-0.4.0-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.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
africa_tts-0.4.0-py3-none-macosx_14_0_x86_64.whl Python 3 none macOS 14.0+ x86-64 Details for africa_tts-0.4.0-py3-none-macosx_14_0_x86_64.whl
africa_tts-0.4.0-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details for africa_tts-0.4.0-py3-none-macosx_14_0_arm64.whl

Total release size: 28.5 MB

Release files / africa_tts-0.4.0.tar.gz

Download URL africa_tts-0.4.0.tar.gz
Size 587.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e2d432e7db07b0b2ca535502a659507675283f3a16c06c1ca77d1b5e9fccaae6
BLAKE2b-256 checksum
How to use checksums
ae83d4e4cd089106a259683a8f7e9db3433eaa0d9f018614f34de75ce5723fa5
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.0-py3-none-win_amd64.whl

Download URL africa_tts-0.4.0-py3-none-win_amd64.whl
Size 6.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
2bcb526028dd1d709b4c29595186e388fad32e6c2cec82cc936e01f57da51369
BLAKE2b-256 checksum
How to use checksums
c11f9bba2163944db882661270da1326960403636ea7d9b88638be153e303c59
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.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL africa_tts-0.4.0-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
668d562c8717c72d46195676241e9deb18393224e6e1e0cadf147b39023ed5f3
BLAKE2b-256 checksum
How to use checksums
055518f8b2464e237de8b1c17839e39ac16de00c22f15bdf2900a2063d5b3d3b
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.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL africa_tts-0.4.0-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
185d386f40622cd99b67f40eb43e44b431062d93eaae2989ea9a73b407fce1a5
BLAKE2b-256 checksum
How to use checksums
1739c61ed6816b445a925bb37b6cdfaa65744a6e6d4b3bd0e57320c5494cc88b
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.0-py3-none-macosx_14_0_x86_64.whl

Download URL africa_tts-0.4.0-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
a74a49b9314b3f2a5fd43b7bfe1f8be150e5d1eb1fda32ad02df9c61b9a4a487
BLAKE2b-256 checksum
How to use checksums
3f9636808c72d9feb7af697397b5d1dc635c525cc2e6d825c2cb6f29617c8cdc
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.0-py3-none-macosx_14_0_arm64.whl

Download URL africa_tts-0.4.0-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
92559eeb887fa9e109a97f3ea1fa43b27e73068c0651f8cc539f43ce30f7fada
BLAKE2b-256 checksum
How to use checksums
d58295dfb2aea5a71e9bf628e9f07423429953cead3d333e5cc40ba31b6ba629
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.0

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