Hello Bebi? (STT)

2B | +1% better 2day | ai.002

--

As per request of our glorious leader Билгээ, мөхөс би Google Oppa-с хайж хайж хамгийн боломжийн гэсэн tutorial-ууд дундаас даган дууриаж ажиллуулж чадсан Speech-to-Text-ийн demo хувилбар маань энэ бөлгөө
(#MachineLearningUB намын даалгавар)

Хэдийгээр хиймэл оюуны талаар судалж эхлээд тийм удаагүй байгаа ч бага зэрэг гадарладаг болоод байна. Удахгүй доторлодог болох байх 🤞 За тэгээд өнөөдөр яриаг бичвэр лүү шилжүүлэгчийг туршиж үзэцгээнэ ээ. Тэр нь дотроо

  1. Монгол хэл дээр
  2. Common Voice-ийн дата ашиглан
  3. Speech To Text (STT) сургах

гэсэн 3 том зорилготой.

Speech-to-Text (STT) гэж юу вэ?

Siri, Alexa, Google Assistant зэрэг өдөр тутамдаа харьцдаг зүйлс маань бүгд л бидний яриаг сонсоод, боловсруулаад хариу үйлдэл хийдэг. Харахад энгийн мэт энэ үйлдлийн цаана хэд хэдэн үйлдэл хийгдэж байдаг. Тэр дундаас нэг чухал хэсэг нь STT буюу яриаг бичвэр лүү хөрвүүлэх үйлдэл юм.

Одоогийн байдлаар Speech Recognition-д зориулан томчуудын хийсэн IBM Watson, Google Speech-to-Text API, Microsoft Cognitive Services, Amazon Transcribe гэх мэт сервисүүд Kaldi, CMU Sphinx, DeepSpeech, Julius, Wav2letter++ зэрэг нээлттэй эхийн хувилбарууд байдаг.

Tools used :

Яриаг бичвэр лүү хөрвүүлэгч хийхийн тулд дараах tool-үүдийг ашигласан.

Google Colab & Python 3 & Mozilla DeepSpeech & Mozilla Common Voice

1️⃣ Хувийн компьютер дээрээ машин сургалт турших нь тийм ч амар (+хурдан) биш учраас үнэгүй бас онлайн гэдгээр нь Google Colab-г сонгосон. Төгсгөл хэсэгт Google Colab notebook-ээ share хийсэн байгаа.

2️⃣ Машин сургалтын жишээнүүд ихэвчлэн python хэл дээр байдгийг анзаарсан байх. Сурахад амархан бөгөөд маш олон сангууд (libraries) байдаг учраас юм билээ. (би ч бас python дээр хийсэн)

3️⃣ Сургах model маань Baidu Research-ийн гаргаж ирсэн Deep Speech-г ашиглах бөгөөд Mozilla Deep Speech-н заавраар хийсэн.

4️⃣ Сургалтын датагаа Mozilla Common Voice дээрх Монгол хэлний дата-г авч ашигласан байгаа. Өнөөдрийн хувьд хэр сайн ажиллах вэ гэдэг нь гол зорилго биш болохоор датаны хэмжээнд санаа зоволтгүй.

Mozilla Common Voice — Mongolian

Warm up

Яриаг бичвэр лүү хөрвүүлэх технологийг судлаж эхлээд цэцгэнд төөрсөн эрвээхий шиг л юм болсон. Хэтэрхий олон сангууд байсан болохоор тэр дундаас нь харж2 байгаад Mozilla DeepSpeech-г сонгосон байгаа.

Анх гаргаж ирсэн газар нь Baidu Research (Хятад), хэрэглэгдэхүйц хувилбар (implementation) бэлэн байгаа нь Mozilla (Open Source) байсан нь сонгох том хүчин зүйл болсон гэдгийг хэлэх хэрэгтэй байх.

Эхлээд бэлэн загвар туршиж үзэх дараа нь өөрөө сургах гэж ажлаа хоёр хувааж байгаад үзэж тарлаа даа. Өнөөдөр харин эхний хэсгийн талаар тайлбарлах бөгөөд дараачийн нийтлэл дээрээ өөрөө сургасан туршлагаасаа хуваалцана аа.

  1. Try : Mozilla Deep Speech — (English)
  2. Train : Mozilla Deep Speech in Mongolian language
    — using Mozilla Common Voice Dataset

Baidu Research

Хятадын хамгийн том компаниудын нэг Байду-гийн Хиймэл Оюун (AI)-руу чиглэсэн судалгаа хийдэг хэсэг. Анх 2000 оноос үүсэлтэй Байду компани 2014 онд Dr. Andrew Ng-г судалгааны багийн ахлагчаар томилсноор Baidu Research сууриа тавьсан байна.

Цахиурын Хөндий (Silicon Valley, Seattle) болон Бээжин 2-т байрладаг Baidu Research багт дэлхийн хамгийн шилдгүүд ажилладаг бөгөөд ихэвчлэн ирээдүй лүү чиглэсэн (future looking) судалгаануудыг хийдэг.

Өнөөдөр Baidu Research нь 300+ хүнтэй NLP, computer vision, machine learning, knowledge graph гэх мэт олон төрөлд шилдгүүдийн эгнээнд багтсан тоотой хэдэн компаниудын нэг болж чадсан.

Deep Speech

2014/12/17-нд өмнө нь байсан дуу хоолой таних системийг бодвол энгийн боловч илүү сайн ажилладаг шинэ систем болж гарч ирсэн. Уламжлалт аргуудтай харьцуулахад гар ажиллагаа бага бөгөөд шуугиантай (noisy) орчинд state-if-the-art үнэтэй системүүдээс илүү сайн үр дүн гаргаж чадсан байна. (Deep Speech: Scaling up end-to-end speech recognition)

2015/12/18-нд буюу 1 жилийн дараа бүтцийн хувьд тэс ондоо Англи ба Хятад 2 хэл дээр сургасан хувилбар 2-оо танилцуулсан. High Performance Computing (HPC) техникийг ашигласнаараа өмнөхөөсөө 7 дахин илүү хурдасгаж чадсан.
(Deep Speech 2: End-to-End Speech Recognition in English and Mandarin)

Хамгийн сүүлд 2017/7/24-нд 3-дах хувилбар дээрээ CTC, RNN-Transducer, attention-based Seq2Seq гэсэн гурван загварын харьцуулалтыг хийн танилцуулсан. Өмнөх 2-р хувилбараа илүү энгийн болгож сургалт хийх явцыг хялбаршуулж чадсан.
(Deep Speech 3: Even more end-to-end speech recognition)

За тэгээд үүнээс гадна 2017/10/20-нд Deep Voice 3 гэж бичвэрийг аудио болгох (TTS : Test-to-Speech) системийг танилцуулсан. Энэ систем нь маш олон хүмүүсийн хоолойг дууриах чадалтай юм гэсэн.
(imitating thousands of human voices from people across the globe)

(Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning)

Mozilla Deep Speech

Мэдээж өнөөдөр туршиж үзэх зүйлийнхээ талаар дурдахгүй байж болохгүй байх. 😂

Baidu Research-н гаргасан Deep Speech: Scaling up end-to-end speech recognition paper хэрэглэж болохуйц хувилбарыг бидэнд гаргаж өгсөн. Тэгэхдээ хийхэд хялбарыг нь бодон Google-ийн Tensorflow-г ашиглажээ.

STT-н хөгжүүлэлтийг хурдасгах, үнэ төлбөргүйгээр хэрэглэгчдэд хүргэх зорилгоор энэ төслөө нээлттэй эх болгон Github дээр байршуулсан. Одоогийн байдлаар 0.5.1 гэсэн stable хувилбарыг хамгийн сүүлд гаргасан бөгөөд цаашдын хөгжүүлэлт нь v0.6.0-alpha.9 дээр явж байгаа.

Demo

Яасан ч их юм биччихэв. Одоо гол турших хэсэг рүүгээ орцгоох уу?. Чихээрээ сонсож нүдээрээ харцгаая. Туршилт дээрээ бэлэн сургасан 0.5.1 загварыг ашиглан миний шүтээн Allen Iverson-ы ярианаас хөрвүүлж үзнэ.
(AI on MJ — Hall of Fame induction speech)

  1. Бэлтгэл ажил : Google Colab
  2. Аудио : Download video from YouTube & Convert into .wav
  3. Хөрвүүлэх : STT conversion using v0.5.1 model

Me : Cool, right?
You : Mhhm… yeah it’s cool

Next step

Зиа за тэгээд Deep Speech ажиллуулаад үзчихлээ. Болдог л юм байна. Гоё л юм байна. Лаг л юм байна. Одоо харин Монгол хэл дээр сургах гэдэг том ажил үлдэж байна. Тэр хэсэг маань бараг л болчихсон. Гэхдээ нэг зүйл дээр fail-дсэн болохоор амжилттай дуусгаж чадаагүй байгаа. Тэрийгээ дуусгачихвал share хийнэ ээ. (тун удахгүй…)

--

--

Билигүн.Б (Програмч аав)
2B +1% better 2day

I am who I am... || өөрийнхөөрөө байхаас ичихгүй