🌐
Google
docs.cloud.google.com › ai and ml › cloud text-to-speech › cloud text-to-speech api
Cloud Text-to-Speech API | Google Cloud Documentation
Synthesizes natural-sounding speech by applying powerful neural network models · To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API ...
🌐
Google Cloud
cloud.google.com › text-to-speech
Text-to-Speech AI: Lifelike Speech Synthesis | Google Cloud
Convert text into natural-sounding speech using an API powered by the best of Google’s AI technologies. New customers get up to $300 in free credits to try Text-to-Speech and other Google Cloud products.
🌐
Medium
arie-m-prasetyo.medium.com › getting-started-with-googles-cloud-text-to-speech-api-2f82c34f8b5c
Getting started with Google’s Cloud Text-to-Speech API | by Arie M. Prasetyo | Medium
August 8, 2025 - Several TTS options exist, from Hume.ai, Amazon Polly and OpenAI’s TTS model, to open-source tools like Coqui TTS and eSpeak NG. I chose Google Cloud’s Text-to-Speech for two main reasons: It offers high-quality voices for the Indonesian language (specific for my needs) Its free tier is generous enough for early experimentation · Before we can synthesize speech, we’ll need to set up Google’s API:
🌐
npm
npmjs.com › package › google-tts-api
google-tts-api - npm
Google TTS (Text-To-Speech) for node.js. Latest version: 2.0.2, last published: 5 years ago. Start using google-tts-api in your project by running `npm i google-tts-api`. There are 85 other projects in the npm registry using google-tts-api.
      » npm install google-tts-api
    
Published   Mar 20, 2021
Version   2.0.2
Author   zlargon
🌐
Reddit
reddit.com › r/allthingsediting › how to generate high-quality text-to-speech for free
r/AllThingsEditing on Reddit: How to generate high-quality text-to-speech for free
April 16, 2022 -

If you like to read your text out loud to catch awkward sentences, you may want to try text-to-speech. Unfortunately the free alternatives sound horrible, and the available text-to-speech apps offering premium voices are expensive, especially if you're revising an entire novel. There is however a workaround, it's a little involved, but you only have to do it once.

Guide: How to generate text-to-speech using Google's Wavenet voices for free. (And legally.)

Wavenet is the artificial voice API used in Google assistant, among others, and sounds considerably more natural than the free alternatives. If you register a Google cloud account, you can activate the the Cloud text-to-speech API and get 1 million characters a month for free directly from Google. Search for it in the API library, and it pops right up.

Be aware that if you exceed the allotted amount of characters, you'll be charged $16 for another million. A million characters is enough for at least 150 000 words though, so you will most likely never come even near running that risk.

The trick is now to take your newly acquired characters and generate an actual voice with them. You do that with an extension to Chrome called "Wavenet for Chrome", surprisingly. Install it and head back to Google cloud to generate an API key. Instructions are provided by the extension, or can be found with a google search. Generate the key and paste it into the extension. The configuration is now done.

You access the extension via the right-click menu, so you need to use a web text editor that doesn't override it. Google docs and Word won't work. I use Wavemaker, but any simple editor will do.

Choose the voice you want in the extension and open your text in the editor. Select the part you want to generate, right-click and select "Download as MP3". This saves you from wasting characters by generating the same text over and over. Open your new file in the MP3-player of your choice and there you go. Easy peasy lemon squeezy.

