Method and apparatus for improving voice recording using an extended buffer

A method and apparatus control effects of packet transmission delay on recorded audio information by determining if received audio information is to be used for a real time conversation or to be recorded; using a first size of jitter buffer upon the determined use being for the real time conversation; and using a second size of jitter buffer upon the determined use being to record the audio information whereby the second size of jitter buffer is larger than the first size of jitter buffer.

TECHNICAL FIELD

This invention relates to the recording of voice received from a packet switching system.

BACKGROUND OF THE INVENTION

Within the prior art, it is known to buffer packets being received from a packet switching network to handle the variance in delays experienced by the packets through the packet switching network. Such buffers are called jitter buffers. Within the prior art, it is known to utilize variable buffering for the jitter buffers. However, within the prior art, the jitter buffers are generally in the range of 10 to 100 milliseconds in length. The reason for the short length of the jitter buffers is to prevent delays during a telephone conversation. If the buffer length is too large, the delay from when a person speaks a word until the other person on the conversation hears that word will be unacceptable from a human factors point of view. However, the normal jitter buffer length used for telephone conversations does result in a quality loss due to packet loss resulting from the jitter. Hence, for telephone conversations, the length of the buffer is a trade-off between degradation of the voice quality and the amount the delay that is acceptable from a human factors point of view. However, the normal jitter buffer length used for telephone conversations does result in a quality loss due to packet loss resulting from the jitter being larger than the length of the jitter buffer. Voice mail systems, conference call recording systems, financial and legal service systems, or bureaus that do translation and transcription require high-quality voice. At the same time, the impact of delays due to long jitter buffers are inconsequential for recorded voice applications.

SUMMARY OF THE INVENTION

A method and apparatus control effects of packet transmission delay on recorded audio information by determining if received audio information is to be used for a real time conversation or to be recorded; using a first size of jitter buffer upon the determined use being for the real time conversation; and using a second size of jitter buffer upon the determined use being to record the audio information whereby the second size of jitter buffer is larger than the first size of jitter buffer.

DETAILED DESCRIPTION

FIG. 1illustrates a first embodiment. InFIG. 1, telecommunication switching system100is providing service for telephones107-108as well as for IP telephones112-113via WAN111. Voice information being received from a IP telephone such as IP telephone112is received by network trunk106in the form of packets. Network trunk106converts the digital voice information in the packets to a form suitable for switching network105. This form may be analog or a high quality digital protocol. Network trunk106performs the functions of the jitter buffer for each telephone conversation being received from a IP telephone via WAN111. Control computer101performs overall control of telecommunication switching system100. Telecommunication switching system100is interconnected to public switching telephone network116via CO trunks109.

Recording system118is utilized by control computer101to record voice conversations. Such recording may be required so that telecommunication switching system100can provide voicemail operations, transcription services, or record voice conversations for other purposes which are well known to those skilled in the art. When control computer101determines that a voice conversation being received from an IP telephone needs to be recorded, it transmits control information to network trunk106to increase the jitter buffer size to that for recording voice conversations. For example, but not limited to, the length of the jitter buffer may be increased to 15 seconds. Such a long length helps to assure that the voice quality will be good.

Recording system118is illustrated as being part of telecommunication switching system100. However, one skilled in the art would readily recognize that recording system118could be external to telecommunication switching system100. For example, recording system118could be connected to public switching telephone network116, and the voice information could be communicated to recording system118via public switching telephone network116from telecommunication switching system100.

FIG. 2illustrates a second embodiment. InFIG. 2, recording system206records voice conversations under control of control computer202. Recording system206receives audio information from WAN204for telephone conversations being carried on by an IP telephone such as IP telephones207-208. In addition, the telephone conversations may be received from public switching telephone network201via IP trunks203and WAN204. If recording system206is to record voice at high-quality, it will change the length of the jitter buffer to that for high-quality voice recording. To save space within recording system206and for other reasons known to those skilled in the art, recording system206will record some voice conversations using the normal telephone conversation jitter buffer length. Such telephone conversations may be those that are simply being recorded for later playback by a human being.

FIG. 3illustrates a third embodiment. InFIG. 3, an IP telephone, such as IP telephone112, is illustrated. The IP telephone illustrated inFIG. 3is providing voice storage for telephone conversations being communicated by the IP telephone. Processor302performs all control functions by executing control routine314and jitter control316. Operating system312provides overall control of processor302. Processor302stores and retrieves data from data313. Using interfaces317, processor302communicates with mass storage306, user input device311, WAN111, handset323, and display319via interfaces304,307,303,324, and309, respectively. Processor302executes jitter control316to perform the functions of buffering packets being communicated for voice information. Jitter control316utilizes a buffer from call jitter buffers321to buffer the packets being received for a normal telephone call and a buffer from recording jitter buffers322for audio information that will be recorded.

When processor302determines that a voice conversation presently being communicated by the IP telephone illustrated inFIG. 3needs to be recorded in mass storage306, processor302transmits control commands to jitter control316to increase the jitter buffer length to that of a recorded telephone conversation.

