我一直在尝试设置节点服务以将实时音频流式传输到Google Speech API,但我遇到了一个我认为可能与身份验证相关的问题。
使用Express和BinaryServer在节点中编写服务,我没有任何问题地接收数据(并且能够将其保存到本地磁盘,但下面的代码部分不在下面)示例),但是当我尝试提交到Google API时,我没有收到任何回复(虽然如果我从请求中删除了keyFileName,那么我得到"错误:无法加载默认凭据"这是公平的,因为我在GCE之外跑步
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
<textarea class="textareatest" onkeyup="countChar(this);"></textarea>
<span id="charNum">50</span>
</div>
我还承认这是我第一次尝试重新管道到另一个API,因此我可能已将该部分搞砸了,但默认凭据信息使得我觉得它很好用,只是在没有回复理由的情况下拒绝了我的请求。
有人能发现我的错误吗?
干杯。
答案 0 :(得分:-1)
有关此问题的答案,请参阅Shiv的问题
NodeJS Convert Int16Array binary Buffer to LINEAR16 encoded raw stream for Google Speech API
他给出的代码答案是
我们可以将缓冲区直接写入自创建的recognizerStream GoogleSpeech如下:
const recognizer = getGoogleSpeechStreamRecognizer();
recognizer.write(int16ArrayBuffer)