去年的这个时候我在博客园开通了技术博客。一晃一年过去了,这一年中我写了二十几篇原创,全是对音频开发中的知识和经验的总结。不高产,差很少一个月两篇的节奏。平时工做比较忙,基本都是利用周末时间写出来的。中途有一段时间特别忙,差点想放弃,庆幸仍是坚持下来了。我想后面还会坚持下去,内容仍是对我工做中知识和经验的总结。人们一般喜欢在一周年之际作一些总结,我也不例外,今天我来总结一下过去的一年在技术上我作了什么。总结下来主要作了三件事:音频开发、人工智能(AI) 学习、写技术博客。html
1,音频开发算法
音频软件开发是个人本职工做,这一年中的绝大多数时间确定是献给她了,毕竟她是个人衣食父母,我养家糊口得靠她呀。本职工做不只要花绝大多数时间作,并且还要作好。去年这个时候我从APP语音开发切到Android手机平台上的音频软件开发,主要是在音频DSP上开发音频软件。那时我对手机平台不熟,对Android系统不熟,对DSP不熟,有不少新东西要学,也曾怀疑过本身选择作Android手机平台上音频软件的正确性。如今一年过去了,我以为选择是正确的。虽然仍是作音频开发,可是如今是在更主流更大众的Android手机平台上开发,扩展了知识面,并且主要是在底层的DSP上开发(DSP不像ARM那样频率高内存大,而是频率低内存小,这就要求在写代码时有更多的技巧,一样的事情在DSP上开发可能要比在ARM上多花很多时间,这对能力的要求更高),能力也提升了。这一年下来作了很多事情,我本身以为主要有如下收获:编程
1)虽然仍是作音频软件开发,可是已经切到在更主流的安卓手机平台上作音频。通过一年的实践,对安卓手机上音频相关的软硬件有了更深的理解。音频子系统能够说是安卓多媒体系统中最复杂的子系统了。外设多,有听筒(earpiece)、扬声器(speaker)、有线耳机、蓝牙耳机等。使用场景多,听音乐、录音、打电话等,其中打电话又分为传统语音通讯和APP语音通讯(如微信语音),传统语音通讯又分为2/3G语音通讯和4G VoLTE语音通讯。要把这些都作好是很是不容易的。微信
2)丰富了我作语音通讯解决方案的种类,使我对语音通讯方案的掌控更加游刃有余。我之前作过有线语音通讯方案,也作过APP语音通讯方案,如今又作了安卓手机上的传统语音通讯方案,知道了APP语音通讯方案的底层是如何实现的。能够说是目前主要的语音通讯方案都作过了。网络
3)作了语音和音乐融合的方案。之前作的音频方案要么是语音的,要么是音乐的,功能单一。如今在Android手机平台上作音频,语音和音乐都有,是一个融合方案,复杂度会比单一方案高些。机器学习
4)掌握了在DSP上作音频软件开发。DSP上软件开发和ARM上软件开发是有一些差别的,在DSP上编程要求比在ARM上高。从刚开始作时的不熟悉不习惯到如今的熟悉习惯,虽然还谈不上精通,毕竟才作了一年。post
2,AI学习学习
现在技术更新快,作技术的人就得不停的学新东西。若是学习中止了,一不留神发现本身out了,更惨的是本身竞争力降低出局了。2016年alpha狗打败围棋世界冠军极大的推进了机器学习/深度学习的普及,让更多人知道了这个领域以及它的巨大威力。语音识别/智能语音做为深度学习技术最先落地的方向之一,也得到了快速的发展,从传统的“GMM(高斯混合模型) + HMM(隐马尔科夫模型)”到GMM用DNN(深度神经网络)替代,再到HMM摒弃不用而用端到端的CTC和RNN(循环神经网络)/ CNN(卷积神经网络)只用了四五年的时间,并且如今还在快速的发展着。我作传统音频/语音开发这么多年,智能语音但是说是语音开发的一个新的方向,我有必要去学习掌握它,做为本身现有技能的一个扩展,无论将来有没有机会去作它,再说机会老是给有准备的人的,哈哈。人工智能
学习新技术是须要时间的。我平时工做比较忙,常常加班,工做时间是不可能学习工做内容之外的知识的。周末要带小孩参加英文等的学习,也有一些私事要处理,也没多少时间用来学习,只能利用上下班作地铁的时间学习了。主要是上班途中学习,一是早上头脑比较清醒,二是下班时忙了一天已经很累了,学习新知识效果很差,还要花点时间刷刷当天发生的新闻,包括科技的财经的等。人既要埋头工做,也要看外面的世界。我上下班单程要一个多小时,这点时间在地铁里戴上耳机听着音乐,同时打开iPad学着新知识。先从传统的利用“GMM+HMM”语音识别学起。GMM/HMM主要是几率统计方面的知识,刚开始看时有点晕,毕竟多年不看忘得差很少了。又把当年学时用的书翻了翻,恢复了大部分,再去看GMM/HMM好多了。通过了一段时间的学习,大致上搞明白了用“GMM+HMM”作语音识别的思想。url
GMM/HMM学完后就准备学深度学习。深度学习说的通俗一点又不十分准确就是深层神经网络。我在十多年前读研时就简单学过神经网络,那时就知道经典的BP算法了。神经网络是导师的研究方向之一,我不是这个方向的就简单学了下。当时看着博士师兄们常常在实验室电脑上用matlab作训练,心想神经网络也就只能在高校里作研究出出论文用,想不到多年后大放光彩,这得感谢Hinton教授呀。这也从另外一个方面说明目前只在高校里研究的一些东西随着研究的深刻以及硬件能力的提升说不定往后就能成为工业界的热门技术呢。我又把神经网络认真学了一遍,同时又把高数里的一些知识点捡了起来,尤为是梯度。这些都掌握的差很少后就看起了被你们奉为圣经的书《深度学习》中文电子版。这本书前面有须要用到的数学基础知识的介绍,也有机器学习基础知识的介绍,但介绍的不是很详细,毕竟这些不是该书的重点,只是告诉读者要看该书须要这些基础知识。我以前没学过机器学习,《深度学习》里只是简单介绍了下机器学习的基础知识,我想仍是先学习一下机器学习吧。找来了机器学习领域的大牛南京大学周志华教授的书《机器学习》(俗称西瓜书),把一些相关的知识强化了一下。再去看《深度学习》,好一些了,仍是有些吃力,公式太多。网上看了一下你们对它的评价,偏学术。就把这本书大概看了一下,没有深究。后来在网上找到了针对深度学习入门的系列文章(见后面学习材料清单,做者根据这些写了一本书,叫《深度学习之美》,本月上市),讲的通俗易懂,我看了三四遍,基本上搞懂了。在这里推荐给想入门深度学习的朋友。通过这么长时间的学习,个人感受是基本上扫盲半入门了,可是缺乏实际项目的操练。如今智能语音主要在云端作,有在终端(尤为手机)作的趋势。我是在手机上作音频的,但愿有机会在手机上作智能语音。下面列出我主要看过的书或者文档清单,若是有朋友想学这些,能够做为参考。
《HMM学习最佳范例》
《机器学习》 (南大周志华)
《深度学习》
一入侯门深似海,深度学习深几许(https://m.aliyun.com/yunqi/articles/86580)
3,写技术博客
为何要写技术博客呢?主要是受一本书的启发,这本书叫《软技能--代码以外的生存指南》,会写乐于分享就是其中的一项软技能。写技术博客是对本身已有知识和经验的总结和概括,便于往后温故而知新(一些知识点一段时间不用就忘记了,把它记下来后面再用到时看一下就恢复起来了),也把本身的知识和经验分享出来给有须要的朋友。如今作技术的提倡开源分享,如今你跟别人分享了,哪天你在其余方面有困难时别人也会跟你分享的。好比如今我在学智能语音相关的知识,看了不少博客,也是在分享别人的知识和经验。同时把知识和经验写出来,让同行看到你在这个领域的能力水平,说不定何时机会就出现呢。作技术也跟好酒同样,也怕巷子深呀。
在写技术博客前很久不写正规文章了。之前在外企会常常写技术文档,那都是英文的,并且有模板,写的你们(尤为外国同事)能看懂就好了。写技术博客是用中文写,讲清楚技术和经验是最基本的,最好图文并茂。因为很久不写文章,刚开始写时总感受写不出来,随着写的文章愈来愈多,如今好多了。文章发表后就会伴随着喜悦或者失落。喜悦是文章获得了你们的承认和推荐,记得发表文章《谈谈我开发过的几套语音通讯解决方案》后不只得到你们的承认,并且获得了博客园编辑的推荐,在主页上推荐了两天,两天内总共有近3000次的阅读量,也得到了17次的推荐,非常开心。失落是文章选题很差或者你们不熟悉,没什么阅读量,有时甚至在博客园主页没多久就被编辑撤下了。作事情老是但愿被承认的。
个人博客主题是音频开发,不像其余技术领域那样,从业人员很少,我但愿看我博客的人都能有收获,也但愿跟更多的同行交流。无论阅读量的大小,我后面还会继续写下去,依旧是工做中音频相关知识和经验的总结和概括。加油!努力!争取出更多高质量的文章!