“捕捉缓冲区”特效

      在 Windows XP 中,有两种可以作为内核级的实现方式的“捕捉缓冲区”特效是可行的:
      ·回声消除(AEC)
      ·降噪

      不支持其它DMOs中的特效(诸如那些被用于缓冲区渲染的效果)。

      DirectSoundFullDuplexCreate8 函数和 IDirectSoundCapture8::CreateCaptureBuffer 方法都以一个表明 DSCEFFECTDESC 结构体数组(该数组用于表示想要的特效)地址的 DSCBUFFERDESC 结构体作为参数。但是,如果你想利用微软的实现方式你必须通过 DirectSoundFullDuplexCreate8 创建一个捕捉缓冲区。你也必须使用该函数创建辅助声音缓冲区。如果不这样做,那特效就无法实现。

      在每个 DSCEFFECTDESC 结构体的 dwFlags 成员中,你必须指定 DSCFX_LOCHARDWARE 或 DSCFX_LOCSOFTWARE。在大多数情况下,指定 DSCFX_LOCSOFTWARE。如果特效在指定的位置不可行,那么缓冲区创建失败。

      特效由 DSCEFFECTDESC 结构体中的 guidDSCFXClass 成员来标识。在 guidDSCFXInstance 成员中指定 DSCFX_MS_AEC 或 DSCFX_MS_NS 就可以得到微软的软件实现方式。要想在硬件或软件上使用其它可行的实现方式,就得从制造商那里获取类和实例GUID。

      当缓冲区被创建之后,你可以通过 IDirectSoundCaptureBuffer8::GetFXStatus 方法获取特效的信息。

      AEC主要利于那些用于一端到另一端进行语音交流的应用程序。由A区域麦克风发出的信号从B区域的喇叭中输出,同时被B区域的麦克风接收。不使用AEC的话,这个信号就又会被发送回A区域。导致回声也可能是嚣叫。AEC通过在每个区域监控输入信号(以整个房间的环境作为考虑因素对输入信号进行调整,将它从当前正在输出的信号中排除)克服了这个问题。它同时也除去了任何由本地电脑播放着的声音(比如音乐),从而通过网络传输的语音将不会受干扰。

      AEC在操作系统内核级别上实现并且全局使用这种效果。它有如下限制:
      ·同一时刻只能有一个捕捉缓冲区使用AEC。
      ·如果其它应用程序正在捕捉或播放音频,那么AEC就不能被启动。如果AEC已经启动了,其它任何应用程序要捕捉声音都会使用AEC。
      ·不管输入输出的格式如何,内核混音器都以16位 mono格式处理声音。这样的结果是声音质量可能会下降。以16位 mono格式捕捉声音是为了减少对处理器的使用。
      ·当AEC正在被使用时,所有DirectSound设备上的硬件回声都会失效,这将会影响到其它共享了该设备的用户的体验。
      ·AEC参数的变化将会影响所有正在运行的应用程序。
      ·AEC无法在有些组合声效卡和驱动程序的情况下使用。应用程序应该始终提供用户关闭AEC的功能。
      ·在操作系统版本上主要是Windows XP SP1,AEC无法在使用USB喇叭的情况下工作,也无法在那些提供不同时钟频率的捕捉和渲染的机器上工作。
      ·如果音效环境改变,适配过滤器将会花费2秒或以上的时间进行调节。
      ·任何出现在原始声音信号后128毫秒以上的后期混响将不会从正在输出的信号中除去。

      在具有这个效果的捕捉缓冲区上,使用 IDirectSoundCaptureFXAec8 接口来设置和得到AEC参数。你也可以允许噪音来填充。(一种用于防止在输出信号中没有新数据时而产生完全的寂静)

      降噪特效只有在AEC被启用的情况下才能被使用。降噪捕捉效果除去频繁的背景噪音,诸如风扇噪音。使用 IDirectSoundCaptureFXNoiseSuppress8 接口来设置和获取参数。

      通过使用 IDirectSoundCaptureBuffer8::GetObjectInPath 方法从捕捉缓冲区对象中得到特效接口。

查看其它:
      导 言
      1.枚举“捕捉设备”
      2.创建“捕捉设备对象”
      3.“捕捉设备”性能
      4.创建一个“捕捉缓冲区”
      5.“捕捉缓冲区”信息
      6.“捕捉缓冲区”通知
      7. “捕捉缓冲区”特效
      8.使用“捕捉缓冲区”
      9.写入到WAV文件