🌐
Google AI
ai.google.dev › gemini api › speech generation (text-to-speech)
Speech generation (text-to-speech) | Gemini API | Google AI for Developers
Gemini 3 Flash is here. Try it for free in Google AI Studio. ... The Gemini API can transform text input into single speaker or multi-speaker audio using native text-to-speech (TTS) generation capabilities.
🌐
YouTube
youtube.com › edureka!
Google Cloud Text to Speech API using Python | Text to Speech for Free in Google Cloud | Edureka - YouTube
🔥Edureka Google Cloud Platform Training: https://www.edureka.co/google-cloud-architect-certification-training Get 20% OFF using code (YOUTUBE20)This Edureka...
Published   March 11, 2022
Views   30K
🌐
Bustatech
bustatech.com › developing-a-free-text-to-speech-tool-with-the-google-api
Developing a Free Text-to-Speech Tool with the Google API – Bust A TECH
The Text-to-Speech API is also free to use within the usage limits, which are measured by the number of bytes of text converted. Make sure you’re logged in with your Google account, then click Start free.
🌐
Google
codelabs.developers.google.com › codelabs › cloud-text-speech-python3
Using the Text-to-Speech API with Python | Google Codelabs
Running through this codelab won't cost much, if anything at all. To shut down resources to avoid incurring billing beyond this tutorial, you can delete the resources you created or delete the project. New Google Cloud users are eligible for the $300 USD Free Trial program.
Find elsewhere
🌐
GitHub
github.com › zlargon › google-tts
GitHub - zlargon/google-tts: Google TTS (Text-To-Speech) for node.js
import * as googleTTS from 'google-tts-api'; // ES6 or TypeScript const googleTTS = require('google-tts-api'); // CommonJS // get audio URL const url = googleTTS.getAudioUrl('Hello World', { lang: 'en', slow: false, host: 'https://translate.google.com', }); console.log(url); // https://translate.google.com/translate_tts?...
Starred by 286 users
Forked by 59 users
Languages   JavaScript 77.9% | TypeScript 22.1%
🌐
Sonaar
sonaar.io › home › documentation › how to get google cloud text-to-speech api key
How to Get Google Cloud Text-to-Speech API Key | Sonaar
April 16, 2024 - Step 1 – Create a free Google Cloud Account. Step 2 – Visit the Google Cloud Homepage and click + Create Project: ... Step 4 – Click the Hamburger Icon > Billing and make sure to add a Billing Account.
🌐
Unreal Speech
blog.unrealspeech.com › free-google-cloud-text-to-speech-api-key-a-guide
Free Google Cloud Text-to-Speech API Key - A Guide
November 7, 2023 - Google Cloud Speech-to-Text API is not entirely free—it operates on a pay-as-you-go model. While it offers a free tier with 60 minutes of usage per month, exceeding this limit incurs charges.
🌐
Google Cloud
cloud.google.com › ai and ml › cloud text-to-speech › apis & reference
APIs & reference  | Cloud Text-to-Speech | Google Cloud
Contact Us Start free · Home · Documentation · AI and ML · Cloud Text-to-Speech · Reference · Send feedback · Guidance for authenticating in your development and production environments. Get started with Cloud Text-to-Speech in your language of choice. v1 and v1beta1 REST API Reference. v1 and v1beta1 gRPC API Reference. SSML elements supported in Cloud TTS.
🌐
CAMB
camb.ai › blog-post › best-free-text-to-speech-ai-apis
Best Free Text‑to‑Speech AI APIs in 2026 | CAMB.AI
Compare the best free TTS APIs from Google, AWS, Azure, IBM and more, and see how CAMB.AI’s MARS AI Model delivers lifelike text to speech.
🌐
Unreal Speech
blog.unrealspeech.com › google-cloud-tts-api-pricing-explained-developers-guide-2023
Google Cloud TTS API Pricing Explained - Developer's Guide 2023
November 23, 2023 - Below is a meticulously curated ... managing your text-to-speech expenditures. Free Tier: A no-cost usage limit provided by Google Cloud Text-to-Speech API, allowing you to experiment with the service without immediate ...
Top answer
1 of 15
65

Old answer:

Try using this URL: http://translate.google.com/translate_tts?tl=en&q=Hello%20World It will automatically generate a wav file which you can easily get with an HTTP request through any .net programming.

Edit:

Ohh Google, you thought you could prevent people from using your wonderful service with flimsy http header verification.

