基于.NET语音通信设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于.NET语音通信设计与实现

基于.NET语音通信设计与实现   摘要:基于.NET语音通信的设计应用了DirectSound组件,以最大限度的发挥音频硬件模块性能,提高语音通信质量,实现网络语音通信。基于.NET语音通信设计包括音频发送模块设计、音频接收模块设计和IP网络传输。本研究分析了DirectSound音频采集设备初始化和音频播放设备初始化,并在此基础上探讨了Socket音频数据监听和发送设计,DirectSound音频数据采集和播放设计,为基于.NET语音通信设计的实践提供一些参考。   关键词:.NET;语音通信;DirectSound;设计   引言   随着计算机和互联网技术的飞速发展,越来越多的人开始使用、依赖计算机网络交流方式。市面上的一些即时语音通信软件能够很好的满足人们的通信交流需求,然而这些软件相对独立、功能完善,不利于集成到应用软件开发当中。本研究探讨基于.NET语音通信的设计,寻求一种开源、简单、灵活的实现方法。   1语音通信程序结构   和其他语音通信一样,基于.NET语音通信的过程是双向的。也就是说,语音通信双方既需要获取对方的声音,又需要将自己的声音传输出去。因此,语音通信程序设计结构应当包括音频发送模块、音频接收模块和IP网络传输。在设计音频发送模块时,采取的思路如下。首先使用Direct Sound捕获来自音频输入设备的语音。其次,硬件接口的声音数据被捕获后,使用IP网络实时地传输语音数据。在设计音频接收模块时可以使用监听设备对IP网络传输的声音数据进行实时监听,再使用Direct Sound调用语音数据并播放声音。由此可见,此程序的核心功能就是采集音频、网络传输和播放音频。为了实现这些功能,在程序设计时,需要设计负责网络端口监听的模块、负责接收音频连接服务器的Socket模块、负责数据接受或发送的客户端Socket模块、负责处理接受或发送数据的模块。   2音频设备初始化   随着现代化信息技术的飞速发展,通信传输监测手段的科技含量也随之不断提升,已经由最初的肉眼检测发展到现今的监测结果更精确的电子化自动监测。所谓光缆监测系统,就是通过对光缆进行监测,进而做出光缆运行是否正常的判断,当出现不正常情况时,就会进行报警,并进行相应??测试,以准确定位故障发生点。   音频设备初始化是基于.NET语音通信设计的第一步,其主要包括音频播放设备初始化和音频采集设备初始化。   首先,播放设备初始化。构建Device对象,是应用程序语音播放的必要准备。播放设备初始化时,设备的枚举采用SDK函数Devices Collection声音,主声音设备就是首个被枚举的声音设备。用户可以通过控制面板将此设备定义成首选重放声音设备。确定播放设备的协作级别,是Device对象创建后的重要工作,如果不确定播放设备的协作级别,就将无法使用播放设备。Windows操作系统可以同时执行多个任务,如果在同一时间点多个应用程序访问音频设备,而音频设备的协作级别又没有制定,就将难以判定各个应用程序的访问顺序,导致应用程序在不恰当的时间以不合理的方式访问设备。协作级别决定了Direct Sound应用程序访问设备的允许程度。通常采用Cooperative Level枚举值对协作级别进行描述,可以描述为最高协作级别、优先协作级别或标准协作级别。辅助缓冲区的创建是音频播放设备最后的初始化步骤,一般主要采用循环缓存的方式。开始建立通信后,辅助缓冲区会陆续接收到语音数据。   其次,采集设备初始化。采用Direct Sound能够取得良好的音频采集、回放的效率和质量。在Direct Sound音频采集设备初始化中,应用程序捕获、记录声音时需要采用枚举声音设备。建立Capture采集设备对象,创建音频采集设备缓冲区对象。Capture Buffer Description能够具体说明缓冲器的特性。Format能够说明缓冲区中设置数据的格式。循环缓存是设备采集的缓冲区对象的特点,如果捕获指针指在缓存末尾时,捕获指针将从缓存的起始点重新开始,所以需要及时地取出采集的音频数据,防止数据被覆盖。   3音频数据的监听、发送、采集与播放的设计   音频数据的监听、发送、采集与播放的设计可以划分成Socket音频数据监听、发送设计和Direct Sound音频数据采集和播放设计两个部分。   首先,音频数据监听和发送设计。语音端只有初始化本地Socket对象,才能够接收语音数据,才能够接听声音。实时监听对方的语音数据,如果接收到语音数据,就需要马上将语音数据压入辅助缓存。为了确保最小的语音通话的时延,就要设置较高的语音数据实时监听频率,并且及时处理接收到辅助缓冲区的语音数据,最后采用音响设备将语音数据播放出来。采集音频数据时可以设置事件通知,如果缓冲区到达某一期望值,就

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档