💬 ᴺᴱᵂ ᴾᴸᵁᴳᴵᴺ Google Cloud - Speech to Text (incl. Speech Recorder + Automated Google Environment Setup!)

No problem.
Remember that subscriptions fees are prorated. So you can try out all our plugins for a few days, then cancel, resulting a cost of a few cents each.

I contact you in DM for this specific custom development.

Hello @redvivi

What’s the cost of each transcribe 10 sec file? Number of files limit?

Hi @JohnMark,

It actually depends on the volume of transcribed minutes each month.

At the time of writing these lines, less than 60 minutes per month is free, then between $0.004-$0.006 / 15 seconds for up to 1 million of minutes for Standard AI Model.

1 Like


So I have found some wav. samples with acceptable encoding (Linear 16) to test and please note my results below. I will use the following file as reference so you can test it yourself: https://www.voiptroubleshooter.com/open_speech/american/OSR_us_000_0030_8k.wav
Also note that I tested on my app and your demo with same results:

  1. It transcribed.
  2. But it always only transcribes the first sentence of 30 or 40 second long files and does not transcribe the rest of the speech.
  3. It only works when I upload the file with the audio uploader, but not when I paste the audio file link in the Bubble back end of the upload button.

You can find many other compatible audio samples here: Open Speech Repository |

Please let me know your thoughts and solutions.

I would also like to remind you again that your demo and my app accepted and transcribed one mp3 file but did not transcribe the other mp3 files. My question is how was it possible to transcribe that one mp3 file if the plugin is not configured to do so.

Thank you

Hi there!


If you are using the Start Transcribe Speech Operation (Async), as per the documentation, the valid inputs are the Bucket Name and the File Name, not the Google Storage audio file link or URL.

This is due to the fact that Google Speech-to-Text supports asynchronous operations from a file stored in Google Cloud Storage, not from a URL.

So, should you need to use directly a file URL, you need to save the file to Google Cloud Storage, then you can use this action with Bucket Name and File Name.
Saving the file to Google Storage from an URL can be achieved through the plugin instructions, section 2.2, step 2, using our Google Cloud Storage Utilities plugin.

 2.2 Speech-to-Text Transcribe Speech Operation (Async): Instructions
 2) (This instruction uses our "Google Cloud Storage Utilities" plugin, recommended to provide the desired functionality) Use any visual element returning a file URL from the Bubble.io uploader, or a Protocol-relative URLs (//server/file.ext), or a HTTPS URL (https://server/file.ext) to store the file using the "Save File to Google Cloud Storage" action, specifying the bucket name and file name Google Cloud Speech-to-Text will read the file from.

This implementation is fully demonstrated in our demo editor.

Or of couse, you can use Transcribe Speech (Sync)(but limited to 1-minute), that takes URL as input parameter:

Please refer to my previous answer. MP3 support starts from v1p1beta1 only in Beta version. Not using the Beta API may result in unexpected behaviour:

Should you need MP3 support, it is definitely possible.

That is of course unexpected.
I would suggest to report the case to Google engineers through the different support options available:


or alternatively use another platform as a workaround, if Google Speech-to-Text does not suit your requirements.

I have sent a message to Google in their group.

One user with the same issue said adding the following to their nodejs solved the issue:

const response = data[0];

const transcription = response.results.map(result =>


instead of:

const transcription = results[0].results[0].alternatives[0].transcript;

I am not a programmer so not sure if that makes sense to you,

1 Like

It does. Hang tight.

Hey @phrase9,

So, it was (very) far from being obvious and thanks for notifying us.
Google Speech-to-Text stores in its response as the same alternatives array the alternatives transcriptions (as per the name, specified in the API documentation) and/or partial transcriptions (not specified). So basically the implementer has to guess :exploding_head:.
Concatenating partial transcriptions makes sense, but definitely not alternatives ones, that’s why we initially didn’t do it.

Anyway, we have deployed a plugin update which should solve the partial transcription issue you ran into. Please go to the Plugins panel and select the latest plugin version.

Meanwhile, we noticed a reported timing issue for words in asynchronous mode, we are raising an issue to Google Cloud Platform for this.

1 Like

Timing issue fixed in latest plugin version.

1 Like

Thanks for the quick fix. I tested the same files and they are now giving the full transcripts. Will probably have further questions over the next few days as I continue to set this up but hopefully no major issues.

1 Like

Just added speaker diarization capabilities to the plugin :slight_smile:

1 Like

Hello Bubblers!

Just to let you know that this plugin has been updated to:

  • provide an automated script to configure your Google environment :man_mechanic:t3:.
  • include a Speech Recorder visual element is provided to record the speech from the user’s device.