voice coding with opus · 2020-05-19 · voice coding with opus koen vos, karsten vandborg...

20
Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Upload: others

Post on 13-Jul-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Voice Coding with OpusKoen Vos, Karsten Vandborg Sørensen,

Søren Skak Jensen, Jean-Marc Valin

Page 2: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Two Opus presentations

● This talk: Voice Mode (Koen)○ Features○ Technology○ Listening test results

● Next talk: Audio Mode (Jean-Marc)

Page 3: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

What is Opus?

● Flexible speech and audio codec● Best-in-class performance across a wide

range of applications● IETF Standard RFC 6716 (Sep. 2012)● Royalty free● Open source

Page 4: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Flexible Indeed

● Bitrates from 6 to 510 kbps● Frame sizes from 2.5 to 60 ms● Narrowband to full-band (in 5 steps) ● Speech and music● Mono and stereo● Rate control● Variable complexityAll changeable dynamically, signalled within the bitstream

Page 5: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Merging Two Codecs

1. SILK○ Developed by Skype○ Based on Linear Prediction○ Efficient for voice○ Up to 8 kHz audio bandwidth

2. CELT○ Developed by Xiph.Org○ Based on MDCT○ Good for universal audio/music

Page 6: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Hybrid Mode

For super-wideband or full-band voice

Page 7: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

SILK Decoder

Standard defines only the decoder● Doesn’t get much simpler

Page 8: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

SILK EncoderStandard includes high-quality reference implementation

Page 9: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Predictive Noise Shaping Quantization

● Linear short- and long-term prediction to model formants and harmonics○ Reduce entropy of residual

● Short- and long-term emphasis filtering○ Emphasize important spectral components○ Reduce input noise

● Short- and long-term noise shaping○ Mask quantization noise

Page 10: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Predictive Noise Shaping Quant. II

Page 11: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Predictive Noise Shaping Quant. III

Example (short-term shaping only)

Page 12: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Stereo

● Mid-Side representation● Side is predicted from mid; residual coded

Page 13: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Internet Robustness

● Forward Error Correction (FEC) ○ Include coarse encoding of previous packet, for

active speech● Flexible Error Propagation

○ Code packets more independently for channels with packet loss

● Discontinuous Transmission (DTX)○ Reduce packet rate during silence

● Packet Loss Concealment (PLC)○ Decoder side○ Fills in DTX blanks

Page 14: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

FEC

Page 15: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Flexible Error Propagation

● Reduce LTP filter state at beginning of a packet, in encoder and decoder

● Spend more bits only during first pitch period● Other codecs constrain LTP filter coefficients

and spend more bits throughout the packet

Page 16: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Effect of LTP scaling

Page 17: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Packet Loss Example

● Original● AMR-WB, 30% packet loss● Opus without FEC, 30% packet loss● Opus with FEC, 30% packet loss

Page 18: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Listening Results: Narrowband

Google Mushra Test

Page 19: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Listening Results: Wide/Full-Band

Google Mushra Test

Page 20: Voice Coding with Opus · 2020-05-19 · Voice Coding with Opus Koen Vos, Karsten Vandborg Sørensen, Søren Skak Jensen, Jean-Marc Valin

Questions?

Find all things Opus at http://www.opus-codec.org