Key features
- Three services in one container: ASR, text-to-text translation, and TTS exposed through a single API
- NPU-accelerated: Whisper, OpusMT, MeloTTS, and PiperTTS models all run on the Qualcomm NPU, freeing the CPU for other tasks
- Multilingual: English, Spanish, and Chinese supported across all three services; German and Italian available via PiperTTS
- Streaming support: Real-time transcription via WebSocket alongside batch file-based transcription
- OpenAPI / Swagger UI: Interactive API docs available at
http://<device-ip>:8085/docs
Supported models
These are the currently supported models. Query
/transcriptions/models, /translations/models, and /tts/models to confirm which models are loaded at runtime.
Setup
The steps below assume you have already set up your device (IQ-9075 EVK or IQ-8275 EVK). Once your device is set up, follow these steps to deploy and run the Audio Analytics container.1
Install required packages
SSH into your device and install the required packages:
2
Set up Docker
3
Download the models
Create the model directory structure and download all models from QAI Hub.
Your models directory should now look like this:
IQ-9075 EVK
IQ-9075 EVK
IQ-8275 EVK
IQ-8275 EVK
4
Get the Docker Compose file
Download the Docker Compose file for your device from the CodeLinaro audio-analytics deploy directory.
IQ-9075 EVK
IQ-9075 EVK
Option A — download directly on the device:Option B — download locally and copy to the device:
IQ-8275 EVK
IQ-8275 EVK
Option A — download directly on the device:Option B — download locally and copy to the device:
The remaining steps use
docker-compose-qcs9100.yml. If you are on the IQ-8275 EVK, substitute docker-compose-qcs8300.yml in each command.5
Configure the container
Open the Docker Compose file and adjust the following environment variables as needed:
MODELS_DIR: Base path for all models inside the container (default:/mnt/work/models)SESSION_TIMEOUT_S: Seconds of inactivity before an ASR streaming session is automatically closed (default:30)LOG_LEVEL:10=DEBUG,20=INFO,30=WARNING,40=ERROR (default:20)
volumes:- Model path: By default maps
~/models/audioon the host to/mnt/work/modelsin the container. If you placed your models elsewhere, update the left side of the volume mount:
6
Start the container
The Docker Compose file pulls the container image automatically if it isn’t already present.Verify the container is running:
7
Verify the service is running
Once ready, check the health endpoint:Expected response:You can also confirm which models are loaded:
8
Test each service
Run a quick smoke test for each of the three services.ASR — transcribe audio:Expected response:Translation — translate text:Expected response:TTS — synthesize speech:
9
Stop the container
When you are finished:
Viewing logs
All container output is available viadocker logs. There are no separate log files.
LOG_LEVEL in your Docker Compose file and restart the container:
Next steps
Speech recognition
File-based and real-time streaming transcription
Text-to-speech
Synthesize natural speech in multiple languages
Language translation
Translate text between languages on-device

