Назад в библиотеку

Sphinx-4 – гибкая система с открытым кодом для распознавания речи

Авторы: Вилли Волкер, Пол Ламьер, Филипп Квок, Бхикша Радж, Рита Синь, Эвандро Гувеа, Питер Вульф, Джо Вьюлфель

Автор перевода с английского: Савкова Д.Г.

Источник: Willie Walker, Paul Lamere, Philip Kwok, Bhiksha Raj, Rita Singh, Evandro Gouvea, Peter Wolf, Joe Woelfel - Sphinx-4: A Flexible Open Source Framework for Speech Recognition

Аннотация

Вилли Волкер, Пол Ламьер, Филипп Квок, Бхикша Радж, Рита Синь, Эвандро Гувеа, Питер Вульф, Джо Вьюлфель - Sphinx-4 – гибкая система с открытым кодом для распознавания речи. Sphinx-4 – гибкая, модульная и переносная система, благоприятствующая новым инновациям в основном исследовании скрытых марковских моделей(СММ) в системах распознавания. Проект Sphinx-4 основан на шаблонах, которые были получены в проектах прошлых систем, так же как на новых требованиях, основанных на областях, которые на данный момент надо исследовать. Для применения этой системы и для предоставления исследователям готовой для работы системы, Sphinx-4 также включает в себя несколько реализаций простых и современных техник. Система и все реализации находятся в свободном доступе, т.е. с открытым кодом.

Введение

Когда исследователи столкнулись с проблемой исследования распознавания речи, они столкнулись с проблемой необходимости разработки целой системы с нуля, даже когда они всего лишь хотели исследовать один аспект области. Системы распознавания с открытым кодом доступны, такие как HTK [1], ISIP [2], AVCSR [3] и ранние версии системы Sphinx[4]-[6]. Доступные системы обычно оптимизированы для одного подхода к проектированию распознавания речи. В результате чего некоторые из этих систем по сути создают барьеры для будущих исследований, которые заставляют отклоняться от первоначальных задач системы. Дополнительно, использование некоторых систем усложняется лицензионными соглашениями, которые делают вхождение в исследовательскую деятельность затруднительной для не учебных заведений.

Чтобы облегчить новаторство в исследованиях распознавания речи, мы создали распределенную, всесторонне компетентную команду для создания Sphinx-4[7]: платформу с открытым кодом, которая объединяет современные методологии и также обращает внимание на возникающие нужды в областях исследований. Учитывая наши технические цели и наше разнообразие(например, мы использовали разные операционные системы на разных машинах и т.д.), мы написали Sphinx-4 на языке программирования Java, делая нашу систему доступной для большого количества платформ для разработки.

Прежде всего, Sphinx-4 это модульная и переносная система, которая объединяет шаблоны проектирования из существующих проектов, с достаточной гибкостью, чтобы поддерживать развивающиеся области интересов исследователей. Система модульная, потому что она включает в себя раздельные системы, посвященные специфическим задачам, и она переносима, потому что модули могут быть легко заменены во время выполнения. Чтобы применить эту систему и обеспечить исследователей рабочей системой, Sphinx-4 включает в себя множество модулей, которые реализовывают современные методы распознавания речи. Остальная часть документа описывает систему Sphinx-4 и ее реализацию, а также включает в себя обсуждение нашего опыта с Sphinx-4 до сегодняшнего дня.

Избранные системы распознавания речи

Традиционным подходом к проектированию систем распознавания речи было создание целой системы, оптимизированной для конкретной методологии. Как показывают исследования прошлых систем, таких как Dragon [8], Harpy [9], Sphinx и другие, этот подход оказался весьма ценным потому, что в результате системы обеспечили основополагающими методами исследования распознавание речи. С другой стороны, каждая из этих систем в значительной степени посвящена изучению одной конкретной передовой области распознавания речи. Например, Бейкер представил скрытые Марковские модели (СММ) в своей системе Dragon, [8], [10] и в более ранних предшественниках Sphinx были изучены варианты СММ, такие как дискретные СММ [4], полунепрерывные СММ [5] и непрерывные СММ [11]. Другие системы открыли специализированные стратегии поиска, такие как использование лексических деревьев поиска для больших N-грамм моделей [12]. Т.к. они были направлены на фундаментальные теории, создатели этих систем как правило, стремились реализовать их аппаратно на высоком уровне. Например, системы предшественники Sphinx ограничивали порядок СММ, делая его постоянным, а также ограничивали контекст только до левого и правого контекста. В Sphinx-3 была устранена поддержка контекстно-свободной грамматики (CFG), чтобы сосредоточиться на больших N-грамм моделях. Кроме того, стратегии декодирования этих систем, как правило, сильно связаны с остальной частью системы. В результате из-за этих ограничений систему сложно изменять для проведения экспериментов в других областях.

Шаблоны проектирования этих систем возникли со временем, как описано моделью источник-канала(source-channel) Йелинека[13] и базовой архитектурой системы Хуана [14]. В разрабатывающейся системе Sphinx-4 одной из наших главных целей было разработать структуру, которая поддерживала бы эти шаблоны проектирования и также позволяла проводить эксперименты в новых областях исследований.

Рис. 1 – Структура декодера Sphinx-4. Главными блоками являются: предварительный анализ, декодер и лингвистический модуль. Поддержка блоков включает управление настройками и инструменты

Структура Sphinx-4

Структура Sphinx-4 была разработана с высокой степенью гибкости и модульности. На рисунке 1 показана общая архитектура системы. Каждый помеченный элемент на рисунке 1 представляет собой модуль, который может быть легко заменен, что позволяет исследователям экспериментировать с различными реализациями модуля без необходимости изменения других частей системы.

Существуют три основных модулей структуры Sphinx-4: Модуль предварительного анализа(Frontend), декодер(Decoder) и модуль лингвистического анализа(Linguist). Модуль предварительного анализа принимает один или более входных сигналов и преобразовывает их в последовательность признаков. Модуль лингвистического анализа переводит любой тип стандартной модели языка, вместе с транскрипциями из словаря и информацией о структуре одной или нескольких акустических моделей, в граф поиска. Модуль поиска в декодере использует признаки из модуля предварительного анализа и графа поиска из модуля лингвистического анализа для выполнения фактического декодирования, генерируя результаты. В любой момент до или во время процесса распознавания, приложение может передавать управление каждому из модулей, которые могут помочь процессу распознавания.

Система Sphinx-4, как и большинство систем распознавания речи, имеет большое количество настраиваемых параметров, такие как размер луча поиска для улучшения производительности системы. Для настройки таких параметров в Sphinx-4 используется модуль управления конфигурацией. В отличие от других систем управление конфигурацией в Sphinx-4 позволяет динамически загружать и настраивать модули во время выполнения, что делает систему гибкой и легко подключаемой. Например, Sphinx-4, как правило, настроен на предварительный анализ (см. раздел IV), который выделяет Мел-кепстральные коэффициенты (MFCC) [15]. Используя управление конфигурацией можно перенастроить Sphinx-4 на построение другого анализа, который выделяет перцептуальные коэффициенты линейного предсказания (PLP)[16] без необходимости изменять исходный код или перекомпилировать систему.

Чтобы дать разработчикам приложений возможность отслеживать статистику декодера, такую как word error rate [17], скорость выполнения, и использование памяти, Sphinx-4 предоставляет ряд инструментов. Как и в остальной части системы, инструменты являются настраиваемыми, что позволяет пользователям выполнять широкий спектр системного анализа. Кроме того, инструменты также обеспечивают интерактивную среду выполнения, что позволяет пользователям изменять параметры системы во время ее работы, делая доступным быстрое экспериментирование с различными параметрами настройки.

Sphinx-4 также поддерживает утилиты, которые обрабатывают результаты распознавания на уровне приложений. Например, эти утилиты получают результаты решетки, коэффициенты уверенности, и степень понимания естественного языка.

IV. Предварительный анализ

Цель предварительного анализа заключается в преобразовании входного сигнала (например, аудио) в последовательность выходных признаков. Как показано на рисунке 2, предварительный анализ содержит один или несколько параллельных цепочек обмена сообщениями между модулями обработки сигналов – обработчиками данных. Поддержка множества цепей позволяет одновременное вычисление различных типов параметров из одного или нескольких входных сигналов. Это дает возможность создания системы, которая может декодировать с различными типами параметров(MFCC и PLP), и даже с типами параметров, полученных из неречевых сигналов, таких как видео[3].

Рис. 2 – Sphinx-4 модуль предварительной обработки. Предварительная обработка содержит один или несколько параллельных цепочек обмена сообщениями между обработчиками данных

Как ISIP [2] система, каждый обработчик данных в модуле предварительной обработки обеспечивает вход и выход, который может быть подключен к другому обработчику данных, что позволяет создавать произвольно длинные последовательности цепей. Входы и выходы каждого обработчика данных являются общими объектами, внутри которых обрабатываются входные данные, а также маркеры, которые классифицируют события, такие как определение конца. Последний обработчик данных в каждой цепи отвечает за составление объекта данных из параметризованных сигналов, называемых признаками, которые будет использовать декодер. Как и система AVCSR [3], Sphinx-4 разрешает производить параллельные последовательности признаков. Sphinx-4 уникален, как минимум тем, что он допускает произвольное число параллельных потоков. Связь между блоками соответствует pull шаблону. С pull шаблоном, обработчик данных запрашивает входные данные от ранних модулей только при необходимости, в отличие от более традиционного push шаблона, где модуль передает свой выходной сигнал последующему модулю, как только сигнал сгенерирован. Pull шаблон позволяет процессорам выполнять буферизацию, чтобы пользователи могли смотреть вперед или назад во времени. Способность смотреть вперед или назад во времени позволяет декодеру выполнять не только поиск Витерби[18], но и другие виды поиска, такие как поиск в глубину и А* [19]. В общей структуре модуля предварительного анализа, Sphinx-4 предоставляет набор обработчиков данных, которые реализуют общие методы обработки сигнала. Эти реализации поддерживают чтение различных форматов для пакетного режима работы, чтение с устройства ввода аудиосистемы для работы в живом времени, предварительную коррекцию, скользящее окно с восходящим косинус-преобразованием (например, Хэмминга и окон Хеннинга), дискретное преобразование Фурье (через БПФ), фильтрацию по Мел частотам, трансформацию частоты барков, дискретное косинусное преобразование (DCT), кодирование с линейным предсказанием (LPC), нормализацию кепстрального среднего (CMN), мел-кепстрального коэффициента (MFCC) и перцептуального коэффициента линейного преобразования (PLP).

Список использованной литературы

[1] S. Young, “The HTK hidden Markov model toolkit: Design and philosophy,” Cambridge University Engineering Department, UK, Tech. Rep. CUED/FINFENG/ TR152, Sept. 1994.

[2] N. Deshmukh, A. Ganapathiraju, J. Hamaker, J. Picone, and M. Ordowski, “A public domain speech-to-text system,” in Proceedings of the 6th European Conference on Speech Communication and Technology, vol. 5, Budapest, Hungary, Sept. 1999, pp. 2127–2130.

[3] X. X. Li, Y. Zhao, X. Pi, L. H. Liang, and A. V. Nefian, “Audio-visual continuous speech recognition using a coupled hidden Markov model,” in Proceedings of the 7th International Conference on Spoken Language Processing, Denver, CO, Sept. 2002, pp. 213–216.

[4] K. F. Lee, H. W. Hon, and R. Reddy, “An overview of the SPHINX speech recognition system,” IEEE Transactions on Acoustics, Speech and Signal Processing, vol. 38, no. 1, pp. 35–45, Jan. 1990.

[5] X. Huang, F. Alleva, H. W. Hon, M. Y. Hwang, and R. Rosenfeld, “The SPHINX-II speech recognition system: an overview,” Computer Speech and Language, vol. 7, no. 2, pp. 137–148, 1993.

[6] M. K. Ravishankar, “Efficient algorithms for speech recognition,” PhD Thesis (CMU Technical Report CS-96-143), Carnegie Mellon University, Pittsburgh, PA, 1996.

[7] P. Lamere, P. Kwok, W. Walker, E. Gouvea, R. Singh, B. Raj, and P. Wolf, “Design of the CMU Sphinx-4 decoder,” in Proceedings of the 8th European Conference on Speech Communication and Technology, Geneve, Switzerland, Sept. 2003, pp. 1181–1184.

[8] J. K. Baker, “The Dragon system - an overview,” in IEEE Transactions on Acoustic, Speech and Signal Processing, vol. 23, no. 1, Feb. 1975, pp. 24–29.

[9] B. T. Lowerre, “The Harpy speech recognition system,” Ph.D. dissertation, Carnegie Mellon University, Pittsburgh, PA, 1976.

[10] J. K. Baker, “Stochastic modeling for automatic speech understanding,” in Speech Recognition, R. Reddy, Ed. New York: Academic Press, 1975, pp. 521–542.

[11] P. Placeway, S. Chen, M. Eskenazi, U. Jain, V. Parikh, B. Raj, M. Ravishankar, R. Rosenfeld, K. Seymore, M. Siegler, R. Stern, and E. Thayer, “The 1996 HUB-4 Sphinx-3 system,” in Proceedings of the DARPA Speech Recognition Workshop. Chantilly, VA: DARPA, Feb. 1997. [Online]. Available: http://www.nist.gov/speech/publications/darpa97/pdf/placewa1.pdf

[12] M. Ravishankar, “Some results on search complexity vs accuracy,” in Proceedings of the DARPA Speech Recognition Workshop. Chantilly, VA: DARPA, Feb. 1997. [Online]. Available: http://www.nist.gov/speech/publications/darpa97/pdf/ravisha1.pdf

[13] F. Jelinek, Statistical Methods for Speech Recognition. Cambridge, MA: MIT Press, 1998.

[14] X. Huang, A. Acero, F. Alleva, M. Hwang, L. Jiang, and M. Mahajan, “From SPHINX-II to Whisper: Making speech recognition usable,” in Automatic Speech and Speaker Recognition, Advanced Topics, C. Lee, F. Soong, and K. Paliwal, Eds. Norwell, MA: Kluwer Academic Publishers, 1996.

[15] S. B. Davis and P. Mermelstein, “Comparison of parametric representations for monosyllable word recognition in continuously spoken sentences,” in IEEE Transactions on Acoustic, Speech and Signal Processing, vol. 28, no. 4, Aug. 1980.

[16] H. Hermansky, “Perceptual linear predictive (PLP) analysis of speech,” Journal of the Acoustical Society of America, vol. 87, no. 4, pp. 1738–1752, 1990.

[17] NIST. Speech recognition scoring package (score). [Online]. Available: http://www.nist.gov/speech/tools

[18] G. D. Forney, “The Viterbi algorithm,” Proceedings of The IEEE, vol. 61, no. 3, pp. 268–278, 1973.

[19] P. Kenny, R. Hollan, V. Gupta, M. Lenning, P. Mermelstein, and D. O’Shaugnessy, “A*-admissible heuristics of rapid lexical access,” IEEE Transactions on Speech and Audio Processing, vol. 1, no. 1, pp. 49–59, Jan. 1993.