Skip to main content

Introduction

In this tutorial, we will cover how to get a speech-to-text transcription of your calls using Voice API and TeXML. Before starting, please ensure your Voice API or TeXML application is correctly configured.

Video Tutorial

Learn how to implement real-time Speech-to-Text recognition in your voice applications:
This video shows how to capture and process spoken input from callers using Telnyx’s Speech-to-Text API.

Supported engines

Telnyx offers several speech-to-text engines that can be used to process the audio from the call into a transcription:
  • Google (default) - Google speech-to-text engine that offers additional features like interim results.
  • Telnyx - In-house Telnyx speech-to-text engine with significantly better transcription accuracy and lower latency.
  • Deepgram - Deepgram speech-to-text engine with 3 models (nova-2, nova-3 and flux) that can be set using transcription_model setting.
  • Azure - Azure speech-to-text engine with a strong support for multiple languages and accents.
  • xAI - xAI Grok STT engine with the xai/grok-stt model.
  • AssemblyAI - AssemblyAI Universal-Streaming engine with the assemblyai/universal-streaming model.
  • Speechmatics - Speechmatics real-time engine with the speechmatics/standard model. High accuracy with multilingual and bilingual language packs.
  • Soniox - Soniox real-time engine with the soniox/stt-rt-v4 model. Automatic language detection with interim results and endpointing support.
  • Parakeet - Self-hosted NVIDIA Parakeet engine with the nvidia/parakeet-v3 model. Automatic multilingual language detection with final transcripts only.

Voice API

The transcription can be enabled for the Voice API calls using a dedicated endpoint in the following way:
Don’t forget to update YOUR_API_KEY here.
The results are sent as a webhook delivered to the webhook defined for the Voice API application:

TeXML

You can enable transcription on your TeXML calls by including a <Transcription> verb in the TeXML instructions:
The transcription results are sent in the callback in the following format: