我正在尝试将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.'); }); });
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。