infobot-yandex-stt
v1.1.3
Published
Node.JS library for Yandex Cloud Speech-to-Text with streaming recognition
Downloads
39
Maintainers
Readme
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', // Possible values: ru-RU, en-US, tr-TR
sample_rate_hertz: 8000, // Possible values: 8000, 16000, 48000
audio_encoding: STT.FORMAT_PCM, // Possible values: FORMAT_PCM, FORMAT_OPUS
profanity_filter: false, // Make censored output
partial_results: true // Send partial results
}).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.