首页 文章

Google Speech API流媒体

提问于
浏览
0

我正在尝试使用 syncrecognize 方法将我的PBX IVR连接到Google Speech API,但由于我需要录制语音,将其发送到API,等待响应并将其处理回来,无法进行正常会话或尝试拥有正常的会话/过程语音使用它进行实时服务 . 是否还有其他API?或者有没有办法为谷歌设置VoIP /流媒体 . 类似于Alexa / Google Home . 我找不到 RecognitionAudio 对象的任何内容:

2 回答

  • 1

    您可以提供记录的缓冲区作为识别方法的内容参数,如:

    speechClient.recognize({content: voiceRecord.buffer}, options)
      .then((results) => {
        const transcription = results[0];
        console.log(`Transcription: ${transcription}`);
    });
    
  • 0

    Google Cloud Speech API服务支持两种不同的功能:

    • 非流式识别,假设您向Google平台提供完整音频,并在处理完毕后收到结果

    • Streaming Recognition,允许您以交互方式(实时)提供音频,并在处理音频块时获得有关结果(部分,中间,结果和最终结果)的通知

    以上操作都可以是:

    • Syncronous,执行命令并等待结果(适用于短文件的标准识别)

    • Asyncronous,发出命令并等待通知/检查特定命令结果(通常在不同的线程或多线程环境中,音频强制模式超过一分钟)

    Streaming Recognition API is recomended for your application scenario ,认为它只能通过Cloud Speech RPC API(谷歌RPC)访问,而非流式识别API既可用于Cloud Speech REST,也可用于RPC API .

    我们在类似的应用程序环境中通过gRPC API使用了AsyncStreamingRecognize,项目在C中,环境设置非常漫长而复杂(您需要为您的环境下载和构建grpc,protoc和Google Speech API存根/库) . 对于我们用作Google Speech API Site上可用示例的应用程序,一旦环境准备就绪,将示例应用程序逻辑调整到我们的特定场景非常简单 .

    使用流式API,您在音频编码方面有限制(并非所有编码都受支持)和处理的音频长度(在流媒体中您可以处理长达1分钟的语音),此外,您只能通过服务帐户访问API必须启用才能使用Speech API .

相关问题