node-sphinx

1.0.17 • Public • Published

node-sphinx: модуль node.js для работы с распознаванием голоса

Модуль работает через пакет распазнования голоса CMUSphinx (https://github.com/cmusphinx).

Установка под Windows.

Для установки требуется, чтобы бы в системе были установлены:

В корне своего проекта NodeJS выполните команду:

npm i node-sphinx

Если требуется пересборка модуля, перейдите в папку модуля (node_modules/node-sphinx) и выполните команду:

npm run install

Замечание: сборка модуля происходит автоматически при его установке

Установка под Linux.

Для установки требуется, чтобы бы в системе были установлены:

  • Node.js (sudo apt-get install nodejs)
  • npm (sudo apt-get install npm)
  • git (sudo apt-get install git)

В корне своего проекта NodeJS выполните команду:

npm i node-sphinx --save

Замечание: при установке может быть запрошен пароль sudo, так происходит установка дополнительных компонентов в систему таких, как аудио драйверы, средства для сборки проектов и библиотеки пакетов pocketsphinx и sphinxbase. Список устанавлеваемых пакетов: build-essential, autoconf, libtool, automake, bison, python2.7, python2.7-dev, swig, dos2unix, pavucontrol, linuxsoundbase, alsa-base, alsa-utils, oss-compat, libsound2, pulseaudio, libpulse-dev, osspd.

Если требуется пересборка модуля, перейдите в папку модуля (node_modules/node-sphinx) и выполните команду:

npm run install

Замечание: сборка модуля происходит автоматически при его установке

Как пользоваться.

Подключите модуль:

const sphinx = require("node-sphinx");

Инициализируете распознаватель:

sphinx.recognizerInit(params,callback) 

params - объект с параметрами для инициализации. Спсиок всех параметров можно посмотреть здесь. Основные параметры, требуемые для инициализации:

  • hmm: путь до акустической модели;
  • lm: путь до лингвистической модели (или jsgf: путь до файла jsgf);
  • dict: путь до словаря.

callback - function(error,data): функция, которая будет вызвана по завершению инициализации. В случае успешной инициализации error будет равен null, data.rc будет равен 0. Пример:

sphinx.recognizerInit({
	hmm: path.join(__dirname,"node_modules/node-sphinx/src/pocketsphinx/model/en-us/en-us"),
	lm: path.join(__dirname,"node_modules/node-sphinx/src/pocketsphinx/model/en-us/en-us.lm.bin"),
	dict: path.join(__dirname,"node_modules/node-sphinx/src/pocketsphinx/model/en-us/cmudict-en-us.dict")
},(error,data) => {
    if(error) {
        console.log(error);            
        return;            
    }
    if(data.rc != 0) {
        console.log("Ошибка инициализации: rc=" + data.rc);
        return;
    }
	
	console.log("Инициализированно");        
});

Запустите распознавание:

sphinx.recognizerStart(callback)	

callback - function(error,data): функция, которая будет вызвана по завершению распознавания. В случае успешной инициализации error будет равен null, data.rc будет равен 0, а в data.result будет лежать распознанная строка. Пример:

sphinx.recognizerStart((error,data) => {
    if(error) {
        console.log(error);
        return;
    }
    if(data.rc != 0) {
        console.log("Ошибка распознавания: rc=" + data.rc + "; message=" + data.result);
        return;
    }

    console.log("Распознано: " + data.result);            
});

Остановка распознования:

sphinx.recognizerStop()

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

Получение статуса распознования:

sphinx.getRecognizerStatus()

Данная функция возвращает текущее состояние распознования. Результатом является объект следующего вида:

{
	inSpeech,			//слышит ли микрофон голос в данный момент
	startedHypAnalyse, 	//начато ли анализирование гипотиз по записи
	timeInterval		//время, прошедшее со старта распознования  
}

Пример:

setInterval(() => {
	let status = sphinx.getRecognizerStatus();
    console.log(status.inSpeech + "; " + status.startedHypAnalyse + "; " + status.timeInterval);
},100);				

/node-sphinx/

    Package Sidebar

    Install

    npm i node-sphinx

    Weekly Downloads

    3

    Version

    1.0.17

    License

    ISC

    Unpacked Size

    221 MB

    Total Files

    690

    Last publish

    Collaborators

    • denis.kruglikov