实际上我正在尝试使用socket.io将音频流从我的网页存储到我的nodejs服务器。在将其存储在我的服务器上后,我试图在存储的文件上执行语音识别。我有以下代码运行良好,但它太慢了。我有所有环境变量和配置。收集许多请求的统计信息后,响应时间在7秒到18秒之间变化。
var http = require('http');
var wav = require('wav');
var app = http.createServer(function ejecute(request, response) {});
var io = require('socket.io').listen(app);
var fs = require('fs');
var Speech = require('@google-cloud/speech');
io.on('connection', function(socket) {
var fileWriter = null;
socket.on('stream', function(data) {
if (!fileWriter) {
fileWriter = new wav.FileWriter('demo.wav', {
channels: 1,
sampleRate: 16000,
bitDepth: 16
});
}
if (!fileWriter._writableState.ended)
fileWriter.write(data);
});
socket.on('end', function(data) {
fileWriter.end();
streamingRecognize('demo.wav');
});
});
function streamingRecognize(filename) {
const speech = Speech();
const request = {
encoding: 'LINEAR16',
languageCode: 'en-US',
sampleRateHertz: 16000
};
speech.recognize(filename, request)
.then((results) => {
const transcription = results[0];
console.log(`Transcription: ${transcription}`);
})
.catch((err) => {
console.error('ERROR:', err);
});
}
app.listen(3000);
任何人都可以帮助我吗?我做错了什么?
这是我正在使用的参考 https://cloud.google.com/speech/docs/how-to
我也可以使用Web语音识别器。但我需要提供跨浏览器支持。