mesh

单麦克风远场语音降噪解决方案

你说的曾经没有我的故事 提交于 2020-07-27 12:20:59
一 前记 通常来说远场语音的作用距离是在1-10米之间,远场语音识别技术主要通过麦克风阵列向声源方位拾音。但是,在大多数的应用场景中,由于声源附近存在电视噪、音乐噪声、电话噪声以及墙壁等障碍物的存在,产生了多径反射、混响效应以及背景噪声等加大了远场语音信号的处理难度。尤其是说话人距离麦克风3米以上,这些干扰会明显影响远场麦克风的拾音效果。而且在远距离条件下,语音信号随距离增加幅值衰减严重。因此,如何对远场语音信号进行降噪,引起了许多开发研究人员的关注。 远场语音最早落地的应用是智能音箱,国内以阿里、百度等为代表推出了大众化产品,国外以亚马逊和谷歌为代表先于国内推出产品,值得一提的是亚马逊目前在智能音箱这块的研究做的最为完善,同时新一代的智能音箱集成有智能家居的控制HUB功能,大大拓宽了音箱的应用场景,阿里和百度目前借助国内的垄断地位也开始在智能家居领域开始布局,宣称在智能音箱中嵌入蓝牙MESH技术,前期通过补贴方式进行市场开拓和圈地。其他应用领域目前都在早期尝试阶段,比如教育机器人、汽车语音助手、白色智能家电、智能厨电等。 随着远场语音应用的领域越来越广泛,如何在远距离条件下获取较高质量的语音信号成为了越来越热门的研究。作为一家AIOT方案公司,我们也一直致力于远场语音信号的处理。我们的研究团队不仅熟知语音增强算法、语音处理芯片等软硬件条件;而且还在音频处理领域有着深厚的理论基础

蚂蚁金服在 Service Mesh 监控落地经验总结

我的未来我决定 提交于 2020-07-27 09:50:26
引言 Service Mesh 是目前社区最为炙手可热的技术方向,去年双11在蚂蚁金服得到全面的应用,并平稳顺滑的支撑了大促服务。作为目前规模最大的 Service Mesh 集群,本文从监控的领域对 Service Mesh 落地进行经验总结,主要从以下几方面进行介绍: 云原生监控,介绍蚂蚁金服 Metrics 监控的落地; 用户视角分析,介绍从应用 owner 的角度对这一基础服务设施的体验以及 SRE 从全站服务的稳定性对监控提出的要求; 未来的思考,介绍后续发展方向; 云原生监控 云原生应用的设计理念已经被越来越多的开发者接受与认可,今年蚂蚁金服应用服务全面云原生化,对我们监控服务提出更高的要求。目前 Metrics 指标监控服务也逐渐形成体系,如下图所示基于社区原生 Prometheus 采集方案在蚂蚁金服监控场景下落地。 怎么采集 蚂蚁金服监控采集 AGENT 是部署在物理机上,支持多个采集插件,如下图,包括执行命令、日志、HTTP 请求、动态 SQL 采集、系统指标采集、JVM 采集以及进程监控等,同时支持多个解析插件自定义解析、单行文本解析、Lua 脚本解析、JSON 解析以及 Prometheus 解析等。 在Service Mesh 监控落地中,业务方参考业界标准输出 Metrics 指标数据,监控采集该物理机不同 Pod、App 和 Sidecar 的各项指标

[工作积累] 大型世界的草渲染

北城以北 提交于 2020-07-27 09:07:25
最近工作在研究如何在大型世界的植被(主要是草)的渲染,主要考虑下面几个问题: 1.半自动化procedual生成,密度分布,画刷 2.受环境的的影响(风,角色等) 3.LOD和动态加载释放 由于睡觉后突发奇想,想到了一些idea,趁着没有忘记先记下来: 基本思路:billboard+instancing+分区域管理 1.自动生成一般根据地形的高度/坡度来选择和过滤,加上一些随机化方法 密度分布可以:每1x1 (1平方)用一个8位来保存密度,2048x2048的世界,最大需要4M数据。可以压缩存储。如果支持不同的类型,可以用4444,支持四种,最大8M数据。2048x2048这么大的地图,只有四种显然不够,可以分区域,每个区域有不同的palette。在分区域的情况下,很多区域是没有草的,不需要这些数据,那么预计runtime数据在2M~4M之间。 使用密度分布是为了减少保存的数据(数据包大小),否则每个草都保存位置,即便用uint8nx4数据量是原来的4N倍。 过程化生成的可能不是最好,需要美术手动修,用画刷。画刷实现不难,略。 2.环境影响:目前的目标平台,不考虑geometry shader,可以在vertexshader里面做顶点动画。草受环境的影响,unity asset store里有一个package,是用垂直向上的相机渲染displacement normal

