当前位置:首页 > 单片机 > 单片机
[导读]语音信号采集是语音信号处理的基础。

摘要:语音信号采集是语音信号处理的基础。本文利用凌阳公司16位单片机——SPCE061A所具有的数字信号处理(DSP)功能及其所提供的音频压缩函数库来实现语音信号的实时采样与压缩;通过RS232接口,将采集到的语音信号实时上传到PC机中存储。

    关键词:语音信号处理 RS232 串口通信 语音采样 语音压缩

引言

随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。台湾凌阳科技公司(SunPlus)推出的一款SPCE061A就是这样的产品。SPCE061A是以μ'nSP TM16位微控制器及信号处理器芯片为内核的16位单片机,采用模块式集成结构,片内集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等,特别适合语音信号处理。本文介绍如何实现用SPCE061A单片机采集语音信号,并传送到PC机中的方法。

1 硬件系统结构

1.1 SPCE061A结构

SPCE061A的内部结构如图1,其特点如下:

*16位μ'nSP TM微控制器;

*工作电压:VDD为2.6~3.6V(CPU),VDDH为VDD~5.5V(I/O);

*CPU时钟为0.32~49.152MHz;

*内置存储器:SRAM为2KB,内存Flash为32KB;

*可编程音频处理;

*2个16位可编程定时器/计数器;

*7通道10位ADC(内置麦克风放大和自动增益控制功能);

*2个10位DAC;

*32路可编程通用输入输出端口;

*串行输入输出接口;

*低电压监测/低电压复位功能;

*14个中断源可来自定时器、外部时钟输入、键唤醒等;

*内置在线仿真电路ICE。

1.2 SPCE061A开发方法

SPCE061A的开发是通过在线调试器PROBE实现的,如图2所示。它利用了SPCE061A内置的在线仿真电路ICE和凌阳公司的在线串行编程技术。如果读者想要使用该芯片及开发系统,可上网www.unsp.com.cn查询,并寻求大学计划的免费支持。

1.3 语音采集的硬件电路

语音采集的硬件电路如图3所示。MIC采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等优点。

与PC机的串行通信用SPCE061A的UART接口,用MAX232芯片进行电平转换,即可实现RS232通信。

2 软件设计与实现

2.1 语音信号的采集压缩与数据传输

(1)语音信号的采集压缩

语音信号处理的基础是对语音信号进行数字化,并采样存储。SRCE061A内置专门用于语音信号采集的自动增益控制放大器(AGC)的麦克风输入通道(MIC_IN)。语音信号经麦克转换成电信号,由隔离电容隔掉直流成分,然后输入至内部前置放大器。SPCE061A内部自动增益控制电路AGC能随时跟踪、监视前置放大器输出的音频信号电平,当输入信号增器时,AGC电路自动减小放大器的增益;当输入信号减小时,AGC电路自动增大放大器的增益,以便使进入A/D的信号保持在最佳电平,又可使谐波减至最小。

ADC初始化程序如下:

INT OFF;

R1=0x0030;

[P_TimerA_Ctrl]=R1;

//时钟频率为CLKA的fosc/2

R1=0xfa00;

[P_TimerA_Data]=R1;

//采样率为16kHz

R1=0x003d;

[P_ADC_Ctrl]=R1; //设置AGC功能

R1=0x00A8;

[P_DAC_Ctrl]=R1; //采用自动方式且通过MIC_IN通道输入,通过定时器A的溢出锁存数据,ADC为自动方式

R1=0x1000;

[P_INT_Ctrl]=R1; //开中断IRQ1_TM

INT IRQ;

图3 语音采集的硬件连接图

    采样后的数字语音信号数据量非常大,且由于语音信号采样点幅度分布的非均匀性和样本间的相关性等原因,使语音信号中含有大量的冗余信息。因此,在实际应用中采用各种信源编码技术来消除语音信号的冗余度。语音编码方法主要有波形编码、参数编码和混合编码。

*波形编码的基本原理是以波形逼近为原则,在时域上把幅度样本分层量化并用代码表示;特点是语音质量高、抗噪性强编码率高,适于语音及高保真音乐。

*参数编码是基于某种语音产生模型,在编程端分析出该模型参数选择适当的方式进行编码;特点是语音质量差、抗噪抗弱和编码率低。

*混合编码综合了波形和参数编码之优点。

凌阳SPCE061A提供了压缩算法库——SACMLIB(见表1),其处理的语音信号范围是200Hz~3.4kHz的电话语音,并将A/D、编/解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API。

表1 SACM-LIB库中模块及其算法

模块名称 压缩算法 采样率/kHz 语音压缩编码率/Kb/s 用   途
SACM_A2000 子带编码 16 16、20、24 播放语音及高保真音乐
SACM_S480/S720 CELP混合编码 16 4.8、7.2 播音
SACM_S240 参数编码 24 2.4 播音
SACM_MS01 FM音乐合成 16 16、20、24 音乐合成
SACM_DVR 子带编码 16 16Kb/s的传输率,8Ksps的采样率 ADC信道录音和DAC放音

(2)语音数据的传输

SPCE061A的通用异步串口(UART)提供了一个8位全双工标准接口,用于完成SPCE061A与外设之间的串行通信。借助于IOB口的特殊功能和UART IRQ中断,可以同时完成UART接口的接收与发送数据的过程。根据应用需求,把UART设置为中断方式接收数据,以查询方式发送数据。

UART初始化程序InitUART()见网络补充版(http://www.dpj.com.cn)。

2.2 上位机控制和存储模块

目前,Mircosoft公司的VC++6.0是基于Windows程序设计的主流开发工具之一。VC++不仅秉承了C++简便、灵活及面向对象等优点,而且提供了功能强大的MFC类库,并能自动生成应用程序框架,提供标准化的程序结构和用户接口。特别需要指出的是,为了今后调用低层的音频处理API函数,对由下位上传的音频数据进一步进行语音识别方面的处理,我们使用VC来编写上位机的控制及存储程序。

在实验室和工业应用中,RS232串口是常用的计算机与外部串行设备(单片机)之间的数据传输通道,由于串行通信简单易用,所以应用广泛。通常在VC++中有三种方法可以实现串行通信:

*使用VC++的标准通信函数_inp和_outp来实现串口通信;

*把串口看成是一个特殊的设备文件,使用有关文件处理的API函数来实现串口通信;

*使用ActiveX的串行通信控件MSComm来实现串口通信。

对于本实例来说,主要考虑的因素是实时语音数据存取,以及位机与下位机的配合。因此,采用了串行通信MSComm控件方法来实现串口通信。另外,可以采用二进制流文件Cfile类来存储声音文件。具体步骤见网络补充版。

结语

通过以上实例录制的语音数据,可以从PC机下载到SPCE061A中(或者作为资源文件放入工程中),使用SACM_A2000模块的函数播放验证,效果能够满足进一步语音信号处理需要。

用凌阳SPCE061A处理语音信号有如下独特之处:

*硬件电路简单,因SPCE061A是一款专门为语音信号处理设计的,麦克和喇叭可直接接入,用户不必外接放大电路等;

*软件编程容易,有相应的API函数,可直接调用。

*用ICE和图形界面编译软件,调试方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

语音识别系统是一种通过捕捉语音信号后对其进行分析和处理的技术。它主要依赖于模式匹配、统计建模和人工神经网络等方法来进行语音识别操作。语音识别系统本质上是一种模式识别系统,包括特征提取、模式匹配、参考模式库等三个基本单元。

关键字: 语音识别 语音信号

杭州2022年8月19日 /美通社/ -- 8月18日,“第一届中国酒馆行业高峰论坛”、“第二届中国酒吧创新论坛”在杭州城中·香格里拉酒店分设两大会场同步举行...

关键字: ACM BSP 灯光 音响

北大本科生,刚刚凭借在芯片领域的贡献,斩获国际计算机学会(ACM)年度学生科研竞赛总决赛第一名(本科生组)!

关键字: 芯片 半导体 ACM

摘 要 :文中设计了一套基于物联网技术的高校实验室安全监测系统,该系统利用视频监控摄像头、温湿度感应器、电子门禁、智能电源等硬件设备实时采集实验室相关安全数据,并通过有线与无线网络传递至服务器进行分析和处理,进而告知实验...

关键字: 物联网 实验室 安全管理 监测系统 实时采集 系统架构

摘 要:在青藏地区采用ModBus-GRPS方式搭建科研数据采集平台,对采集数据实时监控,减少采集过程中干扰因素的影响,提高数据采集的效率,保证数据质量

关键字: ModBus-GRPS 科研数据采集系统 实时采集 数据质量

大家好,我是编程熊,今天和大家分享我是如何从双非,拿到ACM金牌,再拿到字节跳动、旷视科技等大厂offer,保研985的经历。在字节和旷视的工牌坎坷的大学我本科是一所双非院校,专业是软件工程,高考失利,进入到了一所不想去...

关键字: ACM offer

摘要:给出了一种光伏电站实时气象数据采集系统的设计方法。该系统采用模块化结构,并利用高姓能数据采集模块和可靠通信技术来实现光伏电站气象数据采集。以实时地反映光伏电站场区的气象状况,为光伏发电输出功率预测提供场区气象实时数...

关键字: 光伏电站 气象数据 实时采集 电力系统

C++作为一门能直接进行底层操作的语言,广泛应用于游戏开发、工业和追求性能、速度的应用。 比如腾讯,无论游戏,还是微信,整个鹅厂后台几乎都是 C++ 开发,对 C++ 开发者的需求非常大。 但问题是C++入门和精通都比较...

关键字: ACM C++

  语音识别芯片的原理   语音识别芯片也叫语音识别IC,与传统的语音芯片相比,语音识别芯片最大的特点就是能够语音识别,它能让机器听懂人类的语音,并且可以根据命令执行各种动作,如眨眼睛、

关键字: 语音识别 芯片 语音信号 人工智能

(文章来源:中国数字医学) 结合语音识别技术构建医疗智能语音识别系统,达到减轻医护人员日常工作负担,减少重复性劳动,提高诊疗质量的目的。基于语音识别的关键技术和海量的医疗数据,开发电子病

关键字: 智能语音 语音识别系统 语音信号 语音识别技术
关闭
关闭