Я пытался настроить службу узлов для потоковой передачи живого звука в API Google Speech, но я столкнулся с проблемой, которая, по моему мнению, может быть связана с проверкой подлинности.NodeJs Google Speech API Streaming
Служба написана на узле с использованием Express и BinaryServer, я получаю данные без каких-либо проблем (и смог сохранить их на локальном диске, но этот раздел кода не приведен в приведенном ниже примере), но когда я пытаюсь отправить в Google API, я ничего не получаю (хотя, если я удалю ключевое имяFileName из запроса, я получаю «Ошибка: не могу загрузить учетные данные по умолчанию», что справедливо, потому что я бегу снаружи БКА)
var express = require("express");
var app = express();
var port = 54180;
var BinaryServer = require('binaryjs').BinaryServer;
var server = BinaryServer({
port: port
});
app.listen(port, function() {
console.log('server open on port ' + port);
});
binaryServer = BinaryServer({
port: 9001
});
binaryServer.on('connection', function (client) {
console.log('Binary Server connection started');
client.on('stream', function (stream, meta) {
console.log('>>>Incoming audio stream');
var speech = require('@google-cloud/speech')({
projectId: 'MYPROJECT-1234'
//keyFilename: '/config/KeyFile.json'
});
const request = {
config: {
encoding: 'LINEAR16',
sampleRate: 16000
},
singleUtterance: false,
interimResults: true
};
// Create a recognize stream
const recognizeStream = speech.createRecognizeStream(request)
.on('error', function (error) {
console.log('Error');
console.log(error)
})
.on('data', function (data) {
console.log('Data');
console.log(data);
});
// Send the microphone input to the Speech API
stream.pipe(recognizeStream);
stream.on('end', function() {
fileWriter.end();
recognizeStream.end();
console.log('||| Audio stream ended');
});
});
});
Я также признаю, что это первый раз, когда я пытался повторно труба к другому API, так что это может быть, что я пьяный, что часть, но сообщение идентификационного по умолчанию заставляет меня думать, что это трубопровод ОК, и это просто отказ мой запрос, не возвращая причины.
Может ли кто-нибудь определить, что я ошибаюсь?
Cheers. вопрос
Я также искал подобное решение. Вот мой вопрос https://stackoverflow.com/questions/43505524/nodejs-convert-int16array-binary-buffer-to-linear16-encoded-raw-stream-for-googl –