声音编码

1.脉冲编码调制PCM文件格式简介

将音频数字化,其实就是将声音数字化。最常见的方式是透过脉冲编码调制PCM(Pulse Code Modulation) 。运作原理如下。首先我们考虑声音经过麦克风,转换成一连串电压变化的信号,如图一所示。这张图的横座标为秒,纵座标为电压大小。要将这样的信号转为 PCM 格式的方法,是使用三个参数来表示声音,它们是:声道数采样位数采样频率

         采样频率即取样频率,指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率都不超过48KHz。 

        采样位数即采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。
 
         声道数很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的pcm可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。 
声波曲线1 声波曲线2 声波曲线3
  下面再用图解来看看采样位数和采样频率的概念。让我们来看看这几幅图。图中的黑色曲线表示的是pcm文件录制的自然界的声波,红色曲线表示的是pcm文件输出的声波,横坐标便是采样频率;纵坐标便是采样位数。这几幅图中的格子从左到右,逐渐加密,先是加大横坐标的密度,然后加大纵坐标的密度。显然,当横坐标的单位越小即两个采样时刻的间隔越小,则越有利于保持原始声音的真实情况,换句话说,采样的频率越大则音质越有保证;同理,当纵坐标的单位越小则越有利于音质的提高,即采样的位数越大越好。

        在计算机中采样位数一般有8位和16位之分,但有一点请大家注意,8位不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16位是把纵坐标分成2的16次方65536份; 而采样频率一般有11025HZ(11KHz),22050HZ(22KHz)、44100Hz(44KHz)三种。

样点
t1
t2
t3
t4
t5
t6
t7
...
t16
t17
t18
t19
t20
幅值
0011
0101
0111
1001
1011
1101
1110
...
0110
0110
0101
0011
0000


        那么,现在我们就可以得到pcm文件所占容量的公式:
     存储量=(采样频率*采样位数*声道)*时间/8(单位:字节数)

  例如,数字激光唱盘(CD-DA,红皮书标准)的标准采样频率为44.lkHz,采样数位为16位,立体声(2声道),可以几乎无失真地播出频率高达22kHz的声音,这也是人类所能听到的最高频率声音。激光唱盘一分钟音乐需要的存储量为:     
     (44.1*1000*l6*2)*60/8=10,584,000(字节)=10.584MBytes
这个数值就是pcm声音文件在硬盘中所占磁盘空间的存储量。

  计算机音频文件的格式决定了其声音的品质,日常生活中电话、收音机等均为模拟音频信号,即不存在采样频率和采样位数的概念,我们可以这样比较一下:
        44KHz,16BIT的声音称作:CD音质;
        22KHz、16Bit的声音效果近似于立体声(FM Stereo)广播,称作:广播音质;
        11kHz、8Bit的声音,称作:电话音质。 
        微软的WAV文件就是pcm编码的一种。

 

2.数字音频基础知识
  麦克风录音的过程其实就是将模拟信号转化成数字信号的过程,其中涉及的一些概念如下:
 1.采样率(Sampling Rate)
    采样率指声卡在一秒之中对声音(波形)作记录的次数,根据研究声音播出时的质量常常只能达到采样率的一半,因此必须采取双倍的采样率才能将声音标准重现.也就是只要采样率大于原始信号频率的两倍以上即可减低错误,达到和原始声音差不多的质量.人的听力大概是20KHZ,所以高品质的采样率应为其两倍以上.
    当声音来源为音乐时,因为它所横跨的频率变化极为宽广,通常以44.1KHZ的频率为CD音乐采样率的标准.但是若以语言为主由于人说话的语音大概是10KHZ,因此加倍采样,只取22KHZ即可,采样率越高所记录下来的音质就越清晰,当然,越高的采样所记录下的文件就越大.
 2.采样位
    解析度决定了采样的音波是否能保持原来的形状,越接近原型则需解析度越高,若以8位来采样的话其能表达的组合种类是2的8次方,即256,表示用8位的采样大小能分辨出256个层次的声音,若用16位来采样,则能分辨的差异将高达2的16次方,为65536,其精度自然大为提高.16位,8位采样的差别在于动态范围的宽窄,动态范围宽广,音量起伏的大小变化就能够更精细的被记录下来,如此一来不论是细微的声音或是强烈的动感震撼,都可以表现的淋漓尽致,而CD音质的采样规格正式16位采样的规格.
 3. 量化误差(Quantization error) 
       在采样的过程中,不断连续变化的模拟信号要用数字化的数值来表示,这样的过程就会发生所谓的量化误差(Quantization error).所谓的量化误差指的是实际的信号的振幅(smplitude)和数字化之后所的数字之间的差异.如果用将数字信号还原成模拟信号的角度看,量化误差就是失真(Distortion).我们可以用增加采样大小的方式来降低量化误差,也就是更多的位(bits)来表示一个采样信号,这样可以提高精度.
 4. 量化(Quantization), 线性量化法(Linear quantization)和非线性量化法(Nonlinear quantization)
       所谓的量化(Quantization)就是将模拟信号所代表的连续范围分成一段一段的区间(Interval),每一段区间我们定义一个数字化的值.区间的数目是跟采样大小有关,举例来说,有一种最简单的量化法称为”线性量化法”(Linear quantization),这种量化法采用等距离的间隔空间,架设一个讯号它的最大值是5.0,采样大小为3位,则每个量化区间就时5.0/2^3,也就是0.625单位.另外一种相反的量化方法就是”非线性量化法”(Nonlinear quantization),这种量化法采用不同的间隔空间.以”对数量化法”(Logarithm quantization)为例.低振幅范围的量化区间就比高振幅的范围的区间较为接近,用这种量化的法产生的结果就是在低振幅时我们会得到佳好的效果.通常如果使用同样的采样大小,非线性量化法会比线性量化法得到更好的声音品质.但是如果是要对声音做滤波(filtered)或一些运算的时候,使用线性量化法会比较容易处理.
 5. 声音强度 
         波形振幅的平方.两个声音强度上的差常以分贝(db)为单位来度量,计算公式如下:
    20*log(A1/A2)分贝,A1,A2为两个声音的振幅.
a.如果采样大小为8位,则采样的动态范围为20*log(256)分贝=48db;
b.如果样本大小为16位,则采样动态范围为20*log(65536)大约是96分贝,接近了人听觉极限和痛苦极限,是再线音乐的理想范围,windows同时支持8位和16位的采样大小.

 6. 音频编码方法
      目前已经发展了许多音频编码的方法用以减少存储量或是传输的时间,以下所列为两种较普遍的编码方法:
   a.PCM(Pulse code modulation);
脉冲编码调制,即对波形按照固定周期频率采样。为了保证采样后数据质量,采样频率必须是样本声音最高频率的两倍,这就是Nyquist频率.
   b.ADPCM(Adaptive delta pulse modulation).

码率高低直接影响音质,码率高音质好,码率低音质差。

码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来的cbr(固定码率)与vbr(可变码率),都是在这方面做的文章,不过事情总不是绝对的,从音频方面来说,码率越高,被压缩的比例越小,音质损失越小,与音源的音质越接近。
计算机中的信息都是二进制的0和1来表示,其中每一个0或1被称作一个位,用小写b表示,即bit(位);大写B表示byte,即字节,一个字节=八个位,即1B=8b;前面的大写K表示千的意思,即千个位(Kb)或千个字节(KB)。表示文件的大小单位,一般都使用字节(KB)来表示文件的大小。

Kbps:首先要了解的是,ps指的是/s,即每秒。Kbps指的是网络速度,也就是每秒钟传送多少个千位的信息(K表示千位,Kb表示的是多少千个位),为了在直观上显得网络的传输速度较快,一般公司都使用kb(千位)来表示,如果是KBps,则表示每秒传送多少千字节。1KBps= 8Kbps。ADSL上网时的网速是512Kbps,如果转换成字节,就是512/8=64KBps(即64千字节每秒)。

