- Katılım
- 1 Eyl 2024
- Mesajlar
- 22
- Tepkime puanı
- 2
- Puanları
- 3
Bu yazıda, Python kullanarak basit bir sesli asistan yapacağız. Asistan, belirli komutlara yanıt verecek ve bazı görevleri yerine getirecek.
Bu basit sesli asistan, temel komutları algılayıp yanıt verebilen bir yapıya sahiptir. Kendi ihtiyaçlarınıza göre bu kodu geliştirip yeni özellikler ekleyebilirsiniz.
Gerekli Kütüphaneler
Öncelikle, gerekli Python kütüphanelerini yükleyin:Kod:
pip install playsound
pip install gtts
pip install SpeechRecognition
Kod
Python:
from playsound import playsound # Ses dosyalarını çalmak için
from gtts import gTTS # Metni konuşmaya dönüştürmek için
import speech_recognition as sr # Ses tanıma işlemleri için
import os # İşletim sistemi işlemleri için
import time # Zamanla ilgili işlemler için
from datetime import datetime # Tarih ve saat işlemleri için
import random # Rastgele seçimler yapmak için
import webbrowser # Web tarayıcısı işlemleri için
r = sr.Recognizer() # Ses tanıyıcıyı oluştur
def record(ask=False):
with sr.Microphone() as source: # Mikrofonu kaynak olarak kullan
if ask:
print(ask) # Eğer bir soru varsa, bunu yazdır
audio = r.listen(source) # Kaydı dinle
voice = ""
try:
voice = r.recognize_google(audio, language="tr-TR") # Sesi metne dönüştür
except sr.UnknownValueError:
print("") # Anlaşılamayan ses hatası
except sr.RequestError:
print("Asistan: Sistem çalışmıyor") # Sistem hatası
return voice
def response(voice):
if "merhaba" in voice:
speak("sanada merhaba")
if "selam" in voice:
speak("aleyküm selam")
if "günaydın" in voice:
speak("sanada günaydın")
if "iyi akşamlar" in voice:
speak("sanada iyi akşamlar")
if "selamın aleyküm" in voice:
speak("aleyküm selam")
if "nasılsın" in voice:
speak("iyiyim sen nasılsın")
if "bay bay" in voice:
speak("bay bay")
exit()
if "ne yapıyorsun" in voice:
karar = ["makale araştırıyorum", "iyiyim sen ne yapıyorsun", "kendimi geliştiriyorum", "dil çalışıyorum", "hayata nasıl geldiğimi sorguluyorum", "sanane"]
karar = random.choice(karar)
speak(karar)
if "saat kaç" in voice:
secim = ["hemen bakıyorum:", "saat:", "bakıp geliyorum"]
saat = datetime.now().strftime("%H:%M")
secim = random.choice(secim)
speak(secim + saat)
if "günlerden ne" in voice:
gun = time.strftime("%A")
days = {
"Monday": "pazartesi",
"Tuesday": "salı",
"Wednesday": "çarşamba",
"Thursday": "perşembe",
"Friday": "cuma",
"Saturday": "cumartesi",
"Sunday": "pazar"
}
speak(days.get(gun, "Bilinmeyen gün"))
if "google'da ara" in voice:
speak("ne aramamı istersin")
ara = record()
url = "Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.{}".format(ara)
webbrowser.get().open(url)
speak("{} sonuçları listeliyorum".format(ara))
def speak(string):
tts = gTTS(text=string, lang="tr", slow=False) # Metni konuşmaya dönüştür
file = "answer.mp3" # Geçici ses dosyasını oluştur
tts.save(file) # Ses dosyasını kaydet
playsound(file) # Ses dosyasını çal
os.remove(file) # Ses dosyasını sil
speak("efendim") # Başlangıç mesajı
while True:
voice = record() # Sesi kaydet
if voice:
voice = voice.lower() # Ses metnini küçük harfe çevir
print(voice) # Ses metnini yazdır
response(voice) # Komutları işleyip yanıt ver
Komutlar ve Açıklamaları
Sesli asistan, aşağıdaki komutlara yanıt verebilir:- Merhaba, Selam, Günaydın, İyi akşamlar, Selamın aleyküm: Karşılama komutları.
- Nasılsın: Hal hatır sorma.
- Bay bay: Programdan çıkış.
- Ne yapıyorsun: Asistanın yaptığı işleri rastgele bir yanıtla belirtir.
- Saat kaç: Güncel saati söyler.
- Günlerden ne: Bugünün hangi gün olduğunu söyler.
- Google'da ara: İnternette arama yapar.
Bu basit sesli asistan, temel komutları algılayıp yanıt verebilen bir yapıya sahiptir. Kendi ihtiyaçlarınıza göre bu kodu geliştirip yeni özellikler ekleyebilirsiniz.