Last Updated on March 5, 2022 by
Ingin punya virtual assistant khusus milik sendiri untuk memudahkan beragam kerja secara online? Siapa bilang keinginan tersebut tidak mungkin. Yuk, coba buat virtual assistant sederhana sendiri menggunakan Python programming!
Contoh bahasa pemrograman Python terapan tercermin pada proses perakitan virtual assistant online. Di tahun 2020, Python resmi dinobatkan sebagai bahasa pemrograman terpopuler nomor dua.
Prestasi ini tidaklah mengherankan, sebab Python adalah bahasa programming yang sangat multifungsi. Tak hanya pada virtual assistant, contoh bahasa pemrograman Python juga tampak pada proses pengaplikasian kecerdasan buatan (AI).
Kepopuleran Python lantas menjadi sinyal bagus untuk Anda yang tertarik belajar bahasa pemrograman Python. Siapa tahu setelah belajar bahasa pemrograman Python, Anda bisa langsung mempraktekkan contoh bahasa pemrograman Python berikut ini untuk membuat virtual assistant sendiri.
Yuk kita lihat bagaimana cara membuat virtual assistant using Python pada artikel belajar bahasa pemrograman Python edisi kali ini – selamat membaca!
Table of Contents
Mengenal Python Virtual Assistant yang Sedang Trend
Kehadiran dan keterlibatan teknologi internet dalam kehidupan nyata kita saat ini sudah semakin dekat dan erat. Jika dulu internet hanya bisa digunakan sebatas untuk mencari aneka informasi secara online, sekarang, banyak hal dari dunia IT yang bisa membantu kita mengerjakan beragam jenis pekerjaan berat. Python virtual assistant adalah salah satunya.
Sesuai namanya, Python virtual assistant adalah tipe virtual assistant using Python – alias, teknologi virtual assistant yang dibuat dengan memakai Python programming. Pernahkah Anda mendengar virtual assistant sebelumnya?
Virtual assistant adalah sebuah perintah suara berbasis kecerdasan buatan yang dapat memahami segala jenis permintaan dari user. Python virtual assistant adalah program pintar yang dapat menjalankan apa saja, mulai dari membuka aplikasi, mengatur setting smartphone otomatis, hingga bekerja mencari aneka informasi di internet. Dengan Python virtual assistant, Anda bisa bekerja dengan smartphone semudah berbicara saja.
Sejauh ini, sudah ada beberapa brand yang menghadirkan virtual assistant dalam smart gadget. Contohnya seperti Siri pada Apple, Google Voice pada Google Android, dan Cortana dari Microsoft. Pernahkah Anda menggunakan Python virtual assistant dari ketiga brand tersebut? Atau, ketiga Python virtual assistant tersebut masih terbatas dan belum bisa memenuhi kebutuhan kerja Anda?
Tidak perlu cemas. Yuk lanjutkan membaca artikel ini untuk mengetahui cara membuat virtual assistant using Python!
Tutorial Membuat Python Virtual Assistant
Membuat virtual assistant ternyata tidak begitu rumit. Dengan menggunakan Python programming, Anda sudah bisa membuat virtual assistant pintar sederhana yang bisa mengerjakan aneka tugas seperti:
- Mengambil data tanggal dan waktu untuk Anda.
- Membalas sapaan user (setelah Anda mengucapkan kata sapaan tertentu yang telah diprogram – seperti pada Google Assistant yang bekerja pasca user mengucap, “Oke Google”).
- Mengambil informasi lainnya sesuai perintah user.
Langsung saja mari kita mulai tutorialnya:
Mempersiapkan Kebutuhan
Ada beberapa kebutuhan yang harus Anda persiapkan terlebih dahulu saat hendak membuat sebuah virtual assistant. Pertama, siapkan rekaman suara Anda sendiri dalam format mp3. Rekaman suara tersebut nantinya akan berisi jawaban dari pertanyaan-pertanyaan atau permintaan yang dapat dijawab oleh sistem. File audio ini jugalah yang akan Anda turut program nanti.
Kemudian, Anda harus menginstall sejumlah package wikipedia dan pyadio SpeechRecognition gTTS. Kode-kode untuk instalasinya adalah:
pip install pyaudio
pip install SpeechRecognition
pip install gTTS
pip install Wikipedia
Melakukan Import Packages dan Libraries
Tahap kedua adalah lakukan import libraries dan packages. Beberapa libraries yang perlu diimport adalah:
- Libraries speech_recognition dan warnings untuk menangkap dan mengidentifikasi suara dari user.
- Libraries Wikipedia untuk memperoleh informasi dari sistem Wikipedia.
- Libraries gtts untuk mengubah teks menjadi bentuk suara (audio).
- Libraries calendar untuk mendapatkan data hari.
- Libraries datetime untuk mendapatkan data waktu dan tanggal.
- Libraries os untuk memungkinkan user berinteraksi dengan sistem operasi smartphone.
- Libraries random untuk memasukkan data-data acak.
Untuk melakukan import libraries, gunakan coding:
# Import the libraries
import speech_recognition as sr
import os
from gtts import gTTS
import datetime
import warnings
import calendar
import random
import wikipedia
Jika terdapat pesan warning, Anda bisa men-ignore pesan tersebut dengan kode:
# Ignore any warning messages
warnings.filterwarnings(‘ignore’)
Membuat Aneka Helpful Function Asisten
Proses ketiga adalah membuat helpful function untuk menjadikan tampilan code lebih rapi dalam mengeksekusi perintah. Caranya adalah:
- Buat fungsi recordAudio() yang berguna untuk menerima perintah suara, mengenali suara dan memproses suara ke dalam bentuk string (teks). Kodenya:
# Record audio and return it as a string
def recordAudio():
# Record the audio
r = sr.Recognizer()
with sr.Microphone() as source:
print(‘Say Hello!’)
audio = r.listen(source)
# Speech recognition using Google’s Speech Recognition
data = ”
try:
data = r.recognize_google(audio)
print(‘Ucapan Anda: ‘ + data)
except sr.UnknownValueError:
print(‘Google Speech Recognition could not understand’)
except sr.RequestError as e:
print(‘Request error from Google Speech Recognition’) return data
- Buat fungsi asistenResponse() untuk merespon user dengan suara. Terbalik dengan fungsi sebelumnya, fungsi ini mengambil teks (string) dan mengubahnya menjadi audio. Fungsi ini juga akan mencetak teks ke layar untuk keperluan pengujian proses.
# Function to get the virtual assistant response
def assistantResponse(text):
print(text) # Convert the text to speech
myobj = gTTS(text=text, lang=’en’, slow=False)
# Save the converted audio to a file
myobj.save(‘assistant_response.mp3’) # Play the converted file
os.system(‘start assistant_response.mp3’)
- Buat fungsi untuk mengambil sejumlah teks dan mengecek ketersediaan kata-kata bangun dalam teks. Kata bangun adalah kata yang secara khusus mengaktivasi sistem asisten. Contoh kata bangun seperti “oke Google”. Anda bisa membuat kata bangun sendiri semisal “halo komputer”. Jika sistem mendeteksi kehadiran kata bangun, maka fungsi akan mengembalikan True – begitu juga sebaliknya.
Code untuk memasang sistem kata bangun:
# A function to check for wake word(s)
def wakeWord(text):
WAKE_WORDS = [‘halo computer’]
text = text.lower() # Convert the text to all lower case words # Check to see if the users command/text contains a wake word
for phrase in WAKE_WORDS:
if phrase in text:
return True # If the wake word was not found return false
return False
- Buat fungsi untuk mengembalikan tanggal sebagai string dengan fungsi def getDate().
def getDate():
now = datetime.datetime.now()
my_date = datetime.datetime.today()
weekday = calendar.day_name[my_date.weekday()]# e.g. Tuesday
monthNum = now.month
dayNum = now.day
month_names = [‘January’, ‘February’, ‘March’, ‘April’, ‘May’,
‘June’, ‘July’, ‘August’, ‘September’, ‘October’, ‘November’,
‘December’]
ordinalNumbers = [‘1st’, ‘2nd’, ‘3rd’, ‘4th’, ‘5th’, ‘6th’,
‘7th’, ‘8th’, ‘9th’, ’10th’, ’11th’, ’12th’,
’13th’, ’14th’, ’15th’, ’16th’, ’17th’,
’18th’, ’19th’, ’20th’, ’21st’, ’22nd’,
’23rd’, ’24th’, ’25th’, ’26th’, ’27th’,
’28th’, ’29th’, ’30th’, ’31st’]
return ‘Today is ‘ + weekday + ‘ ‘ + month_names[monthNum – 1] + ‘ the ‘ + ordinalNumbers[dayNum – 1] + ‘.’
- Buat fungsi greeting() yang bisa menerima teks dan mengembalikan respon salam acak kepada user. Semisal Anda menyapa asisten ‘halo’, maka fungsi akan membalas acak ‘apa kabar’. Code:
# Function to return a random greeting response
def greeting(text):
# Greeting Inputs
GREETING_INPUTS = [‘hi’, ‘hey’, ‘halo’, ‘greetings’, ‘salam’, ‘hello’] # Greeting Response back to the user
GREETING_RESPONSES = [‘hai’, ‘apa kabar’, ‘hello’, ‘ada yang bisa saya bantu’] # If the users input is a greeting, then return random response
for word in text.split():
if word.lower() in GREETING_INPUTS:
return random.choice(GREETING_RESPONSES) + ‘.’ # If no greeting was detected then return an empty string
return ”
- Terakhir, buat fungsi getPerson() untuk memperoleh nama depan dan belakang (nama lengkap) dari seseorang di Wikipedia jika sistem mendeteksi keyword ‘siapa’. Semisal Anda menyebut ‘Siapa John Lennon?’ maka sistem bisa diprogram untuk mengembalikan informasi agar yang tampil adalah ‘John Lennon adalah’. Contoh coding:
# Function to get a person first and last name
def getPerson(text):
wordList = text.split()# Split the text into a list of words for i in range(0, len(wordList)):
if i + 3 <= len(wordList) – 1 and wordList[i].lower() == ‘who’ and wordList[i + 1].lower() == ‘is’:
return wordList[i + 2]+ ‘ ‘ + wordList[i + 3]
Melakukan Coding Program Utama
Setelah membuat aneka helpful function, kini tibalah waktunya untuk membuat coding program utama. Jika ditelaah, semua sistem asisten virtual akan terus mendengarkan percakapan Anda untuk mengeksekusi perintah setelah satu kali mendengar kata bangun.
Untuk bisa membuat program yang sama, Anda akan memerlukan putaran terus-menerus untuk merekam audio.
Jadi, setelah kata bangun diucapkan oleh user, Anda harus memastikan sistem dapat mengecek jika user menyebut keyword lain seperti ‘siapa’, ‘waktu’ atau ‘tanggal’ – dan pastikan sistem asisten komputer bisa merespon sesuai keyword audio yang diberikan. Coding yang bisa Anda gunakan:
while True:
# Record the audio
text = recordAudio()
response = ” #Empty response string
# Checking for the wake word/phrase
if (wakeWord(text) == True):
# Check for greetings by the user
response = response + greeting(text) # Check to see if the user said tanggal
if (‘tanggal’ in text):
get_date = getDate()
response = response + ‘ ‘ + get_date # Check to see if the user said waktu
if(‘waktu’ in text):
now = datetime.datetime.now()
meridiem = ”
if now.hour >= 12:
meridiem = ‘p.m’ #Post Meridiem (PM)
hour = now.hour – 12
else:
meridiem = ‘a.m’#Ante Meridiem (AM)
hour = now.hour # Convert minute into a proper string
if now.minute < 10:
minute = ‘0’+str(now.minute)
else:
minute = str(now.minute) response = response + ‘ ‘+ ‘It is ‘+ str(hour)+ ‘:’+minute+’ ‘+meridiem+’ .’
# Check to see if the user said ‘siapa’
if (‘siapa’ in text):
person = getPerson(text)
wiki = wikipedia.summary(person, sentences=2)
response = response + ‘ ‘ + wiki
# Assistant Audio Response
assistantResponse(response)
Demikianlah pembahasan artikel tutorial membuat virtual assistant memakai Python. Semoga artikel edisi kali ini mampu menambah wawasan Anda seputar cara membuat virtual assistant sendiri, ya!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.