Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何将websocket二进制消息作为流发送到Google Speech API?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将websocket连接的音频流发送到Google Speech API. websocket以20ms的增量发送二进制消息.它以递增的方式发送它让我相信我会以某种方式暂时读取和写入数据到本地文件,以避免杀死与Google的连接.但是,这并不理想.

有没有办法直接将websocket流管道传输到recognStream?

来自文档的Google streamingRecognize示例:

const request = {
   config: {
      encoding: encoding,sampleRate: sampleRate
   }
};

const recognizeStream = speech.createRecognizeStream(request)
  .on('error',console.error)
  .on('data',(data) => process.stdout.write(data.results));

record.start({
  sampleRate: sampleRate,threshold: 0
}).pipe(recognizeStream);

Websocket连接:

var httpDispatcher = require('httpdispatcher');
var dispatcher     = new httpDispatcher();
var WebSocketServer = require('websocket').server;


var server = http.createServer(handlerequest);

var wsServer = new WebSocketServer({
    httpServer: server,autoAcceptConnections: true,});

function handlerequest(request,responsE){
    try {
        //log the request on console
        console.log(request.url);
        //Dispatch
        dispatcher.dispatch(request,responsE);
    } catch(err) {
        console.log(err);
    }
}


wsServer.on('connect',function(connection) {
    console.log((new Date()) + ' Connection accepted' + ' - Protocol Version ' + connection.webSocketVersion);
    connection.on('message',function(messagE) {
        if (message.type === 'utf8') {
            console.log(message.utf8Data);
        }

        else if (message.type === 'binary') {

          //Send to Google Speech API by passing into recognizeStream

        }
    });

    connection.on('close',function(reasonCode,description) {
        console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
    });


});

解决方法

最好的解决方案是使用专门的流媒体解决方案,而不是自己动手,这将处理所有缓冲区并为您提供适合Google Speech API的稳定流.尝试使用类似的东西,

https://www.npmjs.com/package/websocket-stream

大佬总结

以上是大佬教程为你收集整理的node.js – 如何将websocket二进制消息作为流发送到Google Speech API?全部内容,希望文章能够帮你解决node.js – 如何将websocket二进制消息作为流发送到Google Speech API?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。