接入谷歌的语音识别(speech-to-text)[通俗易懂]

接入谷歌的语音识别(speech-to-text)[通俗易懂]在接入的过程中也遇到了很多问题,在网上查找资料的时候,发现好像没有相关的文章来解答我们的问题,包括外文社区。我们做了很多尝试和优化,最后才做到了可上线的状态。谷歌的speech-to-text提供restapi和grpc两种接入方式。我们的应用场景选用的是grpc双向流式的接入方式,我们服务端使用的是go技术栈,所以使用的go接入的grpc。_google语音识别

接入谷歌的语音识别(speech-to-text)[通俗易懂]

讲一下写这篇文章的背景。

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

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

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

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

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

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

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

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

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

今天的文章接入谷歌的语音识别(speech-to-text)[通俗易懂]分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58395.html

(0)
编程小号编程小号

相关推荐

发表回复

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