Skip to content

Commit a4d98c8

Browse files
authored
Merge pull request #3 from SEPIA-Framework/dev
Added STT server interface and smaller fixes
2 parents 7cdf181 + fd78df2 commit a4d98c8

File tree

4 files changed

+198
-8
lines changed

4 files changed

+198
-8
lines changed

admin-web-tools/css/shared.css

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ h3 {
8787
flex-direction: column;
8888
align-items: center;
8989
justify-content: center;
90-
padding: 24px 0;
90+
padding: 24px 8px;
9191
}
9292
.page_content hr {
9393
width: 100%;
@@ -165,4 +165,33 @@ h3 {
165165
}
166166
.input-inline-indicator.inactive {
167167
background: #fff;
168+
}
169+
170+
@media only screen and (max-width: 380px) {
171+
body {
172+
margin: 0;
173+
}
174+
#main_win {
175+
border: 0;
176+
}
177+
td {
178+
min-width: 50px;
179+
}
180+
.interface_button {
181+
min-width: 192px;
182+
}
183+
input[type="button"],
184+
input[type="submit"] {
185+
min-width: 192px;
186+
}
187+
label {
188+
min-width: 192px;
189+
}
190+
td label {
191+
min-width: 128px;
192+
}
193+
.input-inline-indicator {
194+
top: 24px;
195+
right: 24px;
196+
}
168197
}

admin-web-tools/index.html

Lines changed: 83 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,34 @@
44
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
55
<!-- web app settings -->
66
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=1">
7+
8+
<title>S.E.P.I.A. Tools</title>
9+
<meta name="application-name" content="S.E.P.I.A. Tools"/>
10+
<meta name="apple-mobile-web-app-title" content="S.E.P.I.A. Tools">
11+
<meta name="description" content="S.E.P.I.A. Tools help you set-up, configure and manage your assistant and servers.">
12+
<meta name="theme-color" content="#000">
13+
<link rel="icon" sizes="192x192" href="img/icon-w.png">
14+
<link rel="apple-touch-icon" href="img/icon-w.png">
15+
16+
<!-- open graph settings -->
17+
<meta property="og:title" content="S.E.P.I.A. Tools"/>
18+
<meta property="og:determiner" content="the" />
19+
<meta property="og:url" content="https://sepia-framework.github.io/tools/"/>
20+
<meta property="og:description" content="S.E.P.I.A. Tools help you set-up, configure and manage your assistant and servers.">
21+
<meta property="og:image" content="https://sepia-framework.github.io/img/logo-w.png"/>
22+
<meta property="og:image:width" content="960"/>
23+
<meta property="og:image:height" content="960"/>
24+
<meta property="og:image:type" content="image/png"/>
25+
<meta property="og:image:alt" content="SEPIA Logo"/>
26+
<meta property="og:image" content="https://sepia-framework.github.io/tools/img/icon-w.png"/>
27+
<meta property="og:image:width" content="192"/>
28+
<meta property="og:image:height" content="192"/>
29+
<meta property="og:image:type" content="image/png"/>
30+
<meta property="og:image:alt" content="SEPIA Icon"/>
31+
<meta property="og:type" content="website"/>
32+
<meta property="og:locale" content="en_GB"/>
33+
<meta property="og:locale:alternate" content="en_US"/>
34+
735
<!--SCRIPTS / STYLES -->
836
<script type="text/javascript" src="js/jquery-3.1.1.min.js" charset="UTF-8"></script>
937
<script type="text/javascript" src="js/sjcl.js" charset="UTF-8"></script>
@@ -15,10 +43,9 @@
1543
<script type="text/javascript" src="js/answer-manager.js" charset="UTF-8"></script>
1644
<script type="text/javascript" src="js/server-config.js" charset="UTF-8"></script>
1745
<script type="text/javascript" src="js/smart-home-settings.js" charset="UTF-8"></script>
46+
<script type="text/javascript" src="js/stt-server-interface.js" charset="UTF-8"></script>
1847
<link rel="stylesheet" href="css/shared.css">
1948
<link rel="stylesheet" href="css/smart-home.css">
20-
21-
<title>SEPIA Tools</title>
2249

