谷歌的语音识别利器,最先造福了自己的员工

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

By 超神经


场景描述:近日 Google Brain 团队对外发布了 Parrotron 项目,帮助人和设备更准确地理解具有语音障碍的人。Parrotron  从音频分析入手,从语音信号的角度来解决问题。它通过单个端到端深度神经网络训练,将来自语音障碍人士的语音,直接转换为流利的合成语音,从而帮助他们解决交流上的问题。


关键词:构音障碍  深度神经网络   机器翻译



Dimitri Kanevsky,出生于 50 年代的俄罗斯,他的成长阶段经历了中苏冷战,但他仍然完成学业,并获得了数学博士学位。


他的求学、工作足迹从俄罗斯开始,辗转于以色列、德国,最终选择留在了美国,并成为了谷歌的研究科学家,专注于语音识别算法领域。


似乎是一个学霸精英的人生路径:受到良好的教育,获得美国绿卡、光鲜的工作、152 项美国科学技术专利,最后在硅谷登顶人生巅峰。


640?wx_fmt=jpeg


故事却远远没这么简单,Dimitri Kanevsky 并不是一个普通人。大多数人都难以想到,他还是听障人群中的一员。


Dimitri Kanevsky 在一岁时,因为药物导致了耳聋,但他的家庭依旧为他选择了正常的教育,他从小就开始学习读唇、发声,一直就读于普通学校。并在十几岁的时候,通过俄语发音的辅助,开始学习英语。


但在学习英语时,因为听力障碍、俄语发音差别等原因,他在语言交流上存在很大的障碍。他说出的语句比较模糊,常常是对方听不懂的表达。甚至连对自己的家人的口头关怀,都有可能无法递达。


简单来说,他说的英语大多数人很难直接听懂,为了解决自己的问题,也帮助更多和自己面临类似问题的人群,Dimitri Kanevsky 一直在攻克语音识别方向的课题。


640?wx_fmt=jpeg

有时只为完成一些普通的交流

Dimitri Kanevsky 需要借助语音转文字的工具


在医学上,这种说话不清楚的情况称为「构音障碍 dysarthria」。据统计,因为身体疾病而导致构音障碍的情形,在全世界多达一百万人。


构音障碍是由于神经病变,与言语有关的肌肉麻痹、收缩力减弱或运动不协调所致的言语障碍,通俗的说法是「口齿不清」。


比如中风,大脑麻痹,帕金森病,唐氏综合症, ALS(渐冻症)等诸多疾病,都会造成这一状况。


640?wx_fmt=jpeg

对方说了叽里咕噜的一堆

你听到的却是呜呜哇哇的一串杂音...


同样在谷歌,一位叫 Aubrie Lee 的品牌市场经理,被诊断出罕见的肌肉萎缩症(渐冻症),导致她长时间要在轮椅上度过。


全身肌肉的不断流失,也造成了她在交流上的困难。Aubrie 在听力和发音上都异常吃力,还因为无法微笑而常常被人误解。此外她还拥有多种口音,发音并不清晰,在对话时对方往往无法明白她的意思。


为了帮助 Dimitri Kanevsky 和 Aubrie Lee 这样的同伴,解决他们在语言上的难题,构音困难逐渐成了谷歌 AI 研究团队的一个科研方向。


关怀语言障碍者,谷歌推出突破性工具


几年前,Kanevsky 带着 30 年的语音识别经验,加入谷歌的 AI 研究组,那时还没有能让他和其他人正常沟通的便捷工具。每次开会, Kanevsky 都需要提前预定 CART 服务,依赖字幕员进入到会议中,将语音信息敲到屏幕上进行对话。


同样的,Aubrie 和自己同事们,也都需要花费很大的力气,才能完成常人轻松胜任的工作交流。但这种窘境,正在慢慢地成为历史。


2019 年 2 月,谷歌推出了一款 App——Live Transcribe ,为便携式的语言转化带来了曙光。它是一款即时转录真实世界语音的应用程序,使用手机自带的麦克风,即可将语音转换为实时显示的文字。


随后,在 5 月份的谷歌 I/O 大会上, Project Euphoria  被提出,这个计划为 ALS 导致的语言受损人群,提供一套语音到文字的解决方案。


640?wx_fmt=jpeg

Project Euphoria 中

谷歌训练 AI 模型以适应语言障碍


在这个月,谷歌推出了一款新的 AI 工具 Parrotron,能够直接将模糊的声音,转化成标准的合成音。这将解决语言障碍的技术又往前推进了一步。


Parrotron 由端到端的深度神经网络组成,从音频分析的角度入手,在使用时,测试者对着手机等设备说话,就能快速的得到转述后的标准发音。


在论文《Parrotron: An End-to-End Speech-to-Speech Conversion Model and its Applications to Hearing-Impaired Speech and Speech Separation》中,Parrotrn 表现优异,语音识别和转化的正确率都有了新的突破。


论文地址:https://arxiv.org/abs/1904.04169


Parrotron:将模糊话语,翻译成清晰的语音


那这项看起来黑科技满满的技术,究竟是怎么做到的呢?


Parrotron 是一个端到端的序列到序列模型,使用输入/输出语音对的并行语料库训练,建立了模糊音与正常语句之间的映射。

640?wx_fmt=png

Parrotron 的结构流程示意图


网络模型由注意力机制的编码器和解码器组成,最后由声码器合成时域波形,提供预测出的音频信号。


编码器将声学帧序列转换为隐藏的特征表示,解码器将解析出表示以预测出频谱图。


操作上分为两个步骤:首先,为标准流畅的音频构建语音到语音转换模型,然后调整模型参数将模糊语音作为输入,让模型学会分辨和识别。


640?wx_fmt=jpeg

Kanevsky 和另一员工使用 Parrotron


为了模拟 ALS 患者的语音特征,他们使用来自 Project Euphonia 的 ALS 语音语料库,通过合成语言的方式制造模糊的语句,作为训练数据。


而对特定的个人,就由本人提供录制的素材。


在经过训练后,转换模型能够排除语言中的干扰因素,比如重音、韵律和背景噪音等影响;同时忽略掉所有非语言信息的干扰,包括说话者特征,环境因素,说话方式,仅分析和处理谈话的内容。


Parrontron 前两位测试者:毫无悬念


要验证 Parrotron 的实际效果,自然还要看它在实践中的表现。而测试的最佳人选,毫无疑问落到了 Dimitri Kanevsky 和 Aubrie Lee 身上。


在实验中,Dimitri 录制了一个 15 小时长的语料库,让模型学习他讲话时的细微之处。通过学习,模型在最后的翻译中,在测试集里的翻译错误率,从开始的 89% 降低到了 32% 。


换句话说,使用 Parrotron 转录的语音,对方或者 ASR (语音识别)系统能够轻松的听懂他了。


Kanevsky 使用 Parrotron 的详情


随后, Aubrie Lee 也进行了测试,通过她贡献的 1.5 小时讲话内容,模型翻译出的准确的语音,也让她实现了清楚表达的愿望。


 AI for Social Good:人工智能的使命


人工智能打造的无障碍项目,在最近几年被频繁地提出。许多极具关怀的技术纷纷出现,在努力帮助残障人士打开新奇的大门。


当然,技术在服务这些人的同时,也被这些特别的群体所推动。比如 Dimitri Kanevsky,因为深知构音障碍带来的困境,他一直致力于语音辨识和通讯研究的研究工作。而 Aubrie Lee 则用热烈而蓬勃的生活态度,鼓舞和督促着更多对残障人群的研究投入。


640?wx_fmt=jpeg

Aubrie 还是跨学科艺术家、设计师

活跃在多个为残疾人权益斗争的平台上


虽然目前的数据显示,情况还并不乐观:在全球所有的残障人士中,只有十分之一的人,获得了相应的技术工具。但所幸的是,随着一些喜人的进步,很多情况都在发生改变。


作为科技大厂的谷歌,还在实施他们「AI for social good」的计划,而诸如 Parrotron 之类的工具,大概就是朝着美好愿景踏进的脚印。


在人工智能技术风靡世界的当下,我们看到了 AI 对艺术的改造和创造力,对社会生活的积极推动,但也看到了有人利用 AI 恶意换脸、拼接、无中生有。


希望 AI 能回归科学的初心,帮助更多需要帮助的人,Make the world a better place!


—— 完 ——


640?wx_fmt=jpeg

640?wx_fmt=jpeg

扫描二维码,加入讨论群

获得优质数据集

回复「进群」自动入群

更多精彩内容(点击图片阅读)

640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg 640?wx_fmt=jpeg


Google,微软,科大讯飞的语音识别引擎对比 —Google提供了一个在线语音识别的API接口,通过该API可以进行中文、英文等语言的识别。  API地址:http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=1 —参数解释  xjerr:错误标准  client: 客户端类型  lang:待识别语言类型 阅读详情

相关推荐

chrome文字转语音(tts)

文章目录一、文章参考二、TTS (Text-To-Speech) 是文本转语音2.1 概念2.2 windows 操作系统2.3 验证是否有Windows TTS(语音转文本)三、chrome 文字转语音3.1 Web Speech相关的API实际上有两类3.2 语音合成Speech Synthesis API3.2.1 SpeechSynthesisUtterance对象,主要用来构建语音合成实例3.2.1.1 属性3.2.1.2 回调函数3.2.2 speechSynthesis对象,主要作用是触发行为

黄彪博客 8681

speech separation

