(1) cd src ; ./compile.sh
(2) ./denoise_training clean.pcm noise.pcm 50000 > training.f32
(3) cd training ; python3 ./bin2hdf5.py ../src/training.f32 50000 87 training.h5 ###这个 50000跟上面是搭配的,可以调整training次数
(4) python3 rnn_train.py
(5) python3 dump_rnn.py weights.hdf5 ../src/rnn_data.c ../src/rnn_data.h
Dump 会报错,
1. 换成这个文件 https://github.com/xiph/rnnoise/issues/55
这个 Constraint 会说没定义 :
class WeightClip(Constraint):
在前面加上
from keras.constraints import Constraint
然后dump 会去修改 rnn_data.h, 把原来的复制过来吧。 不知道咋改那段,怎么弄都是错的。 (后来试着把所有写 .h的全删了,是可以,但是可能有别的隐形问题)
产生出来的 rnn_data.c 最后一段在编译的时候,老报错。 直接换成原来的,就可以啦。应该是这段dump代码有错,但是我也不会改,有空再研究。
f.write('const struct RNNModel rnnoise_model_{} = {{\n'.format(sys.argv[4])) 改成
f.write('const struct RNNModel rnnoise_model_orig = {\n')
完成后, 根目录 make, 切到 example..
./rnnoise_demo test_input.pcm out.pcm