CN112751820A - 使用深度学习实现数字语音丢包隐藏 - Google Patents
使用深度学习实现数字语音丢包隐藏 Download PDFInfo
- Publication number
- CN112751820A CN112751820A CN202010493719.9A CN202010493719A CN112751820A CN 112751820 A CN112751820 A CN 112751820A CN 202010493719 A CN202010493719 A CN 202010493719A CN 112751820 A CN112751820 A CN 112751820A
- Authority
- CN
- China
- Prior art keywords
- frame
- current frame
- current
- band signal
- audio
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013135 deep learning Methods 0.000 title description 8
- 238000000034 method Methods 0.000 claims abstract description 123
- 238000010801 machine learning Methods 0.000 claims abstract description 64
- 230000005236 sound signal Effects 0.000 claims abstract description 16
- 238000009499 grossing Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 13
- 238000010606 normalization Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 230000000306 recurrent effect Effects 0.000 claims 2
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 230000002123 temporal effect Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 238000005562 fading Methods 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003595 spectral effect Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/04—Speech 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/16—Vocoder architecture
- G10L19/167—Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/028—Noise substitution, i.e. substituting non-tonal spectral components by noisy source
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
- G10L21/0216—Noise filtering characterised by the method used for estimating noise
- G10L21/0224—Processing in the time domain
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
- G10L21/0216—Noise filtering characterised by the method used for estimating noise
- G10L21/0232—Processing in the frequency domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/0204—Speech 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 using subband decomposition
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/03—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
- G10L25/21—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being power information
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种用于恢复音频流的当前帧的方法,包括:检测到当前数据包丢失,该当前数据包包括音频信号;将一个或多个帧分为相应的高频带信号和相应的低频带信号,该一个或多个帧在音频流中的当前帧之前;使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号;将推断出的当前低频带信号与对应的高频带信号进行合并以获得当前帧;并将当前帧添加到播放缓冲区。
Description
技术领域
本发明涉及音频处理技术,具体领域为丢包隐藏技术。
背景技术
在基于IP的语音传输(VoIP)、音频流传输、数字音频会议等诸多应用中,可将音频数据数字化、打包并从发送站通过异步传输通道(如互联网协议(IP))网络传输到接收站。IP网络通常是尽力型(best-effort)网络。通过网络传输的数据包可能会被丢失和/或延迟。如果能隐藏(如补偿)这种丢包或延迟,则可以在接收站处获得更平稳的收听体验。
人们在接收站处采用了不同的技术来补偿丢包和/或延迟的情况。此类技术均属于丢包隐藏(PLC)的范畴。
发明内容
本发明公开了丢包隐藏(PLC)的实施方案;更具体地说,是使用机器学习(如深度学习)和后期处理来实现PLC以减轻丢包带来的影响。
第一方面是一种用于恢复音频流中的当前帧的方法。该方法包括检测当前数据包丢失,该当前数据包包含一个音频信号;并将一个或多个帧分为相应的高频带信号和相应的低频带信号,该一个或多个帧在音频流中的当前帧之前;使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号;将推断出的当前低频带信号与各自的高频带信号进行合并以获得当前帧;并将当前帧添加到播放缓冲区。
第二方面是一种用于恢复音频流的当前帧的设备。该设备包括一个存储器和一台处理器。处理器被配置为执行存储在存储器中的指令以检测当前数据包丢失,该当前数据包包含音频流中的一个音频信号;并将当前帧之前的一个或多个帧分为相应的高频带信号和相应的低频带信号;使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号;将推断出的当前低频带信号与各自的高频带信号进行合并以获得当前帧;并将当前帧添加到播放缓冲区。
第三方面是一种用于恢复音频流的当前帧的设备。该设备被配置为检测当前数据包丢失;使用机器学习模型恢复与当前数据包所对应的当前帧;根据音频流中紧邻当前帧的前一帧中的能量水平,将舒适噪声添加到当前帧;并在时域和频域中的至少一个对当前帧进行平滑处理。
附图说明
在阅读以下详细描述时参考附图将有助于更好地理解本发明的内容。需要强调的是,根据惯例,图示中各个部分并不是按比例绘制的。相反,为表述清楚起见,已对各个不同部分的尺寸进行任意扩大或缩小。
图1是音频编码和解码系统的示例的示意图。
图2是可以实现发送站或接收站的计算设备的示例框图。
图3是根据本发明实施例所绘制的实现丢包隐藏的方法的示例图。
图4是根据本发明实施例所绘制的用于丢包隐藏的机器学习模型的示例图。
图5是根据本发明实施例所绘制的用于添加舒适噪声的方法的示例流程图。
图6是根据本发明实施例所绘制的数据包缓冲区和播放缓冲区的图例。
图7是根据本发明的实施例所绘制的的用于更新播放缓冲区的方法的流程图。
图8是根据本发明的实施例所绘制的的用于时域平滑的方法的流程图。
图9是根据本发明实施例所绘制的用于频域平滑的方法的流程图
图10是根据本发明实施例所绘制的用于恢复音频流中的当前帧的方法的流程图。
具体实施方式
数字语音传输需要能将小型的顺序数据包进行实时而可靠的传输。接收站接收稳定的数据流以进行解码。然而,在通过异步网络(如IP网络)传输数据包时,由于网络堵塞(即网络拥塞)等问题,可能会导致一个或多个数据包的丢失或延迟。丢失的数据包可以是指接收站从未接收到的数据包。延迟的数据包可以是指在预期时间之后接收到的数据包和/或在接收站可对其进行处理(如解码以便播放)的时间之后才接收到的数据包。当数据包丢失时,除非使用某些特殊的技术,否则可能无法将丢失的数据包从发送站重新发送到接收站。因此,将导致数据包不连续。
迄今已发明了各种技术,如前向纠错(FEC)技术,以通过丢包隐藏(PLC)方案来恢复或隐藏丢失的数据包,这可以通过接收站(即接收器)来实现。大多数VoIP系统都依赖于基于接收器的PLC方案。基于接收器的PLC可以分为基于插入、基于插值和基于再生的方法。当接收站的音频解码器检测到接收缓冲区为空时,也就意味着应该跟在前面数据包之后的数据包被丢失或延迟,则可以激活PLC处理器。
根据本发明的实施方案与大多数现有的PLC方法不同,它可以采用机器学习(ML)模型(如深度学习(DL)模型)与后处理相结合,以减轻丢包带来的影响。
根据本发明的实施方案使用已经存在于播放缓冲区中的帧或其特性作为ML模型的输入,以推断(即预测、导出、恢复等)包含在丢失的数据包中的音频内容(在本文中被称为恢复帧或推断帧)。
在一些实施方式中,可以对恢复的帧进行后期(即后期恢复)平滑处理。也就是说,在丢失的帧被恢复之后,可对恢复的帧做平滑处理。在一些示例中,可以执行时域平滑,见下文详述。在其他一些示例中,可以执行时域和频域平滑。
更具体而言,ML模型使用音频流中先前帧中的低频带部分(即信号)来推断丢失帧的低频带部分。由于音频信号的高频段部分对语音质量的影响要小得多,因此仅对信号的低频段部分作出推断。然后再将推断出的低频带部分与先前帧的高频带部分相组合。在一些示例中,可以在时域和/或频域中的至少一个中对恢复的帧进行平滑处理。
本文公开的基于时域的预测器(即机器学习模型)只需要依赖于几个帧(如两个先前的帧),与其他基于深度学习的PLC技术相比,这种方法将获得更高质量的语音、更少的时间延迟和更简化的计算复杂度。
请注意,本文对机器学习、神经网络的细节和/或本专业领域技术人员已知的细节已做省略。例如,本专业领域技术人员都知道,神经网络中的节点(即神经元)之间的连接权重的值可在训练阶段得出。因此,本文中不再赘述。
典型的深度学习网络可以由多个操作(如卷积操作)组成,可以被统称为特征提取层,并可选择随后由多个全连接层组成。通常在机器学习的训练阶段可确定每种类型的操作的数目及其各自的大小。如本领域技术人员所知的,也可以添加其他的层和/或操作。例如,可以将池化(Pooling)、最大值池化(MaxPooling)、丢弃(Dropout)、激活(Activation)、标准化(Normalization),批量标准化(BatchNormalization)等其他操作可以与卷积操作和/或完全连接的操作合并使用。完全连接的层可被称为密集操作。如本领域技术人员所熟知的,卷积运算可以使用可分离卷积2D(SeparableConvolution2)或卷积2D(Convolution2D)运算。
如本发明中所使用的,卷积层可以是从Convolution2D或SeparableConvolution2D操作开始,后面接着零个或多个操作(如池化、丢弃、激活、标准化、批量标准化、其他操作或以上各操作的组合),直到达到另一个卷积层、密集运算或ML模型的输出为止。以此类推,密集层可以是从一个密集操作(即全连接层)开始,后面接着零个或多个操作(如池化、丢弃、激活、标准化、批量标准化、其他操作或以上各操作的组合),直到到达另一个卷积层、另一个密集层或网络输出为止。基于卷积网络的特征提取和使用密集运算的特征分类之间的边界可以通过整平(Flatten)操作来界定,该操作将特征提取中的多维矩阵平化为矢量。
在典型的DL模型中,有些层可能由一组过滤器组成。当过滤器应用于输入数据的子集时,实际上该过滤器会应用于整个输入,比如通过扫过整个输入。该层执行的运算通常是线性/矩阵乘法。可以使用激活函数对滤波器的输出做进一步滤波。激活函数可以是线性函数或非线性函数(如S形函数(sigmoid function)、arcTan函数、tanH函数、ReLu函数等)。
每一个全连接的操作都是线性操作,因为每个输入通过权重与每个输出相连接。这样,具有N个输入和M个输出的全连接层总共可以具有N×M个权重。如上所述,通常可以在密集操作之后执行非线性激活函数以生成该层的输出。
本文将首先阐述使用深度学习实现用于数字语音丢包隐藏的技术的详细内容,实现该技术所需的系统如图1和图2所示。
图1是一个音频编码和解码系统100的原理示意图。发送站102可以是一个具有如图2中所描述的硬件内部配置的计算机。但发送站102也可以采用其他的实施方式。例如,发送站102的处理功能可以分布在多个设备之上。
网络104可以连接发送站102和接收站106,以对音频流进行编码和解码。具体而言,可以在发送站102中对音频流进行编码,并且可以在接收站106中对编码的音频流进行解码。网络104可以是IP网络,如互联网。网络104也可以是局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、蜂窝电话网络,或在此例中将音频流从发送站102传输到接收站106的任何其他方式。
在一个示例中,发送站102可以耦合至麦克风(未示出)。发送站102可以经由麦克风接收模拟音频信号。发送站102可以通过采样(如以8000Hz的采样率进行采样)将模拟音频信号数字化。可以使用音频编码器(未示出)将数字化音频信号的N个样本中的每一个编码为音频数据,并组成一个数据包。在一个示例中,音频编码器可以是有损编码器。在一个示例中,音频编码器也可以是无损编码器。发送站102通过网络104将每个数据包发送到接收站106。在一个示例中,每个数据包可以包括与一个音频片段(即一帧)相对应的音频数据。在一个示例中,该帧可以对应于m毫秒的音频。在一个示例中,m可以是20毫秒。
在一个示例中,接收站106可以是具有如图2中所描述的硬件内部配置的计算机。但接收站106也可以采用其他的实施方式。例如,接收站106的处理功能可以分布在多个设备之上。
在一个实施方案中,接收站106(如经由网络104、计算机总线和/或某种通信路径)接收编码音频流,并存储该音频流以便后期解码。在一个实施例中,实时传输协议(RTP)用于在网络104上传输编码音频。在另一实施例中,也可以使用除RTP以外的其他传输协议(如基于超文本传输协议(基于HTTP)的音频流协议)。
例如,在会议系统(如音频和/或音频和视频会议系统)中使用时,发送站102和/或接收站106都可以包含对音频流进行编码和解码的功能,详见下述。例如,接收站106可以是一个音频会议参与者,从音频会议服务器(如发送站102)处接收编码的音频比特流以解码和收听,并将自己的音频比特流进行编码后发送至音频会议服务器,以供解码并让其他参与者播放。
接收站可以包括音频解码器,图中未做具体示出。音频解码器可以接收包含压缩的(即被编码的)音频数据的数据包,解压缩(即解码)该数据包以形成可播放的(如通过扬声器播放)音频帧。在一个示例中,数据包可以包括残差音频数据。残差音频数据可以包括当前音频帧和一些其他已经解码的帧之间的差异。在另一个示例中,残差数据可以包括当前帧的样本的一个小的子集和当前帧的剩余样本之间的差。
数据包缓冲区108可以用于存储从发送站102处接收的数据包。解码器对来自数据包缓冲区的数据包进行解码以形成帧,然后将帧放置在播放缓冲区110中,等到对该帧进行播放。PLC模块112检测到数据包丢失并且对包含在丢失的数据包中的音频数据的内容(即帧)进行预测。PLC模块112可以实现或执行本发明的一种或多种技术。
图2是可以实现发送站(如图1中的发送站200)或接收站(如图1中的接收站106)的计算设备200的示例框图。例如,计算设备200可以实现图1的发送站102和/或接收站106。计算设备200可以是包括多个计算设备的计算系统,也可以是一个计算设备,例如:手机、平板电脑、膝上型计算机、笔记本计算机、台式计算机等等。
计算设备200中的处理器202可以是常规的中央处理单元。或者,处理器202可以是能够操纵或处理现存的或将来开发出来的信息的其他类型的设备或多个设备。例如,尽管本文所公开的实现可以用所示的一个处理器(如处理器202)来实现,但是如果使用多个处理器来也可以提升速度和效率。
在一个实现中,计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。但是存储器204也可以采用其他合适类型的存储设备。存储器204可以包括由处理器202通过总线212访问的代码和数据206。存储器204还可以包括操作系统208和应用程序210,应用程序210包括至少一个允许处理器202执行本文描述的技术的程序。例如,应用程序210可以包括应用程序1至N,其中还包括执行本文描述的技术的音频编码应用程序。计算设备200还可以包括辅助存储器214,比如它可以是移动计算设备采用的存储卡。如果音频通信会话可能包含大量信息,则它们可以全部或部分存储在辅助存储设备214中,并根据需要将其加载到存储器204中。
计算设备200还可以包括一个或多个输出设备,如显示器218。在一个示例中,显示器218可以是将显示器与可用于感测触摸输入的触敏元件组合而成的触敏显示器。显示器218可以经由总线212耦合至处理器202。其他可以使用用户编程或以其他方式使用计算设备200的输出设备也可以用作显示器218之外的显示设备或作为显示器218的替代。如果输出设备是显示器或包括显示器,则该显示器可以以各种方式实现,包括液晶显示器(LCD)、阴极射线管(CRT)显示器或发光二极管(LED)显示器,如有机LED(OLED)显示器。
计算设备200还可以包括图像传感设备220(如相机),或者包括现存或以后开发的可以感测图像(如一幅用户操作计算设备200的图像)的任何其他图像传感设备220,或者与上述图像传感设备220通信。可将图像传感设备220摆放至面对操作计算设备200的用户的位置。在一个示例中,可以配置图像传感设备220的位置和光轴,使得视场范围包括与显示器218直接相邻并且可见到显示器218的区域。
计算设备200还可以包括声音传感设备222(如麦克风),或者包括现存或以后开发的可以感测设备200附近的声音的任何其他声音传感设备,或者与上述声音传感设备通信。可将声音传感设备222摆放至面对操作计算设备200的用户的位置,并可以对其进行配置使其接收声音,比如用户操作计算设备200时由用户发出的声音,如语音或其他声音。计算设备200还可以包括声音播放设备224,如扬声器、耳机、或者包括现存或以后开发的可以根据计算设备200指令播放音频的音频播放设备,或者与上述播放设备通信。
图2仅描绘了计算设备200的CPU 202和存储器204被集成到单个处理单元中的情况,除此之外也可以采用其他配置。CPU 202的操作可以分布在多个机器(每个机器包含一个或多个处理器)上,这些机器可以直接耦合或跨局域或其他网络耦合。存储器204可以分布在多个机器上,例如基于网络的存储器或运行计算设备200的操作的多个机器中的存储器。本文仅描述了单个总线的情况,除此之外计算设备200的总线212也可以由多个总线组成。此外,辅助存储器214可以直接耦合到计算设备200的其他组件,也可以通过网络访问,或者也可以包括诸如存储卡的单个集成单元或诸如多个存储卡的多个单元。因此,计算设备200可以以各种各样的配置实现。
图3是根据本发明实施例所绘制的实现丢包隐藏的方法300的示例图。可以通过接收站(如图1的接收站106)来实现方法300。可以通过PLC模块(如图1的PLC模块112)来实现方法300。可以通过计算设备(如图1的计算设备200)来实现方法300。可以将方法300作为可执行指令存储在存储器中(如图2的存储器204)。可执行指令可以由处理器(如图2的处理器202)执行,以实现(如执行)方法300的各个步骤。方法300可以被实现为一个或多个硬件模块,它可以被配置为执行方法300的一个或多个步骤。
在检测到数据包丢失的情况下,方法300使用已经在播放缓冲区中的帧或其特征(即其低频带部分)作为ML模型的输入用于推断(即预测、推导、恢复等)丢失数据包中所包含的音频内容(即当前帧),详见下述。图4相关描述中给出了一个实现ML模型的示例。
方法300可以归纳为:方法300仅估计丢失数据包的低频带部分,而将高频带部分保留与先前帧相同。这样做可以减轻方法300的计算负担并减少方法300所需的存储大小。在估计了丢失的低频带信号后,方法300使用逆滤波器(如逆正交镜像滤波器(iQMF))将低频带部分与前一帧的高频带部分进行组合,以形成一个完全恢复的帧。在将恢复的帧(即当前帧)添加到播放缓冲区之前(或之后),可以在时域或频域中的至少一个上使用相邻帧对当前帧进行平滑处理。
方法300可以接收音频流302。在一个示例中,可以从发送站(如图1的发送站102)处接收音频流。音频流可以以数据包的形式接收。每个数据包可以包括音频数据(即音频帧)。为便于解释,可以假设数据包包括音频的最小可播放片段(即帧)。在一个示例中,一帧可以对应于20毫秒的可播放音频。但是本发明并不限于此,一个帧可以对应于更多或更少毫秒的音频。
音频流302的数据包可以被添加到数据包缓冲区(如图1的数据包缓冲区108)中。可将音频流302的每个数据包进行编号。这样,音频流302的数据包可以被按顺序编号。
在304处,方法300检测数据包是否丢失。为了便于引用,将检测到丢失的数据包称为当前数据包。
在一个示例中,当下一个接收到的数据包没有预期的序列号时,检测到当前数据包丢失。例如,假设紧邻在前的数据包的序列号为seq_num。如果未接收到序列号为seq_num+1的数据包号,则认为当前数据包丢失。
在另一个示例中,可以在当前数据包将被解码时检测到当前数据包丢失。如上所述,数据包可能被乱序接收。例如,为了解决网络抖动问题,在将数据包传递到解码器进行解码之前,将其累积在数据包缓冲区108中。在将当前数据包传送到解码器时,可以检测到当前数据包丢失。例如,如果序列号为seq_num+1的数据包应被传递到解码器,但是数据包缓冲区108中并没有这样的数据包,则可以检测到当前数据包丢失。
如果没有检测到当前数据包丢失,则可以将当前数据包传送给解码器,并且方法300可以在306处对数据包进行解码。解码当前数据包可能意味着重建和/或重构数据包中的音频数据以形成音频帧。在308处,方法300可将帧添加到播放缓冲区并更新帧缓冲区,如图1中的播放缓冲区110。更新帧缓冲区的内容详见下文关于图6至图9的相关描述。如信号输出310所示,可以从播放缓冲区输出其中的帧,比如可通过扬声器输出。
如果在304处检测到当前数据包丢失,则方法300将进程推进到312以进行恢复(即推断、导出等)丢失数据包的内容。如上所述,方法300使用机器学习模型来恢复丢失的数据包的内容。图4相关描述给出了一个ML模型的示例。
图4是根据本发明实施例所绘制的用于丢包隐藏的机器学习模型的示例400。
机器学习非常适合解决音频编码中计算复杂和/或耗时的问题。众所周知,机器学习通常有两个阶段:训练阶段和推理阶段。训练阶段通常是用于导出模型的离线阶段。例如,在深度学习神经网络模型的情况下,推导出模型可能意味着推导出模型的参数。模型的参数可以包括模型的节点之间的权重、隐藏层的数量、模型操作的不同类型和数量等等。然后在线使用该模型来推断(如恢复)来自某些输入的输出。
音频流是音频帧的时间序列。由于音频数据是连续数据,其中下一帧是先前帧的延续,所以根据本发明的实施方案所建的ML模型可以包括循环层。因此,示例400可以包括一个或多个循环层。循环层的节点可以具有内存(即状态)。节点状态使循环层能够处理输入序列,并利用顺序数据中的冗余、相似性和/或连续性。一般来说,根据本发明实现的ML模型可以包括但不限于零个或多个长期/短期存储(LSTM)层、门控循环单元(GRU)层、简单循环单元(SRU)层和其他循环层,以及其他层。本文公开的ML模型可以直接处理时域信号。
根据图例400所示,它包括输入层404、SRU层406、410、414,标准化层408、412和输出层416。但是,根据ML模型的不同应用,也可以采用其他网络结构。例如,可以针对ML模型所处的平台(如设备)来定制模型的结构(如深度、参数数量、层数等)。例如,低端设备(如移动电话)可能不具有高端设备(如台式计算机或服务器计算机)的一些功能(如就存储器和/或计算能力而言)。因此,在低端设备上使用的根据本发明实现的ML模型可能不如在高端设备上使用的另一ML模型复杂。因此,ML模型的复杂性可以是资源与ML模型输出质量之间的平衡。
在输入层404处接收到先前的帧402。具体而言,接收到先前帧402的低频带部分。例如,如果先前帧402包括2个帧,并且每个帧包括160个低频带样本,则在输入层404处接收到320个输入。
在ML模型中包括三个SRU层(即SRU层406、410、414)可以达到足够的预测精度。尽管更多的SRU层可能会提高预测精度,但是该模型可能变得过于复杂,而无法在手机之类的低端设备上使用。另一方面,少于三个SRU层则可能导致预测精度较低。
标准化层408、412将每一层的输入进行标准化,以使得它们的平均输出激活值为零且标准偏差为一。顾名思义,标准化层408、412将激活权重的分布转换为高斯分布。使用标准化层是一种可以使ML模型更有效并使ML模型加快学习进度的技术。可以在几对SRU层之间插入标准化层。这样,在SRU层406和SRU层410之间插入标准化层408,而在SRU层410和SRU层414之间插入标准化层412。
输出层416可以是全连接(即密集)层。输出层的激活函数可以是tanH函数。因为示例400的输出值的范围是-1至1,这是音频信号的范围,因此可以采用TanH作为合适的激活函数。但是也可以使用其他激活功能。输出层416的输出是预测帧(即帧的一部分418)的低频带信号。
在机器学习的训练(即学习)阶段,可以使用训练数据来导出(如学习、推断等)机器学习(ML)模型,该模型是(如定义、构成等)从输入数据到输出的映射。在此,输入数据可以是在时间上最接近丢失帧的一个或多个帧,而输出可以是该丢失的帧。更具体地说,输入数据可以是该一个或多个帧的低频带信号。
在一个示例中,输入数据包括N个输入帧。在一个示例中,N可以是2。在一个示例中,输入帧可以是紧邻着丢失帧(也称为当前帧)之前的帧。在一个示例中,输入帧可以包括在当前帧之前的帧和在当前帧之后的帧。例如,可以将N/2个(例如2/2=1)紧邻在前的帧和N/2个紧接在后的帧用作输入。在另一个示例中,输入帧可以是紧接着当前帧之后的帧。
可以提供大量的训练数据。训练数据可以是可用的音频流。从可用的音频流中可以删除一些数据包。删除的数据包是ML模型在训练阶段尝试学习的基准数据包。在ML模型的训练中使用的损失函数可以是ML模型预测(即ML模型的输出)与基准信号之间的平均绝对误差(MAE)。更具体地说,损失函数可以是基准真帧的低频带部分与作为低频带信号预测的ML模型预测之间的MAE,详见下述。也可以使用其他损失函数。例如,可以使用均方误差(MSE)、绝对差之和(SAD)或其他一些误差度量。
如上所述,对ML模型进行训练以推断丢失帧的低频带部分。对ML模型进行训练以使用输入数据的低频带部分来推断低频带部分。因此,输入帧的低频带部分被提取出来并用作输入层的输入。
可以将要用作输入的帧分为其组成的低频带部分和高频带部分。在一个示例中,可以采用滤波器组将包含在输入帧中的音频信号划分为多个子带信号。在一个示例中,滤波器组可以是正交镜像滤波器(QMF)。在一个示例中,低频带信号可以对应于包含在输入帧中的0-8kHz信号,而高频带信号可以对应于输入帧的剩余信号的至少一部分(如8-16kHz信号)。
回过头来看图3,使用上述训练中ML模型的方法300从播放缓冲区(如图1中的播放缓冲区110)中检索出N个帧。如上所述,在一个示例中,N可以等于2。在一个示例中,N个帧可以是与当前帧相邻的帧。在一个示例中,N个帧可以是紧邻在当前帧之前的两个帧。例如,如果当前帧对应于编号为seq_num的数据包,则N个帧可以是与序列号为seq_num-1,seq_num-2,...,seq_num-N的数据包相对应(即从中解码或推断出的帧)的帧。
在314处,方法300使用滤波器组(如QMF滤波器等)来将N个帧中的每一个划分为相应的低频带信号和相应的高频带信号。N个帧的各个低频带信号被用作316的输入,其中316是如图4所述的ML模型。在316处,ML模型输出当前帧的预测的低频带信号(即当前低频带信号或当前低频带部分)。
在314处生成的各个高频带信号被转发到318处。在318处,可以重复(如复制)来自最后一帧的高频带信号。在一个示例中,可以以增益重复高频带信号。在一个示例中,增益可以小于1.0。在一个示例中,增益可以小于1但大于0。在320处,方法300使用反向滤波器(如反向QMF(iQMF)等)来将处理后的高频带信号与当前的低频带滤波器进行合并,形成当前帧。
在一个示例中,在322处,方法300可以有选择地将舒适噪声添加到当前帧以提供听起来更自然的音频帧。图5是根据本发明实施例所绘制的用于添加舒适噪声的方法500的示例流程图。
方法500可以归纳如下:在某些情况下,例如在预测清辅音的情况下,ML模型可能不能进行非常准确的预测(即非常准确的当前帧)。针对这个问题开发了舒适噪声补偿模型,详见下文关于线性预测编码(LPC)的相关描述。如果紧邻在当前帧之前的帧处于低能量状态时,将在预测的帧上补偿一个具有相同能量水平的舒适噪声。为了避免高频噪声,可以通过低通滤波器抑制随机残差的高频带,在此将其称为频带衰落。
在502处,方法500对紧邻在当前帧之前的帧的能量进行计算。如上所述,可以从播放缓冲区处获得紧邻在当前帧之前的帧。能量可用于表示紧邻在当前帧之前的帧中的音频信号的平均幅度。也就是说,例如,如果音频帧中有人大声讲话,则该帧的能量将很高。在一个示例中,可以通过计算紧邻在当前帧之前的帧的音频样本的平方和得出能量。例如,假设紧邻当前帧的帧由样本{xi}表示,其中i=1,…,样本数,则可以计算能量为
在504处,如果能量小于阈值,则方法500的流程推进至506。否则,如果能量大于或等于阈值,则方法500的流程推进至508。阈值可对应于一个低能量值。在一个示例中,阈值可以是0.015,这是根据经验得出的阈值。但是,也可以采用其他阈值。例如,阈值可以是0.02。在一个示例中,阈值可以是约等于0.015的值。
在508处,方法500可以生成随机噪声。可以根据紧邻当前帧之前的帧的能量水平来生成随机噪声的值。也就是说,随机噪声的值可以与紧邻在前的帧的噪声水平相关。如果紧邻在前的一帧的能量很低(即如果前一帧中包含的信号很弱),则将生成一个能量级别低于前一帧的随机噪声,即舒适噪声。在一个示例中,随机噪声可以比前一帧中的能量(即前一帧的能量水平)低40db。
在516处,方法500将随机噪声添加到当前帧514,它是由ML模型推断(即图4中帧的一部分418或图3中316的输出)而生成的新的预测帧。
在506处,方法500计算紧邻的前一帧的LPC系数和残差信号。众所周知,给定P个样本的帧,LPC会生成一个可用于预测该帧的模型。更具体而言,基于帧的前M个样本,LPC将获得一组系数。对于其余的P-M个样本中的每一个,通过系数和M个样本的线性组合产生相应的预测。然后,LPC为每个P-M样本计算各自的误差,即为样本预测与样本本身之间的差异。该误差被统称为残差噪声或激励噪声。
在510处,方法500根据在506处计算的残差获得随机残差。随机残差可以是被添加到当前帧514的舒适噪声。随机残差可以与先前帧残差(即在508处获得的残差)具有相同的能量。在一个示例中,可以通过获得在508处获得的LPC系数的随机置换来获得随机残差。也就是说,当(在504处)包含在前一帧中的信号很强时,将执行LPC以将先前的语音分解为系数和残差。然后将残差用于生成噪声信号。
在512处,对随机残差执行频带衰落以抑制由随机残差引起的高频噪声,以在516处获得新的预测帧。可以对当前的随机残差噪声应用频带衰落。例如,如果依据图5中506处所述来创建随机残差噪声,则该随机残差可能会包含不必要的高频带声音。因此,可以执行频带衰落以减小随机噪声的高频系数。
图6是根据本发明实施例所绘制的数据包缓冲区602和播放缓冲区604的图例600。数据包缓冲区602可以是图1中的数据包缓冲区108,而播放缓冲区604可以是图1中的播放缓冲区110。
如上所述,当接收到音频流的数据包时,它们首先被放置在数据包缓冲区602中。然后解码器(即音频解码器)可以对数据包缓冲区602中的数据包进行解码以获得对应的帧。例如,对接收到的数据包1进行解码以获得帧1;对接收到的数据包4(即数据包610)进行解码以获得帧4(即帧612);并对接收到的数据包5进行解码以获得帧5。但是如图6中阴影所示,数据包605(即数据包2)和数据包606(即数据包3)被丢失了。因此,如图3相关内容所示,使用ML模型来推断预测帧607(即帧2)和预测帧608(即帧3),详见本文所述。
帧608被标识为“RECOVERED FRAME”(恢复帧),或者说PLC状态614为“RECOVEREDFRAME”。而帧612并未被推断为丢失数据包,并且它是紧接在恢复的帧(即帧608)之后的帧612,因此它被标识为“FIRST NORMAL FRAME AFTER LOSS”(丢失数据后的第一个正常帧),或者说PLC状态614为“FIRST NORMAL FRAME AFTER LOSS”。其他帧则被标识为“NORMALFRAME”(正常帧),或者说PLC状态614为“NORMAL FRAME”。
图7是根据本发明的实施例所绘制的用于更新播放缓冲区的方法700的流程图。可以在图3的308处使用方法700。如上所述,参照图6,在从接收到的数据包中解码帧之后,将这些帧添加到播放缓冲区中。在丢包的情况下,可以执行方法700以平滑一些帧。在将帧添加到播放缓冲区中时,可以根据要添加到播放缓冲区中的帧的PLC状态来选择不同的平滑处理。
虽然方法700描述了如何根据帧的相应PLC状态在时域和/或频域中进行平滑操作,但是也可以对恢复的帧执行时域和频域上的其他平滑操作,或者也可以对恢复的帧执行时域上的(而不执行频域上)其他平滑操作。
在一个示例中,三种不同的PLC状态可以与一个帧相关联。如图6相关所述,PLC的状态可以是“RECOVERED FRAME”(恢复帧)“FIRST NORMAL FRAME AFTER LOSS”(丢失数据后的第一个正常帧)和“NORMAL FRAME”(正常帧)。
对于要添加到播放缓冲区中的帧701,方法700在702处测试与帧701相关联的PLC状态。如果PLC状态为“RECOVERED FRAME”(恢复帧),则方法700的流程推进至704。如果PLC状态为“NORMAL FRAME”(正常帧),则方法700的流程推进至706。如果PLC状态为“FIRSTAFTER FRAME AFTER LOSS”(丢失数据后的第一个正常帧),则方法700的流程推进至708。
在704处,方法700执行时域平滑操作。在一个示例中,时域平滑详见下文图8相关所述。PLC状态为“RECOVERED FRAME”(恢复帧)表示该帧是恢复帧(即帧701),是根据本发明的方法而生成的,比如通过图3的方法300而生成的。使用紧邻在帧701之前的帧对其进行平滑操作。
在706处,对帧701不进行平滑处理,而按原样添加至播放缓冲区中。PLC状态为“NORMAL FRAME”意味着帧701和紧邻在前的帧均来自解码器。可以无需任何修改而直接将帧701添加至播放缓冲区中。
PLC状态为“FIRST NORMAL FRAME AFTER LOSS”表示帧701来自解码器,而紧邻在前的帧则是使用图3相关描述的ML模型预测出来的。如果最近的丢包状态是“连续丢失”(即在帧701之前丢失了一个以上的紧邻的数据包),则采用时域中的紧邻在之前的帧对帧701进行平滑处理;而帧701之前的帧则在频域中进行平滑处理。相反,如果最近的丢包状态是不连续丢失,则仅将时域平滑应用于帧701。
因此,在708处,方法700首先应用时域平滑,即可以是在704处的时域平滑。方法700在时域中使用紧邻在帧701之前的帧对其进行平滑处理。参照图6进行说明,如果帧701是图6中的帧612,那么在708处,使用帧608对帧612进行平滑处理。
另外,如果方法700在710处得知至少有2个紧邻的先前的帧是恢复的帧,那么在712处,方法700还会应用频域平滑。频域平滑的内容详见图9的相关描述。
图8是根据本发明的实施例所绘制的用于时域平滑的方法800的流程图。时域平滑可用于减少当前帧和紧邻在前的帧之间的不匹配。不匹配是指波形中的间隙导致音频流不连续。因此,时域平滑可以使波形连续。可以将平滑滤波器应用于两个帧(即当前帧和紧邻在前的帧)的交接处以减小幅度间隙。在给定序列后,平滑滤波器可以根据序列中的每个相邻值调整序列中的每个值。
可以将紧邻在前的帧(即前一帧802)的所有P个样本中的最后N个点(即样本)和当前帧804的P个样本中的前N个样本输入到平滑滤波器806中。在一个示例中,平滑滤波器可以是Savitzky-Golay滤波器。Savitzky-Golay滤波器使用卷积来平滑输入数据。也可以使用其他平滑滤波器。滤波器806输出经平滑处理的前一帧802的最后N个点和经平滑处理的当前帧804的前N个点。在一个示例中,P可以是11。但P也可以为其他值。在一个示例中,假设帧对应于20毫秒的音频,而采样率为8,000Hz,则该帧包含N=160个点。
通过将平滑处理后的最后N个点与前一帧的其他P-N个样本进行组合,可以获得新的前一帧810(即新的紧邻在前的帧)。或者,也可以通过将经平滑处理的最后N个点替换最后N个点来获得新的前一帧。无论哪种情况,播放缓冲区中都会用新的前一帧来替换前一帧。
通过将经平滑处理的前N个点与当前帧的其他P-N个样本进行组合,可以获得新的当前帧812。或者,也可以通过将经平滑处理的前N个点替换前N个点来获得新的当前帧。然后将当前帧添加到播放缓冲区。
图9是根据本发明实施例所绘制的用于频域平滑的方法900的流程图。在频域平滑中,将帧转换到频域以获得相应的变换(即频谱)系数。可以按下文所述方法基于其他帧的系数来调整(即平滑)其中一个帧的系数。将经平滑处理的系数转换回(通过逆变换操作)到时域来获得新的帧。在一个示例中,可以使用离散余弦变换(DCT)。但是也可以使用其他类型的变换。
频域平滑与以上图8相关描述的时域平滑相类似,还可以改善(即平滑)语音的流畅度。如上所述,只有当发生连续的数据包丢失时才会激活方法900。
根据图6所示进行说明,可以在当前帧是帧612时执行方法900。之所以这样,是因为检测到数据包发生了连续丢失。具体而言,帧612是FIRST NORMAL FRAME AFTER A LOSS(丢失数据之后的第一个正常帧),并且丢失的不仅仅是紧邻在前的恢复帧;即帧608和帧607都是恢复的帧(即使用图3相关描述的ML模型恢复的帧)。方法900可以在频域中对帧608进行平滑处理。
令r表示恢复的帧904(如图5中的帧608);令m表示先前的帧906(如图5中的帧607);令n表示当前帧902(如图5中的帧612)。使用变换类型908(如DCT)将帧902、904、906中的每一个转换到频域,以获得相应的频谱系数Fn,Fr和Fm。频谱平滑滤波器910可以根据公式(1)进行平滑,以获得恢复帧的平滑系数(即频谱)F′r。
在公式(1)中,Fr(k),Fm(k),和Fn(k)分别表示恢复帧r、前一帧m和当前帧n的频谱系数;l等于帧长度,以样本为单位;α可以是可配置的平滑度因子,其值可以在0到1之间。
在912处,将平滑后的频谱F′r变换回(使用诸如iDCT之类的逆变换)到时域以获得新的恢复帧914的频谱f′r。新的恢复帧914替换播放缓冲区中的恢复帧904.
图10是根据本发明实施例所绘制的用于恢复音频流的当前帧的方法1000的流程图。可以通过接收站(如图1的接收站106)来实现方法1000。可以通过PLC模块(如图1的PLC模块112)来实现方法1000。可以通过计算设备(如图2的计算设备200)来实现方法1000。可以将方法1000作为可执行指令存储在存储器(如图2的存储器204)中。可执行指令可以由处理器(如图2的处理器202)执行,以实现方法1000的各个步骤。方法1000可以实现为一个或多个硬件模块,可以将其配置为执行方法1000的一个或多个步骤。
在1002处,方法1000检测到当前数据包丢失。当前数据包包括一个音频信号,该音频信号是音频流的其中一部分。如果当前数据包没有丢失,则将由解码器解码,以生成当前帧。因此,对应于当前丢失的数据包的帧被称为当前帧。在一个示例中,根据图3的304所述,当前数据包可被检测为丢失。
在1004处,方法1000将一个或多个帧划分为相应的高频带信号和相应的低频带信号。在音频流中,当前帧之前可以有一个或多个帧。这一个或多个帧可以在播放缓冲区(如图1中的播放缓冲区110或图6中的播放缓冲区604)中。在一个示例中,这一个或多个帧包括两个帧。为便于说明,假设当前(即丢失)的数据包是图6的数据包606,那么一个或多个帧可以包括图6中的帧2(即帧607)和帧1。在一个示例中,方法1000可根据图3的314所述将一个或一个以上帧分为相应的高频带信号和相应的低频带信号。也即,方法1000可以使用正交镜像滤波器(QMF)来分割一个或多个帧。
在1006处,方法1000使用相应的低频带信号作为对机器学习(ML)模型的输入来推断当前帧的当前低频带信号。推断当前的低频带信号的相关内容见图3的316相关所述。ML模型可以如上所述。
在1008处,方法1000将推断出的当前低频带信号与相应的高频带信号进行合并以获得当前帧。其中合并可以如图3的320相关所述。也即,逆QMF(iQMF)可以用于进行合并。
在1010处,方法1000将当前帧添加到播放缓冲区。
上述一个或多个帧包括紧邻当前帧之前的前一帧。为便于说明,假设当前帧是图6的帧608,则紧邻在前的帧可以是图6的帧607。在一个示例中,且如图5相关所述,方法1000可以包括计算紧邻在前的帧的能量值,以及根据该能量值向当前帧添加舒适噪声。
该能量值可以与一个阈值进行比较。在一个示例中,阈值可以是0.015。如果能量小于阈值,则可以将随机噪声添加到当前帧,如图5的508和516相关所述。如果能量大于或等于阈值,则如图5相关所述,方法1000可以包括计算紧邻在前的帧的线性预测编码(LPC);计算前一帧的残差;生成具有与前一帧的能量相同能量的随机残差;并将随机残差添加到当前帧。
在一个示例中,方法1000在将随机残差添加到当前帧时,可以抑制该随机残差中的高频噪声,如图5中的512的频带衰落所述。
音频流可以包括当前帧和紧邻在前的一帧。例如,当前帧可以是图6的帧608,而紧邻在前的帧可以是图6的帧607。方法1000可以对当前帧和紧邻的前一帧进行时域平滑(即在时域中平滑)。关于时域平滑的内容如图8相关所述。
如上所述,在连续丢包的情况下,可以进行时域和频域平滑。这样,当前帧和紧邻在前的帧都可以是根据相应的丢失的数据包(如图6的数据包605和606)而恢复的帧。如果没有根据丢失的数据包恢复紧接其后的后续帧(如图6中的帧612)(即帧612的PLC状态为FIRST NORMAL FRAME AFTER LOSS数据丢失后的第一个正常帧),那么当方法1000处理帧612时,方法1000使用紧接其后的后续帧在时域中对当前帧(即帧608)进行平滑处理;并且在频域中使用前一帧和后一帧进行平滑处理。关于频域平滑的内容见图9相关所述。因此,方法1000在频域中基于紧接其后的后续帧和紧邻的先前帧来平滑当前帧。
换句话说,紧邻在当前帧(如图6的帧608)之前的前一帧(如图6的帧607)被接收;紧接当前帧(如图6的帧608)之后接收到新的一帧(如图6的帧612),该新帧是FIRST NORMALFRAME AFTER LOSS(数据丢失后的第一个正常帧),这意味着它不是从相应的丢失数据包中恢复的,而是在恢复帧后立即出现的。在使用机器学习模型推断前一帧的情况下,对当前帧应用时域和频域平滑;而在不使用机器学习模型来推断前一帧的情况下,则对新帧应用时域平滑。
关于时域中的平滑,如上所述,当前帧可以包括音频样本的第一序列,而紧邻在前的帧可以包括音频样本的第二序列。因此,时域平滑当前帧可以包括用第二音频样本序列的第二子集来平滑第一音频样本序列的第一子集。该第一子集包括所述第一音频样本序列的前N个样本,而该第二子集包括所述第二音频样本序列的后N个样本,其中N为正整数。
为了简化说明,将方法300、500、700、800、900和1000分别描绘和描述为一系列框、步骤或操作。但根据本发明所述的框、步骤或操作可以以各种顺序和/或同时发生。另外,也可以使用本文未提出和描述的其他步骤或操作。此外,实现本发明所述的方法可能并不需要所有示出的步骤或操作。
上文在描述的编码和解码时示出了编码和解码技术的一些示例。但是,应当理解的是,编码和解码等词,包括在权利要求中使用的该词,可以表示压缩、解压缩、变换或对数据的任何其他处理或改变。
本文采用“示例”一词来表示举例、实例或说明。本文所述用于“示例”的任何功能或设计不一定表示其优于或胜于其他功能或设计。相反,使用“示例”一词是为了以具体的方式呈现概念。本文中所使用的“或”字旨在表示包含性的“或”而不是排他性的“或”。也就是说,“X包括A或B”意在表示任何自然的包含性排列,除非另有说明,或者从上下文可明确判断则另当别论。换句话说,如果X包含A,X包含B,或X包含A和B,那么在任何前述实例下“X包含A或B”都成立。此外,在本申请以及所附权利要求书中,“一”、“一个”通常应该被解释为表示“一个或多个”,除非另有说明或从上下文中明确指出是单数形式。另外,本文通篇中的“一个功能”或“一项功能”这两个短语并不意味着同一个实施方式或同一项功能,除非另有特别说明。
发送站102和/或接收站106的实现(以及存储在其上和/或由此执行的算法、方法、指令等)可以在硬件上实现,硬件包括如知识产权(IP)内核、专用集成电路(ASIC)、可编程逻辑阵列、光处理器、可编程逻辑控制器、微代码、固件、微控制器、服务器、微处理器、数字信号处理器或任何其他适用的电路。在本公开中,“处理器”一词应理解为包含任何上述内容中的一项或多项的组合。“信号”、“数据”和“信息”等术语可互换使用。此外,发送站102和接收站106的部分功能并不必以相同的方式来实现。
此外,一方面,发送站102和接收站106可以使用具有计算机程序的通用计算机或处理器来实现,该计算机程序在被运行时可执行本文所述的任何相应的技术、算法和/或指令。另外,也可以有选择地使用专用计算机或处理器,配备专用硬件设备用以执行本文描述的任何方法、算法或指令。
例如,发送站102和接收站106可以在音频会议系统中的计算机上实现,该音频会议系统可以是视频会议系统的一部分或与视频会议系统结合使用。或者,发送站102可以在服务器上实现,而接收站106可以在与服务器之外的设备上实现,例如手持通信设备。在这种情况下,发送站102可以将内容编码为编码的音频信号,并且将编码的音频信号发送到通信设备。继而通信设备可以解码编码的音频信号。也可以采用其他合适的发送和接收实施方案。例如,接收站106通常可以是固定的个人计算机,而不是便携式通信设备。
此外,本发明的全部或部分实施方式可采取计算机程序产品的形式,该程序产品可通过计算机使用或可由计算机可读介质进行访问等。计算机可用或计算机可读介质可以是任何设备,该设备可以具体包含、存储、传送或传输供任何处理器使用或与其结合使用的程序或数据结构。该介质可以是电子的、磁的、光学的、电磁的或半导体装置等等。也可包含其他适用的介质。
虽然已经结合某些实施例对本发明进行描述说明,但应理解为本发明并不限于所公开的实施方式,与之相反,本发明旨在覆盖权利要求范围之内所涵盖的各种变体和等同设置,该范围应被赋予最宽泛的解释以涵盖法律允许的所有上述变体和等同设置。
Claims (20)
1.一种用于恢复音频流的当前帧的方法,包括:
检测当前数据包丢失,该当前数据包包含一个音频信号;
将一个或多个帧划分为相应的高频带信号和相应的低频带信号,其中,该一个或多个帧在音频流中的当前帧之前;
使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号;
将推断出的当前低频带信号与相应的高频带信号进行合并以获得当前帧;以及
将当前帧添加到播放缓冲区。
2.根据权利要求1所述的方法,
其中使用正交镜像滤波器(QMF)进行划分操作,以及
其中使用逆QMF(iQMF)进行合并操作。
3.根据权利要求1所述的方法,
其中一个或多个帧包括紧邻当前帧的前一帧,
该方法还包括:
计算紧邻的前一帧的能量值;以及
根据该能量值将舒适噪声添加至当前帧。
4.根据权利要求3所述的方法,
其中能量值低于阈值,并且
其中将舒适噪声添加至当前帧包括:
将随机噪声添加至该帧。
5.根据权利要求3所述的方法,
其中能量值大于或等于阈值,并且
其中将舒适噪声添加到当前帧包括:
计算紧邻的前一帧的线性预测编码(LPC);
计算紧邻的前一帧的残差;
生成具有与前一帧的能量相同的能量的随机残差;以及
将随机残差添加到当前帧。
6.根据权利要求5所述的方法,其中将舒适噪声添加到当前帧还包括:
抑制随机残差中的高频噪声。
7.根据权利要求1所述的方法,
其中,音频流包括当前帧和紧邻当前帧的前一帧,以及
其中该方法还包括:
对当前帧和紧邻的前一帧进行时域平滑处理。
8.根据权利要求7所述的方法,
其中从一个丢失的数据包中恢复紧邻的前一帧,
其中音频流包括紧接当前帧的后一帧,
其中紧接的后一帧没有从另一个丢失的数据包中恢复,并且该方法还包括:
对当前帧和紧邻的前一帧进行时域平滑处理;以及
根据紧接的后一帧和紧邻的前一帧对当前帧进行频域平滑处理。
9.根据权利要求8所述的方法,
其中当前帧包含第一音频样本序列,而紧邻的前一帧包含第二音频样本序列,
其中对当前帧和紧邻的前一帧进行时域平滑处理包括:
用第二音频样本序列的第二子集对第一音频样本序列的第一子集进行平滑处理。
10.根据权利要求9所述的方法,
其中,第一子集包括第一音频样本序列中的前N个样本,
其中第二子集包括第二音频样本序列的最后N个样本,以及
其中N为正整数。
11.根据权利要求1所述的方法,其中该一个或多个帧包含两个帧。
12.一种用于恢复音频流的当前帧的设备,包括:
一个存储器;以及
一台处理器,处理器被配置为可执行存储器中的指令以用于:
检测当前数据包丢失,该当前数据包包括音频流的一个音频信号;
将当前帧之前的一个或多个帧划分为相应的高频带信号和相应的低频带信号;
使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号;
将推断出的当前低频带信号与相应的高频带信号进行合并以获得当前帧;以及
将当前帧添加到播放缓冲区。
13.根据权利要求12所述的设备,其中所述指令还包括指令以用于:
在时域或频域中的至少一个对当前帧进行平滑处理。
14.根据权利要求12所述的设备,
其中该一个或多个帧包含前一帧,该前一帧在音频流中是紧邻当前帧的前一帧,以及
其中所述指令还包括指令以用于:
对当前帧和前一帧执行时域平滑处理。
15.根据权利要求12所述的设备,其中所述指令还包括指令以用于:
接收前一帧,其中该前一帧在紧邻当前帧之前被接收;
接收新的一帧,其中该新帧没有从对应的丢失数据包中恢复,并且该新帧是紧接在当前帧之后被接收;
在使用机器学习模型推断出前一帧的情况下,对当前帧进行时域和频域平滑处理;以及
在不使用机器学习模型推断前一帧的情况下,对新帧进行时域平滑处理。
16.一种用于恢复音频流中的当前帧的设备,该设备被配置为:
检测到当前数据包丢失;
使用机器学习模型恢复与当前数据包所对应的当前帧;
根据音频流中紧邻当前帧的前一帧中的能量水平,将舒适噪声添加到当前帧;以及
在时域和频域中的至少一个对当前帧进行平滑处理。
17.根据权利要求16所述的设备,其中使用机器学习模型恢复与当前数据包所对应的当前帧包括:
将当前帧之前的一个或多个帧划分为相应的高频带信号和相应的低频带信号;以及
使用相应的低频带信号作为机器学习模型的输入来推断当前帧的当前低频带信号。
18.根据权利要求17所述的设备,其中该设备还被配置为:
将当前低频带信号与相应的高频带信号进行合并以获得当前帧。
19.根据权利要求17所述的设备,其中该机器学习模型是包括3个简单的递归单元层、2个标准化层和1个输出层的递归神经网络。
20.根据权利要求16所述的设备,其中通过计算该前一帧的样本的平方和得出该前一帧的能量水平。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/667,413 | 2019-10-29 | ||
US16/667,413 US11646042B2 (en) | 2019-10-29 | 2019-10-29 | Digital voice packet loss concealment using deep learning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112751820A true CN112751820A (zh) | 2021-05-04 |
CN112751820B CN112751820B (zh) | 2023-03-10 |
Family
ID=75586885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010493719.9A Active CN112751820B (zh) | 2019-10-29 | 2020-06-03 | 使用深度学习实现数字语音丢包隐藏 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11646042B2 (zh) |
CN (1) | CN112751820B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115512709A (zh) * | 2021-06-07 | 2022-12-23 | 炬芯科技股份有限公司 | 一种音频数据的处理方法、对应装置、设备和存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11528232B1 (en) * | 2021-08-27 | 2022-12-13 | Hong Kong Applied Science and Technology Research Institute Company Limited | Apparatus and method for handling real-time tasks with diverse size based on message queue |
US11914599B2 (en) * | 2021-11-19 | 2024-02-27 | Hamilton Sundstrand Corporation | Machine learning intermittent data dropout mitigation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123572A (zh) * | 2006-08-07 | 2008-02-13 | 北京三星通信技术研究有限公司 | 分组损失隐藏方法 |
CN101231849A (zh) * | 2007-09-15 | 2008-07-30 | 华为技术有限公司 | 对高带信号进行帧错误隐藏的方法及装置 |
WO2008151579A1 (fr) * | 2007-06-14 | 2008-12-18 | Huawei Technologies Co., Ltd. | Procédé, dispositif et système permettant d'obtenir le masquage du paquet de perte |
CN101958122A (zh) * | 2010-09-19 | 2011-01-26 | 杭州华三通信技术有限公司 | 一种回声消除的方法和装置 |
US20120121100A1 (en) * | 2010-11-12 | 2012-05-17 | Broadcom Corporation | Method and Apparatus For Wind Noise Detection and Suppression Using Multiple Microphones |
US20190051310A1 (en) * | 2017-08-10 | 2019-02-14 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for packet loss concealment using generative adversarial network |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8428959B2 (en) * | 2010-01-29 | 2013-04-23 | Polycom, Inc. | Audio packet loss concealment by transform interpolation |
CN107369454B (zh) * | 2014-03-21 | 2020-10-27 | 华为技术有限公司 | 语音频码流的解码方法及装置 |
US10741192B2 (en) * | 2018-05-07 | 2020-08-11 | Qualcomm Incorporated | Split-domain speech signal enhancement |
US10475456B1 (en) * | 2018-06-04 | 2019-11-12 | Qualcomm Incorporated | Smart coding mode switching in audio rate adaptation |
US10779012B2 (en) * | 2018-12-04 | 2020-09-15 | Agora Lab, Inc. | Error concealment in video communications systems |
US11538489B2 (en) * | 2019-06-24 | 2022-12-27 | Qualcomm Incorporated | Correlating scene-based audio data for psychoacoustic audio coding |
-
2019
- 2019-10-29 US US16/667,413 patent/US11646042B2/en active Active
-
2020
- 2020-06-03 CN CN202010493719.9A patent/CN112751820B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123572A (zh) * | 2006-08-07 | 2008-02-13 | 北京三星通信技术研究有限公司 | 分组损失隐藏方法 |
WO2008151579A1 (fr) * | 2007-06-14 | 2008-12-18 | Huawei Technologies Co., Ltd. | Procédé, dispositif et système permettant d'obtenir le masquage du paquet de perte |
US20100049510A1 (en) * | 2007-06-14 | 2010-02-25 | Wuzhou Zhan | Method and device for performing packet loss concealment |
CN101231849A (zh) * | 2007-09-15 | 2008-07-30 | 华为技术有限公司 | 对高带信号进行帧错误隐藏的方法及装置 |
CN101958122A (zh) * | 2010-09-19 | 2011-01-26 | 杭州华三通信技术有限公司 | 一种回声消除的方法和装置 |
US20120121100A1 (en) * | 2010-11-12 | 2012-05-17 | Broadcom Corporation | Method and Apparatus For Wind Noise Detection and Suppression Using Multiple Microphones |
US20190051310A1 (en) * | 2017-08-10 | 2019-02-14 | Industry-University Cooperation Foundation Hanyang University | Method and apparatus for packet loss concealment using generative adversarial network |
Non-Patent Citations (4)
Title |
---|
BONG-KI LEE等: "Enhanced Muting Method in Packet Loss Concealment of ITU-T G.722 Using Sigmoid Function with On-line Optimized Parameters", 《IEEE》 * |
BONG-KI LEE等: "Packet Loss Concealment Based on Deep Neural Networks for Digital Speech Transmission", 《IEEE》 * |
GABRIEL MITTAG等: "SINGLE-ENDED PACKET LOSS RATE ESTIMATION OF TRANSMITTED SPEECH SIGNALS", 《IEEE》 * |
KEHUANG LI: "A DEEP NEURAL NETWORK APPROACH TO SPEECH BANDWIDTH EXPANSION", 《IEEE》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115512709A (zh) * | 2021-06-07 | 2022-12-23 | 炬芯科技股份有限公司 | 一种音频数据的处理方法、对应装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112751820B (zh) | 2023-03-10 |
US11646042B2 (en) | 2023-05-09 |
US20210125622A1 (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112751820B (zh) | 使用深度学习实现数字语音丢包隐藏 | |
US11456005B2 (en) | Audio-visual speech separation | |
CN104966517B (zh) | 一种音频信号增强方法和装置 | |
Wah et al. | A survey of error-concealment schemes for real-time audio and video transmissions over the Internet | |
KR101353847B1 (ko) | 반향 검출 방법 및 장치 | |
JP5357904B2 (ja) | 変換補間によるオーディオパケット損失補償 | |
KR101591626B1 (ko) | 딥신경망에 기초한 패킷 손실 은닉 방법 및 장치 | |
US20230377584A1 (en) | Real-time packet loss concealment using deep generative networks | |
CN113035207B (zh) | 音频处理方法及装置 | |
CN113763973A (zh) | 音频信号增强方法、装置、计算机设备和存储介质 | |
US20220180881A1 (en) | Speech signal encoding and decoding methods and apparatuses, electronic device, and storage medium | |
CN113508399A (zh) | 用于更新神经网络的方法和装置 | |
Nguyen et al. | Improving performance of real-time full-band blind packet-loss concealment with predictive network | |
Mohamed et al. | On deep speech packet loss concealment: A mini-survey | |
CN107452390B (zh) | 音频编码方法及相关装置 | |
WO2023236961A1 (zh) | 音频信号恢复方法、装置、电子设备及介质 | |
CN112634912A (zh) | 丢包补偿方法及装置 | |
CN114283837A (zh) | 一种音频处理方法、装置、设备及存储介质 | |
CN112908346B (zh) | 丢包恢复方法及装置、电子设备和计算机可读存储介质 | |
WO2020068401A1 (en) | Audio watermark encoding/decoding | |
CN112992168B (zh) | 语音降噪器训练方法、装置、计算机设备和存储介质 | |
WO2023240472A1 (en) | Signal encoding using latent feature prediction | |
Li et al. | A Packet Loss Concealment Method Based on the Demucs Network Structure | |
Xiang et al. | An improved packet loss concealment method for mobile audio coding | |
Ito | Enrichment of Audio Signal using Side Information. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |