Method and apparatus for automatically suppressing computer keyboard noises in audio telecommunication session

A communication system automatically mutes a microphone in response to a key event detected from a coupled keyboard to prevent delivery of noise generated by the keyboard to a far end of the communication session. A timer is initiated for a time period when the key event occurs, and the microphone remains muted for the time period of the timer. The timer may be restarted to maintain the microphone mute in response to a subsequent key event detected while the timer is running. If the timer expires before a subsequent key event is detected, the microphone can be restored to its previous state (usually un-muted). The system can be applied to a computer coupled to the keyboard and a microphone and having a communication application operating on the computer. Alternatively, the system can be applied to a computer coupled to the keyboard and coupled to an external conferencing unit having a communication application.

FIELD OF THE DISCLOSURE

The subject matter of the present disclosure relates to a method and apparatus for automatically suppressing noises generated from a computer keyboard during an audio telecommunication session.

BACKGROUND OF THE DISCLOSURE

Increasingly, general-purpose computers, such as desktop and laptop computers, are being used during audio telecommunication sessions, such as telephony, voice chat, teleconferencing, and videoconferencing sessions. In one arrangement, an existing system uses a computer to control conferencing operations (directly or indirectly, for example through a Web site), to present slides, to make notes available to the participants, etc. In another arrangement, the computer actually implements the functions of a conferencing or telephony system by processing audio signals from microphones, encoding and decoding audio, generating output to loudspeakers or earpieces, etc.

Because computers are being increasingly used, one of the participants will often be typing on the computer keyboard during the communication session. Typing on the keyboard usually generates noise that is perceived as objectionable, annoying, and distracting during a conversation. These typing noises are picked up by the conferencing equipment's microphone(s) and sent to the far end participants. The problem with these typing noises can be particularly acute when the microphone is physically attached to or part of the computer used for desktop conferencing or when the microphone is positioned on the same surface as the computer. In these situations, there may be strong mechanical and acoustic coupling between the computer keyboard and the microphone such that loud keyboard noises may be transmitted to the far-end.

Consequently, there is a need for a method or apparatus for reducing noise generated by a participant typing on a computer keyboard during a communication session.

SUMMARY OF THE DISCLOSURE

In one embodiment, an audio telecommunication system automatically mutes a microphone in response to a key event (e.g., a key-strike, a key-release, or both) detected from a coupled keyboard to prevent or reduce delivery of noise from the keyboard to a far end of the communication session. When the key event is detected, the microphone is muted, and a timer is started. While the timer runs, a subsequent key event detected by the system re-starts the timer and thereby extends the microphone's mute period. If the timer expires before a subsequent key event is detected, however, the system restores the microphone to its original state (muted or un-muted). Thus, the voice communication system automatically mutes the microphone(s) when any key is pressed and keeps the microphone muted for a period thereafter. If additional keys are pressed before the period expires, the mute period is extended for a further time period from when the last key was pressed. After the mute period has elapsed without any keystrokes, the microphone is automatically restored to its prior state (usually un-muted). The communication system can include a computer executing a communication application and coupled to both the keyboard and the microphone. Alternatively, the voice communication system can include a computer coupled to an external communication unit, such as a conferencing unit, that executes the communication application and is coupled to the microphone.

DETAILED DESCRIPTION

FIG. 1illustrates an audio telecommunication system10that can be used in an audio telecommunication session, such as a telephone conference, voice chat, videoconference, or desktop conference, for example. The system10includes a computer100coupled to a microphone112and a keyboard122. During the communication session, one or more near-end participants20may speak from time to time. The microphone112picks up the speech, and an audio input module110of the computer100receives the speech as near-end audio. A communication application150processes the near-end audio and sends it via a network interface180to a far-end communication unit30where a far-end participant40can hear the audio. Likewise, the network interface180receives far-end audio from the far-end unit30, and the communication application150processes the far-end audio and sends the output to a loudspeaker132via an audio output module130.

The audio input module110, microphone112, audio output module130, loudspeaker132, and network interface180can all be conventional components of the computer100so they are not described in detail here. The communication application150, in one example, can be a desktop conferencing application that runs on the computer100. In other examples, the communication application can be a telephony application known in the art, such Skype™, AIM®, Google Talk®, Microsoft® NetMeeting®, or Microsoft® Messenger, etc., running on the computer.

One of the near-end participants20may type during the communication session and generate typing noises. If the typing noises are sent to the far-end unit30, the far-end participant40may find the noises disruptive or distracting. To reduce or eliminate the effects of typing noises, the system10includes a timer function160and an auto-mute function170. In the present embodiment, these functions160and170are shown as being part of the communication application150, but they could alternatively be incorporated into other parts of the system10.

These functions160and170work in conjunction with another process140executing on the computer100that detects key events. For example, this process140can be an operating system process that is communicatively coupled to the computer's keyboard122via a keyboard interface120and which can detect key events from the keyboard122. In general, the key events can include a key-strike and/or a key-release.

FIG. 2illustrates a process200that uses the components ofFIG. 1to reduce the effects of typing noises during the communication session. Although the process200is typically event driven, it is illustrated in flowchart form for the purposes of discussion. One skilled in the art will appreciate with the benefit of the present disclosure that there may be several variations on the above process200. In general, the process200relieves a participant from the need to manually mute and un-mute a microphone to avoid sending keyboard noises to other participants in a communication session and prevents accidental typing noises from being transmitted if the participant were to forget to mute the microphone manually.

During the communication session, the computer100receives near-end audio from the microphone112via the audio input module110and processes that audio (Block205). At any given time, the near-end audio may or may not include typing noises or speech. If a near-end participant is typing on the keyboard122, however, the noise from the keyboard would become part of the near-end audio picked up by the microphone112if allowed. To prevent this, the communication application150uses the key-detection process140coupled to the keyboard122to detect each time a key event occurs on the keyboard122(Block210). For most operating systems, such a key-detection process140can detect key events using techniques known in the art.

In response to the detected key event, the timer function160determines if the count-down timer T is already running (Decision215). If running, the timer function160simply restarts the timer T with a new mute period P in response to this newly detected key event (Block230). If not already running (e.g., this is the first detected key event after some period of time), then the current state (mute on or off) of the microphone112can be stored in memory190, if desired for later use190(Block220). Next, the auto-mute function170mutes the microphone112(Block225), and the timer function160starts the count-down timer T running for a mute period P (Block230).

While the timer T is running, the auto-mute function170continually awaits a timer expiration event to occur that indicates when the mute period P has expired (Decision235). The mute period P is preferably as short as possible yet long enough to mute the sound of the keystroke. In one example, the mute period P can be in the range of 100 to 1000 milliseconds, but the actual value may vary and may depend on various factors, such as the particular noisiness of the keyboard, typing habits/skills of the typist, and the response time of the system. In general, it is desirable to have the mute period be short enough that the microphone112un-mutes quickly when typing stops but long enough that it doesn't un-mute in the middle of a single “burst” of typing. In this regard, the particular value for the mute period P may vary based on the typing habits/skills of the typist. For example, the mute period may be a larger value of about 500-ms to 1 second for some typists but shorter for others. As opposed to being a preset and unadjustable value, the mute period P may be adjustable by the user or the system. Moreover, as opposed to being fixed once set, the mute period P may dynamically vary using dynamic adaptation to account for typing styles, keyboard, etc.

If a termination event has not been generated because the mute period P has yet to expire, the process200returns to Decision210to detect if any subsequent key event occurs, while continuing to monitor for the mute period P to expire. Eventually, the mute period P will expire after the participant has stopped typing on the keyboard. Once expired, the communication application150can restore the microphone112to its previous state (usually un-muted), which may have been stored in memory190(Block240), and the process200can then continue processing audio (Block205) and detecting for key events (Block210).

It will be appreciated that an initial portion of noise from the very first keystroke in a sequence of keystrokes may not be eliminated entirely because the keystroke noise starts roughly simultaneously with the keystroke detection. However, some of the noise from even the first keystroke can be prevented from being transmitted to the far-end because the response of the computer100to the first keystroke can be very fast. In any event, the initial portion of noise may not be substantial, and most of any remaining noise for this first keystroke and all the noise from subsequent keystrokes can be eliminated with the process200. In addition, it will be appreciated that reference to muting the microphone112may mean that the computer100still receives audio signals from the microphone112but that the auto-mute function170does not allow the audio to be sent to the far end. Alternatively, the system10may actually permit the audio signal to reach the far-end but may send a message to a decoder at the far-end decoder instructing it when to mute its loudspeaker.

In some implementations, the participant may be allowed to override or modify the mute state of the microphone112by selecting a manual mute button. If the participant presses the manual mute button while the auto-mute is in effect, the system10may simply ignore the selection because the auto-mute function170will restore the mute state to where it was at the start of the mute period. Alternatively, the system10may postpone changing the live mute state of the microphone112as selected by the mute button until after the mute period P expires, or the system10may instead modify the stored mute state rather than change the live mute state of the microphone112.

Although the embodiment ofFIG. 1shows the communication application150running on the computer100, the application150may run on external telephony equipment, such as a conferencing unit, coupled to the computer100.FIG. 3shows the communication system10having the computer100coupled to an external telephony device300, which can be, for example, one of Polycom's VSX series conferencing units or other products. Reference numerals inFIG. 3are the same as used inFIG. 1to show like components. Thus, the telephony device300has the audio input module110, audio output module130, communication application150, and network interface180with the far end, while the computer100has the keyboard interface120and the key-detection process140.

Communication interfaces310and320between the computer100and the telephony device300allow the computer100to send information about key events to the communication application150. The communication interfaces310and320can use a cable connection, an Ethernet or wireless network connection, or other type of connection. In response to detected key events, the communication application150of the telephony device300can then control the mute state of the microphone112according to the keyboard noise suppression techniques disclosed herein. In this way, the disclosed techniques can be applied to cases where a computer having the keyboard generating the noise is either the same computer running the communication application (as inFIG. 1) or is coupled to external telephony equipment in such a way as to be able to send information about keystrokes to the telephony equipment (as inFIG. 3).

The disclosed keyboard noise suppression techniques can be ultimately coded into a computer program and stored on a computer-readable media, such as a compact disk, a tape, stored in a volatile or non-volatile memory, etc. Accordingly, instructions stored on a program storage device can be used to cause a programmable control device (e.g., computer or conferencing unit) to perform the keyboard noise suppression techniques disclosed herein. Although the disclosed communication system has been described as providing bi-directional communication between a near end and a far end, it will be appreciated that the teachings of the present disclosure are applicable to systems that provide one-way audio transmission where keyboard noises might be present (for example, a radio broadcast, podcast, etc.).

The foregoing description of preferred and other embodiments is not intended to limit or restrict the scope or applicability of the inventive concepts conceived of by the Applicant. In exchange for disclosing the inventive concepts contained herein, the Applicant desires all patent rights afforded by the appended claims. Therefore, it is intended that the appended claims include all modifications and alterations to the full extent that they come within the scope of the following claims or the equivalents thereof.