语音识别是通过识别和理解过程把人类的语音信号转变为文本或命令的技术。近年来语音识别技术由于其重要性和研究难度成为研究的热点。随着嵌入式的发展,嵌入式语音识别技术成为语音识别领域发展的新的重要方向。 在此背景下,本课题进行基于ARM的嵌入式语音识别系统的研究。论文分别从理论分析、系统硬件平台的总体设计、系统软件的分析定制等方面,对语音识别在ARM上的应用做了研究。 1、在理论上,详细介绍了语音识别的发展历史与研究现状;具体阐述语音识别技术的基本原理和主要研究方法,并推导了语音识别技术中最常用到的两种算法DTW和HMM的数学模型,为进一步的语音识别研究打下基础。 2、在硬件平台方面,本文分析设计了语音识别系统的总体方案,主要包括以下三部分:语音识别系统的控制部分、语音的输入输出部分以及语音程序的存储部分;文中详细介绍了各部分的作用以及它们之间的连接方式,此外根据实际需要,选择确定了语音芯片等外围电路芯片的型号并扩展了外围电路。 3、在系统软件选择定制方面,不仅要求各部分自身功能完善,能够满足本课题的需求,而且要求各部分相互之间满足一定的兼容性,即定制的系统具有稳定性,可以有效的工作。考虑到以上的因素,本课题针对特定的语音识别系统的需求,对交叉编译环境、U-boot、内核、根文件系统等均进行了量身定制。最终选用Crosstool来制作专门编译Linux-2.6.22.6的交叉编译工具;选用比较稳定的支持tftp下载的u-boot-1.2.0作为引导程序;选用Linux-2.6.22.6作为嵌入式操作系统内核,并对其进行剪裁定制,特别是增加了UDA1341TS音频驱动和网卡驱动部分;选用了带有mdev功能的busybox-1.9.1来制作根文件系统。 在以上三方面的基础上,本课题对语音识别程序系统进行了实验研究。实验包括音频驱动、语音录制、语音训练、语音识别程序的编译以及语音识别等程序在ARM上的移植。 最后,本论文采用DTW模型,完成了语音模板的训练和语音识别的任务。经过实验测试,该系统有效完成了预期的语音识别任务。
上传时间: 2013-05-30
上传用户:wsx123
本模块的脉冲功率发射电路主要集成了超声传感器的前置功率放大驱动电路,它与匹配变压器相连后可直接驱动超声换能器产生超声波。通过改变MCU输出脉冲的频率,该驱动模块可以产生从20KHz~2MHz 的频率,这个频段基本涵盖了目前常见的超声波应用频段。模块的供电范围为12V~24V,工作温度为工业级-40~+85oC,输出脉冲功率可调,最高可达300w,输出阻抗为25mΩ。本模块中的超声脉冲驱动电路基本可以满足目前国内所有超声脉冲功率发射的常规应用要求。接收部分电路主要提供的对接收到的信号进行滤波放大,可根据不同的应用需要调整接收部分的滤波频带和放大倍数,它的输入噪声在输入信号频率为500kHz 的时候可低至50uV,对于接收信号特别微弱的应用场合,如超声波气体流量计和超声物位计中将有良好的表现。
上传时间: 2013-06-19
上传用户:zmy123
用不同的元件,做一样的三角振荡波形,上面的用示波器测得是差不多的波形!LM339与LM324是很相近的元件,我一直用LM339做振荡,没用过LM324做振荡.但有于实际需要用振荡,又要用信号放大.在电路就需要同时使用这两个蕊,为了节约成本,想了下,LM324也可以做振荡,只是多一个三极管.这样就可少一个蕊了,
上传时间: 2017-02-16
上传用户:JIUSHICHEN
红外线、热释电和超声波遥控电路由于其功耗低、可靠性高和互相干扰小等优点,已在现实生活中得到了广泛应用。在目前的家用电器中,如电视机、家庭影院和数字音像设备中,大多都采用了红外线遥控电路。红外线遥控电路的使用,使这些家用电器操作起来十分方便、灵敏和可靠。而热释电红外控制在各类防盗器材和安全防护系统的检测中更有着独特的作用。因此,了解和掌握它们的工作原理和电路结构,对于无线电爱好者来说是十分必要的。本书由三大部分组成。第一部分介绍了红外线传感器和红外遥控电路的工作原理,通过五种类型的电路结构,介绍了数种典型的红外线传感器的实际应用电路;第二部分介绍了热释电红外传感器和热释电控制电路的基本原理,通过多个实际应用电路,介绍了它在照明节能、安全防护、防盗报警等方面的实际应用;第三部分介绍了声传感器、超声传感器和声控电路的工作原理,通过实例介绍了各类声传感器在节能灯、超声探测和防盗报警等方面的应用。本书所选电路有较强的实用性,多数电路中的基本放大控制电路能与各类传感器互换使用。书中电路所用元器件(包括传感器和集成电路)大部分均在书后附录中提供了供货厂商,为读者业余制作提供了方便。
上传时间: 2022-07-27
上传用户:
发觉论坛里面好像没有,不过这资料也不是我原创的。大家有需要的话就下吧
上传时间: 2013-04-24
上传用户:pjh8023
论文参考
上传时间: 2013-11-01
上传用户:dbs012280
特点: 精确度0.1%满刻度 可作各式數學演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A|/ 16 BIT类比输出功能 输入与输出绝缘耐压2仟伏特/1分钟(input/output/power) 宽范围交直流兩用電源設計 尺寸小,穩定性高
上传时间: 2014-12-23
上传用户:ydd3625
特点(FEATURES) 精确度0.1%满刻度 (Accuracy 0.1%F.S.) 可作各式数学演算式功能如:A+B/A-B/AxB/A/B/A&B(Hi or Lo)/|A| (Math functioA+B/A-B/AxB/A/B/A&B(Hi&Lo)/|A|/etc.....) 16 BIT 类比输出功能(16 bit DAC isolating analog output function) 输入/输出1/输出2绝缘耐压2仟伏特/1分钟(Dielectric strength 2KVac/1min. (input/output1/output2/power)) 宽范围交直流两用电源设计(Wide input range for auxiliary power) 尺寸小,稳定性高(Dimension small and High stability)
上传时间: 2013-11-24
上传用户:541657925
/*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0; //累加器 sfr B = 0xF0; //B 寄存器 sfr PSW = 0xD0; //程序状态字寄存器 sbit CY = PSW^7; //进位标志位 sbit AC = PSW^6; //辅助进位标志位 sbit F0 = PSW^5; //用户标志位0 sbit RS1 = PSW^4; //工作寄存器组选择控制位 sbit RS0 = PSW^3; //工作寄存器组选择控制位 sbit OV = PSW^2; //溢出标志位 sbit F1 = PSW^1; //用户标志位1 sbit P = PSW^0; //奇偶标志位 sfr SP = 0x81; //堆栈指针寄存器 sfr DPL = 0x82; //数据指针0低字节 sfr DPH = 0x83; //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON = 0x87; //电源控制寄存器 sfr AUXR = 0x8E; //辅助寄存器 sfr AUXR1 = 0xA2; //辅助寄存器1 sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器 sfr CLK_DIV = 0x97; //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1; //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE = 0xA8; //中断允许寄存器 sbit EA = IE^7; //总中断允许位 sbit ELVD = IE^6; //低电压检测中断控制位 8051
上传时间: 2013-10-30
上传用户:yxgi5
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230