Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода

в 17:51, , рубрики: BSD license, open source, математика, Работа со звуком

Вместо введения
Решил опустить статью про то, как происходит составление базы данных по губам, которую начал в предыдущей исследовательской работе. Замечу, что выбор базы данных для сбора информации и ее администрирование осуществляется индивидуально в зависимости от целей и задач, которые стоят перед Вами, а также имеющихся возможностей и Ваших личных навыков. Давайте теперь перейдем к непосредственной апробации разработанного алгоритма на примере текущих систем распознавания речи на базе открытого исходного кода. Сначала проведем анализ речевых движков, которые имеют свободную лицензию.

image

Цели:
Определить наиболее оптимальную аудио-систему распознавания речи (речевой движок) на базе открытого исходного кода (Open Source), которую можно интегрировать в разрабатываемую систему видео-определения движения губ пользователя.

Задачи:
Определить аудио-системы распознавания речи, которые попадают под понятие общественного достояния. Рассмотреть наиболее известные варианта речевых систем преобразования голоса в текст, для перспектив интеграции видео-модуля в наиболее оптимальную голосовую библиотеку. Сделать выводы целесообразности использования аудио-систем распознавания речи на базе открытого исходного кода под наши цели и задачи.

Введение
Согласно лингвистическим особенностям человеческой речи, дополнительные артикуляционные данные позволяют более точно выявить речь диктора и автоматически разбить звуковую волну на отдельные фрагменты. Также, при общем анализе аудиовизуального голосового сигнала во временной динамике имеется перспектива фиксирования открытых и закрытых слогов, звонких, шипящих, ударных, безударных гласных/согласных и другие речевые единицы. Именно поэтому в задаче высококачественного распознавания речи крайне важно создание библиотеки данных, которые бы могла бы учитывать эти показатели совместно. Данное направление может быть реализовано в том случае, если имеется открытый доступ к языковым единицам. Именно поэтому для решения нашей задачи (реализация видеорасширения для увеличения точности программ распознавания речи) крайне важно рассмотреть аудио-системы распознавания речи с открытым исходным кодом.

Типы лицензий
Большинство современных продуктов имеют два самых распространенных типа лицензий:
• Проприетарный (собственнический) тип, когда продукт является частной собственностью авторов и правообладателей и не удовлетворяющий критериям свободного ПО (наличия открытого программного кода недостаточно). Правообладатель проприетарного ПО сохраняет за собой монополию на его использование, копирование и модификацию, полностью или в существенных моментах. Обычно полуприетарным называют любое несвободное ПО, включая полусвободное.
• Открытое программное обеспечение (open-source software) — программное обеспечение с открытым исходным кодом. Исходный код таких программ доступен для просмотра, изучения и изменения, что позволяет пользователю принять участие в доработке самой открытой программы, использовать код для создания новых программ и исправления в них ошибок — через заимствование исходного кода, если это позволяет совместимость лицензий, или через изучение использованных алгоритмов, структур данных, технологий, методик и интерфейсов (поскольку исходный код может существенно дополнять документацию, а при отсутствии таковой сам служит документацией).

Среди рассматриваемых систем распознавания речи с открытым исходным кодом нам встретились 2 вида сублицензий BSD и GPL. Рассмотрим их более подробно

Лицензия BSD
BSD (англ. Berkeley Software Distribution) — система распространения программного обеспечения в исходных кодах, созданная для обмена опытом между учебными заведениями. Особенностью пакетов ПО BSD была специальная лицензия BSD, которую кратко можно охарактеризовать так: весь исходный код — собственность BSD, все правки — собственность их авторов.

Лицензия GPL
GPL — General Public License (иногда переводят, как, например, Универсальная общественная лицензия GNU, Универсальная общедоступная лицензия GNU или Открытое лицензионное соглашение GNU) — лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г. Её также сокращённо называют GNU GPL или даже просто GPL, если из контекста понятно, что речь идёт именно о данной лицензии (существует довольно много других лицензий, содержащих слова «general public license» в названии). Вторая версия этой лицензии была выпущена в 1991 году, третья версия, после многолетней работы и длительной дискуссии — в 2007 году. GNU Lesser General Public License (LGPL) — это ослабленная версия GPL, предназначенная для некоторых библиотек ПО. GNU Affero General Public License — это усиленная версия GPL для программ, предназначенных для доступа к ним через сеть[1].

Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. Принцип „наследования“ прав называется «копилефт» (транслитерация c англ. copyleft) и был придуман Ричардом Столлманом. По контрасту с GPL, лицензии проприетарного ПО «очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода»[2].

