Distributed Automatic Level Control for a Microphone Array
20170006378 ยท 2017-01-05
Assignee
Inventors
Cpc classification
H04R3/002
ELECTRICITY
H03G3/3005
ELECTRICITY
H04R2430/01
ELECTRICITY
International classification
Abstract
A distributed automatic level control function is provided, in which information relating to a common automatic level control parameter is transmitted to each of a plurality of microphone devices, wherein the information transmitted to at least one microphone device is derived from an audio sample of at least one different microphone device. Each microphone device produces the common automatic level control parameter based on the information received by the microphone device and applies the common automatic level control parameter produced by the microphone device to a distributed automatic level controller of the microphone device.
Claims
1. A method for distributed automatic level control processing in a system having a plurality of microphone devices, each microphone device having a distributed automatic level controller and producing a succession of audio samples, the method comprising: transmitting, to each microphone device, information relating to a common automatic level control parameter, wherein the information transmitted to at least one microphone device is derived from an audio sample of at least one different microphone device; producing, by each microphone device, the common automatic level control parameter based on the information received by the microphone device; and applying, by each microphone device, the common automatic level control parameter produced by the microphone device to the distributed automatic level controller of the microphone device.
2. A method according to claim 1, wherein transmitting information relating to the common automatic level control parameter comprises: in a first phase, transmitting an initial value by an initial device to a next successive device and transmit, by each successive device, an updated value based on a value received from a predecessor device; and in a second phase, transmitting the common automatic level control parameter by the initial device to the next successive device and transmitting the common automatic level control value by each successive device.
3. A method according to claim 1, wherein producing the common automatic level control parameter based on the information received by the microphone device comprises: producing the common automatic level control parameter based on the information received by the microphone device and at least one audio sample of the microphone device.
4. A method according to claim 1, wherein the succession of audio samples is logically divided into a number of successive frames, and wherein all of said microphone devices apply the common automatic level control parameter to a respective audio sample associated with a common frame.
5. A method according to claim 4, wherein the common automatic level control parameter is derived from audio samples associated with one of the common frame or a frame earlier than the common frame.
6. A method according to claim 1, wherein the microphone devices are configured in a daisy-chain configuration, and wherein at least one microphone device transmits information relating to the common automatic level control parameter to a next successive microphone device in the daisy-chain configuration.
7. A method according to claim 1, wherein the common automatic level control parameter comprises a value computed from at least one audio sample from each microphone device.
8. A method according to claim 1, wherein applying the common automatic level control parameter produced by the microphone device to the automatic level controller of the microphone device comprises at least one of: using the common automatic level control parameter as a reference value in the automatic level controller; programming a programmable gain amplifier based on the common automatic level control parameter; or processing audio sample data of the microphone device based on the common automatic level control parameter to produce processed audio sample data and transmitting the processed audio sample data over a communication system.
9. A method according to claim 1, further comprising: transmitting information relating to the common automatic level control parameter to a master/host device, wherein the master/host device is configured to process data from the microphone devices based on the common automatic level control parameter.
10. A system for distributed automatic level control processing, the system comprising a plurality of microphone devices, each microphone device having a communication interface and a distributed automatic level controller and producing a succession of audio samples, wherein the distributed automatic level controller of each microphone device is configured to receive via the communication interface information relating to a common automatic level control parameter derived from an audio sample of at least one different microphone device, produce the common automatic level control parameter based on the received information, and apply the common automatic level control parameter for an automatic level control function of the device.
11. A system according to claim 10, wherein: in a first phase, an initial value is transmitted by an initial device to a next successive device and each successive device transmits an updated value based on a received value; and in a second phase, the common automatic level control parameter is transmitted by the initial device to the next successive device and each successive device transmits the common automatic level control value.
12. A system according to claim 10, wherein each device produces the common automatic level control parameter based on the information received by the device and at least one audio sample of the microphone device.
13. A system according to claim 10, wherein the succession of audio samples is logically divided into a number of successive frames, and wherein all of said microphone devices apply the common automatic level control parameter to a respective audio sample associated with a common frame.
14. A system according to claim 13, wherein the common automatic level control parameter is derived from audio samples associated with one of the common frame or a frame earlier than the common frame.
15. A system according to claim 10, wherein the microphone devices are configured in a daisy-chain configuration, and wherein at least one microphone device transmits information relating to the common automatic level control parameter to a next successive microphone device in the daisy-chain configuration.
16. A system according to claim 10, wherein the common automatic level control parameter comprises a value computed from at least one audio sample from each microphone device.
17. A system according to claim 10, wherein applying the common automatic level control parameter comprises at least one of: using the common automatic level control parameter as a reference value in the automatic level controller; programming a programmable gain amplifier based on the common automatic level control parameter; or processing audio sample data of the microphone device based on the common automatic level control parameter to produce processed audio sample data and transmitting the processed audio sample data over a communication system.
18. A system according to claim 10, further comprising a master/host device in communication with the microphone devices, wherein the master/host device is configured to receive information relating to the common automatic level control parameter from at least one of the microphone devices, and wherein the master/host device is configured to process data from the microphone devices based on the common automatic level control parameter.
19. A microphone device comprising: a microphone for producing a succession of audio samples; a communication interface; and a distributed automatic level controller, wherein the distributed automatic level controller is configured to receive via the communication interface information relating to a common automatic level control parameter derived from an audio sample of at least one different microphone device, produce the common automatic level control parameter based on the received information, and apply the common automatic level control parameter to the distributed automatic level controller.
20. A microphone device according to claim 19, wherein the device produces the common automatic level control parameter based on the information received by the device and at least one audio sample of the microphone device.
21. A microphone device according to claim 19, wherein: the succession of audio samples is logically divided into a number of successive frames; the common automatic level control parameter is derived from information associated with a first given frame; and the common automatic level control parameter is applied to one of the first given frame or another frame.
22. A microphone device according to claim 19, wherein applying the common automatic level control parameter comprises at least one of using the common automatic level control parameter as a reference value in the automatic level controller; programming a programmable gain amplifier based on the common automatic level control parameter; or processing audio sample data of the microphone device based on the common automatic level control parameter to produce processed audio sample data and transmitting the processed audio sample data over a communication system.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The foregoing and advantages of the invention will be appreciated more fully from the following further description thereof with reference to the accompanying drawings wherein:
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038] It should be noted that the foregoing figures and the elements depicted therein are not necessarily drawn to consistent scale or to any scale. Unless the context otherwise suggests, like elements are indicated by like numerals.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
[0039] In embodiments of the present invention, automatic level control (ALC) is performed in a distributed manner by a plurality of microphone devices in a microphone array, where each microphone device performs an ALC function based on a common automatic level control parameter produced by each microphone device based on aggregated data from the plurality of microphone devices. For example, the aggregated data may include raw microphone data from all of the microphone devices, a maximum or minimum peak or RMS value calculated the microphone devices, an average signal level value, a gain value, or other automatic level control parameter.
[0040] In certain prior art systems, each microphone device sends raw microphone data to a master device, which processes the raw data to perform ALC on the microphone data samples.
[0041] In certain other prior art systems, each microphone device independently performs its own ALC function and sends processed data to the master device.
[0042]
[0043] One issue with the independent ALC function of the type described with reference to
Distributed Automatic Level Control
[0044]
[0045] The common automatic level control parameter may be used by each microphone device for any of a variety of automatic level control functions, such as using the common automatic level control parameter as a reference value in the automatic level controller, programming a programmable gain amplifier based on the common automatic level control parameter, and/or processing audio sample data of the microphone device based on the common automatic level control parameter to produce processed audio sample data and transmitting the processed audio sample data over a communication system. For example, the common automatic level control parameter may be a maximum or minimum peak or RMS value across all of the microphone devices for a set of related audio samples (e.g., audio samples taken by the microphone devices in a given sampling frame, where the audio sampling may be synchronized). The common automatic level control parameter may be used, for example, to set a common amount of gain across all microphone devices (optionally subject to a predetermined maximum or minimum amount of gain or resulting signal level), to normalize all audio samples to a common gain level (e.g., the common automatic level control parameter may be used as a common reference value for setting gain by each microphone device), to provide a common noise gate threshold for all of the microphone devices (e.g., for selectively muting microphones that are below a minimum value determined across all microphone devices), or for other automatic level control operation.
[0046] In one exemplary embodiment depicted schematically in
[0047] Thus, in the example described above with reference to
[0048] In various alternative embodiments, the information transmitted by one microphone device to another may include raw data (e.g., an audio sample) or processed data (e.g., a maximum or minimum peak/RMS value calculated from the audio sample and/or any received information). For example, the information transmitted from one microphone device to another may include raw audio sample data, a peak or RMS value computed from an audio sample, a gain value, a maximum signal level for a particular audio sampling frame, a minimum signal level for a particular audio sampling frame, or other information related to a common automatic level control parameter as may be used in a particular implementation.
[0049] In one exemplary embodiment, for example, when the common automatic level control parameter is a maximum peak or RMS value, the initial microphone device transmits its raw audio sample data to the next successive microphone device, and each successive microphone device receives raw audio sample data from its predecessor, compares determines the peak or RMS value for the received raw audio data sample and also for its own sample, and transmits the audio sample data having the greater peak or RMS value (i.e., it transmits either the received audio sample data or its own audio sample data, whichever has the higher peak or RMS value). When the initial microphone device receives the raw audio sample data from the last microphone device, it compares the received raw audio sample data with its own audio sample to determine the maximum peak or RMS value across all of the microphone devices. If the initial microphone device had the maximum peak or RMS value, then the initial microphone device may receive the same value that it transmitted; otherwise, the initial microphone device may receive a different value than in transmitted. In any case, once the initial microphone device determines the maximum peak or RMS value across all of the microphone devices, the initial microphone device can then transmit the audio sample having the maximum peak or RMS value (or alternatively transmit the maximum peak or RMS value) to the other microphone devices for use by each microphone device in implementing its ALC function.
[0050]
[0051] During the first stage (i.e., State 1810), each microphone device takes an audio sample (811), typically synchronized to a common reference clock. Each microphone device also receives Information (812) from its predecessor device in the normal course. If the device is the initial device (813), then the information to be transmitted by the device is the raw audio sample data (814). Otherwise (815), the microphone device determines if the received Information or the Sample has a higher peak or RMS value (816), where the information to be transmitted by the device is the one having the higher peak or RMS value (817). The microphone device transmits its information to the next successive device (818) and transitions to State 2 (819).
[0052] During the second stage (i.e., State 2820), each device receives Information from its predecessor device (821). If the device is the initial device (822), then the received Information is updated information from the last microphone device, in which case the device determines the common automatic level control parameter based on the received Information and the devices audio sample data (823), and the information to be transmitted by the device is the common automatic level control parameter (824). Otherwise (825), the received information is the common automatic level control parameter passed from its predecessor device, in which case the information to be transmitted by the device is the received Information (826), i.e., the device simply passes along the value it received. The device transmits the common automatic level control parameter to the next successive device (827), optionally may apply the common automatic level control parameter to the automatic level controller (828), and transitions to State 1 (829).
[0053] In another exemplary embodiment, for example, when the common automatic level control parameter is a maximum peak or RMS value, the initial microphone device determines a peak or RMS value for its audio sample and transmits the value to the next successive microphone device. Each successive microphone device receives a peak or RMS value from its predecessor, determines a peak or RMS value for its own audio sample, compares the received peak or RMS value to its own peak or RMS value, and transmits the higher value (i.e., it transmits either the received value or its own value, whichever is higher). When the initial microphone device receives the value from the last microphone device, it compares the received value with its own value to determine the maximum peak or RMS value across all of the microphone devices. If the initial microphone device had the maximum peak or RMS value, then the initial microphone device may receive the same value that it transmitted; otherwise, the initial microphone device may receive a different value than in transmitted. In any case, once the initial microphone device determines the maximum peak or RMS value across all of the microphone devices, the initial microphone device can then transmit the maximum peak or RMS value to the other microphone devices for use by each microphone device in implementing its ALC function.
[0054]
[0055] During the first stage (i.e., State 1910), each microphone device takes an audio sample (911), typically synchronized to a common reference clock. Each microphone device also receives Information (912) from its predecessor device in the normal course. If the device is the initial device (913), then the device determines initial information based on the Sample (914), e.g., a peak or RMS value for the Sample, and the information to be transmitted by the device is the that initial information (915). Otherwise (916), the microphone device determines updated information based on the received Information and the Sample (917), e.g., the higher peak or RMS value, and the information to be transmitted by the device is the updated information (918). The microphone device transmits its information to the next successive device (919) and transitions to State 2 (920).
[0056] During the second stage (i.e., State 2930), each device receives Information from its predecessor device (931). If the device is the initial device (932), then the received Information is updated information from the last microphone device, in which case the device determines the common automatic level control parameter based on the received Information and the device's audio sample data (933), e.g., the maximum peak or RMS value across the devices, and the information to be transmitted by the device is the common automatic level control parameter (934). Otherwise (935), the received information is the common automatic level control parameter passed from its predecessor device, in which case the information to be transmitted by the device is the received Information (936), i.e., the device simply passes along the value it received. The device transmits the common automatic level control parameter to the next successive device (937), optionally may apply the common automatic level control parameter to the automatic level controller (938), and transitions to State 1 (939).
[0057] While the examples described with reference to
Exemplary Communication Systems
[0058] It should be noted that information related to a common automatic level control parameter may be distributed to the various microphone devices using any of a variety of communication systems that allow data to be provided to, or exchanged among, the microphone devices.
[0059]
[0060] In the TDM daisy-chain configuration shown in
[0061] In the TDM daisy-chain configuration shown in
[0062] In the TDM daisy-chain configuration shown in
[0063]
[0064]
[0065] Of course, information related to a common automatic level control parameter may be distributed to the various microphone devices using other types of communication systems. As but one further example, in a communication system in which the devices share a common bi-directional bus or otherwise can receive data from all other devices (either serially or in parallel), each may receive raw data sample data from all of the other devices and may determine therefrom the common automatic level control parameter, such as, for example, the maximum peak or RMS value or average for all of the audio samples.
Exemplary Frame-Based Processing
[0066] In certain exemplary embodiments, a common automatic level control parameter such as a maximum or minimum peak or RMS value, an average value, a gain value, or other value is produced for each audio sampling frame based on audio samples from the microphone devices in that frame or in a prior frame, and each microphone device applies the common automatic level control parameter to its automatic level controller. Thus, for example, in each frame, the microphone devices may exchange information for the common automatic level control parameter for the current frame and also exchange the common automatic level control parameter for the previous frame.
[0067] In one exemplary embodiment depicted schematically in
[0068]
[0069]
[0070] It should be noted that the common automatic level control parameter may be transmitted to the master/host device, as discussed above. In the example described with reference to
[0071]
[0072] With reference to
[0073] With reference to
[0074] It should be noted that frame-based processing may be implemented differently in different systems, for example, based on the way in which the devices are interconnected, the protocols used for exchanging information to or between devices, etc.
[0075] Also, any of a variety of timing relationships may be used in various alternative embodiments. For example, a common automatic level control parameter computed for a frame X may be used to for distributed automatic level control for data samples taken in frame X, in an earlier frame, or in a later frame.
[0076] As but one further example, with reference again to
[0077]
Miscellaneous
[0078] It should be noted that the term data packet is used above to reference certain units of data transmitted between devices. The use of this term is for convenience and does not limit embodiments of the present invention to any particular data format or communication protocol.
[0079] It will be understood by any person of ordinary skill in the art that it would be virtually impossible to describe herein every possible manner of implementing a distributed automatic level control function, and, in particular, every possible type of device that can support a distributed ALC function, every type of distributed ALC circuit, every type of communication system that can support a distributed ALC function, every possible way of exchanging information with and between devices, every possible type of information that can be exchanged with or between devices, etc. Various exemplary embodiments are described above, and from these exemplary embodiment, various alternatives will be understood.
[0080] It should be noted that headings are used above for convenience and are not to be construed as limiting the present invention in any way.
[0081] Various aspects of the present invention may be embodied in many different forms, including, but in no way limited to, computer program logic for use with a processor (e.g., a microprocessor, microcontroller, digital signal processor, or general purpose computer), programmable logic for use with a programmable logic device (e.g., a Field Programmable Gate Array (FPGA) or other PLD), discrete components, integrated circuitry (e.g., an Application Specific Integrated Circuit (ASIC)), or any other means including any combination thereof. Computer program logic implementing some or all of the described functionality is typically implemented as a set of computer program instructions that is converted into a computer executable form, stored as such in a computer readable medium, and executed by a microprocessor under the control of an operating system. Hardware-based logic implementing some or all of the described functionality may be implemented using one or more appropriately configured FPGAs.
[0082] Computer program logic implementing all or part of the functionality previously described herein may be embodied in various forms, including, but in no way limited to, a source code form, a computer executable form, and various intermediate forms (e.g., forms generated by an assembler, compiler, linker, or locator). Source code may include a series of computer program instructions implemented in any of various programming languages (e.g., an object code, an assembly language, or a high-level language such as Fortran, C, C++, JAVA, or HTML) for use with various operating systems or operating environments. The source code may define and use various data structures and communication messages. The source code may be in a computer executable form (e.g., via an interpreter), or the source code may be converted (e.g., via a translator, assembler, or compiler) into a computer executable form.
[0083] The computer program may be fixed in any form (e.g., source code form, computer executable form, or an intermediate form) either permanently or transitorily in a tangible storage medium, such as a semiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g., a diskette or fixed disk), an optical memory device (e.g., a CD-ROM), a PC card (e.g., PCMCIA card), or other memory device. The computer program may be fixed in any form in a signal that is transmittable to a computer using any of various communication technologies, including, but in no way limited to, analog technologies, digital technologies, optical technologies, wireless technologies (e.g., Bluetooth), networking technologies, and internetworking technologies. The computer program may be distributed in any form as a removable storage medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the communication system (e.g., the Internet or World Wide Web).
[0084] Hardware logic (including programmable logic for use with a programmable logic device) implementing all or part of the functionality previously described herein may be designed using traditional manual methods, or may be designed, captured, simulated, or documented electronically using various tools, such as Computer Aided Design (CAD), a hardware description language (e.g., VHDL or AHDL), or a PLD programming language (e.g., PALASM, ABEL, or CUPL).
[0085] Programmable logic may be fixed either permanently or transitorily in a tangible storage medium, such as a semiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g., a diskette or fixed disk), an optical memory device (e.g., a CD-ROM), or other memory device. The programmable logic may be fixed in a signal that is transmittable to a computer using any of various communication technologies, including, but in no way limited to, analog technologies, digital technologies, optical technologies, wireless technologies (e.g., Bluetooth), networking technologies, and internetworking technologies. The programmable logic may be distributed as a removable storage medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the communication system (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention are implemented as entirely hardware, or entirely software.
[0086] The present invention may be embodied in other specific forms without departing from the true scope of the invention. Any references to the invention are intended to refer to exemplary embodiments of the invention and should not be construed to refer to all embodiments of the invention unless the context otherwise requires. The described embodiments are to be considered in all respects only as illustrative and not restrictive.