Speechmatics

Set up and create transcripts using Speechmatics as a speech-to-text provider for post-meeting and real-time transcription.

💡

Quick tip: Use the table of contents on the right side to quickly navigate through this guide -->

You can use Speechmatics as a speech-to-text provider for transcription. This guide explains how to:

  • Set up Speechmatics as a speech-to-text provider and configure Speechmatics for post-meeting and real-time transcription
  • Learn how to configure Speechmatics for multilingual transcription and access Speechmatics-specific fields on the transcript data (available when not using Perfect Diarization or Hybrid Diarization)
  • Covers FAQs

You can use this sample app to compare transcription quality and output across multiple third-party providers using Recall.ai's async transcription API.


Setup

Before using Speechmatics with Recall.ai, you must create a Speechmatics API key and add it to the Recall.ai dashboard.

Create a Speechmatics API key

Create a new API key in the Speechmatics Portal.

Take note of the API key. You will add this key to the Recall.ai transcription dashboard.

Add your Speechmatics API key to the Recall.ai transcription dashboard

Add your Speechmatics API key in the Recall.ai dashboard for the Recall region where you will create recordings:

❗️

Recall.ai regions are isolated, so you must add your Speechmatics API key in each Recall.ai region where you want to use Speechmatics transcription.


Quickstart

Supported transcription workflows

WorkflowSupported
Post-meeting transcription✅ Yes
Real-time transcription with meeting bots✅ Yes
Real-time transcription with Desktop Recording SDK❌ No

Speechmatics for post-meeting transcription

Use post-meeting transcription when you want to transcribe a recording after the recording has completed.

To use Speechmatics for post-meeting transcription, call the Create Async Transcript endpoint and set provider to speechmatics_async along with your preferred Speechmatics transcription options:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/recording/RECORDING_ID/create_transcript/ \
     --header "Authorization: RECALL_API_KEY" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --data '
{
  "provider": {
    "speechmatics_async": {
      "language": "en"
    }
  }
}
'

See the provider.speechmatics_async field on the Create Async Transcript endpoint for the full list of options available.

📘

See post-meeting transcription for the full post-meeting transcription implementation, including when to create the post-meeting transcript, which webhook events to listen for, how to retrieve the completed transcript, how to handle transcription failures, and more.

Speechmatics for real-time transcription

To use Speechmatics for real-time transcription, set the provider to speechmatics_streaming when creating the recording. Real-time transcript delivery is configured separately through recording_config.realtime_endpoints.

Speechmatics requires you to set language for real-time transcription.

Meeting bots

To use Speechmatics real-time transcription with meeting bots, set recording_config.transcript.provider.speechmatics_streaming in the Create Bot request along with your preferred Speechmatics transcription options:

curl --request POST \
     --url https://RECALL_REGION.recall.ai/api/v1/bot/ \
     --header "Authorization: RECALL_API_KEY" \
     --header "accept: application/json" \
     --header "content-type: application/json" \
     --data '
{
  "meeting_url": "MEETING_URL",
  "recording_config": {
    "transcript": {
      "provider": {
        "speechmatics_streaming": {
          "language": "en"
        }
      }
    },
    "realtime_endpoints": [
      {
        "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
        "type": "webhook",
        "events": ["transcript.data"]
      }
    ]
  }
}
'

See the recording_config.transcript.provider.speechmatics_streaming field on the Create Bot endpoint for the full list of options available.

📘

See Meeting Bot Real-time Transcription for the full meeting bot implementation, including how to create a bot with real-time transcription enabled, configure real-time transcript delivery, subscribe to transcript events, and receive transcript data from a live meeting.

Desktop Recording SDK

Speechmatics is not supported for real-time transcription with the Desktop Recording SDK.

📘

If you are using the Desktop Recording SDK and need real-time transcription, use a real-time transcription provider that supports the Desktop Recording SDK like Recall.ai Transcription.


Additional configurations

Multilingual transcription with Speechmatics

In some meetings, participants may speak in more than one language, and you may not know ahead of time which language or languages will be used. In those cases, you can use a transcription provider that supports multilingual transcription. Multilingual transcription generally includes two distinct features:

FeatureDescription
Language detectionDetects the spoken language without requiring you to set a language explicitly.
Code-switchingHandles conversations where speakers switch between two or more languages during the same meeting.

Speechmatics supports multiple transcription languages, but multilingual transcription support varies between post-meeting transcription and real-time transcription.

Multilingual transcription options for post-meeting transcription

Speechmatics post-meeting transcription supports single-language detection and two forms of code-switching:

  • Automatic multilingual code-switching across supported languages with the Melia 1 model
  • Code-switching within a selected bilingual or multi-language pack using the Standard or Enhanced model
❗️

Melia 1 is an early-access model available only for post-meeting transcription. It has a reduced feature set and does not support options such as custom vocabulary.

See Speechmatics Melia 1 model for current availability and feature support.

To detect one dominant language, set language to auto:

{
  // ... other Create Async Transcript request options
  "provider": {
    "speechmatics_async": {
      "language": "auto"
    }
  }
}

For automatic code-switching across Speechmatics-supported languages, set model to melia-1 and language to multi:

{
  // ... other Create Async Transcript request options
  "provider": {
    "speechmatics_async": {
      "transcription_config": {
        "model": "melia-1",
        "language": "multi"
      }
    }
  }
}

The Standard and Enhanced models also support code-switching for specific language combinations. Set language to a supported bilingual or multi-language pack:

{
  // ... other Create Async Transcript request options
  "provider": {
    "speechmatics_async": {
      "language": "cmn_en"
    }
  }
}

See Speechmatics supported language packs before using a fixed pack in production.

Multilingual transcription options for real-time transcription

❗️

Automatic language detection ("language": "auto") is supported only for post-meeting transcription. Real-time transcription requires an explicit supported single-language, bilingual, or multi-language pack.

See Speechmatics supported languages for the latest supported language packs.

To configure Speechmatics for real-time transcription in one language, set language in the speechmatics_streaming provider configuration:

{
  // ... other request options
  "recording_config": {
    // ... other recording options
    "transcript": {
      // ... other transcript options
      "provider": {
        "speechmatics_streaming": {
          "language": "es"
        }
      }
    }
  }
}

For code-switching, set language to a supported bilingual or multi-language pack such as cmn_en for Mandarin and English:

{
  // ... other request options
  "recording_config": {
    // ... other recording options
    "transcript": {
      // ... other transcript options
      "provider": {
        "speechmatics_streaming": {
          "language": "cmn_en"
        }
      }
    }
  }
}

Accessing provider-specific fields from Speechmatics transcript data

If you need Speechmatics-specific fields that are not exposed in the normalized Recall transcript, you can access the provider data.

❗️

Provider data is not available when using Perfect Diarization or Hybrid Diarization

Accessing Speechmatics provider data post-meeting

For post-meeting transcription, you can access the raw Speechmatics transcription response from the completed transcript artifact. To access provider data after the meeting, fetch the transcript artifact using the Retrieve Transcript endpoint. Use the data.provider_data_download_url field from the response to download the raw provider response.

The response returned by provider_data_download_url varies by provider. See the accessing provider data section of the post-meeting transcription guide for implementation details.

Accessing Speechmatics provider data in real time

For real-time transcription, subscribe to transcript.provider_data in your real-time endpoint configuration if you need Speechmatics-specific payloads:

{
  "url": "REAL_TIME_TRANSCRIPT_WEBHOOK_ENDPOINT",
  "type": "webhook",
  "events": ["transcript.data", "transcript.provider_data"]
}

See the accessing provider data section of the real-time transcription docs for implementation details.


FAQ

Do I need to add a Speechmatics API key in every Recall.ai region?

Yes. Recall.ai regions are isolated, so you must add your Speechmatics API key in each Recall.ai region where you want to use Speechmatics transcription.

What regions can I configure with Speechmatics?

Recall only supports the EU region at this time.

Can I use Speechmatics for real-time transcription with the Desktop Recording SDK?

No. Speechmatics is not supported for real-time transcription with the Desktop Recording SDK.

You can still use Speechmatics for post-meeting transcription on completed Desktop Recording SDK recordings by creating a post-meeting transcript after the recording has completed.

Can I configure Speechmatics to detect the language automatically?

Yes, but only for post-meeting transcription. Set language to auto in the speechmatics_async provider configuration.

For real-time transcription, set language to an explicit supported single-language, bilingual, or multi-language pack in the speechmatics_streaming provider configuration.

Can I configure Speechmatics for code-switching?

Yes. For post-meeting transcription, use model: "melia-1" with language: "multi" for automatic multilingual code-switching, or set language to a supported bilingual or multi-language pack such as cmn_en.

For real-time transcription, use a supported bilingual or multi-language pack. Melia 1 is not available for real-time transcription.


Did this page help you?