Here is a solution to get a response in multiple languages (I'll try to add more as we go):

NodeJS

// npm install `request`
const fs = require('fs');
const request = require('request');
const text = 'Hello World';

const options = {
    url: `https://translate.google.com/translate_tts?ie=UTF-8&q=${encodeURIComponent(text)}&tl=en&client=tw-ob`,
    headers: {
        'Referer': 'http://translate.google.com/',
        'User-Agent': 'stagefright/1.2 (Linux;Android 5.0)'
    }
}

request(options)
    .pipe(fs.createWriteStream('tts.mp3'))

Curl

curl 'https://translate.google.com/translate_tts?ie=UTF-8&q=Hello%20Everyone&tl=en&client=tw-ob' -H 'Referer: http://translate.google.com/' -H 'User-Agent: stagefright/1.2 (Linux;Android 5.0)' > google_tts.mp3

Note that the headers are based on @Chris Cirefice's example, if they stop working at some point I'll attempt to recreate conditions for this code to function. All credits for the current headers go to him and the wonderful tool that is WireShark. (also thanks to Google for not patching this)

2 of 15
49

In an update to Schahriar SaffarShargh's answer, Google has recently implemented a 'Google abuse' feature, making it impossible to send just any regular old HTTP GET to a URL such as:

http://translate.google.com/translate_tts?tl=en&q=Hello%20World

which worked just fine and dandy previously. Now, following such a link presents you with a CAPTCHA. This also affects HTTP GET requests out-of-browser (such as with cURL), because using that URL gives a redirect to the abuse protection page (the CAPTCHA).

To start, you have to add the query parameter client to the request URL:

http://translate.google.com/translate_tts?tl=en&q=Hello%20World&client=t

Google Translate sends &client=t, so you should too.

Before you make that HTTP request, make sure that you set the Referer header:

Referer: http://translate.google.com/

Evidently, the User-Agent header is also required, but interestingly enough it can be blank:

User-Agent:

Edit: NOTE - on some user-agents, such as Android 4.X, the custom User-Agent header is not sent, meaning that Google will not service the request. In order to solve that problem, I simply set the User-Agent to a valid one, such as stagefright/1.2 (Linux;Android 5.0). Use Wireshark to debug requests (as I did) if Google's servers are not responding, and ensure that these headers are being set properly in the GET! Google will respond with a 503 Service Unavailable if the request fails, followed by a redirect to the CAPTCHA page.

This solution is a bit brittle; it is entirely possible that Google will change the way they handle these requests in the future, so in the end I would suggest asking Google to make a real API endpoint (free or paid) that we can use without feeling dirty for faking HTTP headers.


Edit 2: For those interested, this cURL command should work perfectly fine to download an mp3 of Hello in English:

curl 'http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&client=t' -H 'Referer: http://translate.google.com/' -H 'User-Agent: stagefright/1.2 (Linux;Android 5.0)' > google_tts.mp3

As you may notice, I have set both the Referer and User-Agent headers in the request, as well as added the client=t parameter to the querystring. You may use https instead of http, your choice!


Edit 3: Google now requires a token for each GET request (noted by tk in the querystring). Below is the revised cURL command that will correctly download a TTS mp3:

curl 'https://translate.google.com/translate_tts?ie=UTF-8&q=hello&tl=en&tk=995126.592330&client=t' -H 'user-agent: stagefright/1.2 (Linux;Android 5.0)' -H 'referer: https://translate.google.com/' > google_tts.mp3

Notice the &tk=995126.592330 in the querystring; this is the new token. I obtained this token by pressing the speaker icon on translate.google.com and looking at the GET request. I simply added this querystring parameter to the previous cURL command, and it works.

NOTE: obviously this solution is very frail, and breaks at the whim of the architects at Google who introduce new things like tokens required for the requests. This token may not work tomorrow (though I will check and report back)... the point is, it is not wise to rely on this method; instead, one should turn to a commercial TTS solution, especially if using TTS in production.

For further explanation of the token generation and what you might be able to do about it, see Boude's answer.


If this solution breaks any time in the future, please leave a comment on this answer so that we can attempt to find a fix for it!