3

I would like to be able to save the audio from the sample from Google’s cloud-based text-to-speed service. Is it possible to do this?

1
  • 1
    What OS do you plan on doing this on? Solutions for Windows, macOS and Linux will be similar but definitely require different steps. – Giacomo1968 Aug 28 '18 at 19:49
7

If you're going to do a lot of this, you should really use the API that they offer, but here's a quick step by step if you just want to download a single sample of Google's speech synthesis.

  1. Go to the page in Google Chrome.
  2. Open the Developer Tools (by pushing F12)
  3. Go to the "Network" tab.
  4. Enter the text you want to get audio of.
  5. Click the "SPEAK IT" button.
  6. Watch the "Network" tab populate with a couple of entries.
  7. Right-click the entry that starts with data:audio/wav;base64, and click "Open in new tab".
  8. In the new tab, right-click the audio player, and click "Save video as..."
  9. Choose where you want to save the resulting .wav file.

Note: This will get you a (marginally) cleaner copy of the audio than recording the Stereo Mix from your sound card.

1
  • 3
    Note: @wysiwyg's answer will continue to work even if Google changes things in order to make it so that this trick won't work anymore, and it is also useful for many other things where such tricks already don't work. – 3D1T0R Aug 28 '18 at 19:48
6

Edit: @3D1T0R 's answer is simpler and will most likely result in a higher quality file.


I would just use an audio recording program, such as Audacity, to record the "Stereo Mix" of your computer. You haven't specified an OS but assuming Windows:

  • First go to the Sound applet in the Control Panel, go to the Recording tab, right-click Stereo Mix and select Enable. (If you don't see Stereo Mix, check Show disabled devices) enter image description here

  • Then download/open Audacity, and in the Recording Device dropdown box, select Stereo Mix. Then just hit Record, and anything you hear playing out of your speakers will be recorded to a sound file.

enter image description here

1
6

As predicted in this comment, the accepted answer is now broken. The basic approach still works though, except you have to save the proxy.json and then decode the base64-encoded audio:

cat proxy.json | jq '.audioContent' -r | base64 -d > your-audio.wav
3

I wrote a browser extension specifically for this purpose: https://github.com/skygate2012/i_would_like_to_obtain_a_sample_plox

It uses the WebExtensions API to sniff HTTP responses and saves the wav audio when matched.

2
  • This has been removed from the Firefox add-ons list, any chance it'll be added again? – Garbit Oct 20 '20 at 12:57
  • 1
    @Garbit Not at the moment, I can't fix a bug that stopped working on the latest version of Firefox. If you can help PRs are welcome. – skygate Oct 28 '20 at 6:25
1

Here are the current steps

  1. Go to https://cloud.google.com/text-to-speech
  2. Open the Developer Tools (by F12)
  3. Go to the "Network" tab.
  4. Enter the text you want to get audio of.
  5. Click the "SPEAK IT" button.
  6. Click the “I’m not a robot” checkbox
  7. Watch the "Network" tab populate with a couple of entries.
  8. Right-click the entry that starts with proxy?url=https://texttospeech
  9. In the preview to right, click "copy" in the line for “audiocontent”
  10. Save this as a text file (base64.txt). Remove the quotes (") from beginning and end This contains the base64 encoded audio
  11. In Ubuntu, decode base64 to wav file with the following command:
  12. cat base64.txt | base64 --decode > audio.mp3

screenshot

-1

basically the same way. Inspect json response, take audiocontent base64 and decode to wav.

To make it easier for you, I made a chrome extension named audiotts. Just click SPEAK IT button and waiting the audio player come in. You can download the audio using download menu of the audio player.

feel free to check that out 🤟

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.