如何使用Python建立AI虛擬助手
介紹
虛擬助手(也稱為AI助手或數字助手)是一款應用程式,可以理解自然語言的語音命令併為使用者完成任務。
我們應該都知道什麼是虛擬助手。開啟手機並說“ Ok Google”或“ Hey Siri”。Google助手,Siri,Alexa都是虛擬助手的示例。
演示和編碼YouTube視訊:
內容
- 我們要做什麼
- 程式碼說明
- 完整的程式碼
- GitHub儲存庫
- 你如何貢獻
- 參考文獻
1.我們要做什麼
我們的虛擬助手將能夠執行以下操作:
天氣預報,啟動遊戲,啟動Windows應用程式,開啟網站,告訴你幾乎你所要求的一切,告訴你日期和時間,問候,新聞等。
你可以與膝上型電腦的麥克風/控制檯進行互動。助手生成的響應將顯示在控制檯上,或者通過揚聲器直接說出來。
未來的可能:自拍,與人聊天更多,等等。
2. 程式碼說明
讓我們一起來建立自己的虛擬助手。
- 所有程式碼都可以在我的GitHub上找到。
- 我的頻道上還提供了演示YouTube視訊和程式碼YouTube視訊。
- 所需的連結和軟體包如下所述。
- 如果你願意分享,我將不勝感激。
2.1 所需的軟體包和庫
pip install JarvisAI
這是我建立的最新虛擬助手模組。它提供任何虛擬助手的基本功能。前提條件是Python版本 > 3.6。
用法和功能
安裝庫後,你可以匯入模組
import JarvisAI obj = JarvisAI.JarvisAssistant() response = obj.mic_input() print(response)
功能通過方法名稱清除。例如,你可以檢查程式碼。
- mic_input
- text2speech
- shutdown
- website_opener
- send_mail
- tell_me_date
- tell_me_time
- launch_any_app
- weather
- news
- tell_me
在這裡閱讀更多關於它的資訊
你也可以在這裡為這個儲存庫做貢獻。
2.2 編碼
導包
import JarvisAI import re import pprint import random
根據文件建立 JarvisAI的物件
obj = JarvisAI.JarvisAssistant()
我們已經建立了這個“t2s(text)”函式。這會將任何文字轉換為語音。我們將使用(呼叫)此函式的整個程式從文字產生語音。
def t2s(text): obj.text2speech(text)
我們希望不斷聽取使用者的輸入,因此此“ mic_input() ”將嘗試從計算機的麥克風中連續獲取音訊。它將處理音訊並在“ res”變數中返回文字。我們可以使用此“ res”變數根據使用者輸入執行某些操作。
while True: res = obj.mic_input()
天氣預報:我們使用正規表示式來匹配使用者輸入中的查詢。如果在使用者輸入“ res”中找到“天氣”或“溫度”,則我們要進行天氣預報。無需從頭開始編寫東西,只需呼叫“ obj.weather(city = city)”即可。
你只需要從使用者輸入中獲取城市並將其傳遞給天氣功能即可。它會告訴你你所在城市的天氣預報。
我們可以將此返回的“ weather_res”傳遞到“ t2s(weather_res)”,以從“ weather_res”字串中產生語音。
while True: res = obj.mic_input() if re.search('weather|temperature', res): city = res.split(' ')[-1] weather_res = obj.weather(city=city) print(weather_res) t2s(weather_res)
新聞:與上述類似,匹配使用者輸入“ res”中的“新聞”一詞。如果匹配,則呼叫“ obj.news”。
它將返回15條新聞作為字串列表。因此,我們可以將新聞作為“ news_res [0]”來獲取,並將其傳遞給“ t2s(news_res [0])”。
while True: res = obj.mic_input() if re.search('news', res): news_res = obj.news() pprint.pprint(news_res) t2s(f"I have found {len(news_res)} news. You can read it. Let me tell you first 2 of them") t2s(news_res[0]) t2s(news_res[1])
講述幾乎所有內容:它將從維基百科中獲取前500個字元,並將它們作為字串返回。你可以使用'obj.tell_me(topic)'。
你需要將“主題”傳遞給“ tell_me(topic = topic)”。主題是你想知道的關鍵字。
while True: res = obj.mic_input() if re.search('tell me about', res): topic = res.split(' ')[-1] wiki_res = obj.tell_me(topic) print(wiki_res) t2s(wiki_res)
日期和時間:它將告訴你係統的當前日期和時間。
while True: res = obj.mic_input() if re.search('date', res): date = obj.tell_me_date() print(date) print(t2s(date)) if re.search('time', res): time = obj.tell_me_time() print(time) t2s(time)
開啟任何網站:此'obj.website_opener(domain)'將為你開啟任何網站。你只需要從使用者輸入中獲取domain,然後傳遞給'obj.website_opener(domain)'。它將在你的預設瀏覽器中開啟網站。
while True: res = obj.mic_input() if re.search('open', res): domain = res.split(' ')[-1] open_result = obj.website_opener(domain) print(open_result)
啟動任何應用程式, 遊戲等 :
這有點棘手,在“ obj.launch_any_app(path_of_app = path)”中,你需要傳遞“ .exe”檔案路徑的函式。
因此,我們建立了“ dict_app”字典,其中以“應用名稱”作為鍵,以“路徑”作為值。我們可以使用此“ dict_app”進行查詢。如果字典中存在使用者輸入的應用程式,那麼我們將通過獲取路徑來開啟它。
以下示例僅適用於Chrome和Epic Games。
while True: res = obj.mic_input() if re.search('launch', res): dict_app = { 'chrome': 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', 'epic games': 'C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win32\EpicGamesLauncher.exe' } app = res.split(' ', 1)[1] path = dict_app.get(app) if path is None: t2s('Application path not found') print('Application path not found') else: t2s('Launching: ' + app) obj.launch_any_app(path_of_app=path)
問候和聊天,你現在可以像這樣建立問候和聊天。
我正在 https://pypi.org/project/Jarv... 上使用Tensorflow新增聊天功能。你可以為使其更好而做出貢獻。
while True: res = obj.mic_input() if re.search('hello', res): print('Hi') t2s('Hi') if re.search('how are you', res): li = ['good', 'fine', 'great'] response = random.choice(li) print(f"I am {response}") t2s(f"I am {response}") if re.search('your name|who are you', res): print("My name is Jarvis, I am your personal assistant") t2s("My name is Jarvis, I am your personal assistant")
問“ 你能做什麼 ?”:在這裡,我們只是使用“ obj.t2s()”來發表講話。如果你瞭解python,則可以輕鬆理解以下程式碼
while True: res = obj.mic_input() if re.search('what can you do', res): li_commands = { "open websites": "Example: 'open youtube.com", "time": "Example: 'what time it is?'", "date": "Example: 'what date it is?'", "launch applications": "Example: 'launch chrome'", "tell me": "Example: 'tell me about India'", "weather": "Example: 'what weather/temperature in Mumbai?'", "news": "Example: 'news for today' ", } ans = """I can do lots of things, for example you can ask me time, date, weather in your city, I can open websites for you, launch application and more. See the list of commands-""" print(ans) pprint.pprint(li_commands) t2s(ans)
3.完整的程式碼
import JarvisAI import re import pprint import random obj = JarvisAI.JarvisAssistant() def t2s(text): obj.text2speech(text) while True: res = obj.mic_input() if re.search('weather|temperature', res): city = res.split(' ')[-1] weather_res = obj.weather(city=city) print(weather_res) t2s(weather_res) if re.search('news', res): news_res = obj.news() pprint.pprint(news_res) t2s(f"I have found {len(news_res)} news. You can read it. Let me tell you first 2 of them") t2s(news_res[0]) t2s(news_res[1]) if re.search('tell me about', res): topic = res.split(' ')[-1] wiki_res = obj.tell_me(topic) print(wiki_res) t2s(wiki_res) if re.search('date', res): date = obj.tell_me_date() print(date) print(t2s(date)) if re.search('time', res): time = obj.tell_me_time() print(time) t2s(time) if re.search('open', res): domain = res.split(' ')[-1] open_result = obj.website_opener(domain) print(open_result) if re.search('launch', res): dict_app = { 'chrome': 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', 'epic games': 'C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win32\EpicGamesLauncher.exe' } app = res.split(' ', 1)[1] path = dict_app.get(app) if path is None: t2s('Application path not found') print('Application path not found') else: t2s('Launching: ' + app) obj.launch_any_app(path_of_app=path) if re.search('hello', res): print('Hi') t2s('Hi') if re.search('how are you', res): li = ['good', 'fine', 'great'] response = random.choice(li) print(f"I am {response}") t2s(f"I am {response}") if re.search('your name|who are you', res): print("My name is Jarvis, I am your personal assistant") t2s("My name is Jarvis, I am your personal assistant") if re.search('what can you do', res): li_commands = { "open websites": "Example: 'open youtube.com", "time": "Example: 'what time it is?'", "date": "Example: 'what date it is?'", "launch applications": "Example: 'launch chrome'", "tell me": "Example: 'tell me about India'", "weather": "Example: 'what weather/temperature in Mumbai?'", "news": "Example: 'news for today' ", } ans = """I can do lots of things, for example you can ask me time, date, weather in your city, I can open websites for you, launch application and more. See the list of commands-""" print(ans) pprint.pprint(li_commands) t2s(ans)
4. Github倉庫
你可以隨意使用我的程式碼。如果你喜歡我的作品,請為其點亮star;如果你喜歡,請在YouTube上訂閱。
只需克隆儲存庫
相關文章
- Python虛擬環境virtualenv建立和使用Python
- 建立python虛擬環境Python
- 建立 Python 虛擬環境Python
- 建立Python虛擬環境——下Python
- 如何使用 JavaScript 程式碼建立虛擬滑鼠點選事件JavaScript事件
- 使用 Cockpit 建立虛擬機器KPI虛擬機
- 讀寫給大家的AI極簡史筆記04虛擬助手AI筆記
- 如何建立虛擬機器上建立 Cluster 共享磁碟虛擬機
- python3.5上使用virtualenv建立虛擬環境的坑Python
- Python虛擬環境的建立和管理Python
- 使用Python虛擬環境Python
- 使用Azure REST API建立虛擬機器RESTAPI虛擬機
- anaconda建立虛擬環境指定python版本Python
- 使用Conda建立NodeJS虛擬環境NodeJS
- 使用Loom建立虛擬執行緒 - davidOOM執行緒
- Azure 基礎:使用 powershell 建立虛擬網路
- 使用 Azure CLI 建立 Linux 虛擬機器Linux虛擬機
- 在Windows下如何建立指定的虛擬環境Windows
- virtualenvwrapper 建立虛擬環境(指定版本的python)APPPython
- 在 Fedora 中使用 Cockpit 建立虛擬機器KPI虛擬機
- Python AI程式設計助手AICodeHelper使用示例詳解PythonAI程式設計
- 建立新的虛擬機器虛擬機
- anaconda建立虛擬環境
- window 建立py虛擬環境
- 建立python虛擬環境virtualenv錯誤怎麼解決?Python
- Python 如何實現以太坊虛擬機器Python虛擬機
- 在Windows中使用VirtualBox建立新的虛擬主機Windows
- AI清理助手AI
- 利用 VModule webpack plugin 建立虛擬模組WebPlugin
- VMware Workstation Pro建立虛擬機器虛擬機
- kvm純命令建立虛擬機器虛擬機
- Azure xplate cli建立虛擬機器虛擬機
- c++ 建立虛擬站點 (轉)C++
- win10 如何新增虛擬桌面_win10怎麼使用虛擬桌面Win10
- Python虛擬環境Python
- Python 虛擬機器Python虛擬機
- win10自帶虛擬機器怎麼用_window10自帶虛擬機器如何建立Win10虛擬機
- 虛擬化技術之kvm虛擬機器建立工具qemu-kvm虛擬機