Architecture

Published latency figures
- Coda: This page documents the current image and service-pair setup. Rime has not published Coda on-prem performance numbers.
- Mist v2: Rime measured median latency of 175ms with randomly generated sentences between 40 and 50 characters on A10Gs and similar GPUs.
Prerequisites
Hardware requirements
- GPU
- For Mist
- NVIDIA T4, L4, A10, or higher
- For Coda
- Confirm GPU requirements with Rime before provisioning
- For Mist
- Storage
- 50 GB storage
- CPU
- 8 vCPUs
- Memory requirements
- 32 GiB
Software requirements
- Supported Linux Distributions
- Debian 12 (
bookworm), x86_64 - Ubuntu Server 24.04 (
noble), x86_64
- Debian 12 (
- NVIDIA drivers
- Minimum:
580.65.06(R580) for the defaultnativeCUDA mode - R535 or R570 hosts: supported only with
RIME_CUDA_COMPAT_MODE=compaton forward-compatibility-eligible GPUs - Recommended:
595.71.05or newer
- Minimum:
- Docker
- NVIDIA Container Toolkit
Installations
NVIDIA drivers
Follow https://www.nvidia.com/en-us/drivers to install the latest NVIDIA drivers, or use the following instructions on Debian-based systems:NVIDIA Driver Installation (Debian-based)
Docker
Follow https://docs.docker.com/engine/install to install Docker on your system. Optionally, add the current user to thedocker group for convenience: https://docs.docker.com/engine/install/linux-postinstall.
The code snippets below assume that you can run docker as the current login.
NVIDIA Container Toolkit
Follow https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html to install the NVIDIA Container Toolkit. Follow both the Installation and the Configuration sections.Verification
To verify that you have all the prerequisites installed, run the following command:Verify Prerequisites
Firewall requirements
The Rime API service listens on port 8000 for HTTP, port 8002 for binary WebSockets, and port 8003 for JSON WebSockets. Allow the following outbound traffic in your firewall rules:https://optimize.rime.ai/usage: the API service calls this endpoint to register on-prem usage with Rime’s usage service.https://optimize.rime.ai/license: the API service calls this endpoint to verify that your on-prem license is active.us-docker.pkg.devon port 443: container image registry.
API and registry credentials
Generate an API key
In the Rime dashboard, create an API key on the API Tokens page. Rime supplies the Artifact Registry key and license access separately.Deployment
Select the model and API images, configure the service pair, then start it with Docker Compose.Artifact Registry login
Use the Artifact Registry key provided by Rime:Log in to Artifact Registry
Container images
Image tags
Substitute that tag for<tag> in the image references below, and update all containers together when you upgrade.
TTS service
Coda (multilingual)
The Coda v1 images can be found atus-docker.pkg.dev/rime-labs/coda/v1/coda:<tag>.
- The supported languages are:
ar,de,en,es,fr,it,ja,pt.
Hindi is registered for Coda on-prem but ships in images tagged after 2026-08-04; it is not in
20260801.Mist v3 (multilingual)
The Mist v3 images can be found atus-docker.pkg.dev/rime-labs/mist/v3/omni:<tag>
- The supported languages are:
de,en,es,es-mx,fr. The image also bundles the Englishclonesbackend, which cannot be selected directly.
API service
us-docker.pkg.dev/rime-labs/api/service:<tag>
YYYYMMDD tag as the model images.
Docker Compose configuration
Create acompose.yml file that defines the services and their configurations:
compose.yml
When running on Kubernetes, ensure thatMODEL_URLpoints tohttp://0.0.0.0:8080/invocationsinstead of the Docker Compose service name.
Authentication configuration
By default, callers must pass their Rime API key in every request via theAuthorization: Bearer <key> header. Two additional environment variables let you configure authentication at the deployment level instead.
Pre-configuring the API key (RIME_API_KEY)
If you set RIME_API_KEY, the API service uses it to authenticate with the Rime license server for HTTP requests on port 8000, and HTTP callers do not need to include an API key. WebSocket clients on ports 8001, 8002, and 8003 must still pass an API key on the connection request; the service caches the resulting license for subsequent connections.
You can supply it as an environment variable:
compose.yml
/secrets/rime_api_key inside the container:
compose.yml
Authorization header.
Alternate API key header (API_KEY_HEADER)
On platforms that intercept the Authorization header, set API_KEY_HEADER to the name of an alternate header that callers will use to pass their Rime API key:
compose.yml
Platform API key (PLATFORM_API_KEY)
On platforms that require authenticated inter-container requests, set PLATFORM_API_KEY so the API service can reach the model backend. You can also mount it as a secret at /secrets/platform_api_key:
compose.yml
Start Docker Compose
Start Docker Compose
Allow approximately five minutes for model warm-up before sending the first synthesis request.
Verify health
Health check
apiStatus: "ok" and modelReachable: true. licenseStatus reads expired-or-not-set until the first authenticated request initializes the license, then valid; it does not affect the status code:
AWS video walkthrough
Requests and response formats
HTTP requests
Request:Request example
Response format
result.txt
Receiving a response in MP3 format
Request:Request example
result.mp3
Receiving a response in PCM (raw) format
Request:Request example
result.pcm
WebSocket endpoints
JSON websockets
The API service serves the JSON WebSocket endpoint for Coda and Mist models on port8003. For example, ws://localhost:8003 is equivalent to Rime’s cloud JSON WebSocket API.
See the Coda JSON WebSocket docs or Mist JSON WebSocket docs, depending on the model backend you configured.
Non-JSON websockets
The API service serves the non-JSON WebSocket endpoint on port8002. For example, ws://localhost:8002 is equivalent to Rime’s cloud WebSocket API.
Deprecated Mist endpoint (port 8001)
The API service also serves a deprecated WebSocket endpoint on port8001. It is compatible only with the Mist model family. Use the current WebSocket endpoints for new integrations.
