±¾´ÎÉè¼Æ²ÉÓÃÁËÐԼ۱ȽϸߵÄÊý×ÖÐźŴ¦ÀíоƬTMS320VC5509×÷ΪÓïÒôʶ±ð´¦ÀíÆ÷£¬¾ßÓнϿìµÄ´¦ÀíËÙ¶È£¬Ê¹»úÆ÷ÈËÔÚÍÑ»ú״̬Ï£¬¶ÀÁ¢Íê³É¸´ÔÓµÄÓïÒôÐźŴ¦ÀíºÍ¶¯×÷Ö¸Áî¿ØÖÆ£¬FPGAϵͳµÄ¿ª·¢½µµÍÁËʱÐò¿ØÖƵç·ºÍÂß¼µç·ÔÚPCB°åËùÕ¼µÄÃæ»ý[1]£¬Ê¹»úÆ÷È˵Ä"´óÄÔ"µÄÓïÒô´¦Àí²¿·Ö΢ÐÍ»¯¡¢µÍ¹¦ºÄ¡£Ò»¸öÌå»ýС¡¢µÍ¹¦ºÄ¡¢¸ßËÙ¶ÈÄÜÍê³ÉÌØ¶¨·¶Î§ÓïÒôʶ±ðºÍ¶¯×÷Ö¸ÁîµÄ»úÆ÷ÈËϵͳµÄÑÐÖÆ¾ßÓкܴóµÄʵ¼ÊÒâÒå¡£
2 ϵͳӲ¼þ×ÜÌåÉè¼Æ
ϵͳµÄÓ²¼þ¹¦ÄÜÊÇʵÏÖÓïÒôÖ¸ÁîµÄ²É¼¯ºÍ²½½øµç»úµÄÇý¶¯¿ØÖÆ£¬ÎªÏµÍ³Èí¼þÌṩ¿ª·¢ºÍµ÷ÊÔÆ½Ì¨¡£Èçͼ1Ëùʾ¡£
![]() |
FPGA¸ù¾ÝDSPÊäÈëµÄ¶¯×÷Ö¸Áî²úÉúÕýÈ·µÄÕý·´×ªÐźźÍ׼ȷµÄÂö³å¸ø²½½øµç»úÇý¶¯Ð¾Æ¬£¬Çý¶¯Ð¾Æ¬Ìṩ²½½øµç»úµÄÇý¶¯Ðźţ¬¿ØÖƲ½½øµç»úµÄת¶¯¡£Æ¬ÍâFLASHÓÃÓڴ洢ϵͳ³ÌÐòºÍÓïÒô¿â²¢Íê³ÉϵͳµÄÉϵç¼ÓÔØ¡£JTAG¿ÚÓÃÓÚÓëPC»ú½øÐÐÁª»úÔÚÏß·ÂÕæ£¬¼üÅÌÔòÓÃÓÚ²ÎÊýµ÷ÕûºÍ¹¦ÄܵÄÇл»¡£
3 ÓïÒôʶ±ðϵͳÉè¼Æ
3£®1 ÓïÒôÐźŵÄÌØµã
ÓïÒôÐÅºÅµÄÆµÂʳɷÖÖ÷Òª·Ö²¼ÔÚ300¡«3400HzÖ®¼ä£¬¸ù¾Ý²ÉÑù¶¨ÀíÑ¡ÔñÐźŵIJÉÑùÂÊΪ8 kHz¡£ÓïÒôÐźŵÄÒ»¸öÌØµãÔÚÓÚËûµÄ"¶ÌʱÐÔ"£¬ÓÐʱÔÚÒ»¸ö¶Ìʱ¶Î³ÊÏÖËæ»úÔëÉùµÄÌØÐÔ£¬¶øÁíÒ»¶Î±íÏÖÖÜÆÚÐźŵÄÌØÐÔ£¬»ò¶þÕß¼æ¶øÓÐÖ®¡£ÓïÒôÐźŵÄÌØÕ÷ÊÇËæÊ±¼ä±ä»¯µÄ£¬Ö»ÓÐÒ»¶Îʱ¼äÄÚ£¬ÐźŲűíÏÖÎȶ¨Ò»ÖµÄÌØÕ÷£¬Ò»°ãÀ´Ëµ¶Ìʱ¶Î¿ÉÈ¡5¡«50 ms£¬Òò´ËÓïÒôÐźŵĴ¦ÀíÒª½¨Á¢ÔÚÆä"¶ÌʱÐÔ"ÉÏ[2]£¬ÏµÍ³½«ÓïÒôÐźÅÖ¡³¤ÉèΪ20 ms£¬Ö¡ÒÆÉèΪ10 ms£¬Ôòÿ֡Êý¾ÝΪ160¡Á16 b¡£
3£®2 ÓïÒôÐźŵIJɼ¯ºÍ²¥·Å
ÓïÒô²É¼¯ºÍ²¥·ÅоƬ²ÉÓõÄÊÇTI¹«Ë¾Éú²úµÄTLV320AIC23B£¬TLV320AIC23BµÄÄ£Êýת»»(ADC)ºÍÊýģת»»(DAC)²¿¼þ¸ß¶È¼¯³ÉÔÚоƬÄÚ²¿£¬Ð¾Æ¬²ÉÓÃ8 k²ÉÑùÂÊ£¬µ¥ÉùµÀÄ£ÄâÐźÅÊäÈ룬˫ÉùµÀÊä³ö¡£TLV320AIC23¾ßÓпɱà³ÌÌØÐÔ£¬DSP¿Éͨ¹ý¿ØÖƽӿÚÀ´±à¼¸ÃÆ÷¼þµÄ¿ØÖƼĴæÆ÷£¬¶øÇÒÄܹ»±àÒëSPI£¬I2CÁ½ÖÖ¹æ¸ñµÄ½Ó¿Ú£¬TLV320AIC23BÓëDSP5509µÄµç·Á¬½ÓÈçͼ2Ëùʾ¡£
![]() |
MCBSP´®¿Úͨ¹ý6¸öÒý½ÅCLKX£¬CLKR£¬FSX£¬FSR£¬DRºÍCXÓëTLV320AIC23ÏàÁ¬¡£Êý¾Ý¾MCBSP´®¿ÚÓëÍâÉèµÄͨÐÅͨ¹ýDRºÍDXÒý½Å´«Ê䣬¿ØÖÆÍ¬²½ÐźÅÔòÓÉCLKX£¬CLKR£¬FSX£¬FSRËĸöÒý½ÅʵÏÖ¡£½«MCBSP´®¿ÚÉèÖÃΪDSP Modeģʽ£¬È»ºóʹ´®¿ÚµÄ½ÓÊÕÆ÷ºÍ·¢ËÍÆ÷ͬ²½£¬²¢ÇÒÓÉTLV320AIC23µÄ֡ͬ²½ÐźÅLRCIN£¬LRCOUTÆô¶¯´®¿Ú´«Ê䣬ͬʱ½«·¢ËͽÓÊÕµÄÊý¾Ý×Ö³¤É趨Ϊ32 b(×óÉùµÀ16 b£¬ÓÒÉùµÀ16 b)µ¥Ö¡Ä£Ê½¡£
3£®3 ÓïÒôʶ±ð³ÌÐòÄ£¿éµÄÉè¼Æ
ΪÁËʵÏÖ»úÆ÷È˶ԷÇÌØ¶¨ÈËÓïÒôÖ¸ÁîµÄʶ±ð£¬ÏµÍ³²ÉÓ÷ÇÌØ¶¨È˵ĹÂÁ¢´Êʶ±ðϵͳ¡£·ÇÌØ¶¨È˵ÄÓïÒôʶ±ðÊÇÖ¸ÓïÒôÄ£ÐÍÓɲ»Í¬ÄêÁä¡¢²»Í¬ÐԱ𡢲»Í¬¿ÚÒôµÄÈ˽øÐÐѵÁ·£¬ÔÚʶ±ðʱ²»ÐèҪѵÁ·¾Í¿ÉÒÔʶ±ð˵»°È˵ÄÓïÒô[2]¡£ÏµÍ³·ÖΪԤ¼ÓÖØºÍ¼Ó´°£¬¶Ìµã¼ì²â£¬ÌØÕ÷ÌáÈ¡£¬ÓëÓïÒô¿âµÄģʽƥÅäºÍѵÁ·¼¸¸ö²¿·Ö¡£
3£®3£®1 ÓïÒôÐźŵÄÔ¤¼ÓÖØºÍ¼Ó´°
Ô¤¼ÓÖØ´¦ÀíÖ÷ÒªÊÇÈ¥³ýÉùÃż¤ÀøºÍ¿Ú±Ç·øÉäµÄÓ°Ï죬Ԥ¼ÓÖØÊý×ÖÂ˲¨H(Z)=1Ò»KZ-1£¬ÆäÖÐÊÇΪԤ¼ÓÖØÏµÊý£¬½Ó½ü1£¬±¾ÏµÍ³ÖÐkÈ¡0£®95¡£¶ÔÓïÒôÐòÁÐX(n)½øÐÐÔ¤¼ÓÖØ£¬µÃµ½Ô¤¼ÓÖØºóµÄÓïÒôÐòÁÐx(n)£ºx(n)=X(n)Ò»kX(nÒ»1) (1)
ϵͳ²ÉÓÃÒ»¸öÓÐÏÞ³¤¶ÈµÄººÃ÷´°ÔÚÓïÒôÐòÁÐÉϽøÐ묶¯£¬ÓÃÒÔ½ØÈ¡Ö¡³¤Îª20 ms£¬Ö¡ÒÆÉèΪ10 msµÄÓïÒôÐźţ¬²ÉÓúºÃ÷´°¿ÉÒÔÓÐЧ¼õÉÙÐźÅÌØÕ÷µÄ¶ªÊ§¡£
3£®3£®2 ¶Ëµã¼ì²â
¶Ëµã¼ì²âÔÚ´ÊÓë´ÊÖ®¼äÓÐ×㹻ʱ¼ä¼ä϶µÄÇé¿öϼì²â³ö´ÊµÄÊ×Ä©µã£¬Ò»°ã²ÉÓüì²â¶ÌʱÄÜÁ¿·Ö²¼£¬·½³ÌΪ£º

