Setting Up a Home Transcription Server

Last updated July 31, 2016


Ever since my home transcription server tip aired on episode #330 of the awesome Mac Power Users podcast, my inbox has been overrun with requests for a more detailed breakdown of my workflow. I’ve avoided sharing the details because the workflow is based on a Keyboard Maestro macro that may not work for everyone. But, since so many people have asked, I’ve decided to whip up a basic walkthrough, and share my setup files.

First, a little background. The iPhone’s built-in dictation/transcription feature is very handy for short dictations, but awful for long ones. The main problem is that the transcribe function automatically shuts off after about 30 seconds. Not only do you risk getting cut-off mid thought, but you may also lose some of your dictation.

To combat this problem, Nuance recently released Dragon Anywhere. Using this app/service, you can dictate long passages on your iPhone or iPad without getting cut off. Additionally, the app/service uses the Dragon transcription engine which typically results in more accurate transcriptions. Unfortunately, Dragon Anywhere comes with a hefty price tag: $15/month or $150/year. That’s a bit too high for me… for now. So, I decided to set up my own home transcription server using hardware and software I already owned. After some trial & error, I got everything working on a Mac Mini that currently lives in my closet. Now, I can simply record my lengthy dictation on my iPhone, tap a button, and then wait a few minutes to have the whole recording transcribed and emailed back to me. This setup has been transcribing my long winded ramblings for over a year without a hiccup.

As you read on, please keep in mind that I’m not an expert in these applications. I’m just a guy who kept banging on things with a stick until it all started working. If you use this walkthrough as a starting point, and come up with a better method, I hope you’ll share it with me!

Now that you know the backstory, let me show you how I did it.

Hardware Used:

  • iPhone

  • Mac Mini (running Yosemite last year, and El Capitan now)

Software Used:

My Files (click to download)

1. Dictate & Connect for iPhone

While you can use just about any iPhone audio recorder, I prefer Dictate & Connect because it has a bunch of professional features and a very simple interface. It also has a “Quickshare” feature that lets me upload my audio file to Dropbox seconds after I’ve finished recording. Here’s how I set that up…

2. Add Sharing Destination

Inside the app’s settings screen, I added a new sharing destination.

3. Add Dropbox Destination

I chose to create a Dropbox destination.

4. Setup The Dropbox Sharing Destination

I named the destination Transcribe & Email, assigned it a folder within my Dropbox folder, and then returned to the settings page.

5. Assign the Quickshare Destination

I set the Quickshare feature to use my newly cerated sharing destination. I also set my audio format to AIFF.

6. Record Dictation

Using the application is super simple. I just record a new dictation, and then tap the Quickshare button to upload the file to the designated Dropbox folder.

7. Send it to Dropbox

The app will request confirmation before uploading. Once the file is uploaded, my Mac Mini server takes over.

7.1 The Uploaded File Arrives in Dropbox on Mac Mini Server

8. Hazel is Watching

On my Mac Mini home server, Hazel keeps an eye on the “Transcribe” folder – the same folder that I assigned as a sharing destination within Dictate & Connect. There are two rules assigned to that folder. Let’s look at each.

9. Hazel Rule 1: Trigger Keyboard Maestro

The first rule checks the file for three specific criteria: Was the file added within the last hour? Has the fie NOT been tagged with “Hazeled” And, is the file’s extension AIFF? If the file meets all three of those criteria, then Hazel performs two actions. First it tags the file with “Hazeled” (to prevent it from being transcribed again later), and then executes this Applescript:

 tell application "Keyboard Maestro Engine"  
do script "TranscribeIt"
end tell

This Applescript simply launches a Keyboard Maestro macro called “TranscribeIt.” We’ll get into the Keyboard Maestro macro in a moment.

10. Hazel Rule 2: Remove Old Dictations

The second Hazel rule removes any old audio files so they don’t confuse the Keyboard Maestro macro (hopefully this will make sense in a moment). The rule checks for three criteria: Is the file OLDER than one hour? Does the file have the “Hazeled” tag? Does the file have an .aiff extension? If all three are true, Hazel moves the audio file to the trash. If you’d prefer to keep all of your original recordings, you can alter the macro to move your old audio files to a different folder instead of the trash .Please note: Because of the way these rules are set up, you should not trigger the workflow more than once an hour (so Hazel has time to clear out the previous audio file). I trigger the workflow only two or three times in a week, so I’ve never run into a problem with the 1-hour limitation. You can play with the timings as long as you understand why this rule is in place.

11. Dragon Dictate at the ready

Before I move into Keyboard Maestro, let me point out that my Mac Mini always has Dragon Dictate 4 running in the background. This way, It’s always ready to be pushed into action. When first setting-up Dragon Dictate on my Mac Mini, I created a transcription profile called iPhone Dictation, and set it to be the default transcription profile. Transcription profiles are covered in the Dragon Dictate user guide. I’ll also take this moment to point out that I’m using Dragon Dictate version 4. Nuance is now selling version 5. I have not tested my workflow with the new version, but I imagine a few things in the Keyboard Maestro macro may need to be tweaked to maintain compatibility.

12. Keyboard Maestro (the Belly of the Beast)

This is where the magic happens. It’s a Keyboard Maestro macro called “TranscribeIt”. This is the macro triggered by the Applescript in the first Hazel rule. I’m going to walk through it in broad strokes, but if you take the time to dissect it, I’m sure you’ll gain a better understanding of the macro–– and hopefully improve on it!

13. Macro Breakdown: Activate Dragon Dictate

These first three steps makes sure that Dragon Dictate is active, and in the foreground. You’ll notice I have a duplicate of the Activate Dragon Dictate instruction. Wondering why? Me too! I built this over a year ago and can’t remember! I’m sure there was a reason. Perhaps the app wasn’t activating all the time, and I felt I had to nudge it twice. Beats me.

14. Macro Breakdown: Make Sure the Profiles Screen is Active

These three instructions makes sure that the “Profiles” screen is open and in front. If it’s not, it opens it up. Then, it pauses. I found that adding pauses all around the macro helped things quite a bit.

15. Macro Breakdown: Navigate to the Correct Folder

This series of instructions tells Dragon Dictate to continue with the default voice profile selected. The macro waits for Dictate to present the Open dialog box, and then navigates to the Dropbox folder containing the audio file (/Apps/Dictate/Transcribe/).

15.1 This is what happened in Dictate.

16. Macro Breakdown: Select the File

These instructions select the first file that begins with the letter “D” which should be the newly uploaded dictation file. I found this to be the easiest way to select the file. As a reminder, Hazel has removed all old audio files, so these instructions should highlight the first (and only) file in the folder. After it selects the file, it hits Return which initiates the transcription.

17. Macro Breakdown: Start the Clock

These two instructions wait until the transcription window appears (which is identified by the existence of a Cancel Transcription button), and then begins a 60 second countdown. In all of my tests, none of my audio files took more than one minute to transcribe. If you’re dictating CRAZY long files, you might want to increase the length of the pause instruction. While Keyboard Maestro is counting down, Dragon Dictate is transcribing the audio file into a new Note Pad document (Note Pad is a text editor built into Dictate).

18. This is what’s happening in Dictate during the countdown.

19. Macro Breakdown: Activate Note Pad

These instructions begin by making sure Dragon Dictate is still in the foreground. Then it waits for the transcription to complete, and for Dragon’s “What do you want to do now?” dialog box to appear. Then it clicks Return which closes the dialog box, and brings focus to the newly created Note Pad document.

19.1 Here’s the dialog box that the macro was waiting to see.

20. Macro Breakdown: Copy Text into an Email

These instructions select all the text in the Note Pad document and copy it to the clipboard. The next step emails all of the copied text back to me.

20.1 Here’s the email that Keyboard Maestro sent to me.

21. Macro Breakdown: A Little Clean Up

Finally, these last steps close the Note Pad window (without saving). That’s it!

22. Let’s Recap

In case you got lost in all that, here’s a quick recap of how workflow functions:

  • I use Dictate & Connect on my iPhone to dictate a long passage of text, and then tap the Quickshare button to upload the file to Dropbox.

  • Hazel sees the new file in Dropbox and triggers an Applescript that launches a Keyboard Maestro macro.

  • Keyboard Maestro activates Dictate, and instructs it to load the new audio file for transcription.

  • Keyboard Maestro waits for Dictate to finish transcribing, then copies the transcribed text into an email addressed to me, and sends it.

  • Keyboard Maestro tells Dictate to close the window it created while transcribing.

  • An hour later, Hazel moves the audio file into the trash.
Hope all this made sense. Good luck with your hone transcription server!

Just in case you’re curious, I used a brilliant app called Clarify to create this walkthrough document.

Who am I?

My name is Taz Goldstein, and I’m an award-winning Los Angeles based filmmaker. Click any of the links in the nav bar to see my work (note: this page is not visible in the site’s navigation bar). You can also check out my mobile filmmaking blog, Hand Held Hollywood. If you want to follow me, you can find me on Twitter or sign up for my newsletter at the bottom of the page. Thanks!

Let’s stay in touch!!

Hop on my mailing list! I only send out emails when I’ve got something especially awesome to share. Thanks again for visiting!
Thanks for joining my mailing list! I promise not to spam you. Unless you consider sending awesome project updates and cool-ass filmmaking tips to be spam. Weeeeeeee!