【学习笔记】基于ARM-Linux的便携式语音群呼系统

0 引言

  科技的发展和社会的进步影响和改变了人们的生产和生活方式。随着生产的社会化程度日益加剧,出现了一大批规模巨大的企事业和生产企业,这就给这样单位和公司发布开会通知带来了困难:一些大公司和单位如果要召开紧急会议,就需要用短信群发或逐个拨打语音电话通知与会人员,而如果通过发送短信通知会议人员则会由于短信声音小且振铃时间短不易被人们发觉(而且缺少实时性);而通过语音拨号则由于需要逐个拨打而显得极为繁重,特别是如果公司和企事业单位人数太多,这一问题就尤为突出[1]。因此,设计一个能录入通话内容、在线添加和修改被叫人号码、自动拨号及统计未拨通号码的语音群呼系统非常必要。

  根据实际需要,该系统需要满足如下功能:

  (1)录入、添加、修改、删除用户;

  (2)录音功能;

  (3)设定拨号次数;

  (4)按照设定的次数和录入的用户信息自动拨号并完成录入语音的播放;

  (5)显示拨号状态、统计拨号次数和返回未拨通的用户名单。

1 系统组成及工作过程

  该群呼系统由主控制器、人机接口、语音模块、GSM模块等构成,如图1所示。

  系统通过语音模块录制需要播放的语音存入存储器中,然后在ARM处理器的控制下将触摸屏手写笔存入的用户号码通过GSM模块拨通,拨通后将该语音通过GSM的语音接口播放出去,拨号的结果通过触摸屏显示出来。

  在该系统中,人机接口采用TFT-LCD触摸屏、ARM处理器采用三星的S3C2440处理器、语音芯片采用飞利浦公司的UDA1341、GSM模块采用西门子公司的TC35i。

2 硬件设计

  本系统的硬件设计比较复杂,这里只给出部分核心电路,包括ARM处理器与触摸屏的连接、语音模块与ARM处理器及GSM模块的连接、GSM模块与ARM处理器的连接。

  2.1 ARM处理器与触摸屏的连接

  TFT-LCD的主要特点是为每个像素配置一个半导体开关器件,由于每个像素都可以通过点脉冲直接控制,因此每个节点都相对独立,并可以进行连续控制[2]。

  该LCD接口是一个41Pin 0.5 mm间距的白色座,其中包含了常见LCD所用的大部分控制信号(行场扫描、时钟和使能等)和完整的RGB数据信号(RGB输出为8:8:8,即最高可支持1 600万色的LCD);37、38、39、40为四线触摸屏接口,它们可以直接连接触摸屏使用。

  2.2 语音模块与ARM处理器及GSM模块的连接

  图2所示为语音模块与ARM处理器及GSM模块的连接的硬件框图。

  ARM处理器S3C2410的IIS总线信号与语音芯片UDAl34l的IIS信号直接相连[3]。L3接口的引脚L3MODE、L3CLOCK和L3DATA分别连到S3C2440的GPBl、GPB2和GPB3通用数据输出引脚。UDAl34l对外提供两组音频信号输入接口,每组包括左右2个声道。由于IIS总线只处理音频数据,而其他的信号(如编码、控制等信号)单独传送[4]。为了使必需的引脚数最小并且保持连线简单,IIS总线由3条信号线组成:时分复用的数据通道线、字段选择线和时钟信号线。本系统由系统主控制器提供时钟信号,控制数字音频数据在各个IC之间的流向。此时,发送器在外部时钟信号的控制下产生数据,处于从模式。具体连接如图3所示。

  2.3 GSM模块与ARM处理器的连接

  ARM处理器S3C2440与GSM模块TC35i是通过USB转串口进行通信的。用USB Host接口与GSM模块连接[5]。USB Host与普通PC的USB接口是一样的,接口电路如图4所示。

3 软件设计

  软件设计包括Linux内核移植、QT-4.6移植、语音业务GSM拔号软件设计和语音录放软件设计,本文只对该系统的GSM语音拔号软件设计和语音录放软件设计这两个核心部分进行介绍,至于Linux内核移植、QT-4.6移植这些部分与其他的嵌入式开发系统并无太大差别[6-7],这里不再赘述。

  3.1 语音业务GSM拔号程序设计

  ARM处理器通过串口发送AT指令来控制GSM模块TC35i的工作。AT指令及该GSM模块的使用及相关信息可以参考相关文献资料。

  首先需要进行串口的设置,串口通信的设置要符合TC35i通信的要求;然后就是对TC35i初始化,初始化的过程主要包括与TC35i建立连接、音频模式的设置、取消回显等;最后就是进行循环呼叫,在呼叫的同时,不断读取并且更新拔号的状态,同时也统计呼叫的次数,每当呼叫一个号码之后,进行一下号码呼叫,直到所有的号码呼叫完为止。拨号放音应用主程序及子程序如图5、图6所示。

  3.2 语音录放程序设计

  (1)录音部分

  本系统支持两种录音格式,一种是原始数据pcm格式,没有经过任何压缩的WAV音频文件;另一种是经过lame压缩的mp3格式。从声卡读取pcm数据,加上文件头信息直接写入WAV文件,如果要录制成mp3格式,需要使用lame库对pcm数据进行压缩,然后写入mp3文件。其设计流程图如图7所示。

  (2)放音部分

  放音与录音相反,放音时,如果为WAV文件格式,解析头获取采样率、量化位数、声道数,对声卡进行初始化,然后跳过文件头,直接读取pcm数据写入声卡,就能播放WAV文件。对于MP3文件格式,需要使用libmad解码成pcm数据即可。其设计流程图如图8所示。

4 测试结果

  至此系统设计完成,图9、图10所示为对系统的拨号部分和语音的录放部分分别进行的测试。

5 结论

  本文介绍了一种基于ARM+Linux的便携式语音业务群呼系统硬件与软件设计,通过自行设计样机的测试表明该系统具有能录入话音、设置呼叫号码、自动拨号放音和统计未呼叫成功号码等功能,系统操作简单、界面友好、成本低廉。随着生产社会化的日益加剧和人民对生活智能化的要求日益提高,以该系统所代表的技术和理念的语音业务群呼智能系统必将广泛应用于各领域之中。

(0)

相关推荐

  • 多核系统软件的开发和集成挑战

    汽车电子的发展相比IT行业要慢很多节拍,智能设备在过去的几年改变了我们的生活方式,相比之下汽车电子则显得不那么与时俱进而脱离于日常的数字生活. 消费电子与汽车电子有两个很重要的区别:汽车电子在安全性和 ...

  • 学习笔记|基于课标的内容研制策略

    从今天进入<为言语智能而教>的第二个板块:组块教学策略. 首先是第一章,基于课标的内容研制策略. 关于课标,一直以来在一线老师的手中都存在着剥离状况.使用统编版教材之后,有所好转.这不是因 ...

  • 学习笔记|基于文本的读写结合策略

    读这一章,直读得头涔涔而泪潸潸.因为,薛老师这一章所讲,全是我在工作中觉得自己做了,却做得很不好的. 这一章主要讲基于阅读教学的作文训练.这个训练有别于专项的作文教学,一般"侧重于引导学生在 ...

  • 【学习笔记】传感器技术(3):传感器系统的高精度Hybrid ADC的研究与设计

    2015年电子技术应用第12期 作者:杜 微,李荣宽 摘  要: 介绍了一种应用于传感器检测系统的高精度Hybrid ADC,此系统是基于双积分ADC与SAR ADC的混合结构.详细描述了此结构提出的 ...

  • 【学习笔记】可穿戴智能戒指在多媒体投影系统中的应用

    0 引言 目前,多媒体技术授课和协作会议越来越普及,国内外诸多电子设备应运而生,但这些产品大部分在使用上有具体的限定.例如,国内外市面已经出现可穿戴远程操控装置,其采用陀螺仪定位的同时进行无线传输,使 ...

  • “物联网开发实战”学习笔记-(四)智能音箱制作和语音控制

    这次来造一个属于自己的智能音箱,这里详细介绍了智能音箱的语音控制的实现. 智能音箱的技术架构 智能音箱主要涉及拾音.前端信号处理.语音识别.自然语言处理和语音合成等技术,现在一些产品甚至提供了声纹识别 ...

  • 学习笔记|吴勇《基于语文要素的单元习作训练课程》

    听完这一讲,我脑海中浮现出两个不同行业的人说的话,完美地契合了我现在的感受. 一个是张咏梅老师,重庆教科院初教所所长.她说:统编教材把大家放在一条线上,谁最敏锐,谁最愿意钻研,谁就能走在前列. 一个是 ...

  • .NetCore学习笔记:二、基于Dapper的泛型Repository

    为减少代码量,这里实现一个基于Dapper的泛型Repository. 这里需要引用Dapper.dll和Dapper.Contrib.dll. 接口定义: 1 /// <summary> ...

  • .NetCore学习笔记:三、基于AspectCore的AOP事务管理

    AOP(面向切面编程),通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑 ...

  • linux学习笔记

    tar -cvf packageName fileName 打包 tar -xvf packageName 解包 c 创建新的档案文件.如果用户想备份一个目录或是一些文件,就要选择这个选项.相当于打包 ...