Realtime Voice transcription with Assembly AI & Deepgram

The plugin lets you embed Assembly AI into your Bubble app and do real-time voice transcription.

Demo page:
Editor: AssemblyAI | Bubble Editor
Marketplace: Realtime Transcription Plugin | Bubble

The Plugin has two controls - start and stop .
The Plugin has some useful exposed states;

  • transcription - the transcribed audio as text.
  • isRecording - yes/no - useful for showing to your users that they are recording.
  • status - a clue as to what is happening internally with the recording/transcription status
  • length seconds - how long the recording/transcription is so far - useful for throttling the length of transcription.
  • is final transcript? - whether the final transcript has been sent.

And three events - useful for wiring into your workflows

  • recording starting
  • recording stopping
  • final Transcript Received

Optionally when you start a recording you can set the level of console logging message to a higher level. The default is “no” - a lower level of debug message.

The plugin also has a backend action Assembly AI - get temp token - safe to use within the web browser. This means your Assembly AI key is not revealed in the browser, and that only requests from your Bubble app for a temporary token are processed.

Purchase of this plugin comes with reasonable support to get you up and running.


If you are looking for Deepgram Realtime Transcription Plugin see here

Deepgram is very similar to AssembyAI - perhaps with slightly lower pricing and a more generous “free” account. Both have very good accuracy.

Hey Lindsay. Thanks for setting this up. Any idea why the recording wouldn’t start? My input says “Starting…” but I don’t get a pop-up to allow recording and no audio is transcribed.

EDIT: Had to add “Token” in front of the API key. Working well now!

EDIT 2: How can I clear the deepgram? I am building a mock interview tool and users can record their responses to be transcribed. Each answer should be brand new but right now it’s continuing the previous conversation.

1 Like

Fixed - refresh your Editor to pick up the new Plugin version. Thanks for reporting :slight_smile:

Hi Lindsay! I am very interested in the plugin. I want to build an app that can transcribe video in real time, so I may need the plugin to record the system output audio, instead of the mic input. I don’t know if that is possible. Thanks

1 Like

Interesting! Yes, I can imagine a use case where you are in the browser doing a video call and the real-time transcription appears underneath - like a few of the Teams/Zoom/Gmeet tools do it.

It’s likely feasible - just grab the audio track from the video stream … I say “just” :laughing: Built into browsers is HTML5 audio and Video ability - basically the browser does all the heavy lifting.

I’m thinking about opening zoom / video on one side and the web app on the other side to see the transcription happening in real time. Might be a bit hard to achieve I suppose. I could merge the mic input with the system output channel to see if that works

1 Like

Question, I got an email from Deepgram about Nova being their new model and it was better and cheaper. Is this plugin upgraded to use that one?

No specific upgrade, I’ll check in the morning. However I thought by default deepgram was set to use the latest model.

Depends also on whether the model is enabled for real-time.

I’ll check tomorrow.

I am using DeepGram via API connector. Their transcription speed is way faster than others but the speed compromised the accuracy of transcription.

I’m adding diarization (aka speaker identification) to realtime Deepgram shortly. Email or DM me to encourage me to do it sooner :slight_smile:

I am using Deepgram Realtime Transcription. I am not able to start transcribing. I am getting following in debug mode:

Transcription status - Ready to start transcribing

This means the plugin was installed in your Bubble app - but is no longer installed. Which is weird.

Deepgram Realtime Transcription appears under paid plugins.
here are my settings:

I got API key from deepgram. I am using same key for API Key and API Key- dev. could this be the problem?

Hey Lindsay! is there any chance can we setup a specific language?

1 Like

Good question - Assembly AI only supports English for real-time transcription (at this point Supported languages | AssemblyAI Docs) .

Deepgram supports more realtime languages - Models & Languages Overview. and the plugin supports passing in the language parameter.

Now Speechmatics for Realtime Voice translation - up to 5 different languages realtime translated. Translates into 5 languages as you speak.

1 Like

The Speechmatics translation is really fun when you then send it into ElevenLabs These translation & synthetic voices are getting incredibly good. It’s blowing my mind.

1 Like

I’ve added an event for a Deepgram feature called “speech final”. This event happens when a speaker stops or pauses speaking. Optionally you can adjust the number of milliseconds to wait. It’s explained by Deepgram here End of Speech Detection While Live Streaming

What you could use this for is to detect when a speaker has finished answering a question for example, to stop the recording.

I’ve added speaker detection to the Deepgram real-time plugin- when Deepgram thinks each speaker has finished speaking - the plugin emits an event of “speaker change” and has an exposed state of “current speaker id”.

Deepgram can accurately detect speaker changes - but more amazing, if I try to use a funny voice to try and trick Deepgram that I am a different speaker - Deepgram knows it’s still me. :exploding_head:

1 Like