Utilizing digital microphones for low power keyword detection and noise suppression

Information

  • Patent Grant
  • 10045140
  • Patent Number
    10,045,140
  • Date Filed
    Wednesday, January 6, 2016
    8 years ago
  • Date Issued
    Tuesday, August 7, 2018
    6 years ago
Abstract
Provided are systems and methods for utilizing digital microphones in low power keyword detection and noise suppression. An example method includes receiving a first acoustic signal representing at least one sound captured by a digital microphone. The first acoustic signal includes buffered data transmitted with a first clock frequency. The digital microphone may provide voice activity detection. The example method also includes receiving at least one second acoustic signal representing the at least one sound captured by a second microphone, the at least one second acoustic signal including real-time data. The first and second acoustic signals are provided to an audio processing system which may include noise suppression and keyword detection. The buffered portion may be sent with a higher, second clock frequency to eliminate a delay of the first acoustic signal from the second acoustic signal. Providing the signals may also include delaying the second acoustic signal.
Description
FIELD

The present application relates generally to audio processing and, more specifically, to systems and methods for utilizing digital microphones for low power keyword detection and noise suppression.


BACKGROUND

A typical method of keyword detection is a three stage process. The first stage is vocalization detection. Initially, an extremely low power “always-on” implementation continuously monitors ambient sound and determines whether a person begins to utter a possible keyword (typically by detecting human vocalization). When a possible keyword vocalization is detected, the second stage begins.


The second stage performs keyword recognition. This operation consumes more power because it is computationally more intensive than the vocalization detection. When the examination of an utterance (e.g., keyword recognition) is complete, the result can either be a keyword match (in which case the third stage will be entered) or no match (in which case operation of the first, lowest power stage resumes).


The third stage is used for analysis of any speech subsequent to the keyword recognition using automatic speech recognition (ASR). This third stage is a very computationally intensive process and, therefore, can greatly benefit from improvements to the signal to noise ratio (SNR) of the portion of the audio that includes the speech. The SNR is typically optimized using noise suppression (NS) signal processing, which may require obtaining audio input from multiple microphones.


Use of a digital microphone (DMIC) is well known. The DMIC typically includes a signal processing portion. A digital signal processor (DSP) is typically used to perform computations for detecting keywords. Having some form of digital signal processor (DSP), to perform the keyword detection computations, on the same integrated circuit (chip) as the signal processing portion of the DMIC itself may have system power benefits. For example, while in the first stage, the DMIC can operate from an internal oscillator, thus saving the power of supplying an external clock to the DMIC and the power of transmitting the DMIC data output, typically, a pulse density modulated (PDM) signal, to an external DSP device.


It is also known that implementing the subsequent stages of keyword recognition on the DMIC may not be optimal for the lowest power or system cost. The subsequent stages of keyword recognition are computationally intensive and, thus, consume significant dynamic power and die area. However, the DMIC signal processing chip is typically implemented using a process geometry having significantly higher dynamic power and larger area per gate or memory bit than the best available digital processes.


Finding an optimal implementation that takes advantage of the potential power savings of implementing the first stage of keyword recognition in the DMIC can be challenging due to conflicting requirements. To optimize power, the DMIC operates in an “always-on,” standalone manner, without transmitting audio data to an external device when no vocalization has been detected. When the vocalization is detected, the DMIC needs to provide a signal to an external device indicating this condition. Simultaneously with or subsequent to the occurrence of this condition, the DMIC needs to begin providing audio data to the external device(s) performing the subsequent stages. Optimally, the audio data interface is needed to meet the following requirements: transmitting audio data corresponding to times that significantly precede the vocalization detection, transmitting real-time audio data at an externally provided clock (sample) rate, and simplifying multi-microphone noise suppression processing. Additionally, latency associated with the real-time audio data for DMICs that implement the first stage of keyword recognition needs to be substantially the same as for conventional DMICs, the interface needs to be compatible with existing interfaces, the interface needs to indicate the clock (sample) rate used while operating with the internal oscillator, and no audio drop-outs should occur.


An interface with a DMIC that implement the first stage of keyword recognition can be challenging to implement largely due to the requirement to present audio data that is buffered significantly prior to the vocalization detection. This buffered audio data was previously acquired at a sample rate determined by the internal oscillator. Consequently, when the buffered audio data is provided along with real-time audio data as part of a single, contiguous audio stream, it can be difficult to make this real-time audio data have the same latency as in a conventional DMIC or difficult to use conventional multi-microphone noise suppression techniques.


SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.


Systems and methods for utilizing digital microphones for low power keyword detection and noise suppression are provided. An example method includes receiving a first acoustic signal representing at least one sound captured by a digital microphone, the first acoustic signal including buffered data transmitted on a single channel with a first clock frequency. The example method also includes receiving at least one second acoustic signal representing the at least one sound captured by at least one second microphone. The at least one second acoustic signal may include real-time data. In some embodiments, the at least one second microphone may be an analog microphone. The at least one second microphone may also be a digital microphone that does not have voice activity detection functionality.


The example method further includes providing the first acoustic signal and the at least one second acoustic signal to an audio processing system. The audio processing system may provide at least noise suppression.


In some embodiments, the buffered data is sent with a second clock frequency higher than the first clock frequency, to eliminate a delay of the first acoustic signal from the second acoustic signal.


Providing the signals may include delaying the second acoustic signal.


Other example embodiments of the disclosure and aspects will become apparent from the following description taken in conjunction with the following drawings.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements.



FIG. 1 is a block diagram illustrating a system, which can be used to implement methods for utilizing digital microphones for low power keyword detection and noise suppression, according to various example embodiments.



FIG. 2 is a block diagram of an example mobile device, in which methods for utilizing digital microphones for low power keyword detection and noise suppression can be practiced.



FIG. 3 is a block diagram showing a system for utilizing digital microphones for low power keyword detection and noise suppression, according to various example embodiments.



FIG. 4 is a flow chart showing steps of a method for utilizing digital microphones for low power keyword detection and noise suppression, according to an example embodiment.



FIG. 5 is an example computer system that may be used to implement embodiments of the disclosed technology.





DETAILED DESCRIPTION

The present disclosure provides example systems and methods for utilizing digital microphones for low power keyword detection and noise suppression. Various embodiments of the present technology can be practiced with mobile audio devices configured at least to capture audio signals and may allow improving automatic speech recognition in the captured audio.


In various embodiments, mobile devices are hand-held devices, such as, notebook computers, tablet computers, phablets, smart phones, personal digital assistants, media players, mobile telephones, video cameras, and the like. The mobile devices may be used in stationary and portable environments. The stationary environments can include residential and commercial buildings or structures and the like. For example, the stationary environments can further include living rooms, bedrooms, home theaters, conference rooms, auditoriums, business premises, and the like. Portable environments can include moving vehicles, moving persons, other transportation means, and the like.


Referring now to FIG. 1, an example system 100 in which methods of the present disclosure can be practiced is shown. The system 100 can include a mobile device 110. In various embodiments, the mobile device 110 includes microphone(s) (e.g., transducer(s)) 120 configured to receive voice input/acoustic signal from a user 150.


The voice input/acoustic sound can be contaminated by a noise 160. Noise sources can include street noise, ambient noise, speech from entities other than an intended speaker(s), and the like. For example, noise sources can include a working air conditioner, ventilation fans, TV sets, mobile phones, stereo audio systems, and the like. Certain kinds of noise may arise from both operation of machines (for example, cars) and the environments in which they operate, for example, a road, track, tire, wheel, fan, wiper blade, engine, exhaust, entertainment system, wind, rain, waves, and the like noises.


In some embodiments, the mobile device 110 is commutatively connected to one or more cloud-based computing resources 130, also referred to as a computing cloud(s) 130 or a cloud 130. The cloud-based computing resource(s) 130 can include computing resources (hardware and software) available at a remote location and accessible over a network (for example, the Internet or a cellular phone network). In various embodiments, the cloud-based computing resource(s) 130 are shared by multiple users and can be dynamically re-allocated based on demand. The cloud-based computing resource(s) 130 can include one or more server farms/clusters, including a collection of computer servers which can be co-located with network switches and/or routers.



FIG. 2 is a block diagram showing components of the mobile device 110, according to various example embodiments. In the illustrated embodiment, the mobile device 110 includes one or more microphone(s) 120, a processor 210, audio processing system 220, a memory storage 230, and one or more communication devices 240. In certain embodiments, the mobile device 110 also includes additional or other components necessary for operations of mobile device 110. In other embodiments, the mobile device 110 includes fewer components that perform similar or equivalent functions to those described with reference to FIG. 2.


In various embodiments, where the microphone(s) 120 include multiple omnidirectional microphones closely spaced (e.g., 1-2 cm apart), a beam-forming technique can be used to simulate a forward-facing and a backward-facing directional microphone response. In some embodiments, a level difference can be obtained using the simulated forward-facing and the backward-facing directional microphones. The level difference can be used to discriminate between speech and noise in, for example, the time-frequency domain, which can be further used in noise and/or echo reduction. Noise reduction may include noise cancellation and/or noise suppression. In certain embodiments, some microphone(s) 120 are used mainly to detect speech and other microphones are used mainly to detect noise. In yet other embodiments, some microphones are used to detect both noise and speech.


In some embodiments, the acoustic signals, once received, for example, captured by microphone(s) 120, are converted into electric signals, which, in turn, are converted, by the audio processing system 220, into digital signals for processing in accordance with some embodiments. The processed signals may be transmitted for further processing to the processor 210. In some embodiments, some of the microphones 120 are digital microphone(s) operable to capture the acoustic signal and output a digital signal. Some of the digital microphone(s) may provide for voice activity detection (also referred to herein as vocalization detection) and buffering of the audio data significantly prior to the vocalization detection.


Audio processing system 220 can be operable to process an audio signal. In some embodiments, the acoustic signal is captured by the microphone(s) 120. In certain embodiments, acoustic signals detected by the microphone(s) 120 are used by audio processing system 220 to separate desired speech (for example, keywords) from the noise, providing more robust automatic speech recognition (ASR).


