Search in sources :

Example 16 with VoiceSelectionParams

use of com.google.cloud.texttospeech.v1.VoiceSelectionParams in project java-dialogflow-cx by googleapis.

the class DetectIntentStream method detectIntentStream.

// DialogFlow API Detect Intent sample with audio files processes as an audio stream.
public static void detectIntentStream(String projectId, String locationId, String agentId, String sessionId, String audioFilePath) throws ApiException, IOException {
    SessionsSettings.Builder sessionsSettingsBuilder = SessionsSettings.newBuilder();
    if (locationId.equals("global")) {
        sessionsSettingsBuilder.setEndpoint("dialogflow.googleapis.com:443");
    } else {
        sessionsSettingsBuilder.setEndpoint(locationId + "-dialogflow.googleapis.com:443");
    }
    SessionsSettings sessionsSettings = sessionsSettingsBuilder.build();
    // Instantiates a client
    try (SessionsClient sessionsClient = SessionsClient.create(sessionsSettings)) {
        // Set the session name using the projectID (my-project-id), locationID (global), agentID
        // (UUID), and sessionId (UUID).
        // Using the same `sessionId` between requests allows continuation of the conversation.
        SessionName session = SessionName.of(projectId, locationId, agentId, sessionId);
        // Instructs the speech recognizer how to process the audio content.
        // Note: hard coding audioEncoding and sampleRateHertz for simplicity.
        // Audio encoding of the audio content sent in the query request.
        InputAudioConfig inputAudioConfig = InputAudioConfig.newBuilder().setAudioEncoding(AudioEncoding.AUDIO_ENCODING_LINEAR_16).setSampleRateHertz(// sampleRateHertz = 16000
        16000).build();
        // Build the AudioInput with the InputAudioConfig.
        AudioInput audioInput = AudioInput.newBuilder().setConfig(inputAudioConfig).build();
        // Build the query with the InputAudioConfig.
        QueryInput queryInput = QueryInput.newBuilder().setAudio(audioInput).setLanguageCode(// languageCode = "en-US"
        "en-US").build();
        // Create the Bidirectional stream
        BidiStream<StreamingDetectIntentRequest, StreamingDetectIntentResponse> bidiStream = sessionsClient.streamingDetectIntentCallable().call();
        // Specify sssml name and gender
        VoiceSelectionParams voiceSelection = // Voices that are available https://cloud.google.com/text-to-speech/docs/voices
        VoiceSelectionParams.newBuilder().setName("en-GB-Standard-A").setSsmlGender(SsmlVoiceGender.SSML_VOICE_GENDER_FEMALE).build();
        SynthesizeSpeechConfig speechConfig = SynthesizeSpeechConfig.newBuilder().setVoice(voiceSelection).build();
        // Setup audio config
        OutputAudioConfig audioConfig = // https://cloud.google.com/dialogflow/cx/docs/reference/rpc/google.cloud.dialogflow.cx.v3#outputaudioencoding
        OutputAudioConfig.newBuilder().setAudioEncoding(OutputAudioEncoding.OUTPUT_AUDIO_ENCODING_UNSPECIFIED).setAudioEncodingValue(1).setSynthesizeSpeechConfig(speechConfig).build();
        // The first request must **only** contain the audio configuration:
        bidiStream.send(StreamingDetectIntentRequest.newBuilder().setSession(session.toString()).setQueryInput(queryInput).setOutputAudioConfig(audioConfig).build());
        try (FileInputStream audioStream = new FileInputStream(audioFilePath)) {
            // Subsequent requests must **only** contain the audio data.
            // Following messages: audio chunks. We just read the file in fixed-size chunks. In reality
            // you would split the user input by time.
            byte[] buffer = new byte[4096];
            int bytes;
            while ((bytes = audioStream.read(buffer)) != -1) {
                AudioInput subAudioInput = AudioInput.newBuilder().setAudio(ByteString.copyFrom(buffer, 0, bytes)).build();
                QueryInput subQueryInput = QueryInput.newBuilder().setAudio(subAudioInput).setLanguageCode(// languageCode = "en-US"
                "en-US").build();
                bidiStream.send(StreamingDetectIntentRequest.newBuilder().setQueryInput(subQueryInput).build());
            }
        }
        // Tell the service you are done sending data.
        bidiStream.closeSend();
        for (StreamingDetectIntentResponse response : bidiStream) {
            QueryResult queryResult = response.getDetectIntentResponse().getQueryResult();
            System.out.println("====================");
            System.out.format("Query Text: '%s'\n", queryResult.getTranscript());
            System.out.format("Detected Intent: %s (confidence: %f)\n", queryResult.getIntent().getDisplayName(), queryResult.getIntentDetectionConfidence());
        }
    }
}
Also used : StreamingDetectIntentRequest(com.google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentRequest) AudioInput(com.google.cloud.dialogflow.cx.v3beta1.AudioInput) SessionsSettings(com.google.cloud.dialogflow.cx.v3beta1.SessionsSettings) OutputAudioConfig(com.google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig) SessionName(com.google.cloud.dialogflow.cx.v3beta1.SessionName) FileInputStream(java.io.FileInputStream) QueryInput(com.google.cloud.dialogflow.cx.v3beta1.QueryInput) QueryResult(com.google.cloud.dialogflow.cx.v3beta1.QueryResult) InputAudioConfig(com.google.cloud.dialogflow.cx.v3beta1.InputAudioConfig) StreamingDetectIntentResponse(com.google.cloud.dialogflow.cx.v3beta1.StreamingDetectIntentResponse) SynthesizeSpeechConfig(com.google.cloud.dialogflow.cx.v3beta1.SynthesizeSpeechConfig) SessionsClient(com.google.cloud.dialogflow.cx.v3beta1.SessionsClient) VoiceSelectionParams(com.google.cloud.dialogflow.cx.v3beta1.VoiceSelectionParams)

