CN109451329B - 混音处理方法及装置 - Google Patents
混音处理方法及装置 Download PDFInfo
- Publication number
- CN109451329B CN109451329B CN201910039376.6A CN201910039376A CN109451329B CN 109451329 B CN109451329 B CN 109451329B CN 201910039376 A CN201910039376 A CN 201910039376A CN 109451329 B CN109451329 B CN 109451329B
- Authority
- CN
- China
- Prior art keywords
- data
- playing
- storage area
- byte number
- audio
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/233—Processing of audio elementary streams
- H04N21/2335—Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4398—Processing of audio elementary streams involving reformatting operations of audio signals
Abstract
本发明提供了一种混音处理方法及装置,该方法采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本发明是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
Description
技术领域
本发明属于音频处理技术领域,尤其涉及一种混音处理方法及装置。
背景技术
现今移动互联网在社交场景的使用越来越广泛,也越来越多花样,有较早前的BBS这种通过发帖和回帖模式进行非即时性的文字交流,和QQ早期的只支持文字的即时通讯,再到后来使用语音聊天,发送语音等。而随着网络的快速发展,带宽的提升,用户开始使用视频来直接聊天。另一方面,移动端的便捷性和手机的普及,促使了这种视频化的社交模式更加符合用户的需求,也更多用户使用,并且也延伸出很多以视频聊天为主的应用。
目前直播应用就是以视频聊天为主的社交应用,直播应用将在线视频技术运用到直播上,通过视频让主播与粉丝互动。然而主播却只能看着自身的显示界面的文字说话,互动性差。针对此,主播会通过第三方语音或者视频聊天来与其他主播一起直播(如合唱,聊天,比赛等等),这样粉丝也可以通过视频一起直播互动,提高了互动性。
在直播场景中,主播直播的同时播放音乐、视频,或者直播过程中连麦,实现将多路声音叠加,丰富了直播的内容。其中,这种将不同来源的声音信号混合在一起,变成一路音频信号称为混音。
以直播的同时播放音乐为例,现有技术中实现混音的方式为采用区别于直播应用的应用播放音乐,利用声音在空气中自然叠加实现播放出的音乐与主播声音的叠加,通过麦克风采集播放出的音乐以及主播的声音,完成混音。
但是,若主播通过佩戴的耳机播放音乐时,将不能通过声音在空气中自然叠加的方式实现混音,不能实现混音。
发明内容
有鉴于此,本发明的目的在于提供一种混音处理方法及装置,以解决现有技术中不能通过声音在空气中自然叠加的方式实现混音的情况下,不能实现混音的问题。
技术方案如下:
本发明提供一种一种混音处理方法,包括:
采集音频数据;
判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据;
若判断数据存储区中存储有播放数据,则将所述音频数据与所述播放数据混音。
可选地,将所述音频数据与所述播放数据混音包括:
判断所述音频数据的字节数是否大于所述播放数据的字节数;
若判断所述音频数据的字节数大于所述播放数据的字节数,则将所述播放数据存储至混音存储区;
若判断所述音频数据的字节数小于或等于所述播放数据的字节数,则将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
将所述数据存储区中存储至混音存储区中的播放数据删除;
对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据。
可选地,所述对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据包括:
获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;
计算所述第一乘积值和所述第二乘积值的和,得到混音数据。
可选地,所述得到混音数据之后,还包括:
判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
若判断所述混音数据的音量小于第一阈值,则将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;
若判断所述混音数据的音量大于第二阈值,则将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
可选地,通过回调参数实现播放数据包括:
判断所述播放数据的音量是否为初始状态;
若判断所述播放数据的音量为初始状态,则将所述播放数据填充到回调参数中;
若判断所述播放数据的音量不为初始状态,则从所述数据存储区每次获取预设字节数的播放数据;
计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历;其中,预设字节数为所述数据存储区中存储字节数的一半;
将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中。
本发明还提供了一种混音处理装置,包括:
采集单元,用于采集音频数据;
第一判断单元,用于判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据;
混音单元,用于若判断数据存储区中存储有播放数据,将所述音频数据与所述播放数据混音。
可选地,所述混音单元包括:
判断子单元,用于判断所述音频数据的字节数是否大于所述播放数据的字节数;
存储子单元,用于若判断所述音频数据的字节数大于所述播放数据的字节数,将所述播放数据存储至混音存储区;若判断所述音频数据的字节数小于或等于所述播放数据的字节数,将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
删除子单元,用于将所述数据存储区中存储至混音存储区中的播放数据删除;
计算子单元,用于对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据。
可选地,所述计算子单元包括:
获取子模块,用于获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
计算子模块,用于计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;计算所述第一乘积值和所述第二乘积值的和,得到混音数据。
可选地,还包括:
第二判断单元,用于判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
调整单元,用于若判断所述混音数据的音量小于第一阈值,将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;若判断所述混音数据的音量大于第二阈值,将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
可选地,还包括:
第三判断单元,用于判断所述播放数据的音量是否为初始状态;
回调单元,用于若判断所述播放数据的音量为初始状态,将所述播放数据填充到回调参数中;若判断所述播放数据的音量不为初始状态,从所述数据存储区每次获取预设字节数的播放数据;计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历;其中,预设字节数为所述数据存储区中存储字节数的一半;将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,本申请中采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本实施例是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种混音处理方法的流程图;
图2是本发明实施例提供的另一种混音处理方法的流程图;
图3是本发明实施例提供的一种混音处理装置的结构示意图;
图4是本发明实施例提供的另一种混音处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供了一种混音处理方法,应用于将多个音频数据混合的场景下,如直播中将主播说话或唱歌产生的第一音频数据与播放背景音乐或视频产生的第二音频数据混合的场景。
参见图1,该实施例包括以下步骤:
S101、采集音频数据。
利用采集设备采集音频数据。以直播这一场景为例,采集设备可以为麦克风,音频数据包括主播端的主播说话的声音或者唱歌的声音。
以预设的采样频率、预设的采样位数实现对音频数据的采集。其中,采样频率指的是单位时间内采样次数。采样频率越大,采样点之间的间隔就越小,数字化后得到的声音就越逼真,但相应的数据量就越大,声卡一般提供11.025kHz,22.05kHz和44.1kHz等不同的采样频率。可选地,本实施例中预设的采样频率为44.1kHz。
采样位数指的是每次采样值数值大小的位数。采样位数包括8bits、16bits两种。采样位数越大,所能记录的声音变化度越细腻,相应的数据量越大。可选地,本实施例中预设的采样位数为16bits。
采集到的音频数据的格式为PCM格式。由于PCM格式的音频数据是未编码的原始数据,数据量较大,因此在采集到音频数据后,还可以对音频数据进行编码,以降低音频数据的数据量。其中,编码后的音频数据仍然是PCM格式。
PCM指的是将话音、图像等模拟信号每隔一定时间进行一次取样,使其离散化,同时将取样值按分层单位四舍五入取整量化,同时将取样值按一组二进制码来表示取样脉冲的幅值。
S102、判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据。
若判断数据存储区中存储有播放数据,则执行步骤S103;
若判断数据存储区中没有存储播放数据,则将采集到的音频数据推送至客户端。
在直播中主播端的主播在说话或者唱歌的同时播放背景音乐,则播放数据为背景音乐。
本实施例中在播放背景音乐时,先清空第一缓冲区,将第一缓冲区加入缓冲列表中,从数据库中获取到背景音乐后,将背景音乐的数据存储至缓冲列表中的第一缓冲区中。其中,第一缓冲区的个数与声道数相同。声道数指的是处理的声音是单声道还是立体声,单声道在声音处理过程中只有单数据流,而立体声则需要左右声道的两个数据流,显然,立体声的效果要好,但相应数据量要比单声道数据量加倍。可选地,本实施例中声道数为单声道,因此只需要一个第一缓冲区。
然后将第一缓冲区中的数据填充至回调参数中,以便播放器通过调用回调接口而获取到回调参数中的数据,实现对背景音乐的播放。
本实施例中,将第一缓冲区中的数据填充至回调参数之前,还包括判断所述播放数据的音量是否为初始状态的步骤。
若判断所述播放数据的音量为初始状态,则表明没有对播放数据的音量进行调整,默认播放数据的音量为初始状态,即为最大音量,将所述播放数据填充至回调参数中。
若判断所述播放数据的音量不为初始状态,则表明已经对播放数据的音量进行了调整,从所述数据存储区每次获取预设字节数的播放数据,计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历后,将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中;其中,预设字节数为所述数据存储区中存储字节数的一半。
本实施例中,数据存储区中存储的是PCM格式的播放数据,PCM格式的数据为16bit,而一字节为8bit,因此每次获取一字节的播放数据,从而预设字节数为所述数据存储区中存储字节数16bit的一半。
可选地,本实施例中开启异步串行播放队列,以执行从所述数据存储区每次获取预设字节数的播放数据,计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历的操作。
音量的一种形式为以0-1之间的数字表示不同的音量,0表示最小音量,1表示最大音量,数字越大表示音量越大。
例如,播放数据的音量为初始状态1,直接将数据存储区中的播放数据填充至回调参数ioData中;播放数据的音量为0.6,则表示主播将播放数据的音量调小至0.6,开启异步串行播放队列playerQueue,并初始化一个存储空间data,从数据存储区中每次获取预设字节数的播放数据,计算预设字节数的播放数据与0.6的乘积,并将计算得到的乘积值存储到data中,遍历结束后将存储到data中的乘积值填充至回调参数ioData中进行播放。
其中,将第一缓冲区的数据填充至回调参数时,还将第一缓冲区中的数据存储到数据存储区中。将第一缓冲区中的数据填充至回调参数、将第一缓冲区中的数据存储到数据存储区后,删除第一缓冲区中的数据,以便于下次使用第一缓冲区。
因此,若数据存储区中存储有播放数据,则表示当前正在播放背景音乐,存在将播放的背景音乐与采集到的主播说话的声音或主播唱歌的声音混音的需求,需要执行后续混音操作;
若数据存储区中没有存储播放数据,则表示当前没有播放背景音乐,只有主播说话的声音或主播唱歌的声音,不存在混音的需求,可以将采集到的音频数据推送至客户端。
本实施例中,将音频数据推送至客户端包括录制、压缩以及发送这三个步骤,这三个步骤是串行实现的,每录制一帧音频数据后,发送至压缩模块以实现对录制的音频数据的压缩,得到压缩后的数据包,将压缩后的数据包发送至发送模块以将数据包发送至客户端;继续执行下一帧音频数据的录制、压缩以及发送,从而产生直播音频流。
其中,在不需要混音的情况下,在采集到PCM格式的音频数据后,将PCM格式的音频数据发送到音频编码器,通过音频编码器编码为AAC格式的音频数据,并进行直播;在需要混音的情况下,将多路音频数据混音后得到一路音频数据并输入音频编码器中进行编码,并进行直播。
S103、将所述音频数据与所述播放数据混音。
本实施例中,在采集到音频数据后,将音频数据与数据存储区中的播放数据进行混音,得到混音后的数据。
在直播场景中,得到混音后的数据后,还包括对混音后的数据编码,将编码后的数据通过RTMP推送给服务器后推送至客户端,实现直播的目的。
需要注意的是,在混音操作之前,若已经对播放数据、音频数据执行过编码操作,则在得到混音后的数据后,可以不对混音后的数据执行编码操作。
从上述技术方案可知,本实施例中采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本实施例是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
同时,本实施例中获取到的播放数据是直接从数据存储区中获取的,因此不需要播放出来后再采集,进而不存在由于采集操作产生损耗的问题,且在实现混音的过程中不需要额外增加采集播放数据的时间,提高了在直播这种对实时性要求较高的场景中的实时性。
本实施例还公开了另一种混音处理方法,参见图2,该实施例包括以下步骤:
S201、采集音频数据。
本实施例中采集音频数据的实现方式与上一实施例中步骤S101的实现方式类似,此处不再赘述。
本实施例中为了存储采集到的音频数据,先清空第二缓冲区,将第二缓冲区加入缓冲列表中,在采集到音频数据后,将音频数据存储至缓冲列表中的第二缓冲区中。其中,第二缓冲区的个数与声道数相同,如单声道只需要一个第二缓冲区。
针对单声道的情况,清空一个第二缓冲区,并将清空的第二缓冲区加入缓冲列表中的第一个,将音频数据存储至缓冲列表中的第一个第二缓冲区中。
其中,本实施例中第二缓冲区与上一实施例中的第一缓冲区可以是相同的缓冲区,也可以是不同的缓冲区。
S202、判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据。
若判断数据存储区中存储有播放数据,则执行步骤S203;
若判断数据存储区中没有存储播放数据,则将采集到的音频数据推送至客户端。
本实施例中步骤S202的实现方式与上一实施例中步骤S102的实现方式类似,此处不再赘述。
需要注意的是,采集到的音频数据是以特定的格式输出的,而播放数据的格式存在多种不同格式,如音乐的格式包括多种不同的格式。在对播放数据和音频数据混音时,若按照播放数据自身的格式与音频数据的特定格式进行混音,会导致存在字节不同步、声音快进或慢放、杂音等问题。因此,需要对播放数据的格式进行格式转换,转换为与音频数据一样的格式。
本实施例中,格式不仅包括数据格式,还包括采样频率、采样位数、声道数等。可选地,将音频数据以及播放数据的数据格式统一为PCM格式,采样频率统一为44.1kHz,采样位数统一为16bits,声道数统一为单声道。
可以理解的是,在其他实施例中,根据需要可以调整数据格式、采样频率、采样位数、声道数等。
S203、判断所述音频数据的字节数是否大于所述播放数据的字节数;
若判断所述音频数据的字节数大于所述播放数据的字节数,则执行步骤S204;
若判断所述音频数据的字节数小于或等于所述播放数据的字节数,则执行步骤S205;
若音频数据的字节数为16,播放数据的字节数为8,即音频数据的字节数大于播放数据的字节数,则将原本存储在数据存储区中的8字节的播放数据存储至混音存储区中,并将原本存储在数据存储区中的8字节的播放数据删除;
若音频数据的字节数为8,播放数据的字节数为16,即音频数据的字节数小于播放数据的字节数,则将原本存储在数据存储区中的8字节的播放数据存储至混音存储区中,并将原本存储在数据存储区中的8字节的播放数据删除;删除后,数据存储区中由原本存储有16字节的播放数据减少至存储有8字节的播放数据。其中数据存储区中剩余的播放数据在下次操作时处理。
S204、将所述播放数据存储至混音存储区;
S205、将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
S206、将所述数据存储区中存储至混音存储区中的播放数据删除;
在采集到的音频数据的字节数大于所述播放数据的字节数的情况下,直接将数据存储区中的播放数据全部存储至混音存储区;即将数据存储区中存储的播放数据全部存储至混音存储区,直接将数据存储区清空;
在采集到的音频数据的字节数小于或等于所述播放数据的字节数,则每次获取与音频数据的字节数相同的字节数的播放数据存储至混音存储区中,数据存储区中还存在没有存储至混音存储区中的播放数据,只将数据存储区中已经存储至混音存储区中的播放数据删除。
S207、获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
混音存储区中存储的是之前存储在数据存储区中的播放数据,因此,步骤S207中预设字节数与上一实施例中步骤S102中预设字节数是相同的,都是存储的播放数据字节数的一半。
S208、计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;
在直播中,主播说话的同时播放背景音乐,会存在如果背景音乐声音过大导致听不清楚主播的声音,或者如果主播的声音过大导致听不到背景音乐的问题,因此,需要对主播说话声音的音量以及背景音乐的音量进行调整。
本实施例中通过分别对音频数据以及播放数据进行处理,实现了对音频数据的音量和播放数据的音量的调整。具体为:通过计算音频数据与第一音量数值的乘积得到调整音量后的音频数据,通过计算播放数据与第二音量数值的乘积得到调整播放音量后的播放数据。
第一音量数值指的是设置的录入音频数据的音量,第二音量数值指的是设置的播放数据时的播放音量。
S209、计算所述第一乘积值和所述第二乘积值的和,得到混音数据;
将调整音量后的音频数据与调整播放音量后的播放数据叠加在一起,得到混音数据,实现了对音频数据和播放数据的混音。
S210、判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
若判断所述混音数据的音量大于第一阈值且小于第二阈值,则将所述混音数据推送至客户端;
若判断所述混音数据的音量小于第一阈值,则执行步骤S211;
若判断所述混音数据的音量大于第二阈值,则执行步骤S212;
在实际应用中,混音数据存在爆噪的情况,在得到混音数据后需要进一步处理,具体为将混音数据的音量分别与第一阈值、第二阈值比较,判断混音数据的音量是否大于第一阈值且小于第二阈值。
可选地,在本实施例中,根据人耳所能识别的音量设置第一阈值和第二阈值,第一阈值设置为-32768,第二阈值设置为32768。若混音数据的音量小于-32768,则人耳听不到混音数据,因此判断混音数据的音量小于-32768则将混音数据的音量设置为-32768,使得用户能够听到混音数据;若混音数据的音量大于32768,则人耳听到的是噪声,因此判断混音数据的音量大于32768,则将混音数据的音量设置为32768,避免噪声的干扰使得用户能够听到混音数据。
S211、将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;
S212、将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
从上述技术方案可知,本实施例中采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本实施例是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
同时,本实施例中获取到的播放数据是直接从数据存储区中获取的,因此不需要播放出来后再采集,进而不存在由于采集操作产生损耗的问题,且在实现混音的过程中不需要额外增加采集播放数据的时间,提高了在直播这种对实时性要求较高的场景中的实时性。且对播放数据进行缓存,避免了阻塞获取到播放数据后对数据的处理操作。且在混音之前可以对音频数据和播放数据的数据格式、采样频率、采样位数、声道数进行调整,可以持续优化音质。
对应上述混音处理方法,本发明还提供了一种混音处理装置,所述混音处理装置可以集成到提供多路音频的系统中,如直播系统。
所述混音处理装置的结构示意图请参阅图3所示,本实施例中混音处理装置包括:
采集单元301、第一判断单元302和混音单元303;
采集单元301,用于采集音频数据;
判断单元302,用于判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据;
混音单元303,用于若判断数据存储区中存储有播放数据,将所述音频数据与所述播放数据混音。
从上述技术方案可知,本实施例中采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本实施例是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
同时,本实施例中获取到的播放数据是直接从数据存储区中获取的,因此不需要播放出来后再采集,进而不存在由于采集操作产生损耗的问题,且在实现混音的过程中不需要额外增加采集播放数据的时间,提高了在直播这种对实时性要求较高的场景中的实时性。
可选地,本实施例中混音单元303包括:
判断子单元、存储子单元、删除子单元和计算子单元;
所述判断子单元,用于判断所述音频数据的字节数是否大于所述播放数据的字节数;
所述存储子单元,用于若判断所述音频数据的字节数大于所述播放数据的字节数,将所述播放数据存储至混音存储区;若判断所述音频数据的字节数小于或等于所述播放数据的字节数,将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
所述删除子单元,用于将所述数据存储区中存储至混音存储区中的播放数据删除;
所述计算子单元,用于对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据。
可选地,本实施例中,所述计算子单元包括:
获取子模块和计算子模块;
所述获取子模块,用于获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
所述计算子模块,用于计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;计算所述第一乘积值和所述第二乘积值的和,得到混音数据。
参见图4所示,本实施例中提供的混音处理装置,还包括:
第二判断单元401和调整单元402;
第二判断单元401,用于判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
调整单元402,用于若判断所述混音数据的音量小于第一阈值,将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;若判断所述混音数据的音量大于第二阈值,将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
可选地,参见图4所示,本实施例中提供的混音处理装置,还包括:
第三判断单元403和回调单元404;
第三判断单元403,用于判断所述播放数据的音量是否为初始状态;
回调单元404,用于若判断所述播放数据的音量为初始状态,将所述播放数据填充到回调参数中;
若判断所述播放数据的音量不为初始状态,从所述数据存储区每次获取预设字节数的播放数据;计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历;其中,预设字节数为所述数据存储区中存储字节数的一半;将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中。
从上述技术方案可知,本实施例中采集到音频数据后,判断数据存储区中是否存储有播放数据,若数据存储区中存储有播放数据则说明当前正在播放数据,则将采集到的音频数据与数据存储区中存储的播放数据混音。相较于现有技术中只有将播放数据采用外设设备播放出来后,同时采集音频数据和播放数据才能实现混音的方案,由于本实施例是从播放数据的数据存储区中获取将要播放的播放数据,因此即使不利用外放设备将播放数据播放出来,也能够获取到播放数据进而与采集到的音频数据混音。
同时,本实施例中获取到的播放数据是直接从数据存储区中获取的,因此不需要播放出来后再采集,进而不存在由于采集操作产生损耗的问题,且在实现混音的过程中不需要额外增加采集播放数据的时间,提高了在直播这种对实时性要求较高的场景中的实时性。且对播放数据进行缓存,避免了阻塞获取到播放数据后对数据的处理操作。且在混音之前可以对音频数据和播放数据的数据格式、采样频率、采样位数、声道数进行调整,可以持续优化音质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种混音处理方法,其特征在于,包括:
采集音频数据;
判断数据存储区中是否存储有播放数据;所述播放数据为通过回调参数实现播放的数据;其中,在播放数据时,从数据库中获取到播放数据后,将所述播放数据存储至缓冲列表中的第一缓冲区中,并将第一缓冲区中的数据填充至回调参数中,以便播放器通过调用回调接口而获取到回调参数中的数据实现数据的播放,同时将第一缓冲区中的数据存储到数据存储区中;
若判断数据存储区中存储有播放数据,则将所述音频数据与所述数据存储区中的播放数据混音。
2.根据权利要求1所述的方法,其特征在于,将所述音频数据与所述播放数据混音包括:
判断所述音频数据的字节数是否大于所述播放数据的字节数;
若判断所述音频数据的字节数大于所述播放数据的字节数,则将所述播放数据存储至混音存储区;
若判断所述音频数据的字节数小于或等于所述播放数据的字节数,则将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
将所述数据存储区中存储至混音存储区中的播放数据删除;
对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据。
3.根据权利要求2所述的方法,其特征在于,所述对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据包括:
获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;
计算所述第一乘积值和所述第二乘积值的和,得到混音数据。
4.根据权利要求3的方法,其特征在于,所述得到混音数据之后,还包括:
判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
若判断所述混音数据的音量小于第一阈值,则将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;
若判断所述混音数据的音量大于第二阈值,则将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
5.根据权利要求1-4任意一项所述的方法,其特征在于,通过回调参数实现播放数据包括:
判断所述播放数据的音量是否为初始状态;
若判断所述播放数据的音量为初始状态,则将所述播放数据填充到回调参数中;
若判断所述播放数据的音量不为初始状态,则从所述数据存储区每次获取预设字节数的播放数据;
计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历;其中,预设字节数为所述数据存储区中存储字节数的一半;
将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中。
6.一种混音处理装置,其特征在于,包括:
采集单元,用于采集音频数据;
第一判断单元,用于判断数据存储区中是否存储有播放数据;其中,所述播放数据为通过回调参数实现播放的数据;其中,在播放数据时,从数据库中获取到播放数据后,将所述播放数据存储至缓冲列表中的第一缓冲区中,并将第一缓冲区中的数据填充至回调参数中,以便播放器通过调用回调接口而获取到回调参数中的数据实现数据的播放,同时将第一缓冲区中的数据存储到数据存储区中;
混音单元,用于若判断数据存储区中存储有播放数据,将所述音频数据与所述数据存储区中的播放数据混音。
7.根据权利要求6所述的混音处理装置,其特征在于,所述混音单元包括:
判断子单元,用于判断所述音频数据的字节数是否大于所述播放数据的字节数;
存储子单元,用于若判断所述音频数据的字节数大于所述播放数据的字节数,将所述播放数据存储至混音存储区;若判断所述音频数据的字节数小于或等于所述播放数据的字节数,将所述数据存储区中与所述音频数据的字节数相同的字节数的播放数据存储至混音存储区;
删除子单元,用于将所述数据存储区中存储至混音存储区中的播放数据删除;
计算子单元,用于对混音存储区中的播放数据以及采集到的音频数据,进行加权求和得到混音数据。
8.根据权利要求7所述的混音处理装置,其特征在于,所述计算子单元包括:
获取子模块,用于获取预设字节数的音频数据以及从所述混音存储区中获取预设字节数的播放数据;其中,预设字节数为混音存储区中存储字节数的一半;
计算子模块,用于计算预设字节数的音频数据与第一音量数值的乘积,得到第一乘积值,以及计算预设字节数的播放数据与第二音量数值的乘积,得到第二乘积值;计算所述第一乘积值和所述第二乘积值的和,得到混音数据。
9.根据权利要求8所述的混音处理装置,其特征在于,还包括:
第二判断单元,用于判断所述混音数据的音量是否大于第一阈值且小于第二阈值;
调整单元,用于若判断所述混音数据的音量小于第一阈值,将所述混音数据的音量调整为第一阈值,得到调整后的混音数据;若判断所述混音数据的音量大于第二阈值,将所述混音数据的音量调整为第二阈值,得到调整后的混音数据。
10.根据权利要求6-9任意一项所述的混音处理装置,其特征在于,还包括:
第三判断单元,用于判断所述播放数据的音量是否为初始状态;
回调单元,用于若判断所述播放数据的音量为初始状态,将所述播放数据填充到回调参数中;若判断所述播放数据的音量不为初始状态,从所述数据存储区每次获取预设字节数的播放数据;计算并存储预设字节数的播放数据与所述播放数据的音量的乘积,直至完成对所述数据存储区中存储的播放数据的遍历;其中,预设字节数为所述数据存储区中存储字节数的一半;将存储的预设字节数的播放数据与所述播放数据的音量的乘积填充至回调参数中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039376.6A CN109451329B (zh) | 2019-01-16 | 2019-01-16 | 混音处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910039376.6A CN109451329B (zh) | 2019-01-16 | 2019-01-16 | 混音处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109451329A CN109451329A (zh) | 2019-03-08 |
CN109451329B true CN109451329B (zh) | 2021-01-29 |
Family
ID=65544311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910039376.6A Active CN109451329B (zh) | 2019-01-16 | 2019-01-16 | 混音处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109451329B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110072151B (zh) * | 2019-05-07 | 2021-06-04 | 北京字节跳动网络技术有限公司 | 虚拟礼物展示方法、电子设备及计算机可读存储介质 |
CN112533056B (zh) * | 2019-09-17 | 2022-10-28 | 海信视像科技股份有限公司 | 一种显示设备及声音再现方法 |
CN111491176B (zh) * | 2020-04-27 | 2022-10-14 | 百度在线网络技术(北京)有限公司 | 一种视频处理方法、装置、设备及存储介质 |
CN113542977B (zh) * | 2021-07-15 | 2023-06-09 | 深圳软牛科技有限公司 | 合成声卡和麦克风声音的方法、装置和相关组件 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003195876A (ja) * | 2001-12-26 | 2003-07-09 | Funai Electric Co Ltd | カラオケシステム |
US20070206929A1 (en) * | 2006-03-02 | 2007-09-06 | David Konetski | System and method for presenting karaoke audio and video features from an optical medium |
CN103310776B (zh) * | 2013-05-29 | 2015-12-09 | 亿览在线网络技术(北京)有限公司 | 一种实时混音的方法和装置 |
CN103369305B (zh) * | 2013-06-28 | 2016-02-24 | 武汉烽火众智数字技术有限责任公司 | 实现视频监控系统中语音对讲同步录音及回放的方法 |
CN104392744A (zh) * | 2014-08-27 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 一种录制音频的方法及装置 |
CN105989824B (zh) * | 2015-02-16 | 2021-01-12 | 北京天籁传音数字技术有限公司 | 一种移动设备的卡拉ok系统及移动设备 |
CN107040496A (zh) * | 2016-02-03 | 2017-08-11 | 中兴通讯股份有限公司 | 一种音频数据处理方法和装置 |
CN105872253B (zh) * | 2016-05-31 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 一种直播声音处理方法及移动终端 |
CN108259985A (zh) * | 2018-01-09 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 直播音频混音方法、装置、可读存储介质及设备 |
-
2019
- 2019-01-16 CN CN201910039376.6A patent/CN109451329B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109451329A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109451329B (zh) | 混音处理方法及装置 | |
WO2014117660A1 (zh) | 视频短信的发送、接收方法及其装置和手持电子设备 | |
CN109951743A (zh) | 弹幕信息处理方法、系统及计算机设备 | |
CN103795950A (zh) | 电视音频信号处理装置 | |
CN104835520A (zh) | 一种在移动设备上录音的方法及装置 | |
JP2012032803A (ja) | フルバンド拡張可能なオーディオコーデック | |
CN111107396A (zh) | 基于硬件的车机音频远程输出方法、装置及系统 | |
CN107800860A (zh) | 语音处理方法、装置及终端设备 | |
US20050055202A1 (en) | Call method, call apparatus and call system | |
CN101534308B (zh) | 语音数据处理方法及系统 | |
JP4404091B2 (ja) | 音楽を再生するためのコンテンツフレームを配信するコンテンツ配信サーバ及び端末 | |
US20210390971A1 (en) | Method and apparatus and telephonic system for acoustic scene conversion | |
CN112688965B (zh) | 一种会议音频共享方法、装置、电子设备及存储介质 | |
CN103347199A (zh) | 一种音频直播方法及系统 | |
JP3014366B2 (ja) | インターネット電話通信方法及び装置、及びそのプログラムを記録した記録媒体 | |
JP3844485B2 (ja) | 携帯電話向けインターネットライブ放送システム、携帯電話向けインターネットライブ放送方法、ストリーミングデータ作成配信プログラム及び記録媒体 | |
CN112201264A (zh) | 音频处理方法、装置、电子设备、服务器及存储介质 | |
CN109218849B (zh) | 一种直播数据的处理方法、装置、设备和存储介质 | |
CN111263252B (zh) | 一种用于直播的连麦消音方法、系统和存储介质 | |
JP2005045741A (ja) | 通話装置、通話方法及び通話システム | |
CN101009577A (zh) | 实现音频播放的方法与装置 | |
CN112073890A (zh) | 音频数据处理方法、装置和终端设备 | |
JP2006221253A (ja) | 画像処理装置および画像処理プログラム | |
JP2005045739A (ja) | 通話装置、通話方法及び通話システム | |
JP5210788B2 (ja) | 音声信号通信システム、音声合成装置、音声合成処理方法、音声合成処理プログラム、並びに該プログラムを格納した記録媒体 |
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 |