MFCCÌØÕ÷ÌáÈ¡£ºÈûúÆ÷¡°Ìý¡±¶®ÉùÒôµÄÃØ¾÷
ÄãÓÐûÓÐºÃÆæ¹ý£¬ÏñSiri¡¢Ð¡°®Í¬Ñ§»ò³µÔØÓïÒôÖúÊÖÕâÑùµÄÖÇÄÜϵͳ£¬ÊÇÈçºÎÀí½âÎÒÃÇ˵µÄ»°µÄ£¿ËüÃÇÕæµÄÖ»ÊÇÔÚ´¦ÀíÔʼÉùÒô²¨ÐÎÂð£¿Æäʵ±³ºóÓÐÒ»Ì׸´ÔÓµÄÒôƵÐźŴ¦ÀíÁ÷³Ì£¬¶øÆäÖÐ×îºËÐĵļ¼ÊõÖ®Ò»¾ÍÊÇ¡ª¡ª
MFCC£¨Ã·¶ûƵÂʵ¹Æ×ϵÊý£©¡£
Õâ¸öÊõÓïÌýÆðÀ´×¨ÒµÓÖ»Þɬ£¬µ«ËüµÄÄ¿±êÈ´·Ç³£Ìù½üÈËÀà¸ÐÖª£ºÊ¹»úÆ÷ÌáÈ¡µÄÉùÒôÌØÕ÷¾¡¿ÉÄܽӽüÈ˶úʵ¼Ê¡°Ìýµ½¡±µÄÄÚÈÝ¡£»»¾ä»°Ëµ£¬MFCC²¢²»ÊǼòµ¥µØ·ÖÎöÒôƵµÄÎïÀíÌØÐÔ£¬¶øÊdz¢ÊÔÄ£ÄâÈËÀàÌý¾õϵͳµÄÐÄÀíÉùѧ»úÖÆ¡£Ëü¸ü¹Ø×¢¡°ÌýÆðÀ´Ïñʲô¡±£¬¶ø²»ÊÇ¡°ÆµÂʾ«È·ÊǶàÉÙ¡±¡£
ÄÇôÎÊÌâÀ´ÁË£ºÈËÀàÌý¾õ¾¿¾¹ÓкζÀÌØÖ®´¦£¿MFCCÓÖÊÇÈçºÎʵÏÖÕâÖÖ¡°ÀàÈË»¯¡±µÄÌý¾õÄ£ÄâÄØ£¿ÏÂÃæÎÒÃÇÒ»²½²½À´½âÎö¡£
ΪʲôÆÕͨµÄƵÆ×·ÖÎö²»¹»Óã¿
Ò»¸ö³£¼ûµÄÒÉÎÊÊÇ£º¼ÈÈ»FFT£¨¿ìËÙ¸µÀïÒ¶±ä»»£©¿ÉÒÔ½«ÉùÒôת»¯ÎªÆµÆ×ͼ£¬ÎªÊ²Ã´²»Ö±½ÓʹÓÃÕâЩƵÆ×Êý¾Ý½øÐÐÓïÒôʶ±ðÄØ£¿
´ð°¸ÊÇ¡ª¡ªÒòΪÈ˶úµÄ¹¤×÷·½Ê½¸ù±¾²»ÊÇÏßÐԵģ¡
¾Ù¸öÀý×Ó£ºÄãÄÜÇáËÉ·Ö±æ³ö100HzºÍ200HzÖ®¼äµÄ²îÒ죬µ«¶ÔÓÚ3000HzÓë3100HzµÄÇø±ðÈ´¼¸ºõ²ì¾õ²»µ½¡£Õâ˵Ã÷ÁËÒ»¸ö¹Ø¼üÊÂʵ£ºÈ˶ú¶ÔµÍƵ¸üΪÃô¸Ð£¬¶ø¶Ô¸ßƵµÄ·Ö±æÄÜÁ¦ÏÔÖøÏ½µ£¬ÕâÊÇÒ»ÖÖµäÐ͵ķÇÏßÐÔ¸ÐÖªÏÖÏó¡£
È»¶ø£¬±ê×¼FFTµÃµ½µÄÊÇÏßÐÔÆµÂÊ·Ö²¼£¬Ã¿¸öƵÂÊÇø¼ä¿í¶ÈÏàµÈ¡£Õâ¾Íµ¼ÖÂÁË¡°»úÆ÷¿´µ½µÄ¡±ÆµÆ×Óë¡°ÈËʵ¼ÊÌýµ½µÄ¡±¸Ð֪Ч¹ûÑÏÖØÍѽڡ£
ΪÁ˽â¾öÕâ¸öÎÊÌ⣬Ñо¿ÈËÔ±ÒýÈëÁËÒ»ÖÖÐÂµÄÆµÂʳ߶ȡª¡ªÃ·¶û£¨Mel£©³ß¶È¡£ÔÚÕâ¸öÌåϵÖУ¬ÆµÂʲ»ÔÙÊǾùÔÈ»®·ÖµÄ£¬¶øÊÇËæ×ÅÆµÂÊÉý¸ßÖ𽥡°ÀÉ족£¬ÔÚµÍÆµÇøÓòÔò¸ü¼Ó¡°Ñ¹Ëõ¡±¡£ÕâÑùÒ»À´£¬ÆµÂʵıíʾ·½Ê½¾Í¸ü·ûºÏÈËÀàÌý¾õµÄʵ¼ÊÏìӦģʽ¡£
Òò´Ë£¬MFCCµÄµÚÒ»²½Öǻ۾ÍÔÚÓÚ£º´ÓÐÄÀíÉùѧ³ö·¢£¬Öع¹ÆµÂʿռ䣬ʹÆä¸üÌùºÏÈËÀàÌý¸Ð¡£
Áù²½ÊµÏÖMFCC£ºÃ¿Ò»²½¶¼ÔڱƽüÈ˶ú¸ÐÖª
±ð±»¡°µ¹Æ×¡±Õâ¸ö´ÊÏŵ½£¬Õû¸öMFCCÁ÷³ÌÂß¼ÇåÎú£¬¾ÍÏñÅë⿲½ÖèÒ»Ñù»·»·Ïà¿Û¡£ÏÂÃæÎÒÃÇÖðÒ»²ð½â£º
1. Ô¤¼ÓÖØ ¡ª¡ª ÌáÉý΢ÈõµÄ¸ßƵ³É·Ö
˵»°Ê±£¬×ì´½µÄ·øÉäЧӦ»áµ¼ÖÂ¸ßÆµÄÜÁ¿×ÔȻ˥¼õ£¨´óÔ¼-6dB/±¶Æµ³Ì£©¡£Èç¹û²»¼ÓÒÔ²¹³¥£¬ÔÚºóÐø´¦ÀíÖÐÕâÐ©ÖØÒªµÄ¸ßƵÐÅÏ¢¿ÉÄܻᱻÑÍû¡£
Òò´ËµÚÒ»²½ÊǽøÐÐÔ¤¼ÓÖØ£¨Pre-emphasis£©£¬Ï൱ÓÚ¸øÐźŴ÷ÉÏÒ»¸±¡°ÖúÌýÆ÷¡±£¬ÔöÇ¿¸ßƵ²¿·Ö¡£
ÆäÊýѧ±í´ï·Ç³£¼ò½à£º
$$ y[n] = x[n] - \alpha x[n-1] $$
ÆäÖÐ $\alpha$ ͨ³£È¡ÖµÎª 0.95~0.97£¬±¾ÖÊÉÏÊÇÒ»¸öÒ»½×¸ßͨÂ˲¨Æ÷¡£
ÕâÏî²Ù×÷²»½öÓÐÖúÓÚÌáÉýÐÅÔë±È£¬»¹ÄܱÜÃâºóÐø¶ÔÊýÔËËãÖгöÏÖ $ \log(0) $ ÕâÀàÊýÖµÒì³££¬ÊôÓÚ¸ßЧÇÒʵÓõÄǰÖô¦ÀíÊֶΡ£
def pre_emphasis(signal, alpha=0.97):
return np.append(signal[0], signal[1:] - alpha * signal[:-1])
ʵÏÖÆðÀ´¼«ÆäÇáÁ¿£¬½öÐèÒ»Ðвî·Ö¼ÆË㣬²»Ó°ÏìʵʱÐÔÄÜ£¬·Ç³£ÊʺÏǶÈëʽÉ豸²¿Êð¡£
2. ·ÖÖ¡ + ¼Ó´° ¡ª¡ª ÇиîÓïÒô²¢Èữ±ß½ç
ÓïÒôÊÇÒ»ÖÖ·ÇÆ½ÎÈÐźţ¬µ«ÎÒÃÇ¿ÉÒÔÔÚ¶Ìʱ¼äÄÚ¼ÙÉèËüÊÇÎȶ¨µÄ¡ª¡ªÒ»°ãÈÏΪÔÚ20~30ºÁÃëÄÚÓïÒôÌØÐÔ»ù±¾²»±ä¡£Òò´Ë£¬ÎÒÃǽ«Á¬ÐøÓïÒôÇзÖΪ¶Ìʱ¶Î½øÐзÖÎö£¬ÕâÒ»¹ý³Ì³ÆÎª·ÖÖ¡¡£
³£ÓòÎÊýÉèÖÃÈçÏ£º
- Ö¡³¤£º25ms ¡ú ¶ÔÓ¦400¸ö²ÉÑùµã£¨²ÉÑùÂÊ16kHz£©
- Ö¡ÒÆ£º10ms ¡ú ÿ´Î»¬¶¯160¸ö²ÉÑùµã
- ÖØµþÂʸߴï60%£¬È·±£²¶×½·¢Òô¹ý¶ÉµÄϸ½Ú
µ«Èç¹ûÖ±½Ó½Ø¶ÏÓïÒôƬ¶Î£¬»áÔÚÖ¡±ßÔµ²úÉúÍ»±ä£¬Òý·¢ÆµÆ×й©£¨¼´¼ª²¼Ë¹Ð§Ó¦£©¡£ÎªÁ˱ÜÃâÕâÒ»ÎÊÌ⣬ÎÒÃÇÐèÒª¶Ôÿһ֡ʩ¼ÓÒ»¸öƽ»¬¹ý¶ÉµÄ´°¿Úº¯Êý¡£
×î³£ÓõÄÊǺºÃ÷´°£¨Hamming Window£©£¬Ëüʹ֡Á½¶ËÖð½¥Ë¥¼õÖÁÁ㣬ÐγÉÀàËÆ¡°Èá¹âÂ˾µ¡±µÄЧ¹û¡£
frames *= np.hamming(frame_length)
¾¹ý¼Ó´°´¦Àíºó£¬Ã¿Ò»Ö¡¶¼±äµÃ¸ü¼Óƽ»¬£¬¸üÊʺϺóÐøµÄƵÓò·ÖÎö¡£
3. FFT ¡ª¡ª ת»»µ½ÆµÂÊÓò
½ÓÏÂÀ´Í¨¹ý¿ìËÙ¸µÀïÒ¶±ä»»£¨FFT£©£¬½«Ê±ÓòÐźÅת»»ÎªÆµÓò±íʾ£¬Õýʽ½øÈ롰ƵÂÊÎę̀¡±¡£
ÐèҪעÒ⼸¸ö¼¼ÊõÒªµã£º
- ʵ¼Ê²ÉÓÃʵÊýFFT£¨RFFT£©£¬Ö»±£Áôǰ°ë²¿·Ö½á¹û£¨Òò¹²éî¶Ô³ÆÐÔ£©
- ³£½«Êý¾Ý²¹ÁãÖÁ512µã£¨×î½üµÄ2µÄÃݴΣ©£¬ÒÔÌá¸ßƵÂÊ·Ö±æÂÊ
- Êä³öΪ¹¦ÂÊÆ×£º$ P = |X(f)|^2 / N $
rfft
mag_frames = np.absolute(np.fft.rfft(frames, nfft))
pow_frames = ((1.0 / nfft) * (mag_frames ** 2))
´Ëʱ»ñµÃµÄÊÇÒ»×é»ùÓÚÊýѧ¼ÆËãµÄƵÆ×Êý¾Ý£¬ÈÔ´øÓÐÃ÷ÏԵĻúÐµÌØÐÔ¡£ÕæÕýµÄ¡°ÄâÈË»¯¡±´¦Àí²Å¸Õ¸Õ¿ªÊ¼¡£
4. ÷¶ûÂ˲¨Æ÷×é ¡ª¡ª Ä£ÄâÌý¾õÉñ¾ÏìÓ¦
Õâ²ÅÊÇMFCCµÄºËÐÄËùÔÚ£¡
ÉèÏëһϣ¬È˶úµÄ»ùµ×ĤÉÏ·Ö²¼×Å´óÁ¿Ã«Ï¸°û£¬ËüÃǶԲ»Í¬ÆµÂʾßÓÐÑ¡ÔñÐÔÏìÓ¦£ºµÍÆµÇøÃܼ¯£¬¸ßÆµÇøÏ¡Êè¡£MFCCͨ¹ýÒ»×éÈý½ÇÐδøÍ¨Â˲¨Æ÷À´Ä£ÄâÕâÖÖÉúÀí½á¹¹¡£
ÕâЩÂ˲¨Æ÷²¢·Ç¾ùÔÈ·Ö²¼£¬¶øÊǰ´ÕÕ÷¶û³ß¶ÈÅÅÁУº
$$ \text{Mel}(f) = 2595 \log_{10}\left(1 + \frac{f}{700}\right) $$
È»ºó½«¸ÃÓ³Éä·´Ïòת»»»ØHz£¬È·¶¨Ã¿¸öÂ˲¨Æ÷µÄÖÐÐÄÆµÂÊλÖã¬×îÖÕ¹¹½¨³öÒ»¸öµÍƵÃÜ¡¢¸ßƵÊèµÄÄÜÁ¿²É¼¯ÍøÂç¡£
ʵÏÖ·½Ê½Ö±¹Û¸ßЧ£º
fbank = create_mel_filterbank(fs=16000, nfft=512, nfilt=40)
filter_banks = np.dot(pow_frames, fbank.T) # ¾ØÕó³Ë·¨¼ÓËÙ
filter_banks = 20 * np.log10(filter_banks + 1e-10) # תdB£¬·Àlog(0)
ÕâÖÖ·½·¨µÄÓÅÊÆÔÚÓÚ£º
- ×Ô¶¯¾Û½¹ÓÚÓïÒôµÄ¹Ø¼üƵ¶Î£¨Ô¼200¨C3500Hz£©
- ºöÂÔÈ˶ú²»Ãô¸ÐµÄ¸ßƵÔëÉù¸ÉÈÅ
- ´ó·ù½µµÍÊä³öά¶È£¨ÀýÈç´Ó257¸öƵµãѹËõµ½40ά£©
´ËÍ⣬¶ÔÊýѹËõ»¹ÆõºÏÁËÐÄÀíѧÖеÄΤ²®-·ÑÏ£Äɶ¨ÂÉ¡ª¡ª¼´È˶ú¶ÔÏì¶ÈµÄ¸ÐÖªÓëÉùÇ¿³Ê¶ÔÊý¹ØÏµ¡£ÕâÊÇÐÄÀíÉùѧÓ빤³Ìʵ¼ùµÄÒ»´ÎÍêÃÀ½áºÏ¡£
5. DCT ¡ª¡ª ÌáÈ¡¡°ÉùÒôÖ¸ÎÆ¡±
ÏÖÔÚÎÒÃÇÒѾµÃµ½ÁË40άµÄ¶ÔÊý÷¶ûÄÜÁ¿£¬µ«ÓÉÓÚÏàÁÚÂ˲¨Æ÷Ö®¼ä´æÔÚÖØµþ£¬ÕâЩά¶È¸ß¶ÈÏà¹Ø¡£ÄÜ·ñ½øÒ»²½Ñ¹ËõÈßÓàÐÅÏ¢£¿
µ±È»¿ÉÒÔ£¡ÕâʱÒýÈëÀëÉ¢ÓàÏұ任£¨DCT£©£¬½«Ïà¹ØÐÔÇ¿µÄ÷¶ûÄÜÁ¿×ª»»ÎªÒ»×éÏ໥¶ÀÁ¢µÄϵÊý¡£
ͨ³£Ö»±£Áôǰ12~13¸öDCTϵÊý£¬ÕâЩ¾ÍÊÇËùνµÄMFCCϵÊý£¬Ò²±»³Æ×÷¡°ÉùÒôµÄÖ¸ÎÆ¡±¡ª¡ªËüÃÇŨËõÁËÓïÒôÖÐ×î¾ß±æÊ¶¶ÈµÄÐÅÏ¢£¬Í¬Ê±ÌÞ³ýÁËÈßÓàºÍÔëÉù¡£
ÖÁ´Ë£¬MFCCÌØÕ÷ÌáÈ¡Íê³É¡£ÕâÌ×Á÷³Ì´ÓÔ¤¼ÓÖØµ½DCT£¬Ã¿Ò»²½¶¼ÔÚÏòÈËÀàÌý¾õϵͳ¿¿Â££¬Ê¹µÃ»úÆ÷²»½öÄÜ¡°Ìý¼û¡±ÉùÒô£¬¸üÄÜ¡°Ìý¶®¡±ÉùÒô¡£
½è¼øÀàËÆPCAµÄºËÐÄ˼Ï룬½«ÐźŵÄÄÜÁ¿¼¯ÖÐÌåÏÖÔÚǰ¼¸¸öϵÊýÉÏ£¬´Ó¶øÊµÏÖ½µÎ¬ÓëÌØÕ÷Ç¿»¯¡£¾¹ýÕâÒ»´¦ÀíºóµÃµ½µÄ½á¹û±»³ÆÎª¡°µ¹Æ×¡±£¨Cepstrum£¬¼´spectrumµÄµ¹Ðò¶ÁÒô£©£¬¶øÆäÖеÄǰ12ÖÁ13¸öϵÊý£¬ÕýÊÇÎÒÃÇËùÐèµÄMFCCÌØÕ÷¡£
mfcc = dct(filter_banks, type=2, axis=1, norm='ortho')[:, :12]
¹ØÓÚµÚ0άϵÊý£¨C0£©µÄÈ¡ÉáÎÊÌâ
ÔÚʵ¼ÊÓ¦ÓÃÖдæÔÚÒ»¸öСÕùÒ飺ÊÇ·ñÓ¦±£ÁôMFCCÖеĵÚ0άϵÊý£¨C0£©£¿
- C0·´Ó³µÄÊÇÓïÒôÖ¡µÄÕûÌåÄÜÁ¿Ë®Æ½£¬¿ÉÓÃÓÚ¼ì²â¾²Òô¶Î»òÅжÏÓïÒô»îÔ¾³Ì¶È£»
- È»¶ø£¬ÔÚ²¿·ÖÈÎÎñÖУ¬¸Ãά¶È»áͨ¹ýµ¹Æ×¾ùÖµ¹éÒ»»¯£¨CMS£©±»È¥³ý£¬ÒÔÏ÷ÈõÒòÂó¿Ë·çÁéÃô¶È²îÒì´øÀ´µÄÉ豸ƫ²î¡£
½¨Òé×ö·¨ÊÇ£º±£ÁôC0£¬µ«¶ÔÆä½øÐжÀÁ¢´¦Àí£¬ÒÔ±ã¼æ¹ËÄÜÁ¿ÐÅÏ¢ÓëÉ豸³°ôÐÔ¡£
¦¤ Óë ¦¤¦¤£ºÎªÌØÕ÷×¢È붯̬ÐÅÏ¢
¾²Ì¬µÄMFCC½öÄ̻ܿijһʱ¿ÌµÄÉùÒôÌØÐÔ£¬¶øÓïÑÔ±¾ÖÊÉÏÊÇÒ»ÖÖ¶¯Ì¬±í´ï¹ý³Ì¡ª¡ªÒôËØ¼äµÄ¹ý¶É¡¢Óïµ÷µÄ±ä»¯¡¢ÓïËٵĿìÂýµÈ¶¼Ô̺¬ÖØÒªÐÅÏ¢¡£Îª´Ë£¬ÒýÈëÁË£º
- Ò»½×²î·Ö£¨Delta£©£ºÄ£ÄâÌØÕ÷ËæÊ±¼ä±ä»¯µÄ¡°ËÙ¶È¡±£»
- ¶þ½×²î·Ö£¨Delta-Delta£©£ºÃèÊö±ä»¯µÄ¡°¼ÓËÙ¶È¡±¡£
ÆäʵÏÖ·½Ê½ÀàËÆÓÚ»¬¶¯´°¿ÚÄÚµÄÏßÐÔÄâºÏ£¬Í¨³£²ÉÓáÀ2Ö¡×÷Ϊ´°¿Ú·¶Î§£¬¼ÆËãÏàÁÚÖ¡Ö®¼äµÄбÂÊ¡£
def calculate_deltas(mfcc, window=2):
denominator = sum(i*i for i in range(-window, window+1))
delta = np.zeros_like(mfcc)
for t in range(window, mfcc.shape[0]-window):
for n in [-2,-1,0,1,2]:
delta[t] += n * mfcc[t+n]
return delta / denominator
×îÖÕ£¬½«ÔʼµÄ13ά¾²Ì¬MFCC¡¢13άDeltaºÍ13άDelta-DeltaÆ´½ÓÆðÀ´£¬¹¹³É¾µäµÄ39Î¬ÌØÕ÷ÏòÁ¿¡£ÕâÖÖ×éºÏÒѳÉΪ´«Í³ÓïÒôʶ±ðϵͳÖÐ×î³£¼ûµÄÊäÈë¸ñʽ¡£
ʵս¾Ñé·ÖÏí£º³£¼ûÏÝÚåÓëÓÅ»¯²ßÂÔ
ÀíÂÛ¿´ËÆÇåÎú£¬µ«ÔÚÕæÊµÏîÄ¿ÖÐÈÔÐèÃæ¶ÔÖî¶àÌôÕ½¡£ÒÔÏÂÊÇÎÒÔÚ¹¤³Ìʵ¼ùÖÐ×ܽá³öµÄ¹Ø¼üÒªµã£º
²ÎÊýµ÷ÓŲο¼±í
| ²ÎÊý | ÍÆ¼öÖµ | ˵Ã÷ |
|---|---|---|
| ²ÉÑùÂÊ | ¡Ý16kHz | µÍÓÚ8kHz»áµ¼Ö¸¨Òôϸ½Ú¶ªÊ§£¬Ó°Ïìʶ±ð¾«¶È |
| Ö¡³¤ | 20~30ms | ¹ý¶ÌÔòƵÂÊ·Ö±æÂʲ»×㣬¹ý³¤ÔòËðʧʱ¼äÃô¸ÐÐÔ |
| Â˲¨Æ÷ÊýÁ¿ | 26~40 | ÖÐÎij¡¾°½¨ÒéʹÓÃ32~40£¬Ó¢ÎÄ26ͨ³£ÒÑ×ã¹» |
| DCT½×Êý | 12~13 | ³¬¹ý15¿ÉÄÜÒýÈëÈßÓàÔëÉù£¬½µµÍ·º»¯ÄÜÁ¦ |
Ò×´íµãÌáÐÑ
- Îñ±Ø¼ÓÈ뼫Сֵeps£¬·ÀÖ¹log(0)µ¼ÖÂÊýÖµÒì³££º
log(power + 1e-10)
- ±ÜÃâÉèÖùý¶àµÄ÷¶ûÂ˲¨Æ÷£¬ÓÈÆäÔÚѵÁ·Êý¾ÝÓÐÏÞʱ£¬ÈÝÒ×Òý·¢¹ýÄâºÏ£»
- ½÷É÷ÍêÈ«ÒÀÀµ¶Ëµ½¶ËÄ£ÐÍÌæ´ú´«Í³Á÷³Ì¡ª¡ª¾¡¹ÜWav2VecµÈ·½·¨±íÏÖÓÅÒ죬µ«ÔÚMCUµÈµÍ¹¦ºÄÉ豸ÉÏÄÑÒÔÔËÐУ»
- ÔÚÔëÉù»·¾³Ï£¬ÍƼö½áºÏCMS£¨µ¹Æ×¾ùÖµ¹éÒ»»¯£©»òRASTAÂ˲¨¼¼Êõ£¬ÏÔÖøÌáÉýϵͳ³°ôÐÔ¡£
³£Óù¤¾ßÍÆ¼ö
ÎÞÐèÖØ¸´ÔìÂÖ×Ó£¬ÒÔϳÉÊì¿â¿É´ó·ùÌáÉý¿ª·¢Ð§ÂÊ£º
£ºPython»·¾³ÏÂÊ×Ñ¡£¬¾«¶È¸ß¡¢ÎĵµÍêÉÆ£»librosa.feature.mfcc()
£º¹¤Òµ¼¶×Ô¶¯ÓïÒôʶ±ð¹¤¾ßÁ´£¬Ö§³Ö¶àÖÖMFCC±äÌ壻Kaldi
£º×¨×¢ÓÚÓïÒôÌØÕ÷ÌáÈ¡£¬APIÉè¼Æ¼ò½àÓѺá£speechpy
MFCC vs Éî¶Èѧϰ£ºÎ´À´ÊôÓÚË£¿
³£ÓÐÈËÌáÎÊ£º¡°Èç½ñÒÑÊÇ2025Ä꣬Transformer¶¼ÄÜÉú³É¸ßÖÊÁ¿ÓïÒôÁË£¬»¹ÐèÒªMFCCÂ𣿡±
ÎҵĴ𰸺ÜÃ÷È·£ºÐèÒª£¡ÓÈÆäÊÇÔÚÏÖʵӦÓó¡¾°ÖС£
ËäÈ»Éî¶ÈÄ£ÐÍÈçWav2Vec¡¢HuBERTÄܹ»Ö±½Ó´ÓÔʼ²¨ÐÎÖÐÑ§Ï°ÌØÕ÷£¬Õ¹ÏÖ³öÇ¿´óÐÔÄÜ£¬µ«Ò²ÃæÁÙ¼¸¸ö¹Ø¼üÎÊÌ⣺
- ѵÁ·³É±¾¼«¸ß£¬ÒÀÀµ´ó¹æÄ£±ê×¢Êý¾Ý£»
- Ä£ÐÍΪºÚÏä½á¹¹£¬È±·¦¿É½âÊÍÐÔ£»
- ¶Ô¼ÆËã×ÊÔ´ÒªÇó´ó£¬ÄÑÒÔ²¿ÊðÓÚ¶ú»ú¡¢ÖÇÄÜÊÖ±í»òIoTÉ豸¡£
Ïà±È֮ϣ¬MFCC¾ß±¸ÒÔÏÂÓÅÊÆ£º
- ¼ÆË㿪ÏúС£¬¼¸Ê®ÐдúÂë¼´¿ÉʵÏÖ£»
- Ã¿Ò»Î¬ÌØÕ÷¾ùÓÐÃ÷È·ÎïÀíÒâÒ壬±ãÓÚµ÷ÊÔÓë·ÖÎö£»
- ÔÚ×ÊÔ´ÊÜÏÞÉ豸ÉÏÒÀÈ»±£³Ö¸ßЧÎȶ¨¡£
Òò´Ë£¬µ±Ç°´ó¶àÊýÁ¿²úÐÍÓïÒô²úÆ·ÈÔ²ÉÓÃǰ¶ËMFCC + ºó¶ËDNN/GMM/HMMµÄ»ìºÏ¼Ü¹¹¡£ÉõÖÁһЩ¶Ëµ½¶ËÄ£ÐÍ£¬ÆäÄÚ²¿Ò²ÒþʽµØÈÚÈëÁËÀàËÆÃ·¶ûÂ˲¨µÄ»úÖÆ¡ª¡ªÕâÕýÌåÏÖÁËÈËÀà¶ÔÌý¾õ¸ÐÖª¹æÂɵÄÉî¿ÌÀí½â£¬ÖµµÃÖ¾´¡£
½áÓ²»Ö¹ÓÚ¼¼Êõ£¬¸üÊǸÐÖªµÄÇÅÁº
MFCC±íÃæÉÏÖ»ÊÇÒ»¸öÉùÑ§ÌØÕ÷ÌáÈ¡·½·¨£¬ÊµÔòÄý¾ÛÁ˼¸Ê®ÄêÀ´ÐÄÀíÉùѧ¡¢ÐźŴ¦ÀíÓ빤³Ìʵ¼ùµÄÖǻ۽ᾧ¡£Ëü´«µÝÁËÒ»¸öÉî¿ÌµÄÆôʾ£º
ÓÅÐãµÄAI£¬²»ÔÚÓÚ¸´ÖÆÊý¾Ý£¬¶øÔÚÓÚÀí½âÈËÀàÈçºÎ¸ÐÖªÊÀ½ç¡£
µ±Ï´ÎÄ㻽ÐÑÊÖ»ú˵³ö¡°ºÙ Siri¡±Ê±£¬²»·ÁÏëÒ»Ï롪¡ªÄÇһ˲¼ä£¬±³ºóÓжàÉÙ¿ÆÑ§ÔÀíÕýÔÚÎÞÉùÐ×÷£¿
»òÐíÖÕÓÐÒ»Ì죬MFCC»á±»¸üÏȽøµÄÄ£ÐÍËùÈ¡´ú¡£µ«ÔÚÄÇÒ»Ììµ½À´Ö®Ç°£¬ËüÒÀÈ»ÊÇÁ¬½ÓÉù²¨ÓëÓïÒåÖ®¼ä×îÓÅÑŵÄÇÅÁºÖ®Ò»¡£
¡°¼¼ÊõµÄ¼ÛÖµ£¬²»ÔÚÓÚ¶àô¸´ÔÓ£¬¶øÔÚÓÚ¶àôÌù½üÈËÐÄ¡£¡±
¡ª¡ª ÖÂËùÓÐÖÂÁ¦ÓÚÈûúÆ÷ѧ»áÇãÌýµÄÈË


À״│


¾©¹«Íø°²±¸ 11010802022788ºÅ







