音频算法入门-变音项目

本文主要是基于一个变音项目带大家入门音频算法。项目用到了波形相似叠加算法(Waveform similarity Overlap-Add WSOLA)和重采样算法。wsola能做到变时不变调,重采样是变时也变调,两者结合就能做到变调不变时。项目地址在文章末尾给出。

    该算法属于时域法,能做到音频的变时不变调(改变语速但不改变语调)。时域法的基本思路是将音频切分成很小的若干等份,然后每份都去删减一截或者复制一截数据,来减少或增加音频数据,这样就不会改变音频波形,也就不影响音调,最后把每份重新合成播放就达到了变时不变调的目的。但如果只是这么做的话播放出来的声音是有瑕疵的。例如想要加快播放速度,也就是对每份数据删减一截,问题会出在合成的时候,前后两份音频的波形会出现断横,如果是想要减缓播放速度,也就是每份复制一截数据,问题会出在复制后的数据拼接到原数据末尾的时候,拼接处会出现断横。波形相似度叠加算法就是为了优化这个断横问题而提出的。横断如下图所示。

    首先介绍几个概念,分别为有效帧,分析帧、搜索窗、重叠区域,合成帧、搜索窗可移动距离。
有效帧:把音频切分成很小的若干等份,每份数据就叫做有效帧。
分析帧:实际分析和处理的时候,仅仅有有效帧是不够的,需要把上个分析帧末尾的一段数据复制并拼接到当前分析帧的头部,这样的一份数据被称为分析帧。分析帧的组成为:analysisFrameLength(分析帧长度) = effectiveFrameLengthInAnalysisFrame(有效帧长度)+duplicateLengthInAnalysisFrame(重复数据长度)
搜索窗:通过波形相似查找算法在分析帧里截取出的一段数据,数据长度为搜索窗长度,但搜索窗数据并不是直接用于拼接成最终的音频,因为搜索窗里包含重叠区域。
重叠区域:搜索窗数据在处理成最终音频的时候,每个搜索窗数据都会被下一个搜索窗数据重叠一块区域,这块区域叫做重叠区域。
合成帧:由于每个搜索窗数据都会被下一个搜索窗数据重叠一块区域,所以真正用于合成拼接的数据=搜索窗数据-重叠区域,这段数据叫做合成帧。所以播放速度=有效帧/合成帧
搜索窗可移动距离:用上一个搜索窗尾部重叠区域大小的数据(波形数据)作为参考,从当前分析帧头部开始往后平移寻找最相似的数据(相似的波形数据),可平移的最大距离就是搜索窗可移动距离。所以分析帧必须要比搜索窗+搜索窗可移动距离大才行。

熟悉了上面介绍的概念后再来看下面的波形相似度叠加算法示意图,图中展示了两个分析帧变成两个合成帧的完整过程。具体实现细节就看项目吧,主要涉及的操作就是计算波形相似度和叠加这两个相似波形。

重采样分为上采样和下采样,上采样就是增加数据,带来的效果是语速变慢且音调降低,下采样就是减少数据,带来的效果是语速变快且音调提高。所以配合波形相似叠加算法能做到变时不变调。下采样会造成混叠,上采样会造成镜像,想要了解的更细,需要先了解香浓采样定理,然后我推荐一个网址,讲的是上采样和下采样的内容https://www.cnblogs.com/TaigaCon/p/8512219.html。为了让重采样不出现混叠和镜像,本项目用的是窗函数(凯泽窗)设计的sinc低通滤波器进行重采样操作。

低通滤波的目的就是把低频信号保留,把高频信号除去,这相当于把一段音频的频域信号点乘sinc函数傅里叶变换后的频谱函数(该函数的形状请看上图的sinc函数频谱图)。频域点乘又相当于时域卷积,所以又相当于把一段音频时域信号和sinc函数做卷积,但是由于sinc函数在时域上是从负无穷到正无穷的,这就导致没法做卷积,我们观察一下这个sinc函数会发现,离坐标原点越远,曲线上下波动就越小,y值也越接近0,就表示信息量就越少,这时候有人肯定会想到那就裁剪一下,把接近坐标原点的中间这块裁剪下来做卷积。卷积后的结果如下图所示。

看上图会发现不再是标准的矩形函数,两边会有长长的拖尾,而且拖尾的y值还挺大的,这种现象叫做泄露,这不是我们想要的效果,我们还是希望能尽量的接近原来的矩形窗,这就引出了窗函数,对这个sinc函数进行加窗操作(就是裁剪并和窗函数点乘)就可以减少泄露。下面这图就是加了凯泽窗后的sinc函数频谱图

看上图会发现拖尾虽然还是存在,但是拖尾的y值变得更小了,这个效果虽然不是最理想的,但比原来好多了。所以用这个加了窗的sinc函数进行卷积就可以实现低通滤波。那么怎么用这个低通滤波器进行插值呢?请看下图。

为了方便项目的理解,可以先看看这个项目的简单介绍,该项目是先定义了搜索窗大小,搜索窗可移动距离大小和重叠区域大小,然后通过播放速度计算出其他的参数,包括合成帧大小,分析帧大小,有效帧大小和分析帧的重复区域大小。公式如下:
合成帧 = 搜索窗可移动距离重叠区域
有效帧 = 播放速度*(搜索窗-重叠区域)
分析帧 = Math.max(有效帧+重叠区域,搜索窗)+搜索窗可移动距离
分析帧的重复区域 = 分析帧-有效帧

今天春节,是新一年的开端,祝大家在新的一年里付出的努力都能有所收获,年牛大吉!

  • 鍙樺0鍣ㄦ庝箞鐢ㄥ湪QQ涓
    绛旓細鎶鍙樺0鍣ㄧ殑鎮诞绐楃粰鎵撳紑锛岃鍙樺0鍣ㄦ偓娴湪QQ鐨勯〉闈傚啀鎵撳紑鍙樺0鍣紝鐐瑰嚮椤甸潰鐨勫惎鍔ㄨ繖涓椤广傞〉闈笂灏变細鍑虹幇涓涓彉澹板櫒鐨勮闊冲浘鏍囨偓娴獥锛屽啀鎵撳紑鎵嬫満QQ銆傚啀杩涘叆缇ょ殑鑱婂ぉ椤甸潰锛岀偣鍑昏闊冲浘鏍囷紝閫夋嫨褰曢煶杩欎竴椤癸紝鎸変綇涓ょ銆傚啀鐐瑰嚮鍙樺0鍣ㄧ殑鎮诞绐楋紝閫夋嫨浣犺鍙橀煶鐨勮闊筹紝鐐瑰嚮鍙戦佽繖涓椤广傛渶鍚庤闊虫樉绀轰负鍙橀煶鐨勫0闊...
  • 姹備竴绉嶇數鑴戠涓婇潰鐨鍙橀煶杞欢,鍙互鐢风敓鍙樺コ鐢熺殑閭g,楂樿川閲忛偅绉峗鐧惧害鐭 ...
    绛旓細鏌愬疂瀹濅綘鍙墭涓嬧 澶у悏鍝鍙樺0鍣 鈥斻傚缓璁彲浠ヨ瘯璇曠湅 鍘绘壘涓嬪灚瀹跺嵆鍙 澶у悏鍝ュ彉澹板櫒 杞欢鐗硅壊 1銆佹洿鎬ф劅鐨勫0闊筹紝鏇村鐨勮嚜淇★細璁╂偍鐨勫0闊冲彉寰楁洿鍔犳繁娌夛紝绮楃媯锛屾ф劅銆2銆佽鑹叉壆婕斿伐鍏凤細涓婄櫨绉嶅亣澹板彲浠ョ敤鏉ユ弧瓒虫偍涓у寲鎮ㄧ殑娓告垙韬唤鍜岀壒璐ㄣ傛敼杩涘弻閲嶅0鍙绠楁硶锛氳繛鎺ュ拰铏氭嫙闊抽椹卞姩 杩樻槸鍙樺嚭鏉ョ殑澹伴煶姣旇緝...
  • 闊充箰缂栬緫杞欢 鍝釜濂界敤 绠鍗!!
    绛旓細3銆侀叿鐙楅煶涔 閰风嫍闊充箰鏄垜浠父鐢ㄧ殑闊充箰杞欢涔嬩竴锛岀敤鎴蜂滑涓嶄絾鑳藉娆h祻鍚勭鐑棬闊充箰锛岃繕鍙互鍓緫闊抽鍒朵綔鑷繁鍠滄鐨勪釜鎬ч搩澹般4銆丳roTools Digidesign鍏徃鍑哄搧鐨勫伐浣滅珯杞欢绯荤粺锛屾渶鏃╁彧鏄湪鑻规灉鐢佃剳涓婂嚭鐜帮紝鍚庢潵锛2015锛12锛変篃鏈変簡PC鐗堛侾roTools杞欢鍐呴儴绠楁硶绮捐壇锛屽闊抽銆丮IDI銆佽棰戦兘鍙互寰堝ソ鍦版敮鎸侊紝鐢变簬鍏剁畻娉...
  • 闊抽鍓緫杞欢鍝釜濂
    绛旓細4銆侀煶涔愬壀杈 闊充箰鍓緫鏄竴娆惧姛鑳芥瘮杈冨鐨闊抽鍓緫杞欢锛岄櫎浜嗛煶棰戠殑鍓垏浠ュ強鍚堟垚绛夊熀鏈殑鍔熻兘澶栵紝杩樻敮鎸佸悇绉嶆牸寮忕殑闊抽杩涜杞寲锛鍙橀煶銆佸彉閫熴佸彉璋冨姛鑳戒篃鍗佸垎濂界敤銆5銆丮P3鍓緫鍣 涓娆句笓闂ㄩ拡瀵筂P3鏍煎紡鐨勯煶棰戣繘琛屽壀鍒囩殑杞欢锛屾搷浣滅畝鍗曪紝闄や簡鍩烘湰鐨勯煶涔愬壀杈戝姛鑳戒互澶栵紝鎻愪緵娣烽煶銆佸彉闊冲姛鑳斤紝鏀寔瑙嗛杞垏鎴愰煶棰戯紝姣旇緝...
  • 闊抽澶勭悊鍣 ccm4021鎬庝箞鏍
    绛旓細CCM4021鍐呴儴闆嗘垚鐙珛2涓狪2S妯″潡锛屾敮鎸佷袱璺闊抽杈撳叆鍙婁袱璺煶棰戣緭鍑猴紝鎬昏4涓氶亾鐨処2S杈撳叆杈撳嚭銆傚彲閫氳繃SPI/I2C鎺ュ彛瀹炵幇瀵笴CM4021瀵勫瓨鍣ㄧ殑璇诲啓閰嶇疆浠ュ強鍔犺浇闊虫晥澶勭悊绠楁硶鍒板唴閮⊿RAM銆傚彲閫氳繃闊抽闊虫晥绠楁硶瀹炵幇娣峰搷銆侀棯閬裤佸帇闄愩侀檷鍣佸潎琛°佹贩闊冲強鍙橀煶绛夊绉嶉煶鏁堝鐞嗐傚彲搴旂敤浜嶴OUNDBAR銆佽溅杞姐佽虫満绛変骇鍝佷腑銆
  • bilibili 1.25鍊嶉熶负浠涔堜細鍙橀煶
    绛旓細杩欏叾瀹炴槸澹拌皟鍙橀珮锛岃屽0璋冧篃灏辨槸澹版尝鍗曚綅鏃堕棿鍐呯殑鎸姩娆℃暟锛岃棰戞挱鏀鹃熷害鍔犲揩锛屽崟浣嶆椂闂存尟鍔ㄦ鏁板彉澶氾紝澹拌皟鍙橀珮銆傛斁鎱㈠悓鐞嗗0璋冨彉浣庛傜幇鍦ㄧ殑瑙嗛APP閮藉凡缁忎娇鐢ㄦ櫤鑳绠楁硶锛屽湪涓嶆敼鍙樺師澹拌皟鐨勬儏鍐靛姞鏀瑰彉鍊嶉燂紝鎵浠ョ幇鍦ㄤ笉浼氬啀鍙樺0浜 鏈涢噰绾
  • 澶т富鎾竴鑸敤浠涔堝0鍗
    绛旓細澶т富鎾竴鑸敤瀹㈡墍鎬濆0鍗★紝瀹㈡墍鎬濆0鍗″彲浠ュ悓鏃舵敮鎸佷袱閮ㄦ墜鏈鸿繘琛岄珮娓呭綍闊宠緭鍏ャ傚鎵鎬(XOX)锛屼腑鍥界煡鍚嶇殑鐢佃剳闊抽璁惧鍒堕犲晢锛屼骇鍝佸寘鍚:USB澹板崱銆侀煶鏁堝櫒銆佸0鍗″缃珛浣撳0闊抽瑙g爜鍣ㄧ瓑銆傚鎵鎬濇槸娣卞湷甯傚鎵鎬濈數瀛愮鎶鏃椾笅鍝佺墝锛屽鎵鎬濇棗涓嬬煭鏈熻鍒掍腑鍏辨湁4涓瓙鍝佺墝锛屼富瑕佺敓浜у熀浜庣綉缁滃敱姝屽簲鐢ㄧ殑涓汉闊抽璁惧浜у搧銆傞拡瀵...
  • ai鍙樺0鎬庝箞鍋歛i鍙樺0鍣
    绛旓細3. 杩愯RVC鍙樺0鍣紝閫夋嫨妯″瀷骞惰缃緭鍏ヨ緭鍑 4. 鎺ㄧ悊鍙樺0鍣ㄦ楠わ紝鎷夊埌12 娉ㄦ剰锛氳櫄鎷熼┍鍔ㄤ繚鐣欎腑闂达紝涓婁笅涓や釜渚濇鍙抽敭绂佺敤锛屼繚鐣欓粯璁ら害鍏嬮鍜屽綍闊抽┍鍔ㄣ侫i鍙樺0闇瑕侀氳繃娣卞害瀛︿範绛変汉宸ユ櫤鑳芥妧鏈疄鐜帮紝鍏锋湁涓瀹氱殑鎶鏈毦搴﹂氳繃娣卞害瀛︿範鏉ュ垎鏋愬0闊崇壒寰佸苟杩涜杞崲澶勭悊锛岄渶瑕佺敤鍒闊抽澶勭悊鐩稿叧鐨绠楁硶鍜屾妧鏈紝姣斿璇碊NN(...
  • 鑰佸勾浜哄壀杈戣垶鏇查暱鐭敤浠涔堣蒋浠跺ソ
    绛旓細3銆侀叿鐙楅煶涔愰叿鐙楅煶涔愭槸鎴戜滑甯哥敤鐨勯煶涔愯蒋浠朵箣涓锛岀敤鎴蜂滑涓嶄絾鑳藉娆h祻鍚勭鐑棬闊充箰锛岃繕鍙互鍓緫闊抽鍒朵綔鑷繁鍠滄鐨勪釜鎬ч搩澹般4銆丳roTools Digidesign鍏徃鍑哄搧鐨勫伐浣滅珯杞欢绯荤粺锛屾渶鏃╁彧鏄湪鑻规灉鐢佃剳涓婂嚭鐜帮紝鍚庢潵锛2015锛12锛変篃鏈変簡PC鐗堛侾roTools杞欢鍐呴儴绠楁硶绮捐壇锛屽闊抽銆丮IDI銆佽棰戦兘鍙互寰堝ソ鍦版敮鎸侊紝鐢变簬鍏剁畻娉...
  • 扩展阅读:配音接单正规平台 ... 生成自己的ai配音 ... 自学配音怎样入行 ... 十大免费配音神器 ... 免费自学配音软件 ... 新手自学声优配音教程 ... 十大免费配音软件 ... 修音美化声音的软件 ... 免费配音 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网