Skip to main content
Version: 3.7.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.
internalStorageSizevariable1GiBSize 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.
singleFileUploadSizebytes104857600 (== 100MB)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.
    api:
    config:
    taskExpirationTime: 1200
  4. Updated file should look like:
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
    name: speech-platform
    namespace: kube-system
    spec:
    valuesContent: |-
    <Not significant lines omitted>
    api:
    <Not significant lines omitted>
    config:
    taskExpirationTime: 1200
  5. Save the file.
  6. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  7. Check that the configuration is valid and successfully applied (Step 5 of Installation Guide).

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.
    media-conversion:
    config:
    # 10 hours
    maxAudioLength: 36000
  4. Updated file should look like:
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
    name: speech-platform
    namespace: kube-system
    spec:
    valuesContent: |-
    <Not significant lines omitted>
    media-conversion:
    <Not significant lines omitted>
    config:
    maxAudioLength: 36000
  5. Save the file.
  6. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  7. Check that the configuration is valid and successfully applied (Step 5 of Installation Guide).

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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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
maxFileSizebytes5000000 (== 5MB)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.
    frontend:
    config:
    limits:
    taskParallelism: 2
  4. Updated file should look like:
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
    name: speech-platform
    namespace: kube-system
    spec:
    valuesContent: |-
    <Not significant lines omitted>
    frontend:
    <Not significant lines omitted>
    config:
    limits:
    taskParallelism: 2
  5. Save the file.
  6. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  7. Check that the configuration is valid and successfully applied (Step 5 of Installation Guide).

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 maximal number of pods max-pods parameter needs to be added/edited. Example:

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 (== 5GB)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.
    ingressAdmin:
    singleFileUploadTimeout: 300
  4. Updated file should look like:
    apiVersion: helm.cattle.io/v1
    kind: HelmChartConfig
    metadata:
    name: speech-platform
    namespace: kube-system
    spec:
    valuesContent: |-
    <Not significant lines omitted>
    ingressAdmin:
    <Not significant lines omitted>
    singleFileUploadTimeout: 300
  5. Save the file
  6. Application automatically recognizes that file was updated and redeploys itself with updated configuration.
  7. Check that the configuration is valid and successfully applied (Step 5 of Installation Guide).

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.

    replicas: 6
  4. Updated file should look like:

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: nvidia-device-plugin-configs
    namespace: nvidia-device-plugin
    data:
    default: |-
    <Not significant lines omitted>
    resources:
    - name: nvidia.com/gpu
    replicas: 6
  5. Save the file

  6. 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: