├── .gitignore ├── LICENSE ├── README.md ├── Ui └── root_page.py ├── funcs ├── Translate.py └── movie.py ├── main.py └── pic ├── help.png ├── help_page.png ├── movie.png ├── quit.png ├── record.png ├── setting.png ├── setting_page.png └── translate.png /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | 3 | ### Python ### 4 | # Byte-compiled / optimized / DLL files 5 | __pycache__/ 6 | *.py[cod] 7 | *$py.class 8 | 9 | # C extensions 10 | *.so 11 | 12 | # Distribution / packaging 13 | .Python 14 | build/ 15 | develop-eggs/ 16 | dist/ 17 | downloads/ 18 | eggs/ 19 | .eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | wheels/ 26 | share/python-wheels/ 27 | *.egg-info/ 28 | .installed.cfg 29 | *.egg 30 | MANIFEST 31 | 32 | # PyInstaller 33 | # Usually these files are written by a python script from a template 34 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 35 | *.manifest 36 | *.spec 37 | 38 | # Installer logs 39 | pip-log.txt 40 | pip-delete-this-directory.txt 41 | 42 | # Unit test / coverage reports 43 | htmlcov/ 44 | .tox/ 45 | .nox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | *.py,cover 53 | .hypothesis/ 54 | .pytest_cache/ 55 | cover/ 56 | 57 | # Translations 58 | *.mo 59 | *.pot 60 | 61 | # Django stuff: 62 | *.log 63 | local_settings.py 64 | db.sqlite3 65 | db.sqlite3-journal 66 | 67 | # Flask stuff: 68 | instance/ 69 | .webassets-cache 70 | 71 | # Scrapy stuff: 72 | .scrapy 73 | 74 | # Sphinx documentation 75 | docs/_build/ 76 | 77 | # PyBuilder 78 | .pybuilder/ 79 | target/ 80 | 81 | # Jupyter Notebook 82 | .ipynb_checkpoints 83 | 84 | # IPython 85 | profile_default/ 86 | ipython_config.py 87 | 88 | # pyenv 89 | # For a library or package, you might want to ignore these files since the code is 90 | # intended to run in multiple environments; otherwise, check them in: 91 | # .python-version 92 | 93 | # pipenv 94 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 95 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 96 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 97 | # install all needed dependencies. 98 | #Pipfile.lock 99 | 100 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 101 | __pypackages__/ 102 | 103 | # Celery stuff 104 | celerybeat-schedule 105 | celerybeat.pid 106 | 107 | # SageMath parsed files 108 | *.sage.py 109 | 110 | # Environments 111 | .env 112 | .venv 113 | env/ 114 | venv/ 115 | ENV/ 116 | env.bak/ 117 | venv.bak/ 118 | 119 | # Spyder project settings 120 | .spyderproject 121 | .spyproject 122 | 123 | # Rope project settings 124 | .ropeproject 125 | 126 | # mkdocs documentation 127 | /site 128 | 129 | # mypy 130 | .mypy_cache/ 131 | .dmypy.json 132 | dmypy.json 133 | 134 | # Pyre type checker 135 | .pyre/ 136 | 137 | # pytype static type analyzer 138 | .pytype/ 139 | 140 | # Cython debug symbols 141 | cython_debug/ 142 | 143 | # End of https://www.toptal.com/developers/gitignore/api/python -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Abbas Ataei 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Voice-Assistant 2 | - Search Movie 3 | - Translate 4 | - Type 5 | - Shutdown system 6 | - Restart System 7 | - Sleep System 8 | 9 | # Changelog 10 | - v 1.0 11 | - initial commit 12 | # About Me 13 | Full name : Abbas Ataei 14 | 15 | Learning : Python 16 | 17 | Gmail : AbbasAtaei.py@gmail.com 18 | 19 | Telegram : https://t.me/Abbasataei_py 20 | 21 | More : https://bioly.io/AbbasAtaei 22 | -------------------------------------------------------------------------------- /Ui/root_page.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'root.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.4 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_Root_page(object): 15 | def setupUi(self, Root_page): 16 | Root_page.setObjectName("Root_page") 17 | Root_page.resize(887, 577) 18 | Root_page.setIconSize(QtCore.QSize(35, 35)) 19 | self.centralwidget = QtWidgets.QWidget(Root_page) 20 | self.centralwidget.setObjectName("centralwidget") 21 | self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) 22 | self.stackedWidget.setGeometry(QtCore.QRect(0, 0, 881, 571)) 23 | self.stackedWidget.setObjectName("stackedWidget") 24 | self.main_page = QtWidgets.QWidget() 25 | self.main_page.setObjectName("main_page") 26 | self.frame = QtWidgets.QFrame(self.main_page) 27 | self.frame.setGeometry(QtCore.QRect(300, 510, 321, 61)) 28 | self.frame.setStyleSheet("background-color: rgb(255, 255, 255);\n" 29 | "border-radius: 20px;") 30 | self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel) 31 | self.frame.setFrameShadow(QtWidgets.QFrame.Raised) 32 | self.frame.setObjectName("frame") 33 | self.rec_button = QtWidgets.QPushButton(self.frame) 34 | self.rec_button.setGeometry(QtCore.QRect(40, 0, 61, 61)) 35 | self.rec_button.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 36 | self.rec_button.setText("") 37 | icon = QtGui.QIcon() 38 | icon.addPixmap(QtGui.QPixmap("./pic/record.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 39 | self.rec_button.setIcon(icon) 40 | self.rec_button.setIconSize(QtCore.QSize(50, 50)) 41 | self.rec_button.setObjectName("rec_button") 42 | self.set_button = QtWidgets.QPushButton(self.frame) 43 | self.set_button.setGeometry(QtCore.QRect(100, 0, 61, 61)) 44 | self.set_button.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 45 | self.set_button.setText("") 46 | icon1 = QtGui.QIcon() 47 | icon1.addPixmap(QtGui.QPixmap("./pic/setting.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 48 | self.set_button.setIcon(icon1) 49 | self.set_button.setIconSize(QtCore.QSize(50, 50)) 50 | self.set_button.setObjectName("set_button") 51 | self.help_button = QtWidgets.QPushButton(self.frame) 52 | self.help_button.setGeometry(QtCore.QRect(160, 0, 61, 61)) 53 | self.help_button.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 54 | self.help_button.setText("") 55 | icon2 = QtGui.QIcon() 56 | icon2.addPixmap(QtGui.QPixmap("./pic/help.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 57 | self.help_button.setIcon(icon2) 58 | self.help_button.setIconSize(QtCore.QSize(50, 50)) 59 | self.help_button.setObjectName("help_button") 60 | self.quit_button = QtWidgets.QPushButton(self.frame) 61 | self.quit_button.setGeometry(QtCore.QRect(220, 0, 61, 61)) 62 | self.quit_button.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 63 | self.quit_button.setText("") 64 | icon3 = QtGui.QIcon() 65 | icon3.addPixmap(QtGui.QPixmap("./pic/quit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 66 | self.quit_button.setIcon(icon3) 67 | self.quit_button.setIconSize(QtCore.QSize(50, 50)) 68 | self.quit_button.setObjectName("quit_button") 69 | self.stackedWidget.addWidget(self.main_page) 70 | self.page_2 = QtWidgets.QWidget() 71 | self.page_2.setObjectName("page_2") 72 | self.frame_2 = QtWidgets.QFrame(self.page_2) 73 | self.frame_2.setGeometry(QtCore.QRect(300, 510, 321, 61)) 74 | self.frame_2.setStyleSheet("background-color: rgb(255, 255, 255);\n" 75 | "border-radius: 20px;") 76 | self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel) 77 | self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised) 78 | self.frame_2.setObjectName("frame_2") 79 | self.rec_button_2 = QtWidgets.QPushButton(self.frame_2) 80 | self.rec_button_2.setGeometry(QtCore.QRect(40, 0, 61, 61)) 81 | self.rec_button_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 82 | self.rec_button_2.setText("") 83 | self.rec_button_2.setIcon(icon) 84 | self.rec_button_2.setIconSize(QtCore.QSize(50, 50)) 85 | self.rec_button_2.setObjectName("rec_button_2") 86 | self.set_button_2 = QtWidgets.QPushButton(self.frame_2) 87 | self.set_button_2.setGeometry(QtCore.QRect(100, 0, 61, 61)) 88 | self.set_button_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 89 | self.set_button_2.setText("") 90 | self.set_button_2.setIcon(icon1) 91 | self.set_button_2.setIconSize(QtCore.QSize(50, 50)) 92 | self.set_button_2.setObjectName("set_button_2") 93 | self.help_button_2 = QtWidgets.QPushButton(self.frame_2) 94 | self.help_button_2.setGeometry(QtCore.QRect(160, 0, 61, 61)) 95 | self.help_button_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 96 | self.help_button_2.setText("") 97 | self.help_button_2.setIcon(icon2) 98 | self.help_button_2.setIconSize(QtCore.QSize(50, 50)) 99 | self.help_button_2.setObjectName("help_button_2") 100 | self.quit_button_2 = QtWidgets.QPushButton(self.frame_2) 101 | self.quit_button_2.setGeometry(QtCore.QRect(220, 0, 61, 61)) 102 | self.quit_button_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 103 | self.quit_button_2.setText("") 104 | self.quit_button_2.setIcon(icon3) 105 | self.quit_button_2.setIconSize(QtCore.QSize(50, 50)) 106 | self.quit_button_2.setObjectName("quit_button_2") 107 | self.set_button_2.raise_() 108 | self.help_button_2.raise_() 109 | self.quit_button_2.raise_() 110 | self.rec_button_2.raise_() 111 | self.frame_3 = QtWidgets.QFrame(self.page_2) 112 | self.frame_3.setGeometry(QtCore.QRect(179, 240, 561, 331)) 113 | self.frame_3.setStyleSheet("background-color: rgb(255, 255, 255);\n" 114 | "border-radius: 25px;") 115 | self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel) 116 | self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised) 117 | self.frame_3.setObjectName("frame_3") 118 | self.label = QtWidgets.QLabel(self.frame_3) 119 | self.label.setGeometry(QtCore.QRect(10, 100, 261, 171)) 120 | self.label.setText("") 121 | self.label.setPixmap(QtGui.QPixmap("./pic/translate.png")) 122 | self.label.setObjectName("label") 123 | self.translated = QtWidgets.QLabel(self.frame_3) 124 | self.translated.setGeometry(QtCore.QRect(60, 40, 441, 51)) 125 | font = QtGui.QFont() 126 | font.setFamily("IRANSans Light") 127 | font.setPointSize(15) 128 | self.translated.setFont(font) 129 | self.translated.setStyleSheet("background-color: rgb(218, 214, 255, 150);\n" 130 | "border-radius: 12px;") 131 | self.translated.setText("") 132 | self.translated.setAlignment(QtCore.Qt.AlignCenter) 133 | self.translated.setObjectName("translated") 134 | self.label_2 = QtWidgets.QLabel(self.frame_3) 135 | self.label_2.setGeometry(QtCore.QRect(210, 120, 291, 61)) 136 | font = QtGui.QFont() 137 | font.setFamily("Open Sans") 138 | font.setPointSize(10) 139 | self.label_2.setFont(font) 140 | self.label_2.setStyleSheet("color: rgba(0, 0, 0, 100);") 141 | self.label_2.setObjectName("label_2") 142 | self.label_3 = QtWidgets.QLabel(self.frame_3) 143 | self.label_3.setGeometry(QtCore.QRect(210, 160, 291, 61)) 144 | font = QtGui.QFont() 145 | font.setFamily("Open Sans") 146 | font.setPointSize(10) 147 | self.label_3.setFont(font) 148 | self.label_3.setStyleSheet("color: rgba(0, 0, 0, 100);") 149 | self.label_3.setObjectName("label_3") 150 | self.label_4 = QtWidgets.QLabel(self.frame_3) 151 | self.label_4.setGeometry(QtCore.QRect(210, 210, 291, 41)) 152 | font = QtGui.QFont() 153 | font.setFamily("Open Sans") 154 | font.setPointSize(10) 155 | self.label_4.setFont(font) 156 | self.label_4.setStyleSheet("color: rgba(0, 0, 0, 100);") 157 | self.label_4.setObjectName("label_4") 158 | self.frame_3.raise_() 159 | self.frame_2.raise_() 160 | self.stackedWidget.addWidget(self.page_2) 161 | self.movie = QtWidgets.QWidget() 162 | self.movie.setObjectName("movie") 163 | self.frame_4 = QtWidgets.QFrame(self.movie) 164 | self.frame_4.setGeometry(QtCore.QRect(79, 50, 741, 521)) 165 | self.frame_4.setStyleSheet("background-color: rgb(255, 255, 255);\n" 166 | "border-radius: 25px;") 167 | self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel) 168 | self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised) 169 | self.frame_4.setObjectName("frame_4") 170 | self.n0 = QtWidgets.QLabel(self.frame_4) 171 | self.n0.setGeometry(QtCore.QRect(220, 30, 321, 51)) 172 | font = QtGui.QFont() 173 | font.setFamily("Open Sans") 174 | font.setPointSize(13) 175 | self.n0.setFont(font) 176 | self.n0.setStyleSheet("background-color: rgb(230, 229, 255);\n" 177 | "border-radius: 10px;\n" 178 | "color: rgba(0, 0, 0, 200);\n" 179 | "") 180 | self.n0.setAlignment(QtCore.Qt.AlignCenter) 181 | self.n0.setObjectName("n0") 182 | self.lst0 = QtWidgets.QLabel(self.frame_4) 183 | self.lst0.setGeometry(QtCore.QRect(30, 110, 181, 31)) 184 | font = QtGui.QFont() 185 | font.setFamily("Open Sans Light") 186 | font.setPointSize(11) 187 | self.lst0.setFont(font) 188 | self.lst0.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 189 | "border-radius: 8px;") 190 | self.lst0.setText("") 191 | self.lst0.setAlignment(QtCore.Qt.AlignCenter) 192 | self.lst0.setObjectName("lst0") 193 | self.lst1 = QtWidgets.QLabel(self.frame_4) 194 | self.lst1.setGeometry(QtCore.QRect(270, 110, 181, 31)) 195 | font = QtGui.QFont() 196 | font.setFamily("Open Sans Light") 197 | font.setPointSize(11) 198 | self.lst1.setFont(font) 199 | self.lst1.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 200 | "border-radius: 8px;") 201 | self.lst1.setText("") 202 | self.lst1.setAlignment(QtCore.Qt.AlignCenter) 203 | self.lst1.setObjectName("lst1") 204 | self.lst2 = QtWidgets.QLabel(self.frame_4) 205 | self.lst2.setGeometry(QtCore.QRect(520, 110, 181, 31)) 206 | font = QtGui.QFont() 207 | font.setFamily("Open Sans Light") 208 | font.setPointSize(11) 209 | self.lst2.setFont(font) 210 | self.lst2.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 211 | "border-radius: 8px;") 212 | self.lst2.setText("") 213 | self.lst2.setAlignment(QtCore.Qt.AlignCenter) 214 | self.lst2.setObjectName("lst2") 215 | self.lst11 = QtWidgets.QLabel(self.frame_4) 216 | self.lst11.setGeometry(QtCore.QRect(270, 160, 181, 31)) 217 | font = QtGui.QFont() 218 | font.setFamily("Open Sans Light") 219 | font.setPointSize(11) 220 | self.lst11.setFont(font) 221 | self.lst11.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 222 | "border-radius: 8px;") 223 | self.lst11.setText("") 224 | self.lst11.setAlignment(QtCore.Qt.AlignCenter) 225 | self.lst11.setObjectName("lst11") 226 | self.lst22 = QtWidgets.QLabel(self.frame_4) 227 | self.lst22.setGeometry(QtCore.QRect(520, 160, 181, 31)) 228 | font = QtGui.QFont() 229 | font.setFamily("Open Sans Light") 230 | font.setPointSize(11) 231 | self.lst22.setFont(font) 232 | self.lst22.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 233 | "border-radius: 8px;") 234 | self.lst22.setText("") 235 | self.lst22.setAlignment(QtCore.Qt.AlignCenter) 236 | self.lst22.setObjectName("lst22") 237 | self.lst00 = QtWidgets.QLabel(self.frame_4) 238 | self.lst00.setGeometry(QtCore.QRect(30, 160, 181, 31)) 239 | font = QtGui.QFont() 240 | font.setFamily("Open Sans Light") 241 | font.setPointSize(11) 242 | self.lst00.setFont(font) 243 | self.lst00.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 244 | "border-radius: 8px;") 245 | self.lst00.setText("") 246 | self.lst00.setAlignment(QtCore.Qt.AlignCenter) 247 | self.lst00.setObjectName("lst00") 248 | self.lst222 = QtWidgets.QLabel(self.frame_4) 249 | self.lst222.setGeometry(QtCore.QRect(520, 210, 181, 31)) 250 | font = QtGui.QFont() 251 | font.setFamily("Open Sans Light") 252 | font.setPointSize(11) 253 | self.lst222.setFont(font) 254 | self.lst222.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 255 | "border-radius: 8px;") 256 | self.lst222.setText("") 257 | self.lst222.setAlignment(QtCore.Qt.AlignCenter) 258 | self.lst222.setObjectName("lst222") 259 | self.lst111 = QtWidgets.QLabel(self.frame_4) 260 | self.lst111.setGeometry(QtCore.QRect(270, 210, 181, 31)) 261 | font = QtGui.QFont() 262 | font.setFamily("Open Sans Light") 263 | font.setPointSize(11) 264 | self.lst111.setFont(font) 265 | self.lst111.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 266 | "border-radius: 8px;") 267 | self.lst111.setText("") 268 | self.lst111.setAlignment(QtCore.Qt.AlignCenter) 269 | self.lst111.setObjectName("lst111") 270 | self.lst000 = QtWidgets.QLabel(self.frame_4) 271 | self.lst000.setGeometry(QtCore.QRect(30, 210, 181, 31)) 272 | font = QtGui.QFont() 273 | font.setFamily("Open Sans Light") 274 | font.setPointSize(11) 275 | self.lst000.setFont(font) 276 | self.lst000.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 277 | "border-radius: 8px;") 278 | self.lst000.setText("") 279 | self.lst000.setAlignment(QtCore.Qt.AlignCenter) 280 | self.lst000.setObjectName("lst000") 281 | self.lst2222 = QtWidgets.QLabel(self.frame_4) 282 | self.lst2222.setGeometry(QtCore.QRect(520, 260, 181, 31)) 283 | font = QtGui.QFont() 284 | font.setFamily("Open Sans Light") 285 | font.setPointSize(11) 286 | self.lst2222.setFont(font) 287 | self.lst2222.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 288 | "border-radius: 8px;") 289 | self.lst2222.setText("") 290 | self.lst2222.setAlignment(QtCore.Qt.AlignCenter) 291 | self.lst2222.setObjectName("lst2222") 292 | self.lst1111 = QtWidgets.QLabel(self.frame_4) 293 | self.lst1111.setGeometry(QtCore.QRect(270, 260, 181, 31)) 294 | font = QtGui.QFont() 295 | font.setFamily("Open Sans Light") 296 | font.setPointSize(11) 297 | self.lst1111.setFont(font) 298 | self.lst1111.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 299 | "border-radius: 8px;") 300 | self.lst1111.setText("") 301 | self.lst1111.setAlignment(QtCore.Qt.AlignCenter) 302 | self.lst1111.setObjectName("lst1111") 303 | self.lst0000 = QtWidgets.QLabel(self.frame_4) 304 | self.lst0000.setGeometry(QtCore.QRect(30, 260, 181, 31)) 305 | font = QtGui.QFont() 306 | font.setFamily("Open Sans Light") 307 | font.setPointSize(11) 308 | self.lst0000.setFont(font) 309 | self.lst0000.setStyleSheet("background-color: rgba(224, 224, 224, 60);\n" 310 | "border-radius: 8px;") 311 | self.lst0000.setText("") 312 | self.lst0000.setAlignment(QtCore.Qt.AlignCenter) 313 | self.lst0000.setObjectName("lst0000") 314 | self.label_5 = QtWidgets.QLabel(self.frame_4) 315 | self.label_5.setGeometry(QtCore.QRect(20, 320, 201, 181)) 316 | self.label_5.setStyleSheet("background-color: none;") 317 | self.label_5.setText("") 318 | self.label_5.setPixmap(QtGui.QPixmap("./pic/movie.png")) 319 | self.label_5.setObjectName("label_5") 320 | self.label_6 = QtWidgets.QLabel(self.frame_4) 321 | self.label_6.setGeometry(QtCore.QRect(230, 320, 211, 41)) 322 | font = QtGui.QFont() 323 | font.setFamily("Open Sans") 324 | font.setPointSize(14) 325 | font.setBold(True) 326 | font.setWeight(75) 327 | self.label_6.setFont(font) 328 | self.label_6.setStyleSheet("color: rgba(0, 0, 0, 150);") 329 | self.label_6.setObjectName("label_6") 330 | self.label_7 = QtWidgets.QLabel(self.frame_4) 331 | self.label_7.setGeometry(QtCore.QRect(210, 360, 301, 41)) 332 | font = QtGui.QFont() 333 | font.setFamily("Open Sans Light") 334 | font.setPointSize(11) 335 | self.label_7.setFont(font) 336 | self.label_7.setStyleSheet("background-color: none;\n" 337 | "color: rgba(0, 0, 0, 150);") 338 | self.label_7.setObjectName("label_7") 339 | self.label_8 = QtWidgets.QLabel(self.frame_4) 340 | self.label_8.setGeometry(QtCore.QRect(510, 360, 471, 41)) 341 | font = QtGui.QFont() 342 | font.setFamily("Open Sans Light") 343 | font.setPointSize(11) 344 | self.label_8.setFont(font) 345 | self.label_8.setStyleSheet("background-color: none;\n" 346 | "color: rgba(0, 0, 0, 150);") 347 | self.label_8.setObjectName("label_8") 348 | self.frame_5 = QtWidgets.QFrame(self.movie) 349 | self.frame_5.setGeometry(QtCore.QRect(300, 510, 321, 61)) 350 | self.frame_5.setStyleSheet("background-color: rgb(255, 255, 255);\n" 351 | "border-radius: 20px;") 352 | self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel) 353 | self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised) 354 | self.frame_5.setObjectName("frame_5") 355 | self.rec_button_3 = QtWidgets.QPushButton(self.frame_5) 356 | self.rec_button_3.setGeometry(QtCore.QRect(40, 0, 61, 61)) 357 | self.rec_button_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 358 | self.rec_button_3.setText("") 359 | self.rec_button_3.setIcon(icon) 360 | self.rec_button_3.setIconSize(QtCore.QSize(50, 50)) 361 | self.rec_button_3.setObjectName("rec_button_3") 362 | self.set_button_3 = QtWidgets.QPushButton(self.frame_5) 363 | self.set_button_3.setGeometry(QtCore.QRect(100, 0, 61, 61)) 364 | self.set_button_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 365 | self.set_button_3.setText("") 366 | self.set_button_3.setIcon(icon1) 367 | self.set_button_3.setIconSize(QtCore.QSize(50, 50)) 368 | self.set_button_3.setObjectName("set_button_3") 369 | self.help_button_3 = QtWidgets.QPushButton(self.frame_5) 370 | self.help_button_3.setGeometry(QtCore.QRect(160, 0, 61, 61)) 371 | self.help_button_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 372 | self.help_button_3.setText("") 373 | self.help_button_3.setIcon(icon2) 374 | self.help_button_3.setIconSize(QtCore.QSize(50, 50)) 375 | self.help_button_3.setObjectName("help_button_3") 376 | self.quit_button_3 = QtWidgets.QPushButton(self.frame_5) 377 | self.quit_button_3.setGeometry(QtCore.QRect(220, 0, 61, 61)) 378 | self.quit_button_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 379 | self.quit_button_3.setText("") 380 | self.quit_button_3.setIcon(icon3) 381 | self.quit_button_3.setIconSize(QtCore.QSize(50, 50)) 382 | self.quit_button_3.setObjectName("quit_button_3") 383 | self.stackedWidget.addWidget(self.movie) 384 | self.setting = QtWidgets.QWidget() 385 | self.setting.setObjectName("setting") 386 | self.frame_6 = QtWidgets.QFrame(self.setting) 387 | self.frame_6.setGeometry(QtCore.QRect(180, 240, 561, 331)) 388 | self.frame_6.setStyleSheet("background-color: rgb(255, 255, 255);\n" 389 | "border-radius: 25px;") 390 | self.frame_6.setFrameShape(QtWidgets.QFrame.StyledPanel) 391 | self.frame_6.setFrameShadow(QtWidgets.QFrame.Raised) 392 | self.frame_6.setObjectName("frame_6") 393 | self.translated_2 = QtWidgets.QLabel(self.frame_6) 394 | self.translated_2.setGeometry(QtCore.QRect(70, 40, 441, 51)) 395 | font = QtGui.QFont() 396 | font.setFamily("IRANSans Light") 397 | font.setPointSize(14) 398 | self.translated_2.setFont(font) 399 | self.translated_2.setStyleSheet("background-color: rgb(218, 214, 255, 150);\n" 400 | "border-radius: 12px;") 401 | self.translated_2.setAlignment(QtCore.Qt.AlignCenter) 402 | self.translated_2.setObjectName("translated_2") 403 | self.label_9 = QtWidgets.QLabel(self.frame_6) 404 | self.label_9.setGeometry(QtCore.QRect(20, 120, 171, 141)) 405 | self.label_9.setText("") 406 | self.label_9.setPixmap(QtGui.QPixmap("./pic/setting_page.png")) 407 | self.label_9.setObjectName("label_9") 408 | self.label_10 = QtWidgets.QLabel(self.frame_6) 409 | self.label_10.setGeometry(QtCore.QRect(210, 120, 301, 41)) 410 | font = QtGui.QFont() 411 | font.setFamily("Open Sans Light") 412 | font.setPointSize(12) 413 | self.label_10.setFont(font) 414 | self.label_10.setStyleSheet("background-color: none;\n" 415 | "color: rgba(0, 0, 0, 150);") 416 | self.label_10.setObjectName("label_10") 417 | self.label_11 = QtWidgets.QLabel(self.frame_6) 418 | self.label_11.setGeometry(QtCore.QRect(220, 160, 301, 41)) 419 | font = QtGui.QFont() 420 | font.setFamily("Open Sans Light") 421 | font.setPointSize(10) 422 | self.label_11.setFont(font) 423 | self.label_11.setStyleSheet("background-color: none;\n" 424 | "color: rgba(0, 0, 0, 150);") 425 | self.label_11.setObjectName("label_11") 426 | self.label_12 = QtWidgets.QLabel(self.frame_6) 427 | self.label_12.setGeometry(QtCore.QRect(220, 190, 301, 41)) 428 | font = QtGui.QFont() 429 | font.setFamily("Open Sans Light") 430 | font.setPointSize(10) 431 | self.label_12.setFont(font) 432 | self.label_12.setStyleSheet("background-color: none;\n" 433 | "color: rgba(0, 0, 0, 150);") 434 | self.label_12.setObjectName("label_12") 435 | self.frame_7 = QtWidgets.QFrame(self.setting) 436 | self.frame_7.setGeometry(QtCore.QRect(301, 510, 321, 61)) 437 | self.frame_7.setStyleSheet("background-color: rgb(255, 255, 255);\n" 438 | "border-radius: 20px;") 439 | self.frame_7.setFrameShape(QtWidgets.QFrame.StyledPanel) 440 | self.frame_7.setFrameShadow(QtWidgets.QFrame.Raised) 441 | self.frame_7.setObjectName("frame_7") 442 | self.rec_button_4 = QtWidgets.QPushButton(self.frame_7) 443 | self.rec_button_4.setGeometry(QtCore.QRect(40, 0, 61, 61)) 444 | self.rec_button_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 445 | self.rec_button_4.setText("") 446 | self.rec_button_4.setIcon(icon) 447 | self.rec_button_4.setIconSize(QtCore.QSize(50, 50)) 448 | self.rec_button_4.setObjectName("rec_button_4") 449 | self.set_button_4 = QtWidgets.QPushButton(self.frame_7) 450 | self.set_button_4.setGeometry(QtCore.QRect(100, 0, 61, 61)) 451 | self.set_button_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 452 | self.set_button_4.setText("") 453 | self.set_button_4.setIcon(icon1) 454 | self.set_button_4.setIconSize(QtCore.QSize(50, 50)) 455 | self.set_button_4.setObjectName("set_button_4") 456 | self.help_button_4 = QtWidgets.QPushButton(self.frame_7) 457 | self.help_button_4.setGeometry(QtCore.QRect(160, 0, 61, 61)) 458 | self.help_button_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 459 | self.help_button_4.setText("") 460 | self.help_button_4.setIcon(icon2) 461 | self.help_button_4.setIconSize(QtCore.QSize(50, 50)) 462 | self.help_button_4.setObjectName("help_button_4") 463 | self.quit_button_4 = QtWidgets.QPushButton(self.frame_7) 464 | self.quit_button_4.setGeometry(QtCore.QRect(220, 0, 61, 61)) 465 | self.quit_button_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 466 | self.quit_button_4.setText("") 467 | self.quit_button_4.setIcon(icon3) 468 | self.quit_button_4.setIconSize(QtCore.QSize(50, 50)) 469 | self.quit_button_4.setObjectName("quit_button_4") 470 | self.stackedWidget.addWidget(self.setting) 471 | self.help = QtWidgets.QWidget() 472 | self.help.setObjectName("help") 473 | self.frame_8 = QtWidgets.QFrame(self.help) 474 | self.frame_8.setGeometry(QtCore.QRect(300, 510, 321, 61)) 475 | self.frame_8.setStyleSheet("background-color: rgb(255, 255, 255);\n" 476 | "border-radius: 20px;") 477 | self.frame_8.setFrameShape(QtWidgets.QFrame.StyledPanel) 478 | self.frame_8.setFrameShadow(QtWidgets.QFrame.Raised) 479 | self.frame_8.setObjectName("frame_8") 480 | self.rec_button_5 = QtWidgets.QPushButton(self.frame_8) 481 | self.rec_button_5.setGeometry(QtCore.QRect(40, 0, 61, 61)) 482 | self.rec_button_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 483 | self.rec_button_5.setText("") 484 | self.rec_button_5.setIcon(icon) 485 | self.rec_button_5.setIconSize(QtCore.QSize(50, 50)) 486 | self.rec_button_5.setObjectName("rec_button_5") 487 | self.set_button_5 = QtWidgets.QPushButton(self.frame_8) 488 | self.set_button_5.setGeometry(QtCore.QRect(100, 0, 61, 61)) 489 | self.set_button_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 490 | self.set_button_5.setText("") 491 | self.set_button_5.setIcon(icon1) 492 | self.set_button_5.setIconSize(QtCore.QSize(50, 50)) 493 | self.set_button_5.setObjectName("set_button_5") 494 | self.help_button_5 = QtWidgets.QPushButton(self.frame_8) 495 | self.help_button_5.setGeometry(QtCore.QRect(160, 0, 61, 61)) 496 | self.help_button_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 497 | self.help_button_5.setText("") 498 | self.help_button_5.setIcon(icon2) 499 | self.help_button_5.setIconSize(QtCore.QSize(50, 50)) 500 | self.help_button_5.setObjectName("help_button_5") 501 | self.quit_button_5 = QtWidgets.QPushButton(self.frame_8) 502 | self.quit_button_5.setGeometry(QtCore.QRect(220, 0, 61, 61)) 503 | self.quit_button_5.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 504 | self.quit_button_5.setText("") 505 | self.quit_button_5.setIcon(icon3) 506 | self.quit_button_5.setIconSize(QtCore.QSize(50, 50)) 507 | self.quit_button_5.setObjectName("quit_button_5") 508 | self.frame_9 = QtWidgets.QFrame(self.help) 509 | self.frame_9.setGeometry(QtCore.QRect(180, 190, 561, 381)) 510 | self.frame_9.setStyleSheet("background-color: rgb(255, 255, 255);\n" 511 | "border-radius: 25px;") 512 | self.frame_9.setFrameShape(QtWidgets.QFrame.StyledPanel) 513 | self.frame_9.setFrameShadow(QtWidgets.QFrame.Raised) 514 | self.frame_9.setObjectName("frame_9") 515 | self.label_14 = QtWidgets.QLabel(self.frame_9) 516 | self.label_14.setGeometry(QtCore.QRect(50, 20, 301, 41)) 517 | font = QtGui.QFont() 518 | font.setFamily("Open Sans") 519 | font.setPointSize(12) 520 | self.label_14.setFont(font) 521 | self.label_14.setStyleSheet("background-color: none;\n" 522 | "color: rgba(0, 0, 0, 150);") 523 | self.label_14.setObjectName("label_14") 524 | self.label_15 = QtWidgets.QLabel(self.frame_9) 525 | self.label_15.setGeometry(QtCore.QRect(50, 60, 351, 41)) 526 | font = QtGui.QFont() 527 | font.setFamily("Open Sans Light") 528 | font.setPointSize(10) 529 | self.label_15.setFont(font) 530 | self.label_15.setStyleSheet("background-color: none;\n" 531 | "color: rgba(0, 0, 0, 150);") 532 | self.label_15.setObjectName("label_15") 533 | self.label_16 = QtWidgets.QLabel(self.frame_9) 534 | self.label_16.setGeometry(QtCore.QRect(50, 100, 391, 41)) 535 | font = QtGui.QFont() 536 | font.setFamily("Open Sans Light") 537 | font.setPointSize(10) 538 | self.label_16.setFont(font) 539 | self.label_16.setStyleSheet("background-color: none;\n" 540 | "color: rgba(0, 0, 0, 150);") 541 | self.label_16.setObjectName("label_16") 542 | self.label_17 = QtWidgets.QLabel(self.frame_9) 543 | self.label_17.setGeometry(QtCore.QRect(50, 140, 391, 41)) 544 | font = QtGui.QFont() 545 | font.setFamily("Open Sans Light") 546 | font.setPointSize(10) 547 | self.label_17.setFont(font) 548 | self.label_17.setStyleSheet("background-color: none;\n" 549 | "color: rgba(0, 0, 0, 150);") 550 | self.label_17.setObjectName("label_17") 551 | self.label_18 = QtWidgets.QLabel(self.frame_9) 552 | self.label_18.setGeometry(QtCore.QRect(50, 180, 391, 41)) 553 | font = QtGui.QFont() 554 | font.setFamily("Open Sans Light") 555 | font.setPointSize(10) 556 | self.label_18.setFont(font) 557 | self.label_18.setStyleSheet("background-color: none;\n" 558 | "color: rgba(0, 0, 0, 150);") 559 | self.label_18.setObjectName("label_18") 560 | self.label_19 = QtWidgets.QLabel(self.frame_9) 561 | self.label_19.setGeometry(QtCore.QRect(50, 220, 391, 41)) 562 | font = QtGui.QFont() 563 | font.setFamily("Open Sans Light") 564 | font.setPointSize(10) 565 | self.label_19.setFont(font) 566 | self.label_19.setStyleSheet("background-color: none;\n" 567 | "color: rgba(0, 0, 0, 150);") 568 | self.label_19.setObjectName("label_19") 569 | self.label_20 = QtWidgets.QLabel(self.frame_9) 570 | self.label_20.setGeometry(QtCore.QRect(50, 260, 391, 41)) 571 | font = QtGui.QFont() 572 | font.setFamily("Open Sans Light") 573 | font.setPointSize(10) 574 | self.label_20.setFont(font) 575 | self.label_20.setStyleSheet("background-color: none;\n" 576 | "color: rgba(0, 0, 0, 150);") 577 | self.label_20.setObjectName("label_20") 578 | self.label_13 = QtWidgets.QLabel(self.frame_9) 579 | self.label_13.setGeometry(QtCore.QRect(330, 140, 211, 171)) 580 | self.label_13.setStyleSheet("background-color: none;") 581 | self.label_13.setText("") 582 | self.label_13.setPixmap(QtGui.QPixmap("./pic/help_page.png")) 583 | self.label_13.setObjectName("label_13") 584 | self.frame_9.raise_() 585 | self.frame_8.raise_() 586 | self.stackedWidget.addWidget(self.help) 587 | Root_page.setCentralWidget(self.centralwidget) 588 | 589 | self.retranslateUi(Root_page) 590 | self.stackedWidget.setCurrentIndex(0) 591 | self.quit_button_2.clicked.connect(Root_page.close) 592 | self.quit_button.clicked.connect(Root_page.close) 593 | self.quit_button_3.clicked.connect(Root_page.close) 594 | self.quit_button_4.clicked.connect(Root_page.close) 595 | self.quit_button_5.clicked.connect(Root_page.close) 596 | QtCore.QMetaObject.connectSlotsByName(Root_page) 597 | 598 | def retranslateUi(self, Root_page): 599 | _translate = QtCore.QCoreApplication.translate 600 | Root_page.setWindowTitle(_translate("Root_page", "MainWindow")) 601 | self.label_2.setText(_translate("Root_page", "Easy Translate with Voice Asistant ")) 602 | self.label_3.setText(_translate("Root_page", "Please Star this Project in github")) 603 | self.label_4.setText(_translate("Root_page", "Thanks :)")) 604 | self.n0.setText(_translate("Root_page", "Name Movie")) 605 | self.label_6.setText(_translate("Root_page", "Movie suggestion")) 606 | self.label_7.setText(_translate("Root_page", "Say the name of your favorite movie,")) 607 | self.label_8.setText(_translate("Root_page", " I will list similar movies :)")) 608 | self.translated_2.setText(_translate("Root_page", "Coming Soon!!")) 609 | self.label_10.setText(_translate("Root_page", "will be added :")) 610 | self.label_11.setText(_translate("Root_page", "+ Dark And Light mode")) 611 | self.label_12.setText(_translate("Root_page", "+ Add custom command")) 612 | self.label_14.setText(_translate("Root_page", "Commands :")) 613 | self.label_15.setText(_translate("Root_page", "Movie : Helps you find your favorite movies")) 614 | self.label_16.setText(_translate("Root_page", "Translate : Say the word you want me to translate")) 615 | self.label_17.setText(_translate("Root_page", "Type : You read I type in Notepad")) 616 | self.label_18.setText(_translate("Root_page", "Shutdown : Shutdown your system")) 617 | self.label_19.setText(_translate("Root_page", "Restart : Restart your system")) 618 | self.label_20.setText(_translate("Root_page", "Sleep : Sleep your system")) 619 | -------------------------------------------------------------------------------- /funcs/Translate.py: -------------------------------------------------------------------------------- 1 | import time 2 | from selenium import webdriver 3 | 4 | 5 | def translate(keyword): 6 | PATH = 'C:\Program Files (x86)/chromedriver.exe' 7 | 8 | driver = webdriver.Chrome(PATH) 9 | 10 | driver.get('https://www.google.com/search?q=%D8%AA%D8%B1%D8%AC%D9%85%D9%87&oq=%D8%AA%D8%B1%D8%AC%D9%85%D9%87&aqs=chrome..69i57j0i512l9.1474j0j15&sourceid=chrome&ie=UTF-8') 11 | 12 | search = driver.find_element_by_id('tw-source-text-ta') 13 | search.send_keys(keyword) 14 | try: 15 | time.sleep(1) 16 | translated = (driver.find_element_by_id('tw-target-text')).text 17 | if translated == 'Translation': 18 | return 'False, Try again' 19 | else: 20 | return translated 21 | finally: 22 | driver.quit() -------------------------------------------------------------------------------- /funcs/movie.py: -------------------------------------------------------------------------------- 1 | from selenium import webdriver 2 | from selenium.webdriver.common.keys import Keys 3 | from selenium.webdriver.common.by import By 4 | from selenium.webdriver.support.ui import WebDriverWait 5 | from selenium.webdriver.support import expected_conditions as EC 6 | 7 | 8 | def movie(keyword): 9 | PATH = 'C:\Program Files (x86)/chromedriver.exe' 10 | 11 | driver = webdriver.Chrome(PATH) 12 | 13 | driver.get('https://www.movie-map.com/') 14 | 15 | search = driver.find_element_by_id('f') 16 | search.send_keys(keyword) 17 | search.send_keys(Keys.RETURN) 18 | 19 | movie_lst = list() 20 | 21 | try: 22 | main = WebDriverWait(driver, 10).until( 23 | EC.presence_of_element_located((By.ID, 'gnodMap')) 24 | ) 25 | movies = main.find_elements_by_css_selector('a.S') 26 | for name in movies: 27 | name_movie = name.text 28 | movie_lst.append(name_movie) 29 | return movie_lst 30 | finally: 31 | driver.quit() -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import datetime 2 | import os 3 | import speech_recognition as sr 4 | import subprocess 5 | import pyttsx3 6 | from PyQt5.QtWidgets import * 7 | from PyQt5.QtCore import * 8 | from funcs.movie import movie 9 | from funcs.Translate import translate 10 | from Ui.root_page import Ui_Root_page 11 | 12 | NOTE_STR = ['make a note', 'remember this', 'type this', 'type'] 13 | SLEEP_STR = ['sleep'] 14 | SHUT_STR = ['shut down'] 15 | RESTART_STR = ['restart'] 16 | MOVIE_STR = ['search movie', 'movie'] 17 | TRANSLATE_STR = ['translate'] 18 | 19 | 20 | class Root(QMainWindow): 21 | 22 | def __init__(self): 23 | QMainWindow.__init__(self) 24 | self.ui = Ui_Root_page() 25 | self.ui.setupUi(self) 26 | 27 | self.setWindowFlag(Qt.FramelessWindowHint) 28 | self.setAttribute(Qt.WA_TranslucentBackground) 29 | self.show() 30 | 31 | self.ui.set_button.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.setting)) 32 | self.ui.set_button_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.setting)) 33 | self.ui.set_button_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.setting)) 34 | self.ui.set_button_4.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.setting)) 35 | self.ui.set_button_5.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.setting)) 36 | 37 | self.ui.rec_button.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.main_page)) 38 | self.ui.rec_button.clicked.connect(self.work) 39 | self.ui.rec_button_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.main_page)) 40 | self.ui.rec_button_2.clicked.connect(self.work) 41 | self.ui.rec_button_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.main_page)) 42 | self.ui.rec_button_3.clicked.connect(self.work) 43 | self.ui.rec_button_4.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.main_page)) 44 | self.ui.rec_button_4.clicked.connect(self.work) 45 | self.ui.rec_button_5.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.main_page)) 46 | self.ui.rec_button_5.clicked.connect(self.work) 47 | 48 | self.ui.help_button.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.help)) 49 | self.ui.help_button_2.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.help)) 50 | self.ui.help_button_3.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.help)) 51 | self.ui.help_button_4.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.help)) 52 | self.ui.help_button_5.clicked.connect(lambda: self.ui.stackedWidget.setCurrentWidget(self.ui.help)) 53 | 54 | def mousePressEvent(self, evt): 55 | self.oldPos = evt.globalPos() 56 | 57 | def mouseMoveEvent(self, evt): 58 | 59 | delta = QPoint(evt.globalPos() - self.oldPos) 60 | self.move(self.x() + delta.x(), self.y() + delta.y()) 61 | self.oldPos = evt.globalPos() 62 | 63 | def speak(self, txt): 64 | engine = pyttsx3.init() 65 | engine.say(txt) 66 | engine.runAndWait() 67 | 68 | def get_audio(self): 69 | r = sr.Recognizer() 70 | with sr.Microphone() as source: 71 | audio = r.listen(source) 72 | said = '' 73 | 74 | try: 75 | said = r.recognize_google(audio) 76 | except: 77 | pass 78 | return said.lower() 79 | 80 | def note(self, txt): 81 | date = datetime.datetime.now() 82 | name = str(date).replace(':', '-') 83 | filename = name[20:] + '-note.txt' 84 | with open(filename, 'w', encoding='utf-8') as file: 85 | file.write(txt) 86 | 87 | subprocess.Popen(['notepad.exe', filename]) 88 | 89 | def work(self): 90 | self.speak('I am ready') 91 | text = self.get_audio() 92 | count = 0 93 | 94 | for phrase in NOTE_STR: 95 | if phrase in text: 96 | self.speak('What would you like me to write down?') 97 | write_down = self.get_audio() 98 | self.note(write_down) 99 | self.speak("I've made a note of that.") 100 | count += 1 101 | 102 | for phrase in SLEEP_STR: 103 | if phrase in text: 104 | self.speak('Are you sure?') 105 | result = self.get_audio() 106 | if result == 'yes': 107 | os.system("rundll32.exe powrprof.dll,SetSuspendState 0,1,0") 108 | else: 109 | self.speak('The operation was canceled') 110 | count += 1 111 | 112 | for phrase in SHUT_STR: 113 | if phrase in text: 114 | self.speak('Are you sure?') 115 | result = self.get_audio() 116 | if result == 'yes': 117 | os.system("shutdown /s /t 1") 118 | else: 119 | self.speak('The operation was canceled') 120 | 121 | for phrase in RESTART_STR: 122 | if phrase in text: 123 | self.speak('Are you sure?') 124 | result = self.get_audio() 125 | if result == 'yes': 126 | os.system("shutdown /r /t 1") 127 | else: 128 | self.speak('The operation was canceled') 129 | 130 | for phrase in MOVIE_STR: 131 | if phrase in text: 132 | self.ui.stackedWidget.setCurrentWidget(self.ui.movie) 133 | self.speak('Say the name of your favorite movie') 134 | name = self.get_audio() 135 | movies = movie(name) 136 | self.ui.n0.setText(name) 137 | count = 0 138 | for movie_name in movies: 139 | if count == 1: 140 | self.ui.lst0.setText(movie_name) 141 | elif count == 2: 142 | self.ui.lst1.setText(movie_name) 143 | elif count == 3: 144 | self.ui.lst2.setText(movie_name) 145 | elif count == 4: 146 | self.ui.lst00.setText(movie_name) 147 | elif count == 5: 148 | self.ui.lst11.setText(movie_name) 149 | elif count == 6: 150 | self.ui.lst22.setText(movie_name) 151 | elif count == 7: 152 | self.ui.lst000.setText(movie_name) 153 | elif count == 8: 154 | self.ui.lst111.setText(movie_name) 155 | elif count == 9: 156 | self.ui.lst222.setText(movie_name) 157 | elif count == 10: 158 | self.ui.lst0000.setText(movie_name) 159 | elif count == 11: 160 | self.ui.lst1111.setText(movie_name) 161 | elif count == 12: 162 | self.ui.lst2222.setText(movie_name) 163 | count += 1 164 | 165 | for phrase in TRANSLATE_STR: 166 | if phrase in text: 167 | self.speak('Say your word') 168 | word = self.get_audio() 169 | translated = translate(word) 170 | self.ui.stackedWidget.setCurrentWidget(self.ui.page_2) 171 | self.ui.translated.setText(translated) 172 | 173 | # for phrase in PRIVATE1: 174 | # if phrase != '@am@#': 175 | # if phrase in text: 176 | # pass 177 | 178 | 179 | if __name__ == '__main__': 180 | import sys 181 | app = QApplication(sys.argv) 182 | root = Root() 183 | sys.exit(app.exec_()) 184 | -------------------------------------------------------------------------------- /pic/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/help.png -------------------------------------------------------------------------------- /pic/help_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/help_page.png -------------------------------------------------------------------------------- /pic/movie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/movie.png -------------------------------------------------------------------------------- /pic/quit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/quit.png -------------------------------------------------------------------------------- /pic/record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/record.png -------------------------------------------------------------------------------- /pic/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/setting.png -------------------------------------------------------------------------------- /pic/setting_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/setting_page.png -------------------------------------------------------------------------------- /pic/translate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ImAyrix/Voice-Assistant/d8ddc28a389486c8680cd6411430b86fba4ae84d/pic/translate.png --------------------------------------------------------------------------------