因为需求需要,我们APP需要做一个语音转化成文字的功能。因为我们做的是海外产品,需要支持多语言,当前对多语言语音识别支持的最好的解决方案当属谷歌家的了。通过对谷歌的speech–to–text调研和一些其他原因,我们决定通过服务端去接入谷歌的功能,做一个封装,然后把语音识别能力提供给客户端。
谷歌的speech-to–text提供restapi和grpc两种接入方式。我们的应用场景选用的是grpc双向流式的接入方式,我们服务端使用的是go技术栈,所以使用的go接入的grpc。
在接入的过程中也遇到了很多问题,在网上查找资料的时候,发现好像没有相关的文章来解答我们的问题,包括外文社区。我们做了很多尝试和优化,最后才做到了可上线的状态,所以记录一下,顺便分享给大家。
-
音频数据的缓存方案。我们是接收的客户端的音频实时流数据,需要对数据做临时保存,然后发送给Google,但是谷歌的grpc存在重启的情况,这就需要我们对在重启的时候做到减少数据的丢失。我对数据做了双层保存,第一层是先保存到通道,从通道拿出来,在传给谷歌之前在保存到buffer,buffer到了一定长度才发送给谷歌。这样的好处是即减少了发送的频率,又能减少流重启导致的数据丢失。
以上主要讲了接入过程中遇到的问题和一些解决方案和心得,具体的代码就不分享了。大家如果在接入过程中还遇到其他问题,可以找我沟通。
原文地址:https://blog.csdn.net/u011457432/article/details/129349124
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_20592.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!