Commit 7a801f33 authored by Sumudu-Himasha-Ranaweera's avatar Sumudu-Himasha-Ranaweera

Merge branch 'IT20251000' of http://gitlab.sliit.lk/tmp-23-029/2023-029 into IT20251000

parents 27c4819e a0b6e641
...@@ -25,6 +25,7 @@ const app = express(); ...@@ -25,6 +25,7 @@ const app = express();
const corsOptions = { const corsOptions = {
origin: 'http://localhost:3000', origin: 'http://localhost:3000',
origin: 'http://localhost:3001',
}; };
app.use(bodyParser.json({ limit: "30mb", extended: true })); app.use(bodyParser.json({ limit: "30mb", extended: true }));
......
2023-05-19 00:32:23,385 - INFO - Received request at root endpoint.
2023-05-19 00:32:23,385 - INFO - Received request at root endpoint.
2023-05-19 00:32:48,522 - ERROR - Received request at root endpoint.
2023-05-19 00:32:48,522 - ERROR - Received request at root endpoint.
2023-05-19 23:09:38,565 - INFO - Failed to make predictions. name 'CLASSES' is not defined
2023-05-19 23:09:38,565 - INFO - Failed to make predictions. name 'CLASSES' is not defined
2023-05-24 20:05:37,932 - INFO - Failed to make predictions. OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
2023-05-24 20:05:37,932 - INFO - Failed to make predictions. OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
2023-05-24 20:05:37,932 - INFO - Failed to make predictions. OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
2023-05-24 20:05:37,936 - INFO - Error.
2023-05-24 20:05:37,936 - INFO - Error.
2023-05-24 20:05:37,936 - INFO - Error.
2023-07-12 05:50:25,202 - INFO - Error. 'SignLanguagePredictionService' object has no attribute 'predict_sign_language_video2'
2023-07-12 05:50:25,202 - INFO - Error. 'SignLanguagePredictionService' object has no attribute 'predict_sign_language_video2'
2023-07-12 05:50:25,202 - INFO - Error. 'SignLanguagePredictionService' object has no attribute 'predict_sign_language_video2'
2023-07-12 06:33:48,435 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:33:48,435 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:33:48,435 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:27,777 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:27,777 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:27,777 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:33,502 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:33,502 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:34:33,502 - INFO - Error. SignLanguagePredictionService.predict_sign_language_video_new2() missing 1 required positional argument: 'speed'
2023-07-12 06:39:07,178 - INFO - Failed to make predictions. local variable 'threshold_percentage' referenced before assignment
2023-07-12 06:39:07,178 - INFO - Failed to make predictions. local variable 'threshold_percentage' referenced before assignment
2023-07-12 06:39:07,178 - INFO - Failed to make predictions. local variable 'threshold_percentage' referenced before assignment
2023-07-12 06:39:07,180 - INFO - Error.
2023-07-12 06:39:07,180 - INFO - Error.
2023-07-12 06:39:07,180 - INFO - Error.
2023-08-03 06:00:41,581 - INFO - Failed to make predictions. [WinError 32] The process cannot access the file because it is being used by another process: 'files/test_video.mp4'
2023-08-03 06:00:41,581 - INFO - Failed to make predictions. [WinError 32] The process cannot access the file because it is being used by another process: 'files/test_video.mp4'
2023-08-03 06:00:41,581 - INFO - Failed to make predictions. [WinError 32] The process cannot access the file because it is being used by another process: 'files/test_video.mp4'
2023-08-03 06:00:41,626 - INFO - Error.
2023-08-03 06:00:41,626 - INFO - Error.
2023-08-03 06:00:41,626 - INFO - Error.
2023-09-02 15:24:16,102 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:16,102 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:16,102 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:16,553 - INFO - Error.
2023-09-02 15:24:16,553 - INFO - Error.
2023-09-02 15:24:16,553 - INFO - Error.
2023-09-02 15:24:53,767 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:53,767 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:53,767 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/E6.mp4'
2023-09-02 15:24:53,768 - INFO - Error.
2023-09-02 15:24:53,768 - INFO - Error.
2023-09-02 15:24:53,768 - INFO - Error.
2023-09-02 15:25:37,381 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/Y2Mate.is - React Native Tutorial for Beginners - Build a React Native App-0-S5a0eXPoc-360p-1657268484983.mp4'
2023-09-02 15:25:37,381 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/Y2Mate.is - React Native Tutorial for Beginners - Build a React Native App-0-S5a0eXPoc-360p-1657268484983.mp4'
2023-09-02 15:25:37,381 - INFO - Failed to make predictions. [Errno 2] No such file or directory: 'files/Y2Mate.is - React Native Tutorial for Beginners - Build a React Native App-0-S5a0eXPoc-360p-1657268484983.mp4'
2023-09-02 15:25:37,384 - INFO - Error.
2023-09-02 15:25:37,384 - INFO - Error.
2023-09-02 15:25:37,384 - INFO - Error.
2023-09-02 18:55:18,412 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/videoplayback.mp4'
2023-09-02 18:55:18,412 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/videoplayback.mp4'
2023-09-02 18:55:18,412 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/videoplayback.mp4'
2023-09-03 03:00:21,346 - INFO - Error. name 'audio_request' is not defined
2023-09-03 03:00:21,346 - INFO - Error. name 'audio_request' is not defined
2023-09-03 03:00:21,346 - INFO - Error. name 'audio_request' is not defined
2023-09-03 03:00:21,346 - INFO - Error. name 'audio_request' is not defined
2023-09-03 03:00:21,346 - INFO - Error. name 'audio_request' is not defined
2023-09-03 04:43:22,666 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:43:22,666 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:43:22,666 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:43:22,666 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:43:22,666 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:43:22,669 - INFO - Error.
2023-09-03 04:43:22,669 - INFO - Error.
2023-09-03 04:43:22,669 - INFO - Error.
2023-09-03 04:43:22,669 - INFO - Error.
2023-09-03 04:43:22,669 - INFO - Error.
2023-09-03 04:49:57,058 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:49:57,058 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:49:57,058 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:49:57,058 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:49:57,058 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:49:57,059 - INFO - Error.
2023-09-03 04:49:57,059 - INFO - Error.
2023-09-03 04:49:57,059 - INFO - Error.
2023-09-03 04:49:57,059 - INFO - Error.
2023-09-03 04:49:57,059 - INFO - Error.
2023-09-03 04:55:20,430 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:55:20,430 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:55:20,430 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:55:20,430 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:55:20,430 - INFO - Failed to make predictions. type object 'dict' has no attribute 'predict'
2023-09-03 04:55:20,740 - INFO - Error.
2023-09-03 04:55:20,740 - INFO - Error.
2023-09-03 04:55:20,740 - INFO - Error.
2023-09-03 04:55:20,740 - INFO - Error.
2023-09-03 04:55:20,740 - INFO - Error.
2023-09-03 05:06:41,091 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:41,091 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:41,091 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:41,091 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:41,091 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:41,093 - INFO - Error.
2023-09-03 05:06:41,093 - INFO - Error.
2023-09-03 05:06:41,093 - INFO - Error.
2023-09-03 05:06:41,093 - INFO - Error.
2023-09-03 05:06:41,093 - INFO - Error.
2023-09-03 05:06:43,311 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:43,311 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:43,311 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:43,311 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:43,311 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:43,313 - INFO - Error.
2023-09-03 05:06:43,313 - INFO - Error.
2023-09-03 05:06:43,313 - INFO - Error.
2023-09-03 05:06:43,313 - INFO - Error.
2023-09-03 05:06:43,313 - INFO - Error.
2023-09-03 05:06:53,621 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:53,621 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:53,621 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:53,621 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:53,621 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:06:53,623 - INFO - Error.
2023-09-03 05:06:53,623 - INFO - Error.
2023-09-03 05:06:53,623 - INFO - Error.
2023-09-03 05:06:53,623 - INFO - Error.
2023-09-03 05:06:53,623 - INFO - Error.
2023-09-03 05:07:04,712 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:07:04,712 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:07:04,712 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:07:04,712 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:07:04,712 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:07:04,714 - INFO - Error.
2023-09-03 05:07:04,714 - INFO - Error.
2023-09-03 05:07:04,714 - INFO - Error.
2023-09-03 05:07:04,714 - INFO - Error.
2023-09-03 05:07:04,714 - INFO - Error.
2023-09-03 05:19:00,190 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:19:00,190 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:19:00,190 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:19:00,190 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:19:00,190 - ERROR - Failed to make predictions. 'SpooledTemporaryFile' object has no attribute 'file'
2023-09-03 05:19:00,196 - INFO - Error.
2023-09-03 05:19:00,196 - INFO - Error.
2023-09-03 05:19:00,196 - INFO - Error.
2023-09-03 05:19:00,196 - INFO - Error.
2023-09-03 05:19:00,196 - INFO - Error.
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:45:44,281 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 11:56:04,494 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:01:05,183 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:02:53,354 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:10:00,371 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:11:35,221 - INFO - Failed to upload file. name 'video' is not defined
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:12:45,404 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-03 12:16:23,545 - INFO - Failed to upload file. [Errno 2] No such file or directory: 'files/emotion/video/yt5s.com-Python for Beginners - Learn Python in 1 Hour(720p)_21.7.41.mp4'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 11:12:15,007 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:20:24,925 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:26:31,754 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:33:25,502 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:37:57,525 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 16:44:54,370 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:16:14,891 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:20:21,692 - INFO - Error. 'EmotionPredictionService' object has no attribute 'predict_emotion_detection_video_new'
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:25:29,787 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() takes 1 positional argument but 2 were given
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:28:49,829 - INFO - Error. EmotionPredictionService.predict_emotion_detection_video_new() got multiple values for argument 'video_request'
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,715 - ERROR - Failed to make predictions. name 'predict_emotion_from_frame' is not defined
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:32:58,726 - INFO - Error.
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,286 - ERROR - Failed to make predictions. name 'cropped_img' is not defined
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-04 19:46:11,290 - INFO - Error.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,433 - ERROR - Failed to make predictions.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:22,751 - INFO - Error.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,780 - ERROR - Failed to make predictions.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:23:30,783 - INFO - Error.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,906 - ERROR - Failed to make predictions.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:25:05,909 - INFO - Error.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,237 - ERROR - Failed to make predictions.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:29:28,238 - INFO - Error.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,568 - ERROR - Failed to make predictions.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:50,571 - INFO - Error.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,845 - ERROR - Failed to make predictions.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 13:30:56,847 - INFO - Error.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,227 - ERROR - Failed to make predictions.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:08,337 - INFO - Error.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,808 - ERROR - Failed to make predictions.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:46:12,811 - INFO - Error.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,677 - ERROR - Failed to make predictions.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:19,681 - INFO - Error.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,483 - ERROR - Failed to make predictions.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 14:48:25,486 - INFO - Error.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:12,869 - ERROR - Failed to make predictions.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
2023-09-06 16:21:13,208 - INFO - Error.
...@@ -37,7 +37,7 @@ async def upload_video(video: UploadFile = File(...)): ...@@ -37,7 +37,7 @@ async def upload_video(video: UploadFile = File(...)):
with open(file_location, "wb") as file: with open(file_location, "wb") as file:
file.write(video.file.read()) file.write(video.file.read())
return {"text": "OK2"} return {"text": "Video Upload Successfully"}
except Exception as e: except Exception as e:
logger.info(f"Failed to upload file. {e}") logger.info(f"Failed to upload file. {e}")
raise HTTPException( raise HTTPException(
......
...@@ -24,6 +24,7 @@ emotion_model.load_weights("../ML_Models/Emotion_Detection_Model/emotion_model.h ...@@ -24,6 +24,7 @@ emotion_model.load_weights("../ML_Models/Emotion_Detection_Model/emotion_model.h
class EmotionPredictionService: class EmotionPredictionService:
def __init__(self, model): def __init__(self, model):
self.model = model self.model = model
self.current_emotion = None
def predict_emotion_detection_video(video_request: UploadFile) -> Dict[str, str]: def predict_emotion_detection_video(video_request: UploadFile) -> Dict[str, str]:
try: try:
...@@ -85,7 +86,26 @@ class EmotionPredictionService: ...@@ -85,7 +86,26 @@ class EmotionPredictionService:
break break
emotions = predict_emotion_from_frame(frame) emotions = predict_emotion_from_frame(frame)
predicted_emotions.extend(emotions) if emotions:
new_emotion = emotions[0] # Assuming you only process one face at a time
cv2.putText(frame, f"Emotion: {new_emotion}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
if new_emotion != self.current_emotion:
self.current_emotion = new_emotion
predicted_emotions.append(new_emotion)
# Display the frame with emotion prediction
cv2.imshow('Emotion Detection', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# while True:
# ret, frame = cap.read()
# if not ret:
# break
# emotions = predict_emotion_from_frame(frame)
# predicted_emotions.extend(emotions)
cap.release() cap.release()
os.remove(video_location) os.remove(video_location)
......
...@@ -6,11 +6,37 @@ import Button from '@mui/material/Button'; ...@@ -6,11 +6,37 @@ import Button from '@mui/material/Button';
import UploadOutlined from '@ant-design/icons/lib/icons/UploadOutlined'; import UploadOutlined from '@ant-design/icons/lib/icons/UploadOutlined';
import AudioOutlined from '@ant-design/icons/lib/icons/AudioOutlined'; import AudioOutlined from '@ant-design/icons/lib/icons/AudioOutlined';
import { Link } from 'react-router-dom';
import { Box, Stack, } from '@mui/material';
import { APP_DEFAULT_PATH } from 'config';
import construction from 'assets/images/maintenance/under-construction.svg';
import {CardContent,IconButton,InputAdornment,Paper,TextField,Typography} from '@mui/material';
import CopyOutlined from '@ant-design/icons/lib/icons/CopyOutlined';
import AudioEmotionDetectService from '../../../../services/AudioEmotionDetection.js';
import { MuiFileInput } from 'mui-file-input';
import { useSnackbar } from 'notistack';
const List = () => { const List = () => {
const [audioBlob, setAudioBlob] = useState<Blob | undefined>(undefined); const [audioBlob, setAudioBlob] = useState<Blob | undefined>(undefined);
const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder | undefined>(undefined); const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder | undefined>(undefined);
const [isRecording, setIsRecording] = useState<boolean>(false); const [isRecording, setIsRecording] = useState<boolean>(false);
const [audioUrl, setAudioUrl] = useState<string | undefined>(undefined); const [audioUrl, setAudioUrl] = useState<string | undefined>(undefined);
const [value, setValue] = useState('');
const [file, setFile] = useState<File | string | null>(null);
const [loading, setLoading] = useState(false);
const [isUploadFile, setIsUploadFile] = useState<boolean | string | null>(true);
const handleDropSingleFile = (files: any) => {
if (files) {
setFile(
Object.assign(files, {
preview: URL.createObjectURL(files)
})
);
setAudioUrl(URL.createObjectURL(files));
}
};
const handleRecordStart = async () => { const handleRecordStart = async () => {
// Clear the uploaded audio state when recording starts // Clear the uploaded audio state when recording starts
...@@ -54,6 +80,53 @@ const List = () => { ...@@ -54,6 +80,53 @@ const List = () => {
// Handle case where uploaded file is not an audio file // Handle case where uploaded file is not an audio file
} }
}; };
const { enqueueSnackbar } = useSnackbar();
const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {
setValue(event.target.value);
};
const onCopy = (text: string) => {
if (text) {
navigator.clipboard.writeText(text);
enqueueSnackbar('Copied!', { variant: 'success' });
}
};
// Audio Upload
const predictEmotionFromAudio = async () => {
console.log("OK75")
console.log(file);
if (file) {
setLoading(true);
const formData = new FormData();
//@ts-ignore
formData.append('audio_request', file, file.name);
try {
const response = await AudioEmotionDetectService.predictEmotionAudio(formData);
if (response.status == 200) {
console.log(response.data);
setValue(response.data.predicted_emotion);
} else {
enqueueSnackbar('Something went Wrong!', { variant: 'error' });
}
setLoading(false);
} catch (error) {
console.log(error);
setLoading(false);
enqueueSnackbar('Something went Wrong!', { variant: 'error' });
}
} else {
enqueueSnackbar('Please select a file.', { variant: 'warning' });
}
};
const checkEmotionUpload = () => {
if (isUploadFile) {
return 'contained';
} else {
return 'outlined';
}
};
return ( return (
<MainCard content={false}> <MainCard content={false}>
...@@ -65,17 +138,20 @@ const List = () => { ...@@ -65,17 +138,20 @@ const List = () => {
<div style={{ textAlign: 'center' }}> <div style={{ textAlign: 'center' }}>
<input <input
type="file" type="file"
accept="audio/*"
onChange={handleUpload} onChange={handleUpload}
style={{ display: 'none' }} style={{ display: 'none' }}
id="audio-upload" id="audio-upload"
/> />
<label htmlFor="audio-upload"> <label htmlFor="audio-upload">
<Button <Button
variant="contained" // variant="contained"
variant={checkEmotionUpload()}
color="primary" color="primary"
component="span" component="span"
startIcon={<UploadOutlined />} startIcon={<UploadOutlined />}
onClick={() => {
setIsUploadFile(true);
}}
> >
Upload Upload
</Button> </Button>
...@@ -88,6 +164,49 @@ const List = () => { ...@@ -88,6 +164,49 @@ const List = () => {
> >
{isRecording ? 'Stop Recording' : 'Record'} {isRecording ? 'Stop Recording' : 'Record'}
</Button> </Button>
<Button
variant="contained"
disabled={loading}
onClick={() => {
predictEmotionFromAudio();
}}
>
Prediction
</Button>
<div>
<Typography variant="overline" sx={{ color: 'text.secondary' }}>
Predict Emotion
</Typography>
<TextField
fullWidth
value={value}
onChange={handleChange}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<IconButton onClick={() => onCopy(value)}>
<CopyOutlined />
</IconButton>
</InputAdornment>
)
}}
/>
</div>
<CardContent>
{/* ! Important */}
{/* @ts-ignore */}
<MuiFileInput value={file} onChange={handleDropSingleFile} inputProps={{ accept: 'audio/*' }} />
<Paper style={{ padding: '20px', marginTop: '15px' }}>
<Typography variant="h5" align="center" gutterBottom>
Preview
</Typography>
<div style={{ marginTop: '20px', textAlign: 'center' }}>
{file ? <video src={audioUrl} width="400" controls /> : <p>No Audio Selected ...</p>}
</div>
</Paper>
</CardContent>
{audioBlob && ( {audioBlob && (
<audio controls> <audio controls>
<source src={URL.createObjectURL(audioBlob)} type="audio/wav" /> <source src={URL.createObjectURL(audioBlob)} type="audio/wav" />
...@@ -106,8 +225,26 @@ const List = () => { ...@@ -106,8 +225,26 @@ const List = () => {
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<h2>3D Avatar</h2> <h2>3D Avatar</h2>
<MainCard> <MainCard>
{/* Content of the second card */} <Grid container spacing={4} direction="column" alignItems="center" justifyContent="center" sx={{ minHeight: '100vh', py: 2 }}>
{/* You can put your 3D avatar components here */} <Grid item xs={12}>
<Box sx={{ width: { xs: 300, sm: 480 } }}>
<img src={construction} alt="mantis" style={{ width: '100%', height: 'auto' }} />
</Box>
</Grid>
<Grid item xs={12}>
<Stack spacing={2} justifyContent="center" alignItems="center">
<Typography align="center" variant="h1">
Under Construction
</Typography>
<Typography color="textSecondary" align="center" sx={{ width: '85%' }}>
Hey! Please check out this site later. We are doing some maintenance on it right now.
</Typography>
<Button component={Link} to={APP_DEFAULT_PATH} variant="contained">
Back To Home
</Button>
</Stack>
</Grid>
</Grid>
</MainCard> </MainCard>
</Grid> </Grid>
</Grid> </Grid>
......
...@@ -5,48 +5,153 @@ import Grid from '@mui/material/Grid'; ...@@ -5,48 +5,153 @@ import Grid from '@mui/material/Grid';
import Button from '@mui/material/Button'; import Button from '@mui/material/Button';
import VideoCameraOutlined from '@ant-design/icons/lib/icons/VideoCameraOutlined'; import VideoCameraOutlined from '@ant-design/icons/lib/icons/VideoCameraOutlined';
import UploadOutlined from '@ant-design/icons/lib/icons/UploadOutlined'; import UploadOutlined from '@ant-design/icons/lib/icons/UploadOutlined';
// import WebcamOutlinedIcon from '@mui/icons-material/WebcamOutlined';
import { Link } from 'react-router-dom';
import { Box, Stack, } from '@mui/material';
import { APP_DEFAULT_PATH } from 'config';
import construction from 'assets/images/maintenance/under-construction.svg';
import {CardContent,IconButton,InputAdornment,Paper,TextField,Typography} from '@mui/material';
import CopyOutlined from '@ant-design/icons/lib/icons/CopyOutlined';
import VideoEmotionDetectService from '../../../../services/VideoEmotionDetection.js';
import { MuiFileInput } from 'mui-file-input';
import { useSnackbar } from 'notistack';
const List = () => { const List = () => {
const [selectedFile, setSelectedFile] = useState<File | null>(null); const [selectedFile, setSelectedFile] = useState<File | null>(null);
const [isLive, setIsLive] = useState(false); const [isLive] = useState(false);
const fileInputRef = useRef<HTMLInputElement | null>(null); const fileInputRef = useRef<HTMLInputElement | null>(null);
const videoRef = useRef<HTMLVideoElement | null>(null); const videoRef = useRef<HTMLVideoElement | null>(null);
const [videoUrl, setVideoUrl] = useState<string | undefined>(undefined);
const [file, setFile] = useState<File | string | null>(null);
const [loading, setLoading] = useState(false);
const [isUploadFile, setIsUploadFile] = useState<boolean | string | null>(true);
const [value, setValue] = useState('');
const [mediaStream, setMediaStream] = useState<MediaStream | null>(null);
const [mediaRecorder, setMediaRecorder] = useState<MediaRecorder | null>(null);
const [chunks, setChunks] = useState<Blob[]>([]);
const [isRecording, setIsRecording] = useState(false);
const { enqueueSnackbar } = useSnackbar();
const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => { const handleDropSingleFile = (files: any) => {
if (event.target.files && event.target.files[0]) { if (files) {
setSelectedFile(event.target.files[0]); setFile(
Object.assign(files, {
preview: URL.createObjectURL(files)
})
);
setVideoUrl(URL.createObjectURL(files));
} }
}; };
const handleUploadButtonClick = () => { const handleFileChange = (event: React.ChangeEvent<HTMLInputElement>) => {
if (fileInputRef.current) { if (event.target.files && event.target.files[0]) {
fileInputRef.current.click(); setSelectedFile(event.target.files[0]);
} }
}; };
const handleLiveButtonClick = async () => { const handleLiveButtonClick = async () => {
try { try {
if (!isRecording) {
const stream = await navigator.mediaDevices.getUserMedia({ video: true }); const stream = await navigator.mediaDevices.getUserMedia({ video: true });
if (videoRef.current) { if (videoRef.current) {
videoRef.current.srcObject = stream; videoRef.current.srcObject = stream;
videoRef.current.play(); // Start playing the live camera feed videoRef.current.play();
const recorder = new MediaRecorder(stream);
recorder.ondataavailable = (event) => {
if (event.data.size > 0) {
setChunks((prevChunks) => [...prevChunks, event.data]);
}
};
setMediaStream(stream);
setMediaRecorder(recorder);
recorder.start();
setIsRecording(true);
}
} else {
if (mediaRecorder) {
mediaRecorder.stop();
if (mediaStream) {
mediaStream.getTracks().forEach((track) => track.stop());
}
setIsRecording(false);
}
} }
setIsLive(true);
} catch (error) { } catch (error) {
console.error('Error accessing camera:', error); console.error('Error accessing camera:', error);
} }
}; };
const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {
setValue(event.target.value);
};
const onCopy = (text: string) => {
if (text) {
navigator.clipboard.writeText(text);
enqueueSnackbar('Copied!', { variant: 'success' });
}
};
const predictEmotionFromVideo = async () => {
console.log("OK75")
console.log(file);
if (file) {
setLoading(true);
const formData = new FormData();
//@ts-ignore
formData.append('video_request', file, file.name);
try {
const response = await VideoEmotionDetectService.predictEmotionVideo(formData);
if (response.status == 200) {
console.log(response.data);
setValue(response.data.predicted_emotions);
} else {
enqueueSnackbar('Something went Wrong!', { variant: 'error' });
}
setLoading(false);
} catch (error) {
console.log(error);
setLoading(false);
enqueueSnackbar('Something went Wrong!', { variant: 'error' });
}
} else {
enqueueSnackbar('Please select a file.', { variant: 'warning' });
}
};
const checkEmotionUpload = () => {
if (isUploadFile) {
return 'contained';
} else {
return 'outlined';
}
};
const createDownloadableVideo = () => {
if (chunks.length === 0) {
return;
}
const blob = new Blob(chunks, { type: 'video/webm' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'recorded-video.webm';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
};
return ( return (
<MainCard content={false}> <MainCard content={false}>
<ScrollX> <ScrollX>
<Grid container spacing={2}> <Grid container spacing={2}>
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<h2>Upload or Live</h2> <h2>Upload or Record</h2>
<MainCard> <MainCard>
<div style={{ textAlign: 'center' }}> <div style={{ textAlign: 'center' }}>
...@@ -73,30 +178,115 @@ const List = () => { ...@@ -73,30 +178,115 @@ const List = () => {
/> />
) )
)} )}
<Typography variant="overline" sx={{ color: 'text.secondary' }}>
Predict Emotion
</Typography>
<TextField
fullWidth
value={value}
onChange={handleChange}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<IconButton onClick={() => onCopy(value)}>
<CopyOutlined />
</IconButton>
</InputAdornment>
)
}}
/>
</div>
<CardContent>
{/* ! Important */}
{/* @ts-ignore */}
<MuiFileInput value={file} onChange={handleDropSingleFile} inputProps={{ accept: 'video/*' }} />
<Paper style={{ padding: '20px', marginTop: '15px' }}>
<Typography variant="h5" align="center" gutterBottom>
Preview
</Typography>
<div style={{ marginTop: '20px', textAlign: 'center' }}>
{file ? <video src={videoUrl} width="400" controls /> : <p>No Video Selected ...</p>}
</div>
</Paper>
</CardContent>
<Button <Button
variant="contained" // variant="contained"
variant={checkEmotionUpload()}
color="primary" color="primary"
component="span"
startIcon={<UploadOutlined />} startIcon={<UploadOutlined />}
onClick={handleUploadButtonClick} onClick={() => {
setIsUploadFile(true);
}}
> >
Upload Upload
</Button> </Button>
<Button
variant="contained"
disabled={loading}
onClick={() => {
predictEmotionFromVideo();
}}
>
Prediction
</Button>
<Button <Button
variant="contained" variant="contained"
color="primary" color="primary"
startIcon={<VideoCameraOutlined />} startIcon={<VideoCameraOutlined />}
onClick={handleLiveButtonClick} onClick={handleLiveButtonClick}
> >
Live {isRecording ? 'Stop Recording' : 'Record'}
</Button> </Button>
{isRecording && (
<Button
variant="contained"
color="secondary"
onClick={createDownloadableVideo}
>
Download
</Button>
)}
<div>
<video
ref={videoRef}
autoPlay
playsInline
width="100%"
src={isRecording ? undefined : videoUrl} // Use videoUrl only when not recording
/>
</div> </div>
</MainCard> </MainCard>
</Grid> </Grid>
<Grid item xs={12} md={6}> <Grid item xs={12} md={6}>
<h2>3D Avatar</h2> <h2>3D Avatar</h2>
<MainCard> <MainCard>
{/* Content of the second card */} <Grid container spacing={4} direction="column" alignItems="center" justifyContent="center" sx={{ minHeight: '100vh', py: 2 }}>
{/* You can put your 3D avatar components here */} <Grid item xs={12}>
<Box sx={{ width: { xs: 300, sm: 480 } }}>
<img src={construction} alt="mantis" style={{ width: '100%', height: 'auto' }} />
</Box>
</Grid>
<Grid item xs={12}>
<Stack spacing={2} justifyContent="center" alignItems="center">
<Typography align="center" variant="h1">
Under Construction
</Typography>
<Typography color="textSecondary" align="center" sx={{ width: '85%' }}>
Hey! Please check out this site later. We are doing some maintenance on it right now.
</Typography>
<Button component={Link} to={APP_DEFAULT_PATH} variant="contained">
Back To Home
</Button>
</Stack>
</Grid>
</Grid>
</MainCard> </MainCard>
</Grid> </Grid>
</Grid> </Grid>
......
// material-ui // material-ui
import { Grid, Typography } from '@mui/material';
// project import // project import
import MainCard from 'components/MainCard';
import Animation from './Animation';
// assets
import test1 from 'assets/images/test1.svg';
import test2 from 'assets/images/test2.svg';
import test3 from 'assets/images/test3.svg';
import test4 from 'assets/images/test4.svg';
import test5 from 'assets/images/test5.svg';
import test6 from 'assets/images/test6.svg';
import { useNavigate } from 'react-router';
// ==============================|| Dashboard ||============================== // // ==============================|| Dashboard ||============================== //
const Dashboard = () => { const Dashboard = () => {
let navigate = useNavigate()
return ( return (
<> <>
<Grid container alignItems="center" justifyContent="center" spacing={2} sx={{ mt: 3 }}>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/user-management/list`) }}>
<Grid item xs={12}>
<img src={test1} alt="feature" style={{ width: "48px" }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
User Management
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Sign Connect Plus offers comprehensive user management features, empowering administrators to efficiently oversee system users, control access, and maintain security.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/member-management/list`) }}>
<Grid item xs={12}>
<img src={test6} alt="feature" style={{ width: "48px", height: '49px' }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
Member Management
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Simplify member administration with Sign Connect Plus, allowing system users to effortlessly manage user accounts, permissions, and profiles.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/learning-management/dashboard`) }}>
<Grid item xs={12}>
<img src={test5} alt="feature" style={{ width: "48px", height: '49px' }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
Learning Management
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Sign Connect Plus: Streamline sign language learning with courses, interactive tasks, leaderboards, and feedback for an engaging educational experience.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/ssl-translate/process`) }}>
<Grid item xs={12}>
<img src={test4} alt="feature" style={{ width: "48px", height: '49px' }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
SSL Translation
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Ensure secure communication with Sign Connect Plus' reliable SSL translation services, which seamlessly convert sign language gestures into readable text and voice, guaranteeing data privacy and integrity.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/video-to-sign-language/VideoTranslate`) }}>
<Grid item xs={12}>
<img src={test3} alt="feature" style={{ width: "48px", height: '49px' }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
Sign Language Translate
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Experience seamless text-to-sign language translation with Sign Connect Plus, utilizing advanced 3D avatars to transform written content and spoken words into expressive sign language gestures through video and text.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
<Grid item xs={12} sm={6} md={4}>
<Animation
variants={{
// hidden: { opacity: 0, translateY: 550 },
visible: { opacity: 1, translateY: 0 }
}}
>
<MainCard contentSX={{ p: 3 }} >
<Grid container spacing={1} sx={{ cursor: "pointer" }} onClick={() => { navigate(`/emotion-detection/audio-detection`) }}>
<Grid item xs={12}>
<img src={test2} alt="feature" style={{ width: "48px", height: '49px' }} />
</Grid>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600, mt: 2 }}>
Emotion Detection
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
Leverage cutting-edge algorithms in Sign Connect Plus to accurately detect emotions from video, voice, and images, enabling a deeper understanding of emotional states and facilitating more effective communication.
</Typography>
</Grid>
</Grid>
</MainCard>
</Animation>
</Grid>
</Grid>
</> </>
); );
} }
......
// material-ui // material-ui
import { Grid, Rating, Typography } from '@mui/material';
// third-party // third-party
import Slider from 'react-slick';
// project import // project import
import Avatar from 'components/@extended/Avatar';
import MainCard from 'components/MainCard'; import MainCard from 'components/MainCard';
import ScrollX from 'components/ScrollX';
// assets // assets
import imgfeature1 from 'assets/images/landing/img-user1.svg';
//types //types
// ================================|| TESTIMONIAL - ITEMS ||================================ //
interface Props {
item: { image: string; title: string; review: string; rating: number; client: string };
}
const Item = ({ item }: Props) => (
<MainCard sx={{ mx: 2 }} contentSX={{ p: 3 }}>
<Grid container spacing={1}>
<Grid item>
<Avatar src={item.image} alt="feature" />
</Grid>
<Grid item sm zeroMinWidth>
<Grid container spacing={1}>
<Grid item xs={12}>
<Typography variant="h5" sx={{ fontWeight: 600 }}>
{item.title}
</Typography>
<Rating name="read-only" readOnly value={item.rating} size="small" precision={0.5} />
</Grid>
<Grid item xs={12}>
<Typography variant="body1" color="secondary">
{item.review}
</Typography>
</Grid>
<Grid item xs={12}>
<Typography variant="subtitle2">{item.client}</Typography>
</Grid>
</Grid>
</Grid>
</Grid>
</MainCard>
);
// ==============================|| List ||============================== // // ==============================|| List ||============================== //
const List = () => { const List = () => {
const settings = {
autoplay: true,
arrows: false,
dots: false,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1
};
const items = [
{
image: imgfeature1,
title: 'Design Quality',
review:
'One of the better themes Ive used. Beautiful and clean design. Also included a NextJS project which is pretty rare in what Ive seen on MUI templates. Ultimately it didnt work out for my specific use case, but this is a well organized theme. Definitely keeping it in mind for future projects.',
rating: 5,
client: 'William S.'
},
{
image: imgfeature1,
title: 'Customizability',
review:
'Excellent design, you can use in a new project or include in your current project. Multiple components for any use. Good code quality. Great customer service and support.',
rating: 5,
client: 'Rodrigo J.'
},
{
image: imgfeature1,
title: 'Design Quality',
review: 'there is no mistake, great design and organized code, thank you ...',
rating: 4,
client: 'Yang Z.'
},
{
image: imgfeature1,
title: 'Code Quality',
review:
'Fantastic design and good code quality. Its a great starting point for any new project. They provide plenty of premade components, page views, and authentication options. Definitely the best Ive found for Material UI in Typescript',
rating: 5,
client: 'Felipe F.'
},
{
image: imgfeature1,
title: 'Code Quality ',
review:
'Great template. Very well written code and good structure. Very customizable and tons of nice components. Good documentation. Team is very responsive too.',
rating: 5,
client: 'Besart M.'
},
{
image: imgfeature1,
title: 'Code Quality',
review:
'We are just getting started with this new theme, but we liked it enough that we decided to import our application into this codebase rather than the other way around. Impressive number of custom components and original work VS some other themes that seem to just be repackaged versions of Material UI.',
rating: 5,
client: 'Oxbird'
}
];
return ( return (
<MainCard content={false}> <Grid container spacing={2}>
<ScrollX> <Grid item lg={12} md={12} xs={12} sx={{ '& .slick-list': { overflow: 'visible' } }}>
</ScrollX> <Slider {...settings}>
</MainCard> {items.map((item, index) => (
<Item key={index} item={item} />
))}
</Slider>
</Grid>
<Grid item md={12}>
</Grid>
</Grid>
) )
} }
......
import axios from 'axios';
class SignLanguageToTextService {
predictSignLanguageVideo(speed, data) {
return axios.post(
`http://127.0.0.1:8000/predict-sign-language/video/speed_levels?speed=${speed}`,
data
);
}
}
export default new SignLanguageToTextService();
import axios from 'axios';
class VideoToSignLanguage {
videoTranslation(data) {
return axios.post(
// @ts-ignore
`http://127.0.0.1:8000/translated_items/`,
data
);
}
}
export default new VideoToSignLanguage();
...@@ -38,7 +38,7 @@ const LearningCurriculums = Loadable(lazy(() => import('pages/learning-managemen ...@@ -38,7 +38,7 @@ const LearningCurriculums = Loadable(lazy(() => import('pages/learning-managemen
const LearningCurriculumsSubscribed = Loadable(lazy(() => import('pages/learning-management/learning-curriculums-subscribed/list/list'))); const LearningCurriculumsSubscribed = Loadable(lazy(() => import('pages/learning-management/learning-curriculums-subscribed/list/list')));
const LearningCurriculumsSubscribedTutorial = Loadable(lazy(() => import('pages/learning-management/learning-curriculums-subscribed/tutorial/tutorial'))); const LearningCurriculumsSubscribedTutorial = Loadable(lazy(() => import('pages/learning-management/learning-curriculums-subscribed/tutorial/tutorial')));
// const LearningLeadBoard = Loadable(lazy(() => import('pages/learning-management/learning-lead-board/list/list'))); // const LearningLeadBoard = Loadable(lazy(() => import('pages/learning-management/learning-lead-board/list/list')));
// const LearningFeedBack = Loadable(lazy(() => import('pages/learning-management/learning-feedback/list/list'))); const LearningFeedBack = Loadable(lazy(() => import('pages/learning-management/learning-feedback/list/list')));
// render - parameter curriculum management page // render - parameter curriculum management page
const CurriculumManagementList = Loadable(lazy(() => import('pages/parameter/curriculum-management/list/list'))); const CurriculumManagementList = Loadable(lazy(() => import('pages/parameter/curriculum-management/list/list')));
...@@ -173,7 +173,7 @@ const MainRoutes = { ...@@ -173,7 +173,7 @@ const MainRoutes = {
}, },
{ {
path: 'feedback', path: 'feedback',
element: <MaintenanceUnderConstruction /> element: <LearningFeedBack />
} }
] ]
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment