一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

网络直播音频处理方法及其装置、设备、介质、产品与流程

2022-02-20 13:12:30 来源:中国专利 TAG:


1.本技术涉及网络直播音频处理技术,尤其涉及一种网络直播音频处理方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。


背景技术:

2.回声消除常应用于语音通信中,通过自适应滤波算法估计回声路径的传递函数,通过传递函数对参考信号滤波,达到去除回声的效果。在通信双方双讲的情况下,参考信号和采集信号的线性关系被破坏,影响自适应滤波器系数的收敛,此时通过自适应滤波去估计回声路径会导致失真,进而回声消除后的语音信号出现掉字、卡顿、漏回声等情况。
3.网络直播场景中,存在多个音源。主播在本地播放背景音乐,并将音乐推流给观众端,若此场景下主播与观众进行连线,与此同时主播端还会拉流播放连线观众的声音。上述场景处理流程如图1所示,其中虚线框“拉流”表示在连线时才会执行。
4.现有技术中,回声消除原理如图2所示,在回声消除过程中会将本地播放的声音作为参考信号,由于音乐信号的连续性,本地会持续播放,因此无论是否存在向连线观众拉流的情况,只要主播端一说话,便形成双讲。由于双讲的频繁发生,回声消除后主播用户的声音会出现掉字、漏回声等情况。
5.图3是借助现有技术进行回声消除所获得的实测效果示意图,该图自上而下为主播信号、音乐信号、采集信号、回声消除信号相对应的波形图,其中,“采集信号”为终端设备采集到的主播说话信号和本地播放音乐信号经过房间反射后回声的混合,“回声消除信号”是以播放音乐信号为参考信号,对“采集信号”进行回声消除后的信号。从“采集信号”能够明显看出,当主播端说话产生“主播信号”时,采集信号一直处于双讲状态中。通过对比“主播信号”和“回声消除信号”,能够看出信号损失很多,最明显的是出现了掉字,从而导致听起来卡顿。另外,在“回声消除信号”中也会出现漏回声,主要体现在其中时域上4秒位置处。
6.有鉴于此,需要采用新的技术方案,克服网络直播过程中主播端本地播放音乐并推流的场景下频繁出现双讲导致出现丢字、卡顿和漏回声的问题。


技术实现要素:

7.本技术的首要目的在于解决上述问题至少之一而提供一种网络直播音频处理方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品。
8.为满足本技术的各个目的,本技术采用如下技术方案:
9.适应本技术的目的之一而提供的一种网络直播音频处理方法,包括如下步骤:
10.获取直播间连线状态中的远端音频数据,将其与本机音频数据混音为外放音频数据后播放;
11.以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,其中消除了远端音频数据的回声信号而保留本机音频数据的回声信号;
12.将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音
音频数据;
13.向所述直播间推送包含所述混音音频数据的直播流。
14.深化的实施例中,获取直播间连线状态中的远端音频数据,将其与本机音频数据混音后播放,包括如下步骤:
15.获取直播间连线状态中由服务器推送的远端直播流;
16.从所述远端直播流中提取出其中的远端音频数据;
17.将所述远端音频数据与本机音频数据混音获得外放音频数据;
18.根据所述外放音频数据转换出语音信号进行播放。
19.深化的实施例中,以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,包括如下步骤:
20.从本机声卡持续采集实时输入语音信号而获得实时音频数据;
21.应用预设的自适应回声滤波算法,以所述远端音频数据为参考信号,对所述实时音频数据实施回声消除处理,以消除其中与远端音频数据相对应的回声信号;
22.保留所述实时音频数据中与所述本机音频数据相对应的回声信号,作为所述中间音频数据。
23.具体化的实施例中,将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音音频数据,包括如下步骤:
24.获取本机设备相对应的环回延迟值;
25.控制所述本地音频数据按照所述环回延迟值滞后与所述中间音频数据相混音,获得混音音频数据。
26.进一步的实施例中,获取本机设备相对应的环回延迟值,包括如下步骤:
27.在第一时刻向所述外放音频数据预置环回识别信号,所述环回识别信号为人耳听力频带外的高频信号,包括多个单频信号,各单频信号在频域上等间隔设置;
28.检测所述实时音频数据中是否存在所述环回识别信号,在检出该环回识别信号时确定出第二时刻;
29.根据所述第一时刻和第二时刻的差值确定所述环回延迟值;
30.存储所述环回延迟值以供后续直接调用。
31.深化的实施例中,检测所述实时音频数据中是否存在所述环回识别信号,包括如下步骤:
32.沿时域跟踪所述实时音频数据的噪声信号,将所述噪声信号变换至频域,获得相应的噪声能量谱数据;
33.根据实时音频数据的语音帧相映射的语音能量谱数据,定位其中各个频点的峰值位置;
34.根据各个频点相对应的语音能量与噪声能量计算每个语音帧中所述环回识别信号的存在概率;
35.在多个连续语音帧的存在概率满足预设条件时判定检测出所述环回识别信号。
36.扩展的实施例中,以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,以消除其中与远端音频数据相对应的回声信号,获得中间音频数据的步骤之前,包括如下步骤:
37.检测本机登录的直播间用户的回声消除功能开关,当其为激活状态时,启动后续步骤,否则不予执行后续步骤。
38.适应本技术的目的之一而提供的一种网络直播音频处理装置,包括:
39.拉流播放模块,用于获取直播间连线状态中的远端音频数据,将其与本机音频数据混音为外放音频数据后播放;
40.回声消除模块,用于以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,其中消除了远端音频数据的回声信号而保留本机音频数据的回声信号;
41.环回校正模块,用于将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音音频数据;
42.直播推流模块,用于向所述直播间推送包含所述混音音频数据的直播流。
43.适应本技术的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本技术所述的网络直播音频处理方法的步骤。
44.适应本技术的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的网络直播音频处理方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
45.适应本技术的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本技术任意一种实施例中所述网络直播音频处理方法的步骤。
46.相对于现有技术,本技术的优势如下:
47.首先,本技术中在网络直播连线状态下,通过在本机采集的实时音频数据中进行回声消除,在回声消除环节将本机音频数据与远端音频数据进行解耦,回声消除过程中只选择远端音频数据作为参考信号,用于消除实时音频数据中由所述远端音频数据在本机被外放而产生的回声信号,而保留本机音频数据被播放所产生的回声信号,获得中间音频数据,由此,远端音频数据的回声信号在后续混音阶段后续不会对本地音频数据构成干扰而造成“双讲”,根据中间音频数据与本地音频数据混音而成的将推送至直播间的音频流中,不会导致本地各个音源出现掉字、卡顿或漏回声的情况。
48.其次,本技术利用本机相对应的环回延迟值将本机音频数据进行时延补偿,使其按照所述环回延迟值所指定的时延滞后与所述中间音频数据进行混音,获得混音音频数据,由于中间音频数据中仍存在所述本地音频数据相对应的回声信号,这一回声信号得以与时延补偿后的本地音频数据进行同步对齐叠加,因此,该回声信号不会造成对本地音频数据的干扰,或者至少不会产生明显干扰,实现了对本地音频数据的音质的有效保护。
49.此外,本技术可以应用于在线通话性质的应用场景中,包括但不限于网络视频直播和卡拉ok等场景,在此类场景下,基于本技术处理后获得的音频流,能够使收听者获得多种音源同步播放且声音流畅的音效,确保从听者的角度来感知,能够感知演唱者的发声与视频中的歌词和背景音乐保持同步的音效,从而改善用户体验。
附图说明
50.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
51.图1为在终端设备处理音频数据的技术架构的通用原理框图,该原理框图也适用于本技术的各个实施例中;
52.图2为现有技术中在终端设备对实时音频数据进行回声消除的过程的流程示意图,图中示意出在回声消除过程中音乐回声及观众回声均被消除;
53.图3为应用现有技术对网络直播连线状态下的语音信号进行处理后,实测获得的各种语音信号的波形图,自上而下分别为主播信号、音乐信号、采集信号、回声消除后的信号;
54.图4为本技术的网络直播音频处理方法的典型实施例的流程示意图;
55.图5为本技术的实施例中获取远端直播流与本机音频数据混音播放的过程的流程示意图;
56.图6为本技术的实施例中对实时音频数据进行回声消除的流程示意图;
57.图7为本技术的实施例中根据环回延迟值进行时延补偿的流程示意图;
58.图8为本技术的实施例中自行获取环回延迟值的过程的流程示意图;
59.图9为计算音频信号的环回延迟值的基本原理示意图,其中t1至t4表示不同时刻,采集线程负责音频数据采集,播放线程负责音频数据的转换和播放,主播指示外部输入音源,对应可采集到实时音频数据;
60.图10为本技术的实施例中通过跟踪实时音频数据中的噪声信号检出环回识别信号的过程的流程示意图;
61.图11为本技术在终端设备对实时音频数据进行回声消除的过程的流程示意图,图中示意出在回声消除过程中仅有观众回声被消除,而不消除音乐回声;
62.图12为应用环回延迟值对本机音频数据的播放音乐进行时延补偿的原理框图;
63.图13自上而下分别为相同场景下应用本技术的技术方案进行时延补偿前后的波形图;
64.图14为主播用户未与其他用户连线状态下,应用本技术的技术方案对相关语音信号进行处理后,实测获得的各种语音信号的波形图,自上而下分别为主播信号、音乐信号、改进前回声消除后的信号、改进后回声消除后的信号;
65.图15为主播用户与其他用户连线状态下,应用本技术的技术方案对相关语音信号进行处理后,实测获得的各种语音信号的波形图,自上而下分别为主播信号、观众信号、音乐信号、改进前回声消除后的信号、改进后回声消除后的信号;
66.图16为本技术的网络直播音频处理装置的典型实施例的原理框图;
67.图17为本技术所采用的一种计算机设备的结构示意图。
具体实施方式
68.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
69.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
70.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
71.本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
72.本技术所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
73.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
74.本技术的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来
实施访问。
75.本技术所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本技术的技术方案所调用即可。
76.本领域技术人员对此应当知晓:本技术的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本技术所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
77.本技术即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本技术的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
78.本技术的一种网络直播音频处理方法,既可应用于离线环境的终端设备中,也可应用于由服务器支持即时通话的场景下的终端设备中,所述场景包括但不限于各种即时通信、网络视频直播、在线客服、卡拉ok等示例性应用场景,作为一项音频处理的基础技术,有着广泛的应用范围。该方法可被编程实现为计算机程序产品,部署于终端设备中运行而实施。
79.请参阅图4,并参考图1,在本技术的网络直播音频处理方法的典型实施例中,其包括如下步骤:
80.步骤s1100、获取直播间连线状态中的远端音频数据,将其与本机音频数据混音为外放音频数据后播放:
81.在网络视频直播的直播间中,多个用户之间可以启动两人或多人连线,所述的用户,可以均为主播用户,即两个直播间实例的所有者用户,也可以是一个直播间实例的主播用户建立与其直播间内观众用户之间的连线,以其中一个主播用户在其直播间中与其他主播用户和/或观众用户启动多人连线以进入多人连线状态为例,对于所述的主播用户而言,通过其与其他相对用户之间建立的数据通信链路,既要向服务器拉取对方的直播流至本地终端设备进行播放,同时还要将自身的直播流经服务器推送至各个相对方,通常也同步推送至直播间内其他观众用户的终端设备处进行播放。因此,对于该主播用户而言,任何经由所述数据通信链路获取的,经服务器推流获得的其他用户的直播流,均为远程直播流,而其自身推送的直播流,则为近端直播流。
82.所述的直播流中,通常包括视频流和音频流,两路流媒体可以在终端设备处被分离提取而分别进行解码输出。相应的,远端直播流中提取出来的音频数据,即构成远端音频数据,而本地产生近端直播流中的音频数据,即为近端音频数据。
83.所述的远端音频数据,相对较为单纯,是远端用户在其本地终端设备中采集的实时音频数据,经处理混音后生成的,当其到达主播用户的本地终端设备时,可被视为单个音源。当存在多人连线时,理论上存在多个远端音源,但实际上在本技术中后续进行回声消除处理时,多个远端连线用户也可以被视为一个汇总的远端音源进行集中消除回声,此处暂且不表。
84.所述的近端音频数据,对于主播用户的终端设备而言,是对多个音源所产生的音频数据进行混音生成的。例如,当本地终端设备正在播放背景音乐时,则构成本机播放音
源,所述背景音乐可以是本地音乐文本,也可以是从远程媒体服务器拉流而得的音频数据,总之,对于本地终端设备而言,将产生与所述本机播放音源相对应的音频数据,即本机音频数据。除此之外,如果本地终端设备的麦克风之类的输入设备正处于工作状态,则本地终端设备的声卡将采集外部输入的语音信号而产生相应的音频数据,即为本地终端设备持续采集获得的实时音频数据。因此可见,在主播用户播放音乐并且开启语音输入设备时,本地终端设备至于能获得两个音源相对应的音频数据。如果此时正处于与远端用户连线的状态下,则远端用户也可至少被视为一个远端音源看待。
85.本地终端设备对不同的音源进行不同的处理,参阅图1,本地终端设备通过启用两个线程,即播放线程和采集线程,分别负责处理声音信号的输出和采集。
86.在所述的播放线程中,本地终端设备回调本机播放音源的音频数据与远端音频数据进行混音后,获得外放音频数据,将该外放音频数据转换为语音信号后输出。可以理解,各音源均并存的情况下,所播放的声音中,至少会包含本机播放音源的音频数据相对应的背景声音、远端音源的远端音频数据相对应的声音。关于将混频生成的音频数据转换为语音信号进行输出的过程,为本领域技术人员所知晓的技术范畴,故从略。
87.在所述的采集线程中,本地终端设备持续从声卡获得其采集的由外部语音信号转换而得的实时音频数据,在所述外放音频数据被通过音箱之类的扬声器进行播放的情况下,该实时音频数据理论上可能封装所述语音信号所包含的多种信号,包括说话人声信号、本地音频数据被播放后环回的回声信号、远端音频数据被播放后环回的回声信号等。按照传统的实践,所述实时音频数据将被实施回声消除处理,经回声消除后再与本机音频数据进行混音,获得混音音频数据后作为近端音频流包含于直播流中推送给各个远端用户,在直播间的示例性应用场景中,此处所称的远端用户既包括与当前主播用户处于连线状态的连线用户,也包括其他直播间中的其他观众用户,另有设置除外。
88.本技术揭示的以上过程,主要是以直播间的主播用户一侧来加以示例性说明,可以理解,对于连线状态的其他远端用户而言,也可以一样适应,双方可以是对称设置而均应用本技术各个实施例的技术方案的。对此,本领域技术人员应当理解。
89.步骤s1200、以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,其中消除了远端音频数据的回声信号而保留本机音频数据的回声信号:
90.本技术在图1所示的采集线程的过程的回声消除环节中,对所述实时音频数据进行区别于现有技术的处理。主要表现为,在本技术中,应用自适应滤波算法,仅以所述远端音频数据为参考信号,对所述实时音频数据进行回声消除处理,使得所述实时音频数据中被相应滤除所述远端音频数据在本地终端设备外放后环回产生的回声信号,但由于未参考本地音频数据而保留本地音频数据被播放环回产生的回声信号。
91.回声消除通过采用所述的自适应滤波算法来实现,其基本原理是使用一个自适应滤波器对未知的回声信道进行参数辨识,根据扬声器信号与产生的多路回声的相关性为基础,建立造成回声的音频数据的音频信号模型,模拟回声路径,通过自适应算法调整,使其冲击响应和真实回声路径相逼近,然后通过所述实时音频数据将麦克风接收到的语音信号减去估计值,即可实现回声消除功能。由此可见,在建立所述的音频信号的模型以模拟回声路径时,据以参考的参考信号将对回声消除的相关性起决定性影响。具体而言,如果实时音
频数据中存在多个回声信号,对这些回声信号的消除,依赖于所提供的参考信号。本技术中,以所述远端音频数据为所述的参考信号,则最终消除的将是该远端音频数据造成的回声信号。根据这一原理,可以调整现有的几乎所有自适应滤波算法来实现从所述实时音频数据中消除远端音频数据的回声信号。
92.所述的自适应滤波算法,可以采用现有技术中各种已知的算法,只需控制将相应的参考信号约束为远端音频数据的语音信号即可:
93.此处顺便提及,2007年,valin,jean marc针对双讲优化提出“关于双话频域回波抵消中学习速率的调整”的方案:
94.valin,jean marc."on adjusting the learning rate in frequency domain echo cancellation with double-talk."ieee transactions on audio speech&language processing 15.3(2007):1030-1034。
95.在上面的解决方案中,valin使用了动态计算学习因子来应对双讲。具体实现为,当发生双讲时,估计的回声信号和自适应滤波后的误差信号相关性很小,致使自适应学习因子很小,自适应滤波系数更新缓慢。采用这种办法,避免了双讲情况下滤波器系数发散,并且在自适应滤波系数已经收敛好的情况下能够较好地消除回声,但是在滤波器系数并未收敛好的情况下并不理想,比如本技术提到的直播场景中,本地播放伴奏产生本机播放音源相对应的语音信号、主播唱歌产生说话人声语音信号的情况下,便会一直双讲,导致滤波器系数在未收敛好的情况下更新缓慢,因此会出现掉字、卡顿、漏回声等情况。
96.经应用本技术的技术方案而以所述的远端音频数据作为参考信号后,在相同场景下,滤波器系统快速收敛,双讲情况大幅改善,不再出现掉字、卡顿、漏回声等情况。
97.至于所述的远端音频数据,在某些实施例中,当存在多个连线用户相对应的多个远端音频数据时,可将所有远端音频数据视同一个远端音频数据进行处理即可。
98.经过本步骤的回声消除处理之后,获得中间音频数据,该中间音频数据中仍残留本地音频数据被播放后产生的回声信号,是本技术技术方案故意为之,其将被保留至采集线程的混音环节中与经时延处理后的本地音频数据进行叠加,以实现对本地音频数据的语音信号的音质保护。
99.步骤s1300、将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音音频数据:
100.参阅图1,在本步骤中,可以利用预先获得的本机终端设备的环回延迟值来对所述的本机音频数据进行时延补偿,使本机音频数据在时域上按照所述环回延迟值与所述中间音频数据进行混音,由此使本地音频数据所封装的语音信号与中间音频数据所封装的回声信号实现时域上的同步对齐,从而尽量避免本机音频数据的回声信号造成对本机音频数据本身的不良干扰,实现对本地音频数据的语音信号的音质的保护。经混音之后,即可获得混音音频数据,其中封装了本机音频数据相对应的语音信号、说话人声的语音信号(如有)以及所述本机音频数据播放后产生的回声信号,但三者均已经实现了时域上的对齐。
101.所述的环回延迟值,可以是事先为本机终端设备计算好的固有数据,直接调用即可,也可以是本技术自行计算的环回延迟值。对于后者,本技术后续的实施例中将给出相应的实施方式,以进一步丰富本技术的创造性。
102.步骤s1400、向所述直播间推送包含所述混音音频数据的直播流:
103.当所述混音音频数据生成后,便可依据直播间在终端的处理逻辑,将所述混音音频数据作为所述直播流中的音频流,将其推送给处于连线状态的所述连线用户,以及直播间中的观众用户。相应的用户接收到该直播流后,提取出其中的音频流进行播放,便能感知到各路音源在时域上是同步的。
104.进一步示例性的应用场景中,在网络直播间中,主播用户所在的终端设备正在播放歌曲,包含伴奏的背景音乐,播放所述背景音乐时,在其视频流中也显示相应的歌词,而网络视频直播间的主播用户正拿着麦克风专注歌词引吭高歌,所述背景音乐相对应的音频数据,即为本机音频数据,既在本地进行外放,也被传输至支持直播间运行的服务器中,推送给直播间的连线用户及观众用户收听。过程中由于所述连线用户偶尔说话,产生相应的远端音频数据,也被与本机音频数据混音成外放音频数据进行播放。
105.其中,推送至直播间的直播流中包含本地终端设备的采集线程所产生的混音音频数据,作为直播流中的音频流进行传输。由于所述混音音频数据已经去除了远端音频数据相对应的回声信号,且利用本机音频数据所造成的回声信号保护了经时延补偿的本机音频数据中的语音信号,因此,所述直播流的音频流克服了“双讲”所存在的问题,当其被远端用户播放时,各路音源相对应的语音信号均实现同步,在对着歌词演唱的情况下,主播用户演唱时的声音与视频流中的歌词字幕也能保持同步,并且,即使其他连线用户说话导致产生所述的远端音频数据,也不会导致本地终端设备所推送的音频流被播放后产生掉字、卡顿、漏回声等情形。
106.根据本典型实施例变通实施的可选实施例中,在终端设备的应用程序中可以提供一个由主播用户设置的回声消除功能开关,用户可以通过设置该开关来决定是否应用本技术的技术方案启动“双讲”优化,因此,在本技术的技术方案启动时,检测本机登录的直播间用户的回声消除功能开关的状态,当其为激活状态时,则执行本技术的后续步骤,否则不予执行后续步骤。
107.通过本典型实施例的原理揭示,可以理解,本技术的技术方案能取得远优于现有技术的积极效果,包括但不限于如下几个方面:
108.首先,本技术中在网络直播连线状态下,通过在本机采集的实时音频数据中进行回声消除,在回声消除环节将本机音频数据与远端音频数据进行解耦,回声消除过程中只选择远端音频数据作为参考信号,用于消除实时音频数据中由所述远端音频数据在本机被外放而产生的回声信号,而保留本机音频数据被播放所产生的回声信号,获得中间音频数据,由此,远端音频数据的回声信号在后续混音阶段后续不会对本地音频数据构成干扰而造成“双讲”,根据中间音频数据与本地音频数据混音而成的将推送至直播间的音频流中,不会导致本地各个音源出现掉字、卡顿或漏回声的情况。
109.其次,本技术利用本机相对应的环回延迟值将本机音频数据进行时延补偿,使其按照所述环回延迟值所指定的时延滞后与所述中间音频数据进行混音,获得混音音频数据,由于中间音频数据中仍存在所述本地音频数据相对应的回声信号,这一回声信号得以与时延补偿后的本地音频数据进行同步对齐叠加,因此,该回声信号不会造成对本地音频数据的干扰,或者至少不会产生明显干扰,实现了对本地音频数据的音质的有效保护。
110.此外,本技术可以应用于在线通话性质的应用场景中,包括但不限于网络视频直播和卡拉ok等场景,在此类场景下,基于本技术处理后获得的音频流,能够使收听者获得多
种音源同步播放且声音流畅的音效,确保从听者的角度来感知,能够感知演唱者的发声与视频中的歌词和背景音乐保持同步的音效,从而改善用户体验。
111.请参阅图5,深化的实施例中,所述步骤s1100、获取直播间连线状态中的远端音频数据,将其与本机音频数据混音后播放,包括如下步骤:
112.步骤s1110、获取直播间连线状态中由服务器推送的远端直播流:
113.在本技术的一个网络视频直播的应用场景中,主播用户与其他用户启动连线,进入连线状态,在支持直播间运行的服务器的支持下,双方均可获取对方的直播流,同时也均可向对方传送自身产生的直播流。
114.步骤s1120、从所述远端直播流中提取出其中的远端音频数据:
115.对于本地终端设备而言,需要对所述直播流进行解析和输出,因此,可先行对所述的远程直播流进行解析,获得其中的视频流和音频流,对应进行输出,可以理解,在直播流中,视频流和音频流也是实现时域上的对齐的。
116.所述的音频流即封装了远端用户产生的远端音频数据,该远端音频数据同理也可通过在远端用户的终端设备中应用本技术的技术方案而生成。
117.步骤s1130、将所述远端音频数据与本机音频数据混音获得外放音频数据:
118.结合图1的播放线程的工作流程可以加深理解,所述的远端音频数据被与本地终端设备正在播放的背景音乐相对应的本机音频数据进行混音,从而获得相应的外放音频数据。
119.步骤s1140、根据所述外放音频数据转换出语音信号进行播放:
120.最后,根据传统的音频播放技术,将所述外放音频数据转换为语音信号,然后通过扬声器进行播放即可。
121.本实施例通过网络视频直播场景的揭示,进一步彰显本技术所获得的各种有益效果,可以理解,在这样的网络视频直播场景中,通信各方所造成的“双讲”概率更高,经应用本技术的技术方案后,消除“双讲”所造成的不利因素,使各方通信的语音质量进一步提升,有效确保多方通话的通话质量,有助于改善用户体验。
122.请参阅图6,深化的实施例中,所述步骤s1200、以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,包括如下步骤:
123.步骤s1210、从本机声卡持续采集实时输入语音信号而获得实时音频数据:
124.对外部输入音源的语音信号的采集,一般通过本地终端设备自身的声卡来实现,通过声卡持续采集所述的语音信号,将其进行数模转换,形成相应的语音帧,组装成相应的音频数据,对此,本领域技术人员均应知晓。
125.步骤s1220、应用预设的自适应回声滤波算法,以所述远端音频数据为参考信号,对所述实时音频数据实施回声消除处理,以消除其中与远端音频数据相对应的回声信号:
126.请参阅本技术的典型实施例的介绍,此处通过应用预设的自适应回声滤波算法,例如aec或其他神经网络模型所实现的算法,其中引用远端直播流中的远端音频数据作为回声消除的参考信号,实现对所述实时音频数据实施回声消除处理,仅消除其中由远端音频数据在本地播放后所产生的回声信号。当存在多路远端直播流时,可以将所有远端直播流的所有远端音频信号视为同一路远端音频信号进行回声处理即可。
127.在进行编程实现时,采用统一的算法实现即可。由于运用了自适应机制,因此,当
不存在所述的远端音频数据时,算法中的参考信号为0,因此不会存在消除远端音频数据的回声的问题,由此更为体现自适应的优势。
128.步骤s1230、保留所述实时音频数据中与所述本机音频数据相对应的回声信号,作为所述中间音频数据:
129.经回声消除处理之后,获得的中间音频数据中,所述实时音频数据中与所述本机音频数据相对应的回声信号依然被保留在中间音频数据中,因此,消除了“双讲”的隐患,而该回声信号依然可被用于保护本地音频数据的音质。
130.本实施例中,通过深化介绍回声消除过程,彰显了本技术应用自适应滤波算法的弹性,无论当前终端设备是否处于连线状态,在自适应机制的作用下,均可确保本地终端设备所推送的音频流能够获得较优的音质。
131.请参阅图7,具体化的实施例中,所述步骤s1300、将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音音频数据,包括如下步骤:
132.步骤s1310、获取本机设备相对应的环回延迟值:
133.一部终端设备的环回延迟值,通常是由该终端设备的硬件决定的,硬件造成的环回延迟占了较大的比例,因此,可以事先计算好一台终端设备的环回延迟值,在本步骤中对其直接调用即可。
134.步骤s1320、控制所述本地音频数据按照所述环回延迟值滞后与所述中间音频数据相混音,获得混音音频数据:
135.请参阅图1所示,本地音频数据在时域上被按照所述环回延迟值进行滞后处理,然后与经回声消除处理后获得的所述中间音频数据进行相混音,由此便可获得所述的混音音频数据。
136.本实施例进一步揭示了所述环回延迟值的叠加过程,细化了相应的实施方案,方便指导本领域技术人员具体实施。
137.请参阅图8,进一步的实施例中,所述步骤s1310、获取本机设备相对应的环回延迟值,包括如下步骤:
138.步骤s2100、在第一时刻向所述外放音频数据预置环回识别信号,所述环回识别信号为人耳听力频带外的高频信号,包括多个单频信号,各单频信号在频域上等间隔设置:
139.为了检测本技术的本机音频数据被终端设备外放之后环回所产生的延迟值,即所述的环回延迟值,本技术在播放线程的业务逻辑中,为所述本机音频数据预置一个环回识别信号,后续通过采集线程在实时音频数据中检测这一环回识别信号被播放形成的回声信号所经过的时长,便可将这一时长确定为所述的环回延迟值,作为采集侧校正音频数据以实现多路音源的音频数据对齐之用。
140.由于环回延迟值主要取决于终端设备的硬件性能,同一终端设备其环回延迟值相对固定,因此,获得所述环回延迟值之后,可以将其保存至终端设备本地,后续可直接调用。
141.所述的环回识别信号,由本技术自定义,被构造为具有一定的规律性和独特性的信号,使其便于与所述本机音频数据相对应的信号内容相区别即可。本技术中,该环回识别信号被限定为人耳听力范围相对应的频带的带外高频信号。人耳能接收的频率在20hz-20000hz之间,个别因人而异,带外信号对人耳而言,无法知觉。因此,在本技术中选用人耳听力频带外的高频信号作为环回识别信号,充分考虑到音质控制的需求,不会破坏各路音
源的语音信息内容,也不会对用户造成困扰。
142.本技术较佳的实施例中,所述环回识别信号被配置为包括多个单频信号,并且各个单频信号在频域上等间隔设置,例如,相邻两个单频信号可以间隔一个、两个或三个采样分辨率单位。采用此种方式,相对容易检测,相应的检测算法运算效率高效,占时极少。
143.变通实施的实施例中,所述环回识别信号的各个单频信号也可以按照等比间隔设置,所述环回识别信号同理还可以有其他形式的构造,只要后续在采集侧的业务逻辑中运用相应的算法将其检出即可。
144.以下给出适用于本技术中用于构造所述环回识别信号的一个更为具体且可选的变通实施例:
145.首先,构造所述的环回识别信号:
146.本实施例中,所述环回识别信号为高频处的多个单频信号,例如三个单频信号,各单频信号的频点均在人耳可感知的听力频带之外,如下所示:
[0147][0148]
式中f0,f1,f2为环回识别信号的三个单频信号相对应的频率,其中:
[0149]
f1=f0 2δf
[0150]
f2=f0 4δf
[0151]
δf为频率分辨率,即当前音频采样率ts,dft(离散傅里叶变换)点数为n的情况下α0为环回识别信息的幅度,以16bit量化的音频为例,α0参考取值为8192。单频信号持续时间一般为200ms。
[0152]
一个较佳的实施例中,考虑到音频环回路径的存在,为了采集侧检测时能够更好地检测所添加的单频信号,在播放侧添加环回识别信号前可添加一段时间例如2秒的静音信号ref_silence(t)以便滞后启动采集侧的检测。至此,播放侧业务逻辑中,环回识别信号可表示为:
[0153][0154]
假设终端设备待播放的本机播放音源的音频数据为render(t),将render(t)和环回识别信号ref0(t)进行混音播放,便完成了实时播放时添加环回识别信号的作业,对应的,此时的时刻被标记为第一时刻。
[0155]
步骤s2200、检测所述实时音频数据中是否存在所述环回识别信号,在检出该环回识别信号时确定出第二时刻:
[0156]
由于本技术所构造的环回识别信号更具特点,更易被检测,从而能够高效而准确地确定所述的环回延迟值,因此,采集线程所获得的混音音频数据被转换为语音信号进行播放后,在听觉上,能够明显感知不同音源之间的同步性和协调性,音质较好。
[0157]
本实施例中,为了检测所述环回识别信号,对于本机音频数据的播放,适宜以外放的形式进行,以便通过采集线程采集实时音频数据后,从实时音频数据内的本机音频数据的回声信号中获取所述的环回识别信号。当然,如前所述,一旦确定所述环回延迟值并予以
保存之后,后续直接调用即可,可不必另行计算。
[0158]
扩展的一个实施例中,为了提升检测环回识别信号的成功率,可预先对本技术的实施环境进行检测,具体而言,可以按照如下步骤执行:
[0159]
1)检测终端设备是否同时处于音频数据采集状态和外放状态,所述外放状态即指本地终端设备启动了音箱之类能够便于获取回声信号的扬声器而非通过耳机之类的设备进行扬声;
[0160]
2)检测终端设备所实施的采样活动是否以预设的采样率进行,例如预设为44.1khz或48khz的采样率;
[0161]
3)检测终端设备是否存在所述本机音频数据相对应的音频环回路径,若存在音频环回路径,便可据此进行环回识别信号的预置以及进行环回识别信号的检测。
[0162]
通过以上的前置检测,确认相应的条件均得到满足时,即终端设备同时处于采集状态和外放状态,并以预设的采样率进行采样,且正通过外放形成音频环回路径,在这种情况下,便可实施本技术的检测环回识别信号的过程。
[0163]
在所述环回识别信号随本机音频数据被外放线程播放后,采集线程便开始实时检测所述环回识别信号。可以理解,对所述环回识别信号的检测,需要对应该环回识别信号所具有的特征设计对应的算法进行相应的处理,尽管这些对应算法的具体实现本身也可以有多种,以便准确辨识环回识别信号的特征而判定出存在环回识别信号的事实。
[0164]
当借助这些对应算法检出所述的环回识别信号之后,便可确定检出之时的时间,将其标记为第二时刻。
[0165]
步骤s2300、根据所述第一时刻和第二时刻的差值确定所述环回延迟值:
[0166]
请参阅9可知,主播的说话人声在t2时刻发出而在t3时刻被采集,由于预置环回识别信号的第一时刻(t1)是播放侧向待输出的本机音频数据中添加环回识别信号的时间(t1),而第二时刻(t3)是采集侧检出所述环回识别信号的时间,至于采集实时音频数据的时间(t3)与采集线程进行混音的时间(t4)的间隔极其细小,故可忽略。因此,第二时刻t3与第一时刻t1的差值便是所述环回识别信号走完音频环回路径的实际时间,因此,将第二时刻与第一时刻的差值确定为所述的环回延迟值即可。
[0167]
步骤s2400、存储所述环回延迟值以供后续直接调用:
[0168]
获得所述的环回延迟值后,将其存储到本地终端设备中,以供后续调用。
[0169]
本实施例中,示例性地深化揭示了环回识别信号的构造方式及其多种变通实施方式,通过构造一个由在频域上等间隔排列的多个单频信号来定义出所述的环回识别信号,使环回识别信号呈现出较为个性化的特征,更易于被识别。该环回识别信号由于在人耳可感知频带之外,因此不会对音源自身的声音构造人耳可感知的干扰。并且,该环回识别信号也充分考虑到音频环回所需,而先于所述环回识别信号预置静音信号,使单频信号的出现滞后于静音信号,确保采集侧能够有充足的时间等待环回识别信号的出现,进一步提升检测环回识别信号的成功率,以便高效确定所述的环回延迟值,指导采集线程将本机音频数据与其回声信号实现对齐混音,确保对本机音频数据的音质保护。
[0170]
请参阅图10,深化的实施例中,所述步骤s2200、检测所述实时音频数据中是否存在所述环回识别信号,包括如下步骤:
[0171]
步骤s2210、沿时域跟踪所述实时音频数据的噪声信号,将所述噪声信号变换至频
域,获得相应的噪声能量谱数据:
[0172]
如前所述,所述环回识别信号被构造为高频信号,易被高频信号干扰,因此,为了防止高频噪声对检测所述环回识别信号带来的不良影响,需要在采集侧实现对所述的实时音频数据中的噪声信号的跟踪。本领域技术人员可以借助多种常见的算法来实现噪声信号的跟踪,本技术中,推荐使用mcra系列的算法,尤其是imcra算法,进行频点噪声跟踪,imcra算法是在时域上跟踪频点最小值的算法,为本领域技术人员所知晓。
[0173]
为了便于对噪声信号的能量进行引用,以供参考,需要将实时音频数据中的噪声信号变换至频域,并获得相应的噪声能量谱数据。计算频域能量较为常见的算法是使用fft(傅里叶变换)算法,fft算法会计算出整个频域频点的能量值,因此,本实施例可以应用fft算法来转换出噪声信号相对应的噪声能量谱数据。
[0174]
在本实施例基础上优化的实施例中,考虑到所述环回识别信号在前文的实施例中是灵活自定义的,仅包括若干个单频信号,因而只需计算播放侧添加的若干个频点相对应的能量值即可,例如前述实施例中揭示的3个频点相对应的能量值,在这种情况下,使用fft会占据很大的算法复杂度,fft复杂度为0(niogn)。故此,优化的实施例中,推荐使用goertzel算法(格兹尔算法)计算频域能量,其算法复杂度为0(n),大幅缩减了算法复杂度,其估计的频点噪声表示为:λ(fi),i=0,1,2。
[0175]
根据此处的揭示可以理解,本领域技术人员可以借助多种方式将噪声信号从时域变换至频域,以获取相应的噪声能量谱数据。
[0176]
步骤s2220、根据实时音频数据的语音帧相映射的语音能量谱数据,定位其中各个频点的峰值位置:
[0177]
相应的,所述实时音频数据中各个语音帧也被利用傅里叶变换算法,从时域变换到频域,获得语音能量谱数据,以便确定其相应的能量值。在此基础上,根据噪声能量谱数据和语音能量谱数据,便可检测出所述的环回识别信号。
[0178]
适应前述的示例性构造的环回识别信号,当播放侧添加了ref_s0(t)信号时,采集侧开始进行检测。针对实时音频数据中的语音帧所映射的语音能量谱数据,采集侧首先判断当前频点是否为峰值,表示为p
peak(i)

[0179][0180]
其中e(fi)是通过goertzel算法计算出的当前频点的能量值,由于添加的环回识别信号是间隔一个δf,所以当前检测频率的能量应该是上下频点的峰值。
[0181]
步骤s2230、根据各个频点相对应的语音能量与噪声能量计算每个语音帧中所述环回识别信号的存在概率:
[0182]
根据每个频点能量与背景噪声能量去计算环回识别信号存在概率p
f(i)
,使用下式:
[0183]
[0184]
其中e
max
表示当前帧存在环回识别信号的能量阈值,即当环回识别信号的能量值超过预设的能量阈值时,判定对应的语音帧高度盖然性地存在所述的环回识别信号,所述能量阈值一般取e
max
(fi)=1.8*e(fi),根据实际情况,可适当灵活调节。loge(fi)-logλ(fi)可以理解为当前频点的信噪比。
[0185]
一帧信号满足p
peak(i)
=1时,才有可能是环回识别信号,因此联合上述两个特征,可以求得当前帧的环回识别信号存在概率:
[0186][0187]
其中w为权值,要求一般取w
f(i)
=1/3,i=0,1,2。特别地,若某些设备在高频处采集信号弱,可适当调节该频率处权值。
[0188]
步骤s2240、在多个连续语音帧的存在概率满足预设条件时判定检测出所述环回识别信号:
[0189]
示例性的实施例中,播放侧添加环回识别信号是在时域上维持200ms,因此在采集侧检测时引入了时域因素,定义帧间概率保持ipp(interframe probability persistence)如下式:
[0190][0191]
式中t为帧间概率保持的帧数,一般取当t=3,ipp=1t=6,ipp=0.8认为确定检测到环回识别信号。此时用第一次检测到环回识别信号的时间,即第二时刻,和第一次添加ref_s0(t)的时间,即第一时刻,该两个时刻的时间间隔则为音频环回延迟。
[0192]
一般而言,当检测到环回识别信号时,播放侧便不再添加环回识别信号,在实测理想的情况下,播放侧需要添加3帧环回识别信号。通过上述示例性算法检测信号,实测检测误差在20ms之内。
[0193]
本实施例显示,启动对所述环回识别信号的检测的过程中,根据噪声能量和语音能量进行所述环回识别信号的检测,其中,借助概率估算的方式,检测多个单频信号,并且考虑到帧间保持的因此,而确保通过多个语音帧检测到所述的环回识别信号,给出的算法简便易实现,运算效率高,可以将检测误差控制在20ms以内,非常精准。
[0194]
进一步扩展的实施例中,当进行所述的环回识别信号的检测达到预设多次且均以失败告终时,可以执行如下步骤:响应检测所述环回识别信号失败的事件,重新构造环回识别信号并启动二次检测,重新构造的环回识别信号为人耳听力频带外的高频信号,其频率低于在先构造的环回识别信号的频率。
[0195]
之所以将重新构造的环回识别信号的频率控制在前一环回识别信号的频点之下,主要是考虑到硬件原因:当前终端设备采集高频信号的能量偏弱。基于这一原因,便需要适当调节所述环回识别信号中的频率,甚至调节其幅度,以期能被采集侧的业务逻辑检出。
[0196]
作为示例,重新构造的环回识别信号可以按照如下公式表示为:
[0197][0198]
其中:
[0199][0200]
一般来说,α1>α0,f
1i
<fi。实际中,一般取α1=10922,f
1i
的频率在19khz左右。
[0201]
重构出新的环回识别信号之后,便可按照前述相关实施例所揭示的过程,重新执行检测程序,以期通过改变环回识别环回识别信号而成功检测新的环回识别信号,从而可以顺利确定所述的环回延迟值。
[0202]
为更充分揭示本技术的技术方案的优势,继续给出本技术技术方案的有益效果的相关说明:
[0203]
一、利用本技术给出的环回延迟值计算方案所取得的实验数据:
[0204]
实际应用场景中,本技术通过实时计算音频环回延迟,无需用户额外操作,保证了远程卡拉0k和直播唱歌场景中人声和伴奏对齐的问题,提升了网络直播过程中的用户体验。通过本技术的技术方案实时计算出音频环回延迟值后,可以使得人声和伴奏能够更严格地实现对齐,领先于同类其他产品体验。下表是在4台移动端设备上实施本技术的技术方案计算的5次音频环回延迟值和人工测量结果的对比:
[0205][0206]
表中,android机型0p**r*n*3和v***xpi*6均在媒体音下以java api进行采集播放测试。从表中能看出,本技术检测误差控制在20ms之内。
[0207]
二、应用本技术的回声消除技术取得的优势说明:
[0208]
在本技术给出的相关应用场景中,主播用户最终需推流的信号为主播用户本人的声音和通过时延补偿后的本地播放音乐,因此,本技术将主播声音和音乐声音的处理进行解耦,分别处理,以保证两种声音质量最佳,表现为:
[0209]
1)保护主播声音:
[0210]
主播声音如果与播放音乐形成双讲,导致声音质量不佳。为了消除双讲场景的频繁发生,本技术中回声消除中的参考信号不再包含本地播放的音乐声,即所述的本机音频数据,此时只有当连线用户和主播用户同时讲话时才会发生双讲,保证了自适应滤波器的收敛。采集线程处理优化处理过程参阅图11所示。
[0211]
结合图11,分场景而言,当主播用户推送直播流,且同时在本地终端设备中播放背景音乐,且并未与任意用户连线时,此时其播放信号只有音乐信号,对于这种场景,本技术中回声消除参考信号为0,相当于回声消除不工作,主播声音未损失;当主播用户推送直播流,播放背景音乐,与其他用户连线时,此时播放信号包含音乐信号和连线用户的声音,即
远端音频数据,由于本技术获得所述远端音频数据并进行回声消除时,只参考远端音频数据的语音信号,而语音连线场景下本身“双讲”发生概率较低,因此,可以保证主播声音相较于原方案质量更佳。
[0212]
2)保护音乐信号:
[0213]
通过上述方案后,回声消除后的中间音频数据中的语音信号包含主播声音和音乐回声,音乐回声由于经过空间的反射相较于原信号会存在失真,将音乐回声与播放的音乐信号(本机音频数据)进行混音可以弥补这种失真。处理流程如图12所示。
[0214]
结合图12,由于终端设备播放音乐和采集到该音乐存在音频环回延迟,如果时延补偿误差大于50ms,混音后观众端便会听到2路音乐声,严重影响听感。在非连线状态中,由于混音时是主播声音与音乐声音混合,对时延补偿的误差要求不敏感。在连线状态中,时延补偿要求误差小于50ms。请参阅图13,应用本技术经时延补偿的技术方案后,补偿后混音的音乐信号相较于原始音乐信号差异较小,能保证推流的音乐质量。
[0215]
三、与现有技术对比的实验数据的说明:
[0216]
当主播端发布直播,播放音乐,未与其他用户连线时,主播声音处理前后对比效果如图14所示。图14中自上而下为主播信号、音乐信号、未采用本技术技术方案的改进前回声消除后的信号、应用了本技术技术方案的改进后回声消除后的信号。通过比较可知,改进前主播信号经过回声消除后会出现明显的掉字,改进后的语音信号和原始主播信号保持一致,保证了处理过程中没有语音损失。
[0217]
当主播端发布直播,播放音乐,与其他用户进行连线时,主播声音处理前后对比效果如图15所示。图15中自上而下为主播信号、观众信号、音乐信号、未采用本技术技术方案的改进前回声消除后的信号、应用了本技术技术方案的改进后回声消除后的信号。此时改进前回声消除参考信号为音乐信号和观众信号回声的叠加,从该图能看出,改进前回声消除信号在6s处出现了掉字,损失音频;在8s处出现了明显的漏回声,而改进后的回声消除信号质量明显优于改进前。
[0218]
请参阅图16,本技术提供的一种网络直播音频处理装置,适应本技术的网络直播音频处理方法进行功能化部署,包括:拉流播放模块1100、回声消除模块1200、环回校正模块1300,以及直播推流模块1400,其中,所述拉流播放模块1100,用于获取直播间连线状态中的远端音频数据,将其与本机音频数据混音为外放音频数据后播放;所述回声消除模块1200,用于以所述远端音频数据为参考信号对本机采集的实时音频数据进行回声消除,获得中间音频数据,其中消除了远端音频数据的回声信号而保留本机音频数据的回声信号;所述环回校正模块1300,用于将所述本机音频数据叠加本机环回延迟值后与所述中间音频数据混音,获得混音音频数据;所述直播推流模块1400,用于向所述直播间推送包含所述混音音频数据的直播流。
[0219]
深化的实施例中,所述拉流播放模块1100包括:连线拉流子模块,用于获取直播间连线状态中由服务器推送的远端直播流;音频提取子模块,用于从所述远端直播流中提取出其中的远端音频数据;多源混音子模块,用于将所述远端音频数据与本机音频数据混音获得外放音频数据;播放输出子模块,用于根据所述外放音频数据转换出语音信号进行播放。
[0220]
深化的实施例中,所述回声消除模块1200包括:实时采集子模块,用于从本机声卡
持续采集实时输入语音信号而获得实时音频数据;回声滤波子模块,用于应用预设的自适应回声滤波算法,以所述远端音频数据为参考信号,对所述实时音频数据实施回声消除处理,以消除其中与远端音频数据相对应的回声信号;中间获取子模块,用于保留所述实时音频数据中与所述本机音频数据相对应的回声信号,作为所述中间音频数据。
[0221]
具体化的实施例中,所述环回校正模块1300包括:延迟计算子模块,用于获取本机设备相对应的环回延迟值;时延补偿子模块,用于控制所述本地音频数据按照所述环回延迟值滞后与所述中间音频数据相混音,获得混音音频数据。
[0222]
进一步的实施例中,所述延迟计算子模块包括:环回预置单元,用于在第一时刻向所述外放音频数据预置环回识别信号,所述环回识别信号为人耳听力频带外的高频信号,包括多个单频信号,各单频信号在频域上等间隔设置;环回检测单元,用于检测所述实时音频数据中是否存在所述环回识别信号,在检出该环回识别信号时确定出第二时刻;环回计算单元,用于根据所述第一时刻和第二时刻的差值确定所述环回延迟值;环回存储单元,用于存储所述环回延迟值以供后续直接调用。
[0223]
深化的实施例中,所述环回检测单元包括:噪声跟踪子单元,用于沿时域跟踪所述实时音频数据的噪声信号,将所述噪声信号变换至频域,获得相应的噪声能量谱数据;峰值定位子单元,用于根据实时音频数据的语音帧相映射的语音能量谱数据,定位其中各个频点的峰值位置;概率估计子单元,用于根据各个频点相对应的语音能量与噪声能量计算每个语音帧中所述环回识别信号的存在概率;信号检出子单元,用于在多个连续语音帧的存在概率满足预设条件时判定检测出所述环回识别信号。
[0224]
扩展的实施例中,前置于所述回声消除模块1200的运行包括:状态检测模块,用于检测本机登录的直播间用户的回声消除功能开关,当其为激活状态时,驱动所述回声消除模块1200工作,否则终止所述回声消除模块1200工作。
[0225]
为解决上述技术问题,本技术实施例还提供计算机设备。如图17所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种网络直播音频处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本技术的网络直播音频处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图17中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0226]
本实施方式中处理器用于执行图16中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本技术的网络直播音频处理装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
[0227]
本技术还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或
多个处理器执行时,使得一个或多个处理器执行本技术任一实施例的网络直播音频处理方法的步骤。
[0228]
本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本技术任一实施例所述网络直播音频处理方法的步骤。
[0229]
本领域普通技术人员可以理解实现本技术上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等计算机可读存储介质,或随机存储记忆体(random access memory,ram)等。
[0230]
综上所述,本技术在网络连线状态下将播放音乐与观众声音解耦,回声消除中的参考信号只选择观众声音,进而避免了频繁出现双讲的情形,对于音乐回声则将本地音乐时延补偿后进行混音保护音乐质量,因此改善了网络连接状态下的语音播放效果。
[0231]
本技术领域技术人员可以理解,本技术中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本技术中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本技术中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0232]
以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献