function translateSpeakText()

in lib/main.js [381:434]


function translateSpeakText() {
    $("#translate2").val("");
    setLanguage();

    if (typeof pollyVoiceMap.get(languageCode) === "undefined") {
        document.getElementById("result").innerHTML =
            "The language you selected is not available for text-to-speech";
        return;
    }

    var voiceId = pollyVoiceMap.get(languageCode);

    // Create the JSON parameters for getSynthesizeSpeechUrl
    var speechParams = {
        OutputFormat: "mp3",
        SampleRate: "16000",
        Text: "",
        TextType: "text",
        VoiceId: voiceId,
        Engine: "standard"
    };

    if (pollyNeuralVoices.includes(voiceId)) 
        speechParams.Engine = "neural";

    translation2 = "";
    
    translateInputReverse(
        document.getElementById("textEntry").value,
        function (translated) {
            translation2 += translated + "\n";
            $("#translate2").val(translation2 + "\n");
            //$('#translate2').scrollTop($('#translate2')[0].scrollHeight);
            speechParams.Text = translation2;

            // Create the Polly service object and presigner object
            var polly = new AWS.Polly({ apiVersion: "2016-06-10" });
            var signer = new AWS.Polly.Presigner(speechParams, polly);

            // Create presigned URL of synthesized speech file
            signer.getSynthesizeSpeechUrl(speechParams, function (error, url) {
                if (error) {
                    document.getElementById("result").innerHTML = error;
                } else {
                    document.getElementById("audioSource").src = url;
                    if (document.getElementById("audioPlayback").style.display === "none")
                        document.getElementById("audioPlayback").style.display = "block";
                    document.getElementById("audioPlayback").load();
                    //document.getElementById("result").innerHTML = "Ready!";
                }
            });
        }
    );
}