turen
v1.6.9
Published
TurenCore client for Node.js
Downloads
54
Readme
node-turen
The Node.js client for TurenCore.
Installation
$ npm install turen --save
Get Started
var options = {
host: 'apigwws.open.rokid.com',
port: 443,
key: 'rokid openplatform key',
secret: 'rokid openplatform secret',
deviceTypeId: 'rokid device type id',
deviceId: 'rokid device id',
};
var speech = new TurenSpeech();
speech.on('voice coming', (event) => {
// voice coming
});
speech.on('voice accept', (event) => {
// voice accept
});
speech.on('asr end', (asr, event) => {
// asr
});
speech.on('nlp', (response, event) => {
// response.asr
// response.nlp
// response.action
});
speech.on('disconnect', (socketType/* event or rpc */) => {
// got if some event is disconnected
});
speech.start(options);
Services
TurenCore provides multiple socket-based services for different functionalities.
RPC
Rpc service is used to call method of TurenCore, which includes:
Restart()
RestartWithoutArgs()
Pickup()
IsPickup()
OpenMic()
SetStack()
SetSkillOption()
CMD
Cmd service is used to call debug method which includes:
openMic()
closeMic()
pickup()
reset()
readyForAsr()
setAngle(deg)
Event
Event service is to be notified for all voice and nlp events, includes:
voice coming
returns the speechenergy
and directionsl
when triggered locally.voice local sleep
when sleep locally.asr begin
when cloud speech recognition begins.asr end
returns the final valueasr
when cloud speech recognition ends.nlp
returns thenlp
andaction
when NLP is done.
A complete events list is at here.
Audio
Audio service is also to debug with TurenCore, we could pull audio streams from every stage like AEC/BF/VAD.
You could use it as a socket handle:
var audioStream = new TurenAudio('mic_in');
audioStream.on('data', (chunk) => {
// got data
});
audioStream.connect();
Streaming API also could use used:
var writable = fs.createWriteStream('/path/to/your/file');
writable.pipe(audioStream);
Push audio data to TurenCore:
var audioWritable = new TurenAudio('mic_out');
await audioWritable.connect();
// write a buffer
audioWritable.send(new Buffer(1024));
// write a readable stream
audioWritable.send(fs.createReadStream('/path/to/your/pcm/file'));
The available type values of TurenAudio
is:
mic_in
as aReadable
stream to pull the raw data, its format depends on your micphone configuration.bf_out
as aReadable
stream to pull the pcm after BF.bf4_out
as aReadable
stream to pull the pcm after BF with selected 4 channels.bf12_out
as aReadable
stream to pull the pcm after BF with the full 12 channels.aec_out
as aReadable
stream to pull the pcm after AEC.codec_in
as aReadable
stream to pull the pcm before opu codec.speech_in
as aReadable
stream to pull the opu before uploading to cloud speech service.mic_out
as aWritable
stream to push raw data.
The following types are available only for our CTC model:
ctc.line_0
as aReadable
stream to pull the pcm to the CTC line 0.ctc.line_1
as aReadable
stream to pull the pcm to the CTC line 1.ctc.line_2
as aReadable
stream to pull the pcm to the CTC line 2.ctc.line_3
as aReadable
stream to pull the pcm to the CTC line 3.
Logger
You also could access to TurenCore's logs by TurenLogger
:
var TurenLogger = require('turen').client.TurenLogger;
var logger = new TurenLogger();
logger.on('data', (data) => {
// receives the data
});
logger.connect();
License
MIT