CN110196707A - 一种采集参考信号的方法、装置、***及程序产品 - Google Patents
一种采集参考信号的方法、装置、***及程序产品 Download PDFInfo
- Publication number
- CN110196707A CN110196707A CN201910330490.4A CN201910330490A CN110196707A CN 110196707 A CN110196707 A CN 110196707A CN 201910330490 A CN201910330490 A CN 201910330490A CN 110196707 A CN110196707 A CN 110196707A
- Authority
- CN
- China
- Prior art keywords
- reference signal
- signal
- audio data
- alsa
- sound card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004519 manufacturing process Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 239000011800 void material Substances 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出了一种采集参考信号的方法,用于Linux平台中,包括:S1.使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;S2.通过实际硬件声卡采集语音信号;S3.所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。本发明还公开了一种采集参考信号的装置和***及程序产品。本技术方案中的采集参考信号的方法、装置、***及程序产品从软件上实现参考信号的采集,节省硬件成本,且便于维护与移植。
Description
技术领域
本发明涉及一种linux内核领域,特别涉及一种采集参考信号的方法、装置、***及程序产品。
背景技术
Linux是一套***和自由传播的类Unix操作***,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作***。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作***。
在包含语音交互功能的产品中,回音消除***几乎都不可或缺,以用于消除采集到的语音信号中包含的由自身扬声器播放的声音部分。输入给回音消除算法的除了有普通的语音信号外,还需要有自身播放声音的参考信号,而目前市面上在Linux平台对于参考信号的采集主要有以下两种方式:
第一种方式:使用额外的硬件模块采集参考信号,;
第二种方式:在单个应用软件中将自身要播放的音频数据保存下来作为回采的参考信号。
其中,第一种方式会增加硬件成本;第二种方式从软件上回采参考信号仅限于单一应用程序内部,无法直接用于多个应用程序的场景中,应用开发者需要对应用代码进行额外的修改,不便于维护与移植。
发明内容
为了解决以上的问题,本发明能提供一种节省硬件成本及便于维护与移植的采集参考信号的方法、装置、***及程序产品。
本发明公开了一种采集参考信号的方法,用于Linux平台中,包括:
S1.使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;
S2.通过实际硬件声卡采集语音信号;
S3.所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
进一步地,步骤S1之前还具有步骤S0,同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
进一步地,步骤S3中,通过纳秒级定时器实现计数。
进一步地,步骤S3中,通过所述的实际硬件声卡的数据寄存器实现计数。
本发明公开了一种采集参考信号的装置,用于Linux平台中,包括:
参考信号采集单元,用于使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;
语音信号采集单元,用于通过实际硬件声卡采集语音信号;
同步单元,用于所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
进一步地,所述的参考信号采集单元之前还具有混音单元,用于同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
进一步地,所述的同步单元中,通过纳秒级定时器实现计数。
进一步地,所述的同步单元中,通过所述的实际硬件声卡的数据寄存器实现计数。
本发明公开了一种采集参考信号的***,包括Linux内核,所述的Linux内核具有上述的装置。
本发明公开了一种采集参考信号的程序产品,用于Linux内核中,所述的程序产品具有以上方法中的步骤的计算机程序代码。
实施本发明的一种采集参考信号的方法、装置、***及程序产品,具有以下有益的技术效果:
区别于现有技术中的使用额外的硬件模块采集参考信号会增加硬件成本;从软件上回采参考信号仅限于单一应用程序内部,无法直接用于多个应用程序的场景中,应用开发者需要对应用代码进行额外的修改,不便于维护与移植的不足,本技术方案中的采集参考信号的方法、装置、***及程序产品从软件上实现参考信号的采集,节省硬件成本;从***层面采集参考信号,上层应用程序无需关注采集参考信号的实际方式以及其他应用程序的行为,方便应用开发者的维护与移植。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例一种采集参考信号的方法流程图;
图2为本发明的实施例一种采集参考信号整体***框图;
图3为本发明的实施例一种采集参考信号的装置模块图;
图4为本发明的实施例一种采集参考信号的***模块图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,实施例,一种采集参考信号的方法,用于Linux平台中,包括:
S1.使用Linux内核ALSA框架中的虚拟声卡(Loopback:本地环回接口,亦称回送地址)来回采播放的信号作为参考信号;
S2.通过实际硬件声卡采集语音信号;
S3.所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
本技术方案中,更改Loopback搬运数据的方式,让其依赖于高精度定时器或实际硬件声卡(用于语音信号采集)的数据寄存器计数,保证语音信号与参考信号间的同步;
通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往Loopback声卡(作为参考信号),并给录音程序提供接口以采集参考信号;另一方面,通过ALSAplug-in的机制保证即使录音过程中有数据丢失,语音信号和参考信号能依旧保持对齐。
请参阅图2,(1)处允许多个应用程序同时进行播放,通过ALSAplug-in在***层面实现混音。从各个播放应用程序的角度来看,它们只能看到由plug-in所提供的单一的音频设备,只要把数据往里面送,其余的混音、回采的操作会自动由***实现,对它们而言都是透明的。
从(2)处送给Loopback虚拟声卡的数据可以从(3)处完整地读出来,(3)处提供了标准的ALSA设备接口,允许上层应用直接从中读取数据。
ALSA原生的Loopback依赖于***定时器的计时来搬运数据,在嵌入式平台中***定时器一般只有10ms的精度,难以满足一般回音消除算法对语音信号与参考信号的同步性要求;本技术方案为此新增了两种计时方法:使用高精度定时器(理论精度可达ns,实际精度因硬件平台而定),或(4)处所示的依赖于硬件ADC的数据寄存器计数,从而更好地保证语音信号与参考信号的同步。
(5)处使用ALSAplug-in将Loopback声卡设备(用于采集参考信号)和硬件声卡设备(用于采集语音信号)合并为单一的音频设备接口,这样上层应用也无需关注多余的实现细节,从这个单一的音频设备中就能将语音信号和参考信号同时采集到。另外在采集过程中若发生了数据丢失,这种做法还能保证后续的语音信号与参考信号保持对齐,避免回音消除算法因此而失效。
步骤S1之前还具有步骤S0,同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
综上,回音消除算法需要有两路信号输入:语音信号与参考信号,本专利提供了一种Linux平台中从软件上在***层面采集参考信号的方法,可节省用于采集参考信号的硬件资源。
传统的从硬件上采集参考信号的方法,而本专利是从软件上来采集参考信号,采集方式不同,更节省硬件成本。
本专利是基于Linux平台ALSA框架的Loopback虚拟设备实现,本专利的回音消除模块位于Linux***的应用层,是一个应用程序,本专利所使用的应用层回音消除模块更方便于第三方回音消除算法的集成。
下面介绍实现以上方法的装置,在装置中没有记载的部分,请参考以上方法的记载。
请参阅图3,实施例,一种采集参考信号的装置1,用于Linux平台中,包括:
参考信号采集单元10,用于使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;
语音信号采集单元20,用于通过实际硬件声卡采集语音信号;
同步单元30,用于所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
较佳地,参考信号采集单元之前还具有混音单元5,用于同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
同步单元30中,通过纳秒级定时器实现计数。
同步单元30中,通过所述的实际硬件声卡的数据寄存器实现计数。
请参阅图4,一种采集参考信号的***100,包括Linux内核,Linux内核具有上述的装置1。
实施例,一种采集参考信号的程序产品,用于Linux内核中,程序产品具有图1步骤的计算机程序代码。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或至少一个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或至少一个流程和/或方框图一个方框或至少一个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种采集参考信号的方法,用于Linux平台中,其特征在于,包括:
S1.使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;
S2.通过实际硬件声卡采集语音信号;
S3.所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
2.根据权利要求1所述的方法,其特征在于,步骤S1之前还具有步骤S0,同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
3.根据权利要求1所述的方法,其特征在于,步骤S3中,通过纳秒级定时器实现计数。
4.根据权利要求1所述的方法,其特征在于,步骤S3中,通过所述的实际硬件声卡的数据寄存器实现计数。
5.一种采集参考信号的装置,用于Linux平台中,其特征在于,包括:
参考信号采集单元,用于使用Linux内核ALSA框架中的虚拟声卡来回采播放的信号作为参考信号;
语音信号采集单元,用于通过实际硬件声卡采集语音信号;
同步单元,用于所述的参考信号的第一音频数据与语音信号采集的第二音频数据通过计数实现同步。
6.根据权利要求5所述的装置,其特征在于,所述的参考信号采集单元之前还具有混音单元,用于同时播放多个应用程序,通过ALSA的标准plug-in,在***层让音频数据在播放的同时自动送往所述的虚拟声卡。
7.根据权利要求5所述的装置,其特征在于,所述的同步单元中,通过纳秒级定时器实现计数。
8.根据权利要求5所述的装置,其特征在于,所述的同步单元中,通过所述的实际硬件声卡的数据寄存器实现计数。
9.一种采集参考信号的***,包括Linux内核,其特征在于,所述的Linux内核具有权利要求5至8任一项权利要求中所述的装置。
10.一种采集参考信号的程序产品,用于Linux内核中,其特征在于,所述的程序产品具有执行权利要求1至4任一项步骤的计算机程序代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910330490.4A CN110196707B (zh) | 2019-04-23 | 2019-04-23 | 一种采集参考信号的方法、装置、***及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910330490.4A CN110196707B (zh) | 2019-04-23 | 2019-04-23 | 一种采集参考信号的方法、装置、***及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196707A true CN110196707A (zh) | 2019-09-03 |
CN110196707B CN110196707B (zh) | 2024-07-09 |
Family
ID=67752009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910330490.4A Active CN110196707B (zh) | 2019-04-23 | 2019-04-23 | 一种采集参考信号的方法、装置、***及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196707B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579038A (zh) * | 2020-12-24 | 2021-03-30 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN113990354A (zh) * | 2021-12-29 | 2022-01-28 | 北京鲸鲮信息***技术有限公司 | 基于Linux的音频控制方法、装置、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687894A (zh) * | 2005-04-08 | 2005-10-26 | 北京中星微电子有限公司 | 一种消除回音的方法 |
CN101464787A (zh) * | 2008-07-18 | 2009-06-24 | 深圳市中兴移动通信有限公司 | 一种实现嵌入端与基于Linux操作***的计算机之间的语音输入输出*** |
CN101599285A (zh) * | 2009-07-02 | 2009-12-09 | 深圳市万兴软件有限公司 | 一种音频录制方法和*** |
CN102625006A (zh) * | 2011-01-31 | 2012-08-01 | 深圳三石科技有限公司 | 一种回声消除数据同步对齐方法、***及音频通信设备 |
CN104010100A (zh) * | 2014-05-08 | 2014-08-27 | 深圳市汇川技术股份有限公司 | VoIP通信中的回声消除***及方法 |
CN105323534A (zh) * | 2014-07-14 | 2016-02-10 | 深圳市潮流网络技术有限公司 | 一种第三方应用的会议处理方法和通讯设备 |
CN107592430A (zh) * | 2016-07-07 | 2018-01-16 | 腾讯科技(深圳)有限公司 | 一种回声消除的方法及终端设备 |
-
2019
- 2019-04-23 CN CN201910330490.4A patent/CN110196707B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687894A (zh) * | 2005-04-08 | 2005-10-26 | 北京中星微电子有限公司 | 一种消除回音的方法 |
CN101464787A (zh) * | 2008-07-18 | 2009-06-24 | 深圳市中兴移动通信有限公司 | 一种实现嵌入端与基于Linux操作***的计算机之间的语音输入输出*** |
CN101599285A (zh) * | 2009-07-02 | 2009-12-09 | 深圳市万兴软件有限公司 | 一种音频录制方法和*** |
CN102625006A (zh) * | 2011-01-31 | 2012-08-01 | 深圳三石科技有限公司 | 一种回声消除数据同步对齐方法、***及音频通信设备 |
CN104010100A (zh) * | 2014-05-08 | 2014-08-27 | 深圳市汇川技术股份有限公司 | VoIP通信中的回声消除***及方法 |
CN105323534A (zh) * | 2014-07-14 | 2016-02-10 | 深圳市潮流网络技术有限公司 | 一种第三方应用的会议处理方法和通讯设备 |
CN107592430A (zh) * | 2016-07-07 | 2018-01-16 | 腾讯科技(深圳)有限公司 | 一种回声消除的方法及终端设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579038A (zh) * | 2020-12-24 | 2021-03-30 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN112579038B (zh) * | 2020-12-24 | 2023-05-23 | 上海商米科技集团股份有限公司 | 一种内置录音方法、装置、电子设备和存储介质 |
CN113990354A (zh) * | 2021-12-29 | 2022-01-28 | 北京鲸鲮信息***技术有限公司 | 基于Linux的音频控制方法、装置、设备和存储介质 |
WO2023124002A1 (zh) * | 2021-12-29 | 2023-07-06 | 北京字节跳动网络技术有限公司 | 基于Linux的音频控制方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110196707B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6665409B1 (en) | Methods for surround sound simulation and circuits and systems using the same | |
US10665218B2 (en) | Audio data processing method and device | |
CN107357726A (zh) | 一种应用程序兼容性测试方法和装置 | |
CN110196707A (zh) | 一种采集参考信号的方法、装置、***及程序产品 | |
US20170201563A1 (en) | Video data providing method, video playback method, device, and system | |
US10609502B2 (en) | Methods and systems for simulating microphone capture within a capture zone of a real-world scene | |
CN108460120A (zh) | 数据保存方法、装置、终端设备及存储介质 | |
CN109711071A (zh) | 一种服务器SoC软硬件协同仿真加速方法及*** | |
CN108712299A (zh) | 一种监测直播延时的方法、装置、设备和计算机存储介质 | |
CN109785868B (zh) | 音乐文件转化与播放方法、装置、计算机设备及存储介质 | |
CN109947387A (zh) | 音频采集方法、音频播放方法、***、设备及存储介质 | |
CN110443690A (zh) | 一种差异数据对账的方法、装置、服务器和存储介质 | |
CN110418183A (zh) | 音视频同步方法、装置、电子设备及可读介质 | |
CN112926285A (zh) | 芯片验证方法、平台、装置、设备和存储介质 | |
CN108573710A (zh) | 一种实时去除录音回声的方法及装置 | |
US8984196B2 (en) | Accessing peripheral devices | |
CN113144620A (zh) | 帧同步游戏的检测方法、装置、平台、可读介质和设备 | |
US8863095B2 (en) | Recording and playback of system interactions in different system environments | |
CN111290960A (zh) | 应用程序的流畅度检测方法、装置、终端及存储介质 | |
CN102984370A (zh) | 一种基于安卓的无线网络下变声通话的方法 | |
CN109243472A (zh) | 一种音频处理方法及音频处理*** | |
CN109686415A (zh) | 一种数据传输方法、管理平台、电子设备及存储介质 | |
CN109587542A (zh) | 音视频数据同步设备、方法、数据处理设备、介质 | |
CN111142868A (zh) | 活动中奖***开发方法及装置 | |
CN108462901A (zh) | 一种媒体文件播放方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |