|
var Speakable = require('./node_modules/speakable');
var speakable = new Speakable({key: 'AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw'}, {lang: 'en-US'});
var say = require('say');
var play = require('./node_modules/play');
var io = require('socket.io-client');
var socket = io.connect('http://localhost:9090');
var dialogue_messages = [];
var talking = false;
socket.on('connect', function(){
console.log('Connected to server')
speakable.recordVoice();
});
socket.on('message', function(data){
dialogue_messages.push(data)
if(!talking){
talking = true
speak();
}
});
socket.on('disconnect', function(){
speakable.resetVoice();
});
speakable.on('speechStart', function() {
console.log('onSpeechStart');
});
speakable.on('speechStop', function() {
console.log('onSpeechStop');
play.sound('./computerbeep_15.mp3');
});
speakable.on('speechReady', function() {
console.log('onSpeechReady');
});
speakable.on('error', function(err) {
console.log('onError:');
console.log(err);
speakable.recordVoice();
});
speakable.on('speechResult', function(recognizedWords) {
console.log('onSpeechResult:')
console.log(recognizedWords);
if(recognizedWords != ""){
socket.emit('message', recognizedWords);
} else {
speakable.recordVoice();
}
});
var speak = function() {
say.speak(dialogue_messages[0], 'Alex', 1.0, function(err){
if (err) {
return console.error(err);
}
dialogue_messages.shift();
if(dialogue_messages.length > 0) {
speak();
} else {
talking = false;
speakable.resetVoice();
speakable.recordVoice();
}
});
}
|