Repository navigation
Expand file tree
/
Copy pathMain.py
More file actions
84 lines (60 loc) · 2.25 KB
/
Copy pathMain.py
File metadata and controls
84 lines (60 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from modules.Voice import Cheacker, Listener, SpeechRecognizer
from modules.Face import FaceAccess
import os
'''
def take_name_from_camera(image=None):
if image == None:
code = 'python3 /root/Github/Detection_Project/Acces/Face_acces/Access.py'
process = subprocess.Popen(code.split(), stdout=subprocess.PIPE)
out, err = process.communicate()
out = out.decode('utf-8')
name = out.split('\n')[0]
return name
'''
def take_name_from_camera():
name = FaceAccess.check()
return name
def take_name_from_voice(voice_file='', mode=False):
if voice_file == '':
try:
Listener.listen(12, filename='output.wav')
except:
print('Error when listen your voice')
return 'Unknown Person'
name = Cheacker.check('output.wav')
os.remove('output.wav')
return name
elif voice_file == "None":
print('None voice file. Recognition now is based only on face')
return 'Hydra'
return Cheacker.check(voice_file)
def take_speech_data(file):
return SpeechRecognizer.recognize(file) # only english voice can be recognized
def compare_names(voice_name, face_name):
if voice_name != 'Unknown Person' and face_name != 'Unknown Person' and voice_name != 'Hydra':
if voice_name == face_name or voice_name == 'Hydra':
return True, face_name
else:
return False, 'Unknown Person'
elif voice_name == 'Hydra':
return True, face_name
elif voice_name == 'Unknown Person':
print("Voice recognition was broken. Please try again {0}".format(face_name))
return False, face_name
elif face_name == 'Unknown Person':
print('Face recognition access was broken. Please try again {0}.'.format(voice_name))
return False, voice_name
def take_voice_from_mic():
voice_file = None
return voice_file
def main():
voice_name = take_name_from_voice('None') # if you want to recognize your voice from mic, voice_file must be empty
face_name = take_name_from_camera()
res, Name = compare_names(voice_name, face_name)
if res and Name != 'Unknown Person':
print()
print('Welcome back ' + Name)
print()
else:
print(Name)
main()