sense-voice-cmvn.h

核心代码

完整代码

// Auto-generated. Do NOT edit!


const int cmvn_length = 560;

const float CMVN_MEANS[] = {
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	-8.31187900, -8.60091200, -9.61592800, -10.43595000, -11.21292000, -11.88333000, -12.36243000, -12.63706000,
	-12.88180000, -12.83066000, -12.89103000, -12.95666000, -13.19763000, -13.40598000, -13.49113000, -13.55460000,
	-13.55639000, -13.51915000, -13.68284000, -13.53289000, -13.42107000, -13.65519000, -13.50713000, -13.75251000,
	-13.76715000, -13.87408000, -13.73109000, -13.70412000, -13.56073000, -13.53488000, -13.54895000, -13.56228000,
	
	-13.59408000, -13.62047000, -13.64198000, -13.66109000, -13.62669000, -13.58297000, -13.57387000, -13.47390000,
	-13.53063000, -13.48348000, -13.61047000, -13.64716000, -13.71546000, -13.79184000, -13.90614000, -14.03098000,
	-14.18205000, -14.35881000, -14.48419000, -14.60172000, -14.70591000, -14.83362000, -14.92122000, -15.00622000,
	-15.05122000, -15.03119000, -14.99028000, -14.92302000, -14.86927000, -14.82691000, -14.79720000, -14.76909000,
	-14.71356000, -14.61277000, -14.51696000, -14.42252000, -14.36405000, -14.30451000, -14.23161000, -14.19851000,
	-14.16633000, -14.15649000, -14.10504000, -13.99518000, -13.79562000, -13.39960000, -12.77670000, -11.71208000,
	};

const float CMVN_VARS[] = {
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	0.15577500, 0.15448400, 0.15273790, 0.15187180, 0.15060280, 0.14892560, 0.14706700, 0.14470610,
	0.14363070, 0.14435680, 0.14518490, 0.14551570, 0.14528210, 0.14457170, 0.14391950, 0.14358670,
	0.14360180, 0.14387810, 0.14420860, 0.14488440, 0.14547560, 0.14566300, 0.14626800, 0.14673860,
	0.14727240, 0.14766400, 0.14809130, 0.14837390, 0.14888410, 0.14936360, 0.14970880, 0.15003790,
	
	0.15029160, 0.15053890, 0.15067870, 0.15071020, 0.15059920, 0.15054450, 0.15059380, 0.15081330,
	0.15095690, 0.15123960, 0.15146250, 0.15161950, 0.15161560, 0.15155610, 0.15149660, 0.15139760,
	0.15126120, 0.15107600, 0.15105960, 0.15104310, 0.15107700, 0.15111680, 0.15119170, 0.15102300,
	0.15080450, 0.15058850, 0.15034930, 0.15023730, 0.15017260, 0.15007620, 0.15000650, 0.14997820,
	0.15005700, 0.15026580, 0.15046900, 0.15053350, 0.15055050, 0.15053280, 0.15042750, 0.15024380,
	0.14996740, 0.14971180, 0.14946610, 0.14931020, 0.14936810, 0.14955010, 0.14997380, 0.15096540,
	};

代码解释

一句话总结

这是 CMVN 归一化需要用到的固定参数

  • CMVN_MEANS:均值
  • CMVN_VARS:方差(倒数)
  • 作用:让音频特征变得 “标准、统一、稳定”,模型识别更准

它是什么?

这是一个自动生成的配置文件,顶部写着:

plaintext

Auto-generated. Do NOT edit!
自动生成,禁止修改!

里面是两组560 维的浮点数

  1. CMVN_MEANS:均值
  2. CMVN_VARS:方差(实际上是标准差的倒数)

它有什么用?(超级通俗)

你可以把它理解成:

给语音特征 “统一穿校服”

  • 每个人声音大小不同
  • 环境噪音不同
  • 录音设备不同
  • 声音高低不同

如果不统一,模型会懵。

CMVN 做的事:

plaintext

标准化 = (原始特征 - 均值) × 方差倒数

让所有声音特征变成:

  • 均值 = 0
  • 方差 = 1

模型只认标准化后的特征!


为什么是 560?

因为:

  • 梅尔滤波器:80 维
  • LFR 拼接:7 帧合成 1 帧
  • 80 × 7 = 560 维

所以 cmvn_length = 560


它在代码里哪里被使用?

在你刚才看的 frontend 前端预处理 最后一步:

cpp

运行

// apply cvmn
for (int i = 0; i < T_lrf; i++) {
    for (int j = 0; j < feats.lfr_m * feats.n_mel; j++) {
        feats.data[i * feats.lfr_m * feats.n_mel + j] =
            (out_feats[i][j] + cmvn.cmvn_means[j]) * cmvn.cmvn_vars[j];
    }
}

就是用的 这里的均值和方差


它从哪里来?

这是训练前统计出来的

  • 用几千小时语音
  • 计算所有语音特征的全局均值、方差
  • 保存成这个文件
  • 推理时必须用一模一样的,否则识别错误

人人皆为创造者,共创方能共成长


每个人都是使用者,也是创造者;是数字世界的消费者,更是价值的生产者与分享者。在智能时代的浪潮里,单打独斗的发展模式早已落幕,唯有开放连接、创意共创、利益共享,才能让个体价值汇聚成生态合力,让技术与创意双向奔赴,实现平台与伙伴的快速成长、共赢致远。

原创永久分成,共赴星辰大海

原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基  生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。

东方仙盟:拥抱知识开源,共筑数字新生态

在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。

开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。
共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议   与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。
知识普惠,共促发展:通过开源社区   、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济  的普惠式增长


阿雪技术观


在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者。无论是分享代码、撰写技术博客,还是参与开源项目   维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基 生命,为科技进步添砖加瓦。

Hey folks, in this  wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just  be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets        , hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome      place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