Core principle
- Complete data isolation: No audio data, transcript data, or personally identifiable information (PII) will ever be sent to AssemblyAI servers. Only usage metadata and licensing information is transmitted.
System requirements
Hardware requirements
- CPU: 28 cores minimum
- RAM: 128 GB minimum
- GPU: NVIDIA GPU with CUDA Compute Capability 7.0 or higher is required
Software requirements
- Operating System: Linux
- Container Runtime: Docker required
- AWS Account: Required for pulling container images from our ECR registry
Prerequisites
- Active enterprise contract with AssemblyAI
- AWS account credentials for container registry access
- Linux environment with Docker installed
- NVIDIA Container Toolkit for GPU support
Setup and deployment
1. Docker runtime with GPU support
1.1 Verify NVIDIA drivers are installed:2. Obtain credentials
AWS ECR Access: AssemblyAI will manually provision AWS account credentials for your team to pull container images from our private Amazon ECR registry. Contact your AssemblyAI representative to obtain these credentials.3. AWS ECR authentication
Authenticate with AWS ECR using the provided credentials:4. Pull the Docker image
Pull the self-hosted ML container image:5. Obtain license file
AssemblyAI will provide a license file (license.jwt) that is required to run the container. The license file contains:
- Expiration date
- Usage limits
- Customer identification
6. Run the container
Start the self-hosted ML container with GPU support:--gpus all: Enables GPU access for the container-p 8000:8000: Maps port 8000 from the container to the host-e NVIDIA_DRIVER_CAPABILITIES=all: Enables all NVIDIA driver capabilities-v /absolute/local/path/to/license.jwt:/app/license.jwt: Mounts the license file into the container
Replace
/absolute/local/path/to/license.jwt with the actual absolute path to
your license file on the host system.Using the API
Once the container is running, you can interact with it using HTTP requests.Check container health
Verify that the container is ready to accept requests:Transcribe an audio file
Submit an audio file for transcription:file: The audio file to transcribe (supports common audio formats like MP3, WAV, M4A, etc.)payload: JSON object containing transcription parameterslanguage: Language code for the audio (e.g.,"en"for English)
Supported languages
The self-hosted async solution supports multiple languages. Specify the language code in thepayload parameter when making transcription requests.
Common language codes:
en: Englishes: Spanishfr: Frenchde: Germanit: Italianpt: Portuguesenl: Dutch
Troubleshooting
Container fails to start
Issue: Container exits immediately after starting. Solution: Verify that:- The license file path is correct and the file exists
- The license file is not expired
- GPU drivers are properly installed (
nvidia-smishould work) - NVIDIA Container Toolkit is installed
Health check fails
Issue: The/health endpoint returns an error or times out.
Solution:
- Wait a few moments for the container to fully initialize
- Check container logs:
docker logs <container_id> - Verify GPU access: Ensure the container can access the GPU
Transcription request fails
Issue: The/predict endpoint returns an error.
Solution:
- Verify the audio file format is supported
- Check that the
languageparameter is valid - Ensure the file path in the curl command is correct
- Review container logs for detailed error messages