Eja dengan benar

Halo semuanya!


Banyak dari kita memiliki sedikit pengalaman dalam apa yang disebut penulisan suara - hanya psikoanalis yang digunakan untuk merekam pikiran mereka pada perekam suara. Sekarang dikte menjadi lebih akrab - layanan panggilan suara di telepon pintar telah terbiasa dengannya. Berpartisipasi sebagai pemilik produk dalam proses menciptakan produk untuk mengenali pembicaraan terus menerus Rusia, berkomunikasi dengan pengembang algoritma dan dengan klien, melakukan berbagai tes sistem pengenalan, mengamati bagaimana pengguna menentukan teks mereka dan memiliki pengalaman mereka sendiri dalam memasukkan teks ke komputer menggunakan suara, Saya mencetak banyak pengamatan menarik. Untuk lebih memahami cara menggunakan pengenalan suara otomatis dengan benar, mari kita lihat bagaimana pengenalan suara bekerja. Deskripsi akan sangat disederhanakan, tetapi akan membantu untuk memahami kesalahan apa yang dilakukan orang saat mendikte. Dan juga:Saya akan menulis artikel ini dengan bantuan dikte, membuat koreksi dari keyboard hanya di tempat-tempat di mana Anda tidak dapat melakukannya tanpa itu.

Jadi:


Untuk membuat mesin pengenalan, kita membutuhkan model akustik dan bahasa.
Model akustik bertanggung jawab untuk mengkorelasikan sepotong suara (bingkai) dengan fonem yang sesuai. Fonem adalah bunyi ujaran yang terpisah, misalnya, “a-perkusi”, “t-soft”, “t” dan 49 lainnya. Masalah terbesar adalah bahwa banyak fonem sangat mirip satu sama lain dan cukup sulit untuk membedakan kata "mobil" dari kata "mobil" (ingat berapa kali Anda bertanya lagi ketika Anda diberi tahu dengan nama yang tidak dikenal). Oleh karena itu, model akustik dibuat probabilistik: ia melaporkan bahwa dengan beberapa kemungkinan fonem "a-shock" diucapkan dalam fragmen suara ini, dengan kemungkinan lain itu adalah fonem "a-shockless", dll. dan memberikan probabilitas untuk semua fonem.


Untuk memiliki model akustik seperti itu, kita perlu melatihnya terlebih dahulu. Untuk ini, diambil basis bicara yang besar (ratusan jam pidato direkam pada mikrofon oleh puluhan pembicara dari jenis kelamin dan usia yang berbeda). Basis ditandai sehingga diketahui fonem yang berbunyi pada titik waktu berapa. Dan kemudian setelah pelatihan kita mendapatkan untuk masing-masing fonem fungsi distribusi probabilitas tertentu yang menggambarkan bagaimana, rata-rata, fonem ini diucapkan oleh orang-orang.

Model bahasaIni juga probabilistik dan menggambarkan struktur bahasa. Ini menunjukkan seberapa besar kemungkinan (benar) frasa ini atau itu dari sudut pandang bahasa. Misalnya, frasa "ibu mencuci bingkai" cukup normal, tetapi "ibu mencuci bingkai" sudah salah (frasa ini sangat tidak menyenangkan bagi Voco sehingga ia mengenali "ibu mencuci ibu"). Setelah kami mengenali kata berikutnya, model bahasa menentukan bagaimana kata ini konsisten dengan kata-kata yang dikenal sebelumnya.
Model bahasa melatih sejumlah besar data teks (gigabytes teks). Berdasarkan data pelatihan ini, kami menghitung probabilitas kemunculan kata dalam konteks tertentu, berdasarkan frekuensi kemunculan frasa ini. Kami menggunakan frasa tidak lebih dari 3 kata (model bahasa 3 gram). Oleh karena itu, model linguistik tidak dapat membantu mendamaikan, misalnya, kata sifat dengan kata benda jika ada dua kata di antara mereka. Dalam hal ini, pencocokan hanya terjadi karena model akustik.
Sebagai kamus pengenalan, kami menggunakan sekitar 300 ribu kata yang paling sering digunakan yang mencakup 99% dari rata-rata ucapan orang.


