首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想为我的贾维斯AI做个热词

我想为我的贾维斯AI做个热词
EN

Stack Overflow用户
提问于 2020-12-25 08:42:44
回答 1查看 1.1K关注 0票数 0

我想问是否有办法为我的JARVIS AI在python 3.7.6(windows 7)中制作一个热词。我想让JARVIS在我说“嘿Jarvis”(就像嘿siri)时被激活。我的贾维斯的代码如下所示。我曾尝试过名为lshotword的库,但它给出了一个错误,名为没有名为tensorflow的模块。

代码语言:javascript
复制
import pyttsx3

import speech_recognition as sr
import datetime
import wikipedia
import time
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import pyautogui
# Use female voice
import pyperclip
hiddenimports = [
   'pyttsx3.drivers',
   'pyttsx3.drivers.dummy',
   'pyttsx3.drivers.espeak',
   'pyttsx3.drivers.nsss',
   'pyttsx3.drivers.sapi5', ]

engine = pyttsx3.init('sapi5')

voices = engine.getProperty('voice')
engine.setProperty('voice', voices)
engine.setProperty('rate', 150)
engine.setProperty('volume', 10)

def speak(audio):
 engine.say(audio)
 engine.runAndWait()

def wishMe():
   hour = int(datetime.datetime.now().hour)
   if hour>=0 and hour<12:
       speak("Good Morning!")
   elif hour>=12 and hour<18:
       speak("Good Afternoon!")
   else:
       speak("Good Evening!")
   speak("I am friday, is there anything to help you sir?")

def takecommand():
   r = sr.Recognizer()
   with sr.Microphone() as source:
       print("Listening....")
       r.pause_threshold = 1
       audio = r.listen(source)
   try:
    print("Recognizing....")
    query = r.recognize_google(audio, language='en-in')
    print(f"user said: {query}\n")
   except Exception as e:
     print(e)
     return "None"
   return query


def typenh():
   r = sr.Recognizer()
   with sr.Microphone() as source:
       print("Listening....")
       r.pause_threshold = 1
       audio = r.listen(source)
   try:
    print("Recognizing....")
    typethingh = r.recognize_google(audio, language='hi')
    print(f"user said: {typethingh}\n")
   except Exception as e:
     print(e)
     speak("sorry I could not understand, say that again please...")
     return "None"
   return typethingh



