CN114512139B - 多路音频混音的处理方法、系统、混音处理器和存储介质 - Google Patents

多路音频混音的处理方法、系统、混音处理器和存储介质 Download PDF

Info

Publication number
CN114512139B
CN114512139B CN202210404552.3A CN202210404552A CN114512139B CN 114512139 B CN114512139 B CN 114512139B CN 202210404552 A CN202210404552 A CN 202210404552A CN 114512139 B CN114512139 B CN 114512139B
Authority
CN
China
Prior art keywords
audio
frame
time stamp
frames
mixing
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
Application number
CN202210404552.3A
Other languages
English (en)
Other versions
CN114512139A (zh
Inventor
程景
詹志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Xingxi Technology Co ltd
Original Assignee
Hangzhou Xingxi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Xingxi Technology Co ltd filed Critical Hangzhou Xingxi Technology Co ltd
Priority to CN202210404552.3A priority Critical patent/CN114512139B/zh
Publication of CN114512139A publication Critical patent/CN114512139A/zh
Application granted granted Critical
Publication of CN114512139B publication Critical patent/CN114512139B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • G10L21/01Correction of time axis
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/003Changing voice quality, e.g. pitch or formants
    • G10L21/007Changing voice quality, e.g. pitch or formants characterised by the process used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R3/00Circuits for transducers, loudspeakers or microphones

Landscapes

  • Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Circuit For Audible Band Transducer (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本申请涉及一种多路音频混音的处理方法、系统、混音处理器和存储介质,通过获取多个音频输入源输入的音频流,其中,每个音频输入源对应有一个缓存队列,在音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的缓存队列中,将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若待混音数组中音频帧的数量为零,则输出空音频帧,否则对待混音数组中的音频帧进行混音处理并输出混音后的音频帧,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。

Description

多路音频混音的处理方法、系统、混音处理器和存储介质
技术领域
本申请涉及音视频技术领域,特别是涉及多路音频混音的处理方法、系统、混音处理器和存储介质。
背景技术
直播过程中,主播会有多路音频混音的需求,例如将MIC音频源、本地音频源和网络音频源进行混音,在相关技术中,由于音频源动态插拔和切换或网络条件不好的情况下,会出现数据延迟或丢包,当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包。
目前针对相关技术中当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种多路音频混音的处理方法、系统、混音处理器和存储介质,以至少解决相关技术中当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。
第一方面,本申请实施例提供了一种多路音频混音的处理方法,所述方法包括:
获取多个音频输入源输入的音频流,其中,每个所述音频输入源对应有一个缓存队列;
在所述音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的所述缓存队列中;
将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若所述待混音数组中音频帧的数量为零,则输出空音频帧,否则对所述待混音数组中的音频帧进行混音处理并输出混音后的音频帧。
在其中一些实施例中,将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组包括:
将预设时间戳作为所述期望时间戳的初始值,并以标准音频帧时长作为步进值迭代更新所述期望时间戳;
循坏执行将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组。
在其中一些实施例中,获取多个音频输入源输入的音频流之后,在所述音频流中音频帧的字节数不相同的情况下,所述方法还包括:
获取当前音频帧的字节数,按照预设字节数对各个音频流中的音频帧进行重新分包,直至所有音频帧的字节数等于所述预设字节数,并根据预设规则重新打上时间戳后,将所有音频帧缓存至对应的所述缓存队列中;
所述根据预设规则重新打上时间戳包括:
第一帧音频帧的时间戳为第一原始时间戳,若不存在延迟和丢包,则第二帧及以上的音频帧的时间戳为所述第一原始时间戳累加标准帧音频帧时长;
若在第n-1帧和第n帧之间存在延迟和丢包,则第n帧音频帧的时间戳为第二原始时间戳,第n+1帧及以上的音频帧的时间戳为所述第二原始时间戳累加标准帧音频帧时长。
在其中一些实施例中,将音频帧缓存至所述缓存队列之前,对所述音频帧进行增益处理,和/或,从所述缓存队列中取出所述音频帧后,对所述音频帧进行延迟处理。
在其中一些实施例中,所述预设时间包括标准音频帧时长或M帧音频帧时间间隔的平均值,其中,M为2以上的正整数,所述预设时间戳为当前系统时间戳与缓冲时间之和。
第二方面,本申请实施例提供了一种多路音频混音的处理系统,所述系统包括获取模块、缓存模块和混音模块,
所述获取模块,用于获取多个音频输入源输入的音频流,其中,每个所述音频输入源对应有一个缓存队列;
所述缓存模块,用于在所述音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的所述缓存队列中;
所述混音模块,用于将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若所述待混音数组中音频帧的数量为零,则输出空音频帧,否则对所述待混音数组中的音频帧进行混音处理并输出混音后的音频帧。
在其中一些实施例中,所述混音模块将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组包括:
将预设时间戳和预设时间戳累加标准音频帧时长记为所述期望时间戳;
循坏执行将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组。
在其中一些实施例中,获取多个音频输入源输入的音频流之后,在所述音频流中音频帧的字节数不相同的情况下,所述系统还包括调整模块,
所述调整模块,用于获取当前音频帧的字节数,若所述当前音频帧的字节数少于预设字节数,则通过下一音频帧的字节数对所述当前音频帧的字节数进行补充,若所述当前音频帧的字节数大于预设字节数,则将所述当前音频帧剩余的字节数作为新的音频帧,并根据预设规则重新打上时间戳,直至所有音频帧的字节数等于所述预设字节数,将所有音频帧缓存至对应的所述缓存队列中;
所述根据预设规则重新打上时间戳包括:
第一帧音频帧的时间戳为第一原始时间戳,若不存在延迟和丢包,则第二帧及以上的音频帧的时间戳为所述第一原始时间戳累加标准帧音频帧时长;
若在第n-1帧和第n帧之间存在延迟和丢包,则第n帧音频帧的时间戳为第二原始时间戳,第n+1帧及以上的音频帧的时间戳为所述第二原始时间戳累加标准帧音频帧时长。
第三方面,本申请实施例提供了一种混音处理器,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的多路音频混音的处理方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的多路音频混音的处理方法。
相比于相关技术,本申请实施例提供的多路音频混音的处理方法,通过获取多个音频输入源输入的音频流,其中,每个音频输入源对应有一个缓存队列,在音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的缓存队列中,将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若待混音数组中音频帧的数量为零,则输出空音频帧,否则对待混音数组中的音频帧进行混音处理并输出混音后的音频帧,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是相关技术中多路音频混音的处理方法的示意图;
图2是根据本申请实施例的多路音频混音的处理方法的流程图;
图3是根据本申请实施例的多路音频混音的处理方法的示意图;
图4是根据本申请实施例的另一种多路音频混音的处理方法的流程图;
图5是根据本申请实施例的多路音频混音的处理系统。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
图1是相关技术中多路音频混音的处理方法的示意图,如图1所示,通过音频输入源将多路音频流输入到混音处理器进行混音处理,并输出混音后的音频流,但当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包。
示例性的,标准音频帧时长为实际采样点数/采样率*1000*1000,单位为ms,当每帧音频帧包含1024个采样点,且采样率为44100,则标准音频帧时长为1024/44100*1000*1000=23.22ms,若第一音频输入源输入的音频流中音频帧的时间戳分别为23ms、92ms、115ms、140ms,第二音频输入源输入的音频流中音频帧的时间戳分别为23ms、46ms、69ms、92ms,第三音频输入源输入的音频流中音频帧的时间戳分别为23ms、46ms、69ms、92ms,由于第一音频输入源输入的第一帧音频帧和第二帧音频帧之间的时间间隔大于标准音频帧时长,则说明这两帧音频帧之间存在延迟或丢包。现有技术中在将三路音频源进行混音时,会将第一音频输入源、第二音频输入源和第三音频输入源输入的第23ms的音频帧进行混音,作为混音后的第一帧音频帧,再将第一音频输入源输入的第92ms的音频帧、第二音频输入源输入的第46ms的音频帧和第三音频输入源输入的第46ms的音频帧进行混音,作为混音后的第二帧音频帧,以此类推,得到混音后的全部音频流,但由于第一音频输入源输入的音频帧存在延迟或丢包,因此,从混音后的第二帧音频帧开始,之后的音频帧都存在延迟或丢包。
本实施例提供了一种多路音频混音的处理方法,用于解决上述相关技术中的技术问题,图2是根据本申请实施例的多路音频混音的处理方法的流程图,如图2所示,该方法包括如下步骤:
步骤S201,获取多个音频输入源输入的音频流,其中,每个音频输入源对应有一个缓存队列;图3是根据本申请实施例的多路音频混音的处理方法的示意图,如图3所示,分别为每一路音频输入源创建一个缓存队列,该缓存队列的设置支持各路音频源的动态挂载和移除,灵活占用/释放音频通道资源。当音频输入源输入音频流时,不直接将音频流送进混音处理器进行混音处理,而是先将音频流缓存至对应的缓存队列中,由于音频流中的每一帧音频帧都自带有时间戳,因此该缓存队列是一个以时间戳排序的有序队列。
步骤S202,在音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的缓存队列中;在实际应用中,音频输入源输入的音频帧的字节数可能是一样的,也可能是不一样的,当音频帧的字节数不一样时,无法进行混音,因此在本实施例中,仅考虑多路音频流中音频帧的字节数都相同的情况。
步骤S203,将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若待混音数组中音频帧的数量为零,则输出空音频帧,否则对待混音数组中的音频帧进行混音处理并输出混音后的音频帧。
示例性的,若第一缓存队列中音频帧的时间戳为23ms、92ms、115ms、140ms,第二缓存队列中音频帧的时间戳为23ms、46ms、69ms、92ms,第三缓存队列中音频帧的时间戳为23ms、46ms、69ms、92ms,则第一缓存队列中的第一帧音频帧和第二帧音频帧之间存在延迟或丢包。
当预设时间为15ms,期望时间戳为45ms时,缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧为第二缓存队列和第三缓存队列中第46ms的音频帧,因此仅将第二缓存队列和第三缓存队列中第46ms的音频帧进行混音,当期望时间戳为68ms时,仅将第二缓存队列和第三缓存队列中的第69ms的音频帧进行混音,当期望时间戳为91ms时,将第一缓存队列、第二缓存队列和第三缓存队列中的第92ms的音频帧进行混音,通过本实施例,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。
本实施例中,若三路音频输入源输入的第N帧音频帧存在延迟或丢包的问题,会导致根据期望时间戳从缓存队列中获取第N帧音频帧时,获取不到音频帧,则输出空音频帧,即自动进行补帧,防止混音后的音频流缺乏第N帧音频帧,从而造成卡顿的问题。
通过步骤S201至步骤S203,相对于相关技术中当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题,本实施例通过获取多个音频输入源输入的音频流,其中,每个音频输入源对应有一个缓存队列,在音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的缓存队列中,将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若待混音数组中音频帧的数量为零,则输出空音频帧,否则对待混音数组中的音频帧进行混音处理并输出混音后的音频帧,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频帧存在延迟或丢包时,会造成混音后的音频帧也存在延迟或丢包的问题,且相关技术中由底层硬件支持混音,混音受限于硬件,只能混合硬件所支持的固定几种音频流,而本实施例由于是在应用层进行混音,只要能获取到的音频流都可以参与混音,实现了音频业务和硬件设备解耦,突破设备性能的局限性同时扩展了音频混音功能的适用范围,因此能满足用户更多个性化的需求。
在其中一些实施例中,将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组包括:
将预设时间戳作为期望时间戳的初始值,并以标准音频帧时长作为步进值迭代更新期望时间戳,循环执行将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组。本实施例中,预设时间戳为开始进行混音的时间,即在预设时间戳时从缓存队列中取出相应的音频帧进行混音,间隔标准音频帧时长后,再继续从缓存队列中取出相应的音频帧进行混音,直至结束混音,当输出混音后的音频帧后,以期望时间戳作为混音后音频帧的时间戳,防止混音的音频帧时间戳不一致,无法确认混音后音频帧的时间戳,且若以其中一个混音的音频帧时间戳作为混音后音频帧的时间戳,会导致混音后音频帧的时间戳不均匀。
示例性的,图4是根据本申请实施例的另一种多路音频混音的处理方法的流程图,如图4所示,该方法包括如下步骤:
步骤S401,循环定时任务,定时任务的开启时间为预设时间戳,且间隔标准音频帧时长循坏执行,将循环定时任务时的时间戳记为期望时间戳。
步骤S402,判断缓存队列中是否存在和期望时间戳误差在标准音频帧时长以内的音频帧,是则跳转到步骤S403,否则跳转到步骤S404。
步骤S403,将音频帧放入待混音数组。
步骤S404,返回空音频帧。
步骤S405,判断待混音数组中音频帧的数量是否为零,是则跳转到步骤S406,否则跳转到步骤S407。
步骤S406,输出一帧空音频帧。
步骤S407,对待混音数组中的音频帧进行混音处理,输出混音后的音频帧。
通过上述步骤S401至步骤S407,间隔标准音频帧时长循环从缓存队列中获取音频帧进行混音,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。
同一个音频源的音频帧字节数可能会不一样,不同音频源的字节数也可能会不一样,当音频帧的字节数不一样时,无法进行混音,但又会存在音频帧字节数不一样的情况,例如,SD卡的音频输入源可能受解码速度的影响使每次输出音频帧字节数不一样,因此需要进行字节对齐以及重打时间戳后,再进行混音,故在其中一些实施例中,获取多个音频输入源输入的音频流之后,在音频流中音频帧的字节数不相同的情况下,还包括如下步骤:
步骤S501,获取当前音频帧的字节数;
步骤S502,按照预设字节数对各个音频流中的音频帧进行重新分包,直至所有音频帧的字节数等于所述预设字节数,并根据预设规则重新打上时间戳后,将所有音频帧缓存至对应的缓存队列中。具体的,若当前音频帧的字节数少于预设字节数,则通过下一音频帧的字节数对当前音频帧的字节数进行补充,若当前音频帧的字节数大于预设字节数,则将当前音频帧剩余的字节数作为新的音频帧,并根据预设规则重新打上时间戳,直至所有音频帧的字节数等于预设字节数;
根据预设规则重新打上时间戳包括:
第一帧音频帧的时间戳为第一原始时间戳,若不存在延迟和丢包,则第二帧及以上的音频帧的时间戳为第一原始时间戳累加标准帧音频帧时长;
若在第n-1帧和第n帧之间存在延迟和丢包,则第n帧音频帧的时间戳为第二原始时间戳,第n+1帧及以上的音频帧的时间戳为第二原始时间戳累加标准帧音频帧时长。
示例性的,第一音频输入源输入的音频帧的时间戳和字节数分别为(23ms,3字节)、(60ms,5字节)、(115ms,4字节)、(145ms,4字节),根据第二帧音频帧和第三帧音频帧的时间间隔,判断为第二帧音频帧和第三帧音频帧之间存在延迟和丢包,当预设字节数为3字节时,第一帧音频帧(23ms,3字节)的字节数满足要求,无需进行调整,且时间戳为第一原始时间戳23ms,第二帧音频帧(60ms,5字节)的字节数大于预设字节数,则将当前音频帧剩余的字节数作为新的音频帧,即将(60ms,5字节)进行分包后得到(46ms,3字节)和新的音频帧(69ms,2字节),由于新的音频帧(69ms,2字节)的字节数小于预设字节数,因此,要通过下一音频帧进行补充,调整为新的音频帧为(69ms,3字节),第三帧音频帧(115ms,4字节)的时间戳为第二原始时间戳115ms,以此类推,进行字节对齐以及重打时间戳后,得到的第一音频输入源输入的音频帧的时间戳和字节数分别为(23ms,3字节)、(46ms,3字节)、(69ms,3字节)、(115ms,3字节)、(138ms,3字节),剩余一个字节合并到下一音频帧中,通过本实施例,解决了音频帧的字节数不一样时,无法进行混音的问题。
在其中一些实施例中,将音频帧缓存至缓存队列之前,对音频帧进行增益处理,和/或,从缓存队列中取出音频帧后,对音频帧进行延迟处理。本实施例通过对音频帧进行增益或延迟处理,可以满足用户多样化的需求。即在实际应用中,若要将麦克风、伴奏音乐以及其他背景声音进行混音,并且要突出麦克风声音,则将麦克风声音进行增益后再进行混音处理;若根据期望时间戳从多个缓存队列中取出的音频帧,可以对其中至少一路音频帧进行延迟处理后在进行混音,例如从三个缓存队列中取出的音频帧时间戳分别为44ms、46ms和46ms,则可以将44ms延迟2ms后再进行混音,使三帧音频帧混音数据严格同步,从而做到声音与画面同步。
在其中一些实施例中,预设时间包括标准音频帧时长或M帧音频帧时间间隔的平均值,其中,M为2以上的正整数,预设时间戳为当前系统时间戳与缓冲时间之和。在进行混音时,每一路音频输入源需要同时输入音频流,但在实际应用中,很难使每一路音频输入源同时输入音频流,因此,缓冲时间可以根据每一路音频输入源输入音频流时的时间误差进行取值。
在每一路音频输入源无法同时输入音频流的情况下,若每路音频输入源每输入一帧音频帧都进行混音,例如,在每路音频输入源都输入完首帧音频帧后,开始进行混音,示例性的,若当前系统时间为第20ms,第一路音频输入源输入的首帧音频帧是在第20ms输入的,最后一路音频输入源输入的首帧音频帧是在第30ms输入的,如果预设时间为12ms,预设时间戳为当前系统时间戳,在当前系统时间戳第20ms时进行混音,由于第30ms输入的首帧音频帧还没输入,会导致获取不到第30ms输入的首帧音频帧,因此,若缓冲时间设置为10ms,则预设时间戳为第30ms,在第30ms时进行混音,即可在每路音频输入源都输入完首帧音频帧后,开始进行混音。
在其中一些实施例中,当每路音频输入源输入的音频帧都缓存至对应的缓存队列后,再将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧进行混音,示例性的,若当前系统时间为第20ms,第一路音频输入源输入的首帧音频帧是在第20ms输入的,最后一路音频输入源输入的首帧音频帧是在第28ms输入的,如果预设时间为7ms,预设时间戳为当前系统时间戳,在当前系统时间戳第20ms时进行混音,会导致获取不到最后一路音频输入源第28ms输入的首帧音频帧。若缓冲时间设置为5ms,则预设时间戳为当前系统时间戳与缓冲时间之和等于25ms,将预设时间戳第25ms作为期望时间戳的初始值进行混音,即可取出输入时间在18ms~32ms之间的每路音频输入源输入的音频帧,达到完整地对齐混音音频帧的技术效果。
本实施例中,当音频帧采样率为44100HZ且每帧包含的采样点数为1024,则标准音频帧间隔为1024/44100×1000,单位为毫秒,在标准音频帧时长无法准确得出的情况下,也可以将M帧音频帧时间间隔的平均值作为预设时间。
由于各路音频帧的时间戳并不严格一致,即每一路音频输入源输入的音频流在ms时间级数上不是同时输入的,但误差最大在50ms内,因此缓冲时间可以为50ms,预设时间戳为当前系统时间戳与缓冲时间之和,解决了各路音频输入源输入的音频帧时间戳并不严格一致、导致混音音频帧无法全部对齐的问题,且会以期望时间戳作为混音后输出音频帧的时间戳,防止输出音频帧的时间戳不均匀。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种多路音频混音的处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的多路音频混音的处理系统,如图5所示,该系统包括获取模块51、缓存模块52和混音模块53,获取模块51用于获取多个音频输入源输入的音频流,其中,每个音频输入源对应有一个缓存队列;缓存模块52用于在音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的缓存队列中;混音模块53用于将缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若待混音数组中音频帧的数量为零,则输出空音频帧,否则对待混音数组中的音频帧进行混音处理并输出混音后的音频帧,对于延迟或丢包的音频帧则不参与混音,解决了当某一路音频输入源采集的音频流存在延迟或丢包时,会造成混音后的音频流也存在延迟或丢包的问题。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种混音处理器,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述混音处理器还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的多路音频混音的处理方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种多路音频混音的处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多路音频混音的处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种多路音频混音的处理方法,其特征在于,所述方法包括:
获取多个音频输入源输入的音频流,其中,每个所述音频输入源对应有一个缓存队列;
在所述音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的所述缓存队列中,其中,所述缓存队列为以音频帧时间戳排序的有序队列;
将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若所述待混音数组中音频帧的数量为零,则输出空音频帧,否则对所述待混音数组中的音频帧进行混音处理并输出混音后的音频帧,并以所述期望时间戳作为混音后音频帧的时间戳,其中,所述预设时间包括标准音频帧时长或M帧音频帧时间间隔的平均值,M为2以上的正整数。
2.根据权利要求1所述的方法,其特征在于,将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组包括:
将预设时间戳作为所述期望时间戳的初始值,并以标准音频帧时长作为步进值迭代更新所述期望时间戳,其中,所述预设时间戳为当前系统时间戳与缓冲时间之和;
循坏执行将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组。
3.根据权利要求1所述的方法,其特征在于,获取多个音频输入源输入的音频流之后,在所述音频流中音频帧的字节数不相同的情况下,所述方法还包括:
获取当前音频帧的字节数,按照预设字节数对各个音频流中的音频帧进行重新分包,直至所有音频帧的字节数等于所述预设字节数,并根据预设规则重新打上时间戳后,将所有音频帧缓存至对应的所述缓存队列中;
所述根据预设规则重新打上时间戳包括:
第一帧音频帧的时间戳为第一原始时间戳,若不存在延迟和丢包,则第二帧及以上的音频帧的时间戳为所述第一原始时间戳累加标准帧音频帧时长;
若在第n-1帧和第n帧之间存在延迟和丢包,则第n帧音频帧的时间戳为第二原始时间戳,第n+1帧及以上的音频帧的时间戳为所述第二原始时间戳累加标准帧音频帧时长。
4.根据权利要求1至3任一项所述的方法,其特征在于,将音频帧缓存至所述缓存队列之前,对所述音频帧进行增益处理,和/或,从所述缓存队列中取出所述音频帧后,对所述音频帧进行延迟处理。
5.一种多路音频混音的处理系统,其特征在于,所述系统包括获取模块、缓存模块和混音模块,
所述获取模块,用于获取多个音频输入源输入的音频流,其中,每个所述音频输入源对应有一个缓存队列;
所述缓存模块,用于在所述音频流中音频帧的字节数相同的情况下,将所有音频帧缓存至对应的所述缓存队列中,其中,所述缓存队列为以音频帧时间戳排序的有序队列;
所述混音模块,用于将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组,若所述待混音数组中音频帧的数量为零,则输出空音频帧数据,否则对所述待混音数组中的音频帧进行混音处理并输出混音后的音频帧,并以所述期望时间戳作为混音后音频帧的时间戳,其中,所述预设时间包括标准音频帧时长或M帧音频帧时间间隔的平均值,M为2以上的正整数。
6.根据权利要求5所述的系统,其特征在于,所述混音模块将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组包括:
将预设时间戳和预设时间戳累加标准音频帧时长记为所述期望时间戳,其中,所述预设时间戳为当前系统时间戳与缓冲时间之和;
循坏执行将所述缓存队列中音频帧的时间戳和期望时间戳误差在预设时间内的音频帧放入待混音数组。
7.根据权利要求5所述的系统,其特征在于,获取多个音频输入源输入的音频流之后,在所述音频流中音频帧的字节数不相同的情况下,所述系统还包括调整模块,
所述调整模块,用于获取当前音频帧的字节数,若所述当前音频帧的字节数少于预设字节数,则通过下一音频帧的字节数对所述当前音频帧的字节数进行补充,若所述当前音频帧的字节数大于预设字节数,则将所述当前音频帧剩余的字节数作为新的音频帧,并根据预设规则重新打上时间戳,直至所有音频帧的字节数等于所述预设字节数,将所有音频帧缓存至对应的所述缓存队列中;
所述根据预设规则重新打上时间戳包括:
第一帧音频帧的时间戳为第一原始时间戳,若不存在延迟和丢包,则第二帧及以上的音频帧的时间戳为所述第一原始时间戳累加标准帧音频帧时长;
若在第n-1帧和第n帧之间存在延迟和丢包,则第n帧音频帧的时间戳为第二原始时间戳,第n+1帧及以上的音频帧的时间戳为所述第二原始时间戳累加标准帧音频帧时长。
8.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至4中任一项所述的多路音频混音的处理方法。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至4中任一项所述的多路音频混音的处理方法。
CN202210404552.3A 2022-04-18 2022-04-18 多路音频混音的处理方法、系统、混音处理器和存储介质 Active CN114512139B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210404552.3A CN114512139B (zh) 2022-04-18 2022-04-18 多路音频混音的处理方法、系统、混音处理器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210404552.3A CN114512139B (zh) 2022-04-18 2022-04-18 多路音频混音的处理方法、系统、混音处理器和存储介质

Publications (2)

Publication Number Publication Date
CN114512139A CN114512139A (zh) 2022-05-17
CN114512139B true CN114512139B (zh) 2022-09-20

Family

ID=81555327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210404552.3A Active CN114512139B (zh) 2022-04-18 2022-04-18 多路音频混音的处理方法、系统、混音处理器和存储介质

Country Status (1)

Country Link
CN (1) CN114512139B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065860B (zh) * 2022-07-01 2023-03-14 广州美录电子有限公司 适用于舞台的音频数据处理方法、装置、设备及介质
CN116896548B (zh) * 2023-09-11 2023-11-10 北京麟卓信息科技有限公司 一种基于自适应混音的多路音频拥塞优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818790A (zh) * 2017-11-16 2018-03-20 苏州麦迪斯顿医疗科技股份有限公司 一种多路音频混音方法及装置
CN108055417A (zh) * 2017-12-26 2018-05-18 杭州叙简科技股份有限公司 一种基于语音检测回音抑制切换音频处理系统及方法
CN113205822A (zh) * 2021-04-02 2021-08-03 苏州开心盒子软件有限公司 一种多路音频数据录制混音方法及装置、存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954178B2 (en) * 2007-09-30 2015-02-10 Optical Fusion, Inc. Synchronization and mixing of audio and video streams in network-based video conferencing call systems
CN101282386B (zh) * 2008-05-22 2010-11-10 中山大学 一种voip服务器端同步混音转发方法
CN102226944B (zh) * 2011-05-25 2014-11-12 贵阳朗玛信息技术股份有限公司 混音方法及设备
CN103338386B (zh) * 2013-07-10 2016-01-13 航天恒星科技有限公司 基于简化时间戳的音视频同步方法
CN104113777B (zh) * 2014-08-01 2018-06-05 广州猎豹网络科技有限公司 一种音频流解码方法及装置
CN105321538A (zh) * 2014-08-04 2016-02-10 中兴通讯股份有限公司 音频数据的录音方法及装置
CN106612452B (zh) * 2015-10-22 2019-12-13 深圳市中兴微电子技术有限公司 机顶盒音视频同步的方法及装置
CN106816152A (zh) * 2016-12-05 2017-06-09 乐视控股(北京)有限公司 一种音频混音方法、装置和电子设备
CN108877820B (zh) * 2017-11-30 2021-05-11 视联动力信息技术股份有限公司 一种音频数据混合方法和装置
US20190294875A1 (en) * 2018-03-25 2019-09-26 Dror Dov Ayalon Method and system for mixing of matched signals
CN108924631B (zh) * 2018-06-27 2021-07-06 杭州叙简科技股份有限公司 一种基于音视频分流存储的录像生成方法
US11051050B2 (en) * 2018-08-17 2021-06-29 Kiswe Mobile Inc. Live streaming with live video production and commentary
CN109714634B (zh) * 2018-12-29 2021-06-29 海信视像科技股份有限公司 一种直播数据流的解码同步方法、装置及设备
CN114073098B (zh) * 2020-04-28 2023-04-25 Vidaa(荷兰)国际控股有限公司 流媒体同步方法及显示设备
CN112104836A (zh) * 2020-11-23 2020-12-18 全时云商务服务股份有限公司 一种音频服务器混音方法、系统、存储介质及设备
CN112885329B (zh) * 2021-02-02 2023-10-31 广州广哈通信股份有限公司 一种提高混音音质的控制方法、装置及存储介质
CN112564926B (zh) * 2021-02-19 2021-05-11 全时云商务服务股份有限公司 一种网络会议的处理方法及系统
CN113470613A (zh) * 2021-07-16 2021-10-01 北京达佳互联信息技术有限公司 合唱混音方法、装置、电子设备和存储介质
CN114007108B (zh) * 2021-10-28 2023-09-19 广州华多网络科技有限公司 音频流混音控制方法及其装置、设备、介质、产品

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107818790A (zh) * 2017-11-16 2018-03-20 苏州麦迪斯顿医疗科技股份有限公司 一种多路音频混音方法及装置
CN108055417A (zh) * 2017-12-26 2018-05-18 杭州叙简科技股份有限公司 一种基于语音检测回音抑制切换音频处理系统及方法
CN113205822A (zh) * 2021-04-02 2021-08-03 苏州开心盒子软件有限公司 一种多路音频数据录制混音方法及装置、存储介质

Also Published As

Publication number Publication date
CN114512139A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
CN114512139B (zh) 多路音频混音的处理方法、系统、混音处理器和存储介质
CN104269182B (zh) 一种音频同步播放的方法、装置和系统
EP2250775B1 (en) Buffer module, receiver, device and buffering method using windows
CN102057596B (zh) 用于在通信系统中提供修改的时戳的方法和设备
US20070064851A1 (en) Method for synchronizing a customer edge router or customer premise equipment associated therewith
CN113055718B (zh) 时间戳均匀化处理的方法、系统、电子装置和存储介质
EP3934132B1 (en) Clock queue with arming and/or self-arming features
CN110267276B (zh) 网络切片部署方法及装置
US20080175147A1 (en) Admission control for packet connections
CN106708240B (zh) 一种省电方法、服务器及省电系统
KR102219015B1 (ko) 네트워크 이용을 개선하기 위한 네트워크 지원 프로토콜 사용
US7889685B2 (en) System and method for platform resilient VoIP processing
US20220217091A1 (en) Service processing method and apparatus, and storage medium
CN114007108A (zh) 音频流混音控制方法及其装置、设备、介质、产品
US9203505B2 (en) Virtual data framing for data packet transmission over channels of a communications network
US20240007707A1 (en) Audio data processing method, audio data processing apparatus, computer readble storage medium, and electronic device suitable for stage
CN117201434A (zh) 一种以太网数据交互方法和系统
US20070011287A1 (en) Systems and methods for seamless handover in a streaming data application
CN113626221B (zh) 一种消息入队方法及装置
CN110445578B (zh) 一种spi数据传输方法及装置
CN114172605A (zh) 一种同步播放方法、系统及存储介质
CN113132300A (zh) 音频数据传输方法及装置
US20230251899A1 (en) Time-based synchronization descriptors
CN108809468B (zh) 时间同步的方法、装置和存储介质以及电子设备
CN117768993A (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