2350
<style>
2451
</style>
@@ -45,6 +72,11 @@
4572
var customServer = sessionStorage.getItem('customServer');
4673
if (customServer){
4774
$('#server').val(customServer);
75+
}else{
76+
var serverViaUrl = getURLParameter('server');
77+
if (serverViaUrl){
78+
$('#server').val(serverViaUrl);
79+
}
4880
}
4981
var server = sessionStorage.getItem('server');
5082
if (server){
@@ -61,6 +93,20 @@
6193
smartHomeServer = sessionStorage.getItem('smartHomeServer');
6294
if (smartHomeServer){
6395
$('#smarthome-server').val(smartHomeServer);
96+
}else{
97+
var serverViaUrl = getURLParameter('smarthome-server');
98+
if (serverViaUrl){
99+
$('#smarthome-server').val(serverViaUrl);
100+
}
101+
}
102+
sttServer = sessionStorage.getItem('sttServer');
103+
if (sttServer){
104+
$('#stt-server').val(sttServer);
105+
}else{
106+
var serverViaUrl = getURLParameter('stt-server');
107+
if (serverViaUrl){
108+
$('#stt-server').val(serverViaUrl);
109+
}
64110
}
65111
//show first page
66112
openPage('authentication');
@@ -80,6 +126,7 @@ <h2>SEPIA-Framework Developer Tools</h2>
80126
<button id="answer-manager-menu-btn" onclick="openPage('answer-manager')" class="menu_button" >Answers</button>
81127
<button id="server-config-menu-btn" onclick="openPage('server-config')" class="menu_button" >Server Settings</button>
82128
<button id="smart-home-settings-menu-btn" onclick="openPage('smart-home-settings')" class="menu_button" >Smart Home</button>
129+
<button id="stt-server-interface-menu-btn" onclick="openPage('stt-server-interface')" class="menu_button" >STT Server</button>
83130
<button id="performances-menu-btn" onclick="openPage('performances')" class="menu_button" >Performance</button>
84131
</div>
85132
</div>
@@ -286,6 +333,37 @@ <h3>Smart Home Settings</h3>
286333
</div>
287334
</div>
288335

336+
<!-- SPEECH RECOGNITION SETTINGS -->
337+
<div id="stt-server-interface" class="page">
338+
<h3>SEPIA STT-Server Interface</h3>
339+
<div class="page_content">
340+
<p><b>Connect</b></p>
341+
<div style="position: relative;">
342+
<label>Server: </label><input id="stt-server" type="url" onchange="checkSttServer()" placeholder="e.g.: http://localhost:3080/stt" onkeypress="checkSttServerKeyPress()">
343+
<span id="stt-server-indicator" class="input-inline-indicator inactive" title="Red: server not found, Green: connection established"></span>
344+
</div>
345+
<div style="position: relative;">
346+
<label>Access token: </label><input id="stt-access-token" type="text">
347+
</div>
348+
<hr>
349+
<p><b>Actions</b></p>
350+
<div><label>Model: </label><input id="stt-model" type="text" placeholder="/opt/kaldi/model/kaldi-generic-de-tdnn_sp" value="/apps/share/kaldi_models/kaldi-generic-de-tdnn_sp_sepia_v03"></div>
351+
<hr>
352+
<div class="interface_button_box">
353+
<button onclick="setSttModel()" class="interface_button">SET MODEL PATH</button>
354+
<button onclick="getSttModel()" class="interface_button">GET MODEL PATH</button>
355+
</div>
356+
<hr>
357+
<div><label>Version tag: </label><input id="stt-model-version" type="text" placeholder="04"></div>
358+
<hr>
359+
<div class="interface_button_box">
360+
<button onclick="sttAdaptLm('en')" class="interface_button">Adapt English LM</button>
361+
<button onclick="sttAdaptLm('de')" class="interface_button">Adapt German LM</button>
362+
</div>
363+
<hr>
364+
</div>
365+
</div>
366+
289367
<!-- PERFORMANCE TESTING -->
290368
<div id="performances" class="page">
291369
<h3>Performance Tests</h3>
@@ -300,8 +378,8 @@ <h3>Performance Tests</h3>
300378
<div><label>Asy. delay (ms): </label><input id="delay_N" style="width: 50px; min-width: 50px;" value=0></div>
301379
<hr>
302380
<div class="interface_button_box">
303-
<button onclick="testAuthPerformance()" class="interface_button">TEST AUTH. PERFORMANCE</button><br>
304-
<button onclick="testAnswerPerformance()" class="interface_button">TEST ANSWER PERFORMANCE</button>
381+
<button onclick="testAuthPerformance()" class="interface_button">TEST AUTH.</button><br>
382+
<button onclick="testAnswerPerformance()" class="interface_button">TEST ANSWER</button>
305383
</div>
306384
<hr>
307385
</div>
@@ -310,7 +388,7 @@ <h3>Performance Tests</h3>
310388
</div>
311389
<!-- RESULT VIEW -->
312390
<div id="show_result">
313-
Welcome to SEPIA-FW developer tools <b>version 1.0.1</b>.<br>
391+
Welcome to SEPIA-FW developer tools <b>version 1.1.0</b>.<br>
314392
Choose your section please.
315393
</div>
316394
<div id="footer">

admin-web-tools/js/shared.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,11 +346,12 @@ function convertData(data){
346346

347347
//REST calls (general HTTP)
348348

349-
function httpRequest(url, successCallback, errorCallback, method, data, headers){
349+
function httpRequest(url, successCallback, errorCallback, method, data, headers, maxwait){
350350
showMessage("Loading ...");
351+
if (!maxwait) maxwait = 10000;
351352
var config = {
352353
url: url,
353-
timeout: 10000,
354+
timeout: maxwait,
354355
type: "GET",
355356
success: function(data) {
356357
showMessage("Result: success");
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
//------ INTERFACE: ------
2+
3+
var sttServer = "";
4+
5+
function getSttServerUrl(){
6+
var host = $('#stt-server').val();
7+
if (host && !endsWith(host, "/")) host += "/";
8+
return host;
9+
}
10+
function getSttServerToken(){
11+
return $('#stt-access-token').val();
12+
}
13+
function checkSttServer(_host){
14+
var host = _host || getSttServerUrl();
15+
if (!host){
16+
$('#stt-server-indicator').removeClass('secure'); //secure = connected (in this case)
17+
$('#stt-server-indicator').addClass('inactive');
18+
return;
19+
}
20+
httpRequest(host + "ping", function(data){
21+
//success
22+
showMessage('Success: STT-Server reached!');
23+
$('#stt-server-indicator').removeClass('inactive');
24+
$('#stt-server-indicator').addClass('secure');
25+
sessionStorage.setItem('sttServer', host);
26+
sttServer = host;
27+
}, function(){
28+
//error
29+
showMessage('Error: STT-Server could not be reached!');
30+
$('#stt-server-indicator').removeClass('secure');
31+
$('#stt-server-indicator').removeClass('inactive');
32+
}, "GET", "", "");
33+
}
34+
function checkSttServerKeyPress(){
35+
if (this.event.keyCode == 13) checkSttServer();
36+
}
37+
38+
function setSttModel(){
39+
var newModel = $('#stt-model').val();
40+
if (!newModel){
41+
showMessage('Error: please set a valid model path!');
42+
return;
43+
}
44+
httpRequest(getSttServerUrl() + "settings", function(data){
45+
//SUCCESS
46+
showMessage(JSON.stringify(data, null, 2));
47+
}, function(err){
48+
//ERROR
49+
showMessage(JSON.stringify(err, null, 2));
50+
}, "POST", {
51+
"token": getSttServerToken(),
52+
"kaldi_model": newModel
53+
});
54+
}
55+
function getSttModel(){
56+
var host = getSttServerUrl();
57+
httpRequest(host + "settings", function(data){
58+
//success
59+
showMessage(JSON.stringify(data, null, 2));
60+
sessionStorage.setItem('sttServer', host);
61+
sttServer = host;
62+
}, function(err){
63+
//error
64+
showMessage(JSON.stringify(err, null, 2));
65+
}, "GET", "", "");
66+
}
67+
68+
function sttAdaptLm(langTag){
69+
var newVersion = $('#stt-model-version').val();
70+
if (!newVersion){
71+
showMessage('Error: please set a version tag for the adapted new model!');
72+
return;
73+
}
74+
var dataBody = {};
75+
dataBody['token'] = getSttServerToken();
76+
dataBody[('adapt_' + langTag)] = newVersion;
77+
httpRequest(getSttServerUrl() + "settings", function(data){
78+
//SUCCESS
79+
}, function(err){
80+
//ERROR
81+
}, "POST", dataBody, "", 600000);
82+
}

0 commit comments

Comments
 (0)