Пользователь
0,0
рейтинг
16 июля 2014 в 21:51

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

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Вместо введения


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

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
карма
13,0
рейтинг 0,0

Самое читаемое Разработка

Комментарии (18)

  • 0
    Не хватает kaldi.sourceforge.net/.
    • +2
      Спасибо, за дополнение, ждал такой комментарий!
  • +2
    Очень бы хотелось иметь качественную открытую оффлайновую систему распознавания русской речи для умного дома.
    Спасибо за интересный обзор!
    • –1
      «100% русскую систему распознавания русской речи»
  • +8
    Обзор напоминает реферат, которые мы в универе писали. А как же попробовать их все и написать что-то от себя? Ну хоть какое-то сравнение и хоть какие-то ощущения от использования каждой из систем…
    • 0
      Тут были недавно уж посты про то, как работают аудио системы распознавания речи типа Sphinx и PocketSphinx Julius (недавно выходил но похоже автор удалил)
      • +1
        Общего разбора давно не было. Последний в 2009. Здесь цель стояла рассмотреть, что вообще есть сейчас.
    • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Распознавание русской речи только по звуковой дорожке, с большим словарём, в настоящий момент выполняется с точностью порядка 80% в модельных условиях (диктор в тихой комнате) и существенно меньше в условиях зашумления (при обработке телефонного звонка, к примеру). Этой точности достаточно, что-бы выделить в речи ключевые слова-маркеры и на их основе отработать. Примером такой системы является Елена, служба телефонной поддержки.

    Однако, такой точности пока недостаточно, что-бы перейти к распознаванию связной речи для последующего анализа системами NLP.

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

    В общем, тема эта интересная, и по моей информации, отечественный поставщик речевых решений (Центр Речевых Технологий, Санкт-Петербург) открыт к сотрудничеству по интересным проектам.

    Я этой темой тоже интересуюсь.

  • +1
    В общем, тема эта интересная, и по моей информации, отечественный поставщик речевых решений (Центр Речевых Технологий, Санкт-Петербург) открыт к сотрудничеству по интересным проектам.


    Нифига он не открыт, я писал им раза 3 за последний год, они ни разу не ответили. Я думаю они работают только с оооочень крупными играками рынка, обычный обыватель со своими проектами им не интересен. Но даже в этом случае, не ответить хотя бы отказом с их стороны это свинство.
  • 0
    Нифига он не открыт, я писал им раза 3 за последний год, они ни разу не ответили.


    К сожалению, так часто случается при «холодных» письмах и звонках. Я могу дать Вам контакт, который Вас явно не проигнорирует. Посетите этот сайт и напишите письмо интересующему Вас сотруднику ЦРТ.
    • 0
      Спасибо за наводку, написал. Надеюсь ответят.
  • 0
    Заметил, что уже не первая ваша статья на такую тему — с завидной частотой публикуете. Это части какой-то вашей работы?
    • +1
      Верно, это часть исследовательской работы, которая проводилась мной на базе Марийского Политеха (сейчас Волгатех), когда я был еще студентом. Старался в то время научно оформлять. Собирался в аспирантуру вначале. Но не сложилось. Нигде не публиковалось, а удалять не хотелось. Рукописи не горят.:) Вот и выложил. Много дров наломал, может кому-то и пригодиться.
      • 0
        Это вы правильно. Я думаю, что материал определенно пригодится)
  • 0
    Мне кажется, что есть некоторое обольщение опенсорсом.
    Фреймворк может быть сколь угодно свободным и халявным, но где-то ещё надо раздобыть базы знаний — тысячи часов фонограмм с текстовой разметкой, построенные на их основе нейросети и марковские модели, отрегулированные подстроечные параметры.
    И это уже, на самом деле, рокет саенс. Он чисто по объёму — рокет. Счёт идёт на терабайты.
    Покажите мне опенсорсный источник хорошо структурированных терабайтов ASR русского языка. Где этот аттракцион невиданной щедрости?
    • 0
      Когда писал статью, сам был фанатом опенсорса и сидел на Убунту. Наивно верил, что вот оно будущее! Программа — это общественное достояние, не будут корпораций, все индивидуально. Статья пронизана этой юношеской романтикой молодости. Хоть и времени не так много прошло, но многое в моих представлениях поменялось однако. Аттракциона невиданной щедрости пока и не видно. А жаль.)
      • 0
        Ну, в недрах ЦРТ, Яндекса, Гугла, Нюанса, или в закромах ведущих университетов (СПбГУ, например) эти базы есть.
        Поэтому если хочется серьёзно заниматься ASR — надо работать в фирме или дружить с кафедрой.

        ЦРТ, кстати, ищет людей с горящими глазами и умелыми руками, так что велкам с резюме в наш отдел кадров.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.