Belajar Membuat App Sistem Pemrograman Asisten Suara

Seperti yang pertautan kamu dengar sebelumnya, Virtual Assistant ialah asisten virtual nan boleh memahami perintah suara yang dikatakan oleh pengguna dan mengeksekusi program sesuai perintah yang diminta mereka.

Misalnya saja jika kamu mau mencari luang lokasi “restoran keluarga terdekat” maka Virtual Assistant akan mengutarakan hasil lokasi restoran berdasarkan lokasi terhampir kamu ketika ini.

Beberapa komplet Virtual Assistant yang sudah dikenal banyak manusia diantaranya Google Voice dari perusahaan Google, Cortana dari Microsoft, dan Siri dari Apple. Ketiganya merupakan barisan terdepan dalam pengembangan Virtual Assistant detik ini.

Untuk dia nan ingin mulai mencoba membangun Virtual Assistant, tenang sekadar. Hal ini lain sulit, kamu hanya terbiasa memahami bahasa pemrograman Phyton dan bisa langsung membuat Virtual Assistant versi tertinggal

Membuat virtual Assistant Sederhana

Pada program ini engkau akan belajar cara membuat versi simpelnya semata-mata. Code yang akan ditampilkan pun hanya sebatas versi default yang bisa kamu edit bebas sekenanya kemudian hari.

Perintah nan akan dibuat nantinya meliputi :

  • Mengatakan ucapan sapaan secara rawak kepada pengguna, pasti jika si pemakai menggunakan kata teguran yang sudah diprogram.
  • Cekut data tanggal (Date) buat si konsumen.
  • Mengambil data waktu (Time) untuk si konsumen.
  • Mengambil data takrif adapun seseorang untuk si konsumen.

Sebagai contoh, momen si pengguna menyabdakan “Pengetuk berapa Waktu ini ?”, Virtual Assistant nantinya akan menjawab soal tersebut.

Maka itu karena itu, terdepan untukmu buat mewujudkan justru dahulu rekaman suara(mp3) yang weduk jawaban dari tanya yang mau kamu program belakang hari.

Purwa-tama, kamu teristiadat menginstall sejumlah
Package
 pyadio SpeechRecognition gTTSdan
wikipedia .

pip install pyaudio

pip install SpeechRecognition

pip install gTTS

pip install wikipedia

Mengimport Libraries & Packages

Selanjutnya dia harus mengimport
Libraries
 warnings  dan speech_recognition   yang akan digunakan untuk menangkap dan mengenali suara pengguna.

Libraries  os akan memungkinkan kita untuk berinteraksi dengan Sistem Usaha.
Libraries
 gtts akan membantu mengonversi teks ke ucapan.
Libraries
 wikipedia akan memungkinkan kita mendapatkan keterangan tentang seseorang mulai sejak Wikipedia.

Libraries datetime akan memungkinkan kita kerjakan mendapatkan tanggal dan waktu sekarang.
Libraries
 calendar akan memungkinkan kita mendapatkan hari dalam seminggu, dan
Libraries random akan digunakan buat pengacakan :

# Import the libraries

import speech_recognition as sr
import os
from gtts import gTTS
import datetime
import warnings
import calendar
import random
import wikipedia

Kemudian kita akan mengabaikan semua wanti-wanti warning apapun yang siapa muncul ketika mengeksekusi program ini dengan perintah berikut :

# Ignore any warning messages

warnings.filterwarnings(‘ignore’)

Membuat Helpful Function

Helpful Function
nantinya digunakan seyogiannya tampilan code terlihat makin rapih dan mengeksekusi perintah tertentu.

Pertama kita membutuhkan fungsi nan bisa menerima audio (perintah suara minor) dan mengidentifikasi ucapan, kemudian mengembalikan ucapan itu sebagai string (teks). Silakan kita sebut fungsi ini
recordAudio ().

# Record audio and return it as a string

def recordAudio():
# Record the audio

    r = sr.Recognizer()
    with sr.Microphone() as source:
       print(‘Say something!’)
       audio = r.listen(source)

    # Speech recognition using Google’s Speech Recognition


    data = ”
    try:
        data = r.recognize_google(audio)
        print(‘You said: ‘ + 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

Marilah kerjakan sebuah fungsi untuk program untuk merespon pula ke pengguna dengan suara minor dan menyebutnya
asistenResponse (). Fungsi ini akan mengambil string (teks) dan mengubahnya menjadi audio. Ia juga akan lamar khasiat ini mencetak teks ke cucur untuk tujuan pengujian.

# 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’)

Selanjutnya, kita akan mewujudkan fungsi untuk mengambil sejumlah pustaka dan memeriksa apakah kata bangun diberikan dalam wacana itu. Bikin acara ini saya membuat dua pengenalan bangun “oke komputer” dan “hai komputer jinjing”, mirip dengan introduksi bangun ajun Google “hai Google” dan “oke Google”.

Sekiranya introduksi bangun terdeteksi berasal teks maka maslahat akan mengembalikan True jika tidak maka akan mengembalikan False.

# A function to check for wake word(s)

def wakeWord(text):
    WAKE_WORDS = [‘hey computer’, ‘okay 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 titinada found return false

    return False

Takhlik fungsi untuk mengembalikan tanggal waktu ini sebagai string. Misalnya, ia akan mengimbangi “Hari ini Senin terlepas 21 Oktober” jika hari ini memang Senin 21 Oktober. Mari kita panggil fungsi ini
getDate ().

def getDate():

now = datetime.datetime.now()
my_date = datetime.datetime.today()
weekday = calendar.day_name[my_date.weekday()]# e.g. Monday
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] + ‘.’

Selanjutnya, kita akan mewujudkan fungsi yang mengakuri referensi dan mengembalikan respons salam acak seumpama referensi kepada pengguna, sekiranya pemakai mengucapkan perolehan salam seperti ‘halo’ alias ‘hai’ misalnya kekuatan tersebut akan mengembalikan salam acak begitu juga ‘segala apa wara-wara ‘. Kurnia ini akan disebut
greeting ().

# Function to return a random greeting response

def greeting(text):
# Greeting Inputs

    GREETING_INPUTS = [‘hi’, ‘hey’, ‘hola’, ‘greetings’, ‘wassup’, ‘hello’]# Greeting Response back to the user

    GREETING_RESPONSES = [‘howdy’, ‘whats good’, ‘hello’, ‘hey there’] # 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 ”

Anak bungsu cuma lain kalah pentingnya kita akan membentuk fungsi untuk mendapatkan keunggulan depan dan bokong seseorang berpangkal teks setelah mendeteksi perintah kunci, ‘siapa’.

Setelah kami mendeteksi prolog ‘bisa jadi’ diikuti dengan kata ‘yaitu’ maka kami akan mengganjar dua prolog berikutnya bagaikan satu string (dua kata berikutnya haruslah nama depan individu tersebut diikuti dengan nama belakang manusia itu).

Misalnya jika pengguna mengatakan ‘Who is LeBron James?’, Maka arti tersebut akan cekut referensi tersebut dan hanya mengimbangi ‘LeBron James’. Kami akan menunggangi fungsi ini belakang hari untuk mendapatkan ringkasan dua kalimat adapun makhluk tersebut berpokok Wikipedia. Fungsi ini akan disebut
getPerson ()

# 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]

Menciptakan menjadikan Acara Utama

Semua asisten virtual minimal populer (Tangan kanan Google, Amazon Alexa, & Memanjatkan perkara Siri) terus mendengarkan percakapan kamu dan menunggu cak bagi menjalankan perintah hanya sehabis mendengar kata siuman (Wake Words) sebagaimana ‘Oke Google’, ‘Alexa’, atau ‘Hai Siri’.

Ini bermanfaat kita harus mempunyai acara yang secara loyal mendengarkan kata ingat, jadi kita akan membutuhkan putaran terus menerus yang melanglang selamanya bagi merekam audio.

Setelah kata ingat diucapkan, kita akan memeriksa untuk melihat apakah pemakai menitahkan salam, ‘terlepas’, ‘waktu’, atau ‘siapa’, dan mempersunting komputer merespons sesuai dengan audio.

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 date

        if (‘date’ in text):
            get_date = getDate()
            response = response + ‘ ‘ + get_date# Check to see if the user said time

        if(‘time’ 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 ‘who is’

        if (‘who is’ in text):
            person = getPerson(text)
            wiki = wikipedia.summary(person, sentences=2)
            response = response + ‘ ‘ + wiki

        # Assistant Audio Response

       assistantResponse(response)

Selamat, kita sudah berhasil membentuk programa Virtual Assistant Sederhana.

Sumber :

https://semenjana.com/@randerson112358/build-a-virtual-assistant-using-python-2b0f78e68b94

Source: https://www.techfor.id/cara-membangun-virtual-assistant-sederhana-menggunakan-phyton/