Mixed-Excitation Linear Predictive Coder - MELP - PowerPoint PPT Presentation

About This Presentation
Title:

Mixed-Excitation Linear Predictive Coder - MELP

Description:

Digital Telephony J. Bellamy. Speech Coding Tutorial Review A. S. Spanias ... Borland C for DOS Char 8, Short & Integer 16, Long 32 ... – PowerPoint PPT presentation

Number of Views:424
Avg rating:3.0/5.0
Slides: 24
Provided by: Gigi69
Category:

less

Transcript and Presenter's Notes

Title: Mixed-Excitation Linear Predictive Coder - MELP


1
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šic Student Zoran
    Sambol

2
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 students permanent
    employment
  • Three phases
  • Voice Coding overall Contents
  • MELP algorithm - Seminar document
  • MELP demonstration Real coding

3
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

4
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

5
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!
6
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

7
Wave format RIFF
Waveopt
Bit digging
8
Files and Extensions
Name Description Ext Usage
Wave WAVE_FORMAT_PCM But with RIFF header For MELP input must be nChannels1, nSamplesPerSec 8000, nAvgBytesPerSec16000, nBlockAlign2 Wav Original wave file which can be recorded and played on PC sound card. Check with RiffWalk utility RiffWalk.Exe -f2 -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 ConsoleMelp(A/S) ConsoleMelp a i .bin o.ccl ConsoleMelp s i .ccl o.bin
CCL MELP Channel Coded Long MELP is MELP file but depending on OS (4bytes for short) is 4 times longer. Bit rate 43200 bit/s. Ccl Input for CCRemover 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 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 ConsoleMelp s i .ccs o AS.ccs See melp.c, melp_syn.c and melp_chn.c files! melp_syn() and melp_chn_read() methods.
9
Waveopt utility
  • C Console application
  • Waveform structure (RIFF)
  • Analysis
  • Synthesis
  • Stream I/O routines

Analysis
Synthesis
What with binary file?
10
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
11
ConsoleMelp outputs
  • What Ive 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

CCRemover CCInserter
See CCL file!
12
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

Channel Coded Short - CCS
See CCS file!
13
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
14
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
  • Cant be used for synthesis!

15
Why Im 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)

16
MELP flowchart
Run complete MELP?
17
MLP file for Synthesis
Useful Effort?
Additional Synthesis
18
Real MELP Processing
Analysis Synthesis
2 Analyses Syntheses
19
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!)

20
Windows MelpPlayer
  • 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

21
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
22
Lets 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

23
Thanks for your attention!
  • Contact
  • Zoran Sambol, Siemens d.d. Put Brodarice 6, 21000
    Split
  • Tel. 385 21 390 936
  • zoran.sambol_at_st.tel.hr, zoran.sambol_at_siemens.hr
Write a Comment
User Comments (0)
About PowerShow.com