Я пытаюсь запустить простое приложение Google Cloud / Speech для преобразования звука с микрофона в текст.Мой index.js.below
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
const record = require('node-record-lpcm16');
// Imports the Google Cloud client library
const speech = require('@google-cloud/speech');
// Creates a client
const client = new speech.SpeechClient();
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
const encoding = 'LINEAR16';
const sampleRateHertz = 16000;
const languageCode = 'en-US';
const request = {
config: {
encoding: encoding,
sampleRateHertz: sampleRateHertz,
languageCode: languageCode,
},
interimResults: false, // If you want interim results, set this to true
};
// Create a recognize stream
const recognizeStream = client
.streamingRecognize(request)
.on('error', console.error)
.on('data', data =>
process.stdout.write(
data.results[0] && data.results[0].alternatives[0]
? `Transcription: ${data.results[0].alternatives[0].transcript}\n`
: `\n\nReached transcription time limit, press Ctrl+C\n`
)
);
// Start recording and send the microphone input to the Speech API
record
.start({
sampleRateHertz: sampleRateHertz,
threshold: 0,
// Other options, see https://www.npmjs.com/package/node-record-lpcm16#options
verbose: false,
recordProgram: 'rec', // Try also "arecord" or "sox"
silence: '10.0',
})
.on('error', console.error)
.pipe(recognizeStream);
console.log('Listening, press Ctrl+C to stop.');
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
Если я запускаю приведенный выше код локально, он работает отлично.Если я удаляю весь код Google Speech, сервер работает нормально.Но при использовании вышеупомянутого ( То же, что и документы ) Heroku раскручивается и выдает ошибку.
2019-02-25T09:07:38.000000+00:00 app[api]: Build succeeded
2019-02-25T09:07:39.926417+00:00 app[web.1]:
2019-02-25T09:07:39.926435+00:00 app[web.1]: > socket-chat-example@0.0.1 start /app
2019-02-25T09:07:39.926437+00:00 app[web.1]: > node index.js
2019-02-25T09:07:39.926439+00:00 app[web.1]:
2019-02-25T09:07:40.617413+00:00 app[web.1]: Listening, press Ctrl+C to stop.
2019-02-25T09:07:40.626395+00:00 app[web.1]: events.js:174
2019-02-25T09:07:40.626399+00:00 app[web.1]: throw er; // Unhandled 'error' event
2019-02-25T09:07:40.626401+00:00 app[web.1]: ^
2019-02-25T09:07:40.626403+00:00 app[web.1]:
2019-02-25T09:07:40.626405+00:00 app[web.1]: Error: spawn rec ENOENT
2019-02-25T09:07:40.626407+00:00 app[web.1]: at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
2019-02-25T09:07:40.626410+00:00 app[web.1]: at onErrorNT (internal/child_process.js:415:16)
2019-02-25T09:07:40.626412+00:00 app[web.1]: at process._tickCallback (internal/process/next_tick.js:63:19)
2019-02-25T09:07:40.626414+00:00 app[web.1]: at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
2019-02-25T09:07:40.626416+00:00 app[web.1]: at startup (internal/bootstrap/node.js:283:19)
2019-02-25T09:07:40.626417+00:00 app[web.1]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
2019-02-25T09:07:40.626419+00:00 app[web.1]: Emitted 'error' event at:
2019-02-25T09:07:40.626421+00:00 app[web.1]: at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
2019-02-25T09:07:40.626423+00:00 app[web.1]: at onErrorNT (internal/child_process.js:415:16)
2019-02-25T09:07:40.626425+00:00 app[web.1]: [... lines matching original stack trace ...]
2019-02-25T09:07:40.626427+00:00 app[web.1]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
2019-02-25T09:07:40.636937+00:00 app[web.1]: npm ERR! code ELIFECYCLE
У меня есть все учетные данные Google Cloud, настроенные как переменные среды в Heroku, и они, кажется, работают нормально.
Любая помощь очень ценится.
Приветствия