A modular Python library for voice interactions with AI systems
Project description
AbstractVoice
A modular Python library for voice I/O around AI applications.
- TTS (default): Piper (cross-platform, no system deps)
- STT (default): faster-whisper
- Local assistant:
listen()+speak()with playback/listening control - Headless/server:
speak_to_bytes()/speak_to_file()andtranscribe_*
Status: alpha (0.6.1). The supported integrator surface is documented in docs/api.md.
Next: docs/getting-started.md (recommended setup + first smoke tests).
AbstractVoice will ultimately be integrated as the voice modality of AbstractFramework.
An OpenAI-compatible voice endpoint is an optional demo/integration layer (see backlog).
Install
pip install abstractvoice
Optional extras (feature flags):
pip install "abstractvoice[all]"
Notes:
abstractvoice[all]enables most optional features (incl. cloning + AEC + audio-fx), but does not include the GPU-heavy Chroma runtime.- For the full list of extras (and platform troubleshooting), see
docs/installation.md.
Explicit model downloads (recommended; never implicit in the REPL)
Some features rely on large model weights/artifacts. AbstractVoice will not download these implicitly inside the REPL (offline-first).
After installing, prefetch explicitly (cross-platform):
abstractvoice-prefetch --stt small
abstractvoice-prefetch --piper en
abstractvoice-prefetch --openf5
abstractvoice-prefetch --chroma
Or equivalently:
python -m abstractvoice download --stt small
python -m abstractvoice download --piper en
python -m abstractvoice download --openf5
python -m abstractvoice download --chroma
Notes:
--piper <lang>downloads the Piper ONNX voice for that language into~/.piper/models.--openf5is ~5.4GB.--chromais very large (GPU-heavy).
Quick smoke tests
REPL (fastest end-to-end)
abstractvoice --verbose
# or (from a source checkout):
python -m abstractvoice cli --verbose
Notes:
- Mic voice input is off by default for fast startup. Enable with
--voice-mode stop(or in-session:/voice stop). - The REPL is offline-first: no implicit model downloads. Use the explicit download commands above.
See docs/repl_guide.md.
Minimal Python
from abstractvoice import VoiceManager
vm = VoiceManager()
vm.speak("Hello! This is AbstractVoice.")
Public API (stable surface)
See docs/api.md for the supported integrator contract.
At a glance:
- TTS:
speak(),stop_speaking(),pause_speaking(),resume_speaking(),speak_to_bytes(),speak_to_file() - STT:
transcribe_file(),transcribe_from_bytes() - Mic:
listen(),stop_listening(),pause_listening(),resume_listening()
Documentation (minimal set)
- Docs index:
docs/README.md - Getting started:
docs/getting-started.md - FAQ:
docs/faq.md - Orientation:
docs/overview.md - Acronyms:
docs/acronyms.md - Public API:
docs/api.md - REPL guide:
docs/repl_guide.md - Install troubleshooting:
docs/installation.md - Multilingual support:
docs/multilingual.md - Architecture (internal):
docs/architecture.md+docs/adr/ - Model management (Piper-first):
docs/model-management.md - Licensing notes:
docs/voices-and-licenses.md
Project
- Changelog:
CHANGELOG.md - Contributing:
CONTRIBUTING.md - Security:
SECURITY.md - Acknowledgments:
ACKNOWLEDGMENTS.md
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file abstractvoice-0.6.3.tar.gz.
File metadata
- Download URL: abstractvoice-0.6.3.tar.gz
- Upload date:
- Size: 120.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcc074901d28be2972b7445510322f03388ec6f220b52ec0b664f69d63f883df
|
|
| MD5 |
4b5f4215a91fccd79ae8c8757386729b
|
|
| BLAKE2b-256 |
d2cdd7609fc57cac63e8135de52614109835977600e2f29710ad3c2c08356999
|
File details
Details for the file abstractvoice-0.6.3-py3-none-any.whl.
File metadata
- Download URL: abstractvoice-0.6.3-py3-none-any.whl
- Upload date:
- Size: 122.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfa3b2767f6fdbead00b14de9aa891d2be7a204cab5d67f90dd376817798cf58
|
|
| MD5 |
fdfa96b10089e01be9a38a3e3b1e1bad
|
|
| BLAKE2b-256 |
d29da61a3cc8498ef335285a9ed1bc2b4f1cc4c1894ac00559d5aafa9dfa06a2
|