mirror of https://github.com/OpenVidu/openvidu.git
openvidu-test-e2e: update restart command for OpenVidu Pro E2E tests. Add custom language STT test
parent
d19d5d6dcb
commit
216817b675
|
@ -11,6 +11,7 @@ import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
@ -101,7 +102,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Individual dynamic record");
|
log.info("Individual dynamic record");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome");
|
||||||
|
|
||||||
|
@ -249,7 +252,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("REST API PRO test");
|
log.info("REST API PRO test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
|
|
||||||
|
@ -533,7 +538,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("openvidu-java-client PRO test");
|
log.info("openvidu-java-client PRO test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
// Create default Connection
|
// Create default Connection
|
||||||
Session session = OV.createSession();
|
Session session = OV.createSession();
|
||||||
|
@ -585,7 +592,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Network quality test");
|
log.info("Network quality test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(true, 5, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", true,
|
||||||
|
"OPENVIDU_PRO_NETWORK_QUALITY_INTERVAL", 5, "OPENVIDU_PRO_SPEECH_TO_TEXT", "disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chrome");
|
||||||
user.getDriver().findElement(By.id("add-user-btn")).click();
|
user.getDriver().findElement(By.id("add-user-btn")).click();
|
||||||
|
@ -661,7 +670,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Virtual Background test");
|
log.info("Virtual Background test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeVirtualBackgroundFakeVideo");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeVirtualBackgroundFakeVideo");
|
||||||
|
|
||||||
|
@ -787,7 +798,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Service disabled STT test");
|
log.info("Service disabled STT test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -821,7 +834,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Simple transcription STT test");
|
log.info("Simple transcription STT test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
List<String> expectedRecognitionList = Arrays.asList(
|
List<String> expectedRecognitionList = Arrays.asList(
|
||||||
"for example we used to think that after childhood the brain did not really could not change and it turns out that nothing could be farther from the truth",
|
"for example we used to think that after childhood the brain did not really could not change and it turns out that nothing could be farther from the truth",
|
||||||
|
@ -928,7 +943,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Close session STT test");
|
log.info("Close session STT test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -996,7 +1013,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Expected errors STT test");
|
log.info("Expected errors STT test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1080,7 +1099,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("1 session 1 stream 2 subscriptions 1 language STT");
|
log.info("1 session 1 stream 2 subscriptions 1 language STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1152,7 +1173,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("1 session 2 streams 2 subscriptions 1 language STT");
|
log.info("1 session 2 streams 2 subscriptions 1 language STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1223,7 +1246,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("1 session 1 stream 2 subscriptions 2 languages STT");
|
log.info("1 session 1 stream 2 subscriptions 2 languages STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1291,7 +1316,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("1 session 2 streams 2 subscriptions 2 languages STT");
|
log.info("1 session 2 streams 2 subscriptions 2 languages STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1360,7 +1387,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("2 sessions 2 streams 2 subscriptions 1 language STT");
|
log.info("2 sessions 2 streams 2 subscriptions 1 language STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1429,7 +1458,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("4 sessions 4 streams 4 subscriptions 4 languages STT");
|
log.info("4 sessions 4 streams 4 subscriptions 4 languages STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1486,7 +1517,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("COMPOSED recording and STT");
|
log.info("COMPOSED recording and STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1555,7 +1588,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Memory leak STT");
|
log.info("Memory leak STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1615,7 +1650,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Crash service STT test");
|
log.info("Crash service STT test");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
|
||||||
|
@ -1692,12 +1729,14 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("unpublishSttTest")
|
@DisplayName("Unpublish STT Test")
|
||||||
void unpublishSttTest() throws Exception {
|
void unpublishSttTest() throws Exception {
|
||||||
|
|
||||||
log.info("Unpublish STT");
|
log.info("Unpublish STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
user.getDriver().get(APP_URL);
|
user.getDriver().get(APP_URL);
|
||||||
|
@ -1738,12 +1777,14 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("defaultLanguagesSttTest")
|
@DisplayName("Default Languages STT Test")
|
||||||
void defaultLanguagesSttTest() throws Exception {
|
void defaultLanguagesSttTest() throws Exception {
|
||||||
|
|
||||||
log.info("Default languages STT");
|
log.info("Default languages STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, OPENVIDU_PRO_SPEECH_TO_TEXT, "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
user.getDriver().get(APP_URL);
|
user.getDriver().get(APP_URL);
|
||||||
|
@ -1779,6 +1820,49 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
gracefullyLeaveParticipants(user, 1);
|
gracefullyLeaveParticipants(user, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("Custom language STT Test")
|
||||||
|
void customLanguageSttTest() throws Exception {
|
||||||
|
|
||||||
|
log.info("Custom language STT");
|
||||||
|
|
||||||
|
final String CUSTOM_LANG = "vi-VN";
|
||||||
|
|
||||||
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
OPENVIDU_PRO_SPEECH_TO_TEXT, "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand",
|
||||||
|
"OPENVIDU_PRO_SPEECH_TO_TEXT_IMAGE", "openvidu/speech-to-text-custom:master",
|
||||||
|
"OPENVIDU_PRO_DOCKER_REGISTRIES",
|
||||||
|
"[\"serveraddress=docker.io,username=openvidu,password=" + DOCKERHUB_PRIVATE_REGISTRY_PASSWORD + "\"]");
|
||||||
|
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
|
OpenViduTestappUser user = setupBrowserAndConnectToOpenViduTestapp("chromeFakeAudio");
|
||||||
|
user.getDriver().get(APP_URL);
|
||||||
|
user.getDriver().findElement(By.id("add-user-btn")).click();
|
||||||
|
user.getDriver().findElement(By.className("join-btn")).sendKeys(Keys.ENTER);
|
||||||
|
|
||||||
|
user.getEventManager().waitUntilEventReaches(0, "streamCreated", 1);
|
||||||
|
user.getEventManager().waitUntilEventReaches(0, "streamPlaying", 1);
|
||||||
|
|
||||||
|
CountDownLatch latch = new CountDownLatch(1);
|
||||||
|
JsonObject[] ev = new JsonObject[1];
|
||||||
|
user.getEventManager().on("speechToTextMessage", event -> {
|
||||||
|
user.getEventManager().off("speechToTextMessage");
|
||||||
|
ev[0] = event;
|
||||||
|
latch.countDown();
|
||||||
|
});
|
||||||
|
|
||||||
|
sttSubUser(user, 0, 0, CUSTOM_LANG, true, true);
|
||||||
|
|
||||||
|
if (!latch.await(10, TimeUnit.SECONDS)) {
|
||||||
|
fail("Error waiting for speech to text event for lang " + CUSTOM_LANG);
|
||||||
|
}
|
||||||
|
|
||||||
|
Assertions.assertEquals(CUSTOM_LANG, ev[0].get("lang").getAsString());
|
||||||
|
|
||||||
|
gracefullyLeaveParticipants(user, 1);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("REST API STT Test")
|
@DisplayName("REST API STT Test")
|
||||||
void restApiSttTest() throws Exception {
|
void restApiSttTest() throws Exception {
|
||||||
|
@ -1790,13 +1874,19 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
|
|
||||||
// STT disabled
|
// STT disabled
|
||||||
restartOpenViduServerIfNecessary(false, null, "disabled", null);
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"disabled");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
||||||
|
|
||||||
// STT Vosk manual
|
// STT Vosk manual
|
||||||
restartOpenViduServerIfNecessary(false, null, "vosk", "manual");
|
|
||||||
|
config = Map.of("OPENVIDU_PRO_SPEECH_TO_TEXT", "vosk", "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY",
|
||||||
|
"manual");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* POST /openvidu/api/speech-to-text/load ERROR
|
* POST /openvidu/api/speech-to-text/load ERROR
|
||||||
|
@ -1902,7 +1992,8 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_OK);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/unload", body, HttpStatus.SC_OK);
|
||||||
|
|
||||||
// STT Vosk on_demand
|
// STT Vosk on_demand
|
||||||
restartOpenViduServerIfNecessary(false, null, "vosk", "on_demand");
|
config = Map.of("OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "on_demand");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
// 200
|
// 200
|
||||||
body = "{'lang':'en-US', 'mediaNode': {'id': '" + mediaNodeId + "'}}";
|
body = "{'lang':'en-US', 'mediaNode': {'id': '" + mediaNodeId + "'}}";
|
||||||
|
@ -1944,7 +2035,9 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
log.info("Load Unload Model Error STT");
|
log.info("Load Unload Model Error STT");
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "vosk", "manual");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"vosk", "OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY", "manual");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
JsonArray mediaNodes = restClient.rest(HttpMethod.GET, "/openvidu/api/media-nodes", null, HttpStatus.SC_OK)
|
JsonArray mediaNodes = restClient.rest(HttpMethod.GET, "/openvidu/api/media-nodes", null, HttpStatus.SC_OK)
|
||||||
|
@ -2015,7 +2108,10 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "aws", "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT", "aws",
|
||||||
|
"OPENVIDU_PRO_AWS_ACCESS_KEY", "fakekey", "OPENVIDU_PRO_AWS_SECRET_KEY", "fakekey",
|
||||||
|
"OPENVIDU_PRO_AWS_REGION", "fakeregion");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
||||||
|
@ -2041,7 +2137,10 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
|
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
|
|
||||||
restartOpenViduServerIfNecessary(false, null, "azure", "on_demand");
|
Map<String, Object> config = Map.of("OPENVIDU_PRO_NETWORK_QUALITY", false, "OPENVIDU_PRO_SPEECH_TO_TEXT",
|
||||||
|
"azure", "OPENVIDU_PRO_SPEECH_TO_TEXT_AZURE_KEY", "fakekey", "OPENVIDU_PRO_SPEECH_TO_TEXT_AZURE_REGION",
|
||||||
|
"fakeregion");
|
||||||
|
restartOpenViduServerIfNecessary(config);
|
||||||
|
|
||||||
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
String body = "{'lang': 'en-US', 'mediaNode': {'id': 'NOT_EXISTS'}}";
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/speech-to-text/load", body, HttpStatus.SC_NOT_IMPLEMENTED);
|
||||||
|
@ -2060,63 +2159,23 @@ public class OpenViduProTestAppE2eTest extends AbstractOpenViduTestappE2eTest {
|
||||||
gracefullyLeaveParticipants(user, 1);
|
gracefullyLeaveParticipants(user, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void restartOpenViduServerIfNecessary(Boolean wantedNetworkQuality, Integer wantedNetworkQualityInterval,
|
protected void restartOpenViduServerIfNecessary(Map<String, Object> newConfig) {
|
||||||
String wantedSpeechToText, String wantedVoskModelLoadStrategy) {
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
String body = gson.toJson(newConfig);
|
||||||
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
CustomHttpClient restClient = new CustomHttpClient(OPENVIDU_URL, "OPENVIDUAPP", OPENVIDU_SECRET);
|
||||||
JsonObject config = restClient.rest(HttpMethod.GET, "/openvidu/api/config", 200);
|
JsonObject currentConfig = restClient.rest(HttpMethod.GET, "/openvidu/api/config", 200);
|
||||||
|
|
||||||
Boolean currentNetworkQuality = config.get("OPENVIDU_PRO_NETWORK_QUALITY").getAsBoolean();
|
|
||||||
Integer currentNetworkQualityInterval = null;
|
|
||||||
if (config.has("OPENVIDU_PRO_NETWORK_QUALITY_INTERVAL")) {
|
|
||||||
currentNetworkQualityInterval = config.get("OPENVIDU_PRO_NETWORK_QUALITY_INTERVAL").getAsInt();
|
|
||||||
}
|
|
||||||
String currentSpeechToText = config.get("OPENVIDU_PRO_SPEECH_TO_TEXT").getAsString();
|
|
||||||
String currentVoskModelLoadStrategy = null;
|
|
||||||
if (wantedSpeechToText == "vosk" && config.has("OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY")) {
|
|
||||||
currentVoskModelLoadStrategy = config.get("OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY")
|
|
||||||
.getAsString();
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean mustRestart = false;
|
boolean mustRestart = false;
|
||||||
if (wantedNetworkQuality != null && wantedNetworkQuality) {
|
|
||||||
mustRestart = !currentNetworkQuality;
|
for (Entry<String, Object> newProp : newConfig.entrySet()) {
|
||||||
mustRestart = mustRestart || (wantedNetworkQualityInterval != null
|
mustRestart = !currentConfig.has(newProp.getKey())
|
||||||
&& wantedNetworkQualityInterval != currentNetworkQualityInterval);
|
|| !currentConfig.get(newProp.getKey()).equals(gson.toJsonTree(newProp.getValue()));
|
||||||
|
if (mustRestart) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mustRestart = mustRestart
|
|
||||||
|| (wantedSpeechToText != null) && !currentSpeechToText.equals(wantedSpeechToText);
|
|
||||||
mustRestart = mustRestart
|
|
||||||
|| wantedSpeechToText == "vosk" && wantedVoskModelLoadStrategy != currentVoskModelLoadStrategy;
|
|
||||||
|
|
||||||
if (mustRestart) {
|
if (mustRestart) {
|
||||||
String body = "{";
|
|
||||||
if (wantedNetworkQuality != null) {
|
|
||||||
body += "'OPENVIDU_PRO_NETWORK_QUALITY':" + wantedNetworkQuality + ",";
|
|
||||||
}
|
|
||||||
if (wantedNetworkQualityInterval != null) {
|
|
||||||
body += "'OPENVIDU_PRO_NETWORK_QUALITY_INTERVAL':" + wantedNetworkQualityInterval + ",";
|
|
||||||
}
|
|
||||||
if (wantedSpeechToText != null) {
|
|
||||||
body += "'OPENVIDU_PRO_SPEECH_TO_TEXT':'" + wantedSpeechToText + "',";
|
|
||||||
if ("azure".equals(wantedSpeechToText)) {
|
|
||||||
body += "'OPENVIDU_PRO_SPEECH_TO_TEXT_AZURE_KEY':'fakekey',";
|
|
||||||
body += "'OPENVIDU_PRO_SPEECH_TO_TEXT_AZURE_REGION':'fakeregion',";
|
|
||||||
} else if ("aws".equals(wantedSpeechToText)) {
|
|
||||||
body += "'OPENVIDU_PRO_AWS_REGION':'fakeregion',";
|
|
||||||
body += "'OPENVIDU_PRO_AWS_ACCESS_KEY':'fakekey',";
|
|
||||||
body += "'OPENVIDU_PRO_AWS_SECRET_KEY':'fakekey',";
|
|
||||||
} else if ("vosk".equals(wantedSpeechToText)) {
|
|
||||||
if (wantedVoskModelLoadStrategy != null) {
|
|
||||||
body += "'OPENVIDU_PRO_SPEECH_TO_TEXT_VOSK_MODEL_LOAD_STRATEGY':'"
|
|
||||||
+ wantedVoskModelLoadStrategy + "',";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
body = body.endsWith(",") ? body.replaceAll(",$", "") : body;
|
|
||||||
body += "}";
|
|
||||||
restClient.rest(HttpMethod.POST, "/openvidu/api/restart", body, 200);
|
restClient.rest(HttpMethod.POST, "/openvidu/api/restart", body, 200);
|
||||||
waitUntilOpenViduRestarted(60);
|
waitUntilOpenViduRestarted(60);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue