目录
- 序言
- 刚开始的1月
- 松懈的2月
- 忙碌的3月
- 迷茫的4月
- 开源项目的5月
- 入职汇报的6月
- 7月
- 8月
- 9月
- 假期过后的10月
- 至关重要的11月
- 最后冲刺的12月
- 2022年的总结
- 2023年的目标
- 往年回顾
序言
在刚刚过完的平安夜和圣诞节之际,同时意味着2022年要画上一个句号。这一周算是比较煎熬的几天,感觉深圳大部分的人都秒变小羊人,按下了暂停键。接着复盘下2022年的过往。 如果你自己不做规划,你就容易被他人规划。
刚开始的1月
-
2022年的1月份主要是针对过去一年的总结复盘,年底总结的文章 2021年终总结 : 聚焦发展,稳步突破。元旦假期去公司加班,主要是调试新项目的音频驱动。经过昨天写年度总结的思考,意识到项目中时间投入的记录分析越来越重要,通过Toggl分析可以意识到时间的投入比,这个系统是不断的迭代的。这里通过Gitee的记录方式增加任务编号。 现在看起来Gitee 记录的方式并不合适。中途放弃掉了。但是Toggl的记录一直坚持下来。
-
1月份的主要工作主要聚焦在新项目的BSP调试,由于新项目的音频框架比较复杂,所以花费的精力还是比较多的。 喇叭比较多,调试起来就比较麻烦,总会概率出现一两个喇叭没声音的情况,主要还是TDM接口不太稳定导致的。
-
学习 Audio Juce 框架学习,它是一套基于C++的跨平台应用程序框架类库(Windows, Mac,Linux)。Juce的特殊之处在于其友好的用户界面以及强大的音频、图像处理能力。针对音频领域的一些调音工具,底层框架都是基于该类库打造的。 计划熟悉一下做一些基本的工具。
-
线上参加大部门的年终总结,涵盖路由器、音箱、门锁、IOT等产品线,听听这些老板们的业务总结是很好的,清楚目前所做的事情和未来的期望。
-
参加公司年会,深圳分公司的年会就比较随意,吃喝吃喝,然后抽奖,就结束了。 接下来就是准备放假了,公司也没什么人,最后几天基本属于躺平状态了。
松懈的2月
-
今年过年回去由于疫情的原因,在家待了几天就来深圳了,初七就开始上班。 参与了内部的金耳朵分享会,针对声学专有领域,很多概念还是不懂。
-
2月份工作上的主要任务聚焦在有屏音箱的DSP相关功能的优化,前几天主要是熟悉下MTK DSP的音频框架,类似于FreeRTOS+音频模块的开发,整套框架还是挺复杂的。中间抽时间还特意学习了FreeRTOS相关的开发,学习的过程中主要是参考【安富莱】FreeRTOS操作系统教程发布 以及韦东山百问网freeRTOS教程不得不说这些大佬们制作的教程很用心,在很短的时间内就熟悉FreeRTOS系统的开发。 包括一些调试技巧。增加DSP Reload的功能过程中也遇到了一些问题,求助了下MTK FAE,虽然慢,但是他们的回复能否解决问题。
-
看到极客时间写的教程以及韦东山的视频教程,体会到学习输入以及输出 沉淀价值的所在,而且这样还能积累沉淀。接下来的一个目标主要是打通Android Audio 全链路部分。正好在做的项目就能够接触到Android Audio 部分,相比Linux系统,Android 系统过于庞大,没人指导靠自己摸索还是需要很长的时间的。 虽然2月份才刚开工,但是项目上的事情还是挺多的,旧项目+新项目一起来,确实忙不过来了。
-
【开篇】如何转行成为一名嵌入式音频工程师? 这篇文章是对嵌入式音频岗位的职责介绍以及知识框架的梳理,前后花了不少时间来梳理总结,值得一看。
忙碌的3月
- 3月18日晚参加了大疆音频岗位的面试,看岗位介绍还是听适合的,面试官问的问题也具有针对性,旁边还有三位面试官旁听,面试官看起来不算资深,属于做嵌入式的小伙子,问的问题都比较基础,但是由于前期并没有准备,导致回答问题的时候有点失误,比如问ALSA框架的介绍,这个之前自己最擅长的问题,结果这里完全想不起来了,只是没有逻辑的描述了一些。而且面试官比较看重细节以及感兴趣的知识点,比如DAPM 这个知识,问的就比较细节。但是整个面试环境还是偏轻松的,主要偏重于项目经验,而且T2030就结束了面试,感觉像是走过场。后续的面试结论就是"疆湖再见"了
- 大疆面试结束后,回归工作上,看似一场1个小时面试,前期其实很花时间的,还有在线测评、准备笔试面试都需要时间的。 工作上的在排查一个旧项目的Jira, 项目已经量产kk级,但是发现有一台播放出现杂音的问题,而且是增加音效之后才会有的,不增加音效一点问题都没有。前后和原厂排查折腾,但是依旧没有结论,毕竟音效部分也是第三方厂商的,他们也不怎么配合,导致一直没有找到根本原因。这也是一个遗憾的事情。
- 3月份抽时间学习了信号与系统以及Matlab的开发,不学不知道,一学感觉到Matlab的信号处理能力太强大了。 基于Simulink的树莓派开发板(Raspberry Pi)编程 看到Simulink的功能真的让我兴奋,还能够结合硬件平台调试真的太方便了。同时结合之前使用PPC3 调试TAS5805的音效,安装过程中发现还需要安装Matlab 相关的东西,有点郁闷,这次终于明白了,同时借此这个机会正好看下PPC3软件相关的依赖库,分析出其中的框架图。 这是学习过程中记录的一些笔记和资料 Matlab 学习笔记
树莓派Matlab音频开发仿真
- 3月16日 这几天公司居家办公,深圳的节奏也慢下来了,全市按下暂停键,这个决心得多大。在家这两天的工作比较轻松,同时也在思考接下来的职业,毕竟在深圳这个部门想发展还是很有难度的。昨晚看到 《我们的婚姻》大结局,职业下家公司有点像风险投资,以小博大,富贵险中求,其中的案例 魔豆科技 vs 全景科技 这就是例子。然而接下来的应该是物色到合适的小型企业 朝阳产业 但是在不断壮大的企业。接下来的重点投入还有重点方向 :
- Android Audio 技术栈, 这段时间接触Android 下来,设计理念会更加精湛,同时入门门槛会更高,意味着市场机会也会多一些,这部分是比较重要的。
- 信号与系统 底层原理 技术栈,工作以来遇到的音频以及信号问题都是一脸懵,为啥?野路子出身呀,完全没有学习过信号系统,这个就是接下来需要补充的知识点。比如难懂的FFT 还有各种信号叠加的理论。
- 喇叭以及麦克风的知识点以及测试系统 技术栈,小小的麦克风大大的技术含量,喇叭和麦克风的参数还是比较多的,如何用软件测试其中的指标,这项确实是一个难点也是一个重点,接下来需要花时间熟悉MTK Meta Audio的系统
- 音频开源项目的输出以及设计;一直想设计一个开源项目,针对音频类的自己还是有这个能力的,一方面可以把更多的时间投入在上面,另一方面完善自己的技术栈。可以参考App Store 中的AudioTools 功能还是比较全面的。
- 音频架构代码的学习;在参与公司Sound的集成工作中,觉得手机多媒体算法部设设计的音效好高大上,实际研究过后,发现通过嵌入式的 sox 也可以完全实现,但是我自己欠缺的主要是各种音效设计的理论知识。接下来可以看看sox的框架设计 以及Audacity 的设计理念。
- 加强基础知识技术栈;C/C++ ,基础能力的练习一直是自己忽略的,天下任何高深的武功依赖于还是更好的基础功了,平时工作上的任务主要是修修改改,更多的考验逻辑思维能力,然而代码能力需要通过自己练习才能达到,这就是为啥面试的时候需要做算法题的一个原因。
- 向上更广的领域拓展,FFMPEG 音频实时流 Webrtc 以及音频SDK 的设计
- 持续博客的输出,希望自己慢下来,写好精致的博文 而不是水文,这就是你的招牌。之前有面试公司就是看看你的博客呀,瞬间猝不及防。将自己的工作产出、所思所想 用文字表达出来 同时是一种思考也是一种沉淀和积累!
- 平均用力等于没有用力
家庭和事业怎么达到平衡?
迷茫的4月
- 4月份临近转正答辩,来公司已经6个月的时间,准备资料进行转正答辩,一到复盘总结的时候,才发现自己这个月没做什么重要的大事情,一直都在忙项目解Bug,这也是常态,要去适应改变状态。 官方说法经过6个月的工作开展,在Mentor以及同事的热心帮助下,目前已经熟悉掌握了项目的业务逻辑,能够完全胜任当前的工作任务。在接下来的发展中,能够通过理论+实践的方式锻炼自己的工作能力,积累更多的通用方法以及提升工作效率,也希望自己更好地融入团队,配合同事的工作,能够尽自己最大的能力为公司创造真实价值!
- 新项目的立项以及调研需求评估工作
- 4月份中间一部分时间会比较闲,花时间复习了下C++的知识点,通过一些算法题进行练习。0419参加了字节跳动第一面面试,这个面试说起来也很巧。说说面试的背景,有一天中午浏览BOSS直聘,投递了字节跳动的岗位,竟然收到的面试邀请。其实最初并没有抱多大的希望,只是尝试一下,结果收到了BOSS直聘 BOSS直聘 陈xxx开发工程 的邀请。 出于好奇的想法,上脉脉上面看了下这个的工作经历,就更有意思了。工作岗位的内容还是挺喜欢,发现陈xx也是audio bsp转开发的,就觉得自己还是有希望的。需要冲刺一波。 有了上述的了解之后,面试比较有信心,4.16 4.17 (周六、周日)都在复习饿补C++基础,虽然效率很低,但是还是希望能够加油。 字节的第一次面试自认为还是挺失败的,面试C++的岗位都是挺尴尬的,而且这次出的题目都是和上次华为面试的题目都是一样的,真的太巧合了吧。我真的是服了呀。
这次的面试整体都是偏原理以及基础的东西,项目上的知识点基本很少问。和之前大公司的面试很像,比如华为的第一面 还是有腾讯的第一面 都是这样的。 就像说的一方面考验项目的知识点还有一些通用的基础能力,这个是比较看中的 。 面试流程 : 自我介绍(挑重点) -> 项目中的知识点,深入了解 -> C++ 通用知识点 ->反问 -> 算法题考核 算法题考核是飞书内置的平台,基本就是include + main 函数+题目,余下的需要自己实现,包括测试用例。 整体面试下来,面试官不管你做过什么项目,但是基础是很重要的,只有打好基础,未来才能走得更远更稳,这是一个前提保证。
开源项目的5月
-
5月计划开发一款音频开源工具。Easy-Audio-Toolbox,这个点子已经在flomo中记录了好几次,一直处于想法中,但是今天终于开始行动起来,虽然只是一小步,但是庆幸的是小树苗已经开始发芽中…
在嵌入式音频行业已经摸爬滚打多年,期间遇到很多不求甚解的问题,苦于项目进度一直没有深入研究,只是成为解决问题的工具人,问题往往知其然而不知其所以然,还有遇到很多重复的工作,没有及时的自动化、脚本化,想着这种事情应该只用一次,往往都是接二连三的在使用,基于工作中的痛点决定沉下心来写一套Auido Toolbox来深入学习知识点以及把曾经的技术栈运用起来。 接下来这个项目旅程会很长,边学边练边实战,希望自己可以一直的坚持下去.
开源项目名字,想到一个好的开源项目名字并不是一件容易的事情,每一个成功的开源项目背后都有很多精彩的故事,而Easy Auido Toolbox有两个寓意,Easy 代表非常容易上手,开箱即用;Toolbox 代表操作音频就像一个工具箱,有各种各种的工具。项目的logo图片并不想过于复杂,而是黑底白字,配上一小撮橙色,给人极强的冲击力,使用Logoly Pro工具制作而成。开端有了,接下来就是一步一步的走下去… -
开源项目中 目前市场上GUI的框架比较多,比如有Qt、MFC、wxWidgets还有Node.js+Element UI实现的UI,而针对目前的需求主要是采用C++语言开发+跨平台的需求,综合比较下来选用Qt会比较合适。
Qt 的发展非常快速,开发的方式分为Qt Widgets 和 Qt Quick,两者开发的方式区别也比较大,前者主要的优势在于经典桌面控件较多,高级控件更加完整,后者的主要优势在于针对触摸为基础的现代化App的控制支持比较好,更多的是移动端。 两者的对比参考可以参考Qt Quick 与 Qt Widgets 适用场景及技术分析,综合考虑下来,觉得前期使用Qt Widgets开发更好,后期再使用Qt Quick优化。 其中一个重要的原因在于我本身对Qt并不熟悉,需要从基础学习,一遍学习一边实践。接下来的时间主要在学习Qt的过程。
-
工作上另一部分的精力在新项目的BSP Audio开发工作上,新的PA总会遇到一些问题需要处理的。
入职汇报的6月
继续写
7月
8月
9月
假期过后的10月
- VLC Audio同步原理分析
至关重要的11月
- 书稿选题审批通过,写书这个想法到落地前后忙碌了几个月的时间,想法是从9月6号的晚上开始,9月7号的早上就找人沟通,然后梳理书稿内容,摸清楚出版技术书籍的流程。几个小伙伴开始讨论大纲以及准备样章,这个过程还是挺不容易的,不过最终在2022/11/11中午的时候,编辑发来消息,选题已经审批通过,接下来就是漫长的写作过程了。
最后冲刺的12月
小米Sound Pro 产品发布
- 12月已接近年底,事情会比较多一些,首先是12月11日晚的的小米 13 系列 & MIUI 14 新品发布会上,小米 Sound Pro 智能音箱正式发布,这也是今年音箱的旗舰项目,最近一个月一直在解决相关问题,其中遇到不少挑战与难题,在和同事齐心协力的努力下,找到一个不错的解决方案。 虽然发布会上介绍该产品的时间很短,但是背后还是有不少的开发工程师在努力的。 印象比较深刻的一件事情,产品发布前几天,遇到了一些问题,很影响用户的体验,还是决定使用备用方案来优化该问题,但是遗憾的是备用方案也有问题,不得不周六加班来解决该问题。时间很有限,只有几个小时的时间要快速出解决方案,顶着压力找到了优化方案,还是挺不容易的。
-
项目开发的过程中遇到alsa-lib一些Bug,最终以为是应用层的问题,后期排查发现是alsa-lib 版本中一些已知Bug,新的版本中已经fix。 Changes v1.1.5 v1.1.6 ,问题背景是当使用softvol plug 设置音量为0的时候,此时pcm使用snd_pcm_area_silence()写空数据,在有些情况下会出现杂音的现象。本身这个API的处理上是有些问题的。所以针对开源库一定要注意看一些新版本的release note。
-
微信小程序上线了,2022年12月18日 周日花了一下午的时间整理下微信小程序的资源,之前已经把认证、上线构建好了,主要是装修一些,类似于之前淘宝店装修,入门门槛已经变得很低了。小程序主要是家里的生意需要展示一下,想着做了个小程序积累下资源。
-
UAC 名称的问题,看似很简单的一个问题,但是前后确折腾了2天的时间才解决掉。主要的问题还是在于不熟悉UAC的协议标准,想不清楚Windows 的UAC名称为什么一直修改不成功的问题。直到看到了这篇文章 Windows下UAC麦克风友名(FriendlyName)前出现数字编号问题的解决驱动代码中其实没什么问题,主要在于Windows 驱动,需要在声音、视频和游戏控制器中卸载指定的声卡设备,才能生效。
-
12月12日,深圳小米五周年,由于需要参加领奖活动,特意全程听了领导们的讲话以及一些优秀代表的发言,背后的艰辛估计只有当事人清楚,都是一步一步干出来的。 小米路由器的千万销量、小米手机K50的爆品增量、小米有些产品做得确实是用心。晚上看了一波线上直播,应届生的活力确实够热。一往无前,生生不息。
2022年的总结
- 2022年的工作上的发展整体保持不错,符合预期。但是工作上的积累还是不够,解决问题的思路不够灵活,针对音频的问题没有积累一些解决方案。有的时候工作上松懈下来,导致解决问题的思路都退化了。在项目开发的过程中,遇到的问题都是写代码过程中逻辑不够严谨导致出现的错误,出现问题没有正视该问题,一味地拖下来,直到发展成严重问题才幡然醒悟。遇到问题,犯了错误,能够放下身段,扔掉自尊心,承认自己搞砸了,是一个做事的人仍旧还在做事的标志,事非经过不知难。
- 新项目开发的过程中,遇到了不少难题和挑战,意识到自己的积累明显不够,一有空就在看书、看源码学习,这个过程要一直持续下去,工作时间并不等于经验,更不等于能力。如果才能把工作时间转换为自己的经验和能力呢?无非就是多阅读、多思考、多实践、多分享、多做事。记得10月20号在排查一个概率出现杂音的问题,针对音箱出现播放杂音现象是不能忍受的现象,但是一直没有找到复现场景,就是笨办法,找足够多的机器来复现老化该问题,果然在有限的时间内找到复现正常,问题的根因竟然是有个句柄每次播放没有close,导致播放长时间过后打开的fd超过了系统最大的限制,导致一直无法打开句柄,播放器就出现异常,出现杂音。 这背后就是几行代码解决问题,非要绕一大圈才明白open/close的重要性。
- 工作状态是不如预期的,团队的竞争力是下降的,得过且过的样子,毕竟舒适区的状态总有一天会结束的。
2023年的目标
- 一年一年的时间上过的是非常快的,每一年还是要给自己设立一些主线任务,这样有目标感的一年会努力一些。首要目标是保证书稿完成交稿,这个目标是非常有压力的,而且年初既要保证工作上的进度还要有时间写书,写书的过程不亚于用代码实现一个复杂的需求,枯燥而乏味而且又耗时,但是不得不坚持下去,毕竟事情成了之后,会带来一些不一样的东西。
- 工作上音频疑难杂症的解决方案的积累。 解决方案是最近工作上一个新的体会,而且是稳定可靠的解决方案。想想几年工作的积累,肯定要有一套专有领域的解决方案,这是和别人的差距,不然每次更换工作都是一个新的领域,何谈积累之说,这样每次的平均用力,等于没用力。大道系统的框架,小到开源库的稳定版本,到底哪个版本比较问题,哪个版本坑会多一点。这样才能够解决问题。
- 以上两个目标其实做好已经非常不错了,如果再贪心谈薪一点,就是升职加薪,这个背后需要有一定的积累和运气。运气不可控,但是积累是靠艰苦奋斗的,比如解决项目中难题、写写专利等事情,得搞才能有奔头。 既然想要上升,就要勇于承担棘手、有挑战的任务,当你推掉麻烦的时候,你也推掉了机遇。
总结下2023年的目标:交稿、整合落地解决方案、升职三个主题目标。短暂得投入,快速地成功,这是每个人都喜欢的事情,但是往往会期望落空,因为有些事情是快不来的,比如要读书这件事情,迟迟都达不成目标。一年内我们能做到的事情不多,但从现在开始长期坚持和投入,几年之后则会发生翻天覆地的变化。 要向老一辈的前辈们奋斗,不能一味的贪图享乐,刷抖音的时间过得真快,想想自己曾经的梦想,用勇敢去追梦,去和人生博弈。
往年回顾
- 2021年终总结 : 聚焦发展,稳步突破
- 2020年终总结 : 乘风破浪
- 2019年的前路有光, 永不断电
- 2018年的经历有苦有甜
- 2017年的知识清单