Skip to main content

Verify and Go

Mode:Batch Realtime   Deployments:Virtual Appliance

This section explains how to verify the correct operation of the Virtual Appliance upon first launch.

Appliance Health

Checking the Appliance health

Mode:Realtime   

Note

The healthcheck endpoint is currently only available in realtime early access mode.

A health check endpoint has been implemented in the appliance management API in order to provide some simple checks to validate the health of the appliance.

  • Method: GET
  • URL:
    https://${APPLIANCE_HOST}/v2/management/health
curl -X 'GET' "https://${APPLIANCE_HOST}/v2/management/health" 
{
  "status": "healthy",
  "database": {
    "status": "disabled"
  },
  "batch_inference": {
    "status": "disabled"
  },
  "monitoring": {
    "status": "healthy"
  },
  "storage": {
    "status": "healthy"
  },
  "realtime_inference": {
    "status": "healthy"
  },
  "gpu_inference": {
    "status": "healthy"
  }
}

The above provides a indicator of the overall appliance health under status, health of individual components are also listed:

  • database - The health of the internal jobs database
  • batch_inference - The health of the batch inference service
  • monitoring - The health of the monitoring Services
  • storage - The health of the mounted storage disks
  • realtime_inference - The health of the realtime inference service
  • gpu_inference - The health of the GPU inference service (if enabled)
Note

Some features may appear with status disabled where they are not required by the current configuration of the appliance.

Common Health Issues

Unhealthy realtime inference

  "realtime_inference": {
    "status": "unhealthy",
    "errors": [
      "expected deployment: sm-transcriber-en to have 1 ready replicas have: 0"
    ]
  }

The transcriber requires the appliance to be licensed before it can start, ensure the appliance is licenced, see Licensing.

Unheathy storage

The appliance requires you to have the expected disks mounted to the expected mount points in order to function correctly. These disks depend on the mode you are currently running.

  • batch - /opt/speechmatics/jobs, /opt/speechmatics/monitoring
  • realtime - /opt/speechmatics/monitoring

Batch Smoke Test

To run a simple transcription job to test that everything is working use the Batch Virtual Appliance Speech API

  • Method: POST
  • URL:
    https://${APPLIANCE_HOST}/v2/jobs

For example, you can use the following Speech API request using the curl command line tool to transcribe an audio file 'sample.wav' and return the Job ID:

curl -s -L -X 'POST' \
   "http://${APPLIANCE_HOST}/v2/jobs/" \
   -F data_file=@sample.wav \
   -F 'config={ "type": "transcription",
         "transcription_config": { "language": "en" }
      }' \
   | jq

Where ${APPLIANCE_HOST} is the hostname or IP address of your Virtual Appliance. The above assumes that sample.wav contains English speech; modify the language identifier in the job config to match the language you want to transcribe.

You can use the Job ID to get the status of the job:

curl -s -L -X 'GET' "http://${APPLIANCE_HOST}/v2/jobs/${JOB_ID}/" \
   | jq

Where ${JOB_ID} is the Job ID (ID field) that was returned when you submitted the job. Once the job is done, you use the Job ID to return the transcription:

curl -s -L -X 'GET' "http://${APPLIANCE_HOST}/v2/jobs/${JOB_ID}/transcript" \
   | jq

Under normal conditions, the job should take less than half the duration of the media file to process. So for example if you submit a MP3 file that is 60 minutes long, its transcription should be processed in less than 30 minutes. See the REST Speech API Guide for the list of language codes, how to use features of the API, the output formats that are supported, as well as more usage examples.

You can also validate the Appliance is working using the jobs web UI. Go to https://${APPLIANCE_HOST}/v2/ui

Jobs web UI

and you can recreate the POST requests documented above in the browser.

The Speechmatics Batch Virtual Appliance is now ready to use.

Realtime Smoke Test

To run a test realtime transcription job using the Speechmatics python client see Speechmatics python for installation instructions.

speechmatics transcribe --lang en ${PATH_TO_AUDIO_FILE} --url "ws://${APPLIANCE_HOST}:9000/v2/en" --ssl-mode none

If successful you will see the transcribed text printed out in the console.