Create Videos with Voice Overs using Text-to-Speech AI and Make

29 June 2024 | 14 min read
Laura van Sinderen

In this no-code tutorial, you'll learn how to automatically generate AI voiceover videos using ElevenLabs' text-to-speech API, Creatomate, and

Whether you're creating storytelling videos, instructional content, or personalized messages, a good voiceover can make all the difference. Recording your own voice might work for a few videos, but it becomes impractical when you need to create hundreds of videos. Thankfully, there's a better option. As AI technology keeps getting better, so do text-to-speech tools. In fact, the quality of AI-generated voice overs has gotten so good that they're hard to tell apart from real human actors.

In this tutorial, I'll guide you through generating AI voice overs with ElevenLabs and turning them into social media videos using Creatomate. We'll use, a no-code automation platform, to automate everything from creation to social media posting.

We're going to create the video you see above, complete with animated subtitles. This is just one example; the possibilities are virtually limitless. Creatomate has an online template editor that lets you design videos for your specific needs. So if you have a completely different video concept in mind, keep reading.

To keep things simple and focused for this tutorial, we'll provide the texts for the voiceovers and the images used as backgrounds within our automated workflow. But with generative AI improving each day, you could also use tools like ChatGPT and DALL路E for this purpose. Although we don't cover that here, if you're interested in learning how to implement AI-generated content with video automation, be sure to check out this tutorial next.


Here are the tools we'll use:

  • to set up the automated workflow.
  • Creatomate: to create a template and generate the videos.
  • ElevenLabs: to generate the AI voice overs.
  • Any app for further processing: such as Instagram for social media posting.

How to auto-generate voiceover videos using

To automate AI voiceover videos, we'll need a text-to-speech tool and a video generation platform. Our first step is to create an account with ElevenLabs, choose a voice for the voiceover, and obtain our API key. After that, we'll set up a video template in Creatomate, which serves as the design for all our videos.

Once that's done, we'll tie everything together using Make supports nearly two thousand app integrations, enabling you to create automations tailored to your specific needs. In this tutorial, we'll take a straightforward approach. I'll show you how to use a simple set of data as a trigger, and post the generated voiceover video as an Instagram Reel:

Once you've grasped the concept, feel free to customize this workflow with any other app that works best for you.

Note: ElevenLabs integrates directly with, but we won't use this integration as it would limit our voiceover options. Our plan is to connect ElevenLabs with Creatomate instead. This allows us to automatically generate animated word-by-word captions for the voiceovers, making the videos more engaging to viewers on social media.

Let's get started!

1. Choose an AI voice and get your API key in ElevenLabs

There are many text-to-speech tools available, but we find ElevenLabs to be one of the most advanced AI voice generators on the market. It offers top-notch audio quality that sounds like a natural human voice, complete with accents, emotions, styles, and more.

Another very impressive aspect of ElevenLabs is that it provides several options for creating AI voice overs, including designing custom voices and cloning your own. To simplify this tutorial, I'll show you how to use a voice from their library. You can also use a premade voice if you prefer, which we'll cover later in this tutorial.

Sign up for ElevenLabs or log in if you already have an account.

Navigate to the Voices page, then go to Library:

Here, you can choose a voice you want to use for your voiceover. To add any of these voices to your account, click Add to VoiceLab:

Click Add Voice, then Finish.

Return to the "My voices" page, and you'll see that the voice has been added. You will be able to specify this voice by its ID further on in this tutorial. Click the ID button for now and keep it somewhere for later:

You'll also need your ElevenLabs API key. You can find it by clicking on My Account in the bottom left corner, and then click Profile + API key:

Click the eye icon to reveal your API key, then copy it:

Let's move on to Creatomate.

2. Create a video template in Creatomate

Log in to your Creatomate account or create a free account if you haven't already.

Let's connect to our ElevenLabs account first. To do so, click ... on the left, then choose Project Settings. Within the Integration section, toggle the switch to enable ElevenLabs. You'll then be prompted to enter your API key. Once done, click Confirm, and close the Project Settings menu:

With this integration, Creatomate can access your ElevenLabs account to generate voice overs for your videos. In the template we'll set up next, we can customize the voice overs.

Let's navigate to the Templates page, and click the New button to open the template gallery. Go to the Voice Overs category, and select the Short-Form Voice Over template. You can choose any size you want, for example 9:16 Vertical, then click Create Template to open it in the editor:

The video editor might seem intimidating at first. No worries, it's pretty easy to get started.

Creatomate is a video editor specifically intended for video automation. There are many similarities between Creatomate and other editing tools, but there are some differences that make Creatomate unique. Instead of producing the final video, you can create a reusable design, called a template, capable of generating hundreds of unique videos. Every aspect of the video is customizable, including text, images, subtitles, and more. This provides you with a huge amount of freedom when it comes to video automation. Even the templates themselves are open source JSON that can be generated through automation.

Let's focus on our voiceover template. As you can see, there are 4 compositions, each corresponding to a scene in the video. Each composition includes a voiceover, subtitle, and image element. As you play with the template in the editor, you'll notice placeholders for the voice over and subtitle elements. This is because the actual voiceovers and subtitles will be generated as part of our automated workflow. We'll see how that works later on.

Our template is almost ready to use; the only thing left to do is specify the voice you want to use as a voiceover. This could be the voice you chose in the previous step, or a premade voice. I'll demonstrate this with the voiceover element in the first composition, you can then decide if you want to do the same for the other compositions too.

On the left side panel, click the Voiceover-1 element. Then, navigate to the properties panel on the right, and find the Audio property. This is where you can customize the voice over. The Provider is already set to ElevenLabs. For the Model, you can choose between four different text-to-speech models. In most cases, it's best to stick with the Multilingual v2 model, as it has great speech synthesizing and works with a lot of languages.

For the Voice, Matilda is the default; one of the premade voices from ElevenLabs. If you want to use another premade voice, pick one from the drop-down menu. You can listen to a sample of each voice on the Speech Synthesis page in your ElevenLabs dashboard. And in case you want to use one of the voices from the VoiceLibrary, click on Matilda, scroll up, select Custom Voice, and paste the voice ID from the step 1. Then, click OK:

You also can adjust the Stability, Similarity, Style, and Speaker Boost. This is a set of AI parameters you can adjust to fine-tune the voiceover generated by ElevenLabs. For instance, the Stability parameter controls the amount of emotion and randomness in the voice. I recommend leaving them the way they are unless there is a good reason for changing them; the default settings are perfect for most purposes. You can read more about each setting in ElevenLabs' Voice Settings documentation.

One last thing to note is that all voice over elements, along with the images, are marked as "Dynamic". This allows us to replace the content using our workflow. When we insert a text value, it will be converted to speech using the specified voice.

To complete the template setup, let's also take a quick look at the subtitles. No changes are needed here, it's just to show you how it works.

From the left side panel, click on the Subtitles-1 element. In the properties panel on the right, scroll down until you find the Transcription property. Here you can customize the subtitles. As you can see, the Source points to the Voiceover-1 element. This tells Creatomate to generate subtitles based on the voice over. If you want to further customize the look and feel of the subtitles, you can use the Style, Color, Fill, and Stroke properties:

馃挕 AI tip: If you wish, you can also use generative AI to create images for your videos. By changing the Provider from "Uploaded File" to Stability or OpenAI, you can input a text prompt for the images instead of an image URL. For this to work, you need to create a connection with Stability or OpenAI first, just like we did with ElevenLabs. Here's a tutorial for using Stable Diffusion (via Stability) and another for using DALL路E (via OpenAI). These tutorials use a Zapier automation, but the process can easily be applied to Make scenarios too.

With our template in place, let's move on to the next step; setting up the automation.

3. Set up a trigger in

The goal of this step is to provide the automated workflow with the content for our videos: the text for the voiceovers and the images for the background. Additionally, since I'll demonstrate how to post the generated video as an Instagram Reel, I'll also include a caption, though this is optional.

There are many apps you can use for this purpose, but to keep it simple, I'll use a basic trigger with a simple set of data. In real-world applications, you might use an app like Airtable or Google Sheets, so feel free to choose the one that works best for you.

Sign in to your account and click Create a new scenario. Add the Tools app with the Basic trigger.

Let's add the following items to your trigger:

  • Image-1 ->
  • Text-1 -> The 3 Best Tips for Better Sleep
  • Image-2 ->
  • Text-2 -> Create a Relaxing Bedtime Routine: Wind down before bed with activities like reading, taking a warm bath, or practicing relaxation techniques.
  • Image-3 ->
  • Text-3 -> Maintain a Consistent Sleep Schedule: Go to bed and wake up at the same time every day, even on weekends, to regulate your body's internal clock.
  • Image-4 ->
  • Text-4 -> Exercise Regularly: Stay active during the day, but avoid vigorous exercise close to bedtime for better sleep quality.
  • Instagram Caption -> Struggling to sleep? 馃槾 We've got you covered! Check out our top tips for improving your sleep quality. Say goodbye to tossing and turning with these simple yet effective strategies. #SleepWell #SleepBetter #HealthyLiving

It should look like this:

Once you've added the sample data, click OK.

馃挕 AI tip: You can also use an AI text generator like ChatGPT to create a script for your videos. Instead of providing voiceover text with your trigger, simply specify a topic for your video. Then, add a ChatGPT module and give it instructions on what to generate. Besides the script, you can also ask it to create image prompts, which you can map to the image elements using DALL路E or Stability. Here's a tutorial to help you get started.

Then, right-click the module and click Run this module only:

We can now use this data to set up the rest of our workflow. Next up, generating the voice over videos using Creatomate.

4. Generate the voice over video

Click + to add another module. Choose the Creatomate app with the Render a Template action.

Create a connection first. You can do this by entering your project's API key, which you can find under Project Settings in your Creatomate dashboard:

Then, choose your Short-Form Voice Over template in the Template ID field. will now pull in the template's dynamic elements and list them under Modifications.

Now, let's map the video script and the background images to our template as follows:

  • Set Image-1 to Tools - Basic trigger -> image-1
  • Set Voiceover-1 to Tools - Basic trigger -> text-1
  • Set Image-2 to Tools - Basic trigger -> image-2
  • Set Voiceover-2 to Tools - Basic trigger -> text-2
  • Set Image-3 to Tools - Basic trigger -> image-3
  • Set Voiceover-3 to Tools - Basic trigger -> text-3
  • Set Image-4 to Tools - Basic trigger -> image-4
  • Set Voiceover-4 to Tools - Basic trigger -> text-4

When done, click OK.

Click the Run Once button to test if Creatomate can generate the video:

Creatomate now sends a request to ElevenLabs to generate voiceovers based on our text inputs. Next, it transcribes the files and creates animated captions. The system also inserts the images into the template. This process might take a minute or two to complete.

When the test succeeds, the module turns green. If you wish, you can preview your video by clicking the magnifying glass icon and visiting the provided URL:

Let's move on to the last step.

5. Further process the video

By now, we have successfully generated a voiceover video which we can use however we want. As an example, I'll show you how to share it as an Instagram Reel. But feel free to use any app that works for you.

Note: Certain app integrations in Make, like "Facebook Pages", take a file as input, whereas others, such as "Instagram for Business", expect a URL. If you want to use an app that requires a file, you'll have to add a module to fetch the file first. Check out this tutorial as a reference (step 4).

Add the Instagram for Business app with the Create a Reel Post action to your scenario.

Choose your account or create a connection, then pick your page. In the Video URL field, select Creatomate - Render a Template -> URL:

Finally, select Tools - Basic trigger -> instagram caption in the Caption field. Adjust the other settings to your preference. When you're done, click OK:

Everything is set up correctly so the video, complete with voiceovers and subtitles, should appear on your Instagram account.

Ready for a test run? Let's click Run Once one more time. This will execute the entire workflow again. Once you confirm that the Instagram module has run successfully, go to your channel to check if your Reel has been posted:

Once you're happy with your workflow, toggle the ON/OFF button to activate your automation.

What's next for video automation using AI

That's all there is to it. You now know how to automatically generate videos with voiceovers and subtitles. And this is only the beginning of video automation; Creatomate can do so much more. We've put together a bunch of tutorials on how to create any kind of social media and marketing video, with and without using AI. You can find them all on our blog page, or jump straight into one of the most popular ones below.

馃憠 How to Automatically Create YouTube Shorts using Make
馃憠 How to Automatically Create TikTok Videos using
馃憠 How to Automatically Create Instagram Posts using Make
馃憠 How to Create AI-Generated Videos using ChatGPT and
馃憠 How to Automatically Add Subtitles to Videos using Make

Start automating today

Start with a full-featured trial with 50 credits, no credit card required.
Get started for free