Speech recognition berakar pada penelitian yang dilakukan di Bell Labs pada awal 1950-an. Sistem awal terbatas pada satu penutur dan memiliki kosakata terbatas sekitar selusin kata. Sistem Speech recognition modern telah berkembang pesat sejak sistem lama tersebut. Mereka dapat mengenali ucapan dari berbagai penutur dan memiliki banyak kosakata dalam berbagai bahasa.
Komponen pertama dari Speech recognition, tentu saja, adalah ucapan/ speech. Ucapan harus diubah dari suara fisik menjadi sinyal listrik dengan mikrofon, dan kemudian ke data digital dengan konverter analog-ke-digital. Setelah mendigitalkan, beberapa model dapat digunakan untuk mentranskripsikan audio menjadi teks.
Kebanyakan sistem Speech recognition modern mengandalkan apa yang dikenal sebagai Hidden Markov Model (HMM). Pendekatan ini bekerja dengan asumsi bahwa sinyal ucapan, jika dilihat dalam skala waktu yang cukup singkat (katakanlah, sepuluh milidetik), dapat diperkirakan secara wajar sebagai proses stasioner, yaitu proses di mana properti statistik tidak berubah seiring waktu.
Dalam HMM, sinyal ucapan dibagi menjadi fragmen 10 milidetik. Spektrum daya setiap fragmen, yang pada dasarnya adalah plot kekuatan sinyal sebagai fungsi frekuensi, dipetakan ke vektor bilangan real yang dikenal sebagai koefisien cepstral. Dimensi vektor ini biasanya kecil terkadang serendah 10, meskipun sistem yang lebih akurat mungkin memiliki dimensi 32 atau lebih. Keluaran akhir dari HMM adalah urutan vektor-vektor ini.
Untuk memecahkan code speech menjadi teks, kelompok vektor dicocokkan dengan satu atau lebih fonem unit dasar ucapan. Perhitungan ini memerlukan pelatihan, karena bunyi fonem bervariasi dari satu pembicara ke pembicara lainnya, dan bahkan berbeda dari satu ucapan ke ucapan lainnya oleh pembicara yang sama. Algoritma khusus kemudian diterapkan untuk menentukan kata (atau kata) yang paling mungkin menghasilkan urutan fonem tertentu.
Dapat dibayangkan bahwa seluruh proses ini mungkin mahal secara komputasi. Dalam banyak sistem speech recognition modern, neural network digunakan untuk menyederhanakan sinyal ucapan menggunakan teknik untuk transformasi fitur dan pengurangan dimensi sebelum pengenalan HMM. Voice activity detectors (VAD) juga digunakan untuk mengurangi sinyal audio menjadi hanya bagian yang kemungkinan besar berisi ucapan. Ini mencegah pengenal membuang-buang waktu menganalisis bagian sinyal yang tidak perlu.
Disini Kita akan menggunkan library SpeechRecognition di python. Sebelum itu kita akan coba bahas sedikit mengenai library ini. Untuk menginstallnya kita cukup gunakan perintah pip install SpeechRecognition.
Didalam SpeechRecognition terdapat Recognizer class. Tujuan utama dari instance Recognizer tentu saja, untuk mengenali ucapan. Setiap instance hadir dengan berbagai pengaturan dan fungsionalitas untuk mengenali ucapan dari sumber audio.
Setiap instance Recognizer memiliki tujuh metode untuk mengenali ucapan dari sumber audio menggunakan berbagai API. :
recognize_bing(): Microsoft Bing Speech
recognize_google(): Google Web Speech API
recognize_google_cloud(): Google Cloud Speech - requires installation of the google-cloud-speech package
recognize_houndify(): Houndify by SoundHound
recognize_ibm(): IBM Speech to Text
recognize_sphinx(): CMU Sphinx - requires installing PocketSphinx
recognize_wit(): Wit.ai
Biar gk terlalu kepanjangan kita langsung coba saja gasss.
Pertama kita import terlebih dahulu librarynya
import speech_recognition as sr
Kemudian disini saya ngedefine sr.Recognizer() sebagai r
r = sr.Recognizer()
statement with di Python digunakan dalam penanganan pengecualian untuk membuat kode lebih bersih dan lebih mudah dibaca. Kemudian kita masukkan juga lokasi file yang akan kita ubah menjadi text. Dan setelah itu kita record file yang akan kita transkripsi agar bisa di masukkan langsung ke dalam fungsi recognize google.
with sr.AudioFile("file/Gombel.wav") as source:
audio = r.record(source)
Kemudian disini adalah proses pengenalan dan pengubahan dari audio menjadi text menggunakan Google Speech Recognition.
try:
print("Transkripsi: " + r.recognize_google(audio, language="id-ID"))
LookupError Exception adalah kelas Dasar untuk error yang muncul ketika sesuatu tidak dapat ditemukan atau speech is unintelligible.
except LookupError:
print("Saya tidak mengerti")
Setelah kita running maka akan mendapatkan output seperti ini
No comments: