作者 | 琥珀

出品 | AI科技大本营(公众号id:rgznai100)

Python规划学习路线图,速领取?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

谷歌语音输入法可离线识别啦!

这次出手的,又是谷歌 AI 团队。刚刚,他们为旗下的一款手机输入法 Gboard (不要跟谷歌拼音输入法搞混了啊~)上线了新功能:离线语音识别。目前这一新功能,只能在其自家的产品 Pixel 系列手机上使用。

广大已经下载或正在赶往下载路上的 Pixel 圈外人士,包括 iOS 用户可能都会失望了。

他们是这样描述这款新功能的配置的:端到端、全神经、本地部署的语音识别系统。

在其最近的论文 “Streaming End-to-End Speech Recognition for Mobile Devices” 中,他们提出了一种基于 RNN-T(RNN transducer)的训练模型。

它非常紧凑,可满足在手机上部署。这意味着不会出现太多网络延迟或紊乱,即使用户处于脱机状态,这款语音识别系统也始终可用。该模型始终以字符级工作, 因此即便你说话,它也会逐个字符地输出单词,就好像有人在实时键入并准确在虚拟键盘听写出你说的话。

例如,下面两张图片中展示的是在听写系统中输入相同句子时的情况展示:左侧为服务器端,右侧为本地端。哪边的语音识别体验更好呢?

总结起来就是,“离线状态下,没有任何延迟。”这也是谷歌此次亮出的大杀器。

发生延迟是因为你的语音数据必须从手机传输到服务器上,解析完成后再返回。这可能需要几毫秒甚至几秒的时间。万一语音数据包在以太网中丢失,则需要更长的时间。

将语音转换成毫秒级的文本需要相当多的计算力。这不只简单是听到声音然后写一个单词那么简单,而是需要理解一个人讲话的含义,以及背后涉及的很多有关语言和意图的上下文语境。

在手机上是可以做到这一点的,但如此的话,又会很损耗电池电量。

语音识别模型简史

一般来讲,语音识别系统由几个部分组成:将音频片段(通常为 10 毫秒帧)映射到音素的声学模型、将音素连接起来形成单词的发声模型,以及一个表达给定模型的语言模型。在早期系统,这些组件是相对独立优化的。

2014 年左右,研究人员开始专注于训练单个神经网络,将输入音频波形直接映射到输出句子。通过在给定一系列音频特征的情况下生成一系列单词或字形来学习模型,这种 sequence-to-sequence 的方法促使了 attention-based 和 listen-attend-spell(LAS)模型的诞生。虽然这些模型在准确性方面表现出极大的前景,但它们通常会检查整个输入序列,并且在输入时不允许输出,这是实时语音转录的必要特征。

同时,一种称为 connectionist temporal classification(CTC)的技术有助于减少当时识别系统的延时问题。这对于后来创建 RNN-T 架构是一次重要的里程碑,也被看作是 CTC 技术的一次泛化。

(编者注:CTC,其全称为 Connectionist Temporal Classfication,由 Graves 等人于 2006 年提出,用于训练递归神经网络(RNN)以解决时序可变的序列问题。它可用于在线手写识别或识别语音音频中音素等任务。发展到如今,CTC 早已不是新名词,它在工业界的应用十分成熟。例如,在百度近日公布的在线语音识别输入法中,其最新语音模型在 CTC 的基础上还融合了 Attention 等新技术。)

何为RNN-T?

RNN-T 是一种不采用注意力机制的 sequence-to-sequence 模型。与大多数 sequence-to-sequence 模型(通常需要处理整个输入序列(在语音识别中即是波形)以产生输出句子)不同,RNN-T 会连续处理输入样本和流输出符号。

输出符号是字母表的字符。RNN-T 会逐个输出字符,并在适当的位置输入空格。它通过反馈循环执行此操作,该训练将模型预测的符号反馈到其中以预测下一个符号。如下图所示。

用输入音频样本 x 和预测符号 y 表示 RNN-T。预测符号(Softmax 层的输出)通过预测网络反馈到模型中。

有效训练这样的模型已经很困难,但随着新开发的训练技术进一步将单词错误率降低了 5%,它的计算强度变得更高。为了解决这个问题,研究人员开发了一个并行实现过程,因此 RNN-T 损失功能可以在 Google Cloud TPU v2 上大批量运行。训练中实现了大约 3 倍的加速。

离线识别

在传统的语音识别引擎中,声学、发声和语音模型组合成一个大的图搜索(search graph),其边缘用语音单元及其概率标记。

当语音波形呈现给识别系统时,“解码器”在给定输入信号的情况下会搜索图中相似度最高的路径,并读出该路径所采用字序列。

通常,解码器采用基础模型的有限状态传感器(Finite State Transducer, FST)表示。

然而,尽管有复杂的解码技术,图搜索仍很困难,因为生产模型几乎有 2GB 大小。这可不是在移动电话上想托管就可以实现的,因此这种方法需要在线连接才能正常使用。

为了提高语音识别的有效性,研究人员尝试直接在设备上托管新模型以避免通信网络的延迟和固有的不可靠性。

因此,端到端的方法不需要在大型解码器图上进行搜索。相反,解码器包括通过单个神经网络的集束搜索(beam search)。

RNN-T 与传统的基于服务器端的模型具有相同的精度,但前者只有 450MB,而且更加智能地使用参数和打包信息。但即便在如今的智能手机上,450MB 还是占用了很大的空间,例如通过大型网络是信号传播可能会很慢。

因此,研究人员通过使用参数量化和混合内核技术进一步减小了模型大小。这项技术早在 2016 年就已发布,并在 TensorFlow Lite 版本中提供公开的模型优化工具包。

模型量化相对于训练的浮点模型提供 4 倍压缩,在运行时实现了 4 倍加速,这使得 RNN-T 比单核上的实时语音运行得更快。压缩后,最终模型大小只占 80MB。

效果如何?

谷歌公开这一新功能后,TechCrunch 评论称,“鉴于 Google 的其他产品几乎没有是离线工作的,那么你会在离线状态下写一封电子邮件吗?当然,在网络条件不好的情况下,这款应用新功能可能会解决了用户痛点,但显然,这还是有点讽刺(鸡肋)。”

而这也一度吸引来了 HackerNews 上不少用户评论,他们也将部分矛头指向了所谓的“离线功能”:

“离线功能虽然不是最主要的吸引力,但正如本文中提到的,延迟问题的减少是巨大的。他们可能没有提及的是对隐私问题的影响。不过,用户一般不会离线处理事物,但如果需要来回的稳定数据包流,连接网络也是很麻烦的问题。”

不过,经过尝试后的用户还是非常看好:“我只是将我的 Pixel1 代切换到飞行模型,并尝试了语音输入。果然,它的离线工作速度很快!这令人非常印象深刻(我之前尝试过,但过去它只能理解一些特殊的短语。)

有多好方法可以实现这一功能呢,但我认为任何应用都能从这次语音的改进中受益。“

为此,笔者也特意下载了 Gboard、讯飞、百度三家语音输入法,试看它们在飞行模式下的效果如何。

Round 1:

Gboard:目前非 Pixel 手机中离线语音尚无法使用,且针对某些机型甚至不支持语音。不过,打字还是比较丝滑流畅的。

Round 2:

讯飞:可下载离线语音包,不过在正常网络通畅情况下,语音识别的速度和准确性还是相当高的。

Round 3:

百度:也可下载离线语音,无网络连接状态下,语音识别效果还是可以的。

不知国内经常使用讯飞、百度输入法的小伙伴们,看到这一消息有何想法?欢迎留言。

参考:

https://ai.googleblog.com/2019/03/an-all-neural-on-device-speech.html

(本文为AI科技大本营原创文章,转载请微信联系 1092722531)

【End】

 热 文 推 荐 

熊猫直播凉了,直播大战厮杀后只剩遍地鸡毛! | 畅言

☞ 技术头条

☞ 16 岁程序媛遭辍学歧视死亡威胁,最终是如何开发出爆款应用的?

13 岁女学生因两行 JavaScript 代码被捕!

☞ 中国区块链开发者真实现状:半数只懂皮毛; 数据分析师吃香; Java/Python或成为主流开发语言

波音737连续坠毁,AI要背锅?

人人之间“不简单”,关系图谱“有一套”

☞ 没有一个人,能躲过程序员的诱惑!

System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

喜欢就点击“好看”吧!

Google 又逆天:语音输入离线实时输出文字,仅占 80 MB !然而……相关推荐

  1. Google又逆天:语音输入离线实时输出文字,仅占80MB!然而……

    4 月 13 日-4 月 14 日,CSDN 将在北京主办"Python 开发者日( 2019 )",汇聚十余位来自阿里巴巴.IBM.英伟达等国内外一线科技公司的Python 技术 ...

  2. 微信小程序将语音输入转化成文字

    微信同声传译 微信同声传译插件是微信自研的语音输入,文本翻译等功能的插件封装,用于提供给第三方小程序调用. 官网地址:微信小程序同声转译 1.先在 app.json 里面进行配置 在与 pages t ...

  3. python语音输入转化成文字_利用百度语音识别接口将语音转换成文字教程

    importbase64importjsonimportosimporttimeimportshutilimportrequestsclassBaiduVoiceToTxt():#初始化函数 def ...

  4. 让你的输入框使用Google云语音输入技术

    2019独角兽企业重金招聘Python工程师标准>>> 只需一行代码,你的网站上面输入框(input),直接可以在谷歌浏览器(chrome)上面使用Google的云语音输入技术. 在 ...

  5. 微信小程序的语音输入功能开发:微信同声传译插件

    微信小程序的语音输入,语音转文字功能在很多场景要使用到 比如搜索框,搜索关键字的时候用语音输入比用文字方便多了 再比如再天下网吧小程序里发帖,发布回复时,用语音输入比输入文字也方便不少 那么如何实现语 ...

  6. android手机设置中的语音输入与输出

    android手机设置中的语音输入与输出: 设置--语音输入与输出--文字转语音设置--安装语音数据库 在电子市场下载安装,安装成功后,将键盘改为Android键盘,就会看到一个麦克风一样的图标,点击 ...

  7. android语音输入文字,盘点好用的语音输入APP,懒得打字的时候就说话吧!

    原标题:盘点好用的语音输入APP,懒得打字的时候就说话吧! 本文为「智活范」原创作品,欢迎关注我们! 上次推完好用的录音APP后,立刻就有萌友来问了,能不能直接录音转文字呢,这样说话就能生成文字,多省 ...

  8. 【效率神器】电脑上实现语音输入文字

    标签:[效率神器]PC端语音输入文字,电脑端语音输入文字,如何轻松在电脑上实现语音输入 有时候电脑端打文字还是比较麻烦的,用语音转成文字输入还是比较简单的,而且速度快.那么电脑端怎么通过语音输入了?这 ...

  9. 用计算机输入文字语音播放出来,Win10如何实现电脑语音输入?Win10使用搜狗输入法语音输入文字的方法...

    http://www.xitongzhijia.net/xtjc/windows10/ 不知道大家知不知道,电脑是支持语音输入文字的,每当打字打累的时候,或者不想打字的时候,我们就可以进行电脑语音输入 ...

最新文章

  1. sql 与linq的转换
  2. Android Studio(16)---工程相关解析(各种文件,资源访问)
  3. [开源]430驱动的12864图形点阵LCD
  4. java并发编程(二)synchronized
  5. 【转】HEIF图片存储格式探秘
  6. CuteFtp通用注册码
  7. 文件转换swf/flv
  8. 勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。 已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。 求满足这个条件的不同直角三角形的个数。
  9. OD常规使用方法总结
  10. 常用Pandas读取excel(或txt)部分行列并输出
  11. mac 菜单栏图标删除_您可以在Mac菜单栏上显示的所有内置图标(可能)
  12. 传奇从这里诞生--JAVA的N个十
  13. 【调剂】广东医科大学黄遵楠教授课题组招药学专业学术型或专业型调剂硕士生(多人)...
  14. 光E电怎样让理财收益最大化
  15. 中文句法分析及LTP使用
  16. WPF 给文本框TextBlock以及密码框PassWord加背景水印实现用户登录提示
  17. python文件打包成可执行文件pyinstaller -F ***.pt
  18. 智算时代,浪潮为什么能够领跑?
  19. linux脚本编写计算器,Shell中编写简单计算器
  20. JavaScript int转string string转int

热门文章

  1. linux远程连接telnet命令,Linux中的ssh,ping,ftp,telnet远程登录及通信相关的命令...
  2. c和python的区别动图_Python和C区别该如何理解?如何适应这种区别?
  3. leetcode python3 简单题219. Contains Duplicate II
  4. freenas共享指定网络密码不正确_FreeNas系统安装贴心教程(附常见问题解决方案)...
  5. ubuntu 安装 mono报错 E: Unable to correct problems, you have held broken packages.
  6. 【OpenCV】边缘检测
  7. C++传入任意的函数类型作为参数
  8. 2021-2025年中国制药废物处理与管理行业市场供需与战略研究报告
  9. GitHub停用俄罗斯公司开发者账号
  10. 探秘HDR:西瓜、抖音是如何做到让视频的画质堪比影院大片的?