Skip to main content
Version: 4.0.0

Limits

This section describe what are virtual appliance limits and how to modify them.

API limits

Following limits are applied for the API itself.

NameUnitDefaultDescription
taskExpirationTimeseconds600Time when finished tasks are expired. API holds the information about finished tasks (both successfully finished and failed). These information are discarded after taskExpirationTime. Client usually polls on the task id. Client must retrieve the task status before it is expired. Maximum value is 3600.
taskGrpcTimeoutseconds300Maximum time API waits for any task to complete. If you process big audio files, you probably need to increase this limit.
inputStorageSizevariable1GiBSize of the input storage. When audio file is POSTed to the API, whole file must be stored on the disk. If you process big files or multiple files in parallel, then this limit must be probably increased.
internalStorageSizevariable2GiBSize of the internal storage. Each audiofile is converted into wav format before processing. Converted audio is stored on the disk. If you process big files or multiple files in parallel, then this limit must be probably increased. Also note the internalStorageSize must be greater or equal to the inputStorageSize.
singleFileUploadTimeoutsecond120Maximum allowed time for uploading single file to the API. If you process big files or having a poor network connection, then this limit must be increased.
singleFileUploadSizebytes524288000 (500 MB)Maximum allowed size of an audio file to upload. If you process big files then this limit must be increased. Note that this is API/ingress limit not the UI limit!

How to change the API limits

  1. Open text file /data/speech-platform/speech-platform-values.yaml either directly from inside virtual appliance or via File Browser.
  2. Locate key .spec.valuesContent.api.config
  3. Change the value of the corresponding limit to a new value.
    Example: Increasing the time to wait for a task to finish to 20 minutes (useful for long-running tasks, e.g. Whisper-based transcription run on CPU)
    api:
    config:
    taskGrpcTime: 1200
  4. Save the file.
  5. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  6. Check that the configuration is valid and successfully applied (Configuration file checks).

Media Conversion limits

Following limits are applied for the Media Conversion technology.

NameUnitDefaultDescription
maxAudioLengthseconds7200Audio length limit. Processing of media files larger than this limit is rejected.

How to change the Media Conversion limits

  1. Open text file /data/speech-platform/speech-platform-values.yaml either directly from inside virtual appliance or via File Browser.
  2. Locate key .spec.valuesContent.media-conversion.config
  3. Change the value of the corresponding limit to a new value.
    Example: Increasing the maximum audio length to 10 hours
    media-conversion:
    config:
    maxAudioLength: 36000
  4. Save the file.
  5. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  6. Check that the configuration is valid and successfully applied (Configuration file checks).

UI limits

Following limits are applied for the UI application itself.

NameUnitDefaultDescription
taskParallelism4UI post task to the API and polls for the task until it is finished. This controls how many tasks can be processed in parallel.
taskPollingIntervalseconds1Duration between poll attempts.
taskPollingTimeoutseconds3600How long the UI polls for the task. How long is the UI willing to wait until the task is finished.

Authenticity Verification UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.authenticityVerification are applicable only for Authenticity Verification.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Emotion Recognition UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.emotionRecognition are applicable only for Authenticity Verification.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Speaker Identification UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.speakerIdentification are applicable only for Speaker Identification.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Gender Identification UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.genderIdentification are applicable only for Gender Identification.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Language Identification UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.languageIdentification are applicable only for Language Identification.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Speaker Diarization UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.speakerDiarization are applicable only for Speaker Diarization.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Speech to text UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.speechToText are applicable only for Speech to Text. Limits are applicable for both Enhanced Speech to Text built on Whisper and Speech to Text by Phonexia 6th Gen.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Speech Translation UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.speechTranslation are applicable only for Speech Translation.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Voice Activity Detection UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.voiceActivityDetection are applicable only for Voice Activity Detection.

NameUnitDefaultDescription
maxFileSizebytes100000000 (100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

Audio Quality Estimation UI limits

Limits in config section .spec.valuesContent.frontend.config.limits.audioQualityEstimation are applicable only for Audio Quality Estimation.

NameUnitDefaultDescription
maxFileSizebytes100000000 (== 100 MB)Maximum allowed size of an audio file to upload. Note that this must be lower than or equal to the singleFileUploadSize API limit.
maxFilesCount100Maximum number of files to be uploaded.
maxVoiceRecorderDurationseconds300Maximum duration of the record captured by voice recorder.

How to change the UI limits

  1. Open text file /data/speech-platform/speech-platform-values.yaml either directly from inside virtual appliance or via File Browser.
  2. Locate key .spec.valuesContent.frontend.config.limits
  3. Change the value of the corresponding limit to a new value.
    Example: Decrease number of simultaneously processed tasks to 2
    frontend:
    config:
    limits:
    taskParallelism: 2
  4. Save the file.
  5. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  6. Check that the configuration is valid and successfully applied (Configuration file checks).

Pod count limits

Currently, the platform is limited by the number of pods that can be created inside the Kubernetes cluster. The maximum number of pods is set to 300.

How to change the pod count limits

Pod count limits can be overridden by editing the /etc/rancher/k3s/config.yaml file. To override the maximum number of pods, the max-pods parameter needs to be added/edited.
Example: Increase the maximum number of pods to 350

debug: true
system-default-registry: airgapped.phonexia.com
disable:
- traefik
- cloud-controller
kubelet-arg:
- "kube-reserved=cpu=500m,memory=1Gi,ephemeral-storage=2Gi"
- "system-reserved=cpu=500m, memory=1Gi,ephemeral-storage=2Gi"
- "eviction-hard=memory.available<500Mi,nodefs.available<10%"
- "max-pods=350"

After editing configuration, virtual machine needs to be restarted (stop and start) to apply changes.

Admin backends limits

Following limits are applied to admin backends (filebrowser, grafana, prometheus).

NameUnitDefaultDescription
singleFileUploadTimeoutseconds120Maximum allowed time for uploading.
singleFileUploadSizebytes5368709120 (== 5 GB)Maximum allowed size of an audio file to upload.

How to change admin backends limits

  1. Open text file /data/speech-platform/speech-platform-values.yaml either directly from inside virtual appliance or via File Browser.
  2. Locate key .spec.valuesContent.ingressAdmin
  3. Change the value of the corresponding limit to a new value.
    Example: Increase time to wait for the file upload to finish to 5 minutes
    ingressAdmin:
    singleFileUploadTimeout: 300
  4. Save the file
  5. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  6. Check that the configuration is valid and successfully applied (Configuration file checks).

GPU sharing limits

This limits number of pods which can share single GPU.

NameUnitDefaultDescription
replicascount3Number of pods sharing single GPU

How to change GPU sharing limits

  1. Open text file /data/speech-platform/nvidia-device-plugin-configs.yaml either directly from inside virtual appliance or via File Browser.
  2. Locate key .data.default.sharing.timeSlicing.resources.replicas
  3. Change the value of replicas key to a new value.
    Example: Increase the number of pods sharing the GPU to 6
    replicas: 6
  4. Save the file
  5. Application automatically recognizes that file was updated and redeploys itself with updated configuration.

How to disable GPU sharing

In some cases it might be handy to disable GPU sharing:

  1. Open text file /data/speech-platform/nvidia-device-plugin-configs.yaml either directly from inside virtual appliance or via File Browser.

  2. Locate key .data.default.sharing.

  3. Delete all content under .data.default.sharing key.

  4. Updated file should look like:

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: nvidia-device-plugin-configs
    namespace: nvidia-device-plugin
    data:
    default: |-
    version: v1
    sharing: