A voiceover studio your content team runs without Azure access

Audition neural voices on two sentences, render the full script once you are happy, and deliver finished audio straight to a shared Drive folder.

App
Azure AI SpeechGoogle DriveSlackMarketingContent Generation
PromptCreate

Build me a narration studio app my content team opens whenever they need voiceover audio. It runs on Azure AI Speech for the synthesis, Google Drive for scripts and finished files, and Slack for sharing. The people using it are writers and content producers who should never have to see the Azure portal.

The main screen is a script editor beside a voice picker. The voice picker is populated from the Azure AI Speech List Voices operation and is filterable by language or locale, by gender, and by speaking style, since many neural voices ship with styles like cheerful or newscast. Show the voice display name, locale, gender and its available styles so somebody can narrow a long list down fast. Alongside the voice there are speed and pitch controls.

Every voice in the list has a Preview button. Preview must render only the first two sentences of the current script, never the whole thing, so that auditioning six voices does not burn six full renders. Preview always uses the real time Synthesize Speech operation and plays the audio back inline in the browser. Do not save previews to Drive or write them into the render history.

Scripts can be typed straight into the editor or loaded from Google Drive. A Load from Drive control uses List Files with a Drive query filtered to the Google Docs mime type so the writer can find an existing doc, then Export Google Workspace File pulls it down as plain text into the editor, where it stays fully editable before rendering. Google Docs cannot be downloaded directly, which is why the export step is required rather than a plain file download.

Speed and pitch are applied as SSML prosody rate and pitch wrapped around the script text, because real time synthesis expects an SSML body sent as application/ssml+xml. Pick the output audio format with the X-Microsoft-OutputFormat header for real time renders and the outputFormat body property for batch renders, defaulting to an MP3 format that is good enough for published narration.

Pressing Render routes on estimated audio length. Estimate duration from the script word count at roughly 150 spoken words per minute. Anything estimated under ten minutes goes through Synthesize Speech and comes back in the same request. Anything longer must go through Create Batch Synthesis, because real time synthesis silently truncates its output audio at ten minutes and would quietly cut the end off a long script. Batch synthesis needs a client chosen synthesis id in the path, so generate one that is 3 to 64 characters, uses only letters, digits, hyphen, underscore and dot, and starts and ends with a letter or digit.

A batch render shows up immediately as a job row with its script name, voice and a running status. The row polls Get Batch Synthesis until the job reports Succeeded or Failed, showing the current state as it goes so nobody wonders whether it is stuck, and surfacing a readable error on failure with the option to retry.

When audio is ready, upload it to a Drive folder the user chooses, defaulting to a configurable team folder. Use Upload File (Multipart) for files up to 5MB and Upload File (Resumable) for anything larger, since a ten minute MP3 will usually exceed the multipart limit and that is exactly the case the batch path exists to serve. Then call Create Permission to make a shareable link and store that link on the render. Copying the audio into Drive is deliberate and not optional: batch synthesis results expire after their time to live, which defaults to about a week, so a link back to Azure would eventually break while a Drive copy will not.

Underneath the studio is a history table of every completed render, showing the script or its first line, the voice used, the speed and pitch, when it was rendered, and the Drive link. Each row has a Re-render button that reloads that script and its settings back into the editor for a fresh render, and a Share to Slack button that posts the audio to a chosen channel using the Slack Upload a File operation, with a short message naming the script and voice.

Users can save a voice together with its speed and pitch as a named preset, such as Product demo or Course module, so audio stays on brand across a series. Presets are shared across the team, appear as one click options above the voice picker, and can be renamed or deleted. Persist presets, render history and the default Drive folder.

Each person sees their own renders in the history table by default, with a toggle to show the whole team's renders instead, so someone can find a colleague's work and reuse its settings.

What does this prompt do?

  • Puts a script editor next to a searchable voice list you can filter by language, gender and speaking style, so writers pick a voice without leaving the page
  • Lets anyone preview a voice on just the first two sentences, so choosing a voice never costs a full render
  • Pulls scripts in from an existing Google Doc, or takes text typed straight into the editor
  • Renders the finished audio, saves it to a Drive folder you choose, and creates a shareable link you can send to Slack in one click
  • Keeps a history of every render with its script, voice and settings, plus saved presets so narration stays on brand across the team

What do I need to use this?

  • An Azure AI Speech resource, which supplies the neural voices used for narration
  • A Google account with access to the Drive folder where finished audio should land
  • A Slack workspace, if you want the Share to Slack button
  • Your scripts, either typed into the app or already written in Google Docs

How can I customize it?

  • Change the default Drive folder that finished audio lands in, or pick a different one per render
  • Set up your own named presets, such as one for product demos and another for course modules, so every render matches the format it is for
  • Adjust how wide the sharing link goes, from anyone with the link down to named people only
  • Change the preview length if two sentences is not enough to judge a voice

FAQs

Why preview only the first two sentences?
Because auditioning voices is where most narration budget quietly disappears. A team comparing six voices on a full ten minute script pays for six full renders just to make one choice. Previewing a couple of sentences gives you the same answer for a fraction of the cost, and the full render only happens once you have decided.
Can it handle long scripts, like a full course module?
Yes. Short scripts come back almost immediately, and longer ones are handed off to a background job that shows up as a row you can watch. When the job finishes the audio is saved to Drive automatically, so you can close the tab and come back to a finished file.
Does everyone on the team see everyone else's renders?
By default you see your own, which keeps the history readable when several people are working at once. There is a toggle to switch to the whole team's renders when you want to find something a colleague made or reuse their settings.
Why does the audio get copied to Google Drive instead of just linked?
Finished audio does not stay available at its original location forever, so a link on its own would eventually break. Copying each render into your own Drive folder means the file is yours, it lives beside the rest of your content, and the link you share with colleagues keeps working.
Do the people using this need an Azure login?
No, and that is much of the point. The connection is set up once, and after that your writers and content producers work entirely in this app. They never need to be given access to the Azure portal.
Can we keep narration consistent across a whole series?
That is what presets are for. Save a voice together with its speed and pitch under a name like Product demo or Course module, and anyone rendering a new episode picks the same preset instead of trying to remember the settings.

Related templates

Browse and shortlist creators without burning audit credits

Search creators for free, shortlist the best with your team, and spend an audit credit only when you decide someone is worth a closer look.

HypeAuditor
Airtable
Slack
App
Hiring funnel dashboard for every open Hireflix role

One screen showing invited, completed, and shortlisted counts for every open role, plus the stalled invites that have quietly gone nowhere.

Hireflix
Slack
App
Global operations exposure map for your sites and suppliers

Open one board each morning to see which of your facilities, suppliers and shipping lanes are sitting near trouble in the news right now.

GDELT
Airtable
Slack
App
Compare creators on post performance before you pay them

Pick creators from your saved list and see their best and worst Instagram posts side by side, so your brief is built on what actually lands.

HypeAuditor
Google Docs
Slack
App
Review every Hireflix video interview from one daily queue

One screen where your hiring team watches every unscored candidate, reads the transcript alongside each answer, and scores and shortlists on the spot.

Hireflix
Slack
App
Turn Google Drive scripts into narrated audio, line by line

One desk to pull scripts from Drive, give every line its own voice, redo the one take that missed, and share approved audio in Slack.

Hume
Google Drive
Slack Bot
App

Give your content team a voiceover studio of their own.

Audition voices cheaply, render once, and land finished audio in Drive with a link ready to share.