AbstractVoice stands on top of excellent open-source software and openly released model work. Thank you to all maintainers and contributors.
For licensing caveats around model weights and voice files (which are separate assets from this MIT-licensed library), read docs/voices-and-licenses.md.
This file lists the notable third-party libraries that AbstractVoice uses (see pyproject.toml for the declared dependency set).
- NumPy: https://github.com/numpy/numpy
- Requests: https://github.com/psf/requests
- appdirs: https://github.com/ActiveState/appdirs
These are opt-in via extras in pyproject.toml (see docs/installation.md):
- Piper /
piper-tts(abstractvoice[piper]/ platform local extras) for local neural TTS: https://github.com/rhasspy/piper - Supertone Supertonic 3 (
abstractvoice[supertonic]/ platform local extras) for recommended fixed-profile local ONNX TTS: https://huggingface.co/Supertone/supertonic-3 - ONNX Runtime (
onnxruntime) for Supertonic ONNX inference and Piper execution-provider introspection: https://github.com/microsoft/onnxruntime - faster-whisper (
abstractvoice[stt]/ platform local extras) for local STT: https://github.com/SYSTRAN/faster-whisper- CTranslate2 (inference runtime used by faster-whisper): https://github.com/OpenNMT/CTranslate2
- Hugging Face Hub (
huggingface_hub) (artifact downloads): https://github.com/huggingface/huggingface_hub - SoundDevice + PortAudio (
abstractvoice[audio-io]/ platform local extras) for audio I/O: https://github.com/spatialaudio/python-sounddevice and http://www.portaudio.com/ - SoundFile (WAV/FLAC/OGG I/O): https://github.com/bastibe/python-soundfile
- WebRTC VAD (
webrtcvad) for voice activity detection: https://github.com/wiseman/py-webrtcvad - F5-TTS (
abstractvoice[cloning]) for the explicit OpenF5 cloning backend: https://github.com/SWivid/F5-TTS- Hydra (used by F5-TTS runtime): https://github.com/facebookresearch/hydra
- OmegaConf (used by F5-TTS runtime): https://github.com/omry/omegaconf
- Chroma runtime deps (
abstractvoice[chroma]) for Chroma-4B inference: https://huggingface.co/FlashLabs/Chroma-4B- PyTorch + audio/vision extensions (
torch,torchaudio,torchvision): https://github.com/pytorch/pytorch - Transformers: https://github.com/huggingface/transformers
- Accelerate (runtime helpers): https://github.com/huggingface/accelerate
- PyTorch + audio/vision extensions (
- LongCat-AudioDiT runtime deps (
abstractvoice[audiodit]) for LongCat-AudioDiT TTS + prompt-audio cloning:- Model + weights: https://huggingface.co/meituan-longcat/LongCat-AudioDiT-1B
- Upstream repo (code): https://github.com/meituan-longcat/LongCat-AudioDiT
- PyTorch (
torch): https://github.com/pytorch/pytorch - Transformers: https://github.com/huggingface/transformers
- einops (used by the model blocks): https://github.com/arogozhnikov/einops
- sentencepiece (tokenizer runtime): https://github.com/google/sentencepiece
- safetensors (weight format): https://github.com/huggingface/safetensors
- OmniVoice runtime deps (
abstractvoice[omnivoice]) for the recommended/default local prompt-audio cloning backend, omnilingual TTS, and voice design:- Model + weights: https://huggingface.co/k2-fsa/OmniVoice
- Upstream repo (code): https://github.com/k2-fsa/OmniVoice
- PyTorch + audio/vision extensions (
torch,torchaudio,torchvision): https://github.com/pytorch/pytorch - Transformers: https://github.com/huggingface/transformers
- Accelerate (runtime helpers): https://github.com/huggingface/accelerate
- AEC (
abstractvoice[aec]) for true barge-in on speakers: https://github.com/shichaog/AEC-Audio-Processing - Audio effects (
abstractvoice[audio-fx]): https://github.com/librosa/librosa - Web example (
abstractvoice[web]): https://github.com/fastapi/fastapi and https://github.com/encode/uvicorn
- AbstractCore plugin integration (only when installed alongside
abstractcore): https://github.com/lpalbou/abstractcore - AbstractRuntime ArtifactStore integration (duck-typed; no hard dependency): https://github.com/lpalbou/abstractruntime
- pyreadline3 (Windows readline support for nicer REPL input): https://github.com/pyreadline3/pyreadline3
These may be installed as dependencies of the packages above:
- CTranslate2 (used by faster-whisper): https://github.com/OpenNMT/CTranslate2
AbstractVoice aims to avoid vendoring when possible, but some model code is not published as a stable PyPI package
and is needed to avoid trust_remote_code.
- LongCat-AudioDiT (MIT): https://github.com/meituan-longcat/LongCat-AudioDiT
- We include a HuggingFace-compatible derived implementation under
abstractvoice/audiodit/*. - License text:
third_party_licenses/longcat_audiodit_license.txt.
- We include a HuggingFace-compatible derived implementation under
- Qwen3-ASR Transformers implementation (Apache-2.0): https://github.com/QwenLM/Qwen3-ASR
- We include a derived implementation under
abstractvoice/qwen3_asr/*(sourced from the upstreamqwen-asrpackage) soQwen/Qwen3-ASR-1.7Bcan run withouttrust_remote_code. - License text:
third_party_licenses/qwen_asr_license.txt.
- We include a derived implementation under
No Supertonic or OmniVoice model weights are vendored in this repository. AbstractVoice downloads those optional artifacts into local caches only when the user runs an explicit prefetch command or constructs an adapter with downloads allowed.
AbstractVoice may download model weights and voice files at runtime (explicitly or on demand, depending on allow_downloads).
- Piper voices are cached under
~/.piper/models(seeabstractvoice/adapters/tts_piper.py). - Supertonic 3 artifacts are cached under
~/.cache/abstractvoice/supertonic-3(seeabstractvoice/supertonic/runtime.py). - faster-whisper models use the Hugging Face cache by default (see
abstractvoice/adapters/stt_faster_whisper.py). - Cloning artifacts are cached under
~/.cache/abstractvoice/*(seeabstractvoice/cloning/engine_f5.pyandabstractvoice/cloning/engine_chroma.py). - AudioDiT weights use the Hugging Face cache by default (see
abstractvoice/audiodit/runtime.py).- AudioDiT also downloads a text-encoder model (default:
google/umt5-base) via Hugging Face.
- AudioDiT also downloads a text-encoder model (default:
- OmniVoice weights use the Hugging Face cache by default (see
abstractvoice/omnivoice/runtime.py). - Supertonic is fixed-profile local TTS, not voice cloning. For local cloning,
AbstractVoice recommends and defaults new clones to OmniVoice when no engine
is specified; OpenF5 remains available explicitly through
engine="f5_tts".
Always verify upstream licenses/usage terms for the specific models/voices you deploy or redistribute. See docs/voices-and-licenses.md.