Uses 30908K of libraries. Click here for Pure Java version (8530L/44K).
!7 set flag NoLib1400401. lib 1400452 // google tts lib 1400453 // google api java client import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.json.jackson2.JacksonFactory; 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; import com.google.cloud.texttospeech.v1.TextToSpeechSettings; import com.google.auth.Credentials; import com.google.api.gax.core.FixedCredentialsProvider; import com.google.auth.oauth2.GoogleCredentials; cmodule2 TestGoogleTTS > DynPrintLog { /* female voices: en-US-Wavenet-C en-US-Wavenet-E en-US-Wavenet-F en-US-Wavenet-G en-US-Wavenet-H F and H sound nice */ switchable S voiceName = "en-US-Wavenet-C"; switchable S text = "Hello darling"; start-thread { //dm_reloadOnFieldChange('voiceName, 'text); } void render ctex { temp InputStream in = newFileInputStream(javaxSecretDir("google-botcompany-credentials.json")); GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JacksonFactory.getDefaultInstance(), new InputStreamReader(in)); Credentials credentials = GoogleCredentials.fromStream( fileInputStream(assertFileExists(javaxSecretDir("google-tts-key.json"))); TextToSpeechSettings textToSpeechSettings = TextToSpeechSettings.newBuilder() .setCredentialsProvider(FixedCredentialsProvider.create(credentials)) .build(); temp TextToSpeechClient textToSpeechClient = TextToSpeechClient.create(textToSpeechSettings); // Set the text input to be synthesized SynthesisInput input = SynthesisInput.newBuilder().setText(text).build(); // Build the voice request, select the language code ("en-US") and the ssml voice gender // ("neutral") VoiceSelectionParams voice = VoiceSelectionParams.newBuilder() .setLanguageCode("en-US") .setName(voiceName) .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. File audioFile = javaxCachesDir("Speech Output/Google TTS/" + sanitizeFileName(voiceName) + "/" + uniqueFileNameUsingMD5_80_v2(text) + ".mp3"); { temp OutputStream out = fileOutputStream(audioFile); out.write(audioContents.toByteArray()); } printFileInfo(audioFile); playMp3(audioFile); } visual jhsplit(super, withCenteredButtons(northAndCenter( dm_inputFieldWithLabel voiceName(), dm_wordWrapTextAreaWithTitle text()), "Render", rThreadEnter render)); }
download show line numbers debug dex old transpilations
Travelled to 4 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, vouqrxazstgt
No comments. add comment
Snippet ID: | #1030591 |
Snippet name: | Test Google TTS [needs API key] |
Eternal ID of this version: | #1030591/29 |
Text MD5: | c269a7eb419a8811dbef63ff14e0f984 |
Transpilation MD5: | 8fda67d2bc407eaa0592881d2aacd52f |
Author: | stefan |
Category: | javax / networking |
Type: | JavaX source code (Dynamic Module) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2021-01-14 17:22:40 |
Source code size: | 3467 bytes / 90 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 255 / 1017 |
Version history: | 28 change(s) |
Referenced in: | -