闪电动画模拟(Dielectric Breakdown Model)附源码

爷,独闯天下 提交于 2020-07-27 08:53:07
  当两个物体之间存在较大的电势差时会出现放电现象,比如生活中常见的闪电现象,闪电形成的条件就是云层积累了大量负电荷之后与地面之间形成了强大的电势差。目前关于闪电建模的方法比较少,下面介绍一种利用电介击穿模型来模拟闪电的方法 , 电介击穿模型可以模拟自然界许多现象 , 该方法通过迭代求解 Laplace 方程 得到放电过程的中间状态。   初始电位结构如下图所示,首先在2维栅格正中心的单元放置一个负电荷Ф = 0(灰色),然后在其周围放置一圈正电荷Ф = 1(黑色),而其他栅格单元可以通过求解Laplace方程得到:   Laplace方程求解完之后,我们构建一个列表记录负电荷(Ф = 0)周围的栅格单元,并随机选取其中一个单元作为下一个被击穿的单元,被选中的栅格单元设置Ф = 0,同时把它作为下一步迭代计算时的边界条件。   相邻栅格单元被击穿的概率与其计算得到的电势相关,其概率如下: 式中i代表第i个与负电荷相邻的栅格单元,n代表与负电荷相邻的栅格单元个数,而η是一个用户设定的参数,通过实验表明η值可以控制电弧的分叉密度,当η = 1时,分叉密集,当η逐渐增大时,分叉密度慢慢减小。 图:不同结构的初始电位,其中灰色点代表负电荷Ф = 0,黑色点代表正电荷Ф = 1 图:初始电位为(b)结构时的模拟结果 左:η = 1,中:η = 2,右:η = 3 % Laplacian

Python mayavi库及mayavi管线

陌路散爱 提交于 2020-07-26 23:46:35
Mayavi库的基本元素 Mayavi库中主要有两大部分功能   一类是用于处理图形可视化和图形操作的mlab模块   一类是操作管线对象窗口对象的api mlab包含   绘图函数:实现已有的数据进行可视化显示,可以是numpy数组构建的,也可以是外部读取的,比如读取一个文件   图形控制函数:实质上是对mayavi中的figure进行控制,比如可以通过gcf获得当前视图的指针,也可以通过clf来清空当前图形,通过close关闭当前图形   图形修饰函数:对当前绘制的函数进行一定的修饰和装饰,比如说绘制完图形之后需要增加一个颜色标识栏   图形控制函数,其他函数和Mlab管线控制函数或者是对坐标轴增加相应的标签等,比如使用xlaber可以在x轴上增加相应的标签   相机控制函数:对相机的操作,比如说move函数来移动相机到某个位置上,使用pitch,roll,yaw函数控制相机进行旋转等   其他函数:     animate:生成一段动态的可视化效果     get_engine:获得当前管线的engine   Mlab管线控制:可以设置当前管线的数据源也可以为当前绘制管线增加数据集使用addataset等 Mayavi API   管线基础对象:可以通过这类函数获得Mayavi管线的各个基本对象   包括Scene,Source,Filter,ModuleManager

疫不容迟,值得关注的十大技术趋势(上)

谁说我不能喝 提交于 2020-07-26 23:28:44
2019 年,很多人会对“云原生”充满了疑惑甚至误解。这想必也是为何我们一直能够在不同场合听到关于云原生的各种不同定义的原因所在。有人说,云原生就是 Kubernetes 和容器;也有人说,云原生就是“弹性可扩展”;还有人说,云原生就是 Serverless;而后来,有人干脆做出判断:云原生本身就是“哈姆雷特”,因为每个人的理解都不一样。用友开发者大赛( https://2020.diwork.com/index.html )借赛事的举办对此进行了更为深入的研究和解读。 实际上,自从这个关键词被 CNCF 和 Kubernetes 技术生态“借用”之初, 云原生的意义和内涵就是非常确定的。在这个生态当中,云原生的本质是一系列最佳实践的结合;更详细的说,云原生为实践者指定了一条低心智负担的,能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径 。 所以说,云原生并不指代某个开源项目或者某种技术,它是一套指导软件与基础设施架构设计的思想。 这种思想,以一言以蔽之,就是“以应用为中心” 。正是因为以应用为中心,云原生技术体系才会无限强调让基础设施能更好的配合应用,以更高效的方式为应用“输送”基础设施能力,而不是反其道而行之。 而相应的,Kubernetes、Docker、Operator 等在云原生生态中起到关键作用的开源项目,就是让这种思想落地的技术手段。以应用为中心

Flannel网络模型

眉间皱痕 提交于 2020-07-25 04:27:45
Flannel 是 CoreOS 公司针对 Kubernetes 设计的一个基于CNI标准的网络工具, 其目在于帮助 Kuberentes 实现一个简单的3层网络。 常用网络术语 2层网络 OSI 网络模型中的数据链路层. 处理网络上两个相邻节点之间的帧传递. 以太网就工作在第2层, MAC地址表示为子层. 3层网络 OSI 网络模型中的网络层. 处理主机之间路由数据包. IPv4、IPv6、ICMP 工作在第3层. VXLAN VXLAN代表虚拟可扩展的LAN. VXLAN是一种封装和覆盖协议, 可在现有网络上运行. VXLAN虚拟化与VLAN类似, 但提供更大的灵活性和功能, VLAN只有4096个网络ID. VXLAN用于通过在UDP数据报中封装第2层以太网帧来实现大型网络部署. Overlay Overlay网络是建立在现有网络之上的虚拟逻辑网络. Overlay网络通常用于在现有网络之上提供有用的抽象, 并分离和保护不同的逻辑网络. 数据封装 数据封装是指在附加层中封装网络数据包以提供其他上下文和信息的过程. 在Overlay网络中, 数据封装被用于从虚拟网络转换到底层地址空间, 从而能路由到不同的位置. 网状网络(Mesh NetWork) 网状网络是指每个节点连接到许多其他节点以协作路由、并实现更大连接的网络. 网状网络允许通过多个路径进行路由, 从而提供更可靠的网络

three.js 制作属于自己的动态二维码

|▌冷眼眸甩不掉的悲伤 提交于 2020-07-24 17:10:44
今天郭先生说一下用canvas解析图片流,然后制作一个动态二维码的小案例,话不多说先上图,在线案例点击 博客原文 。这是郭先生的微信二维码哦! 1. 解析图片流 canvas = document.createElement('canvas'); // 创建canvas画布 content = canvas.getContext('2d'); // 获取画布的上下文 canvas.width = 310; // 设置尺寸 canvas.height = 310 ; img = new Image(); // 创建一张图片 img.src = require("../assets/images/base/wechat.png"); // 设置图片地址 img.onload = () => { // 在图片加载后 content.drawImage(img, 0, 0, canvas.width, canvas.height); // 将图片添加到画布,并设置宽高 imgData = content.getImageData(0, 0, canvas.width, canvas.height).data; // 获取画布数据 }; imgData是什么样的呢?如下图 这是一个Uint8ClampedArray的类型化数组,这个数组出现最多的也是在imgData上。它会将负数归入0

都已经十岁的 Apache Dubbo,还能再乘风破浪吗?

随声附和 提交于 2020-07-24 06:56:10
纵观中国开源历史,你真的没法找到第二个像 Dubbo 一样自带争议和讨论热度的开源项目。 一方面,2011 年,它的开源填补了当时生产环境使用的 RPC 框架的空白,一发布就被广泛采用;另一方面,它经历了停止维护、重启维护后捐献给 Apache 基金会、接着又以顶级项目的身份毕业。 面对多疑的开发者,在云原生时代,Apache Dubbo 将如何延续当前光芒? 今年是 Dubbo 从 Apache 基金会毕业的一周年,同时也是推进 Dubbo 3.0,即全面拥抱云原生的重要一年。开源中国与 Apaceh Dubbo 共同策划**【Dubbo 云原生之路】**系列文章,和大家一起回顾 Apache Dubbo 社区的发展。系列文章主要涵盖 Dubbo 技术解读、社区、应用案例解析三大部分,之后每周都会和大家见面。 在【阿里巴巴云原生公众号】留言说出与 Apache Dubbo 的故事 ,点赞排名前十的同学可领取 Dubbo 送出的专属奖品杯子一只;另外由Apache Dubbo PMC @Chickenlj 随机抽取一名幸运读者,赠送价值 260 元护眼灯一台。下周三开奖。 作者简介 刘军 ,花名陆龟,GitHub 账号 Chickenlj,Apache Dubbo PMC,项目核心开发,见证了 Dubbo 重启开源,到从 Apache 基金会毕业的整个过程

Fill matplotlib polygon with a gradient between vertices

孤人 提交于 2020-07-18 05:49:28
问题 I'm plotting a collection of polygons (triangles) using matplotlib's Poly3DCollection. The triangles are between vertices with a color associated with them. I'm currently filling each triangle with a solid color determined by averaging the colors of the three vertices. The triangles are plotted to form a 3D surface mesh. I would like to fill the triangle with a gradient between all three vertices. The pixel color at a given point would ideally just be linearly interpolated based on the