1 Speex 一个开源的声学回声消除器
Speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Moreover, Speex is well-adapted to Internet applications and provides useful features that are not present in most other codecs. Finally, Speex is part of the GNU Project and is available under the revised BSD license.
The Technology
Speex is based on CELP and is designed to compress voice at bitrates ranging from 2 to 44 kbps. Some of Speex's features include:
- Narrowband (8 kHz), wideband (16 kHz), and ultra-wideband (32 kHz) compression in the same bitstream
- Intensity stereo encoding
- Packet loss concealment
- Variable bitrate operation (VBR)
- Voice Activity Detection (VAD)
- Discontinuous Transmission (DTX)
- Fixed-point port
- Acoustic echo canceller
- Noise suppression
Note that Speex has a number of features that are not present in other codecs, such as intensity stereo encoding, integration of multiple sampling rates in the same bitstream (embedded coding), and a VBR mode; see our comparison page for more.
2 libsndfile 音频格式转化库
Libsndfile is a library designed to allow the reading and writing of many different sampled sound file formats (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface.
During read and write operations, formats are seamlessly converted between the format the application program has requested or supplied and the file's data format. The application programmer can remain blissfully unaware of issues such as file endian-ness and data format. See Note 1 and Note 2.
Every effort is made to keep these documents up-to-date, error free and unambiguous. However, since maintaining the documentation is the least fun part of working on libsndfile, these docs can and do fall behind the behaviour of library. If any errors omissions or ambiguities are found, please notify Erik de Castro Lopo.
To supplement this reference documentation, there are simple example programs included in the source code tarball. The test suite which is also part of the source code tarball is also a good place to look for the correct usage of the library functions.
Finally, if you think there is some feature missing from libsndfile, check that it isn't already implemented (and documented) here.
3 EMIPLIB 网络数字媒体库
Welcome to the home page of EMIPLIB.
Introduction
The name EMIPLIB stands for 'EDM Media over IP library'. This library was developed at the Expertise Centre for Digital Media (EDM), a research institute of the Hasselt University. As the name suggests, the goal of the library is to make it easier to stream several kinds of media, including (but not limited to) audio and video.The latest version of the library is 0.17.0. You can take a look at the ChangeLog.
Features
Current features include:- Soundcard input (using OSS, WinMM, Jack and PortAudio)
- Soundcard output (using OSS, ALSA, ESD, WinMM, Jack, SDL and PortAudio)
- An OpenAL output component
- WAV file input (using libsndfile, libaudiofile or a simple internal WAV reader)
- WAV file output (using libsndfile or a simple internal WAV writer)
- Webcam input (using Video4Linux and DirectShow)
- Speex compression
- U-law audio encoding
- A-law audio encoding
- LPC compression (code taken from JVOIPLIB, which is based on Ron Frederick's lpc.tar.Z)
- GSM 06.10 compression (code taken from JVOIPLIB, which is based on Jutta Degener and Carsten Bormann's work)
- H.263+ compression (using libavcodec)
- Mixing of incoming audio streams
- Synchronization of RTP streams based on RTCP information
- 3D sound effects using HRIR/HRTF data from the LISTEN project
- Easy to use voice over IP (VoIP) and video over IP sessions