Deepgram Speech to Text Live

Demo to preview the plugin:

Introduction

The Deepgram Speech-to-Text Live plugin enables real-time audio transcription directly inside your Bubble application by connecting to Deepgram’s WebSocket streaming API. It captures microphone input from the user’s browser, streams audio in low-latency chunks, and returns live interim and final transcripts with support for speaker diarization, punctuation, smart formatting, profanity filtering, and more.
In addition to live streaming, the plugin includes API calls for pre-recorded audio transcription, AI-powered audio intelligence (summarization, sentiment, topics, intents), speaker diarization, and usage analytics — making it a complete speech-to-text solution for any Bubble project.

Prerequisites

You must have a Deepgram account to use this plugin. Create your account and obtain an API key at: https://console.deepgram.com
Security note: Never expose your Deepgram API key on the frontend. The plugin uses a short-lived temporary token (valid 30 seconds) obtained via a Bubble Backend Workflow. This token is only used for the initial WebSocket handshake — once the connection is open, the session remains active regardless of token expiry.
Image without caption
ℹ️
Copy your secret key, the key is shown only once
Image without caption
Image without caption

How to setup

Step 1 - Install the plugin from the Bubble marketplace and open the plugin settings tab.

Step 2 - Enter your Deepgram API key in the plugin’s private key field (labeled Token). This key is used server-side only.

Step 3 - Add the SpeechToText element to your page. Configure the desired transcription properties (model, language, punctuation, etc.).

Step 4 - Build your recording workflow:

Step 5 - Add Stop / Pause / Resume actions to the appropriate buttons on your page.


Plugin Element - SpeechToText

The plugin contains one visual element - SpeechToText - that should be placed on the page. The element handles all microphone capture and WebSocket communication logic.
Image without caption

Fields

Element Actions

Exposed States

Element Events

Plugin Data/Action Calls (API Calls only)

Get Temp Token

Transcribe URL

Transcribe with Intelligence

Transcribe with Diarization

Get Usage Breakdown

Workflow example

1. Basic Live Transcription Setup

2. Pause and Resume Recording

3. Auto-Stop with Word or Time Limits

4. Speaker Diarization Display

Image without caption

Changelogs