Open-source infrastructure for self-hosted, real-time voice AI.
Build telephony agents in Indian languages β with your infrastructure, your data, and your choice of models and carriers.
Quick Start Β Β· Β Architecture Β Β· Β Low-Resource Languages Β Β· Β Contributing
Voice AI is increasingly powerful, but production deployments can create lock-in around models, telephony, data, and infrastructure.
VoicEra is an open infrastructure layer that puts those choices back with the operator.
- Self-hosted by design β run the platform on infrastructure you control.
- Provider neutral β swap STT, TTS, LLM, and telephony providers without rewriting the platform.
- Data ownership β call media, transcripts, and recordings stay in your infrastructure.
- Public-good friendly β Apache 2.0 licensed, transparent, forkable, and deployable without a VoicEra-managed service.
- Composable β use cloud APIs, local models, or a mix of both.
VoicEra is platform you own, not another AI vendor.
Prerequisite: Docker must be installed and running before you start. Launch Docker Desktop (or your Docker daemon) first β the script fails if it can't reach the Docker daemon.
git clone https://github.com/COSS-India/VoicEra.git
cd VoicEra
./scripts/start-application-services.sh $(ARGS)./scripts/start-application-services.sh $(ARGS) creates the environment, generates required secrets, and starts the stack.
Once running:
| Service | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| API | http://localhost:8000 |
| OpenAPI | http://localhost:8000/docs |
| Runtime | http://localhost:7860 |
| MinIO | http://localhost:9001 |
| FerretDB | http://localhost:27018 |
./scripts/stop-application-services.sh $(ARGS)
See the documentation for production deployment and configuration.
You bring the models and telephony account. VoicEra connects them into a deployable system.
flowchart LR
C["Caller"] <--> T["Telephony<br/>Vobiz Β· Plivo"]
T -->|"audio"| R["Voice Runtime<br/>Pipecat"]
R <--> P["AI Providers<br/>STT Β· LLM Β· TTS"]
U["Operator"] --> D["Dashboard"]
D --> A["API"]
A --> R
A --> DB[("FerretDB<br/>PostgreSQL")]
A --> S[("MinIO<br/>Media & artifacts")]
A --> Q[("Redis")]
Q --> W["Workers"]
R --> S
W --> DB
The platform separates control plane from real-time execution:
- API β agents, configuration, campaigns, authentication, and orchestration.
- Runtime β live call audio and model interaction.
- Dashboard β operator interface.
- Workers β asynchronous jobs and campaign execution.
- Storage β self-hosted database, object storage, and queue.
- Providers β interchangeable AI and telephony integrations.
Read the architecture guide β
VoicEra follows principles that matter for Digital Public Goods:
| Principle | VoicEra |
|---|---|
| Open source | Apache 2.0-licensed source code |
| Self-hostable | Deploy on infrastructure you control |
| Interoperable | Provider registries and defined integration contracts |
| No platform lock-in | Swap model and telephony providers |
| Data sovereignty | Operators control call data and storage |
| Reusable | API-driven components and provider adapters |
| Inclusive | First-class support for Indian languages and low-resource deployments |
| Transparent | Public source, documentation, and contribution process |
VoicEra is intended to be reused, adapted, and independently operated β including by governments, NGOs, public-interest organisations, and other open-source projects.
Integrations live behind stable interfaces, so adding a provider should not require changing the core runtime.
Create a provider under:
apps/providers/{cloud,adapters,local}/
STT, TTS, and LLM providers register through the provider registry.
Implement the telephony contract under:
apps/telephony/providers/
Existing Vobiz and Plivo integrations provide reference implementations.
Use the optional model server to expose self-hosted STT, TTS, or LLMs through a common gateway.
Agent
β
VoicEra
β
Model Server
βββ STT
βββ TTS
βββ LLM
VoicEra is designed to make voice AI more accessible for low-resource and underserved languages β where commercial models, tooling, and high-quality training data are often limited.
It brings together open and interoperable integrations across speech and language technologies, including:
- Bhashini β Indian-language STT and TTS
- AI4Bharat β Indic speech and language models
- Kenpath Vistaar β LLM support for underserved languages
- Cloud providers β additional STT, TTS, and LLM options
The architecture makes it possible to combine these models, self-host them, or replace them as better language technologies emerge.
See the provider registry for the current list.
VoicEra/
βββ apps/
β βββ api/ FastAPI control plane
β βββ runtime/ Pipecat real-time voice runtime
β βββ providers/ STT Β· TTS Β· LLM integrations
β βββ telephony/ Telephony integrations
βββ frontend/ Next.js dashboard
βββ model-server/ Optional self-hosted model gateway
βββ scripts/ Service lifecycle scripts
βββ docs/ Mintlify documentation
VoicEra does not provide telephony accounts or AI inference.
For a real phone deployment, you need:
- STT, TTS, and LLM access β cloud providers or self-hosted models.
- A telephony provider β currently Vobiz or Plivo.
- Infrastructure to run VoicEra and store your data.
For browser-based testing, telephony is not required.
VoicEra is built in the open.
Use β Adapt β Integrate β Contribute
Before opening a pull request, read CONTRIBUTING.md.
Security issues should be reported privately according to SECURITY.md.
VoicEra is released under the Apache License 2.0.
Build voice infrastructure. Keep control.