学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 艺术论文 > 录音艺术论文

分布式热线录音系统的整体设计及实现(2)

来源:学术堂 作者:周老师
发布于:2015-12-29 共4879字

  4 分布式热线录音系统的实现。

  4.1 频率工作站的热线电话实时录音功能的设计。

  频率工作站是分布式热线录音系统的录音功能的实体, 本课题讲述的分布式热线录音系统包含有若干个的频率工作站。 每一个频率工作站都单独完成热线录音功能和对录音文件资源的存储。 频率工作站是由导播计算机和若干部热线座机组成的, 这些热线座机通过语音板卡设备与导播计算机进行连接。 频率工作站进行热线通话录音的过程是: 当听众向某个频率工作站打进热线来电的时候, 首先外来热线要与频率工作站的热线接通, 热线电话接通之后, 频率工作站通过各个功能模块相互配合共同完成热线录音功能。 录音资源以文件的形式存储在频率工作站的硬件存储设备当中。 如图 3 为频率工作站的拓扑图。

  4.2 录音服务器业务功能的设计与实现。

  录音服务器管理和控制频率工作站按照一定的录音策略进行录音和管理频率工作站上的录音文件。 频率工作站能够按照一定的录音策略进行热线录音。设计录音策略表。 设计全录音, 分时录音等多种录音策略。 录音策略信息表的设计如图 4 所示。

  分布式热线录音系统频率工作站的录音文件存储在频率工作站上。 通过录音服务器上的录音文件索引信息表来统一管理录音文件, 录音服务器和频率工作站上的数据库通过数据库访问的方式进行数据传输,通过访问频率工作站数据库中录音文件索引表, 对录音文件进行查询, 删除, 修改, 下载等操作。 录音文件索引表的设计如图 5 所示。

  4.3 业务服务器系统与频率工作站通信机制的设计与实现。

  本课题使用AMQP标准协议作为自定义业务协议的承载手段, AMQP 是一个提供统一消息服务的应用层标准协议, 选用 Rabbitmq 消息队列中间件开源项目作为消息中间件服务器。

  在消息队列服务的基础上根据分布式热线录音系统的整体设计及通信需要设计了自定义业务协议, 热线录音接口协议。 热线录音接口协议 RSI(RecordService Interface)对业务服务器系统与频率工作站间的通信过程和类型进行了分类与描述, 业务服务器与频率工作站通过 RSI 协议可以完成状态变化的通知, 业务功能执行等功能。

  RSI 将业务服务器与频率工作站间的交互分为事件、命令、请求及响应几种类型。

  事件: 表示功能实体产生某些需要由接收者了解的信息。

  命令: 表示功能实体要求立即实现某种操作。

  请求及响应: 表示功能实体发出请求消息, 并且期待产生相应的反应。

  RSI 相关协议如表 1.

  4.4 语音板卡设备录音功能的设计与实现。

  频率工作站是实现语音板卡设备录音功能的载体。(SIPAgent)是若干封装了“SIPHelloSDK.dll”API 的 SIP代理, 用于和其他 SIP 终端之间的语音交互[7]. 板卡控制模块(CardManager)是封装了“SHP_A3.dll”API 的基于三汇语音板卡的驱动控制程序, 主要负责控制话机的行为及状态, 接收话机的行为及状态, 以及对话机进行内存录音, 放音的操作。 SIPAgent进程与板卡控制进程通过基于 UDP 的进程间通信协议(IPC 协议)进行进行相关业务信息, 电话控制信息, 状态信息与初始化信息的交互, 同时 SIPAgent 进程还会与其他控制进程进一步交互。详细的 IPC 协议如表 2 所示。

  建立SIPAgent进程和语音板卡设备之间的连接主要分为两个步骤: (1)初始化阶段。 CardManager 先启动,检测自身和 SIPAgent 的 UDP 消息端口是否可用, 若SIPAgent 的 UDP 消息端口被占用, 则重新申请一个可用的 UDP 端口, 开启守护进程。 成功后, 板卡驱动进程 先 启 动 , 向 SIPAgent 发 送 IPC 协 议–23(UDPList)[9,10], 若某些 SIPAgent 进程未启动, 就不会收到响应。 此时 SIP 代理进程启动并发送(Request), CardManager 收到请求并发送(Response),完成对应信息的初始化。 (2)语音数据传输阶段。 SIP 代理进程在初始化时会从数据库或 XML 配置文件中读取“SIP 代理进程-板卡通道”对应关系, 因此 SIP 代理进程已知自己对应的通道。 将SIPServer服务器接入的语音数据接入到 SIPAgent. SIPAgent 将语音数据通过语音UDP端口发送给CardManager. SIPAgent的Socket绑定相应的 UDP 端口, CardManager 中通道对应的语音UDP端口始终处于监听(Listen)状态, 当监听到发送来的语音数据后, 接受语音数据并将其存放到相应通道对应的环状缓冲区中, 同时获取到 SIP 代理进程对应的 IP 和 UDP 语音端口, 以便向其发送语音消息。

  语音数据具体的传输方式是: 在内存中建立 3 个录音缓冲区和 3 个放音缓冲区, 用来对通道话机进行录音放音操作。 环状缓冲区在开始接受一定数据后,触发响应的通知(BufferNotice), 这时就开启乒乓内存的录音和放音。 首先从换装缓冲区中取出一段语音数据存入放音缓冲区 1 和放音缓冲区 2 中, 当缓冲区完成录音放音操作而终止时, 会调用任务开始时设置的回调函数。 回调函数会分配给下一个缓冲区 3 新的录音和放音任务。 三个缓冲区是互不干扰的, 会出现1–2–3–1–2–3……交替工作的状态, 提高了多线程的读写效率。 三个录音缓冲区也是相同的工作原理, 只不过录音缓冲区的语音数据会直接发送到SIPAgent的语音 UDP 端口, 然后通过网路将语音数据发送到 SIPServer 上。在录音数据的传输过程中, 通过录音模块分别获取内存中录音和放音缓冲区内的音频数据, 按照乒乓录音的过程进行录音, 并且录制成 wav 格式的音频文件存储到频率工作站指定的 Record 文件夹下。

  5 结束语。

  本文 通过对热线 录音系统的 调研 , 并且 对Rabbitmq 和 SIP 终端程序与语音板卡连接的研究, 设计了分布式的热线录音系统的整体框架。 首先对分布式热线录音系统整体框架进行了分析和设计, 接着对几个重要的技术模块进行了详细的分析和设计, 逐步完成了对整个热线录音系统的设计。

  参考文献

  1 李龙来,吴杰,吕智慧,杨明。基于 Web 服务的分布式文件系统管理与优化方案。计算机工程与设计,2012,33(1):58–62.

  2 方君,陈华平,宋浒,刘晓茜。分布式文件系统 K–DFS 的设计与实现。华中科技大学学报(自然科学版),2010,38(增刊 I)。

  3 袁佳,郭燕慧。基于 Rabbitmq 的海量日志的分布式处理。软件,2013,34(7):19–23.

  4 刘舒然。基于 SIP 协议的即时通信系统的设计与实现[硕士学位论文].北京:北京交通大学。2012.

  5 王卓毅。基于 SIP 协议的网络电话设计与实现[硕士学位论文].西安:西安电子科技大学。2012.

  6 高晓婷。基于 AMQP 的信息发布与订阅[硕士学位论文].杭州:浙江工业大学。2013.

相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站