CN108182930B - 音效处理方法、设备及音视频点播系统 - Google Patents
音效处理方法、设备及音视频点播系统 Download PDFInfo
- Publication number
- CN108182930B CN108182930B CN201711363338.3A CN201711363338A CN108182930B CN 108182930 B CN108182930 B CN 108182930B CN 201711363338 A CN201711363338 A CN 201711363338A CN 108182930 B CN108182930 B CN 108182930B
- Authority
- CN
- China
- Prior art keywords
- sound effect
- effect processing
- audio data
- audio
- task
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/361—Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
- G10H1/366—Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems with means for modifying or correcting the external signal, e.g. pitch correction, reverberation, changing a singer's voice
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/155—Musical effects
Abstract
本发明涉及音效处理技术领域,提供了一种音效处理方法、设备及音视频点播系统,所述音效处理方法包括以下步骤:预先在所述音频驱动程序中嵌入任务强制切换机制;预先设定所述任务强制切换机制由硬件中断触发;所述音频驱动程序获取音频数据并发给音效处理程序;通过所述强制切换机制使处理器的当前执行程序强制切换为音效处理程序;所述音效处理程序对所述音频数据进行音效处理。本发明所述音效处理方法及音效处理设备可大大提高非实时性操作系统音效处理的实时性,其使达到独立音效器的音效处理效果。
Description
技术领域
本发明涉及音效处理技术领域,特别是涉及一种基于非实时性操作系统的音效处理方法、音效处理设备及音视频点播系统。
背景技术
音效器是效果器中的一种,又称为卡拉OK前级效果器,主要用于卡拉OK、KTV等多媒体娱乐场所中,用于对音频输入以及麦克风输入进行音效处理。
现有的数字效果器主要是基于DSP芯片实现的,麦克风输入的音频数据经模数转换后,由DSP芯片进行音效处理,处理后与背景音乐等其他音频输入进行混响处理,然后再送给数模转换器转换成模拟信号输出。由于音效处理的运算量大,且对延迟的要求高,因此现有技术中音效器主要是采用实时性强、运算能力大的DSP芯片作为处理器。
在现有的KTV等多媒体娱乐场所中,通常需要一个媒体播放设备用于播放音视频文件,以及需要一个独立的音效器对麦克风输入的音频数据以及播放设备的音频数据进行音效处理。因此在硬件上至少需要一个媒体播放设备和一个独立的音效器,因此大大提高了硬件成本。
虽然现有的CPU在计算性能上已经有了大幅提高,目前的媒体播放设备的CPU主芯片也可以播放和解码多种音视频,并还有较多的冗余的计算能力,甚至一些CPU主芯片还配置了模数和数模转换器。然而当前的媒体播放设备主要是基于LINUX或安卓等非实时的操作系统,无法保证音效处理的实时性,从而无法达到对音效器的延迟要求,因此CPU富余的计算能力无法被充分利用。
发明内容
为此,需要提供一种新的音效处理解决方案,用于解决现有的非实时性操作系统无法保证音效处理实时性的技术问题。
为实现上述目的,发明人提供了一种基于非实时性操作系统的音效处理方法,包括以下步骤:
预先在音频驱动程序中嵌入任务强制切换机制;
预先设定所述任务强制切换机制由硬件中断触发;
所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
通过所述强制切换机制判断处理器当前执行任务是否为所述音效处理程序,若否,则使处理器切换执行任务;
处理器执行所述音效处理程序,对所述音频数据进行音效处理。
进一步的,在所述步骤“处理器执行所述音效处理程序,对所述音频数据进行音效处理”之后还包括步骤:
将音效处理后的数据发送至硬件设备进行播放。
进一步的,所述任务强制切换机制包括以下步骤:
判断当前处理器核所执行任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,若是,则使当前处理器核切换执行任务;
若否,则发送处理器间中断,使目标处理器核开始切换任务。
进一步的,所述步骤“所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种”具体包括:
预设缓冲区;
所述音频驱动程序将获取的音频数据置入所述缓冲区中,所述音效处理程序从所述缓冲区中提取所述音频数据,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种。
进一步的,在所述步骤“所述音频驱动程序获取音频数据并发给音效处理程序”中,获取的音频数据中包括有两种以上不同格式的音频数据,在将音频数据发送给音效处理程序前还包括将所述音频数据转换为统一的数据格式。
进一步的,在所述步骤“处理器执行所述音效处理程序,对所述音频数据进行音效处理”中,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。
进一步的,所述硬件中断触发包括由定时器触发、音频DMA触发或音频数据缓冲区状态触发。
为解决上述技术问题,本发明还提供了另一技术方案:
一种音效处理设备,其中存储有计算机程序,所述计算机程序在被运行时执行如下步骤:
预先在音频驱动程序中嵌入任务强制切换机制;
预先设定所述任务强制切换机制由硬件中断触发;
所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
通过所述强制切换机制判断处理器的当前执行的任务是否为所述音效处理程序,若否,则使处理器切换执行任务;
处理器执行所述音效处理程序,对所述音频数据进行音效处理。
进一步的,所述计算机程序还用于在所述“处理器执行所述音效处理程序,对所述音频数据进行音效处理”之后,将音效处理后的数据发送至硬件设备进行播放。
进一步的,所述任务强制切换机制包括以下步骤:
判断当前处理器核所执行的任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,若是,则使当前处理器核切换执行任务;
若否,则发送处理器间中断,将使目标处理器核开始切换任务。
进一步的,所述计算机程序在执行所述“所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种”时,具体包括:
预设缓冲区;
所述音频驱动程序将获取的音频数据置入所述缓冲区中,所述音效处理程序从所述缓冲区中提取所述音频数据,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种。
进一步的,所述计算机程序在执行“所述音频驱动程序获取音频数据并发给音效处理程序”时,还包括将所述音频数据转换为预定的格式;或在对所述音频数据进行音效处理后,还包括将所得到的音频数据转换为预定的格式。
进一步的,所述计算机程序在执行“处理器执行所述音效处理程序,对所述音频数据进行音效处理”时,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。
进一步的,所述硬件中断触发包括由定时器触发、音频DMA触发或音频数据缓冲区状态触发。
本发明还提供了另一技术方案:
一种音视频点播系统,包括点歌子系统和人声处理子系统,所述人声处理子系统还包括以上技术方案任一所述的音效处理设备。
区别于现有技术,上述技术方案在音频驱动程序中嵌入任务强制切换机制,并将所述任务强制切换机制设为硬件中断触发,提高了音频驱动程序的中断级别,所述强制切换机制在检测到处理器未执行音效处理程序时,可强制处理器切换执行任务,而音效处理程序的优先级高,处理器在切换任务时优先执行音效处理程序,从而在接收到音频输入或音效处理请求时,及时将处理器的当前执行程序切换为音效处理程序,从而大大提高了非实时性操作系统音效处理的实时性。以安卓系统为例,现有的基于安卓系统的音效处理程序,其对麦克风数据处理的延迟的时长至少要30毫秒,而通过上述音效处理方法,可使音效处理延迟降低到10毫秒以内。
附图说明
图1为具体实施方式所述基于非实时性操作系统的音效处理方法的流程图;
图2为具体实施方式所述KTV音效处理系统的总流程图;
图3为具体实施方式中音频驱动程序的中断回调程序的处理流程图;
图4为具体实施方式中所述音效处理程序的工作流程图;
图5为具体实施方式中音视频点播系统的示意图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
本实施例提供了一种基于非实时性操作系统的音效处理方法。其中,所述非实时性操作系统又叫通用操作系统,是由分时操作系统发展而来,非实时性操作系统大多都支持多用户和多进程,负责管理众多的进程并为它们分配系统资源,非实时性操作系统的设计原则是,尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。由此可见,非实时操作系统注重平均表现性能,不注重个别任务表现性能,从而无法保证任务实时处理。现有的安卓系统、windows系统以及LINUX系统都属于非实时性操作系统。
本基于非实时性操作系统的音效处理方法包括有音频驱动程序和音效处理程序两部分,其中,音频驱动程序属于操作系统自带的系统驱动程序,是用于为音效处理程序提供音频数据,所述音效处理程序用于对所述音频数据进行音效处理。
请参阅图1,为实施例中基于非实时性操作系统的音效处理方法的处理流程图。所述基于非实时性操作系统的音效处理方法,包括以下步骤:
S101、预先在音频驱动程序中嵌入任务强制切换机制;
S102、预先设定所述任务强制切换机制由硬件中断触发;
S103、所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
S104、通过所述强制切换机制判断处理器的当前执行任务是否为所述音效处理程序,若否,则使处理器切换执行任务;
S105、处理器执行所述音效处理程序,对所述音频数据进行音效处理。
其中,所述步骤S101和步骤S102是预先设置的,并不是在每次音效处理时都要执行的。
所述任务强制切换机制用于在检测到处理器未在处理音效处理程序时,强制切换处理器的当前执行任务。将所述任务强制切换机制设置于音频驱动程序中的好处在于,一旦音频驱动程序获取到音频数据并发送给音效处理程序时,就能够启动所述任务强制切换机制,使处理器优先执行音效处理程序,从而提高音效处理的时效性,缩短延迟时间。
其中,所述任务强制切换机制可以是直接属于音频驱动程序的中断程序的一部分,也可以是音频驱动程序的中断回调程序中的一部分。当所述任务强制切换机制为所述音频驱动程序的中断程序的一部分时,优选将任务强制切换机制所对应的程序放在音频驱动程序中的向所述音效处理程序发送音频数据之后执行。其中,所述音频驱动程序的中断程序是指操作系统收到音频输入相关的中断请求后立即跳转到的程序位置,即在音频驱动程序中直接嵌入所述任务强制切换机制;所述音频驱动程序的中断回调程序是指操作系统在进入音频驱动中断程序后,必须再进行调用的子程序或函数,操作系统在接受到硬件中断后可以在音频驱动的中断程序中调用所述中断回调程序,也可以在音频驱动的中断程序完成后在中断处理任务中调用所述中断回调程序。
在本实施例中,所述任务强制切换机制由硬件中断触发。根据系统的片上系统平台的不同以及音频驱动程序的定差别,所述硬件中断触发具体可以由定时器触发、音频DMA触发或音频数据缓冲区状态触发。音频数据的硬件采集或播放一般有两种方式,一是通过音频DMA方式(即直接内存访问),具体为DAM控制器可以直接根据音频设备状态,从设备读取或写入音频数据,当读取或写入的数据达到预设的阈值则产生硬件中断;二是CPU参与方式,这种方式是当音频设备中的数据量达到或小于预设的数据量使,会产生中断,CPU在中断中通过程序向设备写入或读取音频数据,音频数据缓冲区状态触发就是这种方式。硬件中断相对于软件中断具有更高的中断级别,因此处理器会先处理硬件中断程序以及任务强制切换机制,从而保证强制切换机制在第一时间内被执行。
在步骤S103中,所述音频驱动程序可通过系统的音频驱动程序接口等设备节点获取音频数据,并将获取的音频数据发送给音效处理程序。所获取的音频数据可以为一个或两个以上,音频数据可是麦克风音频数据和操作系统其他应用程序播放的背景音乐等音频数据。其中,所述麦克风音频数据是麦克风接收到声波时产生的模拟信号,该模拟信号经过幅度放大后,由麦克风内的数模转换器转换出的音频数据。
在步骤S104中,通过所述任务强制切换机制可判断处理器当前执行的任务,以及当处理器当前未执行音效处理程序时,使处理器强制切换当前执行任务,从而使音频驱动程序获取到音频数据后,音效处理程序优先被执行,在步骤S104之后即可进入步骤S105,对所述音频数据进行音效处理。
以下为多核处理器中,所述任务强制切换机制的具体执行流程:
判断当前处理器核所执行的任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,若是,则调用操作系统的任务切换程序,使当前处理器核切换执行任务;
若否,则发送处理器间中断,使目标处理器核开始切换任务。具体为发送处理器间中断,类型类任务切换,通过此操作会让接收这个中断的处理器核开始进行任务切换,切换的下一个任务也是系统根据任务队列中的优先级或其他机制选定的,由于音效处理程序的优先级高,可以让操作系统有更大概率切换到音效处理程序。
如果处理器为单核处理器,则直接判断处理器所执行的程序是否为所述音效处理程序,若是,则结束;若否,则调用操作系统的任务切换程序,使处理器开始任务切换。
通过上述步骤S101至步骤S105,可大大提高所述音效处理程序的优选级,使其在接收到音频数据时,处理器优先进行音效处理,从而大大提高音效处理的时效性,使音效的处理延迟能够达到与独立音效器相同的级别。并且所述音效处理程序与其他驱动程序以及应用程序的耦合性小,无需绑定于现有的音频播放与录音应用程序上,可单独用于为输入的音频数据进行音效处理,降低了整个系统的复杂度,同时也更便于使用。
在一些实施例中,在所述步骤S105之后还可以包括步骤S106,在步骤S106中将音效处理后的数据直接发送至硬件设备进行播放。在另一些实施例中,可将所述步骤S105得到的音效处理后的音频数据存储于存储介质中,然后在需要的时候才进行播放。
优选的,在上述实施例中,为了进一步提高音效处理的时效性,还可为所述音频驱动程序提供缓冲区,用于缓存所获取到的音频数据。因此在上述步骤S103中,音频驱动程序在获取到音频数据之后,将音频数据压入所述缓冲区,所述音效处理程序在执行时从所述缓冲区提取待处理的音频数据。例如系统需要同时对系统需要播放的背景音乐数据以及从麦克风输入的音频数据进行音效处理,此时,音频驱动程序需要将所述背景音乐数据以及所述麦克风输入的音频数据缓存至所述缓冲区内。
在所述音效处理程序处理时,还可将处理后得到的音频数据压入缓冲区进行缓存,而在后续的播放或存储步骤中,直接从所述缓冲区中提取音效处理后的音频数据。
通过上述技术方案可大大提高音效处理的时效性,缩短音效处理的延迟时间。以安卓系统为例,现有的基于安卓系统的音效处理程序,其对麦克风音频数据的音效处理,从音频输入到音效处理后播出延迟的时长至少要30毫秒,而通过上述音效处理方法,在相同的软硬件系统基础上可以使音效处理延迟降低到10毫秒以内。
由于在许多音频处理设备中,音效处理任务在操作系统上是一直执行的,且在其执行期间,要求两个以上待处理的音频数据使用统一的格式,否则会造成播放声音的中断或噪音。而现有的操作系统中,的播放/录音程序是会有多个应用程序,不同应用程序之间可以在不同时间使用多种不同数据格式,并且麦克风输入的音频数据数据格式也可能与播放/录音程序的音频数据的格式不同。这些播放/录音程序以及麦克风的音频数据均有可能是音效处理程序的音频数据源,即待处理的音频数据。因此在一些实施例中,需要同时对两个以上音频数据进行音效处理时,为了使不同的音频数据能够顺利的进行音效处理,在所述步骤S103、所述音频驱动程序获取音频数据并发给音效处理程序中,在将音频数据发送给音效处理程序前还包括将所述音频数据转换为统一的数据格式。
在一些实施例中,在进行音效处理时还可对音频数据处理的音效参数进行调整,从而达到预期的音效。而这些音效参数可通过操作系统内部的通信机制进行传输。具体的,在所述步骤“处理器执行所述音效处理程序,对所述音频数据进行音效处理”中,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。所述通信机制是为操作系统提供的进程间通信的机制,现有技术中使用独立的硬件效果器时,需要通过线路与音频播放设备等音频数据源连接。相对于现有的独立效果器,本实施例中待处理的音频数据与音效处理程序可运行于同一操作系统中,通过所述通信机制与其他应用程序通信,进行音效参数设置与调整,可避免或减少线路连接,降低了系统通信成本。
为了详细说明本基于非实时性操作系统的音效处理方法在具体设备上的运行过程,下面以KTV音效处理系统为例对其执行过程进行说明。
其中,KTV音效处理系统中运行于安卓或LINUX等非实时性操作系统的PC设备上。在音效处理时,需要同时对麦克风输入的音频数据以及音视频播放设备输出的背景音乐(伴奏音乐)进行音效处理,所述音视频播放设备可与所述PC设备为同一设备。
如图2所示,为所述KTV音效处理系统的总流程图。在步骤S201中KTV音效处理系统上电启动,所述KTV音效处理系统上电启动后,进入步骤S202,系统首先进行各驱动程序初始化,其中包括音频驱动程序的初始化,并且设置硬件播放/录音格式,以及注册音频驱动程序的中断回调程序。在注册音频驱动程序的中断回调程序之后,进入步骤S203启动音效应用程序,最后进入步骤S204开始音效处理。由于在预先设定该音频驱动程序的中断回调程序由硬件中断触发,从而提高了其优先级别,从而使其在处理器切换任务时优先被执行。在启动音效应用程序后即开始对麦克风的音频输入以及所述背景音乐进行音效处理。
在所述KTV音效处理系统中,在所述音频驱动程序的中断回调程序中嵌入的任务强制切换机制,从而在音频驱动程序工作时,强制将处理器进行任务切换,使音效处理程序优先被执行。
如图3所示,为音频驱动程序的中断回调程序的处理流程图。步骤S301在音频驱动程序中通过硬件中断触发所述中断回调程序;在进入所述中断回调程序后,执行步骤S302,在步骤S302中先将获取到的麦克风的音频数据以及所述背景音乐存储至硬件录音缓冲区,如果在硬件播放缓冲区内有经音效处理好的音频数据,则还需要将硬件播放缓冲区内的音频数据发送给音频播放硬件。
在执行好音频数据的缓存之后,执行步骤S303,步骤S303中判断当前处理器核的当前任务是否为执行音效处理任务,如果是,则无需进行强制切换,直接跳转至步骤S307即可;如果当前处理器核的当前任务不是在执行音效处理任务,则执行步骤S304,在步骤S304中进一步判断执行所述音效处理程序的处理器核是否为当前处理器核;如果不是,则执行步骤S305,步骤S305发送处理器间中断,使目标处理器核开始切换任务,如果是,则执行步骤S306,步骤S306调用操作系统的任务切换程序,使当前处理器核切换执行任务;在步骤S306之后进入步骤S307退出。
如图4所示,为所述音效处理程序的工作流程图。在步骤S401中,音效应用程序启动,启动后进入步骤S402,从驱动程序的设备节点获取麦克风数据和系统播放的音频数据;在获取到上述音频数据之后,进入步骤S403和步骤S404,其中,步骤S404中通过系统的进行间通信机制获取其他应用程序发送的新的音效参数,在步骤S403中判断是否有新的音效参数需要更新,如果有新的参数,则更新所述音效参数,在步骤S403之后,进入步骤S405,根据音效参数对获取的麦克风数据和音频数据进行音效处理;以及在步骤S406中将处理后的录音数据通过驱动程序的设备节点送给驱动程序进行播放。重复上述步骤S402至步骤S406,即可持续对音频数据进行音效处理。
在另一实施例中,提供了一种音效处理设备。所述音效处理设备中存储有计算机程序,所述计算机程序在被运行时执行如下步骤:
预先在所述音频驱动程序中嵌入任务强制切换机制;
预先设定所述任务强制切换机制由硬件中断触发;
所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
通过所述强制切换机制判断处理器当前执行任务是否为所述音效处理程序,若否,则使处理器切换执行任务;
处理器执行所述音效处理程序,对所述音频数据进行音效处理。
具体的,在多核处理器中,所述任务强制切换机制包括以下步骤:
判断当前处理器核所执行的任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,则使当前处理器核切换执行任务;
若否,则发送处理器间中断,使目标处理器核开始切换任务。
如果处理器为单核处理器,则直接判断处理器所执行的程序是否为所述音效处理程序,若是,则结束;若否,则调用操作系统的任务切换程序,使处理器开始任务切换。
其中,所述计算机程序在被安卓系统、windows系统以及LINUX系统等非实时性操作系统执行时,可使音效处理程序优先被执行,提高了音效处理的时效性,使音效的处理延迟能够达到与独立音效器相同的级别。并且所述音效处理程序与其他驱动程序以及应用程序的耦合性小,无需绑定于现有的音频播放与录音应用程序上,可单独用于为输入的音频数据进行音效处理,降低了整个系统的复杂度,同时也更便于使用。
在一些实施例,所述计算机程序还用于在所述“处理器执行所述音效处理程序,对所述音频数据进行音效处理”之后,将音效处理后的数据发送至硬件设备进行播放。在另一些实施例中,可将音效处理得到的音频数据存储于存储介质中,然后在需要的时候才进行播放。
优选的,在上述实施例中,为了进一步提高音效处理的时效性,所述计算机程序在执行所述“所述音频驱动程序获取音频数据并发给音效处理程序”时,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种,具体包括:
预设缓冲区;
所述音频驱动程序将获取的音频数据置入所述缓冲区中,所述音效处理程序从所述缓冲区中提取所述音频数据,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种。
由于音效处理程序在处理两个以上音频数据时,要求两个以上待处理的音频数据使用统一的格式,否则会造成播放声音的中断或噪音。因此在一些实施例中,需要同时对两个以上音频数据进行音效处理时,为了使不同的音频数据能够顺利的进行音效处理,所述计算机程序在执行“所述音频驱动程序获取音频数据并发给音效处理程序”时,在将音频数据发送给音效处理程序前还包括将所述音频数据转换为统一的数据格式。
进一步的,在进行音效处理时还可通过系统内部的应用程序间通信机制对音频数据处理的音效参数进行调整,从而达到预期的音效。具体的所述计算机程序在执行“所述音效处理程序对所述音频数据进行音效处理”时,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。
通过所述通信机制可减少线路连接,降低了系统通信成本。
请参阅图5,为一实施例中音视频点播系统的组成示意图。所述音视频点播系统包括有包括点歌子系统和人声处理子系统,该音视频点播系统可应用于KTV、卡拉OK等数字影音娱乐场所。其中所述点歌子系统用于实现歌曲的选取以及歌曲的音视频播放;所述人声处理子系统为以上任一实施例中所述的音效处理设备,用于通过麦克风获取演唱的音频数据,即麦克风数据,并对所述音频数据进行音效处理。
在不同实施例中,所述人声处理子系统可以是独立于所述点歌子系统之外的独立硬件设备,也可以是与所述点歌子系统共用同一套硬件设备和操作系统。所述人声处理子系统除了可用于麦克风数据音效处理,也可用于点歌子系统所播放的歌曲音频处理。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。
Claims (11)
1.一种基于非实时性操作系统的音效处理方法,其特征在于,包括以下步骤:
预先在音频驱动程序中嵌入任务强制切换机制,所述音频驱动程序属于操作系统自带的系统驱动程序;
预先设定所述任务强制切换机制由硬件中断触发,所述硬件中断触发包括由定时器触发、音频DMA触发或音频数据缓冲区状态触发;
一旦音频驱动程序获取到音频数据并发送给音效处理程序时,就启动所述任务强制切换机制,所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
通过所述强制切换机制判断处理器当前执行任务是否为所述音效处理程序,若否,则使处理器切换执行任务,使处理器优先执行音效处理程序;
处理器执行所述音效处理程序,对所述音频数据进行音效处理;
所述任务强制切换机制包括以下步骤:
判断当前处理器核所执行任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,若是,则使当前处理器核切换执行任务;
若否,则发送处理器间中断,使目标处理器核开始切换任务。
2.根据权利要求1所述的音效处理方法,其特征在于,在所述步骤“处理器执行所述音效处理程序,对所述音频数据进行音效处理”之后还包括步骤:
将音效处理后的数据发送至硬件设备进行播放。
3.根据权利要求1所述的音效处理方法,其特征在于,所述步骤“所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种”具体包括:
预设缓冲区;
所述音频驱动程序将获取的音频数据置入所述缓冲区中,所述音效处理程序从所述缓冲区中提取所述音频数据,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种。
4.根据权利要求1所述的音效处理方法,其特征在于,在所述步骤“所述音频驱动程序获取音频数据并发给音效处理程序”中,获取的音频数据中包括有两种以上不同格式的音频数据,在将音频数据发送给音效处理程序前还包括将所述音频数据转换为统一的数据格式。
5.根据权利要求1所述的音效处理方法,其特征在于,在所述步骤“处理器执行所述音效处理程序,对所述音频数据进行音效处理”中,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。
6.一种音效处理设备,其中存储有计算机程序,其特征在于,所述计算机程序在被运行时执行如下步骤:
预先在音频驱动程序中嵌入任务强制切换机制,所述音频驱动程序属于操作系统自带的系统驱动程序;
预先设定所述任务强制切换机制由硬件中断触发,所述硬件中断触发包括由定时器触发、音频DMA触发或音频数据缓冲区状态触发;
一旦音频驱动程序获取到音频数据并发送给音效处理程序时,就启动所述任务强制切换机制,所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种;
通过所述强制切换机制判断处理器的当前执行的任务是否为所述音效处理程序,若否,则使处理器切换执行任务,使处理器优先执行音效处理程序;
处理器执行所述音效处理程序,对所述音频数据进行音效处理;
所述任务强制切换机制包括以下步骤:
判断当前处理器核所执行的任务是否为所述音效处理程序,若是,则结束;
若否,则判断执行所述音效处理任务的处理器核是否为当前处理器核,若是,则使当前处理器核切换执行任务;
若否,则发送处理器间中断,将使目标处理器核开始切换任务。
7.根据权利要求6所述的音效处理设备,其特征在于,所述计算机程序还用于在所述“处理器执行所述音效处理程序,对所述音频数据进行音效处理”之后,将音效处理后的数据发送至硬件设备进行播放。
8.根据权利要求6所述的音效处理设备,其特征在于,所述计算机程序在执行所述“所述音频驱动程序获取音频数据并发给音效处理程序,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种”时,具体包括:
预设缓冲区;
所述音频驱动程序将获取的音频数据置入所述缓冲区中,所述音效处理程序从所述缓冲区中提取所述音频数据,所述音频数据包括麦克风输出数据或者系统播放的音乐数据中的一种或多种。
9.根据权利要求6所述的音效处理设备,其特征在于,所述计算机程序在执行“所述音频驱动程序获取音频数据并发给音效处理程序”时,还包括将所述音频数据转换为预定的格式;或在对所述音频数据进行音效处理后,还包括将所得到的音频数据转换为预定的格式。
10.根据权利要求6所述的音效处理设备,其特征在于,所述计算机程序在执行“处理器执行所述音效处理程序,对所述音频数据进行音效处理”时,还包括:
通过系统内部通信机制接收音效参数,并根据所述音效参数更新音频数据的处理效果。
11.一种音视频点播系统,包括点歌子系统和人声处理子系统,其特征在于,所述人声处理子系统还包括权利要求6-10任一所述的音效处理设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711363338.3A CN108182930B (zh) | 2017-12-18 | 2017-12-18 | 音效处理方法、设备及音视频点播系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711363338.3A CN108182930B (zh) | 2017-12-18 | 2017-12-18 | 音效处理方法、设备及音视频点播系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108182930A CN108182930A (zh) | 2018-06-19 |
CN108182930B true CN108182930B (zh) | 2021-12-10 |
Family
ID=62546291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711363338.3A Active CN108182930B (zh) | 2017-12-18 | 2017-12-18 | 音效处理方法、设备及音视频点播系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108182930B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262769A (zh) * | 2019-06-27 | 2019-09-20 | 联想(北京)有限公司 | 一种数据传输方法以及电子设备 |
CN110505613B (zh) * | 2019-08-19 | 2022-11-04 | 惠州Tcl移动通信有限公司 | 音频数据处理方法、计算机可读存储介质以及计算机设备 |
CN112133267B (zh) * | 2020-09-04 | 2024-02-13 | 腾讯音乐娱乐科技(深圳)有限公司 | 音频效果处理的方法、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1293808A (zh) * | 1999-01-21 | 2001-05-02 | 索尼电脑娱乐公司 | 产生重放声音的方法、装置和娱乐系统 |
EP0786124B1 (fr) * | 1994-10-12 | 2006-03-01 | Touchtunes Music Corporation | Systeme de reproduction audiovisuelle numerique intelligent |
CN1831797A (zh) * | 2005-12-22 | 2006-09-13 | 北京中星微电子有限公司 | 音频处理器及其控制方法 |
CN105792068A (zh) * | 2014-12-25 | 2016-07-20 | 宏碁股份有限公司 | 音频信号处理方法及装置 |
CN105827849A (zh) * | 2016-04-28 | 2016-08-03 | 维沃移动通信有限公司 | 一种音效调节方法及移动终端 |
CN106095558A (zh) * | 2016-06-16 | 2016-11-09 | 广东欧珀移动通信有限公司 | 一种音效处理的方法及终端 |
CN106205580A (zh) * | 2016-06-30 | 2016-12-07 | 维沃移动通信有限公司 | 一种音频数据处理方法及终端 |
CN106559706A (zh) * | 2015-09-28 | 2017-04-05 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN106775556A (zh) * | 2015-11-24 | 2017-05-31 | 三星电子株式会社 | 主机cpu辅助的音频处理方法及执行该方法的计算系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0602858A1 (en) * | 1992-12-18 | 1994-06-22 | International Business Machines Corporation | Apparatus and method for servicing interrupts in a multiprocessor system |
US6807595B2 (en) * | 2001-05-10 | 2004-10-19 | Qualcomm Incorporated | Mobile communication device having a prioritized interrupt controller |
US20070106827A1 (en) * | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
CN103248116A (zh) * | 2013-05-31 | 2013-08-14 | 天津市百利电气有限公司 | 带有双路供电系统相位差检测装置的自动转换开关 |
US10409546B2 (en) * | 2015-10-27 | 2019-09-10 | Super Hi-Fi, Llc | Audio content production, audio sequencing, and audio blending system and method |
-
2017
- 2017-12-18 CN CN201711363338.3A patent/CN108182930B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0786124B1 (fr) * | 1994-10-12 | 2006-03-01 | Touchtunes Music Corporation | Systeme de reproduction audiovisuelle numerique intelligent |
CN1293808A (zh) * | 1999-01-21 | 2001-05-02 | 索尼电脑娱乐公司 | 产生重放声音的方法、装置和娱乐系统 |
CN1831797A (zh) * | 2005-12-22 | 2006-09-13 | 北京中星微电子有限公司 | 音频处理器及其控制方法 |
CN105792068A (zh) * | 2014-12-25 | 2016-07-20 | 宏碁股份有限公司 | 音频信号处理方法及装置 |
CN106559706A (zh) * | 2015-09-28 | 2017-04-05 | 青岛海信电器股份有限公司 | 一种音频数据的处理方法、装置和系统 |
CN106775556A (zh) * | 2015-11-24 | 2017-05-31 | 三星电子株式会社 | 主机cpu辅助的音频处理方法及执行该方法的计算系统 |
CN105827849A (zh) * | 2016-04-28 | 2016-08-03 | 维沃移动通信有限公司 | 一种音效调节方法及移动终端 |
CN106095558A (zh) * | 2016-06-16 | 2016-11-09 | 广东欧珀移动通信有限公司 | 一种音效处理的方法及终端 |
CN106205580A (zh) * | 2016-06-30 | 2016-12-07 | 维沃移动通信有限公司 | 一种音频数据处理方法及终端 |
Non-Patent Citations (2)
Title |
---|
中断系统;魏胜利;《计算机组成原理》;成都:电子科技大学出版社;20160731;209-213 * |
基于DSP的实时数字音效处理系统;梁勇;《电声技术》;20030831;36-39 * |
Also Published As
Publication number | Publication date |
---|---|
CN108182930A (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182930B (zh) | 音效处理方法、设备及音视频点播系统 | |
US7568057B2 (en) | Method and apparatus for maintaining synchronization of audio in a computing system | |
US8930590B2 (en) | Audio device and method of operating the same | |
WO2011061878A1 (ja) | マルチコアシステム、マルチコアシステムの制御方法及びプログラムが格納された非一時的な可読媒体 | |
WO2017129130A1 (zh) | 一种音频处理的方法、服务器、用户设备及系统 | |
CN111510756A (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
JP4886030B2 (ja) | 分散オーディオ処理 | |
KR20210130225A (ko) | 서비스 요청 처리 방법 및 관련 디바이스 | |
CN109599133B (zh) | 语言音轨的切换方法、装置、计算机设备及存储介质 | |
CN109672745A (zh) | 用于FreeRTOS的音频在线播放控制方法和装置 | |
KR101226412B1 (ko) | 미디어 데이터의 다수의 스트림을 결합하는 시스템, 방법 또는 장치 | |
US20080147918A1 (en) | Method and apparatus for maintaining synchronization of audio in a computing system | |
CN113986186A (zh) | 一种音频切换系统、方法、电子设备及存储介质 | |
WO2023072028A1 (zh) | 音乐缓存方法、装置、电子设备及存储介质 | |
CN109243472B (zh) | 一种音频处理方法及音频处理系统 | |
CN106354556B (zh) | 一种音频传输方法及电子装置 | |
US20180314485A1 (en) | Information processor, audio device, and program | |
KR20040068999A (ko) | 디지털 신호 프로세서 인터럽트 가속기 | |
US20150066175A1 (en) | Audio processing in multiple latency domains | |
CN113689062A (zh) | 智能体协调装置,智能体协调方法以及记录有智能体协调程序的记录介质 | |
US20140303761A1 (en) | Real Time Digital Signal Processing | |
JP5375650B2 (ja) | マルチコアシステム、マルチコアシステムの制御方法及びプログラム | |
JP3781171B2 (ja) | 楽音発生方法 | |
TWI832078B (zh) | 語音設備及其語音互動方法,以及電腦可讀記錄媒體 | |
CN116560614A (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 |