Python ile Sesli Asistan yapımı öğrenmek istiyorsanız en doğru yerdesiniz. Python ile Siri gibi bir sesli asistan yapabilirsiniz. Hem de bunu yapmanız çok kolaydır. Birkaç Python kütüphanesi kullanarak siz de kendi özel sesli asistanınızı geliştirebilirsiniz. Yapmanız gereken her şey bu rehberde anlatıldı.
Python ile Sesli Asistan Yapımı
Python ile Sesli Asistan yapımı için ilk olarak bazı kütüphanelere ihtiyacınız vardır. "pip" yardımıyla bu kütüphaneleri kurduktan sonra sesli komutunuza göre asistanın size vereceği yanıtları ayarlayabilirsiniz. İşte adım adım Python ile Sesli Asistan yapımı rehberi.
PyCharm ile bir proje oluşturalım
PyCharm'ı bilgisayarınıza kurduğunuzu varsayarak bu rehberi anlatacağım. İlk olarak PyCharm'ı açın ve yeni bir proje oluşturun.
- File > New Project adımını izleyerek projeyi oluşturun.
- Açılan pencerede "New enviroment using" alanını "Virtualenv" seçin.
- Python 3.8.x ile çalıştığınızdan emin olun.
Gerekli kütüphaneleri kuralım
Python ile Sesli Asistan yaparken pek çok kütüphaneye ihtiyaç duyarız. Bu kütüphaneler, sesimizi algılamak, sesli asistanın bize sesli şekilde yanıt vermesi gibi işlere yarar. Kullanacağımız kütüphaneleri kurmak için projeniz açıkken PyCharm'dan terminale girin. Bunun için programın en altındaki Terminal'e tıklamanız yeterlidir. Ardından terminale sırasıyla aşağıdaki komutları yazarak kütüphaneleri kurun.
- pip install SpeechRecognition
- pip install gTTS
- pip install playsound
- pip install PyAudio
Kütüphaneleri projemize ekleyelim
Kütüphaneleri projemize eklemek için aşağıdaki kodları main.py adında oluşturduğunuz dosyaya yazmanız gerekir.
import speech_recognition as sr import webbrowser import time import playsound import os import random from gtts import gTTS from time import ctime
SpeechRecognition kütüphanesini kaydetmek için alt satıra geçerek şu kodu da ekleyin.
r = sr.Recognizer()
Sesimizi kaydetmesini sağlayalım
Mikrofon aracılığı ile sesimizi dinlemeli ve söylediklerimizin verisini kaydetmeli ki bize yanıt versin. Bunun için şu kodları kullanacağız.
def record_audio(ask = False): with sr.Microphone() as source: if ask: siri_speak(ask) audio = r.listen(source) try: voice_data = r.recognize_google(audio, language="tr") except sr.UnknownValueError: siri_speak('Dediğini anlamadım') except sr.RequestError: siri_speak('Üzgünüm hata veriyorum') return voice_data
Sesli asistan bize yanıt versin
Sesli asistanın bizi duyacak fakat sesli asistan olması için bize sesli şekilde yanıt vermesi gereklidir. Bunun için de aşağıdaki kodlar bize yardımcı olacaktır.
def siri_speak(audio_string):
tts = gTTS(text=audio_string, lang='tr')
r = random.randint(1, 10000000)
audio_file = 'audio-' + str(r) + '.mp3'
tts.save(audio_file)
playsound.playsound(audio_file)
print(audio_string)
os.remove(audio_file)
Komutlarımızı belirleyelim
Sesli asistana bir şey söylediğimiz de o da bize yanıt vermelidir. Bunun için def respond(voice_data): oluşturacağız. Altına if ile sesli komutun ne olduğuna göre bir eylem yapmasını sağlayacağız.
Aşağıdaki örnekte eğer sesli asistana "adın ne" diye sorduğumuzda bize "Adım Siri, senin sesli asistanınım" demesini sağladık. Aynı şekilde pek çok şeyi de yapabiliriz.
def respond(voice_data):
if 'adın ne' in voice_data:
siri_speak('Adım Siri, senin sesli asistanınım.')
Sesli asistana saatin kaç olduğunu sorabiliriz. if kodlarını def respond(voice_data): altına ekleyerek farklı komutlar ekleyebilirsiniz. Aşağıdaki komutlar ile bize saati söylemesini sağlarız.
if 'saat kaç' in voice_data:
siri_speak(ctime())
İnternette yani Google'da bir şeyler aratma şansımız da vardır. Bunun için ilk önce "internette ara" komutunu vermeliyiz. Ardından bize "Ne aramak istersin" diye soracak. Biz de aramak istediğimiz herhangi bir şeyi söyleyeceğiz. Söyledikten sonra sesli asistan web tarayıcınızdan istediğiniz şeyi arayacak ve açacaktır.
if 'internette ara' in voice_data:
search = record_audio("Ne aramak istersin?")
url = 'https://google.com.tr/search?q=' + search
webbrowser.get().open(url)
siri_speak('Şunun için sonuçlar:' + search)
Herhangi bir bölgenin konumunu Google Haritalar'dan bulmanız da mümkündür. Aşağıdaki kodlar ile ilk önce "konum bul" dedikten sonra bize "Hangi konumu bulmak istiyorsunuz" diye soracak. Ardından bulmak istediğimiz yerin adını söyleyeceğiz ve Google Haritalar'dan yol tarifi verecek.
if 'konum bul' in voice_data:
location = record_audio("Hangi konumu bulmak istiyorsunuz?")
url = 'https://google.com.tr/maps/place/' + location + '/&'
webbrowser.get().open(url)
siri_speak('Konum bulundu:' + location)
Programı kapatmak için de "sistemi kapat" komutunu kullanalım.
if 'kapat' in voice_data:
siri_speak('Sistem kapatılıyor')
exit()
Son düzenlemeleri yapalım
Son olarak Python dosyamıza aşağıdaki komutları da ekledikten sonra sesli asistanımız hazır hâle gelecektir.
time.sleep(1)
siri_speak('Sana nasıl yardımcı olabilirim?')
while 1:
voice_data = record_audio()
respond(voice_data)
Sesli asistanı çalıştıralım
PyCharm projemizdeki main.py dosyamıza komut yazdığımız kısma sağ tıklayın. "Run" dedikten sonra sesli asistanımız çalışacaktır. Ardından eklediğimiz komutları tek tek deneyebilirsiniz.
NameError Traceback (most recent call last)
YanıtlaSilin
38 time.sleep(1)
39 time.sleep(1)
---> 40 siri_speak('Sana nasıl yardımcı olabilirim?')
41 while 1:
42 voice_data = record_audio()
NameError: name 'siri_speak' is not defined
Hatasını alıyorum ve çözemedim yardım edermisiniz ?
eror verdi
YanıtlaSilçalıştırınca "Failed to start the Kernel. Kernel Python 3.9.10 64-bit is not usable. Check the Jupyter output tab for more information. View Jupyter log for further details."hatası verdi. ???
YanıtlaSiltts=gTTS(text=audio_string,languace='tr')
YanıtlaSilTypeError: __init__() got an unexpected keyword argument 'languace'
çalıştırınca
YanıtlaSilProcess finished with exit code 0
diye birtane not verdi