infobot-yandex-stt
Node.JS library for Yandex Speech Cloud service.
Library can work in stream mode or recognize stored audio file.
To work with this library you need to obtain from Yandex Cloud:
- Private key in PEM format
- Service ID
- Service Key
- Folder ID
Please check this page for information about service accounts.
Audio file recognition example:
var STT = require('infobot-yandex-stt');
var fs = require('fs');
var key = SERVICE_KEY ;
var folder_id = FOLDER_ID;
var service_id = SERVICE_ID;
var stt = new STT(service_id, key, folder_id, fs.readFileSync('./yandex.pem'));
stt.recognizeFile('test.wav').then(res => {
console.log(JSON.stringify(res));
});
Stream recognition example:
var STT = require('infobot-yandex-stt');
var fs = require('fs');
var key = SERVICE_KEY ;
var folder_id = FOLDER_ID;
var service_id = SERVICE_ID;
var stt = new STT(service_id, key, folder_id, fs.readFileSync('./yandex.pem'));
stt.startRecognitionSession({
language_code: 'ru-RU',
sample_rate_hertz: 8000,
audio_encoding: STT.FORMAT_PCM,
profanity_filter: false,
partial_results: true
}).then((recSess) => {
var Writable = require('stream').Writable;
var ws = Writable();
ws._write = function (chunk, enc, next) {
recSess.writeChunk(chunk);
next();
};
var readStream = fs.createReadStream(path);
readStream.pipe(ws);
readStream.on("end", function () {
recSess.finishStream();
});
recSess.on('data', function (data) {
if (data && data.chunks) {
console.log(`Transcript: ${data.chunks[0].alternatives[0].text}`);
}
});
recSess.on('error', function (data) {
console.error(data);
});
}).catch((err) => {
console.error(err);
});
Provided by INFOBOT LLC. under Apache 2.0 license.