ÆäÖУ¬x(n)ΪººÃ÷´°½ØÈ¡ÓïÒôÐòÁУ¬ÐòÁ㤶ÈΪ160£¬ËùÒÔNÈ¡160£¬Îª¶ÔÓÚÎÞÒôÐźÅE(n)ºÜС£¬¶ø¶ÔÓÚÓÐÒôÐźÅE(n)»áѸËÙÔö´óΪijһÊýÖµ£¬ÓÉ´Ë¿ÉÒÔÇø·Ö´ÊµÄÆðʼµãºÍ½áÊøµã¡£
3£®3£®3ÌØÕ÷ÏòÁ¿ÌáÈ¡
ÌØÕ÷ÏòÁ¿ÊÇÌáÈ¡ÓïÒôÐźÅÖеÄÓÐЧÐÅÏ¢£¬ÓÃÓÚ½øÒ»²½µÄ·ÖÎö´¦Àí¡£Ä¿Ç°³£ÓõÄÌØÕ÷²ÎÊý°üÀ¨ÏßÐÔÔ¤²âµ¹Æ×ϵÊý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£®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ΪʹÄÜÐźš£
![]() |
![]() |
4£®2 FPGAÂß¼·ÂÕæ
FPGAÒÔMAX-PLUS¢ò¿ª·¢Æ½Ì¨£¬ÓÃÓïÑÔΪVHDLÓïÑÔ¶ÔÉÏÊöÂß¼¹¦ÄܽøÐÐÉè¼Æ£¬²¢Í¨¹ýJTAG½Ó¿Ú½øÐÐÁ˵÷ÊÔ£¬FLEXl0KEоƬÄܹ»¸ù¾ÝDSPÊä³öÖ¸ÁîÊä³öÕýÈ·µÄÕý·´×ªÐźźÍÂö³å²¨ÐΡ£
4£®3 ²½½øµç»úÇý¶¯Éè¼Æ
FPGAͨ¹ýP1£¬L1£¬P2£¬L2Êä³ö¿ØÖÆ¿ØÖƲ½½øµç»úÇý¶¯Ð¾Æ¬¡£²½½øµç»úÇý¶¯²ÉÓõÄÊǶ«Ö¥¹«Ë¾Éú²úµÄµ¥Æ¬ÕýÏÒϸ·Ö¶þÏಽ½øµç»úÇý¶¯×¨ÓÃоƬTA8435H£¬FPGAÓëTA8435Hµç·Á¬½ÓÈçͼ6¡






¡¾