You are on page 1of 4

import os

import playsound
import speech_recognition as sr
import time
import sys
import ctypes
import wikipedia
import datetime
import json
import re
import webbrowser
import smtplib
import requests
import pyttsx3
import urllib
import urllib.request as urllib2
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from time import strftime
from gtts import gTTS
from youtube_search import YoutubeSearch
# ngôn ngữ máy nói ra
language = 'vi'
path = ChromeDriverManager().install()
wikipedia.set_lang('vi')
r =sr.Recognizer()
# nơi phát âm thanh ra
def speak(text):
print("Sen:{}".format(text))
tts = gTTS(text=text,lang='vi')
filename = 'voice.mp3'
tts.save(filename)
playsound.playsound(filename)
os.remove(filename)

# hàm nhận âm
def get_voice():
r = sr.Recognizer()
with sr.Microphone() as source:
print("sen: ", end = '')
audio = r.listen(source, phrase_time_limit=5)
try:
text = r.recognize_google(audio, language="vi-VN")#(bản recognize
cập nhật )
print(text)
return text
except:
print("...")
return 0

def stop():
speak("Hẹn gặp lại bạn nhé!")

def get_text():
for i in range(2):
text = get_voice()
if text:
return text.lower()
elif i < 1:
speak("Sen không nghe rõ, bạn có thể nói lại không ?")
time.sleep(2)
stop()
return ''
# chức năng
def open_website(text):
regex = re.search ('mở (.+)', text)
if regex:
domain = regex.group(1)
url = 'https://www.' + domain
webbrowser.open(url)
speak("Trang web của bạn đã được mở lên!")
return True
else:
return False

def get_time(text):
now = datetime.datetime.now()
if "bây giờ là" in text:
speak("Bây giờ là %d giờ %d phút" % (now.hour, now.minute))
else:
speak("sen không hiểu")

def play_youtube():
speak("Xin mời bạn chọn bài hát")
time.sleep(3)
my_song = get_text()
while True:
result = YoutubeSearch(my_song, max_results = 5).to_dict()
if result:
break
url = 'https://www.youtube.com' + result[0]['url_suffix'] #type: ignore
webbrowser.open(url)
speak("Bài hát của bạn đã được mở, hãy thưởng thức nó!")

def open_application(text):
if "google" in text:
speak("Mở google chrome")
os.startfile(r"C:\Users\Public\Desktop\Google Chrome.lnk")
elif "word" in text:
speak("Mở Microsoft Word")
os.startfile(r"C:\Users\ADMIN\Desktop\Word 2016.lnk")
elif "excel" in text:
speak("Mở Microsoft Excel")
os.startfile(r"C:\Users\ADMIN\Desktop\Excel 2016.lnk")
elif "powerpoint" in text:
speak("Mở Microsoft PowerPoint")
os.startfile(r"C:\Users\ADMIN\Desktop\PowerPoint 2016.lnk")
else:
speak("Phần mềm của bạn chưa được cài đặt!")

def talk(name):
day_time = int(strftime('%H'))
if day_time < 12:
speak("Chào buổi sáng {}. Chúc bạn ngày mới tốt lành!".format(name))
elif day_time < 18:
speak("Chào buổi chiều {}!".format(name))
else:
speak("Chào buổi tối {}!".format(name))
time.sleep(5)

def tell_me():
try:
speak("Bạn muốn nghe về gì ạ!")
text = get_text()
contents = wikipedia.summary(text).split('\n')
speak(contents[0])
time.sleep(5)
for content in contents[1:]:
speak("Bạn muốn tiếp tục chương trình có hay không?")
ans = get_text()
if "Có Có" in ans:
break
speak(content)
time.sleep(5)
except:
speak("Cảm ơn bạn đã lắng nghe")

def call_sen():
speak("Xin chào, bạn tên là gì nhỉ?")
time.sleep(2)
name = get_text()
if name:
speak("Chào bạn {}".format(name))
time.sleep(2)
speak("Bạn cần Sen giúp gì ạ!")
time.sleep(2)
while True:
text = get_text()
if not text:
break
elif "xin chào" in text or "chào" in text:
talk(name)
elif "Dừng lại" in text:
stop()
break
elif "mở" in text:
if "." in text:
open_website(text)
else:
open_application(text)
elif "bây giờ là" in text:
get_time(text)
elif "chơi nhạc" in text:
play_youtube()
elif "định nghĩa" in text:
tell_me()

call_sen()

You might also like