Penjelasan Speech To Text

Toriq Ahmad
6 min readNov 25, 2019

--

Speech To Text

Pengertian Speech To Text (STT)

Speech to text (STT) adalah sistem yang berfungsi untuk mengubah bahasa lisan menjadi bahasa tulisan. Masukan sistem adalah ucapan manusia, selanjutnya sistem akan mengidentifikasikan kata atau kalimat yang diucapkan dan menghasilkan teks yang sesuai dengan apa yang diucapkan. Sinyal ucapan pertama kali akan dilewatkan pada bagian penganalisis ucapan untuk mendapatkan besaran-besaran atau ciri-ciri yang mudah diolah pada tahap berikutnya. Untuk setiap ucapan yang berbeda akan dihasilkan pola ciri yang berbeda.

Penganalisis sintaks akan melakukan transformasi sinyal ucapan dari domain waktu ke domain frekuensi. Pada domain frekuensi, untuk kurun waktu yang singkat, setiap sinyal dapat terlihat memiliki ciri-ciri yang unik. Namun demikian, pengucapan suatu unit bunyi ucapan (fonem) seringkali bervariasi antar orang yang berbeda, juga terpengaruh oleh fonem-fonem disekitarnya, kondisi emosi, noise, dan faktor-faktor lainnya. Sistem speech to text akan melakukan pengenalan untuk setiap unit bunyi pembentuk ucapan (fonem), selanjutnya mencoba mencari kemungkinan kombinasi hasil ucapan yang paling dapat diterima. Sistem yang lebih sederhana adalah sistem yang hanya dapat mengenal sejumlah kata yang jumlahnya terbatas. Sistem ini biasanya lebih akurat 6 dan lebih mudah dilatih, tetapi tidak dapat mengenal kata yang berada di luar kosa kata yang pernah diajarkan.

Jenis Speech To Text

Ada 2 tipe speech to text, dilihat dari ketergantungan pembicara yaitu :

  • Independent Speech To Text, yaitu sistem pengenal ucapan tanpa terpengaruh dengan siapa yang berbicara, tetapi mempunyai keterbatasan dalam jumlah kosakata. Model ini akan mencocokan setiap ucapan dengan kata yang dikenali dan memilih yang ”sepertinya” cocok. Untuk mendapatkan kecocokan kata yang diucapkan maka digunakan model statistic yang dikenal dengan nama Hidden Markov Model (HMM).
  • Dependent Speech To Text, yaitu sistem pengenal ucapan yang memerlukan pelatihan khusus dari pembicara, dimana hasil pelatihan dari masingmasing pembicara akan disimpan dalam sebuah profil. Profil inilah yang nantinya digunakan untuk berinteraksi dengan sistem pengenal ucapan dan sistem akan bergantung siapa yang berbicara. Sistem ini biasanya lebih mudah untuk dikembangkan, dimana contoh suara sudah dibuat sebelumnya dan disimpan dalam database (basis data) dan jumlah kosakatanya lebih besar dibandingkan dengan independent speech recognition. Proses pengenalan ucapan dengan cara membandingkan ucapan pembicara dengan contoh suara yang sudah ada.

Microsoft SAPI

Speech Application Programming Interface (SAPI) adalah sebuah API yang dikembangkan oleh Microsoft yang digunakan sebagai pengenal suara didalam lingkungan pemrograman aplikasi Windows. Sampai saat ini SAPI 7 dikemas baik berupa SDK (Sistem Development Kit) maupun disertakan dalam sistem operasi Windows itu sendiri. Aplikasi yang telah menggunakan SAPI antara lain Microsoft Office, dan Windows Vista. Secara arsitektur pemrograman SAPI dapat dilihat sebagai sebuah middleware yang terletak antara aplikasi dan speech engine. Di dalam SAPI versi 1 sampai dengan 5, aplikasi dapat berkomunikasi langsung dengan speech engine seperti tampak pada gambar berikut:

Arsitektur Microsoft API
Arsitektur Microsoft API

Komponen utama di dalam SAPI 5 adalah sebagai berikut:

  1. Voice Command, sebuah obyek level tinggi untuk perintah dan kontrol menggunakan pengenalan suara.
  2. Voice Dictation, sebuah obyek level tinggi untuk continous dictation speech recognition.
  3. Voice Talk, sebuah obyek level tinggi untuk speech synthesis.
  4. Voice Telephony, sebuah obyek untuk menulis aplikasi telepon berbasiskan pengenalan suara.
  5. Direct Speech Recognition, sebuah obyek sebagai mesin untuk mengontrol pengenalan suara (direct control of recognition engine)
  6. Direct Text to Speech, sebuah obyek sebagai mesin yang mengontrol synthesis.
  7. Audio Object, untuk membaca dari audio device atau sebuah file audio Option Explicit.