Example 17 with VoiceSelectionParams

use of com.google.cloud.texttospeech.v1.VoiceSelectionParams in project java-texttospeech by googleapis.

the class SynthesizeText method synthesizeSsml.

// [END tts_synthesize_text_audio_profile]
// [START tts_synthesize_ssml]
/**
 * Demonstrates using the Text to Speech client to synthesize text or ssml.
 *
 * <p>Note: ssml must be well-formed according to: (https://www.w3.org/TR/speech-synthesis/
 * Example: <speak>Hello there.</speak>
 *
 * @param ssml the ssml document to be synthesized. (e.g., "<?xml...")
 * @throws Exception on TextToSpeechClient Errors.
 */
public static ByteString synthesizeSsml(String ssml) throws Exception {
    // Instantiates a client
    try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
        // Set the ssml input to be synthesized
        SynthesisInput input = SynthesisInput.newBuilder().setSsml(ssml).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\"");
            return audioContents;
        }
    }
}
Also used : ByteString(com.google.protobuf.ByteString) SynthesizeSpeechResponse(com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) AudioConfig(com.google.cloud.texttospeech.v1.AudioConfig) SynthesisInput(com.google.cloud.texttospeech.v1.SynthesisInput) TextToSpeechClient(com.google.cloud.texttospeech.v1.TextToSpeechClient) VoiceSelectionParams(com.google.cloud.texttospeech.v1.VoiceSelectionParams)

Example 18 with VoiceSelectionParams

use of com.google.cloud.texttospeech.v1.VoiceSelectionParams in project java-texttospeech by googleapis.

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 ByteString 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\"");
            return audioContents;
        }
    }
}
Also used : ByteString(com.google.protobuf.ByteString) SynthesizeSpeechResponse(com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) AudioConfig(com.google.cloud.texttospeech.v1.AudioConfig) SynthesisInput(com.google.cloud.texttospeech.v1.SynthesisInput) TextToSpeechClient(com.google.cloud.texttospeech.v1.TextToSpeechClient) VoiceSelectionParams(com.google.cloud.texttospeech.v1.VoiceSelectionParams)

Example 19 with VoiceSelectionParams

use of com.google.cloud.texttospeech.v1.VoiceSelectionParams in project java-texttospeech by googleapis.

the class SynthesizeText method synthesizeTextWithAudioProfile.