Sekarang mari kita berurusan dengan pengakuan itu sendiri


Mengetahui bagaimana setiap kata ditranskripsikan menggunakan fonem dan mengetahui probabilitas dari model bahasa, kita dapat membuat grafik pengenalan (mesin keadaan terbatas). Sebagai kenalan cepat dengan mesin negara terbatas, bagian "Mesin negara" dalam artikel ini sempurna . Fonem tiba pada input kolom ini, ia menerjemahkannya ke dalam kata-kata, dan kata-kata menjadi frasa.


Grafik pengenalan untuk kata-kata: "ibu", "sabun", "bingkai", "piring". Di tepi grafik kita memiliki fonem sebagai karakter input (kata sebelum ':'), kata-kata sebagai karakter keluaran (kata setelah ':') dan bobot dari model bahasa (angka setelah '/'). '-' berarti input atau output kosong. Tepi dari simpul ke-4 akan mengubah siklus grafik sehingga beberapa kata dalam satu baris dapat dikenali.

Setelah dikenali, kami mendapatkan fragmen suara, model akustik mengubahnya menjadi seperangkat fonem dengan probabilitas yang termasuk dalam input grafik kami. Jadi, kita bergerak sepanjang grafik, membentuk banyak hipotesis. Setiap hipotesis memiliki bobot yang terbentuk dari probabilitas dari model akustik dan probabilitas dari model bahasa (terletak di tepi grafik).
Grafik pengenalan nyata sejuta kali lebih besar dari contoh mainan kami, jadi pada beberapa titik akan ada terlalu banyak hipotesis dan tidak akan ada cukup RAM untuk menarik semuanya. Untuk mencegah hal ini terjadi, berbagai metode digunakan untuk mengurangi jumlah hipotesis. Seringkali ini adalah dua kriteria sederhana: hipotesis tidak boleh lebih dari jumlah tertentu dan hipotesis apa pun tidak boleh kehilangan terlalu banyak untuk hipotesis terbaik.

Sekarang kita memiliki sedikit pemahaman tentang teori, mari kita beralih ke tips tentang apa yang terbaik untuk dilakukan dan apa yang terbaik untuk tidak dilakukan ketika mendikte.


Apakah SU


Salah satu kesalahan paling umum yang dilakukan pengguna adalah dikte oleh suku kata. Kami melatih sistem dalam ucapan biasa, jadi peregangan kata-kata dengan suku kata hanya membingungkan sistem. Ketika mendikte oleh suku kata, semua vokal dalam satu kata berubah menjadi perkusi, fonem diucapkan lebih lama, jeda di antara suku kata muncul. Semua ini mengarah pada hasil yang menyedihkan, ketika kata-kata dibagi menjadi sekelompok fragmen bersuku kata satu. Misalnya, mengatakan Voco sesuai dengan suku kata "kehabisan jalan" kami mendapatkan hasil berikut: "Anda tidak harus menekan SU" atau semacamnya: "Anda tidak harus menekan SU", tetapi jelas bukan itu yang kami butuhkan.

Kiat: berbicara secara alami sebagai orang biasa.


Bagaimana kau bisa melakukannya



Beberapa orang berbicara dengan sangat cepat. Selain itu, pidato semacam itu sering mengurangi kata-kata: preposisi ditelan, akhiran tidak diucapkan, kata-kata panjang berubah menjadi neraka tahu, misalnya, alih-alih "Alexander Alexandrovich", kroni akrab "San Sanych" diucapkan. Orang sering memahami ucapan seperti itu tanpa masalah, karena otak memulihkan informasi yang hilang, tetapi algoritma pengenalan suara mengatasi masalah ini dengan kesulitan. Misalnya, seorang pria bukannya "mobil merah" kata "mobil merah". Selama pengakuan, hipotesis kami yang benar akan menerima probabilitas yang sangat kecil ketika melewati fonem yang tertelan di akhir kata dan sebagai hasil dari bobot yang bertambah, itu mungkin tidak cukup untuk kemenangan, tetapi beberapa "kecantikan Masha" akan menang.
Kami telah memperhitungkan beberapa pengurangan frekuensi dalam pengucapan. Misalnya, jika Anda mengatakan "cho" alih-alih "apa" atau "halo" alih-alih "halo", ini tidak akan memengaruhi hasil pengenalan, karena kami menambahkan transkripsi yang sesuai ke grafik kami. Masalah kedua yang bisa menunggu seorang amatir untuk mendikte dengan kecepatan tinggi adalah syntag homophones.
"Dia menghela nafas dan berpikir pada dirinya sendiri,
Bagaimana kamu bisa pergi."

