CN113965844A - 低延时音频传输方法、装置、驱动设备及可读存储介质 - Google Patents
低延时音频传输方法、装置、驱动设备及可读存储介质 Download PDFInfo
- Publication number
- CN113965844A CN113965844A CN202111575769.2A CN202111575769A CN113965844A CN 113965844 A CN113965844 A CN 113965844A CN 202111575769 A CN202111575769 A CN 202111575769A CN 113965844 A CN113965844 A CN 113965844A
- Authority
- CN
- China
- Prior art keywords
- audio data
- audio
- digital audio
- low
- target
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R1/00—Details of transducers, loudspeakers or microphones
- H04R1/08—Mouthpieces; Microphones; Attachments therefor
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R3/00—Circuits for transducers, loudspeakers or microphones
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种低延时音频传输方法、装置、驱动设备及可读存储介质,涉及音频数据采集和传输领域,所述低延时音频传输方法包括:接收音频采集设备生成的数字音频数据;将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。通过管道传输数据,应用层只需调用一次系统调用,由于在DMA完成后音频数据采集没有使用标准的ALSA驱动流程,直接通过管道将音频数据发送至应用算法线程,减少了驱动和应用的缓存大小,同时系统调用次数也降低,使得整体数据传输时间降低,满足用户低延时的需求。
Description
技术领域
本发明涉及音频数据采集和传输领域,尤其涉及一种低延时音频传输方法、装置、驱动设备及可读存储介质。
背景技术
随着芯片架构和制程工艺的不断发展,ARM处理器(Advanced RISC Machines)等也进入的多核时代,并且性能一直在提高和功耗也在降低,为嵌入式音频处理带来了新的处理方法,即直接使用CPU来处理音频数据,区别于传统的DSP(Digital Signal Process,数字信号处理)方式,直接降低了系统成本,也加快了国产替代DSP。
在音频系统特别是扩声系统中,对延时要求极高,越低的扩声延迟,人耳听感越舒适,因此在产品中,音频系统中低延时一直是主要指标之一,所以在系统中降低延迟是一个目标。而在目前Linux系统中音频驱动使用ALSA(Advanced Linux Sound Architecture )架构,且普遍采用读取文件的方式采集音频数据,但使用读取文件的方式采集音频数据会造成较高延时,不能满足用户的使用需求。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种低延时音频传输方法,旨在解决目前Linux系统中音频驱动使用ALSA架构普遍采用读取文件的方式采集音频数据造成较高延时,不能满足用户的使用需求的技术问题。
为实现上述目的,本发明提供一种低延时音频传输方法,所述低延时音频传输方法包括:
接收音频采集设备生成的数字音频数据;
将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
进一步的,所述接收音频采集设备生成的数字音频数据的步骤包括:
接收音频采集设备采集到的模拟音频数据通过ADC硬件转换后的数字音频数据。
进一步的,所述接收音频采集设备生成的数字音频数据的步骤还包括:
当存在多个音频采集设备时,则接收多个音频采集设备模拟音频数据经ADC硬件转换后的数字音频数据,其中,所述音频采集设备包括:目标音频采集设备和干扰音频采集设备。
进一步的,所述将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区的步骤还包括:
将多个音频采集设备采集的数字音频数据发送至与采集设备对应的DMA缓冲区。
进一步的,所述将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区;
将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
进一步的,所述将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区的步骤包括:
根据多个数字音频数据中的时间戳,将所述多个数字音频数据进行数据合并同步,并将合并同步后的数字音频数据缓存至所述自定义缓存区中。
进一步的,所述将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
根据与目标算法线程对应的预设管道名称,将整合后的数字音频数据发送至目标通讯管道;
通过目标通讯管道将整合后的数字音频数据发送至目标算法线程进行音频数据处理。
此外,为实现上述目的,本发明还提供一种低延时音频传输装置,所述低延时音频传输装置应用于扩音系统,所述低延时音频传输装置包括:
采集模块,用于接收音频采集设备生成的数字音频数据;
转发模块,用于将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
发送模块,用于将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
此外,为实现上述目的,本发明还提供一种低延时音频传输驱动设备,所述低延时音频传输驱动设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的低延时音频传输程序,所述低延时音频传输程序被所述处理器执行时实现如上述的低延时音频传输方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有低延时音频传输程序,所述低延时音频传输程序被处理器执行时实现如上述的低延时音频传输方法的步骤。
本发明实施例提出的一种低延时音频传输方法,基于Linux系统音频驱动的ALSA架构,通过将ALSA驱动程序进行修改,在DMA完成后驱动程序直接将音频数据转发给与应用层算法处理线程对应的管道,算法处理线程等待并从管道获取音频数据再调用算法处理,只需调用一次系统调用,且在DMA完成后由于未将音频数据缓存至驱动缓存区,因此降低ALSA驱动的缓存大小,同时系统调用次数也降低,从而降低整体数据传输时间,满足用户低延时的需求。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的驱动设备结构示意图;
图2为本发明低延时音频传输方法第一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:基于Linux系统音频驱动的ALSA架构,通过将ALSA驱动程序进行修改,在DMA(Direct Memory Access,直接存储器访问)完成后驱动程序直接将音频数据转发给与应用层算法处理线程对应的管道,算法处理线程等待并从管道获取音频数据再调用算法处理。
由于在目前的音频系统特别是扩声系统,对延时要求极高,越低的扩声延迟,人耳听感越舒适,因此在产品中,音频系统中低延时一直是主要指标之一,所以在系统中降低延迟是一个目标。而在目前Linux系统中音频驱动使用的是ALSA架构,且普遍采用读取文件的方式采集音频数据,但使用读取文件的方式采集音频数据会造成较高延时,不能满足用户的使用需求。
本发明提供一种解决方案,减少音频数据从内核层向应用层传输时,应用层的系统调用次数,同时也减少音频数据在驱动缓存区的缓存,使得整体音频数据传输时间减少,满足用户对低延时的需求。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的驱动设备结构示意图。
本发明实施例终端设备可以是PC,也可以便携计算机等具有音频数据采集。传输和处理功能的电子终端设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及低延时音频传输程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的低延时音频传输程序,并执行以下操作:
接收音频采集设备生成的数字音频数据;
将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
进一步地,处理器1001可以调用存储器1005中存储的低延时音频传输程序,还执行以下操作:
所述接收音频采集设备生成的数字音频数据的步骤包括:
接收音频采集设备采集到的模拟音频数据通过ADC硬件转换后的数字音频数据。
进一步地,处理器1001可以调用存储器1005中存储的低延时音频传输程序,还执行以下操作:
所述接收音频采集设备生成的数字音频数据的步骤还包括:
当存在多个音频采集设备时,则接收多个音频采集设备模拟音频数据经ADC硬件转换后的数字音频数据,其中,所述音频采集设备包括:目标音频采集设备和干扰音频采集设备。
进一步地,处理器1001可以调用存储器1005中存储的网络操作控制应用程序,还执行以下操作:
所述将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区的步骤还包括:
将多个音频采集设备采集的数字音频数据发送至与采集设备对应的DMA缓冲区。
进一步地,处理器1001可以调用存储器1005中存储的低延时音频传输程序,还执行以下操作:
所述将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区;
将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
进一步地,处理器1001可以调用存储器1005中存储的低延时音频传输程序,还执行以下操作:
所述将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区的步骤包括:
根据多个数字音频数据中的时间戳,将所述多个数字音频数据进行数据合并同步,并将合并同步后的数字音频数据缓存至所述自定义缓存区中。
进一步地,处理器1001可以调用存储器1005中存储的低延时音频传输程序,还执行以下操作:
所述将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
根据与目标算法线程对应的预设管道名称,将整合后的数字音频数据发送至目标通讯管道;
通过目标通讯管道将整合后的数字音频数据发送至目标算法线程进行音频数据处理。
参照图2,本发明低延时音频传输方法的第一实施例,所述低延时音频传输方法包括:
步骤S10,接收音频采集设备生成的数字音频数据;
可以理解的是,本实施例将基于Linux系统中音频驱动ALSA架构下进行说明。上述音频采集设备通常为麦克风设备,麦克风设备将用于对外界声音的采集生成模拟音频数据。
进一步的,接收音频采集设备采集到的模拟音频数据通过ADC(Analog toDigital,模数转换器)硬件转换后的数字音频数据。具体的,麦克风采集生成的模拟音频数据将通过ADC模数转换器转换成数字音频数据。
步骤S20,将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
可以理解的是,从音频采集设备生成的数字音频数据将使用DMA方式完成数据传输,因此该音频数据将会被模数转换设备发送至与生成该音频数据采集设备对应的DMA缓冲区,例如与麦克风对应的麦克风设备DMA缓冲区。
步骤S30,将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
ALSA驱动DMA完成后,从麦克风设备DMA缓冲区获取到数字音频数据,并根据获取到的音频数据在自定义缓存区建立起一帧缓存数据,再将建立起的一帧缓存数据通过Linux管道发送至对应的算法线程进行音频数据处理。
进一步的,根据与目标算法线程对应的预设管道名称,所述数字音频数据发送至目标通讯管道;通过目标通讯管道将所述数字音频数据发送至目标算法线程进行音频数据处理。具体的,在本实施例中对ALSA驱动程序进行修改,在系统层和应用层之间的音频数据传输过程中,驱动程序将DMA缓冲区的数据根据预设的管道名称发送至目标管道,其中,预设管道名称为与目标算法线程预先建立的管道文件的命名(如:确定程序预先与目标算法线程约定,使用命名为算法1的管道文件进行数据传输),而在实际音频数据处理过程中存在多个音频算法,因此也将存在多个目标算法线程,不同算法线程建立不同命名的管道文件(如:算法1管道、算法2管道和算法3管道)。驱动程序将音频数据写入至预设管道名称下的管道文件,存在多个目标算法线程时则写入对应预设管道名称下的管道文件,同样的,应用层的音频算法处理线程则通过系统调用读取函数从对应的管道文件中读取驱动程序写入的音频数据,从而完成音频数据并行发送至多个音频算法线程,实现数据从内核层到应用层的快速传输。
可以理解的是,在现有技术中Linux系统音频驱动中普遍使用普遍采用读取文件的方式采集音频数据,即应用层从ALSA的驱动缓存区进行数据的读取,在应用层从驱动缓存区进行数据的读取之前,需要驱动程序将数据缓存至驱动的缓存区,而在驱动缓存区进行数据缓存将会导致延时,此外,在存在多个算法线程时,数据采集线程采集到数据后将通过线程通讯将数据传输给多个音频算法处理线程,为了数据完整性通常线程通信都需要加锁,即数据采集线程要将数据传输给音频算法线程,需要将数据写入多个加锁队列--对应多个算法处理线程,需要进行多次系统调用,因此多个音频算法处理函数要传输多次,每次传输都将使用系统调用从而进一步增加数据传输时间造成延时。基于上述原因,在本实施例中,对ALSA驱动程序进行修改,在DMA完成后直接将音频数据转发给与应用层算法处理线程对应的通讯管道,算法处理线程等待并从管道中获取音频数据再调用算法处理,只需调用一次系统调用,由于音频数据采集没有使用标准的ALSA驱动流程,直接通过管道将音频数据发送至应用算法线程,既降低ALSA驱动的缓存大小,又降低系统调用次数,从而降低整体数据传输时间,满足用户的低延时需求。
进一步的,本发明低延时音频传输方法提供的另一实施例,所述低延时音频传输方法包括:
步骤S100,接收音频采集设备生成的数字音频数据;
进一步的,当存在多个音频采集设备时,则接收多个音频采集设备模拟音频数据经ADC硬件转换后的数字音频数据,其中,所述音频采集设备包括:目标音频采集设备和干扰音频采集设备。
可以理解的是,本实施至少可以应用于音频系统中的扩声系统,而在扩音系统中音频采集设备除采集目标音频的采集设备外(如:采集讲话人声音的麦克风),还存在干扰音频采集设备(干扰音频通常为回声,而回声由扩音系统中音频播放器发出声音),目标音频采集设备在采集讲话人声音的同时也将采集到音频播放器发出声音(如:扩音系统中的扩音音箱和喇叭等),干扰音频采集设备采集到回声音频数据,将用于消除目标音频采集设备在采集讲话人声音同时采集到音频播放器发出的声音(即干扰音频数据),因此,在将目标音频中的干扰音频消除时,需保证两种数据的同步性。此外,目标音频麦克风和干扰音频麦克采集生成的模拟音频数据将通过ADC模数转换器转换成数字音频数据。
步骤S200,将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
进一步的,将多个音频采集设备采集的数字音频数据发送至与采集设备对应的DMA缓冲区。
可以理解的是,从音频采集设备生成的数字音频数据将使用DMA方式完成数据传输,因此每种设备采集到的音频数据将会被模数转换设备发送至与各音频数据采集设备对应的DMA缓冲区,例如与目标麦克风对应的目标麦克风设备DMA缓冲区;与回声麦克风(干扰音频采集设备)对应回声麦克风设备DMA缓冲区。
步骤S300,将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
进一步的,将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区;将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。驱动程序分别从目标音频采集设备和干扰音频采集设备的DMA缓冲区获取目标音频数据和干扰音频数据,并将两种音频数据整合后写入自定义缓存区,驱动程序将自定义缓存区中数据通过Linux管道发送至对应的算法线程进行音频数据处理。
可以理解的是,在目前在音频系统常用的技术方案是从不同音频采集设备得到数字音频数据,将被驱动程序缓存至不同的驱动缓冲区(如:目标音频数据驱动缓冲区和回声音频数据驱动缓冲区),因此采集线程在应用层调用系统调用从内核层读取数据时需从不同的缓冲区读取,且每从一个缓冲区读取都需要系统调用,因此,若存在两个采集设备驱动缓冲区就需要至少两次系统调用,每次系统调用都会增加延时时间。而在本实施例中,将不同音频数据整合至一个自定义缓存区中,从而减少应用层的系统调用次数,降低延时时间。
进一步的,根据多个数字音频数据中的时间戳,将所述多个数字音频数据进行数据合并同步,并将合并同步后的数字音频数据缓存至所述自定义缓存区中。具体的,在将两种音频数据整合后写入自定义缓存区过程中,以生成的时间依据,将同时刻生成两种音频数据放入一帧数据在自定义缓存区中进行缓存。可以理解是,干扰音频数据用于消除目标音频数据中的干扰音频,而在消除时需保证两种数据时间上是同步的,而在现有技术中由于应用层的采集线程在不同的驱动缓存区获取音频数据,因此需要算法处理线程完成不同数据的时间同步工作。而在本实施例里,由于将两种音频数据放入同一自定义缓存区中,因此,在自定义缓存区中已经保持了音频数据的时间同步,因此,在本实施例中将减少音频处理算法的工作,进一步的降低整延时间。
进一步的,根据与目标算法线程对应的预设管道名称,将整合后的数字音频数据发送至目标通讯管道;通过目标通讯管道将整合后的数字音频数据发送至目标算法线程进行音频数据处理。具体的,在系统层和应用层之间的音频数据传输过程中,驱动程序将自定义缓存区的音频数据根据预设的管道名称发送至目标管道,其中,预设管道名称为与目标算法线程预先建立的管道文件的命名,而在实际音频数据处理过程中存在多个音频算法,因此也将存在多个目标算法线程,不同算法线程建立不同命名的管道文件。驱动程序将音频数据写入至预设管道名称下的管道文件,同样的,应用层的音频算法处理线程通过系统调用读取函数从对应的管道文件中读取驱动程序写入的音频数据,从而完成音频数据并行发送至多个音频算法线程,实现数据从内核层到应用层的快速传输。
可以理解的是,在本实施例中,通过修改驱动程序,在DMA完成后将,多个DMA缓冲区的音频数据同步至自定义缓存区,在将自定义缓存区的音频数据通过Linux管道直接发送到应用层多个算法线程,即减少ALSA驱动缓存大小和系统调用次数达到降低采集延时的目的,同时也保证了多个设备ADC数据同步时间的恒定降低音频算法的处理难度,从而减少整个数据传输的时间,降低扩声系统的扩声延迟,提高用户的使用体验。
此外,本发明实施例还提出一种低延时音频传输装置,所述低延时音频传输装置应用于扩音系统,所述低延时音频传输装置包括:
采集模块,用于接收音频采集设备生成的数字音频数据;
转发模块,用于将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
发送模块,用于将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
此外,本发明实施例还提出一种低延时音频传输驱动设备,所述低延时音频传输驱动设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的低延时音频传输程序,所述低延时音频传输程序被所述处理器执行时实现如上述的低延时音频传输方法的步骤。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有低延时音频传输程序,所述低延时音频传输程序被处理器执行时实现如上述的低延时音频传输方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种低延时音频传输方法,其特征在于,所述低延时音频传输方法包括:
接收音频采集设备生成的数字音频数据;
将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
2.如权利要求1所述的低延时音频传输方法,其特征在于,所述接收音频采集设备生成的数字音频数据的步骤包括:
接收音频采集设备采集到的模拟音频数据通过ADC硬件转换后的数字音频数据。
3.如权利要求1所述的低延时音频传输方法,其特征在于,所述接收音频采集设备生成的数字音频数据的步骤还包括:
当存在多个音频采集设备时,则接收多个音频采集设备模拟音频数据经ADC硬件转换后的数字音频数据,其中,所述音频采集设备包括:目标音频采集设备和干扰音频采集设备。
4.如权利要求3所述的低延时音频传输方法,其特征在于,所述将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区的步骤还包括:
将多个音频采集设备采集的数字音频数据发送至与采集设备对应的DMA缓冲区。
5.如权利要求4所述的低延时音频传输方法,其特征在于,所述将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区;
将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
6.如权利要求5所述的低延时音频传输方法,其特征在于,所述将多个音频采集设备对应DMA缓冲区中的数字音频数据整合至自定义缓存区的步骤包括:
根据多个数字音频数据中的时间戳,将所述多个数字音频数据进行数据合并同步,并将合并同步后的数字音频数据缓存至所述自定义缓存区中。
7.如权利要求5所述的低延时音频传输方法,其特征在于,所述将所述自定义缓存区中整合后的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理的步骤包括:
根据与目标算法线程对应的预设管道名称,将整合后的数字音频数据发送至目标通讯管道;
通过目标通讯管道将整合后的数字音频数据发送至目标算法线程进行音频数据处理。
8.一种低延时音频传输装置,其特征在于,所述低延时音频传输装置应用于扩音系统,所述低延时音频传输装置包括:
采集模块,用于接收音频采集设备生成的数字音频数据;
转发模块,用于将所述数字音频数据转发至与所述音频采集设备对应的DMA缓冲区;
发送模块,用于将所述DMA缓冲区的数字音频数据通过与目标算法线程对应的目标通讯管道发送至目标算法线程进行音频数据处理。
9.一种低延时音频传输驱动设备,其特征在于,所述低延时音频传输驱动设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的低延时音频传输程序,所述低延时音频传输程序被所述处理器执行时实现如权利要求1至7中任一项所述的低延时音频传输方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有低延时音频传输程序,所述低延时音频传输程序被处理器执行时实现如权利要求1至7中任一项所述的低延时音频传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111575769.2A CN113965844B (zh) | 2021-12-22 | 2021-12-22 | 低延时音频传输方法、装置、驱动设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111575769.2A CN113965844B (zh) | 2021-12-22 | 2021-12-22 | 低延时音频传输方法、装置、驱动设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113965844A true CN113965844A (zh) | 2022-01-21 |
CN113965844B CN113965844B (zh) | 2022-04-15 |
Family
ID=79473613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111575769.2A Active CN113965844B (zh) | 2021-12-22 | 2021-12-22 | 低延时音频传输方法、装置、驱动设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965844B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009849A (zh) * | 2006-01-26 | 2007-08-01 | 深圳艾科创新微电子有限公司 | 一种基于usb2.0接口的音视频数据传输方法 |
CN101540727A (zh) * | 2009-05-05 | 2009-09-23 | 曙光信息产业(北京)有限公司 | 一种ip报文的硬件分流方法 |
US7792024B1 (en) * | 2005-03-18 | 2010-09-07 | Apple Inc. | IO latency reduction |
US20120246352A1 (en) * | 2011-03-24 | 2012-09-27 | Kil-Yeon Lim | Data processing systems for audio signals and methods of operating same |
CN102736999A (zh) * | 2011-03-28 | 2012-10-17 | 雅马哈株式会社 | 音频数据输入设备和音频数据输出设备 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
CN104137559A (zh) * | 2012-02-28 | 2014-11-05 | 高通股份有限公司 | 在无线显示系统中的宿设备处的定制回放 |
CN104378283A (zh) * | 2014-11-21 | 2015-02-25 | 国家电网公司 | 一种基于客户端/服务器模式的敏感邮件过滤系统及方法 |
CN106095597A (zh) * | 2016-05-30 | 2016-11-09 | 深圳市鼎盛智能科技有限公司 | 客户端数据处理方法及装置 |
WO2017005010A1 (zh) * | 2015-07-03 | 2017-01-12 | 深圳市中兴微电子技术有限公司 | 音频处理方法及设备、计算机存储介质 |
CN106603203A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 数据传输的方法及装置 |
CN110825673A (zh) * | 2020-01-13 | 2020-02-21 | 眸芯科技(上海)有限公司 | 音频输入输出系统及方法 |
CN111078523A (zh) * | 2019-12-25 | 2020-04-28 | 惠州Tcl移动通信有限公司 | 日志获取方法、装置、存储介质及电子设备 |
CN113409808A (zh) * | 2021-06-18 | 2021-09-17 | 上海盈方微电子有限公司 | 一种回声消除时延估算方法及回声消除方法 |
CN113608714A (zh) * | 2021-06-23 | 2021-11-05 | 杭州华橙软件技术有限公司 | 一种回音消除方法、电子设备和计算机可读存储介质 |
-
2021
- 2021-12-22 CN CN202111575769.2A patent/CN113965844B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7792024B1 (en) * | 2005-03-18 | 2010-09-07 | Apple Inc. | IO latency reduction |
CN101009849A (zh) * | 2006-01-26 | 2007-08-01 | 深圳艾科创新微电子有限公司 | 一种基于usb2.0接口的音视频数据传输方法 |
CN101540727A (zh) * | 2009-05-05 | 2009-09-23 | 曙光信息产业(北京)有限公司 | 一种ip报文的硬件分流方法 |
US20120246352A1 (en) * | 2011-03-24 | 2012-09-27 | Kil-Yeon Lim | Data processing systems for audio signals and methods of operating same |
CN102736999A (zh) * | 2011-03-28 | 2012-10-17 | 雅马哈株式会社 | 音频数据输入设备和音频数据输出设备 |
CN104137559A (zh) * | 2012-02-28 | 2014-11-05 | 高通股份有限公司 | 在无线显示系统中的宿设备处的定制回放 |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
CN104378283A (zh) * | 2014-11-21 | 2015-02-25 | 国家电网公司 | 一种基于客户端/服务器模式的敏感邮件过滤系统及方法 |
WO2017005010A1 (zh) * | 2015-07-03 | 2017-01-12 | 深圳市中兴微电子技术有限公司 | 音频处理方法及设备、计算机存储介质 |
CN106603203A (zh) * | 2015-10-15 | 2017-04-26 | 中兴通讯股份有限公司 | 数据传输的方法及装置 |
CN106095597A (zh) * | 2016-05-30 | 2016-11-09 | 深圳市鼎盛智能科技有限公司 | 客户端数据处理方法及装置 |
CN111078523A (zh) * | 2019-12-25 | 2020-04-28 | 惠州Tcl移动通信有限公司 | 日志获取方法、装置、存储介质及电子设备 |
CN110825673A (zh) * | 2020-01-13 | 2020-02-21 | 眸芯科技(上海)有限公司 | 音频输入输出系统及方法 |
CN113409808A (zh) * | 2021-06-18 | 2021-09-17 | 上海盈方微电子有限公司 | 一种回声消除时延估算方法及回声消除方法 |
CN113608714A (zh) * | 2021-06-23 | 2021-11-05 | 杭州华橙软件技术有限公司 | 一种回音消除方法、电子设备和计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
XILINX: "Direct Memory Access and Scatter Gather", 《XILINX》 * |
宋刚: "ALSA声卡驱动程序设计", 《无线互联科技》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113965844B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7142783B2 (ja) | 音声制御方法及び電子装置 | |
WO2020192456A1 (zh) | 一种语音交互方法及电子设备 | |
WO2017020663A1 (zh) | 弹幕视频直播方法、装置、视频源设备及网络接入设备 | |
JP2023500392A (ja) | 対象追跡方法、電子機器およびコンピュータ可読記憶媒体 | |
WO2021110133A1 (zh) | 一种控件的操作方法及电子设备 | |
CN107749046B (zh) | 一种图像处理方法及移动终端 | |
CN110602389A (zh) | 一种显示方法及电子设备 | |
CN109040339B (zh) | 基于ajax的跨域请求处理方法、装置及设备 | |
WO2021109703A1 (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN111625315A (zh) | 页面显示方法、装置、电子设备及存储介质 | |
CN109961802B (zh) | 音质比较方法、装置、电子设备及存储介质 | |
CN111163449A (zh) | 一种应用分享方法、第一电子设备及计算机可读存储介质 | |
CN113965844B (zh) | 低延时音频传输方法、装置、驱动设备及可读存储介质 | |
CN112612539A (zh) | 数据模型卸载方法、装置、电子设备及存储介质 | |
WO2015117550A1 (en) | Method and apparatus for acquiring reverberated wet sound | |
WO2022033355A1 (zh) | 一种邮件处理方法及电子设备 | |
WO2022100132A1 (zh) | 一种数据处理方法、装置和电子设备 | |
CN111694521B (zh) | 存储文件的方法、装置及系统 | |
CN110851435B (zh) | 一种存储数据的方法及装置 | |
CN110995816B (zh) | 分享方法及电子设备 | |
CN109189576B (zh) | 基于Redis的请求处理方法、服务器及计算机可读存储介质 | |
CN113448692A (zh) | 分布式图计算的方法、装置、设备及存储介质 | |
KR20210011028A (ko) | 어휘 데이터베이스를 처리하는 방법 및 장치 | |
CN110659329A (zh) | 一种数据处理方法、装置及电子设备 | |
CN115277924B (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 | ||
GR01 | Patent grant |