一帧就是一副静止的画面,连续的帧就形成动画,如电视图象等。
我们通常说帧数,简单地说,就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数 (fps) 愈多,所显示的动作就会愈流畅。

何谓音乐的比特率?
也可以叫码率,无非就是一种音乐每秒播放的数据量,单位用bit表示,也就是二进制位。 bps就是比特率。b就是比特(bit),s就是秒(second),p就是每(per),一个字节相当于8个二进制位。也就是说128bps的4分钟的歌曲的文件大小是这样计算的(128/8)*4*60=3840kB=3.8MB,也就是说同样比特率(bps)的同一歌曲不论是什么格式(如mp3 wma)容量大小都是基本一样的,这只能代表一种传输率,并不能代表音质,由于压缩引擎的不同,不同格式的音质又千差万别。但同格式来说比特率也高代表文件也就越大,相对来说音质也就越好。

何谓音乐的采样率?
采样率是指在单位时间的采样数。采样速率为44KHz,说明每秒采样数量为44K个,这是也就是用44000个数据来描述1秒内的声音波形。也就是说采样率越高音质也是越好。但是他同比特率是完全不同的两个概念。

比特率越高音质越高,文件大小也越大,但是源音文件的质量决定最终质量
从高往低转,音质会变差,但从低往高转音质最多不变 但是文件却会变大很多

一般mp3在128比特率左右为益,也大概在3-4 BM左右的大小

码率,选择他直接影响到你的mp3文件尺寸大小和听感,压缩比高的失真大,压缩比小的失真小,但是怎么才能找到一个我们自己两方面都能接受的平衡点呢?这就需要在实验里仔细摸索,考虑到低码率的文件声音素质不太适合播放音乐,所以最低定为128kbps,依次使用128、192、256、320共四种固定码率的文件来进行对比和测试。

128kbps的压缩比还是比较粗糙的,高频部分压缩后失真非常明显,听起来空洞,干瘪、刺耳,还时常有忽悠忽悠的声音,乐器的质感很差,部分乐器都变了味道,甚至可能会听错,3分39的一段乐曲压缩后的体积是3414kb,体积虽然不大但是声音不能让人满意,存在比较大的缺陷。


192kbps码率的压缩效果比起128来说可是要好多了,首先声音扎实,至少没有那种空洞感,高频失真也小了很多,声音紧凑,杂音小,干净,达到了相对比较理想的听音效果,只是由于压缩还是比较厉害,细节的表现仍旧不是很好,乐器尤其是管乐器的质感还是很硬,不真实,缺乏乐感,压缩后的尺寸是5123kb,我觉得这个压缩比例在128~~256m容量的mp3播放器上使用比较好,既可以满足基本的听感,也在尺寸上合适,128m大约能存储95分钟的音乐,256m则翻倍为190分钟的音乐。


256kbps的压缩率比起192自然是在音质上更上了一个台阶,就拿曲目刚开始的10秒钟说,大提琴部的低频明显颗粒感就小了很多,声音更加顺滑自然,质感和纹理也更加清楚一些,细节方面多了不少,气氛的渲染比较突出,后面的曲子进行中的声部轮换也表现力起来许多,大信号小信号的清晰度也提升一些,声音更加细致耐听,但是与此同时,文件的体积也一下子增加到了6831kb,这对于256m的mp3播放器来说还是可以承受的,计算一下不难知道,按照256的码率可以存放约135分钟的音乐,一般来说也是够用了,128m就有点少了,只能支持一个小时多一点,所以推荐128m的使用192码率。


320kbps是lame能够提供的最大码率了,最终的生成文件是8592kb,大概就是8.4M,对比wav文件的37M来说,压缩比基本为4.5:1,但是生成的mp3文件听起来已经失真非常小了,对比其他码率320的自然优势明显,音色,细节等等都非常细腻,基本是达到了原样复制了cd的声音素质,特别在带有mp3播放功能的cd播放器上上听起来,基本没有什么区别,不过我使用了比较高档的耳塞,解析力比较高,再加上我对音乐和器材的经验和能力,对比wav文件还是听出了许多不同,首先;压缩过的mp3听起来有点缩水的感觉,整体比较干,没有wav文件听起来鲜活充满动感,末端细节、泛音和空间感上,分离度上也不及wav文件来的素质高,不过在音色上已经算是相当接近了,只是表现力上面差一些,数码味道比较浓重。所以如果您使用的是ipod等这类微型硬盘式的随身听播放器,那我还是推荐您使用320kbps的压缩比率,这样可以得到相对最好的聆听感觉,当然直接听wav是最好的啦~~无压缩,没损失,可惜现在还没什么随身听支持ape这种无损压缩,不然又可以多种选择了。

1、 APE:


APE格式:Monkey""s Audio(www.monkeysaudio.com),简单的说ape是一种音频的无损压缩格式,大小只有wav文件的一半,但是音质没有丝毫降低。能够在最大程度上还原CD的音质,当然这也取决于抓轨的质量 。如果抓轨的质量好,ape的音质就会和CD差不多这是mp3等有损压缩无法达到的,当然无损的代价就是体积的增大,1CD从200mb到400不等所以如果有足够的带宽的保证,ape给网友交流CD带来了更多的方便,解决了许多古典音乐爱好者传送高音质CD的需求。一张80分钟的音乐CD大小大约700M,这么大尺寸的传输,显然是非常不方便的,这时用Monkey""s Audio-能把WAV文件压缩成一半大小(甚至更小)的APE文档,并且在理想状态下,当你把APE解压成WAV,音质没有丝毫损失。


优点:压缩率高;音质无损;装载插件后,可以用Winamp直接播放,音质比任何参数的Mp3或Mp3 Pro更好。

缺点:压缩及解压时间过长。


2、 MP3 Pro


为了减低失真程度,MP3 Pro这种新MP3格式出现了。它将整个音频频段分离成中低频和高频两个信道,由传统MP3编码器负责中低频部分,而另一个采用SBR技术的(Spectral Band Replication/频段复制)的译码器则负责高频部分,最后两者在MP3 Pro播放软件中同时播放,从而得到显著超过相同Bitrate的MP3之音质。不但高频细节丰富,颤抖的现象亦已不易觉察,与原始WAV文件非常接近。


MP3 Pro采用的SBR技术,并非直接将音乐中的高频分离出来并编码那么简单,而是根据对原来编码器所传输的低频讯号进行分析,从而重新构建出高频讯号。


3、Real Audio
Real Audio,扩展名RA:这种格式真可谓是网络的灵魂,强大的压缩量和极小的失真使其在众多格式中脱颖而出。和MP3相同,它也是为了解决网络传输带宽资源而设计的,因此主要目标是压缩比和容错性,其次才是音质。所以我们一般在网上遇到的新音乐试听都是使用这中格式的。


3、 WMA

WMA就是Windows Media Audio编码后的文件格式,由微软开发,WMA针对的不是单机市场,是网络!竞争对手就是网络媒体市场中著名的Real Networks。微软声称,在只有64kbps的码率情况下,WMA可以达到接近CD的音质。和以往的编码不同,WMA支持防复制功能,她支持通过Windows Media Rights Manager 加入保护,可以限制播放时间和播放次数甚至于播放的机器等等。WMA支持流技术,即一边读一边播放,因此WMA可以很轻松的实现在线广播,由于是微软的杰作,因此,微软在Windows中加入了对WMA的支持,WMA有着优秀的技术特征,在微软的大力推广下,这种格式被越来越多的人所接受。比起ra来说,版权恐怕是所用用户最讨厌它的地方了。


4、 ACC:


AAC(高级音频编码技术,Advanced Audio Coding)是杜比实验室为音乐社区提供的技术。AAC号称「最大能容纳48通道的音轨,采样率达96 KHz,并且在320Kbps的数据速率下能为5.1声道音乐节目提供相当于ITU-R广播的品质」。和MP3比起来,它的音质比较好,也能够节省大约30%的储存空间与带宽。它是遵循MPEG-2的规格所开发的技术。松下的mp3产品都采用了这种编码方式,当然也兼容mp3格式,我自己使用时发现aac是非常好用的音频格式,128kbps的aac足以和224kbps的mp3抗衡,空间却小了差不多一半,但是在空间上和结构上aac和mp3编码出来后的风格不太一样,喜欢与否属于仁者见仁智者见智的事情。


5、 ATRAC 3/ATRAC 3 plus:


ATRAC3(AdaptiveTransformAcousticCoding3)由日本索尼公司开发,是MD所采用的ATRAC的升级版,其压缩率(约为ATRAC的2倍)和音质均与MP3相当。压缩原理包括同时掩蔽、时效掩蔽和等响度曲线等,与MP3大致相同。ATRAC3的版权保护功能采用的是OpenMG。目前,对应ATRAC3的便携式播放机主要是索尼公司自己的产品。不过,该公司已于2000年2月与富士通、日立、NEC、Rohm、三洋和TI等半导体制造商签署了制造并销售ATRAC3用LSI的专利许可协议。在mdlp压缩中录制cd和mp3相比,ATRAC3还是有一定的声音优势的,但是版权问题使得使用不是很方便,ATRAC 3 plus由于算法先进,在音质上得到了更一步的提高,但是只在sony的产品上有比较广泛的应用,这个让人比较郁闷。


6、 VQF:


所谓VQF,是指TwinVQ(Transform-domain Weighted INterleave Vector Quantization),它是日本NTT(Nippon Telegraph and Telephone)集团属下的NTT Human Interface Laboratories开发的一种音频压缩技术。该技术受到著名的YAMAHA公司的支持。VQF是其文件的扩展名。它和MP3的实现方法相似,都是通过采用有失真的算法来将声音进行压缩,不过它与MP3的压缩技术相比却有着本质上的不同:VQF的目的是对音乐而不是声音进行压缩,因此,VQF所采用的是一种称为"矢量化编码(Vector Quantization)"的压缩技术。该技术先将音频数据矢量化,然后对音频波形中相类似的波形部分统一与平滑化,并强化突出人耳敏感的部分,最后对处理后的矢量数据标量化再进行压缩而成。我自己使用中感觉在低码率情况下,还是vqf好用很多,比同等音质的mp3体积小30%左右,但是高比特率就不太好了,所以也少有人使用它。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elastic Stack简介

Elastic Stack简介 如果你没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elast…

webpack v3 结合 react-router v4 做 dynamic import — 按需加载(懒加载)

为什么要做dynamic import? dynamic import不知道为什么有很多叫法,什么按需加载,懒加载,Code Splitting,代码分页等。总之,就是在SPA,把JS代码分成N个页面份数的文件,不在用户刚进来…

go kegg_工具篇丨GO和KEGG富集不到通路?快试试这个超赞的功能分析工具吧

GO和KEGG富集分析是我们在筛选出差异表达基因之后,都会去做的套路性分析。然鹅……我相信,总有那么一些“倒霉孩子”会遇到跟我一样的窘境吧,好不容易筛选出来的差异基因,尝试了DAVID(https://david.ncifcrf.gov/)、Metascape(htt…

搭建Telnet服务器

搭建Telnet服务器 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 可能大家都知道现在已经很少有人用TELNET服务器, 因为它传输数据是以明文的方式,我们很容易通过抓包软件讲数据进行抓包&a…

table取tr对象 vue_Vue笔记

Vue集成了React和Angular的优点,摒弃了他们的缺点。Vue的官网:https://cn.vuejs.org/v2/api/Vue诞生于2016年,是现在非常流行的MVVM框架。Vue提供了“引包”的使用方法,初学者可以在这之下学习语法。不需要webpack,不需…

Beats入门简介

使用Beat收集nginx日志和指标数据 项目需求 Nginx是一款非常优秀的web服务器,往往nginx服务会作为项目的访问入口,那么,nginx的性能保障就变得非常重要了,如果nginx的运行出现了问题就会对项目有较大的影响,所以&…

可编程led灯带原理_SCPSD-250-04-27派克真空压力传感器故障和工作原理

SCPSD-250-04-27派克PARKER真空压力传感器故障和工作原理PARKER压力开关现货 PARKER压力传感器特价 派克真空压力传感器 PARKER数字压力开关2020年还剩最后2天了,这一年大家都过得不太容易,尤其是我自己这是30年以来过得最艰难的一年,经…

Kibana入门安装与介绍

Kibana入门 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化…

友善串口工具接收数据随机换行_使用Python3+PyQT5+Pyserial 实现简单的串口工具方法...

练手项目,先上图先实现一个简单的串口工具,为之后的上位机做准备代码如下:pyserial_demo.pyimport sys import serial import serial.tools.list_ports from PyQt5 import QtWidgets from PyQt5.QtWidgets import QMessageBox from PyQt5.QtC…

Vue渲染函数

前面的话 Vue 推荐在绝大多数情况下使用 template 来创建HTML。然而在一些场景中,真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器。本文将详细介绍Vue渲染函数 引入 下面是一个例子,如果要…

Logstash入门简介

Logstash入门简介 介绍 Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(我们的存储库当然是ElasticSearch) 我们回到我们ElasticStack的架构图&a…

Django templates 和 urls 拆分

如果在Django项目 下面新建了blog和polls两个APP应用,在每个APP下面都各自新建自己的url和templates,那么我们需要如何进行项目配置呢? INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, dja…

springboot怎么杀进程_线上服务平均响应时间太长,怎么排查?

线上服务平均响应时间太长,怎么排查?https://xie.infoq.cn/article/914b5c56000a3880016abd8d6前言:最近线上环境某个接口服务响应时间偏长,导致用户体验超差,那平时该怎么快速的排查这类问题呢?①、为代码…

MPEG音视频编解码之MP3编解码概述

2 MP3编解码原理 2.1 MP3音频压缩标准概述 MP3全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III)。是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于…

Python实现GitBook工具

写在前面 本工具是通过Python脚本实现 GitBook 自动 生成 执行 编译 发布的功能 你可以在这里下载exe 使用 1. exe下载,并移动位置 将exe文件放在你的gitbook文件夹中,或者放在空文件夹中 2. file.md 创建 名为file.md的文件,在你要写book的目录下 注意: 这里file.md文件名…

shell脚本中用到的条件和循环语句

本博文介绍一下shell脚本中常用的条件和循环语句:条件语句:循环语句:示例:if语句:eg1.eg2.2.case语句:简单的case语句:配合循环的case语句:3.for语句:简单的for语句&…

processing动态代码大全_做一张动态海报需要多少步?

人们习惯性地把程序员跟设计师分成两种不同性质的人,好像程序员就不会有美感,设计师逻辑思维就一定会很弱,但最近几年我们发现越来越多的程序员学设计,设计师学编程的跨界故事。新媒体艺术家,邱伟豪也是其中一员&#…

手写springboot_Spring Boot 入门教程 | 图文讲解

目录一、Spring Boot 是什么二、为什么要使用 Spring Boot三、快速入门3.1 创建 Spring Boot 项目3.2 项目结构3.3 引入 Web 依赖3.4 编写第一个接口3.5 启动程序,验证效果四、总结五、GitHub 示例代码一、Spring Boot 是什么以下截图自 Spring Boot 官方文档&#…

lunix 安装python3

Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装python3和python2共存 首先去python官网下载…

机器学习之朴素贝叶斯法

转载请注明出处:http://www.cnblogs.com/Peyton-Li/ 朴素贝叶斯法是机器学习模型中一个比较简单的模型,实现简单,比较常用。 是定义在输入空间上的随机向量,是定义在输出空间上的随机变量。是和的联合概率分布。训练数据集由独立同…