Automatic echo control
By detecting the connection of external devices and outputting reference sounds, and selecting the appropriate echo delay calculation process, the problem of inaccurate echo delay time in the prior art is solved, and more accurate echo control and improved user experience are achieved.
Patent Information
- Application Number
- CN202280101581.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-09
- Publication Date
- 2025-06-13
AI Technical Summary
Inaccurate estimates of echo delay time lead to poor user experience when existing audio products implement automatic echo control.
By detecting the connection to the external device and sending a signal to the external device to output a reference sound in the ultrasonic frequency range, a specific echo delay calculation process is selected based on whether the reference sound is detected, thereby determining a more accurate echo path delay time.
It realizes more accurate echo delay time measurement, improves the effect of automatic echo control, and improves the user experience.
Smart Images

Figure CN120153419A_ABST
Abstract
Description
I. Technical Field
[0001] The present disclosure generally relates to automatic echo control.
[0002] II. Related Art
[0003] As audio processing becomes more common and advanced, users of audio products expect more accurate (and thus more realistic) audio processing when performing audio functions such as voice calls using computing devices.
[0004] Some audio products include echo cancellation systems to reduce the echo that may be experienced during a voice call. For example, such echo may occur when the audio captured at a proximal microphone is used to generate the audio of the call. The audio of the call may be sent to a remote device for playback and may also be broadcast at a proximal speaker. The audio output at the proximal speaker may be captured by the proximal microphone and re-introduced into the audio of the call, creating a loop known as echo.
[0005] Many audio products use an echo cancellation process to reduce the impact of such echo. For example, the echo cancellation process may attempt to remove the proximal microphone signal audio component that results from the output of the proximal speaker from the signal transmitted to the remote end. For example, when a signal from the remote end is transmitted to the proximal speaker for broadcast, a copy of the remote signal may be delayed and subtracted from the audio captured by the microphone and transmitted to the remote end. In this example, the delay applied before subtracting the copy of the remote signal transmitted to the remote end is based on the echo delay time between the proximal speaker and the proximal microphone. The echo delay time depends on various factors and may vary based on the communication protocol used, the distance between the proximal speaker and the proximal microphone, etc. An inaccurate estimation of the echo delay time may result in a poor user experience. III. Summary of the Invention
[0006] In a particular aspect, a device includes one or more processors configured to detect a connection to an external device that includes a speaker. The one or more processors are further configured to send a signal to the external device that commands the external device to output a reference sound within an ultrasonic frequency range. The one or more processors are further configured to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
[0007] In a particular aspect, a method includes detecting a connection to an external device that includes a speaker. The method further includes sending a signal to the external device that commands the external device to output a reference sound within an ultrasonic frequency range. The method further includes selecting a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
[0008] In certain aspects, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to detect a connection to an external device including a speaker. The instructions, when executed by the processor, also cause the processor to send a signal to the external device that commands the external device to output a reference sound within an ultrasonic frequency range. The instructions, when executed by the processor, also cause the processor to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
[0009] In certain aspects, a device for communication includes components for detecting a connection to an external device including a speaker. The device also includes components for sending a signal to the external device that commands the external device to output a reference sound within an ultrasonic frequency range. The device also includes components for selecting a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
[0010] Other aspects, advantages, and features of the present disclosure will become apparent after reviewing the entire application including the following sections: the Brief Description of the Drawings, the Detailed Description, and the Claims. IV. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1 is a block diagram of an example of a system including a device configured to implement automatic echo control according to some examples of the present disclosure.
[0012] Figure 2 is a flowchart of an example of a method for implementing automatic echo control according to some examples of the present disclosure.
[0013] Figure 3 is a flowchart of another example of a method for implementing automatic echo control according to some examples of the present disclosure.
[0014] Figure 4 is an illustration of a specific example of a device according to some examples of the present disclosure Figure 1 of.
[0015] Figure 5 illustrates an example of an integrated circuit operable to implement automatic echo control according to some examples of the present disclosure.
[0016] Figure 6 illustrates a vehicle, exemplified as an automobile, incorporating aspects of a device according to some examples of the present disclosure Figure 1 of.
[0017] Figure 7 illustrates a head-mounted device incorporating aspects of a device according to some examples of the present disclosure Figure 1 of.
[0018] Figure 8 A wearable electronic device that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0019] Figure 9 A voice-controlled speaker system that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0020] Figure 10 A camera that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0021] Figure 11 A mobile device that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0022] Figure 12 Another vehicle, illustrated as a manned or unmanned aerial device, that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0023] Figure 13 An extended reality head-mounted device that illustrates aspects of a device in accordance with some examples of the present disclosure. Figure 1
[0024] V. DETAILED DESCRIPTION
[0025] Systems and methods for implementing automatic echo control can utilize an ultrasound-enabled device to determine a more accurate echo delay time. By integrating the more accurate echo delay time into the echo cancellation process, the systems and methods disclosed herein can achieve improved automatic echo control. For example, many current and future devices can be equipped to generate a reference sound within the ultrasonic frequency range. An electronic device (e.g., a smart phone) can be configured to send a signal to an external device having a speaker (e.g., an external speaker) that commands the external device to output a reference sound within the ultrasonic frequency range.
[0026] If the external device is capable of generating the reference sound and the electronic device receives the reference sound from the external device, the electronic device can select a particular echo delay calculation process from two or more echo delay calculation processes, where the particular echo delay calculation process is configured to determine an echo path delay time from the electronic device to the speaker based on data associated with the received reference sound. The echo cancellation process can then use the echo path delay time as an input to determine more accurate echo cancellation parameters.
[0027] If the external device cannot generate a reference sound and / or the electronic device does not receive the reference sound, the electronic device can select different echo delay calculation processes from two or more echo delay calculation processes. For example, the training model can be configured to determine the estimated echo delay time.
[0028] Specific aspects of the present disclosure are described below with reference to the accompanying drawings. In this specification, common features are designated by common reference numerals. As used herein, various terms are for the purpose of describing specific embodiments only and are not intended to limit the embodiments. For example, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. In addition, some features described herein are singular in some embodiments and plural in other embodiments. For illustration, Figure 1 a device 102 including one or more processors (e.g., Figure 1 processor 104 in ) is depicted, which indicates that in some embodiments, the device 102 includes a single processor 104, while in other embodiments, the device 102 includes multiple processors 104. For ease of reference, such features are generally introduced as "one or more" features and subsequently referred to in the singular form or an optional plural form (usually indicated by a term starting with "(s)") unless aspects related to multiple features in the feature are described.
[0029] In some of the drawings, multiple instances of a particular type of feature are used. Although these features are physically and / or logically different, the same reference numeral is used for each feature, and these different instances are distinguished by adding a letter to the reference numeral. When referring to a group or a type of features herein (e.g., when no particular feature among these features is referenced), the reference numeral is used without the distinguishing letter. However, when a particular feature among multiple features of the same type is referenced herein, the reference numeral is used together with the distinguishing letter. For example, referring to Figure 1 multiple external devices are illustrated and associated with reference numerals 126A and 126B. When referring to a particular test point among these test points (such as the first external device 126A), the distinguishing letter "A" is used. However, when referring to any of these external devices or referring to these external devices as a group, the reference numeral 126 is used without the distinguishing letter.
[0030] The terms "comprise", "comprises" and "comprising" may be used interchangeably herein with "include", "includes" or "including". Additionally, the term "wherein" may be used interchangeably with "where". As used herein, "exemplary" indicates an example, a specific implementation, and / or an aspect, and should not be construed as restrictive or indicative of a preference or a preferred specific implementation. As used herein, ordinal terms (e.g., "first", "second", "third", etc.) used to modify elements (such as structures, components, operations, etc.) do not themselves indicate any priority or order of the element relative to another element, but merely distinguish the element from another element having the same name (but using an ordinal term). As used herein, the term "set" refers to one or more specific elements among specific elements, and the term "plurality" refers to a plurality (e.g., two or more) of specific elements.
[0031] As used herein, "coupled" may include "communicatively coupled", "electrically coupled" or "physically coupled", and may also (or alternatively) include any combination thereof. Two devices (or components) may be directly or indirectly coupled (e.g., communicatively coupled, electrically coupled or physically coupled) via one or more other devices, components, wires, buses, networks (e.g., wired network, wireless network or a combination thereof), etc. As an illustrative, non-limiting example, two devices (or components) that are electrically coupled may be included in the same device or may be included in different devices, and may be connected via electronics, one or more connectors or inductive coupling. In some specific implementations, two devices (or components) that are communicatively coupled (such as electrically connected) may transmit and receive electrical signals (digital signals or analog signals) directly or indirectly via, for example, one or more wires, buses, networks, etc. As used herein, "directly coupled" means two devices that are coupled (e.g., communicatively coupled, electrically coupled or physically coupled) without an intermediate component.
[0032] In the present disclosure, terms such as "determine", "calculate", "estimate", "shift", "adjust", etc. may be used to describe how to perform one or more operations. It should be noted that such terms should not be construed as restrictive, and other techniques may be utilized to perform similar operations. Additionally, as mentioned herein, "generate", "calculate", "estimate", "use", "select", "access" and "determine" may be used interchangeably. For example, "generate", "calculate", "estimate" or "determine" a parameter (or signal) may refer to actively generating, estimating, calculating or determining the parameter (or signal), or may refer to using, selecting or accessing (such as by another component or device) a parameter (or signal) that has already been generated.
[0033] As used herein, the term "machine learning" should be understood to have any meaning within its ordinary and customary meaning in the fields of computer science and data science, such meanings including, for example, a process or technique by which one or more computers can learn to perform some operations or functions without being explicitly programmed to do so. As a typical example, machine learning can be used to enable one or more computers to analyze data to identify patterns in the data and generate results based on that analysis. For some types of machine learning, the generated results include data models (also referred to as "machine learning models" or simply "models"). Generally, a first data set is used to generate a model to facilitate the analysis of a second data set. For example, a first portion of a large amount of data can be used to generate a model that can be used to analyze the remaining portion of the large amount of data. As another example, a set of historical data can be used to generate a model that can be used to analyze future data. Examples of machine learning models include, but are not limited to, perceptrons, neural networks, support vector machines, regression models, decision trees, Bayesian models, Boltzmann machines, adaptive neuro-fuzzy inference systems, and combinations, ensembles, and variants of these and other types of models. Variants of neural networks include, for example, but are not limited to, prototype networks, autoencoders, transformers, self-attention networks, convolutional neural networks, deep neural networks, deep belief networks, etc. Variants of decision trees include, for example, but are not limited to, random forests, boosted decision trees, etc.
[0034] Since a machine learning model is generated by a computer based on input data, machine learning models can be discussed in terms of at least two different time windows (the creation / training phase and the runtime phase). During the creation / training phase, the computer creates, trains, adapts, validates, or otherwise configures the model based on input data (which is typically referred to as "training data" during the creation / training phase). Note that a trained model corresponds to software that has been generated and / or refined during the creation / training phase to perform a specific operation, such as classification, prediction, encoding, or other data analysis or data synthesis operations. During the runtime phase (or "inference" phase), the model is used to analyze input data to generate a model output. The content of the model output depends on the type of the model. For example, as a non-limiting example, a model can be trained to perform a classification task or a regression task. In some specific implementations, the model can be updated continuously, periodically, or occasionally, in which case the training time and the runtime can be interleaved, or one version of the model can be used for inference while a copy is updated, and then the updated copy can be deployed for inference.
[0035] Figure 1FIG. 0 is a block diagram of an example of a system 100 including a device 102 configured to implement automatic echo control according to some examples of the present disclosure. In some specific implementations, the device 102 includes one or more processors 104 coupled to a memory 106 that stores instructions 116 for execution by the processors 104. The processors 104 are configured to detect a connection to an external device 126 that includes a speaker 128, as described in more detail below. The processors 104 are also configured to send a signal 122 to the external device 126. The signal 122 may include audio data representing a sound to be output by the speaker 128 of the external device 126. For example, the sound may include a remote voice during a voice call. As another example, during the configuration of an echo cancellation process, the signal 122 may command the external device 126 to output a reference sound 124 within an ultrasonic frequency range, as described in more detail below. The processors 104 are also configured to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound 124 is detected, as described in more detail below.
[0036] In some specific implementations, the device 102 includes or corresponds to an electronic device that includes a processor 104 coupled to a memory 106. For example, the device 102 may include a voice-activated device, an audio device, a wireless speaker and a voice-activated device, a portable electronic device, an automobile, a vehicle, a computing device, a communication device, an Internet of Things (IoT) device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a smart speaker, a mobile computing device, a mobile communication device, a smart phone, a cellular phone, a laptop computer, a computer, a tablet device, a personal digital assistant, a display device, a television, a game console, an appliance, a music player, a radio, a digital video player, a digital video disc (DVD) player, a tuner, a camera, a navigation device, any other suitable electronic device that can support voice and / or Voice over Internet Protocol (“VOIP”) calls and has a microphone and an external speaker, or any combination thereof.
[0037] In some specific implementations, the processors 104 are configured to detect a connection to the external device 126. The external device 126 may include an electronic device that includes a speaker 128. For example, the external device 126 may include another electronic device; a portable speaker; an external non-portable speaker; an electronic device configured to output audio (e.g., an electronic device incorporated into another device, such as a vehicle, a virtual and / or extended reality device, a smart speaker, a camera, a wearable electronic device, an unmanned aerial vehicle, etc.); or some combination thereof.
[0038] In certain aspects, the connection between device 102 and external device 126 may include a High-Definition Multimedia Interface (“HDMI”) connection. In certain aspects, processor 104 may be configured to detect that device 102 has been coupled to external device 126 by an HDMI connection. For an illustrative example of an HDMI connection, the echo path delay can range from a few milliseconds to several hundred milliseconds, depending on the nature of external device 126, device 102, the quality of the connection, the specific HDMI codec implemented at external device 126, environmental factors, and the like.
[0039] Some systems use pre-configured and / or preset delay values to perform echo cancellation operations. However, when speaker 128 is part of external device 126 (rather than integrated within device 102), the echo delay path can vary within a relatively large range of values. Thus, pre-configured and / or preset delay values may be ineffective for accurately reducing echo. As an illustrative example, a device coupled to an external speaker via an HDMI connection may be configured to use a default echo delay value of twenty milliseconds during a call for echo cancellation. If the actual echo delay on the HDMI connection is 200 milliseconds, the echo path delay process will have an initial error of 180 milliseconds. This can result in an echo residue problem at the far end of the call.
[0040] In the same or alternative certain aspects, device 102 may be coupled to external device 126 by another type of connection. In certain aspects, device 102 may be coupled to external device 126 via a wireless connection. For example, the wireless connection may include a connection, a connection, or a combination thereof (Bluetooth is a registered trademark of the Bluetooth SIG, Inc., and Wi-Fi is a registered trademark of the Wi-Fi Alliance).
[0041] In some embodiments, processor 104 is configured to cause modem 140 to send signal 122 to external device 126. Signal 122 may include, for example, audio data representing far-end audio or instructions that cause external device 126 to output a reference sound 124 within the ultrasonic frequency range. In some aspects, external device 126 includes a modem 134 configured to receive signal 122 from device 102. Modem 134 may be configured to convey some or all of signal 122 to audio processor 130 of external device 126 for processing by one or more audio codecs 136.
[0042] In some specific implementations, the audio codec 136 is configured to decode the signal 122 to generate audio for output by the speaker 128 of the external device 126. For example, the audio codec 136 is configured to generate an analog audio signal associated with a voice call. The speaker 128 may be configured to convert these signals into sound. In some aspects, one or more of the codecs 136 of the external device 126 are configured to decode the signal 122 to generate a reference sound 124. In the same or alternative aspects, one or more of the codecs 136 of the external device 126 are configured to receive the signal 122 but are not capable of generating the reference sound 124. For example, a particular codec is not configured to decode a particular type of signal (e.g., a signal representing ultrasound), is not configured to generate an audio signal associated with ultrasound, or some combination thereof.
[0043] Figure 1 Two examples of the external device 126 are illustrated, including a first exemplary external device 126A and a second exemplary external device 126B. The first exemplary external device 126A includes a particular codec 136A that is configured to decode the signal 122 transmitted by the device 102 to output a reference sound 124 (e.g., during a setup process), and to decode the signal 122 transmitted by the device 102 to output an in-use sound 138 (e.g., during a call). The reference sound 124 includes, for example, sounds in the ultrasonic frequency range used by the device 102 to determine the echo path delay. The in-use sound 138 may include, for example, the far-end audio received by the device 102 from a remote device during a call. For illustration, the voice of the far-end user of a call may be broadcast via the speaker 128 (as the in-use sound 138) for the near-end user of the call to hear.
[0044] In Figure 1 the example illustrated, the second exemplary external device 126B includes a particular codec 136B that is not operable to generate the reference sound 124. Thus, the second exemplary external device 126B is illustrated as outputting the in-use sound 138 but not the reference sound 124.
[0045] The microphone 107 of device 102 is configured to generate audio data representative of the proximal audio environment of device 102. For example, the audio data may include data associated with the voice of the proximal user during a voice call. During a voice call, the audio data representative of the proximal audio environment is sent to a remote device (e.g., via Voice over Internet Protocol packets). The sound captured by microphone 107 during a voice call may include audio output by an external device 126, such as in-use sound 138 and other sounds in the proximal audio environment. For example, during a voice call, in addition to capturing the voice of the proximal user, microphone 107 may also capture some or all of the in-use sound 138 output by speaker 128. In this example, if the in-use sound 138 includes a component based on the remote audio, the echo cancellation controller 112 of device 102 attempts to remove the component based on the remote audio from the audio data sent to the remote end to reduce the echo experienced at the remote end.
[0046] In some specific implementations, the processor 104 may be configured to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound 124 is detected. In some aspects, the echo cancellation controller 112 includes an echo delay calculation process selector 108 that is configured to select a particular echo delay calculation process from two or more echo delay calculation processes. In a particular aspect, the echo cancellation controller 112 further includes an echo delay controller 113 that includes a first echo delay calculator 118 and a second echo delay calculator 120. The first echo delay calculator 118 is configured to determine a first echo delay time using a first echo delay calculation process, and the second echo delay calculator 120 is configured to determine a second echo delay time using a second echo delay calculation process. For example, the echo delay calculation process selector 108 may select the first echo delay calculation process in response to receiving the reference sound 124 from the external device 126, and / or select the second echo delay calculation process in response to not receiving the reference sound 124 from the external device 126.
[0047] In some specific implementations, the processor 104 is configured to communicate data associated with the received reference sound 124 to the echo cancellation controller 112. For example, the processor 104 may be configured to communicate data indicating the amount of time elapsed from the generation command for the external device 126 to output the reference sound 124 to the time when the reference sound 124 is received at the microphone 107. As an additional example, the processor 104 may be configured to communicate data indicating the signal strength or other parameters associated with the received reference sound 124.
[0048] In certain aspects, the first echo delay calculator 118 is configured to determine the echo path delay time between the device 102 and the speaker 128 based at least on data associated with the received reference sound 124. In the same or alternative certain aspects, the second echo delay calculator 120 is configured to estimate the echo delay in response to the device 102 not receiving the reference sound 124 from the external device 126. For example, the second echo delay calculator 120 may use a trained model in one or more trained models to determine the estimated echo delay time. In this example, the device 102 may also include one or more trained models.
[0049] In some embodiments, the processor 104 is configured to provide the echo path delay time from the first echo delay calculator 118, the estimated echo delay time from the second echo delay calculator 120, or both as inputs to the echo cancellation process. In some aspects, the echo cancellation process may include a second trained model in one or more trained models. In certain aspects, the second trained model may be configured to determine one or more echo cancellation parameters 132 based on the echo path delay time, the estimated echo delay time, or both. The echo cancellation parameters 132 may include, for example, an echo cancellation time. In this example, the echo cancellation time indicates the delay between receiving a particular audio from the far end and removing the audio component based on the particular audio from the audio data generated by the microphone 107. As another example, the echo cancellation parameters 132 may include other parameters associated with echo cancellation, such as an attenuation value associated with buffering audio data for use in echo cancellation.
[0050] In operation, the device 102 may operate to subtract the component of the far-end audio from the audio data captured by the microphone 107 to reduce the echo at the far end due to the device 102 outputting audio from the far end using the external device 126. For example, during a call, the microphone 107 captures proximal audio, which may include a component of the far-end audio present in the in-use sound 138. In this example, the echo cancellation controller 112 performs an echo cancellation operation to modify the proximal audio to remove the far-end audio component. By way of illustration, the echo cancellation controller 112 buffers the audio from the far end for a period corresponding to the echo cancellation time and then subtracts the far-end audio from the proximal audio. The echo cancellation time is determined (e.g., based on the output of the first echo delay calculator 118 and / or the second echo delay calculator 120) such that the buffered far-end audio is subtracted from the portion of the proximal audio data that includes the far-end audio component present in the in-use sound 138.
[0051] If the external device 126 is capable of outputting a reference sound 124, the first echo delay calculator 118 can use a relatively efficient (in terms of computational resources used) process to calculate a highly accurate echo path delay time. Additionally, since the reference sound 124 is inaudible to the user, the external device 126 can output the reference sound 124 without disturbing the user at the proximal end. For illustration, the user at the proximal end may not be aware that the external device 126 outputs the reference sound 124 during the setup of a call or at the start of a call. However, if the external device 126 is not capable of outputting the reference sound 124, or for some other reason, the device 102 does not receive the reference sound 124 from the external device 126, the second echo delay calculator 120 can use a trained machine learning model to estimate the echo path delay time. The estimated echo delay time generated by the trained machine learning model can be as accurate as the echo path delay time determined by the first echo delay calculator 118; however, using the trained machine learning model to determine the estimated echo delay time is slightly less efficient (in terms of computational resources used) and may take time to converge to an acceptable echo delay time estimate. The far-end user may experience some echo before the trained machine learning model converges to an acceptable echo delay time estimate.
[0052] Figure 2 is a flowchart of an example of a method 200 for implementing automatic echo control according to some examples of the present disclosure. The method 200 can be initiated, executed, or controlled by one or more processors that execute instructions (such as the Figure 1 processor 104 that executes instructions from the memory 106).
[0053] In some specific implementations, the method 200 can optionally include detecting a connection to an external device including a speaker at block 202. For example, Figure 1 the processor 104 can detect a connection to one or both of the external devices 126 including the speaker 128, as described in more detail above with reference to Figure 1 more detail.
[0054] In Figure 2 an example, the method 200 can optionally include sending a signal to the external device at block 204 that commands the external device to output a reference sound within the ultrasonic frequency range. For example, Figure 1 the processor 104 can send a signal 122 to the external device 126, and the signal 122 can command the external device 126 to output a reference sound 124 within the ultrasonic frequency range (e.g., 20 kHz - 22 kHz).
[0055] In Figure 2In an example, method 200 may optionally include selecting a particular echo delay calculation process from two or more echo delay calculation processes at block 206 based at least on whether a reference sound is detected. For example, Figure 1 the processor 104 of
[0056] may select a particular echo delay calculation process between a first echo delay calculation process and a second echo delay calculation process based at least on whether a reference sound 124 is detected.
[0057] Although method 200 is illustrated as including a certain number of operations, more, fewer, and / or different operations may be included in method 200 without departing from the scope of the present disclosure. For example, method 200 may include selecting a particular echo delay calculation process from more than a first echo delay calculation process and a second echo delay calculation process. As an additional example, method 200 may vary according to the number of external devices 126 coupled to device 102.
[0058] In addition, although the examples provided above in illustrating method 200 include Figure 1 the processor 104 of Figure 1 performing the operations of method 200, some or all of the operations of method 200 may be performed by any suitable computing device. For example, selecting a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected (e.g., as described above with reference to block 206) may be performed by one or more servers in communication with
[0059] Figure 3 is a flowchart of another example of a method 300 for implementing automatic echo control according to some examples of the present disclosure. Method 300 may be initiated, executed, or controlled by one or more processors that execute instructions (such as the Figure 1 processor 104 that executes instructions from memory 106).
[0060] In Figure 3 an example, method 300 may optionally include detecting a connection to an external device that includes a speaker at block 302. For example,Figure 1 The processor 104 may detect a connection to one or more external devices among the external devices 126 including the speaker 128.
[0061] In Figure 3 the example of, method 300 may optionally include sending a signal to an external device at block 304, where the signal commands the external device to output a reference sound within an ultrasonic frequency range. For example, Figure 1 the processor 104 of may send a signal 122 to one or more of the external devices 126. In this example, the signal 122 commands the external device 126 to output a reference sound 124 within an ultrasonic frequency range (e.g., 20 kHz - 22 kHz).
[0062] In Figure 3 the example of, method 300 may optionally include determining whether a reference sound is received at block 308. For example, Figure 1 the processor 104 of may determine whether the reference sound 124 is received from the external device 126 at the device 102. In response to receiving the reference sound, method 300 may proceed to block 310, where method 300 includes communicating data associated with the received reference sound to the echo delay controller. For example, Figure 1 the processor 104 of may be configured to communicate data associated with the received reference sound 124 to the echo delay controller 113 in the case where the reference sound 124 is received at the device 102.
[0063] After communicating the data associated with the received reference sound to the echo delay controller, method 300 may optionally include selecting a first echo delay calculation process among two or more echo delay calculation processes at block 312, where the first echo delay calculation process includes determining an echo path delay time by the echo delay controller. For example, Figure 1 the processor 104 of may be configured to select a first echo delay calculation process among two or more echo delay calculation processes (e.g., a first echo delay calculation process and a second echo delay calculation process), where the first echo delay calculation process includes determining an echo path delay time of the external device 126 by the echo delay controller 113. After selecting the first echo delay calculation process, method 300 may optionally proceed to 316, as described in more detail below.
[0064] Referring again to block 308, in response to not receiving the reference sound 124 from the external device, method 300 may optionally include selecting a second echo delay calculation process among two or more echo delay calculation processes at block 314, where the second echo delay calculation process includes using a trained model to determine an estimated echo delay time. For example, Figure 1The processor 104 may be configured to select a second echo delay calculation process among two or more echo delay calculation processes, where the second echo delay calculation process includes using a trained model to determine an estimated echo delay time. After selecting the second echo delay calculation process, method 300 may optionally proceed to 316.
[0065] In Figure 3 an example of, method 300 includes providing the echo path delay time, the estimated echo delay time, or both as an input to a second trained model to determine an echo cancellation parameter at block 316. For example, Figure 1 the processor 104 may be configured to provide the echo path delay time, the estimated echo delay time, or both as an input to a second trained model to determine an echo cancellation parameter 132.
[0066] Although method 300 is illustrated as including a certain number of operations, more, fewer, and / or different operations may be included in method 300 without departing from the scope of the present disclosure. For example, method 300 may include selecting a particular echo delay calculation process from more than a first echo delay calculation process and a second echo delay calculation process. As an additional example, method 300 may vary according to the number of external devices 126 coupled to device 102.
[0067] In some specific implementations, method 300 may repeat the operations of one or more of blocks 302 - 316 periodically, occasionally, and / or continuously. For example, method 300 may attempt to detect a connection to external device 126 every few milliseconds to account for new connections. As an additional example, method 300 may attempt to send signal 122 every few milliseconds to account for modifications to the connection between device 102 and external device 126, miscommunications, etc.
[0068] Furthermore, although the examples provided above in illustrating method 300 include Figure 1 the processor 104 of performing the operations of method 300, some or all of the operations of method 300 may be performed by any suitable computing device. For example, selecting a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected (e.g., as described above with reference to blocks 308, 310, 314) may be performed by one or more servers communicating with Figure 1 the processor 104 of.
[0069] Although the examples provided above describe Figure 1 the processor 104 of performing Figures 2 to 3 the operations of methods 200, 300 of and Figures 1 to 13The various operations described, but some or all of the operations may be performed by any suitable computing device. For example, the first echo delay calculation process and the second echo delay calculation process may be performed by separate computing devices.
[0070] Figure 4 is a block diagram of a specific example 400 of the device 102 that illustrates some examples disclosed according to the present subject matter. In various specific embodiments, the device 102 may have more or fewer components than Figure 1 illustrated. Figure 4
[0071] In a specific embodiment, the device 102 includes a processor 404 (e.g., a central processing unit (CPU)). The device 102 may include one or more additional processors 406 (e.g., one or more digital signal processors (DSPs)). The processor 404, the additional processor 406, or both may correspond to Figure 1 one or more of the processors 104. For example, in Figure 4 , the processor 404 includes an echo delay controller 113, an echo cancellation controller 112, or a combination thereof.
[0072] In Figure 4 , the device 402 also includes a memory 106 and a codec 424. The memory 106 may include a non-transitory computer-readable medium storing instructions 460 that can be executed by the processor 404 and / or the additional processor 406 to implement one or more of the operations referred to Figures 1 to 3 above. In an example, the memory 106 corresponds to a non-transitory computer-readable medium storing instructions 460 that can be executed by one or more processors 404, and the instructions 460 include or correspond to an echo cancellation controller 112, an echo delay controller 113, one or more training models, or a combination thereof (e.g., capable of being executed by a processor to perform operations contributing to the echo cancellation controller, the echo delay controller, the one or more training models, or a combination thereof). The memory 106 may also store Figure 1 the echo cancellation parameters 132.
[0073] In Figure 4 , an input component 462 (including, in some configurations, Figure 1 the microphone 107) and / or an output component 464 may be coupled to the codec 424. In Figure 4 In the example illustrated, CODEC 424 includes a digital-to-analog converter (DAC 426) and an analog-to-digital converter (ADC 428). In a particular embodiment, the codec 424 receives an analog signal (e.g., reference sound 124) from the input component 462, converts the analog signal into a digital signal using the ADC 428, and provides the digital signal to the processor 404. In a particular embodiment, the processor 404 provides a digital signal to the codec 424, and the codec 424 converts the digital signal into an analog signal using the DAC 426 and provides the analog signal to the output component 464.
[0074] In Figure 4 it, device 402 further includes a display 420 coupled to the display controller 410. In some embodiments, device 402 further includes a modem 412 coupled to the transceiver 414. In Figure 4 it, the transceiver 414 is coupled to an antenna 416 to enable wireless communication with other devices, such as a remote computing device 418 (e.g., external device 126). In other examples, the transceiver 414 is additionally or alternatively coupled to a communication port (e.g., an Ethernet port) to enable wired communication with other devices (such as the remote computing device 418).
[0075] In a particular embodiment, device 402 is included in a system-in-package or system-on-chip device 402. In a particular embodiment, the memory 106, the processor 404, the additional processor 406, the display controller 410, the codec 424, the modem 412, and the transceiver 414 are included in the system-in-package or system-on-chip device 402. In a particular embodiment, a power supply 430 is coupled to the system-in-package or system-on-chip device 402. Additionally, in a particular embodiment, as Figure 4 illustrated, the display 420, the input component 462, the output component 464, the antenna 416, and the power supply 430 are external to the system-in-package or system-on-chip device 402. In a particular embodiment, each of the display 420, the input component 462, the output component 464, the antenna 416, and the power supply 430 may be coupled to a component (such as an interface or a controller) of the system-in-package or system-on-chip device 402.
[0076] Device 402 may include, correspond to, or be included within: a voice-activated device, an audio device, a wireless speaker and voice-activated device, a portable electronic device, an automobile, a vehicle, a computing device, a communication device, an Internet of Things (IoT) device, a virtual reality (VR) device, an augmented reality (AR) device, a mixed reality (MR) device, a smart speaker, a mobile computing device, a mobile communication device, a smart phone, a cellular phone, a laptop computer, a computer, a tablet device, a personal digital assistant, a display device, a television, a game console, an appliance, a music player, a radio, a digital video player, a digital video disc (DVD) player, a tuner, a camera, a navigation device, or any combination thereof. In certain aspects, processor 404, additional memory 406, or a combination thereof is included in an integrated circuit.
[0077] Figure 5 Examples of integrated circuits operable to implement automatic echo control in accordance with some examples of the present disclosure are illustrated. Figure 5 A particular implementation 500 of device 102 is depicted as an integrated circuit 502 including one or more processors 104, which in some particular implementations may include Figure 1 an echo cancellation controller 112. Integrated circuit 502 also includes an audio input 504 (such as one or more bus interfaces) to enable receipt of audio data 508 for processing. In some particular implementations, audio data 508 is data associated with a reference sound 124, an in-use sound 138, or some combination thereof received by device 102 via microphone 107. Additionally, during a call, audio data 508 may include the far-end audio of the call. Integrated circuit 502 also includes a signal output 506 (such as a bus interface) to enable transmission of an output signal, such as signal 122. Integrated circuit 502 is capable of implementing improved automatic echo control as a component in a system including a microphone, such as Figure 11 a mobile phone or tablet device as depicted, Figure 7 a head-mounted device as depicted, Figure 8 a wearable electronic device as depicted, Figure 9 a voice-controlled speaker system as depicted, Figure 10 a camera as depicted, Figure 13 a virtual reality, mixed reality, augmented reality head-mounted device, or a vehicle as depicted in Figure 6 or Figure 12 as depicted.
[0078] Figure 6 Examples of particular implementations 600 are illustrated in which device 102 corresponds to or is integrated within a vehicle 602 (illustrated as an automobile). In some aspects, one or more processors including echo cancellation controller 112 (e.g.,Figure 1 The processor 104) is integrated in the vehicle 602. The vehicle 602 also includes a microphone 107. The microphone 107 is positioned to capture proximal audio from an operator of the vehicle 602, a passenger of the vehicle 602, an external device within, integrated into, or proximate to the vehicle 602, or some combination thereof. During operation, the microphone 107 may capture sounds within the vehicle 602, which may include Figure 1 reference sound 124 from an external device, in-use sound 138 from an external device, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay calculation process based at least on whether the reference sound 124 is detected.
[0079] In the same or an alternative aspect, the vehicle 602 may be configured to act as an external device 126 coupled to an electronic device (e.g., Figure 1 device 102 or another device as referenced below Figures 7 to 13 described). For example, the vehicle 602 may include a speaker 128 to generate Figure 1 reference sound 124, in-use sound 138, or some combination thereof.
[0080] Figure 7 Embodiment 700 is depicted in which the device 102 includes a headset device 702. The headset device 702 includes a microphone 107. Figure 1 Components of the processor 104 (including the echo cancellation controller 112) are integrated in the headset device 702. In a particular example, the echo cancellation controller 112 operates to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture speech from a user of the headset device 702, an external device within, integrated into, or proximate to the headset device 702, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay process based at least on whether Figure 1 reference sound 124 is detected.
[0081] Figure 8 Embodiment 800 is depicted in which the device 102 includes a wearable electronic device 802 (illustrated as a "smartwatch"). The wearable electronic device 802 includes a microphone 107. Figure 1The components of the processor 104, including the echo cancellation controller 112, are integrated in the wearable electronic device 802. The wearable electronic device 802 also includes a display screen 804. In a particular example, the echo cancellation controller 112 operates to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of the user of the wearable electronic device 802, within the wearable electronic device 802, an external device integrated into or proximate to the wearable electronic device, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay process based at least on whether Figure 1 the reference sound 124 is detected.
[0082] In the same or an alternative aspect, the wearable electronic device 802 may be configured to act as an external device 126 coupled to an electronic device (e.g., another device as referred to in Figures 6 to 7 , Figures 9 to 13 ). For example, the wearable electronic device 802 may include a speaker 128 to generate Figure 1 the reference sound 124, the in-use sound 138, or some combination thereof.
[0083] Figure 9 900 is a specific implementation in which the device 102 includes a wireless speaker and a voice-activated device 902. The wireless speaker and the voice-activated device 902 may have a wireless network connection and be configured to perform auxiliary operations. Figure 9 The wireless speaker and the voice-activated device 902 of Figure 1 include a processor 104 that includes an echo cancellation controller 112. Additionally, the wireless speaker and the voice-activated device 902 include a microphone 107. In a particular example, the echo cancellation controller 112 operates to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of the user of the wireless speaker and the voice-activated device 902, within the wireless speaker and the voice-activated device 902, an external device integrated into or proximate to the wireless speaker and the voice-activated device, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay process based at least on whether Figure 1 the reference sound 124 is detected.
[0084] In the same or an alternative aspect, the wireless speaker and the voice-activated device 902 may be configured to act as an external device 126 coupled to an electronic device (e.g., another device as referred to in Figures 6 to 8 , Figures 10 to 13 ). For example, the wireless speaker and the voice-activated device 902 may include a speaker 128 to generateFigure 1 a reference sound 124, an in-use sound 138, or some combination thereof.
[0085] Figure 10 depicts a specific implementation 1000 in which the device 102 is integrated into or includes a portable electronic device corresponding to the camera 1002. In Figure 10 this example, the camera 1002 includes a microphone 107. Figure 1 components of the processor 104 (including the echo cancellation controller 112) are integrated in the camera 1002. In a specific example, the echo cancellation controller 112 operates to select a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of a user of the camera 1002, within the camera 1002, an external device integrated into or proximate to the camera, or some combination thereof. The echo cancellation controller 112 may select a specific echo delay process based at least on whether Figure 1 the reference sound 124 is detected.
[0086] In the same or an alternative aspect, the camera 1002 may be configured to act as an external device 126 coupled to an electronic device (e.g., another device as described with reference to Figures 6 to 9 、 Figures 11 to 13 ). For example, the camera 1002 may include a speaker 128 to generate Figure 1 the reference sound 124, the in-use sound 138, or some combination thereof.
[0087] As an illustrative, non-limiting example, Figure 11 depicts a specific implementation 1100 in which the device 102 includes a mobile device 1102 (such as a phone or a tablet). The mobile device 1102 includes a microphone 107 and a display screen 1104. Figure 1 components of the processor 104 (including the echo cancellation controller 112) are integrated in the mobile device 1102. In a specific example, the echo cancellation controller 112 operates to select a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of a user of the mobile device 1102, within the mobile device 1102, an external device integrated into or proximate to the mobile device, or some combination thereof. The echo cancellation controller 112 may select a specific echo delay process based at least on whether Figure 1 the reference sound 124 is detected.
[0088] In the same or an alternative aspect, the mobile device 1102 may be configured to act as an external device coupled to an electronic device (e.g., another device as described with reference to Figures 6 to 10 、 Figures 12 to 13an external device 126 of the other device). For example, the mobile device 1102 may include a speaker 128 to generate Figure 1 a reference sound 124, an in-use sound 138, or some combination thereof.
[0089] Figure 12 Depicts a specific implementation 1200 in which the device 102 corresponds to or is integrated within a vehicle 1202 (illustrated as a manned or unmanned aerial device (e.g., a package delivery drone)). The vehicle 1202 includes a microphone 107. Figure 1 Components of the processor 104 (including the echo cancellation controller 112) are integrated within the vehicle 1202. In a particular example, the echo cancellation controller 112 operates to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of a user of the vehicle 1202, an external device within, integrated into, or proximate to the vehicle 1202, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay process based at least on whether Figure 1 a reference sound 124 is detected.
[0090] In the same or an alternative aspect, the vehicle 1202 may be configured to act as an external device 126 coupled to an electronic device (e.g., another device as referenced Figures 6 to 11 、 Figure 13 ). For example, the vehicle 1202 may include a speaker 128 to generate Figure 1 a reference sound 124, an in-use sound 138, or some combination thereof.
[0091] Figure 13 Depicts a specific implementation 1300 in which the device 102 includes a portable electronic device corresponding to an extended reality headset 1302 (e.g., a virtual reality headset, a mixed reality headset, an augmented reality headset, or a combination thereof). The extended reality headset 1302 includes a microphone 107. Figure 1 Components of the processor 104 (including the echo cancellation controller 112) are integrated within the extended reality headset 1302. In a particular aspect, a visual interface device is positioned in front of the user's eyes to enable the display of augmented reality, mixed reality, or virtual reality images or scenes to the user when wearing the extended reality headset 1302.
[0092] In a particular example, the echo cancellation controller 112 operates to select a particular echo delay calculation process from among two or more echo delay calculation processes based at least on whether a reference sound is detected. For example, the microphone 107 may capture the voice of a user of the extended reality headset 1302, an external device within the extended reality headset 1302, integrated into the extended reality headset, or proximate to the extended reality headset, or some combination thereof. The echo cancellation controller 112 may select a particular echo delay process based at least on whether Figure 1 the reference sound 124 is detected.
[0093] In the same or an alternative aspect, the extended reality headset 1302 may be configured to act as an external device 126 coupled to an electronic device (e.g., another device as described in reference Figures 6 to 12 ). For example, the extended reality headset 1302 may include a speaker 128 to generate Figure 1 the reference sound 124, the in-use sound 138, or some combination thereof.
[0094] Devices (e.g., Figures 1 to 13 those previously mentioned) may have Bluetooth and Wi-Fi capabilities, or other wireless means to communicate with each other. Networked devices may have wireless means to communicate with each other and may also be connected based on different cellular communication systems (such as Long Term Evolution (LTE) systems, Code Division Multiple Access (CDMA) systems, Global System for Mobile Communications (GSM) systems, Wireless Local Area Network (WLAN) systems, or some other wireless system). CDMA systems may implement Wideband CDMA (WCDMA), CDMA 1X, Evolution-Data Optimized (EVDO), Time Division-Synchronous CDMA (TD-SCDMA), or some other version of CDMA. As used herein, "wireless" refers to one or more of the above-listed technologies, one or more other technologies capable of transmitting information via a means other than wired, or a combination thereof.
[0095] Wireless technologies such as ("Bluetooth") and wireless fidelity "Wi-Fi" or variants of Wi-Fi (e.g., Wi-Fi Direct) enable high-speed communication between mobile electronic devices (e.g., cellular phones, watches, headsets, remote controls, etc.) within a relatively short distance (e.g., 100 to 200 meters or less, depending on the specific wireless technology). Wi-Fi is often used to connect and exchange information between devices with an access point (e.g., a router) and Wi-Fi-enabled devices. Examples of such devices include smart TVs, laptop devices, thermostats, personal assistant devices, home automation devices, wireless speakers, and other similar devices. Similarly, Bluetooth is also used to couple devices together. Examples of such devices are mobile phones, computers, digital cameras, wireless headset devices, keyboards, mice, or other input peripheral devices, and similar devices.
[0096] In connection with the specific implementation described, a device includes components for detecting a connection to an external device including a speaker. For example, the components for detecting a connection to an external device 126 including a speaker 128 include device 102, processor 104, one or more other circuits or components configured to detect a connection to the external device, or any combination thereof.
[0097] The device further includes components for sending a signal to the external device that commands the external device to output a reference sound within the ultrasonic frequency range. For example, the components for sending a signal 122 to the external device 126 include device 102, processor 104, processor 406, processor 404, modem 140, modem 412, transceiver 414, antenna 416, one or more other circuits or components configured to send a signal to the external device, or any combination thereof, the signal 122 commanding the external device 126 to output a reference sound 124 within the ultrasonic frequency range.
[0098] The device further includes components for selecting a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected. For example, the components for selecting a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound 124 is detected include device 102, processor 104, echo delay calculation process selector 108, one or more other circuits or components configured to select a specific echo delay calculation process, or any combination thereof.
[0099] Those skilled in the art will also appreciate that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the specific implementations disclosed herein can be implemented as electronic hardware, computer software executed by a processor, or combinations of both. The various illustrative components, blocks, configurations, modules, circuits, and steps have been described generally above in terms of their functionality. Whether such functionality is implemented as hardware or processor-executable instructions depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in varying ways for each particular application, and such implementation decisions will not be interpreted as causing a departure from the scope of the present disclosure.
[0100] The steps of a method or algorithm described in connection with the specific implementations disclosed herein can be embodied directly in hardware, in a software module executed by a processor, or in a combination of both. The software module can reside in random access memory (RAM), flash memory, read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), registers, a hard disk, a removable disk, a compact disc read only memory (CD-ROM), or any other form of non-transitory storage medium known in the art. The exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In an alternative, the storage medium can be integral to the processor. The processor and the storage medium can reside in an application specific integrated circuit (ASIC). The ASIC can reside in a computing device or a user terminal. In an alternative, the processor and the storage medium can reside as discrete components in a computing device or a user terminal.
[0101] Specific aspects of the present disclosure are described below in a first set of related clauses:
[0102] According to clause 1, a device includes one or more processors. The one or more processors are configured to detect a connection to an external device that includes a speaker. The one or more processors are also configured to send a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range. The one or more processors are also configured to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on detecting the reference sound.
[0103] Clause 2 includes the device according to clause 1, wherein the device includes a smart phone.
[0104] Clause 3 includes the device according to Clause 1 or Clause 2, wherein the one or more processors are further configured to receive the reference sound from the external device. The one or more processors are also configured to communicate data associated with the received reference sound to the echo delay controller.
[0105] Clause 4 includes the device according to Clause 3, wherein a first echo delay calculation process among the two or more echo delay calculation processes includes determining, by the echo delay controller, an echo path delay time from the external device of the device to the speaker based at least on the data associated with the received reference sound.
[0106] Clause 5 includes the device according to Clause 3 or Clause 4, wherein the one or more processors are configured to select a first echo delay calculation process among the two or more echo delay calculation processes in response to receiving the reference sound from the external device.
[0107] Clause 6 includes the device according to any one of Clauses 1 to 5, wherein a second echo delay calculation process among the two or more echo delay calculation processes includes determining an estimated echo delay time using a training model.
[0108] Clause 7 includes the device according to any one of Clauses 1 to 6, wherein the one or more processors are configured to select a second echo delay calculation process among the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
[0109] Clause 8 includes the device according to any one of Clauses 1 to 7, wherein the one or more processors are further configured to provide an output of the first echo delay calculation process among the two or more echo delay calculation processes, an output of the second echo delay calculation process among the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
[0110] Clause 9 includes the device according to any one of Clauses 1 to 8, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
[0111] Clause 10 includes the device according to any one of Clauses 1 to 9, wherein the connection includes a High-Definition Multimedia Interface (HDMI) connection.
[0112] Clause 11 includes the device according to Clause 10, wherein detecting the connection includes detecting that the device has been coupled to the external device by the HDMI connection.
[0113] Clause 12 includes the device according to any one of Clauses 1 to 11, wherein the connection includes a wireless connection.
[0114] According to Clause 13, a method includes automatically detecting, by a device, a connection to an external device including a speaker. The method further includes, in response to automatically detecting the connection, sending, by the device, a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range. The method further includes the device selecting a particular echo delay calculation process from two or more echo delay calculation processes based at least on detecting the reference sound.
[0115] Clause 14 includes the method according to Clause 13, wherein the device includes a smart phone.
[0116] Clause 15 includes the method according to Clause 13 or Clause 14, wherein the method further includes receiving the reference sound from the external device. The method further includes communicating data associated with the received reference sound to an echo delay controller.
[0117] Clause 16 includes the method according to Clause 15, wherein a first echo delay calculation process of the two or more echo delay calculation processes includes the echo delay controller determining an echo path delay time of the external device based at least on the data associated with the received reference sound.
[0118] Clause 17 includes the method according to Clause 15 or Clause 16, wherein the method further includes selecting the first echo delay calculation process of the two or more echo delay calculation processes in response to receiving the reference sound from the external device.
[0119] Clause 18 includes the method according to any one of Clauses 13 to 17, wherein a second echo delay calculation process of the two or more echo delay calculation processes includes using a trained model to determine an estimated echo delay time.
[0120] Clause 19 includes the method according to any one of Clauses 13 to 18, wherein the method further includes selecting the second echo delay calculation process of the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
[0121] Clause 20 includes the method according to any one of Clauses 13 to 19, wherein the method further includes providing an output of the first echo delay calculation process of the two or more echo delay calculation processes, an output of the second echo delay calculation process of the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
[0122] Clause 21 includes the method according to any one of Clauses 13 to 20, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
[0123] Clause 22 includes the method according to any one of Clauses 13 to 21, wherein the connection includes a High-Definition Multimedia Interface (HDMI) connection.
[0124] Clause 23 includes the method according to Clause 22, wherein detecting the connection includes detecting that the method has been coupled to the external device by the HDMI connection.
[0125] Clause 24 includes the method according to any one of Clauses 13 to 23, wherein the connection includes a wireless connection.
[0126] According to Clause 25, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to automatically detect a connection to an external device including a speaker at the device. The instructions, when executed by the processor, further cause the processor to send a signal from the device to the external device in response to automatically detecting the connection, the signal commanding the external device to output a reference sound within an ultrasonic frequency range. The instructions, when executed by the processor, further cause the processor to select a particular echo delay calculation process from two or more echo delay calculation processes based at least on detecting the reference sound.
[0127] Clause 26 includes the non-transitory computer-readable medium according to Clause 25, wherein the device includes a smart phone.
[0128] Clause 27 includes the non-transitory computer-readable medium according to Clause 25 or Clause 26, wherein the instructions, when executed by the processor, further cause the processor to: receive the reference sound from the external device; and communicate data associated with the received reference sound to an echo delay controller.
[0129] Clause 28 includes the non-transitory computer-readable medium according to Clause 27, wherein a first echo delay calculation process among the two or more echo delay calculation processes includes determining an echo path delay time of the external device by the echo delay controller based at least on the data associated with the received reference sound.
[0130] Clause 29 includes the non-transitory computer-readable medium according to Clause 27 or Clause 28, wherein the instructions, when executed by the processor, further cause the processor to select the first echo delay calculation process among the two or more echo delay calculation processes in response to receiving the reference sound from the external device.
[0131] Clause 30 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 29, wherein the second echo delay calculation process among the two or more echo delay calculation processes includes using a trained model to determine an estimated echo delay time.
[0132] Clause 31 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 30, wherein the instructions, when executed by the processor, further cause the processor to select the second echo delay calculation process among the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
[0133] Clause 32 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 31, wherein the instructions, when executed by the processor, further cause the processor to provide the output of the first echo delay calculation process among the two or more echo delay calculation processes, the output of the second echo delay calculation process among the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
[0134] Clause 33 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 32, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
[0135] Clause 34 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 33, wherein the connection includes a High-Definition Multimedia Interface (HDMI) connection.
[0136] Clause 35 includes the non-transitory computer-readable medium according to Clause 34, wherein the instructions, when executed by the processor, cause the processor to detect the connection by detecting that the device has been coupled to the external device by the HDMI connection.
[0137] Clause 36 includes a non-transitory computer-readable medium according to any one of Clauses 25 to 35, wherein the connection includes a wireless connection.
[0138] According to Clause 37, a device includes components for detecting a connection to an external device including a speaker. The device further includes components for sending a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range. The device further includes components for selecting a specific echo delay calculation process from two or more echo delay calculation processes by the device based at least on detecting the reference sound.
[0139] Clause 38 includes the device according to Clause 37, wherein the device includes a smart phone.
[0140] Clause 39 includes the device according to Clause 37 or Clause 38, wherein the device further includes a component for receiving the reference sound from the external device. The device further includes a component for communicating data associated with the received reference sound to an echo delay controller.
[0141] Clause 40 includes the device according to Clause 39, wherein the first echo delay calculation process among the two or more echo delay calculation processes includes determining, by the echo delay controller, an echo path delay time of the external device based at least on the data associated with the received reference sound.
[0142] Clause 41 includes the device according to Clause 39 or Clause 40, wherein the device further includes a component for selecting the first echo delay calculation process among the two or more echo delay calculation processes in response to receiving the reference sound from the external device.
[0143] Clause 42 includes the device according to any one of Clauses 37 to 41, wherein the second echo delay calculation process among the two or more echo delay calculation processes includes determining an estimated echo delay time using a trained model.
[0144] Clause 43 includes the device according to any one of Clauses 37 to 42, wherein the device further includes a component for selecting the second echo delay calculation process among the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
[0145] Clause 44 includes the method according to any one of Clauses 37 to 43, wherein the device further includes a component for providing an output of the first echo delay calculation process among the two or more echo delay calculation processes, an output of the second echo delay calculation process among the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
[0146] Clause 45 includes the device according to any one of Clauses 37 to 44, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
[0147] Clause 46 includes the device according to any one of Clauses 37 to 45, wherein the connection includes a High-Definition Multimedia Interface (HDMI) connection.
[0148] Clause 47 includes the device according to Clause 46, wherein the component for detecting the connection includes a component for detecting that the device has been coupled to the external device by the HDMI connection.
[0149] Clause 48 includes the device according to any one of Clauses 37 to 47, wherein the connection includes a wireless connection.
Claims
1. An apparatus, the apparatus comprises: one or more processors configured to: detect a connection to an external device including a speaker; send a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range; and select a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
2. The apparatus according to claim 1, wherein the apparatus comprises a smart phone.
3. The apparatus according to claim 1, wherein the one or more processors are further configured to: receive the reference sound from the external device; and communicate data associated with the received reference sound to an echo delay controller.
4. The apparatus according to claim 3, wherein a first echo delay calculation process of the two or more echo delay calculation processes comprises determining, by the echo delay controller, an echo path delay time of the external device based at least on the data associated with the received reference sound.
5. The apparatus according to claim 3, wherein the one or more processors are configured to select the first echo delay calculation process of the two or more echo delay calculation processes in response to receiving the reference sound from the external device.
6. The apparatus according to claim 1, wherein a second echo delay calculation process of the two or more echo delay calculation processes comprises determining an estimated echo delay time using a trained model.
7. The apparatus according to claim 1, wherein the one or more processors are configured to select the second echo delay calculation process of the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
8. The apparatus according to claim 1, wherein the one or more processors are further configured to provide an output of the first echo delay calculation process of the two or more echo delay calculation processes, an output of the second echo delay calculation process of the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
9. The apparatus according to claim 1, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
10. The apparatus according to claim 1, wherein the connection comprises a High-Definition Multimedia Interface (HDMI) connection.
11. The apparatus according to claim 1, wherein the connection comprises a wireless connection.
12. A method, the method comprises: automatically detecting, by an apparatus, a connection to an external device including a speaker; in response to automatically detecting the connection, sending, by the apparatus, a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range; and selecting, by the apparatus, a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
13. The method according to claim 12, wherein the method further comprises: receiving the reference sound from the external device; and Transmit data associated with the received reference sound to an echo delay controller.
14. The method according to claim 13, wherein the first echo delay calculation process among the two or more echo delay calculation processes includes determining, by the echo delay controller, an echo path delay time of the external device based at least on the data associated with the received reference sound.
15. The method according to claim 13, wherein the method further includes selecting, in response to receiving the reference sound from the external device, the first echo delay calculation process among the two or more echo delay calculation processes.
16. The method according to claim 12, wherein the second echo delay calculation process among the two or more echo delay calculation processes includes determining an estimated echo delay time using a trained model.
17. The method according to claim 12, wherein the method further includes selecting, in response to not receiving the reference sound from the external device, the second echo delay calculation process among the two or more echo delay calculation processes.
18. The method according to claim 12, wherein the method further includes providing an output of the first echo delay calculation process among the two or more echo delay calculation processes, an output of the second echo delay calculation process among the two or more echo delay calculation processes, or both as an input to an echo cancellation process.
19. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to: Automatically detect a connection to an external device including a speaker at the device; In response to automatically detecting the connection, send a signal from the device to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range; and Select a particular echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
20. The non-transitory computer-readable medium according to claim 19, wherein the instructions, when executed by the processor, further cause the processor to: Receive the reference sound from the external device; and Transmit data associated with the received reference sound to an echo delay controller.
21. The non-transitory computer-readable medium according to claim 20, wherein the first echo delay calculation process among the two or more echo delay calculation processes includes determining an echo path delay time by the echo delay controller based at least on the data associated with the received reference sound.
22. The non-transitory computer-readable medium according to claim 20, wherein the instructions, when executed by the processor, further cause the processor to select, in response to receiving the reference sound from the external device, the first echo delay calculation process among the two or more echo delay calculation processes.
23. The non-transitory computer-readable medium according to claim 19, wherein the second echo delay calculation process among the two or more echo delay calculation processes includes determining an estimated echo delay time using a trained model.
24. The non-transitory computer-readable medium according to claim 19, wherein the instructions, when executed by the processor, further cause the processor to select a second echo delay calculation process among the two or more echo delay calculation processes in response to not receiving the reference sound from the external device.
25. The non-transitory computer-readable medium according to claim 19, wherein the instructions, when executed by the processor, further cause the processor to provide the output of the first echo delay calculation process among the two or more echo delay calculation processes and / or the output of the second echo delay calculation process among the two or more echo delay calculation processes as an input to an echo cancellation process.
26. A device, the device comprising: means for detecting a connection to an external device including a speaker; means for sending a signal to the external device, the signal commanding the external device to output a reference sound within an ultrasonic frequency range; and means for selecting a specific echo delay calculation process from two or more echo delay calculation processes based at least on whether the reference sound is detected.
27. The device according to claim 26, the device further comprising: means for receiving the reference sound from the external device; means for communicating data associated with the received reference sound to an echo delay controller; and wherein a first echo delay calculation process among the two or more echo delay calculation processes includes determining an echo path delay time by the echo delay controller based at least on the data associated with the received reference sound.
28. The device according to claim 27, wherein a second echo delay calculation process among the two or more echo delay calculation processes includes determining an estimated echo delay time using a trained model, and wherein the device further comprising: means for selecting the first echo delay calculation process in response to receiving the reference sound from the external device; means for selecting the second echo delay calculation process in response to not receiving the reference sound from the external device; and means for providing the echo path delay time, the estimated echo delay time, or both as an input to an echo cancellation process.
29. The device according to claim 26, wherein the ultrasonic frequency range is approximately 20 kHz - 22 kHz.
30. The device according to claim 26, wherein the connection includes a High-Definition Multimedia Interface (HDMI) connection.