Hi, this is Gary with MacMost.com. Today I'm going to show you how to create a computer
generated text-to-speech voiceover for a video.
MacMost is brought to you thanks to a great group of more than 800 supporters.
Go to MacMost.com/patreon. There you can read more about the Patreon Campaign.
Join us and get exclusive content and course discounts.
So sometimes when you create a video you want to have a voice narration explaining what's going on.
But not everybody wants to use their own voice for narration. If you don't have somebody else handy
that can record the narration using a computer generated voice from your Mac could be a good
alternative. You certainly see plenty of You Tube videos that do this. Now as an example here
I'm just going to put a few clips in iMovie. But this could be anything. This could be some screen
capture. This could be a Keynote presentation. Anything that you could bring into iMovie you
can then use this technique to place a computer generated voiceover on the video. Now normally
if you wanted to include narration in iMovie you could go to the point where you want to start, you
would click this voiceover button here and then you could select the microphone and hit Record and
then record the voiceover. But the idea is instead of using your own voice in this interface here to
be able to have a computer generated voice. It would be great if iMovie just had a function for
that but it doesn't. However it's pretty simple to create one outside of iMovie and bring it in.
The first thing you want to do is have everything in a text file. So I created a text file called
Video Narration. I made it a plain text file in TextEdit. Here is the text. Now,
to speak it it's pretty easy. I can just select some text and then if I Control click on it,
two finger click on the trackpad and a right click on the Mouse, I could choose Speech and
have my Mac speak the text. Now that doesn't do me much good. What I want is to have this
as a file. Well, it turns out you could do this pretty easily as well. If you do the same thing,
Control clicking on it, but go to Services you'll see a variety of things here depending upon any
Quick Actions you've added on your Mac. But you should see one called Add to Music as Spoken
Track. Don't worry if you don't see it for some reason because I'm going to show you a better
method in a minute. Select that and you have this whole interface here. You can select the voice you
want to use and preview the voice. (Voice). You can name it and then select where you want to save
it to although it's kind of odd because no matter what you select depending upon your Music app and
how you have it set the file won't be around for long. It will actually be imported into the Music
app. We have a better method to do this anyway. So I'm not going to spend any more time on this.
Instead we're going to do this using Terminal. Now the Terminal commands for this are pretty simple.
So even if you're not comfortable using Terminal there's really nothing here to be afraid of.
We're just going to use a simple command called say. You can type say and then any text you want
and it will speak it. Hello. Now with say you have a ton of different options.
For instance you can set the voice. Just do dash v space and then the voice.
Hello. Now you could also set a file instead of some quoted text. So I could do say and then this
file. So I could drag and drop the file here and it puts the full path to the file. But instead of
doing that let's work in this actual directory. So I'm going to do cd for change directory. I'm going
to drag and drop this file here but I'm going to just delete the file name so it just goes to
this folder here. You can see Users and then my user account/documents/Video/Project. That's the
folder here. Notice the backslash there is needed because there is a space here in the folder name.
So when I go here I'm actually in this folder. I can actually list the files ls and see there's
that one file, Video Narration.txt, just as I see in the Finder here. So now I could do say
and then dash f for file. Then the file name. So Video Narration.txt. I'm putting quotes around the
file name, another way to handle a space in file name in Terminal. Let's use the Samatha voice.
Now it will speak the contents of this file. (voice) Great.
Now the next thing we need is to be able to output this to a new file. I'm going to use the up arrow
here just to repeat the last command but I'm going to add something more to it, dash o, and
this time I'm going to give a file name for the output. So in quotes I'll do Video Narration Audio
and I'm not going to put a file extension there because the say command will put one there based
on the format. I'm just going to let it use the default format. So when I hit Return it's going
to create that file instantly so it's really fast even if you have a lot of text. So now I've
got this file here. Let's use QuickLook to hear the file (voice). Now this is what we'll use in
iMovie. Before we go away I want to show you some other option. If you do man for manual you can see
the instructions for say and you could see various things. So you could look through this and see
some other commands here. For instance, there's a way to get a list of voices. It's the same list
of voices we saw before but also corresponds to a list of voices in System Preferences. Then if you
go to Accessibility and then Spoken Content there are voices here. However, here you're also going
to see listed Siri voices. They are different than System voices. So while you can use Siri
voices for Accessibility you can't use them for this say command. If you want all the voices
available you've got to go to Customize here in System Preferences and add the ones that you want.
Also you've got rate -r and you use words per minute. So you could speed things up. Something
you can't do with the Services QuickAction. So let's try that. I'll do the same command here
and output to the same file. But I'll do a faster rate. So I'll do -r 300 for 300 words per minute.
Now when I listen to this file it's pretty fast. (voice). I'm not sure what the default
is but there is a kind of minimum. So if you go below something, like maybe a 100 words a minute,
then it basically bottoms out. You can't do five words per minute and
have it be super slow. Let's just go back to the default here. You
could see how it replaces this file. So now we're ready to use this in iMovie.
So in iMovie here I'm going to bring in this file by just dragging and dropping it and I'm
just going to put it here in the timeline. Now the one thing I didn't do was time things out.
I can't really tell the say command to pause between things. So it's going to speak the
narration really quickly. I can easily see the spacing between the sentences there.
So let me bring this over here to the beginning of the first clip. So all I need to do is make sure
that the audio is selected. So it's highlighted in yellow. Then position the line right where I
want it between the sentences and use Command B to split it up. I can do that for each one of these.
Now I can move them to be on the different clips.
I can put this last one right here. So now I've got voiceovers that cover each clip. (voice).
Just for fun if you like you can select the audio here and apply one of the audio filters
in iMovie like this. So you can change it a little bit. Maybe pitching down, maybe pitching up,
or I kind of like how the telephone effect makes it sound a little bit more human.
(voice). You also have the equalizer here and you could change the equalizer from flat to something
like voice enhanced. So some things to play around with to maybe increase the quality a little bit.
The best thing about this technique is it's so easy to generate the audio once you have this
going. You can easily go back here to Terminal and have it respeak the text file after you've
edited it or even just put words in quotes instead of using dash f to have it speak something really
quick and save it to another file. Also note if you don't want to specify the voice each time
all you need to do is go into System Preferences and in Accessibility, where we were before, under
Spoken Content change the system voice to the one that you want and then you could omit the dash v
and Samantha and it will just use Samantha since that's the default system voice at that point.