Friday, August 25, 2023

Mencoba TTS Bahasa Indonesia dengan VITs dan Meta MMS

Sudah lama saya ingin mencoba (membuat) teknologi text-to-speech (TTS) atau speech synthesis bahasa Indonesia. Percobaan pertama saya beberapa tahun lalu gagal. Disini reponya: Expressive-FastSpeech2. Pada percobaan tersebut, saya langsung mencoba membuat suara (bukan Bahasa Indonesia) yang memiliki emosi, seperti suara orang marah, sedih, atau senang. Alih-alih suara, saya hanya mendengar derau/bising saja dari algoritma FastSpeech2.

Ketika Meta/Facebook mengumumkan salah satu riset mereka, yakni MMS (Massively Multilingual Speech), saya langsung tertarik mencobanya. MMS bisa diaplikasikan untuk ASR (automatic speech recognition, atau STT, speech-to-text) dan TTS. Untuk TTS, sepemahaman saya, Meta hanya mengaplikasikan dataset yang besar pada Variational Inference with adversarial learning for end-to-end Text-to-Speech (VITS). Saya coba ASRnya tidak lebih baik dari OpenAI Whisper, khususnya dari sisi latency. Saya coba TTSnya, kebetulan hasilnya memuaskan, khususnya untuk yang belum pernah berhasil membuat TTS sendiri.

Repository

Untuk keperluan TTS ini, saya buat repository khusus di Github: TTS-Bahasa. TTS-Bahasa sebenarnya tidak khusus untuk bahasa Indonesia, tapi semua bahasa yang didukung oleh MMS (ada lebih dari 1000 bahasa). Repo tersebut saya adaptasi dari tutorial di laman MMS, yakni tutorial Google Colabnya. Saya hanya menambahkan satu skrip python CLI (command line interface) untuk memudahkan pembuatan audio file suara sintesis berdasarkan input kalimat. Contohnya seperti ini.

python3 mms_tts_ind.py --text "Selamat datang di Indonesia"
Suara berbahasa Indonesia akan diperdengarkan setelah eksekusi program selesai (berbunyi: "Selamat datang di Indonesia"). Luaran suara tersebut juga bisa disimpan dalam format WAV atau MP3, misalnya.
python3 mms_tts_ind.py --text "Selamat datang di Indonesia" -s -o selamat_datang.wav 
Untuk mencobanya, tidak perlu menginstall. Cukup clone repo tersebut, dan ikuti petunjuk di READMEnya. Jika ada kendala, anda bisa membuka "issues" di repo tersebut.

Demo

Jika anda bukan programmer, coder, researcher, mahasiswa teknik, atau tidak terbiasa dengan Python, anda bisa langsung mencoba demo-nya disini: https://bagustris.github.io/tts-bahasa/.

Tuesday, August 08, 2023

Menginstall ESPNET via Conda

Tulisan berikut merupakan catatan singkat instalasi ESPNET dengan Conda (OS: Ubuntu 20.04~).

Dari dokumentasi ESPNET, cara yang disarankan untuk menginsall ESPNET adalah melalui Conda.

./setup_anaconda.sh miniconda espnet 3.8
Namun dengan cara ini, environment conda menjadi tidak bernama sehingga kita perlu me-load conda dengan fullpath. Solusinya adalah dengan memberikan argumen yang tepat untuk `setup_anaconda.sh`, yakni $CONDA_ROOT. Pada Ubuntu, default CONDA_ROOT ada di `/home/$USER/miniconda3` (Setelah menginstall miniconda). Contohnya adalah sebagai berikut.
./setup_anaconda.sh /home/bagus/miniconda3/ espnet 3.9

Dengan cara ini kita bisa berpindah ke perintah instalasi selanjutnya, yakni `make`. Setelah terinstall, kita bisa mengaktifkan ESPNET dengan `conda activate espnet`. 

 

Catatan:

- Sebelum menginstall ESPNET, kita perlu menginstall cmake, python3-dev, sox, flac, dan build-essential via apt-get.

Saturday, August 05, 2023

Melanggan Medium

Minggu ini saya memutuskan untuk melanggan Medium. Biaya langganannya 5 USD/bulan. Medium, bagi yang belum tahu, adalah platform penerbitan daring yang menyediakan ruang bagi penulis dari berbagai bidang untuk berbagi pandangan, pengetahuan, cerita, dan pengalaman mereka. Saya tertarik dengan Medium karena menawarkan beragam konten menarik, dari esai inspiratif hingga artikel informatif yang membahas berbagai topik. 

