No Description

index.js 1.6KB

    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(); } }); }