// [END tts_synthesize_text]
// [START tts_synthesize_text_audio_profile]
/**
 * Demonstrates using the Text to Speech client with audio profiles to synthesize text or ssml
 *
 * @param text the raw text to be synthesized. (e.g., "Hello there!")
 * @param effectsProfile audio profile to be used for synthesis. (e.g.,
 *     "telephony-class-application")
 * @throws Exception on TextToSpeechClient Errors.
 */
public static ByteString synthesizeTextWithAudioProfile(String text, String effectsProfile) 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 and the audio profile
        AudioConfig audioConfig = AudioConfig.newBuilder().setAudioEncoding(// MP3 audio.
        AudioEncoding.MP3).addEffectsProfileId(// audio profile
        effectsProfile).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\"");
            return audioContents;
        }
    }
}
Also used : ByteString(com.google.protobuf.ByteString) SynthesizeSpeechResponse(com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileOutputStream(java.io.FileOutputStream) AudioConfig(com.google.cloud.texttospeech.v1.AudioConfig) SynthesisInput(com.google.cloud.texttospeech.v1.SynthesisInput) TextToSpeechClient(com.google.cloud.texttospeech.v1.TextToSpeechClient) VoiceSelectionParams(com.google.cloud.texttospeech.v1.VoiceSelectionParams)

Example 20 with VoiceSelectionParams

use of com.google.cloud.texttospeech.v1.VoiceSelectionParams in project java-texttospeech by googleapis.

the class SynthesizeTextBeta method synthesizeSsml.

// [END tts_synthesize_text_audio_profile_beta]
// [START tts_synthesize_ssml]
/**
 * Demonstrates using the Text to Speech client to synthesize text or ssml.
 *
 * <p>Note: ssml must be well-formed according to: (https://www.w3.org/TR/speech-synthesis/
 * Example: <speak>Hello there.</speak>
 *
 * @param ssml the ssml document to be synthesized. (e.g., "<?xml...")
 * @throws Exception on TextToSpeechClient Errors.
 */
public static void synthesizeSsml(String ssml) throws Exception {
    // Instantiates a client
    try (TextToSpeechClient textToSpeechClient = TextToSpeechClient.create()) {
        // Set the ssml input to be synthesized
        SynthesisInput input = SynthesisInput.newBuilder().setSsml(ssml).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)

Aggregations

ByteString (com.google.protobuf.ByteString)23 FileOutputStream (java.io.FileOutputStream)20 OutputStream (java.io.OutputStream)20 AudioConfig (com.google.cloud.texttospeech.v1.AudioConfig)15 SynthesisInput (com.google.cloud.texttospeech.v1.SynthesisInput)15 SynthesizeSpeechResponse (com.google.cloud.texttospeech.v1.SynthesizeSpeechResponse)15 TextToSpeechClient (com.google.cloud.texttospeech.v1.TextToSpeechClient)15 VoiceSelectionParams (com.google.cloud.texttospeech.v1.VoiceSelectionParams)15 AudioConfig (com.google.cloud.texttospeech.v1beta1.AudioConfig)8 SynthesisInput (com.google.cloud.texttospeech.v1beta1.SynthesisInput)8 SynthesizeSpeechResponse (com.google.cloud.texttospeech.v1beta1.SynthesizeSpeechResponse)8 TextToSpeechClient (com.google.cloud.texttospeech.v1beta1.TextToSpeechClient)8 VoiceSelectionParams (com.google.cloud.texttospeech.v1beta1.VoiceSelectionParams)8 Test (org.junit.Test)2 AudioInput (com.google.cloud.dialogflow.cx.v3beta1.AudioInput)1 InputAudioConfig (com.google.cloud.dialogflow.cx.v3beta1.InputAudioConfig)1 OutputAudioConfig (com.google.cloud.dialogflow.cx.v3beta1.OutputAudioConfig)1 QueryInput (com.google.cloud.dialogflow.cx.v3beta1.QueryInput)1 QueryResult (com.google.cloud.dialogflow.cx.v3beta1.QueryResult)1 SessionName (com.google.cloud.dialogflow.cx.v3beta1.SessionName)1