ФМЛЛР
При сигналов обработке линейная регрессия максимального правдоподобия пространства признаков ( fMLLR ) представляет собой глобальное преобразование признаков, которое обычно применяется адаптивным к динамику способом, где fMLLR преобразует акустические характеристики в адаптированные к динамику функции путем операции умножения с матрицей преобразования. В некоторой литературе fMLLR также известен как ограниченная линейная регрессия максимального правдоподобия ( cMLLR ).
Обзор
[ редактировать ]Преобразования fMLLR обучаются с точки зрения максимального правдоподобия на данных адаптации. Эти преобразования можно оценить разными способами, но в fMLLR рассматривается только оценка максимального правдоподобия (ML). Преобразование fMLLR обучается на определенном наборе данных адаптации, так что оно максимизирует вероятность этих данных адаптации с учетом текущего набора моделей.
Этот метод широко используется для адаптации говорящего при HMM на основе распознавании речи . [1] [2] Более поздние исследования [3] также показывает, что fMLLR является отличной акустической функцией для DNN/HMM. [4] гибридные модели распознавания речи.
Преимущество fMLLR заключается в следующем:
- процесс адаптации может выполняться на этапе предварительной обработки и не зависит от ASR . процесса обучения и декодирования
- этот тип адаптированной функции может быть применен к глубоким нейронным сетям (DNN) для замены традиционно используемой мел-спектрограммы в моделях сквозного распознавания речи.
- Процесс адаптации динамиков fMLLR приводит к значительному повышению производительности моделей ASR , что превосходит другие преобразования или функции, такие как коэффициенты MFCC (кепстральные коэффициенты Mel-Frequency) и FBANK (банк фильтров).
- Функции fMLLR можно эффективно реализовать с помощью речевых инструментов, таких как Kaldi .
Основная проблема и недостаток fMLLR:
- когда объем данных адаптации ограничен, матрицы преобразования имеют тенденцию легко переопределять данные данные.
Вычисление преобразования fMLLR
[ редактировать ]Преобразование признаков fMLLR можно легко вычислить с помощью речевого инструмента с открытым исходным кодом Kaldi . Сценарий Kaldi использует стандартную схему оценки, описанную в Приложении B оригинальной статьи. [1] в частности раздел Приложение Б.1 «Прямой метод по строкам».
В формулировке Калди fMLLR представляет собой преобразование аффинных признаков вида → , что можно записать в виде →W , где = это акустическая особенность с добавленной 1. Обратите внимание, что это отличается от некоторых источников, где цифра 1 стоит на первом месте. = .
Достаточной сохраненной статистикой являются:
где — обратная ковариационная матрица.
И для где это размер объекта:
Подробный обзор, объясняющий fMLLR и часто используемые методы оценки, см. в оригинальной статье «Линейные преобразования максимального правдоподобия для распознавания речи на основе HMM». [1] ".
Обратите внимание, что сценарий Kaldi, выполняющий преобразования функций fMLLR, отличается [1] используя столбец обратного значения вместо строки кофактора. Другими словами, фактор определителя игнорируется, так как он не влияет на результат преобразования и может вызвать потенциальную опасность численного недополнения или переполнения.
Сравнение с другими функциями или преобразованиями
[ редактировать ]Результаты эксперимента показывают, что использование функции fMLLR в распознавании речи обеспечивает постоянное улучшение по сравнению с другими акустическими функциями в различных часто используемых наборах эталонных данных ( TIMIT , LibriSpeech и т. д.).
В частности, функции fMLLR превосходят коэффициенты MFCC и FBANK , что в основном связано с процессом адаптации динамика, который выполняет fMLLR. [3]
В, [3] Сообщается о частоте ошибок фонем (PER, %) для тестового набора TIMIT с различными нейронными архитектурами:
Модели/Особенности | МФЦК | ФБАНК | fMLLR |
---|---|---|---|
МЛП | 18.2 | 18.7 | 16.7 |
РНН | 17.7 | 17.2 | 15.9 |
ЛСТМ | 15.1 | 14.3 | 14.5 |
ГРУ | 16.0 | 15.2 | 14.9 |
Ли-ГРУ | 15.3 | 14.9 | 14.2 |
Как и ожидалось, характеристики fMLLR превосходят коэффициенты MFCC и FBANK, несмотря на использование другой архитектуры модели.
Если MLP (многослойный персептрон) служит простой базовой линией, то RNN , LSTM и GRU, с другой стороны , являются хорошо известными рекуррентными моделями.
Ли-ГРУ [5] Архитектура основана на одном вентиле и, таким образом, экономит 33% вычислений по сравнению со стандартной моделью GRU. Таким образом, Li-GRU эффективно решает проблему исчезновения градиента рекуррентных моделей.
В результате наилучшие характеристики модели Li-GRU по функциям fMLLR достигаются.
Извлеките функции fMLLR с помощью Kaldi
[ редактировать ]fMLLR можно извлечь, как указано в рецепте s5 Калди.
Скрипты Kaldi, безусловно, могут извлекать функции fMLLR из разных наборов данных. Ниже приведены основные примеры шагов по извлечению функций fMLLR из речевых корпусов с открытым исходным кодом Librispeech .
Обратите внимание, что приведенные ниже инструкции относятся к подмножествам train-clean-100
, train-clean-360
, dev-clean
, и test-clean
,
но их можно легко расширить для поддержки других наборов dev-other
, test-other
, и train-other-500.
- Эти инструкции основаны на кодах, представленных в этом репозитории GitHub , который содержит рецепты Kaldi в корпусе LibriSpeech для выполнения процесса извлечения функций fMLLR, замените файлы в разделе
$KALDI_ROOT/egs/librispeech/s5/
с файлами в репозитории. - Установка пропала .
- Установите Калдиио .
- Если вы работаете на одной машине, измените следующие строки в
$KALDI_ROOT/egs/librispeech/s5/cmd.sh
заменитьqueue.pl
кrun.pl
:export train_cmd="run.pl --mem 2G" export decode_cmd="run.pl --mem 4G" export mkgraph_cmd="run.pl --mem 8G"
- Измените
data
путь вrun.sh
к вашему пути к данным LibriSpeech, каталогLibriSpeech/
должен быть под этим путем. Например:data=/media/user/SSD # example path
- Установить
flac
с:sudo apt-get install flac
- Запустите рецепт Калди
run.sh
для LibriSpeech по крайней мере до этапа 13 (входит в комплект), для простоты вы можете использовать модифицированный run.sh . - Копировать
exp/tri4b/trans.*
файлы вexp/tri4b/decode_tgsmall_train_clean_*/
с помощью следующей команды:mkdir exp/tri4b/decode_tgsmall_train_clean_100 && cp exp/tri4b/trans.* exp/tri4b/decode_tgsmall_train_clean_100/
- Вычислите функции fMLLR, запустив следующий скрипт, его также можно скачать здесь :
#!/bin/bash . ./cmd.sh ## You'll want to change cmd.sh to something that will work on your system. . ./path.sh ## Source the tools/utils (import the queue.pl) gmmdir=exp/tri4b for chunk in dev_clean test_clean train_clean_100 train_clean_360 ; do dir=fmllr/$chunk steps/nnet/make_fmllr_feats.sh --nj 10 --cmd "$train_cmd" \ --transform-dir $gmmdir/decode_tgsmall_$chunk \ $dir data/$chunk $gmmdir $dir/log $dir/data || exit 1 compute-cmvn-stats --spk2utt=ark:data/$chunk/spk2utt scp:fmllr/$chunk/feats.scp ark:$dir/data/cmvn_speaker.ark done
- Вычислите выравнивание, используя:
# alignments on dev_clean and test_clean steps/align_fmllr.sh --nj 10 data/dev_clean data/lang exp/tri4b exp/tri4b_ali_dev_clean steps/align_fmllr.sh --nj 10 data/test_clean data/lang exp/tri4b exp/tri4b_ali_test_clean steps/align_fmllr.sh --nj 30 data/train_clean_100 data/lang exp/tri4b exp/tri4b_ali_clean_100 steps/align_fmllr.sh --nj 30 data/train_clean_360 data/lang exp/tri4b exp/tri4b_ali_clean_360
- Примените CMVN и выгрузите функции fMLLR в новые файлы .ark. Сценарий также можно скачать здесь :
#!/bin/bash data=/user/kaldi/egs/librispeech/s5 ## You'll want to change this path to something that will work on your system. rm -rf $data/fmllr_cmvn/ mkdir $data/fmllr_cmvn/ for part in dev_clean test_clean train_clean_100 train_clean_360; do mkdir $data/fmllr_cmvn/$part/ apply-cmvn --utt2spk=ark:$data/fmllr/$part/utt2spk ark:$data/fmllr/$part/data/cmvn_speaker.ark scp:$data/fmllr/$part/feats.scp ark:- | add-deltas --delta-order=0 ark:- ark:$data/fmllr_cmvn/$part/fmllr_cmvn.ark done du -sh $data/fmllr_cmvn/* echo "Done!"
- Используйте скрипт Python для преобразования созданных Kaldi функций .ark в .npy для вашего собственного загрузчика данных. Пример скрипта Python предоставлен:
python ark2libri.py
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д MJF Гейлс (1998). «Линейные преобразования максимального правдоподобия для распознавания речи на основе HMM». Компьютерная речь и язык . 12 (2): 75–98. CiteSeerX 10.1.1.37.8252 . дои : 10.1006/csla.1998.0043 .
- ^ Цзин Хуан; Э Маршере; К. Висвесвария (2005). Быстрая адаптация пространственных динамиков для многопотокового аудиовизуального распознавания речи на основе HMM . Международная конференция IEEE по мультимедиа и выставкам (ICME). IEEE. стр. 338–341. дои : 10.1109/ICME.2005.1521429 .
- ^ Перейти обратно: а б с д Раванелли, Мирко; Парколле, Титуан; Бенджио, Йошуа (18 ноября 2018 г.). «Набор инструментов для распознавания речи PyTorch-Kaldi». arXiv : 1811.07453 [ eess.AS ].
- ^ Ли, Лунфэй; Чжао, Юн; Цзян, Дунмей; Чжан, Яннин; Ван, Фэнна; Гонсалес, Изабель; Валентин, Энеску; Сахли, Хишем (сентябрь 2013 г.). «Гибридная глубокая нейронная сеть - распознавание речевых эмоций на основе скрытой марковской модели (DNN-HMM)». Конференция Ассоциации людей по аффективным вычислениям и интеллектуальному взаимодействию , 2013 г. IEEE. стр. 312–317. дои : 10.1109/acii.2013.58 . ISBN 978-0-7695-5048-0 . S2CID 9665019 .
- ^ Раванелли, Мирко; Бракель, Филимон; Омолого, Маурицио; Бенджио, Йошуа (20 августа 2017 г.). «Улучшение распознавания речи путем пересмотра закрытых рекуррентных единиц». Интерспич 2017 . ISCA: ISCA: 1308–1312. arXiv : 1710.00641 . Бибкод : 2017arXiv171000641R . дои : 10.21437/interspeech.2017-775 . S2CID 1696099 .