Кампанія 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 разоў хутчэй.
Праведзена фільтраванне рэдкіх слоў у моўнай мадэлі. Агульны лік слоў скарочана да 500 тысяч самых папулярных слоў, якія сустракаюцца ў тэксце, выкарыстаным пры трэніроўцы мадэлі. Праведзеная чыстка дазволіла зменшыць памер моўнай мадэлі з 1800МБ да 900МБ, практычна не паўплываўшы на паказчыкі ўзроўня памылак распазнання.
Дададзена падтрымка розных тэхнік стварэння дадатковых варыяцый (augmentation) гукавых дадзеных, якія выкарыстоўваюцца пры навучанні (напрыклад, даданне да набору варыянтаў, у якія ўнесены скажэнні ці шумы).
Дададзена бібліятэка з біндзінгамі для інтэграцыі з праграмамі на базе платформы .NET.