260 likes | 1.32k Views
Mixed-Excitation Linear Predictive Coder - MELP. MELP codec demonstration Subject: Voice Coding Scientific Postgraduate Study of Electronics, FESB, University of Split Professor: dr. sc. Dinko Begušić Student: Zoran Sambol. Voice coding – Study Subject. Subject program Literature
E N D
Mixed-Excitation Linear Predictive Coder - MELP MELP codec demonstration Subject: Voice Coding Scientific Postgraduate Study of Electronics, FESB, University of Split Professor: dr. sc. Dinko Begušić Student: Zoran Sambol
Voice coding – Study Subject • Subject program • Literature • Digital Telephony – J. Bellamy • Speech Coding – Tutorial Review – A. S. Spanias • E-mail Communication • Professor in Texas and student’s permanent employment • Three phases • Voice Coding overall – Contents • MELP algorithm - Seminar document • MELP demonstration – Real coding
MELP web & resources • US DoD Voice Processor Consortium • DDVPC Homepage • MELP at 2.4 Kbps • Performance Measures • Sound Samples • Source Code • Non-real-time fixed and floating point versions • Real-time ‘C50 DSP version – software development • ASPI Digital – web site copy – Polycom • MELP Demo for Windows 95 • Texas Instruments • Embedded development • Noam Amir – Educational – web site copy
MELP – speech compression • New 2400 bps Federal Standard • Selection test (DDVPC) • Intelligibility, Voice quality, Talker recognizability and Communicability • Hardware parameters • Processing power • Memory usage • Delay • Commercial and military use • Robust in difficult noise environments • Efficient in computational requirements…
MELP – speech… • Traditional LPC parametric model includes four additional features: • Mixed-excitation • Aperiodic pulses • Pulse dispersion • Adaptive spectral Filtering • Introduction (ASPI) • Atlanta Signal Processor, Inc. • Specifications (May 28, 1998 - Draft) • Specifications for the Analog to Digital Conversion of Voice by 2,400 Bit/Second Mixed Excitation Linear Prediction • MELP at lower bit rates Lets code!
Waves and formats • How to get pure samples for MELP? • Learn about wave files – understand technology • Get programming routines • Make applications • Books – Programming ‘Knowledge base’ • Petzold – Chapter 22 – Sound & Music • Waveform audio device (*.WAV) • API – low level (wave*, midi*) and high level (mci*) interfaces • MIDI, CD Audio, MCI • Leinecker, Archer – Chapter 16 - Sound • Waveform, MIDI, CD Audio • MSDN Library Audio Samples – Platform SDK - ACM • Utilities – RIFF Walk and RIFF Add
Wave format & RIFF Bit digging Waveopt
Waveopt utility • C++ Console application • Waveform structure (RIFF) • Analysis • Synthesis • Stream I/O routines Analysis Synthesis What with binary file?
Non-real time TI MELP demo • Link Texas Instruments - Self-Extracting MELP 1.2 Source Code (97KB)! • Operating system – SunOS4 – MELP Read me • My development • OSs – Win 95, Win 98SE, WinNT • Compilers & IDEs • Borland C++ for DOS – Char 8, Short & Integer 16, Long 32 • Microsoft Visual C++ – Char 8, Short 16, Integer 32, Long 32 • Hardware resources • Sound card – Creative Sound Blaster Audio PC128 • Microphone, Processor (Pentium3 450 MHz), RAM (192 MBy) • Console application – floating point – ConsoleMelp • Input and output files ConsoleMelp application
What I’ve got? File which produces back playable Wave file after Analysis and Synthesis procedure Synthesized file has great number of zeros (silence) and every 54 bit is frame bit (0x80) Bit rate is 10 times least than original wave What I want to get? MELP file which bit rate is 2400 bit/s and can be used for Synthesis procedure to produce playable Wave file ConsoleMelp outputs See CCL file! CCRemover & CCInserter
CCRemover utility What I get with it? • File which can be used after bit insertion (CCInserter) for Synthesis procedure to produce playable Wave file • Bit rate of generated file is 3200 bit/s which leads to conclusion that this is channel coded MELP algorithm!! • More about channel coding for 1.6 Kb/s MELP Coder For Wireless Communications See CCS file! Channel Coded Short - CCS
CCInserter utility What I get with it? • CCL file which is input file for ConsoleMelp application Synthesis • After RIFF header insertion produces playable Wave file (Waveopt *.bin) Channel Coded Long - CCL
My MELP at 2.4 Kbps • Little trick with digging on original source • New (real 2.4 kbps MELP) file with *.mlp extension • Inverse procedure – MELP is produced during the additional synthesis • melp_chn_read() method - accessing MELP bit buffer • Can’t be used for synthesis!
Why I’m using Synthesis? Subroutine UNPACK_CODE: Unpack bit code from channel. Return 1 if erasure, otherwise 0. (melp_chn.c Line 319) There is no file for writing pure MELP! Additional code lines in melp_chn_read() method after all unpack_code() methods calls (melp_chn.c Line 154). Additional file created in main (melp.c Line 82) and synthesis procedure file (melp_syn.c)
MELP flowchart Run complete MELP?
MLP file for Synthesis Useful Effort? Additional Synthesis
Real MELP – Processing Analysis + Synthesis 2 Analyses & Syntheses
Batch – Console applications • Four different console application integrated using DOS Batch files • Waveopt, ConsoleMelp, CCRemover and CCInserter • Console applications with input and output parameters – files • ConsoleMelp –a –i dam9.bin –o dam9.ccl • Waveopt syntax: • Waveopt.exe [*.bin | *.wav] • Easy deleting, renaming, directory creating…(see notes!)
Statistics – MOS, DAM, DRT measurement Database Connection – Access, MySQL Internet Connection – IP, Web based Visualization, Skins… Opening WAV and MLP (CCS) files Playing files Recording and storing waves in MELP useful format Recording CCS and MLP files Size comparison - Explorer utility Windows – MelpPlayer
MelpCodec For… Education • Laboratory exercise – Voice Coding subject • Gathering measurement results • Symposium article (IEEE, SoftCOM, ELMAR, MiPRO) • Experience for some other voice and no-voice LP algorithms • Digital Signal Adaptive Processing - Subject • My Postgraduate Work Theme And
Let’s think farther! Business • Cooperation FESB University of Split and Siemens d.d Croatia and Siemens AG • PSE PRO TCS RCD department • Projects – Signal Processing, Communication, Software Development • Links: • PSE Siemens d.d • Siemens AG
Thanks for your attention! Contact: Zoran Sambol, Siemens d.d. Put Brodarice 6, 21000 Split Tel. +385 21 390 936 zoran.sambol@st.tel.hr, zoran.sambol@siemens.hr