发明名称 一种音频数据质量优化方法
摘要 本发明公开了一种音频数据质量优化方法,具体流程为:先计算每一帧音频数据的时间戳计数,然后相邻两帧音频数据之间的时间戳计数差值,如果差值大于正常差值的5倍,则采用时效优化算法进行修正;如果差值大于正常差值的1.5倍且小于5倍,则采用质量优先算法修正;如果差值小于正常差值的1.5倍,则不进行修正。本方案修正之后,不再产生暴音,普通听力人员也发觉不了音频内容的缺失,很好的保证了广播电台对这部分音频引用播出的节目质量。本方案适用于数字视频广播中对音频数据实时的优化处理。
申请公布号 CN104240716B 申请公布日期 2017.04.26
申请号 CN201410255048.7 申请日期 2014.06.11
申请人 杭州联汇数字科技有限公司 发明人 赵凡;吕连新
分类号 G10L21/02(2013.01)I 主分类号 G10L21/02(2013.01)I
代理机构 杭州杭诚专利事务所有限公司 33109 代理人 王江成;卢金元
主权项 一种音频数据质量优化方法,其特征在于,包括以下步骤:步骤一、计算每一帧音频数据的时间戳计数;步骤二、检验相邻两帧音频数据之间的时间戳计数差值,如果差值大于正常差值的5倍,则在相邻两帧之间插入<i>L</i>个静音采样点,<i>L</i>的计算公式如下:<i>L</i>=(<i>P</i>2(<i>t</i>)‑<i>P</i>1(<i>t</i>)‑<i>J</i>(<i>x</i>))×<i>x</i>/90000<i>P</i>1(<i>t</i>)为前一帧音频数据的时间戳计数,<i>P</i>2(<i>t</i>)为后一帧音频数据的时间戳计数,<i>J</i>(<i>x</i>)为正常差值,<i>x</i>为音频数据的采样率,<i>J</i>(<i>x</i>)的计算公式如下:<i>J</i>(<i>x</i>)=(1152/<i>x</i>)×90000;步骤二中,如果相邻两帧音频数据之间的时间戳计数差值大于正常差值的1.5倍且小于正常差值的5倍,则按如下方式进行修正:需要修复的采样点个数为N,FB为波形断开点在原始采样点数据中的序号,BL为断点波形长度,原始采样点数组为S<sub>N</sub>,修正后输出采样点数组为So<sub>N</sub>,P为计算波形能量云矩阵纬度,P=min(BL×3,N),矩阵X<sub>P×P</sub>初始状态下所有元素均为0,数组B<sub>P</sub>初始状态下所有元素均为0,变量i、变量row、变量col、变量row2和变量col2的初始值均为0;X[row][col]表示矩阵X<sub>P×P</sub>的第row行第col列的元素,B[row]表示数组B<sub>P</sub>的第row个元素;S1、对矩阵X<sub>P×P</sub>和数组B<sub>P</sub>赋值;S2、对矩阵X<sub>P×P</sub>求逆,得到逆矩阵X<sup>‑1</sup><sub>P×P</sub>;S3、将逆矩阵X<sup>‑1</sup><sub>P×P</sub>与数组B<sub>P</sub>相乘得到数组A<sub>P</sub>;S4、对矩阵X2<sub>(N‑P)×P</sub>赋值;S5、取矩阵X2<sub>(N‑P)×P</sub>的故障分块子矩阵X2′<sub>(N‑P)×BL</sub>,取得算法为:X2′<sub>(N‑P)×BL</sub> = SubMatrix(X2<sub>(N‑P)×P</sub>, 0, N‑P, FB, BL);对故障分块子矩阵实行转置处理得到矩阵:X2<sup>T</sup><sub>BL×(N‑P)</sub>;S6、取矩阵X2<sub>(N‑P)×P</sub>的故障前分块子矩阵X2前′<sub>(N‑P)×BL</sub>,取得算法为:X2前′<sub>(N‑P)×FB</sub> = SubMatrix(X2<sub>(N‑P)×P</sub>, 0, N‑P, 0, FB);S7、取矩阵X2<sub>(N‑P)×P</sub>的故障后分块子矩阵X2后′<sub>(N‑P)×BL</sub>,取得算法为:X2后′<sub>(N‑P)×FB</sub> = SubMatrix(X2<sub>(N‑P)×P</sub>, 0, N‑P, 0, FB);S8、对故障前分块子矩和故障后分块子矩阵进行列合并,得到合并后矩阵Ak<sub>(N‑P)×(B‑BL)</sub>;S9、取原始采样点S<sub>N</sub>数组的故障前子集S前<sub>FB</sub>,取得算法为:S前<sub>FB</sub>= SubArray(S<sub>N</sub>,0,FB);S10、取原始采样点S<sub>N</sub>数组的故障后子集S后<sub>(N‑FB‑BL)</sub>,取得算法为:S后<sub>(N‑FB‑BL)</sub>= SubArray(S<sub>N</sub>,FB+BL,N‑FB‑BL);S11、对故障前子集和故障后子集进行合并,得到合并后的数组Sk<sub>(N‑BL)</sub>;S12、将矩阵X2<sup>T</sup><sub>BL×(N‑P)</sub>和矩阵X2′<sub>(N‑P)×BL</sub>相乘得到矩阵X3<sub>BL×BL</sub>,即X3<sub>BL×BL</sub>= X2<sup>T</sup><sub>BL×(N‑P)</sub>×X2′<sub>(N‑P)×BL</sub>;S13、对矩阵X3<sub>BL×BL</sub>求逆得到矩阵X3<sup>‑1</sup><sub>BL×BL</sub>;S14、将矩阵X3<sup>‑1</sup><sub>BL×BL</sub>中每个元素的符号取反,得到矩阵‑X3<sup>‑1</sup><sub>BL×BL</sub>,即‑X3<sup>‑1</sup><sub>BL×BL</sub>=X3<sup>‑1</sup><sub>BL×BL</sub>×(‑1);S15、将矩阵‑X3<sup>‑1</sup><sub>BL×BL</sub>与矩阵X2<sup>T</sup><sub>BL×(N‑P)</sub>相乘得到矩阵X4<sub> BL×(N‑P)</sub>,即X4<sub> BL×(N‑P)</sub>= ‑X3<sup>‑1</sup><sub>BL×BL</sub>×X2<sup>T</sup><sub>BL×(N‑P)</sub>;S16、将矩阵X4<sub> BL×(N‑P)</sub>与矩阵Ak<sub>(N‑P)×(B‑BL)</sub>相乘得到矩阵X5<sub>BL×(N‑BL)</sub>,即X5<sub>BL×(N‑BL)</sub> = X4<sub> BL×(N‑P)</sub> ×Ak<sub>(N‑P)×(B‑BL)</sub>;S17、将矩阵X5<sub>BL×(N‑BL)</sub>与数组Sk<sub>(N‑BL)</sub>相乘以后得到数组Su<sub>BL</sub>,即Su<sub>BL</sub>= X5<sub>BL×(N‑BL)</sub> ×Sk<sub>(N‑BL)</sub>;S18、将数组S前<sub>FB</sub>、数组Su<sub>BL</sub>和数组S后<sub>(N‑FB‑BL)</sub>得到数组So<sub>N</sub>。
地址 310052 浙江省杭州市滨江区长河街道秋溢路399号3号楼四层