This application relates to speech interfaces and, more specifically, to activity detection approaches utilized in these applications.
Speech interfaces have become important features in mobile devices today. Some devices have the capability to respond to speech even when the device's display is off and in some form of low power mode and potentially at some distance from the user. These requirements place significant demands on system design and performance including the need to keep the microphone in an “always listening” mode.
In other examples, the device keeps only parts of the signal chain powered up, e.g. the microphone and a digital signal processor (DSP) or central processing unit (CPU), with an algorithm for detecting a “voice trigger.” Upon recognizing a voice trigger, the rest of the system is powered up from its sleep mode to perform the desired computational task.
The above-mentioned previous approaches suffer from several disadvantages. For example, these approaches tend to utilize or waste much power. This waste of power reduces the battery life of such systems. In other examples, the system may suffer from performance issues. These and other disadvantages have resulted in some user dissatisfaction with these previous approaches.
For a more complete understanding of the disclosure, reference should be made to the following detailed description and accompanying drawings wherein:
Those of ordinary skill in the art will appreciate that elements in the figures are illustrated for simplicity and clarity. It will be appreciated further that certain actions and/or steps may be described or depicted in a particular order of occurrence while those having ordinary skill in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.
Approaches are provided for a digital microphone with the built-in capability to distinguish speech and speech-like acoustic activity signals from background noise, to trigger a following digital signal processor (DSP) (or other) module or system, and to provide continuous audio data to the system for detection of a “voice trigger” followed by seamless operation of speech recognition engines. The ability to distinguish speech activity from background allows the following modules in the signal chain to operate in low power “sleep” states, conserving battery power until their operation is required.
To enable such capabilities, a low complexity Acoustic Activity Detection (AAD) module is configured to detect speech with low latency and high probability in high ambient noise. The high noise results in speech signal-to-noise ratios (SNRs) as low as approximately 0 dB. In addition, the present approaches provide a built-in buffer for seamless handover of audio data to the following “voice trigger” detector as well as for the general purpose automatic speech recognizer (ASR) following the voice trigger. The AAD module may be implemented as any combination of computer hardware and software. In one aspect, it may be implemented as computer instructions executed on a processing device such as an application specific integrated circuit (ASIC) or microprocessor. As described herein, the AAD module transforms input signals into control signals that are used to indicate speech detection.
Lower power can be achieved by optimized approaches which can detect speech audio activity with low latency, low computational cost (silicon area), high detection rates and low rate of false triggers. In some aspects, the present approaches utilize a buffer of sufficient depth to store the recorded data for the multi-layered recognition system to work seamlessly and without pauses in speech.
In many of these embodiments, streaming audio is received and the streaming audio comprises a sequence of frames, each having a plurality of samples. An energy estimate is obtained for the plurality of samples. The energy estimate is compared to at least one threshold. Based upon the comparing, a determination is made as to whether speech is detected.
In other aspects, a determination is made as to whether a speech hangover has occurred. In some examples, a non-linear process is used to make the hangover determination. In other examples and when speech is not detected, a determination is made as to the noise level of the plurality of samples.
In others of these embodiments, streaming audio is received, and the streaming audio comprises a sequence of frames, each with a plurality of samples. A first energy estimate is obtained for the frame of the plurality of samples and a second energy estimate is obtained for a band passed signal from the same frame of the plurality of samples. In a first path, the first energy estimate is compared to at least one first threshold and based upon the comparison, a determination is made as to whether speech is detected. In a second path that is performed in parallel with the first path, the second energy estimate is compared to at least one second threshold and based upon the comparing, a determination is made as to whether speech is detected.
In other aspects, a determination is made as to whether a speech hangover has occurred. In some examples, a non-linear process is used to make the hangover determination. In other examples and when speech is not detected, a determination is made as to the noise level of the plurality of samples.
In others of these embodiments, an apparatus configured to distinguish speech activity from background noise includes an analog sub-system, a conversion module, and a digital sub-system. The analog sub-system converts sound energy into an analog electrical signal. The conversion module is coupled to the analog system and converts the analog signal into a digital signal.
The digital sub-system is coupled to the conversion module, and includes an acoustic activity detection (AAD) module. The AAD module is configured to receive the digital signal. The digital signal comprises a sequence of frames, each having a plurality of samples. The AAD module is configured to obtain an energy estimate for the plurality of samples and compare the energy estimate to at least one threshold. The AAD module is configured to, based upon the comparison, determine whether speech is detected, and when speech is detected transmit an interrupt to a voice trigger module.
In other aspects, the analog sub-system includes a micro-electro-mechanical system (MEMS) transducer element. In other examples, the AAD module is further configured to determine whether a speech hangover has occurred. In yet other aspects, the AAD module enables the transmission of the digital signal by a transmitter module upon the detection of speech.
In other examples, the conversion module comprises a sigma-delta modulator that is configured to convert the analog signal into a single bit stream pulse density modulated (PDM) format. In some examples, the digital subsystem comprises a decimator module that converts the single bit stream pulse density modulated (PDM) format into a pulse code modulated (PCM) format. In other approaches, the pulse code modulated (PCM) audio from the decimator module is stored continuously in a circular buffer and in parallel, also provided to the AAD module for processing.
In some examples, the AAD module enables the transmission of the digital signal by a transmitter module upon the detection of speech. The transmitter module comprises a interpolator and digital sigma-delta modulator, that converts the pulse code modulated (PCM) format back to a single bit stream pulse density modulated (PDM) format.
Referring now to
The microphone device 108 may be any type of microphone that converts sound energy into electrical signals. It may include a diaphragm and a back plate, for example. It also may be a microelectromechanical system (MEMS) device. The function of the preamplifier 110 is to provide impedance matching for the actual transducer and sufficient drive capability for the microphone analog output.
The sub-system 102 is always listening for acoustic activity. These system components are in typically in a low power mode to conserve battery life. The analog sub-system 104 consists of the microphone 108 and the pre-amplifier 110. The pre-amplifier 110 feeds into the Sigma-Delta (IA) modulator 112, which converts analog data to a single bit-stream pulse density modulated (PDM) format. Further, the output of the Sigma-Delta modulator 112 feeds into the decimator 114, which converts the PDM audio to pulse code modulated (PCM) waveform data at a particular sampling rate and bit width. The data is stored via optimal compressive means in the circular buffer 116 of a desired length to allow seamless non-interrupted audio to the processing blocks upstream. The compressed PCM audio data is further reconverted to PDM for the upstream processing block, when that data is required. This is controlled by the transmitter (Tx) 120. The data transmission occurs after the acoustic activity is detected.
When the AAD module 118 detects speech like acoustic activity (by examining a frame of data samples or some other predetermined data element), it sends an interrupt signal 119 to the voice trigger module 122 to wake-up this module and a control signal to the transmitter (Tx) 120 to output audio data. Once the voice trigger module is operational, it runs an algorithm to detect the voice trigger. If a voice trigger is detected, then the higher level ASR main applications processor module 124 is brought out of sleep mode with an interrupt 121 from the voice trigger block 122 as shown. If the AAD module 118 triggers the transmit data using Tx control 117 and consequently detects frames with non-speech data for a pre-set amount of relatively long time, it can turn off the transmitter 120 to signal the voice trigger module 122 to go back to sleep mode to reduce power consumption.
It will be appreciated that there exist latencies associated with a multilayered speech recognition system as described above. These include latency for acoustic activity detection, a delay for wake-up of the voice-trigger module 122, latency for “voice trigger” detection, and delay for wake-up of high-level ASR main applications processor module 124.
There may also be a need for priming the various processing blocks with audio data. The voice trigger module 122 requires audio data from before the acoustic activity detection trigger, i.e. before this block is woken-up from its sleep mode. The high-level ASR main applications processor module 124 requires audio data from before it is brought out of sleep mode. The requirements for audio data before the actual speech onset by both, the voice trigger module 122 and the high-level ASR main applications processor module 124 as well as the latencies of the AAD module 118 (and the “voice trigger” algorithm it implements), requires the use of the buffer 116, which has sufficient depth to allow recognition of speech that follows the “voice trigger” phrase in a seamless manner (without artificial pauses in speech). This is implemented in the circular buffer 116 as shown and described herein.
One advantage of the present approaches is that they do not miss speech onset and have a very low latency for detection. This leads to better performance of the “voice trigger” while reducing the buffer depth size as much as possible. Another goal is to reduce false detects of speech to avoid turning on the “voice trigger” algorithm unnecessarily and thus reducing battery life. In one aspect, the AAD module 118 provides (or helps provide) these results.
The operation of the AAD module 118 is based on frame-by-frame decision making by comparing an energy estimate of the audio signal samples in a frame of audio data to various thresholds for speech and noise. In these regards, a fast time constant based energy measure is estimated. The energy measure is designed to track the speech envelope with low latency. Thresholds for noise and speech levels are computed using energy statistics. The module 118 calculates the speech onset threshold by determining when the energy estimator exceeds a threshold.
Additionally, a band pass module of a similar structure may be introduced to capture fast energy variations occurring in the 2 kHz-5 kHz frequency range. This band pass module improves the detection levels of speech starts with non-vocal fricatives and sibilants. The use of this additional feature is described below with respect to
Referring now to
At step 202, streaming audio is received. At step 204, energy estimation may be performed. These signals are in the form of a fixed point digital PCM representation of the audio signal. In one example, a leaky integrator or a single pole filter is used to estimate the energy of the signal in a sample by sample basis. This may be based on absolute value of the signal sample. The following equation may be used:
est(n)=(1−α)×est(n−1)+α×|x(n)|
Alternatively, a squared value may be used:
est(n)=(1−α)×est(n−1)+α×(x(n))2
At step 206, an energy estimate EN(k) is then made for an entire frame of N samples as shown below.
Other examples are possible.
At steps 208, 210, and 212 the frame energy EN(k), is then compared to various thresholds (as shown in
At step 220 it is determined if there is a speech hangover. If the answer is affirmative, then execution continues at step 222. If the answer is negative, noise is detected at step 224 and step 214 is executed as described above.
In the event that a frame is declared to be non-speech, it is inserted into a First-in First-out (FIFO) buffer for estimation of the average noise level μN, and the standard deviation of the noise level σN. In the following examples, let the contents of the FIFO buffer be terms the energies of the last M frames declared as non-speech EN(b). Then:
Similarly the standard deviation may be estimated as:
For computational and hardware efficiency, the frame energy is used in a leaky integrator process to estimate the mean of the noise μN as follows:
μN(k)=(1−β)×μN(k−1)+β×EN(k)
Similarly, the standard deviation may be estimated as follows:
σN(k)=(1−γ)×σN(k−1)+γ×|EN(k)−μN(k)|
The Ts and Tn thresholds are adaptively updated at steps 214 and 216 based on noise statistics from frames in the noise buffer. An estimator for the noise statistics used for calculating thresholds is shown below based on the mean μN and the standard deviation σN of the frame noise levels estimated.
Tn(k)=c×μN+b×min(σN,d)
The parameters “a”, “b”, “c”, “d”, and “e” are determined empirically to give the desired performance. The minimum function establishes a maximum value for the update.
The speech threshold is derived as:
T1(k)=min(β×Tn(k),Tn(k)+C)+e
Here the minimum function avoids excessive range of the speech threshold.
If any of the tests performed at steps 208, 210, and 212 are not met, then hangover logic 218 is utilized as described above. If the answers to any of these steps are affirmative, then at step 222 speech is detected and execution ends. Since speech has been detected, an indication that speech has been detected as well as the speech itself can be sent to appropriate circuitry for further processing.
Referring now to
The principle of the algorithm is similar to that shown in the algorithm of
More specifically, at step 302 an audio signal is received. At step 304, energy estimation may be performed. At step 306, an energy estimate is then made for an entire frame of N samples.
At step 308, the energy is then compared to various thresholds to arrive at a conclusion of whether speech is detected or not. Execution continues at step 310.
In parallel, at step 322, energy estimation may be performed for band pass frequencies (e.g., approximately 2 kHz-5 kHz). At step 324, an estimate of band pass energy is made. At step 326, an energy estimate is then made for an entire frame of N samples. At step 328, the energy is then compared to various thresholds to arrive at a conclusion of whether speech is detected or not. Execution continues at step 310.
A hangover logic block is shown at step 310, which uses a non-linear process to determine how long the speech detection flag should be held high immediately after the detection of an apparent non-speech frame. The hangover logic block 310 helps connect discontinuous speech segments caused by pauses in the natural structure of speech.
At step 314 it is determined if there is a speech hangover. If the answer is affirmative, then execution continues at step 312 (speech is detected). If the answer is negative, noise is detected at step 316. At step 318 FIFO buffer stores the noise. At step 320, the thresholds are updated.
The detection results for the algorithm shows good performance on a database of several hours of speech with changing ambient noise. The SNR varies from about 20 dB to 0 dB. The database has sentences in noise separated by periods of background noise only.
For purpose of the application, the detection of the onset of speech is accomplished with the lowest possible latency. Speech onset is not missed. For low power requirements, false triggers are minimized. With these goals in mind, results of implementing and executing the algorithm were evaluated according to two principles: low latency detection of the first spoken word in every segment of speech, and the actual accuracy of the detection over all the speech sections in the database. The measures used are standard measures in Hypothesis Testing as defined below:
One important parameter for the AAD algorithm is the true positive rate of detection of the first occurrence of speech in a segment. This statistic is in part used to determine how quickly the detector responds to speech.
Table 1 shows overall accuracy rates along with true positive rate and false positive rate. The low false positive rate indicates that the algorithm is power efficient.
Preferred embodiments of the disclosure are described herein, including the best mode known to the inventors. It should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of the appended claims.
This patent claims benefit under 35 U.S.C. §119 (e) to U.S. Provisional Application No. 61/892,755 entitled “Acoustic Activity Detection Apparatus and Method” filed Oct. 18, 2013, the content of which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4052568 | Jankowski | Oct 1977 | A |
5577164 | Kaneko | Nov 1996 | A |
5598447 | Usui | Jan 1997 | A |
5675808 | Gulick | Oct 1997 | A |
5822598 | Lam | Oct 1998 | A |
5983186 | Miyazawa et al. | Nov 1999 | A |
6049565 | Paradine | Apr 2000 | A |
6057791 | Knapp | May 2000 | A |
6070140 | Tran | May 2000 | A |
6154721 | Sonnic | Nov 2000 | A |
6249757 | Cason | Jun 2001 | B1 |
6282268 | Hughes | Aug 2001 | B1 |
6324514 | Matulich | Nov 2001 | B2 |
6397186 | Bush | May 2002 | B1 |
6453020 | Hughes et al. | Sep 2002 | B1 |
6453291 | Ashley | Sep 2002 | B1 |
6564330 | Martinez | May 2003 | B1 |
6591234 | Chandran | Jul 2003 | B1 |
6640208 | Zhang | Oct 2003 | B1 |
6756700 | Zeng | Jun 2004 | B2 |
6810273 | Mattila | Oct 2004 | B1 |
7190038 | Dehe | Mar 2007 | B2 |
7415416 | Rees | Aug 2008 | B2 |
7473572 | Dehe | Jan 2009 | B2 |
7619551 | Wu | Nov 2009 | B1 |
7630504 | Poulsen | Dec 2009 | B2 |
7774202 | Spengler | Aug 2010 | B2 |
7774204 | Mozer | Aug 2010 | B2 |
7781249 | Laming | Aug 2010 | B2 |
7795695 | Weigold | Sep 2010 | B2 |
7825484 | Martin | Nov 2010 | B2 |
7829961 | Hsiao | Nov 2010 | B2 |
7856283 | Burk | Dec 2010 | B2 |
7856804 | Laming | Dec 2010 | B2 |
7903831 | Song | Mar 2011 | B2 |
7936293 | Hamashita | May 2011 | B2 |
7941313 | Garudadri | May 2011 | B2 |
7957972 | Huang | Jun 2011 | B2 |
7994947 | Ledzius | Aug 2011 | B1 |
8171322 | Fiennes | May 2012 | B2 |
8208621 | Hsu | Jun 2012 | B1 |
8275148 | Li | Sep 2012 | B2 |
8331581 | Pennock | Dec 2012 | B2 |
8666751 | Murthi | Mar 2014 | B2 |
8687823 | Loeppert | Apr 2014 | B2 |
8731210 | Cheng | May 2014 | B2 |
8798289 | Every | Aug 2014 | B1 |
8804974 | Melanson | Aug 2014 | B1 |
8849231 | Murgia | Sep 2014 | B1 |
8972252 | Hung | Mar 2015 | B2 |
8996381 | Mozer | Mar 2015 | B2 |
9020819 | Saitoh | Apr 2015 | B2 |
9043211 | Haiut | May 2015 | B2 |
9059630 | Gueorguiev | Jun 2015 | B2 |
9073747 | Ye | Jul 2015 | B2 |
9076447 | Nandy | Jul 2015 | B2 |
9111548 | Nandy | Aug 2015 | B2 |
9112984 | Sejnoha | Aug 2015 | B2 |
9113263 | Furst | Aug 2015 | B2 |
9119150 | Murgia | Aug 2015 | B1 |
9142215 | Rosner | Sep 2015 | B2 |
9147397 | Thomsen | Sep 2015 | B2 |
9161112 | Ye | Oct 2015 | B2 |
20020054588 | Mehta | May 2002 | A1 |
20020116186 | Strauss et al. | Aug 2002 | A1 |
20020123893 | Woodward | Sep 2002 | A1 |
20020184015 | Li et al. | Dec 2002 | A1 |
20030004720 | Garudadri | Jan 2003 | A1 |
20030061036 | Garudadri | Mar 2003 | A1 |
20030144844 | Colmenarez et al. | Jul 2003 | A1 |
20040022379 | Klos | Feb 2004 | A1 |
20050207605 | Dehe | Sep 2005 | A1 |
20060074658 | Chadha | Apr 2006 | A1 |
20060233389 | Mao | Oct 2006 | A1 |
20060247923 | Chandran | Nov 2006 | A1 |
20070168908 | Paolucci | Jul 2007 | A1 |
20070278501 | MacPherson | Dec 2007 | A1 |
20080089536 | Josefsson | Apr 2008 | A1 |
20080175425 | Roberts | Jul 2008 | A1 |
20080201138 | Visser | Aug 2008 | A1 |
20080267431 | Leidl | Oct 2008 | A1 |
20080279407 | Pahl | Nov 2008 | A1 |
20080283942 | Huang | Nov 2008 | A1 |
20090001553 | Pahl | Jan 2009 | A1 |
20090180655 | Tien | Jul 2009 | A1 |
20100046780 | Song | Feb 2010 | A1 |
20100052082 | Lee | Mar 2010 | A1 |
20100057474 | Kong | Mar 2010 | A1 |
20100128894 | Petit et al. | May 2010 | A1 |
20100128914 | Khenkin | May 2010 | A1 |
20100131783 | Weng | May 2010 | A1 |
20100183181 | Wang | Jul 2010 | A1 |
20100246877 | Wang | Sep 2010 | A1 |
20100290644 | Wu | Nov 2010 | A1 |
20100292987 | Kawaguchi | Nov 2010 | A1 |
20100322443 | Wu | Dec 2010 | A1 |
20100322451 | Wu | Dec 2010 | A1 |
20110007907 | Park | Jan 2011 | A1 |
20110013787 | Chang | Jan 2011 | A1 |
20110029109 | Thomsen | Feb 2011 | A1 |
20110075875 | Wu | Mar 2011 | A1 |
20110106533 | Yu | May 2011 | A1 |
20110208520 | Lee | Aug 2011 | A1 |
20110280109 | Raymond | Nov 2011 | A1 |
20120010890 | Koverzin | Jan 2012 | A1 |
20120232896 | Taleb et al. | Sep 2012 | A1 |
20120250881 | Mulligan | Oct 2012 | A1 |
20120310641 | Niemisto | Dec 2012 | A1 |
20130044898 | Schultz | Feb 2013 | A1 |
20130058506 | Boor | Mar 2013 | A1 |
20130223635 | Singer | Aug 2013 | A1 |
20130226324 | Hannuksela | Aug 2013 | A1 |
20130246071 | Lee | Sep 2013 | A1 |
20130322461 | Poulsen | Dec 2013 | A1 |
20130343584 | Bennett | Dec 2013 | A1 |
20140064523 | Kropfitsch | Mar 2014 | A1 |
20140122078 | Joshi | May 2014 | A1 |
20140143545 | McKeeman | May 2014 | A1 |
20140163978 | Basye | Jun 2014 | A1 |
20140177113 | Gueorguiev | Jun 2014 | A1 |
20140188467 | Jing | Jul 2014 | A1 |
20140188470 | Chang | Jul 2014 | A1 |
20140197887 | Hovesten | Jul 2014 | A1 |
20140236582 | Raychowdhury | Aug 2014 | A1 |
20140244269 | Tokutake | Aug 2014 | A1 |
20140244273 | Laroche | Aug 2014 | A1 |
20140249820 | Hsu | Sep 2014 | A1 |
20140257813 | Mortensen | Sep 2014 | A1 |
20140257821 | Adams | Sep 2014 | A1 |
20140274203 | Ganong | Sep 2014 | A1 |
20140278435 | Ganong | Sep 2014 | A1 |
20140281628 | Nigam | Sep 2014 | A1 |
20140343949 | Huang | Nov 2014 | A1 |
20140348345 | Furst | Nov 2014 | A1 |
20140358552 | Xu | Dec 2014 | A1 |
20150039303 | Lesso | Feb 2015 | A1 |
20150043755 | Furst | Feb 2015 | A1 |
20150046157 | Wolff | Feb 2015 | A1 |
20150046162 | Aley-Raz | Feb 2015 | A1 |
20150049884 | Ye | Feb 2015 | A1 |
20150055803 | Qutub | Feb 2015 | A1 |
20150058001 | Dai | Feb 2015 | A1 |
20150063594 | Nielsen | Mar 2015 | A1 |
20150073780 | Sharma | Mar 2015 | A1 |
20150073785 | Sharma | Mar 2015 | A1 |
20150088500 | Conliffe | Mar 2015 | A1 |
20150106085 | Lindahl | Apr 2015 | A1 |
20150110290 | Furst | Apr 2015 | A1 |
20150112690 | Guha | Apr 2015 | A1 |
20150134331 | Millet | May 2015 | A1 |
20150154981 | Barreda | Jun 2015 | A1 |
20150161989 | Hsu | Jun 2015 | A1 |
20150195656 | Ye | Jul 2015 | A1 |
20150206527 | Connolly | Jul 2015 | A1 |
20150256660 | Kaller | Sep 2015 | A1 |
20150256916 | Volk | Sep 2015 | A1 |
20150287401 | Lee | Oct 2015 | A1 |
20150302865 | Pilli | Oct 2015 | A1 |
20150304502 | Pilli | Oct 2015 | A1 |
20150350760 | Nandy | Dec 2015 | A1 |
20150350774 | Furst | Dec 2015 | A1 |
20160012007 | Popper | Jan 2016 | A1 |
20160087596 | Yurrtas | Mar 2016 | A1 |
20160133271 | Kuntzman | May 2016 | A1 |
20160134975 | Kuntzman | May 2016 | A1 |
Number | Date | Country |
---|---|---|
2001236095 | Aug 2001 | JP |
2004219728 | Aug 2004 | JP |
2009130591 | Oct 2009 | WO |
2011106065 | Sep 2011 | WO |
2011140096 | Nov 2011 | WO |
2013049358 | Apr 2013 | WO |
2013085499 | Jun 2013 | WO |
Entry |
---|
“MEMS technologies: Microphone” EE Herald Jun. 20, 2013. |
Delta-sigma modulation, Wikipedia (Jul. 4, 2013). |
Pulse-density modulation, Wikipedia (May 3, 2013). |
Kite, Understanding PDM Digital Audio, Audio Precision, Beaverton, OR, 2012. |
International Search Report and Written Opinion for PCT/US2014/060567 dated Jan. 16, 2015 (12 pages). |
International Search Report and Written Opinion for PCT/EP2014/064324, dated Feb. 12, 2015 (13 pages). |
International Search Report and Written Opinion for PCT/US2014/038790, dated Sep. 24, 2014 (9 pages). |
International Search Report and Written Opinion for PCT/US2014/062861 dated Jan. 23, 2015 (12 pages). |
U.S. Appl. No. 14/285,585, filed May 22, 2014, Santos. |
U.S. Appl. No. 14/495,482, filed Sep. 24, 2014, Murgia. |
U.S. Appl. No. 14/522,264, filed Oct. 23, 2014, Murgia. |
U.S. Appl. No. 14/698,652, filed Apr. 28, 2015, Yapanel. |
U.S. Appl. No. 14/749,425, filed Jun. 24, 2015, Verma. |
U.S. Appl. No. 14/853,947, filed Sep. 14, 2015, Yen. |
U.S. Appl. No. 62/100,758, filed Jan. 7, 2015, Rossum. |
International Search Report and Written Opinion for PCT/US2016/013859 dated Apr. 29, 2016 (12 pages). |
Search Report of Taiwan Patent Application No. 103135811, dated Apr. 18, 2016 (1 page). |
Number | Date | Country | |
---|---|---|---|
20150112689 A1 | Apr 2015 | US |
Number | Date | Country | |
---|---|---|---|
61892755 | Oct 2013 | US |