Tip: jika Anda cenderung berbicara sangat cepat, cobalah untuk mengucapkan kata-kata itu dengan lebih jelas. Jeda singkat di antara kata-kata akan membantu Anda mempertahankan kecepatan lebih lambat dan tidak menelan kata-kata.


Paul cakar reli tetapi


Masalah lain untuk pengakuan adalah “menjerit” dan ragu-ragu: seseorang mulai berbicara sepatah kata, membuat kesalahan, memotongnya menjadi dua, dan kemudian mengucapkannya dengan benar. Misalnya, seseorang berkata "jatuh paralel." Tidak ada kata "terjatuh" dalam kamus, oleh karena itu, dalam kasus seperti itu, hasil pengenalan bisa sangat mengejutkan: misalnya, tersandung dan kata itu sendiri dapat bergabung menjadi satu serupa dalam suara atau hasil pengakuan akan terdiri dari beberapa kata kecil juga mirip dalam suara, misalnya "lantai rally" tapi. "
Juga, jeda panjang dapat menyebabkan decoder memutuskan bahwa Anda telah menyelesaikan kalimat, yang berarti bahwa koordinasi dengan kata-kata yang sudah dikatakan akan rusak.

Kiat: pikirkan terlebih dahulu apa yang ingin Anda katakan, karena ini secara signifikan mengurangi jumlah jeda panjang dan keraguan dalam berbicara.


Malam itu Jalan Lentera. Apotek


Frasa pendek kurang dikenal daripada frasa panjang. Dalam kalimat pendek, terutama yang satu kata, model bahasa praktis tidak berfungsi. Kata "mesin" sulit dibedakan dari kata-kata: "mobil", "mobil", "mesin", dan model bahasa dalam kasus ini hanya bergantung pada kemunculan kata itu dalam data pelatihan, yang, pada kenyataannya, tidak membawa informasi yang berguna. Pada saat yang sama, kata "mobil" dalam frasa "ia tiba dengan mobil" harus dikenali dengan baik, karena model bahasa, berdasarkan konteks yang sudah dikenal "tiba," akan membuat pilihan yang tepat. Frasa pendek juga termasuk frasa dengan jeda panjang di antara kata-kata, karena dalam hal ini seluruh konteks pengucapan kata sebelum jeda dikeluarkan dari karya model bahasa.

Kiat: Hindari frasa yang sangat singkat. Jika ini tidak memungkinkan, cobalah untuk mengucapkan akhiran dengan jelas.


Saya tidak mengatakan itu


Itu terjadi bahwa tidak hanya apa yang Anda katakan diakui, tetapi juga ucapan tetangga Anda. Akibatnya, huruf yang Anda ketikkan dalam suara Anda tampak seperti surat dari Paman Fedor kepada ibumu: "Rambutnya tertutup, ekornya rontok." Ini terutama benar ketika menggunakan mikrofon jarak jauh pada laptop atau kamera web. Kami mencoba untuk meningkatkan kualitas pengenalan dalam kebisingan dan pidato latar belakang yang terpisah, tetapi dalam kasus di mana pengguna diam, pengenalan juga dapat disesuaikan dengan ucapan latar belakang yang tenang.

Tip: Headset berkualitas dan lingkungan yang tenang akan membantu meningkatkan kualitas pengenalan.


Seperti cola