人类很神奇,在嘈杂的环境中,人类可以只专注于听其中一种声音,这就是鸡尾酒会效应。Speech Separation要做的事情就是,机器跟人一样,把它想要得到的声音从嘈杂的环境抽取出来。本文将讲述Speech Separation的算法。

博学 笃志 切问 近思 3146

使用Google语音识别引擎进行语音识别的示例代码

这是一个简单的使用Google语音识别引擎进行语音识别的示例代码。你可以根据自己的需求进行修改和扩展。以下是一个使用Google语音识别引擎进行语音识别的示例代码。你可以使用这段代码来将音频文件转换为文本。库,它提供了与各种语音识别引擎的接口,包括Google语音识别引擎。函数并传入音频文件的路径来获取音频文件的转录文本。如果无法连接到Google语音识别引擎,将会抛出。参数为’zh-CN’以指定识别的语言为中文。接下来,你需要导入所需的库并创建一个。替换为实际的音频文件路径。对象打开音频文件,并使用。

ZrElixir的博客 784

Parrotron: 提升语言障碍人士口头交际能力的新研究

文 /Fadi Biadsy 与 Ron Weiss大多数人都会想当然地认为,他人能够听到和理解自己说出的话语,但是仍有数百万人因身体或神经系统疾病等问题而遭受语言障...

谷歌开发者 732

Tripsis.SpeechMap:利用Chrome语音API实现智能语音地图导航

本文还有配套的精品资源,点击获取 简介:Tripsis.SpeechMap是一个创新的语音控制地图导航应用,它利用Chrome浏览器的语音识别功能来实现用户与地图的自然语言交互。该应用支持基本的导航指令,如方向控制、缩放调整和目的地搜索,并通过JavaScript和Web Speech API为用户提供直观的交互体验。用户可以简单地发出语音指令来浏览和导航地图,而无需手动操...

weixin_42451850的博客 1516

google自带的语音识别软件

google自带的语音识别软件,国内手机一般不去掉voice_search,使用Google自带语音识别的话,需要安装该apk。

如何下载适用于语音识别功能增强的Google Chrome浏览器

许多用户需要在浏览器中使用语音识别功能,而谷歌浏览器支持多种增强的语音识别工具。本篇文章将指导如何下载并启用这些功能,以便在日常浏览和工作中提高效率。

weixin_43772292的博客 1089

Google语音识别

Google语音识别

【神经回顾】这周发生过了什么?

By 超神经在本周发布内容里,超神经进行了哪些报道?是否给你带来了别样的触动?我们将做一个简单的盘点,通过对本周的信息回顾,审视在超神经的努力下,给你们带来了什么。最近来...

HyperAI超神经 322

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

jetson orin nano 使用cuPCL

jetson开发板上使用pcl时,正常使用的是cpu,拖慢了整体的效率。cuPCL有一些库用于使用CUDA处理点云。

weixin_42256401的博客 1020

Google 语音黑科技:ASR 与 TTS 模型的超强能力揭秘

Google 在语音识别(ASR,Automatic Speech Recognition)和语音合成(TTS,Text-to-Speech)领域一直处于技术前沿,推出了多个先进的模型和工具。MediaPipe 是 Google 提供的一个多媒体处理框架,其中包含语音识别和语音合成的相关模块。RNN-T 是 Google 提出的一种高效的语音识别模型,广泛应用于其语音产品中。这是 Google 提供的商业化语音合成服务,支持高质量的语音生成。

携梦问道的博客 3677

从零开始:TexLive(Latex)安装与配置全指南

本文提供了一份详尽的TexLive(Latex)安装与配置全指南,旨在帮助用户从零开始快速搭建LaTeX工作环境。内容涵盖从镜像下载、安装步骤详解、环境验证到高效编辑器(如VS Code)配置,并特别强调了中文排版支持与宏包管理,确保用户能顺利处理学术论文等专业文档的排版需求。

weixin_29284885的博客 905

Direct speech-to-speech translation with a sequence-to-sequence model

本篇详细介绍了Google Translate的新技术,从音频直接翻译音频。这个模型叫做S2ST(speech-to-speech translation)。原理是通过一个语音的声谱图映射到另一种语音的声谱图。 Abstract 我们提出了一种基于注意力的序列到序列神经网络,它可以直接将一种语言的语音转换成另一种语言的语音,而不依赖于中间文本表示。该网络经过端到端的训练,学习将语音谱图映射成另...

gdtop的个人笔记 4043

用LT1166+MOS管打造实验室级恒流源:闭环反馈与推挽驱动的深度调优

本文详细介绍了基于LT1166电流模式控制器与MOS管推挽架构的实验室级恒流源设计方法。通过闭环反馈调优和动态响应优化,实现带宽达100kHz、纹波低于0.1%的高性能恒流输出,适用于精密仪器校准和半导体测试等场景。重点解析了系统架构设计、MOS管选型策略以及频率响应测试等关键技术要点。

weixin_29290379的博客 208

Concentration Inequality(集中不等式)更新版

欢迎来我博客 https://wyue.name/2020/04/17/1/阅读这一篇博文 转载前请联系我,联系方式请见我博客 https://wyue.name/ Concentration inequality 刻画了一组随机变量的和(或者样本平均数)与其期望值的偏离程度,在算法收敛性分析过程中是非常有用的一类不等式。 这次主要总结一下最近一段时间遇到的集中不等式,不仅是不等式形式,...

Yue的博客 4555

深度学习系列(三)【人类语言处理--语音转换】

文章目录引言算法 引言   语音转换Voice Conversion (VC),是希望转换音色,在神经网络中描述就是输入一段声音讯号,输出一段声音讯号,但是音色已经发生了改变(内容一样)。 Samples for “Unsupervised Singing Voice Conversion” https://enk100.github.io/Unsupervised_Singing_Voice_Conversion/ https://tencent-ailab.github.io/pitch-

小小何先生的学习之旅 5283

cJSON库用完后内存泄漏?手把手教你正确使用cJSON_Delete和free释放资源

本文深入解析cJSON库的内存管理机制,重点解决使用后的内存泄漏问题。通过详细讲解cJSON_Delete和free的正确使用方法,帮助开发者在处理JSON数据时有效释放资源,避免内存泄漏。特别适用于嵌入式系统和资源受限环境,提升开发效率和系统稳定性。

weixin_30808693的博客 421

谷歌语音识别_谷歌 语音识别 语种 - 云+社区 - 腾讯云

广告关闭腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元!提升语音识别的端到端模型在谷歌各式各样的语音搜索应用中,都是基于传统的自动语音识别(automatic speech recognition, asr)系统实现的。 传统的 asr系统由声学模型(acoustic model, am)、发音模型(pronunciation model,...

q6q6q的专栏 1073

【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化

在嵌入式设备、专用服务器和物联网系统日益普及的今天,如何让Linux系统在资源受限的环境中高效运行成为开发者必须面对的问题。Linux内核裁剪正是解决这一问题的关键技术,它通过移除不必要的内核组件,打造出更精简、更安全、更高效的自定义操作系统。本文将系统全面地介绍Linux内核裁剪的完整流程和实用技巧,帮助您掌握这一核心技能。Linux内核裁剪是一项结合技术知识与实践经验的系统工程。明确需求:裁剪前必须清晰了解目标系统的硬件配置和功能需求。循序渐进:采取小步修改、反复测试的策略,避免一次性大幅修改。

撬动未来的支点的专栏 1391

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

google sdk speech-to-text(谷歌语音转文本、谷歌语音转字幕)

google sdk speech-to-text 同步识别(REST 和 gRPC)将音频数据发送到 Speech-to-Text API,对该数据执行识别,并在所有音频处理完毕后返回结果。同步识别请求仅限于持续时间不超过 1 分钟的音频数据。 异步识别(REST 和 gRPC)将音频数据发送到 Speech-to-Text API 并启动长时间运行的操作。使用此操作,您可以定期轮询识别...

大数据技术分享 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

如何在谷歌浏览器中启用语音搜索

想象一下,你正在拥挤的地铁上,双手都拿着沉重的购物袋,突然你想搜索附近的咖啡馆。接下来,我将一步步教你如何在谷歌浏览器中启用并使用语音搜索功能,帮助你的生活更便捷、更智能。打开谷歌浏览器,点击右上角的三个点图标,选择“帮助”,然后选择“关于谷歌浏览器”。:一旦语音搜索功能被启用,当你访问支持语音搜索的网站时(如Google首页),你会在地址栏右侧看到一个麦克风图标。:谷歌会将你的语音转换成文字并显示在搜索框中,随后展示相关的搜索结果。:尽量在安静的环境中使用语音搜索功能,以确保语音识别的准确性。

weixin_43772292的博客 1856

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

chrome SpeechRecognition API

1、首先要注意 会调用  MediaDevices.getUserMedia 获取权限 也就是说必须在https下 或则  localhost下。 2、recognition.lang 设置语言 通过  speechSynthesis.getVoices() 获得所支持的语言列表, 3、识别率较高,成本低 4、目前兼容性并不高,虽然2012年推出的规范,但目前只有部分浏览器支持。  ...

点滴 2622

chrome麦克风权限_如何在Chrome扩展程序中处理麦克风输入权限和语音识别

chrome麦克风权限by Palash Taneja 由Palash Taneja 如何在Chrome扩展程序中处理麦克风输入权限和语音识别 (How to handle mic input permissions and speech recognition in Chrome extensions) This tutorial assumes that you have a basic ...

cumi7754的博客 4827
上一篇: 类脑计算这么热,不如上了这趟车
下一篇: 逼疯一个程序员有多简单?
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值