Membuat voice assistant ala Young-Sil nya Han Ji Pyoung dengan Amazon Polly
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.
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.
Kita bisa memilih beberapa parameter di bagian bawah halaman:
- Engine
Pilih Standard untuk versi standard, tapi sudah lebih bagus daripada suara google translate. Neural untuk suara yang lebih smooth intonasi manusianya. - Language and Region
Ada beberapa pilihan bahasa mulai dari inggris-US, india, jepang, korea, spanyol, arab, dll. Sayang nya belum ada Bahasa Indonesia. - Voice
Untuk memilih varian suara. Ada yang suara laki-laki, perempuan, anak-anak, dll. - 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:
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.
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.