Voco mengakui pidato Rusia, tetapi beberapa kata bahasa Inggris populer, nama perusahaan dan program produk juga dapat dijangkau. Misalnya, "Coca-Cola", "Windows" dikenali dengan sempurna. Tetapi ada masalah kecil: dalam bahasa Inggris, ada suara yang tidak dalam bahasa Rusia. Untuk mengatasi masalah ini, kami mentranskripsikan kata-kata bahasa Inggris dengan fonem-fonem Rusia yang paling mirip, oleh karena itu, sebaiknya diucapkan dengan cara Rusia. Misalnya, Coca-Cola. [kòka kòla]. Jangan perlihatkan aksen bahasa Inggris Anda yang luar biasa [k'əʊkʌ k'əʊla].

Kiat: Ucapkan kata-kata bahasa Inggris dengan aksen Rusia.


Deep Kutra bayonet sisi bayanova dan pasar bank perokok


Kebetulan kata itu tidak dikenali, terlepas dari kenyataan bahwa Anda berusaha sangat keras dan mengikuti semua rekomendasi kami. Mungkin alasannya adalah bahwa kata ini tidak ada dalam kamus pengenalan. Kami mengajarkan model bahasa pada subjek umum (politik, ekonomi, budaya, olahraga, dll.) Dan sekitar 300 ribu kata yang paling sering masuk ke kamus. Karena itu, kemungkinan besar tidak ada istilah atau nama keluarga bos yang sangat terspesialisasi. Jadi, pengguna mendiktekan surat kepada klien: Vladimir yang terhormat wajib, Vladimir untuk menjalankannya, tanpa, tanpa 1, tanpa wajah. Berkali-kali, pengguna mengucapkan nama klien - Bezyakin, memvariasikan pengucapan, kecepatan pengucapan, menekankan stres, tetapi nama yang diinginkan tidak dikenali.
Jadi, inilah ungkapan terkenal dari ahli bahasa Sherba "Seorang cuzra shteko budlanula boraka yang dalam dan seorang anak kecil berambut keriting" berubah menjadi bayonet Bulanova dan kaleng rokok.
Agar kata-kata yang Anda butuhkan yang tidak dikenal oleh model bahasa dikenali dengan benar, Anda harus menggunakan adaptasi model pengenalan dengan kebutuhan Anda. Jika Anda mengetik teks, misalnya, pada bioinformatika, maka yang terbaik adalah mengambil teks pada bioinformatika dan melatih ulang sistem pada mereka.
Saat melatih kembali dari teks-teks baru, model bahasa kecil dibangun, yang akan berpartisipasi dalam pengakuan bersama dengan model utama. Artinya, sekarang bobot yang kita dapatkan dari model bahasa akan terdiri dari dua bobot: bobot dari model bahasa utama dan bobot dari model adaptasi.
Menyesuaikan sistem dengan teks jauh lebih benar daripada menambahkan kata-kata terpisah ke kamus pengenalan. Menambahkan satu kata saja tidak memberi kami informasi tentang bagaimana kata ini digunakan, bagaimana ia dimiringkan, dll., Oleh karena itu kesalahan mungkin terjadi dalam mengenali akhiran.

Kiat: sesuaikan pengenalan dengan tema Anda pada teks Anda atau tambahkan kata-kata yang diperlukan ke kamus pengenalan.


PS: Teks ini direkam dalam suara menggunakan aplikasi #Voco . Dan Anda dapat melihat bagaimana ini terjadi di video:


Sastra untuk Geeks:
1. : Mohri, M., Pereira, F., & Riley, M. Speech recognition with weighted finite-state transducers. In Springer Handbook of Speech Processing (pp. 559-584). Springer Berlin Heidelberg 2008.
2. www.morganclaypool.com/doi/abs/10.2200/S00462ED1V01Y201212SAP010
3. , www.amazon.com/Automatic-Speech-Recognition-Communication-Technology/dp/1447157788/ref=sr_1_1?s=books&ie=UTF8&qid=1447854516&sr=1-1&keywords=speech+recognition

Source: https://habr.com/ru/post/id388151/


All Articles