xref: /aosp_15_r20/external/libopus/dnn/torch/lossgen/README.md (revision a58d3d2adb790c104798cd88c8a3aff4fa8b82cc)
1*a58d3d2aSXin Li#Packet loss simulator
2*a58d3d2aSXin Li
3*a58d3d2aSXin LiThis code is an attempt at simulating better packet loss scenarios. The most common way of simulating
4*a58d3d2aSXin Lipacket loss is to use a random sequence where each packet loss event is uncorrelated with previous events.
5*a58d3d2aSXin LiThat is a simplistic model since we know that losses often occur in bursts. This model uses real data
6*a58d3d2aSXin Lito build a generative model for packet loss.
7*a58d3d2aSXin Li
8*a58d3d2aSXin LiWe use the training data provided for the Audio Deep Packet Loss Concealment Challenge, which is available at:
9*a58d3d2aSXin Li
10*a58d3d2aSXin Lihttp://plcchallenge2022pub.blob.core.windows.net/plcchallengearchive/test_train.tar.gz
11*a58d3d2aSXin Li
12*a58d3d2aSXin LiTo create the training data, run:
13*a58d3d2aSXin Li
14*a58d3d2aSXin Li`./process_data.sh /<path>/test_train/train/lossy_signals/`
15*a58d3d2aSXin Li
16*a58d3d2aSXin LiThat will create an ascii loss\_sorted.txt file with all loss data sorted in increasing packet loss
17*a58d3d2aSXin Lipercentage. Then just run:
18*a58d3d2aSXin Li
19*a58d3d2aSXin Li`python ./train_lossgen.py`
20*a58d3d2aSXin Li
21*a58d3d2aSXin Lito train a model
22*a58d3d2aSXin Li
23*a58d3d2aSXin LiTo generate a sequence, run
24*a58d3d2aSXin Li
25*a58d3d2aSXin Li`python3 ./test_lossgen.py <checkpoint> <percentage> output.txt --length 10000`
26*a58d3d2aSXin Li
27*a58d3d2aSXin Liwhere <checkpoint> is the .pth model file and <percentage> is the amount of loss (e.g. 0.2 for 20% loss).
28