Sesli asistanlar birçok şirketin önem verdiği yapay zekâ ile çalışan sistemlerdir. Biz de Raspberry Pi’mize bir mikrofon ve bir hoparlör takıp basit bir sesli asistan yapacağız. Uygulamayı Google’ın Python için yaptığı konuşma ve konuşturma modüllerini kullanacağız.
Kurulum aşamaları:
git clone http://people.csail.mit.edu/hubert/git/pyaudio.git
cd pyaudio
sudo python setup.py install
sudo apt-get installl libportaudio-dev
sudo apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev
sudo pip install SpeechRecognition
sudo apt-get install espeak
Kurulum aşamaları bitti, eğer koyalama-yapıştırmada sıkıntı olursa:”https://pastebin.ubuntu.com/p/c9jKMWH9wp/” adresinden kolayca kopyala-yapıştır yapabilirsiniz. Şimdi kod kısmına geçelim. Asistanımız, Google’ın sunduğu modül Türkçe desteklemediği için İngilizce olacak. Kodu doğrudan bu adresten indirebilir veya kopyala-yapıştır yapabilirsiniz: https://pastebin.ubuntu.com/p/HNGt2j26YG/
#!/usr/bin/python
#-*- coding: utf-8 -*-
import speech_recognition as sr
import os
import webbrowser as wb
r = sr.Recognizer()
with sr.Microphone() as source:
print ('What can I search for you?')
audio = r.listen(source) #dinle
print ('Please wait...')
text = r.recognize_google(audio) #algila
print('You said: ' + text)
os.system("espeak 'I am researching for "+text+"'") #konus
wb.open("https://duckduckgo.com/?q="+text,new=1,autoraise=True) #ara
Bu kod ile söylediğimiz şeyi internette araştırdık. Şimdi de başka bir örnek yapalım. Bu örnekte 7. pine
bir led takacağız ve “Turn on” dediğimizde led yanacak, “Turn off” dediğimizde led sönecek. Buradaki ledi
“LED” olarak değil de bir röleye bağlanmış bir lamba olarak da görebiliriz. Bu sayede ev otomasyonu gibi
bir çok projenizde kullanabilirsiniz.
#!/usr/bin/python import
import speech_recognition as sr
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7,GPIO.OUT)
r = sr.Recognizer()
with sr.Microphone() as source:
print ('Ready...')
audio = r.listen(source) #dinle
print ('...')
text = r.recognize_google(audio) #algila
print(text)
if text == 'turn on':
GPIO.output(7,GPIO.HIGH)
elif text == 'turn off':
GPIO.output(7,GPIO.LOW)
else:
print "I cant understand."