Normalisasi teks dalam tugas pengenalan ucapan

Saat menyelesaikan tugas yang terkait dengan pengenalan (Ucapan-Ke-Teks) dan generasi (Teks-Ke-Ucapan) pidato, penting bahwa transkrip cocok dengan apa yang dikatakan pembicara - yaitu, bahasa lisan yang nyata . Ini berarti bahwa sebelum pidato tertulis menjadi transkrip kami, perlu dinormalisasi .


Dengan kata lain, teks perlu dilakukan melalui beberapa langkah:


  • Mengganti angka dengan kata-kata: 1984 -> seribu sembilan ratus delapan puluh empat tahun ;
  • Penjelasan singkatan: 2 . -> dua menit kebencian ;
  • Transkripsi Latin: Orwell-> dll.

Normalisasi


Pada artikel ini, saya akan membahas secara singkat tentang bagaimana normalisasi dikembangkan dalam dataset Open_STT bahasa Rusia , alat apa yang digunakan dan tentang pendekatan kami terhadap tugas tersebut.


Seperti ceri pada kue, kami memutuskan untuk meletakkan normalizer kami berdasarkan seq2seq di domain publik: tautan ke github . Ini sesederhana mungkin untuk digunakan dan dipanggil oleh satu metode:


norm = Normalizer()
result = norm.norm_text(' 9  11   whiskas')

>>> '      '

Lebih lanjut tentang tugas


, , ? , . , .


, , :


  • 2 β€” (), . 2 β€” ;
  • 2 β€” , 2 β€” ;
  • 2 β€” , 2 β€” ;
  • = 2/5 β€” , . 2/5 β€” β€” .

: - ( β€” ) ( β€” ?). , , . .



. - . , , ~20% , ~80% .


Open_STT : β€” . STT , - 2020 , .


. 2020 . "" β€” .


Sequence to Sequence


- , sequence-to-sequence (seq2seq) . , seq2seq , "" , :


  • β€” ;
  • β€” ;
  • , β€” ;

Perhatian


attention "5 ". , "" "5", "".

seq2seq PyTorch . β€” . + + + , β€” + .


β€” , . ( , ) .


, :



TorchScript


, , Torchscript.


TorchScript β€” PyTorch, Python C++.


, PyTorch :


  1. , TorchScript , ;
  2. torch.jit.script ( torch.jit.trace), .

, , , , . , : , .. .



, . , .


  • norm.norm_string(" β€” β€” 27 38 %.")

' β€” β€” .'


  • norm.norm_string(" 22 1939 ")

' '


  • norm.norm_string(" Β«The Crying GameΒ»")

' Β« Β»'


  • norm.norm_string(" XVIII ")

' '


  • norm.norm_string(" 2012 6,6 ")

All Articles