diff --git a/web/client.html b/web/client.html
index 67ad2de..1b3801d 100644
--- a/web/client.html
+++ b/web/client.html
@@ -129,6 +129,15 @@ disabled
credentials: 'same-origin'
});
});
+ document.getElementById('task-select').addEventListener('change', (event) => {
+ const task = event.target.value;
+ fetch('/settings', {
+ method: 'POST',
+ body: JSON.stringify({ task, sessionId }),
+ headers: { 'Content-Type': 'application/json' },
+ credentials: 'same-origin'
+ });
+ });
// Draw sliding bar graph
function drawSlidingBarGraph(lastVolumes) {
@@ -265,6 +274,11 @@ disabled
if (json.hasOwnProperty("language")) {
languageSelect.value = json.language;
}
+
+ if (json.hasOwnProperty("taskSelect")) {
+ taskSelect.value = json.taskSelect;
+ }
+
//storerecordings checkbox
if (json.hasOwnProperty("storeRecordings")) {
storeRecordings.checked = json.storeRecordings;
@@ -488,6 +502,7 @@ disabled
languageSelect = document.getElementById("language-select");
inputDevices = document.getElementById("input-devices");
storeRecordings = document.getElementById("store-recordings");
+ taskSelect = document.getElementById("task-select");
enumerateDevices();
connect(socket);
diff --git a/web/server.js b/web/server.js
index 42048a3..cf6fa79 100644
--- a/web/server.js
+++ b/web/server.js
@@ -49,11 +49,12 @@ wss.on('connection', (ws, req) => {
console.log('No session data found for session id ' + webSocket.sessionId);
}
let language = sessionData?.language || 'en';
+ let task = sessionData?.task || 'transcribe';
//show the size of the audio data as 0.000 MB
console.log('(queue ' + queueCounter + ') Received ' + (data.length / 1024 / 1024).toFixed(3) + ' MB audio from client. Crrent language: ' + language);
var request = require('request');
var formData = {
- task: 'transcribe',
+ task: task,
language: sessionData.language,
output: 'json',
audio_file: {
@@ -157,6 +158,10 @@ app.post('/settings', (req, res) => {
sessionData.storeRecordings = body.storeRecordings;
console.log(`Session ${sid}: storeRecordings set to ${sessionData.storeRecordings}`);
}
+ if(body.task != undefined){
+ sessionData.task = body.task;
+
+ }
res.send('OK', 200, { 'Content-Type': 'text/plain' });
});