BVC is a next-generation, high-fidelity parametric speech codec designed for efficiency and perceptual quality. It utilizes a novel hybrid Matching Pursuit algorithm with a perceptually tuned Gabor dictionary to achieve high-quality speech reconstruction.
- High Quality: Achieves > 10.5 dB SNR with accurate spectral envelope reconstruction (LSD < 0.06 dB).
- Bitrate: High Fidelity mode operates at ~90-100 kbps using Entropy Coding (Huffman) and sparse representation.
- Efficiency:
- Real-Time Performance: Optimized C++ implementation runs at ~1.0x RTF (Encoding) and ~0.5x RTF (Decoding) on standard CPUs.
- Streaming Architecture: Uses an optimized LRU Dictionary Cache (< 300MB RAM) for speed.
- Perceptual Tuning: Dictionary atoms are concentrated in the speech power range (50-400Hz) for maximum fidelity.
- Robustness: Advanced VAD (Voice Activity Detection), Pitch-Synchronous Merging, and Direct Form I synthesis filtering.
cpp/: The production-grade C++ implementation.core/: The codec engine (LPC, Dictionary, Matching Pursuit, Entropy Coding).cli/: The command-line interface source.
python/: The reference Python implementation (for research/prototyping).samples/: Directory for input/output audio files.tools/: Analysis scripts (BVC_Inspector.py,BVC_Perceptual.py) for evaluating codec performance.
Requirements: CMake 3.10+, C++17 Compiler (MSVC, GCC, Clang).
- Navigate to the
cppdirectory. - Create a build directory:
mkdir build && cd build - Configure and build:
cmake .. cmake --build . --config Release - The executable
bvc(orbvc.exe) will be generated inRelease/.
Encode:
./bvc encode input.wav output.bvcDecode:
./bvc decode input.bvc output.wavTo run the Python version (slower, but good for understanding the algorithm):
cd python
python BVC_CLI.py encode ../samples/input.wav ../samples/out_py.bvc[MIT / Apache 2.0 - Insert License Here]