This disclosure relates to microphone arrays and, in particular, to a flexible differential microphone array (FDMA) with a fractional order beamformer.
In voice communications between humans and human-machine speech interfaces, a signal of interest picked up by microphone sensors is commonly contaminated by unwanted elements such as additive noise, reverberation, and interference, which may impair the fidelity and quality of the signal of interest and also affect the performance of subsequent operations such as, for example, automatic speech recognition (ASR) based on the signal. In order to deal with these adverse effects and recover the signal of interest, a microphone array with a spatial filter called a beamformer may be used for directional signal transmission or reception. A microphone array may contain multiple microphones arranged according to a geometric relation such as, for example, on a line, on a planar surface, on a three-dimensional surface, or in a three-dimensional space. Each microphone in the microphone array may capture a version of a sound signal originating from a sound source and convert the captured signals into electronic signals. Each version of the signal may represent the sound source captured at a particular incident angle with respect to a reference point (e.g., a reference microphone location in the array) at a particular time. The time may be recorded in order to determine a time delay for each microphone with respect to the reference point.
A differential microphone array (DMA) uses signal processing techniques to obtain a directional response to the source signal based on differentials of pairs of the source signals. The differentials can be obtained by combining the electronic signals from the microphones of the DMA.
The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.
Compared with a single microphone, the sound signals received at different microphones in the microphone array include redundancy that may be used to calculate an estimate of a sound source to achieve certain objectives such as, for example, noise reduction/speech enhancement, automatic speech recognition (ASR), sound source separation, de-reverberation, spatial sound recording, and source localization and tracking. The microphone array may be communicatively coupled to a processing device (e.g., a digital signal processor (DSP) or a central processing unit (CPU)) that includes circuits programmed to implement a beamformer to calculate the estimate of the sound source.
A beamformer is a spatial filter that uses the multiple versions of the sound signal captured by the microphones in the microphone array to identify the sound source according to certain optimization rules. Some implementations of the beamformers are not effective in dealing with noise components at low frequencies because the beam-widths (i.e., the widths of the main lobes in the frequency domain) associated with the beamformers are inversely proportional to the frequency. To counter the non-uniform frequency response of beamformers, differential microphone arrays (DMAs) have been used to achieve substantially frequency-invariant beampatterns. A beampattern (also known as a directivity pattern) reflects the sensitivity of the beamformer to a plane wave impinging on the DMA from a particular angular direction. DMAs may contain an array of microphone sensors that are responsive to the spatial derivatives of the acoustic pressure field generated by the sound source. An FDMA may include flexibly distributed microphones (e.g., linear, circular or other array structure) that are arranged on a common plenary platform.
DMAs can measure the derivatives (at different orders of derivatives) of the sound signals captured by the microphone, where the collection of the sound signals forms an acoustic field associated with the microphone array. For example, a first-order DMA beamformer, formed using the difference between a pair of two microphones (either adjacent or non-adjacent), may measure the first-order derivative of the acoustic pressure field, and a second-order DMA beamformer, formed using the difference between a pair of two first-order differences of the first-order DMA, may measure the second-order derivatives of the acoustic pressure field, where the first-order DMA includes at least two microphones, and the second-order DMA includes at least three microphones. Thus, an Nth order DMA beamformer may measure the Nth order derivatives of the acoustic pressure field, where the Nth order DMA includes at least N+1 microphones. One aspect of a beampattern of a microphone array can be quantified by the directivity factor (or directivity) which is the capacity of the beampattern to maximize the ratio of its sensitivity in the look direction to its average sensitivity over all directions. The look direction is an impinging angle of the sound signal that has the maximum sensitivity. The DF of a DMA beampattern may increase with the order of the DMA. However, a larger order DMA can be very sensitive to noise generated by the hardware elements of each microphone of the DMA itself, referred to as white noise gain (WNG).
One way to reduce the WNG is to increase the number of microphones without increasing the order of the DMA beamformer. However, with a fixed array structure and number of microphones for a DMA, if the WNG of the DMA beamformer cannot meet a robustness requirement (e.g., minimum tolerable WNG), the order of the DMA beamformer may need to be reduced from the current order to a lower positive integer number order. The lower order would adversely affect the DF and therefore, in DMA applications where the number of microphones is fixed, it would be beneficial to be able to lower the order of the DMA beamformer to a certain level. To address these technical problems, implementations of the disclosure provide a microphone array that may be associated with a beamformer that can have integer or fractional order of beampatterns to satisfy the robustness requirement while maintaining a desirable (or target) DF.
According to the implementations, a DMA beamformer with fractional orders may achieve a continuous compromise between a performance (e.g., DF vs. WNG) of the maximum designable order (e.g., Nth order) and the omnidirectional order (e.g., 0 order). A fractional order beampattern is generated to achieve the continuous compromise in performance between the order of N and 0. To construct DMA beamformers, the beamformer's beampattern (e.g., directivity pattern) is approximated using the Jacobi-Anger expansion, then a proper beamforming filter is determined so that its beampattern is as close as possible to a desired frequency-invariant beampattern. Furthermore, a value representing a fractional order for the constructed beamformer may be determined based on a specified DF or WNG value for a DMA beamformer of said fractional order, as explained below with respect to
For simplicity of explanation, methods are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter. In addition, the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term article of manufacture, as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media. In one implementation, the methods may be performed by the fractional beamformer 310 executed on the processing device 306 as shown in
Referring to
d(ω,θs)=[ejω
where the superscript T is the transpose operator, j is the imaginary unit with j2=−1, ω=2πf is the angular frequency, and f>0 is the temporal frequency.
At 104, the processing device may specify a target DF value for the DMA. As noted above, the DF represents the ability of a beamformer in suppressing spatial noise from directions other than the look direction. The DF associated with the DMA, as described above, may be written as:
where h(ω)=[H1(ω) H2(ω) . . . Hm(ω)]T is a global filter for a beamformer associated with the DMA, the superscript H represents the conjugate-transpose operator, [H1(ω) H1(ω) . . . HM(ω)]T are the spatial filter of M microphones, Γd(ω) is the pseudo-coherence matrix of the noise signal in a diffuse (spherically isotropic) noise field, and the (i, j)th element of Γd(ω) is
where δij is the distance between microphone elements i and j, and c is a constant of the sound speed.
At 106, the processing device may generate an N order beampattern for the DMA, wherein N is an integer and a first DF value corresponding to the N order beampattern is greater than the target DF value. In this situation, the N order beampattern exceeds the target DF value and therefore negatively affects WNG values more than is necessary, e.g., more spatially white noise is present than is needed to achieve the target DF value.
As noted above, a DMA may be associated with a beampattern that reflects the sensitivity of a corresponding beamformer to a plane wave impinging on DMA from a particular angular direction θ. The beampattern for a plane wave impinging from an angle θ, on the DMA described above, may be defined as:
B[h(ω),θ]=hH(ω)d(ω,θ)=Σm=1MH*m(ω)ejω
Therefore, for such a DMA, a target frequency-invariant beampattern corresponding to the angle θs, which is the incident angle of the sound signal, can be written as B(αN, θ−θs)=Σn=0NαN,n cos(n(θ−θs)), where αN,n are the real coefficients that determines the shape of the different beampatterns of the Nth-order DMA. The B(αN, θ−θs) may be rewritten as:
B(bN,θ−θs=Σn=−NNbN,nejn(θ−θ
where bN,0=αN,0, bN,i=½αN,i, i=±1, ±2, . . . , ±N,
Y(θs)=diag(ejNθ
is a (2N+1)×(2N+1) diagonal matrix, and
b
N=[bN,−N. . . bN,0. . . bN,N]T, and
P
e(θ)=[e−jNθ. . . 1 . . . ejNθ]T,
are vectors of length 2N+1, respectively. The beampattern B[h(ω), θ] after applying the beamforming filter h(ω) should match the target beampattern B(bN, θ−θs). For example, the target (or desired) beampattern may be a second-order hypercardioid whose coefficients are:
At 108, the processing device may generate an N−1 order beampattern for the DMA, wherein a second DF value corresponding to the N−1 order beampattern is smaller than the target DF value. In this situation, the N−1 order does not reach the target DF value and therefore more diffuse noise (e.g., from directions not being focused on) is present than is necessary for the target DF value, e.g., more noise is present than is desired (e.g., targeted) from directions other than the look direction.
At 110, the processing device may generate a fractional order beampattern for the DMA, wherein a third DF value corresponding to the fractional order beampattern matches the target DF value and the fractional order beampattern comprises a first fractional contribution from the N order beampattern and a second fractional contribution from the N−1 order beampattern.
A beampattern that achieves a compromise (e.g., something intermediate) between the performance (e.g., DF vs. WNG) of beampatterns of orders N through 0 may be defined as:
B(αNθ−θs)=ΣN′=0NαN′BN′(n(θ−θs))
where αN=[α0α1 . . . αN]T, with 0≥αN′≤1, and ΣN′=0NαN′=1. The compromise beampattern may be written as:
B(αNθ−θs)=ΣN′=−0Nb′N′,nejn(Ø−Ø
where
b′
N′,n=ΣN′=0NαN′b′N′,n,
with N′=0, 1, . . . , N as the weighted coefficient for the component ejnØ. Furthermore, in the case that n>N′, the value of b′N′,n may default to 0.
Therefore, by properly choosing the values of αN′, the above-defined compromise beampattern may achieve continuous performance compromises between the N and 0 (omnidirectional) order beampatterns. There are N+1 different parameters in the compromise beampattern, as defined above, which may be determined in a multi-stage way, i.e., a compromise can be established between the N and (N−1) order beampattern, and if not, then between (N−1) and (N−2) order, and so on until to the omnidirectional. To begin, a fractional (N−1+α) [abbreviated as (N−1)α below] order beampattern that achieves a compromise between the beampatterns of order N and (N−1) is defined as:
B
(N-1)
(θ−θs)=αβN(θ−θs)+(1−α)BN-1(θ−θs)
where α∈ [0, 1] is a real weight that determines the degree of compromise between the N order and (N−1) order.
The fractional order beampattern between the beampatterns of order N and (N−1) may also be rewritten as:
B
(N-1)α(θ−θs)=Σn=0Nb(N-1)
where
b
(N-1)
,n
=α,b
N,n+(1−α)b(N−1),n, and
b
(N-1)
=α,b
N+(1−α){tilde over (b)}(N-1),
where {tilde over (b)}(N-1)=[0 . . . bTN-1 . . . 0]T is a zero-padded coefficient vector of length 2N+1.
Consequently, the beampattern that achieves a continuous compromise between the N and 0 order beampatterns is defined as
B
N
(θ−θs)=[Y(θs)bN
where =+α(0 N) is the fractional order of the beampattern, with , (∈{N, N−1, . . . , 0}), being the integer portion, and α, (α∈[0, 1]) being the fractional portion. The fractional order and the corresponding vector can be defined in a multi-stage way as:
N
a
=N:
=b
N
=(N−1)α:=αbN+(1−α){tilde over (b)}N-1
=(N−2)α:=α{tilde over (b)}N-1+(1−α){tilde over (b)}N-2
=0α:=α{tilde over (b)}1+(1−α){tilde over (b)}0,
where
=[0 . . . . . . 0]T,
with N=0, 1, . . . , N, is the zero-padded coefficients vector of length 2N+1. Therefore,
=α,+1+(1−α)=[ . . . . . . ]T,
where =α+(1−α)
At 112, the processing device may end the execution of operations to construct a fractional order beamformer for the DMA. For example, the processing device may generate a beamforming filter based on the generated fractional order beampattern as a final step in the construction of the beamformer. The beamforming filter h(ω) can be derived, for example, by using a minimum-norm method:
minh(ω)hH(ω)h(ω), subject to Ψ(ω)h(ω)=*(θs)
whose solution may be:
(ω)=ΨH(ω)[Ψ(ω)ΨH(ω)]−1*(θs)
as explained more fully below with respect to
Determination of the Fractional Order with a Target DF Value
The value of the fractional order (α), given a target DF value for the DMA, may be determined based on θs=0° since the value of θs has no effect on the DF. Therefore, a frequency-independent planar DF (on the plane of the M microphones of the DMA) of the Nα order beampattern is defined as:
which can be written as:
Consequently, the frequency-independent DF of the Nth-order beampattern may be defined as:
Therefore the DF of the α beampattern satisfies Nα so that with a specified DF value, , the integer portion of the desired order α, i.e., , is obtained as
Therefore
and are vectors of real coefficients that determine the beampatterns. Therefore, the solution of the fractional portion a is determined by the equation:
which may be equivalently transformed into a quadratic equation and its solution is simply computed as:
The fractional parameter α may be determined as the solution in the range of [0, 1].
In one implementation, a fractional order beampattern may be determined based on a target WNG value.
Referring to
At 204, the processing device may specify a target WNG value for the DMA. As noted above, the WNG evaluates the sensitivity of a beamformer to some of the DMA's own imperfections (e.g., noise from its own hardware elements). The WNG associated with the DMA, as described above with respect to
where h(ω)=[H1(ω) H2(ω) . . . Hm(ω)]T is a global filter for a beamformer associated with the DMA, and the superscript H represents the conjugate-transpose operator, and [H1(ω) H1(ω) . . . HM(ω)]T are the spatial filter of M microphones.
At 206, the processing device may generate an N order beampattern and corresponding N order beamformer for the DMA, wherein N is an integer and a first WNG value corresponding to the N order beamformer is smaller than the target WNG value. In this situation, the N order beampattern does not reach the target WNG value and therefore negatively affects the DF values more than is necessary, e.g., more spatial noise is present than is needed to achieve the target WNG value.
At 208, the processing device may generate an N−1 order beampattern and corresponding beamformer for the DMA, wherein a second WNG value corresponding to the N−1 order directivity beamformer is greater than the target WNG value. In this situation, the N−1 order exceeds the target WNG value and therefore more spatially white noise (e.g., noise from DMA microphones) is present than is desired based on the target WNG value.
At 210, the processing device may generate a fractional order beampattern and corresponding beamformer for the DMA, wherein a third WNG value corresponding to the fractional order beamformer matches the target WNG value and the fractional order beampattern comprises a first fractional contribution from the N order beampattern and a second fractional contribution from the N−1 order beampattern.
As noted above, with respect to
At 212, the processing device may end the execution of operations to construct the fractional order beamformer for the DMA. As noted above with respect to
minh(ω)hH(ω)h(ω), subject to Ψ(ω)h(ω)=*(θs)
whose solution may be defined as:
(ω)=ΨH(ω)[Ψ(ω)ΨH(ω)]−1*(θs)
The constructed beampattern B[h(ω), θ] after applying the beamforming filter h(ω) should match the target beampattern B(bN, θ−θs).
Determination of the Fractional Order (α) with a Target WNG Value for the DMA:
A white noise amplification problem (e.g., WNG) may greatly affect the performance of the DMA. Consequently, achieving a reasonable WNG level while also achieving a relatively high value of the DF with the DMA beamformer is a significant issue. As noted above, the WNG of the DMA may be defined as:
which for the fractional (Nα) order beampattern, can be written as:
(ω)=α2(ω)+2α(1−α)(ω)+(1−α)2(ω),
where
(ω)=Φ(ω)=Φ(ω)
ζN(ω)=Φ(ω)}, and
(ω)=Φ(ω)=Φ(ω),
with □(·) being the real part of a complex number and being vectors of real coefficients that determine the beampatterns. Consequently, by neglecting the approximation error on the distortion-less constraint in the look direction, the WNG of the Nth-order beampattern may be defined as:
Therefore the WNG of the α beampattern, at a given frequency, satisfies
so that with a specified WNG value, , the integer portion of the desired order α, i.e., , is obtained as:
Then, the fractional portion a may be computed by setting [(ω)]=, which is equivalent to solving the following equation:
Therefore, the solution of the fractional portion a may be determined as:
The fractional parameter α may be determined as the solution in the range of [0, 1]. Therefore, DMA beamformers may be constructed with a given minimum tolerant WNG, W, where W is a constant determined by a robustness level of the DMA system.
r
k
=r
k[cos(ψk)sin(ψk)]T,
with k=1, 2, . . . , M, where the superscript T is the transpose operator, rk represents the distance from the kth microphone to the origin, and ψk represents the angular position of the kth microphone. The distance between microphone i and microphone j is then
δij=∥ri−rj∥,
where i, j=1, 2, . . . , M, and ∥·∥ is the Euclidean norm. It is assumed that the maximum distance between two microphones is smaller than the wavelength (λ) of the sound wave.
Assuming that the source signal is a plane wave from a far-field, propagating in an anechoic acoustic environment at the speed of the sound (c=340 m/s), and impinges on FDMA 302. The incident direction of the source signal to FDMA 302 is the azimuthal angle θs. The time delay between the kth microphone and the reference point (O) can be written as:
where k=1, 2, . . . , M.
FDMA 302 may be associated with a steering vector that may represent the relative phase shifts for the incident far-field waveform across the microphones of FDMA 302. Thus, the steering vector is the response of FDMA 302 to an impulse input. With the features of FDMA 302, as described above, a steering vector for FDMA 302 may be defined as:
d(ω,θs)=[ejωτ
where the superscript T is the transpose operator, j is the imaginary unit with j2=−1, ω=2πf is the angular frequency, and f>0 is the temporal frequency.
As noted above, the microphone sensors of FDMA 302 may receive acoustic signals originated from a sound source from an incident direction θs. In one implementation, the acoustic signal may include a first component s(t) from the sound source and a second component v(t) of noise (e.g., additive noise), wherein t is the time. Each microphone of FDMA 302 may receive a version of an acoustic signal ak(t) that may include a delayed copy of the first component s(t) from the sound source, that is represented as s(t+dk), and a noise component represented as vk(t), wherein t is the time, k=1, . . . , M, dk is the time delay for the acoustic signal received at microphone mk to a reference point, and vk(t) represents the noise component at microphone mk. The electronic circuit of microphone mk of FDMA 302 may convert ak(t) into electronic signals ek(t) that may be fed into the ADC 304, wherein k=1, . . . , M. In one implementation, the ADC 304 may further convert the electronic signals ek(t) into digital signals yk(t). The analog to digital conversion may include quantization of the input ek(t) into discrete values yk(t).
In one implementation, the processing device 306 may include an input interface (not shown) to receive the digital signals yk(t) and identify the sound source using fractional beamformer 310 obtained using implementations described above. To execute fractional beamformer 310, in one implementation, the processing device 306 may implement a pre-processor 308 that may further process the digital signal yk(t) for fractional beamformer 310. The pre-processor 308 may include hardware circuits and software programs to convert the digital signals yk(t) into frequency domain representations using such as, for example, short-time Fourier transforms (e.g., STFT 404 as shown in
In one implementation, the pre-processing module 308 may perform STFT on the input yk(t) associated with microphone mk of FDMA 302 and calculate the corresponding frequency domain representation (e.g., Yk(w) 406, as shown in
The processing device 306 may also include a post-processor 312 that may convert the estimate Z(ω) 418 for each of the frequency sub-bands back into the time domain to provide the estimate sound source represented as x(t). The estimated sound source x(t) may be determined with respect to the source signal received at a reference point (e.g., a microphone sensor location) in FDMA 302.
In one implementation, the data received from the M microphones of FDMA 302 may be pre-processed using short-time Fourier transforms (STFT) 404 on a time domain input yk(t) (as shown in
The beamforming filter h(ω) 416 may be determined so that its beampattern is as close as possible to a desired frequency-invariant beampattern (as described above with respect to step 106 of method 100 of
where Jn(x) is the nth-order Bessel function of the first kind. Using the above Jacobi-Anger expansion, and limiting the Jacobi-Anger series to the order ±N (since the maximum designable order may be determined as N based on the number M of microphones of the FDMA 302), it is show the beampattern for the beamformer may be written as:
where ψn(ω)=[Jn(x1)e−jnψ
is a (2N+1) X M matrix and the superscript * denotes complex conjugation. Therefore, the beamforming filter h(ω) can be derived, for example, by using a minimum-norm method:
minh(ω)hH(ω)h(ω), subject to Ψ(ω)h(ω)=*(θs)
whose solution may be determined as:
(ω)=ΨH(ω)[Ψ(ω)ΨH(ω)]−1(θs)
As shown in
As seen in the data flow of system 400, the three parts of beamforming filter h(ω) 416 operate independently of each other, so that an adjustment of the microphone positions, the steering of the beampattern or the controlling of the order of the beampattern (and its fractional order compromise) may be implemented separately without concern for the other parts. Accordingly, the methodologies for generating fractional order beampatterns (and constructing corresponding fractional order beamformers) described herein may easily be applied to existing differential microphone array systems in order to increase robustness, without sacrificing DF unnecessarily, by lowering the order of the system to the next lower integer value.
The advantage of this kind of beampattern is that there are no side lobes, so it is desired in many practical applications where interference is mainly located in the back part of the desired direction (e.g., the look direction). For the above-noted, desired frequency-independent beampattern, the corresponding coefficients bN that determine the shape of the different order beampatterns are given in Table 1 below.
The beampatterns (502, 504, 506 and 508) and graphs (500B and 500C) of their corresponding DF and WNG values as a function of frequency are associated with a standard integer-order (e.g., 0, 1, 2, 3) uniform circular array consisting of seven microphones, with a radius of 1.0 cm. In this case (e.g., M=7), the maximum designable order of the DMA is N=3 so that M=2N+1. Without loss of generality, it is assumed that the desired look direction is 0□, i.e., θs=0□.
As shown in
The beampatterns (602, 604, 606 and 608) and graphs (600B and 600C) of their corresponding DF and WNG values as a function of frequency are associated with a fractional order Nα ∈{3.0, 2.6, 2.4, 2.0} uniform circular array may include seven microphones, with a radius of 1.0 cm. As with
As shown in
Therefore, it is possible to design robust fractional order DMAs with a known minimum tolerant WNG value, W0 wherein W0 is assumed as a constant determined by the robustness level of the system. As discussed, with seven microphones, the maximum designable order of the DMA is third-order, i.e., N=3. So, for each frequency, if the third-order DMAs has already satisfied the minimum tolerant WNG, the third-order DMAs can be designed directly. Otherwise, implementations may include a processing device that may first determine the fractional order Nα and then design the corresponding fractional order DMA. The robust DMA beamformer can satisfy the desired robustness level over the frequency band of interest by sacrificing some directivity, i.e., obtaining a tradeoff in performance between a high value of the DF and a good robustness.
As seen in graphs 700A and 700B, the DF decreases with the fractional order Na and the WNG increases with the fractional order Nα thus achieving a continuous compromise in performance between the orders of N and 0 for the circular DMA. Therefore, a value of Nα (chosen for the design the circular DMA) controls a performance compromise between large values of the DF and white noise amplification.
Circular DMAs (CDMA) and Linear DMAs (LDMA) with Fractional Order:
The CDMAs may be designed with the M microphones that are distributed as a uniform circular array, which is equivalent to
rm=r, m=1, 2, . . . , M, wherein rm represents the distance (e.g., radius) from the mth microphone to the origin, and ψm represents the angular position of the mth microphone. Therefore, based on the analysis described above with respect to
The LDMAs may be designed with the M microphones that are distributed as a uniform linear array, which is equivalent to ψm=π, m=1, 2, . . . , M and rm=(m−1)r0, wherein rm represents the distance from the mth microphone to the origin, and ψm represents the angular position of the mth microphone. Therefore, based on the analysis described above with respect to
(ω)=
since electronic steering is not possible for an LDMA so that the steering matrix *(θs) is not needed for the beamforming filter's determination.
Example computer system 800 includes at least one processor 802 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both, processor cores, compute nodes, etc.), a main memory 804 and a static memory 806, which communicate with each other via a link 808 (e.g., bus). The computer system 800 may further include a video display unit 810, an alphanumeric input device 812 (e.g., a keyboard), and a user interface (UI) navigation device 814 (e.g., a mouse). In one embodiment, the video display unit 810, input device 812 and UI navigation device 814 are incorporated into a touch screen display. The computer system 800 may additionally include a storage device 816 (e.g., a drive unit), a signal generation device 818 (e.g., a speaker), a network interface device 820, and one or more sensors (not shown), such as a global positioning system (GPS) sensor, compass, accelerometer, gyrometer, magnetometer, or other sensor.
The storage device 816 includes a machine-readable medium 822 on which is stored one or more sets of data structures and instructions 824 (e.g., software) embodying or utilized by any one or more of the methodologies or functions described herein. The instructions 824 may also reside, completely or at least partially, within the main memory 804, static memory 806, and/or within the processor 802 during execution thereof by the computer system 800, with the main memory 804, static memory 806, and the processor 802 also constituting machine-readable media.
While the machine-readable medium 822 is illustrated in an example embodiment to be a single medium, the term “machine-readable medium” may 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 instructions 824. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include volatile or non-volatile memory, including but not limited to, by way of example, semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The instructions 824 may further be transmitted or received over a communications network 826 using a transmission medium via the network interface device 820 utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, mobile telephone networks, plain old telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi, 3G, and 4G LTE/LTE-A or WiMAX networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Language: In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “segmenting”, “analyzing”, “determining”, “enabling”, “identifying,” “modifying” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data represented as physical quantities within the computer system memories or other such information storage, transmission or display devices.
The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such.
Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrase “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.”
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2019/078607 | 3/19/2019 | WO | 00 |