if __name__ == "__main__": 
   wishMe()
   while True:
    query = takecommand().lower()
    query.replace("could you", "")
    query.replace("please", "")
    if 'wikipedia' in query:
           speak('searching Wikipedia...')
           query = query.replace("wikipedia", "")
           results = wikipedia.summary(query, sentences=2)
           speak("according to wikipedia")
           speak(results)
    if 'manav sampada' in query:
           speak('loging in to manav sampada')
           browser = webdriver.Chrome('D:\\chromedriver.exe')
           browser.get('http://ehrms.upsdc.gov.in/')
           elem = browser.find_element_by_partial_link_text('eHRMS Login')
           elem.get_attribute('href')
           time.sleep(1)
           elem.click()
           time.sleep(1)
           loginr = browser.find_element_by_xpath('//*[@id="txtusername"]')
           loginr.send_keys('your id ')
           time.sleep(1)
           select = Select(browser.find_element_by_id('ddldept'))
           select.select_by_visible_text('Basic Education')
           time.sleep(1)
           password = browser.find_element_by_xpath('//*[@id="txtpwd"]')
           password.send_keys('your password')
           speak('sir I have filled all userID password etc. but ')
           speak('sir you have to fill the human verification captha by yourself as I am just a bot ')
           speak('I hope I was able to assist you')
    if 'software' in query:
           speak('opening sir')
           query = query.replace("software", "")
           pyautogui.click(27, 880)
           pyautogui.typewrite(query)
           time.sleep(1)
           pyautogui.click(79,441)
    if 'send' and 'gmail' in query:
           speak('opening gmail')
           browser = webdriver.Chrome('D:\\chromedriver.exe')
           browser.get('https://accounts.google.com/b/0/AddMailService')
           time.sleep(1)
           login = browser.find_element_by_xpath('//*[@id="identifierId"]')
           login.send_keys('your gmail id @gmail.com')
           login.send_keys(Keys.ENTER)
           time.sleep(1)
           loginpwd = browser.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input')
           loginpwd.send_keys('your awesom password here')
           loginpwd.send_keys(Keys.ENTER)
           time.sleep(10)
           try:
               speak('just a sec')
               compose = browser.find_element_by_class_name('z0')
               time.sleep(2)
               compose.click()
               time.sleep(1)
               speak('whom do you want to send the gmail')
               sendto = takecommand().lower()
               sendto = ''.join(sendto.split())
               tom = browser.find_element_by_name('to')
               tom.send_keys(sendto)
               speak('what is the subject?')
               subject = browser.find_element_by_name('subjectbox')
               time.sleep(0.5)
               
               whatissu = takecommand()
               subject.send_keys(whatissu)
               body = browser.find_element_by_name('Message Body')
               speak('what is the main body?')
               mainbody = takecommand()
               body.send_keys(mainbody)

           except Exception as identifier:
               compose = browser.find_element_by_xpath('//*[@id=":jm"]/div/div')
               time.sleep(1)
               compose.click()
               time.sleep(1)
               speak('whom do you want to send the gmail')
               sendto = takecommand().lower()
               sendto = ''.join(sendto.split())
               tom = browser.find_element_by_name('to')
               tom.send_keys(sendto)                                                   
               subject = browser.find_element_by_name('subjectbox')
               time.sleep(0.5)
               speak('what is the subject?')
               whatissu = takecommand()
               subject.send_keys(whatissu)
               body = browser.find_element_by_name('Message Body')
               speak('what is the main body?')
               mainbody = takecommand()
               body.send_keys(mainbody)            
       
    if 'hindi' in query:
       speak('what to type?')
       typethingh = typenh()
       content = typethingh
       pyperclip.copy(content)
       time.sleep(0.5)
       pyautogui.hotkey('ctrl', 'v')

    if 'do you have a boyfriend' in query:
        speak('I am happy to be single')

    if 'siri' in query:
        speak('siri is smart but I dont like him')

    if 'how are you' in query:
        speak('I am good ')

    if 'i hate you' in query:
        speak('than go to siri or google. why are you even talking to me')

    if 'who is your creator' in query:
        speak("my creater is aditya maurya")

    if 'who made you' in query:
        speak('aditya maurya made me. he is also known as estriadi')

    if 'who created you' in query:
        speak('aditya maurya created me    ')

    if 'whatsapp' in query:
        browser = webdriver.Chrome('D:\\chromedriver.exe')
        speak('opening whatsapp web')
        browser.get('https://web.whatsapp.com/')
        speak('please scan the qr code. I am waiting for 10 seconds')
        time.sleep(10)
        try:
            find = browser.find_element_by_xpath('//*[@id="side"]/div[1]/div/label/div/div[2]')
            find.click()
            speak('tell the first word of the contact to whom you want to send the messege')
            sendmsg = takecommand()
            find.send_keys(sendmsg)
            time.sleep(1.5)
            find.send_keys(Keys.ENTER)
            try:
                typenum = browser.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')
                typenum.click()
                speak('what do you want to send sir?')
                whattosend = takecommand()
                typenum.send_keys(whattosend)
                typenum.send_keys(Keys.ENTER)
            except Exception as identifier:
                speak('there is no contact as'+sendmsg)
        except Exception as identifier:
            speak('you did not make it in 10 seconds')


    if 'quit' in query:
       exit()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-25 14:12:22

基本上,你想在一开始就听着嘿Jarvis,如果你听到了,就执行剩下的代码。

我就是这样做的:

代码语言:javascript
复制
import pyttsx3

import speech_recognition as sr
import datetime
import wikipedia
import time
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import pyautogui
# Use female voice
import pyperclip
hiddenimports = [
   'pyttsx3.drivers',
   'pyttsx3.drivers.dummy',
   'pyttsx3.drivers.espeak',
   'pyttsx3.drivers.nsss',
   'pyttsx3.drivers.sapi5', ]

engine = pyttsx3.init('sapi5')

voices = engine.getProperty('voice')
engine.setProperty('voice', voices)
engine.setProperty('rate', 150)
engine.setProperty('volume', 10)

