£Ä¿Ç°³£ÓõÄÌØÕ÷²ÎÊý°üÀ¨ÏßÐÔÔ¤²âµ¹Æ×ϵÊýLPCC¡¢ÃÀ¶ûµ¹Æ×ϵÊýMFCCµÈ¡£ÓïÒôÐźÅÌØÕ÷ÏòÁ¿²ÉÓÃMelƵÂʵ¹Æ×ϵÊýMFCC(Mel Frequency Cepstrum CoeficientµÄÌáÈ¡£¬MFCC²ÎÊýÊÇ»ùÓÚÈ˵ÄÌý¾õÌØÐԵģ¬ËûÀûÓÃÈËÌý¾õµÄÁÙ½ç´øÐ§Ó¦[3]£¬²ÉÓÃMELµ¹Æ×·ÖÎö¼¼Êõ¶ÔÓïÒôÐźŴ¦ÀíµÃµ½MELµ¹Æ×ϵÊýʸÁ¿ÐòÁУ¬ÓÃMELµ¹Æ×ϵÊý±íʾÊäÈëÓïÒôµÄƵÆ×¡£ÔÚÓïÒôƵÆ×·¶Î§ÄÚÉèÖÃÈô¸É¸ö¾ßÓÐÈý½ÇÐλòÕýÏÒÐÎÂ˲¨ÌØÐԵĴøÍ¨Â˲¨Æ÷£¬È»ºó½«ÓïÒôÄÜÁ¿Æ×ͨ¹ý¸ÃÂ˲¨Æ÷×飬Çó¸÷¸öÂ˲¨Æ÷Êä³ö£¬¶ÔÆäÈ¡¶ÔÊý£¬²¢×öÀëÉ¢ÓàÏұ任(DCT)£¬¼´¿ÉµÃµ½MFCCϵÊý¡£MFCCϵÊýµÄ±ä»»Ê½¿É¼ò»¯Îª£º


     ÆäÖУ¬iΪÈý½ÇÂ˲¨Æ÷µÄ¸öÊý£¬±¾ÏµÍ³Ñ¡PΪ16£¬F(k)Ϊ¸÷¸öÂ˲¨Æ÷µÄÊä³öÊý¾Ý£¬MΪÊý¾Ý³¤¶È¡£

3£®3£®4 ÓïÒôÐźŵÄģʽƥÅäºÍѵÁ·

     Ä£ÐÍѵÁ·¼´½«ÌØÕ÷ÏòÁ¿½øÐÐѵÁ·½¨Á¢Ä£°å£¬Ä£Ê½Æ¥Åä¼´½«µ±Ç°ÌØÕ÷ÏòÁ¿ÓëÓïÒô¿âÖеÄÄ£°å½øÐÐÆ¥ÅäµÃ³ö½á¹û¡£ÓïÒô¿âµÄģʽƥÅäºÍѵÁ·²ÉÓÃÒþÂí¶û¿É·òÄ£ÐÍHMM(Hidden Markov Models)£¬ËûÊÇÒ»ÖÖͳ¼ÆËæ»ú¹ý³Ìͳ¼ÆÌØÐԵĸÅÂÊÄ£ÐÍÒ»¸öË«ÖØËæ»ú¹ý³Ì£¬ÒòΪÒþÂí¶û¿É·òÄ£ÐÍÄܹ»ºÜºÃµØÃèÊöÓïÒôÐÅºÅµÄ·ÇÆ½ÎÈÐԺͿɱäÐÔ£¬Òò´ËµÃµ½¹ã·ºµÄʹÓÃ[4]¡£

     HMMµÄ»ù±¾Ëã·¨ÓÐ3ÖÖ£ºViterbiËã·¨£¬Ç°ÏòÒ»ºóÏòËã·¨£¬Baum-WelchËã·¨¡£±¾´ÎÉè¼ÆÊ¹ÓÃViterbiËã·¨½øÐÐ״̬Åб𣬽«²É¼¯ÓïÒôµÄÌØÕ÷ÏòÁ¿ÓëÓïÒô¿âµÄÄ£ÐͽøÐÐģʽƥÅä¡£Baum-WelchËã·¨ÓÃÀ´½â¾öÓïÒôÐźŵÄѵÁ·£¬ÓÉÓÚÄ£Ð͵Ĺ۲âÌØÕ÷ÊÇÖ¡¼ä¶ÀÁ¢µÄ£¬´Ó¶ø¿ÉÒÔʹÓÃBaum-WelchËã·¨½øÐÐHMMÄ£Ð͵ÄѵÁ·¡£

3£®4 ÓïÒôʶ±ð³ÌÐòµÄDSP¿ª·¢

     DSPµÄ¿ª·¢»·¾³ÎªCCS3£®1¼°¡£DSP£¯BIOS£¬½«ÓïÒôʶ±ðºÍѵÁ·³ÌÐò·Ö±ð×ö³ÉÄ£¿é£¬¶¨ÒåΪ²»Í¬µÄº¯Êý£¬ÔÚ³ÌÐòÖе÷Ó᣶¨ÒåÓïÒôʶ±ðÆ÷º¯ÊýΪint Recognizer(int Micin)£¬Ê¶±ð½á¹ûÊä³öº¯ÊýΪint Result(void)£¬ÓïÒôѵÁ·Æ÷º¯ÊýΪint Train(int Tmode£¬int Audiod)£¬¶¯×÷Ö¸ÁîÊäÈ뺯ÊýΪint Keyin(int Action[5])¡£

     ÓïÒôʶ±ðÆ÷µÄ×÷ÓÃÊǽ«µ±Ç°ÓïÒôÊäÈë±ä»»³ÉÓïÒôÌØÕ÷ÏòÁ¿£¬²¢¶ÔÓïÒô¿âµÄÄ£°å½øÐÐÆ¥Åä²¢Êä³ö½á¹û£¬ÓïÒôÓ¦´ðÊä³öº¯Êý½«»ñÈ¡µÄÓïÒôʶ±ð½á¹û¶ÔÓ¦µÄÓïÒôÓ¦´ðÊä³ö£¬ÓïÒôѵÁ·Êǽ«¶à¸ö²»Í¬ÄêÁä¡¢²»Í¬ÐԱ𡢲»Í¬¿ÚÒôµÄÈËÓïÒôÖ¸ÁîÊäÈëת»¯ÎªÑµÁ·¿âµÄÄ£°å¡£Îª·ÀÖ¹Ñù±¾´íÎó£¬Ã¿¸öÈ˵ÄÓïÒôÖ¸ÁîÐèҪѵÁ·2´Î£¬¶ÔÓÚ2´ÎÊäÈëÓÃÓÃÅ·ÊϾàÀëÈ¥½øÐÐģʽƥÅ䣬Èô2´ÎÊäÈëÏàËÆ¶È´ïµ½95£¥£¬Ôò¼ÓÈëÑù±¾¼¯¡£ÓïÒôÓ¦´ðÊäÈ뺯ÊýÊÇΪÿ¸öÓïÒô¿âÖÐÄ£°åÊäÈë¶ÔÁ¢µÄÓïÒôÊä³ö£¬ÒÔ´ïµ½ÓïÑÔÓ¦´ðÄ¿µÄ¡£ÏµÍ³¹¤×÷״̬ΪִÐÐÓïÑÔʶ±ð×Ó³ÌÐò£¬ÑµÁ·Ê±Ö´ÐÐÍⲿÖжϣ¬Ö´ÐÐѵÁ·º¯Êý£¬È¡µÃÊý¾Ý¿âÄ£°å£¬ÑµÁ·Íê±Ï·µ»Ø¡£³ÌÐò¿òͼÈçͼ3Ëùʾ¡£

4 »úÆ÷È˵͝×÷¿ØÖÆÏµÍ³Éè¼Æ

4£®1 FPGAÂß¼­Éè¼Æ

     ϵͳͨ¹ýÓïÒô¿ØÖÆ»úÆ÷ÈËÍ·²¿¶¯×÷£¬Í·²¿Ô˶¯·ÖΪÉÏϺÍ×óÓÒÔ˶¯2¸ö×ÔÓɶȣ¬ÐèÒª2¸ö²½½øµç»ú¿ØÖÆ£¬DSFÍê³ÉÓïÒôʶ±ðÒÔºó£¬Êä³öÏàÓ¦µÄ¶¯×÷Ö¸Á¶¯×÷Ö´ÐнáÊøºó£¬DSP·¢³ö¹éÁãÖ¸Áͷ²¿»Øµ½³õÊÔ״̬¡£FPGAµÄ×÷ÓÃÊÇÌṩDSP½Ó¿ÚÂß¼­£¬ÉèÖô洢DSPÖ¸ÁîµÄRAM¿é£¬Í¬Ê±²úÉú²½½øµç»úÇý¶¯Âö³å¿ØÖƲ½½øµç»úת¶¯·½ÏòºÍ½Ç¶È¡£

     FPGAÆ÷¼þΪ¶¯×÷Ö¸Áî¿ØÖÆµ¥Ôª£¬Éè¼Æ²ÉÓÃFLEXlOKEоƬ£¬½ÓÊÕDSPÊý¾Ýºó²¢ÐпØÖÆ2·²½½øµç»ú¡£FPGAÄÚ²¿½á¹¹Âß¼­Èçͼ4Ëùʾ£¬FPGAÄÚ²¿ÉèÖÃ2¸öÔª¼þΪµç»úÂö³å·¢ÉúÆ÷£¬¿ØÖƵç»úµÄ¹¤×÷Âö³åÒÔ¼°Õý·´×ª¡£AO¡«A7ΪDSPÊý¾ÝÊäÈë¶Ë¿Ú£¬WRΪÊý¾Ýд¶Ë¿Ú£¬P1£¬P2Ϊ2¸ö²½½øµç»úÇý¶¯Ð¾Æ¬Âö³åÊäÈë¿Ú£¬L1£¬L2Ϊµç»úÕý·´×ª¿ØÖƿڣ¬ENABLEΪʹÄÜÐźš£

     RAM1ºÍRAM2·Ö±ðΪ2¸ö²½½øµç»úµÄÖ¸Áî¼Ä´æÆ÷£¬µç»úÂö³å·¢ÉúÆ÷·¢³öÓëRAMÖÐÏàÓ¦ÊýÁ¿µÄ·½²¨Âö³å¡£DSPͨ¹ýDO¡«D8Êý¾Ý¶ËÊä³ö8λָÁÆäÖС£D8ΪRAMÑ¡Ôñ£¬Îª1ʱѡÔñRAM1£¬Îª0ʱѡÔñRAM0£¬DO¡«D7ΪÊä³öµç»ú½Ç¶È£¬µç¼«ÉÏϺÍ×óÓÒÐýת½Ç¶ÈΪ120¡ã£¬¾«¶ÈΪ1¡ã£¬³õʼֵ¶¼Îª60¡ã£¬DO¡«D7µÄ·¶Î§Îª00000000¡«11111000£¬³õʼֵΪ00111100¡£FPGA×÷Ϊ²½½øÂö³å·¢ÉúÆ÷£¬Í¨¹ýʱÖÓÖÜÆÚÅäÖÿØÖƵç»úתËÙ£¬Óë³õʼֵ¶ÔӦ׸±ê¾ö¶¨Õý·´×ª¡£ÏµÍ³¶¯×÷Ö¸Áî³ÌÐòÈçͼ5Ëùʾ¡£
     ÆäÖÐR1ΪDSPÖ¸Áî¼Ä´æÆ÷£¬R2Ϊµ±Ç°×ø±ê¼Ä´æÆ÷£¬Í¨¹ýDSPµÄÊä³ö×ø±êÓëFPGAµÄµ±Ç°×ø±ê½øÐвîÖµÔËËãÀ´È·¶¨²½½øµç»úµÄÐýת·½ÏòºÍÐýת½Ç¶È£¬ÓŵãÊÇ¿ÉÒÔ¸ù¾ÝеÄÊäÈëÖ¸ÁîµÄ±ä»¯£¬½áÊøµ±Ç°¶¯×÷ÒÔÔËÐÐеÄÖ¸ÁָÁîÖ´ÐÐÍê±Ïºó£¬ÏµÍ³ÇåÁ㣬²½½øµç»ú»Øµ½³õʼ״̬¡£

4£®2 FPGAÂß¼­·ÂÕæ

     FPGAÒÔMAX-PLUS¢ò¿ª·¢Æ½Ì¨£¬ÓÃÓïÑÔΪVHDLÓïÑÔ¶ÔÉÏÊöÂß¼­¹¦ÄܽøÐÐÉè¼Æ£¬²¢Í¨¹ýJTAG½Ó¿Ú½øÐÐÁ˵÷ÊÔ£¬FLEXl0KEоƬÄܹ»¸ù¾ÝDSPÊä³öÖ¸ÁîÊä³öÕýÈ·µÄÕý·´×ªÐźźÍÂö³å²¨ÐΡ£

4£®3 ²½½øµç»úÇý¶¯Éè¼Æ

     FPGAͨ¹ýP1£¬L1£¬P2£¬L2Êä³ö¿ØÖÆ¿ØÖƲ½½øµç»úÇý¶¯Ð¾Æ¬¡£²½½øµç»úÇý¶¯²ÉÓõÄÊǶ«Ö¥¹«Ë¾Éú²úµÄµ¥Æ¬ÕýÏÒϸ·Ö¶þÏಽ½øµç»úÇý¶¯×¨ÓÃоƬTA8435H£¬FPGAÓëTA8435Hµç·Á¬½ÓÈçͼ6¡