Лицензируя работу на условиях GNU GPL, автор сохраняет за собой авторство.

Среди самых распространенных систем распознавания речи можно выделить 2 типа лицензий. К лицензии BSD относятся следующие продукты аудио-распознавания речи: CMU Sphinx, Julius. К лицензии GPL относятся: Simon software, iATROS, RWTH ASR (как разновидность Q Public License (QPL) лицензии), SHoUt, VoxForge (как разновидность — Open source acoustic models and speech corpus, то есть речевой модели как корпуса). Рассмотрим их более подробно:
image
Рис. 1. Эмблема CMU Sphinx
CMU Sphinx – также для краткости просто называемая Sphinx, главным образом была написана группой разработчиков систем распознавания речи университета Карнеги Меллон. Она включает в себя серию распознавателей речи (Sphinx 2-4) и тренировщика акустической модели (Sphinx train).

В 2000 году группа Sphinx университета Карнеги Меллон утвердила компоненты open source системы распознавания речи, включая Sphinx 2 и позже Sphinx 3 (в 2001 году). Речевой декодер включал в себя акустические модели и простые приложения. Имеющиеся ресурсы включали в себя добавочное программное обеспечение для тренировки акустической модели, языковую модель, лингвистическую модель комплеляции и словарь произношения, который является общественным достоянием (cmudict).

Sphinx – это дикторонезависимый распознаватель непрерывной речи, который использует Скрытую Марковскую модель и n-граммную статистическую языковую модель. Она была разработана Кей-Фу Ли. Sphinx имеет возможности распознавания продолжительной речи, дикторонезависимый огромный словарь распознавания, то есть те возможности, которые в 1986 году вызвали большие разногласия в среде распознавания речи. Sphinx в историческом развитии примечателен тем, что в своем развитии затмил все предыдущие версии по своей производительности. В данном архивном файле можно ознакомиться с представленной системой в деталях[3].

Sphinx2 – самый быстрый и ориентированный на производительность распознаватель речи, разработанный Xuedong Huang в университете Карнеги Меллон и выпущенный в Open Source на основе BSD-лицензии на SourceForge Kevin Lenzo в Linux World в 2000 году. Sphinx2 ориентирован на распознавание речи в режиме реального времени и идеально подходит под создания различных мобильных приложений. Который включает в себя такую функциональность как конечный указатель, частичная генерация гипотез, подключение динамичной языковой модели и так далее. Она использует диалоговую систему и языковую систему обучения. Она может использоваться на компьютерах по модели PBX, таких как Asterisk. Код Sphinx2 был инкорпорирован в многочисленные коммерческие продукты. Однако Sphinx2 не долго активно развивался (не более чем плановое техническое обслуживание). Текущий декодер для распознавания в режиме real-time интегрирован в PocketSphinx. С описанием системы можно ознакомиться здесь.

Sphinx3 представлял собой полунепрерывную акустическую модель распознавания речи (с одной стороны использовали Гауусовые смеси всех видов с индивидуальной моделью, который учитывал вес вектора над этими Гауусами). Sphinx3 принял распространенную продолжительную модель построенную на скрытых Марковских моделях и использовался первоначально для высокоточного распознавания речи, которое осуществлялось в режиме – пост-фактум. Последние разработки (алгоритмы и программное обеспечение) способствовали тому, что Sphinx3 мог распознавать в режиме близком к типу real-time, хотя приложение еще не подходило для качественного использования в качестве приложения. Sphinx3 после активного развития и воссоединения с SphinxTrain обеспечил доступ к многочисленным современным методикам и моделям, таким как LDA/MLLT, MLLR и VTLN, которые улучшили точность распознавания речи.

Sphinx4 полный и переписанный речевой движок Sphinx, главная цель которого обеспечить гибкий каркас для исследования в распознавании речи. Sphinx4 написан полностью на языке программирования Java. Sun Microsystems внесла существенный вклад в развитие Sphinx4 и помощь в программной экспертизе проекта. Отдельные разработчики проекта – это люди из MERL, MIT, CMU.
Текущие цели развития включают в себя:
• Развитие новых акустических моделей для тренировки;
• Реализация системы речевой адаптации (MLLR)
• Улучшения менеджмента конфигурации
• Реализация ConfDesigner – графической системы дизайна

PocketSphinx – эта версия Sphinx может быть встроена в любые другие системы на базе ARM процессора. PocketSphinx активно развивается и встраивается в различные системы с арифметикой фиксированной запятой и в эффективные модели на базе смешанной модели вычислений.
image
Рис. 2 Эмблема Julius

