Hoşgeldin Misafir

Python ile Sesli Asistan Oluşturma - Lojistik Tim

bypatnos

DeepWeb
28 Haz 2024
614 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhabalar Ben @bypatnos Lojistik grup adına paylaşılan Python ile Sesli Asistan Oluşturma makalesinde sizi görmekten mutluk duyarım.

Python kullanarak sesli bir asistan oluşturmak, birçok teknolojiyi bir araya getirerek oldukça eğlenceli ve faydalı bir proje haline gelebilir. Bu makalede size adım adım nasıl bir sesli asistan oluşturabileceğinizi anlatacağım. Amacımız, kullanıcının sesini tanıyan, bu komutları işleyen ve cevap veren bir sistem oluşturmak. Ayrıca, bunu yaparken hangi kütüphanelerden faydalanacağımızı ve bu süreçte karşılaşabileceğimiz zorlukları nasıl aşacağımızı da açıklayacağım.

1. Sesli Asistan Nedir ve Nasıl Çalışır?

Sesli asistanlar, kullanıcıların konuşma diliyle cihazlarla iletişim kurmasını sağlayan yapay zeka yazılımlarıdır. Google Asistan, Siri ve Alexa gibi popüler örnekler var. Ben de böyle bir asistanın temel versiyonunu Python ile nasıl yapabileceğinizi göstereceğim. Bu yazılım, şu üç temel bileşenden oluşur:

  • Ses Tanıma (Speech Recognition): Mikrofon aracılığıyla alınan sesin dijital olarak tanınması ve metne dönüştürülmesi.
  • Doğal Dil İşleme (NLP): Tanınan metnin anlamlandırılması, yani komutun işlenmesi.
  • Ses Sentezi (Speech Synthesis): Üretilen metin tabanlı cevabın tekrar sesli olarak kullanıcıya iletilmesi.

2. Python Kütüphaneleri ile Çalışmak

Python, sesli asistan oluşturmak için birkaç güçlü kütüphane sunuyor. İşte bu projede kullanacağım kütüphaneler:

  • SpeechRecognition: Kullanıcıdan gelen sesli komutları tanımak için kullanacağız. Google Web Speech API desteği sayesinde konuşmayı metne çevirecek.
  • pyttsx3: Bu kütüphane ile asistanın metin şeklinde ürettiği yanıtları sesli bir şekilde kullanıcıya ileteceğiz. Çevrimdışı çalışabildiği için oldukça avantajlı.
  • pyaudio: Mikrofon girişini almak için kullanılacak. Bu sayede kullanıcının komutlarını canlı olarak alabiliriz.

3. Adım Adım Sesli Asistan Yapımı

1: Gerekli Kütüphanelerin Yüklenmesi

İlk olarak, bu projede ihtiyaç duyacağımız kütüphaneleri yüklememiz gerekiyor. Aşağıdaki komutları terminale yazarak başlayabilirsiniz:
Kod:
pip install SpeechRecognition pyttsx3 pyaudio

2: Temel Fonksiyonları Oluşturma

Şimdi Python kodunu yazmaya başlayalım. İlk adımda, kullanıcıdan gelen sesleri tanımak ve bunları metne çevirmek için gerekli fonksiyonları tanımlayacağız.
Kod:
import speech_recognition as sr
import pyttsx3

# Ses tanıma ve ses sentezi için gerekli objeler
recognizer = sr.Recognizer()  # Ses tanıma objesi
engine = pyttsx3.init()  # Ses sentezleyici objesi

# Asistanın konuşma fonksiyonu
def speak(text):
    engine.say(text)
    engine.runAndWait()

# Kullanıcıdan sesli komut alma fonksiyonu
def get_audio():
    with sr.Microphone() as source:
        print("Dinliyorum...")
        recognizer.adjust_for_ambient_noise(source)  # Ortam gürültüsüne göre mikrofonu ayarlama
        audio = recognizer.listen(source)  # Kullanıcının konuşmasını dinle
        try:
            command = recognizer.recognize_google(audio, language="tr-TR")  # Komutu tanı
            print(f"Kullanıcı dedi ki: {command}")
            return command.lower()  # Komutu küçük harfe çevir
        except sr.UnknownValueError:
            print("Anlayamadım, lütfen tekrar edin.")
            return ""
        except sr.RequestError:
            print("Servis hatası!")
            return ""

