The present invention relates to speech signal processing, and in particular to voice activity detection within a coded speech bitstream without decoding.
In the context of voice communication over a digital network, the input audio signal is typically encoded using a speech codec such as the well-known Adaptive Multi-Rate (AMR) codec. In such applications, it is useful to detect which frames in the digital bitstream contain speech and which frames contain non-speech audio, an undertaking referred to as Voice Activity Detection (VAD). But that can be a non-trivial processing task that involves decoding the AMR signal back to uncompressed audio signals in linear PCM format, extracting features from them and running complex algorithms. The AMR codec does have its own inherent VAD module that is used to enable discontinuous transmission (DTX), but it is designed to be very conservative so it is not robust to high noise and it is not configurable.
Embodiments of the present invention are directed systems, methods and computer program products for voice activity detection (VAD) within a digitally encoded bitstream. A parameter extraction module is configured to extract parameters from a sequence of coded frames from a digitally encoded bitstream containing speech. A VAD classifier is configured to operate with input of the digitally encoded bitstream to evaluate each coded frame based on bitstream coding parameter classification features to output a VAD decision indicative of whether or not speech is present in one or more of the coded frames.
There may further be a VAD smoothing module that smooths the VAD decisions for the coded frames based on the VAD decisions for some number N neighboring coded frames. In some embodiments, a hysteresis module may be used to introduce a hysteresis element to the VAD decisions based on a defined hold on and/or hold off time.
The VAD classifier may specifically be a Classification and Regression Tree (CART) classifier, or a Deep Belief Network (DBN) classifier and/or one or more of multiple VAD classifiers selected based on the bit rate of the digital bitstream. And the digital bitstream may specifically be an AMR encoded bitstream so that the bitstream coding parameter classification features are AMR encoding features.
Embodiments of the present invention provide a VAD arrangement that operates in the bitstream domain without decoding back into the speech domain. A simple binary tree classifier is used which has a low computational complexity.
A VAD classifier 102 operates in the bitstream domain to evaluate each coded frame from the parameter extraction module 101 using the bitstream coding parameter classification features to make a VAD decision whether or not speech is present, step 202. The VAD classifier 102 can be in the specific form of a binary tree classifier such as a Classification and Regression Tree (CART) classifier or a Deep Belief Network (DBN) classifier that uses the raw bitstream parameters as the classification features. Thus, for each AMR encoded frame, the VAD classifier 102 evaluates the AMR coding parameters as its classification features to obtain a VAD decision (speech/non-speech).
The VAD classifier 102 can be trained on AMR encoded audio training files that are marked as to which areas correspond to speech and which areas correspond to non-speech. And since the AMR codec can transmit RTP packets at different bit-rates (12.2, 10.2, 7.95, 7.4, 6.7, 5.9, 5.15, 4.75 kbps), a different VAD classifier 102 should be trained for each different bit-rate bitstream. For a specific AMR bit-rate, a training database is chosen that contains training audio files labelled for speech/silence.
In one set of experiments, a small training database was used that contained about 20 minutes of carefully hand-labelled audio file recordings from 8 different devices in 6 languages with different background conditions including background babble (restaurant and office), car, street, train, computer server and kitchen extractor fan noise. The training database was transformed from the original input audio files into a set of AMR encoded frames at the desired bit-rate and encode in AMR with discontinuous transmission (DTX) disabled. For example, the publicly available 3 GPP AMR programs can be used for this purpose. The encoded signal was processed to extract the 57 AMR parameters for every audio frame (20 ms), corresponding to the bitstream content of an RTP packet. The training file was then built by merging the AMR encoded frames and the speech/silence labels. For each audio frame in the training database, this training file contained the 57 AMR parameters plus its corresponding speech/silence label. The CART model was then trained using the WEKA open source machine learning toolkit with an implementation of the CART algorithm. This training process was repeated for each of the different AMR bit-rates to generate eight binary classification trees that were able to classify each AMR frame into speech or silence without the need for decoding the stream into audio PCM.
Overall system performance can be improved by further post-classification processing. For example, a VAD smoothing module 103 smooths the VAD decisions, step 203, for the coded frames based on the VAD decisions by the VAD classifier 102 for some number N neighboring coded frames based on a majority vote scheme. A hysteresis module 104 introduces a hysteresis element to the VAD decisions based on a defined hold on and/or hold off time, step 204. This means that the per-frame VAD decision can be affected by previous or future decisions of the VAD classifier 102. The number (N) of neighbour frames used in the VAD smoothing module 103 along with the hold-off time in the hysteresis module 104 should be chosen thoughtfully depending on the maximum delay allowed by the system. However, the hysteresis module 104 can apply the hold-on time (e.g., 150 msec before/300 msec after) without incurring in any delay.
Such VAD arrangements that make a direct classification decision over the bitstream, don't need to decode the AMR signal and so save considerable computational overhead in a network infrastructure application. The classification algorithm has low computational complexity which can be highly important in a network that processes thousands of simultaneous calls per processing node.
Embodiments of the invention may be implemented in whole or in part in any conventional computer programming language. For example, preferred embodiments may be implemented in a procedural programming language (e.g., āCā) or an object oriented programming language (e.g., āC++ā, Python). Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.
Embodiments can be implemented in whole or in part as a computer program product for use with a computer system. Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or analog communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions embodies all or part of the functionality previously described herein with respect to the system. Those skilled in the art should appreciate that such computer instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the network (e.g., the Internet or World Wide Web). Of course, some embodiments of the invention may be implemented as a combination of both software (e.g., a computer program product) and hardware. Still other embodiments of the invention are implemented as entirely hardware, or entirely software (e.g., a computer program product).
Although various exemplary embodiments of the invention have been disclosed, it should be apparent to those skilled in the art that various changes and modifications can be made which will achieve some of the advantages of the invention without departing from the true scope of the invention.