本文介绍: 在接入过程中也遇到了很多问题,在网上查找资料的时候,发现好像没有相关文章来解答我们问题,包括外文社区我们做了很多尝试优化最后才做到了可上线的状态。谷歌的speechtotext提供restapigrpc两种接入方式我们应用场景选用的是grpc双向流式接入方式我们服务端使用的是go技术栈,所以使用go接入grpc

讲一下写这篇文章背景

因为需求需要我们APP需要一个语音转化成文字功能。因为我们做的是海外产品,需要支持语言当前对多语言语音识别支持的最好的解决方案当属谷歌家的了。通过对谷歌的speechtotext调研和一些其他原因我们决定通过服务端接入谷歌的功能,做一个封装然后把语音识别能力提供给客户端

谷歌的speech-totext提供restapigrpc两种接入方式我们的应用场景选用的是grpc双向流式接入方式我们服务端使用的是go技术栈,所以使用go接入的grpc

接入过程中也遇到了很多问题,在网上查找资料的时候,发现好像没有相关的文章来解答我们的问题,包括外文社区。我们做了很多尝试和优化,最后才做到了可上线的状态,所以记录一下,顺便分享大家

踩了很多坑,总结下来,主要是有以下几方面需要注意:

  1. 音频参数一定要配置正确,这需要客户端配合,比如客户端传过来音频什么格式采样率多少、几个声道,这都很关键。

  1. 识别模型选择选择适合自己的模型

  1. 双向流的控制控制好流的创建关闭。1、谷歌的grpcstream不能连接过长时间基本不能超过5分钟;2、send接口不能调用的太频繁。

  1. 音频数据缓存方案。我们是接收客户端音频实时数据需要数据做临时保存然后发送给Google,但是谷歌的grpc存在重启的情况,这就需要我们对在重启的时候做到减少数据丢失。我对数据做了双层保存,第一层是先保存通道,从通道拿出来,在传给谷歌之前在保存bufferbuffer到了一定长度发送给谷歌。这样的好处是即减少了发送频率,又能减少流重启导致的数据丢失

以上主要讲了接入过程中遇到的问题和一些解决方案和心得,具体的代码就不分享了。大家如果在接入过程中还遇到其他问题,可以找我沟通。

原文地址:https://blog.csdn.net/u011457432/article/details/129349124

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_20592.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注