转载于:https://www.cnblogs.com/stg609/archive/2008/10/23/1314479.html

波形捕捉:(7)“捕捉缓冲区”特效相关推荐

  1. spring boot 使用javaCV的FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存

    spring boot 使用javaCV的FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存 实现图解: 一.引入maven jar包 <dependency><group ...

  2. zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环

    zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环 参考文章: (1)zzw原创_oracle循环中的异常捕捉_捕捉异常后并继续循环 (2)https://www.cnblogs.com/ ...

  3. 波形捕捉:(8)使用“捕捉缓冲区”

    使用"捕捉缓冲区" 捕捉一个声音包括以下步骤: 1.通过调用 IDirectSoundCaptureBuffer8::Start 方法启动缓冲区.正规来说,你应该设置 DSCBST ...

  4. 波形捕捉:(1)枚举捕捉设备

    枚举"捕捉设备" 后在网上找到类似翻译:DirectSound学习笔记(1):枚举声音设备  作者:pyundeng 而且作者是在06年发表的,哎~~~ 犹豫了半天是否有必要继续翻 ...

  5. 波形捕捉:(2)创建捕捉设备对象

    创建"捕捉设备对象"  你可以通过调用 DirectSoundCaptureCreate8 或 DirectSoundFullDuplexCreate8 函数来创建一个捕捉设备对象 ...

  6. 《猿族崛起》动作捕捉技术及制作流程详解

    前言: 其实最近两个月发布的原创文章,最初动机都是来自于<猿族崛起>,之前并没有太关注这部片子,后来偶然在火星时代上看到Weta发布的特效制作花絮,然后简介说是启用了<阿凡达> ...

  7. 详解工业光魔动作捕捉神器iMoCap

     本文转载自http://page.renren.com/vfx/note/843064044 iMoCap是工业光魔公司(ILM)在制作<加勒比海盗2>时研发的动作捕捉系统,它与之前 ...

  8. Linux C: 信号及异常和捕捉函数原理

    #define SIGHUP 1 终端挂起或控制进程终止 #define SIGINT 2 终端中断(Ctrl+C 组合键) #define SIGQUIT 3 终端退出(Ctrl+\组合键) #de ...

  9. c++11新特性(4) lambda捕捉块

    lambda表达式中的方括号成为捕捉块,能够在这里指定怎样从所在的作用域中捕捉变量. 捕捉的意思是指能够在该lambda中使用该变量.即能够捕获外部变量在lambda表达式内使用. 能够使用两种方式来 ...

最新文章

  1. python 数字格式化
  2. Hibernate基本概念
  3. C#EF中,使用类似于SQL中的% 模糊查询
  4. IOS开发之MVC模式的介绍
  5. shareplex的安装起停服务(添加新用户)
  6. android 的几个黄色警告解决办法(转)
  7. [转载] python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
  8. html form中多个div,在react里最多只能有几个div
  9. hbase 安装_如何搭建一个HBase集群
  10. 数据库系统概论-并发控制
  11. java actionsupport_struts2 中 action 跟 actionsupport 的区别
  12. PHP高并发和大流量解决方案
  13. IPD流程框架及实施关键点
  14. jquery 实现抽奖小程序
  15. 非常好用的模糊pid温度控制算法_PID参数调试“口诀”,总结的真好!
  16. 基本类型包装及数学工具类的使用
  17. CCF中有关计算机网络的顶级会议和推荐期刊(2019年版本)
  18. 编译原理之词法分析、语法分析、语义分析
  19. 远程视频监控:框架概述
  20. 01.14第65期短中线黑马推荐!

热门文章

  1. 数据库--循环语句:loop exit when/ end loop
  2. 读写属性/if判断那点事/数组
  3. HTML5之Viewport详解
  4. 使用ExtJs创建新的UI控件(转)
  5. 设为首页加入收藏代码
  6. SAD立体匹配算法在opencv中的实现
  7. Android安全开发之安全使用HTTPS
  8. HashMap 你真的了解吗?
  9. centos下部署NTP时间服务器同步环境记录
  10. iOS APP提交上架最新流程(转)