Membuat voice assistant ala Young-Sil nya Han Ji Pyoung dengan Amazon Polly

Raosan Lillahi
Hyperjump Tech
Published in
4 min readDec 4, 2020

--

sumber gambar: mikrofon.pikiran-rakyat.com

Siapa yang sudah nonton start-up? sebuah drama korea yang sedang trending di netflix. Kalau nonton, kalian pasti tahu yang namanya Young-Sil, si asisten AI milik Han Ji Pyeong seperti Siri, Alexa, atau Ok Google. Suara mereka sangat mirip dengan manusia biasa secara intonasi dan pelafalan. Sebagai anak IT, bagaimana caranya kalau kita ingin membuat aplikasi yang bisa berbicara seperti orang normal dan tidak kedengaran seperti robot? Amazon Polly adalah jawabannya.

Bayangkan kalau kita bisa membuat aplikasi yang bisa memberitahu atau berkomunikasi dengan user menggunakan suara manusia, padahal yang berbicara adalah mesin. Misalnya untuk menanyakan appointment dokter kita. Klik link di bawah untuk mendengar contoh suaranya.

WOW AMAZING. sumber

Amazon Polly adalah salah satu layanan dari AWS yang berfungsi mengubah text menjadi ucapan, atau istilahnya umumnya text-to-speech. kalau pernah pakai google translate, kalian pasti merasa pengucapannya masih seperti robot yang kata-katanya kadang terpotong dan intonasinya aneh. Amazon Polly menyelesaikan masalah itu dengan teknologi deep learning yang canggih sehingga suara yang keluar sangat mirip dengan manusia. Pada artikel ini, kita akan mencoba implementasi layanan ini.

Implementasi

Ada 2 cara umum pemakaian Amazon Polly. Yang pertama adalah menggunakan file audio statis dan yang kedua adalah streaming file audio.

File Statis

Caranya cukup mudah. Pertama buka halaman Amazon Polly lalu tekan Get Started with Amazon Polly.

Kalau belum punya akun aws, akan disuruh buat dulu.

Setelah itu akan masuk ke halaman dashboard amazon polly. Di situ kita bisa langsung memasukkan text pada kolom Plain text lalu tekan tombol biru Listen to speech untuk mendengarkan suaranya.

Dashboard Amazon Polly

Kita bisa memilih beberapa parameter di bagian bawah halaman:

  1. Engine
    Pilih Standard untuk versi standard, tapi sudah lebih bagus daripada suara google translate. Neural untuk suara yang lebih smooth intonasi manusianya.
  2. Language and Region
    Ada beberapa pilihan bahasa mulai dari inggris-US, india, jepang, korea, spanyol, arab, dll. Sayang nya belum ada Bahasa Indonesia.
  3. Voice
    Untuk memilih varian suara. Ada yang suara laki-laki, perempuan, anak-anak, dll.
  4. Tipe File
    Kita bisa memilih tipe file sound yang bisa di download. Ada mp3, ogg, dan sebagainya.

Langsung saja coba dan rasakan ketakjuban suara yang keluar seperti berbicara dengan orang asli.

Streaming File

Cara pakai ini adalah yang lebih cocok untuk programmer karena kita bisa mengirim text ke Amazon Polly dan langsung mendapatkan file audio nya. Artinya suara yang dikeluarkan bersifat programatically (dapat diprogram). Kita aka mencoba membuat aplikasi kecil dengan html dan python untuk mencoba cara streaming ini.

Well, sebenarnya kalian bisa ikuti docs yang sudah disediakan. Tapi seperti kita tahu, docs aws itu kebanyakan tulisan, jadi bikin pusing. Saya rangkum menjadi begini:

Pertama, yang pasti sebelumnya harus buat akun di AWS

Lalu clone repo contoh kode yang sudah saya ambil intisari nya dari docs aws:

Buat akun administrator IAM user and group.
Ikuti langkah step by step yang bernomor 1–8 (no shortcut for this) di sini. Kalau kepanjangan, berikut TL;DR; nya:

Buka console IAM.

Di left menu, klik menu Groups untuk buat group baru dengan nama Administrators

Di left menu lagi, klik menu Users untuk buat user baru dengan nama adminuser yang akan dipakai di kodingan server.py kita

session = Session(profile_name="adminuser")

Install AWS CLI.

Configure AWS di local dgn contoh langkah seperti di sini. Singkat nya, jalankan perintah berikut dan isi access-access key yang diminta.

aws configure --profile adminuser

Terakhir, tinggal jalankan server python dengan perintah.

python server.py

Lalu buka url yang muncul di console. Biasanya di http://localhost:8000/index.html lalu kita bisa memilih voice (pakai Joanna untuk memakai neural engine) dan tulis text yang ingin diubah jadi suara di kolom text to read. Terakhir, klik tombol Read.

begini tampilannya bila berhasil

Jika muncul error saat menjalankan server, biasanya karena belum install python modul. Bila terjadi, lakukan pip install <modul>.

Selesai.

Code yang ada di repo sudah cukup simple. Kita tinggal memakai SDK dari aws dan cukup memanggil fungsi synthetize_speech.

response = polly.synthesize_speech(Text=text,           VoiceId=voiceId,           OutputFormat=outputFormat,           Engine="neural")

Selain python, AWS juga menyediakan SDK untuk bahasa lain. Bisa cek di sini.

Terakhir sebagai pemicu untuk mencoba sendiri, dengarkan lagi contoh file audio yang di generate oleh Amazon Polly dan rasakan takjubnya.

Klik link di bawah ini untuk mendengar suaranya.

Selamat mencoba

Hyperjump is an open-source-first company providing engineering excellence service. We aim to build and commercialize open-source tools to help companies streamline, simplify, and secure the most important aspects of its modern DevOps practices.

--

--