An example audio processing system suitable for performing noise suppression is discussed in more detail in U.S. patent application Ser. No. 12/832,901 (now U.S. Pat. No. 8,473,287), entitled “Method for Jointly Optimizing Noise Reduction and Voice Quality in a Mono or Multi-Microphone System,” filed Jul. 8, 2010, the disclosure of which is incorporated herein by reference for all purposes. By way of example and not limitation, noise suppression methods are described in U.S. patent application Ser. No. 12/215,980 (now U.S. Pat. No. 9,185,487), entitled “System and Method for Providing Noise Suppression Utilizing Null Processing Noise Subtraction,” filed Jun. 30, 2008, and in U.S. patent application Ser. No. 11/699,732 (now U.S. Pat. No. 8,194,880), entitled “System and Method for Utilizing Omni-Directional Microphones for Speech Enhancement,” filed Jan. 29, 2007, which are incorporated herein by reference in their entireties.


Various methods for restoration of noise reduced speech are also described in commonly assigned U.S. patent application Ser. No. 13/751,907 (now U.S. Pat. No. 8,615,394), entitled “Restoration of Noise-Reduced Speech,” filed Jan. 28, 2013, which is incorporated herein by reference in its entirety.


The processor 210 may include hardware and/or software operable to execute computer programs stored in the memory storage 230. The processor 210 can use floating point operations, complex operations, and other operations needed for implementations of embodiments of the present disclosure. In some embodiments, the processor 210 of the mobile device 110 includes, for example, at least one of a digital signal processor (DSP), image processor, audio processor, general-purpose processor, and the like.


The example mobile device 110 is operable, in various embodiments, to communicate over one or more wired or wireless communications networks, for example, via communication devices 240. In some embodiments, the mobile device 110 sends at least audio signal (speech) over a wired or wireless communications network. In certain embodiments, the mobile device 110 encapsulates and/or encodes the at least one digital signal for transmission over a wireless network (e.g., a cellular network).


The digital signal can be encapsulated over Internet Protocol Suite (TCP/IP) and/or User Datagram Protocol (UDP). The wired and/or wireless communications networks can be circuit switched and/or packet switched. In various embodiments, the wired communications network(s) provide communication and data exchange between computer systems, software applications, and users, and include any number of network adapters, repeaters, hubs, switches, bridges, routers, and firewalls. The wireless communications network(s) include any number of wireless access points, base stations, repeaters, and the like. The wired and/or wireless communications networks may conform to an industry standard(s), be proprietary, and combinations thereof. Various other suitable wired and/or wireless communications networks, other protocols, and combinations thereof, can be used.



FIG. 3 is a block diagram showing a system 300 suitable for utilizing digital microphones for low power keyword detection and noise suppression, according to various example embodiments. The system 300 includes microphone(s) (also variously referred to herein as DMIC(s)) 120 coupled to a (external or host) DSP 350. In some embodiments, the digital microphone 120 includes a transducer 302, an amplifier 304, an analog-to-digital converter 306, and a pulse-density modulator (PDM) 308. In certain embodiments, the digital microphone 120 includes a buffer 310 and a vocalization detector 320. In other embodiments, the DMIC 120 interfaces with a conventional stereo DMIC interface. The conventional stereo DMIC interface includes a clock (CLK) input (or CLK line) 312 and a data (DATA) output 314. The data output includes a left channel and a right channel. In some embodiments, the DMIC interface includes an additional vocalization detector (DET) output (or DET line) 316. The CLK input 312 can be supplied by DSP 350. The DSP 350 can receive the DATA output 314 and DET output 316. In some embodiments, digital microphone 120 produces a real-time digital audio data stream, typically via PDM 308. An example digital microphone the provides vocalization detection is discussed in more detail in U.S. patent application Ser. No. 14/797,310, entitled “Microphone Apparatus and Method with Catch-up Buffer,” filed Jul. 13, 2015, the disclosure of which is incorporated herein by reference for all purposes.


Example 1

In various embodiments, under first stage conditions, the DMIC 120 operates on an internal oscillator, which determines the internal sample rate during this condition. Under first stage conditions, prior to the vocalization detection, the CLK line 312 is static, typically, a logical 0. The DMIC 120 outputs a static signal, typically, a logical 0, on both the DATA output 314 and DET output 316. Internally, the DMIC 120 operating from its internal oscillator, can be operable to analyze the audio data to determine whether a vocalization has occurred. Internally, the DMIC 120 buffers the audio data into a recirculating memory (for example, using buffer 310). In certain embodiments, the recirculating memory has a pre-determined number (typically about 100 k of PDM) of samples.


In various exemplary embodiments, when the DMIC 120 detects a vocalization, the DMIC 120 begins outputting PDM 308 sample clock, derived from the internal oscillator, on the DET output 316. The DSP 350 can be operable to detect the activity on the DET line 316. The DSP 350 can use this signal to determine the internal sample rate of the DMIC 120 with a sufficient accuracy for further operations. Then the DSP 350 can output a clock on the CLK line 312 appropriate for receiving real-time PDM 308 audio data from the DMIC 120 via the conventional DMIC 120 interface protocol. In some embodiments, the clock is at the same rate as the clock of other DMICs used for noise suppression.


