Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2020-077
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2020-077
2020-077
Commits
089f62ce
Commit
089f62ce
authored
Jan 09, 2021
by
Manoj Kumar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.sliit.lk/2020_077/2020_077
parents
415fabce
98b99872
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
322 additions
and
186 deletions
+322
-186
.gitignore
.gitignore
+1
-0
api.py
api.py
+33
-81
reveng/firebaseConfig.py
reveng/firebaseConfig.py
+7
-2
reveng/gifMaker.py
reveng/gifMaker.py
+36
-15
reveng/processInput.py
reveng/processInput.py
+31
-2
static/js/chatbot.js
static/js/chatbot.js
+0
-0
static/styles/chatbot-test.css
static/styles/chatbot-test.css
+104
-0
templates/chatbot.html
templates/chatbot.html
+1
-1
templates/homePage.html
templates/homePage.html
+1
-1
templates/signToText.html
templates/signToText.html
+10
-2
templates/textToSign.html
templates/textToSign.html
+89
-78
translation/trans.py
translation/trans.py
+9
-4
No files found.
.gitignore
View file @
089f62ce
...
@@ -20,3 +20,4 @@ dataq/mask_rcnn_coco.h5
...
@@ -20,3 +20,4 @@ dataq/mask_rcnn_coco.h5
/reveng/output
/reveng/output
*.pyc
*.pyc
dataq/utils.zip
dataq/utils.zip
/static/output
api.py
View file @
089f62ce
from
werkzeug.utils
import
secure_filename
import
requests
import
shutil
import
shutil
from
flask
import
send_file
from
flask
import
send_file
from
reveng.processInput
import
checkCommon
,
processInput
from
reveng.processInput
import
checkCommon
,
processInput
from
flask
import
url_for
,
flash
,
Flask
,
render_template
,
request
,
redirect
from
flask
import
url_for
,
flash
,
Flask
,
render_template
,
request
,
redirect
import
json
import
json
import
sys
import
sys
import
os
import
os
from
flask_cors
import
CORS
,
cross_origin
REVENG_DIR
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
REVENG_DIR
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
TEMPLATE
=
os
.
path
.
join
(
REVENG_DIR
,
"
\\
templates"
)
TEMPLATE
=
os
.
path
.
join
(
REVENG_DIR
,
"
\\
templates"
)
...
@@ -12,6 +16,7 @@ STATIC = os.path.join(REVENG_DIR, "\\static")
...
@@ -12,6 +16,7 @@ STATIC = os.path.join(REVENG_DIR, "\\static")
app
=
Flask
(
__name__
)
app
=
Flask
(
__name__
)
app
.
config
[
"DEBUG"
]
=
True
app
.
config
[
"DEBUG"
]
=
True
cors
=
CORS
(
app
)
@
app
.
route
(
'/test'
,
methods
=
[
'GET'
])
@
app
.
route
(
'/test'
,
methods
=
[
'GET'
])
...
@@ -19,7 +24,6 @@ def testApi():
...
@@ -19,7 +24,6 @@ def testApi():
return
"<h1>The API is working</h1>"
return
"<h1>The API is working</h1>"
# DATAQ
# DATAQ
# route to redirect Home page
# route to redirect Home page
...
@@ -31,41 +35,47 @@ def home():
...
@@ -31,41 +35,47 @@ def home():
@
app
.
route
(
'/cam'
)
@
app
.
route
(
'/cam'
)
def
openCam
():
def
openCam
():
os
.
system
(
'python dataq
\
detect.py'
)
os
.
system
(
'python dataq
\
detect.py'
)
# END DATAQ
# END DATAQ
# route to redirect About Us page
# route to redirect About Us page
@
app
.
route
(
'/about'
)
@
app
.
route
(
'/about'
)
def
about
():
def
about
():
return
render_template
(
'about.html'
)
return
render_template
(
'about.html'
)
import
requests
# route to redirect Sign Translation page
@
app
.
route
(
'/signToText'
)
def
signToTextEngine
():
return
render_template
(
'signToText.html'
)
# route to redirect Text Translation page
@
app
.
route
(
'/tts'
)
def
textToSignEngine
():
return
render_template
(
'textToSign.html'
)
# route to display GIF image to the user
# route to display GIF image to the user
@
app
.
route
(
'/tts/
response/'
,
methods
=
[
'GE
T'
])
@
app
.
route
(
'/tts/
get/<msg>'
,
methods
=
[
'GET'
,
'POS
T'
])
def
response
():
def
response
(
msg
):
clearoutputfolder
()
clearoutputfolder
()
message
=
request
.
get_json
()
# message = request.get_json()
responseGIF
=
processInput
(
message
[
'message'
])
# responseGIF = processInput(message['message'])
#print("ithaya none endu soninga?",responseGIF)
print
(
msg
)
# URL = 'http://localhost:3000/tts/upload'
# PARAMS = {
responseGIF
=
processInput
(
msg
)
# "files":{
# response = {
# "file":{
# "gifPath": responseGIF
# "filename":responseGIF
# }
# }
# }
# }
# requests.post(URL,PARAMS
)
clearoutputfolder
(
)
print
(
responseGIF
)
return
responseGIF
return
send_file
(
responseGIF
,
mimetype
=
'image/gif'
)
#
return send_file(responseGIF, mimetype='image/gif')
# clear the OUTPUT folder after displaying the GIF image
# clear the OUTPUT folder after displaying the GIF image
def
clearoutputfolder
():
def
clearoutputfolder
():
folder
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'
reveng
\
output'
)
folder
=
os
.
path
.
join
(
os
.
path
.
dirname
(
__file__
),
'
static
\
output'
)
for
filename
in
os
.
listdir
(
folder
):
for
filename
in
os
.
listdir
(
folder
):
file_path
=
os
.
path
.
join
(
folder
,
filename
)
file_path
=
os
.
path
.
join
(
folder
,
filename
)
try
:
try
:
...
@@ -76,71 +86,13 @@ def clearoutputfolder():
...
@@ -76,71 +86,13 @@ def clearoutputfolder():
except
Exception
as
e
:
except
Exception
as
e
:
print
(
'Failed to delete
%
s. Reason:
%
s'
%
(
file_path
,
e
))
print
(
'Failed to delete
%
s. Reason:
%
s'
%
(
file_path
,
e
))
from
werkzeug.utils
import
secure_filename
## upload image
UPLOAD_FOLDER
=
'static/uploads/'
app
.
secret_key
=
"secret key"
app
.
config
[
'UPLOAD_FOLDER'
]
=
UPLOAD_FOLDER
app
.
config
[
'MAX_CONTENT_LENGTH'
]
=
16
*
1024
*
1024
@
app
.
route
(
'/tts/upload'
,
methods
=
[
'POST'
])
def
upload_image
():
if
'file'
not
in
request
.
files
:
flash
(
'No file part'
)
return
redirect
(
request
.
url
)
file
=
request
.
files
[
'file'
]
if
file
.
filename
==
''
:
flash
(
'No image selected for uploading'
)
return
redirect
(
request
.
url
)
if
file
and
allowed_file
(
file
.
filename
):
filename
=
secure_filename
(
file
.
filename
)
file
.
save
(
os
.
path
.
join
(
app
.
config
[
'UPLOAD_FOLDER'
],
filename
))
flash
(
'Image successfully uploaded and displayed'
)
return
render_template
(
'upload.html'
,
filename
=
filename
)
else
:
flash
(
'Allowed image types are -> png, jpg, jpeg, gif'
)
return
redirect
(
request
.
url
)
@
app
.
route
(
'/tts/display/<filename>'
)
def
display_image
(
filename
):
###
# This method is used display the uploaded file back to the user
# @return display the file in the interface
###
return
redirect
(
url_for
(
'static'
,
filename
=
'uploads/'
+
filename
),
code
=
301
)
ALLOWED_EXTENSIONS
=
set
([
'png'
,
'jpg'
,
'jpeg'
,
'gif'
])
def
allowed_file
(
filename
):
###
# This method is used check the extension of selected file
# @return the extension to check whether it is allowed
###
return
'.'
in
filename
and
filename
.
rsplit
(
'.'
,
1
)[
1
]
.
lower
()
in
ALLOWED_EXTENSIONS
# route to redirect Sign Translation page
@
app
.
route
(
'/tts'
)
def
textToSignEngine
():
return
render_template
(
'textToSign.html'
)
# route to redirect Contact Us page
# route to redirect Contact Us page
@
app
.
route
(
'/contact'
)
@
app
.
route
(
'/contact
Us
'
)
def
contactUs
():
def
contactUs
():
return
render_template
(
'contactUs.html'
)
return
render_template
(
'contactUs.html'
)
# for testing purpose
@
app
.
route
(
'/signToText'
)
def
signToTextEngine
():
return
render_template
(
'signToText.html'
)
host
=
"localhost"
host
=
"localhost"
app
.
run
(
host
=
host
,
port
=
3000
)
app
.
run
(
host
=
host
,
port
=
3000
)
...
...
reveng/firebaseConfig.py
View file @
089f62ce
###
###
# This file is used to create firbase configuration for the application
# This file is used to create firbase configuration for the application
# Each application has unique firbase configuration.
# Each application has unique firbase configuration.
# @author Amashi Bastiansz | IT17143950
# @author Amashi Bastiansz | IT17143950
# @version 1.0
# @version 1.0
# @since 2020-08-13
# @since 2020-08-13
###
###
import
json
import
json
...
@@ -54,3 +54,8 @@ def getStorageInstance():
...
@@ -54,3 +54,8 @@ def getStorageInstance():
###
###
return
store
return
store
def
getStorageBucket
():
return
bucket
reveng/gifMaker.py
View file @
089f62ce
###
###
# This file is used to:
# This file is used to:
# generate a GIF image
# generate a GIF image
# send the generated GIF to the folder
# send the generated GIF to the folder
# delete the GIF from cache
# delete the GIF from cache
# @author Amashi Bastiansz | IT17143950
# @author Amashi Bastiansz | IT17143950
# @version 1.5
# @version 1.5
# @since 2020-10-01
# @since 2020-10-01
###
###
import
imageio
import
imageio
...
@@ -16,41 +16,62 @@ import random
...
@@ -16,41 +16,62 @@ import random
import
cv2
import
cv2
import
PIL.Image
as
pigm
import
PIL.Image
as
pigm
import
PIL.GifImagePlugin
as
gifHandler
import
PIL.GifImagePlugin
as
gifHandler
from
gcloud.storage.blob
import
Blob
from
reveng.firebaseConfig
import
getStorageInstance
,
getStorageBucket
PATH
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
PATH
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
gifName
=
''
.
join
(
random
.
choices
(
string
.
ascii_uppercase
+
string
.
digits
,
k
=
15
))
STATIC_PATH
=
os
.
getcwd
()
+
"
\\
static"
STATIC_PATH
=
os
.
getcwd
()
+
'
\\
static'
Blob
.
generate_signed_url
store
=
getStorageInstance
()
bucket
=
getStorageBucket
()
def
generateGIF
(
images
):
def
generateGIF
(
images
):
###
###
# This method is used to generate a path for the created GIF image
# This method is used to generate a path for the created GIF image
# @return the generated GIF path
# @return the generated GIF path
###
###
gifPath
=
os
.
path
.
join
(
PATH
+
"
\\
output
\\
"
+
gifName
+
'.gif'
)
gifName
=
''
.
join
(
random
.
choices
(
string
.
ascii_uppercase
+
string
.
digits
,
k
=
15
))
blob
=
''
gifPath
=
''
blob
=
bucket
.
blob
(
"output/"
+
gifName
+
".gif"
)
gifPath
=
STATIC_PATH
+
"
\\
output
\\
"
+
gifName
+
".gif"
imageio
.
mimwrite
(
gifPath
,
images
,
duration
=
0.5
)
imageio
.
mimwrite
(
gifPath
,
images
,
duration
=
0.5
)
print
(
gifPath
)
return
gifPath
with
open
(
gifPath
,
'rb'
)
as
gifImage
:
blob
.
upload_from_file
(
gifImage
)
blob
.
make_public
()
response
=
{
"gifName"
:
gifName
,
"gifLocalPath"
:
gifPath
,
"gifPublicUrl"
:
blob
.
public_url
}
return
response
def
sendGIF
():
def
sendGIF
():
###
###
# This method is used to send the generated GIF to the exact folder to store it
# This method is used to send the generated GIF to the exact folder to store it
###
###
x
=
imageio
.
mimread
(
os
.
path
.
join
(
PATH
+
"
\\
output
\\
"
+
gifName
+
'.gif'
))
x
=
imageio
.
mimread
(
os
.
path
.
join
(
PATH
+
"
\\
output
\\
"
+
gifName
+
'.gif'
))
return
x
return
x
def
deleteFromCache
():
def
deleteFromCache
():
###
###
# This method is used to delete the generated GIF from cache after uploading it to
# This method is used to delete the generated GIF from cache after uploading it to
# the exact project folder
# the exact project folder
# @return call to generateGIF() method with selected hand images
# @return call to generateGIF() method with selected hand images
###
###
os
.
remove
(
os
.
path
.
join
(
PATH
+
"
\\
output
\\
"
+
gifName
+
'.gif'
))
os
.
remove
(
os
.
path
.
join
(
PATH
+
"
\\
output
\\
"
+
gifName
+
'.gif'
))
reveng/processInput.py
View file @
089f62ce
...
@@ -123,6 +123,35 @@ def processInput(message):
...
@@ -123,6 +123,35 @@ def processInput(message):
sendingToGIF
.
append
(
img
)
sendingToGIF
.
append
(
img
)
return
generateGIF
(
sendingToGIF
)
return
generateGIF
(
sendingToGIF
)
else
:
else
:
print
(
"this is a word"
)
if
checkInCommonWord
(
message
):
if
checkInCommonWord
(
message
):
return
processCommonWord
(
message
)
return
processCommonSentence
(
message
)
else
:
imageArray
=
[]
sendingToGIF
=
[]
images
=
store
.
child
()
.
list_files
()
for
i
in
images
:
for
item
in
message
.
split
(
" "
):
if
checkInCommonWord
(
item
):
if
i
.
name
.
startswith
(
item
):
print
(
"image name ="
+
i
.
name
)
imageArray
.
append
(
i
)
break
else
:
for
letter
in
list
(
item
):
print
(
"Length "
,
len
(
i
.
name
))
if
i
.
name
.
startswith
(
letter
)
and
len
(
i
.
name
)
<
8
:
print
(
"image name ="
+
i
.
name
)
imageArray
.
append
(
i
)
break
for
i
in
imageArray
:
url
=
i
.
generate_signed_url
(
datetime
.
timedelta
(
300
),
method
=
'GET'
)
response
=
requests
.
get
(
url
)
imagesfromFirebase
=
io
.
BytesIO
(
response
.
content
)
img
=
pigm
.
open
(
imagesfromFirebase
)
sendingToGIF
.
append
(
img
)
return
generateGIF
(
sendingToGIF
)
static/js/chatbot.js
0 → 100644
View file @
089f62ce
static/styles/chatbot-test.css
0 → 100644
View file @
089f62ce
*
{
margin
:
0
;
padding
:
0
;
border
:
0
;
outline
:
0
;
}
.chat
{
width
:
300px
;
height
:
500px
;
background-image
:
url("http://cdn9.staztic.com/app/a/2063/2063481/whatsapp-wallpaper-pack-hd-600519-0-s-156x156.jpg")
;
background-size
:
cover
;
background-position
:
center
center
;
position
:
absolute
;
border
:
5px
solid
#000
;
border-radius
:
20px
;
overflow
:
hidden
;
box-shadow
:
0
0
20px
#000
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
margin
:
auto
;
box-sizing
:
border-box
;
}
.chat
.messages
{
position
:
absolute
;
left
:
0
;
bottom
:
60px
;
height
:
auto
;
width
:
100%
;
}
.chat
.messages
.message
{
padding
:
20px
10px
;
width
:
100%
;
box-sizing
:
border-box
;
}
.chat
.messages
.message
.you
,
.chat
.messages
.message
.bot
{
border-radius
:
10px
;
padding
:
10px
;
width
:
75%
;
position
:
relative
;
}
.chat
.messages
.message
.you
img
,
.chat
.messages
.message
.bot
img
{
width
:
100%
;
border-radius
:
10px
;
display
:
block
;
}
.chat
.messages
.message
.you
:before
,
.chat
.messages
.message
.bot
:before
{
padding
:
5px
;
border-radius
:
5px
;
position
:
absolute
;
top
:
-15px
;
font-weight
:
bold
;
color
:
#fff
;
font-size
:
12px
;
}
.chat
.messages
.message
.you
{
background
:
#2ecc71
;
float
:
right
;
}
.chat
.messages
.message
.you
:before
{
content
:
"You:"
;
background-color
:
#2ecc71
;
right
:
10px
;
}
.chat
.messages
.message
.bot
{
background-color
:
#3498db
;
float
:
left
;
}
.chat
.messages
.message
.bot
:before
{
content
:
"Bot:"
;
background-color
:
#3498db
;
left
:
10px
;
}
.chat
.messages
.message
:after
{
content
:
""
;
clear
:
both
;
display
:
table
;
}
.chat
.input
{
position
:
absolute
;
left
:
0
;
bottom
:
0
;
height
:
60px
;
width
:
100%
;
background
:
#ecf0f1
;
}
.chat
.input
.text
{
background-color
:
#fff
;
border-radius
:
20px
;
height
:
40px
;
position
:
absolute
;
top
:
10px
;
left
:
10px
;
width
:
270px
;
box-shadow
:
inset
0
0
5px
#aaa
;
line-height
:
40px
;
padding
:
0
20px
;
box-sizing
:
border-box
;
}
templates/chatbot.html
View file @
089f62ce
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<div
class=
"messages"
>
<div
class=
"messages"
>
<div
class=
"message"
>
<div
class=
"message"
>
<div
class=
"bot"
>
<div
class=
"bot"
>
Type something with "gif me funny cat" to see what happens ;)
Send something like "good morning " or "sorry"
</div>
</div>
</div>
</div>
</div>
</div>
...
...
templates/homePage.html
View file @
089f62ce
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
<a
class=
"dropdown-item"
href=
"tts"
>
English to SSL Translator
</a>
<a
class=
"dropdown-item"
href=
"tts"
>
English to SSL Translator
</a>
</div>
</div>
</li>
</li>
<li
class=
"nav-item
active
"
>
<li
class=
"nav-item"
>
<a
class=
"nav-link"
href=
"contactUs"
>
Contact Us
</a>
<a
class=
"nav-link"
href=
"contactUs"
>
Contact Us
</a>
</li>
</li>
</ul>
</ul>
...
...
templates/signToText.html
View file @
089f62ce
...
@@ -39,7 +39,15 @@
...
@@ -39,7 +39,15 @@
<!--Favicon-->
<!--Favicon-->
<link
rel=
"shortcut icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"shortcut icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<script>
function
goPython
(){
$
.
ajax
({
url
:
""
}).
done
(
function
()
{
alert
(
'
finished python script
'
);;
});
}
</script>
</head>
</head>
<body>
<body>
...
@@ -107,7 +115,7 @@
...
@@ -107,7 +115,7 @@
<div
class=
"col-12"
>
<div
class=
"col-12"
>
<form
id=
"cameraForm"
class=
"justify-content-center"
>
<form
id=
"cameraForm"
class=
"justify-content-center"
>
<div
class=
"text-center"
>
<div
class=
"text-center"
>
<button
type=
"submit"
class=
"btn btn-primary mb-2"
id=
"userButtonInput"
style=
"height: 75%;"
>
Open My Webcamera
</button>
<button
type=
"submit"
class=
"btn btn-primary mb-2"
id=
"userButtonInput"
style=
"height: 75%;"
onclick=
"goPython()"
>
Open My Webcamera
</button>
</div>
</div>
</form>
</form>
</div>
</div>
...
...
templates/textToSign.html
View file @
089f62ce
...
@@ -39,12 +39,22 @@
...
@@ -39,12 +39,22 @@
<link
rel=
"shortcut icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"shortcut icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"icon"
href=
"static/images/EasyTalkFavicon_v1.png"
type=
"image/x-icon"
>
<link
rel=
"stylesheet"
href=
"static/styles/chatbot-test.css"
/>
<script>
window
.
console
=
window
.
console
||
function
(
t
)
{};
</script>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"
></script>
<script>
if
(
document
.
location
.
search
.
match
(
/type=embed/gi
))
{
window
.
parent
.
postMessage
(
"
resize
"
,
"
*
"
);
}
</script>
<script
src=
"chrome-extension://mooikfkahbdckldjjndioackbalphokd/assets/prompt.js"
></script>
</head>
</head>
<body>
<body>
<!-- header -->
<!-- header -->
<header
class=
"fixed-top"
>
<!--<header class="fixed-top">
<!-- navbar -->
<div class="navigation w-100">
<div class="navigation w-100">
<div class="container">
<div class="container">
<nav class="navbar navbar-expand-lg navbar-dark p-0">
<nav class="navbar navbar-expand-lg navbar-dark p-0">
...
@@ -80,58 +90,33 @@
...
@@ -80,58 +90,33 @@
</nav>
</nav>
</div>
</div>
</div>
</div>
</header>
</header>
-->
<!-- /header -->
<!-- /header -->
<!-- page title -->
<section
class=
"page-title-section overlay"
data-background=
"static/images/backgrounds/page-title.jpg"
>
<div
class=
"container"
>
<div
class=
"row"
>
<div
class=
"col-md-8"
>
<ul
class=
"list-inline custom-breadcrumb"
>
<li
class=
"list-inline-item"
><a
class=
"h2 text-primary font-secondary"
href=
"tts"
>
English to SSL Translator
</a></li>
</ul>
<br/>
<p
class=
"text-lighten"
>
Now you can translate any English text to SSL only by entering it here!!
</p>
</div>
</div>
</div>
</section>
<!-- /page title -->
<!-- Text Translator -->
<!-- Text Translator -->
<section
class=
"section"
>
<div
class=
"container"
>
<div
class=
"chat"
>
<div
class=
"row"
>
<div
class=
"messages"
>
<div
class=
"col-12"
>
<div
class=
"message"
>
<h2
class=
"section-title text-center"
style=
"margin-top: -5%;"
>
Let's Start!!
</h2>
<div
class=
"bot"
>
<div
id=
"chatbox"
>
Welcome to Text to Sign Language Translator!! Now you can enter any phrase you need to translate into sign language
<p
class=
"botText"
>
<br/>
<span>
Enter the sentence you need to translate into SSL
</span>
Make sure to enter phrase like "Good Morning" or "Sorry"
</p>
</div>
<br/>
<form
id=
"form"
class=
"justify-content-center"
method=
"POST"
>
<div
class=
"form-row align-items-center"
>
<div
class=
"col-auto"
id=
"userInput"
>
<label
class=
"sr-only"
for=
"userTextInput"
>
Enter Your Text
</label>
<input
type=
"text"
class=
"form-control-mb-2"
id=
"userTextInput"
placeholder=
"Enter any text"
style=
"height: 80%; width:100%"
name=
"msg"
/>
</div>
<div
class=
"col-auto"
>
<button
type=
"submit"
class=
"btn btn-primary mb-2"
id=
"userButtonInput"
style=
"height: 75%;"
>
Translate to Sign
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div
class=
"input"
>
</div>
<form
action=
"#"
id=
"chat"
method=
"post"
>
</div>
<input
class=
"text"
contenteditable=
""
placeholder=
"Type your message here..."
>
</section>
</form>
</div>
</div>
<!-- /Text Translator -->
<!-- /Text Translator -->
<!-- footer -->
<!-- footer -->
<footer>
<!--<footer>
<!-- copyright -->
<div class="copyright py-4 bg-footer">
<div class="copyright py-4 bg-footer">
<div class="container">
<div class="container">
<div class="row">
<div class="row">
...
@@ -154,7 +139,7 @@
...
@@ -154,7 +139,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
</footer>
</footer>
-->
<!-- /footer -->
<!-- /footer -->
<!-- jQuery -->
<!-- jQuery -->
...
@@ -173,38 +158,64 @@
...
@@ -173,38 +158,64 @@
<!-- Main Script -->
<!-- Main Script -->
<script
src=
"static/js/script.js"
></script>
<script
src=
"static/js/script.js"
></script>
<script>
<script
src=
"https://cpwebassets.codepen.io/assets/common stopExecutionOnTimeout-157cd5b220a5c80d4ff8e0e70ac069bffd87a61252088146915e8726e5d9f147.js"
></script>
$
(
"
#userTextInput
"
).
keypress
(
function
(
e
){
if
(
e
.
which
==
13
){
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"
></script>
//getResponseSign();
}
<script
id=
"rendered-js"
>
});
(
function
()
{
var
app
;
$
(
"
userButtonInput
"
).
click
(
function
(){
$
(
document
).
ready
(
function
()
{
//getResponseSign();
return
app
.
init
();
});
});
$
(
"
#form
"
).
on
(
"
submit
"
,
function
(
e
)
{
app
=
{
var
message
=
$
(
"
#userTextInput
"
).
val
();
init
:
function
()
{
e
.
preventDefault
();
return
this
.
bind_events
();
$
.
ajax
({
},
//url: "http://127.0.0.1:5000/tts/response/",
url
:
"
http://localhost:3000/tts/response/
"
,
bind_events
:
function
()
{
data
:
JSON
.
stringify
({
message
:
message
}),
return
$
(
document
).
on
(
"
submit
"
,
"
#chat
"
,
function
(
e
)
{
method
:
"
POST
"
,
app
.
send_message
();
contentType
:
"
application/json
"
,
return
e
.
preventDefault
();
success
:
function
(
message
)
{
var
text
=
$
(
"
#userTextInput
"
).
val
();
var
userHtml
=
'
<p class="userText"><span>
'
+
text
+
"
</span></p>
"
;
$
(
"
#userTextInput
"
).
val
(
""
);
$
(
"
#chatbox
"
).
append
(
userHtml
);
document
.
getElementById
(
"
userInput
"
)
.
scrollIntoView
({
block
:
"
start
"
,
behavior
:
"
smooth
"
});
},
});
});
});
},
</script>
send_message
:
function
()
{
var
msg
;
msg
=
$
(
"
.text
"
).
val
().
trim
();
if
(
msg
)
{
$
(
"
.text
"
).
val
(
""
);
$
(
"
.messages
"
).
append
(
"
<div class='message'><div class='you'>
"
+
msg
+
"
</div></div>
"
);
return
this
.
check
(
msg
);
}
},
check
:
function
(
msg
)
{
var
keyword
;
if
(
msg
!=
null
)
{
return
this
.
get_gif
(
msg
);
}
else
{
return
this
.
bot_post
(
"
Wrong syntax ''gif me keyword''.
"
);
}
},
bot_post
:
function
(
msg
)
{
return
$
(
"
.messages
"
).
append
(
"
<div class='message'><div class='bot'>
"
+
msg
+
"
</div></div>
"
);
},
get_gif
:
function
(
keyword
)
{
console
.
log
(
keyword
)
return
$
.
get
(
`http://localhost:3000/tts/get/
${
keyword
}
`
,
function
(
data
)
{
var
index
;
console
.
log
(
data
)
return
app
.
bot_post
(
"
<img src='
"
+
data
.
gifPublicUrl
+
"
' alt='' />
"
);
});
}
};
}).
call
(
this
);
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
translation/trans.py
View file @
089f62ce
...
@@ -11,6 +11,8 @@ import numpy as np
...
@@ -11,6 +11,8 @@ import numpy as np
import
os
import
os
import
string
import
string
tensorflow
.
compat
.
v1
.
disable_eager_execution
()
class
Translation
:
class
Translation
:
PATH
=
os
.
path
.
dirname
(
__file__
)
PATH
=
os
.
path
.
dirname
(
__file__
)
...
@@ -58,19 +60,22 @@ class Translation:
...
@@ -58,19 +60,22 @@ class Translation:
self
.
data
[
0
]
=
normalized_image_array
self
.
data
[
0
]
=
normalized_image_array
# run the inference
# run the inference
print
(
"Before model*****************"
)
prediction
=
self
.
model
.
predict
(
self
.
data
)
prediction
=
self
.
model
.
predict
(
self
.
data
)
print
(
"After model*****************"
)
#print(prediction)
#print(prediction)
#print(prediction.shape)
#print(prediction.shape)
#print(type(prediction))
#print(type(prediction))
#print(prediction[0, 2])
#print(prediction[0, 2])
for
alpha
in
range
(
26
):
for
alpha
in
range
(
26
):
if
prediction
[
0
,
alpha
]
>=
0.8
:
if
prediction
[
0
,
alpha
]
>=
0.8
:
#
print(string.ascii_uppercase[alpha])
print
(
string
.
ascii_uppercase
[
alpha
])
return
string
.
ascii_uppercase
[
alpha
]
#
return string.ascii_uppercase[alpha]
#
break
break
print
(
"After Classification*****************"
)
# if os.path.exists(loc):
# if os.path.exists(loc):
# os.remove(loc)
# os.remove(loc)
# else:
# else:
# print("The file does not exist")
# print("The file does not exist")
#
return
return
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment