47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
// Imports the Google Cloud client library
|
||
|
const textToSpeech = require('@google-cloud/text-to-speech')
|
||
|
const fs = require('fs')
|
||
|
const util = require('util')
|
||
|
// Creates a client
|
||
|
const client = new textToSpeech.TextToSpeechClient()
|
||
|
|
||
|
const convertTextToSpeech = async (
|
||
|
text,
|
||
|
voice_name = 'pt-BR-Standard-B',
|
||
|
voice_gender = 'MALE',
|
||
|
languageCode = 'pt-BR'
|
||
|
) => {
|
||
|
try {
|
||
|
|
||
|
const request = {
|
||
|
input: { text: text },
|
||
|
voice: {
|
||
|
languageCode: languageCode,
|
||
|
name: voice_name,
|
||
|
ssmlGender: voice_gender,
|
||
|
},
|
||
|
audioConfig: { audioEncoding: 'MP3' },
|
||
|
}
|
||
|
|
||
|
// console.log('REQUEST: ', request)
|
||
|
|
||
|
// Performs the text-to-speech request
|
||
|
const [response] = await client.synthesizeSpeech(request)
|
||
|
|
||
|
return response.audioContent
|
||
|
|
||
|
// Write the binary audio content to a local file
|
||
|
// const writeFile = util.promisify(fs.writeFile)
|
||
|
|
||
|
// await writeFile('output.mp3', response.audioContent, 'binary')
|
||
|
|
||
|
// console.log('Audio content written to file: output.mp3')
|
||
|
} catch (error) {
|
||
|
console.log(
|
||
|
'There was an error on textToSpeech.ts file. Error in convertTextToSpeech function: ',
|
||
|
error
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = convertTextToSpeech
|