首页 文章

Google-Cloud-Speech:StreamingRecognize方法的第一个中间结果的延迟

提问于
浏览
0

我们正尝试通过JAVA客户端使用Google StreamingRecognize方法 . 我们正在从麦克风读取数据并将其发送到语音API . 使用以下设置:识别配置 - LINEAR16,16KHz,en-US我们尝试将不同的缓冲区大小推送到StreamingRecognize(最多16000字节) . 我们观察到获得第一个结果需要至少4-5秒,并且在中期结果流式传输之后 . 任何人都可以确认这是否是API的预期行为 . 也很高兴知道为什么会有如此多的延迟 . 是否有任何方法或工作来最小化延迟 .

请注意,在延迟之后我们得到中期结果,最后得到完整的话语,并且具有合理的准确性

1 回答

  • 0

    我怀疑在描述的上下文中有两种行为是错误的,

    • 不应在Java服务应用中对采样率进行硬编码或固定常量,因为对于安装在相应系统中的每个系统或麦克风适配器,采样率都会有所不同 . 即,8000,16000,41000,48000等,因此您需要从麦克风的音频上下文中选择采样率,并在第一次初始调用中将其发送到Requestconfig setter中的更新 .

    • 如果您在连接握手时通过websocket进行流式传输,请将这些采样率,字节/帧发送到第一个请求观察者,然后从第二个请求开始,您需要跳过第一个请求观察者,并且可以直接传递给第二个请求观察者以获取成绩单 .

    如果以上几点不起作用,请分享您的StreamingRecognize类 . 所以我可以相应地调整你的代码

相关问题