System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种双螺旋式结构的录放音调度方法技术_技高网

一种双螺旋式结构的录放音调度方法技术

技术编号:40050507 阅读:10 留言:0更新日期:2024-01-16 21:08
一种双螺旋式结构的录放音调度方法,属于多媒体通信技术领域。它包括以下步骤:步骤一、给录音、放音各准备N个帧缓存;步骤二、将N个录音缓存加入声卡,并启动录音;将N个放音缓存逐一写入声卡;步骤三、在录音的回调函数里,向声卡写入放音缓存;步骤四、在放音的回调函数里,加入录音缓存;步骤五、结束录音放音。本发明专利技术采用录音回调+向声卡写入缓存作为录音帧耗时,将放音回调+加入录音缓存作为放音帧耗时,起到了中和、平均化的作用,能够把时长抖动降下来,动态地趋于一致;能够在声卡的抢占模式的工作原理下,对录音、放音两路信号进行被动式地动态同步。

【技术实现步骤摘要】

本专利技术属于多媒体通信,具体涉及一种双螺旋式结构的录放音调度方法


技术介绍

1、在计算机多媒体
,声卡是最重要的外设之一,除了板级集成的声卡外,另外独立声卡多以pci卡形式集成。在计算机处理实时音频时,操作系统与声卡之间通过dma进行中转调度。即声卡与dma之间通过硬件中断进行读写的双向数据交换,而操作系统与dma进行双向数据交换,这样有助于将cpu从声卡硬件中断响应的需求中解放出来,提高了操作系统的调度效率。

2、但这种处理方式对于录音、放音都有增大延时的弊端,dma管理的缓存被称为核心态缓存,操作系统用以与核心态缓存交换的内存称为应用态缓存。应用态缓存不能太小,否则就无法进行连续的录音、放音,但应用态缓存越大,引发的系统延时也越大。在计算机这种带操作系统的平台上,处理声卡音频读写必须以一定的延时作为代价。但会产生调度抖动,加上声卡的晶体振荡器的老化,引发的这种数字系统特有的抖动噪声,将对录音、放音产生一定的影响。举例来说,如果抖动幅度较大,可以使得音频采样的时间均匀性被破坏,会产生声音物理频率的失真,更严重会导致声音产生时间域的可听见的间断,一般来说应用态缓存的大小可以在一定程度上“消弭”这种抖动效应,尤其是足够长的缓存。

3、但面对双工语音通信等场景,往往由于声学回声消除模块的工作原理,对录音信号进行消回声处理需要在放音信号的参考配合下进行,这时候由于系统抖动引发的两路音频的不同步性如何“消弭”是重要的保证。实际中,当需要一路作为另外一路的参考,则需要一定的同步保障。同理,当考虑多路采集的麦克风信号进行声源定位时也存在上述问题。


技术实现思路

1、针对现有技术中存在的上述问题,本专利技术的目的在于提供一种双螺旋式结构的录放音调度方法,能够在声卡的抢占模式的工作原理下,对录音、放音两路信号进行被动式地动态同步。

2、本专利技术提供如下技术方案:一种双螺旋式结构的录放音调度方法,包括以下步骤:

3、步骤一、给录音、放音各准备n个帧缓存;

4、步骤二、将n个录音缓存加入声卡,并启动录音;将n个放音缓存逐一写入声卡;

5、步骤三、在录音的回调函数里,向声卡写入放音缓存;

6、步骤四、在放音的回调函数里,加入录音缓存;

7、步骤五、结束录音放音。

8、进一步的,所述步骤二的具体指令均为顺序串行。

9、进一步的,所述步骤二中,录音缓存为空或者为待填写;放音缓存可通过网络或读文件进行填满后再写入声卡。

10、进一步的,所述步骤三的具体过程如下:

11、在录音的回调函数里,向声卡写入n个放音缓存队列的标记为i的缓存,i从0开始,i自加1,如果i等于n则再重置为0。

12、进一步的,所述步骤四的具体过程如下:

13、在放音的回调函数里,加入n个录音缓存队列的标记为j的缓存,j从0开始,j自加1,如果j等于n则再重置为0。

14、进一步的,所述步骤三及步骤四中,分别在向声卡写入n个放音缓存队列的标记为j的缓存及加入n个录音缓存队列的标记为j的缓存前,开启一个子线程,构建多线程录放音调度。

15、进一步的,对实时录音的信号进行处理时,需要在步骤三中标记i的缓存在加入录音缓存队列前取出进行处理,并保存处理结果;

16、对实时放音的信号进行处理时,要在步骤四中标记j的缓存在写入声卡前进行处理。

17、进一步的,所述步骤三及步骤四中,录音回调函数、放音回调函数里分别执行向声卡写入放音缓存或加入录音缓存;且加入录音缓存、向声卡写入缓存完毕后能够调用相应的录音回调函数及放音回调函数;录音回调函数及放音回调函数的调用、在录音的回调函数里向声卡写入放音缓存、在放音的回调函数加入录音缓存之间反复循环,直到录音、放音结束。

18、通过采用上述技术,与现有技术相比,本专利技术的有益效果如下:

19、本专利技术采用录音回调+向声卡写入缓存作为录音帧耗时,将放音回调+加入录音缓存作为放音帧耗时,在起到了中和、平均化的作用,能够把时长抖动降下来,动态地趋于一致;能够在声卡的抢占模式的工作原理下,对录音、放音两路信号进行被动式地动态同步。

本文档来自技高网...

【技术保护点】

1.一种双螺旋式结构的录放音调度方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤二的具体指令均为顺序串行。

3.根据权利要求2所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤二中,录音缓存为空或者为待填写;放音缓存可通过网络或读文件进行填满后再写入声卡。

4.根据权利要求1所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤三的具体过程如下:

5.根据权利要求4所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤四的具体过程如下:

6.根据权利要求5所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤三及步骤四中,分别在向声卡写入N个放音缓存队列的标记为j的缓存及加入N个录音缓存队列的标记为j的缓存前,开启一个子线程,构建多线程录放音调度。

7.根据权利要求5所述的一种双螺旋式结构的录放音调度方法,其特征在于,对实时录音的信号进行处理时,需要在步骤三中标记i的缓存在加入录音缓存队列前取出进行处理,并保存处理结果

8.根据权利要求5所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤三及步骤四中,录音回调函数、放音回调函数里分别执行向声卡写入放音缓存或加入录音缓存;且加入录音缓存、向声卡写入缓存完毕后能够调用相应的录音回调函数及放音回调函数;录音回调函数及放音回调函数的调用、在录音的回调函数里向声卡写入放音缓存、在放音的回调函数加入录音缓存之间反复循环,直到录音、放音结束。

...

【技术特征摘要】

1.一种双螺旋式结构的录放音调度方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤二的具体指令均为顺序串行。

3.根据权利要求2所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤二中,录音缓存为空或者为待填写;放音缓存可通过网络或读文件进行填满后再写入声卡。

4.根据权利要求1所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤三的具体过程如下:

5.根据权利要求4所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤四的具体过程如下:

6.根据权利要求5所述的一种双螺旋式结构的录放音调度方法,其特征在于,所述步骤三及步骤四中,分别在向声卡...

【专利技术属性】
技术研发人员:陆成刚沈子强杨利中王斌龙皋月白晓迪南哲
申请(专利权)人:浙江工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1