def speak(audio):
 engine.say(audio)
 engine.runAndWait()

def wishMe():
   hour = int(datetime.datetime.now().hour)
   if hour>=0 and hour<12:
       speak("Good Morning!")
   elif hour>=12 and hour<18:
       speak("Good Afternoon!")
   else:
       speak("Good Evening!")
   speak("I am friday, is there anything to help you sir?")

def takecommand():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        print("Listening....")
        r.pause_threshold = 1
        audio = r.listen(source)
    try:
        print("Recognizing....")
        query = r.recognize_google(audio, language='en-in')
        print(f"user said: {query}\n")
    except Exception as e:
        print(e)
        return "None"
    return query


def typenh():
   r = sr.Recognizer()
   with sr.Microphone() as source:
       print("Listening....")
       r.pause_threshold = 1
       audio = r.listen(source)
   try:
    print("Recognizing....")
    typethingh = r.recognize_google(audio, language='hi')
    print(f"user said: {typethingh}\n")
   except Exception as e:
     print(e)
     speak("sorry I could not understand, say that again please...")
     return "None"
   return typethingh

i = 0

#Edited From Here
n = 0
k = 0

print("Say Hey Jarvis To Begin Initiation Sequence") #Sounds SICK Right!
while (i<1):
    r = sr.Recognizer()
    with sr.Microphone() as source:
        audio = r.adjust_for_ambient_noise(source)
        n=(n+1)
        audio = r.listen(source)
        # interprete audio (Google Speech Recognition)
    try:
        s = (r.recognize_google(audio))
        message = (s.lower())

        if message == "hey jarvis":
            wishMe()
            k = 0
            while k == 0:
                query = takecommand().lower()
                query.replace("could you", "")
                query.replace("please", "")

                if 'sleep' in query:
                    speak("Entering Sleep Mode. Say Hey Jarvis To Wake Me Up!")
                    k = 1
                    print("Say Hey Jarvis To Begin Initiation Sequence")
                    #Editing Ends Here
                if 'wikipedia' in query:
                       speak('searching Wikipedia...')
                       query = query.replace("wikipedia", "")
                       results = wikipedia.summary(query, sentences=2)
                       speak("according to wikipedia")
                       speak(results)
                if 'manav sampada' in query:
                       speak('loging in to manav sampada')
                       browser = webdriver.Chrome('D:\\chromedriver.exe')
                       browser.get('http://ehrms.upsdc.gov.in/')
                       elem = browser.find_element_by_partial_link_text('eHRMS Login')
                       elem.get_attribute('href')
                       time.sleep(1)
                       elem.click()
                       time.sleep(1)
                       loginr = browser.find_element_by_xpath('//*[@id="txtusername"]')
                       loginr.send_keys('your id ')
                       time.sleep(1)
                       select = Select(browser.find_element_by_id('ddldept'))
                       select.select_by_visible_text('Basic Education')
                       time.sleep(1)
                       password = browser.find_element_by_xpath('//*[@id="txtpwd"]')
                       password.send_keys('your password')
                       speak('sir I have filled all userID password etc. but ')
                       speak('sir you have to fill the human verification captha by yourself as I am just a bot ')
                       speak('I hope I was able to assist you')
                if 'software' in query:
                       speak('opening sir')
                       query = query.replace("software", "")
                       pyautogui.click(27, 880)
                       pyautogui.typewrite(query)
                       time.sleep(1)
                       pyautogui.click(79,441)
                if 'send' and 'gmail' in query:
                       speak('opening gmail')
                       browser = webdriver.Chrome('D:\\chromedriver.exe')
                       browser.get('https://accounts.google.com/b/0/AddMailService')
                       time.sleep(1)
                       login = browser.find_element_by_xpath('//*[@id="identifierId"]')
                       login.send_keys('your gmail id @gmail.com')
                       login.send_keys(Keys.ENTER)
                       time.sleep(1)
                       loginpwd = browser.find_element_by_xpath('//*[@id="password"]/div[1]/div/div[1]/input')
                       loginpwd.send_keys('your awesom password here')
                       loginpwd.send_keys(Keys.ENTER)
                       time.sleep(10)
                       try:
                           speak('just a sec')
                           compose = browser.find_element_by_class_name('z0')
                           time.sleep(2)
                           compose.click()
                           time.sleep(1)
                           speak('whom do you want to send the gmail')
                           sendto = takecommand().lower()
                           sendto = ''.join(sendto.split())
                           tom = browser.find_element_by_name('to')
                           tom.send_keys(sendto)
                           speak('what is the subject?')
                           subject = browser.find_element_by_name('subjectbox')
                           time.sleep(0.5)
                           
                           whatissu = takecommand()
                           subject.send_keys(whatissu)
                           body = browser.find_element_by_name('Message Body')
                           speak('what is the main body?')
                           mainbody = takecommand()
                           body.send_keys(mainbody)

                       except Exception as identifier:
                           compose = browser.find_element_by_xpath('//*[@id=":jm"]/div/div')
                           time.sleep(1)
                           compose.click()
                           time.sleep(1)
                           speak('whom do you want to send the gmail')
                           sendto = takecommand().lower()
                           sendto = ''.join(sendto.split())
                           tom = browser.find_element_by_name('to')
                           tom.send_keys(sendto)                                                   
                           subject = browser.find_element_by_name('subjectbox')
                           time.sleep(0.5)
                           speak('what is the subject?')
                           whatissu = takecommand()
                           subject.send_keys(whatissu)
                           body = browser.find_element_by_name('Message Body')
                           speak('what is the main body?')
                           mainbody = takecommand()
                           body.send_keys(mainbody)            
                   
                if 'hindi' in query:
                   speak('what to type?')
                   typethingh = typenh()
                   content = typethingh
                   pyperclip.copy(content)
                   time.sleep(0.5)
                   pyautogui.hotkey('ctrl', 'v')

                if 'do you have a boyfriend' in query:
                    speak('I am happy to be single')

                if 'siri' in query:
                    speak('siri is smart but I dont like him')

                if 'how are you' in query:
                    speak('I am good ')

                if 'i hate you' in query:
                    speak('than go to siri or google. why are you even talking to me')

                if 'who is your creator' in query:
                    speak("my creater is John Cena(The OG Himself)")

                if 'who made you' in query:
                    speak('John Cena Made e. He Is An OG!')

                if 'who created you' in query:
                    speak('Booooob The BUILDER!!!')

                if 'whatsapp' in query:
                    browser = webdriver.Chrome('D:\\chromedriver.exe')
                    speak('opening whatsapp web')
                    browser.get('https://web.whatsapp.com/')
                    speak('please scan the qr code. I am waiting for 10 seconds')
                    time.sleep(10)
                    try:
                        find = browser.find_element_by_xpath('//*[@id="side"]/div[1]/div/label/div/div[2]')
                        find.click()
                        speak('tell the first word of the contact to whom you want to send the messege')
                        sendmsg = takecommand()
                        find.send_keys(sendmsg)
                        time.sleep(1.5)
                        find.send_keys(Keys.ENTER)
                        try:
                            typenum = browser.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')
                            typenum.click()
                            speak('what do you want to send sir?')
                            whattosend = takecommand()
                            typenum.send_keys(whattosend)
                            typenum.send_keys(Keys.ENTER)
                        except Exception as identifier:
                            speak('there is no contact as'+sendmsg)
                    except Exception as identifier:
                        speak('you did not make it in 10 seconds')


                if 'quit' in query:
                   exit()

    except Exception as e:
        pass

让我解释一下:

在第76行,我定义了两个我们以后需要的变量:n和k。在第79行,我打印了一条消息,告诉用户说‘嘿Jarvis’来启动AI。在第80行,我启动了一个while循环。这个循环只听嘿Jarvis和嘿Jarvis!

while循环非常类似于您的函数takecommand(),因此我不解释。

在第91行,它检查查询/消息是否仅等于‘嘿Jarvis’。如果是,那么它将开始执行您的代码。

我所做的最后编辑是将AI返回到休眠模式,然后再一次等待用户说‘嘿,Jarvis’。

如果对AI说“睡眠”,那么它就会告诉用户它将进入睡眠模式。然后,它将k更改为等于1,这会中断while循环,因为while循环的工作时间为k == 0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65446590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档