Bu aşamada, sesli komutları tanıyıp bunları metne çeviren bir fonksiyon oluşturduk. Ayrıca, pyttsx3 kütüphanesi yardımıyla asistanın sesli yanıt verebileceği bir konuşma fonksiyonunu tanımladık.


Adım 3: Komutların İşlenmesi ve Cevaplanması

Asistanın, aldığı sesli komutlara uygun şekilde cevap verebilmesi için bir komut işleme döngüsü kurmamız gerekiyor. Bu döngüde, kullanıcının söylediği belirli kelimelere göre cevap vereceğiz.
Kod:
# Ana fonksiyon
def main():
    speak("Merhaba, size nasıl yardımcı olabilirim?")  # İlk selamlama
    while True:
        command = get_audio()  # Kullanıcıdan komut al
        
        if 'merhaba' in command:
            speak("Merhaba! Nasılsınız?")
        elif 'hava durumu' in command:
            speak("Hava durumu şu anda kontrol edilemiyor, lütfen tarayıcınızı kontrol edin.")
        elif 'çıkış' in command:
            speak("Görüşmek üzere!")
            break  # Döngüyü bitir
        else:
            speak("Bunu yapabileceğim bir komut olarak algılamadım, lütfen tekrar edin.")

# Programı başlatma
if __name__ == "__main__":
    main()

Bu fonksiyon, kullanıcıdan gelen sesli komutları karşılayacak ve belirli kelimeler içeriyorsa buna göre yanıt verecek. Örneğin, "merhaba" komutunu tanıyıp kullanıcıya geri selam verecek. "Çıkış" komutu geldiğinde program sona erecek.


4: Asistanı Geliştirmek

Artık temel bir sesli asistana sahibiz. Bundan sonra asistanınıza yeni fonksiyonlar eklemek tamamen size kalmış. Örneğin:

  • Web Scraping ile hava durumunu gerçek zamanlı olarak öğrenmesini sağlayabilirsiniz.
  • OpenAI GPT-4 gibi doğal dil işleme kütüphanelerini entegre ederek daha akıllı ve doğal diyaloglar oluşturabilirsiniz.
  • Belirli görevler için takvim ekleyebilir, not alabilir veya hatırlatıcılar ayarlayabilirsiniz.

4. Karşılaşılabilecek Zorluklar ve Çözümler

  • Ses Tanıma Problemleri: Bazen mikrofon gürültüsü ya da düşük kaliteli bir mikrofon sebebiyle ses tanıma düzgün çalışmayabilir. Bunu recognizer.adjust_for_ambient_noise(source) fonksiyonu ile azaltabilirsiniz.
  • Çevrimdışı Çalışma: Google Web Speech API çevrimiçi bir servistir. Çevrimdışı çalışmak istiyorsanız, CMU Sphinx gibi çevrimdışı çalışan bir ses tanıma kütüphanesini tercih edebilirsiniz.
  • Çoklu Dil Desteği: Asistanınızın birden fazla dilde çalışmasını istiyorsanız, tanıma ve yanıt mekanizmalarını bu dillere uygun şekilde genişletebilirsiniz.
Bu yazıda, Python kullanarak temel bir sesli asistan oluşturma sürecini anlattım. İlgili kütüphanelerle mikrofon girişlerini almak, sesli komutları işlemek ve sonuçları kullanıcıya sesli olarak geri döndürmek mümkün hale geliyor. Bu projeyi daha da geliştirerek, çok daha akıllı ve fonksiyonel bir sesli asistan oluşturabilirsiniz.
Bundan sonrasında, projeyi ihtiyaçlarınıza göre kişiselleştirip, daha gelişmiş özellikler ekleyerek kullanabilirsiniz
.

Makalemizi okuduğunuz için teşekkür ederim

LOJİSTİK TİM SUNDU

btn1pyf.png
 
Son düzenleme: