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

IMPLEMENTATION OF VOICE PROCESSING ALGORITHMS IN FPGA HARDWARE

Авторы: Jose L. Gomez-Cipriano, Roger P. Nunes, Dante A.C. Barone

Автор перевода: Азаров А.Б.

Источник: https://pdfs.semanticscholar.org/4915/f3ca72bf6655bebe434f5f6898623e7607a2.pdf

Аннотация

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

1 Введение

Большая часть существующих систем распознавания речи (SRS) основана на компьютерном программном обеспечении. Однако требование к персональному компьютеру и программной системе может быть недостатком в некоторых приложениях. Например, полностью компьютеризированная система не является экономически целесообразной для управления стиральной машиной или телевизионным устройством. В таких случаях конкретное оборудование может быть решением. Более того, аппаратная система распознавания речи со спецификацией пути к данным, основанной на алгоритмах распознавания речи, может быть быстрее, чем реализация процессоров общего назначения [1] [2]. Целью данной работы является реализация функциональных блоков для портативной системы распознавания речи изолированных слов с использованием FPGA [3]. В следующих разделах показан каждый компонент системы.

2 Препроцессорная система

Предварительная обработка имеет блок предварительного выделения, функцию разделения кадра и оконного блока. Входной сигнал - это голосовой сигнал, отфильтрованный фильтром сглаживания и преобразованный в цифровой формат. Голосовой сигнал записывался в 16-битном формате RAW при частоте дискретизации 11025 Гц.

2.1 Функция предварительного выделения

Цифровой речевой сигнал S(n) фильтруется фильтром предварительного выделения:

где S(n) - выход фильтра [6]. Рациональное число 15/16 использовалось для коэффициента предварительного выделения, поскольку простота деления на 16 уменьшает аппаратную сложность.

Уравнение 1 было изменено для реализации с фиксированной запятой:

На рисунке 1 показан канал данных с предварительным выделением. Использовались схема деления, сумматор 20 бит, вычитатель 16 бит, аккумулятор и два регистра.

Рисунок 1. Предварительно путь данных.

Для внешних данных использовались 16 бит. Однако внутренние операции используют 20-битный путь к данным для получения большей точности. Деление на 16 было получено с помощью сдвига вправо на 4 бита и введения четырех нулей в более значимую позицию битов, чтобы обеспечить деление одного тактового импульса.

На рисунке 1 показан канал данных с предварительным выделением. Использовались схема деления, сумматор 20 бит, вычитатель 16 бит, аккумулятор и два регистра.

2.2 Функция разделения кадра

После предварительного выделения речевой сигнал разделяется на перекрывающиеся кадры i = 0 ... T-1, где T - количество кадров, на которые можно разделить речевой сигнал. Каждый кадр формируется из 252 голосовых выборок (приблизительно 22 мс), чтобы гарантировать стационарность [4]. Кроме того, число выборок (252) позволяет составлять кадры тремя блоками одинакового размера (84 выборки, каждый блок), необходимыми для проектирования конвейера с перекрытием кадров. Из-за размера и перекрытия кадра каждая выборка попадает в первую треть текущего кадра анализа, вторую треть предыдущего кадра анализа и в последнюю треть двух предыдущих кадров анализа. После 84 выборок, когда один из трех кадров завершен, соотношение трех проанализированных кадров повторяется циклически. Был разработан алгоритм, позволяющий оптимально реализовать аппаратное обеспечение разделения и перекрытия кадров. Алгоритм работает следующим образом: чтобы получить кадры, выборки после предварительного выделения сегментируются в блоки j = 1 ... T, где T - количество блоков, которые могут быть сформированы из речевого сигнала. На рисунке 2 показана сегментация блоков. Каждый блок j имеет 84 выборки без перекрытий между блоками. Три последовательных блока (252 выборки) составляют каждый кадр

Рисунок 2. Перекрытие между кадрами.

Внутреннее двухпортовое ОЗУ, позволяющее выполнять параллельные операции чтения / записи, использовалось для временного хранения 252 выборок. Эта память была разделена на три сегмента памяти Mi, i = 0 ... 2, где каждый сегмент имеет 84 выборки. На рисунке 3 показана операция разделения кадров. Каждый новый блок j начинает храниться в памяти Mi сегментов, где хранятся выборки двух предыдущих блоков. Каждый блок умножается на соответствующие значения окна Хэмминга, w (n), n = 0 ... 251, перед сохранением в памяти. Кадр, умноженный на окно Хэмминга, сохраняется в выходном регистре. В каждый период времени сохраняются только 28 выборок нового блока. Он представляет третью часть из 84 образцов блока. Параллельно читается содержимое сегмента памяти, в котором есть выборки последнего блока. В следующем периоде времени читается вторая треть нового блока (28 выборок), и также читается содержимое следующего за последним блоком. В течение следующего периода сохраняются последние 28 отсчетов нового блока. В то же время, сегментная память, которая соответствует последнему блоку, также считывается.

Рисунок 3. Разделение кадров с использованием блоков речевого сигнала.

2.3 Оконная функция

Окно Хэмминга имеет вид [6]:

где Ns - номер выборки каждого окна, а n - оцениваемая выборка. Размер окна составляет 252 выборки (приблизительно 22 мс), чтобы упростить окно Хемминга и реализацию разделения кадров. На рисунке 4 показано соединение канала данных окон с блоком разделения кадра. В ПЗУ хранятся первые 126 значений окна Хэмминга (n = 0 ... 125), соответствующих первым двум четвертям функции косинуса. Значения окна для других точек рассчитываются с использованием свойств периодичности функции косинуса. Бинарный счетчик вверх / вниз делает адресацию памяти Хэмминга.

Рисунок 4. Каналы данных оконного деления и разделения кадров.

3. ПАРАМЕТРЫ СИСТЕМЫ ЭКСТРАКЦИИ Mel-cepstra

На рисунке 5 показана схема извлечения параметров Mel-cepstra. Сначала спектральная энергия вычисляется для оконного последовательного кадра с использованием процессора FFT [2]. После этого вычисляется энергия в каждом из 27 каналов набора треугольных полосовых фильтров. Наконец, вычисляется дискретное косинусное преобразование (DCT) логарифмической энергии.

Рисунок 5. Извлечение параметров Mel-cepstra

На рисунке 6 показано аппаратное обеспечение функции треугольных фильтров. Значения треугольных фильтров хранятся в ПЗУ. Выходы этого банка составляют 27 значений энергии.

Логарифмический процессор, использующий алгоритм CORDIC [5], был реализован для получения значения энергии логарифма, требуемого для этой системы. На рисунке 7 показана реализация логарифмического процессора, образованная схемой масштабирования, аппаратной реализацией алгоритма CORDIC и блока управления. Процессор логарифма использует 20 тактовых импульсов для вычисления значения логарифма.

Рисунок 6. Архитектура треугольных фильтров.

Рисунок 7. Логарифмический процессор

Выходы треугольных фильтров (сигнал Filters_Value) масштабируются для получения чисел от 0,5 до 1, что позволяет рассчитать алгоритм CORDIC для функции логарифма. Полученный в результате масштабирования основание используется для получения окончательного результата логарифмической операции. Также был реализован алгоритм оптимизированной конвейерной памяти DCT [6]. На рисунке 8 показана архитектура DCT. ROM хранит значения косинуса для исчисления DCT.

Рисунок 8. Архитектура DCT.

4. ВЕКТОРНОЕ КВАНТОВАНИЕ

Стадия векторного квантования (которая устанавливает связь между блоком извлечения Mel-Cepstra и процессором Витерби) также была разработана. Размер кодовой книги равен 64. Каждый вектор имеет 27 параметров mel-cepstra. На рисунке 9 показан векторный канал данных квантования. Он использует оперативную память для временного хранения параметров mel-cepstra. ПЗУ имеет центроиды, полученные после тренировки. Обучение сделано в автономном режиме.

5. ВИТЕРБИЙСКИЙ ПРОЦЕССОР

Также был реализован декодер Витерби для распознавания речи [7]. Целью было использование в скрытых марковских моделях слева-справа. На рисунке 10 показан путь к данным для процессора Витерби. Схема адресации для процессора Витерби показана на рисунке 11.

Рисунок 9. Канал данных векторного квантования.

Рисунок 10. Путь к данным процессора Витерби.

Рисунок 11. Схема адресации для процессора Витерби.

6. ЭКСПЕРИМЕНТАЛЬНЫЕ РЕЗУЛЬТАТЫ

Описанные выше функции были реализованы с использованием инструмента Maxplus II, чтобы использовать их с ПЛИС. Также была реализована их реализация в Matlab и C, чтобы сравнить поведенческое моделирование с аппаратными результатами. Испытания проводились с изолированным малым словарем для промышленного контроля лифтов. В таблице 1 показано сравнение реализации с использованием распознавания речи в аппаратной и программной реализации

Таблица 1. Результаты аппаратного и программного обеспечения

HWSW
ПараметрВремя(мкс)Время(мкс)
Извлечение и предварительная обработка параметров2085110000
Векторное квантование173440000
Распознавание с декодированием Витерби3.7550000

8. ВЫВОДЫ

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

Список литературы

  1. Brown, M. K. et. al. "The DTWP: An LPC-Based Dynamic Time-Warping Processor for Isolated Word Recognition". AT&T Bell Laboratories Technical Journal, v.63 n.3: 441-457, 1984.
  2. Lapsley, P. et. al. DSP Processor Fundamentals: architectures and features. New Jersey: IEEE Press, 1997. 210p.
  3. Gomez-Cipriano, J. L. et. al. Functional Blocks for Speech Recognition Systems. In: Symposium on Integrated Circuits, SBCCI, 2001
  4. Vergin, R.; O'Shaughnessy, D. Generalized Mel Frequency Cepstral Coefficients for Large-Vocabulary Speaker-Independent Continuous-Speech Recognition. IEEE Transactions on Speech, and Audio Processing, v.7, n.5, p. 525-532, 1999.
  5. Andraka, R. "A survey of CORDIC algorithms for FPGA based computers". In: Proc. of the 1998 ACM/SIGDA Sixth International Symposium on FPGAS. 1998
  6. Aggarwal, G.; Gajski, D. Exploring DCT Implementations. Tech. report, University of California, Irvine. 1998
  7. Gomez-Cipriano, J. L. et. al. FPGA Hardware for speech Recognition Using Hidden Markov Models, ICSLP, 2002.