Cumartesi, Ekim 31, 2020

Python Kullanarak Sanal Asistan Yapın! – JarvisAI Kütüphanesi

AI asistanı veya dijital asistan olarak da adlandırılan sanal asistan, doğal dildeki sesli komutları anlayan ve kullanıcı için bu sesli komutları yerine getiren yapay zeka tabanlı bir uygulamadır. Günümüzde kullanılan birçok popüler sanal asistan vardır. Bunlardan başlıcaları, Amazon Alexa, Apple Siri, Google Asistant ve Microsoft Cortona’dır. Bu yazımızda ise, Python programlama dilini kullanarak sanal asistan nasıl yapılır, bunu öğreneceğiz.

Sanal asistanımız, hava tahmini, oyun başlatma, Windows uygulamalarını başlatma, Web sitelerini açma, güncel haberleri anlatma gibi eylemleri gerçekleştiriyor olacaktır. Sanal asistan ile iletişim kurmak için dizüstü bilgisayarınızın mikrofonunu kullanabilirsiniz. Sanal asistan tarafından üretilen yanıt, konsolda veya hoparlör aracılığıyla bir konuşma olarak görüntülenecektir. Hadi o zaman başlayalım!

Gerekli Paketler ve Kütüphaneler

Öncelikle en yeni sanal asistan modülü olan JarvisAI‘yi yükleyin. Bu modülü kullanabilmek için Python 3.6 ve üzeri sürümü gereklidir. Bu modülü aşağıdaki komudu, terminalinize yazarak yükleyebilirsiniz.

pip install JarvisAI

Bu kütüphaneyi yükledikten sonra projenize aktarabilirsiniz.

import JarvisAI

obj = JarvisAI.JarvisAsistant()

response = obj.mic_input()

print(response)

JarvisAI kütüphanesinden bir nesne oluşturduk. Bu nesne, içinde belli başlı fonksiyonları içerir. Bunlar:

  • mic_input
  • text2speech
  • shutdown
  • website_opener
  • send_mail
  • tell_me_date
  • tell_me_time
  • launch_any_app
  • weather
  • news
  • tell_me

Daha sonra kod içerisinde gerekli olacak 3 kütüphanemizi daha ekliyoruz.

import re
import pprint
import random

Ardından, t2s adlı bir fonksiyon oluşturduk. Bu fonksiyon yazılı metinleri konuşmaya dönüştürür. Tüm program boyunca, metinden konuşma üretmek için bu fonksiyonu kullanıyor olacağız.

def t2s (metin): 
    obj.text2speech (metin)

Kullanıcıdan gelen girdileri sürekli olarak dinlemek istiyoruz, bu nedenle bu ‘mic_input ()’ bilgisayarın mikrofonundan sürekli olarak ses almaya çalışacaktır. Sesi işleyecek ve metni ‘res’ değişkeninde döndürecektir. Kullanıcı girdisine göre bazı eylemler gerçekleştirmek için bu ‘res’ değişkenini kullanabiliriz.

while True:
    res = obj.mic_input()

Hava Durumu Tahmini:

Kullanıcı girdisindeki sorguları anlamak için Regular Expression(Düzenli İfade) kullanıyoruz. Eğer kullanıcının sorgusunda “hava”, “sıcaklık” gibi ifadeler geçiyorsa, hava durumu tahmini yapmak istediğimiz sanal asistan tarafından anlaşılıyor. Şehri kullanıcı girişinden almanız ve hava durumu fonksiyonuna aktarmanız yeterlidir. Şehriniz için hava tahminini size söyleyecektir.

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)

Haberler

Mantığı tamamen hava durumu tahminiyle aynı. Eğer kullanıcı girişinde “haberler” ifadesi bulunuyorsa, obj.news() objesi çağırılarak güncel haberleri size söylecektir.

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])

Neredeyse her şeyi anlatır

İstediğiniz bir konu hakkında, Wikipedia’dan veri çeker ve bir dizge olarak size geri döndürür. “obj.tell_me(topic)” komudunu kullanabilirsiniz.

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)

Tarih ve Saat

Size sisteminizin güncel tarihini ve saatini söyleyecektir.

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)

Herhangi bir web sitesini açın

“obj.website_opener(alan_adi)” komutu sizin için herhangi bir web sitesini açar. Alan adını kullanıcı girişinden almanız ve ardından “obj.website_opener(alan)” fonksiyonuna geçmeniz yeterlidir. Web sitesini varsayılan tarayıcınızda açacaktır.

if re.search('open', res):
        domain = res.split(' ')[-1]
        open_result = obj.website_opener(domain)
        print(open_result)

Herhangi bir uygulamayı, oyunu, vb. başlatın

Bu diğerlerinden biraz daha farklı. Çalıştırmak istediğiniz uygulamayı bir sözlük içinde, anahtarı uygulama adı, değeri ise o uygulamanın exe yolu olarak tanımlamanız gerekmektedir. Aşağıdaki kod sadece Chrome ve League of Legends çalıştırıyor. Siz dilediğiniz uygulamayı ekleyebilirsiniz.

if re.search('launch', res):
        dict_app = {
            'chrome': 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe',
            "league of legends": 'C:\Riot Games\League of Legends\LeagueClient.exe'
        }

        app = res.split(' ', 1)[1]
        path = dict_app.get(app)
if path is None:
            t2s('Uygulama yolu bulunamadı')
            print('Uygulama yolu bulunamadı')
else:
            t2s('Launching: ' + app)
            obj.launch_any_app(path_of_app=path)

Bu yazımızda, Python ile sanal asistan yapmayı öğrendik. JarvisAI kütüphanesini kullanarak daha farklı, daha çeşitli şeyler yapabilirsiniz.

Bugün En Çok Okunanlar

Nükleer Motor: NASA İnsanları Sadece Üç Ayda Mars’a Taşıyacak

NASA, ilk insan mürettebatını 2030'lu yıllarda Mars'a göndermeyi hedefliyor. Nasa için tasarlanan nükleer motor ile birlikte 40 milyon milden fazla yolculuğu şu...

Apple One abonelik paketi 30 Ekim’de başlıyor

Arcade, Müzik, TV +, iCloud ve daha fazlası. Elma resmen ortaya “Apple biri” abonelik paket kısmındaki geri İzle olay Eylül ayında. Bugün, şirketin üç aylık...

Apple Watch Kurulumu: Saatinizden En İyi Şekilde Yararlanmak İçin Basit İpuçları

Apple Watch sofistike ancak kullanımı kolay bir teknoloji ürünüdür. Eğer bir Apple Watch satın aldıysanız, bir sonraki adım nasıl kurulacağını öğrenmektir. Ne...

Nükleer Motor: NASA İnsanları Sadece Üç Ayda Mars’a Taşıyacak

NASA, ilk insan mürettebatını 2030'lu yıllarda Mars'a göndermeyi hedefliyor. Nasa için tasarlanan nükleer motor ile birlikte 40 milyon milden fazla yolculuğu şu...

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen adınızı buraya girin