MixedExcitation Linear Predictive Coder MELP codec demonstration Subject
Mixed-Excitation Linear Predictive Coder - 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-mail Communication ® ® Digital Telephony – J. Bellamy Speech Coding – Tutorial Review – A. S. Spanias 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 Do. D Voice Processor Consortium ® ® DDVPC Homepage MELP at 2. 4 Kbps ® ® ® Performance Measures Sound Samples Source Code l l ® ASPI Digital – web site copy – Polycom ® ® MELP Demo for Windows 95 Texas Instruments ® ® Non-real-time fixed and floating point versions Real-time ‘C 50 DSP version – software development 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: ® ® ® Introduction (ASPI) ® ® Atlanta Signal Processor, Inc. Specifications (May 28, 1998 - Draft) ® ® Mixed-excitation Aperiodic pulses Pulse dispersion Adaptive spectral Filtering 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
Files and Extensions Name Description Ext Usage Wave WAVE_FORMAT_PCM But with RIFF header For MELP input must be: n. Channels: 1, n. Samples. Per. Sec: 8000, n. Avg. Bytes. Per. Sec: 16000, n. Block. Align: 2 Wav Original wave file which can be recorded and played on PC sound card. Check with Riff. Walk utility: Riff. Walk. Exe -f 2 -j *. wav Input file for Waveopt program: Waveopt. exe *. wav Binary Pure voice samples. File without RIFF header which has additional 48 bytes Bin I/O for Console. Melp(A/S) Console. Melp –a –i *. bin –o*. ccl Console. Melp –s –i *. ccl –o*. bin CCL MELP Channel Coded Long MELP is MELP file but depending on OS (4 bytes for short) is 4 times longer. Bit rate = 4*3200 bit/s. Ccl Input for CCRemover. exe *. ccl Output from CCInserter CCS MELP Channel Coded Short MELP file is real Channel Coded MELP file. Bit rate = 3200 bit/s. Ccs Input for CCInserter. exe *. ccs Output from CCRemover MELP Real MELP file with bit rate = 2400 bit/s. It is used only as a secondary output in additional Synthesis. Mlp Internal produced with Console. Melp –s –i *. ccs –o *AS. ccs See melp. c, melp_syn. c and melp_chn. c files! melp_syn() and melp_chn_read() methods.
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 (97 KB)! ® Operating system – Sun. OS 4 – MELP Read me ® My development ® ® ® OSs – Win 95, Win 98 SE, Win. NT 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 PC 128 Microphone, Processor (Pentium 3 450 MHz), RAM (192 MBy) Console application – floating point – Console. Melp ® Input and output files ® Console. Melp application
Console. Melp outputs 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 (0 x 80) ® Bit rate is 10 times least than original wave See CCL file! 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 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 Console. Melp 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 Additional Synthesis Useful Effort?
Real MELP – Processing Analysis + Synthesis 2 Analyses & Syntheses
Batch – Console applications ® Four different console application integrated using DOS Batch files ® ® Waveopt, Console. Melp, CCRemover and CCInserter Console applications with input and output parameters – files ® ® Console. Melp –a –i dam 9. bin –o dam 9. ccl Waveopt syntax: ® ® Waveopt. exe [*. bin | *. wav] Easy deleting, renaming, directory creating…(see notes!)
Windows – Melp. Player ® ® ® Statistics – MOS, DAM, DRT measurement ® Database Connection – Access, My. SQL ® 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
Melp. Codec For… Education ® ® ® Laboratory exercise – Voice Coding subject Gathering measurement results Symposium article (IEEE, Soft. COM, ELMAR, Mi. PRO) 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
- Slides: 23