谷歌开源实时转写应用中的语音引擎,可为70多种语言实时添加字幕
2019年08月19日 由 冯鸥 发表
936857
0
谷歌今天开源了安卓语音识别转写工具Live Transcribe的语音引擎。该公司希望这样做可以让开发人员为冗长的对话提供字幕。源代码现在可以在GitHub上获得。
谷歌于2月发布了Live Transcribe。该工具使用机器学习算法将音频转换为实时字幕。与Android即将推出的Live Caption功能不同,Live Transcribe是一种全屏体验,使用智能手机的麦克风(或外接麦克风),并依赖于Google Cloud Speech API。
Live Transcribe可以为70多种语言和方言的口语单词实时添加字幕。另一个主要区别是,Live Transcribe可以在18亿部安卓设备上使用。Live title将于今年晚些时候发布,它只适用于部分Android Q设备。
在云上工作
谷歌的Cloud Speech API目前不支持发送无限长的音频流。此外,依赖云意味着会出现网络连接,数据成本和延迟等方面的潜在问题。
因此,语音引擎在超时之前关闭并重新启动流请求,包括在长时间的静默期间重新启动会话,以及在检测到语音暂停时关闭会话。在会话之间,语音引擎还在本地缓冲音频,然后在重新连接时发送它。谷歌避免了截断的句子或单词,并减少了对话中丢失的文本量。
为了降低带宽需求和成本,谷歌还评估了不同的音频编解码器:FLAC,AMR-WB和Opus。FLAC(无损编解码器)可以保持准确性,不会节省太多数据,并且具有明显的编解码器延迟。AMR-WB可以节省大量数据,但在嘈杂的环境中准确度较低。Opus允许数据速率比大多数音乐流媒体服务低许多倍,同时仍保留音频信号的重要细节。
谷歌还会在长时间的静音期间使用语音检测来关闭网络连接。总体而言,能够在不影响准确性的情况下将数据使用量减少10倍。
为了比Cloud Speech API更进一步减少延迟,Live Transcribe使用自定义Opus编码器,编码器恰好提高了比特率。
Live Transcribe语音引擎功能
谷歌列出了语音引擎的以下功能(不包括说话人识别):
- 无限流媒体。
- 支持70多种语言。
- 可以简化网络丢失(在网络和Wi-Fi之间旅行和切换时)。文字不会丢失,只是延迟。
- 强大的扩展网络损耗。即使网络已经停电数小时,也会重新连接。当然,没有连接就不能进行语音识别。
- 稳健的服务器错误。
- 可以轻松启用和配置Opus,AMR-WB和FLAC编码。
- 包含文本格式库,用于可视化ASR置信度,发言人ID等。
- 可离线模型扩展。
- 内置支持语音检测器,可在延长静音期间用于停止ASR,以节省资金和数据。
- 内置支持扬声器识别,可根据扬声器编号标记或着色文本。
该文档指出这些库与生产应用程序Live Transcribe中运行的库几乎相同。谷歌已对其进行了广泛的现场测试和单元测试,但测试本身并不开源。但谷歌确实提供了APK,因此你可以在不构建任何代码的情况下试用库。
开源:
github.com/google/live-transcribe-speech-engine
应用:
play.google.com/store/apps/details?id=com.google.audio.hearing.visualization.accessibility.scribe