Commit graph

48 commits

Author SHA1 Message Date
Jean-Marc Valin
2f5b51c94a Avoiding symbol clashes with Opus 2022-01-24 23:21:31 -05:00
Jean-Marc Valin
60a009b457 Making codebase C90-compliant 2022-01-19 18:10:44 -05:00
Jean-Marc Valin
969bd7662f Adding API for PLC
Packet loss concealment based on LPCNet (work in progress)
2022-01-19 17:07:10 -05:00
Jean-Marc Valin
3a47548536 Using KISS99 (taken from Daala) as RNG 2021-11-10 17:58:51 -05:00
Jean-Marc Valin
81229a7412 Fix the "no lookahead" case 2021-10-30 02:40:52 -04:00
Jean-Marc Valin
a9bf6cee8a Don't hardcode the number of bands 2021-10-20 23:35:59 -04:00
Jean-Marc Valin
9776e8e828 Refactoring frame rate network 2021-08-17 18:21:55 -04:00
Jean-Marc Valin
66c29fb620 Remove some useless buffers 2021-08-13 00:20:19 -04:00
Jean-Marc Valin
ab9a09266f Sharing conditioning network with LPC 2021-08-02 19:30:22 -04:00
Krishna Subramani
c1532559a2 Adds end-to-end LPC training
Making LPC computation and prediction differentiable
2021-08-02 19:28:27 -04:00
Jean-Marc Valin
6585843237 Removing the unused features
Down to 20 features
2021-07-29 03:20:59 -04:00
Jean-Marc Valin
c74330e850 Pre-compute GRU B conditioning
Adapted from PR: https://github.com/mozilla/LPCNet/pull/134
by zhuxiaoxu <zhuxiaoxu@ainirobot.com>
but had to be reworked due to previous weight quantization changes.
2021-07-15 16:06:56 -04:00
Jean-Marc Valin
7d8b00f11d Sampling directly from the logit
Avoids having to compute a sigmoid
2021-07-10 01:59:49 -04:00
Jean-Marc Valin
7cef98ec8c Minor optimization: merging all 3 embeddings 2021-07-10 01:59:49 -04:00
Jean-Marc Valin
d332100808 Representing output pdf as binary probability tree
Saves on the MDense/softmax computation since we only need to compute
8 values instead of 256.
2021-07-10 01:59:49 -04:00
Jean-Marc Valin
56d9f13efd Fix quantization bug where pitch can get too low
Would cause unused pitch embedding vectors to be used
2021-01-16 01:51:39 -05:00
Marcus Asteborg
171b1ba0ce Initialize excitation memory value to unquantized 0 2020-08-17 13:39:24 -04:00
Jean-Marc Valin
9f78e58392 Make param ordering consistent for lpcnet_synthesize() 2019-03-27 14:06:46 -04:00
Jean-Marc Valin
2bc20e65c7 Remove hack to match Python code 2019-03-20 03:21:03 -04:00
Jean-Marc Valin
2c0e96796e Fixing dynamic libraries 2019-03-18 21:53:28 -04:00
Jean-Marc Valin
54b057c9cd Add LPCNet decoder object 2019-03-18 14:13:07 -04:00
Jean-Marc Valin
fe608dfc51 Moving LPCNetState 2019-03-18 13:42:30 -04:00
Jean-Marc Valin
da456b09fa fix warning 2019-01-24 14:16:30 -05:00
Jean-Marc Valin
9fd3e45fd3 Avoid glitch at the beginning 2019-01-21 16:53:26 -05:00
Jean-Marc Valin
38cd5cf08f Remove useless (and possibly hurtful) residual connection
I guess it's a bad idea to forward inputs directly
2019-01-17 23:17:42 -05:00
Jean-Marc Valin
d75a4aec72 refactoring 2018-12-28 01:19:56 -05:00
Jean-Marc Valin
470a0a7e3e Properly delaying the pitch gain 2018-12-15 01:25:44 -05:00
Jean-Marc Valin
7d9affc385 Moving the frame out of lpcnet.c and into test_lpcnet.c 2018-12-11 16:59:07 -05:00
David Rowe
03dcb8195f Error messages
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-12-11 01:40:29 -05:00
Jean-Marc Valin
b9e0ea23e0 Fix flooring of the pitch period
Without the 0.1 bias, the rounding error could cause an offset of -1
2018-12-10 11:23:31 -05:00
Jean-Marc Valin
e0d2b105a2 Compute LPC from features 2018-12-07 18:16:19 -05:00
Jean-Marc Valin
1dcd57323f Do proper saturation 2018-12-06 16:27:08 -05:00
Jean-Marc Valin
4de3e53a73 Adding some sparse GRU support
Still need to properly dump as sparse.
2018-11-28 18:49:19 -05:00
Jean-Marc Valin
15fb1b3c77 Moving GRU_A's condition computation to the frame rate network
Completes optimizations from Section 3.6 of the LPCNet paper.
2018-11-28 14:13:59 -05:00
Jean-Marc Valin
732fce9ab2 Pre-computing GRU_A's input contribution. 2018-11-28 14:05:36 -05:00
Jean-Marc Valin
040aa437c3 Simper GRU implementation just for reset_after. 2018-11-28 12:37:18 -05:00
Jean-Marc Valin
3c694db226 Better rounding 2018-11-27 13:11:41 -05:00
Jean-Marc Valin
0ddfdfc7c0 Add deemphasis 2018-11-27 12:34:39 -05:00
Jean-Marc Valin
5ac0ac7acc Add code for copying the LPC 2018-11-27 11:44:04 -05:00
Jean-Marc Valin
e25a585de8 Match Python boundary condition 2018-11-27 00:23:26 -05:00
Jean-Marc Valin
4ccfbdff04 Frame network seems to be working 2018-11-26 18:41:54 -05:00
Jean-Marc Valin
538f25565a Starting to actually test this -- fix a few OOB reads 2018-11-26 16:02:49 -05:00
Jean-Marc Valin
8d62ba067e ... 2018-11-26 15:39:06 -05:00
Jean-Marc Valin
c0e8f37c8b Cleaning up the API 2018-11-26 13:12:17 -05:00
Jean-Marc Valin
575d8d6fa4 Adding sampling 2018-11-26 11:04:41 -05:00
Jean-Marc Valin
91c9524af3 Getting there 2018-11-26 02:49:25 -05:00
Jean-Marc Valin
4cf177412b More plumbing 2018-11-26 02:33:49 -05:00
Jean-Marc Valin
7119eaf33b Plumbing for the frame rate network 2018-11-25 17:20:24 -05:00