Skip to main content

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() and transcribe_*

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.
  • --openf5 is ~5.4GB. --chroma is 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abstractvoice-0.6.3.tar.gz (120.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abstractvoice-0.6.3-py3-none-any.whl (122.3 kB view details)

Uploaded Python 3

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

Hashes for abstractvoice-0.6.3.tar.gz
Algorithm Hash digest
SHA256 bcc074901d28be2972b7445510322f03388ec6f220b52ec0b664f69d63f883df
MD5 4b5f4215a91fccd79ae8c8757386729b
BLAKE2b-256 d2cdd7609fc57cac63e8135de52614109835977600e2f29710ad3c2c08356999

See more details on using hashes here.

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

Hashes for abstractvoice-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bfa3b2767f6fdbead00b14de9aa891d2be7a204cab5d67f90dd376817798cf58
MD5 fdfa96b10089e01be9a38a3e3b1e1bad
BLAKE2b-256 d29da61a3cc8498ef335285a9ed1bc2b4f1cc4c1894ac00559d5aafa9dfa06a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page