ASR项目实战-项目交付历程
本文记录,作为项目主要负责人,完整参与语音识别项目的交付历程。
2019年12月中旬
接到项目交付任务,收集基本知识,启动业务分析工作。
2020年1月
完成竞品分析的整理。
梳理合作伙伴的清单,整理项目计划,启动和各合作伙伴的沟通工作。
启动架构方案、设计方案的准备工作。
2020年2月
和合作伙伴A谈好合作方案,基于云云对接的方式,启动项目交付工作。
架构设计、方案设计(文件转写)完成文档的输出和评审。
月底,支持短文件转写(即时长在60秒以内的语音文件)的服务,在生产环境顺利上线。
按照部门要求,后续按照月度版本的方式组织交付,即月初启动交付,月底完成版本发布和生产环境的变更。
本月版本交付的内容:
- 短文件转写(即时长在60秒以内的语音文件)的服务。
- 支持中文的识别。
2020年3月
基于云云对接的方式,支持长文件转写(即时长大于60秒,小于5小时的语音文件)的服务,在生产环境顺利上线。
端侧SDK的第一个版本,完成功能联调。
为支持端侧SDK的瘦身方案,本月启动了一个调测版本的开发工作。
本月版本交付的内容:
- 支持长文件转写(即时长大于60秒,小于5小时的语音文件)的服务。
- 输出运维数据。
2020年4月
支持端侧SDK的瘦身方案的版本,本月月底完成开发和交付,并在生产环境顺利上线。
基于集成模型的方式,在生产环境顺利上线如下服务:
- 支持短文件转写(即时长在60秒以内的语音文件)的服务。
- 支持实时语音识别(即时长在60秒以内的语音文件)的服务。
本月版本交付的内容:
- 短文件转写(即时长在60秒以内的语音文件)的服务。
- 实时语音识别的服务,支持时长在60秒以内。
- 支持中文、英语的识别。
- 集成业务运维系统。
- 集成客户支撑系统。
- 构建业务流量控制方案。
- 完善运维数据。
2020年5月
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 扩充语种,增加对法语的支持。
- 完善前处理阶段:
- 支持重采样。
- 支持多种音频格式,PCM、AAC、AMR。
- 新增后处理阶段:
- 支持数字格式归一化,支持中文、英语。
- 支持标点符号,基于静音时长的规则。
- 支持大小写,基于规则。
- 完善运维数据。
2020年6月
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 完善后处理阶段:
- 数字格式归一化,完善中文、英语对特定领域比如计算机、物理等词汇的支持。
- 完善短文件转写服务:
- 增加文本的时间偏移的特性。
- 支持基于URL的方式,加载语音数据文件。
2020年7月
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 完善后处理阶段:
- 数字格式归一化,增加法语的支持。
- 完善运维能力,把一些复杂的配置项,通过运维系统来管理。
基于云云对接的方案,和合作伙伴B启动集成工作。
由于组织架构调整,项目人力有比较重大的调整,开发团队中的骨干开发人员离开项目,我变成了光标司令。
还好算法团队、测试团队仍然完整,并且战斗力很强。
2020年8月
基于集成模型的方式,在生产环境顺利上线如下服务:
- 支持长文件转写(即时长在60秒以上,5小时以内的语音文件)的服务。
- 支持实时语音识别(即时长在60秒以上,5小时以内的语音文件)的服务。
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 长文件转写服务。
- 实时语音长时间识别服务。
- 完善后处理:
- 基于机器学习模型的方式支持标点符号特性。
- 基于机器学习模型的方式支持大小写特性。
- 基于合作伙伴B的能力,支持实时语音识别(时长小于60秒),支持4个小语种。
2020年9月
本版本的交付内容,合并至10月版本一并上线。
2020年10月
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 例行标点符号的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 例行更新大小写的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 完善文本时间偏移的实现,解决各种场景下不准确、不对齐的问题。
- 完善系统的可靠性,解决各种奇怪的内存、死锁类的问题。
- 完善运维系统。
- 并发路数的分配和管理。
- 使用逻辑集群的方式支持现有的4款产品,各产品支持独立扩容。
- 优化文件转写的效率,降低端到端处理时延。
2020年11月
本月版本交付的内容:
- 例行更新语音识别的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 例行标点符号的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 例行更新大小写的模型:
- 更新中文的模型。
- 更新英语的模型。
- 更新法语的模型。
- 完善系统的可靠性,解决时序不对齐导致的底层识别会话无法释放的问题。
2020年12月
本月版本交付的内容:
- 扩充语种,支持西班牙语。
- 集成语音识别的模型。
- 集成标点符号的模型。
- 集成大小写的模型。
- 增加数字归一化。
- 完善前处理阶段:
- 扩充支持音频格式,增加speex。
启动项目交接,语音识别的项目进入维护状态。
2021年1月
正式离开项目。
总结
前期需求交付的路标规划不完整,因此对于人力的诉求,没有明确的估计,导致项目整个交付过程中,受限于人力,进度压力很大,加班很多,项目成员均有怨言。这是后续独立负责项目交付时的一个比较大的改进点。
ASR项目实战-项目交付历程的更多相关文章
- 前端开发工程师 - 06.Mini项目实战 - 项目简介
第6章--Mini项目实战 项目简介 Mini项目简介-Ego社区开发 回顾: 页面制作 页面架构 JavaScript程序设计 DOM编程艺术 产品前端架构 实践课Mini项目--Ego: 主题:漫 ...
- 彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-项目入口与路由EP01
书接上回,我们已经安装好Iris框架,并且构建好了Iris项目,同时配置了fresh自动监控项目的实时编译,万事俱备,只欠东风,彩虹女神蓄势待发.现在我们来看看Iris的基础功能,如何编写项目入口文件 ...
- Ant Design Vue Pro 项目实战-项目初始化(一)
写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...
- ASP.NET Core 系列视频完结,新项目实战课程发布。
今天把MVC的章节完成了,给大家从头到尾做了一个登录注册的示例,带前后端Model验证,算是完整的示例.同时借助于eShopOnContainers的示例也做了一个DBContextSeed的包装器来 ...
- Asp.Net Core 2.0 项目实战(9) 日志记录,基于Nlog或Microsoft.Extensions.Logging的实现及调用实例
本文目录 1. Net下日志记录 2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案
本文目录1. Net下日志记录2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 2.4 日志 ...
- selenium(12)-web UI自动化项目实战(PO模式,代码封装)
web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...
- 云计算Docker全面项目实战(Maven+Jenkins、日志管理ELK、WordPress博客镜像)
2013年,云计算领域从此多了一个名词“Docker”.以轻量著称,更好的去解决应用打包和部署.之前我们一直在构建Iaas,但通过Iaas去实现统一功 能还是相当复杂得,并且维护复杂.将特殊性封装到 ...
- 如何用ABP框架快速完成项目(面向项目交付编程面向客户编程篇)(1) - 目录
昨天发表了<如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor>后,大家十分热情,几个小时内就收到了不少问题,包括: 对于ui自动化测试这方 ...
- Python+Django+ansible playbook自动化运维项目实战☝☝☝
Python+Django+ansible playbook自动化运维项目实战☝☝☝ 一.入门引导 DevOPSDevOps(英文Development和Operations的组合)是一组过程.方法 ...
随机推荐
- windows10 jdk下载及环境配置
一.环境准备 windows10 系统 jdk 各种版本(配置大同小异) 二.下载并安装jdk 下载地址:http://www.oracle.com/technetwork/java/javase/ ...
- Three.js中实现对InstanceMesh的碰撞检测
1. 概述 之前的文章提到,在Three.js中使用InstanceMesh来实现性能优化,可以实现单个Mesh的拾取功能 那,能不能实现碰撞检测呢?肯定是可以的,不过Three.js中并没有直接的A ...
- Solution -「营业」「ABC 170D」Not Divisible
Description Link. 给出一个长度为 \(n\) 的序列 \(a\),求 \(\sum_{i=1}^{n}[\forall j\in[1,i)\cup(i,n],a_{j}\nmid a ...
- Python3中的printable
import string characters = string.printable # printable 是用作字符串常量的预初始化字符串.里面包含所有的标点符号,数字 print(charac ...
- 一次考试的T3
啊这感觉不太可做观察性质,发现这个字符串只由ABC构成这个性质必须利用仅仅由3种字符组成意味着什么呢?这个字符串只有种可能性这个有什么用呢?只是说明暴力枚举的时间复杂度会小一些而已.不止是这些. 首先 ...
- P4870 [BalticOI 2009 Day1]甲虫 题解
题目链接 简要题意 在一个数轴上有 \(n\) 滴露水,每滴露水初始水量为 \(m\),每秒会蒸发一滴水,一个甲虫初始在原点,速度为 1,水能瞬间喝完,问它最多能喝到几滴水. 题目分析 对于这种移动区 ...
- JavaScript 语法:流程控制语句
作者:WangMin 格言:努力做好自己喜欢的每一件事 JavaScript流程控制语句的三种基本结构:顺序结构,选择结构,循环结构 顺序结构 从上到下执行的代码就是顺序结构,程序默认就是由上到下顺序 ...
- Spring 缓存注解这样用,太香了!
作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 @Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位. S ...
- Log4j入门使用
前言 本篇文章主要在于,初步了解log4j,以及对它的简单使用 欢迎点赞 收藏 留言评论 私信必回哟 博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 @ 目录 一,log4j简介 二,配 ...
- 普冉PY32系列(十二) 基于PY32F002A的6+1通道遥控小车III - 驱动篇
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...