Skip to content

Open-source, end-to-end Voice AI orchestration platform. Connect channels, stream audio, run STT/TTS/VAD, manage state, and monitor everything.

License

Notifications You must be signed in to change notification settings

rapidaai/voice-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner

Rapida: End-to-End Voice Orchestration Platform

Rapida is an open-source platform for designing, building, and deploying voice agents at scale.
It’s built around three core principles:

  • Reliable β€” designed for production workloads, real-time audio, and fault-tolerant execution
  • Observable β€” deep visibility into calls, latency, metrics, and tool usage
  • Customizable β€” flexible architecture that adapts to any LLM, workflow, or enterprise stack

Rapida provides both a platform and a framework for building real-world voice agentsβ€”from low-latency audio streaming to orchestration, monitoring, and integrations.

Rapida is written in Go, using the highly optimized gRPC protocol for fast, efficient, bidirectional communication.


Features

  • Real-time Voice Orchestration
    Stream and process audio with low latency using GRPC.

  • LLM-Agnostic Architecture
    Bring your own modelβ€”OpenAI, Anthropic, open-source models, or custom inference.

  • Production-grade Reliability
    Built-in retries, error handling, call lifecycle management, and health checks.

  • Full Observability
    Call logs, streaming events, tool traces, latency breakdowns, metrics, and dashboards.

  • Flexible Tooling System
    Build custom tools and actions for your agents, or integrate with any backend.

  • Developer-friendly
    Clear APIs, modular components, and simple configuration.

  • Enterprise-ready
    Scalable design, efficient protocol, and predictable performance.

Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           CHANNELS                           β”‚
β”‚         Phone β€’ Web β€’ WhatsApp β€’ SIP β€’ WebRTC β€’ Others       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β”‚
                                β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       RAPIDA ORCHESTRATOR                   β”‚
β”‚   Routing β€’ State β€’ Parallelism β€’ Tools β€’ Observability     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚                              β”‚
                β–Ό                              β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚   Audio Preprocess   β”‚        β”‚          STT           β”‚
    β”‚  β€’ VAD               β”‚ <----> β”‚   Speech-to-Text       β”‚
    β”‚  β€’ Noise Reduction   β”‚        β”‚   (ASR Engine)         β”‚
    β”‚  β€’ End-of-Speech     β”‚        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    β”‚
                β”‚                               β–Ό
                β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚                    β”‚           LLM          β”‚
                β”‚                    β”‚ Reasoning β€’ Tools β€’    β”‚
                β”‚                    β”‚  Memory β€’ Policies     β”‚
                β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                β”‚                                β”‚
                β”‚                                β–Ό
                β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                └──────────────────▢ β”‚           TTS          β”‚
                                     β”‚    Text-to-Speech      β”‚
                                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                 β”‚
                                                 β–Ό
                                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                β”‚              USER OUTPUT           β”‚
                                β”‚         Audio Stream Response      β”‚
                                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Documentation & Guides

https://doc.rapida.ai


Services

Service Description Port
PostgreSQL Database for persistent storage 5432
Redis In-memory caching 6379
OpenSearch Search engine for document indexing 9200, 9600
Web API Backend service 9001
Assistant API Intelligence and assistance API 9007
Integration API Third-party integrations API 9004
Endpoint API Endpoint management API 9005
Document API Document handling API 9010
UI React front-end 3000
NGINX Reverse proxy and static server 8080

Prerequisites

  • Docker: Install Docker.
  • Docker Compose: Ensure Docker Compose is included with your Docker installation.

Setup

1. Clone the Repository

git clone https://github.com/rapidaai/voice-ai.git
cd voice-ai

2. Create Necessary Directories

Ensure the following directories exist for containerized services to mount their data:

mkdir -p ${HOME}/rapida-data/

For more about how the data is structured for services https://doc.rapida.ai

3. Set Permissions for Docker Access

Grant docker group access to the created directories to ensure proper mounting:

sudo setfacl -m g:docker:rwx ${HOME}/rapida-data/

4. Build the Services

make build-all

5. Start the Services

Start all services:

make up-all

Alternatively, start specific services (e.g., just PostgreSQL):

make up-db

6. Stop the Services

Stop all running services:

make down-all

Stop specific services:

make down-web

Accessing Services

Service URL
UI http://localhost:3000
Web-API http://localhost:9001
Assistant-API http://localhost:9007
Integration-API http://localhost:9004
Endpoint-API http://localhost:9005
Document-API http://localhost:9010
OpenSearch http://localhost:9200

Makefile Usage

The Makefile simplifies operations using Docker Compose:

Common Commands

  • Build all images:

    make build-all
  • Start all services:

    make up-all
  • Stop all services:

    make down-all
  • Check service logs (e.g., Web API):

    make logs-web
  • Restart specific services (e.g., Redis):

    make restart-redis

View All Commands

Run make help to see a full list of available Makefile commands.


Notes

  • Ensure to create the necessary directories (rapida-data/assets/...) and apply permissions before starting the services.
  • Custom configurations for NGINX and other services are mounted and should be adjusted as per your requirements.

SDKs & Tools

Client SDKs

Client SDKs enable your frontend to include interactive, multi-user experiences.

Language Repo Docs
Web (React) rapida-react docs
Web Widget (react) react-widget

Server SDKs

Server SDKs enable your backend to build and manage agents.

Language Repo Docs
Go rapida-go docs
Python rapida-python docs

Contributing

For those who'd like to contribute code, see our Contribution Guide. At the same time, please consider supporting RapidaAi by sharing it on social media and at events and conferences.

Security disclosure

To protect your privacy, please avoid posting security issues on GitHub. Instead, report issues to contact@rapida.ai, and our team will respond with detailed answer.

License

Rapida is open-source under the GPL-2.0 license, with additional conditions:

  • Open-source users must keep the Rapida logo visible in UI components.
  • Future license terms may change; this does not affect released versions.

A commercial license is available for enterprise use, which allows:

  • Removal of branding
  • Closed-source usage
  • Private modifications Contact sales@rapida.ai for details.