1.本技术涉及数据处理技术领域,尤其涉及一种回声延迟确定方法、装置、设备及存储介质。
背景技术:2.回声目前比较常见于实时通信(real
‑
time communication,rtc)场景中。图1为rtc场景中回声的产生原理示意图;如图1所示,用户a与用户b进行实时语音通话时,用户a发出的语音a会被终端设备110采集,并通过网络传输至终端设备120;终端设备120接收到语音a后,相应地播放该语音a,同时采集用户b发出的语音b和自身播放的语音a,并将采集的语音b和语音a通过网络传输至终端设备110播放,此时用户a将会听到自己此前发出的语音a,这就是回声。回声的存在会干扰语音通信质量,降低语音的可懂度。
3.为了避免语音通话质量被回声干扰,回声消除(acoustic echo cancellation,aec)技术应运而生。终端设备基于回声消除技术消除回声时,将对方设备发来的、需要播放的音频信号作为远端音频信号,将自身采集的、需要发送给对方设备的音频信号作为近端音频信号,以远端音频信号为依据滤除近端音频信号中的回声。
4.由于回声的形成通常需要经历三个阶段,依次是音频信号播放、空气传播和音频信号采集,因此近端音频信号中包括的回声会比远端音频信号滞后,这个滞后量即为回声延迟(echo delay)。终端设备基于回声消除技术消除近端音频信号中的回声时,通常需要先利用回声延迟将近端音频信号与远端音频信号对齐,进而再根据远端音频信号消除近端音频信号中的回声。由此可见,确定回声延迟作为回声消除的前处理技术,所确定的回声延迟是否准确会在很大程度上影响回声消除的效果。
技术实现要素:5.本技术实施例提供了一种回声延迟确定方法、装置、设备及存储介质,能够准确地确定回声延迟,从而有助于提升回声消除效果。
6.有鉴于此,本技术第一方面提供了一种回声延迟确定方法,所述方法包括:
7.在待播放的参考音频信号中嵌入水印信息,得到目标音频信号;
8.播放所述目标音频信号;并采集近端音频信号;
9.对所述近端音频信号进行水印信息解析处理;
10.在通过所述水印信息解析处理,从所述近端音频信号中解析出所述水印信息的情况下,根据所述水印信息在所述目标音频信号中的位置、以及所述水印信息在所述近端音频信号中的位置,确定回声延迟。
11.本技术第二方面提供了一种回声延迟确定装置,所述装置包括:
12.水印嵌入模块,用于在待播放的参考音频信号中嵌入水印信息,得到目标音频信号;
13.音频播放模块,用于播放所述目标音频信号;
14.音频采集模块,用于采集近端音频信号;
15.水印解析模块,用于对所述近端音频信号进行水印信息解析处理;
16.回声延迟确定模块,用于在通过所述水印信息解析处理,从所述近端音频信号中解析出所述水印信息的情况下,根据所述水印信息在所述目标音频信号中的位置、以及所述水印信息在所述近端音频信号中的位置,确定回声延迟。
17.本技术第三方面提供了一种电子设备,所述电子设备包括处理器以及存储器:
18.所述存储器用于存储计算机程序;
19.所述处理器用于根据所述计算机程序,执行如上述第一方面所述的回声延迟确定方法的步骤。
20.本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的回声延迟确定方法的步骤。
21.本技术第五方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的回声延迟确定方法的步骤。
22.从以上技术方案可以看出,本技术实施例具有以下优点:
23.本技术实施例提供了一种回声延迟确定方法,该方法创新性地将音频水印技术应用于确定回声延迟。具体实现时,先在待播放的参考音频信号中嵌入人耳不可闻的水印信息,得到目标音频信号;然后,播放该目标音频信号,并且采集近端音频信号;进而,对所采集的近端音频信号进行水印信息解析处理;在通过上述水印信息解析处理,从该近端音频信号中解析出此前嵌入的水印信息的情况下,根据该水印信息在目标音频信号中的位置、以及该水印信息在近端音频信号中的位置,确定近端音频信号中的回声相对于目标音频信号的时间滞后量,即确定回声延迟。一方面,基于近端音频信号中的水印信息确定回声延迟,对于近端音频信号的信噪比没有特别的要求,因此即使在近端音频信号中混杂有多种音频信号的情况下,通过本技术实施例提供的方法也能够准确地确定回声延迟。另一方面,对于用于执行本技术实施例提供的方法的设备来说,其无需耗费大量的计算资源即可准确地确定回声延迟。再一方面,本技术实施例提供的方法对于不同的硬件设备和软件应用均具有较好的兼容性和通用性,即对于不同的硬件设备和软件应用,通过本技术实施例提供的方法均可准确地确定回声延迟。
附图说明
24.图1为rtc场景中回声的产生原理示意图;
25.图2为通信软件中回声消除模块的工作原理示意图;
26.图3为对齐远端音频信号和近端音频信号的实现原理示意图;
27.图4为回声消除模块消除回声的实现原理示意图;
28.图5为本技术实施例提供的回声延迟确定方法的应用场景示意图;
29.图6为本技术实施例提供的回声延迟确定方法的流程示意图;
30.图7为本技术实施例提供的生成目标音频信号的流程示意图;
31.图8为本技术实施例提供的水印信源编码帧的帧结构示意图;
32.图9为本技术实施例提供的信道编码帧的帧结构示意图;
33.图10为本技术实施例提供的水印信息解析处理的流程示意图;
34.图11为本技术实施例提供的播放端水印信息注入的实现原理示意图;
35.图12为本技术实施例提供的录音端水印信息解析的实现原理示意图;
36.图13为本技术实施例提供的第一种回声延迟确定装置的结构示意图;
37.图14为本技术实施例提供的第二种回声延迟确定装置的结构示意图;
38.图15为本技术实施例提供的第三种回声延迟确定装置的结构示意图;
39.图16为本技术实施例提供的第四种回声延迟确定装置的结构示意图;
40.图17为本技术实施例提供的终端设备的结构示意图。
具体实施方式
41.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
43.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
44.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
45.语音技术(speech technology)的关键技术有自动语音识别技术(asr)和语音合成技术(tts)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
46.随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
47.本技术实施例提供的方案涉及人工智能的语音技术,具体通过如下实施例进行说明:
48.为了消除所采集的近端音频信号中的回声,具备实时通信功能的硬件设备和软件应用中通常均会设置回声消除模块。图2为某通信软件中回声消除模块的工作原理示意图;如图2所示,用户通过通信软件进行实时语音通话时,该通信软件接收的远端音频信号会通过播音模块框架被播放出去,该远端音频信号被播放出去后,通信软件可以在通过录音模块框架采集近端音频信号时采集到被播放的远端音频信号,该被采集的远端音频信号即为回声;进而,通信软件中的回声消除模块将通过回声消除内核,基于该通信软件此前接收的远端音频信号消除该近端音频信号中的回声,再将消除了回声的近端音频信号发送出去。
49.从图2所示的回声消除模块的工作原理示意图可以看出,远端音频信号形成回声需要经历三个阶段,依次是播音模块框架(其中包括软件通道和硬件通道)、声音空气传播、以及录音模块框架(其中包括软件通道和硬件通道),基于此,近端音频信号中的回声相比远端音频信号会滞后,这个滞后量即为回声延迟echo delay,该回声延迟echo delay的表达式如式(1)所示:
50.echo delay=playback delay + broadcast delay + record delay
ꢀꢀꢀꢀ
(1)
51.其中,playback delay为从还原出远端音频信号到该远端音频信号被音频播放器件(如扬声器等)播放出来的用时,对于不同的操作系统,playback delay通常会有很大的差异;通常情况下,android系统的playback delay为100
‑
300ms,ios系统的playback delay为50
‑
80ms。
52.其中,broadcast delay为远端音频信号从被音频播放器件(如扬声器等)播放出来经空气传播到音频采集器件(如麦克风等)的用时,该延迟与音频信号传播的物理路径的长度相关,由于终端设备的音频播放器件与音频采集器件之间的距离普遍较短,因此broadcast delay通常可以被忽略。
53.其中,record delay为从音频采集器件采集到远端音频信号到回声消除模块获得包括该远端音频信号的近端音频信号的用时,通常约为10ms。
54.确定回声延迟(又称回声延迟估计(delay estimator))作为回声消除的前处理技术,用于确定近端音频信号中的回声与远端音频信号之间的时间差。回声消除模块具体工作时,需要基于所确定的回声延迟对齐远端音频信号和近端音频信号,如图3所示;进而,依据远端音频信号对近端音频信号依次进行自适应滤波和非线性处理,以滤除近端音频信号中的回声,如图4所示。在很多情况下,能否准确地确定回声延迟会在很大程度上影响回声消除模块的性能,即影响回声消除的效果。
55.相关技术中,目前主要通过以下三种实现方式确定回声延迟:
56.第一种实现方式,先将近端音频信号和远端音频信号分别变换到频域,得到近端频谱和远端频谱;然后对近端频谱和远端频谱分别进行二值处理,得到近端二进制谱和远端二进制谱;进而通过比较近端二进制谱和远端二进制谱估计回声延迟。该种实现方式由于需要使用频谱能量二值化,因此对于近端音频信号的信噪比要求较高,并且在“双讲”场景(即在语音采集环境中混杂有多种音频信号,导致所采集的近端音频信号中也混合有多种音频信号)中的性能表现较差,所估计出的回声延迟的准确度较低。
57.第二种实现方式,基于广义互相关函数法(generalized corss
‑
correlation)确
定回声延迟;其基本原理是获取近端音频信号和远端音频信号之间的互功率频谱,然后在频域内给予不同的权重进行加权运算,最后再反变换到时域,得到近端音频信号和远端音频信号之间的互相关函数,该互相关函数的极值所对应的时间即为回声延迟。该种实现方式的性能表现相对优于第一种实现方式的性能表现,但是通过该种实现方式确定回声延迟时,需要进行大量的域变换运算和互相关运算,对于终端设备来说计算量较大,且对于终端设备的计算能力要求较高。
58.第三种实现方式,通过机器学习的方法确定回声延迟;即针对终端设备进行针对性的模型训练,得到用于确定该终端设备的回声延迟的神经网络模型。该种实现方式虽然能够较为准确地确定回声延迟,但是由于不同的终端设备在硬件性能等方面具有一定的差异,因此同一模型往往无法针对多个终端设备准确地确定其回声延迟,需要针对不同的终端设备专门训练对应的模型,即模型的通用性和兼容性较差。
59.为了解决上述相关技术存在的问题,本技术实施例提供了一种回声延迟确定方法,该方法能够在各种场景中准确地确定回声延迟,且无需耗费终端设备大量计算资源,具有较好的通用性和兼容性。
60.具体的,在本技术实施例提供的回声延迟确定方法中,先在待播放的参考音频信号中嵌入人耳不可闻的水印信息,得到目标音频信号;然后,播放该目标音频信号,并且采集近端音频信号;进而,对所采集的近端音频信号进行水印信息解析处理;在通过上述水印信息解析处理,从该近端音频信号中解析出此前嵌入的水印信息的情况下,根据该水印信息在目标音频信号中的位置、以及该水印信息在近端音频信号中的位置,确定近端音频信号中的回声相对于目标音频信号的时间滞后量,即确定回声延迟。
61.上述回声延迟确定方法将音频水印技术应用于确定回声延迟,基于人耳的听觉掩蔽机制,在不影响音频播放质量且人耳无感知的情况下,将水印信息嵌入参考音频信号中得到目标音频信号,由于从音频播放到形成回声被采集是一个闭环,因此播放该目标音频信号时采集的近端音频信号中应当也包括该水印信息,进而,可以根据该水印信息在目标音频信号和近端音频信号中的位置确定回声延迟。一方面,基于近端音频信号中的水印信息确定回声延迟,对于近端音频信号的信噪比没有特别的要求,因此即使在近端音频信号中混杂有多种音频信号的情况下,通过本技术实施例提供的方法也能够准确地确定回声延迟。另一方面,对于用于执行本技术实施例提供的方法的设备来说,其无需耗费大量的计算资源即可准确地确定回声延迟。再一方面,本技术实施例提供的方法对于不同的硬件设备和软件应用均具有较好的兼容性和通用性,即对于不同的硬件设备和软件应用,通过本技术实施例提供的方法均可准确地确定回声延迟。
62.应理解,在实际应用中,本技术实施例提供的回声延迟确定方法可以应用于终端设备,该终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
63.为了便于理解本技术实施例提供的回声延迟确定方法,下面先对本技术实施例提供的回声延迟确定方法的应用场景进行示例性介绍。
64.参见图5,图5为本技术实施例提供的回声延迟确定方法的应用场景示意图。如图5所示,该应用场景中包括终端设备510和终端设备520,终端设备510和终端设备520中均运行有目标通信软件,终端设备510和终端设备520可以通过网络通信。终端设备510和终端设
备520均可用于执行本技术实施例提供的回声延迟确定方法,下文以终端设备510执行该回声延迟确定方法为例进行示例性介绍。
65.在实际应用中,使用终端设备510的用户a与使用终端设备520的用户b可以通过目标通信软件进行实时语音通话。在实时语音通话的过程中,终端设备510会接收到终端设备520通过网络发来的音频信号,并将该音频信号作为待播放的参考音频信号;然后,在该参考音频信号中嵌入人耳不可闻的水印信息得到目标音频信号,此处的水印信息可以是预先设定的水印信息。进而,终端设备510可以播放该目标音频信号。
66.在实时语音通话的过程中,终端设备510会持续地采集自身所处环境中的音频信号,该终端设备510采集的音频信号即为近端音频信号。并且,终端设备510会对所采集的近端音频信号进行水印信息解析处理,如若从近端音频信号中解析出目标音频信号中嵌入的水印信息,则终端设备可以根据该水印信息在目标音频信号中的位置、以及该水印信息在近端音频信号中的位置,确定回声延迟。
67.进而,终端设备510可以基于所确定的回声延迟滤除近端音频信号中的回声,并将滤除了回声的音频信号通过网络发送给终端设备520。相类似地,在实时语音通话的过程中,终端设备520也会执行上述操作。
68.需要说明的是,图5所示的应用场景仅为示例,在实际应用中,本技术实施例提供的回声延迟确定方法除了可以应用于双人实时语音通话的场景外,还可以应用于多人实时语音通话的场景。并且,本技术实施例提供的回声延迟确定方法除了可以应用于通过通信软件的实时语音通话场景外,还可以应用于基于硬件设备的实时语音通话场景,如打电话等。并且,本技术实施例提供的回声延迟确定方法还可以应用在实时视频场景中。在此不对本技术实施例提供的回声延迟确定方法的应用场景做任何限定。
69.需要说明的是,在用户与智能设备(如智能音箱、终端设备中的智能语音助手、车载语音识别设备等)对话的场景中,回声也是必须要解决的问题。具体的,在很多情况下,智能设备采集的音频信号中可能同时包括用户发出的语音信号和该智能设备自身此前发出的语音信号(即回声),智能设备直接基于其采集的音频信号进行后续处理,极易发生误识别、误理解、误响应等一系列问题,造成糟糕的用户体验;为了避免这种情况的发生,此类智能设备往往也需要针对其采集的音频信号进行回声消除处理,相应地,此类智能设备在进行回声消除处理之前,可以通过本技术实施例提供的回声延迟确定方法确定出回声延迟。
70.下面通过方法实施例对本技术提供的回声延迟确定方法进行详细介绍。
71.参见图6,图6为本技术实施例提供的回声延迟确定方法的流程示意图。下述实施例以该回声延迟确定方法的执行主体为终端设备进行介绍,如图6所示,该回声延迟确定方法包括以下步骤:
72.步骤601:在待播放的参考音频信号中嵌入水印信息,得到目标音频信号。
73.在需要消除回声的应用场景中,终端设备播放参考音频信号之前,需要先采用音频水印技术,将人耳不可闻的水印信息嵌入该待播放的参考音频信号,从而得到对应的目标音频信号。
74.需要说明的是,音频水印技术是利用听觉掩蔽机制,将人耳不可闻的水印信息嵌入待播放的音频流,并且可在解码端对所嵌入的水印信息进行识别及认证的技术。目前,音频水印技术的主要用途包括:保护音频作品版权、防止直播内容被盗录、对于录制的线上会
议进行泄密溯源。
75.需要说明的是,在不同的应用场景中,上述参考音频信号可以是通过不同的方式产生的音频信号。示例性的,在实时通信应用场景中,参考音频信号应当是通信对方的终端设备发来的音频信号;例如,在用户a与用户b进行实时语音通话的应用场景中,对于用户a使用的终端设备来说,用户b使用的终端设备发来的音频信号即为参考音频信号,对于用户b使用的终端设备来说,用户a使用的终端设备发来的音频信号即为参考音频信号;应理解,实时通信应用场景包括但不限于:双人或多人的实时语音通话场景、双人或多人的实时视频通话场景。示例性的,在用户与终端设备进行对话的应用场景中,参考音频信号应当是终端设备为了回应用户的对话内容而生成的音频信号;例如,在用户与智能音箱进行对话的应用场景中,智能音箱接收到用户发出的语音信号后,可以生成用于回应该语音信号的音频信号,该音频信号即为参考音频信号。当然,在其它应用场景中,参考音频信号还可以为通过其它方式产生的音频信号,在此不对本技术实施例的应用场景做任何限定,也不对参考音频信号的产生方式做任何限定。
76.需要说明的是,在参考音频信号中嵌入的水印信息可以是预先设定的,例如,该水印信息可以预先设定的文本信息或者二进制码,本技术在此不对在参考音频信号中嵌入的水印信息做任何限定。
77.在一种可能的实现方式中,终端设备在参考音频信号中嵌入水印信息时,可以通过图7所示的流程实现。图7为本技术实施例提供的生成目标音频信号的流程示意图。如图7所示,该目标音频信号的生成流程包括以下步骤:
78.步骤701:对所述水印信息进行信源编码,得到水印信源编码帧。
79.终端设备在将水印信息嵌入参考音频信号之前,需要先对预先设定的水印信息(如预先设定的文本信息或二进制码等)进行信源编码,得到对应的水印信源编码帧,从而才能实现将水印信息嵌入参考音频信号。
80.具体实现时,终端设备可以以预设字节长度为单位分割水印信息,得到多个子水印信息;然后,针对每个子水印信息,对该子水印信息进行信源编码,得到该子水印信息对应的水印信源编码帧,该水印信源编码帧中包括水印信息的字节长度、该子水印信息在水印信息中的排列序号,该子水印信息本身、以及校验码。
81.示例性的,终端设备可以以单个字节为单位对水印信息进行分割处理,得到若干子水印信息。然后,按照预先设定的水印信源编码帧结构,针对每个子水印信息进行信源编码,得到对应的水印信源编码帧;以水印信源编码帧结构为图8所示的帧结构为例,终端设备针对某子水印信息构建其对应的水印信源编码帧时,可以将水印信息的字节长度(即水印长度)和该子水印信息在水印信息中的排列序号(即字节序号)添加至水印信源编码帧的帧头,将该子水印信息的内容(即字节内容)添加至水印信源编码帧的帧体,将校验码添加至水印信源编码帧的帧尾;假设水印信源编码帧的默认长度为32位,其中,水印信息的字节长度可以占4位,子水印信息在水印信息中的排列序号可以占4位,子水印信息的内容可以占8为,校验码可以占16位;当然,在实际应用中,水印信源编码帧结构还可以为其它形式的结构,本技术在此不对水印信源编码帧结构做任何限定。
82.需要说明的是,上述水印信源编码帧中的校验码可以是循环冗余校验码(cyclic redundancy check,crc),其是一种具有检错和纠错能力的校验码。上述水印信源编码帧中
的校验码还可以是通过分组校验的方式生成的校验码。本技术在此不对水印信源编码帧中的校验码做任何限定。
83.步骤702:检测所述参考音频信号中用于嵌入水印信息的目标位置。
84.此外,终端设备在将水印信息嵌入参考音频信号之前,还需要在该参考音频信号中检测可用于嵌入水印信息的目标位置,即检测可用于嵌入水印信源编码帧的目标位置。
85.具体实现时,终端设备可以检测参考音频信号的能量谱包络,进而将该参考音频信号中能量谱包络超过预设能量阈值的位置,确定为可用于嵌入水印信息的目标位置,并且针对该目标位置标记水印加载使能标志位。
86.示例性的,终端设备获取到参考音频信号后,可以针对该参考音频信号检测其能量谱包络,参考音频信号的能量谱包络能够表征该参考音频信号中各个位置处的能量高低。进而,基于参考音频信号的能量谱包络,检测参考音频信号中能量谱包络超过预设能量阈值的位置,即检测参考音频信号中能量较高的位置,并将参考音频信号中能量较高的位置确定为可用于嵌入水印信息的目标位置,针对该目标位置标记水印加载使能标志位。如此,防止将水印信息嵌入至参考音频信号中静音或者能量较低的音频信号处,以避免在音频信号解码端发生有效信息丢失的情况。
87.应理解,在实际应用中,终端设备可以先执行步骤701、后执行步骤702,也可以先执行步骤702、后执行步骤701,还可以同时执行步骤701和步骤702,本技术在此不对步骤701和步骤702的执行顺序做任何限定。
88.步骤703:基于所述参考音频信号中的所述目标位置,对所述参考音频信号和所述水印信源编码帧进行信道编码,得到所述目标音频信号。
89.终端设备完成对于水印信息的信源编码得到水印信源编码帧,并且检测出参考音频信号中可用于嵌入水印信息的目标位置后,可以基于参考音频信号中的目标位置,对参考音频信号和水印信源编码帧进行信道编码,以实现将水印信息嵌入参考音频信号,从而得到目标音频信号。
90.具体实现时,终端设备在对参考音频信号进行信道编码的过程中,可以判断参考音频信号的当前编码位置是否为可用于嵌入水印信息的目标位置。若该当前编码位置为目标位置,则终端设备可以通过水印调制算法,在参考音频信号中该当前编码位置处的音频信号中嵌入水印信源编码帧,得到第一待编码信号;然后对该第一待编码信号进行信道编码,得到该当前编码位置对应的信道编码帧。若该当前编码位置并非目标位置,则终端设备可以直接将参考音频信号中该当前编码位置处的音频信号作为第二待编码信号,并对该第二待编码信号进行信道编码,得到该当前编码位置对应的信道编码帧。进而,组合参考音频信号中各编码位置各自对应的信道编码帧,得到目标音频信号。
91.示例性的,终端设备对参考音频信号进行信道编码时,可以检测参考音频信号的当前编码位置是否标记有水印加载使能标志位。若该当前编码位置标记有水印加载使能标志位,则可确定该当前编码位置为可用于嵌入水印信息的目标位置;然后,利用水印调制算法,在当前编码位置处的音频信号中加入此前通过信源编码得到的水印信源编码帧,从而得到第一待编码信号;进而,按照预先设定的信道编码帧结构,对该第一待编码信号进行信道编码,得到当前编码位置对应的信道编码帧。反之,若该当前编码位置没有标记水印加载使能标志位,则可确定该当前编码位置并非可用于嵌入水印信息的目标位置;进而,直接将
该当前编码位置处的音频信号作为第二待编码信息,并按照预先设定的信道编码帧结构,对该第二待编码信号进行信道编码,得到当前编码位置对应的信道编码帧。如此,针对参考音频信号中各个编码位置执行上述信道编码处理,得到各个编码位置各自对应的信道编码帧,按照各个编码位置在参考音频信号中的排列顺序,相应地组合各个编码位置各自对应的信道编码帧,即可得到目标音频信号。
92.需要说明的是,在水印调制算法的选型上,可以根据实际场景需求选择合适的水印调制算法。作为一种示例,本技术实施例可以采用鲁棒性强、音质损伤小、复杂度低的时域双向多核回声隐藏水印调制算法;该水印调制算法的主要原理是利用人耳听觉上的异时掩蔽机制,将水印信息调制为人耳无法辨别的早期反射声;此外,该水印调制算法采用双向回声可以抵抗空间多径反射造成的干扰,采用多核可以增强数据传输码率。当然,在实际应用中,终端设备还可以采用其它水印调制算法,将水印信源编码帧添加至参考音频信号中,本技术在此不对所采用的水印调制算法做任何限定。
93.需要说明的是,由于回声延迟在短时间内通常不会发生大幅变化,因此,在实际应用中,终端设备可以不必在参考音频信号中每个目标位置处的音频信号中均嵌入水印信源编码帧;示例性的,终端设备可以每隔一定的时长,如1min、30s等,针对当前的参考音频信号,在该参考音频信号中某个目标位置处的音频信号中嵌入水印信源编码帧。当然,为了保证所确定的回声延迟的准确性,终端设备也可以在参考音频信号中每个目标位置处的音频信号中均嵌入水印信源编码帧,本技术在此不对嵌入水印信源编码帧的具体方式做任何限定。
94.此外,为了提升水印信息解析端的识别率和对于不同传输信道的鲁棒性,本技术实施例还提出了一种信道编码帧结构,图9所示即为该信道编码帧结构的示意图。如图9所示,该信道编码帧的帧头用于承载同步码;该信道编码帧的帧体用于承载数据包,当该信道编码帧对应于参考音频信号中可用于嵌入水印信息的目标位置时,该数据包中应包括嵌入有水印信源编码帧的音频信号,即第一待编码信号,当该信道编码帧对应于参考音频信号中不可用于嵌入水印信息的位置时,该数据包中应包括没有嵌入水印信源编码帧的音频信号,即第二待编码信号;该信道编码帧的帧体用于承载纠错码,该纠错码是根据信道编码帧的帧头和帧体承载的内容生成的。
95.示例性的,终端设备进行信道编码时,可以在信道编码帧的帧头添加同步码,该同步码可以为一串固定的码字,用于帧同步,该同步码的具体长度和内容可以根据信道实际情况调整。可以在信道编码帧的帧体添加数据包,若该信道编码帧对应于目标位置,则该数据包中可以包括参考音频信号中该编码位置处的音频信号和水印信源编码帧;若该信道编码帧并非对应于目标位置,则该数据包中可以包括该参考音频信号中该编码位置处的音频信号。可以在信道编码帧的帧尾添加纠错码,设置该纠错码可以在信道信噪比欠佳的情况下,降低解码端的误码率,保证信号的传输质量;示例性的,信道编码帧中的纠错码可以为bch纠错码,终端设备生成信道编码帧中的bch纠错码时,可以将信道编码帧中帧头和帧体承载的信息按照预设位数划分为若干消息组,然后将每个消息组变换为特定长度的二进制数字组即码字,各个消息组各自对应的码字即可组成bch纠错码;当然,在实际应用中,终端设备也可以在信道编码帧中设置其它类型的纠错码,本技术在此不对信道编码帧中的纠错码类型做任何限定。
96.应理解,图7所示的生成目标音频信号的实现方式仅为示例,在实际应用中,终端设备也可以采用其它方式将水印信息嵌入参考音频信号,得到目标音频信号,本技术在此不对目标音频信号的生成方式做任何限定。
97.步骤602:播放所述目标音频信号;并采集近端音频信号。
98.终端设备将水印信息嵌入待播放的参考音频信号,得到目标音频信号后,播放该目标音频信号。在需要消除回声的应用场景中,音频信号的播放与音频信号的采集通常都是同时进行的,因此,终端设备在播放目标音频信号的同时,也会采集音频信号,终端设备所采集的音频信号即为近端音频信号。
99.示例性的,在实时通信应用场景中,近端音频信号是终端设备自身采集的音频信号;例如,在用户a与用户b进行实时语音通话的应用场景中,对于用户a使用的终端设备来说,其自身采集的用户a所处环境中的音频信号即为近端音频信号,对于用户b使用的终端来说,其自身采集的用户b所处环境中的音频信号即为近端音频信号。示例性的,在用户与终端设备进行对话的应用场景中,近端音频信号也是终端设备自身采集的音频信号;例如,在用户与智能音箱进行对话的应用场景中,智能音箱在其所处环境中采集到的音频信号即为近端音频信号。
100.应理解,近端音频信号可以包括终端设备采集到的其所处环境中的任何音频信号,即近端音频信号不仅可以包括用户发出的语音信号,也可以包括终端设备自身播放的目标音频信号,还可以包括环境中的噪声音频信号,本技术在此不对近端音频信号中包括的音频信号做任何限定。
101.步骤603:对所述近端音频信号进行水印信息解析处理。
102.终端设备采集到近端音频信号后,需要对近端音频信号进行水印信息解析处理,以判断所采集的近端音频信号中是否包括此前在参考音频信号中嵌入的水印信息。
103.在一种可能的实现方式中,终端设备对近端音频信号进行水印信息解析处理时,可以通过图10所示的流程实现。图10为本技术实施例提供的水印信息解析处理的流程示意图。如图10所示,该水印信息解析处理流程包括以下步骤:
104.步骤1001:对所述近端音频信号进行解调处理,得到二进制比特流。
105.终端设备采集到近端音频信号后,为了保证能够正确地解调该近端音频信号,进而解析其中是否包括水印信息,终端设备需要按照目标音频信号中信道编码帧的帧长,对近端音频信号中对应帧长的音频信号进行解调处理,从而得到对应的二进制比特流。
106.步骤1002:对所述二进制比特流进行信道解码,得到信道解码流。
107.终端设备对近端音频信号进行解调处理,得到二进制比特流后,可以进一步对该二进制比特流进行信道解码,以得到信道解码流。
108.具体实现时,若终端设备此前生成的目标音频信号中的信道编码帧包括同步码和纠错码,则终端设备可以先基于二进制比特流中的同步码进行帧同步;进而,在对二进制比特流进行信道解码的过程中,基于二进制比特流中的纠错码对信道解码流中的误码进行纠正处理;若纠正的误码位数未超过预设误码位数,则继续采用水印解调算法对信道解码流进行水印解调处理;若纠正的误码位数超过预设误码位数,则丢弃该信道解码流。
109.示例性的,终端设备对解调近端音频信号得到的二进制比特流进行信道解码时,可以先根据二进制比特流中的同步码进行帧同步,以将二进制比特流中分别对应于各信道
编码帧的信道解码流分隔开来。进而,利用二进制比特流中的纠错码对分隔开来的信道解码流进行误码纠正处理;需要说明的是,从目标音频信号被播放到被重新采集的过程中,受到音频信号传播环境等因素的影响,目标音频信号可能会受到一定程度的干扰,进而导致目标音频信号中出现误码;为了解决此问题,终端设备可以利用二进制比特流中的纠错码对信道解码流中的误码进行纠正处理,即终端设备可以采用与生成纠错码时相反的算法,根据纠错码还原此前生成的信道编码帧,进而依据还原出的信道编码帧对信道解码流的误码进行纠正。若终端设备基于纠错码纠正的误码位数未超过预设误码位数,则说明目标音频信号仍在纠错码的纠错能力范围内,终端设备可以基于已纠正过误码的信道解码流继续进行水印解调处理;若终端设备基于纠错码纠正的误码位数超过预设误码位数,则说明目标音频信号已超出纠错码的纠正能力范围,该信道解码流中携带的信息可能已失真,进而可以丢弃该信道解码流。
110.步骤1003:通过水印解调算法,对所述信道解码流进行水印解调处理。
111.终端设备完成对于二进制比特流的信道解码处理,得到信道解码流后,可以进一步采用水印解调算法,对信道解码流进行水印解调处理,以确定该信道解码流中是否携带有隐藏的编码比特流,即确定信道解码流中是否嵌入有水印信源编码帧。
112.需要说明的是,终端设备此处采用的水印解调算法,应当与嵌入水印信息时采用的水印调制算法相对应。例如,若终端设备将水印信息嵌入参考音频信号中时采用的水印调制算法为回声隐藏调制算法,则终端设备此时需要采用对应的倒谱法对信道编码流进行水印解调处理。当然,若将水印信息嵌入参考音频信号中时采用的是其它水印调制算法,终端设备也可以相应地采用其它水印解调算法对信道编码流进行水印解调处理,本技术在此不对所采用的水印解调算法做任何限定。
113.步骤1004:在通过所述水印解调处理,从所述信道解码流中解调出水印信源编码帧的情况下,对所述水印信源编码帧进行信源解码,得到所述水印信息。
114.若终端设备通过步骤1003,从信道解码流中解调出水印信源编码帧,则终端设备可以继续对该水印信源编码帧进行信源解码,从而得到该水印信源编码帧中携带的水印信息。
115.具体实现时,终端设备可以先根据水印信源编码帧中的校验码对该水印信源编码帧进行校验;若校验通过,则从该水印信源编码帧中获取水印信息;反之,若校验未通过,则可以丢弃该水印信源编码帧。
116.示例性的,假设终端设备此前在参考音频信号中嵌入的水印信源编码帧中的校验码为crc校验码,则终端设备对信道解码流中的水印信源编码帧进行校验时,采用生成水印信源编码帧时使用的多项式与其相除;若余数为0,则说明该水印信源编码帧中的码字没有错误,该水印信源编码帧通过校验,此时可以从该水印信源编码帧中获取水印信息;反之,若余数不为0,则说明该水印信源编码帧的码字存在错误,该水印信源编码帧没有通过校验,此时可以丢弃该水印信源编码帧。应理解,若终端设备此前在参考音频信号中嵌入的水印信源编码帧中的校验码为其它校验码,则终端设备也可以采用其它方式对信道解码流中的水印信源编码帧进行校验,本技术在此不对校验水印信源编码帧的方式做任何限定。
117.应理解,若终端设备此前对水印信息进行信源编码生成水印信源编码帧时,对水印信息进行了分割处理,基于分割出的子水印信息生成了水印信源编码帧,则终端设备此
时对信道解码流中的水印信源编码帧进行信源解码得到的是水印信息,实际上是分割水印信息得到的某个子水印信息。
118.应理解,图10所示的水印信息解析处理的实现方式仅为示例,在实际应用中,终端设备也可以采用其它方式对近端音频信号进行水印信息解析处理,本技术在此不对水印信息解析处理的实现方式做任何限定。
119.步骤604:在通过所述水印信息解析处理,从所述近端音频信号中解析出所述水印信息的情况下,根据所述水印信息在所述目标音频信号中的位置、以及所述水印信息在所述近端音频信号中的位置,确定回声延迟。
120.若终端设备通过步骤603,从其采集的近端音频信号中解析出其此前通过步骤601在参考音频信号中嵌入的水印信息,则终端设备可以根据在目标音频信号中该水印信息的嵌入位置、以及近端音频信号中解析出该水印信息的位置,确定出近端音频信号中的回声(对应于目标音频信号)相对于目标音频信号的时间滞后量,即确定出回声延迟。
121.在一种可能的实现方式中,终端设备可以确定通过音频播放通道播放目标音频信号中嵌入有水印信息的音频帧的时间点,作为第一时间点;可以确定通过音频采集通道采集到近端音频信号中包括有该水印信息的音频帧的时间点,作为第二时间点;进而,计算第二时间点与第一时间点之间的时间差,该时间差即为回声延迟。
122.具体的,终端设备播放目标音频信号时,可以记录通过音频播放通道播放嵌入有水印信息的音频帧的时间点,作为第一时间点;示例性的,假设水印信息a被嵌入在目标音频信号中的第五个音频帧(该音频帧可以理解为上文中的信道编码帧)中,则终端设备可以记录通过音频播放通道播放该第五个音频帧的时间点,作为第一时间点,例如,假设终端设备通过音频播放通道播放该第五个音频帧的时间点为9:44:35,则将9:44:35作为第一时间点。终端设备采集近端音频信号时,可以记录通过音频采集通道采集到近端音频信号中各音频帧的时间点,若终端设备通过水印信息解析处理,确定近端音频信号中的第十个音频帧中包括水印信息a,则终端设备可以确定通过音频采集通道采集到该第十个音频帧的时间点,作为第二时间点,例如,假设终端设备通过音频采集通道采集到该第十个音频帧的时间点为9:44:36,则将9:44:36作为第二时间点。进而,终端设备可以计算第二时间点与第一时间点之间的时间差,作为回声延迟,例如,在第一时间点为9:44:35,第二时间点为9:44:36的情况下,计算得到的回声延迟为1s。
123.在另一种可能的实现方式中,终端设备可以根据目标音频信号中嵌入有水印信息的音频帧的编号以及第一帧时长,确定第一时长;该第一帧时长是所播放的每个音频帧的时间长度;该第一时长用于表征通过音频播放通道播放嵌入有水印信息的音频帧的时间与音频信号起始播放时间之间的时间间隔长度。终端设备可以根据近端音频信号中包括该水印信息的音频帧的编号以及第二帧时长,确定第二时长;该第二帧时长是所采集的每个音频帧的时间长度;该第二时长用于表征通过音频采集通道采集到包括该水印信息的音频帧的时间与音频信号起始采集时间之间的时间间隔长度,该音频信号起始采集时间与上述音频信号起始播放时间相同。进而,计算第二时长与第一时长的差值,得到回声延迟。
124.具体的,在实时语音通话的场景中,终端设备的音频采集器件和音频播放器件通常同时工作;即在用户通过终端设备接通语音通话后,终端设备的扬声器或者听筒开始播放音频信号(所播放的音频信号可以包括空白音频信号),同时终端设备的麦克风也开始采
集当前环境中的音频信号(所采集的音频信号也可以包括空白音频信号)。换言之,对于终端设备来说,音频起始播放时间(即音频播放器件开始播放音频信号的时间)与音频起始采集时间(即音频采集器件开始采集音频信号的时间)是一致的。
125.基于此,终端设备可以根据从音频起始播放时间到嵌入有水印信息的音频帧的播放时间之间的时长、以及从音频起始采集时间到包括该水印信息的音频帧的采集时间之间的时长,确定回声延迟。示例性的,终端设备可以从音频起始播放时间开始,按照播放时间顺序针对目标音频信号中的每个音频帧从1开始逐一配置编号,进而,终端设备可以根据目标音频信号中嵌入有水印信息b的音频帧的编号和第一帧时长(即所播放的每个音频帧的时间长度),计算得到从音频起始播放时间到嵌入有水印信息b的音频帧的播放时间之间的时长,即第一时长;例如,假设终端设备将水印信息b嵌入在目标音频信号中的第五个音频帧中,且所播放的每个音频帧的时间长度为100ms,则计算得到的第一时长应当为5*100ms=500ms。相应地,终端设备可以从音频起始采集时间开始,按照采集时间顺序针对近端音频信号中的每个音频帧从1开始逐一配置编号,进而,终端设备可以根据近端音频信号中包括水印信息b的音频帧的编号和第二帧时长(即所采集的每个音频帧的时间长度),计算得到从音频起始采集时间到包括水印信息b的音频帧的采集时间之间的时长,即第二时长;例如,假设终端设备解析出近端音频信号中的第十个音频帧包括水印信息b,且所采集的每个音频帧的时间长度为100ms,则计算得到的第二时长应当为10*100ms=1000ms。进而,终端设备可以计算第二时长与第一时长之间的差值,得到回声延迟,例如,在第一时长为500ms,第二时长为1000ms的情况下,计算得到的回声延迟应当为500ms。
126.应理解,上述根据水印信息在目标音频信号中的位置、以及该水印信息在近端音频信号中的位置,确定回声延迟的实现方式仅为示例,在实际应用中,也可以采用其它方式根据水印信息在目标音频信号中的位置、以及该水印信息在近端音频信号中的位置确定回声延迟,本技术在此不对该回声延迟的确定方式做任何限定。
127.终端设备确定出回声延迟后,可以基于该回声延迟对齐近端音频信号和目标音频信号,进而,基于该目标音频信号,对近端音频信号进行自适应滤波和非线性处理,以消除近端音频信号中对应于目标音频信号的回声。
128.具体实现时,终端设备可以基于回声延迟,沿着时间轴向后平移目标音频信号,以使目标音频信号的起始时间点与近端音频信号的起始时间点一致。然后,终端设备可以将目标音频信号作为用于滤除回声的参考信号,基于该目标音频信号对近端音频信号进行自适应滤波处理,以滤除近端音频信号中对应于目标音频信号的回声;进而,终端设备可以基于目标音频信号,对经过自适应滤波处理后得到的近端音频信号进行非线性处理,以滤除其中对应于目标音频信号的非线性回声;如此,将得到不包括回声的近端音频信号。在实时通信的应用场景中,终端设备可以将经过上述处理得到的近端音频信号发送至通信对方的终端设备;在用户与终端设备进行对话的应用场景中,终端设备可以基于经过上述处理得到的近端音频信号进行后续的分析处理,以响应用户发出的语音控制信号做出对应的回应。
129.上述回声延迟确定方法将音频水印技术应用于确定回声延迟,基于人耳的听觉掩蔽机制,在不影响音频播放质量且人耳无感知的情况下,将水印信息嵌入参考音频信号中得到目标音频信号,由于从音频播放到形成回声被采集是一个闭环,因此播放该目标音频
信号时采集的近端音频信号中应当也包括该水印信息,进而,可以根据该水印信息在目标音频信号和近端音频信号中的位置确定回声延迟。一方面,基于近端音频信号中的水印信息确定回声延迟,对于近端音频信号的信噪比没有特别的要求,因此即使在近端音频信号中混杂有多种音频信号的情况下,通过本技术实施例提供的方法也能够准确地确定回声延迟。另一方面,对于用于执行本技术实施例提供的方法的设备来说,其无需耗费大量的计算资源即可准确地确定回声延迟。再一方面,本技术实施例提供的方法对于不同的硬件设备和软件应用均具有较好的兼容性和通用性,即对于不同的硬件设备和软件应用,通过本技术实施例提供的方法均可准确地确定回声延迟。
130.为了便于进一步理解本技术实施例提供的回声延迟确定方法,下面以该回声延迟确定方法应用于实时通信场景为例,对该回声延迟确定方法进行整体示例性介绍。该回声延迟确定方法主要包括两个阶段,分别是播放端的水印信息注入和录音端的水印信息解析。
131.播放端的水印信息注入的实现原理如图11所示。具体包括以下三部分:
132.1)信源编码:获取水印原始信息(对应于上文中的水印信息),该水印原始信息通常可以为预先设定的文本信息或者二进制编码。对水印原始信息进行信源编码时,可以先以字节为单位将水印原始信息分割为若干个子水印信息,进而,针对每个子水印信息进行信源编码得到对应的水印信源编码帧,该水印信源编码帧中包括水印原始信息的字节长度、子水印信息在水印原始信息中的排列序号、子水印信息自身的内容以及校验码,该校验码可以为crc校验码,也可以为采用分组校验等其它校验方式生成的校验码。水印信源编码帧的帧结构具体可以如图8所示。
133.2)音频信号预处理:对所接收的远端音频信号进行预处理,预处理的主要目的是检测远端音频信号的能量谱包络,并且确定远端音频信号中能量谱包络超过预设能量阈值的位置,作为可用于嵌入水印信源编码帧的目标位置,针对该目标位置标记水印加载使能标志位。从而防止将水印信源编码帧嵌入静音或者能量较低的音频信号处,以避免解码端丢失有效信息。
134.3)信道编码:获取通过信源编码生成的水印信源编码帧、以及通过音频信号预处理得到的标记有水印加载使能标志位的远端音频信号,进而,基于所获取的数据对远端音频信号进行信道编码。具体实现时,当远端音频信号中的当前编码位置标记有水印加载使能标志位时,需要通过水印调制算法在当前编码位置处的音频信号中加入水印信源编码帧,得到第一待编码信号,进而,对该第一待编码信号进行信道编码,得到当前编码位置对应的信道编码帧。当远端音频信号中的当前编码位置没有标记水印加载使能标志位时,可以直接将该当前编码位置处的音频信号作为第二待编码信号,对该第二待编码信号进行信道编码,得到当前编码位置对应的信道编码帧。
135.在水印调制算法的选型上,基于对应用场景特点的考量,经过评估对比,最终采用鲁棒性强、音质损伤小、复杂度低的时域双向多核回声隐藏水印调制算法,该算法的主要原理是利用人耳听觉上的异时掩蔽机制,将水印信息调制成人耳无法辨别的早期反射声,该算法采用双向回声可以抵抗空间多径反射造成的干扰,该算法采用多核可以增强数据传输码率。
136.为了提升水印信息解析端的识别率和对不同传输信道的鲁棒性,进行信道编码
时,可以在所生成的信道编码帧的帧头加入同步码、帧尾加入纠错码,该信道编码帧的帧结构具体可以如图9所示。同步码为一串固定的码字,用于帧同步,其具体长度和内容可以根据信道实际情况调整。纠错码的主要功能是在信道信噪比欠佳的情况下,降低接收端的误码率,本技术实施例具体可以采用更适用于短码的31位bch纠错码。
137.录音端的水印信息解析的实现原理如图12所示。具体包括以下四部分:
138.1)音频解调:按照上述信道编码帧的帧长,对所采集的近端音频信号中对应帧长的音频信号进行解调处理,得到对应的二进制比特流。
139.2)信道解码:对音频解调出的二进制比特流进行信道解码,先依赖二进制比特流中的同步码进行帧同步。然后利用二进制比特流中的纠错码纠正信道传输过程中产生的误码;如若纠错成功,即所纠正的误码位数未超过预设误码位数,则针对信道解码得到的信道解码流进行后续的水印解调处理;如若纠错失败,即所纠正的误码位数超过预设误码位数,则丢弃该近端音频信号中该帧音频数据,等待解码近端音频信号中下一帧音频数据。
140.3)水印解调:采用与水印调制算法对应的水印解调算法,将隐藏的编码比特流(即水印信源编码帧)从信道解码流中提取出来,例如,如若此前采用的水印调制算法为回声隐藏调制算法,则此时可以采用倒谱法从信道解码流中解调水印信源编码帧。
141.4)信源解码:对水印信源编码帧进行信源解码,根据水印信源编码帧中的校验码进行信源侧误码校验;若校验通过,则解析该水印信源编码帧中的内容,得到水印原始信息的字节长度、该水印信源编码帧携带的子水印信息在水印原始信息中的排列序号、该子水印信息的内容,并将对应的字节检测结果位置标志为1;若校验未通过,则放弃近端音频信号中该帧音频数据,等待解码近端音频信号中下一帧音频数据。
142.针对上文描述的回声延迟确定方法,本技术还提供了对应的回声延迟确定装置,以使上述回声延迟确定方法在实际中得以应用及实现。
143.参见图13,图13是上文图6所示的回声延迟确定方法对应的一种回声延迟确定装置1300的结构示意图。如图13所示,该回声延迟确定装置1300包括:
144.水印嵌入模块1301,用于在待播放的参考音频信号中嵌入水印信息,得到目标音频信号;
145.音频播放模块1302,用于播放所述目标音频信号;
146.音频采集模块1303,用于采集近端音频信号;
147.水印解析模块1304,用于对所述近端音频信号进行水印信息解析处理;
148.回声延迟确定模块1305,用于在通过所述水印信息解析处理,从所述近端音频信号中解析出所述水印信息的情况下,根据所述水印信息在所述目标音频信号中的位置、以及所述水印信息在所述近端音频信号中的位置,确定回声延迟。
149.可选的,在图13所示的回声延迟确定装置的基础上,参见图14,图14为本技术实施例提供的另一种回声延迟确定装置1400的结构示意图。如图14所示,所述水印嵌入模块1301包括:
150.信源编码子模块1401,用于对所述水印信息进行信源编码,得到水印信源编码帧;
151.嵌入位置检测子模块1402,用于检测所述参考音频信号中用于嵌入水印信息的目标位置;
152.信道编码子模块1403,用于基于所述参考音频信号中的所述目标位置,对所述参
考音频信号和所述水印信源编码帧进行信道编码,得到所述目标音频信号。
153.可选的,在图14所示的回声延迟确定装置的基础上,所述信源编码子模块1401具体用于:
154.以预设字节长度为单位分割所述水印信息,得到多个子水印信息;
155.针对每个所述子水印信息,对所述子水印信息进行信源编码,得到所述子水印信息对应的水印信源编码帧;所述水印信源编码帧包括所述水印信息的字节长度、所述子水印信息在所述水印信息中的排列序号、所述子水印信息、以及校验码。
156.可选的,在图14所示的回声延迟确定装置的基础上,所述嵌入位置检测子模块1402具体用于:
157.检测所述参考音频信号的能量谱包络;
158.将所述参考音频信号中能量谱包络超过预设能量阈值的位置,确定为所述目标位置,并针对所述目标位置标记水印加载使能标志位。
159.可选的,在图14所示的回声延迟确定装置的基础上,所述信道编码子模块1403具体用于:
160.判断所述参考音频信号的当前编码位置是否为所述目标位置;
161.若是,则通过水印调制算法,在所述参考音频信号中所述当前编码位置处的音频信号中嵌入所述水印信源编码帧,得到第一待编码信号;对所述第一待编码信号进行信道编码,得到所述当前编码位置对应的信道编码帧;
162.若否,则将所述参考音频信号中所述当前编码位置处的音频信号作为第二待编码信号;对所述第二待编码信号进行信道编码,得到所述当前编码位置对应的信道编码帧;
163.组合所述参考音频信号中各编码位置各自对应的信道编码帧,得到所述目标音频信号。
164.可选的,在图14所示的回声延迟确定装置的基础上,所述信道编码帧的帧头用于承载同步码;所述信道编码帧的帧体用于承载数据包;若所述信道编码帧对应于所述目标位置,所述数据包中包括所述第一待编码信号;若所述信道编码帧并非对应于所述目标位置,所述数据包中包括所述第二待编码信号;所述信道编码帧的帧体用于承载纠错码,所述纠错码是根据所述信道编码帧的帧头和帧体承载的信息生成的。
165.可选的,在图13所示的回声延迟确定装置的基础上,参见图15,图15为本技术实施例提供的另一种回声延迟确定装置1500的结构示意图。如图15所示,所述水印解析模块1304包括:
166.音频解调子模块1501,用于对所述近端音频信号进行解调处理,得到二进制比特流;
167.信道解码子模块1502,用于对所述二进制比特流进行信道解码,得到信道解码流;
168.水印解调子模块1503,用于通过水印解调算法,对所述信道解码流进行水印解调处理;
169.信源解码子模块1504,用于在通过所述水印解调处理,从所述信道解码流中解调出水印信源编码帧的情况下,对所述水印信源编码帧进行信源解码,得到所述水印信息。
170.可选的,在图15所示的回声延迟确定装置的基础上,在所述目标音频信号中的信道编码帧包括同步码和纠错码的情况下,所述信道解码子模块1502具体用于:
171.基于所述二进制比特流中的所述同步码进行帧同步;
172.在对所述二进制比特流进行信道解码的过程中,基于所述二进制比特流中的所述纠错码对所述信道解码流中的误码进行纠正处理;
173.若纠正的误码位数未超过预设误码位数,则执行所述通过水印解调算法,对所述信道解码流进行水印解调处理;若纠正的误码位数超过所述预设误码位数,则丢弃所述信道解码流。
174.可选的,在图15所示的回声延迟确定装置的基础上,所述信源解码子模块1504具体用于:
175.根据所述水印信源编码帧中的校验码对所述水印信源编码帧进行校验;
176.若校验通过,则从所述水印信源编码帧中获取所述水印信息;若校验未通过,则丢弃所述水印信源编码帧。
177.可选的,在图13所示的回声延迟确定装置的基础上,所述回声延迟确定模块1305具体用于:
178.确定通过音频播放通道播放所述目标音频信号中嵌入有所述水印信息的音频帧的时间点,作为第一时间点;
179.确定通过音频采集通道采集到所述近端音频信号中包括所述水印信息的音频帧的时间点,作为第二时间点;
180.计算所述第二时间点与所述第一时间点间的时间差,得到所述回声延迟。
181.可选的,在图13所示的回声延迟确定装置的基础上,所述回声延迟确定模块1305具体用于:
182.根据所述目标音频信号中嵌入有所述水印信息的音频帧的编号以及第一帧时长,确定第一时长;所述第一帧时长是所播放的每个音频帧的时间长度;所述第一时长用于表征通过音频播放通道播放嵌入有所述水印信息的音频帧的时间与音频信号起始播放时间之间的时间间隔长度;
183.根据所述近端音频信号中包括所述水印信息的音频帧的编号以及第二帧时长,确定第二时长;所述第二帧时长是所采集的每个音频帧的时间长度;所述第二时长用于表征通过音频采集通道采集到包括所述水印信息的音频帧的时间与音频信号起始采集时间之间的时间间隔;所述音频信号起始播放时间与所述音频信号起始采集时间相同;
184.计算所述第二时长与所述第一时长的差值,得到所述回声延迟。
185.可选的,在图13所示的回声延迟确定装置的基础上,参见图16,图16为本技术实施例提供的另一种回声延迟确定装置1600的结构示意图。如图16所示,该装置还包括:
186.回声滤除模块1601,用于基于所述回声延迟,对齐所述近端音频信号和所述目标音频信号;基于所述目标音频信号,对所述近端音频信号进行自适应滤波处理和非线性处理,消除所述近端音频信号中的回声。
187.上述回声延迟确定装置将音频水印技术应用于确定回声延迟,基于人耳的听觉掩蔽机制,在不影响音频播放质量且人耳无感知的情况下,将水印信息嵌入参考音频信号中得到目标音频信号,由于从音频播放到形成回声被采集是一个闭环,因此播放该目标音频信号时采集的近端音频信号中应当也包括该水印信息,进而,可以根据该水印信息在目标音频信号和近端音频信号中的位置确定回声延迟。一方面,基于近端音频信号中的水印信
息确定回声延迟,对于近端音频信号的信噪比没有特别的要求,因此即使在近端音频信号中混杂有多种音频信号的情况下,通过本技术实施例提供的装置也能够准确地确定回声延迟。另一方面,对于运行本技术实施例提供的装置的设备来说,其无需耗费大量的计算资源即可准确地确定回声延迟。再一方面,本技术实施例提供的装置在不同的硬件设备和软件应用上均具有较好的兼容性和通用性,即对于不同的硬件设备和软件应用,通过本技术实施例提供的装置均可准确地确定回声延迟。
188.本技术实施例还提供了一种用于确定回声延迟的设备,该设备具体可以是终端设备,下面将从硬件实体化的角度对本技术实施例提供的终端设备进行介绍。
189.参见图17,图17是本技术实施例提供的终端设备的结构示意图。如图17所示,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。该终端设备可以为包括智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,以终端为智能手机为例:
190.图17示出的是与本技术实施例提供的终端相关的智能手机的部分结构的框图。参考图17,智能手机包括:射频(英文全称:radio frequency,英文缩写:rf)电路1710、存储器1720、输入单元1730、显示单元1740、传感器1750、音频电路1760、无线保真(英文全称:wireless fidelity,英文缩写:wifi)模块1770、处理器1780、以及电源1790等部件。本领域技术人员可以理解,图17中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
191.存储器1720可用于存储软件程序以及模块,处理器1780通过运行存储在存储器1720的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
192.处理器1780是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1720内的软件程序和/或模块,以及调用存储在存储器1720内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器1780可包括一个或多个处理单元;优选的,处理器1780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1780中。
193.在本技术实施例中,该终端所包括的处理器1780还具有以下功能:
194.在待播放的参考音频信号中嵌入水印信息,得到目标音频信号;
195.播放所述目标音频信号;并采集近端音频信号;
196.对所述近端音频信号进行水印信息解析处理;
197.在通过所述水印信息解析处理,从所述近端音频信号中解析出所述水印信息的情况下,根据所述水印信息在所述目标音频信号中的位置、以及所述水印信息在所述近端音频信号中的位置,确定回声延迟。
198.可选的,所述处理器1780还用于执行本技术实施例提供的回声延迟确定方法的任意一种实现方式的步骤。
199.本技术实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种回声延迟确定方法中的任意一种实施方式。
200.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述各个实施例所述的一种回声延迟确定方法中的任意一种实施方式。
201.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
202.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
203.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
204.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
205.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read
‑
only memory,英文缩写:rom)、随机存取存储器(英文全称:random access memory,英文缩写:ram)、磁碟或者光盘等各种可以存储计算机程序的介质。
206.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
207.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前
述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。