自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jackie的家

小猪快跑

  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 LeetCode第779题 - 第K个语法符号

题目解答方案一:直接递归class Solution { public String kthGrammarNK(int N, int K) { if (N == 0) { return ""; } if (N == 1) { return "0"; } String v = kthGrammarNK(N - 1, K); StringBuilder

2021-02-27 23:39:45 201

原创 LeetCode第563题 - 二叉树的坡度

题目解答方案一class Solution { public int gradient(TreeNode node) { if (node == null) { return 0; } int left = total(node.left); int right = total(node.right); return Math.abs(left - right) + gradient(n

2021-02-27 21:36:56 153

原创 LeetCode第938题 - 二叉搜索树的范围和

题目解答方案一:递归class Solution { private int sum = 0; public void inorder(TreeNode node, int low, int high) { if (node == null) { return; } inorder(node.left, low, high); if (node.val >= low &&

2021-02-27 21:35:08 98

原创 LeetCode第17题 - 电话号码的字母组合

题目解答class Solution { public List<String> letterCombinations(char[] chars, int pos, Map<Character, String> mappings) { if (pos > chars.length - 1) { return Collections.emptyList(); } char value = cha

2021-02-27 21:32:39 97

原创 ASR项目实战-任务队列在文件转写特性中的应用

转写时长超出60秒的语音文件,业界的竞品通常会使用创建异步转写任务的方式来提供支持。一个简单、直接的实现方案,即:网关服务接收到来自客户的转写请求时,将任务信息持久化至任务队列中。由算法服务的实例从任务队列中提取任务,并执行转写操作。待执行完毕之后,将转写结果保存至DB中,供调用方查询。本文主要针对介绍任务队列的要求和选型。在语音识别的文件转写的场景下,对于任务队列的常规诉求:允许多个生产服务向队列中增加任务。允许多个消费服务从队列中提取任务。任务队列自身具备可靠性,避免自身成为影响

2021-02-11 15:46:54 434 2

原创 ASR项目实战-项目交付历程

ASR项目实战-项目交付历程本文记录,作为项目主要负责人,完整参与语音识别项目的交付历程。2019年12月中旬接到项目交付任务,收集基本知识,启动业务分析工作。2020年1月完成竞品分析的整理。梳理合作伙伴的清单,整理项目计划,启动和各合作伙伴的沟通工作。启动架构方案、设计方案的准备工作。2020年2月和合作伙伴A谈好合作方案,基于云云对接的方式,启动项目交付工作。架构设计、方案设计(文件转写)完成文档的输出和评审。月底,支持短文件转写(即时长在60秒以内的语音文件)的服务,在生产环境

2021-02-11 11:26:07 615 3

原创 ASR项目实战-数据

使用机器学习方法来训练模型,使用训练得到的模型来预测语音数据,进而得到识别的结果文本,这是实现语音识别产品的一般思路。本文着重介绍通用语音识别产品对于数据的诉求。对数据的要求训练集相关要求,如下:地域,需要覆盖使用人群所在的地域,且数据的比例适中。口音,需要覆盖典型的口音。年龄,从18~60,覆盖各年龄段,且数据的比例适中。很多国家对未成年人有非常严格的保护措施,因此收集未成年人的数据比较困难。未成年男性的声音和青年女性的声音,从生理角度存在一定的相似度,这给质量控制增加了复杂度和相应

2021-02-09 23:40:16 1158 2

原创 ASR项目实战-语音识别

本文深入探讨语音识别处理环节。本阶段的重点特性为语音识别、VAD、热词、文本的时间偏移、讲话人的识别等。语音识别业界流派众多,比如Kaldi、端到端等,具体选择哪一种,需要综合考虑人员能力、训练数据量和质量、硬件设施、交付周期等,作出相对合理的交付规划。基于Kaldi的方案,优点在于其发挥稳定,缺点是使用难度比较高,学习曲线比较陡峭,具备使用经验的算法工程师相对比较稀缺。端到端方案,业界主要基于Google在17年左右发布的文章作为研究、试验的输入,使用Tensorflow或者Pytorch作为训

2021-02-09 23:07:13 2368

原创 ASR项目实战-后处理

在本环节要处理的重要特性有分词、断句、标点符号、大小写、数字等的格式归一等。分词和NLP、搜索等场景下的分词含义不同。对于拼音类的语言,比如英语、法语等,句子由多个单词组成,语音输出的结果,需要按需在各个单词之间补充或者去掉空格。对于中文来说,字和词之间不以空格作为边界,因此分词的意义不明显。断句狭义的语音识别只处理语音到文字的转换,由于语音数据中缺少一些明确的提示信息,因此语音识别的结果中欠缺断句的信息。对于用户使用语音识别的结果时,缺少断句的文本会降低阅读体验,增加理解的困难,同时限制了语音识别

2021-02-06 23:05:04 1169

原创 Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7时的解决方法

使用Maven管理项目时,遇到提示Missing artifact jdk.tools:jdk.tools:jar:1.7。但实际上Maven仓库里并没有这个依赖。解决的办法其实很简单。修改项目的pom.xml,在依赖中增加如下的部分。 <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId>

2021-02-06 17:54:24 870

原创 使用CMake管理C/C++项目

使用CMake管理C/C++项目使用make工具管理C++项目的构建时,使用makefile作为输入,makefile一般包括如下内容:编译前检查检查头文件检查方法检查基本类型检查库文件检查平台特性检查编译器版本检查编译器支持的选项检查链接器版本检查链接器支持的选项定义编译目标编译清理安装卸载生成文档…定义目标间依赖关系定义源文件搜索路径源文件清单定义头文件搜索路径头文件清单依赖的库文件搜索路径库文件的清单

2021-02-06 17:46:48 1044

原创 ASR项目实战-从源码开始构建Kaldi

ASR项目实战-从源码开始构建Kaldi准备工作安装构建时依赖的基础软件软件清单如下:bzip2python3automakelibtoolcmakegccg++gfortrangitsubversion不同平台安装软件的方式不同,比如可以使用yum或者apt-get等。下载开源软件软件清单如下:LibunwindglogOpenFSTOpenBLASKaldi按照一定的规则,将下载后的文件放在指定目录,如下是样例opensrc glog

2021-02-06 17:43:57 567

原创 ASR项目实战-决策点

ASR项目实战-决策点针对语音识别的产品,分别记录设计、开发过程中的决策点。实时语音识别对于实时语音识别来说,客户端和服务端之间实时交换语音数据和识别的结果。客户端在启动识别时,即开始发送语音数据,期望在等待较短的时间后,即收到最初的识别结果。第一段语音数据和第一个识别结果之间的时延,一般称为首字时延。客户端在停止识别后,期望在等待较短的时间后,即收到最终的识别结果。最后一段语音数据和最后一个识别结果之间的时延,一般称为尾字时延。决策点对开发者提供实时语音识别服务时,使用什么样的协议来传输数

2021-02-06 17:39:48 621

原创 ASR项目实战-方案设计

ASR项目实战-方案设计对于语音识别产品的实施方案,给出简易的业务流程,仅供参考。如下流程图,可以使用如下两个站点查看。CSDN的博客编辑器支持使用markdown来生成流程图,不过要花点时间,我比较懒,就不折腾了。web chartWeb Sequence Diagrams文件转写创建文件转写任务客户应用->接入网关: 发送创建文件转写的请求接入网关->安全网关: 转发请求安全网关->安全网关: 对请求进行鉴权安全网关->业务网关: 转发请求业务网关-&g

2021-02-06 17:38:29 667

原创 ASR项目实战-架构设计

ASR项目实战-架构设计一般而言,业务诉求作为架构设计的输入。需求清单对于语音识别产品而言,需满足的需求,举例如下:功能需求文件转写。长文件转写,时长大于60秒,小于X小时,X可以指定为5。短文件转写,时长小于60秒。实时语音识别。长语音识别,时长大于60秒,小于Y小时,Y可以指定为5。短语音识别,时长小于60秒。支持多个语种。其它功能需求,比如:前处理支持多种音频文件格式。支持多种采样率和位深。支持去回声和抗噪。支持在音频文件中处理多个声道。中间处

2021-02-06 17:35:25 1120

原创 ASR项目实战-交付团队的分工

ASR项目实战-交付团队的分工对于通常的软件项目,参与角色,比如可以有用户,消费者,产品团队,研发团队(研发团队包括开发和测试),运营团队,运维团队,管理团队。通常认为,用户,负责购买服务的群体,而消费者,负责使用业务的群体。这两个群体,不在本文的讨论范围之内,因此后续的介绍中,除非明确说明,否则默认均不涉及。产品团队,研发团队(研发团队包括开发和测试),运营团队,运维团队,管理团队,可以归纳为产品交付团队。关于各团队的简单的说明:产品团队,负责定义产品,规划路标,收集和定义需求的团队。研发团

2021-02-06 17:34:01 1355

原创 ASR项目实战-前处理

ASR项目实战-前处理本文深入探讨前处理环节。首先介绍一些基本的名词,比如文件名后缀文件格式音频格式采样率和位深预备知识文件名后缀、文件格式和音频格式常见的音频文件,比如.wav、.mp3、.m4a、.wma等,这些都代表什么?仅仅是这类音频文件的后缀而已,不一定和音频文件的编码、音频数据的编码相关。举例说明:比如.pcm比如.wav,一般保存的是带有wav规范文件头的,PCM格式的音频。比如.mp3,指的是保存Moving Picture Experts Group Au

2021-02-06 17:27:37 617

原创 ASR项目实战-产品分析

ASR项目实战-产品分析分析Google、讯飞、百度、阿里、QQ、搜狗等大厂的ASR服务,可以罗列出一款ASR服务所需要具备的能力。产品分类ASR云服务产品,从用户体验、时效性、音频时长,可以划分为如下几类:实时短音频转写,可以用于支撑输入法、搜索、导航等场景。实时长音频转写,可以用于支撑视频字幕、图文直播、会议直播等场景。文件短音频转写,或者一句话语音识别,可以用于支撑输入法、搜索、导航等场景。文件长音频转写,或者录音文件转写,可以用于支撑视频字幕、会议记录等场景。产品特性从特性上讲

2021-02-06 17:25:22 1496

Oracle Database Concepts 11gR2

Oracle 11gR2官方文档,介绍Oracle的基本名字,对于刚刚入门的Oracle用户,这本书非常有用

2013-01-02

Oracle Database Admin's Guide

Oracle11g官方的管理员文档,对于有志于学习Oracle的同学来说,这本书非常好

2013-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除