Julius – это высокопроизводительный распознаватель непрерывной речи с большим словарем (large vocabulary continuous speech recognition), декодер программного обеспечения для исследования в области связанной речи и разработки. Он идеально подходит для декодирования в режиме почти реального времени на большинстве существующих компьютеров, с словарем 60 тысяч слов, используя задачи тиаграмма слова и контекстно независимую Скрытую марковскую модель. Главная особенность проекта заключается в полной встраиваемости. Это также безопасная модуляция может быть независима от модельных структур и различных типов Скрытых Марковских моделей, которая поддерживает общее состояние трифонов и связанной смеси-моделей со множеством микстур, фонем и утверждений. Стандартные форматы активны за счет свободного моделирования инструментария. Главная платформа системы Linux и другие UNIX подобные станции, также система работает на Windows. Julius имеет открытый исходный код и распространяется с BSD типом лицензии.

Julius – разрабатывается как часть свободного программного обеспечения для исследования в области распознавания японского языка, начиная с 1997 года и эта работа продолжалась в рамках Консорциума систем распознавания непрерывной речи (Continuous Speech Recognition Consortium (CSRC)), с 2000 по 2003 год в Японии.

Начиная с версии 3.4 грамматическая база системы распознавания речи анализатора называется Julian и интегрирована в Julius. Julian это модифицированная форма Julius, которая использует собственную спроектированную форму грамматики Конечного автомата (Finite-state machine) как языковую модель. Она может использоваться для строительства систем голосовой навигации с небольшим словарем или других разговорных систем для распознавания разного рода диалогов.

Для запуска распознавателя речи Julius Вам необходимо подобрать языковую модель и акустическую модель для Вашего языка. Julius адаптирует акустическую модель кодировочного формата HTK ASCII, базу данных произношения формата HTK, и 3-х слойный диаграм построения языковой модели стандарта ARPA (2 прямых и 3 реверсивных модели тренировки обернутые в речевой корпус с вывернутым заказчиком слов).

Хотя Julius распространяется только для модели японского языка, проект VoxForge работает над созданием акустической модели для английского языка, используя движок системы распознавания речи Julius.

image
Рис. 3 Эмблема RWTH ASR

RWTH ASR (кратко RASR) – это инструментарий распознавания речи с открытым исходным кодом. Инструментарий включает в себя технологию умения распознавать речь для создания автоматических систем распознавания речи. Данная технология развивается Технологическим центром Естественного языка и Образцовой распознавательной группой в Рейнско-Вестфальском техническом университете Ахена.

RWTH ASR включает в себя инструментарий для разработки акустических моделей и декодеры а также компоненты для адаптации речи спикера, адаптивные системы обучения речи спикера, неконтролируемые системы обучения, дифференциальные системы обучения и решетчетые словообразные формы обработки [4]. Данное программное обеспечение работает на ОС Linux и Mac OS X. Домашняя страница проекта предлагает уже готовые для использования модели для исследования с задачами, обучающими системами и всесторонней документацией.

Инструментарий публикуется под лицензией open source, которая называется «RWTH ASR лицензия», которая является производной от лицензии QPL (Q Public License). Эта лицензия представляет возможность свободного использования, включая повторное распространение и модификацию для некоммерческого использования.

image
Рис. 4. Эмблема Simon

Simon – система распознавания речи, основанная на речевых движках Julius и HTK. Система Simon спроектирована таким образом, что она довольна удобна для работы с различными языками и разного рода диалектами. При этом реакция распознавания речи полностью настраиваемая и она не подходит для исключительного распознавания единичных голосовых запросов и не может быть сконфигурирована под нужды пользователей.

Чтобы легко использовать систему необходимо выполнить определенные «сценарии». Пакеты Simon сконфигурированы для специальных задач. Среди возможных сценариев Simon, например «Firefox» (запуск и управление браузером «Firefox») или «пакет управления окном» (закрытие, движение, изменение размеров окон) и так далее. Сценарии легко могут быть создаваться пользователями и раздаваться в сообществе через Get Hot New Stuff систему. На сегодняшнее время написано более 39 сценариев и опубликовано 3 языка на репозитарии opendesktop.org

Simon также поддерживает простые генерические и основные модели подобные GPL моделям из Voxforge, которые используют пользователи для произношения на английском, немецком и португальских языках. При этом нет необходимости в тренировке системы для того, чтобы она начала работать. С демонстрацией Simon 0.3.0 можно ознакомиться по ссылке (http://www.youtube.com/watch?v=bjJCl72f-Gs). При этом речь пользователя включает в себя техническую терминологию – это главная особенность реализации в simon – и тем самым она демонстрирует как можно выгодно использовать simon для пользователей и как simon может быть интегрирован пользователями для усиления своих собственных разработок [5].

image
Рис. 5. Эмблема iATROS
iATROS – это новое исполнение системы распознавания речи предыдущего поколения ATROS, которая подходит для распознавания как речи, так и для рукописного варианта текста. iATROS основан на модулярной структуре и может использоваться как для построения дифференцированных моделей, чья цель осуществить Ветибри поиск на основе скрытой Марковской модели. iATROS обеспечивает стандартный инструментарий для распознавания речи как в режиме офлайн, так и онлайн (основываясь на ALSA модулях).
iATROS состоит из 2-х модулей предварительной обработки (для речевого сигнала и изображений написанных от руки) и модуля ядра распознавания. Предварительная обработка данных и черты извлечения модулей обеспечиваются векторами распознавания модулей, которые используют Скрытые Марковские модели и языковые модели, которые исполняются поиском предположений из лучших систем распознавания речи. Все эти модули выполнены на языке программирования “C”. [6].
image
Рис. 6. Эмблема SHoUt
SHoUt – это инструментарий, написанный Marjin Huijbregts в Нидерландском институте звуков и видео, который подходит для распознавания продолжительной речи с большим словарем данных. Инструментарий состоит из приложения для тренировки статистических моделей и для (не)/речевого детекционирования, диаризации и декодирования речи. [7].
image
Рис. 7. Эмблема VoxForge
VoxForge – это свободный речевой корпус и языковая акустическая модель, представленная на Open Source хранилище данных. VoxForge был собран как хранилище транскрипций речи, имеющий свободный GPL корпус для использования с речевыми движками, которые имеют открытый исходный код. Речевые аудио-файлы могут быть собраны в акустические модели для использования с системами распознавания речи с открытым исходным кодом типа Julius, Sphinx и HTK (но HTK имеет ограничение по дистрибьюции).
image
Рис. 8. Эмблема HTK
HTK – это инструментарий для распознавания речи, использующий скрытую марковскую модель. Его главным образом предназначают для распознавания речи, однако он также используется для других иных приложений распознавания, в которых используется скрытая Марковская модель (включая речевой синтез, распознавание символов и ДНК упорядочивание).

Заключение

Таким образом, рассмотрев самые распространенные системы распознавания речи с открытым исходным кодом необходимо заметить, что наиболее сильно представлено решение на базе CMU Sphinx, особенно PocketSphinx. Оно более всего подходит для задач распознавания на базе нашего визуального расширения. Однако необходимо заметить, что данный инструментарий отличается в целом невысокой базой данных и, следовательно, точность распознавания такой системы значительно ниже, чем у систем аудио распознавания речи, которые имеют проприетарную лицензию. Использование систем распознавания речи и некоторых их инструментариев с открытым исходным кодом будет вполне возможно при реализации своей собственной аудиовизуальной системы распознавания речи в единой многомодальной системе. А пока на данном этапе использование таких систем для нас не столь актуально.

Список литературы
1) Определение типов лицензий на Boston Software Foundation: www.fsf.org/news/agplv3-pr
2) Ася Власова Как украсть Linux? (рус.) (24.06.2008) — о FOSS-лицензиях и их применении в России: www.osp.ru/cio/2008/06/4987902/
3) Kai Fu Li, Hsiao-Wuen Hon. An overview of the Sphinx Speech Recognition Systems www.ri.cmu.edu/pub_files/pub2/lee_k_f_1990_1/lee_k_f_1990_1.pdf
4) Rybach, D.; C. Gollan, G. Heigold, B. Hoffmeister, J. Lööf, R. Schlüter, H. Ney (September 2009). «The RWTH Aachen University Open Source Speech Recognition System». Interspeech-2009: 2111–2114.
5) Peter Grasch: simon: Open Sourcing Speech Recognition with KDE technology: www.desktopsummit.org/program/sessions/simon-open-sourcing-speech-recognition-kde-technology
6) Interactive Analysis, Transcription and Translation of Old Text Documents: prhlt.iti.upv.es/page/projects/multimodal/idoc/iatros
7) SHoUT speech recognition toolkit: www.digibic.eu/techprofile.asp?slevel=0z84z101&parent_id=101&renleewtsapf=1255

Продолжение следует

Автор: RealSpeaker

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js