Hearing aids and other auditory devices are used to block out certain noises and amplify others. For example, a user may manually initiate noise cancellation to block out sounds or select a setting to amplify voices when people are talking in a quiet setting. However, this process may be arduous, especially if the user changes locations, because the user has to manually adjust the settings of the auditory device to match the conditions of the new location.
In some embodiments, a computer-implemented method performed by an auditory device includes receiving a current location from a user device. The method further includes determining whether the current location exceeds a distance threshold from a previous location that is associated with a current preset. The method further includes responsive to the current location exceeding the distance threshold, determining whether one or more presets have been previously used in the current location by a user. The method further includes responsive to determining that the one or more presets have been previously used in the current location by the user, applying, with the auditory device, the one or more presets.
In some embodiments, determining whether the one or more presets have been previously used in the current location by a user further occurs responsive to determining that a threshold change in ambient noise conditions occurs. In some embodiments, the method further includes receiving instructions for applying one or more suggested presets from the list of suggested presets that were selected by the user and applying the one or more suggested presets that were selected by the user based on the instructions. In some embodiments, the method further includes receiving information about a new preset that was generated by the user device using a machine-learning model and applying the new preset. In some embodiments, the method further includes querying the user device to provide the current location.
In some embodiments, a user device includes one or more processors and logic encoded in one or more non-transitory media for execution by the one or more processors and when executed are operable to: determine a current location of the user device; determine whether the current location exceeds a distance threshold from a previous location that is associated with a current preset; responsive to the current location exceeding the distance threshold, determine whether one or more presets have been previously used in the current location by a user; and responsive to determining that the one or more presets have been previously used in the current location by the user, instruct an auditory device to apply the one or more presets.
In some embodiments, determining the current location of the user device includes: determining, with a global positioning system (GPS), a first current location; and responsive to the user device being inside of a building, determining, with a location unit, a second current location, wherein the second current location is more precise than the first current location and wherein the location unit determines the second current location using at least one selected from the group of Bluetooth, Wi-Fi, Near Field Communication (NFC), Radio Frequency Identification (RFID), Ultra-Wideband (UWB), infrared, and combinations thereof. In some embodiments, the distance threshold is determined using a machine-learning model that receives information about an ambient noise condition associated with the previous location and outputs the distance threshold. In some embodiments, determining whether the one or more presets have been previously used in the current location by a user further occurs responsive to determining that a threshold change in ambient noise conditions occurs. In some embodiments, the logic is further operable to: responsive to no presets corresponding to the current location being previously selected by the user, provide a list of suggested presets that correspond to the current location. In some embodiments, the logic is further operable to: responsive to no presets corresponding to the current location being previously selected by the user, providing an option to create a new preset for the current location.
In some embodiments, the logic is further operable to: receive a selection of the option to create the new preset for the current location; sample a background noise for a period of time; and output, with a machine-learning model, the new preset for an ambient noise condition that modifies adjustments in sound levels based on patterns associated the ambient noise condition. In some embodiments, the machine-learning model is trained by: providing training data that includes different ambient noise conditions, information about how the different ambient noise conditions change as a function of time, and a set of presets that reduce or block background noise associated with the different ambient noise conditions; generating feature embeddings from the training data that group features of the different ambient noise conditions based on similarity; providing training ambient noise conditions as input to the machine-learning model; outputting one or more training presets that correspond to each training ambient noise condition; comparing the one or more training presets to groundtruth data; and modifying parameters of the machine-learning model based on a loss function that identifies a difference of the one or more training presets to the groundtruth data.
Software encoded in one or more computer-readable media for execution by the one or more processors of an auditory device and when executed is operable to: determine a current location of the user device; determine whether the current location exceeds a distance threshold from a previous location that is associated with a current preset; responsive to the current location exceeding the distance threshold, determine whether one or more presets have been previously used in the current location by a user; and responsive to determining that the one or more presets have been previously used in the current location by the user, instruct an auditory device to apply the one or more presets.
In some embodiments, determining the current location of the user device includes: determining, with a global positioning system (GPS), a first current location; and responsive to the user device being inside of a building, determining, with a location unit, a second current location, wherein the second current location is more precise than the first current location and wherein the location unit determines the second current location using at least one selected from the group of Bluetooth, Wi-Fi, NFC, RFID, UWB, infrared, and combinations thereof. In some embodiments, the distance threshold is determined using a machine-learning model that receives information about an ambient noise condition associated with the previous location and outputs the distance threshold. In some embodiments, determining whether the one or more presets have been previously used in the current location by a user further occurs responsive to determining that a threshold change in ambient noise conditions occurs. In some embodiments, the logic is further operable to: responsive to no presets corresponding to the current location being previously selected by the user, provide a list of suggested presets that correspond to the current location. In some embodiments, the logic is further operable to: responsive to no presets corresponding to the current location being previously selected by the user, providing an option to create a new preset for the current location.
The technology advantageously applies one or more presets based on a location of a user. If the user is in a new location where one or more presets have not been used, the technology advantageously suggests presets to the user or provides a way to create customized presets, for example, using machine learning.
A further understanding of the nature and the advantages of particular embodiments disclosed herein may be realized by reference of the remaining portions of the specification and the attached drawings.
The auditory device 120 may include a processor, a memory, a speaker, and network communication hardware. The auditory device 120 may be a hearing aid, earbuds, headphones, or a speaker device. The speaker device may include a standalone speaker, such as a soundbar or a speaker that is part of a device, such as a speaker in a laptop, tablet, phone, etc.
The auditory device 120 is communicatively coupled to the network 105 via signal line 106. Signal line 106 may be a wired connection, such as Ethernet, coaxial cable, fiber-optic cable, etc., or a wireless connection, such as Wi-Fi®, Bluetooth®, or other wireless technology.
In some embodiments, the auditory device 120 includes a hearing application 103a that performs hearing tests. For example, the user 125 may be asked to identify sounds emitted by speakers of the auditory device 120 and the user may provide user input, for example, by pressing a button on the auditory device 120, such as when the auditory device is a hearing aid, earbuds, or headphones. In some embodiments where the auditory device 120 is larger, such as when the auditory device 120 is a speaker device, the auditory device 120 may include a display screen that receives touch input from the user 125.
In some embodiments, the auditory device 120 communicates with a hearing application 103b stored on the user device 115. During testing, the auditory device 120 receives instructions from the user device 115 to emit test sounds at particular decibel levels. Once testing is complete, the auditory device 120 receives a hearing profile that includes instructions for how to modify sound based on different factors, such as frequencies, types of sounds, one or more presets, etc.
In some embodiments, the hearing application 103a receives a current location from a user device 115. The hearing application 103a may periodically request the current location, periodically receive the current location unprompted from the user device 115, receive the current location if the user device 115 has moved more than a distance threshold, etc.
The hearing application 103a determines whether the current location exceeds a distance threshold from a previous location that is associated with a current preset. If the current location exceeds the distance threshold, the hearing application 103a determines whether one or more presets have been previously used in the current location by a user 125. If the one or more presets have been previously used, the auditory device 120 applies the one or more presets.
The user device 115 may be a computing device that includes a memory, a hardware processor, and a hearing application 103b. The user device 115 may include a mobile device, a tablet computer, a laptop, a mobile telephone, a wearable device, a head-mounted display, a mobile email device, or another electronic device capable of accessing a network 105 to communicate with one or more of the server 101 and the auditory device 120.
In the illustrated implementation, user device 115 is coupled to the network 105 via signal line 108. Signal line 108 may be a wired connection, such as Ethernet, coaxial cable, fiber-optic cable, etc., or a wireless connection, such as Wi-Fi®, Bluetooth®, or other wireless technology. The user device 115 is used by way of example. While
In some embodiments, the hearing application 103b includes code and routines operable to connect with the auditory device 120 to receive a signal, such as by making a connection via Bluetooth® or Wi-Fi®; implementing a hearing test; and transmitting the hearing profile and the one or more presets to the auditory device 120.
In some embodiments, the hearing application 103b determines a current location of the user device. The user device 115 may use a Global Positioning System (GPS) to determine the location. In some embodiments, GPS is not specific enough. For example, if a user 125 moves inside a building, the user device 115 may use location hardware that is more specific to determine the current location, such as Wi-Fi®, Bluetooth®, etc.
The hearing application 103b may provide the current location to the auditory device 120 after receiving a request, after the current location exceeds a distance threshold from a previous location that is associated with a current preset, or the hearing application 103b periodically sends the current location. If the current location exceeds a distance threshold that is associated with a current preset, the hearing application 103b may determine whether one or more presets have been currently used in the location by a user 125. If the one or more presets have been previously used in the current location by the user, the hearing application 103b may instruct the auditory device 120 to apply the one or more presets.
If the one or more presets have not been previously used in the current location, the hearing application 103b may provide a list of suggested presets that correspond to the current location or provide an option to create a new preset for the current location. The hearing application 103b may create the new preset using a machine-learning model. For example, the machine-learning model may sample background noise for a period of time and output the new preset for an ambient noise condition that modifies adjustments in sound levels based on patterns associated with the ambient noise condition.
The server 101 may include a processor, a memory, and network communication hardware. In some embodiments, the server 101 is a hardware server. The server 101 is communicatively coupled to the network 105 via signal line 102. Signal line 102 may be a wired connection, such as Ethernet, coaxial cable, fiber-optic cable, etc., or a wireless connection, such as Wi-Fi®, Bluetooth®, or other wireless technology. In some embodiments, the server includes a hearing application 103c. In some embodiments and with user consent, the hearing application 103c on the server 101 maintains a copy of the hearing profile and the one or more presets. In some embodiments, the server 101 maintains audiometric profiles generated by an audiologist for different situations, such as an audiometric profile of a person with no hearing loss, an audiometric profile of a man with no hearing loss, an audiometric profile of a woman with hearing loss, etc. In some embodiments, the hearing application 103c on the server 101 includes the trained machine-learning model and provides information to the auditory device 120 and/or the user device 115 about the one or more presets in order to take advantage of greater processing power provided by the server 101.
In some embodiments, computing device 300 includes a processor 335, a memory 337, an Input/Output (I/O) interface 339, a microphone 341, an analog to digital converter 343, a digital signal processor 345, a digital to analog converter 347, a speaker 349, a location unit 351, a display 353, and a storage device 355. The processor 335 may be coupled to a bus 318 via signal line 322, the memory 337 may be coupled to the bus 318 via signal line 324, the I/O interface 339 may be coupled to the bus 318 via signal line 326, the microphone 341 may be coupled to the bus 318 via signal line 328, the analog to digital converter 343 may be coupled to the bus 318 via signal line 330, the digital signal processor 345 may be coupled to the bus 318 via signal line 332, the digital to analog converter 347 may be coupled to the bus 318 via signal line 334, the speaker 349 may be coupled to the bus 318 via signal line 336, the location unit 351 may be coupled to the bus 318 via signal line 338, the display 353 may be coupled to the bus 318 via signal line 340, and the storage device 355 may be coupled to the bus 318 via signal line 342.
The processor 335 can be one or more processors and/or processing circuits to execute program code and control basic operations of the computing device 300. A processor includes any suitable hardware system, mechanism or component that processes data, signals or other information. A processor may include a system with a general-purpose central processing unit (CPU) with one or more cores (e.g., in a single-core, dual-core, or multi-core configuration), multiple processing units (e.g., in a multiprocessor configuration), a graphics processing unit (GPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a complex programmable logic device (CPLD), dedicated circuitry for achieving functionality, or other systems. A computer may be any processor in communication with a memory.
The memory 337 is typically provided in computing device 300 for access by the processor 335 and may be any suitable processor-readable storage medium, such as random access memory (RAM), read-only memory (ROM), Electrical Erasable Read-only Memory (EEPROM), Flash memory, etc., suitable for storing instructions for execution by the processor or sets of processors, and located separate from processor 335 and/or integrated therewith. Memory 337 can store software operating on the computing device 300 by the processor 335, including the hearing application 103.
The I/O interface 339 can provide functions to enable interfacing the computing device 300 with other systems and devices. Interfaced devices can be included as part of the computing device 300 or can be separate and communicate with the computing device 300. For example, network communication devices, storage devices (e.g., the memory 337 or the storage device 355), and input/output devices can communicate via I/O interface 339.
In some embodiments, the I/O interface 339 handles communication between the computing device 300 and the user device via a wireless protocol, such as Wi-Fi®, Bluetooth®, Near Field Communication (NFC), Radio Frequency Identification (RFID), Ultra-Wideband (UWB), infrared, etc. In some embodiments, the I/O interface 339 provides information to the user device that identifies a type of the auditory device that is wirelessly connected to the user device.
The microphone 341 includes hardware for detecting sounds. For example, the microphone 341 may detect ambient noises, people speaking, music, etc. The microphone 341 receives acoustical sound signals and converts the signals to analog electrical signals. The analog to digital converter 343 converts the analog electrical signals to digital electrical signals.
The digital signal processor 345 includes hardware for converting the digital electrical signals into a digital output signal. Turning to
The filter block 352 includes hardware that may apply a filter to the digital electrical signals. For example, the filter block 352 may apply a filter that removes sounds corresponding to a particular frequency or that modifies the sound level associated with the particular frequency. For example, the filter block 352 may include a high-frequency shelf that prevents a sound level of the background noise from exceeding a high-frequency protection preset curve based on a frequency of the background noise.
The compressor 354 may include hardware that is used to compress the dynamic range of input sounds so that they more closely match the dynamic range desired by the user while ensuring that the sounds are audible to the user. In some embodiments, the compressor 354 adjusts the gain of signals at a particular frequency where the user has hearing loss. For example, if a user has hearing loss at a higher frequency, the compressor 354 may adjust the gain of those signals.
The amplifier 346 is used to amplify certain sounds based on a particular setting. For example, the amplifier 346 may apply a gain to particular frequencies when a user has been identified as suffering hearing loss at those particular frequencies. In some embodiments, the amplifier 346 reduces or blocks a signal heard by the user by sending an inverted signal that sums with the outside noise before it reaches the user's ear. The amplifier 346 transmits the digital output signal to a digital-to-analog converter 347.
The digital-to-analog converter 347 may include hardware that is used to convert the digital output signal into an analog electrical signal, which is used by the speaker 349 to produce an audio signal that is heard by the user.
The location unit 351 includes hardware to identify a current location of the computing device 300. The location unit 351 includes GPS. The location unit 351 also includes one or more of Bluetooth®, Wi-Fi®, NFC, RFID, UWB, and infrared. In some embodiments, the location unit 351 uses GPS to determine the current location while the user is outside, and one of the other location units 351 to determine a more specific location of the user while the user is inside. For example, the location unit 351 may use Wi-Fi® inside a shopping mall to determine which store a user is inside.
In some embodiments where the computing device 300 is a user device, the computing device 300 includes a display 353. The display 353 may connect to the I/O interface 339 to display content, e.g., a user interface, and to receive touch (or gesture) input from a user. The display 353 can include any suitable display device such as a liquid crystal display (LCD), light emitting diode (LED), or plasma display screen, television, monitor, touchscreen, or other visual display device.
The storage device 355 stores data related to the hearing application 103. For example, the storage device 355 may store hearing profiles generated by the hearing application 103, sets of test sounds, a hearing profile, training data for a machine-learning model, and one or more presets.
Although particular components of the computing device 300 are illustrated, other components may be added or removed.
The hearing application 103 includes a user interface module 302, a hearing test module 304, and a preset module 306. For example, a first computing device 300 may be an auditory device that includes the hearing test module 304 and the preset module 306. A second computing device may be an auditory device that includes the user interface module 302, the hearing test module 304, and the preset module 306.
The user interface module 302 generates graphical data for displaying a user interface. In some embodiments, a user downloads the hearing application onto a user device. The user interface module 302 may generate graphical data for displaying a user interface where the user provides input that the hearing test module 304 uses to generate a hearing profile for a user. For example, the user may provide a username and password, input their name, and provide an identification of an auditory device (e.g., identify whether the auditory device is a hearing aid, headphones, earbuds, or a speaker device).
In some embodiments, the user interface includes an option for specifying a particular type of auditory device and a particular model that is used during testing. For example, the hearing aids may be Sony C10 self-fitting over-the-counter hearing aids (model CRE-C10) or E10 self-fitting over-the-counter hearing aids (model CRE-E10). The identification of the type of auditory device is used for, among other things, determining a beginning decibel level for the test sounds. For example, because hearing aids, earbuds, and headphones are so close to the ear (and are possibly positioned inside the ear), the beginning decibel level for a hearing aid is 0 decibels. For testing of a speaker device, the speaker device should be placed a certain distance from the user and the beginning decibel level may be modified according to that distance. For example, for a speaker device that is within 5 inches of the user, the beginning decibel level may be 10 decibels.
In some embodiments, once the user has selected a type of auditory device, the user interface module 302 generates a user interface for specifying a model of the auditory device. For example, the user interface module 302 may generate graphical data for displaying a list of different types of Sony headphones. For example, the list may include WH-1000XM4 wireless Sony headphones, WH-CH710N wireless Sony headphones, MDR-ZX110 wired Sony headphones, etc. Other Sony headphones may be selected. In some embodiments, the user interface module 302 may generate graphical data to display a list of models from other manufacturers.
The user interface module 302 generates graphical data for displaying a user interface that allows a user to select a hearing test. For example, the hearing test module 304 may implement pink noise band testing, speech testing, music testing, etc. In some embodiments, the user may select which type of test is performed first. In some embodiments, before testing begins, the user interface includes an instruction for the user to move to an indoor area that is quiet and relatively free of background noise.
In some embodiments, the user interface module 302 generates graphical data for displaying a user interface to select a number of listening bands for the hearing testing. For example, the user interface may include radio buttons for selecting a particular number of listening bands or a field where the user may enter a number of listening bands.
Once the different tests begin, in some embodiments, the user interface module 302 generates graphical data for displaying a user interface with a way for the user to identify when the user hears a sound generated by the auditory device. For example, the user interface may include a button that the user can select when the user hears a sound. In some embodiments, the user interface module 302 generates a user interface during speech testing that includes a request to identify a particular word from a list of words. This helps identify words or sound combinations that the user may have difficulty hearing.
In some embodiments, the user interface module 302 may generate graphical data for displaying a user interface that allows a user to repeat the hearing tests. For example, the user may feel that the results are inaccurate and may want to test their hearing to see if there has been an instance of hearing loss that was not identified during testing. In another example, a user may experience a change to their hearing conditions that warrants a new test, such as a recent infection that may have caused additional hearing loss.
In some embodiments, the user interface module 302 generates graphical data for displaying a user interface for selecting one or more presets from a set of presets as is discussed in greater detail below with reference to
In some embodiments, the user interface module 302 generates graphical data for a user interface that includes icons for different presets that allows the user to modify the one or more presets. For example, the user interface may include an icon and associated text for a noise cancellation preset, an ambient noise preset, a factory noise preset, a baby noise preset, an airplane noise preset, a tool preset, a sports game preset, a work preset, a home preset, a concert preset, a traffic noise preset, a subway noise preset, a firetruck preset, a fire alarm preset, etc. The type of noise preset may include individual icons for presets corresponding to each type of noise, such as one for construction noise and another for noises at a particular frequency.
In some embodiments, the user interface module 302 generates graphical data for displaying a user interface that includes an option to override the one or more presets. For example, a user may switch presets because the user has moved from a previous location to a current location and the presets no longer apply. In some embodiments, the preset module 306 identifies that the user feedback of changing presets indicates that the distance threshold associated with the previous location should be modified to reflect the distance when the user changed the presets.
The hearing test module 304 conducts a hearing test by instructing the speaker 349 to emit sounds. In some embodiments, the hearing test is administered by a user marking in a user interface displayed on the user device whether the user heard a particular sound. In some embodiments, the hearing test module 304 stored on the user device generates the hearing profile once testing is complete and transmits the hearing profile to the user device.
The hearing test module 304 generates a hearing profile after receiving user input provided via the user interface. For example, the hearing test module 304 instructs the auditory device to play a sound at a particular decibel level, receives user input via the user interface when the user can hear the sound, and generates a hearing profile that indicates a frequency at which the user can hear the sound. The hearing test module 304 may use multiple types of tests. For example, the hearing test module 304 may implement pink band testing that determines the decibels at which pink bands are audible to users. The hearing test module 304 may also implement speech testing to determine circumstances when speech is most audible to the user and implement music testing to determine circumstances when music is most audible to the user.
In some embodiments, the hearing test module 304 modifies the hearing profile to include instructions for producing sounds based on a corresponding frequency according to a Fletcher Munson curve. The Fletcher Munson curve identifies a phenomenon of human hearing where as an actual loudness changes, the perceived loudness that a human's brain hears will change at a different rate, depending on the frequency. For example, at low listening volumes mid-range frequencies sound more prominent, while the low and high frequency ranges seem to fall into the background. At high listening volumes the lows and highs sound more prominent, while the mid-range seems comparatively softer.
In some embodiments, the hearing test module 304 receives an audiometric profile from the server and compares the hearing profile to the audiometric profile in order to make recommendations for the user. In some embodiments, the hearing test module 304 modifies the hearing profile to include instructions for producing sounds based on a comparison of the hearing profile to the audiometric profile. For example, the hearing test module 304 may identify that there is a 10-decibel hearing loss at 400 Hertz based on comparing the hearing profile to the audiometric profile and the hearing profile is updated with instructions to produce sounds by increasing the auditory device by 10 decibels for any noises that occur at 400 Hertz.
The preset module 306 receives a current location. In some embodiments, the preset module 306 receives the current location via the I/O interface 339 from the location unit 351. The location unit 351 may include GPS that identifies the current location. In some embodiments, where a more precise location is needed, the location unit 351 provides the current location using at least one of Bluetooth®, Wi-Fi®, NFC, RFID, ultra-wideband, or infrared. In some embodiments, the location unit 351 provides a first current location using GPS and a second current location using one or more of the other methods. For example, the location unit 351 may first use GPS to provide an approximate location and then one of the other methods to provide the more precise methods. In another example, the location unit 351 may use GPS to provide the first current location and then, responsive to detecting that the user moved inside, provides the second current location using one of the other methods.
Although the auditory device may include a location unit for determining a current location, in some embodiments, the location unit is on the user device and the preset module 306 receives the current location from user device. The preset module 306 may transmit a query to the user device for the current location periodically, such as every five minutes, seven minutes, one minute, etc. In some embodiments, a user device transmits the current location to the preset module 306 periodically.
In some embodiments, the preset module 306 determines whether the current location exceeds a distance threshold from a previous location that is associated with a current preset. For example, when a user leaves their house and starts walking to a bus stop, the preset module 306 may determine that the current location exceeds the distance threshold from the previous location associated with the user's house where the user was using one or more house presets.
The distance threshold may vary depending on the specifics of the location. For example, if the current location and the previous location are both on a hiking trail, the distance threshold may be miles long. Alternatively, if the previous location was in a shopping mall, the distance threshold may be 10 feet (or five feet, 15 feet, etc.) because the 10 feet may be enough for the user to enter a different store with different ambient conditions. In yet another example, the distance threshold may be configured by the user as one of the user preferences.
In some embodiments, the preset module 306 includes a machine-learning model that determines a threshold distance for different locations. The machine-learning model may be trained using training data that includes different ambient noise conditions and information about how the user (or users in general) switches presets based on the different ambient noise conditions as a function of distance. For example, the machine-learning model may output shorter threshold distances for presets that are used in areas where the noise is harmful to a user's hearing, such as at a construction site, than where the preset is used to block out quieter background noise, such as a coffee shop.
In some embodiments, the machine-learning model modifies the threshold distances in response to receiving feedback from a user. For example, the machine-learning model may modify a threshold distance if a user switches presets. The user may switch presets by selecting a new preset from a user interface, providing verbal instructions that are detected by a voice pick-up sensor, providing physical instructions by pressing a button on the auditory device or making a gesture that is detected by a motion sensor, etc. If the switch of presets occurs at a distance that is less than a current distance threshold, the machine-learning model may replace the current distance threshold with the distance determined from the feedback.
In some embodiments, the preset module 306 determines both whether a distance threshold is exceeded and whether a threshold change in ambient noise conditions occurs. For example, if a user is walking around a shopping mall, multiple stores may have the same ambient conditions and it is only when the user walks into a store, such as one selling musical equipment, that the user may desire a change in the presets.
The preset module 306 determines whether one or more presets have previously been used in the current location by a user. For example, the one or more presets may be associated with GPS coordinates, particular buildings, etc. If the one or more presets have been previously used in the current location by the user, the preset module 306 applies the one or more presets. For example, if the preset module 306 is part of the auditory device, the preset module 306 instructs the speaker 349 to apply the one or more presets. If the preset module 306 is part of the user device, the preset module 306 transmits instructions to the auditory device to apply the one or more presets.
The one or more presets predict when to reduce, remove, and/or amplify sounds at particular frequencies based on patterns associated with the ambient noise condition. For example, the sound of a baby may adhere to a particular pattern where the baby's cry is painfully loud at first, but then decreases, and then increases again. The preset module 306 may apply a high-frequency shelf to block the high frequencies and a parametric equalizer preset to reduce the loudness of the scream. In another example, a band saw may emit sounds at particular decibel levels and particular frequencies in a pattern that the preset module 306 uses to determine when to reduce, remove, and/or amplify sounds.
If the one or more presets have not previously been used, the preset module 306 may instruct the user interface module 302 to generate graphical data for displaying a list of suggested presets that correspond to the current location. In some embodiments, the suggested presets are based on presets generated for other users where the users have consented to their information being anonymized. For example, as discussed below, the preset module 306 may generate one or more presets using a machine-learning model. The preset module 306 may instruct the user interface to provide the most popular presets as suggested options for the user. The set of presets may include a ranked set of the most popular presets selected by users generally, the most popular presets selected by users that are similar to the user, an alphabetic list of presets, etc.
In some embodiments, the suggested presets are based on defaults generated for the current location based on various ambient noise conditions. For example, the preset module 306 may generate default presets for types of locations, such as grocery stores, daycare, school, a racetrack, sports venues, concert venues, areas with large amounts of traffic, a work building where background noise is suppressed and voices are enhanced, etc.
The user may select one or more suggested presets from the list of suggested presets that correspond to the current location. The preset module 306 applies the one or more suggested presets. For example, if the preset module 306 is on the user device, the preset module 306 transmits instructions to the auditory device about how to apply the one or more suggested presets that were selected.
If the preset module 306 is on the auditory device, the preset module 306 may instruct the speaker to apply the one or more presets. For example, the preset module 306 may determine that the ambient noise condition includes one or more frequencies that exceed a threshold frequency and the preset module 306 may apply a preset that includes reducing or blocking the ambient noise condition corresponding to the one or more frequencies. The preset module 306 may instruct the filter block 352 to apply a filter that reduces or blocks the one or more frequencies.
In some embodiments, the one or more presets include an adaptive noise cancellation preset. The preset module 306 may apply the preset by instructing the digital signal processor 345 to reduce or block the ambient noise condition using adaptive noise cancellation by mapping the ambient noise condition to what the user will hear with the auditory device in order to generate an anti-noise signal that is an inverted waveform that effectively cancels the waveform corresponding to the ambient noise condition.
In some embodiments, the one or more presets includes a noise cancellation and ambient noise preset that may cause the auditory device to provide a user with cancellation of noises that are not directly surrounding the user while allowing in sounds that directly surround the user through the ambient noise aspect of the preset. In some examples, the noise cancellation and ambient noise preset includes three options: a first setting activates the ambient noise function and the noise cancellation function, a second setting turns off the noise-cancellation function so only the ambient noise function is active, and a third setting turns off the ambient noise function so only the noise cancellation function is activated.
In some embodiments, the preset module 306 may apply a preset that adjusts the gain of sound at a particular frequency. For example, the preset module 306 may instruct the compressor 354 to adjust the gain of the background noise associated with a person that is whispering while other presets reduce sounds, such as from a basketball game that includes reflective noise that interferes with a user's ability to hear. The compressor 354 may adjust the frequencies at a first predetermined time (e.g., 10 ms, 1 second) and stop adjusting the frequencies at a second predetermined time (e.g., 5 ms, 2 seconds). The timing for applying and stopping the compressor 354 may be referred to as attack time and release time, respectively.
In some embodiments, the preset module 306 determines which frequencies to amplify based on a hearing profile. For example, the preset module 306 may adjust the gain of the particular frequency at which the user has experienced minimal or reduced hearing loss. The compressor 354 may adjust the gain of frequencies in a way that allows a user to distinguish between a shout and a whisper.
The preset module 306 may apply one or more presets that include different factors based on a frequency associated with ambient noise condition. For example, the preset module 306 may apply active noise cancellation, automatic gain control, a high-frequency shelf, and/or a parametric equalizer based on a threshold. Above an amplitude threshold, the preset module 306 may apply active noise cancellation. For example, the preset module 306 may apply active noise cancellation for any sounds with an amplitude above a threshold based on determining that the background noise is associated with an ambient condition. In some embodiments, the preset module 306 may apply other presets when the ambient noise condition is associated with a frequency or amplitude that exceeds the threshold. For example, the preset module 306 may apply one or more of a high-frequency (HF) shelf, a parametric equalizer (PEQ), and gain to frequencies that exceed the threshold.
The preset module 306 may apply gain as a function of a frequency of the ambient noise condition. For example, the preset module 306 may instruct the amplifier 356 to increase the gain of frequencies where the hearing profile associated with a user indicates that the user has suffered hearing loss as long as the gain is below a threshold protection line. In some embodiments, the gain may be associated with the threshold such that gain control is applied to all frequencies below a threshold or all frequencies above the threshold. The preset module 306 may apply a high-frequency shelf preset by instructing the digital signal processor 345 to reduce a sound level associated with a particular frequency so that it does not exceed a threshold protection.
The preset module 306 may apply a parametric equalizer preset by applying a gain for one or more frequency bands. In some embodiments, the preset module 306 may determine, or the user may define, one or more of a width of the one or more frequency bands, a center frequency for each of the one or more frequency bands, a quality factor (Q) of the one or more frequency bands that is a measure of a sharpness of a resonant peak, and a gain for each of the one or more frequency bands.
In some embodiments, the parametric equalizer may also be used by the preset module 306 to define a notch that reduces or blocks the background noise of an ambient noise condition for a particular frequency. For example, a user may have defined an unpleasant noise at a particular frequency that the user wants to be blocked out. For example, the user may have selected a preset that blocks out the noise of tonal machinery noise. As a result, the preset module 306 applies a parametric equalizer presetting that includes a notch preset curve to block out the frequency associated with tonal machinery noise.
In some embodiments, the preset module 306 assigns one or more default presets. The one or more default presets may be based on the most common presets used by users associated with a particular type of computing device 300. For example, a user may not need an adaptive noise cancellation preset with over-the-ear headphones that are better at blocking noises than other types of auditory devices. In some embodiments, the one or more default presets may be based on the most common presets used by users of a particular demographic (e.g., based on sex, age, similarity of user profiles, etc.). The preset module 306 may implement testing to determine user preferences that correspond to the one or more presets or the preset module 306 may update the one or more default presets in response to receiving feedback from the user.
The music preset may include a variety of different user preferences relating to music. For example, the user may identify that there are certain frequencies or situations during which the user experiences hypersensitivity. For example, the user may identify a particular frequency that causes distress, a particular action that bothers a user (such as construction noises), or based on a particular condition like misophonia (such as chewing or sniffing noises).
In some embodiments, the preset module 306 conducts preset tests to determine user preferences related to the presets. For example, the preset module 306 may instruct the speaker 349 to emit background noises and the user may identify the background noises as being associated with an ambient noise condition that the user wants to reduce or block. The user may provide user input for selecting a preset via a user interface displayed on the user device.
Pressing the customize preset 420 square may result in the user interface module 302 displaying the user interface in
In some embodiments, the preset module 306 generates a new preset for a current location using a machine-learning model. The machine-learning model may be trained using training data that includes different ambient noise conditions and information about how the different ambient noise conditions change as a function of time. For example, when a firework is launched the whistling noise is between 160 to 200 Hertz and the explosion is 16-25 Hertz. There is a predictable pattern for how long it takes for the firework to whistle and then explode. In another example, at a soccer game when a player scores a goal, the cheering follows a pattern of noise that becomes rapidly loud and then quickly attenuates. In yet another example, construction noise may function in a predictable pattern as identified by a machine-learning model.
In some embodiments, the training data also includes a set of presets that reduce or block the background noise associated with the different ambient noise conditions. The set of presets may be labelled for the types of ambient noise conditions and function as part of a supervised learning process for training the machine-learning model.
The preset module 306 generates feature embeddings from the training data that group features of the different noise conditions based on similarity. The machine-learning model is trained to recognize patterns in different ambient conditions such that the machine-learning model will be able to predict how different ambient conditions will behave in the future based on the patterns.
The machine-learning model receives training data that includes ambient noise conditions as input to the machine-learning model and outputs one or more training presets that correspond to each training ambient noise condition. The preset module 306 compares the one or more training presets to groundtruth data that describes the appropriate presets for the ambient noise condition. The preset module 306 calculates a loss function that reflects the difference between the one or more training presets and the groundtruth data. The preset module 306 modifies the parameters of the machine-learning model based on the loss function. The preset module 306 continues this process iteratively until the machine-learning model consistently outputs one or more presets with a minimal loss value.
In some embodiments, the machine-learning model is a neural network. Neural networks can learn and model the relationships between input data and output data that are nonlinear and complex. The neural network may include an input layer, a hidden layer, and an output layer. The input layer may receive input data, the hidden layer takes its input from the input layer or other hidden layers, and the output layer provides the final result of the data processing. The neural network may use a backpropagation algorithm that learns continuously by using corrective feedback loops to improve predictive analytics. The neural network may be a convolutional neural network where the hidden layers perform specific mathematical functions, such as summarizing or filtering.
In some embodiments, the machine-learning model may be used to generate one or more presets. The preset module 306 includes a machine-learning model that receives information about the background noise as inputs along with the one or more presets and outputs a determination that one or more presets correspond to the ambient noise condition. The training data may be labelled with one or more presets corresponding to users with different demographics (e.g., sex, age, auditory conditions, etc.). The preset module 306 may train the machine-learning model using supervised training data to receive background noise associated with an ambient noise condition as input and output the one or more presets.
In some embodiments, one or more of the presets in the set of presets are generated by a machine-learning model where the machine-learning model outputs the presets independently and/or the machine-learning model outputs the presets based on input from a user. For example, a user may select a button on a user interface to record a sample for a period of time of the ambient noise condition that the user wants reduced or blocked and the sample is used as input to the machine-learning model. The recording may be performed for a predetermined amount of time, identified by the user as starting and stopping, etc. The machine-learning model may output one or more presets for the ambient noise condition that modify adjustments in sound levels based on the patterns associated with the ambient noise condition.
In some embodiments, the preset module 306 receives feedback from a user. The user may provide user input to a user interface that changes one or more presets. For example, the user may change a preset for streaming audio to include noise cancellation. The preset module 306 updates the one or more presets based on the feedback. In some embodiments, the preset module 306 does not change the one or more presets until a threshold amount of feedback has been received. For example, the preset module 306 may not change a preset until the user has changed the preset a threshold of four times (or three, five, etc.).
In some embodiments, the user may provide user input for changing the presets using hardware that is part of the auditory device or the user device. For example, the user may provide a voice command that is detected by the microphone 341, a voice pick-up sensor (not illustrated) that identifies words or vibrations caused by a user speaking that instructs the auditory device to turn on or off one or more of the presets. In another example, the user may make a gesture that is detected by a motion sensor (not illustrated) that determines that the user is instructing one or more presets to be turned on or off. The preset module 306 may determine that the user input is feedback for modifying the machine-learning model if the user changes the settings more than a predetermined amount of time.
The method 500 may start with block 502. At block 502, a current location is received from a user device. In some embodiments, the current location is determined by hardware that is part of the auditory device or by information received from a user device. Block 502 may be followed by block 504.
At block 504, it is determined whether the current location exceeds a distance threshold from a previous location that is associated with the current preset. The distance threshold may be determined from a machine-learning model, based on the type of location, determined as a default setting, defined by user preferences, etc. Block 504 may be followed by block 506.
At block 506, responsive to the current location exceeding the distance threshold, it is determined whether one or more presets have been previously used in the current location by a user. Block 506 may be followed by block 508.
At block 508, responsive to determining that the one or more presets have been previously used in the current location by the user, the one or more presets are applied.
The method 600 may begin with block 602. At block 602, a current location of the user device is determined. In some embodiments, the user device determines the current location using GPS. In some embodiments, the user device determines a first current location using GPS and a second current location using Bluetooth®, Wi-Fi®, NFC, RFID, UWB, and/or infrared. Block 602 may be followed by block 604.
At block 604, it is determined whether the current location exceeds a distance threshold from a previous location that is associated with a current preset. Block 604 may be followed by block 606.
At block 606, responsive to the current location exceeding the distance threshold, it is determined whether the one or more presets have been previously used in the current location by a user. Block 606 may be followed by block 608.
At block 608, responsive to determining that the one or more presets have been previously used in the current location by the user, instructions are transmitted to the auditory device to apply the one or more presets.
The method 700 may start with block 702. At block 702 training data is provided data that includes different ambient noise conditions, information about how the different ambient noise conditions change as a function of time, and a set of presets that reduce or block the background noise associated with the different ambient noise conditions. Block 702 may be followed by block 704.
At block 704 feature embeddings are generated from the training data that group features of the different noise conditions based on similarity. Block 704 may be followed by block 706.
At block 706, training ambient noise conditions are provided as input to the machine-learning model. Block 706 may be followed by block 708.
At block 708, one or more training presets are output that correspond to each training ambient noise condition. Block 708 may be followed by block 710.
At block 710, the one or more training presets are compared to groundtruth data. Block 710 may be followed by block 712.
At block 712, parameters of the machine-learning model are modified based on a loss function that identifies a difference of the one or more training presets to the groundtruth data. In some embodiments, blocks 708, 710, and 712 are repeated until a stopping condition is reached, such as a loss value that falls below a threshold loss value.
Although the description has been described with respect to particular embodiments thereof, these particular embodiments are merely illustrative, and not restrictive.
Any suitable programming language can be used to implement the routines of particular embodiments including C, C++, Java, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines can execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different particular embodiments. In some particular embodiments, multiple steps shown as sequential in this specification can be performed at the same time.
Particular embodiments may be implemented in a computer-readable storage medium for use by or in connection with the instruction execution system, apparatus, system, or device. Particular embodiments can be implemented in the form of control logic in software or hardware or a combination of both. The control logic, when executed by one or more processors, may be operable to perform that which is described in particular embodiments.
Particular embodiments may be implemented by using a programmed general purpose digital computer, by using application specific integrated circuits, programmable logic devices, field programmable gate arrays, optical, chemical, biological, quantum or nanoengineered systems, components and mechanisms may be used. In general, the functions of particular embodiments can be achieved by any means as is known in the art. Distributed, networked systems, components, and/or circuits can be used. Communication, or transfer, of data may be wired, wireless, or by any other means.
It will also be appreciated that one or more of the elements depicted in the drawings/figures can also be implemented in a more separated or integrated manner, or even removed or rendered as inoperable in certain cases, as is useful in accordance with a particular application. It is also within the spirit and scope to implement a program or code that can be stored in a machine-readable medium to permit a computer to perform any of the methods described above.
A “processor” includes any suitable hardware and/or software system, mechanism or component that processes data, signals or other information. A processor can include a system with a general-purpose central processing unit, multiple processing units, dedicated circuitry for achieving functionality, or other systems. Processing need not be limited to a geographic location, or have temporal limitations. For example, a processor can perform its functions in “real time,” “offline,” in a “batch mode,” etc. Portions of processing can be performed at different times and at different locations, by different (or the same) processing systems. Examples of processing systems can include servers, clients, end user devices, routers, switches, networked storage, etc. A computer may be any processor in communication with a memory. The memory may be any suitable processor-readable storage medium, such as random-access memory (RAM), read-only memory (ROM), magnetic or optical disk, or other non-transitory media suitable for storing instructions for execution by the processor.
As used in the description herein and throughout the claims that follow, “a”, “an”, and “the” includes plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
Thus, while particular embodiments have been described herein, latitudes of modification, various changes, and substitutions are intended in the foregoing disclosures, and it will be appreciated that in some instances some features of particular embodiments will be employed without a corresponding use of other features without departing from the scope and spirit as set forth. Therefore, many modifications may be made to adapt a particular situation or material to the essential scope and spirit.