Ada beberapa alasan kuat mengapa saya memutuskan untuk melanggan Medium untuk setahun kedepan: 

  • Beberapa konten dengan kualitas tinggi hanya bisa diakses dengan melanggan.  Medium menempatkan kualitas konten di atas hal lain; banyak penulisnya adalah penulis buku. Mereka menggali topik dengan mendalam dan menawarkan sudut pandang yang unik, membuat saya selalu terinspirasi dan berpikir lebih jauh. 
  • Bisa dibayar dari program partner. Agar mendapatkan bayaran dari artikel yang kita tulis, kita harus menjadi pelanggan melalui Medium Partner Program.
  • Beragam Topik yang Menarik: Medium menawarkan berbagai macam topik yang bisa dipilih sesuai minat dan hobi saya. Entah itu teknologi, pengembangan diri, psikologi, budaya, atau bisnis, saya selalu menemukan konten yang relevan dan bermanfaat bagi pengetahuan saya. 
  • Komunitas dan Interaksi: Medium juga memiliki komunitas yang aktif dan ramah. Saya senang membaca komentar dan tanggapan dari pembaca lain yang menambah wawasan saya tentang suatu topik. Selain itu, Medium memiliki fitur "clap" yang memungkinkan saya untuk memberikan apresiasi atas tulisan yang saya nikmati. 
  • Memotivasi untuk menulis lebih. Saya pernah menulis untuk menulis satu artikel per minggu (https://bagustris.blogspot.com/2020/03/new-article-every-weekend.html). Namun, hal ini sangat sulit ternyata! Dengan medium, saya berharap target ini bisa tercapai (logika: karena berbayar saya harus menulis, tidak saja membacanya).

Saya akan lihat (evaluasi) setahun mendatang apakah Medium ini memberikan benefit yang lebih dari 5 USD/per bulan. Harapan saya untuk setahun mendatang adalah: 

  1. Lebih Banyak Artikel saya yang Menarik: Saya berharap untuk menemukan lebih banyak artikel yang mendalam dan berbobot di Medium. Semakin banyak penulis berbakat yang bergabung dan berkontribusi, semakin kaya pula konten yang akan tersedia bagi para pembaca. 
  2. Pengembangan Diri sebagai Penulis (baik dari sisi kuantitas dan kualitas): Dengan membaca dan belajar dari penulis-penulis hebat di Medium, saya berharap untuk terus mengembangkan kemampuan menulis saya sendiri. Saya ingin mengasah kemampuan untuk menyajikan informasi dengan cara yang menarik dan dapat dipahami oleh pembaca. 
  3. Berbagi Kontribusi yang berdampak: Saya bermimpi suatu hari nanti bisa berkontribusi dengan menulis artikel berdampak tinggi di Medium. Bagaimana mengukur dampaknya? Medium menyediakan statistik siapa yang hanya melihat artikel kita dan siapa yang benar-benar membaca artikel kita. Metrik kedua ini yang saya kejar.
  4. Menjalin Lebih Banyak Koneksi: Medium adalah tempat yang tepat untuk menjalin hubungan dan koneksi dengan penulis dan pembaca dari seluruh dunia. Saya berharap bisa berinteraksi lebih banyak dengan mereka, berdiskusi, dan berbagi inspirasi. 

Demikianlah cerita mengapa saya memilih untuk melanggan Medium.com dan harapan saya untuk tahun mendatang.Selanjutnya, tulisan-tulisan dalam bahasa Indonesia akan saya tulis di Blogger ini sedangkan artikel bahasa Inggris akan saya tulis di akun Medium saya.

Evaluasi 2024:  

Setelah satu tahun melanggan Medium, saya putuskan berhenti. Selama setahun saya hanya mempublikasikan enam artikel atau rata-rata hanya satu artikel per dua bulan. Dengan membayarpun  (dan kemungkinan dapat bayaran juga), belum bisa memotivasi saya untuk lebih masif menulis di Medium. Ada banyak alasan; mungkin saya lebih terbiasa dan nyaman di Blogger ini daripada di sana.

Related Posts Plugin for WordPress, Blogger...