Contoh Pengimplementasian Sistem

Secara umum, gambaran sistem pada contoh ini dapat dilihat pada gambar di bawah ini :

Gambaran Umum Implementasi STT

Pada gambar di atas user akan mengucapkan sebuah kata yang kemudian diteruskan ke smartphone android. Aplikasi ini akan memproses suara yang masuk untuk dapat dikenali dan diterjemahkan kedalam text. Hasil akhirnya berupa text hasil terjemahan kata yang diucapkan.

Dan di bawah adalah block diagram recognizernya :

Block Diagram Recognizer

Bagian feature computation merupakan masukan dari decoder itu sendiri. Bagian ini sendiri merupakan bagian yang berperan dalam merubahan atau tranformasi bentuk gelombang suara menjadi ciri-ciri yang unik dimana nantinya akan digunakan dalam proses pengenalan ucapan. Pocketsphinx sendiri menggunakan melfrequency cepstral coefficient (MFCC).

Featured Computation

Decoder merupakan bagian inti dari pengenal suara. Decoder sendiri terbagi menjadi tiga modul utama yakni : acoustic modeling, forward search, and graph search.

Arsitektur Decoder Pocketsphinx

Gambar di atas merupakan keseluruhan proses decoding. Secara sederhana proses tersebut dapat dilihat pada gambar berikut ini :

Penggunaan Resource oleh Decoder

Alur dari decoding itu sendiri secara umum yakni :

  1. Word Graph. Word graph merupakan graf dari kata dan dapat dinyatakan sebagai graf yang diberi label. Dengan kata lain, graph ini graph yang merepresentasikan grammar dimana tiap node terdiri dari 1 kata saja. Pada akhirnya dengan menggabungkan word graph dapat diperoleh makna dari kesatuan teks.
  2. Phone Graph. Graph yang tiap node nya merepresentasikan fonem dari kata. Graph ini nantinya akan menentukan kecenderungan suatu fonem berpindah ke fonem lain sesuai node (titik).
  3. State Graph State graph disini merupakan graf yang menandakan kondisi. State graph juga menentukan representasi statistikal dari tiap fonem yang membentuk kata. Nantinya akan di cocokkan dengan data yang ada dan parameter dari akustik model sendiri.
  4. Viterbi Algorithm adalah metode decoding untuk mengkodekan kembali bit yang telah dikodekan oleh convolutional code dengan prinsip mencari kemungkinan bit yang paling mirip atau dapat disebut maximum likelihood. Proses decoding dapat disamakan dengan membandingkan deretan bit yang diterima dengan semua kemungkinan bit terkode, dari proses perbandingan tersebut akan dipilih bit yang paling mirip antara deretan bit yang diterima dengan kemungkinan deretan bit bit yang ada.

Linguist terdiri dari 3 buah komponen utama yakni :

  1. Language Model Modul ini menyediakan struktur bahasa pada tingkat kata. Dengan kata lain language model merepresentasikan urutan kata yang valid dan paling masuk akal. Implementasi dari model ini mendukung berbagai format yakni : SimpleWordListGrammar, JSGFGrammar, LMGrammar, FSTGrammar, SimpleNGramModel, LargeTrigramModel.
  2. Dictionary Modul ini menyediakan pronunciations atau pelafalan untuk kata-kata yang ada dalam Language Model. Pengucapan memecah kata menjadi urutan unit sub-kata yang ditemukan pada model akustik.
  3. Acoustic Model Model akustik menyediakan pemetaan antara unit ucapan atau speech dan HMM dimana nilainya dapat dicocokkan dengan hasil ekstraksi ciri yang disediakan oleh bagian Front-End. Secara keseluruhan, bagian linguist menghasilkan SearchGraph yang digunakan oleh decoder selama pencarian.
SearchGraph

SearchGraph berupa direct graph. Masing-masing “state” atau kondisi merepresentasikan komponen dari bagian linguist. Missal kata “one” dan “two” merupakan bagian dari Language Model. Pecahan kata-kata pada lingkaran yang berwarna hitam merupakan bagian dari Dictionary. Bagian HMM mencermikan Acoustic Model.

Sumber

--

--