In this article, we'll explore how to convert text into speech and save it as an audio file using the Google Text-to-Speech (TTS) API in a Node.js environment. We'll leverage the google-tts-api
package along with Axios
for making HTTP requests and fs
for file system operations.
Before we begin, make sure you have Node.js installed on your machine. You'll also need to set up a new Node.js project and install the required packages:
npm init -y
npm install google-tts-api axios
Let's dive right in
Now let's break down the code you'll add to your file
const fs = require('fs');
const tts = require('google-tts-api');
const axios = require('axios');
// Function to convert text to speech and save as an audio file
async function textToSpeech(text, language, outputFile) {
try {
const url = await tts.getAudioUrl(text, {
lang: language || 'en',
slow: false,
host: 'https://translate.google.com',
});
const response = await axios.get(url, { responseType: 'arraybuffer' });
fs.writeFileSync(outputFile, Buffer.from(response.data));
console.log(`Audio file saved to: ${outputFile}`);
} catch (error) {
console.error('Error converting text to speech:', error);
}
}
// Example usage
const textToConvert = 'Hello, this is a test.'
const outputFileName = 'output.mp3';
const languageCode = 'en'; // Change this to the desired language code
textToSpeech(textToConvert, languageCode, outputFileName);
- We import the necessary modules:
fs
for file system operations,google-tts-api
for accessing the Google TTS API, and axios for making HTTP requests. - The
textToSpeech
function takes three parameters: the text to convert, the language code (defaulting to English if not provided), and the output file name. - Inside the function, we generate the audio URL using
tts.getAudioUrl
, specifying language and speed parameters. - We then use
axios
to fetch the audio data from the generated URL and write it to the output file usingfs.writeFileSync
. - Any errors that occur during the process are caught and logged.
- This code snippet converts the text "Hello, this is a test." into speech and saves it as an MP3 file named "output.mp3" in the specified language.
Now run your code and your
output.mp3
file should appear
Do not forget to like and follow
Top comments (0)