Add ability to play audio on server

This commit is contained in:
Michael Hansen 2022-06-07 16:51:41 -04:00
commit 70177bcfc5
4 changed files with 34 additions and 6 deletions

View file

@ -115,6 +115,15 @@
<button id="copy-voice" class="btn btn-info btn-sm" title="Copy voice key to clipboard">Copy</button>
</div>
</div>
<div class="row mt-3">
<div class="col-auto">
<label for="audio-target" title="Audio target">Play audio on:</label>
<select id="audio-target" name="audio-target">
<option value="client" selected>Client</value>
<option value="server">Server</value>
</select>
</div>
</div>
<div id="audio-message" class="row mt-3" hidden>
<div class="col">
<audio id="audio" preload="none" controls autoplay hidden></audio>
@ -302,6 +311,8 @@
var ssml = q('#ssml').checked || 'false'
var audioTarget = q('#audio-target').value || 'client'
q('#audio-message').hidden = false
q('#audio').pause()
@ -313,7 +324,8 @@
'&noiseScale=' + encodeURIComponent(noiseScale) +
'&noiseW=' + encodeURIComponent(noiseW) +
'&lengthScale=' + encodeURIComponent(lengthScale) +
'&ssml=' + encodeURIComponent(ssml),
'&ssml=' + encodeURIComponent(ssml) +
'&audioTarget=' + encodeURIComponent(audioTarget),
{cache: 'no-cache'})
if (res.ok) {
@ -322,8 +334,11 @@
q('#message').innerHTML = (elapsedTime / 1000).toFixed(3) + ' second(s)'
q('#speak-button').disabled = false
q('#audio').src = URL.createObjectURL(blob)
q('#audio').hidden = false
if (audioTarget != 'server') {
q('#audio').src = URL.createObjectURL(blob)
q('#audio').hidden = false
}
} else {
message = await res.text()
q('#message').textContent = message