Nothing Special   »   [go: up one dir, main page]

CN112530446B - 频带扩展方法、装置、电子设备及计算机可读存储介质 - Google Patents

频带扩展方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112530446B
CN112530446B CN201910955743.7A CN201910955743A CN112530446B CN 112530446 B CN112530446 B CN 112530446B CN 201910955743 A CN201910955743 A CN 201910955743A CN 112530446 B CN112530446 B CN 112530446B
Authority
CN
China
Prior art keywords
spectrum
frequency
sub
low
envelope
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
CN201910955743.7A
Other languages
English (en)
Other versions
CN112530446A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of CN112530446A publication Critical patent/CN112530446A/zh
Application granted granted Critical
Publication of CN112530446B publication Critical patent/CN112530446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例涉及音频处理技术领域,公开了一种频带扩展方法、装置、电子设备及计算机可读存储介质,其中,频带扩展方法包括:对待处理窄带信号进行时频变换得到对应的低频频谱;基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络和相对平坦度信息至少其中之一,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;基于相关性参数和低频频谱,得到目标高频频谱;基于低频频谱和目标高频频谱,得到频带扩展后的宽带信号;其中,低频频谱或目标高频频谱中的至少一项是对相应的初始频谱进行滤波处理后的频谱。

Description

频带扩展方法、装置、电子设备及计算机可读存储介质
技术领域
本申请实施例涉及音频处理技术领域,具体而言,本申请涉及一种频带扩展方法、装置、电子设备及计算机可读存储介质。
背景技术
频带扩展,也可称为频带复制,是音频编码领域的一项经典技术。频带扩展技术是一种参数编码技术,通过频带扩展可以在接收端实现有效带宽的扩展,以提高音频信号的质量,使用户可以直观感受到更亮的音色、更大的音量和更好的可懂度。
在现有技术中,一种频带扩展的经典实现方法是利用语音信号中高频与低频的相关性进行频带扩展,在音频编码系统中,上述相关性作为边信息(side information),在编码端,将上述边信息合并到码流并传输出去,解码端通过解码,顺序恢复低频频谱,并进行频带扩展操作恢复高频频谱。但是该方法需要系统消耗相应的比特(例如:在编码低频部分信息的基础上,额外花费10%的比特编码上述边信息),即需要额外的比特进行编码,且存在前向兼容的问题。
另一种常用的频带扩展方法是基于数据分析的盲式方案,该方案基于神经网络或者深度学习,输入是低频系数、输出是高频系数。这种系数-系数的映射方式,对网络的泛化能力要求很高;为了保证效果,网络深度和体积较大,复杂度高;在实际过程中,在超出训练库所包含的模式外的场景,该方法的性能一般。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种频带扩展方法,包括:
对待处理窄带信号进行时频变换得到对应的低频频谱;
基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络和相对平坦度信息至少其中之一,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
基于相关性参数和低频频谱,得到目标高频频谱;
基于低频频谱和所述目标高频频谱,得到频带扩展后的宽带信号;
其中,低频频谱和所述目标高频频谱中的至少一者是对相应的初始频谱进行滤波处理后的频谱。
一方面,提供了一种频带扩展装置,包括:
低频频谱确定模块,用于对待处理窄带信号进行时频变换得到对应的低频频谱;
相关性参数确定模块,用于基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络和相对平坦度信息至少其中之一,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
高频频谱确定模块,用于基于相关性参数和低频频谱,得到目标高频频谱;
宽带信号确定模块,用于基于低频频谱和目标高频频谱,得到频带扩展后的宽带信号;
其中,低频频谱或目标高频频谱中的至少一项是对相应的初始频谱进行滤波处理后的频谱。
在一种可能的实现方式中,低频频谱确定模块用于:
基于初始频谱的频谱能量,确定初始频谱的第一滤波增益;
根据第一滤波增益对初始频谱进行滤波处理。
在一种可能的实现方式中,低频频谱确定模块用于:
将初始频谱划分为第一数量的子频谱,并确定每个子频谱对应的第一频谱能量;
基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益,其中,第一滤波增益值包括第一数量的第二滤波增益;
低频频谱确定模块在根据第一滤波增益对初始频谱进行滤波处理时,用于根据每个子频谱对应的第二滤波增益,对相应的每个子频谱分别进行滤波处理。
在一种可能的实现方式中,低频频谱确定模块用于:
将初始频谱对应的频带划分为第一子带和第二子带;
根据第一子带所对应的所有子频谱的第一频谱能量,确定出第一子带的第一子带能量,根据第二子带所对应的所有子频谱的第一频谱能量,确定出第二子带的第二子带能量;
根据第一子带能量与第二子带能量,确定初始频谱的频谱倾斜系数;
根据频谱倾斜系数及每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益。
在一种可能的实现方式中,窄带信号为当前语音帧的语音信号,低频频谱确定模块用于:
确定当前语音帧的一个子频谱的第一初始频谱能量;
若当前语音帧为第一个语音帧,则基于该一个子频谱的第一初始频谱能量确定该一个子频谱的第一频谱能量;
若当前语音帧不是第一个语音帧,则获取关联语音帧的与一个子频谱对应的子频谱的第一初始频谱能量,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧;
基于该一个子频谱的第一初始频谱能量和关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,得到该一个子频谱的第一频谱能量。
在一种可能的实现方式中,关联语音帧为当前语音帧的前一语音帧,低频频谱确定模块在当前语音帧为第一个语音帧,基于该一个子频谱的第一初始频谱能量确定该一个子频谱的第一频谱能量时,用于:
基于该一个子频谱的第一初始频谱能量和初始化的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
基于该一个子频谱的第二频谱能量和初始化的第一频谱能量,确定该一个子频谱的第一频谱能量;
在该当前语音帧不是第一个语音帧,基于该一个子频谱的第一初始频谱能量和关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,得到该一个子频谱的第一频谱能量时,用于:
基于该一个子频谱的第一初始频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
根据该一个子频谱的第二频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一频谱能量,确定该一个子频谱的第一频谱能量。
在一种可能的实现方式中,相关性参数包括高频频谱包络和相对平坦度信息;神经网络模型至少包括输入层和输出层,输入层输入低频频谱的特征向量,输出层至少包括单边长短期记忆网络LSTM层以及分别连接LSTM层的两个全连接网络层,每个全连接网络层包括至少一个全连接层,其中,LSTM层将输入层处理后的特征向量进行转换,其中一个全连接网络层根据LSTM层转换后的向量值进行第一分类处理,并输出高频频谱包络,另一个全连接网络层根据LSTM层转换后的向量值进行第二分类处理,并输出相对平坦度信息。
在一种可能的实现方式中,时频变换包括傅里叶变换或离散余弦变换;相关性参数确定模块在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数时,用于:
根据低频频谱,得到窄带信号的低频幅度谱;
将低频幅度谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数;
若时频变换为离散余弦变换,高频频谱确定模块在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数时,用于:
将低频频谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数。
在一种可能的实现方式中,时频变换包括傅里叶变换或离散余弦变换;
若时频变换为傅里叶变换,高频频谱确定模块在基于相关性参数和低频频谱,得到目标高频频谱时,用于:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频幅度谱,生成初始高频幅度谱;
基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整,得到目标高频幅度谱;
基于窄带信号的低频相位谱,生成相应的高频相位谱;
根据目标高频幅度谱和高频相位谱,得到目标高频频谱;
若时频变换为离散余弦变换,高频频谱确定模块在基于相关性参数和低频频谱,得到目标高频频谱时,用于:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频频谱,生成初始高频频谱;
基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整,得到目标高频频谱。
在一种可能的实现方式中,高频频谱确定模块在基于低频幅度谱,生成初始高频幅度谱时,用于:
对低频幅度谱中高频段部分的幅度谱进行复制;
高频频谱确定模块在基于低频频谱,生成初始高频频谱时,用于:
对低频频谱中高频段部分的频谱进行复制。
在一种可能的实现方式中,高频频谱包络和低频频谱包络均为对数域的频谱包络;
高频频谱确定模块在基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整时,用于:
确定高频频谱包络和低频频谱包络的第一差值;
基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱;
高频频谱确定模块在基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整时,用于:
确定高频频谱包络和低频频谱包络的第二差值;
基于第二差值对初始高频频谱进行调整,得到目标高频频谱。
在一种可能的实现方式中,若时频变换为傅里叶变换,高频频谱包络包括第二数量的第一子频谱包络,初始高频幅度谱包括第二数量的第一子幅度谱,其中,每个第一子频谱包络是基于初始高频幅度谱中对应的第一子幅度谱确定的;
高频频谱确定模块在确定高频频谱包络和低频频谱包络的第一差值,基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱时,用于:
确定每个第一子频谱包络与低频频谱包络中对应的频谱包络的第一差值;
基于每个第一子频谱包络所对应的第一差值,对对应的第一子幅度谱进行调整,得到第二数量的调整后的第一子幅度谱;
基于第二数量的调整后的第一子幅度谱,得到目标高频幅度谱;
若时频变换为离散余弦变换,高频频谱包络包括第三数量的第二子频谱包络,初始高频频谱包括所述第三数量的第一子频谱,其中,每个第二子频谱包络是基于初始高频频谱中对应的第一子频谱确定的;
高频频谱确定模块在确定高频频谱包络和低频频谱包络的第二差值,基于第二差值对初始高频频谱进行调整,得到目标高频频谱时,用于:
确定每个第二子频谱包络与低频频谱包络中对应的频谱包络的第二差值;
基于每个第二子频谱包络所对应的第二差值,对对应的第一子频谱进行调整,得到第三数量的调整后的第一子频谱;
基于第三数量的调整后的第一子频谱,得到目标高频频谱。
在一种可能的实现方式中,高频频谱确定模块在确定高频频谱包络和低频频谱包络的第一差值或第二差值时,用于:
基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值;
基于增益调整值对高频频谱包络进行调整,得到调整后的高频频谱包络;
确定调整后的高频频谱包络和低频频谱包络的第一差值或第二差值。
在一种可能的实现方式中,相对平坦度信息包括对应于高频部分的至少两个子带区域的相对平坦度信息,一个子带区域所对应的相对平坦度信息,表征了高频部分的一个子带区域的频谱平坦度与低频部分的高频频段的频谱平坦度的相关性;
若高频部分包括对应于至少两个子带区域的谱参数,每个子带区域的谱参数是基低频部分的高频频段的谱参数得到的,相对平坦度信息包括每个子带区域的谱参数与高频频段的谱参数的相对平坦度信息,其中,若时频变换为傅里叶变换,谱参数为所述幅度谱,若时频变换为离散余弦变换,谱参数为频谱;
高频频谱确定模块在基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值时,用于:
基于每个子带区域所对应的相对平坦度信息、以及低频频谱中每个子带区域所对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值;
高频频谱确定模块基于增益调整值对高频频谱包络进行调整时,用于:
根据高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整。
在一种可能的实现方式中,若高频频谱包络包括第一预定数量的高频子频谱包络,当低频频谱是通过傅里叶变换得到的,第一预定数量为第二数量,当低频频谱是通过离散余弦变换得到的,第一预定数量为第三数量;
高频频谱确定模块在基于每个子带区域所对应的相对平坦度信息,以及低频频谱中每个子带区域对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值时,用于:
对于每一个高频子频谱包络,根据低频频谱包络中与高频子频谱包络对应的频谱包络所对应的频谱能量信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域所对应的相对平坦度信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域对应的频谱能量信息,确定高频子频谱包络的增益调整值;
根据高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整,包括:
根据高频频谱包络中每个高频子频谱包络的增益调整值,对相应的高频子频谱包络进行调整。
在一种可能的实现方式中,若窄带信号包括至少两路关联的信号,装置还包括:
窄带信号确定模块,用于将至少两路关联的信号进行融合,得到窄带信号;或者,用于将至少两路关联的信号中的每一路信号分别作为窄带信号。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的频带扩展方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的频带扩展方法。
本申请实施例提供的频带扩展方法,低频频谱可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除窄带信号在量化过程中可能引入的量化噪声,防止在基于低频频谱进行频带扩展的过程中,将量化噪声扩展到高频频谱;目标高频频谱也可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例的频带扩展方法的流程示意图;
图2为本申请实施例的神经网络模型的网络结构示意图;
图3为本申请实施例的第一示例中频带扩展方法的流程示意图;
图4为本申请实施例的第二示例中频带扩展方法的流程示意图;
图5为本申请实施例的频带扩展装置的结构示意图;
图6为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为了更好的理解及说明本申请实施例的方案,下面对本申请实施例中所涉及到的一些技术用语进行简单说明。
频带扩展(Band Width Extension,BWE):是音频编码领域中的一项将窄频带信号扩展为宽带信号的技术。
频谱:是频率谱密度的简称,是频率的分布曲线。
频谱包络(Spectrum Envelope,SE):是信号对应的频率轴上,信号所对应的谱系数的能量表示,对于子带而言,是子带所对应的谱系数的能量表示,如子带所对应的谱系数的平均能量。
频谱平坦度(Spectrum Flatness,SF):表征待测信号在其所在信道内,功率平坦的程度。
神经网络(Neural Network,NN):是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
深度学习(Deep Learning,DL):深度学习是机器学习的一种深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
PSTN(Public Switched Telephone Network,公共交换电话网络):一种常用旧式电话系统,即我们日常生活中常用的电话网。
VoIP(Voice over Internet Protocol,网络电话):是一种语音通话技术,经由网际协议来达成语音通话与多媒体会议,也就是经由互联网来进行通信。
3GPP EVS:3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)主要是制订以全球移动通信系统为基础,为无线接口的第三代技术规范;EVS(EnhanceVoice Services,增强型话音业务)编码器是新一代的语音频编码器,不仅对于语音和音乐信号都能够提供非常高的音频质量,而且还具有很强的抗丢帧和抗延时抖动的能力,可以为用户带来全新的体验。
IEFT OPUS:Opus是一个有损声音编码格式,由互联网工程任务组(IETF,TheInternet Engineering Task Force)开发。
SILK:Silk音频编码器是Skype网络电话向第三方开发人员和硬件制造商提供免版税认证的Silk宽带。
具体地,频带扩展是音频编码领域的一项经典技术,在现有技术中,频带扩展可通过以下方式实现:
第一种方式,在低采样率下的窄频带信号,选择窄频带信号中的低频部分的频谱复制到高频;根据提前记录的边界信息(描述高频与低频的能量相关性的信息)将窄频带信号(即窄带信号)扩展为宽频带信号(即宽带信号)。
第二种方式,盲式频带扩展,无需额外比特,直接完成频带扩展,在低采样率下的窄频带信号,利用神经网络或深度学习等技术,神经网络或深度学习的输入为窄频带信号的低频频谱,输出为高频频谱,基于高频频谱将窄频带信号扩展为宽频带信号。
但是,通过第一种方式进行频带扩展,其中的边信息需要消耗相应的比特,且存在前向兼容的问题,比如,一个典型PSTN(窄带语音)和VoIP(宽带语音)互通场景。在PSTN-VoIP的传输方向,如果不修改传输协议(添加对应的频带扩展码流),无法完成PSTN-VoIP的传输方向输出宽带语音的目的。通过第二种方式进行频带扩展,输入是低频频谱,输出是高频频谱。这种方式不需要消耗额外的比特,但是对网络的泛化能力要求很高,为了保证网络输出的准确性,网络的深度和体积较大,复杂度较高,性能较差。因此,基于上述两种频带扩展方式均不能满足实际频带扩展的性能要求。
针对现有技术存在的问题,以及更好的满足实际应用需求,本申请实施例提供了一种频带扩展方法,通过该方法不但不需要额外的比特,减少了网络的深度和体积,降低了网络复杂度。
在本申请的实施例中,以PSTN(窄带语音)和VoIP(宽带语音)互通场景为例,对本申请的方案进行描述,即在PSTN至VoIP(简写为PSTN-VoIP)的传输方向,将窄带语音扩展为宽带语音。在实际应用中,本申请并不限定上述应用场景,也适用于其它编码系统,包括但不限于:3GPP EVS、IEFT OPUS、SILK等主流音频编码器。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
需要说明的是,在下面以PSTN和VoIP互通的语音场景为例对本申请实施例的方案进行描述的过程中,采样率为8000Hz、一帧语音帧的帧长为10ms(相当于80个样本点/帧)。在实际应用中,考虑到PSTN帧长为20ms,因此,只需要对每一个PSTN帧进行两次操作。本申请实施例的描述过程中,将以数据帧长将固定为10ms为例,然而,对于本领域技术人员来说清楚的是,帧长为其它值的场景,如20ms(相当于160个样本点/帧)的场景,本申请依然适用,在此不做限定。
同样的,本申请实施例中以采样率为8000Hz为例,并不是用于限定本申请实施例所提供的频带扩展的作用范围。比如,虽然本申请主要实施例是将采样率为8000Hz的信号频带扩展到16000Hz采样率的信号,但是,本申请也可以适用于其它采样率场景,如将16000Hz采样率的信号扩展为32000Hz采样率的信号、将8000Hz采样率的信号扩展为12000Hz采样率的信号等。本申请实施例的方案可以应用于任意的需要进行信号频带扩展的场景中。
本申请一个实施例提供了一种频带扩展方法,该方法由计算机设备执行,该计算机设备可以是终端或者服务器。终端可以是台式设备或者移动终端。服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。如图1所示,该方法包括:
步骤S110,对待处理窄带信号进行时频变换得到对应的低频频谱。
具体地,低频频谱是通过对窄带信号进行时频变换得到的,该时频变换包括但不限于傅里叶变换、离散余弦变换、离散正弦变换及小波变换等。
待处理的窄带信号可以是需要进行频带扩展的语音帧信号,比如,在PSTN-VoIP通路中,需要将PSTN窄带语音信号扩展为VoIP宽带语音信号,则待处理的窄带信号可以是PSTN窄带语音信号。如果待处理的窄带信号是语音帧的信号,则该待处理的窄带信号可以是一帧语音帧的全部或部分语音信号。
其中,在实际的应用场景中,对于需要处理的信号,可以将该信号作为待处理的窄带信号一次完成频带扩展,亦可以将该信号划分为多个子信号,对多个子信号分别进行处理,如上述PSTN帧的帧长为20ms,可以将该20ms语音帧的信号进行一次频带扩展,也可以将该20ms的语音帧划分为两个10ms的语音帧,分别对两个10ms的语音帧进行频带扩展。
步骤S120,基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络和相对平坦度信息至少其中之一,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性。
具体地,神经网络模型可以是预先基于信号的低频频谱训练得到的模型,该模型用于预测信号的相关性参数。目标宽频频谱指的是对窄带信号的带宽进行扩展后所对应的频谱,目标宽频频谱是基于待处理语音信号的低频频谱得到的,比如,目标宽频频谱可以是将待处理语音信号的低频频谱进行复制得到的。
步骤S130,基于相关性参数和低频频谱,得到目标高频频谱。
具体地,基于相关性参数和低频频谱(低频部分对应的参数),可以预测出需要扩展到的宽带信号的目标高频频谱(即宽带信号的高频部分对应的参数)。
步骤S140,基于低频频谱和目标高频频谱,得到频带扩展后的宽带信号,其中,低频频谱或目标高频频谱中的至少一项是对相应的初始频谱进行滤波处理后的频谱。
具体地,在得到目标高频频谱之后,即可以将低频频谱和目标高频频谱合并,并对合并后的频谱进行时频反变换(即频时变换)后,得到新的宽带信号,实现窄带信号的频带扩展。由于扩展后的宽带信号的带宽大于窄带信号的带宽,因此,基于该宽带信号,可以得到音色洪亮、音量较大的语音帧,使得用户可以有更好的听觉体验。
具体地,上述步骤S110与步骤S130中的低频频谱可以是通过对相应的初始低频频谱进行滤波处理后得到的频谱,即低频频谱是通过对窄带信号进行时频变换得到的初始低频频谱进行滤波处理后的频谱。由于在对窄带信号进行时频变换之前,通常需要对窄带信号进行量化,而量化过程中一般会引入量化噪声,因此,在对窄带信号进行时频变换之后,可以通过对时频变换之后的初始低频频谱进行滤波处理,来滤除初始低频频谱中的量化噪声,得到上述的低频频谱,以防止后续在基于低频频谱进行频带扩展的过程中,将量化噪声引入到高频频谱。
具体地,上述步骤S140中的目标高频频谱可以是通过对相应的初始高频频谱进行滤波处理后的频谱,即步骤S140中的目标高频频谱是通过对基于低频频谱得到的初始高频频谱进行滤波处理得到的,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
本申请实施例所提供的频带扩展方法,低频频谱可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除窄带信号在量化过程中可能引入的量化噪声,防止在基于低频频谱进行频带扩展的过程中,将量化噪声扩展到目标高频频谱;目标高频频谱也可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
在本申请实施例的一种实现方式中,基于低频频谱,得到目标高频频谱,可以包括:
基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络;
基于相关性参数和低频频谱,得到目标高频频谱。
其中,目标宽频频谱指的是与窄带信号想要扩展到的宽带信号对应的频谱相对应的宽带信号所对应的频谱,目标宽频频谱是基于待处理语音信号的低频频谱得到的,比如,目标宽频频谱可以是将待处理语音信号的低频频谱进行复制得到的。
具体地,神经网络模型可以是预先基于样本数据训练得到的模型,每个样本数据包括样本窄带信号和该样本窄带信号所对应的样本宽带信号,对于每个样本数据,可以确定出其样本宽带信号的频谱的高频部分与低频部分的相关性参数(该参数可以理解为样本数据的标注信息,即样本标签,简称为标注结果),该相关性参数包括高频频谱包络,还可以包括样本宽带信号的频谱的高频部分与低频部分的相对平坦度信息,在基于样本数据对神经网络模型进行训练时,初始的神经网络模型的输入为样本窄带信号的低频频谱,输出为预测出的相关性参数(简称为预测结果),可以基于各样本数据所对应的预测结果和标注结果的相似程度来判断模型训练是否结束,如通过模型的损失函数是否收敛来判断模型训练是否结束,该损失函数表征了各样本数据的预测结果和标注结果的差异程度,将训练结束时的模型作为本申请实施例应用时的神经网络模型。
在神经网络模型的应用阶段,对于上述窄带信号,则可以将该窄带信号的低频频谱输入至训练好的神经网络模型中,得到该窄带信号所对应的相关性参数。由于在基于样本数据对模型进行训练时,样本数据的样本标签为样本宽带信号的高频部分与低频部分的相关性参数,因此,基于该神经网络模型的输出得到的该窄带信号的相关性参数,则该相关性参数可以很好的表征出目标宽带信号的频谱的高频部分与低频部分的相关性。
具体地,由于相关性参数可以表征目标宽频频谱的高频部分与低频部分的相关性相关性,因此,基于相关性参数和低频频谱(低频部分对应的参数),可以预测出需要扩展得到的宽带信号的目标高频频谱(即宽带信号的高频部分对应的参数)。
在本实现方式中,可以基于根据待处理的窄带信号的低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,由于是采用神经网络模型进行预测,因此,无需对额外的比特进行编码,是一种盲式分析方法,具有较好的前向兼容性,且由于模型的输出是能够反映出目标宽频频谱的高频部分与低频部分的相关性的参数,实现了频谱参数到相关性参数的映射,与现有的系数至系数的映射方式相比,具有更好的泛化能力,并且可以得到音色洪亮、音量较大的信号,使得用户有更好的听觉体验。
在本申请实施例的一种实现方式中,对待处理窄带信号进行时频变换得到对应的低频频谱,可以包括:
对窄带信号进行采样因子为第一设定值的上采样处理,得到上采样信号;
对上采样信号进行时频变换,得到低频频域系数;
将该低频频域系数确定为低频频谱。
下面结合一个示例对确定低频频谱参数的方式进行进一步详细的说明。该示例中以前文描述的PSTN和VoIP互通的语音场景、语音信号的采样率为8000Hz、一帧语音帧的帧长为10ms为例进行描述。
该示例中,PSTN信号采样率为8000Hz,根据Nyquist(奈奎斯特)采样定理,窄带信号的有效带宽为4000Hz。本示例的目的是将该窄带信号进行频带扩展后,得到带宽为8000Hz的信号,即宽带信号的带宽为8000Hz。考虑到在实际的语音通信场景中,有效带宽为4000Hz的信号,其一般有效带宽的上界为3500Hz。因此,在本方案中,实际得到的宽带信号的有效带宽为7000Hz,则本示例的目的是将带宽为3500Hz的信号进行频带扩展,得到带宽为7000Hz的宽带信号,即将采样率为8000Hz信号频带扩展到采样率为16000Hz的信号。
本示例中,采样因子为2,对窄带信号进行采样因子为2的上采样处理,得到采样率为16000Hz的上采样信号。由于窄带信号的采样率为8000Hz,帧长为10ms,则该上采样信号对应160个样本点。
之后,对上采样信号进行时频变换,得到初始低频频域系数,在得到初始低频频域系数后,可以先对该初始低频频域系数进行滤波处理,得到低频频域系数,将该低频频域系数确定为低频频谱,以用于后续的低频频谱包络、低频幅度谱等的计算;当然,也可以不对该初始低频频域系数进行滤波处理,而直接将该初始低频频域系数作为低频频谱。
具体地,上述的傅里叶变换可以为短时傅立叶变换STFT(Short-Time FourierTransform),上述的离散余弦变换可以为改进离散余弦变换MDCT((Modified DiscreteCosine Transform)。在对上采样信号进行时频变换的过程中,考虑到消除帧间数据的不连续性,可采用将上一帧语音帧对应的频点和当前语音帧(待处理的窄带信号)对应的频点组合成一个数组,然后对该数组中的频点进行加窗处理,得到加窗处理后的信号。
具体地,当时频变换采用STFT时,可以采用汉宁窗进行加窗处理。在进行汉宁窗的加窗处理之后,可以对加窗处理后的信号进行STFT,得到相应的低频频域系数。考虑到傅立叶变换的共轭对称关系,第一个系数为直流分量,如果得到的低频频域系数为M个,则可选择(1+M/2)个低频频域系数进行后续的处理。
作为一个示例,对上述包含160个样本点的上采样信号进行STFT的具体过程为:将上一语音帧对应的160个样本点与当前语音帧(待处理的窄带信号)对应的160个样本点组成一个数组,该数组包括320个样本点。接着对该数组中的样本点进行汉宁窗的加窗处理,得到加窗处理后的信号sLow(i,j),接着对sLow(i,j)进行傅立叶变换,得到320个低频频域系数SLow(i,j)。其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,319)。考虑到傅立叶变换的共扼对称关系,第一个系数为直流分量,因此可以只考虑前161个低频频域系数,即将该161个低频频域系数中的第2个至第161个低频频域系数作为上述的初始低频频谱。
具体地,当时频变换采用MDCT时,可以采用余弦窗进行加窗处理。在进行余弦窗的加窗处理之后,可以对加窗处理后的信号进行MDCT,得到相应的低频频域系数,并基于该低频频域系数进行后续的处理。假定加窗处理后的信号为sLow(i,j),其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,319),则:可以对sLow(i,j)进行320点的MDCT,得到160点的MDCT系数SLow(i,j),其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,159),并将该160点的MDCT系数作为低频频域系数。
需要说明的是,当窄带信号为采样率为8000Hz,有效带宽为0~3500Hz的信号时,基于窄带信号的采样率和帧长,可以确定出窄带信号的有效带宽部分所对应的低频频域系数实际上为70个,即初始低频频谱SLow(i,j)的有效系数个数为70个,即j=0,1,…,69,下面也将以该70个低频频域系数为例,对后续处理过程进行具体介绍。
在本申请实施例的一种可能的实现方式中,时频变换包括傅里叶变换或离散余弦变换。其中,在通过对待处理的窄带信号进行时频变换,得到低频频谱后,若时频变换为傅里叶变换(比如STFT),此时的低频频谱是复数形式的,故可以先根据该复数形式的低频频谱得到实数形式的低频幅度谱,再基于低频幅度谱进行后续处理,即在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数的过程中,可以先根据低频频谱,得到窄带信号的低频幅度谱;再将低频幅度谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数。若时频变换为离散余弦变换(比如MDCT),此时的低频频谱是实数形式的,故可以直接根据该实数形式的低频频谱进行后续处理,即在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数的过程中,可以将低频频谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数。
具体地,当时频变换为离散正弦变换、小波变换等时,可以根据需要参考上述的傅里叶变换或者离散余弦变换的处理过程,来基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,在此不再赘述。
在本申请实施例的一种可能的实现方式中,可以将对加窗处理后的信号sLow(i,j)进行STFT或者MDCT,得到的低频频域系数记作初始低频频域系数。在得到初始低频频域系数,可以先对该初始低频频域系数进行滤波处理,得到滤波处理后的初始低频频域系数,并将该滤波处理后的初始低频频域系数记作低频频域系数,再根据该低频频域系数确定窄带信号的低频幅度谱。其中,为便于描述,在下述的描述过程中,将上述的初始低频频域系数记作SLow(i,j),将上述滤波后得到的低频频域系数记作SLow_rev(i,j),i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,69)。
具体地,在对初始低频频域系数进行滤波处理的过程中,可以先基于初始低频频域系数确定第一滤波增益,再根据第一滤波增益对初始低频频域系数进行滤波处理,得到滤波后的低频频域系数。同样的,在对初始高频频域系数进行滤波处理的过程中,可以先基于初始高频频域系数确定第一滤波增益,再根据第一滤波增益对初始高频频域系数进行滤波处理。对初始低频频域系数进行滤波处理的方式和对高频频域系数进行滤波处理的方式可以采用相同原理的处理方式,只是一个针对的是初始低频频域系数,一个针对的是高频频域系数,下面以对初始低频频域系数为例对滤波处理的过程进行说明,相应的,对初始高频频谱系数进行滤波处理时,只需要将对初始低频频域系数滤波处理过程中与初始低频频域系数有关的参数相应的替换为与初始高频频域系数对应的相关参数即可。
以对初始低频频域系数为例,在实际应用中,在根据第一滤波增益对初始低频频域系数进行滤波处理的过程中,可以通过对第一滤波增益与初始低频频域系数进行乘积运算,来对初始低频频域系数进行滤波处理。假如确定出的第一滤波增益为Gpre_filt(j),则可以根据如下公式(1)对初始低频频域系数进行滤波处理:
SLow_rev(i,j)=Gpre_filt(j)*SLow(i,j) (1)
其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,69)。
具体地,在基于初始低频频域系数确定第一滤波增益的过程中,可以首先将初始低频频域系数划分为第一数量的子频谱,并确定每个子频谱对应的第一频谱能量,接着基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益,其中,第一滤波增益值包括第一数量的第二滤波增益。
为便于描述,将上述的第一数量记作L,其中,将初始低频频域系数划分为L个子频谱的一种可能的实现方式为:对初始低频频域系数进行分带处理,得到第一数量的子频谱,每个子带对应N个初始低频频域系数,N*L等于初始低频频域系数的总个数,L≥2,N≥1。作为一个示例,比如,初始低频频域系数有70个,则可以将每5(N=5)个初始低频频域系数对应的频带划分为一个子带,共划分为14(L=14)个子带,每个子带对应有5个初始低频频域系数。
在一可选方案中,可以将每个子频谱的第一初始频谱能量作为每个子频谱的第一频谱能量,确定每个子频谱对应的第一初始频谱能量一种可能的实现方式为:将每个子频谱分别对应的N个初始低频频域系数的频谱能量的平均值即平均能量,确定为每个子频谱对应的第一初始频谱能量。每个初始低频频域系数的频谱能量定义为初始低频频域系数的实部平方与虚部平方的和。作为一个示例,比如初始低频频域系数有70个频谱系数、N=5、L=14,则每个子频谱各自对应的第一频谱能量可以通过如下公式(2)计算得到:
其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,69),k=0,1,…,13,为子带索引,分别对应表示14个子带,Pe(k)表示第k个子频谱对应的第一初始频谱能量,SLow(i,j)为根据时频变换得到的低频频域系数(即初始低频频域系数)。
具体地,在得到每个子频谱各自对应的第一频谱能量后,可以基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益。在确定每个子频谱对应的第二滤波增益的过程中,可以先将初始频谱对应的频带划分为第一子带和第二子带;接着根据第一子带所对应的所有子频谱的第一频谱能量,确定出第一子带的第一子带能量,根据第二子带所对应的所有子频谱的第一频谱能量,确定出第二子带的第二子带能量;接着根据第一子带能量与第二子带能量,确定初始频谱的频谱倾斜系数;接着根据频谱倾斜系数及每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益。
其中,对于初始低频频谱而言(也就是初始频谱为初始低频频谱时),初始频谱对应的频带即为初始低频频域系数(比如70个)分别对应的频带的和,在将初始低频频域系数对应的频带划分为第一子带和第二子带的过程中,可以将第1个至第35个(对应j的取值为0~34)初始低频频域系数分别对应的频带的和作为第一子带,将第36个至第70个(对应j的取值为35~69)初始低频频域系数分别对应的频带的和作为第二子带,即第一子带对应着初始频谱中的第1个至第35个初始低频频域系数,第二子带对应着初始频谱中的第36个至第70个初始低频频域系数。假如N=5,即将每5个初始低频频域系数划分为一个子频谱,则第一子带包括7个子频谱,第二子带也包括7个子频谱,于是,可以根据第一子带包括的7个子频谱的第一频谱能量的和,确定出第一子带的第一子带能量,也可以根据第二子带包括的7个子频谱的第一频谱能量的和,确定出第二子带的第二子带能量。
具体地,当窄带信号为当前语音帧的语音信号时,对于每一个子频谱,确定其对应的第一频谱能量的一种可能的方式为:根据上述公式(2)确定每个子频谱分别对应的第一初始频谱能量Pe(k)。若当前语音帧为第一个语音帧,则可以基于每个子频谱的第一初始频谱能量Pe(k)确定该每个子频谱的第一频谱能量(记作Fe(k)),可选的,对于第一个语音帧,可以将其每个子频谱的第一初始频谱能量作每个子频谱的第一频谱能量,即Fe(k)=Pe(k),也可以是基于每个子频谱的初始频谱能量以及预设的计算规则,确定每个子频谱的第一频谱能量,如可以根据下文中公式(3)或公式(4)中的方式来确定。若当前语音帧不是第一个语音帧,在确定第k个子频谱的第一频谱能量的过程中,则可以获取关联语音帧的与该第k个子频谱相对应的子频谱的第一初始频谱能量,将该第一初始频谱能量记作Pepre(k),其中,该关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧(比如1个、2个)。在获取到关联语音帧的与第k个子频谱相对应的子频谱的第一初始频谱能量之后,可以基于当前语音帧的一个子频谱的第一初始频谱能量与关联语音帧的与该子频谱相对应的子频谱的第一初始频谱能量,得到当前语音帧的该子频谱的第一频谱能量。
在一个示例中,可以根据如下公式(3)确定第k个子频谱的第一频谱能量:
Fe(k)=1.0+Pe(k)+Pepre(k) (3)
其中,Pe(k)为第k个子频谱的第一初始频谱能量,Pepre(k)为关联语音帧的与第k个子频谱对应的子频谱的第一初始频谱能量,Fe(k)为第k个子频谱的第一频谱能量。
可以理解的是,对于初始语音帧即第一个语音帧而言,由于不存在第一个语音帧的关联语音帧,在实际应用中,则可以初始化一个初始频谱能量作为第一语音帧的关联语音帧的第一初始频谱能量,即第一个语音帧所对应的Pepre(k)可以为初始化的第一初始频谱能量(初始化的能量值)。
需要说明的是,在上述公式(3)中的关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的一个语音帧。当关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的两个或多个语音帧时,可以根据需要对上述公式(3)进行适当调整,比如,当关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的两个语音帧时,上述公式(3)可相应调整为:Fe(k)=1.0+Pe(k)+Pepre1(k)+Pepre2(k),该Pepre1(k)是位于当前语音帧之前、且与当前语音帧紧邻的第一个语音帧的第一初始频谱能量,Pepre2(k)是位于该第一个语音帧之前、且与该第一个语音帧紧邻的语音帧的第一初始频谱能量。
本申请的可选实施例中,关联语音帧为当前语音帧的前一语音帧,若当前语音帧为第一个语音帧,基于该一个子频谱的第一初始频谱能量确定该一个子频谱的第一频谱能量,包括:
基于该一个子频谱的第一初始频谱能量和初始化的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
基于该一个子频谱的第二频谱能量和初始化的第一频谱能量,确定该一个子频谱的第一频谱能量;
若该当前语音帧不是第一个语音帧,基于该一个子频谱的第一初始频谱能量和关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,得到该一个子频谱的第一频谱能量,包括:
基于该一个子频谱的第一初始频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
根据该一个子频谱的第二频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一频谱能量,确定该一个子频谱的第一频谱能量。
该可选方案中,关联语音帧具体可以为当前语音帧的前一语音帧,在根据上述公式(3)所对应的方案得到第k个子频谱的第一频谱能量之后,可以对该第一频谱能量进行平滑,在确定出平滑后的第一频谱能量Fe_sm(k)之后,可以将Fe_sm(k)确定为第k个子频谱的第一频谱能量。为了将采用上述基于初始频谱能量确定第一频谱能量的方案(公式(3)的示例所对应的方案)确定出的第一频谱能量,与本示例中再进一步进行平滑处理后的第一频谱能量进行区分,本可选方案中,将上述将采用上述基于初始频谱能量确定第一频谱能量的方案(公式(3)的示例所对应的方案)确定出的第一频谱能量称为第二频谱能量,将进一步平滑处理后的频谱能量称为第一频谱能量。基于该可选方案,实现了基于历史语音帧的不断累加的平滑结果对当前语音帧的频谱能量进行平滑处理的效果。
作为一个示例,可以根据如下公式(4)对该第二频谱能量(如采用公式(3)确定出的第一频谱能量)进行平滑,得到第一频谱能量:
Fe_sm(k)=(Fe(k)+Fepre_sm(k))/2 (4)
其中,Fe(k)为第k个子频谱的第二频谱能量,Fepre_sm(k)为关联语音帧(本示例中的前一语音帧)的与第k个子频谱对应的子频谱的第一频谱能量,Fe_sm(k)为平滑后的第一频谱能量即本示例中的第一频谱能量。在确定出平滑后的第一频谱能量Fe_sm(k)之后,可以将Fe_sm(k)确定为第k个子频谱的第一频谱能量。
可见,作为可选的实施方案,对于一个子频谱,如对于第k个子频谱,其第一频谱能量可以是该子频谱的初始频谱能量(即上述Pe(k)),也可以是基于初始频谱能量进行短时平滑处理后的频谱能量(即上述Fe(k)),还可以是经过长时平滑处理后的频谱能量(即上述Fe_sm(k))。
可以理解的,对于下文有关第一频谱能量的描述中,第一频谱能量可以是上述三种形式中的任一种,有些示例中可以能仅一其中一种形式进行了描述,但对于本领域技术人员而言清楚的是,作为不同的可选方案,这些描述中是可以将其中一种形式的第一频谱能量替换为另一种形式的。
具体地,在根据上述过程确定出每个子频谱的第一频谱能量Fe(k)或Fe_sm(k)之后,当每个子频谱的第一频谱能量为Fe(k)时,可以根据如下公式(5)确定出第一子带的第一子带能量与第二子带的第二子带能量:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量。
当每个子频谱的第一频谱能量为Fe_sm(k)时,可以根据如下公式(6)确定出第一子带的第一子带能量与第二子带的第二子带能量:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量。
具体地,在确定出第一子带能量与第二子带能量后,可以根据第一子带能量与第二子带能量,确定初始频谱的频谱倾斜系数。在实际应用中,作为一可选方案,可以根据如下逻辑来确定初始频谱的频谱倾斜系数:
当第二子带能量大于或等于第一子带能量时,将初始频谱倾斜系数确定为0,当第二子带能量小于第一子带能量时,可以根据下述表达式确定初始频谱倾斜系数:
T_para_0=8*f_cont_low*SQRT((e1-e2)/(e1+e2)
其中,T_para_0为初始频谱倾斜系数,f_cont_low为预先设定的滤波系数,作为可选方案,f_cont_low=0.035,SQRT为开根号操作,e1为第一子带能量,e2为第二子带能量。
具体地,在根据上述方式得到初始频谱倾斜系数T_para_0后,可以将上述的初始频谱系数作为初始频谱的频谱倾斜系数,也可以进一步根据以下方式对得到的初始频谱倾斜系数进行优化,并将优化后的初始频谱倾斜系数作为初始频谱的频谱倾斜系数,在一示例中,优化后的表达式为:
T_para_1=min(1.0,T_para_0)
T_para_2=T_para_1/7
其中,min表示取最小值,T_para_1为初始优化后的频谱倾斜系数,T_para_2为最终优化后的频谱倾斜系数,可以将T_para_2作为初始频谱的频谱倾斜系数。
具体地,在确定出初始频谱的频谱倾斜系数后,可以根据频谱倾斜系数及每个子频谱各自对应的第一频谱能量,确定每个子频谱分别对应的第二滤波增益。在一示例中,可以根据如下公式(7-1)或公式(7-2),确定第k个子频谱对应的第二滤波增益:
gainf0(k)=Fe(k)f_cont_low (7-1)
gainf0(k)=Fe_sm(k)f_cont_low (7-2)
其中,gainf0(k)为第k个子频谱对应的第二滤波增益(初始滤波增益);Fe(k)和Fe_sm(k)为第k个子频谱的第一频谱能量;f_cont_low为预先设定的滤波系数,作为可选方案,f_cont_low=0.035;k=0,1,…,13,为子带索引,分别对应表示上述14个子带。由公式(7-1)和公式(7-2)可以看出,公式(7-1)的方案是将基于公式(3)中所对应的示例方案中所确定的频谱能量最为子频谱的第一频谱能量,公式(7-2)的方案则是将基于公式(4)中所对应的示例方案中所确定的频谱能量最为子频谱的第一频谱能量。
在确定出第k个子频谱对应的第二滤波增益gainf0(k)之后,如果上述的初始频谱的频谱倾斜系数不为正,则可以直接将gainf0(k)作为第k个子频谱对应的第二滤波增益,如果上述的初始频谱的频谱倾斜系数为正,则可以根据初始频谱的频谱倾斜系数,对该第二滤波增益gainf0(k)进行调整,并将调整后的第二滤波增益gainf0(k)作为第k个子频谱对应的第二滤波增益。在一示例中,可以根据如下公式(8)对第二滤波增益gainf0(k)进行调整:
gainf1(k)=gainf0(k)*(1+k*Tpara) (8)
其中,gainf1(k)为调整后的第k个子频谱的第二滤波增益,gainf0(k)为第k个子频谱对应的调整前的第二滤波增益即初始滤波增益,Tpara为频谱倾斜系数,k=0,1,…,13,为子带索引,分别对应表示14个子带。
具体地,在确定出第k个子频谱对应的第二滤波增益gainf1(k)后,可以对gainf1(k)进一步调整,并将优化后的gainf1(k)作为最终的第k个子频谱对应的第二滤波增益。在一示例中,可以根据如下公式(9)对第二滤波增益gainf1(k)进行调整:
gainpre_filt(k)=(1+gainf1(k))/2 (9)
其中,gainpre_filt(k)为最终得到的第k个子频谱对应的第二滤波增益,gainf1(k)为根据公式(8)调整后的第二滤波增益,k=0,1,…,13,表示子带索引,分别对应表示14个子带,从而得到14个子带分别对应的滤波增益(即上述的第二滤波增益)。
具体地,上述是以将5个初始低频频域系数划分为一个子带,即将70个初始低频频域系数划分为14个子带,每个子带包括5个初始低频频域系数为例,对计算初始低频频域系数的第一滤波增益进行介绍。上述得到的每个子带对应的第二滤波增益,即为该每个子带对应的5个初始低频频域系统的滤波增益,从而可以根据14个子带的第二滤波增益,得到70个初始低频频域系数对应的第一滤波增益为[gainpre_filt(0),gainpre_filt(1),…,gainpre_filt(14)],换言之,在确定出第k个子频谱对应的第二滤波增益gainpre_filt(k)后,可以得到前述的第一滤波增益值,其中,第一滤波增益包括第一数量(L,比如14)的第二滤波增益gainpre_filt(k),第二滤波增益gainpre_filt(k)为第k个子频谱对应的N个频谱系数的滤波增益。
在本申请实施例的可选方案中,相关性参数包括高频频谱包络和相对平坦度信息;神经网络模型至少包括输入层和输出层,输入层输入低频频谱的特征向量,输出层至少包括单边长短期记忆网络LSTM层以及分别连接LSTM层的两个全连接网络层,每个全连接网络层包括至少一个全连接层,其中,LSTM层将输入层处理后的特征向量进行转换,其中一个全连接网络层根据LSTM层转换后的向量值进行第一分类处理,并输出高频频谱包络,另一个全连接网络层根据LSTM层转换后的向量值进行第二分类处理,并输出相对平坦度信息。
具体地,当时频变换为傅里叶变换(比如STFT)时,在对初始频谱进行滤波处理,得到低频频谱后,可以再根据低频频谱得到窄带信号的低频幅度谱,在得到低频幅度谱之后,可以再根据低频幅度谱,确定窄带信号的低频频谱包络,即基于低频频谱,确定窄带信号的低频频谱包络。当时频变换为离散余弦变换(比如MDCT)时,在对初始频谱进行滤波处理,得到低频频谱后,可以再根据低频频谱得到窄带信号的低频频谱包络,即基于低频频谱,确定窄带信号的低频频谱包络。其中,在确定出窄带信号的低频频谱包络之后,可以将该低频频谱包络作为神经网络模型的输入,即神经网络模型的输入还包括低频频谱包络。
具体地,为了使输入神经网络模型的数据更丰富,还可以选择与低频部分的频谱相关的参数作为神经网络模型的输入,窄带信号的低频频谱包络是与信号的频谱相关的信息,则可以将低频频谱包络作为神经网络模型的输入,从而可以基于低频频谱包络和低频频谱得到更加准确的相关性参数(时频变换为MDCT的情况),即将低频频谱包络和低频频谱输入至神经网络模型,可以得到相关性参数,或者基于低频频谱包络和低频幅度谱得到更加准确的相关性参数(时频变换为STFT的情况),从而将低频频谱包络和低频幅度谱输入至神经网络模型,可以得到相关性参数。
一种情况,当时频变换为傅里叶变换(比如STFT)时,在得到低频频谱之后,即可基于低频频谱,确定窄带信号的低频幅度谱,具体的,可以通过以下公式(10)计算得到低频幅度谱:
PLow(i,j)=SQRT(Real(SLow_rev(i,j))2+Imag(SLow_rev(i,j))2) (10)
其中,PLow(i,j)表示低频幅度谱,SLow_rev(i,j)为低频频谱,Real和Imag分别为低频频谱的实部和虚部,SQRT为开根号操作。若窄带信号为采样率为8000Hz,有效带宽为0~3500Hz的信号,则可以基于窄带信号的采样率和帧长,通过低频频域系数确定70个低频幅度谱的谱系数(低频幅度谱系数)PLow(i,j),j=0,1,…69。在实际应用中,可以直接将计算出的70个低频幅度谱系数作为窄带信号的低频幅度谱,进一步地,为了计算方便,也可以进一步将低频幅度谱转换到对数域,即对通过公式(10)计算得到的幅度谱进行对数运算,将对数运算后的幅度谱作为后续处理时的低频幅度谱。
其中,在根据公式(10)得到包含70个系数的低频幅度谱之后,即可基于低频幅度谱确定出窄带信号的低频谱包络。
在本申请实施例的可选方案中,该方法还可以包括:
将低频幅度谱划分为第四数量的子幅度谱;
分别确定每个子幅度谱对应的子频谱包络,低频频谱包络包括确定出的第四数量的子频谱包络。
具体地,将低频幅度谱的谱系数划分为第四数量(记作M个)的子幅度谱的一种可实现方式为:对窄带信号进行分带处理,得到M个子幅度谱,每个子带可以对应相同或不同数量的子幅度谱的谱系数,所有子带对应的谱系数的总数量等于低频幅度谱的谱系数的个数。
在划分为M个子幅度谱后,可以基于每个子幅度谱,确定每个子幅度谱对应的子频谱包络,其中,一种可实现方式为:基于每个子幅度谱对应的低频幅度谱的谱系数,可以确定每个子带的子频谱包络,即每个子幅度谱对应的子频谱包络,M个子幅度谱可以对应确定出M个子频谱包络,则低频频谱包络包括确定出的M个子频谱包络。
作为一个示例,比如,对于上述70个低频幅度谱的谱系数(可以是基于公式(10)计算出的系数,也可以是基于公式(10)计算出之后再转换到对数域的系数),如果每个子带包含相同数量的谱系数,比如5个,记作N=5,则每5个子幅度谱的谱系数对应的频带可以划分为一个子带,此时共划分为14(M=14)个子带,每个子带对应有5个谱系数。则在划分14个子幅度谱之后,可基于该14个子幅度谱对应确定出14个子频谱包络。
其中,确定每个子幅度谱对应的子频谱包络,可以包括:
基于每个子幅度谱所包括的谱系数的对数取值,得到每个子幅度谱对应的子频谱包络。
具体地,基于每个子幅度谱的谱系数,通过公式(11)确定每个子幅度谱对应的子频谱包络。
其中,公式(11)为:
其中,eLow(i,k)表示子频谱包络,i为语音帧的帧索引,k表示子带的索引号,共M个子带,k=0,1,2……M,则低频频谱包络中包括M个子频谱包络。
一般地,子带的谱包络定义为相邻系数的平均能量(或者进一步转换成对数表示),但是该方式,有可能会导致幅值较小的系数不能够起到实质性的作用,本申请实施例提供的该种将每个子幅度谱所包括的谱系数的对数标识直接求平均,得到子幅度谱对应的子频谱包络的方案,与现有常用的包络确定方案相比,可以更好的在神经网络模型训练过程的失真控制中保护好幅值较小的系数,从而使更多的信号参数能够在频带扩展中起到相应的作用。
由此,如果将低频幅度谱和低频频谱包络作为神经网络模型的输入,低频幅度谱为70维的数据,低频频谱包络为14维的数据,则模型的输入为84维的数据,由此,本方案中的神经网络模型的体积小,复杂度低。
另一种情况,当时频变换为离散余弦变换(比如MDCT)时,在得到低频频谱之后,即可基于低频频谱,确定窄带信号的低频频谱包络。具体的,可以通过对窄带信号进行分带,针对70个低频频域系数,可以将每5个相邻的低频频域系数对应的频带划分为一个子带,共划分为14个子带,每个子带对应有5个低频频域系数。对于每个子带,该子带的低频频谱包络定义为相邻低频频域系数的平均能量。具体可通过公式(12)计算得到:
其中,eLow(i,k)表示子频谱包络(每个子带的低频频谱包络),SLow_rev(i,j)为低频频谱,k表示子带的索引号,共14个子带,k=0,1,2……13,则低频频谱包络中包括14个子频谱包络。
由此,可以将70维的低频频域系数SLow_rev(i,j)和14维的低频频谱包络eLow(i,k)作为神经网络模型的输入,即神经网络模型的输入为84维的数据。
在本申请实施例的可选方案中,若时频变换为傅里叶变换,在基于相关性参数和低频频谱,得到目标高频频谱的过程中,可以包括:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频幅度谱,生成初始高频幅度谱;
基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整,得到目标高频幅度谱;
基于窄带信号的低频相位谱,生成相应的高频相位谱;
根据目标高频幅度谱和高频相位谱,得到目标高频频谱;
若时频变换为离散余弦变换,在基于相关性参数和低频频谱,得到目标高频频谱的过程中,可以包括:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频频谱,生成初始高频频谱;
基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整,得到目标高频频谱。
具体地,当时频变换为傅里叶变换时,上述基于窄带信号的低频相位谱生成相应的高频相位谱的方式可以包括但不限于以下任一种:
第一种:通过复制低频相位谱,得到相应的高频相位谱。
第二种:对低频相位谱进行翻折,翻折后得到一个与低频相位谱相同的相位谱,将这两个低频相位谱映射到相应的高频频点,得到相应的高频相位谱。
具体地,当时频变换为傅里叶变换时,在基于低频幅度谱,生成初始高频幅度谱的过程中,可以是通过对低频幅度谱进行复制得到初始高频幅度谱。可以理解的是,在实际应用中,对低频幅度谱进行复制的具体方式,根据最后需要得到的宽带信号的频带宽度、进行复制的所选择的低频幅度谱部分的频带宽度的不同,复制方式也会不同。例如,假设宽带信号的频带宽度为窄带信号的2倍,且选择对窄带信号全部的低频幅度谱进行复制,则只需进行一次复制,如果选择对窄带信号部分的低频幅度谱进行复制,则需要根据所选择的部分对应的频带宽度,进行相应次数的复制,如选择窄带信号1/2的低频幅度谱进行复制,则需要复制2次,如果选择窄带信号1/4的低频幅度谱进行复制,则需要复制4次。
作为一个示例,比如,扩展后的宽带信号的带宽为7kHz,所选择进行复制的低频幅度谱对应的带宽为1.75kHz,则基于低频幅度谱对应的带宽和扩展后的宽带信号的带宽,可以将低频幅度谱对应的带宽复制3次,得到初始高频幅度谱对应的带宽(5.25kHz)。如果所选择进行复制的低频幅度谱对应的带宽为3.5kHz,扩展后的宽带信号的带宽为7kHz,则将低频幅度谱对应的带宽复制1次即可得到初始高频幅度谱对应的带宽(3.5kHz)。
具体地,当时频变换为离散余弦变换时,在基于低频频谱,生成初始高频频谱的过程中,可以对低频频谱进行复制得到初始高频频谱。其中,对低频频谱进行复制的过程,与傅里叶变换下的对低频幅度谱进行复制得到初始高频幅度谱的过程类似,在此不再赘述。
需要说明的是,当时频变换为离散正弦变换、小波变换等时,在生成初始高频幅度谱的过程中,可以根据需要参考上述的傅里叶变换的初始高频幅度谱的生成过程;当然,在生成初始高频频谱的过程中,也可以根据需要参考上述的离散余弦变换的初始高频频谱的生成过程,在此不再赘述。
本申请的可选实施方式中,基于低频幅度谱,生成初始高频幅度谱的一种实现方式可以为:对低频幅度谱中高频段部分的幅度谱进行复制,得到初始高频幅度谱;基于低频频谱,生成初始高频频谱的一种实现方式可以为:对低频频谱中高频段部分的频谱进行复制,得到初始高频频谱。
具体地,当时频变换为傅里叶变换时,由于得到的低频幅度谱的低频段部分包含大量谐波,影响扩展后宽带信号的信号质量,因此,可以选择低频幅度谱中高频段部分的幅度谱进行复制,以得到初始高频幅度谱。
作为一个示例,如前述场景为例,进行继续说明,低频幅度谱共对应70个频点,如果选择低频幅度谱对应的35-69个频点(频幅度谱中高频段部分的幅度谱)作为待复制的频点,即“母板”,且扩展后的宽带信号的带宽为7000Hz,则需要对所选择的低频幅度谱对应的频点进行复制得到包含70个频点的初始高频幅度谱,为了得到该包含70个频点的初始高频幅度谱,可以将低频幅度谱对应的35-69,共计35个频点复制两次,生成初始高频幅度谱。同样的,如果选择低频幅度谱对应的0-69个频点作为待复制的频点,且扩展后的宽带信号的带宽为7000Hz,则可将低频幅度谱对应的0-69,共计70个频点复制一次,生成初始高频幅度谱,该初始高频幅度谱共包括70个频点。
由于低频幅度谱对应的信号中可能包含大量的谐波,仅通过复制得到的初始高频幅度谱对应的信号中同样会包含大量的谐波,则为了减少频带扩展后的宽带信号中的谐波,可以通过高频频谱包络和低频频谱包络的差值对初始高频幅度谱进行调整,将调整后的初始高频幅度谱作为目标高频幅度谱,可以减少最终频点扩展后得到的宽带信号中的谐波。
具体地,当时频变换为离散余弦变换时,同样由于低频频谱的低频段部分包含大量谐波,影响扩展后宽带信号的信号质量,因此,可以选择低频频谱中高频段部分的频谱进行复制,以得到初始高频频谱,这与傅里叶变换情况下的对低频幅度谱中高频段部分的幅度谱进行复制,得到初始高频幅度谱的过程类似,在此不再赘述。
需要说明的是,当时频变换为离散正弦变换、小波变换等时,在生成初始高频幅度谱的过程中,可以根据需要参考上述的傅里叶变换的初始高频幅度谱的生成过程;当然,在生成初始高频频谱的过程中,也可以根据需要参考上述的离散余弦变换的初始高频频谱的生成过程,在此不再赘述。
本申请实施例的可选方案中,高频频谱包络和低频频谱包络均为对数域的频谱包络;
基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整,得到目标高频幅度谱,可以包括:
确定高频频谱包络和低频频谱包络的第一差值;
基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱;
基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整,包括:
确定高频频谱包络和低频频谱包络的第二差值;
基于第二差值对初始高频频谱进行调整,得到目标高频频谱。
具体地,可以将高频频谱包络和低频频谱包络通过对数域的频谱包络表示,当时频变换为傅里叶变换时,可基于对数域的频谱包络确定出的第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱;当时频变换为离散余弦变换时,可基于对数域的频谱包络确定出的第二差值对初始高频频谱进行调整,得到目标高频频谱。其中,可以通过对数域的频谱包络来表示高频频谱包络和低频频谱包络,以便于计算。
需要说明的是,当时频变换为离散正弦变换、小波变换等时,在确定目标高频幅度谱的过程中,可以根据需要参考上述的傅里叶变换的目标高频幅度谱的生成过程;当然,在确定目标高频频谱的过程中,也可以根据需要参考上述的离散余弦变换的目标高频频谱的生成过程,在此不再赘述。
本申请实施例的可选方案中,若低频频谱是通过傅里叶变换得到的,高频频谱包络包括第二数量的第一子频谱包络,初始高频幅度谱包括第二数量的第一子幅度谱,其中,每个第一子频谱包络是基于初始高频幅度谱中对应的第一子幅度谱确定的。若低频频谱是通过离散余弦变换得到的,高频频谱包络包括第三数量的第二子频谱包络,初始高频频谱包括第三数量的第一子频谱,其中,每个第二子频谱包络是基于初始高频频谱中对应的第一子频谱确定的。
具体地,(1)当时频变换是傅里叶变换时,子频谱包络是基于相对应的幅度谱中对应的子幅度谱确定的,一个第一子频谱包络可以基于相对应的初始高频幅度谱中对应的子幅度谱确定。每个子幅度谱对应的谱系数的数量可以是相同的,也可以是不同的,如果每个第一子频谱包络是基于相对应的幅度谱中对应的子幅度谱确定,则每个第一子频谱包络对应的幅度谱中的子幅度谱的谱系数的数量也可以是不同的。(2)当时频变换为离散余弦变换时,子频谱包络是基于相对应的频谱中对应的子频谱确定的,一个第二子频谱包络可以基于相对应的初始高频频谱中对应的子频谱确定。
需要说明的是,当时频变换为离散正弦变换、小波变换等时,可以根据需要参考上述的傅里叶变换的子频谱包络的确定方式,来得到子频谱包络,当然,也可以根据需要参考上述的离散余弦变换的子频谱包络的确定方式,来得到子频谱包络,在此不再赘述。
基于前述场景为例,进行继续说明,若时频变换是傅里叶变换,神经网络模型的输出为14维的高频频谱包络(第二数量为14),神经网络模型的输入包括低频幅度谱和低频频谱包络,其中,低频幅度谱包含70维低频频域系数,低频频谱包络包含14维子频谱包络,则神经网络模型的输入为84维的数据,输出维度远小于输入维度,可以减小神经网络模型的体积和深度,同时降低模型的复杂度。若时频变换是离散余弦变换,神经网络模型的输入、输出,与上述傅里叶变换下的神经网络模型类似,在此不再赘述。
进一步地,若时频变换为傅里叶变换,确定高频频谱包络和低频频谱包络的第一差值,基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱,可以包括:
确定每个第一子频谱包络与低频频谱包络中对应的频谱包络(下文将该低频频谱包络中对应的频谱包络记作第三子频谱包络)的第一差值;
基于每个第一子频谱包络所对应的第一差值,对对应的第一子幅度谱进行调整,得到第二数量的调整后的第一子幅度谱;
基于第二数量的调整后的第一子幅度谱,得到目标高频幅度谱。
进一步地,时频变换为离散余弦变换,确定高频频谱包络和低频频谱包络的第二差值,基于第二差值对初始高频频谱进行调整,得到目标高频频谱,包括:
确定每个第二子频谱包络与低频频谱包络中对应的频谱包络(下文将该低频频谱包络中对应的频谱包络记为第四子频谱包络)的第二差值;
基于每个第二子频谱包络所对应的第二差值,对对应的第一子频谱进行调整,得到第三数量的调整后的第一子频谱;
基于第三数量的调整后的第一子频谱,得到目标高频频谱。
具体地,当时频变换是傅里叶变换时,通过神经网络模型得到的高频频谱包络可以包括第二数量的第一子频谱包络,通过前文描述可知,这第二数量的第一子频谱包络是基于低频幅度谱中对应的子幅度谱确定的,即一个子频频谱包络是基于低频幅度谱中对应的一个子幅度谱确定的。基于前述场景为例,进行继续说明,低频幅度谱中的子幅度谱为14个,则高频频谱包络包括14个子频谱包络。
其中,高频频谱包络和低频频谱包络的第一差值即为每一个第一子频谱包络与对应的第三子频谱包络的差值,基于第一差值对高频频谱包络进行调整则是基于每个第一子频谱包络与对应的第三子频谱包络的第一差值对对应的第一子幅度谱进行调整。基于前述场景为例,进行继续说明,如果高频频谱包络包括14个第一子频谱包络,低频频谱包络包括14个第二子频谱包络,则可以基于确定出的14个第二子频谱包络与对应的14个第一子频谱包络,确定出14个第一差值,基于这14个第一差值,对对应的子带对应的第一子幅度谱进行调整。
具体地,当时频变换是离散余弦变换时,通过神经网络模型得到的高频频谱包络可以包括第三数量的第二子频谱包络,高频频谱包络和低频频谱包络的第二差值即为每一个第二子频谱包络与对应的第四子频谱包络的差值。基于第二差值对高频频谱包络进行调整的过程中,与时频变换是傅里叶变换的情况下,基于第一差值对高频频谱包络进行调整的过程类似,在此不再赘述。
需要说明的是,当时频变换为离散正弦变换、小波变换等时,可以根据需要参考上述的傅里叶变换的高频频谱包络的调整过程,来调整相应的高频频谱包络,当然,也可以根据需要参考上述的离散余弦变换的高频频谱包络的调整过程,来调整相应的高频频谱包络,在此不再赘述。
在本申请实施例的可选方案中,相关性参数还包括相对平坦度信息,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
确定高频频谱包络和低频频谱包络的第一差值或第二差值,可以包括:
基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值;
基于增益调整值对高频频谱包络进行调整,得到调整后的高频频谱包络;
确定调整后的高频频谱包络和低频频谱包络的第一差值或第二差值。
具体地,基于前文的描述,在神经网络模型训练的过程中,标注结果可以包括相对平坦度信息,即样本数据的样本标签包括样本宽带信号的高频部分与低频部分的相对平坦度信息,该相对平坦度信息是基于样本宽带信号的频谱的高频部分与低频部分确定的,因此,在神经网络模型应用时,在模型的输入为窄带信号的低频频谱时,可以基于该神经网络模型的输出预测出目标宽频频谱的高频部分与低频部分的相对平坦度信息。
其中,相对平坦度信息可以反应出目标宽频频谱的高频部分与低频部分的相对频谱平坦度,即高频部分相对于低频部分的频谱是否是平坦的,如果相关性参数中还包括相对平坦度信息,则可以先基于相对平坦度信息和低频频谱的能量信息对高频频谱包络进行调整,再基于调整后的高频频谱包络和低频频谱包络的差值对初始高频频谱进行调整,使得最终得到的宽带信号中的谐波更少。其中,低频频谱的能量信息可以基于低频幅度谱的谱系数确定得到,低频频谱的能量信息可以表示频谱平坦度。
本申请的可选实施例中,上述相关性参数可以包括高频频谱包络和相对平坦度信息,神经网络模型至少包括输入层和输出层,输入层输入低频频谱参数的特征向量(该特征向量包括70维低频幅度谱和14维低频频谱包络),输出层至少包括单边长短期记忆网络(LSTM,Long Short-Term Memory)层以及分别连接LSTM层的两个全连接网络层,每个全连接网络层可以包括至少一个全连接层,其中,LSTM层将输入层处理后的特征向量进行转换,其中一个全连接网络层根据LSTM层转换后的向量值进行第一分类处理,并输出高频频谱包络(14维),另一个全连接网络层根据LSTM层转换后的向量值进行第二分类处理,并输出相对平坦度信息(4维)。
作为一个示例,图2中示出了本申请实施例提供的一种神经网络模型的结构示意图,如图中所示,该神经网络模型主要可以包括两个部分:单边LSTM层和两个全连接层,即该示例中的每个全连接网络层包括一个全连接层,其中,一个全连接层的输出为高频频谱包络,另一个全连接层的输出为相对平坦度信息。
其中,LSTM层是一种循环神经网络,其输入为上述低频频谱参数的特征向量(可以简称为输入向量),通过LSTM将输入向量进行处理,得到一定维度的隐向量,该隐向量分别作为两个全连接层的输入,由两个全连接层分别进行分类预测处理,由一个全连接层预测输出一个14维的列向量,该输出即对应为高频频谱包络,由另一个全连接层预测输出一个4维的列向量,该向量的4个维度的值即为前文所描述的4个概率值,4个概率值分别表征了相对平坦度信息为上述4个数组的概率。
在一个示例中,当时频变换为傅里叶变换(比如STFT)时,可以先根据滤波处理后的70维的低频频谱SLow_rev(i,j),得到70维的窄带信号的低频幅度谱PLow(i,j)这一特征向量,接着将PLow(i,j)作为神经网络模型的一个输入,同时将根据PLow(i,j)计算得到的14维的低频频谱包络eLow(i,k)这一特征向量,作为神经网络模型的另一个输入,即神经网络模式的输入层为84维的特征向量。神经网络模型通过LSTM层(比如包括256个参数)对该84维的特征向量进行转换处理,得到转换处理后的向量值,并通过与LSTM层连接的一个全连接网络层(比如包括512个参数),对转换处理后的向量值进行分类处理(即第一分类处理),输出14维的高频频谱包络eHigh(i,k),同时通过LSTM层连接的另一个全连接网络层(比如包括512个参数),对转换处理后的向量值进行分类处理(即第二分类处理),输出4个相对平坦度信息。
在另一个示例中,当时频变换为离散余弦变换(比如MDCT)时,可以将滤波处理后的70维的低频频谱SLow_rev(i,j)这一特征向量作为神经网络模型的一个输入,同时将根据SLow_rev(i,j)得到的14维的低频频谱包络eLow(i,k)这一特征向量,作为神经网络模型的另一个输入,即神经网络模式的输入层为84维的特征向量。神经网络模型通过LSTM层(比如包括256个参数)对该84维的特征向量进行转换处理,得到转换处理后的向量值,并通过与LSTM层连接的一个全连接网络层(比如包括512个参数),对转换处理后的向量值进行分类处理(即第一分类处理),输出14维的高频频谱包络eHigh(i,k),同时通过LSTM层连接的另一个全连接网络层(比如包括512个参数),对转换处理后的向量值进行分类处理(即第二分类处理),输出4个相对平坦度信息。
在本申请实施例的可选方案中,相对平坦度信息包括对应于高频部分的至少两个子带区域的相对平坦度信息,一个子带区域所对应的相对平坦度信息,表征了高频部分的一个子带区域的频谱平坦度与低频部分的高频频段的频谱平坦度的相关性。
其中,相对平坦度信息是基于样本宽带信号的频谱的高频部分与低频部分确定的,由于样本窄带信号的低频部分的低频频段包含的谐波更为丰富,因此,可以选择样本窄带信号的低频部分的高频频段作为确定相对平坦度信息的参考,将该低频部分的高频频段作为母版,将样本宽带信号的高频部分划分为至少两个子带区域,每个子带区域的相对平坦度信息是基于相对应的子带区域的频谱和低频部分的频谱确定的。
基于前文的描述,在神经网络模型训练的过程中,标注结果可以包括每个子带区域的相对平坦度信息,即样本数据的样本标签可以包括样本宽带信号的高频部分的各个子带区域与低频部分的相对平坦度信息,该相对平坦度信息是基于样本宽带信号的高频部分的子带区域的频谱与低频部分的频谱确定的,因此,在神经网络模型应用时,在模型的输入为窄带信号的低频频谱时,可以基于该神经网络模型的输出预测出目标宽频频谱的高频部分的子带区域与低频部分的相对平坦度信息。
具体地,若高频部分包括对应于至少两个子带区域的谱参数,每个子带区域的谱参数是基于低频部分的高频频段的谱参数确定的,相应的,相对平坦度信息可以包括每个子带区域的谱参数与低频部分的高频频段的谱参数的相对平坦度信息,其中,谱参数为幅度谱或所述频谱。其中,当时频变换是傅里叶变换时,谱参数为幅度谱,当时频变换是离散余弦变换时,谱参数为频谱。
其中,为了达到频带扩展的目的,目标宽频频谱的低频部分的幅度谱的谱系数的个数可以与高频部分的幅度谱的谱系数的个数相同,也可以不同,每个子带区域对应的谱系数的数量可以相同,也可以不同,只要至少两个子带区域对应的谱系数的总数量与初始高频幅度谱对应的谱系数的数量一致即可。
作为一个示例,当时频变换是傅里叶变换时,比如,高频部分包括对应的至少两个子带区域为2个子带区域,分别为第一子带区域和第二子带区域,低频部分的高频频段为第35个至第69个频点所对应的频段,第一子带区域对应谱系数的数量与第二子带区域对应的谱系数的数量相同,第一子带区域和第二子带区域对应的谱系数的总数量与低频部分对应的谱系数的数量一致,则第一子带区域对应的频段是第70个至第104个频点对应的频段,第二子带区域对应的频段是第105个至第139个频点对应的频段,每个子带区域的幅度谱的谱系数的个数为35个,与低频部分的高频频段的幅度谱的谱系数的个数相同。如果选择的低频部分的高频频段为第56个至第69个频点所对应的频段,则可以将高频部分划分为5个子带区域,每个子带区域对应14个谱系数。需要说明的是,当时频变换是离散余弦变换时,高频部分包括对应于至少两个子带区域的频谱的情况,与本示例中时频变换是傅里叶变换时,高频部分包括对应于至少两个子带区域的幅度谱的情况类似,在此不再赘述。
具体地,无论时频变换是傅里叶变换还是离散余弦变换,基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值,可以包括:
基于每个子带区域所对应的相对平坦度信息、以及低频频谱中每个子带区域所对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值;
其中,基于增益调整值对高频频谱包络进行调整,可以包括:
基于高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整。
具体地,如果高频部分包括至少两个子带区域,则可以基于个子带区域所对应的相对平坦度信息和低频频谱中每个子带区域所对应的频谱能量信息,确定每个子带区域对应的高频频谱包络中对应频谱包络部分的增益调整值,然后基于确定得到的增益调整值,对相应的频谱包络部分进行调整。
作为一个示例,如前文所描述的时频变换是傅里叶变换时,至少两个子带区域为两个子带区域,分别为第一子带区域和第二子带区域,第一子带区域与低频部分的高频频段的相对平坦度信息为第一相对平坦度信息,第二子带区域与低频部分的高频频段的相对平坦度信息为第二相对平坦度信息,基于第一相对平坦度信息和第一子带区域对应的频谱能量信息确定出的增益调整值,可以对第一子带区域对应的高频频谱包络的包络部分进行调整,基于第二相对平坦度信息和第二子带区域对应的频谱能量信息确定出的增益调整值,可以对第二子带区域对应的高频频谱包络的包络部分进行调整。需要说明的是,当时频变换是离散余弦变换时,相对平坦度信息、增益调整值的确定过程,与本示例中的时频变换是傅里叶变换时,平坦度信息、增益调整值的确定过程类似,在此不再赘述。
在本申请实施例的可选方案中,由于样本窄带信号的低频部分的低频频段包含的谐波更为丰富,因此,可以选择样本窄带信号的低频部分的高频频段作为确定相对平坦度信息的参考,将该低频部分的高频频段作为母版,将样本宽带信号的高频部分划分为至少两个子带区域,基于高频部分的每个子带区域的频谱和低频部分的频谱来确定每个子带区域的相对平坦度信息。
基于前文的描述,在神经网络的训练阶段,可以基于样本数据(样本数据中包括样本窄带信号和对应的样本宽带信号),通过方差分析法来确定样本宽带信号的频谱的高频部分的每个子带区域的相对平坦度信息。作为一个示例,如果样本宽带信号的高频部分划分为两个子带区域,分别为第一子带区域和第二子带区域,则样本宽带信号的高频部分与低频部分的相对平坦度信息可以为,第一子带区域与样本宽带信号的低频部分的高频频段的第一相对平坦度信息,以及第二子带区域与样本宽带信号的低频部分的高频频段的第二相对平坦度信息。
下面以时频变换是傅里叶变换的情况为例,对第一相对平坦度信息和第二相对平坦坦度信息的确定过程进行介绍:
其中,第一相对平坦度信息和第二相对平坦坦度信息的具体确定方式可以为:
基于样本数据中窄带信号的频域系数SLow,sample(i,j)和样本数据中宽带信号的高频部分的频域系数SHigh,sample(i,j),通过公式(13)至公式(15)计算如下三个方差:
varL(SLow,sample(i,j)),j=35,36,…,69 (13)
varH1(SHigh,sample(i,j)),j=70,71,…,104 (14)
varH2(SHi,sample(i,j)),j=105,106,…,139 (15)
其中,公式(13)为样本窄带信号的低频部分的高频频段的幅度谱的方差,公式(14)为第一子带区域的幅度谱的方差,公式(15)为第二子带区域的幅度谱的方差,var()表示求方差,频谱的方差可基于对应的频域系数表示,SLow,sampl(i,j)表示样本窄带信号的频域系数,需要说明的是,上述样本窄带信号的低频频域系数也可以是经过滤波处理后的频域系数SLow,sam_rev(i,j),即将上述公式(13)至公式(15)中的SLow,sam(i,j)替换为SLow,sample_rev(i,j)。
基于上述三个方差,通过公式(16)和公式(17)确定每个子带区域的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息:
其中,fc(0)表示第一子带区域的幅度谱与低频部分的高频频段的幅度谱的第一相对平坦度信息,fc(1)表示第二子带区域的幅度谱与低频部分的高频频段的幅度谱的第二相对平坦度信息。
其中,可以将上述两个值fc(0)和fc(1)以是否大于等于0分类(本申请实施例中,用1表示大于等于0,用0表示小于0),将fc(0)和fc(1)定义为一个二分类数组,因此该数组包含4种排列组合:{0,0}、{0,1}、{1,0}、{1,1}。
由此,模型输出的相对平坦度信息可以为4个概率值,该概率值用于标识相对平坦度信息属于上述4个数组的概率。
通过概率最大原则,可以选择出4个数组的排列组合中其中一个,作为预测出的两个子带区域扩展区域与的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息。具体的可以通过公式(18)表示:
v(i,k)=0 or 1,k=0,1 (18)
其中,v(i,k)表示两个子带区域扩展区域与的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息,k表示不同子带区域的索引,则每个子带区域可以对应一个相对平坦度信息,例如,k=0时,v(i,k)=0表示第一子带区域相对于低频部分较为振荡,即平坦度较差,v(i,k)=1则表示第一子带区域相对于低频部分较为平坦,即平坦度较好。
在本申请实施例中,将第二窄带信号的低频频谱输入至训练好的神经网络模型,可以通过神经网络模型预测得到目标宽频频谱的高频部分的相对平坦度信息。如果选择窄带信号的低频部分的高频频段对应的频谱作为神经网络模型的输入,则基于该训练好的神经网络模型可以预测得到目标宽频频谱的高频部分的至少两个子带区域的相对平坦度信息。
在本申请实施例的可选方案中,若高频频谱包络包括第一预定数量的高频子频谱包络,若低频频谱是通过傅里叶变换得到的,则第一预定数量为上述第二数量,若低频频谱是通过离散余弦变换得到的,则第一预定数量为上述第三数量;
其中,基于每个子带区域所对应的相对平坦度信息,以及低频频谱中每个子带区域对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值,包括:
对于每一个高频子频谱包络,根据低频频谱包络中与高频子频谱包络对应的频谱包络所对应的频谱能量信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域所对应的相对平坦度信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域对应的频谱能量信息,确定高频子频谱包络的增益调整值;
根据高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整,包括:
根据高频频谱包络中每个高频子频谱包络的增益调整值,对相应的高频子频谱包络进行调整。
具体地,下面以低频频谱是通过傅里叶变换得到的,第一预定数量为第二数量为例,进行具体介绍:
具体地,高频频谱包络的每个高频子频谱包络对应一个增益调整值,该增益调整值是基于低频子频谱包络所对应的频谱能量信息、低频子频谱包络所对应的子带区域所对应的相对平坦度信息、低频子频谱包络所对应的子带区域对应的频谱能量信息确定的,且该低频子频谱包络是与该高频子频谱包络对应的,高频频谱包络包括第二数量的高频子频谱包络,则高频频谱包络包括对应的第二数量的增益调整值。
可以理解的是,如果高频部分包括对应于至少两个子带区域,对于至少两个子带区域对应的高频频谱包络,可基于每个子带区域对应的高频子频谱包络对应的增益调整值对对应子带区域的高频子频谱包络进行调整。
作为一个示例,下面以第一子带区域中包括35个频点为例,基于低频子频谱包络所对应的频谱能量信息、低频子频谱包络所对应的子带区域所对应的相对平坦度信息、低频子频谱包络所对应的子带区域对应的频谱能量信息,确定低频子频谱包络对应的高频子频谱包络的增益调整值的一种可实现方案为:
(1)、解析v(i,k),如果为1,表示高频部分非常平坦,如果为0,表示高频部分振荡。
(2)、对于第一子带区域中的35个频点,分成7个子带,每个子带对应一个高频子频谱包络。分别计算每个子带的平均能量pow_env(第二子频谱包络所对应的频谱能量信息),并计算上述7个平均能量的平均值Mpow_env(低频子频谱包络所对应的子带区域对应的频谱能量信息。其中,每个子带的平均能量为基于对应的低频幅度谱确定的,比如,将每个低频幅度谱的谱系数的绝对值的平方作为一个低频幅度谱的能量,一个子带对应5个低频幅度谱的谱系数,则可将一个子带对应的低频幅度谱的能量的平均值作为该子带的平均能量。
(3)、基于解析的第一子带区域对应的相对平坦度信息、平均能量pow_env和平均值Mpow_env,计算每个高频子频谱包络的增益调整值,具体包括:
当v(i,k)=1,G(j)=c1+b1*SQRT(Mpow_env/pow_env(j)),j=0,1,…,6;
当v(i,k)=0,G(j)=a0+b0*SQRT(Mpow_env/pow_env(j)),j=0,1,…,6;
其中,作为一可选方案,a1=0.875,b1=0.125,a0=0.925,b0=0.075,G(j)为增益调整值。
其中,对于v(i,k)=0的情况,增益调整值为1,即无需对高频频谱包络进行平坦化操作(调整)。
基于上述方式可确定出高频频谱包络中7个高频子频谱包络的增益调整值,基于7个高频子频谱包络的增益调整值,对相应的高频子频谱包络进行调整,上述操作可以拉近不同子带的平均能量差异,对第一子带区域对应的频谱进行不同程度的平坦化处理。
可以理解的是,可以通过上述相同的方式对第二子带区域对对应的高频频谱包络进行调整,在此不再赘述。高频频谱包络一共包括14个子频带,则可以对应确定出14个增益调整值,基于该14个增益调整值对相应的子频谱包络进行调整。
在本申请实施例的可选方案中,低频频域参数还包括低频频域系数,根据目标高频幅度谱和高频相位谱,得到目标高频频谱,可以包括:
根据目标高频幅度谱和高频相位谱,生成目标高频频域系数;
基于低频频域系数和目标高频频域系数,生成目标高频频谱。
具体地,在一种实现方式中,根据目标高频幅度谱和高频相位谱,生成目标高频频域系数后,可以先对该目标高频频域系数进行滤波处理,得到滤波处理后的目标高频频域系数,再基于低频频域系数和该滤波处理后的目标高频频域系数,生成目标高频频谱。其中,该滤波处理过程中与上述对低频频域系数进行滤波处理的过程基本一致,在此不再赘述。
在本申请实施例的可选方案中,步骤S130中,基于低频频谱和目标高频频谱,得到频带扩展后的宽带信号,可以包括:
将低频频谱和目标高频频谱合并,得到宽频带频谱;
对宽频带频谱进行频时变换,得到频带扩展后的宽带信号。
具体地,宽带信号中包括窄带信号中的低频部分的信号以及扩展后的高频部分的信号,则在得到低频部分对应的低频频谱和高频部分对应的高频频谱后,可以将低频频谱和高频频谱合并,得到宽频带频谱,进而对宽频带频谱进行频时变换(时频变换的反变换,将频域信号变换为时域信号),就可以得到频带扩展后的目标语音信号。
在本申请实施例的可选方案中,若窄带信号包括至少两路关联的信号,该方法还可以包括:
将至少两路关联的信号进行融合,得到窄带信号;
或者,
将至少两路关联的信号中的每一路信号分别作为窄带信号。
具体地,窄带信号可以为多路关联的信号,比如,相邻的语音帧,则可以将至少两路关联的信号进行融合,得到一路信号,将该一路信号作为窄带信号,然后通过本申请实施例中的频带扩展方法对该窄带信号进行扩展,得到宽带信号。
或者,也可以将至少两路关联的信号中的每一路信号作为窄带信号,通过本申请中的频带扩展方法对该窄带信号进行扩展,得到对应的至少两路宽带信号,该至少两路宽带信号可以合并成一路信号输出,也可以分别输出,本申请实施例不对其作限定。
为了更好的理解本申请实施例所提供的方法,下面分别以时频变换为傅里叶变换与离散余弦变换为例,结合具体应用场景的示例对本申请实施例的方案进行进一步详细说明。
作为一个示例,应用场景为PSTN(窄带语音)和VoIP(宽带语音)互通场景,即将PSTN电话机对应的窄带语音作为待处理的窄带信号,对该待处理的窄带信号进行频带扩展,使得VoIP接收端接收到的语音帧为宽带语音,从而提高接收端的听觉体验。
在本示例中,待处理的窄带信号为采用率为8000Hz,帧长为10ms的信号,根据Nyquist采样定理,待处理的窄带信号的有效带宽为4000Hz。在实际的语音通信场景,一般有效带宽的上界为3500Hz。因此,在本示例中,扩展后的宽带信号的带宽为7000Hz为例进行说明。
在如图3所示的第一示例中,时频变换为傅里叶变换(比如STFT),具体流程包括以下步骤:
步骤S1,前端信号处理:
对待处理的窄带信号进行因子为2的上采样处理,输出采样率为16000Hz的上采样信号。
由于待处理的窄带信号的采样率为8000Hz,帧长为10ms,则该上采样信号对应160个样本点(频点),对上采样信号进行短时傅立叶变换(STFT),具体为:将上一语音帧对应的160个样本点与当前语音帧(待处理的窄带信号)对应的160个样本点组成一个数组,该数组包括320个样本点。接着对该数组中的样本点进行加窗处理(即汉宁窗的加窗处理),得到加窗处理后的信号sLow(i,j)进行快速傅立叶变换,得到320个低频频域系数SLow(i,j)。其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,319)。考虑到快速傅立叶变换的共扼对称关系,第一个系数为直流分量,因此可以只考虑前161个低频频域系数。
步骤S2,低频前置滤波(该步骤中的初始频谱即为初始低频频谱):
低频前置滤波是对待处理的窄带信号经STFT得到的初始低频频域系数进行滤波处理,得到低频频域系数。在该滤波处理过程中,通过基于初始低频频域系数确定的滤波增益,对初始低频频域系数进行滤波处理,具体如下公式(19)所示:
SLow_rev(i,j)=Gpre_filt(j)*SLow(i,j) (19)
其中,其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,69),Gpre_filt(j)为根据初始低频频域系数计算得到的第一滤波增益,SLow(i,j)为初始低频频域系数,SLow_rev(i,j)为经滤波处理得到的低频频域系数。
本示例中,假定同一个子带内每5个初始低频频域系数共用一个滤波增益,其中,滤波增益的计算过程具体如下所示:
(1)将初始低频频域系数进行分带,例如,相邻5个初始低频频域系数合并成一个子频谱,本示例对应于14个子带。对每个子带计算平均能量。特别地,每一个频点(即上述的初始低频频域系数)的能量定义为实部平方与虚部平方的和。通过如下公式(20)计算相邻5个频点的能量值,该5个频点的能量值的平均值即为当前子频谱的第一频谱能量:
其中,SLow(i,j)为根据时频变换得到的低频频域系数(即初始低频频域系数),Real和Imag分别为初始低频频域系数的实部和虚部,Pe(k)为第一频谱能量(初始频谱能量),k=0,1,…13,为子带索引,分别对应表示14个子带,Pe(k)表示第k个子频谱对应的第一频谱能量(初始频谱能量),Real和Imag分别为实部和虚部。
(2)基于帧间相关性,通过公式(21)与公式(22)中的至少一项,计算当前子频谱的第一频谱能量:
Fe(k)=1.0+Pe(k)+Pepre(k) (21)
Fe_sm(k)=(Fe(k)+Fepre_sm(k))/2 (22)
其中,Fe(k)是当前子频谱的第二频谱能量的平滑项,Pe(k)是当前语音帧的当前子频谱的第一初始频谱能量,Pepre(k)是当前语音帧的关联语音帧的与当前子频谱对应的子频谱的第一初始频谱能量,Fe_sm(k)是累加平均后的第一频谱能量的平滑项,Fepre_sm(k)是当前语音帧的关联语音帧的与当前子频谱对应的第一频谱能量的平滑项,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧。作为一可选方案,关联语音帧为当前语音帧的前一语音帧。
本示例中,将通过公式(22)的方案计算出的第一频谱能量作为子频谱的第一频谱能量。
(3)计算初始频谱的频谱倾斜系数,将初始频谱对应的频带均分为第一子带和第二子带,分别计算第一子带的第一子带能量与第二子带的第二子带能量,计算公式(23)如下所示:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量
接着,根据e1与e2,基于以下逻辑来确定初始频谱的频谱倾斜系数:
If(e2>=e1):
T_para=0;
Else:
T_para=8*f_cont_low*SQRT((e1-e2)/(e1+e2);
T_para=min(1.0,T_para);
T_para=T_para/7;
其中,T_para为频谱倾斜系数,SQRT为开根号操作,f_cont_low=0.035,为预先设定的滤波系数,7为子频谱总数量的一半。
(4)计算每个子频谱的第二滤波增益,可以根据如下公式(24)计算:
gainf0(k)=Fe_sm(k)f_cont_low (24)
其中,gainf0(k)为第k个子频谱的第二滤波增益,f_cont_low为预先设定的滤波系数,比如f_cont_low=0.035,Fe_sm(k)为根据公式(22)计算得到的第k个子频谱的第一频谱能量的平滑项,k=0,1,…,13。
接着,如果频谱倾斜系数T_para为正,还需要根据如下公式(25)对第二滤波增益gainf0(k)进一步调整:
If(T_para>0):
gainf1(k)=gainf0(k)*(1+k*Tpara) (25)
其中,gainf1(k)为根据频谱倾斜系数T_para调整后的第二滤波增益。
(5)根据如下公式(26),得到低频前置滤波的滤波增益值:
Gpre_filt(k)=(1+gainf1(k))/2 (26)
其中,gainf1(k)为根据公式(25)调整后的第二滤波增益,Gpre_filt(k)为根据gainf1(k)最终得到的第k个子频谱对应的5个低频频域系数的滤波增益(即第二滤波增益)。
具体地,在确定出第k个子频谱对应的第二滤波增益Gpre_filt(k)后,由于第一滤波增益包括第二数量(比如L=14个)的第二滤波增益Gpre_filt(k),且第二滤波增益Gpre_filt(k)为第k个子频谱对应的N个频谱系数的滤波增益,从而可以得到第一滤波增益Gpre_filt(j)。
步骤S3,特征提取:
a)、基于低频频域系数,通过公式(27)计算低频幅度谱:
PLow(i,j)=SQRT(Real(SLow(i,j))2+Imag(SLow(i,j))2) (27)
其中,PLow(i,j)表示低频幅度谱,SLow(i,j)为经STFT得到的初始低频频域系数,Real和Imag分别为低频频域系数的实部和虚部,SQRT为开根号操作,当通过上述公式(19)对SLow(i,j)进行滤波处理时,该公式(27)可以变换为如下形式:
PLow(i,j)=SQRT(Real(SLow_rev(i,j))2+Imag(SLow_rev(i,j))2)
其中,若窄带信号为采样率为8000Hz,带宽为0~3500Hz的信号,则可以基于窄带信号的采样率和帧长,通过低频频域系数确定出70个低频幅度谱的谱系数(低频幅度谱系数)PLow(i,j),j=0,1,…69。在实际应用中,可以直接将计算出的70个低频幅度谱系数作为窄带信号的低频幅度谱,进一步的,为了计算方便,也可以进一步将低频幅度谱转换到对数域。
在得到包含70个系数的低频幅度谱之后,即可基于低频幅度谱确定出窄带信号的低频谱包络。
b)、进一步地,还可以通过以下方式基于低频幅度谱,确定低频频谱包络:
对窄带信号进行分带,针对70个低频幅度谱的谱系数,可以将每5个相邻的子幅度谱的谱系数对应的频带划分为一个子带,共划分为14个子带,每个子带对应有5个谱系数。对于每个子带,该子带的低频频谱包络定义为相邻谱系数的平均能量。具体可通过公式(28)计算得到:
其中,eLow(i,k)表示子频谱包络(每个子带的低频频谱包络),k表示子带的索引号,共14个子带,k=0,1,2……13,则低频频谱包络中包括14个子频谱包络。
一般地,子带的谱包络定义为相邻系数的平均能量(或者进一步转换成对数表示),但是该方式,有可能会导致幅值较小的系数不能够起到实质性的作用,本而发明实施例所提供的该种将每个子幅度谱所包括的谱系数的对数标识直接求平均,得到子幅度谱对应的子频谱包络的方案,与现有常用的包络确定方案相比,可以更好的在神经网络模型训练过程的失真控制中保护好幅值较小的系数,从而使更多的信号参数能够在频带扩展中起到相应的作用。
由此,可以将70维的低频幅度谱和14维的低频频谱包络作为神经网络模型的输入。
步骤S4,输入神经网络模型:
输入层:神经网络模型输入上述84维特征向量,
输出层:考虑到本实施例中频带扩展的目标宽带是7000Hz,因此,需要预测14个对应于3500-7000Hz频段的子带的高频频谱包络,即可完成基本的频带扩展功能。通常,语音帧的低频部分包含大量的基音和共振峰等类谐波结构;高频部分的频谱更为平坦;如果仅是简单地将低频频谱复制到高频,得到初始高频幅度谱,并对初始高频幅度谱进行基于子带的增益控制,重建的高频部分将产生过多的类谐波结构,会引起失真,影响听感;因此,本示例中基于神经网络模型预测出的相对平坦度信息,描述低频部分和高频部分的相对平坦度,对初始高频幅度谱进行调整,使得调整后的高频部分更为平坦,减少谐波的干扰。
在本示例中,通过对低频幅度谱中高频段部分的幅度谱进行两次复制,生成初始高频幅度谱,同时将高频部分的频段平均分成两个子带区域,分别为第一子带区域和第二子带区域,高频部分对应70个谱系数,每个子带区域对应35个谱系数,因此,高频部分将做两次平坦度分析,即对每个子带区域进行一次平坦度分析,由于低频部分特别是1000Hz以下对应的频段,谐波成分更为丰富;因此,本实施例中选择35-69的频点对应的谱系数作为“母板”,则第一子带区域对应的频段是第70个至第104个频点对应的频段,第二子带区域对应的频段是第105个至第139个频点对应的频段。
平坦度分析可以使用经典统计学中定义的方差(Variance)分析方法。通过方差分析方法可以描述出频谱的振荡程度,值越高说明谐波成份更丰富。
基于前文的描述,由于样本窄带信号的低频部分的低频频段包含的谐波更为丰富,因此,可以选择样本窄带信号的低频部分的高频频段作为确定相对平坦度信息的参考,即将该低频部分的高频频段(35-69的频点所对应的频段)作为母版,对应将样本宽带信号的高频部分划分为至少两个子带区域,基于高频部分的每个子带区域的频谱和低频部分的频谱来确定出每个子带区域的相对平坦度信息。
在神经网络模型的训练阶段,可以基于样本数据(样本数据中包括样本窄带信号和对应的样本宽带信号),通过方差分析法来确定样本宽带信号的频谱的高频部分的每个子带区域的相对平坦度信息。
作为一个示例,如果样本宽带信号的高频部分划分为两个子带区域,分别为第一子带区域和第二子带区域,则样本宽带信号的高频部分与低频部分的相对平坦度信息可以为,第一子带区域与样本宽带信号的低频部分的高频频段的第一相对平坦度信息,以及第二子带区域与样本宽带信号的低频部分的高频频段的第二相对平坦度信息。
其中,时频变换是傅里叶变换时,第一相对平坦度信息和第二相对平坦坦度信息的具体确定方式可以为:
基于样本数据中窄带信号的频域系数SLow,sample(i,j)和样本数据中宽带信号的高频部分的频域系数SHigh,sample(i,j),通过公式(29)至公式(31)计算如下三个方差:
varL(SLow,sample(i,j)),j=35,36,…,69 (29)
varH1(SHigh,sample(i,j)),j=70,71,…,104 (30)
varH2(SHigh,sample(i,j)),j=105,106,…,139 (31)
其中,公式(29)为样本窄带信号的低频部分的高频频段的幅度谱的方差,公式(30)为第一子带区域的幅度谱的方差,公式(31)为第二子带区域的幅度谱的方差,var()表示求方差,频谱的方差可基于对应的频域系数表示,SLow,sample(i,j)表示样本窄带信号的频域系数,需要说明的是,上述样本窄带信号的低频频域系数也可以是经过滤波处理后的频域系数SLow,samp_rev(i,j),即将上述公式(29)至公式(31)中的SLow,sampl(i,j)替换为SLow,sample_rev(i,j)。
基于上述三个方差,通过公式(32)和公式(33)确定每个子带区域的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息:
其中,fc(0)表示第一子带区域的幅度谱与低频部分的高频频段的幅度谱的第一相对平坦度信息,fc(1)表示第二子带区域的幅度谱与低频部分的高频频段的幅度谱的第二相对平坦度信息。
其中,可以将上述两个值fc(0)和fc(1)以是否大于等于0分类(本申请实施例中,用1表示大于等于0,用0表示小于0),将fc(0)和fc(1)定义为一个二分类数组,因此该数组包含4种排列组合:{0,0}、{0,1}、{1,0}、{1,1}。
由此,模型输出的相对平坦度信息可以为4个概率值,该概率值用于标识相对平坦度信息属于上述4个数组的概率。
通过概率最大原则,可以选择出4个数组的排列组合中其中一个,作为预测出的两个子带区域扩展区域与的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息。具体的可以通过公式(34)表示:
v(i,k)=0 or 1,k=0,1 (34)
其中,v(i,k)表示两个子带区域扩展区域与的幅度谱与低频部分的高频频段的幅度谱的相对平坦度信息,k表示不同子带区域的索引,则每个子带区域可以对应一个相对平坦度信息,例如,k=0时,v(i,k)=0表示第一子带区域相对于低频部分较为振荡,即平坦度较差,v(i,k)=1则表示第一子带区域相对于低频部分较为平坦,即平坦度较好。
步骤S5,生成高频幅度谱:
如前文,将低频幅度谱(35-69共计35个点)复制两次,生成高频的幅度谱(共70个频点),基于窄带信号对应的初始低频频域系数或者经过滤波处理后的低频频域系数,通过训练好的神经网络模型,可以得到预测得到的目标宽频频谱的高频部分的相对平坦度信息。由于在本示例中选择的是35-69对应的第一低频频谱的频域系数,则通过该训练好的神经网络模型可以预测得到目标宽频频谱的高频部分的至少两个子带区域的相对平坦度信息,即目标宽频频谱的高频部分被划分为至少两个子带区域,在本示例中,以2个子带区域为例,则神经网络模型的输出为针对于该2个子带区域的相对平坦度信息。
根据预测出2个频带扩展区域对应的相对平坦度信息,对重建的高频幅度谱进行后滤波。以对其中第一子带区域为例,主要步骤包括:
(1)、解析v(i,k),如果为1,表示高频部分非常平坦,如果为0,表示高频部分振荡。
(2)、对于第一子带区域中的35个频点,分成7个子带,高频频谱包络包括14个第一子频谱包络,低频频谱包络包括14个第二子频谱包络,则每个子带可以对应一个第一子频谱包络。分别计算每个子带的平均能量pow_env(第二子频谱包络所对应的频谱能量信息),并计算上述7个平均能量的平均值Mpow_env(第二子频谱包络所对应的子带区域对应的频谱能量信息)。其中,每个子带的平均能量为基于对应的低频幅度谱确定的,比如,将每个低频幅度谱的谱系数的绝对值的平方作为一个低频幅度谱的能量,一个子带对应5个低频幅度谱的谱系数,则可将一个子带对应的低频幅度谱的能量的平均值作为该子带的平均能量。
(3)、基于解析的第一子带区域对应的相对平坦度信息、平均能量pow_env和平均值Mpow_env,计算每个第一子频谱包络的增益调整值,具体包括:
当v(i,k)=1,G(j)=a1+b1*SQRT(Mpow_env/pow_env(j)),j=0,1,…,6;
当v(i,k)=0,G(j)=a0+b0*SQRT(Mpow_env/pow_env(j)),j=0,1,…,6;
其中,在本示例中,a1=0.875,b1=0.125,a0=0.925,b0=0.075,G(j)为增益调整值。
其中,对于v(i,k)=0的情况,增益调整值为1,即无需对高频频谱包络进行平坦化操作(调整)。
(4)、基于上述方式可确定出高频频谱包络ehigh(i,k)中每个第一子频谱包络对应的增益调整值,基于每个第一子频谱包络对应的增益调整值,对相应的第一子频谱包络进行调整,上述操作可以拉近不同子带的平均能量差异,对第一子带区域对应的频谱进行不同程度的平坦化处理。
可以理解的是,可以通过上述相同的方式对第二子带区域对对应的高频频谱包络进行调整,在此不再赘述。高频频谱包络一共包括14个子频带,则可以对应确定出14个增益调整值,基于该14个增益调整值对相应的子频谱包络进行调整。
进一步地,基于调整后的高频频谱包络,确定调整后的高频频谱包络和低频频谱包络的差值,基于差值对初始高频幅度谱进行调整,得到目标高频幅度谱PHigh(i,j)。
步骤S6,生成高频频谱:
基于低频相位谱PhHigh(i,j)生成相应的高频相位谱PhHig(i,j),可以包括以下任一种:
第一种:通过复制低频相位谱,得到相应的高频相位谱。
第二种:对低频相位谱进行翻折,翻折后得到一个与低频相位谱相同的相位谱,将这两个低频相位谱映射到相应的高频频点,得到相应的高频相位谱。
根据高频幅度谱和高频相位谱,生成高频频域系数SHigh(i,j);基于低频频域系数和高频频域系数,生成高频频谱。
步骤S7,高频后置滤波(该步骤中的初始频谱即为初始高频频谱):
高频后置滤波是对得到的初始高频频域系数进行滤波处理,得到滤波后的初始高频频域系数,记作高频频域系数。在该滤波处理过程中,通过基于高频频域系数确定的滤波增益,对高频频域系数进行滤波处理,具体如下公式(35)所示:
SHigh_rev(i,j)=Gpost_filt(j)*SHigh(i,j) (35)
其中,Gpost_filt(j)为根据高频频频域系数计算得到的滤波增益,SHigh(i,j)为初始高频频域系数,SHig_rev(i,j)为经滤波处理得到的高频频域系数。
本示例中,假定同一个子带内每5个初始高频频域系数共用一个滤波增益,其中,滤波增益的计算过程具体如下所示:
(1)将初始高频频域系数进行分带,例如,相邻5个初始高频频域系数合并成一个子频谱,本示例对应于14个子带。对每个子带计算平均能量。特别地,每一个频点(即上述的初始低频频域系数)的能量定义为实部平方与虚部平方的和。通过如下公式(36)计算相邻5个频点的能量值,该5个频点的能量值的平均值即为当前子频谱的第一初始频谱能量:
其中,SHigh(i,j)初始高频频域系数,Real和Imag分别为初始高频频域系数的实部和虚部,Pe(k)为第一初始频谱能量,k=0,1,…13。
(2)基于帧间相关性,通过公式(37)与公式(38)中的至少一项,计算当前子频谱的第一频谱能量:
Fe(k)=1.0+Pe(k)+Pepre(k) (37)
Fe_sm(k)=(Fe(k)+Fepre_sm(k))/2 (38)
其中,Fe(k)是当前子频谱的第二频谱能量,Pe(k)是当前语音帧的当前子频谱的第一初始频谱能量,Pepre(k)是当前语音帧的关联语音帧的与当前子频谱对应的子频谱的第一初始频谱能量,Fe_sm(k)是累加平均后的第一频谱能量即最终确定的第一频谱能量,Fepre_sm(k)是当前语音帧的关联语音帧的与当前子频谱对应的第一频谱能量,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧,从而充分考虑了语音信号帧之间的短时相关性和长时相关性。
(3)计算初始频谱的频谱倾斜系数,将初始频谱对应的频带均分为第一子带和第二子带,分别计算第一子带的第一子带能量与第二子带的第二子带能量,计算公式(39)如下所示:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量。公式(39)中是以Fe_sm(k)作为子频谱的第一频谱能量进行的描述,可以理解的是,当以Fe(k)作为子频谱的第一频谱能量时,可以通过公式(5)中所示的方案来计算子带能量(此时公式(5)中Fe(k)是对于初始高频频谱而言的),也就是公式(39)中Fe_sm(k)可以替换为Fe(k)。
接着,根据e1与e2,基于以下逻辑来确定初始频谱的频谱倾斜系数:
If(e2>=e1):
T_para=0;
Else:
T_para=8*f_cont_high*SQRT((e1-e2)/(e1+e2);
T_para=min(1.0,T_para);
T_para=T_para/7;
其中,T_para为频谱倾斜系数,SQRT为开根号操作,f_cont_high=0.07,为预先设定的滤波系数,7为子频谱总数量的一半。
(4)计算每个子频谱的第二滤波增益,可以根据如下公式(40)计算:
gainf0(k)=Fe_sm(k)f_cont_high (40)
其中,gainf0(k)为第k个子频谱的第二滤波增益,f_cont_high=0.07,为预先设定的滤波系数,Fe_sm(k)为根据公式(38)计算得到的第k个子频谱的第一频谱能量的平滑项,k=0,1,…,13。同样的,在以Fe(k)作为子频谱的第一频谱能量时,该公式(40)中的Fe_sm(k)则可以替换为Fe(k)。
接着,如果频谱倾斜系数T_para为正,还需要根据如下公式(41)第二滤波增益gainf0(k)进一步调整:
If(T_para>0):
gainf1(k)=gainf0(k)*(1+k*Tpara) (41)
其中,gainf1(k)为根据频谱倾斜系数T_para调整后的第二滤波增益。
(5)根据如下公式(42),得到高频后置滤波的滤波增益值:
Gpost_filt(k)=(1+gainf1(k))/2 (42)
其中,gainf1(k)为根据公式(41)调整后的滤波增益,Gpost_filt(k)为根据gainf1(k)最终的第k个子频谱对应的5个高频频域系数的滤波增益(即第二滤波增益)。
具体地,在确定出第k个子频谱对应的第二滤波增益Gpost_filt(k)后,由于第一滤波增益包括第一数量(比如L=14个)的第二滤波增益Gpost_filt(k),且第二滤波增益Gpost_filt(k)为第k个子频谱对应的N个频谱系数的滤波增益,从而可以得到第一滤波增益Gpost_filt(j)。
步骤S8,频时变换,即逆短时傳里叶变换iSTFT:
基于低频频谱和高频频谱,得到频带扩展后的宽带信号。
具体的,将低频频域系数SLow_rev(i,j)和高频频域系数SHigh_rev(i,j)合并,生成高频频谱,基于低频频谱和高频频谱,进行时频变换反变换,可以生成新的语音帧sRec(i,j),即宽带信号。此时,窄带信号的有效频谱已经扩展为7000Hz。
在如图4所示的第二示例中,时频变换为MDCT。在上述第一示例中,窄带信号的时频变换是基于STFT的,按照经典信号理论,每一个信号频点包含幅度信息和相位信息。在第一示例中,高频部分的相位是直接从低频部分映射过来,存在一定的误差,因此,在第二示例中采用MDCT。MDCT依然是类似第一示例的加窗、交叠处理,但是生成的MDCT系数是实数,信息量更大,只需利用高频MDCT系数与低频MDCT系数的相关性,采用与第一示例类似的神经网络模型即可完成频带扩展。具体流程包括以下步骤:
步骤T1,前端信号处理:
对待处理的窄带信号进行因子为2的上采样处理,输出采样率为16000Hz的上采样信号。
由于待处理的窄带信号的采样率为8000Hz,帧长为10ms,则该上采样信号对应160个样本点(频点),对上采样信号进行改进离散余弦变换MDCT,具体为:将上一语音帧对应的160个样本点与当前语音帧(待处理的窄带信号)对应的160个样本点组成一个数组,该数组包括320个样本点。接着对该数组中的样本点进行余弦窗的加窗处理,得到加窗处理后的信号sLow(i,j)进行MDCT,得到160个低频频域系数SLow(i,j)。其中,i为语音帧的帧索引,j为帧内样本索引(j=0,1,…,159)。
步骤T2,低频前置滤波(该步骤中的初始频谱即为初始低频频谱):
低频前置滤波是对窄带信号经MDCT得到的初始低频频域系数进行滤波处理,得到低频频域系数。在该滤波处理过程中,通过基于初始低频频域系数确定的滤波增益,对初始低频频域系数进行滤波处理,具体如下公式(43)所示:
SLow_rev(i,j)=Gpre_filt(j)*SLow(i,j) (43)
其中,Gpre_filt(j)为根据初始低频频域系数计算得到的滤波增益,SLow(i,j)为初始低频频域系数,SLow_rev(i,j)为经滤波处理得到的低频频域系数。
本示例中,假定同一个子带内每5个初始低频频域系数共用一个滤波增益,其中,滤波增益的计算过程具体如下所示:
(1)将初始低频频域系数进行分带,例如,相邻5个初始低频频域系数合并成一个子频谱,本示例对应于14个子带。对每个子带计算平均能量。特别地,每一个频点(即上述的初始低频频域系数)的能量定义为实部平方与虚部平方的和。通过如下公式(44)计算相邻5个频点的能量值,该5个频点的能量值的平均值即为当前子频谱的第一初始频谱能量:
其中,SLow(i,j)为根据时频变换得到的低频频域系数(即初始低频频域系数),Pe(k)为第一初始频谱能量,k=0,1,…13。
(2)基于帧间相关性,通过公式(45)与公式(46)中的至少一项,计算当前子频谱的第一频谱能量:
Fe(k)=1.0+Pe(k)+Pepre(k) (45)
Fe_sm(k)=(Fe(k)+Fepre_sm(k))/2 (46)
其中,Fe(k)是当前子频谱的第二频谱能量,Pe(k)是当前语音帧的当前子频谱的第一初始频谱能量,Pepre(k)是当前语音帧的关联语音帧的与当前子频谱对应的子频谱的第一初始频谱能量,Fe_sm(k)是累加平均后的第一频谱能量即最终确定的第一频谱能量,Fepre_sm(k)是当前语音帧的关联语音帧的与当前子频谱对应的第二频谱能量,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧。可选的,关联语音帧为当前语音帧的前一语音帧。
(3)计算初始频谱的频谱倾斜系数,将初始频谱对应的频带均分为第一子带和第二子带,分别计算第一子带的第一子带能量与第二子带的第二子带能量,以Fe_sm(k)作为第k个子频谱的第一频谱能量为例,计算公式(47)如下所示:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量。
接着,根据e1与e2,基于以下逻辑来确定初始频谱的频谱倾斜系数:
If(e2>=e1):
T_para=0;
Else:
T_para=8*f_cont_low*SQRT((e1-e2)/(e1+e2);
T_para=min(1.0,T_para);
T_para=T_para/7;
其中,T_para为频谱倾斜系数,SQRT为开根号操作,f_cont_low=0.035,为预先设定的滤波系数,7为子频谱总数量的一半。
(4)计算每个子频谱的第二滤波增益,同样的,以Fe_sm(k)作为第k个子频谱的第一频谱能量为例,可以根据如下公式(48)计算:
gainf0(k)=Fe_sm(k)f_cont_low (48)
其中,gainf0(k)为第k个子频谱的第二滤波增益,f_cont_low=0.035,为预先设定的滤波系数,Fe_sm(k)为根据公式(46)计算得到的第k个子频谱的第一频谱能量的平滑项,k=0,1,…,13。
接着,如果频谱倾斜系数T_para为正,还需要根据公式(49)对根据公式(48)计算得到的gainf0(k)进一步处理:
If(T_para>0):
gainf1(k)=gainf0(k)*(1+k*Tpara) (48)
其中,gainf1(k)为根据频谱倾斜系数T_para调整后的第二滤波增益。
(5)根据如下公式(50),计算得到低频前置滤波的滤波增益值:
Gpre_filt(k)=(1+gainf1(k))/2 (50)
其中,gainf1(k)为根据公式(49)调整后的第二滤波增益,Gpre_filt(k)为根据gainf1(k)最终得到的第k个子频谱对应的5个低频频域系数的滤波增益(即第二滤波增益)。
具体地,在确定出第k个子频谱对应的第二滤波增益Gpre_filt(k)后,由于第一滤波增益包括第一数量(比如L=14个)的第二滤波增益Gpre_filt(k),且第二滤波增益Gpre_filt(k)为第k个子频谱对应的N个频谱系数的滤波增益,从而可以得到第一滤波增益Gpre_filt(j)。
步骤T3,特征提取:
a)得到完成前置滤波的低频频域系数SLow_rev(i,j)。
若窄带信号为采样率为16000Hz,带宽为0~3500Hz的信号,则可以基于窄带信号的采样率和帧长,从SLow_rev(i,j)中确定出70个低频频域系数j=0,1,…69。
在得到包含70个低频频域系数之后,即可基于该70个低频频域系数,确定出窄带信号的低频谱包络。其中,可以通过以下方式基于低频频域系数,确定低频频谱包络:
对窄带信号进行分带,针对70个低频频域系数,可以将每5个相邻的低频频域系数对应的频带划分为一个子带,共划分为14个子带,每个子带对应有5个低频频域系数。对于每个子带,该子带的低频频谱包络定义为相邻低频频域系数的平均能量。具体可通过公式(51)计算得到:
其中,eLow(i,k)表示子频谱包络(每个子带的低频频谱包络),k表示子带的索引号,共14个子带,k=0,1,2……13,则低频频谱包络中包括14个子频谱包络。
由此,可以将70维的低频频域系数SLow_rev(i,j)和14维的低频频谱包络eLow(i,k)作为神经网络模型的输入。
步骤T4,输入神经网络模型:
输入层:神经网络模型输入上述84维特征向量,
输出层:考虑到本实施例中频带扩展的目标宽带是7000Hz,因此,需要预测14个对应于3500-7000Hz频段的子带的高频频谱包络eHig(i,k)。此外,还可以同时输出4个与平坦度信息相关的概率密度fc,即输出结果为18维。
其中,本第二示例中的神经网络模型与上述第一示例中的神经网络模型的处理过程相同,在此不再赘述。
步骤T5,生成高频幅度谱:
与上述第一示例类似,基于平坦度信息,使用与第一示例类似的平坦度分析,生成高频的两个子带区域与低频部分的平坦度关系v(i,k),然后结合高频频谱包络eHigh(i,k),使用与第一示例类似的流程,可以生成高频MDCT系数SHigh(i,j)。
步骤T6,高频后置滤波(该步骤中的初始频谱即为初始高频频谱):
高频后置滤波是对得到的初始高频频域系数进行滤波处理,得到滤波后的初始高频频域系数,记作高频频域系数。在该滤波处理过程中,通过基于高频频域系数确定的滤波增益,对初始高频频域系数进行滤波处理,具体如下公式(52)所示:
SHigh_rev(i,j)=Gpost_filt(j)*SHigh(i,j) (52)
其中,Gpost_filt(j)为根据高频频频域系数计算得到的滤波增益,SHigh(i,j)为初始高频频域系数,SHigh_rev(i,j)为经滤波处理得到的高频频域系数。
高频后置滤波的具体处理过程,与前述的高频前置滤波的具体处理过程类似,具体如下:
本示例中,假定同一个子带内每5个初始高频频频域系数共用一个滤波增益,其中,滤波增益Gpost_filt(j)的计算过程具体如下所示:
(1)将初始高频频域系数进行分带,例如,相邻5个初始高频频域系数合并成一个子频谱,本示例对应于14个子带。对每个子带计算平均能量。特别地,每一个频点(即上述的初始高频频域系数)的能量定义为实部平方与虚部平方的和。通过如下公式(53)计算相邻5个频点的能量值,该5个频点的能量值的平均值即为当前子频谱的第一频谱能量:
其中,SHigh(i,j)为初始高频频域系数,Pe(k)为第一初始频谱能量,k=0,1,…13。
(2)基于帧间相关性,通过公式(54)与公式(55)中的至少一项,计算当前子频谱的第一频谱能量:
Fe(k)=1.0+Pe(k)+Pepre(k) (54)
Fe_sm(k)=(Fe(k)+Fepre_sm(k))/2 (55)
其中,Fe(k)是当前子频谱的第二频谱能量,Pe(k)是当前语音帧的当前子频谱的第一初始频谱能量,Pepre(k)是当前语音帧的关联语音帧的与当前子频谱对应的子频谱的第一初始频谱能量,Fe_sm(k)是累加平均后的第一频谱能量,Fepre_sm(k)是当前语音帧的关联语音帧的与当前子频谱对应的第一频谱能量,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧,从而充分考虑了语音信号帧之间的短时相关性和长时相关性。
(3)计算初始频谱的频谱倾斜系数,将初始频谱对应的频带均分为第一子带和第二子带,分别计算第一子带的第一子带能量与第二子带的第二子带能量,以Fe_sm(k)作为第k个子频谱的第一频谱能量为例,计算公式(56)如下所示:
其中,e1为第一子带的第一子带能量,e2为第二子带的第二子带能量。
接着,根据e1与e2,基于以下逻辑来确定初始频谱的频谱倾斜系数:
If(e2>=e1):
T_para=0;
Else:
T_para=8*f_cont_high*SQRT((e1-e2)/(e1+e2);
T_para=min(1.0,T_para);
T_para=T_para/7;
其中,T_para为频谱倾斜系数,SQRT为开根号操作,f_cont_high=0.07,为预先设定的滤波系数,7为子频谱总数量的一半。
(4)计算每个子频谱的第二滤波增益,以Fe_sm(k)作为第k个子频谱的第一频谱能量为例,可以根据如下公式(57)计算:
gainf0(k)=Fe_sm(k)f_cont_high (57)
其中,gainf0(k)为第k个子频谱的第二滤波增益,f_cont_high=0.07,为预先设定的滤波系数,Fe_sm(k)为根据公式(55)计算得到的第k个子频谱的第一频谱能量的平滑项即前文描述的第二频谱能量,k=0,1,…,13。
接着,如果频谱倾斜系数T_para为正,还需要根据如下公式(58)对第二滤波增益gainf0(k)进一步调整:
If(T_para>0):
gainf1(k)=gainf0(k)*(1+k*Tpara) (58)
其中,gainf1(k)为根据频谱倾斜系数T_para调整后的第二滤波增益。
(5)根据如下公式(59),得到高频后置滤波的滤波增益值:
Gpost_filt(k)=(1+gainf1(k))/2 (59)
其中,gainf1(k)为根据公式(58)调整后的第二滤波增益,Gpost_filt(k)为根据gainf1(k)最终得到的第k个子频谱对应的5个高频频域系数的滤波增益(即第二滤波增益)。
具体地,在确定出第k个子频谱对应的第二滤波增益Gpost_filt(k)后,由于第一滤波增益包括第一数量(比如L=14个)的第二滤波增益Gpost_filt(k),且第二滤波增益Gpost_filt(k)为第k个子频谱对应的N个频谱系数的滤波增益,从而可以得到第一滤波增益Gpost_filt(j)。
步骤T7,频时变换,即逆改进余弦傳里叶变换iMDCT:
基于低频频谱和高频频谱,得到频带扩展后的宽带信号。
具体的,将低频频域系数SLow_rev(i,j)和高频频域系数SHigh_rev(i,j)合并,生成高频频谱,基于低频频谱和高频频谱,进行时频变换反变换,可以生成新的语音帧sRec(i,j),即宽带信号。此时,窄带信号的有效频谱已经扩展为7000Hz。
通过本方案的方法,在PSTN与VoIP互通的语音通信场景,VoIP侧只能收到来自于PSTN的窄带话音(采样率为8kHz,有效带宽一般是3.5kHz)。用户的直观感受是声音不够亮、音量不够大、可懂度一般。基于本申请实施例公开的技术方案进行频带扩展,无需额外比特,可以在VoIP侧接收端将有效带宽扩展到7kHz。用户可以直观感受到更亮的音色、更大的音量和更好的可懂度。此外,基于本方案没有前向兼容的问题,即无需修改协议,可以完美兼容PSTN。
本申请实施例的方法应用在PSTN-VoIP通路的下行侧,比如,可以在装有会议系统的客户端集成本申请实施例所提供的方案的功能模块,则可以在客户端实现对窄频带信号的频带扩展,得到宽带信号。具体,该场景中的信号处理为一种信号后处理技术,以PSTN(编码系统可以是ITU-T G.711)为例,在会议系统客户端内部,当完成G.711解码后恢复出语音帧;对语音帧进行本申请实施涉及的后处理技术,可以让VoIP用户接收到宽带信号,即使发送端是窄带信号。
本申请实施例的方法也可以应用在PSTN-VoIP通路的混音服务器内,在通过该混音服务器进行频带扩展后,将频带扩展后的宽带信号发送给VoIP客户端,VoIP客户端在收到宽带信号对应的VoIP码流后,通过解码VoIP码流,可以恢复出经过频带扩展输出的宽带语音。混音服务器中一个典型功能是进行转码,例如,将PSTN链路的码流(如使用G.711编码)转码中VoIP常用的码流(如OPUS或者SILK等)。在混音服务器中,可以将G.711解码后的语音帧上采样到16000Hz,然后使用本申请实施例所提供的方案,完成频带扩展;然后,转码成VoIP常用的码流。VoIP客户端在收到一路或者多路的VoIP码流,通过解码,可以恢复出经过频带扩展输出的宽带语音。
图5为本申请又一实施例提供的一种频带扩展装置的结构示意图,如图5所示,该装置50可以包括低频频谱参数确定模块51、相关性参数确定模块52、高频频谱确定模块53及宽带信号确定模块54,其中:
低频频谱确定模块51,用于对待处理窄带信号进行时频变换得到对应的低频频谱;
相关性参数确定模块52,用于基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,相关性参数包括高频频谱包络和相对平坦度信息至少其中之一,相对平坦度信息表征了目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
高频频谱确定模块53,用于基于相关性参数和低频频谱,得到目标高频频谱;
宽带信号确定模块54,用于基于低频频谱和目标高频频谱,得到频带扩展后的宽带信号;
其中,低频频谱或目标高频频谱中的至少一项是对相应的初始频谱进行滤波处理后的频谱。
在一种可能的实现方式中,低频频谱确定模块用于:
基于初始频谱的频谱能量,确定初始频谱的第一滤波增益;
根据第一滤波增益对初始频谱进行滤波处理。
在一种可能的实现方式中,低频频谱确定模块用于:
将初始频谱划分为第一数量的子频谱,并确定每个子频谱对应的第一频谱能量;
基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益,其中,第一滤波增益值包括第一数量的第二滤波增益;
低频频谱确定模块在根据第一滤波增益对初始频谱进行滤波处理时,根据每个子频谱对应的第二滤波增益,对相应的每个子频谱分别进行滤波处理。
在一种可能的实现方式中,低频频谱确定模块用于:
将初始频谱对应的频带划分为第一子带和第二子带;
根据第一子带所对应的所有子频谱的第一频谱能量,确定出第一子带的第一子带能量,根据第二子带所对应的所有子频谱的第一频谱能量,确定出第二子带的第二子带能量;
根据第一子带能量与第二子带能量,确定初始频谱的频谱倾斜系数;
根据频谱倾斜系数及每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益。
在一种可能的实现方式中,窄带信号为当前语音帧的语音信号,低频频谱确定模块用于:
确定一个子频谱的第一初始频谱能量;
若当前语音帧为第一个语音帧,则基于该一个子频谱的第一初始频谱能量确定第一频谱能量;
若当前语音帧不是第一个语音帧,则获取关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,关联语音帧是位于当前语音帧之前、且与当前语音帧相邻的至少一个语音帧;
基于该一个子频谱的第一初始频谱能量和关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,得到该一个子频谱的第一频谱能量。
在一种可能的实现方式中,关联语音帧为当前语音帧的前一语音帧,低频频谱确定模块在当前语音帧为第一个语音帧,基于该一个子频谱的第一初始频谱能量确定该一个子频谱的第一频谱能量时,用于:
基于该一个子频谱的第一初始频谱能量和初始化的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
基于该一个子频谱的第二频谱能量和初始化的第一频谱能量,确定该一个子频谱的第一频谱能量;
在该当前语音帧不是第一个语音帧,基于该一个子频谱的第一初始频谱能量和关联语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,得到该一个子频谱的第一频谱能量时,用于:
基于该一个子频谱的第一初始频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一初始频谱能量,确定该一个子频谱的第二频谱能量;
根据该一个子频谱的第二频谱能量、以及前一语音帧的与该一个子频谱对应的子频谱的第一频谱能量,确定该一个子频谱的第一频谱能量。
在一种可能的实现方式中,相关性参数包括高频频谱包络和相对平坦度信息;神经网络模型至少包括输入层和输出层,输入层输入低频频谱的特征向量,输出层至少包括单边长短期记忆网络LSTM层以及分别连接所述LSTM层的两个全连接网络层,每个全连接网络层包括至少一个全连接层,其中,LSTM层将输入层处理后的特征向量进行转换,其中一个全连接网络层根据LSTM层转换后的向量值进行第一分类处理,并输出高频频谱包络,另一个全连接网络层根据LSTM层转换后的向量值进行第二分类处理,并输出相对平坦度信息。
在一种可能的实现方式中,时频变换包括傅里叶变换或离散余弦变换;相关性参数确定模块在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数时,用于:
根据低频频谱,得到窄带信号的低频幅度谱;
将低频幅度谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数;
若时频变换为离散余弦变换,高频频谱确定模块在基于低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数时,用于:
将低频频谱输入至神经网络模型,基于神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数。
在一种可能的实现方式中,时频变换包括傅里叶变换或离散余弦变换;
若时频变换为傅里叶变换,高频频谱确定模块在基于相关性参数和低频频谱,得到目标高频频谱时,用于:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频幅度谱,生成初始高频幅度谱;
基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整,得到目标高频幅度谱;
基于窄带信号的低频相位谱,生成相应的高频相位谱;
根据目标高频幅度谱和高频相位谱,得到目标高频频谱;
若时频变换为离散余弦变换,高频频谱确定模块在基于相关性参数和低频频谱,得到目标高频频谱时,用于:
根据低频频谱,得到窄带信号的低频频谱包络;
基于低频频谱,生成初始高频频谱;
基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整,得到目标高频频谱。
在一种可能的实现方式中,高频频谱确定模块在基于低频幅度谱,生成初始高频幅度谱时,用于:
对低频幅度谱中高频段部分的幅度谱进行复制;
高频频谱确定模块在基于低频频谱,生成初始高频频谱时,用于:
对低频频谱中高频段部分的频谱进行复制。
在一种可能的实现方式中,高频频谱包络和低频频谱包络均为对数域的频谱包络;
高频频谱确定模块在基于高频频谱包络和低频频谱包络,对初始高频幅度谱进行调整时,用于:
确定高频频谱包络和低频频谱包络的第一差值;
基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱;
高频频谱确定模块在基于高频频谱包络和低频频谱包络,对初始高频频谱进行调整时,用于:
确定高频频谱包络和低频频谱包络的第二差值;
基于第二差值对初始高频频谱进行调整,得到目标高频频谱。
在一种可能的实现方式中,若时频变换为傅里叶变换,高频频谱包络包括第二数量的第一子频谱包络,初始高频幅度谱包括第二数量的第一子幅度谱,其中,每个第一子频谱包络是基于初始高频幅度谱中对应的第一子幅度谱确定的;
高频频谱确定模块在确定高频频谱包络和低频频谱包络的第一差值,基于第一差值对初始高频幅度谱进行调整,得到目标高频幅度谱时,用于:
确定每个第一子频谱包络与低频频谱包络中对应的频谱包络的第一差值;
基于每个第一子频谱包络所对应的第一差值,对对应的第一子幅度谱进行调整,得到第二数量的调整后的第一子幅度谱;
基于第二数量的调整后的第一子幅度谱,得到目标高频幅度谱;
若时频变换为离散余弦变换,高频频谱包络包括第三数量的第二子频谱包络,初始高频频谱包括所述第三数量的第一子频谱,其中,每个第二子频谱包络是基于初始高频频谱中对应的第一子频谱确定的;
高频频谱确定模块在确定高频频谱包络和低频频谱包络的第二差值,基于第二差值对初始高频频谱进行调整,得到目标高频频谱时,用于:
确定每个第二子频谱包络与低频频谱包络中对应的频谱包络的第二差值;
基于每个第二子频谱包络所对应的第二差值,对对应的第一子频谱进行调整,得到第三数量的调整后的第一子频谱;
基于第三数量的调整后的第一子频谱,得到目标高频频谱。
在一种可能的实现方式中,高频频谱确定模块在确定高频频谱包络和低频频谱包络的第一差值或第二差值时,用于:
基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值;
基于增益调整值对高频频谱包络进行调整,得到调整后的高频频谱包络;
确定调整后的高频频谱包络和低频频谱包络的第一差值或第二差值。
在一种可能的实现方式中,相对平坦度信息包括对应于高频部分的至少两个子带区域的相对平坦度信息,一个子带区域所对应的相对平坦度信息,表征了高频部分的一个子带区域的频谱平坦度与低频部分的高频频段的频谱平坦度的相关性;
若高频部分包括对应于至少两个子带区域的谱参数,每个子带区域的谱参数是基低频部分的高频频段的谱参数得到的,相对平坦度信息包括每个子带区域的谱参数与高频频段的谱参数的相对平坦度信息,其中,若时频变换为傅里叶变换,谱参数为所述幅度谱,若时频变换为离散余弦变换,谱参数为频谱;
高频频谱确定模块在基于相对平坦度信息以及低频频谱的能量信息,确定高频频谱包络的增益调整值时,用于:
基于每个子带区域所对应的相对平坦度信息、以及低频频谱中每个子带区域所对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值;
高频频谱确定模块基于增益调整值对高频频谱包络进行调整时,用于:
根据高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整。
在一种可能的实现方式中,若高频频谱包络包括第一预定数量的高频子频谱包络,当低频频谱是通过傅里叶变换得到的,第一预定数量为第二数量,当低频频谱是通过离散余弦变换得到的,第一预定数量为第三数量;
高频频谱确定模块在基于每个子带区域所对应的相对平坦度信息,以及低频频谱中每个子带区域对应的频谱能量信息,确定高频频谱包络中对应频谱包络部分的增益调整值时,用于:
对于每一个高频子频谱包络,根据低频频谱包络中与高频子频谱包络对应的频谱包络所对应的频谱能量信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域所对应的相对平坦度信息、低频频谱包络中与高频子频谱包络对应的频谱包络所对应的子带区域对应的频谱能量信息,确定高频子频谱包络的增益调整值;
根据高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整,包括:
根据高频频谱包络中每个高频子频谱包络的增益调整值,对相应的高频子频谱包络进行调整。
在一种可能的实现方式中,若窄带信号包括至少两路关联的信号,装置还包括:
窄带信号确定模块,用于将至少两路关联的信号进行融合,得到窄带信号;或者,用于将至少两路关联的信号中的每一路信号分别作为窄带信号。
本申请实施例提供的装置,低频频谱可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除窄带信号在量化过程中可能引入的量化噪声,防止在基于低频频谱进行频带扩展的过程中,将量化噪声扩展到目标高频频谱;目标高频频谱也可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,本实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述方法项实施例中。
本申请另一实施例提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。进一步地,电子设备600还可以包括收发器604。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本申请实施例的限定。
其中,处理器601应用于本申请实施例中,用于实现图5所示的低频频谱确定模块、高频频谱确定模块及宽带信号确定模块的功能。
处理器601可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线602可包括一通路,在上述组件之间传送信息。总线602可以是PCI总线或EISA总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器603用于存储执行本申请方案的应用程序代码,并由处理器601来控制执行。处理器601用于执行存储器603中存储的应用程序代码,以实现图5所示实施例提供的频带扩展装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,可实现:低频频谱可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除窄带信号在量化过程中可能引入的量化噪声,防止在基于低频频谱进行频带扩展的过程中,将量化噪声扩展到目标高频频谱;目标高频频谱也可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所示的方法。其中:低频频谱可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除窄带信号在量化过程中可能引入的量化噪声,防止在基于低频频谱进行频带扩展的过程中,将量化噪声扩展到目标高频频谱;目标高频频谱也可以是通过对相应的初始频谱进行滤波处理后的频谱,从而有效滤除目标高频频谱中可能存在的噪声,增强宽带信号的信号质量,进一步提升用户的听觉体验。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种频带扩展方法,其特征在于,包括:
对待处理窄带信号进行时频变换得到对应的低频频谱;
基于所述低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,所述相关性参数包括高频频谱包络和相对平坦度信息,所述相对平坦度信息表征了所述目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
基于所述相关性参数和所述低频频谱,得到目标高频频谱;
基于所述低频频谱和所述目标高频频谱,得到频带扩展后的宽带信号;
其中,所述低频频谱和所述目标高频频谱中的至少一者是对相应的初始频谱进行滤波处理后的频谱;
其中,所述目标高频频谱是通过以下方式得到的:
基于所述低频频谱,得到所述窄带信号的低频频谱包络;其中,所述高频频谱包络和所述低频频谱包络均为对数域的频谱包络;
基于所述相对平坦度信息以及所述低频频谱的能量信息,确定所述高频频谱包络的增益调整值,基于所述增益调整值对所述高频频谱包络进行调整,得到调整后的高频频谱包络;
若所述时频变换为傅里叶变换,则根据所述低频频谱得到所述窄带信号的低频幅度谱,基于所述低频幅度谱,生成初始高频幅度谱,确定调整后的高频频谱包络和所述低频频谱包络的第一差值,基于所述第一差值对所述初始高频幅度谱进行调整,得到目标高频幅度谱,基于所述窄带信号的低频相位谱,生成相应的高频相位谱,根据所述目标高频幅度谱和所述高频相位谱,得到目标高频频谱;
若所述时频变换为离散余弦变换,则基于所述低频频谱得到所述窄带信号的低频频谱包络,基于所述低频频谱,生成初始高频频谱,确定调整后的高频频谱包络和所述低频频谱包络的第二差值,基于所述第二差值对所述初始高频频谱进行调整,得到所述目标高频频谱。
2.根据权利要求1所述的方法,其特征在于,对初始频谱进行滤波处理,包括:
将所述初始频谱划分为第一数量的子频谱,并确定每个子频谱对应的第一频谱能量;
基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益;
根据每个子频谱对应的第二滤波增益,对相应的每个子频谱分别进行滤波处理。
3.根据权利要求2所述的方法,其特征在于,基于每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益,包括:
将所述初始频谱对应的频带划分为第一子带和第二子带;
根据第一子带所对应的所有子频谱的第一频谱能量,确定出第一子带的第一子带能量,根据第二子带所对应的所有子频谱的第一频谱能量,确定出第二子带的第二子带能量;
根据所述第一子带能量与第二子带能量,确定所述初始频谱的频谱倾斜系数;
根据所述频谱倾斜系数及每个子频谱各自对应的第一频谱能量,确定每个子频谱对应的第二滤波增益。
4.根据权利要求2所述的方法,其特征在于,所述窄带信号为当前语音帧的语音信号,确定一个子频谱的第一频谱能量,包括:
确定当前语音帧的所述一个子频谱的第一初始频谱能量;
若所述当前语音帧为第一个语音帧,则基于所述一个子频谱的所述第一初始频谱能量确定所述一个子频谱的第一频谱能量;
若所述当前语音帧不是第一个语音帧,则获取关联语音帧的与所述一个子频谱对应的子频谱的第一初始频谱能量,所述关联语音帧是位于所述当前语音帧之前、且与所述当前语音帧相邻的至少一个语音帧;
基于所述一个子频谱的第一初始频谱能量和所述关联语音帧的与所述一个子频谱对应的子频谱的第一初始频谱能量,得到所述一个子频谱的第一频谱能量。
5.根据权利要求4所述的方法,其特征在于,所述关联语音帧为所述当前语音帧的前一语音帧,其中,
若所述当前语音帧为第一个语音帧,所述基于所述一个子频谱的第一初始频谱能量确定所述一个子频谱的第一频谱能量,包括:
基于所述一个子频谱的第一初始频谱能量和初始化的第一初始频谱能量,确定所述一个子频谱的第二频谱能量;
基于所述一个子频谱的第二频谱能量和初始化的第一频谱能量,确定所述一个子频谱的第一频谱能量;
若所述当前语音帧不是第一个语音帧,所述基于所述一个子频谱的第一初始频谱能量和所述关联语音帧的与所述一个子频谱对应的子频谱的第一初始频谱能量,得到所述一个子频谱的第一频谱能量,包括:
基于所述一个子频谱的第一初始频谱能量、以及前一语音帧的与所述一个子频谱对应的子频谱的第一初始频谱能量,确定所述一个子频谱的第二频谱能量;
根据所述一个子频谱的第二频谱能量、以及前一语音帧的与所述一个子频谱对应的子频谱的第一频谱能量,确定所述一个子频谱的第一频谱能量。
6.根据权利要求1~5项任一项所述的方法,其特征在于,
所述神经网络模型至少包括输入层和输出层,所述输入层输入低频频谱的特征向量,所述输出层至少包括单边长短期记忆网络LSTM层以及分别连接所述LSTM层的两个全连接网络层,每个全连接网络层包括至少一个全连接层,其中,所述LSTM层将输入层处理后的特征向量进行转换,其中一个全连接网络层根据LSTM层转换后的向量值进行第一分类处理,并输出所述高频频谱包络,另一个所述全连接网络层根据LSTM层转换后的向量值进行第二分类处理,并输出所述相对平坦度信息。
7.根据权利要求1~5项任一项所述的方法,其特征在于,所述时频变换包括傅里叶变换或离散余弦变换;
若所述时频变换为傅里叶变换,所述基于所述低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,包括:
根据所述低频频谱,得到所述窄带信号的低频幅度谱;
将所述低频幅度谱输入至所述神经网络模型,基于所述神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数;
若所述时频变换为离散余弦变换,所述基于所述低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,包括:
将所述低频频谱输入至所述神经网络模型,基于所述神经网络模型的输出得到目标宽频频谱的高频部分与低频部分的相关性参数。
8.根据权利要求1所述的方法,其特征在于,若时频变换为傅里叶变换,所述高频频谱包络包括第二数量的第一子频谱包络,所述初始高频幅度谱包括所述第二数量的第一子幅度谱,其中,每个所述第一子频谱包络是基于所述初始高频幅度谱中对应的第一子幅度谱确定的;
所述确定调整后的高频频谱包络和所述低频频谱包络的第一差值,基于所述第一差值对所述初始高频幅度谱进行调整,得到所述目标高频幅度谱,包括:
确定每个第一子频谱包络与所述低频频谱包络中对应的频谱包络的第一差值;
基于每个第一子频谱包络所对应的第一差值,对对应的第一子幅度谱进行调整,得到所述第二数量的调整后的第一子幅度谱;
基于所述第二数量的调整后的第一子幅度谱,得到所述目标高频幅度谱;
若时频变换为离散余弦变换,所述高频频谱包络包括第三数量的第二子频谱包络,所述初始高频频谱包括所述第三数量的第一子频谱,其中,每个所述第二子频谱包络是基于所述初始高频频谱中对应的第一子频谱确定的;
所述确定调整后的高频频谱包络和所述低频频谱包络的第二差值,基于所述第二差值对所述初始高频频谱进行调整,得到所述目标高频频谱,包括:
确定每个第二子频谱包络与所述低频频谱包络中对应的频谱包络的第二差值;
基于每个第二子频谱包络所对应的第二差值,对对应的第一子频谱进行调整,得到所述第三数量的调整后的第一子频谱;
基于所述第三数量的调整后的第一子频谱,得到所述目标高频频谱。
9.根据权利要求1所述的方法,其特征在于,所述相对平坦度信息包括对应于所述高频部分的至少两个子带区域的相对平坦度信息,一个子带区域所对应的相对平坦度信息,表征了所述高频部分的一个子带区域的频谱平坦度与所述低频部分的高频频段的频谱平坦度的相关性;
若所述高频部分包括对应于至少两个子带区域的谱参数,每个子带区域的谱参数是基于所述低频部分的高频频段的谱参数得到的,所述相对平坦度信息包括每个子带区域的谱参数与所述高频频段的谱参数的相对平坦度信息,其中,若时频变换为傅里叶变换,所述谱参数为所述幅度谱,若时频变换为离散余弦变换,所述谱参数为频谱;
所述基于所述相对平坦度信息以及所述低频频谱的能量信息,确定所述高频频谱包络的增益调整值,包括:
基于每个子带区域所对应的相对平坦度信息、以及所述低频频谱中每个子带区域所对应的频谱能量信息,确定所述高频频谱包络中对应频谱包络部分的增益调整值;
所述基于所述增益调整值对所述高频频谱包络进行调整,包括:
根据所述高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整。
10.根据权利要求8所述的方法,其特征在于,若所述高频频谱包络包括第一预定数量的高频子频谱包络,当所述低频频谱是通过傅里叶变换得到的,所述第一预定数量为所述第二数量,当所述低频频谱是通过离散余弦变换得到的,所述第一预定数量为所述第三数量;
所述基于每个子带区域所对应的相对平坦度信息,以及所述低频频谱中每个子带区域对应的频谱能量信息,确定所述高频频谱包络中对应频谱包络部分的增益调整值,包括:
对于每一个高频子频谱包络,根据所述低频频谱包络中与所述高频子频谱包络对应的频谱包络所对应的频谱能量信息、所述低频频谱包络中与所述高频子频谱包络对应的频谱包络所对应的子带区域所对应的相对平坦度信息、所述低频频谱包络中与所述高频子频谱包络对应的频谱包络所对应的子带区域对应的频谱能量信息,确定所述高频子频谱包络的增益调整值;
所述根据所述高频频谱包络中每个对应频谱包络部分的增益调整值,对相应的频谱包络部分进行调整,包括:
根据所述高频频谱包络中每个高频子频谱包络的增益调整值,对相应的高频子频谱包络进行调整。
11.一种频带扩展装置,其特征在于,包括:
低频频谱确定模块,用于对待处理窄带信号进行时频变换得到对应的低频频谱;
相关性参数确定模块,用于基于所述低频频谱,通过神经网络模型,得到目标宽频频谱的高频部分与低频部分的相关性参数,其中,所述相关性参数包括高频频谱包络和相对平坦度信息,所述相对平坦度信息表征了所述目标宽频频谱的高频部分的频谱平坦度与低频部分的频谱平坦度的相关性;
高频频谱确定模块,用于基于所述相关性参数和所述低频频谱,得到目标高频频谱;
宽带信号确定模块,用于基于所述低频频谱和所述目标高频频谱,得到频带扩展后的宽带信号;
其中,所述低频频谱或所述目标高频频谱中的至少一项是对相应的初始频谱进行滤波处理后的频谱;
其中,所述目标高频频谱是通过以下方式得到的:
基于所述低频频谱,得到所述窄带信号的低频频谱包络;其中,所述高频频谱包络和所述低频频谱包络均为对数域的频谱包络;
基于所述相对平坦度信息以及所述低频频谱的能量信息,确定所述高频频谱包络的增益调整值,基于所述增益调整值对所述高频频谱包络进行调整,得到调整后的高频频谱包络;
若所述时频变换为傅里叶变换,则根据所述低频频谱得到所述窄带信号的低频幅度谱,基于所述低频幅度谱,生成初始高频幅度谱,确定调整后的高频频谱包络和所述低频频谱包络的第一差值,基于所述第一差值对所述初始高频幅度谱进行调整,得到目标高频幅度谱,基于所述窄带信号的低频相位谱,生成相应的高频相位谱,根据所述目标高频幅度谱和所述高频相位谱,得到目标高频频谱;
若所述时频变换为离散余弦变换,则基于所述低频频谱得到所述窄带信号的低频频谱包络,基于所述低频频谱,生成初始高频频谱,确定调整后的高频频谱包络和所述低频频谱包络的第二差值,基于所述第二差值对所述初始高频频谱进行调整,得到所述目标高频频谱。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-10任一项所述的频带扩展方法。
CN201910955743.7A 2019-09-18 2019-10-09 频带扩展方法、装置、电子设备及计算机可读存储介质 Active CN112530446B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910882477X 2019-09-18
CN201910882477 2019-09-18

Publications (2)

Publication Number Publication Date
CN112530446A CN112530446A (zh) 2021-03-19
CN112530446B true CN112530446B (zh) 2023-10-20

Family

ID=74974456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910955743.7A Active CN112530446B (zh) 2019-09-18 2019-10-09 频带扩展方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112530446B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115148217B (zh) * 2022-06-15 2024-07-09 腾讯科技(深圳)有限公司 音频处理方法、装置、电子设备、存储介质及程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090002842A (ko) * 2007-07-04 2009-01-09 삼성전자주식회사 오디오 신호의 부호화/복호화 방법 및 장치
JP2010020251A (ja) * 2008-07-14 2010-01-28 Ntt Docomo Inc 音声符号化装置及び方法、音声復号化装置及び方法、並びに、音声帯域拡張装置及び方法
CN101996640A (zh) * 2009-08-31 2011-03-30 华为技术有限公司 频带扩展方法及装置
CN102169694A (zh) * 2010-02-26 2011-08-31 华为技术有限公司 生成心理声学模型的方法及装置
CN103026407A (zh) * 2010-05-25 2013-04-03 诺基亚公司 带宽扩展器
CN107705801A (zh) * 2016-08-05 2018-02-16 中国科学院自动化研究所 语音带宽扩展模型的训练方法及语音带宽扩展方法
WO2019081070A1 (en) * 2017-10-27 2019-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. APPARATUS, METHOD, OR COMPUTER PROGRAM PRODUCT FOR GENERATING ENHANCED BANDWIDTH AUDIO SIGNAL USING NEURAL NETWORK PROCESSOR
CN110246515A (zh) * 2019-07-19 2019-09-17 腾讯科技(深圳)有限公司 回声的消除方法、装置、存储介质及电子装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010028301A1 (en) * 2008-09-06 2010-03-11 GH Innovation, Inc. Spectrum harmonic/noise sharpness control

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090002842A (ko) * 2007-07-04 2009-01-09 삼성전자주식회사 오디오 신호의 부호화/복호화 방법 및 장치
JP2010020251A (ja) * 2008-07-14 2010-01-28 Ntt Docomo Inc 音声符号化装置及び方法、音声復号化装置及び方法、並びに、音声帯域拡張装置及び方法
CN101996640A (zh) * 2009-08-31 2011-03-30 华为技术有限公司 频带扩展方法及装置
CN102169694A (zh) * 2010-02-26 2011-08-31 华为技术有限公司 生成心理声学模型的方法及装置
CN103026407A (zh) * 2010-05-25 2013-04-03 诺基亚公司 带宽扩展器
CN107705801A (zh) * 2016-08-05 2018-02-16 中国科学院自动化研究所 语音带宽扩展模型的训练方法及语音带宽扩展方法
WO2019081070A1 (en) * 2017-10-27 2019-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. APPARATUS, METHOD, OR COMPUTER PROGRAM PRODUCT FOR GENERATING ENHANCED BANDWIDTH AUDIO SIGNAL USING NEURAL NETWORK PROCESSOR
CN110246515A (zh) * 2019-07-19 2019-09-17 腾讯科技(深圳)有限公司 回声的消除方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN112530446A (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
CN110556122B (zh) 频带扩展方法、装置、电子设备及计算机可读存储介质
CN110556123B (zh) 频带扩展方法、装置、电子设备及计算机可读存储介质
CN110556121B (zh) 频带扩展方法、装置、电子设备及计算机可读存储介质
AU763471B2 (en) A method and device for adaptive bandwidth pitch search in coding wideband signals
CN113470667B (zh) 语音信号的编解码方法、装置、电子设备及存储介质
US9251800B2 (en) Generation of a high band extension of a bandwidth extended audio signal
US8639500B2 (en) Method, medium, and apparatus with bandwidth extension encoding and/or decoding
US9280978B2 (en) Packet loss concealment for bandwidth extension of speech signals
CN102612712A (zh) 低频带音频信号的带宽扩展
JP6289507B2 (ja) エネルギー制限演算を用いて周波数増強信号を生成する装置および方法
WO2013066244A1 (en) Bandwidth extension of audio signals
CN112530446B (zh) 频带扩展方法、装置、电子设备及计算机可读存储介质
Liu et al. Iccrn: Inplace cepstral convolutional recurrent neural network for monaural speech enhancement
Bhatt et al. A novel approach for artificial bandwidth extension of speech signals by LPC technique over proposed GSM FR NB coder using high band feature extraction and various extension of excitation methods
Prasad et al. Speech bandwidth extension aided by magnitude spectrum data hiding
Choo et al. Blind bandwidth extension system utilizing advanced spectral envelope predictor
Nizampatnam et al. Bandwidth extension of telephone speech using magnitude spectrum data hiding
WO2023198925A1 (en) High frequency reconstruction using neural network system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038380

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant