谷歌语音识别api太慢了

时间:2017-06-14 10:32:34

标签: node.js socket.io google-cloud-platform google-speech-api

实际上我正在尝试使用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语音识别器。但我需要提供跨浏览器支持。

0 个答案:

没有答案