The present disclosure relates generally to a method and apparatus for audio processing using a Convolutional Neural Network (CNN). More specifically, the present disclosure relates to extraction of speech from original noisy speech signals using a U-net-based CNN architecture.
While some embodiments will be described herein with particular reference to that disclosure, it will be appreciated that the present disclosure is not limited to such a field of use and is applicable in broader contexts.
Any discussion of the background art throughout the disclosure should in no way be considered as an admission that such art is widely known or forms part of common general knowledge in the field.
Deep neural networks (DNNs) have emerged as a viable option for solving various kinds of audio processing problems. Types of DNNs include feedforward multilayer perceptrons (MLP), convolutional neural networks (CNNs), recurrent neural networks (RNNs), and generative adversarial networks (GANs). Among these, CNNs are a class of feedforward networks.
The U-Net architecture [O. Ronneberger, P. Fischer, and T. Brox, “U-net: Convolutional networks for biomedical image segmentation,” in International Conference on Medical image computing and computer-assisted intervention. Springer, 2015, pp. 234-241] was introduced in biomedical imaging, to improve precision and localization of microscopic images of neuronal structures. The architecture builds upon a stack of convolutional layers as shown in
In recent years, the U-Net architecture has been adopted to the area of audio processing by regarding the audio spectrum as an image. As a result, it became possible to apply the U-net architecture to various audio processing problems, including vocal separation, speech enhancement and speech source separation. Speech source separation aims at recovering target speech from background interferences and finds many applications in the field of speech and/or audio technologies. In this context, speech source separation is also commonly known as the “cocktail party problem”. Challenges arise in this scenario in the extraction of dialog from professional content such as, for example, movie and TV due to the complex background.
It is an object of the present document to provide a novel U-net based CNN architecture which may be applied to various fields of audio processing, including vocal separation, speech enhancement and speech source separation.
In accordance with a first aspect of the present disclosure, a convolutional neural network (CNN) architecture is provided. The CNN architecture may be implemented by a computing system, for example. The CNN architecture may comprise a contracting path of a U-net, a multi-scale CNN, and an expansive path of a U-net. The contracting path may comprise a first encoding layer and may be configured to generate an output representation of the contracting path. The multi-scale CNN may be configured to generate, based on the output representation of the contracting path, an intermediate representation. The multi-scale CNN may comprise at least two parallel convolution paths. The expansive path may comprise a first decoding layer and may be configured to generate a final representation based on the intermediate representation generated by the multi-scale CNN.
The proposed CNN architecture may be suitable for or used for audio processing. As such, it may receive a first audio signal (first audio sample) as an input to the contracting path, and output a second audio signal (second audio sample) from the expansive path.
The first encoding layer may be configured to perform a convolution and a down-sampling operation. The first encoding layer may be configured to forward a result of said convolution and down-sampling operation as the intermediate representation to the multi-scale CNN. The first audio signal may be applied directly to the first encoding layer in case the contracting path does not comprise any further encoding layers.
The first decoding layer may be configured to generate an output by receiving the intermediate representation generated by the multi-scale CNN, receiving an output of the first encoding layer, concatenating the intermediate representation and the output of the first encoding layer, performing a convolution operation, and performing an up-sampling operation. The expansive path may be configured to generate the final representation based on said output of the first decoding layer. In particular, the expansive path may be configured to directly use said output of the first decoding layer as the final representation if the expansive path only comprises one (i.e. the first) decoding layer.
The CNN architecture may further comprise a second encoding layer. The second encoding layer may be configured to perform a convolution, perform a down-sampling operation, and forward a result to the first encoding layer. Moreover, the CNN architecture may further comprise a second decoding layer. The second decoding layer may be configured to receive the output of the first decoding layer, receive an output of the second encoding layer, concatenate the output of the first decoding layer and the output of the second encoding layer, perform a convolution operation, and perform an up-sampling operation.
In general, the contracting path may comprise further encoding layers and the expansive path may comprise further counterpart decoding layers which have the same size. In other words, encoding and decoding layers may be added pairwise. For example, additional encoding layers may be added before the second encoding layer for pre-processing an input of the second encoding layer, and additional decoding layers may be added after the second decoding layer for post-processing the output of the second decoding layer. Alternatively, additional layers may be added between the first encoding layer and the second encoding layer, and between the first decoding layer and the second decoding layer, respectively.
The multi-scale CNN may be configured to generate an aggregated output based on outputs of the at least two parallel convolution paths. The multi-scale CNN may be configured to generate the aggregated output by concatenating or adding the outputs of the at least two parallel convolution paths. The multi-scale CNN may be configured to weight the outputs of the at least two parallel convolution path using different weights. In particular, the multi-scale CNN may be configured to weight the outputs of the at least two parallel convolution paths before concatenating or adding said outputs. The weights may be based on trainable parameters learned from a training process.
Each parallel convolution path of the multi-scale CNN may include L convolution layers, wherein L is a natural number>1, and wherein an 1-th layer among the L layers has N1 filters with 1=1 . . . L.
For each parallel convolution path, the number N1 of filters in the 1-th layer may be increasing with increasing layer number 1. For example, for each parallel convolution path, the number N1 of filters in the 1-th layer may be given by N1=1*N0, wherein N0 is a predetermined constant>1. On the one hand, a filter size of the filters may be the same within each parallel convolution path. On the other hand, a filter size of the filters may be different between different parallel convolution paths.
For a given parallel convolution path, the filters of at least one of the layers of the parallel convolution path may be dilated 2D convolutional filters. The dilation operation of the filters of the at least one of the layers of the parallel convolution path may be performed on the frequency axis only.
For a given parallel convolution path, the filters of two or more of the layers of the parallel convolution path may be dilated 2D convolutional filters, and a dilation factor of the dilated 2D convolutional filters may increase exponentially with increasing layer number 1. For example, for a given parallel convolution path, a dilation may be (1,1) in a first of the L convolution layers, the dilation may be (1,2) in a second of the L convolution layers, the dilation may be (1,2{circumflex over ( )}(1-1)) in the 1-th of the L convolution layers, and the dilation may be (1,2{circumflex over ( )}(L-1)) in the last of the L convolution layers, where (c,d) indicates a dilation factor of c along the time axis and a dilation factor of d along the frequency axis.
Moreover, the multi-scale CNN may comprise a complex convolutional layer with a first CNN, a second CNN, an adding unit, and a subtracting unit. The first CNN may be configured to generate a first and a second intermediate representation based on a real part and an imaginary part of an input signal. The second CNN may be configured to generate a third and a fourth intermediate representation based on the real part and the imaginary part of the input signal. The adding unit may be configured to generate a real output representation based on the first and the third intermediate representations. The subtracting unit may be configured generate an imaginary output representation based on the second and the fourth intermediate representations.
In accordance with a second aspect of the present disclosure, there is provided another CNN architecture. Also this CNN architecture may be implemented by a computing system, for example. The CNN architecture may comprise a contracting path of a U-net and an expansive path of a U-net. The contracting path may comprise a first encoding layer and may be configured to generate an output representation of the contracting path. The first encoding layer may comprise a first multi-scale CNN with at least two parallel convolution paths. The expansive path may comprise a first decoding layer and may be configured to generate a final representation based on the output representation of the contracting path. The first decoding layer may comprise a second multi-scale CNN with at least two parallel convolution paths. Again, this CNN architecture may be suitable for or used for audio processing. As such, it may receive a first audio signal (first audio sample) as an input to the contracting path, and output a second audio signal (second audio sample) from the expansive path.
Both the first multi-scale CNN and the second multi-scale CNN may be implemented using the multi-scale CNN described in the foregoing description. In particular, the first multi-scale CNN and the second multi-scale CNN may be based on an identical network structure.
The first encoding layer may be configured to perform a down-sampling (or pooling) operation on the output of the first multi-scale CNN. The first decoding layer may be configured to receive the output representation of the contracting path, receive an output of the first encoding layer, perform a concatenation based on the output of the first encoding layer and the output representation of the contracting path, feed the result to the second multi-scale CNN and perform an up-sampling operation. Thus, the first decoding layer may be configured to determine said final representation.
The contracting path may comprise a second encoding layer, and the expansive path may comprise a corresponding second decoding layer. The second encoding layer may comprise a third multi-scale CNN with at least two parallel convolution paths, and the second decoding layer may comprise a fourth multi-scale CNN with at least two parallel convolution paths. The third and fourth multi-scale CNN may be based on similar or identical networks structures as the first and second multi-scale CNN.
On the one hand, the second encoding layer may be configured to perform a convolution operation using the third multi-scale CNN, perform a down-sampling operation, and forward the result to the first encoding layer. On the other hand, the second decoding layer may be configured to receive an output of the first decoding layer, an output of the second encoding layer, concatenate the output of the first decoding layer and the output of the second encoding layer, perform a convolution operation using the fourth multi-scale CNN, and finally perform an up-sampling operation to obtain the final representation of the expansive path.
The CNN architecture may further comprise another multi-scale CNN coupled between the contracting path and the expansive path, wherein the another multi-scale CNN comprises at least two parallel convolution paths, and is configured to receive and process the output representation of the contracting path. Further, the another multi-scale CNN may be configured to forward its output to the expansive path.
The first multi-scale CNN may be configured to generate an aggregated output based on outputs of the at least two parallel convolution paths, perform a 2D convolution on the aggregated output, and perform a down-sampling or pooling operation based on the result of the 2D convolution.
The second multi-scale CNN may be configured to generate an aggregated output based on outputs of the at least two parallel convolution paths, perform a 2D convolution on the aggregated output, and perform an up-sampling operation based on the result of the 2D convolution.
Again, the first and/or the second multi-scale CNN may be configured to generate the aggregated output by concatenating or adding the outputs of the respective at least two parallel convolution paths. The first and/or the second multi-scale CNN may be configured to weight the outputs of the at least two parallel convolution path using different weights before concatenating or adding said outputs. The weights may be based on trainable parameters learned from a training process.
Each parallel convolution path of the first and/or the second multi-scale CNN may include L convolution layers, wherein L is a natural number>1, and wherein an 1-th layer among the L layers has N1 filters with 1=1 . . . L. For each parallel convolution path, the number N1 of filters in the 1-th layer may be increasing with increasing layer number 1. For example, for each parallel convolution path, the number N1 of filters in the 1-th layer may be given by N1=1*N0, wherein N0 is a predetermined constant>1. A filter size of the filters may be the same within each parallel convolution path. Alternatively, a filter size of the filters may be different between different parallel convolution paths. For a given parallel convolution path, the filters of at least one of the layers of the parallel convolution path may be dilated 2D convolutional filters. The dilation operation of the filters of the at least one of the layers of each parallel convolution path may be performed on the frequency axis only. Specifically, for a given parallel convolution path, the filters of two or more of the layers of the parallel convolution path may be dilated 2D convolutional filters, and a dilation factor of the dilated 2D convolutional filters may increase exponentially with increasing layer number 1.
The first multi-scale CNN or the second multi-scale CNN may comprise a complex convolutional layer. The complex convolutional layer may comprise a first CNN, a second CNN, an adding unit, and a subtracting unit. The first CNN may be configured to generate a first and a second intermediate representation based on a real part and an imaginary part of an input signal. The second CNN may be configured to generate a third and a fourth intermediate representation based on the real part and the imaginary part of the input signal. The adding unit may be configured to generate a real output representation based on the first and the third intermediate representations. The subtracting unit may be configured generate an imaginary output representation based on the second and the fourth intermediate representations.
A complex target range of the complex convolutional layer may be limited by disregarding complex target values whose absolute values are larger than a predetermined threshold value. Alternatively, the complex target range of the complex convolutional layer may be limited by mapping, using a transformation function, complex target values to mapped complex target values whose absolute values are smaller than or equal to a predetermined threshold value.
In accordance with a third aspect of the present disclosure, there is provided an apparatus for audio processing. The apparatus may be configured to receive input of an input audio signal and output an output audio signal. The apparatus may comprise any one of the above-described CNN architectures. An input to the contracting path may be based on the input audio signal and the output audio signal may be based on an output of the expansive path.
In accordance with a fourth aspect of the present disclosure, there is provided a method of audio processing using convolutional neural networks (CNNs). The method may comprise providing a contracting path of a U-net with a first encoding layer. The method may comprise generating, by the contracting path, an output representation of the contracting path. The method may comprise providing a multi-scale CNN comprising at least two parallel convolution paths. The method may comprise generating, by the multi-scale CNN, based on the output representation of the contracting path, an intermediate representation. The method may comprise providing an expansive path of a U-net with a first decoding layer. The method may comprise generating, by the expansive path, a final representation based on the intermediate representation generated by the multi-scale CNN.
In accordance with a fifth aspect of the present disclosure, there is provided another method of audio processing using convolutional neural networks (CNNs). The method may comprise providing a contracting path of a U-net with a first encoding layer, wherein the first encoding layer comprises a first multi-scale CNN with at least two parallel convolution paths. The method may comprise generating, by the contracting path, an output representation of the contracting path. The method may comprise providing an expansive path of a U-net with a first decoding layer, wherein the first decoding layer comprises a second multi-scale CNN with at least two parallel convolution paths. The method may comprise generating, by the expansive path, a final representation based on the output representation of the contracting path.
In accordance with a sixth aspect of the present disclosure, there are provided computer program products, each comprising a computer-readable storage medium with instructions adapted to cause a respective device to carry out some or all of the steps of the above-described methods when executed by a device having processing capability.
According to a seventh aspect of the present disclosure, a computing system implementing the aforementioned CNN architecture(s) is provided.
According to a further aspect of the present disclosure, a system for audio processing is presented. The system may comprise one or more processors and a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to perform the following operations: receiving an input audio signal and processing the input audio signal using a CNN architecture according to any one of the above-described CNN architectures. The processing may comprise providing an input to the contracting path of the CNN architecture based on the input audio signal, and generating an output audio signal based on an output of the expansive path of the CNN architecture. Furthermore, the system may be configured to provide the audio signal to a downstream device.
Example embodiments of the disclosure will now be described, by way of example only, with reference to the accompanying drawings in which:
In an exemplary implementation, the architecture illustrated in
With the help of the multi-scale CNN block 27 at the bottleneck layer of a U-net, it becomes possible to use different filter sizes combined with different stride or dilation to capture features in different scales. Based on the multi-scale CNN, the network is able to generate scale-relevant features which is very important and cost effective for practical applications. In
The filter size of the filters may be the same (i.e., uniform) within each parallel convolution path. For example, a filter size of (k1,k1) (i.e., k1*k1) may be used in each layer within the top parallel convolution path. By using the same filter size in each parallel convolution path, mixing of different scale features may be avoided. In this way, the CNN learns the same scale feature extraction in each path, which greatly improves the convergence speed of the CNN. The filter size of the filters may be different between different parallel convolution paths. For example, without intended limitation, if the aggregated multi-scale CNN includes three parallel convolution paths, the filters size may be (k1,k1) in the first (top) parallel convolution path, (k2,k2) in the second (middle) parallel convolution path, and (k3,k3) in the third (bottom) parallel convolution path. For instance, the filter size may depend on a harmonic length to conduct feature extraction.
The filters of at least one of the layers of the parallel convolution path may be dilated 2D convolutional filters. The use of dilated filters enables extracting the correlation of harmonic features in different receptive fields. Dilation enables to reach far receptive fields by jumping (i.e., skipping, leaping over) a series of time-frequency (TF) bins. The dilation operation of the filters of the at least one of the layers of the parallel convolution path may be performed on the frequency axis only. For example, a dilation of (1,2) in the context of this disclosure may indicate that there is no dilation along the time axis (dilation factor 1), while every other bin in the frequency axis is skipped (dilation factor 2). In general, a dilation of (1,d) may indicate that (d-1) bins are skipped along the frequency axis between bins that are used for the feature extraction by the respective filter.
As illustrated in
Finally,
One option to achieve this goal is to pack the real and imaginary parts of the input matrix as two input channels, and apply a real-valued convolution operation with one shared real-valued convolution filter. However, this method may be not confined with the complex multiplication rules, and hence the networks may learn the real and imaginary parts independently. To address this issue, the complex convolutional layer shown in
In
The target mask of the complex model is also a complex value and its real and imaginary parts have a quite large value range. Non-linear transformation/compression is usually needed to transform the original value range to a fixed certain range, for example, the range of [0,1]. It would be easier to learn/converge in model training. In this disclosure, we propose two solutions:
The loss function may also include multiples items, i.e. both the real part loss and imaginary part loss for both estimated soft mask and spectrum. It can also include a magnitude loss or wave domain loss by transforming complex value to real value via Inverse Fast Fourier Transformation (IFFT). All the items may be weighted based on a specific application.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the disclosure discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining”, “analyzing” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing devices, that manipulate and/or transform data represented as physical, such as electronic, quantities into other data similarly represented as physical quantities.
In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data, e.g., from registers and/or memory to transform that electronic data into other electronic data that, e.g., may be stored in registers and/or memory. A “computer” or a “computing machine” or a “computing platform” may include one or more processors.
The methodologies described herein are, in one example embodiment, performable by one or more processors that accept computer-readable (also called machine-readable) code containing a set of instructions that when executed by one or more of the processors carry out at least one of the methods described herein. Any processor capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken are included. Thus, one example is a typical processing system that includes one or more processors. Each processor may include one or more of a CPU, a graphics processing unit, and a programmable DSP unit. The processing system further may include a memory subsystem including main RAM and/or a static RAM, and/or ROM. A bus subsystem may be included for communicating between the components. The processing system further may be a distributed processing system with processors coupled by a network. If the processing system requires a display, such a display may be included, e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT) display. If manual data entry is required, the processing system also includes an input device such as one or more of an alphanumeric input unit such as a keyboard, a pointing control device such as a mouse, and so forth. The processing system may also encompass a storage system such as a disk drive unit. The processing system in some configurations may include a sound output device, and a network interface device. The memory subsystem thus includes a computer-readable carrier medium that carries computer-readable code (e.g., software) including a set of instructions to cause performing, when executed by one or more processors, one or more of the methods described herein. Note that when the method includes several elements, e.g., several steps, no ordering of such elements is implied, unless specifically stated. The software may reside in the hard disk, or may also reside, completely or at least partially, within the RAM and/or within the processor during execution thereof by the computer system. Thus, the memory and the processor also constitute computer-readable carrier medium carrying computer-readable code. Furthermore, a computer-readable carrier medium may form, or be included in a computer program product.
In alternative example embodiments, the one or more processors operate as a standalone device or may be connected, e.g., networked to other processor(s), in a networked deployment, the one or more processors may operate in the capacity of a server or a user machine in server-user network environment, or as a peer machine in a peer-to-peer or distributed network environment. The one or more processors may form a personal computer (PC), a tablet PC, a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
Note that the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
Thus, one example embodiment of each of the methods described herein is in the form of a computer-readable carrier medium carrying a set of instructions, e.g., a computer program that is for execution on one or more processors, e.g., one or more processors that are part of web server arrangement. Thus, as will be appreciated by those skilled in the art, example embodiments of the present disclosure may be embodied as a method, an apparatus such as a special purpose apparatus, an apparatus such as a data processing system, or a computer-readable carrier medium, e.g., a computer program product. The computer-readable carrier medium carries computer readable code including a set of instructions that when executed on one or more processors cause the processor or processors to implement a method. Accordingly, aspects of the present disclosure may take the form of a method, an entirely hardware example embodiment, an entirely software example embodiment or an example embodiment combining software and hardware aspects. Furthermore, the present disclosure may take the form of carrier medium (e.g., a computer program product on a computer-readable storage medium) carrying computer-readable program code embodied in the medium.
The software may further be transmitted or received over a network via a network interface device. While the carrier medium is in an example embodiment a single medium, the term “carrier medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “carrier medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by one or more of the processors and that cause the one or more processors to perform any one or more of the methodologies of the present disclosure. A carrier medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks. Volatile media includes dynamic memory, such as main memory. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise a bus subsystem. Transmission media may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. For example, the term “carrier medium” shall accordingly be taken to include, but not be limited to, solid-state memories, a computer product embodied in optical and magnetic media; a medium bearing a propagated signal detectable by at least one processor or one or more processors and representing a set of instructions that, when executed, implement a method; and a transmission medium in a network bearing a propagated signal detectable by at least one processor of the one or more processors and representing the set of instructions.
It will be understood that the steps of methods discussed are performed in one example embodiment by an appropriate processor (or processors) of a processing (e.g., computer) system executing instructions (computer-readable code) stored in storage. It will also be understood that the disclosure is not limited to any particular implementation or programming technique and that the disclosure may be implemented using any appropriate techniques for implementing the functionality described herein. The disclosure is not limited to any particular programming language or operating system.
Reference throughout this disclosure to “one example embodiment”, “some example embodiments” or “an example embodiment” means that a particular feature, structure or characteristic described in connection with the example embodiment is included in at least one example embodiment of the present disclosure. Thus, appearances of the phrases “in one example embodiment”, “in some example embodiments” or “in an example embodiment” in various places throughout this disclosure are not necessarily all referring to the same example embodiment. Furthermore, the particular features, structures or characteristics may be combined in any suitable manner, as would be apparent to one of ordinary skill in the art from this disclosure, in one or more example embodiments.
As used herein, unless otherwise specified the use of the ordinal adjectives “first”, “second”, “third”, etc., to describe a common object, merely indicate that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
In the claims below and the description herein, any one of the terms comprising, comprised of or which comprises is an open term that means including at least the elements/features that follow, but not excluding others. Thus, the term comprising, when used in the claims, should not be interpreted as being limitative to the means or elements or steps listed thereafter. For example, the scope of the expression a device comprising A and B should not be limited to devices consisting only of elements A and B. Any one of the terms including or which includes or that includes as used herein is also an open term that also means including at least the elements/features that follow the term, but not excluding others. Thus, including is synonymous with and means comprising.
It should be appreciated that in the above description of example embodiments of the disclosure, various features of the disclosure are sometimes grouped together in a single example embodiment, FIG., or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claims require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed example embodiment. Thus, the claims following the Description are hereby expressly incorporated into this Description, with each claim standing on its own as a separate example embodiment of this disclosure.
Furthermore, while some example embodiments described herein include some but not other features included in other example embodiments, combinations of features of different example embodiments are meant to be within the scope of the disclosure, and form different example embodiments, as would be understood by those skilled in the art. For example, in the following claims, any of the claimed example embodiments can be used in any combination.
In the description provided herein, numerous specific details are set forth. However, it is understood that example embodiments of the disclosure may be practiced without these specific details. In other instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Thus, while there has been described what are believed to be the best modes of the disclosure, those skilled in the art will recognize that other and further modifications may be made thereto without departing from the spirit of the disclosure, and it is intended to claim all such changes and modifications as fall within the scope of the disclosure. For example, any formulas given above are merely representative of procedures that may be used. Functionality may be added or deleted from the block diagrams and operations may be interchanged among functional blocks. Steps may be added or deleted to methods described within the scope of the present disclosure.
Aspects and implementations of the present disclosure will also become apparent from the below enumerated example embodiments (EEEs), which are not claims.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2020/121829 | Oct 2020 | WO | international |
20211501.0 | Dec 2020 | EP | regional |
This application claims priority of the following priority application: PCT international application PCT/CN2020/121829, filed 19 Oct. 2020 and U.S. provisional application 63/112,220, 11 Nov. 2020 and EP application 20211501.0, filed Dec. 3, 2020.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2021/055672 | 10/19/2021 | WO |
Number | Date | Country | |
---|---|---|---|
63112220 | Nov 2020 | US |