Кампанія Mozilla прадставіла рухавічок распазнання прамовы DeepSpeech 0.6

Прадстаўлены выпуск які развіваецца кампаніяй Mozilla рухавічка распазнання прамовы DeepSpeech 0.6, які рэалізуе аднайменную архітэктуру распазнання прамовы, прапанаваную даследнікамі з кампаніі Baidu. Рэалізацыя напісана на мове Python з выкарыстаннем платформы машыннага навучання TensorFlow і распаўсюджваецца пад свабоднай ліцэнзіяй MPL 2.0. Падтрымліваецца праца ў Linux, Android, macOS і Windows. Прадукцыйнасці дастаткова для выкарыстання рухавічка на плата LePotato, Raspberry Pi 3 і Raspberry Pi 4.

У наборы таксама прапануюцца навучаныя мадэлі, прыклады гукавых файлаў і інструментарый для распазнання з каманднага радка. Для ўбудавання функцыі распазнання прамовы ў свае праграмы прапанаваны гатовыя да ўжывання модулі для Python, NodeJS, C++ і .NET (іншымі распрацоўнікамі асобна падрыхтаваны модулі для Іржа и Go). Гатовая мадэль пастаўляецца толькі для англійскай мовы, але для іншых моў па прыкладаемай інструкцыі можна навучыць сістэму самастойна, выкарыстоўваючы галасавыя дадзеныя, сабраныя праектам Common Voice.

DeepSpeech значна прасцей традыцыйных сістэм і пры гэтым забяспечвае больш высокую якасць распазнання пры наяўнасці старонняга шуму. У распрацоўцы не выкарыстоўваюцца традыцыйныя акустычныя мадэлі і канцэпцыя фанем, замест іх ужываецца добра аптымізаваная сістэма машыннага навучання на аснове нейронавай сеткі, якая дазваляе абыйсціся без распрацоўкі асобных кампанентаў для мадэлявання розных адхіленняў, такіх як шум, рэха і асаблівасці гаворкі.

Адваротным бокам падобнага падыходу з'яўляецца тое, што для атрымання якаснага распазнання і навучання нейронавай сеткі рухавічок DeepSpeech патрабуе вялікага аб'ёму разнастайных дадзеных, надыктаваных у рэальных умовах рознымі галасамі і пры наяўнасці натуральных шумоў.
Зборам падобных дадзеных займаецца створаны ў Mozilla праект Common Voice, які прадстаўляе правераны набор дадзеных з 780 гадзінамі на англійскай мове, 325 на нямецкай, 173 на французскай і 27 гадзінамі на рускай.

Канчатковай мэтай праекта Common Voice з'яўляецца назапашванне 10 тысяч гадзін з запісамі рознага вымаўлення тыпавых фраз чалавечай гаворкі, што дазволіць дасягнуць прымальнага ўзроўню памылак пры распазнанні. У бягучым выглядзе ўдзельнікамі праекту ўжо надыктавана ў суме 4.3 тысячы гадзін, з якіх 3.5 тысячы прайшлі праверку. Пры навучанні выніковай мадэлі ангельскай мовы для DeepSpeech выкарыстана 3816 гадзін гаворкі, акрамя Common Voice якая ахоплівае дадзеныя ад праектаў LibriSpeech, Fisher і Switchboard, а таксама ўлучальнай каля 1700 гадзін транскрыбаваных запісаў радыёшоў.

Пры выкарыстанні прапанаванай для загрузкі гатовай мадэлі ангельскай мовы ўзровень памылак распазнання ў DeepSpeech складае 7.5% пры адзнацы тэставым наборам LibriSpeech. Для параўнання, узровень памылак пры распазнанні чалавекам ацэньваецца у 5.83%.

DeepSpeech складаецца з двух падсістэм – акустычнай мадэлі і дэкадавальніка. Акустычная мадэль выкарыстоўвае метады глыбіннага машыннага навучання для вылічэння верагоднасці наяўнасці пэўных сімвалаў у гуку, які падаецца на ўваход. Дэкадавальнік ужывае алгарытм прамянёвага пошуку для пераўтварэння дадзеных аб верагоднасці знакаў у тэкставае ўяўленне.

Асноўныя навіны DeepSpeech 0.6 (галінка 0.6 не сумяшчальная з мінулымі выпускамі і патрабуе абнаўлення кода і мадэляў):

  • Прапанаваны новы струменевы дэкадавальнік, які забяспечвае больш высокую спагадлівасць і не які залежыць ад памеру апрацоўваных гукавых дадзеных. У выніку, у новай версіі DeepSpeech атрымалася зменшыць затрымку на распазнанне да 260 мс, што на 73% хутчэй, чым раней, і дазваляе ўжываць DeepSpeech у рашэннях для распазнання гаворкі на лета.
  • Унесены змены ў API і праведзена праца па ўніфікацыі імёнаў функцый. Дададзеныя функцыі для атрымання дадатковых метададзеных аб сінхранізацыі, якія дазваляюць не проста атрымліваць на вынахадзе тэкставае паданне, але і адсочваць прывязку асобных знакаў і прапаноў да пазіцыі ў гукавым струмені.
  • У інструментарый для навучання модулі дададзена падтрымка выкарыстання бібліятэкі. CuDNN для аптымізацыі працы з рэкурэнтнымі нейронавымі сеткамі (RNN), што дазволіла дамагчыся істотнага (прыкладна ў два разы) павелічэння прадукцыйнасці навучання мадэлі, але запатрабавала занясенні ў код змен, парушаючых сумяшчальнасць з мадэлямі, падрыхтаванымі раней.
  • Мінімальныя патрабаванні да версіі TensorFlow паднятыя з 1.13.1 да 1.14.0. Дададзена падтрымка легкаважнай рэдакцыі TensorFlow Lite, пры выкарыстанні якой памер пакета DeepSpeech паменшаны з 98 MB да 3.7/188 MB. Для выкарыстання на ўбудаваных і мабільных устойлівасцях з 47 MB да XNUMX MB ​​таксама скарочаны памер упакаванага файла з мадэллю (для сціску выкарыстаны метад квантавання пасля завяршэння навучання мадэлі).
  • Моўная мадэль перакладзена на іншы фармат структур дадзеных, які дазваляе выконваць мапінг файлаў у памяць пры загрузцы. Падтрымка старога фармату спынена.
  • Зменены рэжым загрузкі файла з моўнай мадэллю, што дазволіла зменшыць спажыванне памяці і паменшыць затрымкі пры апрацоўцы першага запыту пасля стварэння мадэлі. У працэсе працы DeepSpeech зараз спажывае ў 22 разы менш памяці і запускаецца ў 500 разоў хутчэй.

    Кампанія Mozilla прадставіла рухавічок распазнання прамовы DeepSpeech 0.6

  • Праведзена фільтраванне рэдкіх слоў у моўнай мадэлі. Агульны лік слоў скарочана да 500 тысяч самых папулярных слоў, якія сустракаюцца ў тэксце, выкарыстаным пры трэніроўцы мадэлі. Праведзеная чыстка дазволіла зменшыць памер моўнай мадэлі з 1800МБ да 900МБ, практычна не паўплываўшы на паказчыкі ўзроўня памылак распазнання.
  • Дададзена падтрымка розных тэхнік стварэння дадатковых варыяцый (augmentation) гукавых дадзеных, якія выкарыстоўваюцца пры навучанні (напрыклад, даданне да набору варыянтаў, у якія ўнесены скажэнні ці шумы).
  • Дададзена бібліятэка з біндзінгамі для інтэграцыі з праграмамі на базе платформы .NET.
  • Перапрацавана дакументацыя, якая зараз сабрана на асобным сайце deepspeech.readthedocs.io.

Крыніца: opennet.ru

Дадаць каментар