Hoşgeldin Misafir

Python ses asistanı yapımı

bypatnos

DeepWeb
28 Haz 2024
614 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Python içindeki belirli modülleri kullanarak basit bir sesli asistan yapımı.
Uygulamaya başlamadan önce indirilmesi gereken bazı modüller var.
1.Wikipedia: Wikipedia’daki verilere erişimi ve ayrıştırmayı kolaylaştıran Python kütüphanesi.

Kod:
pip install wikipedia

2. Speech Recognition: Bu modül ile sesli asistanımızın mikrofonu kullanarak bizim dediklerimizi dinlemesini ve sesi yazıya çevirmeyi sağlayacağız.
Kod:
pip install SpeechRecognition
3.Pyttsx3: Python’da yazıyı konuşmaya dönüştürme kütüphanesi. Alternatif kütüphanelerden farklı olarak çevrimdışı çalışır ve hem Python 2 hem de 3 ile uyumludur.
Kod:
pip install pyttsx3
4.Datetime: Zaman işlemlerinde kullanılan bir kütüphanedir.
5.Webbrowser: Webbrowser modülü internet sayfalarının sistemdeki varsayılan tarayıcı ile açılmasını sağlar.
6.Wolframalpha: İçinde bir çok bilginin bulunduğu bir site. Bu siteden API key alarak yaptığımız projelerde wolframalpha kütüphanesini kullanabiliyoruz.
Kod:
pip install wolframalpha
Bu indirdiğimiz bütün kütüphaneleri kullanabilmek için öncelikle koda dahil etmeliyiz.

1.Sınıf ve Constructor Oluşturma
Projeyi bir class içinde oluşturacağız. O yüzden öncelikle voiceAssistant adlı bir class oluşturuyoruz. Daha sonra constructor’ının (__init__) içine main fonksiyonumuzu yolluyoruz. Main fonksiyonu yazımına en son bakacağız.

2.Akıllı Asistana İstenileni Söyletme
Akıllı asistanımıza gerekli şeyleri söyletebilmek için speak adlı bir fonksiyon oluşturuyoruz. Bu fonksiyon result adında bir parametre alıyor. Bu parametre akıllı asistanın ne söyleyeceğini belirliyor. Fonksiyon içinde öncelikle pyttsx3 kütüphanesini kullanarak engine adlı bir obje oluşturuluyor. Daha sonra say metoduna akıllı asistanın söylemesini istediğimiz parametre veriliyor. Son olarak is runAndWait methodu ile fonksiyon çalıştırılıyor.

3. Datetime Modülü Kullanımı
Akıllı asistanı ilk çalıştırdığımızda saate bakarak bize günaydın, tünaydın veya iyi akşamlar dedirtmek için datetime modülünü kullanacağız. Saati almak için öncelike hour adlı bir değişken oluşturuyoruz ve datetime.datetime.now().hour şeklinde saati alıyoruz.
Eğer saat 0–12 arasındaysa speak fonksiyonu ile akıllı asistanın günaydın demeksini sağlıyoruz ve aynı işlemleri diğer saat aralıkları için de gerçekleştiriyoruz.

4. Akıllı Asistanın Dinlemesi
Bizimle etkileşime geçebilmesi için akıllı asistanımızın bizi dinlemesini sağlamalıyız. Bunun için listen adında bir fonksiyon oluşturuyoruz. Fonksiyonun içinde akıllı asistan öncelikle speak fonksiyonunu kullanarak bize nasıl yardımcı olabileceğini soruyor. Daha sonra üstte sr olarak dahil ettiğimiz speech recognition kütüphanesini kullanarak bir Recognizer (tanıyıcı) yaratıyoruz.
Kaynak olarak mikrofonu gösterip açıyoruz ve oluşturduğumuz recognizer değişkeni ile bilgisayarın bizi dinlemesini sağlıyoruz. Ardından dinlediği sesi audio olarak döndürüyoruz.

5. Wikipedia’da Arama Yapmak
Bu işlem için search_wiki adlı bir fonksiyon oluşturuluyor ve parametre olarak bir audio değeri alıyor. Bu aldığı audio değerini speech recognition kütühanesi yardımı ile yazıya çeviriyor ve bunu phrase adlı değişkene atıyor.
Wikipedia’nın summary fonksiyonunun içine parametre olarak phrase değerini ve sentences=2 –wikipedia’da o konuyla alakalı ilk iki satır- değerlerini veriyoruz.
En son ise wikipedia’dan alınan result değerini döndürüyoruz.

6. İstenilen Seklemeleri Açmak
Bu işlem için open_tabs adlı bir fonksiyon oluşturuluyor ve parametre olarak bir audio değeri alıyor. Aynı wikipedia’da olduğu gibi bu audio’yu sese çeviriyor ve phrase değişkeninde tutuyor.
Daha sonra if blokları yardımı ile istenilen komutların phrase içinde olup olmadığına bakılıyor. Eğer komut phrase içinde var ise webbrowser yardımı ile o site açılıyor ve sesli asistan açtığı sitenin ismini söylüyor.

7. Wolframalpha Kullanımı
Wolframalpha’yı kullanmak için öncelike site üzerinden bir API KEY almalısınız. Ardından bu key ile wolframalpha içindeki client fonksiyonunu kullanarak bir client değişkeni yaratıyoruz. Oluşturduğumuz client değişkeni query fonksiyonu yardımı ile auido paramteresini dinliyor ve bunu res değişkeninde tutuyor. Son olarak speak fonksiyonu içinde res değişkeninin içindeki sonuçları alıp sesli asistanın bize söylemesini sağlıyoruz.

8. Main Fonksiyon
Burada öncelikle sonsuz bir döngü açıyoruz ve wish() fonskiyonunu çağırıyoruz. Ardından audio adlı değişkene listen fonksiyonunu veriyoruz ve sesli asistanın bizi dinlemesini sağlıyoruz. Bu audio değişkenini ise yazıya çevirip phrase adlı değişkende tutuyoruz. Eğer söylenen sözün içinde “open” geçiyorsa open_tabs() fonskiyonu çalışıyor. “wikipedia” geçtiğinde search_wiki() fonksiyonu çalışıyor. Eğer ikiside yoksa denilen söz wolframalpha üzerinden aranıyor.

Evet artık belirli basit komutları yerine getiren bir sesli asistana sahibiz. Okuduğunuz için teşekkür ederim.