Search in sources :

Example 6 with TextToSpeechClient

use of com.google.cloud.texttospeech.v1beta1.TextToSpeechClient in project java-docs-samples by GoogleCloudPlatform.

the class SynthesizeText method synthesizeText.

// [START tts_synthesize_text]
/**
 * Demonstrates using the Text to Speech client to synthesize text or ssml.
 * @param text the raw text to be synthesized. (e.g., "Hello there!")
 * @throws Exception on TextToSpeechClient Errors.
 */
public static void synthesizeText(String text) throws Exception {
    // Instantiates a client
    try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
        // Set the text input to be synthesized
        SynthesisInput input = SynthesisInput.newBuilder().setText(text).build();
        // Build the voice request
        VoiceSelectionParams voice = VoiceSelectionParams.newBuilder().setLanguageCode(// languageCode = "en_us"
        "en-US").setSsmlGender(// ssmlVoiceGender = SsmlVoiceGender.FEMALE
        SsmlVoiceGender.FEMALE).build();
        // Select the type of audio file you want returned
        AudioConfig audioConfig = AudioConfig.newBuilder().setAudioEncoding(// MP3 audio.
        AudioEncoding.MP3).build();
        // Perform the text-to-speech request
        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\"");
        }
    }
}
Also used : ByteString(com.google.protobuf.ByteString) SynthesizeSpeechResponse(com.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) AudioConfig(com.google.cloud.texttospeech.v1beta1.AudioConfig) SynthesisInput(com.google.cloud.texttospeech.v1beta1.SynthesisInput) TextToSpeechClient(com.google.cloud.texttospeech.v1beta1.TextToSpeechClient) VoiceSelectionParams(com.google.cloud.texttospeech.v1beta1.VoiceSelectionParams)

Example 7 with TextToSpeechClient

use of com.google.cloud.texttospeech.v1beta1.TextToSpeechClient in project webapp by elimu-ai.

the class GoogleCloudTextToSpeechHelper method synthesizeText.

public static byte[] synthesizeText(String text, Language language) throws NotSupportedException, IOException {
    logger.info("synthesizeText");
    byte[] byteArray = null;
    logger.info("text: \"" + text + "\"");
    if ((language != Language.BEN) && (language != Language.ENG) && (language != Language.FIL) && (language != Language.HIN)) {
        throw new NotSupportedException("This language (" + language + ") is not yet supported: https://cloud.google.com/text-to-speech/docs/voices");
    }
    String languageCode = null;
    if (language == Language.BEN) {
        languageCode = "bn";
    } else if (language == Language.ENG) {
        languageCode = "en";
    } else if (language == Language.FIL) {
        languageCode = "fil";
    } else if (language == Language.HIN) {
        languageCode = "hi";
    }
    logger.info("languageCode: " + languageCode);
    // For the Google Cloud TextToSpeechClient to work, an environment variable GOOGLE_APPLICATION_CREDENTIALS needs to exist.
    // To enable this during development, download the JSON file from https://console.cloud.google.com/iam-admin/serviceaccounts
    // and run the following command:
    // export GOOGLE_APPLICATION_CREDENTIALS=/path/to/google-cloud-service-account-key.json
    logger.info("System.getenv(\"GOOGLE_APPLICATION_CREDENTIALS\"): \"" + System.getenv("GOOGLE_APPLICATION_CREDENTIALS") + "\"");
    TextToSpeechClient textToSpeechClient = TextToSpeechClient.create();
    logger.info("textToSpeechClient: " + textToSpeechClient);
    // Set the text input to be synthesized
    SynthesisInput synthesisInput = SynthesisInput.newBuilder().setText(text).build();
    logger.info("synthesisInput: " + synthesisInput);
    // Build the voice request
    VoiceSelectionParams voiceSelectionParams = VoiceSelectionParams.newBuilder().setLanguageCode(// TODO: fetch from Language enum
    languageCode).setSsmlGender(SsmlVoiceGender.FEMALE).build();
    logger.info("voiceSelectionParams: " + voiceSelectionParams);
    // Select the type of audio file to be returned
    AudioConfig audioConfig = AudioConfig.newBuilder().setAudioEncoding(AudioEncoding.MP3).build();
    logger.info("audioConfig: " + audioConfig);
    // Perform Text-to-Speech request
    SynthesizeSpeechResponse synthesizeSpeechResponse = textToSpeechClient.synthesizeSpeech(synthesisInput, voiceSelectionParams, audioConfig);
    logger.info("synthesizeSpeechResponse: " + synthesizeSpeechResponse);
    // Get the audio contents from the response
    ByteString audioContentsByteString = synthesizeSpeechResponse.getAudioContent();
    // Convert to byte array
    byteArray = audioContentsByteString.toByteArray();
    return byteArray;
}
Also used : ByteString(com.google.protobuf.ByteString) SynthesizeSpeechResponse(com.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse) AudioConfig(com.google.cloud.texttospeech.v1beta1.AudioConfig) ByteString(com.google.protobuf.ByteString) SynthesisInput(com.google.cloud.texttospeech.v1beta1.SynthesisInput) NotSupportedException(javax.transaction.NotSupportedException) TextToSpeechClient(com.google.cloud.texttospeech.v1beta1.TextToSpeechClient) VoiceSelectionParams(com.google.cloud.texttospeech.v1beta1.VoiceSelectionParams)

Aggregations

TextToSpeechClient (com.google.cloud.texttospeech.v1beta1.TextToSpeechClient)7 ByteString (com.google.protobuf.ByteString)7 AudioConfig (com.google.cloud.texttospeech.v1beta1.AudioConfig)6 SynthesisInput (com.google.cloud.texttospeech.v1beta1.SynthesisInput)6 SynthesizeSpeechResponse (com.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse)6 VoiceSelectionParams (com.google.cloud.texttospeech.v1beta1.VoiceSelectionParams)6 FileOutputStream (java.io.FileOutputStream)5 OutputStream (java.io.OutputStream)5 ListVoicesRequest (com.google.cloud.texttospeech.v1beta1.ListVoicesRequest)1 ListVoicesResponse (com.google.cloud.texttospeech.v1beta1.ListVoicesResponse)1 Voice (com.google.cloud.texttospeech.v1beta1.Voice)1 NotSupportedException (javax.transaction.NotSupportedException)1