In some embodiments, the DMIC 120 responds to the presence of the CLK input 312 by immediately switching from the internal sample rate to the sample rate of the provided CLK line 312. In certain embodiments, the DMIC 120 is operable to immediately begin supplying real-time PDM 308 data on a first channel (for example, the left channel) of the DATA output 314, and the delayed (typically about 100 k PDM samples) buffered PDM 308 data on the second (for example, right) channel. The DMIC 110 can cease providing the internal clock on the DET signal when the CLK is received.


In some embodiments, after the entire (typically about 100 k sample) buffer has been transmitted, the DMIC 120 switches to sending the real-time audio data or a static signal (typically a logical 0) on the second (in the example, right) channel of DATA output 314 in order to save power.


In various embodiments, the DSP 350 accumulates the buffered data and then uses the ratio of the previously measured DMIC 120 internal sample rate to the host CLK sample rate as required to process the buffered data in a manner matching the buffered data to the real-time audio data. For example, the DSP 350 can convert the buffered data to the same rate as the host CLK sample rate. It should be appreciated by those skilled in the art that the actual sample rate conversion may not be optimal. Instead, further downstream frequency domain processing information can be biased in frequency based on the measured ratio. The buffered data may be pre-pended to the real-time audio data for the purposes of keyword recognition. It may also be pre-pended to data used for the ASR as desired.


In various embodiments, because the real-time audio data is not delayed, the real-time data has a low latency and can be combined with the real-time audio data from other microphones for noise suppression or other purposes.


Returning the CLK signal to a static state may be used to return the DMIC 120 to the first stage processing state.


Example 2

Under first stage conditions, the DMIC 120 operates on an internal oscillator, which determines the PDM 308 sample rate. In some exemplary embodiments, under first stage conditions, prior to vocalization detection, the CLK input 312 is static, typically, a logical 0. The DMIC 120 can output a static signal, typically a logical 0, on both the DATA output 314 and DET output 316. Internally, the DMIC 120 operating from its internal oscillator, is operable to analyze the audio data to determine if a vocalization occurs and also to internally buffer the audio data into a recirculating memory. The recirculating memory can have a pre-determined number (typically about 100 k of PDM) of samples.


In some embodiments, when the DMIC 120 detects vocalization, the DMIC begins outputting a PDM sample rate clock derived from its internal oscillator, on the DET output 316. The DSP 350 can detect the activity on the DET line 312. The DSP 350 then can use the DET output to determine the internal sample rate of the DMIC 120 with a sufficient accuracy for further operations. Then, the DSP 350 outputs a clock on the CLK line 312. In certain embodiments, the clock is at a higher rate than the internal oscillator sample rate, and appropriate to receive real-time PDM 308 audio data from the DMIC 120 via the conventional DMIC 120 interface protocol. In some embodiments, the clock provided to CLK line 312 is at the same rate as the clock for other DMICs used for noise suppression.


In some embodiments, the DMIC 120 responds to the presence of the clock at CLK line 312 by immediately beginning to supply buffered PDM 308 data on a first channel (for example, the left channel) of the DATA output 314. Because the CLK frequency is greater than the internal sampling frequency, the delay of the data gradually decreases from the buffer length to zero. When the delay reaches zero, the DMIC 120 responds by immediately switching its sample rate from internal oscillator's sample rate to the rate provided by the CLK line 312. The DMIC 120 can also immediately begin supplying real-time PDM 308 data on one of channels of the DATA output 314. The DMIC 120 also ceases providing the internal clock on the DET output 316 signal at this point.


In some embodiments, the DSP 350 can accumulate the buffered data and determine, based on sensing when the DET output 316 signal ceases, a point at which the DATA has switched from buffered data to real-time audio data. The DSP 350 can then use the ratio of the previously measured DMIC 120 internal sample rate to the CLK sample rate to logically sample rate of conversion of the buffered data to match that of the real-time audio data.


In this example, once the buffer data is completely received and the switch to real-time audio has occurred, the real-time audio data will have a low latency and can be combined with the real-time audio data from other microphones for noise suppression or other purposes.


Various embodiments illustrated by Example 2 may have a disadvantage, compared with some other embodiments, of a longer time from the vocalization detection to real-time operation, which requires a higher rate during the real-time operation than the rate of the stage one operations, and may also require accurate detection of the time of transition between the buffered and real-time audio data.


On the other hand, the various embodiments according to Example 2 have the advantage of only requiring the use of one channel of the stereo conventional DMIC 120 interface, leaving the other channel available for use by a second DMIC 120.


Example 3

Under the first stage conditions, the DMIC 120 can operate on an internal oscillator, which determines the PDM 308 sample rate. Under the first stage conditions, prior to the vocalization detection, the CLK input 312 is static, typically at a logical 0. The DMIC 120 outputs a static signal, typically a logical 0, on both the DATA output 314 and DET output 316. Internally, the DMIC 120, operating from the internal oscillator, is operable to analyze the audio data to determine if a vocalization occurs, and also by internally buffering that data into a recirculating memory (for example, the buffer 310) having a pre-determined number (typically about 100 k of PDM) samples.


When the DMIC 120 detects a vocalization, the DMIC 120 begins to output PDM 308 sample rate clock, derived from its internal oscillator, on the DET output 316. The DSP 350 can detect the activity on the DET output 316. The DSP 350 then can use the DET output 316 signal to determine the internal sample rate of the DMIC 120 with a sufficient accuracy for further operations. Then, the host DSP 350 may output a clock on the CLK line 312 appropriate to receiving real-time PDM 308 audio data from the DMIC 120 via the conventional DMIC 120 interface protocol. This clock may be at the same rate as the clock for other DMICs used for noise suppression.


In some embodiments, the DMIC 120 responds to the presence of the CLK input 312 by immediately beginning to supply buffered PDM 308 data on a first channel (for example, the left channel) of the DATA output 314. The DMIC 120 also ceases providing the internal clock on the DET output 316 signal at this point. When the buffer 310 of the data is exhausted, the DMIC 120 begins supplying real-time PDM 308 data on the one of the channels of the DATA output 314.


The DSP 350 accumulates the buffered data, noting, based on counting the number of samples received, a point at which the DATA has switched from buffered data to real-time audio data. The DSP 350 then uses the ratio of the previously measured DMIC 120 internal sample rate to the CLK sample rate to logically sample rate conversion of the buffered data to match that of the real-time audio data.


In some embodiments, even after the buffer data is completely received and the switch to real-time audio has occurred, the DMIC 120 data remains at a high latency. In some embodiments, the latency is equal to the buffer size in samples times the sample rate of CLK line 312. Because other microphones have low latency, the other microphone cannot be used with this data for conventional noise suppression.


In some embodiments, the mismatch between signals from microphones is eliminated by adding a delay to each of the other microphones used for noise suppression. After delaying, the streams from the DMIC 120 and the other microphones can be combined for noise suppression or other purposes. The delay added to the other microphones can either be determined based on known delay characteristics (e.g., latency due to buffering, etc.) of the DMIC 120 or can be measured algorithmically, e.g., based on comparing audio data received from the DMIC 120 and from the other microphones, for example, comparing timing, sampling rate clocks, etc.


Various embodiments of Example 3 have the disadvantage, compared with the preferred embodiment of Example 1, of a longer time from vocalization detection to real-time operation, and of having significant additional latency when operating in real-time. The embodiments of Example 3 have the advantage of only requiring the use of one channel of the stereo conventional DMIC interface, leaving the other channel available for use by a second DMIC.



FIG. 4 is a flow chart illustrating a method 400 for utilizing digital microphones for low power keyword detection and noise suppression, according to an example embodiment. In block 402, the example method 400 can commence with receiving an acoustic signal representing at least one sound captured by a digital microphone. The acoustic signal may include buffered data transmitted on a single channel with a first (low) clock frequency. In block 404, the example method 400 can proceed with receiving at least one second acoustic signal representing the at least one sound captured by at least one second microphone. In various embodiments, the at least one second acoustic signal includes real-time data.


In block 406, the buffered data can be analyzed to determine that the buffered data includes a voice. In block 408, the example method 400 can proceed with sending the buffered data with a second clock frequency to eliminate a delay of the acoustic signal from the second acoustic signal. The second clock frequency is higher than the first clock frequency. In block 410, the example method 400, may delay the second acoustic signal by a pre-determined time period. Block 410 may be performed instead of block 408 for eliminating the delay. In block 412, the example method 400 can proceed with providing the first acoustic signal and the at least one second acoustic signal to an audio processing system. The audio processing system may include noise suppression and keyword detection.



FIG. 5 illustrates an exemplary computer system 500 that may be used to implement some embodiments of the present invention. The computer system 500 of FIG. 5 may be implemented in the contexts of the likes of computing systems, networks, servers, or combinations thereof. The computer system 500 of FIG. 5 includes one or more processor units 510 and main memory 520. Main memory 520 stores, in part, instructions and data for execution by processor unit(s) 510. Main memory 520 stores the executable code when in operation, in this example. The computer system 500 of FIG. 5 further includes a mass data storage 530, portable storage device 540, output devices 550, user input devices 560, a graphics display system 570, and peripheral devices 580.


The components shown in FIG. 5 are depicted as being connected via a single bus 590. The components may be connected through one or more data transport means. Processor unit(s) 510 and main memory 520 is connected via a local microprocessor bus, and the mass data storage 530, peripheral device(s) 580, portable storage device 540, and graphics display system 570 are connected via one or more input/output (I/O) buses.


Mass data storage 530, which can be implemented with a magnetic disk drive, solid state drive, or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit(s) 510. Mass data storage 530 stores the system software for implementing embodiments of the present disclosure for purposes of loading that software into main memory 520.


Portable storage device 540 operates in conjunction with a portable non-volatile storage medium, such as a flash drive, floppy disk, compact disk, digital video disc, or Universal Serial Bus (USB) storage device, to input and output data and code to and from the computer system 500 of FIG. 5. The system software for implementing embodiments of the present disclosure is stored on such a portable medium and input to the computer system 500 via the portable storage device 540.


