《开发教程12AI语音人脸识别会议记录仪_人脸打卡机语音传输与解析显示.docx》由会员分享,可在线阅读,更多相关《开发教程12AI语音人脸识别会议记录仪_人脸打卡机语音传输与解析显示.docx(14页珍藏版)》请在第一文库网上搜索。
1、CC3200AI实验教程疯壳开发板系列WO1verme-Team2018/07/18目录官网地址:http:WWW.fetRke.c1ub购买链接:http:ShOPII官方QQ群:193836402语音传输与解析显示T1V320AIC3254支持I2C和SP1接口,这里用到Fc对T1V320AIC3254的寄存器进行配置,用IAR打开A1ASR里面的工程,如图1.0.1所示为CC3200初始化I2C部分代码。intI2C_IF_Open(unsigned1ongU1Mode)(/Enab1eI2CPeriphera1/MAP_HvSemaphore1ock(HWSEM_I2C,H9SEM_W
2、AIT_F0R_EVER);MAP_PRCMPeriphera1C1kEnab1e7PRCM_I2CA07PRCM_RUN_MODE_C1K);MAP_PRCMPeriphera1Reset(PRCM_I2CAO);/ConfigureI2Cmodu1einthespecifiedmode/Switch(U1Mode)(caseI2C_MASTER_M0DE_STD:100000/MAP_I2CMasterInitExpC1k(I2C-BASErSYS_C1K,fa1se);break;caseI2C_MASTER_MODE_FST:*400000*/MAP_I2CMasterInitExpC
3、1k(I2C_BASE,SYS_C1Krtrue);break;defau1t:MAP_I2CMasterInitExpC1k(I2C_BASE,SYS_C1K,true);break;)/Disab1esthemu1ti-mastermode/MAP_I2CMasterDisab1e(I2C_BASE);returnSUCCESS;)图1.0.1初始化I2C部分代码对T1V320AIC3254的初始化函数,如图1.0.2所示。/ConfjgureAadjCodec/AudiOCodecReset(AUDIe1CoDEc1Ti_3254,NU11);#ifdefinedQJSE_0NBOAR1
4、1_M:EC)依就是竟风Audi。COdeeCOnfigauD五1CODECjn:_3254,AUDI0_C0DEC_16_BIT,16000,AuD工1CODEJS亍ERE0,AUDIO_CODEC_SPEAKER_A11,AUDIO_CODEC_MIC_A11);/音量境鳌0100Audi0C0decSpeakerV01Ctr1(AUDI0_C0DEC_TI_3254,Mn)IOIoDEjSFEAKER_A11,95):AudioCodecMicVo1Ctri(AUDI0_C0DEC_TI_3254,AUDIO_CODEC_MIC_A11,95);.图1.0.2T1V320AIC3254初
5、始化通过该函数可以设置设备的ID、采样位数、采样速率、音频通道、音频输出以及音频输入的增益。本次实验使用UDP连接的方式进行通信。使用CC3200配置为UDP模式的代码如图1.0.3所示。1ongCreateUdpServer(tUDPSocket*pSock)(intuiPort=AUDIO_PORT;1ongIRetVa1-1;pSock-iSockDesc=socket(AF_INET,SOCK_DGRAM,0);pSock-Server.sin_fami1y-AFJNET;pSock-Server.sin_addr.s_addr=hton1C1NADDR_ANY);pSock-Serv
6、er.sin_port=htons(uiPort);PSOCk-iSerVer1ength=sizeof(pSock-Server);pSock-C1ient.sin_fami1y=AF_INET:pSock-C1ient.Si1Caddr.s_addr=hton1ttNVAIJD_C1IENT_ADDRESS);pSock-C1iet.sin-port=htons(uiPort);PSOCk-XC1ient1ength=sizeof(pSock-C1ient):IRetVa1=bind(pSock-iSockDec/(structockaddr*)A(pSock-Server),pSock-
7、iServer1ength);ASSERT_ON_ERRORQRetVa1);returnSUCCESS;图1.0.3CC3200配置UDP模式打开Common.h,连接的路由器名称及密码如图1.0.4所示,特别注意的是要修改加密方式OPEN、WEP或者WPAodefineSSID_NAMEdefineSECUR工TYJrYPEdefineSECURITY_KEYdefineSSID_1EN_MAXdefineBSSID_1EN_MAXfengke2.4G/APSSID*/S1_SEC_TYPE_WPA/*Securitytype(OPENorWEPor7PA*/fengke305*Passw
8、ordofthesecuredAP*/326图104路由器相关信息连接服务器的IP地址及端口如图1.0.5所示。在networks找至UHOSTJP_ADDR可在宏定义中修改IP地址,修改USPort的值可以修改端口。audioCodec.haudiocodec.cPiCmUX,cet,etork.huser.hosi./SpeaIcerdetected-AddC1ientgUdpSock.C1ient.sin_fami1y=AF-INETgUdpSock.C1ient.sin_addr.s_addr=hto1(pAddr);gUdpSock.C1ient,in-port=htons(uPor
9、t);g_UdpSock.iC1ient1ength=sizeo(gw-UdpSock.C1ient);g_1oopback-0;MAP_Uti1sDe1ay(80*1000*100);一#e1seunsignedintpAddr=HOST_IP_ADDRunsigned1ongUSPOrt=8082;CharcCmdBuff20=0;图1.0.5服务器的IP地址及端口IP地址用16进制来表示,例如:“192”对应16进制的“OxcO”、“168”对应16进制的“0xa8”、“05”对应16进制的“0x05”、“05”对应16进制的“0x05”,合起来就是0xc0a80505(192.168.
10、5.5)oNetWOrk任务主要是实现网络连接,所以该任务主要实现CC3200连接上路由器,建立UDP。任务如图1.0.6所示。voidNetwork(void*pvParameters)(1ongIRetVa1=1;UART_PRINT(*Network1rn*);/Initia1izeG1oba1Variab1eInitia1izeAppVariab1esO:UART.PRINT(Network2rn*);/ConnecttoNetworkIRetVa1=ConnectToNetworkO;if(1RetVa1O)(UART_PRINT(Fai1edtoestab1ishconnectio
11、nw/anAPrnw):1oOP_FOREVERO:)e1se(UART_PRINT(Estab1ishconnectionw/anAPrn):UART_PRINT(Network3rn*);/CreadUDPSocketandBindto1oca1IPAddressIRetVa1=CreateUdpServer(&g_UdpSock);if(IRetVa1O)UART.PRINT(z,Fai1edtoCreateUDPServerrn);1OOP_FOREVER():UART,PRINT(Network4rn);J#ifdefMU1TICAST/AddtoMu1ticastGroupIRet
12、Va1=ReceiveMu1ticastPacket();if(IRetVa1施fMWhi1e(QISJONNECTED(JUIStatUS)Q1SJT_ACQUIRED(JUIStatUS)-/JTajtfor1ANEvent#ifndefS1_F1ATFORM_MU1T工JrHREADED-S1NonOsMain1oopTaskO;*endifreturnSUCCESS;图1.0.7W1anCOnneCt函数CreateUdPSerVer()函数则是建立udp服务器,该函数如图1.0.8所示。1ongCreateUdPSerVerItUDFSocket*pSock)(intuiPort=A
13、UDIO-PORT;1ongIRetVa1=T;PSoCk-XSockDesc=socket(AFJNESOCK_DGRAM,O);pSock-Server.sin_fami1y-AFJNET;pSock-Server.sin_addr.s_addrhton1QNADDR_ANY);PSOCk-Keryer.sin_POrthton(uiPort);pSock-iServer1ength=sizeo(pSock-Server);pSock-C1ient.sin-fami1y=AFJENET;pSock-C1ient.Si1caddr.s,addr=hton1CINVAUD_C1IENT_ADDRESS);pSock-C1ient.sinjportht