Text To Speech (Mp3) in Java Example Code using Google Cloud Text-to-Speech API

text-to-speech-java-example-code-using-google-cloud-text-to-speech-api-featured
text-to-speech-java-example-code-using-google-cloud-text-to-speech-api-blog
package com.ngdeveloper;

import java.io.FileOutputStream;
import java.io.OutputStream;

// Imports the Google Cloud client library
import com.google.cloud.texttospeech.v1.AudioConfig;
import com.google.cloud.texttospeech.v1.AudioEncoding;
import com.google.cloud.texttospeech.v1.SsmlVoiceGender;
import com.google.cloud.texttospeech.v1.SynthesisInput;
import com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse;
import com.google.cloud.texttospeech.v1.TextToSpeechClient;
import com.google.cloud.texttospeech.v1.VoiceSelectionParams;
import com.google.protobuf.ByteString;

/**
 * Google Cloud TextToSpeech API sample application. Example usage: mvn package
 * exec:java -Dexec.mainClass='com.example.texttospeech.QuickstartSample'
 */
public class TextToMp3 {

	/** Demonstrates using the Text-to-Speech API. */
	public static void main(String... args) throws Exception {
		// Instantiates a client
		try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
			// Set the text input to be synthesized
			SynthesisInput input = SynthesisInput.newBuilder().setText("Hello, World!").build();

			// Build the voice request, select the language code ("en-US") and the ssml
			// voice gender
			// ("neutral")
			VoiceSelectionParams voice = VoiceSelectionParams.newBuilder().setLanguageCode("en-US")
					.setSsmlGender(SsmlVoiceGender.NEUTRAL).build();

			// Select the type of audio file you want returned
			AudioConfig audioConfig = AudioConfig.newBuilder().setAudioEncoding(AudioEncoding.MP3).build();

			// Perform the text-to-speech request on the text input with the selected voice
			// parameters and
			// audio file type
			SynthesizeSpeechResponse response = textToSpeechClient.synthesizeSpeech(input, voice, audioConfig);

			// Get the audio contents from the response
			ByteString audioContents = response.getAudioContent();

			// Write the response to the output file.
			try (OutputStream out = new FileOutputStream("output.mp3")) {
				out.write(audioContents.toByteArray());
				System.out.println("Audio content written to file \"output.mp3\"");
			}
		}
	}
}

Output:

Audio content written to file "output.mp3"
// output.mp3 file is generated with the content, here Hello, World

One comment

  • abelalli

    i find this code error

    Exception in thread “main” java.lang.NoSuchMethodError: ‘com.google.api.gax.core.GoogleCredentialsProvider$Builder com.google.api.gax.core.GoogleCredentialsProvider$Builder.setUseJwtAccessWithScope(boolean)’
    at com.google.cloud.texttospeech.v1.stub.TextToSpeechStubSettings.defaultCredentialsProviderBuilder(TextToSpeechStubSettings.java:137)
    at com.google.cloud.texttospeech.v1.stub.TextToSpeechStubSettings$Builder.createDefault(TextToSpeechStubSettings.java:252)
    at com.google.cloud.texttospeech.v1.stub.TextToSpeechStubSettings$Builder.access$000(TextToSpeechStubSettings.java:182)
    at com.google.cloud.texttospeech.v1.stub.TextToSpeechStubSettings.newBuilder(TextToSpeechStubSettings.java:161)
    at com.google.cloud.texttospeech.v1.TextToSpeechSettings$Builder.createDefault(TextToSpeechSettings.java:159)
    at com.google.cloud.texttospeech.v1.TextToSpeechSettings$Builder.access$000(TextToSpeechSettings.java:140)
    at com.google.cloud.texttospeech.v1.TextToSpeechSettings.newBuilder(TextToSpeechSettings.java:122)
    at com.google.cloud.texttospeech.v1.TextToSpeechClient.create(TextToSpeechClient.java:100)
    at javaapplication2.TextToMp3.main(TextToMp3.java:25)
    C:\Users\Lenovo\AppData\Local\NetBeans\Cache\12.5\executor-snippets\run.xml:111: The following error occurred while executing this line:
    C:\Users\Lenovo\AppData\Local\NetBeans\Cache\12.5\executor-snippets\run.xml:68: Java returned: 1
    BUILD FAILED (total time: 1 second)

Leave a Reply