User input devices 560 can provide a portion of a user interface. User input devices 560 may include one or more microphones, an alphanumeric keypad, such as a keyboard, for inputting alphanumeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. User input devices 560 can also include a touchscreen. Additionally, the computer system 500 as shown in FIG. 5 includes output devices 550. Suitable output devices 550 include speakers, printers, network interfaces, and monitors.


Graphics display system 570 include a liquid crystal display (LCD) or other suitable display device. Graphics display system 570 is configurable to receive textual and graphical information and processes the information for output to the display device.


Peripheral devices 580 may include any type of computer support device to add additional functionality to the computer system.


The components provided in the computer system 500 of FIG. 5 are those typically found in computer systems that may be suitable for use with embodiments of the present disclosure and are intended to represent a broad category of such computer components that are well known in the art. Thus, the computer system 500 of FIG. 5 can be a personal computer (PC), hand held computer system, telephone, mobile computer system, workstation, tablet, phablet, mobile phone, server, minicomputer, mainframe computer, wearable, or any other computer system. The computer may also include different bus configurations, networked platforms, multi-processor platforms, and the like. Various operating systems may be used including UNIX, LINUX, WINDOWS, MAC OS, PALM OS, QNX ANDROID, IOS, CHROME, TIZEN, and other suitable operating systems.


The processing for various embodiments may be implemented in software that is cloud-based. In some embodiments, the computer system 500 is implemented as a cloud-based computing environment, such as a virtual machine operating within a computing cloud. In other embodiments, the computer system 500 may itself include a cloud-based computing environment, where the functionalities of the computer system 500 are executed in a distributed fashion. Thus, the computer system 500, when configured as a computing cloud, may include pluralities of computing devices in various forms, as will be described in greater detail below.


In general, a cloud-based computing environment is a resource that typically combines the computational power of a large grouping of processors (such as within web servers) and/or that combines the storage capacity of a large grouping of computer memories or storage devices. Systems that provide cloud-based resources may be utilized exclusively by their owners or such systems may be accessible to outside users who deploy applications within the computing infrastructure to obtain the benefit of large computational or storage resources.


The cloud may be formed, for example, by a network of web servers that comprise a plurality of computing devices, such as the computer system 500, with each server (or at least a plurality thereof) providing processor and/or storage resources. These servers may manage workloads provided by multiple users (e.g., cloud resource customers or other users). Typically, each user places workload demands upon the cloud that vary in real-time, sometimes dramatically. The nature and extent of these variations typically depends on the type of business associated with the user.


The present technology is described above with reference to example embodiments. Therefore, other variations upon the example embodiments are intended to be covered by the present disclosure.

Claims
  • 1. A method for audio processing, the method comprising: receiving a first acoustic signal representing at least one sound captured by a digital microphone having a buffer for storing digital data, the first acoustic signal including buffered digital data corresponding to the captured sound from the buffer of the digital microphone transmitted on a single channel with a first clock frequency;receiving at least one second acoustic signal representing the at least one sound captured by at least one second microphone, the at least one second acoustic signal including real-time data; andproviding the first acoustic signal and the at least one second acoustic signal to an audio processing system.
  • 2. The method of claim 1, wherein the providing includes sending the buffered digital data with a second clock frequency for eliminating a delay of the first acoustic signal from the at least one second acoustic signal, the second clock frequency being higher than the first clock frequency.
  • 3. The method of claim 1, wherein the providing includes delaying the at least one second acoustic signal by a pre-determined time period.
  • 4. The method of claim 3, wherein the pre-determined time period is determined based on one or more characteristics of the digital microphone.
  • 5. The method of claim 4, wherein the one or more characteristics includes latency of the digital microphone.
  • 6. The method of claim 5, wherein the latency includes delay due to buffering for the buffered digital data at the digital microphone.
  • 7. The method of claim 3, wherein the pre-determined time period is determined based on comparing the first acoustic signal and the at least one second acoustic signal.
  • 8. The method of claim 7, wherein the comparing comprises comparing sampling rates of the first acoustic signal and the at least one second acoustic signal.
  • 9. The method of claim 1, further comprising, prior to the providing, receiving an indication from the digital microphone that voice activity has been detected.
  • 10. The method of claim 9, wherein the indication is provided by a voice activity detector associated with the digital microphone.
  • 11. The method of claim 1, wherein the at least one second microphone is an analog microphone.
  • 12. The method of claim 1, wherein the audio processing system provides noise suppression based on the first acoustic signal and the at least one second acoustic signal.
  • 13. The method of claim 12, wherein the noise suppression is based on level difference between the first acoustic signal and the at least one second acoustic signal.
  • 14. The method of claim 1, wherein the first acoustic signal includes a pulse-density modulation (PDM) signal.
  • 15. A system for audio processing, the system comprising: a processor; anda memory communicatively coupled with the processor, the memory storing instructions which, when executed by the processor, perform a method comprising: receiving a first acoustic signal representing at least one sound captured by a digital microphone having a buffer for storing digital data, the first acoustic signal including buffered digital data corresponding to the captured sound from the buffer of the digital microphone transmitted on a single channel with a first clock frequency;receiving at least one second acoustic signal representing the at least one sound captured by at least one second microphone, the at least one second acoustic signal including real-time data; andproviding the first acoustic signal and the at least one second acoustic signal to an audio processing system.
  • 16. The system of claim 15, wherein the audio processing system includes at least one of noise suppression and keyword detection based on the first acoustic signal and the at least one second acoustic signal.
  • 17. The system of claim 15, wherein the providing includes sending the buffered digital data with a second clock frequency for eliminating a delay of the first acoustic signal from the at least one second acoustic signal, the second clock frequency being higher than the first clock frequency.
  • 18. The system of claim 15, wherein the providing includes delaying the at least one second acoustic signal by a pre-determined time period.
  • 19. The system of claim 18, wherein the pre-determined time period is determined based on one or more characteristics of the digital microphone.
  • 20. The system of claim 18, wherein the pre-determined time period is determined by comparing the first acoustic signal and the at least one second acoustic signal.
  • 21. The system of claim 15, further comprising, prior to the providing, receiving an indication that voice activity has been detected.
  • 22. The system of claim 21, wherein the indication is provided by a voice activity detector associated with the digital microphone.
  • 23. The system of claim 15, wherein the at least one second microphone is an analog microphone.
  • 24. A non-transitory computer-readable storage medium having embodied thereon instructions, which, when executed by at least one processor, perform steps of a method, the method comprising: receiving a first acoustic signal representing at least one sound captured by a digital microphone having a buffer for storing digital data, the first acoustic signal including buffered digital data corresponding to the captured sound from the buffer of the digital microphone transmitted on a single channel with a first clock frequency;receiving at least one second acoustic signal representing the at least one sound captured by at least one second microphone, the at least one second acoustic signal including real-time data; andproviding the first acoustic signal and the at least one second acoustic signal to an audio processing system.
CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. Provisional Patent Application No. 62/100,758, filed Jan. 7, 2015. The subject matter of the aforementioned application is incorporated herein by reference for all purposes.

US Referenced Citations (81)
Number Name Date Kind
3989897 Carver Nov 1976 A
4811404 Vilmur et al. Mar 1989 A
4812996 Stubbs Mar 1989 A
5012519 Adlersberg et al. Apr 1991 A
5335312 Mekata et al. Aug 1994 A
5340316 Javkin et al. Aug 1994 A
5473702 Yoshida et al. Dec 1995 A
5828997 Durlach et al. Oct 1998 A
5886656 Feste et al. Mar 1999 A
6138101 Fujii Oct 2000 A
6381570 Li et al. Apr 2002 B2
6449586 Hoshuyama Sep 2002 B1
6483923 Marash Nov 2002 B1
6594367 Marash et al. Jul 2003 B1
6876859 Anderson et al. Apr 2005 B2
7319959 Watts Jan 2008 B1
7346176 Bernardi et al. Mar 2008 B1
7373293 Chang et al. May 2008 B2
7539273 Struckman May 2009 B2
7873114 Lin Jan 2011 B2
7957542 Sarrukh et al. Jun 2011 B2
7986794 Zhang Jul 2011 B2
8005238 Tashev et al. Aug 2011 B2
8111843 Logalbo et al. Feb 2012 B2
8112272 Nagahama et al. Feb 2012 B2
8155346 Yoshizawa et al. Apr 2012 B2
8184822 Carreras et al. May 2012 B2
8184823 Itabashi et al. May 2012 B2
8204253 Solbach Jun 2012 B1
8447045 Laroche May 2013 B1
8538035 Every et al. Sep 2013 B2
8606571 Every et al. Dec 2013 B1
8712776 Bellegarda et al. Apr 2014 B2
8958572 Solbach Feb 2015 B1
20020106092 Matsuo Aug 2002 A1
20020138265 Stevens et al. Sep 2002 A1
20050060155 Chu et al. Mar 2005 A1
20050171851 Applebaum et al. Aug 2005 A1
20060074693 Yamashita Apr 2006 A1
20070053522 Murray et al. Mar 2007 A1
20070076896 Hosaka et al. Apr 2007 A1
20070088544 Acero et al. Apr 2007 A1
20070154031 Avendano et al. Jul 2007 A1
20070253574 Soulodre Nov 2007 A1
20080019548 Avendano Jan 2008 A1
20080147397 Konig et al. Jun 2008 A1
20080170716 Zhang Jul 2008 A1
20080195389 Zhang et al. Aug 2008 A1
20080232607 Tashev et al. Sep 2008 A1
20080260175 Elko Oct 2008 A1
20090012783 Klein Jan 2009 A1
20090012786 Zhang et al. Jan 2009 A1
20090022335 Konchitsky et al. Jan 2009 A1
20090024392 Koshinaka Jan 2009 A1
20090055170 Nagahama Feb 2009 A1
20090067642 Buck et al. Mar 2009 A1
20090146848 Ghassabian Jun 2009 A1
20090164212 Chan et al. Jun 2009 A1
20090175466 Elko et al. Jul 2009 A1
20090304203 Haykin et al. Dec 2009 A1
20090323982 Solbach et al. Dec 2009 A1
20100082346 Rogers et al. Apr 2010 A1
20100082349 Bellegarda et al. Apr 2010 A1
20100121629 Cohen May 2010 A1
20100135508 Wu Jun 2010 A1
20100324894 Potkonjak Dec 2010 A1
20110026739 Thomsen Feb 2011 A1
20110038489 Visser et al. Feb 2011 A1
20110064242 Parikh Mar 2011 A1
20110099010 Zhang Apr 2011 A1
20110103626 Bisgaard et al. May 2011 A1
20110164761 McCowan Jul 2011 A1
20110218805 Washio et al. Sep 2011 A1
20110274291 Tashev et al. Nov 2011 A1
20110299695 Nicholson Dec 2011 A1
20120027218 Every et al. Feb 2012 A1
20130197920 Lesso Aug 2013 A1
20130289988 Fry Oct 2013 A1
20130289996 Fry Oct 2013 A1
20140316783 Medina Oct 2014 A1
20150030163 Sokolov Jan 2015 A1
Foreign Referenced Citations (10)
Number Date Country
1081685 Mar 2001 EP
20126106 Jan 2013 FI
2013527493 Jun 2013 JP
1020130108063 Oct 2013 KR
200933609 Aug 2009 TW
201205560 Feb 2012 TW
I466107 Dec 2014 TW
WO2011137258 Nov 2011 WO
WO2012094422 Jul 2012 WO
WO2014172167 Oct 2014 WO
Non-Patent Literature Citations (24)
Entry
International Search Report & Written Opinion dated Sep. 11, 2014 in Application No. PCT/US2014/033559, filed Jan. 9, 2014.
Hinton, G. et al., “Deep Neural Networks for Acoustic Modeling in Speech Recognition”, IEEE Signal Processing Magazine, Nov. 2012, pp. 82-97.
International Search Report & Written Opinion dated Feb. 12, 2016 in Patent Cooperation Treaty Application No. PCT/US2015/064523, filed Dec. 8, 2015.
Nandy, Dibyendu et al., “Microphone Apparatus and Method with Catch-Up Buffer,” U.S. Appl. No. 14/797,310, filed Jul. 13, 2015.
Non-Final Office Action, dated Jan. 16, 2013, U.S. Appl. No. 12/832,920, filed Jul. 8, 2010.
Notice of Allowance, dated May 13, 2013, U.S. Appl. No. 12/832,920, filed Jul. 8, 2010.
Non-Final Office Action, dated Mar. 28, 2013, U.S. Appl. No. 12/837,340, filed Jul. 15, 2010.
Notice of Allowance, dated Jul. 25, 2013, U.S. Appl. No. 12/837,340, filed Jul. 15, 2010.
Non-Final Office Action, dated Dec. 5, 2012, U.S. Appl. No. 12/855,600, filed Aug. 12, 2010.
Final Office Action, dated May 7, 2013, U.S. Appl. No. 12/855,600, filed Aug. 12, 2010.
Notice of Allowance, dated Sep. 30, 2014, U.S. Appl. No. 12/855,600, filed Aug. 12, 2010.
Non-Final Office Action, dated Aug. 15, 2012, U.S. Appl. No. 12/876,861, filed Sep. 7, 2010.
Notice of Allowance, dated Jan. 28, 2013, U.S. Appl. No. 12/876,861, filed Sep. 7, 2010.
Non-Final Office Action, dated Aug. 15, 2013, U.S. Appl. No. 12/876,861, filed Sep. 7, 2010.
International Search Report and Written Opinion dated Jul. 21, 2011 in Patent Cooperation Treaty Application No. PCT/US11/34373.
Hoshuyama et al., “A Robust Generalized Sidelobe Canceller with a Blocking Matrix Using Leaky Adaptive Filters” 1997.
Spriet et al., “The impact of speech detection errors on the noise reduction performance of multi-channel Wiener filtering and Generalized Sidelobe Cancellation” 2005.
Hoshuyama et al., “A Robust Adaptive Beamformer for Microphone Arrays with a Blocking Matrix Using Constrained Adaptive Filters” 1999.
Herbordt et al., “Frequency-Domain Integration of Acoustic Echo Cancellation and a Generalized Sidelobe Canceller with Improved Robustness” 2002.
Office Action dated Jun. 5, 2014 in Taiwan Patent Application 100115214, filed Apr. 29, 2011.
Notice of Allowance dated Nov. 7, 2014 in Taiwan Application No. 100115214, filed Apr. 29, 2011.
Office Action dated Jun. 23, 2015 in Japan Patent Application 2013-508256 filed Apr. 28, 2011.
Office Action dated Jun. 23, 2015 in Finland Patent Application 20126106 filed Apr. 28, 2011.
International Search Report and Written Opinion dated Apr. 1, 2016 in Patent Cooperation Treaty Application No. PCT/US2016/012349.
Related Publications (1)
Number Date Country
20160196838 A1 Jul 2016 US
Provisional Applications (1)
Number Date Country
62100758 Jan 2015 US