Описание процесса сборки моделей для pocketsphinx

Установка необходимых пакетов

Для сборки языковой модели необходимо загрузить и установить пакет cmuclmtk. Процедура установки пакета в linux является стандартной.

Пример spec-файла для сборки пакета RPM для дистрибутива Mandriva приведён ниже.

Summary: The CMU-Cambridge Statistical Language Modeling Toolkit

Name: cmuclmtk

Version: 0.7

Release: %mkrel 0

License: GPL

Group: Development/Other

Source: http://downloads.sourceforge.net/project/cmusphinx/cmuclmtk/0.7/%{name}-%{version}.tar.gz

BuildRoot: %{_tmppath}/%{name}-%{version}

URL: http://cmusphinx.sourceforge.net/

 

%description

The CMU-Cambridge Statistical Language Modeling Toolkit need for make cmu-sphinx's language models

 

%prep

%setup -q

 

%build

%{__libtoolize}

%{__aclocal}

%{__autoconf}

%{__automake}

%configure

%make

 

%install

rm -fr %{buildroot}

%makeinstall_std

 

%clean

rm -fr %{buildroot}

 

%files

%defattr(-,root,root)

%{_bindir}/*

%{_libdir}/*

%{_includedir}/%{name}/*

%doc README NEWS ChangeLog TODO

Подготовка исходных данных

Нормализация данных подразумевает приведение всех слов к одному виду, удаления лишней информации таких как лишние пробелы, переводы кареток, точек, запятых.

Для обозначения начала распознаваемого текста необходимо использовать выражение <s>. Для обозначения конца распознаваемого текста необходимо использовать выражение </s>.

Пример готового текстового корпуса приведён ниже.

<s> познакомимся давай </s>

<s> давай познакомимся </s>

<s> знакомиться давай </s>

<s> давай знакомиться </s>

Для маркировки вспомогательных выражений необходимо создать файл cssв который внести маркеры <s> и </s>.

 

Процесс сборки модели

Процесс сборки модели осуществляется последовательным выполнением команд:

1. Получаем частотные характеристики слов:

cat train.corpus | text2wfreq > train.wfreq

2. Получаем словарь слов:

cat train.wfreq | wfreq2vocab > train.vocab

3. Получаем 3-gram-ы:

cat train.corpus | text2idngram -hash 20000000 -files 1000 -vocab train.vocab -idngram train.idngram

4. Для сборки модели по алгоритму Witten Bell необходимы выполнить команду:

idngram2lm -context ccs -vocab_type 2 -witten_bell -idngram train.idngram -vocab train.vocab -arpa train.arpa

 5. Конвертирование модели в формат pocketsphinx производится при помощи команды:

sphinx_lm_convert -ifmt arpa -ofmt dmp -i train.arpa -o phrases.lm

 

На этом процесс сборки модели считается завершённым.

 

В дополнение прикладываю ссылку на следующие файлы:

1) собранная языковая модель;

2) словарь vocab.txt - в нём хорошо видны допущенные ошибки в написании слов;

3) небольшая инструкция в соответсвии, с которой была построенна языковая модель;

4) архив с демонстрационным пакетом, включающим все модели необходимые для распознавания с продуктом pocketsphinx.
Для проверки работы необходимо выполнить скрипт decode.sh.
Результат работы должен отобразиться на экране следующим виде:
000000000: посмотри прогноз погоды на десятое января

Leave a Reply

You must be logged in to post a comment.