Warning: session_start(): open(/var/lib/php/sessions/sess_skbvs44e74qi24cb5tpcuf8anv, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!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_textAreaWithTitle text()),
"Render", rThreadEnter render));
}