Rancang Bangun API untuk Membangkitkan Subtitle Bahasa Indonesia dengan Azure Cognitive Services.

Sebuah Gagasan Menawarkan Kemudahan

Video merupakan media elektronik yang menggabungkan teknologi audio dan visual secara bersama sehingga menghasilkan suatu tayangan yang dinamis dan menarik. Inovasi yang dituangkan dalam video memunculkan subtitle. Subtitle merupakan teks yang tampil pada video dan merepresentasikan narasi, dialog, musik, atau efek suara dalam sebuah video. Subtitle menjadi elemen penting pada video karena memudahkan penonton dalam memahami isi video. Kini subtitle semakin berkembang, tidak hanya bisa translasi dari bahasa asing yang diucapkan pada video, namun bisa juga digunakan menjadi bahasa yang sama dengan video. Hanya saja, pembuatan subtitle tidaklah mudah. Pembuatan subtitle video masih dilakukan secara manual menggunakan perangkat lunak tertentu dan memerlukan banyak waktu. Tujuan dari penelitian ini adalah mengembangkan sebuah API auto-generated subtitle untuk video berbahasa Indonesia dari Youtube, Azure Cognitive Services digunakan untuk mengenali suara manusia dan mengubahnya ke teks. Subtitle yang dihasilkan oleh API mampu mencapai akurasi hingga 70%.

Memperkenalkan  API auto-generated subtitle untuk video

Penelitian ini dikembangkan sebuah API yang mampu membangkitkan subtitle bahasa Indonesia secara otomatis dari video berbahasa Indonesia dari Youtube, sehingga mampu mempersingkat waktu pembuatan subtitle bahasa Indonesia. API ini memanfaatkan fasilitas Azure Cognitive Services, yaitu Azure Speech-to-text yang mampu mengubah audio ke transkripsinya. Akan ada dua proses yang terjadi pada API tersebut, yaitu audio extraction untuk mengekstraksi audio dalam format .wav dari video yang menjadi masukan Azure Speech-tot-text, dan subtitle generation yang merupakan proses pembuatan subtitle bahasa Indonesia.

Cara Kerja sistem mengembangkan auto-generated subtitle berbahasa Indonesia.

Walaupun terlihat sederhana, masukan API menggunakan URL video Youtube. Kemudian video dari Youtube tersebut akan dikonversi menjadi audio dalam format .wav. Apabila proses ekstraksi sukses, audio akan menjadi masukan proses pembuatan subtitle. Proses harus diulangi lagi apabila tidak berhasil karena proses selanjutnya membutuhkan masukan dari proses ekstraksi. Begitupun pada proses pembuatan subtitle, proses harus dijalankan hingga berhasil agar file subtitle bisa dihasilkan.  Berdasrkan flowchart di bawah ini, akan dibuat dua macam proses pada API yang terdiri dari tiga macam layanan.

Proses API membangkitkan subtitle

Proses pengembangan API dilakukan berdasarkan aktivitas API yang telah dirancang. Terdapat dua macam aktivitas pada API, yaitu audio extraction dan subtitle generation yang akan dibagi menjadi tiga macam method API.

  1. Audio extraction

Proses audio extraction merupakan proses konversi dari URL video Youtube ke audio berformat .wav. Konversi video ke audio ini memanfaatkan fasilitas konversi dari CloudConvert API. Proses untuk konversi file video ke audio menggunakan operasi POST ke endpoint CloudConvert API yaitu: https://api.cloudconvert.com/v1/convert. Tabel dibawah menjelaskan daftar parameter yang perlu dikirimkan  ke endpoint CloudConvert menggunakan method HTTP POST agar mendapatkan keluaran berupa file audio berformat .wav sesuai yang diinginkan.

URL Youtube tidak langsung menjadi masukan CloudConvert karena tidak mengandung informasi mengenai video, seperti kualitas video, resolusi, dan sebagainya. Untuk itu, akan digunakan sebuah NuGet Package dari Visual Studio bernama Youtube Explode yang akan mengubah URL Youttube menjadi URL stream video yang mengandung informasi mengenai video. URL hasil konversi oleh Youtube Explode akan menjadi masukan CloudConvert. Semua parameter yang diatas akan dikirimkan oleh CloudConvert menggunakan method POST dan CloudConvert akan mengembalikan hasil true apabila request berhasil.

2.Subtitle Generation

Subtitle generation merupakan proses pembuatan subtitle dari file audio yang dihasilkan oleh proses audio extraction menggunakan Azure Speech-to-text. Audio akan diambil dari CloudConvert API menggunakan method GET untuk menjadi masukan Azure Speech-to-text. Fasilitas dari Azure Speech-totext yang digunakan pada pengembangan API adalah Batch Transcription API yang mampu memproses audio dengan durasi lebih dari 15 detik. Metode POST transcription pada Batch Transcription API merupakan metode HTTP untuk mengirimkan URL audio ke endpoint Batch Transcription API bersama parameter lainnya untuk diproses ke dalam bentuk teks. Batch Transcription API hanya menerima parameter masukan dalam format penulisan JSON, begitu pun response nya. Terdapat tiga macam variabel response yang digunakan dalam pembentukan subtitle, yaitu: duration, offset, dan display. Variabel display menyimpan hasil akhir kalimat pada audio yang terdeteksi oleh Azure Speechto-text, offset menyimpan waktu awal munculnya teks pada audio dalam satuan mikro detik, dan variabel duration menyimpan durasi munculnya teks pada audio dalam satuan mikro detik pula. Dibawah ini merupakan fungsi dalam membuat keluaran dalam format penulisan subtitle srt .

Pada gambar diatas menjelaskan variabel startTime merupakan variabel yang menyimpan waktu awal teks muncul pada video, variabel endTime merupakan variabel untuk menyimpan waktu berakhir teks muncul pada video, dan variabel .srt merupakan variabel dengan tipe data string yang menyimpan waktu awal, waktu berakhir dan teks yang dimunculkan pada video.

Pengujian terhadap API

Pengujian terhadap API dilakukan dengan menguji akurasi untuk mengetahui tingkat akurasi subtitle yang dihasilkan API terhadap ucapan kalimat pada video. Akan ada empat macam video yang digunakan pada pengujian. Video pertama dan kedua merupakan video seminar dengan satu sumber suara yaitu pembicara pria, video ketiga merupakan video berita dengan satu sumber suara, dan video keempat merupakan potongan film dengan tiga macam sumber suara. Audio pada video pertama, kedua, dan keempat sudah menjadi bagian dari dataset, sementara audio pada video ketiga belum menjadi bagian dataset. Tabel dibawah merupakan tingkat akurasi subtitle masing-masing video terhadap ucapan kalimat pada video.

Tingkat akurasi masing-masing video pengujian bervariasi. Audio pada video ketiga belum menjadi bagian dari dataset, sehingga tingkat akurasi nya paling rendah dibandingkan yang lain. Sementara video kedua memiliki akurasi paling rendah dibandingkan video pertama dan keempat. Hal ini bisa disebabkan oleh kualitas audio yang berbeda antara ketiga video tersebut. Dilakukan analisis audio menggunakan perangkat bantuan bernama Audacity yang membantu dalam visualisasi gelombang audio. Pada gambar dibawah ini merupakan visualiasasi gelombang audio milik keempat video pengujian.

Terlihat pada gambar gelombang audio untuk video kedua memiliki rata-rata amplitudo terendah dibandingkan kedua video lainnya. Namun, video pertama juga memiliki besar amplitudo yang tidak jauh berbeda dengan video kedua. Maka, akan dilakukan perbandingan antara gelombang audio untuk video pertama dan video kedua dengan interval waktu yang lebih dekat.

Lalu video pertama memiliki amplitudo yang lebih besar dibandingkan video kedua. Selain itu, jeda suara pada video pertama terlihat lebih jelas dibandingkan video kedua yang memiliki tingkat amplitudo yang rendah sehingga jeda suara yang ada pada video tidak begitu nampak perbedaannya. Jadi kesimpulan yang didapat bahwa Amplitudo audio berpengaruh pada tingkat akurasi subtitle yang dihasilkan oleh API.

Leave a comment

Your email address will not be published.