FIG. 4illustrates in greater detail a network trunk such as network trunk106of aFIG. 1. Processor402provides overall control of the network trunk by storing and executing instructions and data in memory401. Processor402is interconnected to switching network105ofFIG. 1via interface404and WAN111ofFIG. 1via interface403. Processor402to communicates with control computer101via interface404and switching network105. Processor402provides overall control of the network trunk by executing control routine406. Processor402provides the jitter control functions by executing jitter control408.

Upon receiving a signal from control computer101that a normal telephone call is being processed, processor402by execution of jitter control408selects one of buffers411-412from call jitter buffers410to provide the buffering for the call. If on the other hand, control computer101signals that the audio information is going to be recorded, the jitter control408selects one of buffers417-418of recording jitter buffers416.

FIG. 5illustrates a recording system such as recording system206ofFIG. 2. Processor502provides the overall control of the recording system by executing programs such as operating system512, control routine514, interfaces routine511, and jitter control516out of memory501. Processor502stores recorded audio information in mass storage506via interface504utilizing interfaces routine511. Processor502communicates with the other system elements illustrated onFIG. 2via interface503and WAN204.

When processor502receives control information from control computer202that audio information is to be recorded at normal telephone call quality, processor502by execution of jitter control516selects a buffer from call jitter buffers507. When processor502receives control information from control computer202that audio information is to be recorded at a recording quality, processor502by execution of jitter control516selects a buffer from call jitter buffers509.

FIG. 6illustrates operations600that are performed by all three embodiments. After being started in block601, decision block602determines if there is a new call to process. If the answer is no, control is returned to decision block602.

If the answer in decision block602is yes, decision block603determines if the audio information is to be recorded at high-quality. In the first embodiment, control computer101ofFIG. 1transmit information to processor402of the network trunk designating how the audio information is to be processed. In the second embodiment, processor502of recording system206ofFIG. 2would receive this information from control computer202via WAN204. In the third embodiment, processor302ofFIG. 3would make the determination by executing control routine314.

If the answer is yes in decision block603, block606selects a buffer from the recording jitter buffers for processing the audio information before transferring control to a block607. Block607will continue to perform jitter operations on the audio information of the call after transferring control back to decision block602. When the call terminates, block607terminates the processing of audio information.

If the answer is no in decision block603, block604selects a buffer from the call jitter buffers for processing the audio information. Finally, block604transfers control to block607whose operations have already and described.

FIG. 7illustrates jitter buffer700which is another embodiment of a jitter buffer. Jitter buffer700could be utilized inFIG. 4instead of buffers410and416. Jitter buffer700may be implemented as a first-in-last out buffer with the data flowing from packet702to the packet that would be contained in706. One skilled in the art could envision many different implementations of jitter buffer700. Packets that are to be utilized in a telephone conversation are extracted from call access point703which could advantageously be 10 to 100 ms from first packet702. One skilled in the art could readily envision that the precise location of call access point703in jitter buffer700could vary during a telephone conversation as is well known in the art. Further, one skilled in the art could readily envision that access points703-706could allow accessing information as a bit, byte, word, or packet per access.

For certain types of audio recording such as a voice messaging system, it may not be necessary to have a long jitter buffer time. If this is the case, short record time access point704would be utilized to extract packets from jitter buffer700. Short record time access point704could advantageously have a jitter buffer time of 1 second. For a high-quality recording, long record time access point706would be utilize. Long record time access point706could advantageously have a jitter buffer time of 5 seconds.

InFIG. 8, operations800illustrate the operations performed in utilizing jitter buffer700ofFIG. 7. As illustrated inFIG. 8, all three access points can be simultaneously utilized to provide audio information. After being started in block801, decision block802determines if audio information is to be provided for a telephone conversation. If the answer is yes, block803selects packets from call access point703and processes the selected packets into audio information.

If the answer in decision block802is no or after execution of block803, decision block804determines if audio information is to be provided for a lower quality recording. If the answer is yes, block806selects packets from short record time access point704and processes the selected packets into audio information.

If the answer in decision block804is no or after execution of block806, decision block807determines if audio information is to be provided for a high quality recording. If the answer is yes, block808selects packets from long record time access point706and processes the selected packets into audio information.

After execution of a block808or if the answer in decision block807is no, decision block809determines if the call is complete. If the answer is no, decision block809is re-executed. If the answer is yes in decision block809, operations800are ended by the execution of block811.

When the operations of a telephone set, control computer, processor or server are implemented in software, it should be noted that the software can be stored on any computer-readable medium for use by or in connection with any computer related system or method. In the context of this document, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in connection with a computer related system or method. The telephone set, control computer, processor or server can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can store the program for use by or in connection with the instruction execution system, apparatus, or device. For example, the computer-readable medium can be, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared apparatus or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM, EEPROM, or Flash memory) (electronic), and a portable compact disc read-only memory (CDROM) (optical).

In an alternative embodiment, where the telephone set, control computer, processor or server is implemented in hardware, the telephone set, control computer or server can be implemented with any or a combination of the following technologies, which are each well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.

Of course, various changes and modifications to the illustrated embodiments described above will be apparent to those skilled in the art. These changes and modifications can be made without departing from the spirit and scope of the invention and without diminishing its intending advantages. It is therefore intended that such changes and modifications be covered by the following claims except insofar as limited by the prior art.