一种基于FPGA的语音录制与回放系统的设计
1.3语音采集模块
语音采集单元顶层综合模块如图4所示。系统通过语音采集模块将语音芯片采集的声音数据串/并转换为16位PCM码,声音数据传送至S-RAM存储器内保存,这里设置了4s录音时间,用户1次输入3个孤立词(如数字),4×8KB=32KB,考虑到32KB的原始数据需要预处理、FIR滤波和归一化。断点检测,所有处理后的数据仍然存入后续的SRAM地址中。检测出的孤立词分别存入独立首地址后面。
1.4语音采集实时采样
锁相环PLL给予WM8731工作在18.4MHz时钟频率下,通过I2C总线控制器设置WM8731工作在8kHz的采样频率下。图5为在嵌入式逻辑分析仪(SignalTapⅡLogicAnalyzer)下语音采集控制器的采样图。
图5为实时采集图,测试人现场读入语音数据,模块实时进行语音采集回放。从图中可见,左对齐语音采集过程一共有19个脉冲,其中前16个脉冲为有效语音数据提取脉冲,后3个脉冲为将来处理扩展预留。有效语音提取出来之后便存人SRAM中。该模块通过计数器,从启动录音开始,自动录制4s的语音信号。
2语音录制回放仿真
经WM8731采集的语音信号转换并存储于SRAM,然后用SRAM中的数据将SRAM的语音数据导出,图6为语音采集模块处理后作者录入的数字符号“1234”效果图。
图6是通过DE2控制面板软件读取SRAM前256KB数据(地址:O~0x1FFFF)在Matlab软件上画出来的图形,同时为了对比,通过Matlab自带的[y,fs,bits]=wavread(‘Blip’,[N1N2]),进行同样话语的录制,用sound(x,fs,bits)对声音进行回放,仿真结果见图6、图7。从仿真图可看出,以Matlab平台为标准,FPGA实时采集与现实吻合。
3结语
该系统充分利用了FPGA的高速处理能力,自行设计采集模块和I2C协议驱动模块,并通过AWALON总线挂载在Nios软核上,很好地实现了实时高速采集回放,充分体现了FPGA的优越性能。同时结合SoPC设计理念,使系统一片式整合。
评论